IP Library Granted Patent US 12,289,231
Granted Patent B2
US 12,289,231 · App. 18/400,881 · Granted Apr 29, 2025

Weighted multicast join load balance

Inventors: Vinod Kumar N (Bangalore, IN); Robert W. Kebler (Newburyport, MA); Ashok Patrick Jude Manoharan (Pleasanton, CA); Hariharan Boopathy (Bangalore, IN)
Assignee: Juniper Networks, Inc.
H04L45/16H04L12/185H04L12/4641H04L45/28H04L45/50
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,289,231
App. No.
18/400,881
Granted
Apr 29, 2025
Kind
B2
Abstract

In some examples, a method includes receiving, by an egress network device for a network, messages from each of a plurality of ingress network devices for the network, wherein each of the messages specifies a multicast source, a multicast group, and an upstream multicast hop weight value for multicast traffic for the multicast source and the multicast group; selecting, by the egress network device and based on the upstream multicast hop weight values specified by the received messages, one of the plurality of ingress network devices to which to send a multicast join message of a plurality of multicast join messages for the multicast source and multicast group; and sending, by the egress network device, the multicast join message to the selected one of the plurality of ingress network devices.

Claims (52)

1. A network device comprising:

memory; and

one or more processors implemented in circuitry, having access to the memory, and configured to:

identify a number of multicast join messages sent to each ingress network device of a plurality of ingress network devices;

determine, based on respective upstream multicast hop weight values advertised by one or more of the plurality of ingress network devices, a proportion of a plurality of multicast join messages to send to each ingress network device of the plurality of ingress network devices, wherein each of the upstream multicast hop weight values corresponds to a bandwidth of a multicast group or a bandwidth of an upstream access link for the advertising ingress network device;

select, based on the determined proportions and based on the number of multicast join messages sent to each of the plurality of ingress network devices, one of the plurality of ingress network devices to which to send a multicast join message of the plurality of multicast join messages; and

send the multicast join message to the selected one of the plurality of ingress network devices.

2. The network device of claim 1 , wherein the one or more processors are further configured to:

subsequent to sending the multicast join message, receive multicast traffic from one or more of the plurality of ingress network devices in proportion to the plurality of multicast join messages sent to each ingress network device of the plurality of ingress network devices; and

forward the multicast traffic.

3. The network device of claim 1 , wherein the one or more processors are further configured to:

receive one or more messages of a plurality of messages from each ingress network device of the plurality of ingress network devices, wherein each message of the plurality of messages specifies a multicast source and a multicast group, and wherein each of the one or more messages of the plurality of messages includes a field specifying the upstream multicast hop weight value for multicast traffic for the multicast source and the multicast group; and

determine the proportion of the plurality of multicast join messages further based on the upstream multicast hop weight value.

4. The network device of claim 3 , wherein each message of the plurality of messages comprises an auto discovery message for the multicast source and the multicast group.

5. The network device of claim 3 , wherein the network device represents an egress provider edge router of a network, wherein each ingress network device of the plurality of ingress network devices represents an ingress provider edge router of a plurality of ingress provider edge routers of the network, and wherein receiving the messages comprises receiving Border Gateway Protocol (BGP) Multicast Virtual Private Network (MVPN) auto discovery messages, comprising a transitive BGP Extended Community Attribute that specifies the upstream multicast hop weight value as an Upstream Multicast Hop Weight of the ingress provider edge router from which the message is received.

6. The network device of claim 3 , wherein one or more messages of the plurality of messages specifies an upstream multicast hop weight value of zero for one of the plurality of ingress network devices, and

wherein to determine the proportion of multicast join messages to send to the one of the plurality of ingress network devices, the one or more processors are configured to send zero multicast join messages to the one of the plurality of ingress network devices for which the upstream multicast hop weight value of zero is specified.

7. The network device of claim 3 , wherein the one or more processors are further configured to:

receive a further message from a further ingress network device, the message specifying the multicast source and multicast group, wherein the further message does not include a field specifying an upstream multicast hop weight value; and

