IP Library Granted Patent US 9,154,587
Granted Patent B2
US 9,154,587 · App. 14/619,180 · Granted Oct 6, 2015

RoCE packet sequence acceleration

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,154,587
App. No.
14/619,180
Granted
Oct 6, 2015
Kind
B2
Abstract

A method, network device and system for remote direct memory access (RDMA) over Converged Ethernet (RoCE) packet sequence acceleration are disclosed. The network device comprises one or more functionality components for communicating with a host system. The host system is configured for implementing a first set of functionalities of a network communication protocol, such as RoCE. The one or more functionality components are also operable to implement a second set of functionalities of the network communication protocol.

Claims (24)

1. A network device comprising:

an interface operable to receive a request for transmitting a packet sequence;

a generator operable to generate a transmit descriptor based on the request; and

a transmit offload processor operable to generate individual packets from the packet sequence based on information in the transmit descriptor, wherein the individual packets are generated according to a network communication protocol, wherein the transmit descriptor comprises header information, a total transmit size of the packet sequence, a frame size for each individual packet to be generated, a start point of a packet sequence number (PSN) and a list of host buffers for obtaining payload data, wherein the transmit offload processor, in generating individual packets based on information in the packet sequence, generates an Ethernet header, a Global Routing Header (GRH) and one or more transport layer headers for each packet based on information in the transmit descriptor.

2. The network device in claim 1 , wherein the transmit offload processor, in generating individual packets based on information in the packet sequence, acquires payload data from a list of host buffers in the transmit descriptor.

3. The network device in claim 1 , wherein the transmit offload processor, in generating individual packets based on information in the packet sequence, inserts a cyclic redundancy check (CRC) in each packet.

4. The network device in claim 3 , wherein the transmit offload processor inserts padding into a payload of the packet prior to determining the CRC.

5. The network device in claim 1 , wherein the network communication protocol is a RDMA (remote direct memory access) over the Converged Ethernet (RoCE) protocol, and the packet sequence is a RoCE packet sequence.

6. The network device in claim 1 , wherein the network device is a converged network adapter.

7. A method comprising:

receiving, from the host system, a single request for transmitting a packet sequence;

generating a transmit descriptor based on the request; and

generating individual packets from the packet sequence based on information in the transmit descriptor, wherein the individual packets are generated according to a network communication protocol, wherein the transmit descriptor comprises header information, a total transmit size of the packet sequence, a frame size for each individual packet to be generated, a start point of a packet sequence number (PSN) and a list of host buffers for obtaining payload data, wherein generating individual packets based on information in the packet sequence comprises generating an Ethernet header, a Global Routing Header (GRH) and one or more transport layer headers for each packet based on information in the transmit descriptor.

8. The method in claim 7 , wherein generating individual packets based on information in the packet sequence comprises acquiring payload data from a list of host buffers in the transmit descriptor.

9. The method in claim 7 , wherein generating individual packets based on information in the packet sequence comprises inserting a cyclic redundancy check (CRC) in each packet.

10. The method in claim 9 , wherein generating individual packets based on information in the packet sequence comprises inserting padding into a payload of the packet prior to determining the CRC.

11. The method in claim 7 , wherein the network communication protocol is a RDMA (remote direct memory access) over the Converged Ethernet (RoCE) protocol, and the packet sequence is a RoCE packet sequence.

12. A network device comprising:

a generator operable to generate a transmit descriptor based on a request for transmitting a sequence of data; and

a transmit processor operable to generate a plurality of frames based on information in the transmit descriptor, wherein the plurality of frames are generated according to a network communication protocol, wherein the transmit descriptor comprises header information, a total transmit size of the packet sequence, a frame size for each individual packet to be generated, a start point of a packet sequence number (PSN) and a list of host buffers for obtaining payload data, wherein generating individual packets based on information in the packet sequence comprises generating an Ethernet header, a Global Routing Header (GRH) and one or more transport layer headers for each packet based on information in the transmit descriptor.

13. The network device in claim 12 , wherein the transmit descriptor comprises a list of host buffers for obtaining payload data.

14. The network device in claim 12 , wherein the transmit processor generates one or more headers for each frame in the plurality of frames based on information in the transmit descriptor.

15. The network device in claim 12 , wherein the transmit processor generates a cyclic redundancy check (CRC) for each frame in the plurality of frames based on information in the transmit descriptor.

16. The network device in claim 12 , wherein the network communication protocol is a RDMA (remote direct memory access) over the Converged Ethernet (RoCE) protocol and the sequence of data is a RoCE packet sequence.

Assignments (6)
CORRECTIVE ASSIGNMENT TO CORRECT THE PATENT NUMBER 9,385,856 TO 9,385,756 PREVIOUSLY RECORDED AT REEL: 47349 FRAME: 001. ASSIGNOR(S) HEREBY CONFIRMS THE MERGER. Recorded Mar 22, 2019
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 051144/0648 →
CORRECTIVE ASSIGNMENT TO CORRECT THE EFFECTIVE DATE PREVIOUSLY RECORDED ON REEL 047229 FRAME 0408. ASSIGNOR(S) HEREBY CONFIRMS THE THE EFFECTIVE DATE IS 09/05/2018. Recorded Oct 29, 2018
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047349/0001 →
MERGER Recorded Oct 4, 2018
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: AVAGO TECHNOLOGIES INTERNATIONAL SALES PTE. LIMITED
Reel/Frame 047229/0408 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Feb 3, 2017
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Reel/Frame 041710/0001 →
PATENT SECURITY AGREEMENT Recorded Feb 11, 2016
From: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 037808/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 23, 2015
From: EMULEX CORPORATION
To: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Reel/Frame 036942/0213 →