Centralized policy based sd-wan multicast replicator selection

By introducing a centralized control policy in the SD-WAN network, analyzing multicast advertisements and selecting high-priority multicast replicators, the problem of coarse replicator selection caused by local configuration is solved, and more intelligent and flexible multicast stream path optimization and efficient transmission are achieved.

CN116420341BActive Publication Date: 2026-07-07CISCO TECHNOLOGY INC
View PDF 2 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
CISCO TECHNOLOGY INC
Filing Date
2021-11-11
Publication Date
2026-07-07

AI Technical Summary

Technical Problem

The current SD-WAN multicast replicator selection mainly relies on local configuration, resulting in coarse and inflexible replicator selection, which cannot effectively cope with replicator failures and optimize the path selection of multicast streams.

Method used

A centralized control strategy is introduced, in which the central controller analyzes multicast announcements, identifies and selects high-priority multicast replicators, and updates multicast announcements to optimize the path selection of multicast streams, taking into account factors such as the proximity, capacity, load distribution and management of replicators and edge devices.

Benefits of technology

It enables smarter and more flexible multicast replicator selection in SD-WAN networks, supports reverse behavior, client priority, and backup replicators, and ensures efficient multicast stream delivery and backward compatibility with existing configurations.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116420341B_ABST
    Figure CN116420341B_ABST
Patent Text Reader

Abstract

The present disclosure relates to centralized control policies for multicast replicator selection. A 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, the control policy including a priority related to selecting at least one replicator from the identified one or more replicators, the priority being applicable to a defined set of edge devices of the plurality of edge devices; and updating 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 the priority for selecting a replicator 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] This disclosure generally relates to the selection of software-defined wide area network (SD-WAN) multicast replicators, and more specifically to systems and methods for selecting SD-WAN multicast replicators based on centralized policies. Background Technology

[0002] IP multicast is a bandwidth-saving technology that reduces traffic by simultaneously delivering a single stream of information to potentially thousands of corporate receivers and home (e.g., receivers). Multicast packets are replicated in the network by edge devices at points where paths fork, with the edge devices enabling Protocol Independent Multicast (PIM) and / or other multicast-enabled protocols, resulting in efficient delivery of data to multiple receivers. Attached Figure Description

[0003] Figure 1 A system for selecting a multicast replicator using a centralized control strategy, according to certain embodiments, is shown.

[0004] Figure 2 Example syntax of a centralized control strategy that can be configured on a central controller according to certain embodiments is shown;

[0005] Figure 3 A flowchart is shown, according to certain embodiments, of a method for selecting a multicast replicator using a centralized control strategy;

[0006] Figure 4 A computer system according to certain embodiments is shown. Detailed Implementation

[0007] Overview

[0008] The invention is set forth in the independent claims, and preferred features are set forth in the dependent claims. A feature of one aspect may be applied to each aspect alone or in combination with other aspects.

[0009] According to an embodiment, a system may include one or more processors and one or more computer-readable non-transitory storage media including instructions that, when executed by the one or more processors, cause one or more components of the system to perform the following operations: receive multicast announcements from a plurality of edge devices, each of the plurality of edge devices being configured with a multicast protocol, and each multicast announcement including information indicating whether an associated edge device is a replicator; analyze the multicast announcements from the plurality of edge devices to identify one or more replicators; receive a centralized policy configuration associated with at least one control policy, the control policy including a priority associated with selecting at least one replicator from the identified one or more replicators, the priority being applicable to a defined set of edge devices among the plurality of edge devices; and use the control policy to update at least one multicast announcement associated with the at least one replicator to be transmitted to the defined set of edge devices, the updated at least one multicast announcement indicating a priority for selecting a replicator for the defined set of edge devices based on the control policy.

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

[0011] Additionally, this priority can be based on at least one of the following: the proximity of the at least one replicator to the defined group of edge devices; the capacity of the at least one replicator relative to one or more replicators; the load distribution of the at least one replicator relative to one or more replicators; or management considerations.

[0012] Furthermore, the priority can include a high priority associated with the at least one replicator; or a low priority associated with the at least one replicator. Additionally, the high priority can also include a preemptive priority for directing existing multicast streams to the at least one replicator.

[0013] Additionally, control policies can be associated with a defined multicast prefix list, which is associated with a set of multicast group prefixes and prefix length tuples, wherein the defined multicast prefix list is transmitted to the defined group of edge devices. Furthermore, control policies can also be associated with a defined multicast prefix list, which is associated with a set of multicast group prefixes, prefix lengths, and source tuples, wherein the defined multicast prefix list is transmitted to the defined group of edge devices.

[0014] According to another embodiment, the method may include the following steps: receiving multicast announcements from a plurality of edge devices, each of the plurality of edge devices being configured with a multicast protocol, and each multicast announcement including information indicating whether the associated edge device is a replicator; analyzing the multicast announcements from the plurality of edge devices to identify one or more replicators; receiving a centralized policy configuration associated with at least one control policy, the control policy including a priority associated with selecting at least one replicator from the identified one or more replicators, the priority being applicable to a defined set of edge devices among the plurality of edge devices; and using the control policy to update at least one multicast announcement associated with the at least one replicator to be transmitted to the defined set of edge devices, the updated at least one multicast announcement indicating a priority for selecting a replicator for the defined set of edge devices based on the control policy.