in response to receiving the further message, assume a default upstream multicast hop value of one for the further ingress network device,

wherein to determine the proportion of multicast join messages, the one or more processors are configured to determine, based on the default upstream multicast hop value and the upstream multicast weight values specified by the received messages, a proportion of multicast join messages to send to each of the plurality of ingress network devices and the further ingress network device for the multicast source and multicast group.

8. The network device of claim 3 , wherein to determine the proportion of multicast join messages to send to each ingress network device of the plurality of ingress network devices, the one or more processors are configured to assign a set of one or more index numbers to each ingress network device of the plurality of ingress network devices, the one or more index numbers comprising one or more integers within a range from 0 to 99, according to the corresponding upstream multicast hop weight value for the ingress network device divided by a sum of the upstream multicast hop weight values from each of the plurality of ingress network devices,

wherein the one or more processors are further configured to:

receive a multicast join message specifying the multicast source by a Customer-Root address and specifying the multicast group by a Customer-Group address;

apply a hash function comprising a byte wise exclusive-or operation on bytes in the Customer-Root address and the Customer-Group address of the multicast join message to obtain a result of the hash function;

take the result of the hash function modulo 100 to determine an index number between 0 and 99, and

wherein the one or more processors are configured to select the one of the plurality of ingress network devices based on the index number.

9. The network device of claim 1 , wherein, when the determined proportion is equal for at least two of the plurality of ingress network devices, the one or more processors are configured to select, as the one of the plurality of ingress network devices to which to send the multicast join message, an ingress network device currently having been sent a smallest number of multicast join messages.

10. The network device of claim 1 , wherein two or more of the plurality of ingress network devices are associated with a highest upstream multicast hop weight value, and wherein to select the one of the plurality of ingress network devices to which to send the multicast join message, the one or more processors are configured to select, from among the two or more ingress network devices associated with the highest upstream multicast hop weight value, an ingress network device currently having been sent a smallest number of multicast join messages.

11. A method comprising:

identifying, by one or more processors of a network device, a number of multicast join messages sent to each ingress network device of a plurality of ingress network devices;

determining, by the one or more processors and based on respective upstream multicast hop weight values advertised by one or more of the plurality of ingress network devices, a proportion of a plurality of multicast join messages to send to each ingress network device of the plurality of ingress network devices, wherein each of the upstream multicast hop weight values corresponds to a bandwidth of a multicast group or a bandwidth of an upstream access link for the advertising ingress network device;

selecting, by the one or more processors based on the determined proportions and based on the number of multicast join messages sent to each of the plurality of ingress network devices, one of the plurality of ingress network devices to which to send a multicast join message of the plurality of multicast join messages; and

sending, by the one or more processors, the multicast join message to the selected one of the plurality of ingress network devices.

12. The method of claim 11 , further comprising:

subsequent to sending the multicast join message, receiving, by the one or more processors, multicast traffic from one or more of the plurality of ingress network devices in proportion to the plurality of multicast join messages sent to each ingress network device of the plurality of ingress network devices; and

forwarding, by the one or more processors, the multicast traffic.

13. The method of claim 11 , further comprising:

receiving, by the one or more processors, one or more messages of a plurality of messages from each ingress network device of the plurality of ingress network devices, wherein each message of the plurality of messages specifies a multicast source and a multicast group, and wherein each of the one or more messages of the plurality of messages includes a field specifying the upstream multicast hop weight value for multicast traffic for the multicast source and the multicast group; and

determining, by the one or more processors, the proportion of the plurality of multicast join messages further based on the upstream multicast hop weight value.

14. The method of claim 13 , wherein each message of the plurality of messages comprises an auto discovery message for the multicast source and the multicast group.

15. The method of claim 13 , wherein the network device represents an egress provider edge router of a network, wherein each ingress network device of the plurality of ingress network devices represents an ingress provider edge router of a plurality of ingress provider edge routers of the network, and wherein receiving the messages comprises receiving Border Gateway Protocol (BGP) Multicast Virtual Private Network (MVPN) auto discovery messages, comprising a transitive BGP Extended Community Attribute that specifies the upstream multicast hop weight value as an Upstream Multicast Hop Weight of the ingress provider edge router from which the message is received.

