IP Library Granted Patent US 12,425,351
Granted Patent B2
US 12,425,351 · App. 18/253,773 · Granted Sep 23, 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)
H04L47/43H04L47/2483
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,425,351
App. No.
18/253,773
Granted
Sep 23, 2025
Kind
B2
Abstract

Methods and systems for selective access to a processing unit are described. An electronic device that is coupled with the processing unit for processing packets is described. The electronic device is operative to receive a packet; determine based on one or more attributes of the packet that the packet is to be split; and responsive to determining that the packet is to be split, splitting the packet into a first portion and a second portion, where the first portion is to be processed by the processing unit and the second portion is to be stored without being processed by the processing unit; sending the first portion of the packet toward the processing unit for processing; and storing the second portion of the packet.

Claims (59)

1. A method in an electronic device that is coupled with a processing unit for processing packets, the method comprising:

receiving a packet;

determining based on one or more attributes of the packet that the packet is to be split; and

responsive to determining that the packet is to be split,

generating an identifier of the packet;

splitting the packet into a first portion and a second portion, wherein the first portion is to be processed by the processing unit and the second portion is to be stored without being processed by the processing unit;

adding the identifier to the first portion;

sending the first portion of the packet toward the processing unit for processing; and

storing the second portion of the packet.

2. The method of claim 1 further comprising:

responsive to determining that the packet is to be split, storing information related to the splitting of the packet including the identifier.

3. The method of claim 2 further comprising:

receiving an indication resulting from processing the first portion of the packet in the processing unit;

determining that the indication includes a processed first portion of the packet resulting from the processing of the first portion by the processing unit; and

responsive to determining that the indication includes a processed first portion of the packet,

merging the processed first portion of the packet with the second portion of the packet to obtain a processed packet; and

outputting the processed packet.

4. The method of claim 3 , wherein the merging the processed first portion of the packet with the second portion of the packet is performed based on the information related to splitting of the packet.

5. The method of claim 3 further comprising:

determining based on the indication that the packet is dropped; and

responsive to determining that the packet is dropped, removing the second portion of the packet from storage.

6. The method of claim 1 , wherein the sending the first portion to the processing unit for processing includes directly sending the first portion to the processing unit.

7. The method of claim 6 , wherein the storing the second portion includes storing the second portion in a main memory associated with the processing unit.

8. The method of claim 1 , wherein the sending the first portion to the processing unit for processing includes storing the first portion to a main memory associated with the processing unit.

9. The method of claim 8 , wherein the storing the second portion includes storing the second portion in a buffer of the electronic device.

10. A non-transitory machine-readable storage medium comprising computer program code which, when executed by a computer, performs operations comprising:

receiving a packet;

determining based on one or more attributes of the packet that the packet is to be split; and

responsive to determining that the packet is to be split,

generating an identifier of the packet;

splitting the packet into a first portion and a second portion, wherein the first portion is to be processed by a processing unit and the second portion is to be stored without being processed by the processing unit;

adding the identifier to the first portion;

sending the first portion of the packet toward the processing unit for processing; and

storing the second portion of the packet.

11. An electronic device to be coupled with a processing unit for processing packets received through a network interface (NI) device, the NI device comprising:

a non-transitory machine-readable storage medium that provides instructions that, when executed by a processor, will cause the NI device to perform operations to,

receive a packet;

determine based on one or more attributes of the packet that the packet is to be split; and

responsive to determining that the packet is to be split,

generate an identifier of the packet;

split the packet into a first portion and a second portion, wherein the first portion is to be processed by the processing unit and the second portion is to be stored without being processed by the processing unit;

add the identifier to the first portion;

send the first portion of the packet toward the processing unit for processing; and

store the second portion of the packet.

12. The electronic device of claim 11 , wherein the operations further comprise:

responsive to determining that the packet is to be split, to store information related to splitting of the packet including the identifier.

13. The electronic device of claim 12 , wherein the operations further to:

receive an indication resulting from processing the first portion of the packet in the processing unit;

determine that the indication includes a processed first portion of the packet resulting from the processing of the first portion by the processing unit; and

responsive to determining that the indication includes a processed first portion of the packet,

merge the processed first portion of the packet with the second portion of the packet to obtain a processed packet; and

output the processed packet.

14. The electronic device of claim 13 , wherein to merge the processed first portion of the packet with the second portion of the packet is performed based on the information related to splitting of the packet.

15. The electronic device of claim 13 , wherein the operations further to:

determine based on the indication that the packet is dropped; and

responsive to determining that the packet is dropped, remove the second portion of the packet from storage.

16. The electronic device of claim 11 , wherein to send the first portion to the processing unit directly sends the first portion to the processing unit.

17. The electronic device of any of claim 16 , wherein to store the second portion stores the second portion in a main memory associated with the processing unit.

