Simulating network packets in a packet processing pipeline
AssigneeAmazon Technologies, Inc.
InventorThomas A. Volpe
Life of this patent
Estimating the term…
Abstract
Simulated network packets may be processed via a network processing pipeline. A packet processor may implement packet processing stages to process network packets received via physical network interface at the packet processor. A controller for the packet processor may provide simulated network packets to the packet processor for processing at the different packet processing stages, bypassing the physical network interface. Dummy simulated packets may be provided to or generated at the packet processor on behalf of the controller to be parsed, processed, and returned to the controller. Metadata simulated packets may be injected into the packet processing stages and recaptured in storage locations that are accessible to the controller.
Claims20
A networking device, comprising:
- a plurality of network interfaces corresponding to physical connections to the networking device, wherein the plurality of network interfaces provide for network communication between the networking device and one or more other devices;
- a packet processor, comprising different packet processing stages in the packet processor to process network packets received via the plurality of network interfaces;
- a host processor;
- a memory;
- wherein the host processor is configured to write, to a storage component implemented within the packet processor, metadata for a simulated network packet, wherein the simulated network packet is not received via one of the plurality of network interfaces in order to simulate a network packet without a payload and without sending the network packet to the networking device, wherein the packet processor receives the metadata for the simulated network packet via one or more other interfaces instead of the networking device receiving the network packet with the metadata and the payload via the plurality of network interfaces, wherein, in writing the metadata to the storage component, the host processor bypasses a packet parser that extracts respective metadata from the network packets to separate the respective metadata from respective payloads of the network packets such that the metadata is written to the storage component without being extracted by the packet parser, and wherein the packet parser is upstream of the storage component;
- wherein the packet processor is configured to:
- include an indication in the metadata for the simulated network packet that indicates that the metadata is for the simulated network packet;
- inject the metadata into the different packet processing stages of the packet processor;
- identify metadata output from the different packet processing stages as the metadata for the simulated network packet according to the indication included in the metadata;
- and
- write the metadata output to another storage component implemented within the packet processor;
- wherein the host processor is configured to read, via the one or more other interfaces, the metadata output for the simulated network packet from the another storage component.
A method, comprising:
- receiving, via a host interface at a packet processor included in a device and from a controller for the packet processor, a request to process metadata to simulate a network packet without providing a payload to the packet processor instead of the device receiving the network packet with the metadata and the payload via a network interface corresponding to a physical connection to the device, wherein the network interface provides for network communication between the device and one or more other devices, wherein, based at least in part on the request to process the metadata, a storage component implemented within the packet processor receives the metadata via a writing operation that bypasses a packet parser that extracts respective metadata from network packets to separate the respective metadata from respective payloads of the network packets such that the metadata is written to the storage component without being extracted by the packet parser, and wherein the packet parser is upstream of the storage component;
- including, by the packet processor, in the metadata an indication that the metadata is for the simulated network packet;
- initiating, by the packet processor, processing of the metadata through a packet processing stage at the packet processor that processes other metadata for network packets received via the network interface;
- upon completing the packet processing stage, evaluating, by the packet processor, metadata output from the packet processing stage to determine that the metadata output is the metadata for the simulated network packet according to the indication in the metadata;
- and
- in response to determining that the metadata output is the metadata for the simulated network packet:
- stopping further processing of the metadata at the packet processor;
- and
- providing the metadata, via the host interface, to the controller for the packet processor.
A system, comprising:
- a device configured to perform packet processing, the device comprising:
- a plurality of network interfaces configured to transmit and receive packets via a physical network connection to the device;
- and
- a packet processing pipeline that processes different network packets received from different sources via the plurality of network interfaces and forwards the different network packets according to forwarding decisions determined for the different network packets by the packet processing pipeline, wherein the packet processing pipeline is configured to:
- identify metadata received for processing at the packet processing pipeline as the metadata to simulate a network packet to be processed on behalf of a controller for the device, wherein the metadata is received at the packet processing pipeline without a payload via one or more other interfaces instead of the device receiving the network packet with the metadata and the payload via the plurality of network interfaces, wherein a storage component implemented within the packet processing pipeline receives the metadata via a writing operation that bypasses a packet parser that extracts respective metadata from the different network packets to separate the respective metadata from respective payloads of the different network packets such that the metadata is written to the storage component without being extracted by the packet parser, and wherein the packet parser is upstream of the storage component;
- include in the metadata an indication that the metadata is for the simulated network packet;
- process the metadata through a processing stage of the packet processing pipeline to determine a forwarding decision for the simulated network packet, wherein the forwarding decision is included in processed metadata output that is a processed version of the metadata;
- evaluate the processed metadata output from the processing stage to identify the processed metadata output as for the simulated network packet;
- override the forwarding decision for the simulated network packet;
- and
- provide, via the one or more other interfaces, the processed metadata output for the simulated network packet to the controller for the device.
Dependencies are inferred from the claim text.