SD-WAN Multicast Replicator Selection Centralization Policy

A centralized control policy in SD-WAN networks optimizes multicast replicator selection by considering proximity, capacity, and load, addressing inefficiencies in traditional local configurations and enhancing traffic distribution and redundancy.

JP7597919B2Active Publication Date: 2024-12-10CISCO TECHNOLOGY INC
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
JP2023516662
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2020-11-23
Filing Date
2021-11-11
Publication Date
2024-12-10
Estimated Expiration
2041-11-11

AI Technical Summary

Technical Problem

Traditional SD-WAN multicast replicator selection is based solely on local configurations, leading to inefficient and coarse decisions without considering client preferences or redundancy requirements, and lacks centralized control for optimal replicator selection.

Method used

Implement a centralized control policy in SD-WAN networks to analyze multicast advertisements from edge devices, identify replicators, and apply preferences based on proximity, capacity, load, and administrative considerations to select preferred replicators for multicast flows.

Benefits of technology

Enables fine-grained customization of multicast replicator selection, allowing for optimal distribution of multicast traffic based on centralized policies, improving efficiency and redundancy in SD-WAN networks.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007597919000001
    Figure 0007597919000001
  • Figure 0007597919000002
    Figure 0007597919000002
  • Figure 0007597919000003
    Figure 0007597919000003
Patent Text Reader

Abstract

The present disclosure is directed to a centralized control policy for multicast replicator selection. The method includes receiving multicast advertisements from a plurality of edge devices configured with a multicast protocol, each multicast advertisement including information indicating whether the associated edge device is a replicator, analyzing the multicast advertisements from the plurality of edge devices to identify one or more replicators, receiving a centralized policy configuration associated with at least one control policy including preferences related to selection of at least one replicator from the identified one or more replicators, the preferences being applicable to a defined set of edge devices from the plurality of edge devices, and updating the at least one multicast advertisement with the control policy for transmission to the defined set of edge devices, the updated at least one multicast advertisement indicating a preference for replicator selection for the defined set of edge devices based on the control policy.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] The present disclosure relates generally to software-defined wide area network (SD-WAN) multicast replicator selection, and more specifically to a system and method for SD-WAN multicast replicator selection based on a centralized policy. [Background technology]

[0002] IP multicast is a bandwidth-conserving technology that reduces traffic by simultaneously delivering a single stream of information to potentially thousands of enterprise and home recipients (e.g., receivers). Multicast packets are replicated in the network at points where paths diverge by edge devices enabled by Protocol Independent Multicast (PIM) and / or other supporting multicast protocols, resulting in efficient distribution of data to multiple receivers. [Brief description of the drawings]

[0003] [Figure 1] 1 illustrates a system for multicast replicator selection using a centralized control policy, according to an embodiment. [Diagram 2] 1 illustrates an example syntax for a centralized control policy that may be configured on a central controller, according to an embodiment. [Diagram 3] 1 illustrates a flow diagram of a method for multicast replicator selection using a centralized control policy, according to an embodiment. [Figure 4] 1 illustrates a computer system according to an embodiment. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0004] overview Aspects of the invention are set out in the independent claims and preferred features are set out in the dependent claims. Features of one aspect may be applied to each aspect alone or in combination with other aspects.

[0005] According to one embodiment, a system includes one or more processors and one or more computer-readable non-transitory storage media containing instructions that, when executed by the one or more processors, cause one or more components of the system to: receive multicast advertisements from a plurality of edge devices, each edge device of the plurality of edge devices configured with a multicast protocol, each multicast advertisement including information indicating whether an associated edge device is a replicator; analyze the multicast advertisements from the plurality of edge devices to identify one or more replicators; and retrieve at least one replica from the identified one or more replicators. receiving a centralized policy configuration associated with at least one control policy including preferences related to replicator selection for the defined set of edge devices from the plurality of edge devices, the preferences being applicable to a defined set of edge devices; and updating at least one multicast advertisement associated with the at least one replicator with the control policy for transmission to the defined set of edge devices, the updated at least one multicast advertisement indicating a preference for replicator selection for the defined set of edge devices based on the control policy.

[0006] Additionally, multiple edge devices can be configured on a software-defined wide area network (SD-WAN).

[0007] Additionally, the preference may be based on at least one of the following: proximity of the at least one replicator to a defined set of edge devices, capacity of the at least one replicator relative to one or more replicators, distribution of the load of the at least one replicator relative to one or more replicators, or administrative considerations.

[0008] Further, the preference may include a high preference associated with the at least one replicator or a low preference associated with the at least one replicator. Additionally, the high preference may further include a preemptive preference for directing existing multicast flows to the at least one replicator.

[0009] Additionally, the control policy may be further associated with a defined multicast prefix list associated with a set of multicast group prefixes and prefix length tuples, the defined multicast prefix list being transmitted to the defined set of edge devices. Additionally, the control policy may be further associated with a defined multicast prefix list associated with a set of multicast group prefixes, prefix lengths, and source tuples, the defined multicast prefix list being transmitted to the defined set of edge devices.

[0010] According to another embodiment, a method may include receiving multicast advertisements from a plurality of edge devices, each edge device of the plurality of edge devices configured with a multicast protocol, each multicast advertisement including information indicating whether an associated edge device is a replicator; analyzing the multicast advertisements from the plurality of edge devices to identify one or more replicators; receiving a centralized policy configuration associated with at least one control policy including preferences related to selection of at least one replicator from the identified one or more replicators, the preferences being applicable to a defined set of edge devices from the plurality of edge devices; and updating at least one multicast advertisement associated with the at least one replicator with the control policy for transmission to the defined set of edge devices, the updated at least one multicast advertisement indicating a preference for replicator selection for the defined set of edge devices based on the control policy.

[0011] According to yet another embodiment, one or more computer-readable non-transitory storage media may embody instructions that, when executed by a processor, cause an operation to be performed including receiving multicast advertisements from a plurality of edge devices, each edge device of the plurality of edge devices configured with a multicast protocol, each multicast advertisement including information indicating whether an associated edge device is a replicator; analyzing the multicast advertisements from the plurality of edge devices to identify one or more replicators; receiving a centralized policy configuration associated with at least one control policy including preferences related to selection of at least one replicator from the identified one or more replicators, the preferences being applicable to a defined set of edge devices from the plurality of edge devices; and updating at least one multicast advertisement associated with the at least one replicator with the control policy for transmission to the defined set of edge devices, the updated at least one multicast advertisement indicating a preference for replicator selection for the defined set of edge devices based on the control policy.