[0015] According to another embodiment, one or more computer-readable non-transitory storage media may include instructions that, when executed by a processor, cause the following operations to be performed: receiving multicast announcements from a plurality of edge devices, each of the plurality of edge devices being configured with a multicast protocol, and each multicast announcement including information indicating whether an associated edge device is a replicator; analyzing the multicast announcements from the plurality of edge devices to identify one or more replicators; receiving a centralized policy configuration associated with at least one control policy, the control policy including a priority associated with selecting at least one replicator from the identified one or more replicators, the priority being applicable to a defined set of edge devices among the plurality of edge devices; and using the control policy to update at least one multicast announcement associated with the at least one replicator to be transmitted to the defined set of edge devices, the updated at least one multicast announcement indicating a priority for selecting a replicator for the defined set of edge devices based on the control policy.

[0016] The technical advantages of certain embodiments of this disclosure may include one or more of the following. Traditional SD-WAN multicast replicator selection configurations are based solely on the locally configured replicator status, replicator routing thresholds, and / or the replicator's physical location. In these cases, edge devices must perform inbound replication of multicast flows for all other edge devices that have receivers in their sites. The systems and methods described herein can overcome the aforementioned drawbacks of locally configured multicast replicators by allowing centralized selection of multicast replicators in SD-WAN networks. Specifically, centralized control policies may: allow reverse behavior (by allowing multicast flows to be moved to a higher-priority replicator); prioritize clients (e.g., redundancy requirements); allow at least one level of backup replicator if the preferred replicator fails; select different replicators based on multicast groups or multicast group / source tuples; and allow backward compatibility with existing configurations.

[0017] Other technical advantages will be apparent to those skilled in the art from the following figures, description, and claims. Furthermore, while specific advantages have been listed above, various embodiments may include all, some, or none of the listed advantages.

[0018] Example Implementation

[0019] Multicast is a group communication method in which data is sent to multiple receivers in a single transmission. Using multicast, a source can send data packets to a single multicast IP address. A multicast IP address corresponds to a multicast group (i.e., a group of receivers interested in a particular data stream). The source can simply 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 copies the packet and forwards it to a group of receivers within the multicast group.

[0020] At its core, multicast is packet replication, which is the process of creating multiple physical copies of a specific packet and sending the copies to the destination interface in the forwarding path. Throughout the SD-WAN overlay network, SD-WAN edge devices can be deployed and configured as replicators. The replicator advertises itself to the central controller in the overlay network, and the controller then forwards the replicator's location information to multicast-enabled edge devices (e.g., Protocol Independent Multicast (PIM) edge devices) in the same VPN as the replicator. Thus, the replicator receives a data stream from a multicast source, replicates the data stream, and forwards the data stream to edge devices with multicast receivers in the same VPN.

[0021] As described above, edge devices subscribe to a replicator on an SD-WAN architecture. The source sends data packets to the replicator, and the replicator forwards the data packets to the receiver. Traditionally, each edge device must locally select a replicator, which can be a coarse decision. This disclosure attempts to improve upon this traditional technology by introducing a mechanism in SD-WAN for selecting a multicast replicator based on a centralized control policy.

[0022] Figure 1 A system 100 for selecting a multicast replicator in an SD-WAN using a centralized control policy, according to this disclosure, is described. System 100 can be configured within an SD-WAN overlay 180 and may include at least one central controller 110 for coordinating centralized management of system 100, and particularly for configuring a centralized control policy for multicast replicator selection. While in Figure 1A single central controller is shown, but it should be understood that system 100 may include any number of central controllers. In addition to other control modules, the central controller 110 may also include a control module for running the Overlay Management Protocol (OMP). In SD-WAN, OMP is a control protocol used to exchange routing, policy, and management information between the central controller 110 and edge devices in the network, as well as to establish and maintain the control plane, including coordinating overlay network communication and connectivity between edge devices.

[0023] System 100 may also include multiple sites 120a to e. Figure 1 Sites 1 (120a), 2 (120b), 3 (120c), 4 (120d), and 5 (120e) are shown. A site refers to a physical location within the SD-WAN network 180, where one or more edge devices (also called “nodes”) 130a through e may reside. For example, a branch office of an enterprise can be a site and may include multiple edge devices. Edge devices provide entry points into the enterprise or service provider network. Examples of edge devices include routers, routing switches, integrated access devices (IADs), and wide area network (WAN) access devices. Figure 1 In this context, each of the multiple sites 120a to 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 to e are collectively referred to as "multiple edge devices".

[0024] Furthermore, assume that sites 1 and 2 (120a and 120b) are multicast sites, and edge devices 130a and 130b are configured with multicast protocols, such as Protocol Independent Multicast (PIM) or Internet Group Management Protocol (IGMP) version 3 multicast routing. Similarly, sites 3, 4, and 5 (120c, 120d, and 120e) are multicast sites, and their associated edge devices 130c, 130d, and 130e are configured with PIM routing. Additionally, edge device 130a is located at a site (site 1 120a) with two multicast receivers 150a and 150b, which are located in a local site downstream of edge device 130a. Multicast receivers 150a and 150b are configured with a local site PIM router (not shown). Similarly, edge device 130b is located at site 2 (120b) with a multicast receiver 160a, which is located at a local site after edge device 130b and configured with a local site PIM router. Finally, edge device 130c is located at site 3 (120c) with a multicast source 170a, which is located at a local site after edge device 130c and configured as a local site PIM router. Furthermore, the OMP control protocol in the SD-WAN coverage is used to connect all remote PIM islands. It should be understood that sites 1, 2, and 3 can be configured in any manner and can include any number of edge devices used as source and / or receiver devices. However, for illustrative purposes, site 1 (120a) and its corresponding edge device 130a are shown as receiving multicast streams; site 2 (120b) and its corresponding edge device 130b are shown as receiving multicast streams; and site 3 and its corresponding edge device 130c are shown as sending multicast streams.

