Multi-dimensional computation distribution in a packet processing device having multiple processing architecture
First Claim
1. An apparatus, comprisingone or more network interfaces;
- a memory;
a plurality of processing units, each processing unit comprising;
one or more processors;
one or more processing queues;
a framework array, stored in the memory, comprising a plurality of hook points, each hook point corresponding to a framework functional module;
a framework processor module, stored in the memory, comprising instructions operative to cause the one or more processors and the processing unit toread a packet from the one or more processing queues;
starting with the framework functional module corresponding to the hook point identifier associated with the packet, successively invoke the framework functional modules in the framework array to operate on the packet until an invoked framework functional module abducts the packet;
a message router operative totransmit processing of packets to selected processing units;
place packets received from message routers of the plurality of processing units in a processing queue of the one or more processing queues; and
a plurality of framework functional modules, wherein, for at least one of the processing units, at least one framework functional module of the plurality of framework functional modules, comprises a flow distributor module, wherein the flow distributor module is operative towhen invoked by the framework processor module, abduct packets from the framework processor module;
select processing units to process packets based on data flows the packets belong, wherein two packets belong to the same data flow when the two packets have at least the same source network address, destination network address, and port number, and packets belonging to the same data flow are processed by the same processing unit,identify, for packets associated with existing data flows, previously selected processing units, andpass packets to the message router for routing to selected processing units.
12 Assignments
0 Petitions
Accused Products
Abstract
Flow-aware task distribution in network devices having multiple processor architectures. In one embodiment, the present invention can be used for high bandwidth network processing in an application and flow aware Quality of Service (QoS) network device. In some implementations, the present invention provides a task distribution architecture capable of flow state awareness and link level QoS control. In some implementations, the present invention can incorporate one or more processes, such as flow distributors and device distributors, that route packets for processing among different processing units on the basis flow correspondence and/or link or network path attributes. The flow and device distributors, in one implementation, allow for the separation and paralletization of packet processing functionality into flow-specific and link-specific processing units, allowing for a highly-scalable, flow-aware task distribution in a network device that processes network application traffic.
330 Citations
16 Claims
-
1. An apparatus, comprising
one or more network interfaces; -
a memory; a plurality of processing units, each processing unit comprising; one or more processors; one or more processing queues; a framework array, stored in the memory, comprising a plurality of hook points, each hook point corresponding to a framework functional module; a framework processor module, stored in the memory, comprising instructions operative to cause the one or more processors and the processing unit to read a packet from the one or more processing queues; starting with the framework functional module corresponding to the hook point identifier associated with the packet, successively invoke the framework functional modules in the framework array to operate on the packet until an invoked framework functional module abducts the packet; a message router operative to transmit processing of packets to selected processing units; place packets received from message routers of the plurality of processing units in a processing queue of the one or more processing queues; and a plurality of framework functional modules, wherein, for at least one of the processing units, at least one framework functional module of the plurality of framework functional modules, comprises a flow distributor module, wherein the flow distributor module is operative to when invoked by the framework processor module, abduct packets from the framework processor module; select processing units to process packets based on data flows the packets belong, wherein two packets belong to the same data flow when the two packets have at least the same source network address, destination network address, and port number, and packets belonging to the same data flow are processed by the same processing unit, identify, for packets associated with existing data flows, previously selected processing units, and pass packets to the message router for routing to selected processing units. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
-
-
16. An apparatus comprising:
-
a plurality of flow-level processing units each operative to perform one or more operations on data flows traversing a communications path; and at least one input-output processing unit comprising at least one network interface for receiving and transmitting packets, and a flow distributor operative to identify data flows corresponding to packets; distribute, based on the identified data flow, processing of the packet to a select processing unit from the plurality of flow level processing units, such that packets belonging to the same data flow are processed by the same processing unit and two packets belong to the same data flow when the two packets have at least the same source network address, destination network address, and port number; identify a network path attribute corresponding to the packet; and distribute, based on the identified network path attribute, processing of the packet to a select processing unit from the plurality of processing units of the network device, wherein at least one of the processing units comprises a memory; one or more processors; one or more processing queues; a framework array, stored in the memory, comprising a plurality of hook points, each hook point corresponding to a framework functional module; a framework processor module, stored in the memory, comprising instructions operative to cause the one or more processors and the processing unit to read packets from the one or more processing queues;
starting with the framework functional module corresponding to the hook point identifier associated with the packet, successively invoke the framework functional modules in the framework array until an invoked framework functional module abducts the packet;a message router operative to transmit processing of packets to selected processing units;
place packets received from message routers of the plurality of processing units in a processing queue of the one or more processing queues; anda plurality of framework functional modules.
-
Specification