Methods and apparatus for directing packets among a group of processors
First Claim
1. In a data communications device having a plurality of session processors, each session processor capable of performing a routing decision for a packet, a method for directing the packet to a session processor of the plurality of session processors for processing, the method comprising the steps of:
- receiving a packet, the packet having a header component;
generating an index value based upon at least a portion of the header component, the index value corresponding to a session processor for the packet;
initializing a lookup table having index value entries and corresponding session processor entries, wherein initializing comprises creating session processor entries in the lookup table for each of the plurality of session processors, the number of session processor entries within the table based upon at least one performance characteristic for each session processor within the plurality of session processors; and
selecting the session processor to process the packet from the plurality of session processors based upon the index value in the lookup table.
1 Assignment
0 Petitions
Accused Products
Abstract
The invention is directed to techniques for allocating packets received by the flow control processor located on the input/output (I/O) communications interface of the data communications device to a forwarding entity or session processor, chosen from a plurality of session processors, for further processing or routing. The session processors have the same ability to make decisions relating to the processing and routing of the packet as does the flow control processor and can have per second packet processing rates that are different from the flow control processor located on the I/O communications interface of the data communications device. To allocate the packets to the session processors for further processing, the flow control processor processes information located within the header component of the received packet. Based upon the results of this processing, the flow control processor selects a session processor from a plurality of session processors and transfers the packet to the selected session processor for further processing and routing of the packet. The flow control processor on the I/O communications interface, therefore, acts to load balance incoming packets among other session processors, thereby alleviating potential congestion on the port caused by the reception of multiple packets from multiple clients and reducing potential degradation of performance of the data communications device.
To allocate the packets to the session processors for further processing, the flow control processor processes information located within the header component of the received packet. Based upon the results of this processing, the flow control processor selects a session processor from a plurality of session processors and transfers the packet to the selected session processor for further processing and routing of the packet. The flow control processor on the I/O communications interface, therefore, acts to load balance incoming packets among other session processors, thereby alleviating potential congestion on the port caused by the reception of multiple packets from multiple clients and reducing potential degradation of performance of the data communications device.
-
Citations
23 Claims
-
1. In a data communications device having a plurality of session processors, each session processor capable of performing a routing decision for a packet, a method for directing the packet to a session processor of the plurality of session processors for processing, the method comprising the steps of:
-
receiving a packet, the packet having a header component; generating an index value based upon at least a portion of the header component, the index value corresponding to a session processor for the packet; initializing a lookup table having index value entries and corresponding session processor entries, wherein initializing comprises creating session processor entries in the lookup table for each of the plurality of session processors, the number of session processor entries within the table based upon at least one performance characteristic for each session processor within the plurality of session processors; and selecting the session processor to process the packet from the plurality of session processors based upon the index value in the lookup table. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A data communications device comprising:
-
at least one communications interface having a flow distribution processor; at least two session processors coupled to the flow distribution processor; a memory coupled to the flow distribution processor; and an interconnection mechanism coupling the at least one communications interface, the memory, and the at least two session processors; wherein the flow distribution processor is configured to; receive a packet, the packet having a header component; generate an index value based upon at least a portion of the header component, the index value corresponding to a session processor for the packet; initialize a lookup table having index value entries and corresponding performance characteristic weighted session processor entries; create session processor entries in the lookup table for each of the plurality of session processors, the number of session processor entries within the table based upon at least one performance characteristic for each session processor within the plurality of session processors, the flow distribution processor further operable to perform load balancing by maintaining entries such that session processors having greater processing capabilities are more likely to process the received packet; and select the session processor to process the packet from the plurality of session processors based upon the index value in the lookup table. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19, 20, 21)
-
-
22. A computer program product having a computer-readable medium including computer program logic stored thereon that, when performed on a computer, causes the computer to:
-
receive a packet, the packet having a header component; generate an index value based upon at least a portion of the header component, the index value corresponding to a session processor for the packet; initialize a lookup table having index value entries and corresponding session processor entries, wherein initializing comprises creating session processor entries in the lookup table for each of the plurality of session processors, the number of session processor entries within the table based upon at least one performance characteristic for each session processor within the plurality of session processors; and select the session processor to process the packet from the plurality of session processors based upon the index value in the lookup table.
-
-
23. A data communications device comprising:
-
at least one communications interface having a flow distribution processor; at least two session processors coupled to the flow distribution processor; a memory coupled to the flow distribution processor; and an interconnection mechanism coupling the at least one communications interface, the memory, and the at least two session processors; wherein the flow distribution processor includes; means for receiving a packet, the packet having a header component; means for generating a performance weighted index value based upon at least a portion of the header component, the index value corresponding to a session processor for the packet means for initializing a lookup table having index value entries and corresponding performance characteristic weighted session processor entries; means for creating session processor entries in the lookup table for each of the plurality of session processors, the number of session processor entries within the table based upon at least one performance characteristic for each session processor within the plurality of session processors, the flow distribution processor further operable to perform load balancing by maintaining entries such that session processors having greater processing capabilities are more likely to process the received packet; and means for selecting the session processor to process the packet from the plurality of session processors based upon the index value in the lookup table.
-
Specification