IP Library › Granted Patent US 11,979,340
Granted Patent B2
US 11,979,340 · App. 17/824,954 · Granted May 7, 2024

Direct data placement

Inventors: Boris Pismenny (Haifa, IL); Dotan David Levi (Kiryat Motzkin, IL); Gal Yefet (Haifa, IL)
Assignee: MELLANOX TECHNOLOGIES, LTD.
H04L49/552H04L49/901H04L49/9057H04L49/9068H04L65/61H04L65/65H04W28/04
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 11,979,340
App. No.
17/824,954
Granted
May 7, 2024
Kind
B2
Abstract

A method for communication includes mapping transport sequence numbers in headers of data packets received from a network to respective buffers in a memory of a host computer. At least a part of the data from payloads of the received data packets is written directly to the respective buffers.

Claims (18)

1. A method for communication, comprising:

receiving data packets from a network in a network interface controller (NIC) of the host computer; mapping transport sequence numbers in headers of data packets received from a network to respective buffers, having a given buffer size, in a memory of a host computer;

receiving work requests from the host computer defining second buffers in the memory;

writing at least a part of the data from payloads of the received data packets directly from the NIC to the respective first buffers up to the given buffer size;

writing the headers of the received data packets from the NIC to the second buffers responsively to the work requests; and

when a size of the data in a given data packet exceeds the given buffer size, writing a remainder of the data from the given data packet from the NIC to one of the second buffers.

2. The method according to claim 1 , wherein mapping the transport sequence numbers comprises looking up the first buffers in a table that is indexed according to the transport sequence numbers.

3. The method according to claim 2 , wherein writing the data comprises, upon receiving a data packet having a transport sequence number that is absent from the table, writing all the data from a payload of the received data packet to at least one of the second buffers.

4. The method according to comprising, after the host computer has read the data from a given first buffer that is indexed by a given transport sequence number, updating the table to remove the given transport sequence number from the table and to add a new first buffer that is indexed by a further transport sequence number.

5. The apparatus according to claim 1 , wherein the headers comprise Transmission Control Protocol (TCP) headers, and the transport sequence numbers comprise TCP sequence numbers.

6. Communication apparatus, comprising:

a network interface, to receive from a network data packets comprising headers containing respective transport sequence numbers and payloads containing data;

a host interface, for connection to a host computer having a memory; and

processing circuitry, to map the transport sequence numbers in headers of data packets received from a network to respective buffers in the memory of the host computer and to write at least a part of the data from the payloads of the received data packets to the respective buffers.

7. The apparatus according to claim 6 , wherein the processing circuitry is to map the transport sequence numbers to the respective first buffers using a table that is indexed according to the transport sequence numbers.

8. The apparatus according to claim 7 , wherein upon receiving a data packet having a transport sequence number that is absent from the table, the processing circuitry is to write all the data from a payload of the received data packet to the second buffers.

9. The apparatus according to claim 6 , wherein after the host computer has read the data from a given first buffer that is indexed by a given transport sequence number, the table is updated to remove the given transport sequence number from the table and to add a new first buffer that is indexed by a further transport sequence number.

10. The apparatus according to claim 6 , wherein the headers comprise Transmission Control Protocol (TCP) headers, and the transport sequence numbers comprise TCP sequence numbers.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 26, 2022
From: PISMENNY, BORIS; LEVI, DOTAN DAVID; YEFET, GAL
To: MELLANOX TECHNOLOGIES, LTD.
Reel/Frame 060021/0470 →
Continuity (5)
Continuation In Part 17535608 · Nov 25, 2021
Continuation 16693302 · Nov 24, 2019
Continuation In Part 15473668 · Mar 30, 2017
Provisional Application 62457919 · Feb 12, 2017
Related Publication 20220385598A1 · Dec 1, 2022