# US 11,444,793 B2 · Maximally redundant trees to redundant multicast source nodes for multicast protection

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 11,444,793 B2
- Document ID: US11444793B2
- Status: Granted
- Kind: B2
- Application number: 16/779,948
- Filed: 2020-02-03
- Published: 2020-06-04
- Granted: 2022-09-13
- Earliest claimed: 2017-07-28
- Assignees: Juniper Networks, Inc.
- Applicants: Juniper Networks, Inc.
- Inventors: Robert W. Kebler; Vikram Nagarajan
- Web page: https://patentgrep.com/patent/US11444793B2

## CPC

- H04L 12/18: for broadcast or conference {, e.g. multicast}
- H04L 12/185: {with management of multicast group membership}
- H04L 12/1877: {Measures taken prior to transmission}
- H04L 12/44: Star or tree networks
- H04L 45/16: Multipoint routing
- H04L 45/22: {Alternate routing}
- H04L 45/484: using multiple routing trees
- H04L 65/611: for multicast or broadcast (systems for broadcast or conference H04L12/18; arrangements for broadcast or distribution combined with broadcast H04H20/00; arrangements for broadcast applications with a direct linkage to broadcast information or to broadcast space-time H04H60/00; selective distribution of broadcast services, e.g. multimedia broadcast multicast service [MBMS], H04W4/06)
- H04L 12/40176: {involving redundancy (error detection or correction of the data by redundancy in hardware using active fault-masking in interconnections G06F11/2002; error detection or correction of the data by redundancy in hardware using active fault-masking in storage systems using spares or by reconfiguring G06F11/2053)}
- H04L 45/12: Shortest path evaluation
- H04L 45/128: for finding disjoint paths
- H04W 40/026: {Route selection considering the moving speed of individual devices}
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- H04W: WIRELESS COMMUNICATION NETWORKS (broadcast communication H04H; communication systems using wireless links for non-selective communication, e.g. wireless extensions H04M1/72)

## Abstract

In general, techniques are described for enabling a network of network devices (or “nodes”) to provide redundant multicast streams from redundant multicast sources to an egress network node. In some examples, the egress network node (or a controller for the network) computes maximally redundant trees (MRTs) from the egress network node to a virtual proxy node virtually added to the network topology by the egress network node for redundant multicast sources of redundant multicast streams.

## Claims

### Claim 1

A method comprising:
configuring, in a network node of a network, forwarding state for a pair of maximally redundant trees (MRTs) computed, using a network graph for the network modified to include a virtual proxy node, from the network node in the modified network graph to the virtual proxy node in the modified network graph, wherein the virtual proxy node in the modified network graph represents a first multicast source that outputs a first redundant multicast stream for multicast content and also represents a second multicast source that outputs a second redundant multicast stream for the multicast content;
forwarding, by the network node, according to the forwarding state configured for a first MRT of the pair of MRTs, a first message requesting to receive a multicast stream for the multicast content; and
forwarding, by the network node, according to the forwarding state configured for a second MRT of the pair of MRTs, a second message requesting to receive a multicast stream for the multicast content.

### Claim 2 (depends on 1)

The method of claim 1, wherein the network comprises network nodes having a network topology, the method further comprising:
generating, by processing circuitry and using routing information for the network, the modified network graph by modifying the network graph of the network topology to include the virtual proxy node, a first network link virtually coupling the virtual proxy node with a first network node of the network nodes that ingresses, into the network, the first redundant multicast stream from the first multicast source, and a second network link virtually coupling the virtual proxy node with a second network node of the network nodes that ingresses, into the network, the second redundant multicast stream from the second multicast source; and
computing, using the modified network graph, the pair of MRTs from the network node to the virtual proxy node.

### Claim 3 (depends on 2)

The method of claim 2, further comprising:
obtaining, by the network node via one or more routing protocol messages, the routing information for the network.

### Claim 4 (depends on 2)

The method of claim 2,
wherein the first MRT includes the first network link virtually coupling the virtual proxy node with the first network node, and
wherein the second MRT includes the second network link virtually coupling the virtual proxy node with the second network node.

### Claim 5 (depends on 1)

The method of claim 1,
wherein the first multicast source and the second multicast source are configured with a shared Internet Protocol address for sourcing the first redundant multicast stream and the second redundant multicast stream, respectively, and
wherein the virtual proxy node has the shared Internet Protocol address in the modified network graph.

### Claim 6 (depends on 1)

The method of claim 1,
wherein the network comprises network nodes according to a network topology,
wherein the first multicast source is configured with a first Internet Protocol address for sourcing the first redundant multicast stream and the second multicast source is configured with a second, different Internet Protocol address for sourcing the second redundant multicast stream, the method further comprising:
obtaining data indicating the first multicast source and second multicast source are redundant multicast sources for the multicast content; and
generating, in response to the obtaining and using routing information for the network, the modified network graph of the network topology to include the virtual proxy node, the virtual proxy node having a third Internet Protocol address.

