IP Library Granted Patent US 11,971,833
Granted Patent B2
US 11,971,833 · App. 17/709,636 · Granted Apr 30, 2024

Dynamic buffer selection in ethernet controllers

Inventors: Corneliu-Ilie Calciu (Bucharest, RO); Catalin-Eugen Nitipir (Bucharest, RO); Radu Mihai Iorga (Bucharest, RO); George-Andrei Stanescu (Ilfov, RO)
Assignee: LENOVO GLOBAL TECHNOLOGY (UNITED STATES) INC.
G06F13/28G06F3/061G06F3/0656G06F3/0673G06F2213/28
View Patent ↗
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 11,971,833
App. No.
17/709,636
Granted
Apr 30, 2024
Kind
B2
Abstract

Dynamic buffer selection in ethernet controllers including determining, by an ethernet controller, based on a received header of a packet, a length of the packet; selecting, from a plurality of buffers, a buffer of a buffer size based on the length of the packet, wherein the plurality of buffers comprises a plurality of different buffer sizes; and transferring the packet to the selected buffer.

Claims (27)

1. A method comprising:

determining, by an ethernet controller, based on a received header of a packet, a length of the packet;

selecting, from a plurality of buffers, a buffer of a buffer size based on the length of the packet, wherein the plurality of buffers comprises a plurality of different buffer sizes, wherein the plurality of buffers includes a first set of buffers with a first buffer size and a second set of buffers with a second buffer size, wherein the second buffer size is greater than the first buffer size;

transferring the packet to the selected buffer; and

responsive to failing to determine the length of the packet, selecting a buffer from the second set of buffers.

2. The method of claim 1 , wherein selecting the buffer is performed by a direct memory access (DMA) controller included as a component of the ethernet controller, wherein selecting the buffer is based on both the length of the packet and the buffer size for the buffer.

3. The method of claim 1 , wherein selecting the buffer includes selecting a DMA descriptor identifying the selected buffer of the buffer size, wherein the selected DMA descriptor is one of a plurality of DMA descriptors, the plurality of DMA descriptors identifying the plurality of buffers.

4. The method of claim 3 , wherein each of the plurality of DMA descriptors identifying buffers with a same buffer size are included in a same DMA descriptor chain.

5. The method of claim 1 , wherein the first set of buffers comprises a greater number of buffers than the second set of buffers.

6. An apparatus comprising a computing device, a computer processor, and a computer memory operatively coupled to the computer processor, the computer memory having disposed within it computer program instructions that, when executed by the computer processor, cause the apparatus to carry out the steps of:

determining, by an ethernet controller, based on a received header of a packet, a length of the packet;

selecting, from a plurality of buffers, a buffer of a buffer size based on the length of the packet, wherein the plurality of buffers comprises a plurality of different buffer sizes, wherein the plurality of buffers includes a first set of buffers with a first buffer size and a second set of buffers with a second buffer size, wherein the second buffer size is greater than the first buffer size;

transferring the packet to the selected buffer; and

responsive to failing to determine the length of the packet, selecting a buffer from the second set of buffers.

7. The apparatus of claim 6 , further comprising a direct memory access (DMA) controller, wherein selecting the buffer is performed by the DMA controller.

8. The apparatus of claim 6 , wherein selecting the buffer includes selecting a DMA descriptor identifying the selected buffer of the buffer size, wherein the selected DMA descriptor is one of a plurality of DMA descriptors, the plurality of DMA descriptors identifying the plurality of buffers.

9. The apparatus of claim 8 , wherein each of the plurality of DMA descriptors identifying buffers with a same buffer size are included in a same DMA descriptor chain.

10. The apparatus of claim 1 , wherein the first set of buffers comprises a greater number of buffers than the second set of buffers.

11. A computer program product comprising a non-volatile computer readable storage medium and computer program instructions stored therein that are configured to, when executed by a processor, cause a computer to perform operations comprising:

determining, by an ethernet controller, based on a received header of a packet, a length of the packet;

selecting, from a plurality of buffers, a buffer of a buffer size based on the length of the packet, wherein the plurality of buffers comprises a plurality of different buffer sizes, wherein the plurality of buffers includes a first set of buffers with a first buffer size and a second set of buffers with a second buffer size, wherein the second buffer size is greater than the first buffer size;

transferring the packet to the selected buffer; and

responsive to failing to determine the length of the packet, selecting a buffer from the second set of buffers.

12. The computer program product of claim 11 , wherein selecting the buffer is performed by a direct memory access (DMA) controller included as a component of the ethernet controller.

13. The computer program product of claim 11 , wherein selecting the buffer includes selecting a DMA descriptor identifying the selected buffer of the buffer size, wherein the selected DMA descriptor is one of a plurality of DMA descriptors, the plurality of DMA descriptors identifying the plurality of buffers.

14. The computer program product of claim 13 , wherein each of the plurality of DMA descriptors identifying buffers with a same buffer size are included in a same DMA descriptor chain.

15. The computer program product of claim 11 , wherein the first set of buffers comprises a greater number of buffers than the second set of buffers.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 20, 2025
From: LENOVO GLOBAL TECHNOLOGIES INTERNATIONAL LIMITED
To: LENOVO GLOBAL TECHNOLOGIES SWITZERLAND INTERNATIONAL GMBH
Reel/Frame 070269/0207 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 20, 2025
From: LENOVO ENTERPRISE SOLUTIONS (SINGAPORE) PTE LTD.
To: LENOVO GLOBAL TECHNOLOGIES INTERNATIONAL LTD.
Reel/Frame 070269/0252 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 14, 2024
From: CALCIU, CORNELIU-ILIE; NITIPIR, CATALIN-EUGEN; IORGA, RADU MIHAI; STANESCU, GEORGE-ANDREI
To: LENOVO GLOBAL TECHNOLOGY (UNITED STATES) INC.
Reel/Frame 066775/0826 →
Continuity (1)
Related Publication 20230315660A1 · Oct 5, 2023