Multi-data receive processing according to a data communication protocol
First Claim
Patent Images
1. A network device comprising:
- a driver module for communicating with a network, wherein the driver module receives and collects a plurality of data packets destined for a same application, the driver module configured to wait for a predefined condition when collecting multiple data packets for the same application;
a protocol module communicatively coupled to the driver module, wherein the protocol module processes aggregated headers of the plurality of data packets to provide routing and flow control; and
an application communicatively coupled to the protocol module, wherein the application module processes aggregated payloads of the plurality of data packets.
2 Assignments
0 Petitions
Accused Products
Abstract
Embodiments of the present invention provide for multi-data receiving and processing by a network communication protocol. The present invention aggregates multiple data packets destined for the same application. The present invention also provides for header/payload splitting. The present invention also provides for the separate processing of aggregated headers and aggregated payloads. As a result, per-packet processing costs are reduced and data locality is increased.
28 Citations
33 Claims
-
1. A network device comprising:
-
a driver module for communicating with a network, wherein the driver module receives and collects a plurality of data packets destined for a same application, the driver module configured to wait for a predefined condition when collecting multiple data packets for the same application; a protocol module communicatively coupled to the driver module, wherein the protocol module processes aggregated headers of the plurality of data packets to provide routing and flow control; and an application communicatively coupled to the protocol module, wherein the application module processes aggregated payloads of the plurality of data packets. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. A method of performing network communication comprising:
-
collecting and accessing a plurality of received data packets destined for a same application; aggregating the plurality of received data packets until a predefined condition is satisfied; splitting the plurality of received data packets into aggregated headers and aggregated payloads; buffering the aggregate headers in a first contiguous memory block; buffering the aggregate payloads in a second contiguous memory block;
buffering metadata in a third contiguous memory block, wherein the metadata comprises characteristics of the buffered aggregate headers and buffered aggregated payloads;processing the buffered aggregated headers according to a network communication protocol; and providing the buffered aggregated payloads to a destination application. - View Dependent Claims (15, 16, 17, 18, 19, 20, 21, 22)
-
-
23. A mechanism for performing network communication comprising:
-
a means for processing aggregated headers of a plurality of received data packets according to a protocol, the aggregated headers collected from received data packets destined for a same application until a predefined condition is satisfied; and a means for providing aggregated payloads of the plurality of received data packets to a destination application, the aggregated payloads collected from received data packets destined for the same application until a predefined condition is satisfied. - View Dependent Claims (24, 25, 26, 27, 28, 29)
-
-
30. A computer-readable medium having computer executable instructions which when executed by a network device causes the network device to implement a multi-data receiving method, the method comprising:
-
receiving and collecting data packets destined for the same application; aggregating the data packets in memory until a predefined condition is satisfied; splitting the data packets into headers and payloads; buffering aggregated headers in a first contiguous memory block; buffering aggregated payloads in a second contiguous memory block; buffering metadata in a third contiguous memory block, wherein the metadata comprises characteristics of the buffered aggregated headers and buffered aggregated payloads; processing the buffered aggregated headers according to a network communication protocol; and providing the buffered aggregated payloads to a destination application. - View Dependent Claims (31, 32, 33)
-
Specification