# US 2019/0356589 A1 · Concept for Segmenting an Application Buffer into Data Packets

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2019/0356589 A1
- Document ID: US20190356589A1
- Status: Published application
- Kind: A1
- Application number: 16/414,814
- Filed: 2019-05-17
- Published: 2019-11-21
- Earliest claimed: 2018-05-18
- Assignees: Intel Corporation
- Applicants: Intel Corporation
- Inventors: Eliel Louzoun; Manasi Deval; Stephen Doyle; Noam Elati; Patrick Fleming; Gregory Bowers
- Web page: https://patentgrep.com/patent/US20190356589A1

## CPC

- H04L 49/9042: {Separate storage for different parts of the packet, e.g. header and payload}
- H04L 45/74: Address processing for routing
- H04L 47/365: {Dynamic adaptation of the packet size}
- H04L 49/90: Buffering arrangements
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## 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

### Claim 1

An apparatus for generating data packets according to a transport protocol from an application buffer comprising a plurality of data streams, the apparatus comprising:
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; and
a parsing circuit configured to:
identify offsets in the application buffer as possible segmentation points based on the metadata;
segment the application buffer at the possible segmentation points into segments for data packets; and
generate data packets according to the transport protocol based on the segments.

### Claim 2 (depends on 1)

The apparatus of claim 1, wherein the application buffer comprises a plurality of stream headers for the plurality of data streams, wherein at least a subset of the plurality of stream headers are replicated and used in the generation of the data packets.

### Claim 3 (depends on 2)

The apparatus of claim 2, wherein the application buffer comprises the replicated stream headers, the replicated stream headers originating from a software application of a computer system comprising the apparatus.

### Claim 4 (depends on 2)

The apparatus of claim 2, wherein the parsing circuit is configured to generate the replicated stream headers based on the plurality of stream headers.

### Claim 5 (depends on 4)

The apparatus of claim 4, wherein, for each stream header, the metadata comprises an indication on whether the stream header is to be replicated by the apparatus, wherein the parsing circuit is configured to generate the replicated stream header for a stream header if the metadata indicates that the stream header is to be replicated by the apparatus.

### Claim 6 (depends on 4)

The apparatus of claim 4, wherein the parsing circuit is configured to update at least one of information about a length of the payload, information about an offset of the payload and information about a checksum of the payload in the stream header and the replicated stream header.

### Claim 7 (depends on 2)

The apparatus of claim 2, wherein the parsing circuit is configured to parse the application buffer to determine information on a start and an offset for each replicated stream header, wherein the parsing circuit is configured to generate the data packets based on the information on the start and the offset of the replicated stream headers.

### Claim 8 (depends on 2)

The apparatus of claim 2, wherein the parsing circuit is configured to include a stream header for each data packet comprising a segment of a data stream, wherein, if a data stream is spread over a first and a second data packet, a replicated stream header is included in the second data packet.

### Claim 9 (depends on 8)

The apparatus of claim 8, wherein the metadata comprises information on a start and an offset for each replicated stream header, wherein the parsing circuit is configured to include the replicated stream header in the second data packet based on the information on the start and the offset of the respective stream header.

### Claim 10 (depends on 2)

The apparatus of claim 2, wherein the metadata further comprises information about a maximum segment size, wherein the replicated stream headers are inserted based on the maximum segment size.

### Claim 11 (depends on 1)

The apparatus of claim 1, wherein data streams of the plurality of data streams comprise one or more stream segments, wherein the parsing circuit is configured to parse the application buffer to determine information on a payload start and offset for each stream segment, wherein the parsing circuit is configured to identify the offsets based on the information on the payload start and offset.

### Claim 12 (depends on 1)

The apparatus of claim 1, wherein the transport protocol is based on two or more levels of headers, the two or more levels comprising at least one level of stream headers and at least one level of transport protocol headers.

### Claim 13 (depends on 1)

The apparatus of claim 1, wherein data streams of the plurality of data streams comprise one or more stream segments, wherein the metadata comprises information on a payload start and offset for each stream segment, wherein the parsing circuit is configured to identify the offsets based on the information on the payload start and offset.

### Claim 14 (depends on 1)

The apparatus of claim 1, wherein the application buffer comprises a start packet number to be used for the data packets, wherein the parsing circuit is configured to generate the data packets with packet numbers starting from the start packet number.

### Claim 15 (depends on 1)

The apparatus of claim 1, wherein the application buffer further comprises a transport protocol header, and wherein the parsing circuit is configured to generate the data packets to comprise the transport protocol header.

### Claim 16 (depends on 15)

The apparatus of claim 15, wherein the transport protocol header comprises at least one of Media Access Control information, Internet Protocol information, User Datagram Protocol information, Transmission Control Protocol information and information about a packet number.

### Claim 17 (depends on 1)

The apparatus of claim 1, wherein the parsing circuit is further configured to generate the data packets to comprise information about a checksum for payload in the respective data packet.

### Claim 18 (depends on 17)

The apparatus of claim 17, wherein the parsing circuit is configured to generate the checksum.

### Claim 19 (depends on 1)

The apparatus of claim 1, wherein the metadata further comprises information about a maximum segment size, and wherein the parsing circuit is configured to only identify an offset in the application buffer as possible segmentation point if a size of a segment defined by the offset is at maximum the maximum segment size.

### Claim 20 (depends on 1)

The apparatus of claim 1, wherein the transport protocol is the Quick User Datagram Protocol Internet Connections, QUIC, protocol.

### Claim 21

A method for a hardware circuit for generating data packets according to a transport protocol from an application buffer comprising a plurality of data streams, the method comprising:
receiving 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;
identifying offsets in the application buffer as possible segmentation points based on the metadata;
segmenting the application buffer at the possible segmentation points into segments for data packets; and
generating data packets according to the transport protocol based on the segments.

### Claim 22

A method for processing an application buffer comprising a plurality of data streams, the method comprising:
obtaining 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;
identifying offsets in the application buffer as possible segmentation points based on the metadata;
identifying the stream headers of the plurality of data streams; and
inserting replicated stream headers into the application buffer after the possible segmentation points based on the identified stream headers and/or adding an indication on whether the stream headers are to be replicated by an apparatus for generating data packets to the metadata.

### Claim 23 (depends on 22)

The method of claim 22, wherein the method comprises determining, for the identified stream headers, whether the stream headers are to be replicated by the method or an apparatus for generating data packets or by the method or an apparatus for processing the application buffer, and adding the indication on whether the stream headers are to be replicated by a method or apparatus for generating data packets to the metadata accordingly.

### Claim 24 (depends on 22)

The method of claim 22, wherein the method comprises generating the replicated stream headers based on the identified stream headers.

### Claim 25

A computer program having a program code for performing method for processing an application buffer comprising a plurality of data streams, when the computer program is executed on a computer, a processor, or a programmable hardware component, the method comprising:
obtaining 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;
identifying offsets in the application buffer as possible segmentation points based on the metadata;
identifying the stream headers of the plurality of data streams; and
inserting replicated stream headers into the application buffer after the possible segmentation points based on the identified stream headers and/or adding an indication on whether the stream headers are to be replicated by an apparatus for generating data packets to the metadata.
