US 11,818,236 B1
Protocol independent data unit forwarding
Brian Arnold Petersen, San Francisco, CA (US); Roy T. Myers, Jr., Morgan City, CA (US); Darren S. Engelkemier, Menlo Park, CA (US); Hossein Sedarat, San Jose, CA (US); Ramin Shirani, Morgan Hill, CA (US); Tom Quoc Wellbaum, San Jose, CA (US); and Poon-Kuen Leung, Fremont, CA (US)
Assigned to Ethernovia Inc., San Jose, CA (US)
Filed by Ethernovia Inc., San Jose, CA (US)
Filed on Jun. 16, 2022, as Appl. No. 17/807,255.
Application 17/807,255 is a continuation of application No. 16/926,057, filed on Jul. 10, 2020, granted, now 11,394,813.
Claims priority of provisional application 63/013,440, filed on Apr. 21, 2020.
Claims priority of provisional application 62/872,458, filed on Jul. 10, 2019.
This patent is subject to a terminal disclaimer.
Int. Cl. H04L 69/18 (2022.01); H04L 69/22 (2022.01); H04L 49/00 (2022.01); H04L 49/25 (2022.01)
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
OG exemplary drawing
 
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.