RoCE packet sequence acceleration

التفاصيل البيبلوغرافية
العنوان: RoCE packet sequence acceleration
Patent Number: 8,705,572
تاريخ النشر: April 22, 2014
Appl. No: 13/103884
Application Filed: May 09, 2011
مستخلص: Disclosed herein are methods and apparatus for accelerating RoCE packet sequence transmission and reducing processing latency in received RoCE packets. Under the disclosed method, the RoCE protocol stack and RDMA verbs are implemented partially in the host software and partially in the adapter hardware, thereby providing a better balance between simplifying the adapter configuration and maximizing the host processing efficiency. Particularly, the adapter implemented with partial RoCE offload is able to perform a few major functionalities under the RoCE protocol, such as offloading a complete RoCE packet sequence for transmission, building individual packets out of the RoCE packet sequence and performing Invariant CRC calculation, insertion, validation and removal thereof.
Inventors: Pandit, Parav (Costa Mesa, CA, US); Rahman, Masoodur (Costa Mesa, CA, US); Wu, Kenny Meng-Hung (Costa Mesa, CA, US); Tumuluri, Chaitanya (Costa Mesa, CA, US)
Assignees: Emulex Corporation (Costa Mesa, CA, US)
Claim: 1. A method comprising: receiving, from a host system, a single request for transmitting a packet sequence, the host system configured to implement a first set of functionalities of a network communication protocol, the network communication protocol defining the first set of functionalities and a second set of functionalities, both sets of functionalities being for processing packets; generating a transmit descriptor based on the request; and creating individual packets from the packet sequence based on information in the transmit descriptor, wherein creating the individual packets is one functionality of the second set of functionalities of the network communication protocol, and each individual packet has a format defined by the network communication protocol.
Claim: 2. The method of claim 1 , wherein the network communication protocol is a RDMA (remote direct memory access) over the Converged Ethernet (RoCE) protocol.
Claim: 3. The method of claim 2 , wherein the packet sequence is a RoCE packet sequence for transmission over a network, and the network is the converged Ethernet enabling RDMA operations.
Claim: 4. The method of claim 2 , wherein the host system comprises a RoCE software stack for implementing the first set of functionalities coupled to a software module and in communication with the software module, the software module configured for implementing RDMA operations, the RoCE software stack configured for handling details of the RoCE protocol.
Claim: 5. The method of claim 1 , wherein the host system comprises an Ethernet driver or a NIC (network interface controller) coupled to a software module and in communication with the software module, the software module configured for implementing DMA operations, the Ethernet driver or NIC further coupled to a network adapter and configured to send the single request for transmitting the packet sequence to the network adapter.
Claim: 6. The method of claim 1 , wherein the transmit descriptor comprises header information, a total transmit size of the packet sequence, a frame size for each packet to be created, a start point of packet sequence number (PSN) and a list of host buffers for obtaining payload data.
Claim: 7. The method of claim 6 , wherein creating individual packets from the packet sequence comprises creating an Ethernet header, a Global Routing Header (GRH) and one or more transport layer headers for each packet frame based on the header information in the transmit descriptor.
Claim: 8. The method of claim 7 , wherein creating individual packets from the packet sequence further comprises acquiring payload data from the list of host buffers in the transmit descriptor.
Claim: 9. The method of claim 8 , wherein creating individual packets from the packet sequence further comprises performing an Invariant cyclic redundancy check (CRC) calculation and insertion in each packet frame.
Claim: 10. The method of claim 9 , wherein creating individual packets from the packet sequence further comprises inserting padding into a payload of the packet frame prior to performing the Invariant CRC calculation and insertion in each packet frame.
Claim: 11. The method of claim 10 , further comprising transmitting the created individual packets over a network.
Claim: 12. The method of claim 1 , further comprising receiving a packet over a network and parsing the packet in accordance with the network communication protocol.
Claim: 13. The method of claim 12 , wherein parsing the packet comprises performing an Invariant cyclic redundancy check (CRC) validation and inserting an Invariant CRC validation result in a receive descriptor, the receive descriptor transmitted to the host system to avoid additional Invariant CRC validation in the host system.
Claim: 14. A system comprising: a host system configured to implement a first set of functionalities of a network communication protocol, the network communication protocol defining the first set of functionalities and a second set of functionalities, both sets of functionalities being for processing packets; and an adapter coupled to the host system and configured to implement the second set of functionalities, the adapter comprising a transmit interface configured to receive, from the host system, a single request for transmitting a packet sequence, and generate a transmit descriptor based on the request, the transmit descriptor including information for creating individual packets from the packet sequence, each individual packet having a format defined by the network communication protocol, wherein creating the individual packets is one functionality of the second set of functionalities of the network communication protocol.
Claim: 15. The system of claim 14 , wherein the transmit descriptor comprises header information, a total transmit size of the packet sequence, a frame size for each packet to be created, a start point of packet sequence number (PSN) and a list of host buffers for obtaining payload data.
Claim: 16. The system of claim 15 , wherein the adapter further comprises a transmit offload module coupled to the transmit interface and configured for receiving the transmit descriptor from the transmit interface and creating the individual packets from the packet sequence based on the information in the transmit descriptor.
Claim: 17. The system of claim 16 , wherein the transmit offload module, in creating individual packets from the packet sequence, creates an Ethernet header, a Global Routing Header (GRH) and one or more transport layer headers for each packet frame based on the header information in the transmit descriptor.
Claim: 18. The system of claim 16 , wherein the transmit offload module, in creating individual packets from the packet sequence, acquires payload data from the list of host buffers in the transmit descriptor.
Claim: 19. The system of claim 16 , wherein the transmit offload module, in creating individual packets from the packet sequence, performs an Invariant cyclic redundancy check (CRC) calculation and insertion in each packet frame.
Claim: 20. The system of claim 19 , wherein the transmit offload module inserts padding into a payload of the packet frame prior to performing the Invariant CRC calculation and insertion in each packet frame.
Claim: 21. The system of claim 20 , wherein the adapter is further configured for transmitting the created individual packets over a network.
Claim: 22. The system of claim 14 , wherein the adapter is further configured for receiving a packet over a network and parsing the packet in accordance with the network communication protocol.
Claim: 23. The system of claim 22 , wherein the adapter, in parsing the packet, performs an Invariant cyclic redundancy check (CRC) validation and inserts a validation result in a receive descriptor, the receive descriptor transmitted to the host system to avoid additional Invariant CRC validation in the host system.
Claim: 24. The system of claim 14 , wherein the network communication protocol is a RDMA (remote direct memory access) over the Converged Ethernet (RoCE) protocol.
Claim: 25. The system of claim 24 , wherein the packet sequence is a RoCE packet sequence for transmission over a network, and the network is the converged Ethernet enabling RDMA operations.
Claim: 26. The system of claim 24 , wherein the host system comprises a RoCE software stack for implementing the first set of functionalities coupled to a software module and in communication with the software module, the software module configured for implementing RDMA operations, the RoCE software stack configured for handling details of the RoCE protocol.
Claim: 27. The system of claim 14 , wherein the host system comprises an Ethernet driver or a NIC (network interface controller) coupled to a software module and in communication with the software module, the software module configured for implementing RDMA operations, the Ethernet driver or NIC further coupled to the adapter and configured to send the single request for transmitting the packet sequence to the adapter.
Claim: 28. A network adapter comprising: a transmit interface configured to: receive, from a host system, a single request for transmitting a packet sequence over a network or within the host system in a loopback mode, the host system configured to implement a first set of functionalities of a network communication protocol, the network communication protocol defining the first set of functionalities and a second set of functionalities, both sets of functionalities being for processing packets, and generate a transmit descriptor based on the request, the transmit descriptor including information for creating individual packets from the packet sequence, each individual packet having a format defined by the network communication protocol, wherein creating the individual packets is one functionality of the second set of functionalities of the network communication protocol.
Claim: 29. The network adapter in claim 28 , wherein the transmit descriptor comprises header information, a total transmit size of the packet sequence, a frame size for each packet to be created, a start point of packet sequence number (PSN) and a list of host buffers for obtaining payload data.
Claim: 30. The network adapter in claim 29 , further comprising a transmit offload module coupled to the transmit interface and configured for receiving the transmit descriptor from the transmit interface and creating the individual packets from the packet sequence based on the information in the transmit descriptor.
Claim: 31. The network adapter in claim 30 , wherein the transmit offload module, in creating individual packets from the packet sequence, creates an Ethernet header, a Global Routing Header (GRH) and one or more transport layer headers for each packet frame based on the header information in the transmit descriptor.
Claim: 32. The network adapter in claim 30 , wherein the transmit offload module, in creating individual packets from the packet sequence, acquires payload data from the list of host buffers in the transmit descriptor.
Claim: 33. The network adapter in claim 30 , wherein the transmit offload module, in creating individual packets from the packet sequence, performs an Invariant cyclic redundancy check (CRC) calculation and insertion in each packet frame.
Claim: 34. The network adapter in claim 33 , wherein the transmit offload module inserts padding into a payload of the packet frame prior to performing the Invariant CRC calculation and insertion in each packet frame.
Claim: 35. The network adapter in claim 28 , further comprising a packet receive interface configured for receiving a packet.
Claim: 36. The network adapter in claim 35 , further comprising a packet receive offload module coupled to the packet receive interface and configured for receiving the packet from the packet receive interface and parsing the packet in accordance with the network communication protocol, the packet receive offload module further configured for performing an Invariant cyclic redundancy check (CRC) validation and inserting a validation result in a receive descriptor, the receive descriptor transmitted to the host to avoid additional Invariant CRC validation in the host.
Claim: 37. The network adapter in claim 28 , wherein the network communication protocol is a RDMA (remote direct memory access) over the Converged Ethernet (RoCE) protocol, the packet sequence is a RoCE packet sequence and the network is the converged Ethernet.
Claim: 38. A non-transitory computer-readable storage medium comprising computer-executable instructions, which, when executed, cause a processor to perform a method comprising: receiving, from a host system, a single request for transmitting a packet sequence over a network or within the host system in a loopback mode, the host system configured to implement a first set of functionalities of a network communication protocol, the network communication protocol defining the first set of functionalities and a second set of functionalities, both sets of functionalities being for processing packets; and generating a transmit descriptor based on the request, the transmit descriptor including information for creating individual packets from the packet sequence, each individual packet having a format defined by the network communication protocol wherein creating the individual packets is one functionality of the second set of functionalities of the network communication protocol.
Claim: 39. The computer-readable storage medium of claim 38 , wherein the method further comprises creating the individual packets from the packet sequence based on the information in the transmit descriptor.
Claim: 40. The computer-readable storage medium of claim 39 , wherein creating the individual packets from the packet sequence comprises creating an Ethernet header, a Global Routing Header (GRH) and one or more transport layer headers for each packet frame based on header information in the transmit descriptor.
Claim: 41. The computer-readable storage medium of claim 40 , wherein creating the individual packets from the packet sequence further comprises obtaining payload data from a list of host buffers specified in the transmit descriptor.
Claim: 42. The computer-readable storage medium of claim 41 , wherein creating the individual packets from the packet sequence further comprises performing an Invariant cyclic redundancy check (CRC) calculation and insertion in each packet frame.
Claim: 43. The computer-readable storage medium of claim 42 , wherein creating the individual packets from the packet sequence further comprises inserting padding into a payload of the packet frame prior to performing the Invariant CRC calculation and insertion in each packet frame.
Claim: 44. The computer-readable storage medium of claim 38 , wherein the network communication protocol is a RDMA (remote direct memory access) over the Converged Ethernet (RoCE) protocol, the packet sequence is a RoCE packet sequence and the network is the converged Ethernet.
Claim: 45. A non-transitory computer-readable storage medium comprising computer-executable instructions, which, when executed, cause a processor to perform a method comprising: receiving a packet from a network or within a host system in a loopback mode; parsing the packet in accordance with a network communication protocol to extract fields for performing an Invariant cyclic redundancy check (CRC) validation; performing the Invariant CRC validation based on the extracted fields, wherein performing the Invariant CRC validation is one functionality of a second set of functionalities of the network communication protocol, the network communication protocol defining a first set of functionalities and the second set of functionalities, both sets of functionalities being for processing packets; and inserting the Invariant CRC validation result into a receive descriptor for transmission to the host system, the host system configured to implement the first set of functionalities of the network communication protocol.
Claim: 46. The computer-readable storage medium of claim 45 , wherein the method further comprises transmitting the receive descriptor to the host system to avoid additional Invariant CRC validation in the host system.
Claim: 47. The computer-readable storage medium of claim 46 , wherein the host system comprises a RoCE software stack for implementing the first set of functionalities coupled to a software module for implementing RDMA operations, the network communication protocol being a RoCE protocol, the RoCE software stack configured for handling details of the RoCE protocol.
Claim: 48. The computer-readable storage medium of claim 47 , wherein the host system is coupled to a network adapter configured to implement the second set of functionalities of the network communication protocol.
Claim: 49. The computer-readable storage medium of claim 45 , wherein the network communication protocol is a RDMA (remote direct memory access) over the Converged Ethernet (RoCE) protocol, the packet sequence is a RoCE packet sequence and the network is the converged Ethernet.
Current U.S. Class: 370/474
Patent References Cited: 6799220 September 2004 Merritt et al.
7245627 July 2007 Goldenberg et al.
7895601 February 2011 Benner et al.
2011/0119673 May 2011 Bloch et al.
Assistant Examiner: Zaidi, Iqbal
Primary Examiner: Ngo, Ricky
Attorney, Agent or Firm: McAndrews, Held & Malloy, Ltd.
رقم الانضمام: edspgr.08705572
قاعدة البيانات: USPTO Patent Grants