IP Library Granted Patent US 11,431,614
Granted Patent B2
US 11,431,614 · App. 16/996,449 · Granted Aug 30, 2022

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 11,431,614
App. No.
16/996,449
Granted
Aug 30, 2022
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 (60)

1. A method comprising:

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;

receiving, by the egress network device, a further message from a further ingress network device for the network, 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;

in response to receiving the further message, assuming, by the egress network device, a default upstream multicast hop value for the further ingress network device;

determining, by the egress network device and based on the default upstream multicast hop value and the upstream multicast hop 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 the multicast group;

selecting, by the egress network device and based on the upstream multicast hop weight values specified by the messages and the default upstream multicast hop value, one of the plurality of ingress network devices to which to send a first multicast join message of a plurality of multicast join messages for the multicast source and the multicast group; and

sending, by the egress network device and according to the determined proportions, the first multicast join message to the selected one of the plurality of ingress network devices.

2. The method of claim 1 , further comprising:

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

forwarding, by the egress network device, the multicast traffic.

3. The method of claim 1 , wherein the messages from each of the plurality of ingress network devices and the further message comprise auto discovery messages for the multicast source and the multicast group.

4. The method of claim 1 , wherein the egress network device comprises an egress provider edge router of the network, wherein the plurality of ingress network devices comprise 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.

5. The method of claim 1 , wherein the upstream multicast hop weight values comprise a value of either 0 or 1, the method further comprising:

storing, by the egress network device and to a database, a number of multicast join messages sent to each of the plurality of ingress network devices, and

wherein selecting the one of the plurality of ingress network devices to which to send the first multicast join message comprises selecting, based on the database, a least-loaded one of each of the plurality of ingress network devices from which a message is received specifying an upstream multicast hop weight value of 1, the least-loaded one currently having a smallest number of join messages.

6. The method of claim 1 , wherein determining the proportion of multicast join messages to send to each of the plurality of ingress network devices comprises assigning a different set of one or more index numbers to each of the one or more of the plurality of ingress network devices, the one or more index numbers comprising one or more integers between 0 and 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,

the method further comprising, by the egress network device:

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

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

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

selecting one of the one or more of the plurality of ingress network devices to which to send a third multicast join message based on the index number; and

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

7. The method of claim 6 , wherein assigning the different set of one or more index numbers to each of one or more of the plurality of ingress network devices comprises assigning the different set to any of the plurality of ingress network devices that sent a non-zero upstream multicast hop weight value.

8. The method of claim 1 , wherein at least one of the 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 comprises determining to send zero multicast join messages to the one of the plurality of ingress network devices.

9. The method of claim 1 , wherein the default upstream multicast hop value comprises a value of one.

10. A network device comprising:

a memory; and

one or more processors implemented in circuitry and configured to:

receive messages from each of a plurality of ingress network devices for a 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, wherein at least one of the messages specifies an upstream multicast hop weight value of zero for one of the plurality of ingress network devices;

determine, based on the upstream multicast hop weight values specified by the received messages, a proportion of multicast join messages to send to each of the plurality of ingress network devices, including to determine 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 was specified;

select, based on the determined proportions, one of the plurality of ingress network devices to which to send a first multicast join message of a plurality of multicast join messages for the multicast source and multicast group; and

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

11. The network device of claim 10 , wherein the one or more processors are configured to:

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

forward the multicast traffic.

12. The network device of claim 10 , wherein the network device comprises an egress provider edge router of the network, wherein the plurality of ingress network devices comprise a plurality of ingress provider edge routers of the network, and wherein the messages comprise 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.

13. The network device of claim 10 , wherein the one or more processors being configured to determine the proportion of multicast join messages to send to each of the plurality of ingress network devices comprises the one or more processors being configured to assign a different set of one or more index numbers to each of the one or more of the plurality of ingress network devices, the one or more index numbers comprising one or more integers between 0 and 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 second 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 bytewise exclusive-or operation on bytes in the Customer-Root address and the Customer-Group address of the second 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;

select one of the one or more of the plurality of ingress network devices to which to send a third multicast join message based on the index number; and

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

14. The network device of claim 10 , wherein the upstream multicast hop weight values comprise a value of either zero or one,

wherein the one or more processors are configured to store, to a database, a number of multicast join messages sent to each of the plurality of ingress network devices, and

wherein the one or more processors being configured to select the one of the plurality of ingress network devices to which to send the first multicast join message comprises the one or more processors being configured to select, based on the database, a least-loaded one of each of the plurality of ingress network devices from which a message is received specifying an upstream multicast hop weight value of one.

15. A method comprising:

determining, by an ingress network device for a network and based on an amount of upstream access bandwidth between the ingress network device and a customer edge device, an upstream multicast hop weight value for multicast traffic for a multicast source and a multicast group, the customer edge device being positioned between the ingress network device and the multicast source;

sending, by the ingress network device and to one or more peer network devices for the network, a first message specifying the upstream multicast hop weight value for the multicast traffic, wherein the first message further specifies the multicast source and the multicast group;

subsequent to the determining, determining, by the ingress network device and in response to detecting a change in upstream access bandwidth between the ingress network device and the customer edge device, an updated upstream multicast hop weight value; and

sending, by the ingress network device and to the peer network devices for the network, a second message specifying the updated upstream multicast hop weight value for the multicast traffic, wherein the second message further specifies the multicast source and the multicast group.

16. A method comprising:

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;

assigning a different set of one or more index numbers to each of the plurality of ingress network devices, the one or more index numbers comprising one or more integers between 0 and 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;

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

applying a hash function comprising a bytewise 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;

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

identifying, by the egress network device and based on the index number, the one of the plurality of ingress network devices corresponding to the set of index numbers containing the determined index number; and

sending, by the egress network device, the multicast join message to the identified one of the plurality of ingress network devices.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 31, 2023
From: N, VINOD KUMAR; KEBLER, ROBERT W.; MANOHARAN, ASHOK PATRICK JUDE; BOOPATHY, HARIHARAN
To: JUNIPER NETWORKS, INC
Reel/Frame 065412/0606 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 18, 2020
From: N, VINOD KUMAR; KEBLER, ROBERT W.; MANOHARAN, ASHOK PATRICK JUDE; BOOPATHY, HARIHARAN
To: JUNIPER NETWORKS, INC.
Reel/Frame 053528/0410 →
Continuity (1)
Related Publication 20220060407A1 · Feb 24, 2022