IP Library Granted Patent US 10,430,374
Granted Patent B2
US 10,430,374 · App. 15/196,088 · Granted Oct 1, 2019

Selective acknowledgement of RDMA packets

Inventors: Adi Menachem (Hod Hasharon, IL); Ariel Shahar (Jerusalem, IL); Noam Bloch (Bat Shlomo, IL); Diego Crupnicoff (Buenos Aires, AR); Michael Kagan (Zichron Yaakov, IL)
Assignee: MELLANOX TECHNOLOGIES, LTD.
G06F15/17331G06F13/28H04L1/1614H04L1/1635H04L1/1809H04L69/16
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 10,430,374
App. No.
15/196,088
Granted
Oct 1, 2019
Kind
B2
Abstract

A method for data transfer includes transmitting a sequence of data packets, including at least a first packet and a second packet transmitted subsequently to the first packet, from a first computer over a network to a second computer in a single remote direct memory access (RDMA) data transfer transaction. Upon receipt of the second packet at the second computer without previously having received the first packet, a negative acknowledgment (NAK) packet is sent from the second computer over the network to the first computer, indicating that the first packet was not received. In response to the NAK packet, the first packet is retransmitted from the first computer to the second computer without retransmitting the second packet.

Claims (18)

1. A method for data transfer, comprising:

transmitting from a requesting computer over a network to a responding computer a first remote direct memory access (RDMA) read request, thereby causing the responding computer to transmit over the network a first RDMA response comprising data arranged in respective payloads of a sequence of data packets, including at least a first packet and a second packet transmitted subsequently to the first packet, the first and second packets respectively containing first and second segments of the data; and

upon receipt of the second packet without previously having received the first packet at the requesting computer, transmitting a second RDMA read request from the requesting computer over the network to the responding computer, the second RDMA read request identifying the first segment of the data for retransmission by the responding computer in a second RDMA read response without requesting retransmission of the second segment.

2. The method according to claim 1 , and comprising keeping a record at the requesting computer of the data packets that were received by the requesting computer in response to the first RDMA read request, wherein transmitting the second RDMA read request comprises sending the second RDMA read request with respect only to the data packets that the record indicates were not received at the requesting computer.

3. The method according to claim 1 , wherein the requesting and responding computers are coupled to the network by respective first and second network interface controllers (NICs), and

wherein the first RDMA read request is transmitted by the first NIC in response to an RDMA work queue element (WQE) submitted to the NIC by a host processor of the requesting computer, and

wherein the method comprises reporting from the first NIC to the host processor that the RDMA WQE has been completed only after receiving the second RDMA read response.

4. The method according to claim 3 , and comprising rearranging in a memory of the requesting computer, by the first NIC, the first and second segments of the data received respectively from the first and second RDMA read responses in an order in which the first and second segments were originally transmitted in the first RDMA read response.

5. The method according to claim 3 , wherein the first NIC submits the second RDMA read request only with respect to the data in the data packets of the first RDMA response that were not received by the first NIC.

6. A data transfer apparatus, comprising:

a host interface, for connection to a bus of a host computer, which includes a host processor and a system memory;

a network interface, comprising one or more ports for connection to a packet network; and

packet processing logic, which is coupled between the host interface and the network interface and is configured to transmit a first remote direct memory access (RDMA) read request over a network to a responding computer, thereby causing the responding computer to transmit over the network a first RDMA response comprising data arranged in respective payloads of a sequence of data packets, including at least a first packet and a second packet transmitted subsequently to the first packet, the first and second packets respectively containing first and second segments of the data,

wherein the packet processing logic is configured, upon receipt of the second packet from the network without previously having received the first packet via the network interface, to transmit a second RDMA read request over the network to the receiving computer, the second RDMA read request identifying the first segment of the data for retransmission by the responding computer in a second RDMA read response without requesting retransmission of the second segment.

7. The apparatus according to claim 6 , wherein the packet processing logic is configured to keep a record of the data packets that were received from the network in response to the first RDMA read request, and to send the second RDMA read request with respect only to the data packets that the record indicates were not received.

8. The apparatus according to claim 6 , wherein the packet processing logic is configured to transmit the first RDMA read request in response to an RDMA work queue element (WQE) submitted to the NIC by the host processor, and

wherein the packet processing logic is configured to report to the host processor that the RDMA WQE has been completed only after receiving the second RDMA read response.

9. The method according to claim 6 , wherein the packet processing logic is configured to rearrange the first and second segments of the data that were received respectively from the first and second RDMA read responses in the system memory in an order in which the first and second segments were originally transmitted in the first RDMA read response.

Assignments (3)
RELEASE OF SECURITY INTEREST IN PATENT COLLATERAL AT REEL/FRAME NO. 42962/0859 Recorded Jul 13, 2018
From: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
To: MELLANOX TECHNOLOGIES, LTD.; MELLANOX TECHNOLOGIES TLV LTD.; MELLANOX TECHNOLOGIES SILICON PHOTONICS INC.
Reel/Frame 046551/0459 →
SECURITY INTEREST Recorded Jun 23, 2017
From: MELLANOX TECHNOLOGIES, LTD.; MELLANOX TECHNOLOGIES TLV LTD.; MELLANOX TECHNOLOGIES SILICON PHOTONICS INC.
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 042962/0859 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 5, 2016
From: MENACHEM, ADI; SHAHAR, ARIEL; BLOCH, NOAM; CRUPNICOFF, DIEGO; KAGAN, MICHAEL
To: MELLANOX TECHNOLOGIES LTD.
Reel/Frame 039071/0122 →
Continuity (1)
Related Publication 20180004705A1 · Jan 4, 2018
Cited By (3)
US 12,244,670 US 12,393,369 US 12,475,076