IP Library Granted Patent US 7,289,445
Granted Patent B2
US 7,289,445 · App. 10/304,392 · Granted Oct 30, 2007

Managing a protocol control block cache in a network device

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 7,289,445
App. No.
10/304,392
Granted
Oct 30, 2007
Kind
B2
Abstract

A method and apparatus to manage a PCB cache are described.

Claims (81)

1. A method to manage a cache, comprising:

receiving a packet;

extracting a flow identifier from said packet;

determining whether a Protocol Control Block (PCB) entry associated with said flow identifier is in a cache;

updating said cache using a credit based algorithm in accordance with said determination;

modifying said PCB entry if in said cache;

creating said PCB entry if not in said cache; and

assigning a credit parameter to said PCB;

wherein said credit parameter is based on at least one of a port number receiving said packet or a window size for a connection.

2. The method of claim 1 , wherein said modifying comprises:

retrieving a PCB from said PCB entry; and

updating a credit parameter associated with said PCB.

3. The method of claim 1 , wherein said creating comprises:

retrieving a PCB from memory;

determining whether said cache is full; and

adding said PCB to said cache if said cache is not full.

4. The method of claim 3 , wherein said assigning comprises:

determining a port number receiving said packet;

searching a credit parameter table using said port number;

retrieving a credit parameter associated with said port number; and

assigning said retrieved credit parameter to said PCB.

5. The method of claim 3 , wherein said assigning comprises:

determining a window size for a connection associated with said PCB; searching a

credit parameter table using said window size;

retrieving a credit parameter associated with said window size; and

assigning said retrieved credit parameter to said PCB.

6. The method of claim 1 , wherein said creating comprises:

retrieving a PCB from memory;

determining whether said cache is full;

removing a PCB entry from said cache if said PCB entry is invalid;

adding said PCB to said cache; and

assigning a credit parameter to said PCB.

7. The method of claim 6 , wherein said removing comprises:

determining whether a connection for said PCB entry has been terminated; and

identifying said PCB entry having a terminated connection as invalid.

8. The method of claim 6 , wherein said removing comprises:

comparing a credit parameter for each PCB entry with a predetermined value; and

identifying a PCB entry as invalid based on said comparison.

9. The method of claim 6 , wherein said removing comprises:

identifying a number of invalid PCB entries in said cache, with each PCB entry having an associated time value representing when said PCB entry was created; and

removing a PCB entry using said time value.

10. The method of claim 6 , wherein said assigning comprises:

determining a port number receiving said packet;

searching a credit parameter table using said port number;

retrieving a credit parameter associated with said port number; and

assigning said retrieved credit parameter to said PCB.

11. The method of claim 6 , wherein said assigning comprises:

determining a window size for a connection associated with said PCB; searching a credit parameter table using said window size;

retrieving a credit parameter associated with said window size; and

assigning said retrieved credit parameter to said PCB.

12. An article comprising:

a computer readable storage medium;

said computer readable storage medium including stored instructions that, when executed by a computer, result in managing a cache by receiving a packet, extracting a flow identifier from said packet, determining whether a Protocol Control Block (PCB) entry associated with said flow identifier is in a cache, updating said cache using a credit based algorithm in accordance with said determination, modifying said PCB entry if in said cache, creating said PCB entry if not in said cache, and assigning a credit parameter to said PCB, wherein said credit parameter is based on at least one of a port number receiving said packet or a window size for a connection.

13. The article of claim 12 , wherein the stored instructions, when executed by a computer, further result in said modifying by retrieving a PCB from said PCB entry, and updating a credit parameter associated with said PCB.

14. The article of claim 12 , wherein the stored instructions, when executed by a computer, further result in said creating by retrieving a PCB from memory, determining whether said cache is full, and adding said PCB to said cache if said cache is not full.

15. The article of claim 14 , wherein the stored instructions, when executed by a computer, further result in said assigning by determining a port number receiving said packet, searching a credit parameter table using said port number, retrieving a credit parameter associated with said port number, and assigning said retrieved credit parameter to said PCB.

16. The article of claim 14 , wherein the stored instructions, when executed by a computer, further result in said assigning by determining a window size for a connection associated with said PCB, searching a credit parameter table using said window size, retrieving a credit parameter associated with said window size, and assigning said retrieved credit parameter to said PCB.

17. The article of claim 12 , wherein the stored instructions, when executed by a computer, further result in said creating by retrieving a PCB from memory, determining whether said cache is full, removing a PCB entry from said cache if said PCB entry is invalid, adding said PCB to said cache, and assigning a credit parameter to said PCB.