[0025] Continue to refer to Figure 1 One or more of the multiple edge devices 130a to e, and edge devices 130d to e, can be configured as SD-WAN multicast replicators. Specifically, edge device 130d is a multicast replicator located in site 4, 120d, while edge device 130e is a multicast replicator located in site 5, 120e. Therefore, in Figure 1 In this configuration, edge devices 130d and 130e are each labeled as "replicators". As described above, a multicast replicator receives a data stream from a multicast source, replicates the data stream, and forwards the data stream to edge devices that have multicast receivers within the same VPN.

[0026] In operation, each of the multiple edge devices 130a to e can send a multicast advertisement to the central controller 110 to advertise itself. In an embodiment, the multicast advertisement from edge devices 130a to 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 can analyze the multicast advertisements received from the multiple edge devices 130a to e to identify one or more edge devices 130d, 130e that are multicast replicators in the network 180.

[0027] The central controller 110 can then receive a centralized policy configuration associated with at least one control policy. Specifically, the control policy can be configured by a user (or, in some instances, can be at a network device or generated by a network device) to be executed on the central controller 110. The control policy can assign a priority associated with the selection of a replicator, which will be applied to a set of non-replicator edge devices. In other words, the control policy can define or list a set of edge devices and declare the priority of the defined set of edge devices in selecting or using (or not selecting / using) a given replicator for multicast streams. It should be understood that the “group” of edge devices defined by the control policy can include one or more edge devices. In embodiments, the defined set of edge devices can refer to edge devices receiving multicast streams (i.e., edge devices having multicast receivers at their local site, such as edge device 130a having multicast receivers 150a and 150b at its local site, and edge device 130b having multicast receiver 160a at its local site). For illustrative purposes, Figure 1 In the definition, a set of edge devices may include edge devices 130a and 130b, and control policies (not shown) can be declared and used to select the replicator (in... Figure 1 The priority associated with edge device 130d is shown in the diagram. In one embodiment, the priority indicated by the control policy may correspond to a high (or favorable) priority for selecting a given replicator to receive multicast streams. A high priority may include a preemptive priority for redirecting existing multicast streams associated with a defined set of edge devices from the current replicator to a replicator indicated by the control policy. In another embodiment, the priority indicated by the control policy may correspond to a low (or unfavorable) priority against selecting a given replicator, which may be used as a backup replicator for a defined set of edge devices or disqualified from use by the defined set of edge devices.

[0028] Prioritization can be determined based on various factors, including, for example: the proximity of the replicator to a given set of edge devices (e.g., a replicator that is closer to a set of edge devices in terms of proximity can be assigned a high priority); the capacity of the replicator relative to one or more other replicators (e.g., a replicator with high capacity can be assigned a high priority); the load distribution of the replicator relative to one or more other replicators (e.g., a replicator with low load distribution can be assigned a high priority); and / or management considerations associated with the replicator and / or the set of edge devices (e.g., all edge devices in a country use the management priority of the replicator in that country).

[0029] Once the policy is configured on the central controller 110, the central controller 110 can update the multicast advertisements associated with (one or more) preferred replicators by adding the control policy, and then transmit the updated multicast advertisements to a defined set of edge devices. As an example, in Figure 1 In this embodiment, a control policy is used to update the multicast advertisement associated with the preferred replicator (edge ​​device 130d). This control policy indicates that the replicator (edge ​​device 130d) is a preferred replicator to be used by a defined set of edge devices 130a to b, and the updated multicast advertisement is sent to the defined set of edge devices 130a to b. In another embodiment, the updated multicast advertisement can be sent to multiple edge devices 130a to e. The updated multicast advertisement will instruct the selection of a replicator priority for the defined set of edge devices based on the control policy. As described above, the replicator selection priority can include accepting (selecting) a replicator for a new multicast stream, preempting an existing multicast stream, disqualifying a replicator, and / or designating a replicator as a backup. Once the defined set of edge devices 130a to b receives the updated multicast advertisement, they can run the replicator selection algorithm, and... Figure 1 In the example, the replicator (edge ​​device 130d) is selected to receive the multicast stream based on the priority described in the control policy.

[0030] exist Figure 1In the example, the dashed lines illustrate the control policy that assigns a priority associated with the replicator (edge ​​device 130d), which will be applied to a defined set of edge devices 130a and 130b that receive multicast streams. In other words, the control policy defines a set of edge devices 130a and 130b and assigns a high (favorable) priority, which means that the defined set of edge devices 130a and 130b uses the replicator (edge ​​device 130d) to receive multicast streams, i.e., by directing their join (their request to receive multicast streams) to the replicator (edge ​​device 130d). Furthermore, the replicator can learn the source (e.g., source 170a) via different multicast announcements and send join (i.e., request to receive streams) requests to edge device 130c at site 3 120c. As a result, data packets sent by source 170a (which is located after edge device 130c) will use a replicator (edge ​​device 130d) to send the data stream to receivers 150a, 150b (which are located after edge device 130a) and receiver 160a (which is located after edge device 130b).

[0031] In one embodiment, the control policy may include a single priority associated with a selected set of edge devices. In another embodiment, the control policy may include different priorities for different groups of edge devices. For example, the control policy may define a first group of edge devices (e.g., east coast edge devices) and a second group of edge devices (e.g., west coast edge devices), and indicate a first priority for a first replicator used for the defined first group of east coast edge devices, and a second priority for a second replicator used for the defined second group of west coast edge devices.

[0032] In another embodiment, multiple replicators can be selected for different multicast destinations or destination / source pairs. Therefore, in addition to replicator priority, the control policy may also include a defined list of multicast prefixes associated with a set of multicast group prefixes and prefix length tuples, or associated with a set of multicast group prefixes, prefix lengths, and source tuples. The multicast prefix is ​​used to identify the route of the multicast flow. Therefore, when the central controller transmits an updated multicast advertisement to the edge device, it can also transmit the prefix list to the edge device (and the edge device can receive the prefix list), which can then be used to select different replicators for different multicast groups or multicast group / source tuples. In an embodiment, the multicast source can be specified using the complete group address (i.e., a prefix length of 32 for IPv4 or a prefix length of 128 for IPv6), allowing a lookup for a simple longest prefix match on the group or group / source pair. The multicast prefix list can be used to establish the longest prefix match for a group, and for the complete group address, enabling the dynamic selection of a preferred replicator during reverse path forwarding (RPF) checks in the same manner as a lookup in the Forwarding Information Base (FIB). As understood in the art, when determining where to send a potential receiver's join request (i.e., a request to receive a given multicast stream), the potential receiver performs the RPF check. These join requests are sent to the selected replicator (edge ​​device 130d), which in turn sends the join request to the source edge device 130c or the PIM aggregation point (RP) site.

[0033] It should be understood that using a multicast prefix list may require expanding the multicast advertisement (e.g., OMP multicast auto-discovery routes) to include multiple tuples (e.g., <multicast prefix list, priority, preemption>), allowing for the use of different combinations (e.g., <group> / prefix length / <group / source>). While this disclosure does not limit the number of such tuples, it should be understood that implementations may only need to support a limited number of tuples.

[0034] Now for reference Figure 2 It illustrates example syntax associated with the centralized control strategy 200 according to this disclosure, which can be configured on a central controller. It should be understood that... Figure 2 The syntax is shown for illustrative purposes only and may be adapted, revised or otherwise modified in any way to achieve the same or substantially the same results described in this invention.

[0035] In control policy 200, a set of edge devices can be defined (in... Figure 2The multicast prefixes 220 can be defined to identify the routes of multicast streams. These are referred to as "site-id1", "site-id2", and "site-id5", collectively as "west-sites" 210. Figure 2 The control policy 200 includes the priority 230 of the multicast replicator (referred to as the "Chicago-replicator"). This policy is further defined in two listed sequences 240 and 250.

[0036] The first sequence 240 (labeled "sequence 10") establishes the matching parameters for multicast routing, specifying a preferred replicator for the multicast flow defined in prefix list 220 (corresponding to the "originator" with IP address 10.100.1.1). The "action accept" and "set replicator preference 1000 preempt" commands specify the preferred replicator and are used to preempt existing flows when that replicator is selected to be configured on the listed edge devices.

[0037] The second sequence 250 (labeled "sequence 15") establishes a matching parameter to disqualify the replicator. Specifically, when this policy is applied to an SD-WAN site, the "action reject" command will disqualify the replicator (corresponding to the "originator" with IP address 10.100.1.2) from using any flow, regardless of priority.

[0038] The policy ends with the command shown at element 260, where the aforementioned control policy, which lists the priority of “Chicago-replicator”, can be applied to the defined “west-sites”.

[0039] Now for reference Figure 3 , Figure 3 A flowchart is described for a method 300 for multicast replicator selection using a centralized control strategy. The steps of method 300 can be combined with... Figure 1 The operation is consistent with the system overview 100. Thus, combined with... Figure 1 The description of similar and corresponding terms in combination Figure 3Method 300 can have the same meaning when used. Furthermore, for the purpose of explaining, illustrating, or otherwise clarifying the steps of method 300, this disclosure incorporates a description of system 100 by reference.

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

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

[0042] Additionally, one or more edge devices among multiple edge devices can be configured as SD-WAN multicast replicators. As described above, a multicast replicator receives a data stream from a multicast source, replicates the data stream, and forwards the data stream to edge devices that have multicast receivers within the same VPN.

[0043] The method may begin at step 310. At step 320, the central controller may receive multicast advertisements from multiple edge devices configured with multicast protocols. In other words, each of the multiple edge devices may transmit a multicast advertisement to the central controller. Each multicast advertisement may include information indicating whether the associated edge device (i.e., the edge device sending the multicast advertisement) is a replicator. In an embodiment, the multicast advertisement may include OMP multicast automatic discovery routes.

[0044] At step 330, the central controller can analyze multicast announcements from multiple edge devices to identify one or more replicators. At step 340, it can be determined whether one or more replicators have been identified. If it is determined at step 340 that one or more replicators have not yet been identified, the method can terminate at step 370. However, if it is determined at step 340 that one or more replicators have been identified, the method can proceed to step 350.

[0045] At step 350, the central controller may receive a centralized policy configuration associated with at least one control policy, which includes a priority associated with selecting at least one replicator from one or more identified replicators, applicable to a defined set of edge devices among a plurality of edge devices. The centralized control policy may be configured by a user, or may be at or generated by a network device for execution on the central controller. The control policy may define a set of edge devices and declare the priority for the defined set of edge devices to select or use (or not select / use) a given replicator for multicast streams. It should be understood that a “set” of edge devices defined by the control policy may include one or more edge devices. A defined set of edge devices may include one or more edge devices receiving multicast streams. In embodiments, the priority indicated by the control policy may correspond to a high (or favorable) priority for selecting a given replicator. The high priority may include a preemptive priority for redirecting existing multicast streams associated with the defined set of edge devices from the current replicator to the replicator indicated by the control policy. In another embodiment, the priority indicated by the control policy may correspond to a low (or unfavorable) priority against selecting a given replicator, which may be used as a backup replicator for a defined set of edge devices, or be disqualified from use by the defined set of edge devices.

[0046] Prioritization can be determined based on one or more factors, such as: the proximity of the replicator to a given set of edge devices (e.g., a replicator that is closer to a set of edge devices in terms of proximity can be assigned high priority); the capacity of the replicator relative to one or more other replicators (e.g., a replicator with high capacity can be assigned high priority); the load distribution of the replicator relative to one or more other replicators (e.g., a replicator with low load distribution can be assigned high priority); and / or one or more management considerations associated with the replicator and / or the set of edge devices.

[0047] At step 360, the central controller may utilize the centralized control policy to update at least one multicast advertisement associated with the at least one replicator, to be transmitted to the defined group of edge devices. The updated multicast advertisement indicates the priority for replicator selection for the defined group of edge devices based on the centralized control policy. In one embodiment, the central controller may transmit the updated multicast advertisement to the defined group of edge devices. In another embodiment, the central controller may transmit the updated multicast advertisement to multiple edge devices, listing the defined group of edge devices and the priority for replicator selection for the defined group of edge devices. Once the defined group of edge devices receives the updated multicast advertisement, they can run the replicator selection algorithm and select (or not select) a replicator based on the priority outlined in the control policy. At step 370, the method may terminate.

[0048] In one embodiment, the control policy may include a single priority associated with a defined set of edge devices. In another embodiment, the control policy may include multiple priorities associated with a defined set of edge devices (e.g., high or favorable priority for a first replicator, and low or unfavorable priority for a second replicator). In another embodiment, the control policy may include different priorities for different groups of edge devices. In yet another embodiment, multiple replicators may be selected for different multicast destinations or destination / source pairs. Therefore, in addition to replicator priorities, the control policy may also include a defined list of multicast prefixes associated with a set of multicast group prefixes and prefix length tuples, or associated with a set of multicast group prefixes, prefix lengths, and source tuples. Multicast prefixes are used to identify the routing of multicast streams. Therefore, when the central controller transmits updated multicast advertisements to the edge devices, it may also transmit the prefix list (and the edge devices may receive the prefix list), which can then be used to select different replicators for different multicast groups or multicast group / source tuples. In this embodiment, the multicast source can be specified using the full group address (i.e., a prefix length of 32 for IPv4 or a prefix length of 128 for IPv6), allowing for a simple longest prefix match lookup on the group or group-source pair. Once downloaded, the multicast prefix list can be used to establish the longest prefix match for the group, as well as for the full group address, enabling the preferred reciprocator to be dynamically selected during RPF checks in the same manner as FIB lookups.

[0049] In summary, the systems and methods disclosed herein allow for centralized control policies for multicast replicator selection, thereby eliminating the need for local configuration of the replicators. Therefore, this disclosure allows for granular customization on a per-site basis. This granularity can be extended down to multicast groups and sources.

[0050] Now for reference Figure 4 The document illustrates an example computer system 400. In a particular embodiment, one or more computer systems 400 perform one or more steps of one or more methods described or illustrated herein. In a particular embodiment, one or more computer systems 400 provide the functionality described or illustrated herein. In a particular embodiment, software running on one or more computer systems 400 performs one or more steps of one or more methods described or illustrated herein, or provides the functionality described or illustrated herein. Specific embodiments include one or more portions of one or more computer systems 400. Where appropriate, references to computer systems herein may cover computing devices and vice versa. Furthermore, where appropriate, references to computer systems may cover one or more computer systems.

[0051] This disclosure contemplates any suitable number of computer systems 400. This disclosure contemplates computer systems 400 in any suitable physical form. By way of example and not limitation, computer system 400 may be an embedded computer system, a system-on-a-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 computer system grid, 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; be unified or distributed; span multiple locations; span multiple machines; span multiple data centers; or reside in a cloud, which 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. Where appropriate, 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.

[0052] In a particular embodiment, computer system 400 includes processor 402, memory 404, storage device 406, input / output (I / O) interface 408, communication interface 410, and bus 412. While 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.

[0053] In a particular embodiment, processor 402 includes hardware for executing instructions, such as those constituting a computer program. By way of example, and not limitation, to execute instructions, processor 402 may retrieve (or fetch) instructions from internal registers, internal caches, memory 404, or storage device 406; decode and execute the instructions; and then write one or more results to internal registers, internal caches, memory 404, or storage device 406. In a particular embodiment, processor 402 may include one or more internal caches for data, instructions, or addresses. Where appropriate, this disclosure contemplates processor 402 including any suitable number of suitable internal caches. By way of example, and not limitation, processor 402 may include one or more instruction caches, one or more data caches, and one or more translation back buffers (TLBs). Instructions in the instruction cache may be copies of instructions in memory 404 or storage device 406, and the instruction cache may accelerate the retrieval of these instructions by processor 402. The data in the data cache may be a copy of data in memory 404 or storage device 406, on which instructions are executed at processor 402 to operate; it may be the result of a previous instruction executed by processor 402, the result of which is used for access by a subsequent instruction executed at processor 402 or for writing to memory 404 or storage device 406; or it may be other suitable data. The data cache can accelerate read or write operations of processor 402. The TLB can accelerate virtual address translation of processor 402. In a particular embodiment, processor 402 may include one or more internal registers for data, instructions, or addresses. Where appropriate, this disclosure contemplates processor 402 including any suitable number of suitable internal registers. Where appropriate, processor 402 may include one or more arithmetic logic units (ALUs); it may be a multi-core processor, or it may include one or more processors 402. While this disclosure describes and illustrates specific processors, this disclosure contemplates any suitable processor.

[0054] In a particular embodiment, memory 404 includes main memory for storing instructions executed by processor 402 or data for storing operations of processor 402. By way of example and not limitation, computer system 400 may load instructions from storage device 406 or another source (e.g., another computer system 400) into memory 404. Processor 402 may then load instructions from memory 404 into internal registers or internal caches. To execute instructions, processor 402 may retrieve instructions from internal registers or internal caches and decode them. During or after instruction execution, processor 402 may write one or more results (which may be intermediate or final results) to internal registers or internal caches. Processor 402 may then write one or more of these results to memory 404. In a particular embodiment, processor 402 executes only the instructions in one or more internal registers or internal caches or memory 404 (as opposed to storage device 406 or elsewhere) and operates only on the data in one or more internal registers or internal caches or memory 404 (as opposed to storage device 406 or elsewhere). One or more memory buses (each potentially including an address bus and a data bus) couple processor 402 to memory 404. Bus 412 may include one or more memory buses, as described below. In a particular embodiment, one or more memory management units (MMUs) are located between processor 402 and memory 404 and facilitate access to memory 404 requested by processor 402. In a particular embodiment, memory 404 includes random access memory (RAM). Where appropriate, the RAM may be volatile memory. Where appropriate, the RAM may be dynamic RAM (DRAM) or static RAM (SRAM). Furthermore, where appropriate, the RAM may be single-port or multi-port RAM. Any suitable RAM is contemplated in this invention. Where appropriate, memory 404 may include one or more memories 404. While this disclosure describes and illustrates specific memories, this disclosure contemplates any suitable memory.

[0055] In a particular embodiment, storage device 406 includes a mass storage device for data or instructions. By way of example and not limitation, storage device 406 may include a hard disk drive (HDD), floppy disk drive, flash memory, optical disk drive, magneto-optical disk drive, magnetic tape drive, or Universal Serial Bus (USB) drive, or a combination of two or more of these. Where appropriate, storage device 406 may include removable or non-removable (or fixed) media. Where appropriate, storage device 406 may be located internally or externally to computer system 400. In a particular embodiment, storage device 406 is a non-volatile solid-state memory. In a particular embodiment, storage device 406 includes read-only memory (ROM). Where appropriate, the ROM may be a mask-programmable ROM, a programmable ROM (PROM), an erasable PROM (EPROM), an electrically erasable PROM (EEPROM), an electrically changeable ROM (EAROM), or flash memory, or a combination of two or more of these. This disclosure contemplates a mass storage device 406 in any suitable physical form. Where appropriate, storage device 406 may include one or more storage device control units that facilitate communication between processor 402 and storage device 406. Where appropriate, storage device 406 may include one or more storage devices 406. While this disclosure describes and illustrates specific storage devices, any suitable storage device is contemplated herein.

[0056] In a particular embodiment, I / O interface 408 includes hardware, software, or both, providing one or more interfaces for communication between computer system 400 and one or more I / O devices. Where appropriate, computer system 400 may include one or more of these I / O devices. These one or more I / O devices enable communication between a person and computer system 400. By way of example and not limitation, I / O devices may include a keyboard, keypad, microphone, display, mouse, printer, scanner, speaker, camera, stylus, tablet computer, touchscreen, trackball, camcorder, another suitable I / O device, or a combination of two or more of these. I / O devices may include one or more sensors. This disclosure contemplates any suitable I / O devices and any suitable I / O interface 408 for them. Where 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. Where appropriate, I / O interface 408 may include one or more I / O interfaces 408. While this disclosure describes and illustrates specific I / O interfaces, this disclosure considers any suitable I / O interface.

[0057] In a particular embodiment, communication interface 410 includes hardware, software, or both, providing one or more interfaces for communication (e.g., packet-based communication) between computer system 400 and one or more other computer systems 400, or between computer system 400 and one or more networks. By way of example, and not limitation, communication interface 410 may include a network interface controller (MIC) or network adapter for communicating with Ethernet or other wired-based networks; or communication interface 410 may include a wireless NIC (WNIC) or wireless adapter for communicating with wireless networks (e.g., Wi-Fi networks). This disclosure contemplates any suitable network and any suitable communication interface 410 for that network. By way of example, and not limitation, computer system 400 may communicate with one or more portions of an ad hoc network, personal area network (PAN), local area network (LAN), wide area network (WAN), metropolitan area network (MAN), or the Internet, or a combination of two or more of these networks. 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., Bluetooth WPAN), a Wi-Fi network, a Wi-Fi Max network, a cellular telephone network (e.g., a Global System for Mobile Communications (GSM) network, a Long Term Evolution (LTE) network, or a 5G network), or other suitable wireless networks, or a combination of two or more of these networks. Where appropriate, computer system 400 may include any suitable communication interface 410 for any of these networks. Where appropriate, communication interface 410 may include one or more communication interfaces 410. While this disclosure describes and illustrates specific communication interfaces, this disclosure contemplates any suitable communication interface.

[0058] In a particular embodiment, bus 412 includes hardware, software, or both, that couples components of computer system 400 to each other. 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 Microchannel 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 other suitable buses, or combinations of two or more of these buses. Where appropriate, bus 412 may include one or more buses. While this disclosure describes and illustrates specific buses, this disclosure contemplates any suitable bus or interconnect.

[0059] Where appropriate, computer-readable non-transitory storage media herein may include one or more semiconductor-based circuits or other integrated circuits (ICs) (e.g., field-programmable gate arrays (FPGAs) or application-specific integrated circuits (ASICs)), hard disk drives (HDDs), hybrid hard disk drives (HMDs), optical disks, optical disk drives (ODDs), magneto-optical disks, magneto-optical drives, floppy disks, floppy disk drives (FDDs), magnetic tape, solid-state drives (SSDs), RAM drives, secure digital cards or drives, any other suitable computer-readable non-transitory storage media, or any suitable combination of two or more of these media. Where appropriate, computer-readable non-transitory storage media may be volatile, non-volatile, or a combination of volatile and non-volatile.

[0060] In summary, this disclosure relates to a centralized control policy for multicast replicator selection. The method includes receiving multicast advertisements from a plurality of edge devices configured with multicast protocols, 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, the control policy including a priority associated with selecting at least one replicator from the identified one or more replicators, the priority applying to a defined set of edge devices among the plurality of edge devices; and using the control policy to update at least one multicast advertisement to be transmitted to the defined set of edge devices, the updated at least one multicast advertisement indicating a priority for selecting a replicator for the defined set of edge devices based on the control policy.

[0061] In this document, "or" is inclusive rather than exclusive, unless otherwise expressly stated or the context otherwise indicates. Therefore, "A or B" in this document means "A, B, or both," unless otherwise expressly stated or the context otherwise indicates. Furthermore, "and" is both common and separate, unless otherwise expressly stated or the context otherwise indicates. Therefore, "A and B" in this document means "A and B, commonly or separately," unless otherwise expressly stated or the context otherwise indicates.

[0062] The scope of this disclosure covers all changes, substitutions, variations, alterations, and modifications to the exemplary embodiments described or illustrated herein that will be understood by those skilled in the art. The scope of this disclosure is not limited to the exemplary embodiments described or illustrated herein. Furthermore, while this disclosure describes and illustrates various embodiments herein as including specific components, elements, features, functions, operations, or steps, any embodiment in these embodiments may include any combination or arrangement of any components, elements, features, functions, operations, or steps described or illustrated anywhere herein that will be understood by those skilled in the art. Additionally, references in the appended claims to a device, or system, or a component of a device or system being adapted, arranged, enabled, configured, made capable, operable, or operated to perform a particular function cover the device, system, or component (whether or not the device, system, component, or the particular function is activated) being turned on or off, provided that the device, system, or component is so adapted, arranged, enabled, configured, made capable, operable, or operated. Furthermore, while this disclosure describes or illustrates particular embodiments to provide specific advantages, particular embodiments may not provide these advantages, provide some advantages, or provide all of these advantages.

[0063] The embodiments disclosed herein are merely examples, and the scope of this disclosure is not limited to these embodiments. Specific embodiments may include, or exclude, all or some of the components, elements, features, functions, operations, or steps of the embodiments disclosed herein. Embodiments of this disclosure are specifically disclosed in the appended claims, which relate to methods, storage media, systems, and computer program products, wherein any feature referenced in one claim class (e.g., method) may also be claimed in another claim class (e.g., system). Dependencies or references in the appended claims are chosen only for formal reasons. However, any subject matter arising from a deliberate return to any prior claim (particularly multiple dependencies) may also be claimed, thus any combination of claims and their features is disclosed and may be claimed regardless of the dependency chosen in the appended claims. Claimable subject matter includes not only combinations of features as listed in the appended claims, but also any other combination of features in the claims, wherein each feature referenced in the claims may be combined with any other combination of features in the claims or other combinations of features. Furthermore, any embodiments and features described or depicted herein may be claimed in a separate claim, and / or in any combination with any embodiments or features described or depicted herein, or in combination with any features of the appended claims.

Claims

1. A system comprising: One or more processors; as well as One or more computer-readable non-transitory storage media, the non-transitory storage media including instructions that, when executed by the one or more processors, cause one or more components of the system to perform the following operations: Multicast announcements are received from multiple edge devices, each of which is configured with a multicast protocol, and each multicast announcement includes information indicating whether the associated edge device is a replicator; Analyze the multicast announcements from the plurality of edge devices to identify one or more replicators; Receive a centralized policy configuration associated with at least one control policy, the control policy including a priority associated with selecting at least one replicator from one or more identified replicators, the priority being applicable to a defined set of edge devices among the plurality of edge devices; and The control policy is used to update at least one multicast announcement associated with the at least one replicator to be transmitted to the defined set of edge devices. The updated at least one multicast announcement indicates the priority of the replicator for the defined set of edge devices based on the control policy.

2. The system according to claim 1, wherein, The multiple edge devices are configured on a software-defined wide area network (SD-WAN).

3. The system according to claim 2, wherein, The priority is based on at least one of the following: The proximity of the at least one replicator to the defined set of edge devices; The capacity of the at least one replicator relative to the capacity of the one or more replicators; The load distribution of the at least one replicator relative to the one or more replicators; or Management considerations.

4. The system according to any one of claims 1 to 3, wherein, The priority includes: High priority associated with the at least one replicator; or The low priority associated with the at least one replicator.

5. The system according to claim 4, wherein, The high priority also includes: Preemptive priority for directing existing multicast streams to at least one of the replicators.

6. The system according to any one of claims 1 to 3, wherein, The control policy is also associated with a defined multicast prefix list, which is associated with a set of multicast group prefixes and prefix length tuples, wherein the defined multicast prefix list is transmitted to the defined set of edge devices.

7. The system according to any one of claims 1 to 3, wherein, The control policy is also associated with a defined multicast prefix list, which is associated with a set of multicast group prefixes, prefix lengths, and source tuples, and wherein the defined multicast prefix list is transmitted to a defined set of edge devices.

8. A method comprising: Multicast announcements are received from multiple edge devices, each of which is configured with a multicast protocol, and each multicast announcement includes information indicating whether the associated edge device is a replicator; Analyze the multicast announcements from the plurality of edge devices to identify one or more replicators; Receive a centralized policy configuration associated with at least one control policy, the control policy including a priority associated with selecting at least one replicator from one or more identified replicators, the priority being applicable to a defined set of edge devices among the plurality of edge devices; as well as The control policy is used to update at least one multicast announcement associated with the at least one replicator to be transmitted to the defined set of edge devices. The updated at least one multicast announcement indicates the priority of the replicator for the defined set of edge devices based on the control policy.

9. The method according to claim 8, wherein, The multiple edge devices are configured on a software-defined wide area network (SD-WAN).

10. The method according to claim 9, wherein, The priority is based on at least one of the following: The proximity of the at least one replicator to the defined set of edge devices; The capacity of the at least one replicator relative to the capacity of the one or more replicators; The load distribution of the at least one replicator relative to the one or more replicators; or Management considerations.

11. The method according to any one of claims 8 to 10, wherein, The priority includes: High priority associated with the at least one replicator; or The low priority associated with the at least one replicator.

12. The method according to claim 11, wherein, The high priority also includes: Preemptive priority for directing existing multicast streams to at least one of the replicators.

13. The method according to any one of claims 8 to 10, wherein, The control policy is also associated with a defined multicast prefix list, which is associated with a set of multicast group prefixes and prefix length tuples, wherein the defined multicast prefix list is transmitted to the defined set of edge devices.

14. The method according to any one of claims 8 to 10, wherein, The control policy is also associated with a defined multicast prefix list, which is associated with a set of multicast group prefixes, prefix lengths, and source tuples, and wherein the defined multicast prefix list is transmitted to a defined set of edge devices.

15. One or more computer-readable non-transitory storage media, the non-transitory storage media comprising instructions that, when executed by a processor, cause to perform an operation, the operation comprising: Multicast announcements are received from multiple edge devices, each of which is configured with a multicast protocol, and each multicast announcement includes information indicating whether the associated edge device is a replicator; Analyze the multicast announcements from the plurality of edge devices to identify one or more replicators; Receive a centralized policy configuration associated with at least one control policy, the control policy including a priority associated with selecting at least one replicator from one or more identified replicators, the priority being applicable to a defined set of edge devices among the plurality of edge devices; as well as The control policy is used to update at least one multicast announcement associated with the at least one replicator to be transmitted to the defined set of edge devices. The updated at least one multicast announcement indicates the priority of the replicator for the defined set of edge devices based on the control policy.

16. One or more computer-readable non-transitory storage media according to claim 15, wherein, The multiple edge devices are configured on a software-defined wide area network (SD-WAN).

17. One or more computer-readable non-transitory storage media according to claim 16, wherein, The priority is based on at least one of the following: The proximity of the at least one replicator to the defined set of edge devices; The capacity of the at least one replicator relative to the capacity of the one or more replicators; The load distribution of the at least one replicator relative to the one or more replicators; or Management considerations.

18. One or more computer-readable non-transitory storage media according to any one of claims 15 to 17, wherein, The priority includes: High priority associated with the at least one replicator; or The low priority associated with the at least one replicator.

19. One or more computer-readable non-transitory storage media according to claim 18, wherein, The high priority also includes: Preemptive priority for directing existing multicast streams to at least one of the replicators.

20. One or more computer-readable non-transitory storage media according to any one of claims 15 to 17, wherein, The control policy is also associated with a defined multicast prefix list, which is associated with a set of multicast group prefixes and prefix length tuples, wherein the defined multicast prefix list is transmitted to the defined set of edge devices.

21. An apparatus comprising: A module for receiving multicast announcements from multiple edge devices, each of which is configured with a multicast protocol, and each multicast announcement includes information indicating whether the associated edge device is a replicator; A module for analyzing the multicast announcements from the plurality of edge devices to identify one or more replicators; A module for receiving a centralized policy configuration associated with at least one control policy, the control policy including a priority associated with selecting at least one replicator from one or more identified replicators, the priority being applicable to a defined set of edge devices among the plurality of edge devices; as well as A module for using the control policy to update at least one multicast announcement associated with the at least one replicator for transmission to the defined set of edge devices, wherein the updated at least one multicast announcement indicates for selecting the priority of the replicator for the defined set of edge devices based on the control policy.

22. The apparatus of claim 21, further comprising a module for implementing the method of any one of claims 9 to 14.

23. A computer program product comprising instructions that, 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