IP Library Granted Patent US 11,902,148
Granted Patent B2
US 11,902,148 · App. 18/046,741 · Granted Feb 13, 2024

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,902,148
App. No.
18/046,741
Granted
Feb 13, 2024
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 and a multicast group, and at least one of the messages includes a field specifying an upstream multicast hop weight value for multicast traffic for the multicast source and the multicast group;

determining, by the egress network device and based on the received messages and the upstream multicast weight value specified by the at least one of the messages, a proportion of a plurality of multicast join messages to send to each of the plurality of ingress network devices;

selecting, by the egress network device and based on the determined proportions, one of the plurality of ingress network devices to which to send a given multicast join message of the plurality of multicast join messages for the multicast source and multicast group; and

sending, by the egress network device and according to the determined proportions, the given 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 multicast join message, receiving, by the egress network device, multicast traffic for the multicast source and multicast group 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; 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 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 value comprises a value of either zero or one, 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 given 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 one, the least-loaded one currently having been sent a smallest number of multicast 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 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; and

wherein selecting comprises selecting the one of the one or more of the plurality of ingress network devices to which to send the given multicast join message based on the index number.

7. The method of claim 6 , wherein assigning a different set of one or more index numbers to each of one or more of the plurality of ingress network devices comprises assigning a 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 for which the upstream multicast hop weight value of zero is specified.

9. The method of claim 1 , further comprising:

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; and

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,

wherein determining the proportion of multicast join messages comprises determining, by the egress network device and 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.

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

11. 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 and a multicast group, and at least one of the messages includes a field specifying an upstream multicast hop weight value for multicast traffic for the multicast source and the multicast group;

determine, based on the received messages and the upstream multicast weight value specified by the at least one of the messages, a proportion of a plurality of multicast join messages to send to each of the plurality of ingress network devices;

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

send, according to the determined proportions, the given multicast join message to the selected one of the plurality of ingress network devices.

12. The network device of claim 11 , 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 the plurality of multicast join messages sent to each ingress network device; and

forward the multicast traffic.

13. The network device of claim 11 , 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.

14. The network device of claim 11 , wherein the upstream multicast hop weight value comprises 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 given 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, the least-loaded one currently having been sent a smallest number of multicast join messages.

15. The network device of claim 11 , 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 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 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 being configured to select comprises the one or more processors being configured to select one of the one or more of the plurality of ingress network devices to which to send a multicast join message based on the index number.

16. The network device of claim 11 , 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 the one or more processors being configured to determine the proportion of multicast join messages to send to the one of the plurality of ingress network devices comprises the one or more processors being configured to determine to send zero multicast join messages to the one of the plurality of ingress network devices for which the upstream multicast op weight value of zero is specified.

17. The network device of claim 11 , wherein the messages from each of the plurality of ingress network devices comprise auto discovery messages for the multicast source and the multicast group.

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

receive 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; and

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

wherein the one or more processors being configured to determine the proportion of multicast join messages comprises the one or more processors being 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.

19. The network device of claim 18 , wherein the default upstream multicast hop weight value comprises a value of one.

20. A non-transitory computer-readable medium encoded with instructions for causing a programmable processor of an egress network device to perform steps comprising:

receiving messages from each of a plurality of ingress network devices for the network, wherein each of the messages specifies a multicast source and a multicast group, and at least one of the messages includes a field specifying an upstream multicast hop weight value for multicast traffic for the multicast source and the multicast group;

determining, based on the received messages and the upstream multicast weight value specified by the at least one of the messages, a proportion of a plurality of multicast join messages to send to each of the plurality of ingress network devices;

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

sending, according to the determined proportions, the given multicast join message to the selected one of the plurality of ingress network devices.

Assignments (2)
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 066762/0742 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 23, 2023
From: N, VINOD KUMAR; KEBLER, ROBERT W.; MANOHARAN, ASHOK PATRICK JUDE; BOOPATHY, HARIHARAN
To: JUNIPER NETWORKS, INC
Reel/Frame 065316/0215 →
Continuity (2)
Continuation 16996449 · Aug 18, 2020
Related Publication 20230065908A1 · Mar 2, 2023
Cited By (3)
US 12,244,509 US 12,289,231 US 12,706,856