IP Library › Granted Patent US 11,405,323
Granted Patent B2
US 11,405,323 · App. 16/754,279 · Granted Aug 2, 2022

Method and network device for forwarding data packets

Inventor: Thomas Dejanovic (Sydney, AU)
Assignee: Arista Networks, Inc.
H04L47/32H04L47/2441H04L47/50H04W28/0278
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 11,405,323
App. No.
16/754,279
Granted
Aug 2, 2022
Kind
B2
Abstract

A method and network device for forwarding data packets. Specifically, the method and network device disclosed herein separate the known data packet forwarding architecture in network devices, often implemented using a single component, into two components. In implementing the pair of components, functionalities directed to forwarding data packets versus buffering data packets, based on the detection of data packet collisions, are segregated. Further, the segregation of these functionalities reduces the latency observed in the communication of the data packets from these network devices to other devices to which these network devices may be connected through a network.

Claims (64)

1. A method for forwarding data packets, comprising:

receiving, by a collision detector and forwarder (CDF), a first data packet arriving through a first ingress network interface (INI) and a second data packet arriving through a second INI;

receiving, by a data packet buffer (DPB), a first data packet copy arriving through the first INI and a second data packet copy arriving through the second INI;

selecting, by the CDF, the first data packet based on a first priority policy;

forwarding, based on the selecting, the first data packet through an egress network interface (ENI) while discarding the second data packet; and

buffering, by the DPB, the second data packet copy while discarding the first data packet copy.

2. The method of claim 1 , wherein the first priority policy is a forwarding prioritization rule for selecting a data packet over at least one other data packet based on times of arrival of the data packet and the at least one other data packet.

3. The method of claim 1 , further comprising:

prior to the selecting, by the CDF, of the first data packet based on the first priority policy:

detecting, by the CDF, a data packet collision between the first data packet and the second data packet; and

selecting the first data packet, based on the first priority policy, in response to detecting the data packet collision.

4. The method of claim 3 , wherein detecting, by the CDF, the data packet collision comprises determining that at least a portion of the first data packet temporally overlaps at least a portion of the second data packet.

5. The method of claim 1 , further comprising:

prior to the selecting, by the CDF, of the first data packet based on the first priority policy:

making a determination, by the CDF, that the CDF is not busy forwarding a third data packet, wherein the third data packet had been previously received; and

selecting the first data packet, based on the first priority policy, in response to the determination.

6. The method of claim 1 , further comprising:

prior to the selecting, by the CDF, of the first data packet based on the first priority policy:

making a determination, by the CDF, that the DPB is empty; and

selecting the first data packet, based on the first priority policy, in response to the determination.

7. The method of claim 6 , wherein making the determination, by the CDF, that the DPB is empty comprises obtaining a status of an empty feedback flag (EFF), wherein the EFF is updated by the DPB based on a collective state of a plurality of first-in, first-out (FIFO) memory buffers.

8. The method of claim 1 , further comprising:

prior to the buffering, by the DPB, of the second data packet copy and the discarding of the first data packet copy:

generating, by the CDF, a busy bit string (BBS) comprising a buffer instruction or a discard instruction, for each INI of a plurality of INIs comprising the first INI and the second INI;

issuing the BBS to the DPB; and

receiving and processing, by the DPB, the BBS to at least buffer the second data packet copy and discard the first data packet copy.

9. The method of claim 1 , wherein the buffering, by the DPB, of the second data packet copy comprises storing the second data packet copy in a first-in, first-out (FIFO) memory buffer operatively connected and dedicated to the second INI.

10. The method of claim 1 , further comprising:

making a first determination, by the CDF, that the first data packet has finished forwarding through the ENI;

making a second determination, based on the first determination, that the DPB is not empty;

receiving, from the DPB and through a buffer output interface (BOI), the second data packet copy; and

forwarding the second data packet copy through the ENI.

11. The method of claim 10 , further comprising:

prior to receiving, by the CDF, the second data packet copy from the DPB and through the BOI:

notifying the DPB, by the CDF, that the CDF awaits a buffered data packet;

selecting, by the DPB and in response to the notifying, the second data packet copy as the buffered data packet based on a second priority policy; and

providing the second data packet copy to the CDF through the BOI.

12. The method of claim 11 , wherein notifying the DPB, by the CDF, that the CDF awaits the buffered data packet comprises updating a read buffer flag (RBF), wherein the RBF is monitored by the DPB.

13. The method of claim 11 , wherein the second priority policy is a retrieval prioritization rule for selecting a data packet over at least one other data packet based on buffering times of the data packet and the at least one other data packet.

14. The method of claim 10 , further comprising:

receiving, by the CDF, a third data packet arriving through a third INI;

making a third determination that the second data packet copy has finished forwarding through the ENI;

making a fourth determination that the DPB is empty; based at least on the third and fourth determinations:

forwarding, by the CDF, the third data packet through the ENI; and

discarding, by the DPB, a third data packet copy received by the DPB through the third INI.

15. The method of claim 10 , further comprising:

receiving, by the CDF, a third data packet arriving through a third INI;

making a third determination that the second data packet copy has not finished forwarding through the ENI;

based at least on the third determination:

discarding, by the CDF, the third data packet; and

buffering, by the DPB, a third data packet copy received by the DPB through the third INI.

16. The method of claim 15 , wherein buffering, by the DPB, of the third data packet copy comprises storing the third data packet copy in a first-in, first-out (FIFO) memory buffer operatively connected and dedicated to the third INI.

17. A network device, comprising:

a plurality of network interfaces comprising a set of ingress network interfaces (INIs) and an egress network interface (ENI);

a collision detector and forwarder (CDF) operatively connected to the plurality of network interfaces, and programmed to:

receive a first data packet arriving through a first INI of the set of INIs and a second data packet arriving through a second INI of the set of INIs;

select the first data packet based on a first priority policy; and

forward, based on the selecting, the first data packet through the ENI while discarding the second data packet; and

a data packet buffer (DPB) operatively connected to the set of INIs and the CDF, and programmed to:

receive a first data packet copy arriving through the first INI of the set of INIs and a second data packet copy arriving through the second INI of the set of INIs;

receive a busy bit string (BBS) from the CDF after the selection of the first data packet; and

based on the BBS, buffer the second data packet copy while discarding the first data packet copy.

18. The network device of claim 17 , wherein the DPB comprises a set of first-in first-out (FIFO) memory buffers, wherein each FIFO memory buffer of the set of FIFO memory buffers is operatively connected and dedicated to a different INI of the set of INIs.

19. The network device of claim 17 , wherein the network device is a switch, a router, or a multilayer switch.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 27, 2020
From: METAMAKO GENERAL PTY LTD IN ITS CAPACITY AS GENERAL PARTNER OF METAMAKO TECHNOLOGY LIMITED PARTNERSHIP
To: ARISTA NETWORKS, INC.
Reel/Frame 052505/0158 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 8, 2020
From: DEJANOVIC, THOMAS
To: METAMAKO GENERAL PTY LTD IN ITS CAPACITY AS GENERAL PARTNER OF METAMAKO TECHNOLOGY LIMITED PARTNERSHIP
Reel/Frame 052349/0234 →
Priority Claims (1)
AU 2017904205 · Oct 17, 2017 · national
Continuity (1)
Related Publication 20200314021A1 · Oct 1, 2020
Cited By (1)
US 12,395,450