Variable-based forwarding path construction for packet processing within a network device
First Claim
1. A method comprising:
- installing, to an integrated circuit of a network device forwarding plane, a packet processing template that defines a plurality of internal execution paths within the integrated circuit for processing a plurality of packet flows mapped to the packet processing template, each of the plurality of internal execution paths including a common service object and one or more distinct service objects respectively representing corresponding hardware of the integrated circuit and chained together as a series of next hop operations applied by the integrated circuit,wherein different values for a variable of the packet processing template determine, at least in part, the internal execution paths of the plurality of internal execution paths for processing different packet flows of the plurality of packet flows;
installing, to the network device forwarding plane, a first subscriber record for a first packet flow of the plurality of packet flows, wherein the first subscriber record includes a first variable value for the variable that identifies a first internal execution path of the plurality of internal execution paths;
in response to receiving a first packet associated with the first packet flow, determining, by the integrated circuit of the network device forwarding plane based at least in part on the first subscriber record, the first variable value of the first subscriber record for the first packet flow; and
in response to determining the first variable value identifies the first internal execution path of the plurality of execution paths, processing, by the integrated circuit of the network device forwarding plane, the first packet using the first internal execution path of the plurality of internal execution paths.
2 Assignments
0 Petitions
Accused Products
Abstract
In general, this disclosure describes techniques for applying, with a network device, subscriber-specific packet processing using an internal processing path that includes service objects that are commonly applied to multiple packet flows associated with multiple subscribers. In one example, a network device control plane creates subscriber records that include, for respective subscribers, one or more variable values that specify service objects as well as an identifier for a packet processing template. A forwarding plane of the network device receives and maps subscriber packets to an associated subscriber record and then processes the packet by executing the packet processing template specified by the subscriber record. When the forwarding plane reaches a variable while executing the specified packet processing template, the forwarding plane reads the associated variable value from the subscriber record to identify and then apply the subscriber-specific service object specified by the variable.
53 Citations
32 Claims
-
1. A method comprising:
-
installing, to an integrated circuit of a network device forwarding plane, a packet processing template that defines a plurality of internal execution paths within the integrated circuit for processing a plurality of packet flows mapped to the packet processing template, each of the plurality of internal execution paths including a common service object and one or more distinct service objects respectively representing corresponding hardware of the integrated circuit and chained together as a series of next hop operations applied by the integrated circuit, wherein different values for a variable of the packet processing template determine, at least in part, the internal execution paths of the plurality of internal execution paths for processing different packet flows of the plurality of packet flows; installing, to the network device forwarding plane, a first subscriber record for a first packet flow of the plurality of packet flows, wherein the first subscriber record includes a first variable value for the variable that identifies a first internal execution path of the plurality of internal execution paths; in response to receiving a first packet associated with the first packet flow, determining, by the integrated circuit of the network device forwarding plane based at least in part on the first subscriber record, the first variable value of the first subscriber record for the first packet flow; and in response to determining the first variable value identifies the first internal execution path of the plurality of execution paths, processing, by the integrated circuit of the network device forwarding plane, the first packet using the first internal execution path of the plurality of internal execution paths. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16)
-
-
17. A network device comprising:
-
an interface card; a control unit comprising one or more processors; and an integrated circuit associated with the interface card, the integrated circuit comprising; a key engine; a packet processing template that defines a plurality of internal execution paths within the integrated circuit for processing a plurality of packet flows mapped to the packet processing template, each of the plurality of internal execution paths including a common service object and one or more distinct service objects respectively representing corresponding hardware of the integrated circuit and chained together as a series of next hop operations applied by the integrated circuit, wherein different values for a variable of the packet processing template determine, at least in part, the internal execution paths of the plurality of internal execution paths for processing different packet flows of the plurality of packet flows; and a first subscriber record for a first packet flow of the plurality of packet flows, wherein the first subscriber record includes a first variable value for the variable that identifies a first internal execution path of the plurality of internal execution paths, wherein the interface card receives a first packet associated the first packet flow, and wherein the key engine, in response to receiving the first packet and based at least in part on the first subscriber record, determines the first variable value of the first subscriber record for the first packet flow, and wherein the key engine, in response to determining the first variable value identifies the first internal execution path of the plurality of execution paths, processes the first packet using the first internal execution path of the plurality of internal execution paths. - View Dependent Claims (18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29)
-
-
30. A non-transitory computer-readable medium comprising instructions for causing one or more programmable processors and an integrated circuit of a network device forward plane to:
-
install, to the integrated circuit of a network device forwarding plane, a packet processing template that defines a plurality of internal execution paths within the integrated circuit for processing a plurality of packet flows mapped to the packet processing template, each of the plurality of internal execution paths including a common service object and one or more distinct service objects respectively representing corresponding hardware of the integrated circuit and chained together as a series of next hop operations applied by the integrated circuit, wherein different values for a variable of the packet processing template determine, at least in part, the internal execution paths of the plurality of internal execution paths for processing different packet flows of the plurality of packet flows; install, to the network device forwarding plane, a first subscriber record for a first packet flow of the plurality of packet flows, wherein the first subscriber record includes a first variable value for the variable that identifies a first internal execution path of the plurality of internal execution paths; in response to receiving a first packet associated with the first packet flow, determine, by the integrated circuit of the network device forwarding plane based at least in part on the first subscriber record, the first variable value of the first subscriber record for the first packet flow; and in response to determining the first variable value identifies the first internal execution path of the plurality of execution paths, process, by the integrated circuit of the network device forwarding plane, the first packet using the first internal execution path of the plurality of internal execution paths. - View Dependent Claims (31, 32)
-
Specification