Variable-based forwarding path construction for packet processing within a network device
First Claim
1. A method comprising:
- storing, by a packet forwarding engine of a network device, a packet processing template, wherein the packet processing template includes (1) a plurality of service objects executable by the packet forwarding engine to process packets, and (2) at least one instruction representing a variable for the packet processing template;
storing, by the packet forwarding engine, a subscriber record for a subscriber, wherein the subscriber record specifies the packet processing template and includes a variable value that resolves the variable to a service object of the plurality of service objects;
executing, by the packet forwarding engine based at least on the subscriber record and in response to receiving a packet associated with the subscriber, the at least one instruction to obtain the variable value; and
resolving, by the packet forwarding engine, the variable value to the service object and applying the service object to the packet.
0 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.
48 Citations
23 Claims
-
1. A method comprising:
-
storing, by a packet forwarding engine of a network device, a packet processing template, wherein the packet processing template includes (1) a plurality of service objects executable by the packet forwarding engine to process packets, and (2) at least one instruction representing a variable for the packet processing template; storing, by the packet forwarding engine, a subscriber record for a subscriber, wherein the subscriber record specifies the packet processing template and includes a variable value that resolves the variable to a service object of the plurality of service objects; executing, by the packet forwarding engine based at least on the subscriber record and in response to receiving a packet associated with the subscriber, the at least one instruction to obtain the variable value; and resolving, by the packet forwarding engine, the variable value to the service object and applying the service object to the packet. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A network device comprising:
-
a control unit having at least one processor; and a packet forwarding engine coupled to the control unit and having at least one network interface, the packet forwarding engine configured to; store a packet processing template, wherein the packet processing template includes (1) a plurality of service objects executable by the packet forwarding engine to process packets, and (2) at least one instruction representing a variable for the packet processing template; store a subscriber record for a subscriber, wherein the subscriber record specifies the packet processing template and includes a variable value that resolves the variable to a service object of the plurality of service objects; execute, based at least on the subscriber record and in response to receiving a packet associated with the subscriber, the at least one instruction to obtain the variable value; and resolve the variable value to the service object and applying the service object to the packet. - View Dependent Claims (14, 15, 16, 17, 18, 19, 20, 21, 22)
-
-
23. A non-transitory computer-readable medium comprising instructions for causing at least one programmable processor of a packet forwarding engine of network device to:
-
store a packet processing template, wherein the packet processing template includes (1) a plurality of service objects executable by the packet forwarding engine to process packets, and (2) at least one instruction representing a variable for the packet processing template; store a subscriber record for a subscriber, wherein the subscriber record specifies the packet processing template and includes a variable value that resolves the variable to a service object of the plurality of service objects; execute, based at least on the subscriber record and in response to receiving a packet associated with the subscriber, the at least one instruction to obtain the variable value; and resolve the variable value to the service object and applying the service object to the packet.
-
Specification