US 12,244,670 B2
Session-based remote direct memory access
Liran Liss, Atzmon-Segev (IL); Yamin Friedman, Jerusalem (IL); Michael Kagan, Zichron Yaakov (IL); Diego Crupnicoff, Buenos Aires (AR); Idan Burstein, Akko (IL); Matty Kadosh, Hadera (IL); Tzah Oved, Ramat Gan (IL); Dror Goldenberg, Zichron Yaakov (IL); Ron Yuval Efraim, Tzur Hadassah (IL); Alexander Eli Rosenbaum, Elishama (IL); Aviad Yehezkel, Yokneam Ilit (IL); and Rabia Loulou, Nazareth (IL)
Assigned to Mellanox Technologies, Ltd, Yokneam (IL)
Filed by Mellanox Technologies, Ltd., Yokneam (IL)
Filed on Aug. 1, 2023, as Appl. No. 18/363,005.
Application 18/363,005 is a continuation of application No. 17/724,540, filed on Apr. 20, 2022, granted, now 11,765,237.
Prior Publication US 2023/0379390 A1, Nov. 23, 2023
This patent is subject to a terminal disclaimer.
Int. Cl. H04L 67/141 (2022.01); G06F 15/173 (2006.01); H04L 9/08 (2006.01); H04L 67/146 (2022.01); H04L 69/16 (2022.01)
CPC H04L 67/141 (2013.01) [G06F 15/17331 (2013.01); H04L 9/0825 (2013.01); H04L 67/146 (2013.01); H04L 69/161 (2013.01)] 20 Claims
OG exemplary drawing
 
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 comprise different, respective UDP source ports and are assigned respectively to the RDMA sessions, and to receive 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, to transmit to a destination node, via the network interface, one or more Internet Protocol (IP) data packets encapsulating respective RDMA payloads and having an IP header containing a selected one of the UDP 5-tuples that is assigned to one of the RDMA sessions in the selected group,
wherein a UDP source port field in the IP header contains a respective port number that is assigned to the one of the RDMA sessions in the selected group, and
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 in the header is assigned, wherein the UDP 5-tuple in the header includes the assigned port number that is inserted by the destination node in a UDP destination port field of the received incoming IP packet.