IP Library › Granted Patent US 12,744,749
Granted Patent B2
US 12,744,749 · App. 18/480,217 · Granted Sep 22, 2026

Network switch with hybrid architecture

Inventors: Duncan Roweth (Bristol, GB); Timothy J. Johnson (Madison, WI); Abdulla M. Bataineh (Seattle, WA); Jonathan Paul Beecroft (Bristol, GB)
Assignee: Hewlett Packard Enterprise Development LP
H04L49/9026H04L49/101H04L49/3027
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,744,749
App. No.
18/480,217
Granted
Sep 22, 2026
Kind
B2
Abstract

A network switch has a packet pulling architecture, and also supports packet pushing. In an example implementation, a device includes: an output buffer; a data crossbar connected to the output buffer; an input buffer connected to the data crossbar; an input queue; a request crossbar connected to the input queue; and an output queue. The input queue is configured to transfer a packet from the input buffer to the output buffer over the data crossbar in response to the packet being eligible for packet pushing, and to send a push request in parallel with transferring the packet to the output buffer. The output queue is configured to receive the push request from the input queue over the request crossbar, and to control reading of the packet from the output buffer in response to granting the push request.

Claims (51)

1 . A device comprising:

an output buffer;

a data crossbar connected to the output buffer;

an input buffer connected to the data crossbar;

an input queue configured to transfer a packet from the input buffer to the output buffer over the data crossbar in response to the packet being eligible for packet pushing, and to send a push request in parallel with transferring the packet to the output buffer, wherein the packet is stored in the output buffer before the push request is granted;

a request crossbar connected to the input queue; and

an output queue configured to receive the push request from the input queue over the request crossbar, and to control reading of the packet from the output buffer in response to granting the push request.

2 . The device of claim 1 , further comprising:

a grant crossbar connected to the output queue and to the input queue, the output queue further configured to send a push grant from the output queue to the input queue over the grant crossbar in parallel with controlling the reading the packet.

3 . The device of claim 1 , wherein the packet is eligible for packet pushing when credit is available at the output buffer for the input queue.

4 . The device of claim 1 , wherein the packet is eligible for packet pushing when the packet is of a particular traffic class.

5 . The device of claim 1 , wherein the packet is eligible for packet pushing when a quantity of outstanding requests queued at the output queue is below a predetermined threshold.

6 . The device of claim 1 , wherein the output queue is further configured to assign a sequence number to the packet based on ordering of the packet in a packet flow.

7 . A device comprising:

an input port comprising:

an input buffer; and

an input queue connected to the input buffer; and

an output port comprising:

an output buffer connected to the input buffer; and

an output queue connected to the output buffer and to the input queue, the output queue configured to control receiving of packets in the output buffer from the input buffer;

wherein the input queue is configured to:

send a push request for a first packet of a packet flow to the output queue, the packet flow being forwarded from the input port to the output port;

transfer the first packet from the input buffer to the output buffer, wherein the first packet is stored in the output buffer before the output queue grants the push request;

send a pull request for a second packet of the packet flow to the output queue; and

transfer the second packet from the input buffer to the output buffer after the output queue grants the pull request.

8 . The device of claim 7 , wherein the output queue is further configured to assign sequence numbers to the first packet and the second packet based on an order of the first packet and the second packet in the packet flow.

9 . The device of claim 8 , wherein the output port further comprises:

a transmitter configured to read the first packet and the second packet from the output buffer in order of the sequence numbers.

10 . The device of claim 7 , wherein the input queue is configured to send the push request in response to credit being available at the output queue and in response to the first packet having a particular traffic class.

11 . The device of claim 10 , further comprising:

a credit crossbar connected to the input queue and to the output buffer, the output buffer further configured to return credit to the input queue over the credit crossbar.

12 . A method comprising:

determining whether a packet is eligible for packet pushing;

sending a push request from an input queue to an output queue in response to the packet being eligible for packet pushing, the push request comprising a description of the packet;

transferring the packet from an input buffer to an output buffer in parallel with the sending of the push request, wherein the packet is stored in the output buffer before the push request is granted;

granting the push request at the output queue based on the description of the packet;

reading the packet from the output buffer in response to the push request being granted; and

sending a push grant from the output queue to the input queue in parallel with the reading the packet from the output buffer.

13 . The method of claim 12 , wherein determining whether the packet is eligible for packet pushing is based on whether credit is available at the output buffer for the input queue, transferring the packet from the input buffer to the output buffer decrements the credit, and reading the packet from the output buffer increments the credit.

14 . The method of claim 12 , wherein determining whether the packet is eligible for packet pushing is based on a traffic class of the packet.

15 . The method of claim 12 , wherein determining whether the packet is eligible for packet pushing is based on a load of the output queue.

16 . The method of claim 15 , further comprising:

receiving load information for the output queue, the load information comprising a quantity of outstanding requests queued at the output queue,

wherein the packet is eligible for packet pushing when the quantity of outstanding requests queued at the output queue is below a predetermined threshold.

17 . The method of claim 16 , wherein the quantity of outstanding requests is grouped by traffic class and the load of the output queue is based on a particular traffic class.

18 . The method of claim 12 , further comprising:

sending a pull request from the input queue to the output queue in response to the packet being ineligible for packet pushing; and

transferring the packet from the input buffer to the output buffer in response to the pull request being granted.

19 . The method of claim 12 , further comprising:

assigning a sequence number to the packet based on ordering of the packet in a packet flow, wherein determining whether the packet is eligible for packet pushing is based on the packet being first in the packet flow.