18. The electronic device of claim 11 , wherein to send the first portion to the processing unit stores the first portion to a main memory associated with the processing unit.

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/0784 →
Continuity (1)
Related Publication 20240015108A1 · Jan 11, 2024
References Cited (69)
US 5136582A · Firoozmand · 1992 [cited by examiner]
US 6092127A · Tausheck · 2000 [cited by applicant]
US 6279052B1 · Upadrastra · 2001 [cited by applicant]
US 7552232B2 · Helmer et al. · 2009 [cited by applicant]
US 7684347B2 · Merkey · 2010 [cited by examiner]
US 8494000B1 · Nadkarni · 2013 [cited by examiner]
US 8732351B1 · Chudgar et al. · 2014 [cited by applicant]
US 8732352B1 · Herbeck · 2014 [cited by applicant]
US 8804751B1 · Poole · 2014 [cited by examiner]
US 9313140B2 · Matthews · 2016 [cited by examiner]
US 9444723B1 · Di Benedetto · 2016 [cited by examiner]
US 9444914B2 · Izenberg · 2016 [cited by examiner]
US 9973402B2 · Satoda · 2018 [cited by examiner]
US 10541947B2 · Melman et al. · 2020 [cited by applicant]
US 10567298B1 · Roskind · 2020 [cited by examiner]
US 11847507B1 · Borkovic · 2023 [cited by applicant]
US 11855903B2 · Meier · 2023 [cited by examiner]
US 11956075B2 · Yu · 2024 [cited by examiner]
US 20040066746A1 · Matsunaga · 2004 [cited by applicant]
US 20040076161A1 · Lavian et al. · 2004 [cited by applicant]
US 20050232303A1 · Deforche et al. · 2005 [cited by applicant]
US 20060107122A1 · Kasahara · 2006 [cited by applicant]
US 20060281451A1 · Zur · 2006 [cited by applicant]
US 20070220179A1 · Hanaoka et al. · 2007 [cited by applicant]
US 20070255802A1 · Aloni et al. · 2007 [cited by applicant]
US 20080005296A1 · Lee et al. · 2008 [cited by applicant]
US 20080091851A1 · Sierra · 2008 [cited by applicant]
US 20080137568A1 · Ho et al. · 2008 [cited by applicant]
US 20090089454A1 · Huggahalli et al. · 2009 [cited by applicant]
US 20090182969A1 · Norgaard et al. · 2009 [cited by applicant]
US 20100238946A1 · Lu · 2010 [cited by applicant]
US 20100325391A1 · Talla · 2010 [cited by applicant]
US 20110258282A1 · Cantu et al. · 2011 [cited by applicant]
US 20120301118A1 · Ju · 2012 [cited by applicant]
US 20130114413A1 · Song · 2013 [cited by examiner]
US 20130191600A1 · Kuesel et al. · 2013 [cited by applicant]
US 20140281349A1 · Peters · 2014 [cited by applicant]
US 20150081726A1 · Izenberg · 2015 [cited by examiner]
US 20150149613A1 · Kakadia et al. · 2015 [cited by applicant]
US 20150163175A1 · Cardona et al. · 2015 [cited by applicant]
US 20150227312A1 · Feehrer et al. · 2015 [cited by applicant]
US 20160321153A1 · Zhang et al. · 2016 [cited by applicant]
US 20170091108A1 · Arellano et al. · 2017 [cited by applicant]
US 20170318031A1 · Zhou et al. · 2017 [cited by applicant]
US 20170373974A1 · Wood · 2017 [cited by examiner]
US 20180006970A1 · Browne et al. · 2018 [cited by applicant]
US 20180077075A1 · Sreenivasan · 2018 [cited by examiner]
US 20180159803A1 · Cornett et al. · 2018 [cited by applicant]
US 20180270197A1 · Subramanian · 2018 [cited by examiner]
US 20190097938A1 · Talla et al. · 2019 [cited by applicant]
US 20200204657A1 · Khan et al. · 2020 [cited by applicant]
US 20200259763A1 · Guim Bernat et al. · 2020 [cited by applicant]
US 20220138498A1 · Abelha et al. · 2022 [cited by applicant]
WO 2001067237A2 · 2001 [cited by applicant]
WO 02065711A1 · 2002 [cited by applicant]
WO 2014092551A1 · 2014 [cited by applicant]
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]
European search report and Search Opinion, EP App. No. 20962608.4, May 31, 2024, 11 pages. [cited by applicant]
Final Office Action, U.S. Appl. No. 18/253,772, Jun. 14, 2024, 22 pages. [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]
Non-Final Office Action, U.S. Appl. No. 18/253,772, Feb. 29, 2024, 19 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]
Non-Final Office Action, U.S. Appl. No. 18/253,772, Sep. 27, 2024, 23 pages. [cited by applicant]
Notice of Allowance, U.S. Appl. No. 18/253,772, Feb. 25, 2025, 10 pages. [cited by applicant]