A resource optimization processor is disclosed for inclusion in peer routers. The resource optimization processor performs a method for resource optimization of the routers. The method includes disabling an inter-switch link (ISL) between peer routers and monitoring downstream links between a primary router and downstream devices connected to the primary router. The method further includes identifying a failure of at least one downstream link and enabling the ISL between the first router and the second router for the failed downstream link upon identification of the failure.
Legal claims defining the scope of protection, as filed with the USPTO.
. A method for resource optimization in a multicast network, the method comprising:
. The method of, further comprising disabling the ISL in response to multicast functionality being enabled on the first network device.
. The method of, further comprising identifying a failure of a threshold number of downstream links from the first network device to the downstream devices and, in response, functioning as the proxy router.
. The method of, further comprising disabling the ISL for traffic destined to the failed downstream link in response to the first network device functioning as the proxy router.
. The method of, wherein disabling the ISL comprises enabling Internet Group Management Protocol (IGMP) snooping on the first network device.
. The method of, wherein disabling the ISL comprises disabling duplication of multicast traffic to the ISL for each interface of the first network device.
. The method of, wherein determining the ISL to be an egress port comprises enabling duplication of multicast traffic to the ISL for an interface of the first network device associated with the failed downstream link.
. A network device functioning as a designated router in a multicast network, the network device comprising:
. The network device of, further comprising switching hardware and a centralized database to program the switching hardware.
. The network device of, wherein the method further comprises identifying a failure of a threshold number of downstream links from the network device to the downstream devices and in response, functioning as the proxy router.
. The network device of, wherein the method further comprises disabling the ISL in response to multicast functionality being enabled on the network device.
. The network device of, wherein disabling the ISL comprises enabling Internet Group Management Protocol (IGMP) snooping on the network device.
. The network device of, wherein disabling the ISL comprises disabling duplication of multicast traffic to the ISL for each interface of the network device.
. The network device of, wherein determining the ISL as an egress port comprises enabling duplication of multicast traffic to the ISL for an interface associated with the failed downstream link.
. A non-transitory computer-readable medium storing instructions executable by a processor of a network device to cause the processor to perform a method, the method comprising:
. The non-transitory computer-readable medium of, wherein the method further comprises identifying a failure of a threshold number of downstream links from the network device to the downstream devices and, in response, functioning as the proxy router.
. The non-transitory computer-readable medium of, wherein the method further comprises disabling the ISL in response to multicast functionality being enabled on the network device.
. The non-transitory computer-readable medium of, wherein disabling the ISL comprises enabling Internet Group Management Protocol (IGMP) snooping on the network device.
. The non-transitory computer-readable medium of, wherein disabling the ISL comprises disabling duplication of multicast traffic to the ISL for each interface of the network device.
. The non-transitory computer-readable medium of, wherein determining the ISL to be an egress port comprises enabling duplication of multicast traffic to the ISL for an interface of the network device associated with the failed downstream link.
Complete technical specification and implementation details from the patent document.
Various protocols and architectures have evolved for routing multicast traffic. For example, with respect to protocols, both Internet Group Management Protocol (IGMP) and Protocol Independent Multicast (PIM) are used to route multicast traffic in a network. IGMP is a protocol that allows several devices to share one IP address so they can all receive the same data. PIM is a known family of protocols that enables the delivery of a stream of information to multiple select destinations within a network without the source device needing to send multiple messages separately addressed to the individual recipients (as would occur with unicast traffic) and also without the messages being sent to every client in the network indiscriminately (as would be the case with broadcast messages). Instead, recipients subscribe to a multicast group associated with a given source of multicast traffic by sending “Join” messages to PIM-enabled networking devices (hereinafter “PIM devices”), and then the PIM devices in the network utilize the protocol to determine paths from the source to those clients that have subscribed to the group. PIM is often employed for applications where it is desired to send a stream of data, such as a video stream, to multiple clients simultaneously, such as closed circuit television (CCTV) applications where a video stream from a camera may be sent to multiple monitoring stations.
Further, with respect to architectures for routing multicast traffic while maintaining high availability and reliable access, various solutions have evolved. One such solution is Virtual Switching Extension (VSX) architecture, which has been designed to provide high availability and robust performance. High availability (HA) refers to a system or component that is continuously operational for extended periods of time, without disruption to network access or performance. VSX solves high availability challenges by utilizing features such as multi-chassis link aggregation (MC-LAG) to provide a distributed and redundant architecture that is highly available, with minimal traffic loss. In the VSX topology, an Inter-Switch Link (ISL) is a layer 2 interface between two peer routers or switches. Each of the peer routers receives packets from a source and each peer router is configured with an ISL link connected to its peer VSX router. One of the peer routers may function as a primary router and the other peer is secondary router. When multicast is enabled on a pair of VSX peer routers, the primary router may also act as the designated router (DR) under the multicast protocol while the secondary router may act as a proxy router (PR) under the multicast protocol. The ISL interface is by default a member of all virtual local area networks (VLANs) on the peer routers. The network may utilize any of a number of protocols, such as those described above, to transmit and receive multicast packets.
As noted above, various protocols and architectures have evolved for routing multicast traffic. In particular, both Internet Group Management Protocol (IGMP) and Protocol Independent Multicast (PIM) are used to route multicast traffic in a network. Additionally, solutions for providing high availability during routing of multicast traffic have evolved. For example, VSX architecture has been designed to provide high availability by providing redundancy by implementing peer routers connected by an inter-switch link (ISL).
While the above-described redundancy provided by the use of peer routers in routing solutions for multicast traffic contributes to high availability, it also may result in excessive consumption of resources, particularly when used in combination with multicast traffic. For example, if multicast is enabled with peer VSX routers, each will have both a multicast routing information base (MRIB) and a multicast forwarding information base (MFIB), both of which are described below. Moreover, the primary router may send duplicates of multicast packets received from a multicast source over the ISL to the secondary router, and as a result the secondary router may end up storing a very large number of bridge entries in its MFIB. The number of bridge entries in the MFIB of the secondary router can be multiple times more than the number of entries in the MFIB of the primary router. This large number of bridge entries in the secondary router's MFIB entries can quickly overwhelm the limited resources of the secondary router. How this multiplication of entries in the MFIB of the secondary router occurs will be described in greater detail below.
To address the issues noted above, as well as other issues described herein, example routers are provided. Although referred to for convenience herein as a “router,” usage of this terminology is not intended to be limiting. In some instances, a distinction may be drawn between routers and switches, with the former being layer-3 devices and the latter being layer-2 devices, but as some switches have gained some layer-3 functionalities this distinction is not always applicable. Thus, in some examples the router could be a switch (e.g., a layer-3 switch) notwithstanding being referred to herein for convenience as a router. Routers disclosed herein may, for example, be PIM routers (i.e., routers capable of utilizing the PIM protocol). In some examples, routers may be configured to utilize other multicast protocols (e.g., IGMP or others), in addition to or instead of PIM. In addition, routers described herein may be arranged to operate in a VSX architecture with the peer routers being configured to operate as a pair of VSX peer routers. However, the provision of other types of routers is within the scope of the disclosure and any routers or switches capable of routing information in the native protocol of the corresponding network may be used. The example routers disclosed herein are configured to, among other things, selectively disable duplication of packets over the ISL when multicast is enabled. This prevents the bridge entries from being added to the MFIB of the secondary router, thus avoiding the overwhelming of the secondary router resources. Additional aspects of examples disclosed herein are described in greater detail below.
The MRIB serves as the communication channel between MRIB clients such as PIM, IGMP, and the MFIB. The MRIB will include a number of entries, each associated with a multicast flow and including information indicating a source S, a group G, and incoming and outgoing interfaces. Thus, programming entries in the MRIB includes specifying a particular source S and group G for a multicast route (mroute). This combination of a particular source and group may be referred to herein as an (S, G) multicast flow. Programming the multicast route for a given (S, G) multicast flow also includes specifying an incoming interface at which data associated with the flow is expected to be received and a list of outgoing interfaces to which the data from that flow is to be forwarded.
The MFIB is a forwarding engine that forwards received multicast packets based on entries stored therein. The MFIB registers with the MRIB, and then entries are generally programmed into the MFIB based on the entries in the MRIB. For example, if a new multicast route is programmed into the MRIB, then generally a corresponding multicast route entry is also programmed into the MFIB to ensure proper forwarding of the packets. However, in the case of a secondary router, the MRIB entries are prevented from being propagated down into the MFIB so as to avoid having the secondary router forward duplicates of the multicast packets to the downstream devices (since the primary router is already forwarding those packets). Moreover, when the primary router forwards duplicate packets to the secondary router over the ISL, the secondary router may program a bridge entry into its MFIB for each interface associated with the duplicated packets. Thus, while the MRIB entries in peer routers will be identical, they will have different MFIB entries—the primary router's MFIB will have regular mroute entries that match the entries in its MRIB, whereas the secondary router's MFIB will have only bridge entries. Generally, the bridge entries programmed into the MFIB in the secondary peer router will greatly exceed the number of entries in the MFIB in the primary peer router.
For example, suppose the primary router has two mroute entries, each designating multiple outgoing interfaces, such as is indicated in Table 1 below. In this case, there will also be two corresponding mroute entries in the MFIB of the primary router and also in the MRIB of the secondary router. However, because of the duplicate transmission over the ISL the secondary router will have bridge entries for each of the outgoing interfaces specified in the mroutes of the primary router, as shown in Table 2 below. The number of MFIB entries in the secondary router is a function of the number of outgoing interfaces in the mroutes of the MRIB/MFIB of the primary router, as the MFIB of the secondary router will have a bridge entry for each such outgoing interface. Moreover, because each mroute entry in the primary router can specify multiple outgoing interfaces (e.g., see Table 1), the number of bridge entries in the MFIB of the secondary router may greatly exceed the number of mroutes in the primary router's MRIB. Thus, with even relatively small numbers of mroutes, the number of bridge entries in the MFIB of the secondary router can quickly become very large.
In the bridge entries in the MFIB of the secondary router, the outgoing interfaces from the MRIB are listed as incoming interfaces having no outgoing interface as illustrated in Table 2 below.
The excessive number of entries in the MFIB of the secondary router results in a depletion of hardware resources. Furthermore, each packet is unnecessarily copied from the primary router to the secondary router for each outgoing interface over ISL, but is simply dropped at the secondary router, thus resulting in a further waste of resources.
Accordingly, examples disclosed herein provide a resource optimization processor for each router and peer router in order to conserve hardware resources and avoid excessive duplication. The resource optimization processor may be integrated with the routers. For example, the resource optimization processor may be integrated with a first router and is programmed to selectively disable the ISL between the first router and a second peer router when multicast is enabled, thereby preventing a flow of replication packets from the first router to the second router. Because the replication packets over the ISL are prevented, the resultant bridge entries in the MFIB of the secondary router are prevented. The disabling of the ISL is “selective” in the sense that the ISL may be disabled for certain interfaces but enabled for others, as is described in greater detail below. Initially, the ISL may be disabled for all interfaces, but may be re-enabled for certain interfaces under certain circumstances. The disabling of the ISL may occur, for example, by enabling IGMP snooping. IGMP snooping is a method that network routers use to identify multicast groups, which are groups of computers or devices that all receive the same network traffic, but one side effect of enabling such snooping in a VSX pair is that enabling snooping disables the ISL. In examples provided herein, the first router initially functions as a designated router (DR) or primary router and the second router functions as a proxy router (PR) or secondary router. In other words, while the first router is primary, the second router is secondary.
The resource optimization processor is also programmed to monitor downstream links, e.g., Virtual Local Area Networks (VLANs), which divide a single existing physical network into multiple logical networks. VLAN tunnels operate between the first router and downstream devices connected to the first router. The monitoring of the VLAN tunnels may occur, for example, by consultation of the resource optimization processor with a remote database. As a result of the monitoring, the resource optimization processor is able to identify a failure of at least one downstream link between the first router and the downstream devices. Upon identification of this failure, the resource optimization processor enables the ISL between the first router and the second router for the failed downstream link in order to ensure that the information intended to be transmitted over the failed downstream link reaches the downstream devices (via the ISL and the secondary router). It should be noted that, in examples provided herein, the primary router enables the ISL for the failed downstream link only and not for the downstream links that remain active. Thus, the secondary or proxy router will publish bridge entries to the MFIB for the failed downstream interface or VLAN only. On the other hand, if no failures of downstream links from the first router are identified, the ISL remains disabled for all links in order to conserve hardware resources. Enabling the ISL for a given interface (link) may comprise tagging the ISL as an egress port for that interface, so that packets destined for that interface are duplicated to the ISL, whereas disabling the ISL for a given port may comprise omitting or removing the ISL as an egress port for the given interface.
In further examples, the resource optimization processor identifies a failure of a threshold number of downstream links from the first router to the downstream devices. The threshold number may be defined, for example, by a percentage, such as 50% or another percentage of the number of existing links between the first router and the downstream devices. Upon identification of this threshold number, the resource optimization processor instructs the first router to operate as a secondary router or PR and instructs the second router to operate as a primary router or DR. Thus, based on the status of links between peer routers and downstream devices, the resource optimization processor both determines when ISL is enabled or disabled between peer devices and further determines which peer device operates as a primary router and which peer devices operates as a secondary router.
Turning now to the figures, various devices, systems, and methods in accordance with aspects of the present disclosure will be described.
is a block diagram illustrating a resource optimization processoroperating within a multicast networking environmentin accordance with examples set forth herein. Network environmentmay include a source device, network, peer routersA andB, network devicesand client devices. Each peer routerA andB may include a resource optimization processor. The resource optimization processormay be identical on each of the peer routersA andB and may include software and hardware configured to optimize hardware resources between the peer routersA andB. The networkmay utilize various multicast protocols, such as for example PIM protocols or IMPG protocols.
Although only one source deviceis shown, multiple source devicesmay be connected over the network. The source devicemay be or include any device capable of generating and distributing a multicast stream over the network. Networkmay be or include any type of network configured for distribution of multicast traffic.
Each peer routerA,B (collectively referenced as) connects over the networkwith network devices. For example, routerA connects with network devicesover interfacesand the routerB connects with the network devices over interfaces. The routersmay be, for example, layer-3 networking devices, and may operate as, for example, a border gateway. Although referred to for convenience herein as a “router,” usage of this terminology is not intended to be limiting. In some instances, a distinction may be drawn between routers and switches, with the former being layer-3 devices and the latter being layer-2 devices, but as some switches have gained some layer-3 functionalities this distinction is not always applicable. Thus, in some examples the routerscould be a switch (e.g., a layer-3 switch) notwithstanding being referred to herein for convenience as a router. In the illustrated example, the peer routersA,B may, for example, be PIM routers (i.e., routers capable of utilizing the PIM protocol). In some example, the routersmay be configured to utilize other multicast protocols (e.g., IGMP or others), in addition to or instead of PIM. In addition, the network devicesand routersmay be arranged to operate in a VSX architecture with the peer routersA andB being configured to operate as a pair of VSX peer routers. Aspects of this VSX architecture may include the provisioning of an interswitch link (ISL)between the peer routersand multi-chassis link aggregation (MC-LAG) between the network devicesand routers, as will be described in greater detail below. However, the provision of other types of routers is within the scope of the disclosure and any routers or switches capable of routing information in the native protocol of the corresponding networkmay be used. The peer routersA andB may have identical components and information. A difference between the peer routers is that when multicast is enabled on the pair of routers, one of the routers(e.g., the routerA) acts as a primary router and the designated router (DR) under the multicast protocol while the other one of the routers(e.g., the routerB) acts as a secondary router and the proxy router (PR) under the multicast protocol, and in the secondary/PR router the data traffic forwarding function for multicast traffic is disabled such that mroute states are not loaded into the hardware of the secondary router (e.g., mroute entries in the MRIB of the secondary router are not propagated into the MFIB). Instead, all multicast traffic forwarding is handled through the primary router or DRA. It should be understood that in accordance with the forwarding function, primary routerA may copy or publish multicast router information from an MRIB (also referred to herein as a centralized database) of the routerA into the MFIB of the routerA in order to program switching hardware of the corresponding routerA.
The peer routersare connected by an interswitch link (ISL). The ISLis a layer 2 interface between the two peer routers. In examples provided herein, the ISLis used for both data path and control path transmission and provides redundancy, so that in the event that one peer routerfails, the other peer routerstores the same information. When multicast is not enabled, the primary routerA will tag the ISLas an egress port for each output interface designated in any multicast entries in the MRIB or MFIB of the routerA, which has the effect of causing any traffic that is destined for those output interfaces to be duplicated to the ISL(i.e., received packets are forwarded both to their destination output interface and also to the interface associated with the ISL). When these duplicated multicast packets are sent over the ISLfrom the primary routerA to the secondary routerB, the secondary routerB creates a bridge entry in the MFIB of the secondary routerB, with each such bridge entry being associated with a particular output interface, source, and group, but not specifying any output interfaces. As will be described in greater detail below, this function of the ISLmay be selectively disabled or enabled based on certain conditions. Such disabling of the duplication of multicast traffic to the ISLmay be referred to herein for convenience as “disabling the ISL,” but this phrasing is not intended to imply that no communication can pass through the ISL. Rather, disabling the ISL, as that phrase is used herein, refers only to preventing duplication of multicast traffic to the ISLas described above, but other traffic, such as control plane traffic or non-multicast traffic, may still be communicated over the disabled ISLin some examples. Moreover, the enabling and disabling of the ISLmay be performed selectively on a per-interface basis, meaning that duplication of multicast traffic over the ISLmay be enabled for certain output interfaces while being disabled for other output interfaces. As used herein, general references to disabling the ISLwhich are not accompanying by any references to particular interfaces should be understood as referring to disabling the ISLfor all of the multicast output interfaces, but if one or more specific output interfaces are mentioned or implied in association with the reference to disabling the ISLthen it should be understood that the disabling is specially for those mentioned or implied interfaces (but not necessarily all interfaces).
The peer routerseach include a resource optimization processorconfigured to optimize hardware resources of the router. In particular, the resource optimization processorof the primary routerA is configured to selectively disable the ISLwhen multicast is enabled on the pair of routers. This has the effect of preventing the bridge entries in the MFIB of the secondary routerB, as explained above. The resource optimization processormay also be configured to selectively reenable the ISLfor certain interfaces in response to certain conditions, such as a link associated with the interface becoming unavailable. Examples of the hardware resources and the optimization of the hardware resources that can be performed by the resource optimization processorwill be further described below with respect to.
The interfacesandmay, for example, be virtual interfaces such as VLAN tunnels. In one example, the multiple interfaces,may be PIM enabled interfaces. In examples in which the interfacesandare virtual interfaces, the network may also comprise underlying physical hardware (not illustrated), such as communications cables, routers, and other networking devices, upon which the virtual interfacesandare overlaid. As shown in, each network device has one interfaceconnected to the primary routerA and another interfaceconnected to the secondary routerB. These may be configured to operate in an MC-LAG configuration according to the VSX architecture.
The network devicesmay be or include any device capable of receiving a generated multicast stream and distributing the multicast stream to client devices. For example, the network devicesmay be switches, routers, hubs, repeaters, or other networking devices. In some examples, the network devicesare configured as layer-2 devices, such as access layer switches. The network devicesmay further receive requests for multicast streams from the client devices. As illustrated, any number of network devicesmay be incorporated in the networking environment. Further, any number of client devicesmay connect with each network device.
illustrate example configurations of a network device functioning as a peer router utilizing a resource optimization processor as described herein.is a block diagram illustrating a routerin accordance with examples set forth herein. The routeris one example configuration of the peer router. The routermay further be described as a computing device, network device, switch, etc. As illustrated, the routermay be connected to other computing devices in the network. As used herein, a “computing device” may include a server, a networking device, a chipset, a desktop computer, a workstation, a mobile phone, a tablet, an electronic reader, or any other processing device or equipment.
The routerincludes a resource optimization processor, a memory device, and switching hardware. In the illustrated example, the resource optimization processorand is connected with a networkwhich may be a network for routing multicast traffic. Networkmay comprise other computing devices, including networking devices similar to router.
Memory device or systemmay incorporate a centralized databasestoring network information, such as databases including a multicast routing information base (MRIB) and multicast forwarding information base (MFIB). The memory devicemay be or comprise one or more memory devices (e.g., RAM, flash memory, battery-backed RAM, a Hard Disk Drive (HHD), etc.), which may include volatile and non-volatile devices. The databaseis referred to as “centralized” because it is accessible to all components of the border gateway device. However, the MFIB and MRIB may be stored in different parts of the memory system, for example, the MFIB may be stored in a non-volatile memory (e.g., a ternary content-addressable memory (TCAM)) and the MRIB may be stored in RAM. Moreover, althoughillustrates the memory system, the switching hardware, and the resource optimization processorseparately for ease of description, it should be understood that different portions of the memory systemmay be part of or packaged with different components, including the switching hardwareand/or resource optimization processor. For example, the MFIB may be stored in non-volatile memory that is part of or packaged with the switching hardware, such as a TCAM that is part of an ASIC of the switching hardware. As another example, portions of the memory systemmay store processor executable instructions that configure the resource optimization processorto perform certain operations, and thus these portions of the memory systemmay be considered as also being part of the resource optimization processor.
The centralized databasemay, for example, be an Open vSwitch Database (OVSDB). Centralized databasemay store information related to different components in the router, including information associated with multicast flows. The different information may be stored in different tables in centralized database, including, for example, the MRIB. This information is also accessible for programming the switching hardware. Non-limiting examples of information stored may include information regarding addresses for multicast groups (e.g., in an Mroute table), next hop information, etc.
The switching hardwarecomprises the underlying physical communication pathways that communicate the data, such as the physical interfaces (e.g., ports) and the internal switching fabric that selectively connects these ports together (e.g., a crossbar array or other physical data communication lines). The switching hardwaremay also comprise control circuitry that controls and enables the aforementioned underlying physical communication pathways. This control circuitry may be or include, for example, an application-specific integrated circuit (ASIC), a field programmable gate array (FPGA), a complex programmable logic device (CPLD), a programmable array logic (PAL), or other type of switching hardware. As noted above, the switching hardwaremay also comprise memory devices that are also part of the memory system, such as a TCAM or other non-volatile memory device storing the MFIB. The routermay be configured to program the switching hardwarebased on the centralized database. In other words, the data stored in centralized databasecontrols how the switching hardwareoperates to forward data, for example controlling which outgoing interfaces will have certain data forwarded to them. More specifically, the MFIB controls which outgoing interfaces will have multicast data forwarded to them, and the MFIB may be programmed based on the contents of the MRIB in the centralized database. Other forwarding tables may also be used to control forwarding of other types of data, such as a unicast FIB for unicast data.
Portsand ISL interfaceare provided for communication between the routerand other network devices. As further explained herein, the ISL interfaceprovides for communication between peer routersand is configured to be connected to a peer router to establish an ISL with the peer router. Although only one interfaceis illustrated, it should be understood that the ISL may be formed via multiple interfaces (e.g., multiple ports). The portsmay provide, for example, upstream and downstream physical interfaces to allow for communication between the peer routersand other network devices. The plurality of portsare configured to be couplable to one or more downstream devices to establish downstream links with the downstream devices, such as the linksorin. Due to virtualization, the links (e.g.,or) do not necessarily correspond to the portson a one-to-one basis (e.g., a single portcould carry multiple links). References herein to an “interface” should be understood as broadly including both virtual interfaces (e.g., a VLAN) and physical interfaces (e.g., a physical port), unless specifically indicated otherwise. Although the ISL interfaceis illustrated separately from the ports, in some examples the ISL interfacemay be the same, physically, as the ports. In some examples, any portcould be used to establish the ISL interface, whereas in other examples a dedicated portis reserved for the ISL interface. In still other examples, the ISL interfaceis physically different from the ports(e.g., the portsmay be configured for one protocol, whereas the ISL interfacemay be configured for another protocol).
The resource optimization processormay be any combination of hardware (e.g., a processor such as an integrated circuit or other circuitry) and software (e.g., machine or processor-executable instructions, commands, or code such as firmware, programming, or object code) to implement the functionalities of the processoras described herein. This hardware and/or software that constitute (or instantiates) the resource optimization processormay also be referred to herein as processing circuitry. Further, as used herein, the singular forms “a,” “an,” and “the” include plural referents unless the context clearly dictates otherwise, Thus, for example, the term “processor” is intended to mean at least one processor or a combination of processors. Thus, more than one resource optimization processormay be included. The resource optimization processorof routercan include at least one machine-readable storage medium and at least one computer processor. For example, software that provides the functionality of the processoron routercan be stored on a memory deviceof the routerto be executed by a processor of router.
The resource optimization processoris configured to optimize hardware resources by selectively disabling the ISL between the peer routers (e.g., the ISLin). More specifically, in some examples, the ISL is selectively disabled in response to multicast being enabled on the router. In addition, the resource optimization processoris configured to selectively enable the ISL for certain interfaces based on various conditions. For example, the resource optimization processormonitors the status of the links connected to the routerand the links connected to a peer router coupled to the router, e.g., the linksorof. If the routeris currently acting as the primary router and the resource optimization processorof the routeridentifies a failure in of one of the links coupled to the router, then the resource optimization processor enables the ISL between the routerand a secondary peer router for the failed downstream link to ensure redundancy. In other words, in the context of, if one of the linksto the primary routerA fails, then the ISLis enabled specifically for the interface associated with link, whereas the ISLremains disabled for other interfaces. The resource optimization processoris further configured to determine if the number of failed downstream links to the primary router satisfies a threshold criterion (e.g., equals, exceeds, or equals-or-exceeds a threshold number). When the number of failed links to the primary router is identified as satisfying the threshold, router(which is currently acting as the primary router) and the peer router connected thereto (which is currently acting as the secondary router) switch roles so that the routerbecomes the secondary router and the peer router becomes the primary router. In other words, in the context of, if the number linksthat have failed satisfies the threshold, then the routerB becomes the primary router or DR and the routerA operates as the secondary router or PR. In some examples, the threshold number is half of the total links connected to the primary router.
Example implementations of the operations described above, as well as additional operations that can be performed by the resource optimization processorin some examples, are described in greater detail below with reference to.
Although not shown, the routermay include additional processors, memories, or other hardware and software components. For example, routermay include a PIM module to allow for processing and routing of multicast flow packets received by the router. The PIM modules may, for example, program entries into the MRIB of the centralized databasebased on received PIM messages (e.g., PIM joins).
is a block diagram illustrating details of a routerstoring instructions in accordance with examples described herein. The routermay be one example configuration of the routersanddescribed above. The routerincludes a resource optimization processor, which may be one example configuration of the resource optimization processordescribed above with reference to. Some aspects of the routermay be similar to aspects of the routeralready described above and duplicative description thereof is omitted. The routermay include additional components which are omitted from, such as a PIM module, a memory device storing a central database, and switching hardware, like those described above in relation to the router.
In the example router, the resource optimization processorincludes both a processing resourceand a memory. The resource optimization processormay comprise, or may be instantiated on or by, processing resourceexecuting machine readable instructions to perform operations described herein. The processing resourcemay execute instructions described below to perform the functions described herein.
The memory devicemay be a machine readable storage medium or a non-transitory computer-readable medium and may store instructions,,,, and. As used herein, “machine-readable storage medium” may include a storage drive (e.g., a hard drive), flash memory, Random Access Memory (RAM), any type of storage disc (e.g., a Compact Disc Read Only Memory (CD-ROM), any other type of compact disc, a DVD, etc.) and the like, or a combination thereof. In some examples, a storage medium may correspond to memory including a main memory, such as a Random Access Memory, where software may reside during runtime, and a secondary memory. The secondary memory can, for example, include a non-volatile memory where a copy of software or other data is stored.
The processing resourcemay, for example, be in the form of a central processing unit (CPU), a semiconductor-based microprocessor, a digital signal processor (DSP) such as a digital image processing unit, or other hardware devices or processing elements suitable to retrieve and execute instructions stored in a storage medium such as the memory. The processing resourcemay, for example, include single or multiple cores on a chip, multiple core across multiple chips or devices, or suitable combinations thereof. The processing resourceis configured to fetch, decode, and execute instructions stored in the memoryas described herein.
Instructionsmay be executable by the processing resourceto disable and enable an ISL that connects the routerto a peer router, e.g., ISLof. In some configurations, the ISL is enabled, for example when multicasting is not enabled, in order to support redundancy. However, in examples set forth herein, instructions are provided to initially disable the ISLassuming that all links between the peer devices and downstream devices are active. In some examples, this disabling of the ISL may occur in response to multicast being enabled on the router. In other examples, this disabling of the ISL may occur as a default state regardless of whether multicast is enabled. More particularly, in examples set forth herein, resource optimization processordisables the ISLby enabling IGMP snooping. This may be done on an interface-by-interface basis; thus, disabling the ISL for all interfaces may comprise enabling IGMP snooping for all interfaces, and enabling the ISL for a given interface may comprise turning IGMP snooping off for that particular interface. IGMP snooping is an existing functionality in various multicast enabled devices, but one side effect of IGMP snooping in a VSX context is that, when enabled for a given interface, IGMP snooping prevents the duplication of multicast traffic for that interface to the ISL. Thus, the enabling of IGMP snooping prevents the flood of multicast data over the ISL that might otherwise occur. However, as will be further described below with respect to the methods performed herein, the instructionsalso allow for turning off or disabling IGMP snooping for certain interfaces upon the failure of downstream links in order to ensure the flow of information between the peer routerswhen the flow of information through one of the downstream links,fails to occur. It should be noted that, in examples provided herein, the primary router enables the ISLfor the failed downstream link only and not for the downstream links that remain active. Thus, the secondary or proxy router will publish bridge entries to the MFIB for the failed VLAN only.
Instructionsto monitor downstream links,may be executed by the processing resourcein response to the enabling of IGMP snooping and disabling of the ISL. In examples provided herein, the monitoring of the downstream links may occur through monitoring of a database storing link status. Other methods of monitoring the downstream link status are within scope of the disclosure.
Instructionscause the processing resourceto determine a total number of failed links. More specifically, in some examples provided herein, the processing resourcedetermines a number of failed links from the primary router, e.g., failed linksbetween primary routerA and the downstream devices. However, in some examples, the processing resourceof the secondary routerB also determines a number of failed linksfrom the secondary routerB to the downstream devices.
Instructionscause the processing resourceto compare the number of failed links to a threshold. The threshold may be pre-determined and stored in a database. In some examples, the threshold is a set percentage of existing downstream links between the primary router and the downstream devices. The threshold may, for example, be 50%, but could alternatively be 45% or 55% or any other percentage appropriate to network characteristics. Thus, if five links exist between the primary router and the downstream devices and three of these links have failed as determined by instructions, the instructionswill cause the comparison of 3 out 5 existing links to the threshold of e.g., 50% and determine that the number of failed links meets the predetermined threshold.
Instructionscause the processing resourceto change which router is the primary upon the determination that the number of failed links meets or exceeds the threshold percentage for failed links (per instructions). Accordingly, in examples provided herein, routerB would become the primary router, and the routerA becomes the secondary router. Further, upon switching of the primary router, the instructionsagain disable the ISL for the primary downstream links, for example, by enabling IGMP snooping. The router functioning as the primary router is capable of monitoring both its own downstream links and the downstream links of its peer router. Thus, should links be restored, the router functioning as the primary router detects the restoration. The monitoring may be accomplished through a local or remote database.
As set forth above, both the primary router, e.g.,A and the secondary router, e.g.,B may store and execute the same instructions. However, each routeris aware of its status as secondary or primary and therefore only executes particular instructions when functioning as the primary router. For example, instructions to enable and disable the ISL and change the primary switch are executed by the processing resourceof the primary router. When the primary router makes the determination through instructionsthat the secondary router should become the primary router, then the new primary router assumes control of enabling and disabling the ISL and changing the primary router.
Routerof, which is described in terms of engines containing hardware and software, can include one or more structural or functional aspects of the routerof. The routers,,may be similar to one another. Such similar components may be referred to herein using the same last two digits (for example, memory). These similar components may be configured similarly, except when noted otherwise or where logically contradictory, and thus descriptions herein of such component may be applicable to the other similar components. Accordingly, duplicative descriptions of such components are omitted herein.
is a flow diagram illustrating a methodfor optimizing resources in a multicast network in accordance with examples set forth herein. Methodmay be performed by, for example, router,, or. The methodmay further be performed by a combination of processors. In some examples, the method is performed by one or more processors executing machine readable instructions that comprise, at least in part, instructions corresponding to the operations of method. For discussion purposes, as an example, methodis described as being performed by the routerA while it functions as the primary router.
Methodstarts in step, in which the primary routerA disables the ISLthat connects the primary routerA to its peer routerB. In examples provided herein, routerA disables the ISLby activating IGMP snooping to prevent automatic flooding of received information from the routerA to the routerB over the ISL. RouterA may also be referenced during this step as the designated router (DR) or first router. RouterB may also be referenced during this step as the secondary router, proxy router (PR) or second router.
In step, routerA monitors downstream links, such as linksfrom primary routerA to downstream devicesto detect failure of these links. In examples provided herein, downstream devicesmay report link failure to a system database (not shown) and the routerA accesses the database to identify link failure. In other examples, the downstream devices may report link failure to the routerA or its peer routerB or to both routersA andB. In other examples, the downstream devices may report link failure to other devices in the network. In some examples, the routerA may detect failure of a link directly (e.g., without relying on the report from a downstream device or peer router), for example, by detecting a loss of communications, electrical power, keep alive messages, or other signals associated with the link. The monitoring of the downstream linkincludes identifying a failure of one or more downstream linksand further tracking a percentage or a number of available downstream linksthat have failed.
In step, routerA enables the ISLor changes the primary router based on the status of the downstream links. For example, when routerA identifies at least one failed downstream link, routerA enables ISLfor the failed link to ensure replication and allow the flow of information from primary routerA to secondary peer routerB. It should be noted that, in examples provided herein, primary routerA enables the ISLfor the failed downstream link only and not for the downstream links that remain active. Thus, the secondary or proxy routerB will publish bridge entries to the MFIB for the failed VLAN only. Furthermore, routerA may identify failure of a threshold number or threshold percentage of downstream linksthat have failed and may become secondary based on meeting that threshold. When routerA becomes secondary, peer routerB becomes primary. Peer routerB then performs the same operations described above in its role as the primary router.
is a flow diagram illustrating further details of a methodfor optimizing resources in a multicast networking environment in accordance with examples set forth herein. Methodmay be performed by routers,, or. The methodmay further be performed by a combination of processors. In some examples, the methodis performed by one or more processors executing machine readable instructions that comprise, at least in part, instructions corresponding to the operations of method. For discussion purposes, as an example, methodis described as being performed by router. However, it should be understood that the steps may be performed by a processing engine of router, such as the resource optimization processor.
The methodprovides a more specific example of portions of the method, as well as other operations. Specifically, the methodmay be performed as a more detailed implementation of stepsandof the method. In step, the primary switchA monitors downstream links. primary switchA begins to monitor the downstream linksupon disabling of the ISLas described above with respect to.
Unknown
April 14, 2026
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.