Session-based remote direct memory access

US11765237B1 · US · B1

Patent metadata
FieldValue
Publication numberUS-11765237-B1
Application numberUS-202217724540-A
CountryUS
Kind codeB1
Filing dateApr 20, 2022
Priority dateApr 20, 2022
Publication dateSep 19, 2023
Grant dateSep 19, 2023

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

Apparatus for data communication includes a network interface for connection to a packet data network and a host interface for connection to a host computer, which includes a central processing unit (CPU) and a host memory. Packet processing circuitry receives, via the host interface, from a kernel running on the CPU, associations between multiple remote direct memory access (RDMA) sessions and multiple different User Datagram Protocol (UDP) 5-tuple, which are assigned respectively to the RDMA sessions, and receives from an application running on the CPU a request to send an RDMA message, using a selected group of one or more of the RDMA sessions, to a peer application over the packet data network, and in response to the request, transmits, via the network interface, one or more data packets using a UDP 5-tuple that is assigned to one of the RDMA sessions in the selected group.

First claim

Opening claim text (preview).

The invention claimed is: 1. Apparatus for data communication, comprising: a network interface for connection to a packet data network; a host interface for connection to a host computer which includes a central processing unit (CPU) and a host memory; and packet processing circuitry to receive, via the host interface, from a kernel running on the CPU, associations between multiple remote direct memory access (RDMA) sessions and multiple different User Datagram Protocol (UDP) 5-tuples, which are assigned respectively to the RDMA sessions and to receive from multiple applications running on the CPU requests to send RDMA messages using different, respective groups of one or more of the RDMA sessions, to peer applications over the packet data network, and in response to the requests, to transmit, via the network interface, data packets using the UDP 5-tuples that are respectively assigned to the RDMA sessions in the respective groups, wherein in response to an instruction conveyed by the kernel, the packet processing circuitry stores assignments of different ones of the RDMA sessions in the respective groups to the multiple applications running on the CPU. 2. The apparatus according to claim 1 , wherein the packet processing circuitry transmits the data packets by encapsulating RDMA payloads in Internet Protocol (IP) packets having IP headers containing selected ones of the UDP 5-tuples. 3. The apparatus according to claim 2 , wherein the multiple, different UDP 5-tuples that are respectively assigned to the RDMA sessions comprise different, respective UDP source ports. 4. The apparatus according to claim 2 , wherein upon receiving an incoming IP packet from the packet data network, the packet processing circuitry identifies a UDP 5-tuple in a header of the incoming IP packet, recognizes an RDMA session to which the UDP 5-tuple is assigned, and based on the recognized session, decapsulates and delivers an RDMA payload of the incoming packet to an application. 5. The apparatus according to claim 4 , wherein the kernel assigns different ones of the RDMA sessions to work queues associated with different, respective applications running on the CPU, and wherein the packet processing circuitry delivers the RDMA payload to the application only after verifying that the recognized session is assigned to a work queue that is assigned to the application. 6. The apparatus according to claim 1 , wherein the packet processing circuitry stores an assignment of a group of two or more of the RDMA sessions to a single one of the multiple applications. 7. The apparatus according to claim 1 , wherein each application of the multiple applications enters a request to send an RDMA message in a work queue that is assigned to the application, and the work queue is bound by the kernel to an RDMA session that is assigned to the application, and wherein the packet processing circuitry stores records of the RDMA sessions and work queues that are respectively bound to the RDMA sessions, and applies the records in validating the RDMA messages from and to the multiple applications. 8. The apparatus according to claim 1 , wherein the packet processing circuitry stores respective cryptographic keys for the one or more of the RDMA sessions, and applies the respective cryptographic keys in encrypting and decrypting RDMA payloads of the data packets that are transmitted to and received from the packet data network in the one or more of the RDMA sessions. 9. A method for data communication, comprising: coupling a network interface controller (NIC) between a packet data network and a host computer, which includes a central processing unit (CPU) and a host memory; receiving in the NIC, from a kernel running on the CPU, a definition of multiple remote direct memory access (RDMA) sessions and multiple different User Datagram Protocol (UDP) 5-tuples assigned respectively to the RDMA sessions; receiving in the NIC, from multiple applications running on the CPU, requests to send RDMA messages using different, respective groups of one or more of the RDMA sessions, to peer applications over the packet data network; in response to an instruction conveyed by the kernel, storing, by the NIC, assignments of different ones of the RDMA sessions in the respective groups to the multiple applications running on the CPU; and in response to the requests, transmitting from the NIC, via the packet data network, data packets using the UDP 5-tuples that are respectively assigned to the RDMA sessions in the respective groups. 10. The method according to claim 9 , wherein transmitting the data packets comprises encapsulating an RDMA payloads in Internet Protocol (IP) packets having an IP headers containing selected ones of the UDP 5-tuples. 11. The method according to claim 10 , wherein the multiple, different UDP 5-tuples that are respectively assigned to the RDMA sessions comprise different, respective UDP source ports. 12. The method according to claim 10 , and comprising: receiving in the NIC an incoming IP packet from the packet data network; identifying, by the NIC, a UDP 5-tuple in a header of the incoming IP packet; recognizing an RDMA session to which the UDP 5-tuple is assigned; and based on the recognized session, decapsulating and delivering an RDMA payload of the incoming packet to an application. 13. The method according to claim 12 , and comprising receiving in the NIC, from the kernel, assignments of different ones of the RDMA sessions to work queues associated with different, respective applications running on the CPU, wherein delivering the RDMA payload comprises passing the RDMA payload to the application only after verifying that the recognized session is assigned to a work queue that is assigned to the application. 14. The method according to claim 9 , wherein storing the assignments of the different ones of the RDMA sessions comprises storing an assignment of a group of two or more of the RDMA sessions to a single one of the multiple applications. 15. The method according to claim 9 , wherein receiving the requests comprises queueing a work request to send an RDMA message in a work queue that is assigned to an application, wherein the work queue is bound by the kernel to an RDMA session that is assigned to the application, and wherein the NIC stores records of the RDMA sessions and work queues that are respectively bound to the RDMA sessions, and applies the records in validating the RDMA messages from and to the multiple applications. 16. The method according to claim 9 , and comprising storing in the NIC respective cryptographic keys for the one or more of the RDMA sessions, and applying the respective cryptographic keys in encrypting and decrypting RDMA payloads of the data packets that are transmitted to and received from the packet data network in the one or more of the RDMA sessions. 17. A system for data communication, comprising: a host memory; a central processing unit (CPU), which is to run a kernel, which defines multiple remote direct memory access (RDMA) sessions and assigns multiple different User Datagram Protocol (UDP) 5-tuples respectively to the RDMA sessions, and multiple applications which generate requests to send RDMA messages, using different, respective groups of one or more of the RDMA sessions, to peer applications over packet data network; and a network interface controller (NIC), which is to transmit, in response to the requests via the packet data network, data packets using the UDP 5-tuples that are respectively assigned to the RDMA sessions in the respective groups, wherein i

Assignees

Inventors

Classifications

  • H04L67/141Primary

    Setup of application sessions (admission control or resource allocation in data switching networks H04L47/70) · CPC title

  • H04L67/146Primary

    Markers for unambiguous identification of a particular session, e.g. session cookie or URL-encoding · CPC title

  • Distributed shared memory [DSM], e.g. remote direct memory access [RDMA] · CPC title

  • Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields · CPC title

  • using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US11765237B1 cover?
Apparatus for data communication includes a network interface for connection to a packet data network and a host interface for connection to a host computer, which includes a central processing unit (CPU) and a host memory. Packet processing circuitry receives, via the host interface, from a kernel running on the CPU, associations between multiple remote direct memory access (RDMA) sessions and…
Who is the assignee on this patent?
Mellanox Technologies Ltd
What technology area does this patent fall under?
Primary CPC classification H04L67/141. Mapped technology areas include Electricity.
When was this patent published?
Publication date Tue Sep 19 2023 00:00:00 GMT+0000 (Coordinated Universal Time) (B1). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 12 related publications on this page (citations in our corpus or others sharing the same primary CPC).