[0012] Technical advantages of certain embodiments of the present disclosure may include one or more of the following: Conventional SD-WAN multicast replicator selection configurations are based solely on the status of locally configured replicators, replicator path thresholds, and / or the physical location of the replicators. In these scenarios, edge devices must perform ingress replication of multicast flows to all other edge devices that have receivers at their sites. The systems and methods described herein may enable centralized selection of multicast replicators in SD-WAN networks, thereby overcoming the aforementioned shortcomings of local replication configurations. In particular, centralized control policies may enable reversion behavior (by allowing multicast flows to be moved to a more preferred replicator), take into account client preferences (e.g., redundancy requirements, etc.), enable at least one level of backup replicators in case a preferred replicator fails, select different replicators based on multicast groups or multicast group / source tuples, and enable backward compatibility with existing configurations.

[0013] Other technical advantages will be readily apparent to one skilled in the art from the following figures, description, and claims. Additionally, although certain advantages have been enumerated above, various embodiments may include all, some, or none of the enumerated advantages. Exemplary embodiments

[0014] Multicast is a method of group communication that sends data to multiple receivers in one transmission. Using multicast, a sender may send a data packet to a single multicast IP address, which corresponds to a multicast group (i.e., containing a set of receivers interested in a particular data stream). The sender need only set the destination IP address of the data packet to the multicast IP address. The data packet sent to the multicast IP address is then forwarded to a network device (e.g., a router), which replicates the packet and forwards it towards the set of receivers in the multicast group.

[0015] At the heart of multicast is packet replication, a process that creates multiple physical copies of a particular packet and sends the copies to destination interfaces in the forwarding path. SD-WAN edge devices can be deployed and configured as replicators across the SD-WAN overlay network. The replicators advertise themselves to a central controller in the overlay network, which then forwards replicator location information to multicast protocol-enabled edge devices (e.g., Protocol Independent Multicast (PIM)-enabled edge devices) that are in the same VPN as the replicator. Thus, the replicator receives data streams from multicast sources, replicates them, and forwards them to edge devices with multicast receivers in the same VPN.

[0016] As described above, edge devices subscribe to replicators through an SD-WAN fabric, sources send data packets to the replicators, and the replicators forward the data packets to receivers. Traditionally, each edge device must select a replicator locally, which can be a coarse decision. The present disclosure attempts to improve upon the prior art by introducing a mechanism for multicast replicator selection based on a centralized control policy in SD-WAN.

[0017] FIG. 1 depicts a system 100 for multicast replicator selection in an SD-WAN using centralized control policies in accordance with the present disclosure. The system 100 may be configured in an SD-WAN overlay 180 and may include at least one central controller 110 for coordinating centralized management of the system 100, particularly for configuration of centralized control policies for multicast replicator selection. Although a single central controller is shown in FIG. 1, it should be understood that the system 100 may include any number of central controllers. The central controller 110 may include, among other things, a control module for executing an overlay management protocol (OMP). In SD-WAN, OMP is a control protocol used to establish and maintain a control plane, including for exchanging routing, policy, and management information between the central controller 110 and edge devices in the network, and for orchestrating overlay network communication and connectivity between edge devices.

[0018] The system 100 may further include multiple sites 120a-e. FIG. 1 shows site 1 120a, site 2 120b, site 3 120c, site 4 120d, and site 5 120e. A site refers to a physical location in the SD-WAN network 180 where one or more edge devices (also referred to as "nodes") 130a-e may reside. For example, an enterprise branch office may be a site and may include multiple edge devices. An edge device provides an entry point into an enterprise or service provider network. Examples of edge devices include routers, routing switches, integrated access devices (IADs), and wide area network (WAN) access devices. In FIG. 1, each of the multiple sites 120a-e includes a single edge device (i.e., edge device 130a in site 1 120a, edge device 130b in site 2 120b, edge device 130c in site 3 120c, edge device 130d in site 4 120d, and edge device 130e in site 5 120e). However, it should be understood that a given site may have multiple edge devices. Edge devices 130a-e are collectively referred to as "multiple edge devices."

[0019] Further assume that sites 1 and 2 120a, 120b are multicast sites and edge devices 130a, 130b are configured with a multicast protocol such as Protocol Independent Multicast (PIM) or Internet Group Management Protocol (IGMP) version 3 multicast routing. Similarly, sites 3, 4, and 5 120c, 120d, 120e are multicast sites and their associated edge devices 130c, 130d, 130e are configured with PIM routing. In addition, edge device 130a is located at a site (site 1 120a) that has two multicast receivers 150a, 150b located at the local site behind edge device 130a. Multicast receivers 150a, 150b are configured with a local site PIM router (not shown). Similarly, edge device 130b is located at a site (site 2 120b) that is located at a local site behind edge device 130b and has one multicast receiver 160a configured as a local site PIM router. Finally, edge device 130c is located at site 3 120c that is located at a local site behind edge device 130c and has a multicast source 170a configured as a local site PIM router. Furthermore, the OMP control protocol in the SD-WAN overlay is used to connect all remote PIM islands. It should be understood that sites 1, 2, and 3 may be configured in any manner and may include any number of edge devices acting as source and / or receiver devices. However, for illustrative purposes, site 1 120a and its corresponding edge device 130a are shown to receive the multicast flow. Site 2 120b and its corresponding edge device 130b are shown to receive the multicast flow, and site 3 and its corresponding edge device 130c are shown to transmit the multicast flow.

[0020] Continuing to refer to FIG. 1, one or more edge devices 130d-e of the plurality of edge devices 130a-e may be configured as an SD-WAN multicast replicator. Specifically, edge device 130d is a multicast replicator located at site 4 120d, and edge device 130e is a multicast replicator located at site 5 120e. Thus, in FIG. 1, edge devices 130d, 130e are each labeled as a "replicator." As described above, a multicast replicator receives data streams from a multicast source, replicates them, and forwards them to edge devices that have multicast receivers in the same VPN.

[0021] In operation, each of the plurality of edge devices 130a-e may send a multicast advertisement to the central controller 110 to advertise itself. In one embodiment, the multicast advertisement of the edge devices 130a-e may include an OMP multicast auto-discovery route sent to the central controller 110 in the overlay network 180. The multicast advertisement may include information indicating whether the edge device sending the advertisement is a replicator. The central controller 110 may analyze the multicast advertisements received from the plurality of edge devices 130a-e to identify one or more edge devices 130d, 130e that function as multicast replicators in the network 180.

