IP Library Patent Application 14863106
Patent Application
App. No. 14/863,106

Receive Side Packet Aggregation

Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US None
App. No.
14/863,106
Abstract

A system for enhanced resource utilization includes a network interface with access to memory of a device, in communication with an operating system of the device. The system receives, from the operating system, an identification of a predetermined amount of the memory for a packet buffer, store multiple packets in the allocated memory. A total size of the multiple packets is smaller than or equal to the predetermined amount of memory. The system generates a status record for each received packet stored in the allocated memory, and stores the generated status records in the allocated memory. The system also allocates a socket buffer for each packet stored in the allocated memory such that the socket buffer has reference to the corresponding packet in the allocated memory.

Claims (49)

1 . A method for enhanced resource utilization, comprising:

requesting, by a network driver of a device from an operating system executed by a processor of the device, allocation of a predetermined amount of memory of the device;

receiving, by the network driver from the operating system, an identification of the allocated memory;

storing, by a network interface, a first received packet in the allocated memory, the first received packet smaller than the predetermined amount of memory; and

storing, by the network interface, a second received packet in the allocated memory, the second received packet smaller than a difference between the predetermined amount of memory and a size of the first received packet.

2 . The method of claim 1 , further comprising:

generating, by the network interface, a first status record for the first received packet and a second status record for the second received packet; and

storing, by the network interface, the generated first and second status records in the allocated memory.

3 . The method of claim 2 , wherein the first status record further comprises a predetermined bit set to a first value to indicate the presence of the second packet in the allocated memory.

4 . The method of claim 3 , wherein the first status record further comprises a length of the first received packet and the second status record further comprises a length of the second received packet.

5 . The method of claim 4 , further comprising:

determining, by the network interface, to store a third received packet in the allocated memory;

adding, by the network interface, each packet length identified in a status record stored in the allocated memory until reaching a status record having the predetermined bit set to a second value to indicate an absence of any further packets in the allocated memory; and

storing the third received packet in the allocated memory at a start location equal to the added packet lengths.

6 . The method of claim 1 , further comprising incrementing, by the network driver, a value of a counter, responsive to storing the first packet by the network interface.

7 . The method of claim 6 , further comprising:

reading the first packet from the allocated memory, by the network driver; and

decrementing the value of the counter, responsive to processing of the first packet.

8 . The method of claim 7 , further comprising:

determining that the value of the counter indicates that all packets stored in the allocated memory have been read; and

providing to the operating system an identification that the allocated memory may be de-allocated.

9 . The method of claim 1 , wherein a system bus of the device has a predetermined maximum throughput, and further comprising:

providing to the system bus, by the network interface, a portion of the first received packet and a portion of the second packet, the total size of the portions equal to a maximum transaction size corresponding to the predetermined maximum throughput.

10 . A system for enhanced resource utilization, comprising:

a network interface with access to memory of a device, in communication with an operating system of the device, configured for:

receiving, by a network driver of the device and from the operating system, an identification of a predetermined amount of the memory for a packet buffer,

storing a plurality of packets in the allocated memory, a total size of the plurality of packets smaller than or equal to the predetermined amount of memory,

generating a status record for each received packet stored in the allocated memory, and

storing the generated status records in the allocated memory.

11 . The system of claim 10 , wherein each status record for each received packet comprises a predetermined bit set to a first value to indicate the presence of another packet stored at a location in the allocated memory following said received packet, or set to a second value to indicate the absence of said another packet.

12 . The system of claim 11 , wherein each status record for each received packet further comprises an identification of a length of said received packet.

13 . The system of claim 12 , wherein, iteratively for each received packet, the network interface is further configured to:

add the packet length identified in each status record stored in the allocated memory until reaching a status record having the predetermined bit set to the second value, and

store said received packet in the allocated memory at a start location equal to the added packet lengths.

14 . The system of claim 10 , further comprising a counter, and wherein the network driver is configured to increment a value of the counter.

15 . The system of claim 14 , wherein a networking protocol stack of the device is configured to decrement the value of the counter, responsive to processing a packet of the plurality of packets from the allocated memory.

16 . The system of claim 15 , wherein the operating system is configured to determine that the value of the counter has been decremented to a starting value, and provide an identification that the allocated memory may be de-allocated, responsive to the determination.

17 . The system of claim 10 , wherein the network interface accesses the memory of the device via a system bus with a predetermined maximum throughput, and wherein the operating system is further configured to read a portion of a first packet of the plurality of packets and a portion of a second packet of the plurality of packets, the portions of the first packet and second packet equal in size to the predetermined maximum throughput.

18 . A method, comprising:

receiving, by a network driver of a device from an operating system of the device, an identification of a contiguous region of memory allocated for buffering a packet;

storing, by a network interface, a plurality of packets within the contiguous region of memory;

incrementing, by the network driver, a value of a counter for each packet stored within the contiguous region of memory; and

generating, by the network driver, a corresponding plurality of socket buffer records, each socket buffer record identifying a packet of the plurality of packets and a storage location of said packet within the contiguous region of memory.

19 . The method of claim 18 , further comprising:

processing, by the operating system, a packet of the plurality of packets stored within the contiguous region of memory; and

decrementing, by the operating system, the value of the counter, responsive to processing the packet.

20 . The method of claim 19 , further comprising:

determining, by the operating system, that the value of the counter is equal to a predetermined value; and

requesting the operating system to de-allocate the contiguous region of memory, responsive to the determination.

Assignments (4)
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS Recorded Feb 3, 2017
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: BROADCOM CORPORATION
Reel/Frame 041712/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 1, 2017
From: BROADCOM CORPORATION
To: AVAGO TECHNOLOGIES GENERAL IP (SINGAPORE) PTE. LTD.
Reel/Frame 041706/0001 →
PATENT SECURITY AGREEMENT Recorded Feb 11, 2016
From: BROADCOM CORPORATION
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 037806/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 21, 2015
From: KOSTIC, PREDRAG; ALEKSIC, MILOMIR; MARANDI, VAHID; SIU, STANLEY; YU, TING-KUO
To: BROADCOM CORPORATION
Reel/Frame 036846/0854 →