IP Library › Granted Patent US 12,010,019
Granted Patent B2
US 12,010,019 · App. 17/648,196 · Granted Jun 11, 2024

Concept for segmenting an application buffer into data packets

Inventors: Eliel Louzoun (Jerusalem, IL); Manasi Deval (Portland, OR); Stephen Doyle (Ennis, IE); Noam Elati (Zichron Yaakov, IL); Patrick Fleming (Laois, IE); Gregory Bowers (Hillsboro, OR)
Assignee: Intel Corporation
H04L45/74H04L47/365H04L49/90
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 12,010,019
App. No.
17/648,196
Granted
Jun 11, 2024
Kind
B2
Abstract

An apparatus, a method, and a computer program for generating data packets according to a transport protocol from an application buffer comprising a plurality of data streams is provided. The apparatus comprises an input circuit configured to receive metadata comprising at least one of information about data packet types supported by the transport protocol, information about an offset and a length of the supported data packet types, and information about possible stream header start positions, possible payload start positions and possible offsets in the data streams. Further, the apparatus comprises a parsing circuit configured to identify offsets in an application buffer as possible segmentation points based on the metadata, to segment the application buffer at the possible segmentation points into segments for data packets, and to generate data packets according to the transport protocol based on the segments. Furthermore, an apparatus, a method and a computer program for processing the application buffer is provided.

Claims (29)

1. An apparatus for generating data packets according to the Quick User Datagram Protocol Internet Connections (QUIC) protocol, the apparatus comprising:

circuitry configured to provide QUIC segmentation offloading support, by:

identifying offsets in an at least one data stream as possible segmentation points based on metadata, wherein the at least one data stream is to be transmitted using the QUIC protocol;

splitting the at least one data stream at the possible segmentation points into segments for data packets;

generating data packets from the segments; and

prepending a QUIC header to each data packet,

wherein the circuitry comprises input circuitry that is configured to receive the metadata and parsing circuitry configured to split the data stream based on the metadata.

2. The apparatus according to claim 1 , wherein the circuitry is configured to replicate the QUIC header for use in the data packets, and to update a packet number in the QUIC header for each data packet.

3. The apparatus according to claim 2 , wherein the QUIC header being replicated comprises a User Datagram Protocol header.

4. The apparatus according to claim 1 , wherein the circuitry is configured to obtain the at least one data stream from an application buffer.

5. The apparatus according to claim 4 , wherein the application buffer comprises, for each data stream, a stream header, wherein the circuitry is configured to replicate the stream header if a data stream is split across multiple segments, and to update information on the length of the payload in the respective stream headers according to the segmentation.

6. The apparatus according to claim 5 , wherein the circuitry is configured to update information the offset of the payload and/or information on a checksum of the payload in the respective stream headers.

7. The apparatus according to claim 5 , wherein the circuitry is configured to replicate the stream header based on an indication on whether the stream header is to be replicated that is included in metadata being used to perform the QUIC segmentation offloading.

8. The apparatus according to claim 4 , wherein the application buffer comprises a start packet number to be used for the data packets, wherein the circuitry is configured to generate the data packets with packet numbers starting from the start packet number.

9. The apparatus according to claim 1 , wherein the circuitry is configured to split the at least one data stream based on information on a length of data packet types supported by the QUIC protocol.

10. The apparatus according to claim 1 , wherein the metadata comprises at least one of information about data packet types supported by the transport protocol, information about an offset and a length of the supported data packet types, and information about possible stream header start positions, possible payload start positions and possible offsets in data streams.

11. The apparatus according to claim 1 , wherein the circuitry is configured to generate the data packets to comprise information about a checksum for payload in the respective data packet, and to generate the checksum.

12. A Network Interface Controller (NIC) comprising the apparatus according to claim 1 .

13. A method for generating data packets according to the Quick User Datagram Protocol Internet Connections (QUIC) protocol, the method comprising:

performing, by a network interface controller, QUIC segmentation offloading, by:

receiving, by input circuitry, metadata,

identifying offsets in an at least one data stream as possible segmentation points based on the metadata, wherein the at least one data stream is to be transmitted using the QUIC protocol,

splitting, by parsing circuitry, the at least one data stream at the possible segmentation points into segments for data packets,

generating data packets from the segments, and

prepending a QUIC header to each data packet.

14. The method according to claim 13 , wherein the method comprises, by the network interface controller, replicating the QUIC header for use in the data packets, and updating a packet number in the QUIC header for each data packet.

15. The method according to claim 14 , wherein the QUIC header being replicated comprises a User Datagram Protocol header.

16. The method according to claim 13 , wherein the method comprises, by the network interface controller, obtaining the at least one data stream from an application buffer, the application buffer comprising, for each data stream, a stream header, replicating the stream header if a data stream is split across multiple segments, and updating information on the length of the payload in the respective stream headers according to the segmentation.

17. The method according to claim 13 , wherein the method comprises, by the network interface controller, generating the data packets with information about a checksum for payload in the respective data packet, and generating the checksum.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 8, 2024
From: DEVAL, MANASI; BOWERS, GREGORY; FLEMING, PATRICK; DOYLE, STEPHEN; LOUZOUN, ELIEL; ELATI, NOAM
To: INTEL CORPORATION
Reel/Frame 066690/0444 →
Continuity (3)
Continuation 16414814 · May 17, 2019
Provisional Application 62673167 · May 18, 2018
Related Publication 20220141133A1 · May 5, 2022