System and method for customizing packet processing order in networking devices
First Claim
1. A method for reconfigurable packet processing, comprising:
- receiving, by a network device, a first packet comprising a first flow parameter;
storing, by the network device, the received first packet to a first shared memory location;
identifying, by the network device, a first processing order of a plurality of function units executed by the network device based on the first flow parameter;
creating, by the network device, a first linked list including a first head node linked to a first node linked to a second node;
storing, by the network device, a processing status for the first packet by storing the first flow parameter in the first head node, storing a memory location of the first function unit in the first node, and storing a memory location of the second function unit in the second node;
executing, by the network device, a first function unit according to the first processing order, the first function unit reading the first packet from the first shared memory location and writing the first packet to the first shared memory location after processing the packet;
updating, by the network device, the processing status for the first packet to indicate processing by the first function unit is complete;
determining, by the network device from the processing status for the first packet, that the first processing order has not been completed;
executing, by the network device responsive to the determination that the first processing order has not been completed, a second function unit according to the first processing order, the second function unit reading the first packet from the first shared memory location and writing the first packet to the first shared memory location after processing the first packet;
updating, by the network device, the processing status for the first packet to indicate processing by the second function unit is complete; and
transmitting, by the network device, the first packet, responsive to determining from the processing status for the first packet that the first processing order has been completed.
8 Assignments
0 Petitions
Accused Products
Abstract
The present disclosure is directed to packet processing via reconfigurable packet processing system. A network device is configured to identify a processing order of multiple function units based on a first flow parameter of a first packet, execute a first function unit according to the processing order, update a processing status for the first packet to indicate processing by the first function unit is complete, and transmit the first packet responsive to determining from the processing status that the processing order has been completed. The network device is configured to receive a second packet including a second flow parameter, identify the second packet as a response packet of the first packet based on the first and second flow parameters, identify a reverse of the first processing order of the multiple function units, and execute a second function unit according to the reverse processing order.
-
Citations
16 Claims
-
1. A method for reconfigurable packet processing, comprising:
-
receiving, by a network device, a first packet comprising a first flow parameter; storing, by the network device, the received first packet to a first shared memory location; identifying, by the network device, a first processing order of a plurality of function units executed by the network device based on the first flow parameter; creating, by the network device, a first linked list including a first head node linked to a first node linked to a second node; storing, by the network device, a processing status for the first packet by storing the first flow parameter in the first head node, storing a memory location of the first function unit in the first node, and storing a memory location of the second function unit in the second node; executing, by the network device, a first function unit according to the first processing order, the first function unit reading the first packet from the first shared memory location and writing the first packet to the first shared memory location after processing the packet; updating, by the network device, the processing status for the first packet to indicate processing by the first function unit is complete; determining, by the network device from the processing status for the first packet, that the first processing order has not been completed; executing, by the network device responsive to the determination that the first processing order has not been completed, a second function unit according to the first processing order, the second function unit reading the first packet from the first shared memory location and writing the first packet to the first shared memory location after processing the first packet; updating, by the network device, the processing status for the first packet to indicate processing by the second function unit is complete; and transmitting, by the network device, the first packet, responsive to determining from the processing status for the first packet that the first processing order has been completed. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A system for reconfigurable packet processing, comprising:
-
a network device having a shared memory, the network device being configured to; receive a first packet comprising a first flow parameter; store the received first packet to a first location in the shared memory; identify a first processing order of a plurality of function units executed by the network device based on the first flow parameter; create a first linked list including a first head node linked to a first node linked to a second node; store a processing status for the first packet by storing the first flow parameter in the first head node, storing a memory location of the first function unit in the first node, and storing a memory location of the second function unit in the second node; execute a first function unit according to the first processing order, the first function unit reading the first packet from the first shared memory location and writing the first packet to the first shared memory location after processing the packet; update the processing status for the first packet to indicate processing by the first function unit is complete; determine, from the processing status for the first packet, that the first processing order has not been completed; execute, responsive to the determination that the first processing order has not been completed, a second function unit according to the first processing order, the second function unit reading the first packet from the first shared memory location and writing the first packet to the first shared memory location after processing the first packet; update the processing status for the first packet to indicate processing by the second function unit is complete; and transmit the first packet, responsive to determining from the processing status for the first packet that the first processing order has been completed. - View Dependent Claims (10, 11, 12, 13, 14)
-
-
15. A system for reconfigurable packet processing, comprising:
-
a network device having a shared memory, the network device being configured to; receive a first packet comprising a first flow parameter; store the received first packet to a first location in the shared memory; identify a first processing order of a plurality of function units executed by the network device based on the first flow parameter; store a processing status for the first packet; execute a first function unit according to the first processing order, the first function unit reading the first packet from the first shared memory location and writing the first packet to the first shared memory location after processing the packet; update the processing status for the first packet to indicate processing by the first function unit is complete; transmit the first packet, responsive to determining from the processing status for the first packet that the first processing order has been completed; receive a second packet comprising a second flow parameter, the second packet transmitted by a second device as a response to the first packet; identify the second packet as a response packet of the first packet based on the first flow parameter and the second flow parameter; identify, based on the first flow parameter and the second flow parameter, a reverse of the first processing order of the plurality of function units executed by the network device as a second processing order; store a second processing status for the second packet; execute the second function unit according to the second processing order; update the second processing status for the second packet to indicate processing by the second function unit according to the second processing order is complete; and transmit the second packet, responsive to determining from the processing status for the second packet that the second processing order has been completed. - View Dependent Claims (16)
-
Specification