Patent ID: 9667754
Date: 2017-05-30
CPC Classifications: H04L

Claim:
1. A method for transport layer lookup, comprising: receiving, by a transport layer of a network protocol stack, a first incoming transport layer packet; searching a pointer cache for a first matching transport layer data structure comprising state information corresponding to the first incoming packet, wherein the pointer cache comprises: a plurality of pointer cache lines, each of which is configured to store at least one pointer to a subset of a plurality of global transport layer data structures in main memory, and a pointer cache line size, wherein each of the plurality of pointer cache lines comprises a plurality of array elements, each of which stores a pointer to a memory address for a recently accessed transport layer data structure, wherein each of the plurality of pointer cache lines is aligned with a boundary of a central processing unit (CPU) cache line of a plurality of CPU cache lines of a CPU cache, wherein the pointer cache line size is a function of a size of the CPU cache line and a transport control protocol control block (TCB) pointer size; prefetching a plurality of array elements of a pointer cache line of the plurality of pointer cache lines into the CPU cache line, wherein the plurality of array elements comprises a pointer to the first matching transport layer data structure; returning the state information corresponding to the first incoming packet using the first matching transport layer data structure when a pointer cache hit occurs for the state information corresponding to the first incoming packet; receiving, by the transport layer of a network protocol stack, a second incoming transport layer packet; searching the pointer cache for a second matching transport layer data structure comprising state information corresponding to the second incoming packet; and in response to a pointer cache miss when searching for the second matching transport layer data structure: searching the plurality of global transport layer data structures in main memory to obtain the second matching transport layer data structure, and storing a pointer to a memory address of the second matching transport layer data structure in the pointer cache.