IP Library Granted Patent US 12,244,519
Granted Patent B2
US 12,244,519 · App. 18/229,094 · Granted Mar 4, 2025

Link aggregation group failover for multicast

Inventors: Anurag Agrawal (Santa Clara, CA); Julianne Zhu (Los Gatos, CA)
Assignee: Barefoot Networks, Inc.
H04L49/201H04L45/245H04L45/38H04L45/48H04L45/7453H04L49/555H04L49/557H04L49/901
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,244,519
App. No.
18/229,094
Granted
Mar 4, 2025
Kind
B2
Abstract

A method of multicasting packets by a forwarding element that includes several packet replicators and several egress pipelines. Each packet replicator receives a data structure associated with a multicast packet that identifies a multicast group. Each packet replicator identifies a first physical egress port of a first egress pipeline for sending the multicast packet to a member of the multicast group. The first physical egress port is a member of LAG. Each packet replicator determines that the first physical egress port is not operational and identifies a second physical port in the LAG for sending the multicast packet to the member of the multicast group. When a packet replicator is connected to the same egress pipeline as the second physical egress, the packet replicator provides the identification of the second physical egress port to the egress pipeline to send the packet to the multicast member. Otherwise the packet replicator drops the packet.

Claims (59)

1. A physical forwarding element, comprising:

a plurality of egress pipelines; and

a plurality of packet replicators, at least two of the plurality of packet replicators associated with different egress pipelines, at least one egress pipeline comprising a set of physical egress ports;

at least one packet replicator configured to:

receive a data structure associated with a multicast packet received at the physical forwarding element, the data structure to identify a multicast group comprising a set of members for receiving the multicast packet;

identify a first physical egress port of a first egress pipeline to send the multicast packet to a member of multicast group, the first physical egress port a member of a plurality of physical egress ports in a link aggregation group (LAG);

determine that the first physical egress port is not operational;

identify a second physical egress port in the LAG to send the multicast packet to the member of the multicast group;

provide, when the packet replicator is connected to a same egress pipeline as the second physical egress port, an identification of the second physical egress port to the egress pipeline to send the multicast packet to the multicast group member; and

drop the multicast packet when the packet replicator is not connected to the same egress pipeline as the second physical egress port.

2. The physical forwarding element of claim 1 , wherein at least one packet replicator is further configured to receive a plurality of hash values calculated on a plurality of fields of the multicast packet that uniquely identify a packet flow for the multicast packet, wherein:

identify the first physical egress port comprises using a first hash value in the plurality of hash values to identify the first physical egress port from the plurality of physical egress ports of the LAG, and

identify the second physical egress port comprises using a second hash value in the plurality of hash values to identify the first physical egress port from the plurality of physical egress ports of the LAG.

3. The physical forwarding element of claim 2 , wherein the plurality of the fields of the multicast packet that uniquely identifies the packet flow comprises (i) a source Internet protocol (IP) address, (ii) a destination IP address, (iii) a source port, (iv) a destination port, and (v) a protocol used to transmit the multicast packet.

4. The physical forwarding element of claim 1 further comprising a set of monitoring units configured to:

receive a hardware signal when a physical egress port fails; and

send a feedback signal to an ingress pipeline of the forwarding element,

at least one ingress pipeline configured to:

receive the feedback signal; and

set a status flag associated with the physical egress port at a data plane of the physical forwarding element to indicate the physical egress port has failed,

wherein determine that the first physical egress port is not operational comprises checking the status flag associated with the failed egress port.

5. The physical forwarding element of claim 1 , wherein the member of the multicast group is a first member of the multicast group, at least one packet replicator further configured to:

identify a particular physical egress port to send the multicast packet to a second member of the multicast group;

determine that the particular physical egress port is not operational;

select a backup port associated with the particular physical egress port to send the multicast packet to the second member of the multicast group;

provide, when the packet replicator is connected to a same egress pipeline as the backup port, an identification of the backup port to the egress pipeline to send the multicast packet to the second member of the multicast group; and

drop the multicast packet when the packet replicator is not connected to the same egress pipeline as the backup port.

6. The physical forwarding element of claim 1 further comprising:

