US 12,457,172 B2
Packet header field extraction
Patrick Bosshart, Plano, TX (US)
Assigned to Barefoot Networks, Inc., Santa Clara, CA (US)
Filed by Barefoot Networks, Inc., Santa Clara, CA (US)
Filed on Jun. 5, 2024, as Appl. No. 18/734,862.
Application 18/734,862 is a continuation of application No. 17/859,722, filed on Jul. 7, 2022, granted, now 12,040,976.
Application 17/859,722 is a continuation of application No. 16/695,049, filed on Nov. 25, 2019, granted, now 11,425,039, issued on Aug. 23, 2022.
Application 16/695,049 is a continuation of application No. 16/573,847, filed on Sep. 17, 2019, granted, now 11,411,870, issued on Aug. 9, 2022.
Application 16/573,847 is a continuation of application No. 15/729,555, filed on Oct. 10, 2017, granted, now 10,432,527, issued on Oct. 1, 2019.
Application 15/729,555 is a continuation of application No. 14/836,850, filed on Aug. 26, 2015, granted, now 9,825,862, issued on Nov. 21, 2017.
Prior Publication US 2025/0047596 A1, Feb. 6, 2025
This patent is subject to a terminal disclaimer.
Int. Cl. H04L 45/745 (2022.01); H04L 45/00 (2022.01); H04L 45/64 (2022.01); H04L 49/101 (2022.01); H04L 49/1546 (2022.01); H04L 69/22 (2022.01); H04L 45/42 (2022.01); H04L 45/74 (2022.01)
CPC H04L 45/74591 (2022.05) [H04L 45/54 (2013.01); H04L 45/64 (2013.01); H04L 45/72 (2013.01); H04L 49/101 (2013.01); H04L 49/1546 (2013.01); H04L 69/22 (2013.01); H04L 45/38 (2013.01); H04L 45/42 (2013.01); H04L 45/74 (2013.01)] 12 Claims
OG exemplary drawing
 
7. At least one packet processing pipeline for use in association with network switch hardware, the at least one packet processing pipeline comprising:
at least one parser stage;
at least one match-action stage; and
at least one other stage;
wherein:
the at least one packet processing pipeline is programmable, at least in part, via configuration data;
the at least one packet processing pipeline is to process the ingress packet data to generate egress packet data;
the configuration data is to be generated based upon compilation of programming language code;
the programming language code is user-generated, at least in part;
the programming language code is configurable to describe, at least in part:
header field parsing, by the at least one parser stage, of the ingress packet data; and
header field matching and/or header field modifying, at least in part, by the at least one match-action stage, of the ingress packet data;
when the network switch hardware is in the operation, the network switch hardware is to associate respective subsets of header field data of the ingress packet data with each other in respective sets of memory locations;
the respective sets of memory locations are for use by the at least one match-action stage and the at least one other stage, respectively; and
the at least one other stage is configurable to generate, at least in part, the egress packet data based upon (1) at least one unmodified header field of the at least one ingress packet as parsed by the at least one parser stage and (2) at least one other header field generated, at least in part, by the at least one match-action stage as a result of the header field modifying.