16. The method of claim 13 , wherein one or more messages of the plurality of messages specifies an upstream multicast hop weight value of zero for one of the plurality of ingress network devices, and

wherein determining the proportion of multicast join messages to send to the one of the plurality of ingress network devices, the method comprises sending, by the one or more processors, zero multicast join messages to the one of the plurality of ingress network devices for which the upstream multicast hop weight value of zero is specified.

17. The method of claim 11 , wherein, when the determined proportion is equal for at least two of the plurality of ingress network devices, the one or more processors are configured to select, as the one of the plurality of ingress network devices to which to send the multicast join message, an ingress network device currently having been sent a smallest number of multicast join messages.

18. The method of claim 11 , wherein two or more of the plurality of ingress network devices are associated with a highest upstream multicast hop weight value, and wherein selecting the one of the plurality of ingress network devices to which to send the multicast join message comprises selecting, by the one or more processors from among the two or more ingress network devices associated with the highest upstream multicast hop weight value, an ingress network device currently having been sent a smallest number of multicast join messages.

19. Non-transitory computer-readable media encoded with instructions for causing a programmable processor of network device to perform steps comprising:

identifying a number of multicast join messages sent to each ingress network device of a plurality of ingress network devices;

determining, based on respective upstream multicast hop weight values advertised by one or more of the plurality of ingress network devices, a proportion of a plurality of multicast join messages to send to each ingress network device of the plurality of ingress network devices, wherein each of the upstream multicast hop weight values corresponds to a bandwidth of a multicast group or a bandwidth of an upstream access link for the advertising ingress network device;

selecting, based on the determined proportions and based on the number of multicast join messages sent to each of the plurality of ingress network devices, one of the plurality of ingress network devices to which to send a multicast join message of the plurality of multicast join messages; and

sending the multicast join message to the selected one of the plurality of ingress network devices.

