US 11,784,925 B2
Combined input and output queue for packet forwarding in network devices
Craig R. Frink, Chelmsford, MA (US); Weidong Xu, Westford, MA (US); Anurag P. Gupta, Saratoga, CA (US); and Harshad B Agashe, Bangalore (IN)
Assigned to Juniper Networks, Inc., Sunnyvale, CA (US)
Filed by Juniper Networks, Inc., Sunnyvale, CA (US)
Filed on Dec. 22, 2021, as Appl. No. 17/645,498.
Application 17/645,498 is a continuation of application No. 16/709,611, filed on Dec. 10, 2019, granted, now 11,240,151.
Prior Publication US 2022/0124030 A1, Apr. 21, 2022
This patent is subject to a terminal disclaimer.
Int. Cl. H04L 45/00 (2022.01); H04L 45/586 (2022.01); H04L 45/74 (2022.01); H04L 49/90 (2022.01); G06F 9/48 (2006.01); H04L 49/9047 (2022.01); H04L 12/70 (2013.01)
CPC H04L 45/566 (2013.01) [G06F 9/4887 (2013.01); H04L 45/586 (2013.01); H04L 45/74 (2013.01); H04L 49/9036 (2013.01); H04L 49/9047 (2013.01); H04L 2012/5681 (2013.01)] 20 Claims
OG exemplary drawing
 
1. An apparatus comprising:
an ingress packet forwarding engine implemented in circuitry and configured to:
determine, in response to receiving a network packet, an egress packet forwarding engine for outputting the network packet; and
enqueue the network packet in a first portion of a combined buffer;
the egress packet forwarding engine implemented in processing circuitry and configured to, in response to a first scheduling event, output, to the ingress packet forwarding engine, information indicating the network packet in the first portion of the combined buffer and that the network packet is to be enqueued at an output queue for an output port of the egress packet forwarding engine;
wherein the ingress packet forwarding engine is further configured to, in response to receiving the information:
dequeue the network packet from the first portion of the combined buffer; and
enqueue the network packet to a second portion of the combined buffer assigned to the output queue; and
wherein the egress packet forwarding engine is further configured to, in response to a second scheduling event that is after the first scheduling event:
dequeue the network packet from the second portion of the combined buffer; and
output the network packet at the output port.