20 . The method of claim 12 , wherein the push request is sent over a request crossbar that is connected to the input queue and to the output queue, the push grant is sent over a grant crossbar that is connected to the input queue and to the output queue, and the packet is transferred over a data crossbar that is connected to the input buffer and to the output buffer.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 16, 2024
From: HEWLETT-PACKARD LIMITED
To: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
Reel/Frame 066316/0474 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 3, 2023
From: JOHNSON, TIMOTHY J.; BATAINEH, ABDULLA M.
To: HEWLETT PACKARD ENTERPRISE DEVELOPMENT LP
Reel/Frame 065110/0649 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 3, 2023
From: ROWETH, DUNCAN; BEECROFT, JONATHAN PAUL
To: HEWLETT-PACKARD LIMITED
Reel/Frame 065110/0798 →
Continuity (1)
Related Publication 20250112876A1 · Apr 3, 2025
References Cited (68)
US 5414703A · Sakaue · 1995 [cited by examiner]
US 5915088A · Basavaiah · 1999 [cited by examiner]
US 6160812A · Bauman · 2000 [cited by examiner]
US 6185221B1 · Aybay · 2001 [cited by examiner]
US 6195335B1 · Calvignac · 2001 [cited by examiner]
US 6260099B1 · Gilbertson · 2001 [cited by examiner]
US 6621812B1 · Chapman · 2003 [cited by examiner]
US 7102999B1 · Sindhu · 2006 [cited by examiner]
US 7158512B1 · Kamhine · 2007 [cited by examiner]
US 7221650B1 · Cooper · 2007 [cited by examiner]
US 7237016B1 · Schober · 2007 [cited by examiner]
US 7263097B1 · Ornes · 2007 [cited by examiner]
US 7339943B1 · Mammen · 2008 [cited by examiner]
US 7519066B1 · Park · 2009 [cited by examiner]
US 7522527B2 · Jun · 2009 [cited by examiner]
US 7590764B2 · Rooney · 2009 [cited by examiner]
US 7613183B1 · Brewer · 2009 [cited by examiner]
US 7647435B2 · Check · 2010 [cited by examiner]
US 7802001B1 · Petry · 2010 [cited by examiner]
US 8400915B1 · Brown · 2013 [cited by examiner]
US 8671220B1 · Garg · 2014 [cited by examiner]
US 9641465B1 · Gabbay · 2017 [cited by examiner]
US 11240151B2 · Frink · 2022 [cited by examiner]
US 20020097733A1 · Yamamoto · 2002 [cited by examiner]
US 20030142102A1 · Emberling · 2003 [cited by examiner]
US 20030204695A1 · Park · 2003 [cited by examiner]
US 20040085979A1 · Lee · 2004 [cited by examiner]
US 20040103249A1 · Lin · 2004 [cited by examiner]
US 20040225822A1 · Takeda · 2004 [cited by examiner]
US 20050152352A1 · Jun · 2005 [cited by examiner]
US 20060002412A1 · Bose · 2006 [cited by examiner]
US 20060165112A1 · Varma · 2006 [cited by examiner]
US 20090089478A1 · Singh · 2009 [cited by examiner]
US 20110035530A1 · Takagi · 2011 [cited by examiner]
US 20110185125A1 · Jain · 2011 [cited by examiner]
US 20130047034A1 · Salomon · 2013 [cited by examiner]
US 20130083793A1 · Lea · 2013 [cited by examiner]
US 20140064269A1 · Hamdi · 2014 [cited by examiner]
US 20140161135A1 · Acharya · 2014 [cited by examiner]
US 20140269751A1 · Koka · 2014 [cited by examiner]
US 20150249603A1 · Tompkins · 2015 [cited by examiner]
US 20150278135A1 · Chrysos · 2015 [cited by examiner]
US 20150281126A1 · Regula · 2015 [cited by examiner]
US 20150363324A1 · Joshi · 2015 [cited by examiner]
US 20160057069A1 · Mirza · 2016 [cited by examiner]
US 20160124772A1 · Mirza · 2016 [cited by examiner]
US 20160191422A1 · Srinivasan · 2016 [cited by examiner]
US 20170046128A1 · Brooks · 2017 [cited by examiner]
US 20170171882A1 · Sundararajan · 2017 [cited by examiner]
US 20170289242A1 · Keppel · 2017 [cited by examiner]
US 20170322768A1 · Brooks · 2017 [cited by examiner]
US 20180049208A1 · Ozturk · 2018 [cited by examiner]
US 20190042410A1 · Gould · 2019 [cited by examiner]
US 20190294575A1 · Dennison · 2019 [cited by examiner]
US 20190303297A1 · Fleming, Jr. · 2019 [cited by examiner]
US 20200174828A1 · Manula · 2020 [cited by examiner]
US 20210255905A1 · Manula · 2021 [cited by examiner]
US 20210314680A1 · Szymanski · 2021 [cited by examiner]
US 20220210094A1 · Bataineh et al. · 2022 [cited by applicant]
US 20220210487A1 · Hassler · 2022 [cited by examiner]
US 20220321498A1 · DiFerdinando · 2022 [cited by examiner]
US 20220321499A1 · DiFerdinando · 2022 [cited by examiner]
US 20230030497A1 · Tabatabaee · 2023 [cited by examiner]
US 20230054059A1 · Torudbakken · 2023 [cited by examiner]
US 20230070690A1 · Mugu · 2023 [cited by examiner]
US 20240121320A1 · Agarwal · 2024 [cited by examiner]
US 20240281249A1 · Appu · 2024 [cited by examiner]
Juniper Networks, “Understanding CoS Virtual Output Queues (VOQs)”, https://www.juniper.net/documentation/us/en/software/junos/traffic-mgmt-qfx/topics/concept/cos-qfx-series-voq-understanding.html (accessed Aug. 16, 202… [cited by applicant]