Packet coalescing
First Claim
1. A method, comprising:
- receiving network packets transmitted over a network, multiple ones of the network packets having the same set of multiple header structures within, each of the multiple ones of the network packets belonging to a respective flow of network packets;
for multiple respective flows of network packets, maintaining, at least;
(1) data of payloads of network packets being coalesced for the multiple respective flows; and
(2) a respective number of packets being coalesced for the multiple respective flows;
determining a first of the received network packets is of a flow matching a one of the multiple respective flows;
adding the data of the payload of the first of the received network packets to the data of payloads of network packets being coalesced for the one of the multiple respective flows;
incrementing the respective number of packets being coalesced for the one of the multiple respective flows;
determining a second of the received network packets is of a flow matching the one of the multiple respective flows;
determining that a protocol stack should process data of the network packets corresponding to at least one of the respective flows;
based on the determining that the protocol stack should process data of the network packets corresponding to the at least one of the respective flows, generating data corresponding to a network packet having;
(1) the same set of multiple header structures found within each of the multiple network packets; and
(2) a payload corresponding to a combination of the data of the payloads of the network packets being coalesced for the respective flow; and
causing protocol stack processing of the generated data corresponding to a network packet instead of the multiple received network packets associated with the flow; and
not adding data of the payload of the second of the received network packets to the payloads of network packets being coalesced for the one of the multiple respective flows.
0 Assignments
0 Petitions
Accused Products
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.
-
Citations
12 Claims
-
1. A method, comprising:
-
receiving network packets transmitted over a network, multiple ones of the network packets having the same set of multiple header structures within, each of the multiple ones of the network packets belonging to a respective flow of network packets; for multiple respective flows of network packets, maintaining, at least; (1) data of payloads of network packets being coalesced for the multiple respective flows; and (2) a respective number of packets being coalesced for the multiple respective flows; determining a first of the received network packets is of a flow matching a one of the multiple respective flows; adding the data of the payload of the first of the received network packets to the data of payloads of network packets being coalesced for the one of the multiple respective flows; incrementing the respective number of packets being coalesced for the one of the multiple respective flows; determining a second of the received network packets is of a flow matching the one of the multiple respective flows; determining that a protocol stack should process data of the network packets corresponding to at least one of the respective flows; based on the determining that the protocol stack should process data of the network packets corresponding to the at least one of the respective flows, generating data corresponding to a network packet having; (1) the same set of multiple header structures found within each of the multiple network packets; and (2) a payload corresponding to a combination of the data of the payloads of the network packets being coalesced for the respective flow; and causing protocol stack processing of the generated data corresponding to a network packet instead of the multiple received network packets associated with the flow; and not adding data of the payload of the second of the received network packets to the payloads of network packets being coalesced for the one of the multiple respective flows. - View Dependent Claims (2, 3, 4)
-
-
5. A computer program, disposed on a non-transitory computer readable storage medium, comprising instructions for causing a device to:
-
receive network packets transmitted over a network, multiple ones of the network packets having the same set of multiple header structures within, each of the multiple ones of the network packets belonging to a respective flow of network packets; for multiple respective flows of network packets, maintain, at least; (1) data of payloads of network packets being coalesced for the multiple respective flows; and (2) a respective number of packets being coalesced for each of multiple respective flows; determine a first of the received network packets is of a flow matching a one of the multiple respective flows; add the data of the payload of the first of the received network packets to data of payloads of network packets being coalesced for the one of the multiple respective flows; increment the respective number of packets being coalesced for the one of the multiple respective flows; determine a second of the received network packets is of a flow matching the one of the multiple respective flows; determine that a protocol stack should process data of the network packets corresponding to at least one of the respective flows; based on a determination that the protocol stack should process data of the network packets corresponding to the at least one of the respective flows, generate data corresponding to a network packet having; (1) the same set of multiple header structures found within each of the multiple network packets; and (2) a payload corresponding to a combination of the data of the payloads of the network packets being coalesced for the respective flow; and cause protocol stack processing of the generated data corresponding to a network packet instead of the multiple received network packets associated with the flow; and not add data of the payload of the second of the received network packets to the payloads of network packets being coalesced for the one of the multiple respective flows. - View Dependent Claims (6, 7, 8)
-
-
9. A network device, comprising circuitry configured to, when in operation:
-
receive network packets transmitted over a network, multiple ones of the network packets having the same set of multiple header structures within, each of the multiple ones of the network packets belonging to a respective flow of network packets; for multiple respective flows of network packets, maintain, at least; (1) data of payloads of network packets being coalesced for each of the multiple respective flows; and (2) a respective number of packets being coalesced for each of multiple respective flows; determine a first of the received network packets is of a flow matching a one of the multiple respective flows; add data of the payload of the first of the received network packets to the data of payloads of network packets being coalesced for the one of the multiple respective flows; increment the respective number of packets being coalesced for the one of the multiple respective flows; determine a second of the received network packets is of a flow matching the one of the multiple respective flows; and determine that a protocol stack should process data of the network packets corresponding to at least one of the respective flows; based on a determination that the protocol stack should process data of the network packets corresponding to the at least one of the respective flows, generate data corresponding to a network packet having; (1) the same set of multiple header structures found within each of the multiple network packets; and (2) a payload corresponding to a combination of the data of the payloads of the network packets being coalesced for the respective flow; and cause the protocol stack processing of the generated data corresponding to the network packet instead of the multiple received network packets associated with the flow; and not add data of the payload of the second of the received network packets to the payloads of network packets being coalesced for the one of the multiple respective flows. - View Dependent Claims (10, 11, 12)
-
Specification