Method and apparatus for caching protocol processing data
First Claim
1. An apparatus for performing protocol processing, comprising:
- a control memory configured to store protocol processing data related to multiple communication connections, including a first communication connection comprising a first transmit flow and a first receive flow;
a hardware protocol processor;
a pre-processing module configured to receive the stored protocol processing data from the control memory and provide the received protocol processing data to the protocol processor;
a post-processing module configured to receive updated protocol processing data from the protocol processor and update the control memory; and
a protocol processing cache local to the hardware protocol processor and separate from the control memory, wherein the cache is configured to store a subset of said protocol Processing data stored in the control memory, including;
a first type of protocol processing data comprising a receive window scaling factor and a maximum segment length;
a second type of protocol processing data comprising a next expected TCP (Transmission Control Protocol) sequence number, a last sequence number sent but not acknowledged and a receive timestamp; and
a third type of protocol processing data comprising the following transmit flow data fields;
a starting index of a TCP payload to be included in an outbound packet and an address offset of the payload; and
a header generator configured to generate a protocol header for the outbound packet to facilitate transmission of the outbound packet in the first transmit flow;
wherein said subset of protocol processing data is provided to said header generator by said protocol processing cache and not said control memory.
2 Assignments
0 Petitions
Accused Products
Abstract
A method and apparatus are provided for caching data for protocol processing. A protocol processing cache stores data needed for the generation of new headers, from both receive and transmit flows. Some data may be stored in the cache only after being processed (e.g., updated, calculated) by a protocol processor. Other data may bypass the protocol processor and be stored in the cache without being handled by the protocol processor. An entry in the cache includes data needed for header generation, a tag identifying an index into a control block memory of the TCP connection to which the data corresponds. An entry may also include one or more control indicators to indicate whether a transmit flow has been acknowledged, whether a receive flow has been observed, and whether the transmit flow has been updated with control data from the receive flow. The apparatus is protocol processor independent.
23 Citations
21 Claims
-
1. An apparatus for performing protocol processing, comprising:
-
a control memory configured to store protocol processing data related to multiple communication connections, including a first communication connection comprising a first transmit flow and a first receive flow; a hardware protocol processor; a pre-processing module configured to receive the stored protocol processing data from the control memory and provide the received protocol processing data to the protocol processor; a post-processing module configured to receive updated protocol processing data from the protocol processor and update the control memory; and a protocol processing cache local to the hardware protocol processor and separate from the control memory, wherein the cache is configured to store a subset of said protocol Processing data stored in the control memory, including; a first type of protocol processing data comprising a receive window scaling factor and a maximum segment length; a second type of protocol processing data comprising a next expected TCP (Transmission Control Protocol) sequence number, a last sequence number sent but not acknowledged and a receive timestamp; and a third type of protocol processing data comprising the following transmit flow data fields;
a starting index of a TCP payload to be included in an outbound packet and an address offset of the payload; anda header generator configured to generate a protocol header for the outbound packet to facilitate transmission of the outbound packet in the first transmit flow; wherein said subset of protocol processing data is provided to said header generator by said protocol processing cache and not said control memory. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A method of using a protocol processing cache to facilitate generation of a TCP (Transmission Control Protocol) header for an outbound packet, the method comprising:
-
maintaining a protocol processing cache local to a hardware protocol processor, wherein said cache is separate from a control block memory configured to store protocol processing data for generating a header for a packet to be transmitted within a first communication flow comprising a first transmit flow and a first receive flow; storing a first type of protocol processing data from the first communication flow in said cache, said first type of data comprising the following; receive window scaling factor; and maximum segment length; storing a second type of protocol processing data from the first communication flow in said cache, said second type of data comprising the following; next expected TCP sequence number; last sequence number sent but not acknowledged; and a receive timestamp; storing a third type of protocol processing data from the first communication flow in said cache, said third type of data comprising the following transmit flow data fields; starting index of TCP payload to be included in the outbound packet; and address offset of the payload; from the protocol processor, signaling a header generator to generate the protocol header for the outbound packet to be transmitted in the first transmit flow; and providing said first, second and third type of protocol processing data to the header generator from said cache and not from the control block memory. - View Dependent Claims (7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20)
-
-
21. A computer readable storage medium storing instructions that, when executed by a computer, cause the computer to perform a method of using a protocol processing cache to facilitate generation of a TCP (Transmission Control Protocol) header for an outbound packet, the method comprising:
-
maintaining a protocol processing cache local to a hardware protocol processor, wherein said cache is separate from a control block memory configured to store protocol processing data for generating a header for a packet to be transmitted within a first communication flow comprising a first transmit flow and a first receive flow; storing a first type of protocol processing data from the first communication flow in said cache, said first type of data comprising the following; receive window scaling factor; and maximum segment length; storing a second type of protocol processing data from the first communication flow in said cache, said second type of data comprising the following; next expected TCP sequence number; last sequence number sent but not acknowledged; and a receive timestamp; storing a third type of protocol processing data from the first communication flow in said cache, said third type of data comprising the following transmit flow data fields; starting index of TCP payload to be included in the outbound packet; and address offset of the payload; from the protocol processor, signaling a header generator to generate the protocol header for the outbound packet to be transmitted in the first transmit flow; and providing said first, second and third type of protocol processing data to the header generator from said cache and not from the control block memory.
-
Specification