[0022] The central controller 110 may then receive a centralized policy configuration associated with at least one control policy. Specifically, the control policy may be configured by a user (or, in some cases, generated at or by a network device) for execution on the central controller 110. The control policy may assign preferences related to the selection of a replicator to be applied to a set of non-replicator edge devices. In other words, the control policy may define or enumerate a set of edge devices and state a preference that the defined set of edge devices select or use (or not select / use) a given replicator for a multicast flow. It should be understood that the "set" of edge devices defined by the control policy may include one or more edge devices. In one embodiment, the defined set of edge devices may refer to edge devices that receive the multicast flow (i.e., edge devices that have a multicast receiver at a local site, such as edge device 130a having multicast receivers 150a, 150b at its local site and edge device 130b having multicast receiver 160a at its local site). For illustrative purposes, in FIG. 1, the defined set of edge devices may include edge devices 130a, 130b, and a control policy (not shown) may state a preference associated with selecting a replicator (shown in FIG. 1 as edge device 130d). In one embodiment, the preference indicated by the control policy may correspond to a high (or preferred) preference for selecting a given replicator to receive a multicast flow. The high preference may include a preemptive preference to direct existing multicast flows associated with the defined set of edge devices away from a current replicator and toward the replicator indicated by the control policy.In another embodiment, the preferences indicated by the control policy may correspond to a low (or non-preferred) preference for selecting a given replicator, and the replicator may be used as a backup replicator for a defined set of edge devices or may be ineligible for use by the defined set of edge devices.

[0023] The preference may be determined based on a variety of factors including, for example, the proximity of the replicator to a given set of edge devices (e.g., a high preference may be assigned to a replicator that is close to a set of edge devices), the capacity of the replicator relative to one or more other replicators (e.g., a high preference may be assigned to a replicator with high capacity), the distribution of the replicator's load relative to one or more other replicators (e.g., a high preference may be assigned to a replicator with low load distribution), and / or administrative considerations related to the set of replicators and / or edge devices (e.g., an administrative preference that all edge devices in a country use a replicator in that country).

[0024] Once the policy is configured on the central controller 110, the central controller 110 may then update the multicast advertisement associated with the preferred replicator by adding a control policy and then transmit the updated multicast advertisement(s) to the defined set of edge devices. As an example, in FIG. 1, the multicast advertisement associated with the preferred replicator (edge ​​device 130d) is updated with a control policy indicating that the replicator (edge ​​device 130d) is the preferred replicator used by the defined set of edge devices 130a-b, and that the updated multicast advertisement is transmitted to the defined set of edge devices 130a-b. In another embodiment, the updated multicast advertisement may be transmitted to multiple edge devices 130a-e. The updated multicast advertisement indicates a replicator selection preference for the defined set of edge devices based on the control policy. As described above, replicator selection preferences may include accepting (selecting) a replicator for a new multicast flow, preempting an existing multicast flow, disqualifying a replicator, and / or designating a replicator as a backup. When a defined set of edge devices 130a-b receives an updated multicast advertisement, they may run a replicator selection algorithm and, in the example of FIG. 1, select a replicator (edge ​​device 130d) to receive the multicast flow based on the preferences set forth in the control policy.

[0025] In the example of FIG. 1, the dotted lines indicate that the control policy has assigned a preference associated with the replicator (edge ​​device 130d) to be applied to a defined set of edge devices 130a, 130b that should receive the multicast flow. In other words, the control policy defined the set of edge devices 130a, 130b and assigned the defined set of edge devices 130a, 130b a high (preferred) preference to use the replicator (edge ​​device 130d) to receive the multicast flow, i.e., by directing their joins (their requests to receive the multicast flow) to the replicator (edge ​​device 130d). The replicator may then learn about the source (e.g., source 170a) through different multicast advertisements and send a join (i.e., a request to receive the flow) to edge device 130c at site 3 120c. As a result, a data packet transmitted by source 170a (located behind edge device 130c) uses a replicator (edge ​​device 130d) to transmit the data stream to receivers 150a, 150b (located behind edge device 130a) and receiver 160a (located behind edge device 130b).

[0026] In one embodiment, a control policy may include a single preference associated with a selected set of edge devices. In another embodiment, a control policy may include different preferences for different sets of edge devices. For example, a control policy may define a first set of edge devices (e.g., East Coast edge devices) and a second set of edge devices (e.g., West Coast edge devices) and indicate a first preference that a first replicator is used for the defined first set of East Coast edge devices and a second preference that a second replicator is used for the defined second set of West Coast edge devices.

[0027] In further embodiments, multiple replicators may be selected for different multicast destinations or destination / source pairs. Thus, the control policy may include a defined multicast prefix list associated with a set of multicast group prefixes and prefix length tuples, or a set of multicast group prefixes, prefix lengths, and source tuples, in addition to the replicator preference. The multicast prefixes operate to identify the path of the multicast flow. Thus, when the central controller sends an updated multicast advertisement to the edge devices, it may also send the prefix list to the edge devices (the edge devices may receive the prefix list), which may then be used to select different replicators for different multicast groups or multicast group / source tuples. In one embodiment, the multicast source may be specified with the full group address (i.e., prefix length 32 for IPv4 or prefix length 128 for IPv6), thereby allowing the lookup to be a simple longest prefix match on the group or group / source pair. The multicast prefix list can be used to set up the longest prefix match for the group as well as for the complete group address so that a preferred replicator can be dynamically selected during a reverse-path forwarding (RPF) check in the same manner as a forward information base (FIB) lookup. As understood in the art, RPF checks are performed by potential receivers when determining where to send join requests (i.e., requests to receive a given multicast stream). These are sent to the selected replicator (edge ​​device 130d), which then sends the join to the source edge device 130c or PIM Rendezvous Point (RP) site.

