US Patent No. 10,735,337

PROCESSING PACKETS IN AN ELECTRONIC DEVICE


Patent No. 10,735,337
Issue Date August 04, 2020
Title Processing Packets In An Electronic Device
Inventorship William Brad Matthews, San Jose, CA (US)
Puneet Agarwal, Cupertino, CA (US)
Bruce H. Kwan, Sunnyvale, CA (US)
Ajit K. Jain, Cupertino, CA (US)
Assignee Innovium, Inc., San Jose, CA (US)

Claim of US Patent No. 10,735,337

1. A device, comprising:a first group of ingress ports that includes a first ingress port and a second ingress port;
a group of egress ports that includes a first egress port and a second egress port;
a first queue for the first egress port and a second queue for the second egress port; and
a network traffic manager including a packet buffer and coupled to the first queue and the second queue, the network traffic manager configured to:
receive, from the first ingress port in the first group of ingress ports, a cell of a first network packet destined for the first egress port, wherein the first network packet comprises a plurality of cells;
determine whether a number of cells stored in the first queue is at least equal to a first threshold value;
in response to determining that the number of cells stored in the first queue is at least equal to the first threshold value, determine whether the first ingress port has been assigned a first queue token corresponding to the first queue;
upon determining that the first ingress port has been assigned the first queue token:
determine whether one or more other cells of the first network packet are stored in the packet buffer, and
in response to determining that one or more other cells of the first network packet are stored in the packet buffer:
store the received cell in the packet buffer, and
store linking information for the received cell in a receive context, wherein the receive context further includes linking information for the one or more other cells of the first network packet;
determine whether all cells of the first network packet have been received; and
in response to determining that all cells of the first network packet have been received:
copy linking information for the cells of the first network packet from the receive context to one of the first queue or a copy generator queue, and
release the first queue token from the first ingress port.