CPC H04L 69/18 (2013.01) [H04L 49/252 (2013.01); H04L 49/3027 (2013.01); H04L 69/22 (2013.01); H04L 2212/00 (2013.01)] | 20 Claims |
1. A method comprising:
receiving, by a packet forwarding system, a first data unit, the first data unit received via an input port of the packet forwarding system, the first data unit comprising a header byte string;
determining, based on the input port, a first header type of a first header of the first data unit;
parsing, by a parser, the first data unit based on the first header type to yield a first parsing output that describes the header byte string of the first data unit;
updating a metadata item associated with the first data unit based on the first parsing output;
determining, based on the metadata item associated with the first data unit, a first packet forwarding instruction by:
generating a first search argument based on the metadata item;
executing a first lookup based on the first search argument, yielding a first lookup output; and
determining a subsequent action based on the first lookup output, the subsequent action being selected from a group that comprises one of recirculating the first data unit to the parser to parse for a next layer of headers of the first data unit, execute a second lookup based on the first lookup output, and provide a lookup result processor with data identifying the first packet forwarding instruction, the recirculating of the first data unit to the parser comprising returning the metadata item and the header byte string to the parser; and
forwarding the first data unit to a first destination based on the first packet forwarding instruction.
|