### Claim 7 (depends on 6)

The method of claim 6, further comprising:
modifying, after computing the pair of MRTs, the first MRT to have a destination that is the first Internet Protocol address of the first multicast source; and
modifying, after computing the pair of MRTs, the second MRT to have a destination that is the second Internet Protocol address of the second multicast source.

### Claim 8 (depends on 1)

The method of claim 1, wherein the first multicast source and second multicast source are network nodes of the network and configured to operate as anycast rendezvous points with a shared Internet Protocol address for distributing the respective redundant multicast streams.

### Claim 9 (depends on 1)

The method of claim 1,
receiving, by the network node in response to the first message, the first redundant multicast stream via a reverse path of the first MRT;
receiving, by the network node in response to the second message, the second redundant multicast stream via a reverse path of the second MRT; and
forwarding, by the network node, the first redundant multicast stream to an interested receiver.

### Claim 10 (depends on 9)

The method of claim 9, further comprising:
forwarding, by the network node in response to detecting a failure of the first redundant multicast stream, the second redundant multicast stream to the interested receiver.

### Claim 11 (depends on 1)

The method of claim 1,
wherein configuring the forwarding state for the pair of MRTs comprises installing, by the network node to a forwarding information base, a first next-hop for a path along the first MRT and a second next-hop for a path along the second MRT,
wherein forwarding the first message according to the forwarding state comprises forwarding the first message via the first next-hop, and
wherein forwarding the second message according to the forwarding state comprises forwarding the second message via the second next-hop.

### Claim 12 (depends on 1)

The method of claim 1, further comprising:
receiving, by the network node from a controller, data describing the pair of MRTs,
wherein configuring the forwarding state for the pair of MRTs comprising configuring, by the network node, the forwarding state for the pair of MRTs based at least on the data describing the pair of MRTs.

### Claim 13 (depends on 1)

The method of claim 1, further comprising:
receiving, by the network node from a controller, the forwarding state.

### Claim 14 (depends on 1)

The method of claim 1, wherein the network node is a rendezvous point node for a multicast shared tree for the multicast content.

### Claim 15

A computing device comprising:
a memory device, wherein the memory device is configured to store routing information for a network of network nodes having a network topology; and
processing circuitry coupled to the memory device, wherein the processing circuitry is configured to:
generate, using the routing information, a modified network graph from a network graph of the network topology to include:
a virtual proxy node,
a first network link virtually coupling the virtual proxy node with a first network node of the network nodes that ingresses, into the network, a first redundant multicast stream for multicast content from a first multicast source represented by the virtual proxy node, and
a second network link virtually coupling the virtual proxy node with a second network node of the network nodes that ingresses, into the network, a second redundant multicast stream for the multicast content from a second multicast source represented by the virtual proxy node; and
compute, using the modified network graph, a pair of maximally redundant trees (MRTs) from a network node of the network nodes to the virtual proxy node; and
obtain forwarding state that is generated from the pair of MRTs and that causes the network node to forward a first message requesting to receive a multicast stream for the multicast content via a first MRT of the pair of MRTs and to forward a second message requesting to receive a multicast stream for the multicast content via a second MRT of the pair of MRTs.

### Claim 16 (depends on 15)

The computing device of claim 15, wherein to obtain the forwarding state the processing circuitry is configured to generate the forwarding state based on the pair of MRTs.

### Claim 17 (depends on 15)

The computing device of claim 15, wherein the processing circuitry is configured to output the forwarding state to the network node for configuring the network node.

### Claim 18 (depends on 15)

The computing device of claim 15, wherein the processing circuitry is further configured to obtain, via one or more routing protocol messages, the routing information for the network.

### Claim 19 (depends on 15)

The computing device of claim 15, wherein the computing device comprises one of a controller for the network or the network node.

### Claim 20

A non-transitory computer-readable storage medium comprising instructions that, when executed, cause processing circuitry of a network node of a network to:
configure forwarding state for a pair of maximally redundant trees (MRTs) computed, using a network graph for the network modified to include a virtual proxy node, from the network node in the modified network graph to the virtual proxy node in the modified network graph, wherein the virtual proxy node in the modified network graph represents a first multicast source that outputs a first redundant multicast stream for multicast content and that also represents a second multicast source that outputs a second redundant multicast stream for the multicast content;
forward according to the forwarding state configured for a first MRT of the pair of MRTs, a first message requesting to receive a multicast stream for the multicast content; and
forward according to the forwarding state configured for a second MRT of the pair of MRTs, a second message requesting to receive a multicast stream for the multicast content.
