US2017048142A1PendingUtilityA1

Packet coalescing

Assignee: INTEL CORPPriority: Nov 16, 2004Filed: Oct 31, 2016Published: Feb 16, 2017
Est. expiryNov 16, 2024(expired)· nominal 20-yr term from priority
H04L 45/74H04L 69/161H04L 69/16H04L 69/166H04L 49/20
57
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

In general, in one aspect, the disclosures describes a method that includes receiving multiple ingress Internet Protocol packets, each of the multiple ingress Internet Protocol packets having an Internet Protocol header and a Transmission Control Protocol segment having a Transmission Control Protocol header and a Transmission Control Protocol payload, where the multiple packets belonging to a same Transmission Control Protocol/Internet Protocol flow. The method also includes preparing an Internet Protocol packet having a single Internet Protocol header and a single Transmission Control Protocol segment having a single Transmission Control Protocol header and a single payload formed by a combination of the Transmission Control Protocol segment payloads of the multiple Internet Protocol packets. The method further includes generating a signal that causes receive processing of the Internet Protocol packet.

Claims

exact text as granted — not AI-modified
1 . A method comprising:
 receiving multiple ingress Internet Protocol packets, each of the multiple ingress Internet Protocol packets having an Internet Protocol header and a Transmission Control Protocol segment having a Transmission Control Protocol header and a Transmission Control Protocol payload, the multiple packets belonging to a same Transmission Control Protocol/Internet Protocol flow;   preparing an Internet Protocol packet having a single Internet Protocol header and a single Transmission Control Protocol segment having a single Transmission Control Protocol header and a single payload formed by a combination of the Transmission Control Protocol segment payloads of the multiple Internet Protocol packets; and   generating a signal that causes receive processing of the Internet Protocol packet.   
     
     
         2 . The method of  claim 1 , further comprising
 initiating at least one direct memory access to store the single Transmission Control Protocol header, the single Internet Protocol header, and the payloads of the Transmission Control Protocol segments to a memory.   
     
     
         3 . The method of  claim 2 ,
 further comprising contiguously storing the payloads in the memory.   
     
     
         4 . The method of  claim 1 ,
 wherein the preparing comprises:   determining a Transmission Control Protocol checksum to store in the single Transmission Control Protocol header, and   determining a byte length to store in the single Internet Protocol header.   
     
     
         5 . The method of  claim 1 ,
 wherein the preparing comprises adjusting at least one value of at least one header of one of the multiple packets received.   
     
     
         6 . The method of  claim 1 , wherein the preparing comprises determining an acknowledged sequence number of the single Transmission Control Protocol header. 
     
     
         7 . The method of  claim 1 ,
 wherein the flow comprises a flow identified, at least in part, by the received Internet Protocol packet's Internet Protocol source and destination addresses included in the Internet Protocol packet's Internet Protocol header, and the Transmission Control Protocol source and destination port numbers of the Transmission Control Protocol segment header included within the Internet Protocol packet.   
     
     
         8 . The method of  claim 1 ,
 wherein the receiving, preparing, and generating comprises receiving, preparing, and generating by a network interface controller.   
     
     
         9 . The method of  claim 1 , further comprising excluding at least one packet belonging to the same flow from the multiple packets based on at least one selected from the following group:
 the at least one packet includes an invalid Transmission Control Protocol checksum;   the at least one packet does not include a Transmission Control Protocol data segment;   the at least one packet includes a Transmission Control Protocol segment received out-of order; and   the at least one packet includes a Transmission Control Protocol urgent flag set.   
     
     
         10 . The method of  claim 1 , further comprising:
 maintaining a table identifying different flows, the table associating a respective flow with at least one selected from the following group: a sequence number, a number of payload bytes, an address of a packet descriptor, an address of a payload, and an address of a header.   
     
     
         11 . The method of  claim 1 , wherein the preparing comprises preparing based on a window of time that is less than an interrupt moderation window of time. 
     
     
         12 . The method of  claim 1 , further comprising indicating a number of Transmission Control Protocol segment payloads combined via a descriptor. 
     
     
         13 . The method of  claim 12 , further comprising indicating a number of ACKs coalesced via the descriptor. 
     
     
         14 . A network interface controller, the controller comprising:
 at least one interface to a communications medium;   at least one media access controller; and   circuitry to:
 receive multiple ingress Internet Protocol packets, each of the multiple ingress Internet Protocol packets having an Internet Protocol header and a Transmission Control Protocol segment having a Transmission Control Protocol header and a Transmission Control Protocol payload, the multiple packets belonging to a same Transmission Control Protocol/Internet Protocol flow; 
 prepare an Internet Protocol packet having a single Internet Protocol header and a single Transmission Control Protocol segment having a single Transmission Control Protocol header and a payload formed by a combination of the Transmission Control Protocol segment payloads of the multiple Internet Protocol packets; and 
 generate a signal that causes receive processing of the Internet Protocol packet. 
   
     
     
         15 . The controller of  claim 14 , further comprising
 circuitry to initiate at least one direct memory access to store the single Transmission Control Protocol header, the single Internet Protocol header, and the payloads of the Transmission Control Protocol segments to a memory.   
     
     
         16 . The controller of  claim 14 ,
 wherein the circuitry to prepare comprises circuitry to:
 determine a Transmission Control Protocol checksum to store in the single Transmission Control Protocol header, and 
 determine a byte length to store in the single Internet Protocol header. 
   
     
     
         17 . The controller of  claim 14 ,
 wherein the circuitry to prepare comprises circuitry to adjust at least one value of at least one header of one of the multiple packets received.   
     
     
         18 . The controller of  claim 14 , wherein the circuitry to prepare comprises circuitry to determine an acknowledged sequence number of the single Transmission Control Protocol header. 
     
     
         19 . The controller of  claim 14 ,
 wherein the flow comprises a flow identified, at least in part, by the received Internet Protocol packet's Internet Protocol source and destination addresses included within the Internet Protocol header and the Transmission Control Protocol source and destination port numbers of the Transmission Control Protocol segment header included within the Internet Protocol packet.   
     
     
         20 . The controller of  claim 14 ,
 wherein the received ingress packets comprise packets received within a period of time that is less than a network interface controller's interrupt moderation period of time.

Join the waitlist — get patent alerts

Track US2017048142A1 — get alerts on status changes and closely related new filings.

We store only your email — no account needed. See our privacy policy.