Method and system for handling out-of-order segments in a wireless system via direct data placement
First Claim
1. A method for handling out-of-order TCP segments in a wireless system, the method comprising:
- parsing incoming TCP segments received by a wireless network processor into corresponding TCP header segments and/or corresponding TCP data segments;
storing said parsed incoming TCP segments in a host buffer, wherein said corresponding TCP header segments and/or said corresponding TCP data segments are stored in separate corresponding portions of said host buffer, wherein said host buffer is off-chip to said wireless network processor, and said host buffer is coupled to said wireless network processor via a host bus;
for said stored and parsed incoming TCP segments, determining whether a current received TCP segment is an in-order TCP segment or an out-of-order TCP segment with respect to an immediately previously received TCP segment; and
when said current received TCP segment is said out-of-order TCP segment;
storing control information associated with said out-of-order TCP segment locally on said wireless network processor; and
placing said out-of-order TCP segment in said corresponding portions of said host buffer based on said stored control information so that said out-of-order TCP segment is in order with respect to one or more previously received TCP segments.
6 Assignments
0 Petitions
Accused Products
Abstract
A method and system for handling or processing out-of-order TCP segments in a wireless system may comprise at least one of: placing a first TCP segment received by a wireless network processor in a host buffer and having a mapping between a TCP sequence number and a corresponding buffer address. It may be determined whether a second TCP segment received by the wireless network processor is one of an in-order TCP segment or an out-of-order TCP segment. If the second received TCP segment is an out-of-order TCP segment, then control information associated with at least the second TCP segment may be stored locally on the wireless network processor. The out-of-order TCP segment may be placed in a portion of the host buffer.
34 Citations
34 Claims
-
1. A method for handling out-of-order TCP segments in a wireless system, the method comprising:
-
parsing incoming TCP segments received by a wireless network processor into corresponding TCP header segments and/or corresponding TCP data segments; storing said parsed incoming TCP segments in a host buffer, wherein said corresponding TCP header segments and/or said corresponding TCP data segments are stored in separate corresponding portions of said host buffer, wherein said host buffer is off-chip to said wireless network processor, and said host buffer is coupled to said wireless network processor via a host bus; for said stored and parsed incoming TCP segments, determining whether a current received TCP segment is an in-order TCP segment or an out-of-order TCP segment with respect to an immediately previously received TCP segment; and when said current received TCP segment is said out-of-order TCP segment; storing control information associated with said out-of-order TCP segment locally on said wireless network processor; and placing said out-of-order TCP segment in said corresponding portions of said host buffer based on said stored control information so that said out-of-order TCP segment is in order with respect to one or more previously received TCP segments. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A system for handling out-of-order TCP segments, the system comprising:
-
at least one processor that performs parsing of incoming TCP segments received by a wireless network processor into corresponding TCP header segments and/or corresponding TCP data segments, said at least one processor stores said parsed incoming TCP segments in a host buffer, wherein said corresponding TCP header segments and/or said corresponding TCP data segments are stored in separate corresponding portions of said host buffer, wherein said host buffer is off-chip to said wireless network processor, and said host buffer is coupled to said wireless network processor via a host bus; for said stored and parsed incoming TCP segments, said at least one processor determines from said parsed incoming TCP segments, one or more previously received TCP segments and a subsequent received TCP segment, whether a current received TCP segment is an in-order TCP segment or an out-of-order TCP segment with respect to an immediately previously received TCP segment; and when said current received TCP segment is said out-of-order TCP segment; said at least one processor stores control information associated with said out-of-order TCP segment locally on said wireless network processor; and said at least one processor places said out-of-order TCP segment in said corresponding portions of said host buffer based on said stored control information so that said out-of-order TCP segment is in order with respect to one or more previously received TCP segments. - View Dependent Claims (8, 9, 10, 11, 12, 13)
-
-
14. A method for handling out-of-order TCP segments in a wireless system, the method comprising:
-
parsing incoming TCP segments received by a wireless network processor into corresponding TCP header segments and/or corresponding TCP data segments; storing said parsed incoming TCP segments in a host buffer, wherein said corresponding TCP header segments and/or said corresponding TCP data segments are stored in separate corresponding portions of said host buffer; for said stored incoming TCP segments, determining whether a current received TCP segment is an in-order TCP segment or an out-of-order TCP segment with respect to an immediately previously received TCP segment; when said current received TCP segment is said out-of-order TCP segment; storing control information associated with said out-of-order TCP segment locally on said wireless network processor; placing said out-of-order TCP segment in said corresponding portions of said host buffer based on said stored control information so that said out-of-order TCP segment is in order with respect to one or more previously received TCP segments; recording at least a buffer address occupied by an end of said one or more previously received TCP segments on said wireless network processor, wherein said host buffer is one of a TCP buffer, ULP buffer and/or an application buffer; and when said current received TCP segment is said in-order TCP segment; placing said in-order TCP segment adjacent to said immediately previously received TCP segments in said corresponding portions of said host buffer; placing said in-order TCP segment starting from an address adjacent to said recorded buffer address occupied by said end of said one or more previously received TCP segments in said corresponding portions of said host buffer; and one or both of; recording by said wireless network processor, data indicating one or more of; an end buffer address occupied by an end of said in-order TCP segment; a start buffer address plus a length of a data portion of said in-order TCP segment; and
/ora buffer address of a byte following an end of said in-order TCP segment; and
/orstoring on said wireless network processor, control information associated with said indicating data.
-
-
15. A method for handling out-of-order TCP segments in a wireless system, the method comprising:
-
parsing incoming TCP segments received by a wireless network processor into corresponding TCP header segments and/or corresponding TCP data segments; storing said parsed incoming TCP segments in a host buffer, wherein said corresponding TCP header segments and/or said corresponding TCP data segments are stored in separate corresponding portions of said host buffer; for said stored incoming TCP segments, determining whether a current received TCP segment is an in-order TCP segment or an out-of-order TCP segment with respect to an immediately previously received TCP segment; and when said current received TCP segment is said out-of-order TCP segment; storing control information associated with said out-of-order TCP segment locally on said wireless network processor; placing said out-of-order TCP segment in said corresponding portions of said host buffer based on said stored control information so that said out-of-order TCP segment is in order with respect to one or more previously received TCP segments; and one or both of; recording on said wireless network processor, data indicating one or both of; an address occupied by a start of said placed out-of-order TCP segment and an address occupied by an end of said placed out-of-order TCP segment; and
/ora start buffer address of said placed out-of-order TCP segment plus a length occupied by said placed out-of-order TCP segment; and
/orstoring on said wireless network processor, control information associated with said indicating data on said wireless network processor. - View Dependent Claims (16, 17, 18, 19, 20)
-
-
21. A method for handling out-of-order TCP segments in a wireless system, the method comprising:
-
parsing incoming TCP segments received by a wireless network processor into corresponding TCP header segments and/or corresponding TCP data segments; storing said parsed incoming TCP segments in a host buffer, wherein said corresponding TCP header segments and/or said corresponding TCP data segments are stored in separate corresponding portions of said host buffer; for said stored incoming TCP segments, determining whether a current received TCP segment is an in-order TCP segment or an out-of-order TCP segment with respect to an immediately previously received TCP segment; and when said current received TCP segment is said out-of-order TCP segment; storing control information associated with said out-of-order TCP segment locally on said wireless network processor; placing said out-of-order TCP segment in said corresponding portions of said host buffer based on said stored control information so that said out-of-order TCP segment is in order with respect to one or more previously received TCP segments; adjusting a TCP window to an end of a last in order received TCP segment upon said placing of said one or more previously received TCP segments in said corresponding portions of said host buffer; and one of; adjusting a left edge of said TCP window to a next byte immediately following an end of an out-of-order TCP segment placed adjacent to an end of a last in-order previously received TCP segment; and adjusting said left edge of said TCP window to a next byte immediately following an end of a last of a plurality of out-of-order TCP segments placed adjacent to an end of a last in-order previously received TCP segment.
-
-
22. A method for handling out-of-order TCP segments in a wireless system, the method comprising:
-
parsing incoming TCP segments received by a wireless network processor into corresponding TCP header segments and/or corresponding TCP data segments; storing said parsed incoming TCP segments in a host buffer, wherein said corresponding TCP header segments and/or said corresponding TCP data segments are stored in separate corresponding portions of said host buffer; for said stored incoming TCP segments, determining whether a current received TCP segment is an in-order TCP segment or an out-of-order TCP segment with respect to an immediately previously received TCP segment; and when said current received TCP segment is said out-of-order TCP segment; storing control information associated with said out-of-order TCP segment locally on said wireless network processor; placing said out-of-order TCP segment in said corresponding portions of said host buffer based on said stored control information so that said out-of-order TCP segment is in order with respect to one or more previously received TCP segments; adjusting a TCP window to an end of a last in order received TCP segment upon said placing of said one or more previously received TCP segments in said corresponding portions of said host buffer; and adjusting a left edge of said TCP window to the next byte immediately following an end of a last in-order TCP segment placed adjacent to said first received TCP segment. - View Dependent Claims (23, 24)
-
-
25. A method for handling out-of-order TCP segments in a wireless system, the method comprising:
-
parsing incoming TCP segments received by a wireless network processor into corresponding TCP header segments and/or corresponding TCP data segments; storing said parsed incoming TCP segments in a host buffer, wherein said corresponding TCP header segments and/or said corresponding TCP data segments are stored in separate corresponding portions of said host buffer; for said stored incoming TCP segments, determining whether a current received TCP segment is an in-order TCP segment or an out-of-order TCP segment with respect to an immediately previously received TCP segment; and when said current received TCP segment is said out-of-order TCP segment; storing control information associated with said out-of-order TCP segment locally on said wireless network processor; placing said out-of-order TCP segment in said corresponding portions of said host buffer based on said stored control information so that said out-of-order TCP segment is in order with respect to one or more previously received TCP segments; computing a buffer address in a first buffer for a location of a first byte of data for said one or more previously TCP segments; computing a buffer address for a first byte of data in said current TCP segment based on a buffer address that corresponds to a TCP segment number of a second TCP segment; and computing an offset from a TCP segment number that corresponds to a first TCP segment to a first byte of said current TCP segment. - View Dependent Claims (26, 27, 28, 29, 30, 31, 32)
-
-
33. A system for handling out-of-order TCP segments in a wireless, the system comprising:
-
at least one processor that performs parsing incoming TCP segments received by a wireless network processor into corresponding TCP header segments and/or corresponding TCP data segments, said at least one processor stores said parsed incoming TCP segments in a host buffer, wherein said corresponding TCP header segments and/or said corresponding TCP data segments are stored in separate corresponding portions of said host buffer;
for said stored incoming TCP segments, said at least one processor determines from said parsed incoming TCP segments, one or more previously received TCP segments and a subsequent received TCP segment, whether a current received TCP segment is an in-order TCP segment or an out-of-order TCP segment with respect to an immediately previously received TCP segment; andwhen said current received TCP segment is said out-of-order TCP segment; said at least one processor stores control information associated with said out-of-order TCP segment locally on said wireless network processor; said at least one processor places said out-of-order TCP segment in said corresponding portions of said host buffer based on said stored control information so that said out-of-order TCP segment is in order with respect to one or more previously received TCP segments; wherein said at least one processor places said in-order TCP segment adjacent to said immediately previously received TCP segment in said host buffer, if said current received TCP segment is an in-order TCP segment; wherein said at least one processor places said in-order TCP segment starting from an address adjacent to said recorded address occupied by said end of said one or more previously received TCP segments in said corresponding portions of said host buffer; and wherein said at least one processor performs one or both of; records by said wireless network processor, data indicating one or more of; an end buffer address occupied by an end of said in-order TCP segment; a start buffer address plus a length of a data portion of said in-order TCP segment; and
/ora buffer address of a byte following an end of said in-order TCP segment; and
/orstores on said wireless network processor, control information associated with said indicating data.
-
-
34. A system for handling out-of-order TCP segments in a wireless, the system comprising:
-
at least one processor that performs parsing incoming TCP segments received by a wireless network processor into corresponding TCP header segments and/or corresponding TCP data segments, said at least one processor stores said parsed incoming TCP segments in a host buffer, wherein said corresponding TCP header segments and/or said corresponding TCP data segments are stored in separate corresponding portions of said host buffer;
for said stored incoming TCP segments, said at least one processor determines from said parsed incoming TCP segments, one or more previously received TCP segments and a subsequent received TCP segment, whether a current received TCP segment is an in-order TCP segment or an out-of-order TCP segment with respect to an immediately previously received TCP segment; andwhen said current received TCP segment is said out-of-order TCP segment; said at least one processor stores control information associated with said out-of-order TCP segment locally on said wireless network processor; said at least one processor places said out-of-order TCP segment in said corresponding portions of said host buffer based on said stored control information so that said out-of-order TCP segment is in order with respect to one or more previously received TCP segments; wherein said at least one processor performs one or both of; records on said wireless network processor, data indicating one or both of; an address occupied by a start of said placed out-of-order TCP segment and an address occupied by an end of said placed out-of-order TCP segment; and
/ora start buffer address of said placed out-of-order TCP segment plus a length occupied by said placed out-of-order TCP segment; and
/or stores on said wireless network processor, control information associated with said indicating data on said wireless network processor.
-
Specification