a storage to store a multicast tree associated with the multicast group at the forwarding element, the multicast tree to identify a plurality of physical egress ports to send multicast packets from the forwarding element to members of the multicast group;

wherein identify the first physical egress port comprises scan the multicast tree to identify a physical egress port to send the multicast packet to the multicast group member.

7. The physical forwarding element of claim 6 , wherein the identify the first physical egress port comprises:

identify a first node in the multicast tree as a node associated with the LAG for forward the multicast packet to the multicast group member, the node comprising a pointer to a LAG table; and

use the pointer as an index to the LAG table to identify the first physical egress port as the physical egress port to forward the multicast packet to the multicast group member.

8. The physical forwarding element of claim 1 further comprising a plurality of ingress pipelines,

at least one ingress pipeline of the plurality of ingress pipelines configured to:

generate said data structure when the ingress pipeline receives a multicast packet; and

send the data structure to at least one of the plurality of packet replicators of the forwarding element.

9. The physical forwarding element of claim 1 , wherein the physical forwarding element comprises one or more of: a network router and a network switch.

10. The physical forwarding element of claim 1 , wherein a data plane of the forwarding element is to perform: the receive, the identify the first physical egress port, the determine, the identify the second physical egress port, the provide, and the drop.

11. An apparatus comprising:

means for accessing a packet;

means for identifying one or more egress ports to transmit the packet based on data identifying a multicast group associated with the packet, wherein a link aggregation group (LAG) is associated with at least one egress port of the one or more egress ports associated with the identified multicast group; and

means for, based on unavailability of an egress port associated with the LAG, re-allocating one or more packets associated with the unavailable egress port among one or more available egress ports associated with the LAG but maintain association between one or more packets and at least one other available egress port associated with the LAG.

12. The apparatus of claim 11 , wherein the unavailability of an egress port associated with the LAG is based on failure of the egress port.

13. The apparatus of claim 11 , wherein a table is to associate the LAG with the at least one egress port of the one or more egress ports.

14. The apparatus of claim 11 , comprising means for causing multicast transmission of the packet based on the data identifying a multicast group associated with the packet.

15. The apparatus of claim 11 , comprising:

means for interfacing with a memory device coupled to access the packet from the memory device.

16. The apparatus of claim 11 , comprising:

the one or more egress ports to transmit the packet to a media.

17. The apparatus of claim 11 , comprising:

one or more ingress ports, wherein at least one of the one or more ingress ports is to receive the packet.

18. The apparatus of claim 11 , comprising a switch, wherein the switch comprises:

the means for accessing the packet and the means for identifying one or more egress ports to transmit the packet based on data identifying a multicast group associated with the packet;

one or more ingress ports, wherein at least one of the one or more ingress ports is to receive the packet,

the one or more egress ports to transmit the packet to a media.

19. The apparatus of claim 11 , comprising:

at least one packet processor comprising the means for accessing the packet and the means for identifying one or more egress ports to transmit the packet based on data identifying a multicast group associated with the packet and