20. The non-transitory computer-readable media of claim 19 , wherein, when the determined proportion is equal for at least two of the plurality of ingress network devices, the instructions cause the programmable processor to select, as the one of the plurality of ingress network devices to which to send the multicast join message, an ingress network device currently having been sent a smallest number of multicast join messages.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 15, 2025
From: N, VINOD KUMAR; KEBLER, ROBERT W.; MANOHARAN, ASHOK PATRICK JUDE; BOOPATHY, HARIHARAN
To: JUNIPER NETWORKS, INC.
Reel/Frame 071290/0771 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 8, 2024
From: N, VINOD KUMAR; KEBLER, ROBERT W.; MANOHARAN, ASHOK PATRICK JUDE; BOOPATHY, HARIHARAN
To: JUNIPER NETWORKS, INC.
Reel/Frame 066763/0001 →
Continuity (3)
Continuation 18046741 · Oct 14, 2022
Continuation 16996449 · Aug 18, 2020
Related Publication 20240137307A1 · Apr 25, 2024
References Cited (47)
US 7839850B2 · Kompella · 2010 [cited by applicant]
US 8089964B2 · Lo et al. · 2012 [cited by applicant]
US 8169924B2 · Sajassi et al. · 2012 [cited by applicant]
US 8339973B1 · Pichumani et al. · 2012 [cited by applicant]
US 8913482B2 · Csaszar et al. · 2014 [cited by applicant]
US 8953446B1 · Wang · 2015 [cited by examiner]
US 9497034B2 · Zhou et al. · 2016 [cited by applicant]
US 10193812B2 · Nagarajan et al. · 2019 [cited by applicant]
US 10594565B2 · Agarwal et al. · 2020 [cited by applicant]
US 11374778B2 · Meng et al. · 2022 [cited by applicant]
US 11516115B2 · N et al. · 2022 [cited by applicant]
US 11902148B2 · N et al. · 2024 [cited by applicant]
US 20080175240A1 · Suzuki · 2008 [cited by applicant]
US 20090168745A1 · Ahmadi · 2009 [cited by examiner]
US 20110013551A1 · Shiroko · 2011 [cited by examiner]
US 20110286450A1 · Wijnands · 2011 [cited by examiner]
US 20140089454A1 · Jeon et al. · 2014 [cited by applicant]
US 20160043875A1 · Kotalwar et al. · 2016 [cited by applicant]
US 20160043876A1 · Kotalwar et al. · 2016 [cited by applicant]
US 20170034047A1 · Bhattacharya et al. · 2017 [cited by applicant]
US 20210243044A1 · Sundaram et al. · 2021 [cited by applicant]
CN 101013948A · 2007 [cited by applicant]
CN 103973459A · 2014 [cited by applicant]
CN 104662851A · 2015 [cited by applicant]
CN 106789677A · 2017 [cited by applicant]
CN 107078974A · 2017 [cited by applicant]
CN 109729009A · 2019 [cited by applicant]
CN 108696440A · 2021 [cited by applicant]
EP 3435595A1 · 2019 [cited by applicant]
EP 3151489B1 · 2021 [cited by applicant]
Adams et al. “Protocol Independent Multicast—Dense Mode (PIM-DM): Protocol Specification (Revised)” Network Working Group, RFC 3973, Jan. 2005, 61 pp. [cited by applicant]
Aggarwal et al., “BGP Encodings and Procedures for Multicast in MPLS/BGP IP VPNs,” RFC 6514, Internet Engineering Task Force (IETF), Feb. 2012, 59 pp. [cited by applicant]
Colman et al., “Multicast BGP with SDN Control Plane”, IEEE 2017 7th International Conference on the Network of the Future (NOF), Jan. 9, 2017, 5 pp. [cited by applicant]
Extended European Search Report from counterpart EP Application No. 20206193.3, dated Apr. 19, 2021, 9 pp. [cited by applicant]
Fenner et al., “Protocol Independent Multicast—Sparse Mode (PIM-SM): Protocol Specification (Revised),” RFC 4601, Network Working Group, Aug. 2006, 112 pp. [cited by applicant]
Handley et al., “Bidirectional Protocol Independent Multicast (BIDIR-PIM),” Network Working Group, RFC 5015, Oct. 2007, 43 pp. [cited by applicant]
Holbrook et al., “Source-Specific Multicast for IP,” Network Working Group, RFC 4607, The Internet Society, Aug. 2006, 19 pp. [cited by applicant]
Notice of Intent to Grant from counterpart Chinese Application No. 202011240461.8 dated Nov. 9, 2023, 5 pp. [cited by applicant]
Office Action from counterpart Chinese Application No. 202011240461.8 dated Jun. 27, 2023, 10 pp. [cited by applicant]
Office Action, and translation thereof, from counterpart Chinese Application No. 202011240461.8 dated Oct. 9, 2022, 12 pp. [cited by applicant]
Prosecution History from U.S. Appl. No. 16/996,449, dated Sep. 29, 2021 through Oct. 27, 2022, 54 pp. [cited by applicant]
Prosecution History from U.S. Appl. No. 18/046,741, dated Mar. 30, 2023 through Oct. 2, 2023, 35 pp. [cited by applicant]
Response to Extended Search Report dated May 13, 2022, from counterpart European Application No. 20206193.3, filed Aug. 23, 2022, 27 pp. [cited by applicant]
Rosen et al. “Multicast in MPLS/BGP IP VPNs” Internet Engineering Task Force (IETF), Network Working Group, Internet Draft, Jul. 9, 2008, 92 pp. [cited by applicant]
Rosen et al. “Multicast in MPLS/BGP IP VPNs” Internet Engineering Task Force (IETF), RFC 6513, Feb. 2012, 88 pp. [cited by applicant]
Tianshun et al., “IP Multicast Technology and Its Applications”, Telecommunications Engineering Technology and Standardization, Mar. 2002, pp. 27-31. [cited by applicant]
Notice of Intent to Grant and Text Intended to Grant from counterpart European Application No. 20206193.3 dated Apr. 15, 2024, 72 pp. [cited by applicant]