Configurable segmentation offload
AssigneeCisco Technology, Inc.
InventorsReese Faucette, David Walker
Life of this patent
Estimating the term…
Abstract
This disclosure describes techniques for a network interface controller (NIC) to communicate over a network according to a specified transmission communication protocol. The NIC receives, from a host processor, an indication of a data unit and an indication of a header template. The NIC generates, independent of the specified transmission communication protocol, metadata for transmitting a segment of the data unit over a network. The NIC generates, at last partly using the metadata, header fields that comply with the specified transmission communication protocol. The NIC processes the header template and the header fields to generate a packet header, and the NIC transmits, over the network, a packet including the packet header and the segment of the data unit.
Claims20
A method of communicating over a network according to a specified transmission communication protocol, comprising:
- receiving, from a host processor, an indication of a data unit and an indication of a packet header template, the packet header template defining at least one or more static packet header fields of a packet header and one more non-static packet header fields of the packet header;
- generating metadata for transmitting a segment of the data unit over a network, wherein the metadata is not specific to the specified transmission communication protocol;
- generating, at least partly using the metadata, the static packet header fields of the packet header;
- generating, at last partly using the metadata and the static packet header fields, the non-static packet header fields that comply with the specified transmission communication protocol;
- processing the packet header template, the static packet header fields and the non-static packet header fields to generate the packet header;
- and
- transmitting, over the network in accordance with the specified transmission communication protocol, a packet including the packet header and the segment of the data unit.
A network interface controller, comprising:
- one or more processors and one or more non-transitory computer-readable media storing computer-executable instructions that, when executed by the one or more processors, cause the one or more processors to:
- receive, from a host processor, an indication of a data unit and an indication of a packet header template, the packet header template defining at least one or more static packet header fields of a packet header and one or more non-static packet header fields of the packet header;
- generate metadata for transmitting a segment of the data unit over a network, wherein the metadata is not specific to a specified transmission communication protocol;
- generate, at least partly using the metadata, the static packet header fields of the packet header;
- generate, at least partly using the metadata and the static packet header fields, the non-static packet header fields that comply with the specified transmission communication protocol;
- process the packet header template, the static packet header fields and the non-static packet header fields to generate the packet header;
- and
- transmit, over the network in accordance with the specified transmission communication protocol, a packet including the packet header and the segment of the data unit.
One or more non-transitory computer-readable storage media storing computer-readable instructions that, when executed, instruct a processing unit of a network interface controller to perform operations comprising:
- receiving, from a host processor, an indication of a data unit and an indication of a packet header template, the packet header template defining at least one or more static packet header fields of a packet header and one or more non-static packet header fields of the packet header;
- generating metadata for transmitting a segment of the data unit over a network, wherein the metadata is not specific to a specified transmission communication protocol;
- generating, at least partly using the metadata, the static packet header fields of the packet header;
- generate, at least partly using the metadata and the static packet header fields, the non-static header fields that comply with the specified transmission communication protocol;
- processing the packet header template, the static packet header fields and the non-static packet header fields to generate the packet header;
- and
- transmitting, over the network in accordance with the specified transmission communication protocol, a packet including the packet header and the segment of the data unit.
Dependencies are inferred from the claim text.