IP Library › Granted Patent US 12,341,678
Granted Patent B2
US 12,341,678 · App. 18/253,772 · Granted Jun 24, 2025

Method and system for efficient input/output transfer in network devices

Inventors: Amir Roozbeh (Stockholm, SE); Alireza Farshin (Stockholm, SE); Dejan Kostic (Solna, SE); Gerald Q Maguire, Jr. (Stockholm, SE)
Assignee: Telefonaktiebolaget LM Ericsson (publ)
H04L43/0894H04L43/0829H04L49/3018
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 12,341,678
App. No.
18/253,772
Granted
Jun 24, 2025
Kind
B2
Abstract

Methods and systems for selective direct access to a processing unit of a network device are described. A network interface of the network device receives packets of a flow. The network interface determines based on attributes of the packets that the packets are to be directly sent to the processing unit. In response to determining that the packets are to be directly sent to the processing unit, they are directly sent to the processing unit for processing.

Claims (63)

1. A method in a network interface (NI) that is coupled with a processing unit for processing packets received through the NI, the method comprising:

receiving configuration information that includes one or more attributes to configure a packet transfer optimizer of the NI to selectively transfer a packet directly to the processing unit or to a main memory associated with the processing unit;

configuring, by the packet transfer optimizer, first receive queues from a set of queues, the first receive queues for direct packet transfer to the processing unit;

configuring, by the packet transfer optimizer, second receive queues from the set of queues, the second receive queues for packet transfer to the main memory associated with the processing unit, wherein the second receive queues are separate from the first receive queues;

receiving at the NI a first packet;

determining based on one or more first attributes of the first packet that the first packet is to be directly sent to the processing unit;

responsive to determining that the first packet is to be directly sent to the processing unit, directly sending the first packet to the processing unit for processing via the first receive queues;

receiving a second packet;

determining based on one or more second attributes of the second packet that the second packet is not to be directly sent to the processing unit;

responsive to determining that the second packet is not to be directly sent to the processing unit, sending the second packet to be stored in the main memory via the second receive queues, before being processed by the processing unit; and

re-assigning one or more queues to the first receive queues instead of being enabled for accessing the main memory based on a rate of receipt of traffic at the NI.

2. The method of claim 1 further comprises:

responsive to determining that the first packet is to be directly sent to the processing unit, adding the first packet to the first receive queues for direct memory access.

3. The method of claim 1 further comprising:

responsive to determining that the second packet is not to be directly sent to the processing unit, adding the second packet to the second receive queues for direct memory access.

4. The method of claim 1 , wherein the second packet is to be retrieved from the main memory and to be made available in a cache of the processing unit for processing.

5. The method of claim 1 , wherein the one or more first attributes include one or a combination of a user identifier, a user selector, a bearer selector, an application identifier, a protocol identifier, a source Internet Protocol (IP) address, a destination IP address, a source port number, and a destination port number.

6. The method of claim 1 further comprising:

monitoring the rate of receipt of traffic at the NI and a miss rate of packets.

7. The method of claim 6 further comprising;

updating information related to configuration of the first receive queues that are enabled for directly sending packets to the processing unit.

8. The method of claim 7 , wherein the updating the first receive queues that are enabled for directly sending packets to the processing unit is further performed based on the miss rate of packets.

9. The method of claim 7 further comprising:

transmitting to a network element executed on the processing unit, an indication regarding the updating of the first receive queues.

10. The method of claim 1 further comprising:

updating a size of a cache of the processing unit that is dedicated to direct cache access of the processing unit from the network interface.

11. A non-transitory machine-readable storage medium comprising computer program code which, when executed by a computer, causes a network interface (NI) that is coupled with a processing unit for processing packets received through the NI to perform operations comprising:

receiving configuration information that includes one or more attributes to configure a packet transfer optimizer of the NI to selectively transfer a packet directly to the processing unit or to a main memory associated with the processing unit;