a means for managing traffic to manage transmission of the packet and at least one other packet.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 1, 2026
From: BAREFOOT NETWORKS, INC.
To: INTEL CORPORATION
Reel/Frame 075834/0019 →
Continuity (4)
Continuation 17346035 · Jun 11, 2021
Division 16548833 · Aug 22, 2019
Continuation 15449969 · Mar 5, 2017
Related Publication 20240073158A1 · Feb 29, 2024
References Cited (93)
US 4490785A · Strecker et al. · 1984 [cited by applicant]
US 5068892A · Livanos · 1991 [cited by applicant]
US 5757795A · Schnell · 1998 [cited by applicant]
US 5987521A · Arrowood et al. · 1999 [cited by applicant]
US 7110404B1 · Temoshenko · 2006 [cited by applicant]
US 7120834B1 · Bishara · 2006 [cited by examiner]
US 7190696B1 · Manur et al. · 2007 [cited by applicant]
US 7664873B1 · Ghosh et al. · 2010 [cited by applicant]
US 7953089B1 · Ramakrishnan et al. · 2011 [cited by applicant]
US 8553582B1 · Mizrahi et al. · 2013 [cited by applicant]
US 9319347B1 · Sindhu et al. · 2016 [cited by applicant]
US 9559985B1 · Ye et al. · 2017 [cited by applicant]
US 9565114B1 · Kabbani et al. · 2017 [cited by applicant]
US 9571400B1 · Mandal et al. · 2017 [cited by applicant]
US 9608913B1 · Kabbani et al. · 2017 [cited by applicant]
US 9680749B2 · Labonte et al. · 2017 [cited by applicant]
US 9860081B2 · Keesara et al. · 2018 [cited by applicant]
US 9876719B2 · Revah et al. · 2018 [cited by applicant]
US 10063407B1 · Kodeboyina et al. · 2018 [cited by applicant]
US 10237206B1 · Agrawal et al. · 2019 [cited by applicant]
US 10313231B1 · Bosshart · 2019 [cited by applicant]
US 10404619B1 · Agrawal et al. · 2019 [cited by applicant]
US 10728173B1 · Agrawal et al. · 2020 [cited by applicant]
US 11271869B1 · Agrawal et al. · 2022 [cited by applicant]
US 11716291B1 · Agrawal · 2023 [cited by examiner]
US 20010042130A1 · Brown · 2001 [cited by applicant]
US 20020141403A1 · Akahane et al. · 2002 [cited by applicant]
US 20020159466A1 · Rhoades · 2002 [cited by applicant]
US 20030204631A1 · Pinkerton et al. · 2003 [cited by applicant]
US 20040091104A1 · Kawamura et al. · 2004 [cited by applicant]
US 20040235480A1 · Rezaaifar et al. · 2004 [cited by applicant]
US 20050078601A1 · Moll et al. · 2005 [cited by applicant]
US 20050147095A1 · Guerrero et al. · 2005 [cited by applicant]
US 20060045088A1 · Nguyen · 2006 [cited by applicant]
US 20060232447A1 · Walker et al. · 2006 [cited by applicant]
US 20060245361A1 · Cheethirala et al. · 2006 [cited by applicant]
US 20070047453A1 · Bender et al. · 2007 [cited by applicant]
US 20070053283A1 · Bidwell et al. · 2007 [cited by applicant]
US 20070086364A1 · Ellis et al. · 2007 [cited by applicant]
US 20070177594A1 · Kompella · 2007 [cited by applicant]
US 20070250713A1 · Rahman et al. · 2007 [cited by applicant]
US 20080114892A1 · Bruno et al. · 2008 [cited by applicant]
US 20080151890A1 · Zelig et al. · 2008 [cited by applicant]
US 20090307241A1 · Schimunek et al. · 2009 [cited by applicant]
US 20100020680A1 · Salam et al. · 2010 [cited by applicant]
US 20120020206A1 · Busi et al. · 2012 [cited by applicant]
US 20130028072A1 · Addanki · 2013 [cited by applicant]
US 20130083660A1 · Rajagopalan et al. · 2013 [cited by applicant]
US 20130177016A1 · Nakano et al. · 2013 [cited by applicant]
US 20130279504A1 · Gulati et al. · 2013 [cited by applicant]
US 20130322231A1 · Császár et al. · 2013 [cited by applicant]
US 20130322232A1 · Császár et al. · 2013 [cited by applicant]
US 20130322457A1 · Budhia · 2013 [cited by examiner]
US 20140040477A1 · King et al. · 2014 [cited by applicant]
US 20150055652A1 · Yong et al. · 2015 [cited by applicant]
US 20150127701A1 · Chu et al. · 2015 [cited by applicant]
US 20150295818A1 · Hayashitani et al. · 2015 [cited by applicant]
US 20150312135A1 · Velayudhan et al. · 2015 [cited by applicant]
US 20160142220A1 · Hao et al. · 2016 [cited by applicant]
US 20160142315A1 · Tomonaga et al. · 2016 [cited by applicant]
US 20160154756A1 · Dodson et al. · 2016 [cited by applicant]
US 20160191361A1 · Behera et al. · 2016 [cited by applicant]
US 20170295500A1 · Sun et al. · 2017 [cited by applicant]
US 20170302504A1 · Wang et al. · 2017 [cited by applicant]
US 20200313955A1 · Kodeboyina et al. · 2020 [cited by applicant]
US 20210194800A1 · Bosshart · 2021 [cited by applicant]
U.S. Appl. No. 16/048,202, filed Jul. 27, 2018, Chaitanya Kodeboyina. [cited by applicant]
U.S. Appl. No. 16/271,624, filed Feb. 8, 2019, Anurag Agrawal. [cited by applicant]
U.S. Appl. No. 16/378,491, filed Apr. 8, 2019, Patrick Bosshart. [cited by applicant]
U.S. Appl. No. 16/548,833, filed Aug. 22, 2019, Anurag Agrawal. [cited by applicant]
“L2 EtherChannel Load Balancing”, Cisco Community, https://www.cisco.com/c/en/us/support/docs/lan-switching/etherchannel/12023-4.html, Jun. 30, 2015, 11 pages. [cited by applicant]
Advisory Action for U.S. Appl. No. 15/094,987, Mailed Sep. 6, 2018, 4 pages. [cited by applicant]
Ahmadi, Mahmood, et. al., “Hashing Functions Performance in Packet Classification”, Computer Engineering Laboratory, Delft University of Technology, Jan. 2007, 6 pages. [cited by applicant]
Eisenbud, Daniel E., et al., “Maglev: A Fast and Reliable Software Network Load Balancer,” 13th USENIX Symposium on Networked Systems Design and Implementation Mar. 16, 2016, 13 pages, USENIX Association, Santa Clara, C… [cited by applicant]
Fan, Bin, et al., “Small Cache, Big Effect: Provable Load Balancing for Randomly Partitioned Cluster Services,” SOCC'11, 2nd ACM Symposium on Cloud computing, Oct. 27-28, 2011, 12 pages, ACM, Cascais, Portugal. [cited by applicant]
Final Office Action for U.S. Appl. No. 15/094,987, Mailed Apr. 4, 2018, 13 pages. [cited by applicant]
Final Office Action for U.S. Appl. No. 16/048,202, Mailed Apr. 30, 2020, 22 pages. [cited by applicant]
Final Office Action for U.S. Appl. No. 16/378,491, Mailed Sep. 17, 2020, 12 pages. [cited by applicant]
Final Office Action for U.S. Appl. No. 16/548,833, Mailed Jun. 7, 2021, 17 pages. [cited by applicant]
First Office Action for U.S. Appl. No. 15/094,987, Mailed Sep. 21, 2017, 16 pages. [cited by applicant]
First Office Action for U.S. Appl. No. 15/150,015, Mailed Dec. 29, 2017, 16 pages. [cited by applicant]
First Office Action for U.S. Appl. No. 15/449,974, Mailed Jun. 1, 2018, 19 pages. [cited by applicant]
First Office Action for U.S. Appl. No. 16/048,202, Mailed Sep. 26, 2019, 21 pages. [cited by applicant]
First Office Action for U.S. Appl. No. 16/271,624, Mailed Oct. 31, 2019, 26 pages. [cited by applicant]
First Office Action for U.S. Appl. No. 16/378,491, Mailed Feb. 21, 2020, 13 pages. [cited by applicant]
First Office Action for U.S. Appl. No. 16/548,833, Mailed Dec. 9, 2020, 14 pages. [cited by applicant]
First Office Action for U.S. Appl. No. 16/903,305, Mailed Mar. 24, 2021, 17 pages. [cited by applicant]
First Office Action for U.S. Appl. No. 17/152,658, Mailed Oct. 14, 2022, 12 pages. [cited by applicant]
First Office Action for U.S. Appl. No. 17/346,035, Mailed Aug. 23, 2022, 11 pages. [cited by applicant]
Notice of Allowance for U.S. Appl. No. 16/903,305, Mailed Dec. 9, 2021, 13 pages. [cited by applicant]
Notice of Allowance for U.S. Appl. No. 16/271,624, Mailed Mar. 17, 2020, 13 pages. [cited by applicant]
Notice of Allowance for U.S. Appl. No. 17/346,035, Mailed Mar. 7, 2023, 7 pages. [cited by applicant]
Shantharama, Prateek, et al., “Hardware-Accelerated Platforms and Infrastructures for Network Functions: A Survey of Enabling Technologies and Research Studies”. IEEEAccess, Jul. 29, 2020, 65 pages. [cited by applicant]