Method and system for supporting efficient and cache-friendly TCP session lookup operations based on canonicalization tags
View Patent ↗Aspects of a method and system for efficient and cache-friendly TCP session lookup operations based on canonicalization tags are presented. Aspects of the method may include searching a plurality of tag fields, retrieved via a single memory read operation, to locate a reference to a control block that includes context information for a communication session. Aspects of the system may include a processor that searches a plurality of tag fields, retrieved via a single memory read operation, to locate a reference to a control block that includes context information for a communication session.
1. A method for receiving information via a communications network, the method comprising:
search a plurality of tag fields, retrieved via a single memory read operation, to locate a reference to a control block, said control block comprising context information for a communication session;
retrieving said plurality of tag fields at a location based on a hash table entry value that is computed based on packet header information;
computing a tag value based on said packet header information; and
computing one or both of said computed tag value and said computed hash table entry value, based on one or more of a local Internet protocol address, a local port, a remote Internet protocol address, and a remote port.
2. A method for receiving information via a communications network, the method comprising:
searching a plurality of tag fields, retrieved via a single memory read operation, to locate a reference to a control block, said control block comprising context information for a communication session;
retrieving said plurality of tag fields at a location based on a hash table entry value that is computed based on packet header information;
computing a tag value based on said packet header information; and
computing a current index value based on said computed tag value and a current one of said retrieved plurality of tag fields.
3. The method according to claim 2 , comprising computing a subsequent index value based on said computed tag value and a subsequent one of said retrieved plurality of tag fields.
4. The method according to claim 3 , comprising selecting a valid index value among one or both of said computed current index value and said computed subsequent index value.
5. The method according to claim 4 , comprising retrieving said control block based on said selected valid index value.
6. The method according to claim 5 , comprising comparing at least a portion of said retrieved control block and at least a portion of said packet header information.
7. A system for receiving information via a communications network, the system comprising:
a processor that is operable to:
search a plurality of tag fields, retrieved via a single memory read operation, to locate a reference to a control block, said control block comprising context information for a communication session;
retrieve said plurality of tag fields at a location based on a hash table entry value that is computed based on packet header information;
compute a tag value based on said packet header information; and
compute one or both of said computed tag value and/or said computed hash table entry value, based on one or more of a local Internet protocol address, a local port, a remote Internet protocol address, and/or a remote port.
8. A system for receiving information via a communications network, the system comprising:
a processor that is operable to:
search a plurality of tag fields, retrieved via a single memory read operation, to locate a reference to a control block, said control block comprising context information for a communication session;
retrieve said plurality of tag fields at a location based on a hash table entry value that is computed based on packet header information;
compute a tag value based on said packet header information; and
to compute a current index value based on said computed tag value and a current one of said retrieved plurality of tag fields.
9. The system according to claim 8 , wherein said processor is operable to compute a subsequent index value based on said computed tag value and a subsequent one of said retrieved plurality of tag fields.
10. The system according to claim 9 , wherein said processor is operable to select a valid index value among one or both of said computed current index value and said computed subsequent index value.
11. The system according to claim 10 , wherein said processor is operable to retrieve said control block based on said selected valid index value.
12. The system according to claim 11 , wherein said processor is operable to compare at least a portion of said retrieved control block and at least a portion of said packet header information.