Method and system for managing traffic in a packet network environment
First Claim
1. A method of processing packet traffic in a network, comprising:
- assigning a plurality of hosts to a plurality of service levels;
providing a database for storing a plurality of transmission control blocks (TCBs) grouped according to the service levels;
extracting header information from a packet;
determining a service level corresponding to the packet based on the header information;
accessing a transmission control block (TCB) in the database based on the service level corresponding to the packet; and
processing the packet according to information contained in the TCB.
7 Assignments
0 Petitions
Accused Products
Abstract
A network switch includes a first content addressable memory (CAM), a second CAM, a binding lookup table (BLT), and a packet manager. The BLT extracts two sets of header information from ingressing packets. The first set is applied the first CAM to retrieve a service policy index. The second set of header information is applied to the second CAM to determine whether a connection already exists. If a connection exists, a flow transmission control block (fTCB) pointer is retrieved from the second CAM. Otherwise, if there is no current connection for the packet, a check is made of the service policy index to determine the level of service associated with the packet. Based on the assigned service level, a new fTCB pointer is retrieved, or alternatively, client and server TCB pointers are retrieved. The packet manager then processes the packet according to which TCB pointer is retrieved.
176 Citations
29 Claims
-
1. A method of processing packet traffic in a network, comprising:
-
assigning a plurality of hosts to a plurality of service levels;
providing a database for storing a plurality of transmission control blocks (TCBs) grouped according to the service levels;
extracting header information from a packet;
determining a service level corresponding to the packet based on the header information;
accessing a transmission control block (TCB) in the database based on the service level corresponding to the packet; and
processing the packet according to information contained in the TCB. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
assigning a plurality of TCB indexes to each of the service levels;
retrieving one of the TCB indexes corresponding to the service level of the packet; and
accessing the database using the one of the TCB indexes.
-
-
3. The method of claim 2, wherein the TCB indexes include at least one index selected from the group consisting of a flow TCB index, a server TCB index, a client TCB index, and an instruction for processing the packet.
-
4. The method of claim 3, wherein the instruction for processing the packet is selected from the group consisting of DROP, RESET, IGNORE, and FORWARD.
-
5. The method of claim 2, wherein at least one of the TCB indexes includes a flag for indicating that resources for processing the packet are to be speculatively allocated.
-
6. The method of claim 1, wherein the header information includes a destination internet protocol (IP) address, a destination port, and an IP protocol field.
-
7. The method of claim 1, wherein the step of determining a service level includes:
applying the header information to a content addressable memory (CAM) to retrieve a service policy index indicating the service level.
-
8. The method of claim 1, wherein the at least one of the TCBs is selected from the group consisting of a flow TCB, a server TCB, and a client TCB.
-
9. The method of claim 8, wherein the flow TCB includes a plurality of data fields for maintaining a connection between a client host and a server host.
-
10. The method of claim 8, wherein the server TCB includes a plurality of data fields for maintaining a connection to a server host.
-
11. The method of claim 8, wherein the client TCB includes a plurality of data fields for maintaining a connection to a client host.
-
12. The method of claim 1, further comprising:
accessing the TCB in the database based on a determination of whether the packet is associated with an existing connection.
-
13. A method of processing a packet in a network switch, comprising:
-
extracting a five-tuple from header information included in the packet;
extracting a three-tuple from the header information;
determining a service index based on the three-tuple determining whether the packet is associated with an existing connection, based on the five-tuple;
if so, retrieving a previously assigned flow transmission control block (TCB) pointer associated with the packet;
if not, assigning a new flow TCB pointer or a client TCB pointer and a server TCB pointer pair to the packet based on the service policy index; and
processing the packet as a function of the previously assigned flow TCB pointer, the new flow TCB pointer, or the client and server TCB pointer pair. - View Dependent Claims (14, 15, 16, 17, 18, 19, 20)
accessing a memory for storing a plurality of TCBs using a TCB pointer associated with the packet.
-
-
15. The method of claim 13, wherein a TCB pointer associated with the packet includes an instruction for processing the packet.
-
16. The method of claim 15, wherein the instruction for processing the packet is selected from the group consisting of DROP, RESET, IGNORE, and FORWARD.
-
17. The method of claim 13, wherein a TCB pointer associated with the packet includes a flag for indicating that resources within the switch for processing the packet are to be speculatively allocated.
-
18. The method of claim 13, wherein the step of determining a service policy index includes:
applying the three-tuple to a first content addressable memory (CAM) to retrieve a service policy index indicating the service level.
-
19. The method of claim 13, further comprising:
-
applying the five-tuple to a second content addressable memory (CAM);
if a CAM miss occurs, indicating a new connection; and
if a CAM hit occurs, retrieving the previously assigned flow TCB pointer from the CAM.
-
-
20. The method of claim 13, wherein the step of processing includes
using the TCB pointer assigned to the packet as a logical address for pointer to an array of memory locations in a buffer.
-
21. A system for processing packet traffic in a network, comprising:
-
a content addressable memory (CAM) for storing a plurality of service policy indexes associated with a plurality of hosts;
a database for storing a plurality of transmission control blocks (TCBs) grouped according to a plurality of service levels;
a binding lookup table for extracting header information from a packet and applying the extracted header information to the CAM to retrieve a service policy index corresponding to the packet; and
a packet manager for accessing a transmission control block (TCB) in the database based on the retrieved service policy index and for processing the packet according to information contained in the TCB. - View Dependent Claims (22, 23, 24, 25)
a central processing unit (CPU) configured to pre-load the plurality of service policy indexes into the CAM.
-
-
23. The system of claim 21, further comprising:
-
means for assigning a plurality of TCB indexes to each of the service levels;
means for retrieving one of the TCB indexes corresponding to the service level of the packet; and
means for accessing the database using the one of the TCB indexes.
-
-
24. The system of claim 21, wherein a TCB pointer associated with the packet includes an instruction for processing the packet.
-
25. The method of claim 21, wherein the instruction for processing the packet is selected from the group consisting of DROP, RESET, IGNORE, and FORWARD.
-
26. A network switch for processing a packet, comprising:
-
a binding lookup table for extracting a five-tuple and a three-tuple from header information included in the packet;
a first content addressable memory (CAM), responsive to the three-tuple, for outputting a service policy index;
a second content addressable memory (CAM), responsive to the five-tuple, for outputting a previously assigned flow transmission control block (TCB) pointer;
means for detecting a CAM miss when applying the five-tuple to the second CAM;
a flow TCB first-in-first-out (FIFO) memory for storing new flow TCB pointers;
a client TCB FIFO memory for storing client TCB pointers;
a server TCB memory for storing server TCB pointers;
means for retrieving a new flow TCB pointer or a client TCB pointer and a server TCB pointer from the TCB FIFO memories and the server TCB memory, respectively, in the event of a CAM miss and based on the service policy index; and
a database for storing a plurality of client TCBs, server TCBs, and flow TCBs; and
a packet manager for accessing the database and processing the packet as a function of the previously assigned flow TCB pointer, the new flow TCB pointer, or the client and server TCB pointers. - View Dependent Claims (27, 28, 29)
-
Specification