configuring, by the packet transfer optimizer, first receive queues from a set of queues, the first receive queues for direct packet transfer to the processing unit;

configuring, by the packet transfer optimizer, second receive queues from the set of queues, the second receive queues for packet transfer to the main memory associated with the processing unit, wherein the second receive queues are separate from the first receive queues;

receiving at the NI a first packet;

determining based on one or more first attributes of the first packet that the first packet is to be directly sent to the processing unit;

responsive to determining that the first packet is to be directly sent to the processing unit, directly sending the first packet to the processing unit for processing via the first receive queues:

receiving a second packet;

determining based on one or more second attributes of the second packet that the second packet is not to be directly sent to the processing unit;

responsive to determining that the second packet is not to be directly sent to the processing unit, sending the second packet to be stored in the main memory via the second receive queues, before being processed by the processing unit; and

re-assigning one or more queues to the first receive queues instead of being enabled for accessing the main memory based on a rate of receipt of traffic at the NI.

12. A network interface (NI) that is to be coupled with a processing unit for processing packets received through the NI, the NI comprising:

a processor; and

a storage medium that contains instructions that, when executed by the processor, cause the NI to perform operations to:

receive configuration information that includes one or more attributes to configure a packet transfer optimizer of the NI to selectively transfer a packet directly to the processing unit or to a main memory associated with the processing unit;

configure, by the packet transfer optimizer, first receive queues from a set of queues, the first receive queues for direct packet transfer to the processing unit;

configure, by the packet transfer optimizer, second receive queues from the set of queues, the second receive queues for packet transfer to the main memory associated with the processing unit, wherein the second receive queues are separate from the first receive queues;

receive at the NI a first packet;

determine based on one or more first attributes of the first packet that the first packet is to be directly sent to the processing unit;

when determined that the first packet is to be directly sent to the processing unit, directly send the first packet to the processing unit for processing via the first receive queues;

receive a second packet;

determine based on one or more second attributes of the second packet that the second packet is not to be directly sent to the processing unit;

when determined that the second packet is not to be directly sent to the processing unit, send the second packet to be stored in the main memory via the second receive queues, before being processed by the processing unit; and

re-assign one or more queues to the first receive queues instead of being enabled for accessing the main memory based on a rate of receipt of traffic at the NI.

13. The network interface of claim 12 , wherein the operations further comprise:

when determined that the first packet is to be directly sent to the processing unit, add the first packet to the first receive queues for direct cache access.

14. The network interface of claim 12 , wherein the operations further comprise:

when determined that the second packet is not to be directly sent to the processing unit, add the second packet to the second receive queues for direct memory access.

15. The network interface of claim 12 , wherein the second packet is to be retrieved from the main memory and to be made available in a cache of the processing unit for processing.

16. The network interface of claim 12 , wherein the one or more first attributes include one or a combination of a user identifier, a user selector, a bearer selector, an application identifier, a protocol identifier, a source Internet Protocol (IP) address, a destination IP address, a source port number, and a destination port number.

17. The network interface of claim 12 , wherein the operations further to:

monitor the rate of receipt of traffic at the NI and a miss rate of packets.

18. The network interface of claim 17 , wherein the operations further to:

update information related to configuration of the first receive queues that are enabled for directly sending packets to the processing unit.

19. The network interface of claim 18 , wherein to update the first receive queues that are enabled for directly sending packets to the processing unit is further performed based on the miss rate of packets.

20. The network interface of claim 18 , wherein the operations further to:

transmit to a network element executed on the processing unit, an indication regarding the update of the first receive queues.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 20, 2023
From: ROOZBEH, AMIR; FARSHIN, ALIREZA; KOSTIC, DEJAN; MAGUIRE, GERALD Q, JR.
To: TELEFONAKTIEBOLAGET LM ERICSSON (PUBL)
Reel/Frame 063709/0763 →
Continuity (1)
Related Publication 20230421473A1 · Dec 28, 2023
References Cited (49)
US 6092127A · Tausheck · 2000 [cited by examiner]
US 6279052B1 · Upadrastra · 2001 [cited by examiner]
US 7552232B2 · Helmer, Jr. · 2009 [cited by examiner]
US 8732351B1 · Chudgar et al. · 2014 [cited by applicant]
US 8732352B1 · Herbeck · 2014 [cited by examiner]
US 10541947B2 · Melman et al. · 2020 [cited by applicant]
US 11847507B1 · Borkovic · 2023 [cited by examiner]
US 20040076161A1 · Lavian · 2004 [cited by examiner]
US 20050232303A1 · Deforche et al. · 2005 [cited by applicant]
US 20060107122A1 · Kasahara · 2006 [cited by examiner]
US 20060281451A1 · Zur · 2006 [cited by examiner]
US 20070220179A1 · Hanaoka · 2007 [cited by examiner]
US 20070255802A1 · Aloni · 2007 [cited by examiner]
US 20080005296A1 · Lee · 2008 [cited by examiner]
US 20080091851A1 · Sierra · 2008 [cited by examiner]
US 20080137568A1 · Ho · 2008 [cited by examiner]
US 20090089454A1 · Huggahalli et al. · 2009 [cited by applicant]
US 20090182969A1 · Norgaard · 2009 [cited by examiner]
US 20100238946A1 · Lu · 2010 [cited by examiner]
US 20100325391A1 · Talla · 2010 [cited by examiner]
US 20110258282A1 · Cantu · 2011 [cited by examiner]
US 20120301118A1 · Ju · 2012 [cited by examiner]
US 20130114413A1 · Song et al. · 2013 [cited by applicant]
US 20130191600A1 · Kuesel · 2013 [cited by examiner]
US 20140281349A1 · Peters · 2014 [cited by examiner]
US 20150149613A1 · Kakadia · 2015 [cited by examiner]
US 20150163175A1 · Cardona · 2015 [cited by examiner]
US 20150227312A1 · Feehrer · 2015 [cited by examiner]
US 20160321153A1 · Zhang · 2016 [cited by examiner]
US 20170091108A1 · Arellano et al. · 2017 [cited by applicant]
US 20170318031A1 · Zhou · 2017 [cited by examiner]
US 20180006970A1 · Browne · 2018 [cited by examiner]
US 20180159803A1 · Cornett et al. · 2018 [cited by applicant]
US 20190097938A1 · Talla · 2019 [cited by examiner]
US 20200204657A1 · Khan et al. · 2020 [cited by applicant]
US 20200259763A1 · Guim Bernat et al. · 2020 [cited by applicant]
US 20220138498A1 · Abelha Ferreira · 2022 [cited by examiner]
WO 2001067237A2 · 2001 [cited by applicant]
WO WO02065711A1 · 2002 [cited by examiner]
WO WO2014092551A1 · 2014 [cited by examiner]
WO 2017052909A1 · 2017 [cited by applicant]
U.S. Appl. No. 18/253,772, PCT/SE2020/051107, Pending. [cited by applicant]
U.S. Appl. No. 18/253,773, PCT/SE2020/051108, Pending. [cited by applicant]
International Search Report and Written Opinion for Application No. PCT/SE2020/051107, Jun. 9, 2021, 13 pages. [cited by applicant]
International Search Report and Written Opinion for Application No. PCT/SE2020/051108, May 28, 2021, 15 pages. [cited by applicant]
Supplementary European Search Report and Search Opinion, EP App. No. 20962607.6, Apr. 2, 2024, 9 pages. [cited by applicant]
International Preliminary Report on Patentability, PCT App. No. PCT/SE2020/051107, Jun. 1, 2023, 10 pages. [cited by applicant]
International Preliminary Report on Patentability, PCT App. No. PCT/SE2020/051108, Jun. 1, 2023, 12 pages. [cited by applicant]
European search report and Search Opinion, EP App. No. 20962608.4, May 31, 2024, 11 pages. [cited by applicant]