18. The article of claim 17 , wherein the stored instructions, when executed by a computer, further result in said removing by determining whether a connection for said PCB entry has been terminated, and identifying said PCB entry having a terminated connection as invalid.

19. The article of claim 17 , wherein the stored instructions, when executed by a computer, further result in said removing by comparing a credit parameter for each PCB entry with a predetermined value, and identifying a PCB entry as invalid based on said comparison.

20. The article of claim 17 , wherein the stored instructions, when executed by a computer, further result in said removing by identifying a number of invalid PCB entries in said cache, with each PCB entry having an associated time value representing when said PCB entry was created, and removing a PCB entry using said time value.

21. The article of claim 17 , wherein the stored instructions, when executed by a computer, further result in said assigning by determining a port number receiving said packet, searching a credit parameter table using said port number, retrieving a credit parameter associated with said port number, and assigning said retrieved credit parameter to said PCB.

22. The article of claim 17 , wherein the stored instructions, when executed by a computer, further result in said assigning by determining a window size for a connection associated with said PCB, searching a credit parameter table using said window size, retrieving a credit parameter associated with said window size, and assigning said retrieved credit parameter to said PCB.

23. A network node, comprising:

a cache to store PCB information; and

a cache management module to manage said PCB information;

wherein said cache management module assigns a credit parameter to said PCB information, said credit parameter based on at least one of a port number receiving a packet or a window size for a connection.

24. The network node of claim 23 , wherein said cache management module determines whether to remove said PCB information from said cache using said credit parameter.

25. A system, comprising:

a processing platform adapted to manage a cache;

said platform being further adapted to receiving a packet, extracting a flow identifier from said packet, determining whether a Protocol Control Block (PCB) entry associated with said flow identifier is in a cache, updating said cache using a credit based algorithm in accordance with said determination, modifying said PCB entry if in said cache, creating said PCB entry if not in said cache, and assigning a credit parameter to said PCB, wherein said credit parameter is based on at least one of a port number receiving said packet or a window size for a connection.

26. The system of claim 25 , wherein said platform is further adapted to perform said modifying by retrieving a PCB from said PCB entry, and updating a credit parameter associated with said PCB.

27. The system of claim 25 , wherein said platform is further adapted to perform said creating by retrieving a PCB from memory, and determining whether said cache is full, adding said PCB to said cache if said cache is not full.

28. The system of claim 27 , wherein said platform is further adapted to perform said assigning by determining a port number receiving said packet, searching a credit parameter table using said port number, retrieving a credit parameter associated with said port number, and assigning said retrieved credit parameter to said PCB.

29. The system of claim 27 , wherein said platform is further adapted to perform said assigning by determining a window size for a connection associated with said PCB, searching a credit parameter table using said window size, retrieving a credit parameter associated with said window size, and assigning said retrieved credit parameter to said PCB.

30. The system of claim 27 , wherein said platform is further adapted to perform said creating by retrieving a PCB from memory, determining whether said cache is full, removing a PCB entry from said cache if said PCB entry is invalid, adding said PCB to said cache, and assigning a credit parameter to said PCB.

31. The system of claim 30 , wherein said platform is further adapted to perform said removing by determining whether a connection for said PCB entry has been terminated, and identifying said PCB entry having a terminated connection as invalid.

32. The system of claim 30 , wherein said platform is further adapted to perform said removing by comparing a credit parameter for each PCB entry with a predetermined value, and identifying a PCB entry as invalid based on said comparison.

33. The system of claim 30 , wherein said platform is further adapted to perform said removing by identifying a number of invalid PCB entries in said cache, with each PCB entry having an associated time value representing when said PCB entry was created, and removing a PCB entry using said time value.

34. The system of claim 30 , wherein said platform is further adapted to perform said assigning by determining a port number receiving said packet, searching a credit parameter table using said port number, retrieving a credit parameter associated with said port number, and assigning said retrieved credit parameter to said PCB.

35. The system of claim 30 , wherein said platform is further adapted to perform said assigning by determining a window size for a connection associated with said PCB, searching a credit parameter table using said window size, retrieving a credit parameter associated with said window size, and assigning said retrieved credit parameter to said PCB.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 15, 2022
From: INTEL CORPORATION
To: TAHOE RESEARCH, LTD.
Reel/Frame 061175/0176 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 14, 2003
From: ILLIKKAL, RAMESHKUMAR G.; TAYLOR, IAN
To: INTEL CORPORATION
Reel/Frame 013950/0085 →