System and method for a multi-packet data link layer data transmission
First Claim
1. A computer network system, comprising:
- a processor;
a plurality of network devices;
a device driver;
a transport module to create a single consolidated transport header for multiple data packets;
an operating system kernel comprising a multi-packet transmission system to transmit the multiple data packets in a single transmission cycle to a network device coupled to the computer system in a single system call to a data link layer in said operating system kernel, a data size of each of the multiple data packets is dynamically set according to data transfer parameters of the underlying kernel application program to avoid a breakdown of application data into maximum segment size data packets determined by a TCP module prior to being transmitted through a network subsystem,wherein, the multi-packet transmission system comprising a contiguous block of a plurality of header information with associated payload data information defines the single consolidated transport header in a single buffer and appended to a second buffer containing the data packets to be transmitted through a network stack.
2 Assignments
0 Petitions
Accused Products
Abstract
A kernel data transfer method and system for transmitting multiple packets of data in a single block of data presented by application programs to the kernel'"'"'s network subsystem for processing in accordance with data transfer parameters set by the application program. The multi-packet transmit system includes logic that allows header information of the multiple packets of data to be generated in a single buffer and appended to a second buffer containing the data packets to be transmitted through the network stack. The multi-data transmit system allows a device driver to amortize the input/output memory management related overhead across a number of packets. With some assistance from the network stack, the device driver needs to only perform the necessary IOMMU operations on two contiguous memory blocks representing the header information and the data payload of multiple packets during each transmit call.
-
Citations
27 Claims
-
1. A computer network system, comprising:
-
a processor; a plurality of network devices; a device driver; a transport module to create a single consolidated transport header for multiple data packets; an operating system kernel comprising a multi-packet transmission system to transmit the multiple data packets in a single transmission cycle to a network device coupled to the computer system in a single system call to a data link layer in said operating system kernel, a data size of each of the multiple data packets is dynamically set according to data transfer parameters of the underlying kernel application program to avoid a breakdown of application data into maximum segment size data packets determined by a TCP module prior to being transmitted through a network subsystem, wherein, the multi-packet transmission system comprising a contiguous block of a plurality of header information with associated payload data information defines the single consolidated transport header in a single buffer and appended to a second buffer containing the data packets to be transmitted through a network stack. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. An operating system kernel in a computer network, comprising:
-
a network subsystem; a plurality of network devices; a transport module to create a single consolidated transport header for multiple data packets in a multi-packet data block and for processing the multi-packet data block in a single transport cycle; and a network module to compute checksums the multi-packet data block; a multi-packet transmission module comprising a contiguous block of a plurality of header information with associated payload data information for transmitting said multi-packet data block as a single data transmission block in a single system call from said operating system kernel to a requesting one of said plurality of network devices, a data size of each of the multiple data packets is dynamically set according to data transfer parameters of the underlying kernel application program to avoid a breakdown of application data into maximum segment size data packets determined by a TCP module, prior to being transmitted through a network subsystem, wherein the multi-packet transmission module causes the single consolidated transport header information of data packets to be generated in a single buffer and appended to a second buffer containing the data packets to be transmitted through a network stack. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19)
-
-
20. A computer implemented multi-data request transmission system comprising:
-
data request primitive structure logic comprising information for transmitting header and payload information associated with a multi-packet data transmission request into layer 2 addressing packets, the information for transmitting header and payload include a packet header offset information for defining header offset information relative to the base of a header buffer for calculating header input/output address, and pointers to each of a plurality of data packets in the payload; payload data logic for providing payload data information associated with each packet in said multi-packet data transmission request; and packet header information logic for providing header information associated with each of said multi-packet data transmission requests, the header information includes a contiguous block of a plurality of header information with associated payload data information and a header length information for defining space to set aside in main memory from a beginning of current packet header to a beginning of a header of current layer to enable the multi-packet transmission system to traverse a protocol stack in the network system. - View Dependent Claims (21, 22, 23)
-
-
24. A method of transmitting multiple packets in a computer system network to a network device in a single call to a data link layer in said computer network, the method comprising:
-
allocating a master block for a data payload to create a payload page that includes a plurality of payload data; allocating header information and associated block data, the header information includes a contiguous block of a plurality of header information for the plurality of payload data and a header offset information relative to a base of a header buffer for calculating header input/output address; generating header-payload pairs by linking said header information to a payload data, wherein the header information includes pointers to each of the plurality of payloads; allocating a multi-data transmit descriptor and an associating memory block; generating a contiguous data block corresponding to said multiple packets; and transmitting said multi-packet data block to said device driver. - View Dependent Claims (25, 26, 27)
-
Specification