[0028] Using the multicast prefix list, multicast advertisements, e.g., OMP multicast auto-discovery routes, can be categorized so that different combinations can be used (e.g., <group> / prefix-length / <group source>), multiple tuples (e.g.,<multicast-prefix-list,preference,preempt> It should be understood that the number of such tuples may need to be extended to include tuples. It should be understood that this disclosure does not limit the number of such tuples, but that an implementation may only need to support a limited number of tuples.

[0029]

[0023] Referring now to Figure 2, Figure 2 illustrates an example syntax associated with a centralized control policy 200 that may be configured on a central controller in accordance with the present disclosure. It should be understood that the syntax of Figure 2 is shown for illustrative purposes and may be adapted, revised, or otherwise modified in any manner to achieve the same or substantially the same results as described in the present disclosure.

[0030] In the control policy 200, a set of edge devices (referred to in FIG. 2 as "site-id 1," "site-id 2," and "site-id 5," collectively referred to as "west-sites" 210) may be defined for application of the policy. A multicast prefix list 220 may also be defined to identify paths for multicast flows. The control policy 200 of FIG. 2 includes a preference 230 for a multicast replicator (referred to as "Chicago-replicator"). The policy is further defined with two enumerated sequences 240, 250.

[0031] The first sequence 240 (labeled "sequence 10") establishes match parameters for the multicast route, and a preferred replicator (corresponding to "originator" having IP address 10.100.1.1) is specified for the multicast flow defined by prefix list 220. The "action accept" and "set replicator preference 1000 preempt" commands specify the preferred replicator and operate to preempt existing flows when a replicator is selected to be configured on the enumerated edge devices.

[0032] The second sequence 250 (labeled “sequence 15”) establishes match parameters for disqualifying the replicator. Specifically, the “action reject” command disqualifies the replicator (corresponding to “originator” having IP address 10.100.1.2) from being used for any flow regardless of preference when the policy is applied to the SD-WAN site.

[0033] This policy ends with the command shown in element 260, whereby the previously described control policy enumerating preferences for "chicago-replicator" can be applied to the defined "west-sites."

[0034]

[0023] Referring now to Figure 3, a flow diagram of a method 300 for multicast replicator selection using a centralized control policy is depicted. The steps of method 300 may follow the operations outlined in connection with system 100 of Figure 1. Accordingly, like and corresponding terms described in connection with Figure 1 may have the same meaning when used in connection with method 300 of Figure 3. Additionally, this disclosure incorporates by reference the description of system 100 for purposes of explaining, detailing, or otherwise clarifying the steps of method 300.

[0035] Method 300 may be performed in an SD-WAN network having at least one central controller and multiple edge devices. In one embodiment, the central controller may be configured in a control and management plane of the network and may coordinate central management of multiple nodes in the network. In one embodiment, the central controller may include a control module for performing the OMP. In one embodiment, the steps of method 300 may be performed from the perspective of the central controller. However, it should be understood that method 300 may be performed by any component, element, or module in the network without departing from the spirit or scope of the present disclosure.

[0036] An edge device provides an entry point into an enterprise or service provider network. Examples of edge devices include routers, routing switches, IADs, and WAN access devices. Each of the multiple edge devices in the SD-WAN network may reside at a site or physical location within the SD-WAN network and may be configured with a multicast protocol such as PIM or IGMP version 3 routing. Each edge device may have one or more multicast receivers configured with PIM and located at the local site behind the edge device, and / or one or more multicast sources configured with PIM and located at the local site behind the edge device. Additionally, the OMP control protocol in the SD-WAN overlay is used to connect all remote PIM islands.

[0037] In addition, one or more of the edge devices may be configured as an SD-WAN multicast replicator, which receives data streams from a multicast source, replicates them, and forwards them to edge devices that have multicast receivers in the same VPN, as described above.

[0038] The method may begin at step 310. At step 320, the central controller may receive a multicast advertisement from a plurality of edge devices configured with a multicast protocol. In other words, each edge device of the plurality of edge devices may send a multicast advertisement to the central controller. Each multicast advertisement may include information indicating whether an associated edge device (i.e., the edge device that sent the multicast advertisement) is a replicator. In one embodiment, the multicast advertisement may include an OMP multicast auto-discovery path.

[0039] At step 330, the central controller may analyze the multicast advertisements from the multiple edge devices to identify one or more replicators. At step 340, a determination may be made as to whether one or more replicators have been identified. If at step 340, it is determined that one or more replicators have not been identified, the method may end at step 370. However, if at step 340, it is determined that one or more replicators have been identified, the method may proceed to step 350.

[0040] In step 350, the central controller may receive a centralized policy configuration associated with at least one control policy including a preference regarding the selection of at least one replicator from the identified one or more replicators, the preference being applicable to a defined set of edge devices from the plurality of edge devices. The centralized control policy may be configured by a user or may be generated in or by the network device for execution on the central controller. The control policy may define a set of edge devices and state a preference that the defined set of edge devices select or use (or not select / use) a given replicator for a multicast flow. It should be understood that the "set" of edge devices defined by the control policy may include one or more edge devices. The defined set of edge devices may include one or more edge devices that receive the multicast flow. In one embodiment, the preference indicated by the control policy may correspond to a high (or favorable) preference for selecting a given replicator. The high preference may include a preemptive preference to direct existing multicast flows associated with the defined set of edge devices away from a current replicator and toward a replicator indicated by the control policy. In another embodiment, the preference indicated by the control policy may correspond to a low (or less preferred) preference for selecting a given replicator, and the replicator may be used as a backup replicator for the defined set of edge devices or may be ineligible for use by the defined set of edge devices.

[0041] The preference may be determined based on one or more factors including, for example, the proximity of the replicator to a given set of edge devices (e.g., a replicator that is close to a set of edge devices may be assigned a high preference), the capacity of the replicator relative to one or more other replicators (e.g., a replicator with high capacity may be assigned a high preference), the distribution of the replicator's load relative to one or more other replicators (e.g., a replicator with low load distribution may be assigned a high preference), and / or one or more administrative considerations associated with the set of replicators and / or edge devices.

[0042] In step 360, the central controller may update at least one multicast advertisement associated with at least one replicator with the centralized control policy for transmission to the defined set of edge devices, the updated at least one multicast advertisement indicating a preference for replicator selection for the defined set of edge devices based on the centralized control policy. In one embodiment, the central controller may send the updated at least one multicast advertisement to the defined set of edge devices. In another embodiment, the central controller may send an updated multicast advertisement to multiple edge devices that lists the defined set of edge devices and the replicator selection preference for the defined set of edge devices. Once the defined set of edge devices receives the updated multicast advertisement, the edge devices may run a replicator selection algorithm and select (or not select) a replicator based on the preference set in the control policy. In step 370, the method may end.

[0043] In one embodiment, a control policy may include a single preference associated with a defined set of edge devices. In another embodiment, a control policy may include multiple preferences associated with a defined set of edge devices (e.g., a high or preferred preference for a first replicator and a low or non-preferred preference for a second replicator). In another embodiment, a control policy may include different preferences for different sets of edge devices. In further embodiments, multiple replicators may be selected for different multicast destinations or destination / source pairs. Thus, in addition to replicator preferences, a control policy may include a defined multicast prefix list associated with a set of multicast group prefixes and prefix length tuples, or a set of multicast group prefixes, prefix lengths, and source tuples. The multicast prefix serves to identify a path for a multicast flow. Thus, when the central controller sends an updated multicast advertisement to an edge device, it may also send the prefix list, which may then be used to select different replicators for different multicast groups or multicast group / source tuples. In one embodiment, the multicast source may be specified with the full group address (i.e., prefix length 32 for IPv4 or prefix length 128 for IPv6), thereby allowing the lookup to be a simple longest prefix match on the group or group-source pair. Once downloaded, the multicast prefix list may be used to set up the longest prefix match for the group as well as for the full group address, so that a preferred replicator may be dynamically selected during the RPF check in the same manner as a Forward Information Base FIB lookup.

[0044] In short, the disclosed system and method allows for a centralized control policy for multicast replicator selection, thereby eliminating the need for local configuration of replicators. As a result, the disclosed system and method allows for fine-grained customization on a per-site basis. This granularity can be extended to multicast groups and sources.

[0045] 4, an exemplary computer system 400 is shown. In certain embodiments, one or more computer systems 400 perform one or more steps of one or more methods described or illustrated herein. In certain embodiments, one or more computer systems 400 provide functionality described or illustrated herein. In certain embodiments, software executing on one or more computer systems 400 performs one or more steps of one or more methods described or illustrated herein or provides functionality described or illustrated herein. Certain embodiments include one or more portions of one or more computer systems 400. As used herein, references to a computer system may encompass a computing device, and vice versa, where appropriate. Additionally, references to a computer system may encompass one or more computer systems, where appropriate.

[0046] This disclosure contemplates any suitable number of computer systems 400. This disclosure contemplates computer system 400 taking any suitable physical form. By way of example and not limitation, computer system 400 may be an embedded computer system, a system-on-chip (SOC), a single-board computer system (SBC) (e.g., a computer-on-module (COM) or system-on-module (SOM)), a desktop computer system, a laptop or notebook computer system, an interactive kiosk, a mainframe, a mesh of computer systems, a mobile phone, a personal digital assistant (PDA), a server, a tablet computer system, an augmented / virtual reality device, or a combination of two or more of these. Where appropriate, computer system 400 may include one or more computer systems 400, may be monolithic or distributed, may span multiple locations, may span multiple machines, may span multiple data centers, or may reside in a cloud that may include one or more cloud components in one or more networks. Where appropriate, one or more computer systems 400 may perform one or more steps of one or more methods described or illustrated herein without substantial spatial or temporal limitations. By way of example and not limitation, one or more computer systems 400 may perform one or more steps of one or more methods described or illustrated herein in real time or in batch mode. One or more computer systems 400 may perform one or more steps of one or more methods described or illustrated herein at different times or in different locations, where appropriate.

[0047] In a particular embodiment, computer system 400 includes a processor 402, memory 404, storage 406, an input / output (I / O) interface 408, a communications interface 410, and a bus 412. Although this disclosure describes and illustrates a particular computer system having a particular number of particular components in a particular arrangement, this disclosure contemplates any suitable computer system having any suitable number of any suitable components in any suitable arrangement.

[0048] In particular embodiments, the processor 402 includes hardware for executing instructions, such as those that make up a computer program. By way of example and not limitation, to execute instructions, the processor 402 may retrieve (or fetch) instructions from an internal register, an internal cache, memory 404, or storage 406, decode and execute them, and then write one or more results to an internal register, an internal cache, memory 404, or storage 406. In particular embodiments, the processor 402 may include one or more internal caches for data, instructions, or addresses. This disclosure contemplates the processor 402 including any suitable number of any suitable internal caches, where appropriate. By way of example and not limitation, the processor 402 may include one or more instruction caches, one or more data caches, and one or more translation lookaside buffers (TLBs). Instructions in an instruction cache may be copies of instructions in memory 404 or storage 406, and the instruction cache may speed up retrieval of those instructions by the processor 402. Data in the data cache may be a copy of data in memory 404 or storage 406 on which instructions executed by processor 402 operate, results of previous instructions executed by processor 402 for access by subsequent instructions executed by processor 402 or for writing to memory 404 or storage 406, or other suitable data. The data cache may speed up read or write operations by processor 402. The TLB may speed up virtual address translation for processor 402. In particular embodiments, processor 402 may include one or more internal registers for data, instructions, or addresses. This disclosure contemplates processor 402 including any suitable number of any suitable internal registers, where appropriate. Processor 402 may include one or more arithmetic logic units (ALUs), may be a multi-core processor, or may include one or more processors 402, where appropriate. Although this disclosure describes and illustrates a particular processor, this disclosure contemplates any suitable processor.

[0049] In a particular embodiment, memory 404 includes a main memory for storing instructions that processor 402 executes or data on which processor 402 operates. By way of example and not limitation, computer system 400 may load instructions into memory 404 from storage 406 or another source (such as, for example, another computer system 400). Processor 402 may then load the instructions from memory 404 into an internal register or cache. To execute instructions, processor 402 may retrieve instructions from the internal register or cache and decode them. During or after execution of instructions, processor 402 may write one or more results (which may be intermediate or final results) to an internal register or cache. Processor 402 may then write one or more of those results to memory 404. In particular embodiments, the processor 402 executes only instructions in one or more internal registers or caches or in memory 404 (and not in storage 406 or elsewhere) and operates only on data in one or more internal registers or caches or in memory 404 (and not in storage 406 or elsewhere). One or more memory buses (which may each include an address bus and a data bus) may couple the processor 402 to the memory 404. The bus 412 may include one or more memory buses, as described below. In particular embodiments, one or more memory management units (MMUs) reside between the processor 402 and the memory 404 to facilitate accesses to the memory 404 requested by the processor 402. In particular embodiments, the memory 404 includes random access memory (RAM). This RAM may be volatile memory, where appropriate. This RAM may be dynamic RAM (DRAM) or static RAM (SRAM), where appropriate. Moreover, this RAM may be single-ported or multi-ported RAM, where appropriate. This disclosure contemplates any suitable RAM. Memory 404 may include one or more memories 404, where appropriate.Although this disclosure describes and illustrates particular memory, this disclosure contemplates any suitable memory.

[0050] In particular embodiments, storage 406 includes mass storage for data or instructions. By way of example and not limitation, storage 406 may include a hard disk drive (HDD), a floppy disk drive, a flash memory, an optical disk, a magneto-optical disk, a magnetic tape, or a Universal Serial Bus (USB) drive, or a combination of two or more of these. Storage 406 may include removable or non-removable (or fixed) media, where appropriate. Storage 406 may be internal or external to computer system 400, where appropriate. In particular embodiments, storage 406 is non-volatile solid-state memory. In particular embodiments, storage 406 includes read-only memory (ROM). Where appropriate, the ROM may be mask programmed ROM, programmable ROM (PROM), erasable PROM (EPROM), electrically erasable PROM (EEPROM), electrically erasable PROM (EAROM), or flash memory, or a combination of two or more of these. This disclosure contemplates mass storage 406 taking any suitable physical form. Storage 406 may include one or more storage control units that facilitate communications between processor 402 and storage 406, where appropriate. Storage 406 may include one or more storages 406, where appropriate. Although this disclosure describes and illustrates particular storage, this disclosure contemplates any suitable storage.

[0051] In particular embodiments, I / O interface 408 includes hardware, software, or both that provide one or more interfaces for communication between computer system 400 and one or more I / O devices. Computer system 400 may include one or more of these I / O devices, as appropriate. One or more of these I / O devices may enable communication between a person and computer system 400. By way of example and not limitation, the I / O devices may include a keyboard, keypad, microphone, monitor, mouse, printer, scanner, speaker, still camera, stylus, tablet, touch screen, trackball, video camera, another suitable I / O device, or a combination of two or more of these. The I / O devices may include one or more sensors. This disclosure contemplates any suitable I / O devices and any suitable I / O interfaces 408 therefor. As appropriate, I / O interface 408 may include one or more device or software drivers that enable processor 402 to drive one or more of these I / O devices. I / O interface 408 may include one or more I / O interfaces 408, where appropriate. Although this disclosure describes and illustrates a particular I / O interface, this disclosure contemplates any suitable I / O interface.

[0052] In certain embodiments, communication interface 410 includes hardware, software, or both that provide one or more interfaces for communication (e.g., packet-based communication, etc.) between computer system 400 and one or more other computer systems 400 or one or more networks. By way of example and not limitation, communication interface 410 may include a network interface controller (NIC) or network adapter for communicating with an Ethernet or other wired-based network, or a wireless NIC (WNIC) or wireless adapter for communicating with a wireless network, such as a WI-FI network. This disclosure contemplates any suitable network and any suitable communication interface 410 therefor. By way of example and not limitation, computer system 400 may communicate with one or more portions of an ad-hoc network, a personal area network (PAN), a local area network (LAN), a wide area network (WAN), a metropolitan area network (MAN), or the Internet, or a combination of two or more of these. One or more portions of one or more of these networks may be wired or wireless. As an example, computer system 400 may communicate with a wireless PAN (WPAN) (e.g., a BLUETOOTHWPAN, etc.), a WI-FI network, a WI-MAX network, a cellular network (e.g., a Global System for Mobile Communications (GSM) network, a Long-Term Evolution (LTE) network, or a 5G network, etc.), or other suitable wireless network, or a combination of two or more of these. Computer system 400 may include any suitable communication interface 410 for any of these networks, where appropriate.Communications interface 410 may include one or more communications interfaces 410, where appropriate. Although this disclosure describes and illustrates a particular communications interface, this disclosure contemplates any suitable communications interface.

[0053] In particular embodiments, bus 412 includes hardware, software, or both that couple together the components of computer system 400. By way of example and not limitation, bus 412 may include an Accelerated Graphics Port (AGP) or other graphics bus, an Enhanced Industry Standard Architecture (EISA) bus, a front-side bus (FSB), a HYPERTRANSPORT (HT) interconnect, an Industry Standard Architecture (ISA) bus, an INFINIBAND interconnect, a low-pin-count (LPC) bus, a memory bus, a Micro Channel Architecture (MCA) bus, a Peripheral Component Interconnect (PCI) bus, a PCI-Express (PCIe) bus, a Serial Advanced Technology Attachment (SATA) bus, a Video Electronics Standards Association local (VLB) bus, or another suitable bus, or a combination of two or more of these. Bus 412 may include one or more buses, where appropriate. Although this disclosure describes and illustrates a particular bus, this disclosure contemplates any suitable bus or interconnect.

[0054] As used herein, a computer-readable non-transitory storage medium may include, where appropriate, one or more semiconductor-based or other integrated circuits (ICs) (e.g., a field-programmable gate array (FPGA) or an application-specific IC (ASIC) or the like), a hard disk drive (HDD), a hybrid hard drive (HHD), an optical disk, an optical disk drive (ODD), a magneto-optical disk, a magneto-optical drive, a floppy diskette, a floppy disk drive (FDD), a magnetic tape, a solid-state drive (SSD), a RAM drive, a secure digital card or drive, any other suitable computer-readable non-transitory storage medium, or any suitable combination of two or more of these. A computer-readable non-transitory storage medium may be volatile, non-volatile, or a combination of volatile and non-volatile, where appropriate.

[0055] In summary, the present disclosure is directed to a centralized control policy for multicast replicator selection. The method includes receiving multicast advertisements from a plurality of edge devices configured with a multicast protocol, each multicast advertisement including information indicating whether an associated edge device is a replicator, analyzing the multicast advertisements from the plurality of edge devices to identify one or more replicators, receiving a centralized policy configuration associated with at least one control policy including preferences related to selection of at least one replicator from the identified one or more replicators, the preferences being applicable to a defined set of edge devices from the plurality of edge devices, and updating the at least one multicast advertisement with the control policy for transmission to the defined set of edge devices, the updated at least one multicast advertisement indicating a preference for replicator selection for the defined set of edge devices based on the control policy.

[0056] As used herein, "or" is inclusive and not exclusive, unless expressly indicated otherwise or the context indicates otherwise. Thus, as used herein, "A or B" means "A, B, or both," unless expressly indicated otherwise or the context indicates otherwise. Furthermore, "and" is both joint and plural, unless expressly indicated otherwise or the context indicates otherwise. Thus, as used herein, "A and B" means "A and B, together or separately," unless expressly indicated otherwise or the context indicates otherwise.

[0057] The scope of the present disclosure encompasses all changes, substitutions, variations, modifications, and alterations to the exemplary embodiments described or illustrated herein that would be understood by a person skilled in the art. The scope of the present disclosure is not limited to the exemplary embodiments described or illustrated herein. Furthermore, although the present disclosure describes and illustrates each embodiment herein as including certain components, elements, features, functions, operations, or steps, any of these embodiments may include any combination or permutation of any of the components, elements, features, functions, operations, or steps described or illustrated anywhere herein that would be understood by a person skilled in the art. Furthermore, any reference in the appended claims to an apparatus or system, or a component of an apparatus or system, that is adapted, arranged, capable, configured, enabled, operable, or operative to perform a particular function encompasses that apparatus, system, or component, regardless of whether it or that particular function is activated, turned on, or unlocked, so long as the apparatus, system, or component is so adapted, arranged, capable, configured, enabled, operative, or operative. In addition, although the present disclosure has described or illustrated particular embodiments as providing certain advantages, the particular embodiment may provide none of these advantages, or may provide some or all of these advantages.

[0058] It should be noted that the embodiments disclosed herein are merely examples, and the scope of the disclosure is not limited thereto. A particular embodiment may include all, some, or none of the components, elements, features, functions, operations, or steps of the embodiments disclosed herein. Embodiments according to the present disclosure are disclosed in the appended claims, which are particularly directed to methods, storage media, systems, and computer program products, and any feature recited in one claim category, e.g., a method, may also be claimed in another claim category, e.g., a system. The dependencies or citations in the appended claims have been selected for formality reasons only. However, any subject matter resulting from an intentional reference to any preceding claim (especially multiple dependencies) may also be claimed, and therefore any combination of claims and their features may be claimed, regardless of the dependencies disclosed and selected in the appended claims. The subject matter that may be claimed includes not only combinations of features recited in the appended claims, but also any other combination of features in the claims, and each feature recited in a claim may be combined with any other feature or combination of features in the claim. Furthermore, any of the embodiments and features described or depicted in this specification may be claimed in a separate claim and / or in any combination with any of the embodiments or features described or depicted in this specification or with any of the features of the appended claims.< / group> < / group>

Claims

1. 1. A system comprising: one or more processors; One or more computer-readable non-transitory storage media containing instructions that, when executed by the one or more processors, cause one or more components of the system to: receiving a multicast advertisement from a plurality of edge devices, each edge device of the plurality of edge devices being configured with a multicast protocol, each multicast advertisement including information indicating whether an associated edge device is a replicator; analyzing the multicast advertisements from the edge devices to identify one or more replicators; receiving a centralized policy configuration associated with at least one control policy from the identified one or more replicators, the control policy including a preference for selecting at least one replicator from the identified one or more replicators, the preference being applicable to a defined set of edge devices from the plurality of edge devices; updating at least one multicast advertisement associated with at least one replicator with the control policy for transmission to the defined set of edge devices, the updated at least one multicast advertisement indicating the preference for replicator selection for the defined set of edge devices based on the control policy; transmitting the updated at least one multicast advertisement to the defined set of edge devices; one or more computer-readable non-transitory storage media for performing operations including: A system comprising:

2. 1. A system comprising: one or more processors; One or more computer-readable non-transitory storage media containing instructions that, when executed by the one or more processors, cause one or more components of the system to: receiving a multicast advertisement from a plurality of edge devices, each edge device of the plurality of edge devices being configured with a multicast protocol, each multicast advertisement including information indicating whether an associated edge device is a replicator; analyzing the multicast advertisements from the edge devices to identify one or more replicators; receiving a centralized policy configuration associated with at least one control policy including a preference for selecting at least one replicator from the identified one or more replicators, the preference being applicable to a defined set of edge devices from the plurality of edge devices; updating at least one multicast advertisement associated with at least one replicator with the control policy for transmission to the defined set of edge devices, the updated at least one multicast advertisement indicating the preference for replicator selection for the defined set of edge devices based on the control policy; one or more computer-readable non-transitory storage media for performing operations including: Equipped with The preference is: A system comprising a preemptive preference for directing existing multicast flows to the at least one replicator.

3. 1. A system comprising: one or more processors; One or more computer-readable non-transitory storage media containing instructions that, when executed by the one or more processors, cause one or more components of the system to: receiving a multicast advertisement from a plurality of edge devices, each edge device of the plurality of edge devices being configured with a multicast protocol, each multicast advertisement including information indicating whether an associated edge device is a replicator; analyzing the multicast advertisements from the edge devices to identify one or more replicators; receiving a centralized policy configuration associated with at least one control policy including a preference for selecting at least one replicator from the identified one or more replicators, the preference being applicable to a defined set of edge devices from the plurality of edge devices; updating at least one multicast advertisement associated with at least one replicator with the control policy for transmission to the defined set of edge devices, the updated at least one multicast advertisement indicating the preference for replicator selection for the defined set of edge devices based on the control policy; one or more computer-readable non-transitory storage media for performing operations including: Equipped with The control policy is further associated with a defined multicast prefix list associated with a set of multicast group prefixes and prefix length tuples, and the defined multicast prefix list is transmitted to the defined set of edge devices.

4. 1. A system comprising: one or more processors; One or more computer-readable non-transitory storage media containing instructions that, when executed by the one or more processors, cause one or more components of the system to: receiving a multicast advertisement from a plurality of edge devices, each edge device of the plurality of edge devices being configured with a multicast protocol, each multicast advertisement including information indicating whether an associated edge device is a replicator; analyzing the multicast advertisements from the edge devices to identify one or more replicators; receiving a centralized policy configuration associated with at least one control policy including a preference for selecting at least one replicator from the identified one or more replicators, the preference being applicable to a defined set of edge devices from the plurality of edge devices; updating at least one multicast advertisement associated with at least one replicator with the control policy for transmission to the defined set of edge devices, the updated at least one multicast advertisement indicating the preference for replicator selection for the defined set of edge devices based on the control policy; one or more computer-readable non-transitory storage media for performing operations including: Equipped with The control policy is further associated with a defined multicast prefix list associated with a set of multicast group prefixes, prefix lengths, and source tuples, and the defined multicast prefix list is transmitted to the defined set of edge devices.

5. The system of claim 1 , wherein the edge devices are configured on a software-defined wide area network (SD-WAN).

6. The preference is: the proximity of the at least one replicator to the defined set of edge devices; the capacity of said at least one replicator relative to said one or more replicators; distributing the load of the at least one replicator across the one or more replicators; or and administrative considerations.

7. The preference is: a high preference associated with the at least one replicator; or a low preference associated with the at least one replicator; The system according to any one of claims 1 to 6, comprising:

8. 1. A method comprising: receiving a multicast advertisement from a plurality of edge devices, each edge device of the plurality of edge devices being configured with a multicast protocol, each multicast advertisement including information indicating whether an associated edge device is a replicator; analyzing the multicast advertisements from the edge devices to identify one or more replicators; receiving a centralized policy configuration associated with at least one control policy from the identified one or more replicators, the control policy including a preference for selecting at least one replicator from the identified one or more replicators, the preference being applicable to a defined set of edge devices from the plurality of edge devices; updating at least one multicast advertisement associated with at least one replicator with the control policy for transmission to the defined set of edge devices, the updated at least one multicast advertisement indicating the preference for replicator selection for the defined set of edge devices based on the control policy; transmitting the updated at least one multicast advertisement to the defined set of edge devices; A method comprising:

9. 1. A method comprising: receiving a multicast advertisement from a plurality of edge devices, each edge device of the plurality of edge devices being configured with a multicast protocol, each multicast advertisement including information indicating whether an associated edge device is a replicator; analyzing the multicast advertisements from the edge devices to identify one or more replicators; receiving a centralized policy configuration associated with at least one control policy including a preference for selecting at least one replicator from the identified one or more replicators, the preference being applicable to a defined set of edge devices from the plurality of edge devices; updating at least one multicast advertisement associated with at least one replicator with the control policy for transmission to the defined set of edge devices, the updated at least one multicast advertisement indicating the preference for replicator selection for the defined set of edge devices based on the control policy; Including, The preference is: A method comprising a preemptive preference for directing existing multicast flows to the at least one replicator.

10. 1. A method comprising: receiving a multicast advertisement from a plurality of edge devices, each edge device of the plurality of edge devices being configured with a multicast protocol, each multicast advertisement including information indicating whether an associated edge device is a replicator; analyzing the multicast advertisements from the edge devices to identify one or more replicators; receiving a centralized policy configuration associated with at least one control policy including a preference for selecting at least one replicator from the identified one or more replicators, the preference being applicable to a defined set of edge devices from the plurality of edge devices; updating at least one multicast advertisement associated with at least one replicator with the control policy for transmission to the defined set of edge devices, the updated at least one multicast advertisement indicating the preference for replicator selection for the defined set of edge devices based on the control policy; Including, The control policy is further associated with a defined multicast prefix list associated with a set of multicast group prefixes and prefix length tuples, the defined multicast prefix list being transmitted to the defined set of edge devices.

11. 1. A method comprising: receiving a multicast advertisement from a plurality of edge devices, each edge device of the plurality of edge devices being configured with a multicast protocol, each multicast advertisement including information indicating whether an associated edge device is a replicator; analyzing the multicast advertisements from the edge devices to identify one or more replicators; receiving a centralized policy configuration associated with at least one control policy including a preference for selecting at least one replicator from the identified one or more replicators, the preference being applicable to a defined set of edge devices from the plurality of edge devices; updating at least one multicast advertisement associated with at least one replicator with the control policy for transmission to the defined set of edge devices, the updated at least one multicast advertisement indicating the preference for replicator selection for the defined set of edge devices based on the control policy; Including, The control policy is further associated with a defined multicast prefix list associated with a set of multicast group prefixes, prefix lengths, and source tuples, and the defined multicast prefix list is transmitted to the defined set of edge devices.

12. The method according to any one of claims 8 to 11, wherein the edge devices are configured on a Software Defined Wide Area Network (SD-WAN).

13. The preference is: the proximity of the at least one replicator to the defined set of edge devices; the capacity of said at least one replicator relative to said one or more replicators; distributing the load of the at least one replicator across the one or more replicators; or and administrative considerations.

14. The preference is: a high preference associated with the at least one replicator; or a low preference associated with the at least one replicator; The method according to any one of claims 8 to 13, comprising:

15. One or more computer-readable non-transitory storage media storing instructions that, when executed by a processor, receiving a multicast advertisement from a plurality of edge devices, each edge device of the plurality of edge devices being configured with a multicast protocol, each multicast advertisement including information indicating whether an associated edge device is a replicator; analyzing the multicast advertisements from the edge devices to identify one or more replicators; receiving a centralized policy configuration associated with at least one control policy from the identified one or more replicators, the control policy including a preference for selecting at least one replicator from the identified one or more replicators, the preference being applicable to a defined set of edge devices from the plurality of edge devices; updating at least one multicast advertisement associated with at least one replicator with the control policy for transmission to the defined set of edge devices, the updated at least one multicast advertisement indicating the preference for replicator selection for the defined set of edge devices based on the control policy; transmitting the updated at least one multicast advertisement to the defined set of edge devices; One or more computer-readable non-transitory storage media for causing the computer to perform operations including:

16. One or more computer-readable non-transitory storage media storing instructions that, when executed by a processor, receiving a multicast advertisement from a plurality of edge devices, each edge device of the plurality of edge devices being configured with a multicast protocol, each multicast advertisement including information indicating whether an associated edge device is a replicator; analyzing the multicast advertisements from the edge devices to identify one or more replicators; receiving a centralized policy configuration associated with at least one control policy including a preference for selecting at least one replicator from the identified one or more replicators, the preference being applicable to a defined set of edge devices from the plurality of edge devices; updating at least one multicast advertisement associated with at least one replicator with the control policy for transmission to the defined set of edge devices, the updated at least one multicast advertisement indicating the preference for replicator selection for the defined set of edge devices based on the control policy; Executing an operation including The preference is: One or more computer-readable non-transitory storage media comprising a preemptive preference for directing existing multicast flows to the at least one replicator.

17. One or more computer-readable non-transitory storage media storing instructions that, when executed by a processor, receiving a multicast advertisement from a plurality of edge devices, each edge device of the plurality of edge devices being configured with a multicast protocol, each multicast advertisement including information indicating whether an associated edge device is a replicator; analyzing the multicast advertisements from the edge devices to identify one or more replicators; receiving a centralized policy configuration associated with at least one control policy including a preference for selecting at least one replicator from the identified one or more replicators, the preference being applicable to a defined set of edge devices from the plurality of edge devices; updating at least one multicast advertisement associated with at least one replicator with the control policy for transmission to the defined set of edge devices, the updated at least one multicast advertisement indicating the preference for replicator selection for the defined set of edge devices based on the control policy; Executing an operation including The control policy is further associated with a defined multicast prefix list associated with a set of multicast group prefixes and prefix length tuples, the defined multicast prefix list being transmitted to the defined set of edge devices.

18. The one or more computer-readable non-transitory storage media of any one of claims 15 to 17, wherein the edge devices are configured on a software-defined wide area network (SD-WAN).

19. The preference is: the proximity of the at least one replicator to the defined set of edge devices; the capacity of said at least one replicator relative to said one or more replicators; distributing the load of the at least one replicator across the one or more replicators; or 20. The one or more computer-readable non-transitory storage media of claim 18, based on at least one of:

20. The preference is: a high preference associated with the at least one replicator; or a low preference associated with the at least one replicator; One or more computer-readable non-transitory storage media according to any one of claims 15 to 19, comprising:

21. An apparatus comprising: means for receiving a multicast advertisement from a plurality of edge devices, each edge device of the plurality of edge devices being configured with a multicast protocol, each multicast advertisement including information indicating whether the associated edge device is a replicator; means for analyzing the multicast advertisements from the edge devices to identify one or more replicators; means for receiving, from the identified one or more replicators, a centralized policy configuration associated with at least one control policy including a preference for selecting at least one replicator from the identified one or more replicators, the preference being applicable to a defined set of edge devices from the plurality of edge devices; and means for updating at least one multicast advertisement associated with at least one replicator with the control policy for transmission to the defined set of edge devices, the updated at least one multicast advertisement indicating the preference for replicator selection for the defined set of edge devices based on the control policy; means for transmitting the updated at least one multicast advertisement to the defined set of edge devices; An apparatus comprising:

22. Apparatus according to claim 21, further comprising means for implementing the method according to any one of claims 8 to 14.

23. A computer program comprising instructions which, when executed by a computer, cause the computer to perform the steps of the method according to any one of claims 8 to 14.

Citation Information

Patent Citations

  • Traffic replication in software-defined networking (SDN) environments

    US20190123962A1

  • Determining routing decisions in a software-defined wide area network overlay

    US20190334813A1

  • Multicast routing based on a unicast transport network

    US9998291B1