Determining masked backup paths

By determining and evaluating the sharing risks of the main path and the backup path in the network device and selecting backup paths that are not shared or have low sharing risks, the problem of high risk of backup path sharing failure in the prior art is solved, and the reliability and performance of network devices are improved.

CN119697098APending Publication Date: 2025-03-25HEWLETT PACKARD ENTERPRISE DEV LP
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202411863453.7
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2021-03-30
Filing Date
2021-06-21
Publication Date
2025-03-25

AI Technical Summary

Technical Problem

In prior art, when determining backup paths between routers in computer networks, the failure risk associated with the shared network device components is usually not considered, resulting in the backup path that may share a fault packet processor or line card with the main path, increasing the risk of failure of network service communication.

Method used

By determining the main path and multiple candidate backup paths in the processing circuit arrangement of the network device, whether these backup paths meet different priority criteria is preferred, and backup paths that do not share network device components or share components at lower levels in the failure hierarchy are preferred to reduce the risk of failure.

Benefits of technology

This method can effectively reduce the risk of backup path failure when the main path fails, reduce network packet discarding, improve network equipment performance, and accelerate failure recovery.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119697098A_ABST
    Figure CN119697098A_ABST
Patent Text Reader

Abstract

The invention relates to determining a masked backup path. An example network device includes a memory; and processing circuitry configured to: determine a primary path between the network device and a second network device; determining a candidate backup path between the network device and a second network device; in response to determining that a first candidate backup path in the candidate backup paths meets a first priority criterion, selecting the first candidate backup path as a backup path; in response to determining that a second candidate backup path in the candidate backup paths meets a second priority criterion, selecting the second candidate backup path as a backup path; and programming a packet processor of the network device using the primary path and the backup path. The first priority criterion and the second priority criterion may be based on a risk of simultaneous failure of the primary path and a candidate backup path of the plurality of backup paths.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] Divisional Application Instructions

[0002] This application is a divisional application of the Chinese invention patent application with the application date of June 21, 2021, application number 202110686704.9, and name “Determining a Shielded Backup Path”.

[0003] This application claims the benefit of U.S. Patent Application No. 17 / 301,272, filed on March 30, 2021, the entire contents of which are incorporated herein by reference. Technical Field

[0004] The present disclosure relates to computer networks, and more particularly, to determining backup paths between routers in a computer network. Background Art

[0005] A computer network is a collection of interconnected computing devices that can exchange data and share resources. Example network devices include: layer 2 devices, operating within layer 2 of the Open Systems Interconnection (OSI) reference model, i.e., the data link layer; and layer 3 devices, operating within layer 3 of the OSI reference model, i.e., the network layer. Network devices within a computer network typically include a control unit that provides control plane functionality for the network device and a forwarding component for routing or switching data units. In some cases, for example, a network device may include one or more line cards, one or more packet processors, and one or more ports coupled to a switching network, which together may provide a forwarding plane for forwarding network traffic.

[0006] The control plane functions provided by the control unit include: storing the network topology in the form of a routing information base (RIB), executing routing protocols to communicate with peer routing devices to maintain and update the RIB, and providing management interfaces to allow users to access and configure network devices. The control unit maintains routing information that represents the overall topology of the network and defines routes to destinations within the network.

[0007] The control unit derives a forwarding information base (FIB), which includes a plurality of forwarding entries generated by the control unit according to routing information and control information. The control unit installs a forwarding structure in the data plane to programmatically configure the forwarding component. The data and instructions constituting the forwarding entry define an internal forwarding path for each incoming packet received by the network device. For example, in order to generate a routing table lookup forwarding entry, the control unit selects a route defined by the network topology and maps packet key information (such as destination information and other selection information from the packet header) to one or more specific next-hop network devices and ultimately maps to one or more specific output interfaces of the interface card of the network device. In some cases, the control unit can install the forwarding structure into each packet processor to update the forwarding table in each packet processor and control the business forwarding in the data plane. The bifurcated control and data plane functionality allows the forwarding table in each packet processor to be updated without reducing the packet forwarding performance of the network device. Summary of the invention

[0008] In general, the present disclosure describes techniques for determining a backup path from a first network device to a second network device that reduces the risk of failure in network service communications between the first network device and the second network device. A routing protocol process (e.g., a routing protocol daemon (RPD)) of a first network device can determine a primary path and multiple backup paths between the first network device and the second network device. The backup path includes network device components that participate in forwarding packets through the first network device. Examples of such components include line cards, packet processors, and ports. The path between the first network device and the second network device typically includes a line card, a packet processor, and a port that couples the line card to a network medium. The RPD can assign priorities to the backup paths based on which network device components in the primary path (if any) also generate backup paths. In the event of a failure in the primary path, the RPD can reconfigure the network device to use the highest priority backup path.

[0009] An example method includes: determining, by a processing circuit device of a first network device, a primary path between the first network device and a second network device; determining, by the processing circuit device, a plurality of candidate backup paths between the first network device and the second network device; determining, by the processing circuit device, whether a first candidate backup path among the plurality of candidate backup paths satisfies a first priority criterion; in response to determining that the first candidate backup path satisfies the first priority criterion, selecting the first candidate backup path as a backup path for the primary path; in response to determining that the first candidate backup path does not satisfy the first priority criterion, determining whether a second candidate backup path among the plurality of candidate backup paths satisfies a second priority criterion, wherein the first priority criterion and the second priority criterion are based at least in part on corresponding risks of simultaneous failure of the primary path and candidate backup paths among the plurality of backup paths, in response to determining that the second candidate backup path among the plurality of candidate backup paths satisfies the second priority criterion, selecting the second candidate backup path as the backup path for the primary path instead of selecting the first candidate backup path; and programming one or more packet processors of the first network device with either or both of the primary path and the backup path.

[0010] An example network device includes: a memory; and a processing circuit device, the processing circuit device being configured to: determine a primary path between a first network device and a second network device; determine multiple candidate backup paths between the first network device and the second network device; determine whether a first candidate backup path among the multiple candidate backup paths satisfies a first priority criterion; in response to determining that the first candidate backup path among the multiple candidate backup paths satisfies the first priority criterion, select the first candidate backup path as a backup path; in response to determining that the first candidate backup path does not satisfy the first priority criterion, determine whether a second candidate backup path among the multiple candidate backup paths satisfies a second priority criterion, wherein the first priority criterion and the second priority criterion are based at least in part on corresponding risks of simultaneous failure of the primary path and the candidate backup paths among the multiple backup paths, in response to determining that the second candidate backup path among the multiple candidate backup paths satisfies the second priority criterion, select the second candidate backup path as the backup path instead of selecting the first candidate backup path; and program one or more packet processors of the first network device with either or both of the primary path and the backup path.

[0011] An example computer-readable medium includes instructions that, when executed, cause a processing circuit device of a first network device to perform the following: determine a primary path between the first network device and a second network device; determine a plurality of candidate backup paths between the first network device and the second network device; determine whether a first candidate backup path among the plurality of candidate backup paths satisfies a first priority criterion; in response to determining that the first candidate backup path among the plurality of candidate backup paths satisfies the first priority criterion, select the first candidate backup path as a backup path; in response to determining that the first candidate backup path does not satisfy the first priority criterion, determine whether a second candidate backup path among the plurality of candidate backup paths satisfies a second priority criterion; in response to determining that the second candidate backup path among the plurality of candidate backup paths does not satisfy the first priority criterion, select the first candidate backup path as a backup path; In response to determining that the second candidate backup path among the multiple candidate backup paths does not satisfy the second priority criterion, determining whether a third candidate backup path among the multiple candidate backup paths satisfies the third priority criterion; in response to determining that the third candidate backup path satisfies the third priority criterion, selecting the third candidate backup path as the backup path, wherein the first priority criterion, the second priority criterion, and the third priority criterion are at least partially based on corresponding risks of simultaneous failure of the primary path and the candidate backup paths among the multiple backup paths; and programming one or more packet processors of the first network device with either or both of the primary path and the backup path.

[0012] The details of one or more examples are set forth in the accompanying drawings and the description below. Other features, objects, and advantages will be apparent from the description, drawings, and claims. BRIEF DESCRIPTION OF THE DRAWINGS

[0013] Figure 1 A system with network devices operating according to the techniques described in this disclosure is illustrated.

[0014] Figure 2 is a block diagram illustrating an example network device that determines a backup path according to the techniques described in this disclosure.

[0015] Figure 3 A more detailed diagram Figure 1 and 2 A block diagram of an example of a network device.

[0016] Figure 4 is a flow chart of an example method of determining a backup path according to the techniques described in this disclosure.

[0017] Figure 5 is a conceptual diagram of an example user interface output for a network device having an IS-IS LFA interface, in which a backup path is determined according to the techniques described herein.

[0018] Figure 6 is a conceptual diagram of an example user interface output of a network device having a PIM MoFRR interface, in which a backup path is determined according to the techniques described herein.

[0019] Figure 7 is a flow chart of another example method of determining a backup path according to the techniques disclosed herein. DETAILED DESCRIPTION

[0020] The techniques described herein determine one or more backup paths of a primary path from a network device to another network device. A routing protocol process (e.g., an RPD) of a network device can determine a primary path and multiple backup paths between a first network device and a second network device. The primary path and the backup paths include network device components within the network device that are involved in forwarding packets through the network device. For example, a path between a network device and another network device typically includes a line card, a packet processor, and a port that couples the line card to a network medium. As above, the RPD can assign priorities to backup paths based on which network device components in the primary path (if any) also generate backup paths. In the event of a failure in the primary path, the network device can implement a local repair mechanism that reconfigures the network device to use the highest priority backup path.

[0021] As an example, a network device may determine a primary path including a line card, a packet processor, and a port, wherein the line card, the packet processor, and the port may be in an object that will be referred to as a fault hierarchy. In such a hierarchy, a network device component failure at one level of the hierarchy causes a failure in the ability of a network component device lower in the hierarchy to transmit network packets. For example, a line card may include one or more packet processors, such as a packet forwarding engine (PFE). A packet processor may process network packets for transmission through a port on a line card. In this example, the line card is at the highest level of the hierarchy, the packet processor is at the middle level of the hierarchy, and the port is at the lowest level of the hierarchy. A failure of a line card causes any packet processor and any port associated with those packet engines to be unable to transmit network packets. A failure in a packet processor causes any port associated with a packet engine to be unable to transmit network packets. However, other packet processors on the line card may still function and may be able to transmit packets through their associated ports. A failure in a port affects only that port. Other ports associated with a packet processor may still be able to transmit network packets, and ports associated with other packet processors may still be able to transmit network packets.

[0022] Therefore, when a shared line card fails, a backup path that shares a line card with the primary path may fail, but if the backup path uses a different line card, then the backup path will not fail. When a shared packet processor fails, a backup path that shares a packet processor may fail, but if the backup path uses a different packet processor on the same line card, then the backup path will not necessarily fail. If a port fails, then a backup path that shares a port may fail, but if it is assigned a different port, even if the different ports are associated with the same packet engine, then the backup path will not necessarily fail.

[0023] According to the technology described herein, backup paths are selected with a preference for paths that do not share network device components, or if shared, do so at a lower level in the hierarchy. In the event of a failure in the primary path, the backup path with the highest priority is selected to replace the primary path. The highest priority backup path is unlikely to share any network device components, or if the highest priority backup path does share network device components, does so at a lower level in the failure hierarchy.

[0024] Current network devices generally do not consider the risk of failure associated with shared network device components when determining a backup path for a primary path. Instead, current systems generally select a "suboptimal" path as a backup path. However, the suboptimal path may share network device components with the primary path so that a failure in the primary path may also cause a failure in the backup path. The technology described herein may provide a technical advantage over such current systems. For example, current network devices may use a heuristic to determine the "best path" to a network destination. Additionally, network devices may use the same or similar heuristics to determine the "suboptimal" path as a backup path. The primary path and the backup path may be programmed into a packet processor. However, the heuristics used by current network devices may calculate the primary path and the backup path using the same packet processor. In the case of a failure in the packet processor used in the primary path, the network device will attempt to use the backup path, regardless of whether the network device is on the same packet processor as the primary path. Because both the primary path and the backup path share a faulty packet processor, there may be no available path currently calculated for the network destination. Therefore, the current network device must recalculate the primary path and the backup path, which may take an undesirable amount of time and also result in lost packets. Therefore, if the backup path shares a packet processor or line card with the primary path and the shared resource fails, the purpose of having a predefined backup path may be defeated.

[0025] The technology described herein preferentially selects backup paths that do not share network device components or share network device components at a lower level in the fault hierarchy described above. Therefore, the failure of the network device component in the primary path is unlikely to be the cause of the failure in the backup path. This situation can result in discarding fewer network packets, thus improving network device performance. Further, because the network device may not need to try multiple backup paths in order to re-establish communication with another network device, the recovery from the failure in the primary backup path can be faster, thereby further improving network device performance.

[0026] Figure 1 is a block diagram illustrating an example network environment in which the network includes network devices configured according to the techniques described in this disclosure. Figure 1 A simplified network environment 100 is depicted in which a network device 102 (sometimes referred to as a "core router") communicates with edge routers 104A and 104B (collectively, "edge routers 104") to provide customer networks 106A to 106C (collectively, "customer networks 106") with access to a network 108. The network 108 may be, for example, a service provider network or a cloud computing network.

[0027] Although not illustrated, network 108 may be coupled to one or more networks managed by other providers, and thus may form part of a large-scale public network infrastructure (e.g., the Internet). Therefore, customer network 106 may be considered an edge network of the Internet. Network 108 may provide access to the Internet to computing devices within customer network 106, and may allow computing devices within customer network 106 to communicate with each other. In another example, service provider network 108 may provide network services within the core of the Internet. As another example, network 108 may provide services (e.g., cloud computing services, etc.) to computing devices with customer network 106. In either case, network 108 may include various network devices (not shown) other than router 102 and edge router 104, such as additional routers, switches, servers, or other devices.

[0028] In the illustrated example, edge router 104A is coupled to customer network 106A via access link 110A, and edge router 104B is coupled to customer networks 106B and 106C via additional access links 110B and 110C. Customer network 106 may be a network for geographically separated sites of an enterprise. Customer network 106 may include one or more computing devices (not shown), such as personal computers, laptops, handheld computers, workstations, servers, switches, printers, customer data centers, or other devices. Figure 1The configuration of the network environment 100 illustrated in FIG. 1 is merely an example. The service provider network 108 may be coupled to any number of customer networks 106. Nevertheless, for ease of description, an example number of customer networks 106A to 106C are shown in FIG. Figure 1 Many different types of networks besides network 108 may employ instances of router 102, including customer / enterprise networks, transport networks, aggregation or access networks, etc. Network traffic may flow, for example, from one customer network 106A through network device 102 to another customer network 106C.

[0029] In addition to communicating with edge routers 104, network device 102 may also communicate with other network devices (e.g., other core routers, switches, etc.) for communication within network 108. Network device 102 may exchange routing information with edge routers 104 and / or controller 112 in order to maintain an accurate representation of the topology of network environment 100. As described below, network device 102 may be comprised of multiple cooperating routing components that operate as a single node within service provider network 108. Network device 102 includes a chassis ( Figure 1 The chassis (not shown) couples together various internal routing components such as line cards, switch fabric cards, packet processors, routing engine cards, etc. The line cards may be flexible physical interface cards (PIC) concentrators (FPCs), dense port concentrators (DPCs), and modular port concentrators (MPCs). The network device 102 may determine internal paths to edge routers 104 and other core routers that utilize these internal routing components. A routing protocol process (e.g., a daemon (RPD)) on the network device 102 may determine line cards, packet processors, and ports as primary paths for the internal routing components to use when forwarding network packets to the next hop (e.g., another core router or edge router 104). In some aspects, the RPD may use various heuristics to determine the "best path" as the primary path. The RPD may also use the techniques described herein to determine a backup path.

[0030] From time to time, one of the internal routing components of the primary path through network device 102 may fail (i.e., become unable to process network traffic and forward it to the next hop through network device 102). In this case, the network device may begin using a backup path for forwarding network packets to the next hop.

[0031] In the illustrated example, the service provider network 108 includes a controller 112. In some examples, the controller 112 may include a software-defined networking controller. The controller 112 may monitor the service provider network 108 and provide an interface for an administrator to configure and / or monitor devices (e.g., network devices 102, edge routers 104, etc.) within the service provider network 108. In some examples, the controller 112 may perform diagnostic functions and display the health of the network 108 in a graphical user interface to facilitate maintenance of the network 108. In other examples, the controller 112 may advertise the topology of the network 108 and / or perform path calculations based on the topology of the network 108 and advertise routing updates to devices within the network 108.

[0032] Figure 2 2 is a block diagram illustrating an example network device that determines a backup path according to the principles described in the present disclosure. In this example, the network device 200 includes a control unit 201 that provides control plane functionality for the device. The network device 200 may be an example of the network device 102 and the edge router 104. Figure 2 In the example illustrated in , the network device 200 includes a line card A 204A and a line card B 204B (collectively referred to as "line cards 204"). Line cards 204A and 204B each include two forwarding components in the form of example packet processors 206A to 206B and packet processors 206C to 202D (collectively referred to as "packet processors 206"). Packet processors 206 receive and transmit data packets via associated ports 208A to 208D of line cards 204A and 204B. Each of ports 208A to 208D can be associated with a corresponding packet processor in packet processors 206. Each packet processor 206 and its associated port 208 can reside on a separate line card of the network device 200. As above, line cards 204 can be PICs, FPCs, DPCs, MPCs, or other types of forwarding units. Each port 208 may include interfaces for various combinations of Layer 2 (L2) technologies, including Ethernet, Gigabit Ethernet (GigE), and Synchronous Optical Networking (SONET) interfaces. Figure 2 The number of line cards 204, packet processors 206, and ports 208 of the network device 200 shown in FIG. 2 is merely an example. A network device may have more than Figure 2 A greater or lesser number of line cards 204, packet processors 206, and ports 208 than shown.

[0033] As packets traverse the internal architecture of network device 200, packet processor 206 processes the packets by performing a series of operations on each packet via a corresponding internal packet forwarding path. Packet processor 206 may include hardware and / or software packet processors that examine the contents of each packet (or another packet property, such as the incoming interface) to make forwarding decisions, apply filters, and / or perform accounting, management, traffic analysis, and / or load balancing. The results of the packet processing determine the manner in which the packet is forwarded or otherwise processed by packet processor 206 to an associated port 208.

[0034] The control unit 201 can communicate via an internal communication link ( Figure 2 The control unit 201 may include one or more processors (not shown) connected to each packet processor 206. For example, the internal communication link may include a 100 Mbps Ethernet connection. Figure 2 ), the one or more processors execute software instructions, such as those used to define software or computer programs, which are stored on a computer-readable storage medium (also, Figure 2 ), such as a non-transitory computer-readable medium, including a storage device (e.g., a disk drive or an optical drive) and / or a memory (such as a random access memory (RAM), including various forms of dynamic RAM (DRAM), such as DDR2 SDRAM, or static RAM (SRAM)), flash memory, another form of fixed or removable storage medium (which can be used to carry or store the required program code and program data in the form of instructions or data structures and can be accessed by the processor), or any other type of volatile or non-volatile memory (which stores instructions to enable one or more processors to perform the techniques described herein). Alternatively or additionally, the control unit 201 may include dedicated hardware, such as one or more integrated circuits, one or more application specific integrated circuits (ASICs), one or more application specific processors (ASSPs), one or more field programmable gate arrays (FPGAs), or any combination of one or more of the foregoing dedicated hardware examples, for performing the techniques described herein.

[0035] The control unit 201 may include a routing protocol daemon (RPD). The RPD may determine line cards, packet processors, and ports as the primary path of the internal routing components to be used when forwarding network packets to the next hop (e.g., another core router or edge router 104). In some aspects, the RPD may use various heuristics to determine the "best path" as the primary path. The primary may be programmed into the packet processor, such as in a forwarding table used by the packet processor. If there is a failure in the primary path, the RPD may use the techniques described herein to determine a backup path with a relatively low risk of failure. For example, one of the internal routing components of the primary path through the network device 102 may fail from time to time (i.e., become unable to process network traffic and forward network traffic to the next hop through the network device 102). The packet processor may forward packets to the next hop using the backup path.

[0036] exist Figure 2 In the example illustrated in , the RPD of the network device 102 has used known techniques to select path 212A as the primary path to reach the router 202 via the network 108. Path 212A includes line card 204A, packet processor 206A, and port P0 208A. In addition, the RPD has determined three candidate backup paths 212B to 212D. Based on whether the candidate backup path meets the selection criteria of the priority, the candidate backup path can have a priority assigned to it. In some aspects, there can be three priorities, each with its own selection criteria. The three priorities are associated with the risk that the candidate backup path will also fail if the primary path fails. The first priority has a selection criterion that specifies that the primary path and the candidate backup path may both fail only when the network device itself fails. The second priority has the following selection criteria: if the primary path and the candidate backup path share a failed line card, then the primary path and the candidate backup path may both fail. The third priority has the following selection criteria: if the primary path and the candidate backup path share a failed packet processor, then the primary path and the candidate backup path may both fail. The priorities may be ordered based on the risk of both the primary path and the candidate backup path failing. For example, a first priority is associated with a relatively low risk of both the primary path and the backup path failing if a network device fails. A second priority is associated with a higher risk than the first priority because there is a risk that both the primary path and the backup path may fail if a network device or a shared line card fails. A third priority is associated with a higher risk than the second priority and the first priority because there is a risk that both the primary path and the backup path may fail if any of the shared packet processors, the shared line cards, or the network device itself fails.

[0037] Therefore, in Figure 2In the example illustrated in , candidate backup path 212D meets the selection criteria of the first priority because the path does not share line cards or packet processors with primary path 212A. That is, candidate backup path 212D utilizes line card 204B, packet processor 206C, and port P0 208D. None of these internal routing components are shared with primary path 212A, so both primary path 212A and candidate backup path 212D typically fail only when network device 200 fails.

[0038] exist Figure 2 In the example illustrated in , candidate backup path 212C meets the selection criteria of the second priority because, although the path shares line card 204A with primary path 212A, candidate backup path 212C utilizes packet processor 206B, which is different from packet processor 206A used by primary path 212A. Therefore, if either network device 200 or shared line card 204A fails, both primary path 212A and candidate backup path 212C may fail, but if packet processor 206A fails, candidate backup path 212C may not necessarily fail.

[0039] exist Figure 2 , candidate backup path 212B satisfies the selection criteria of the third priority because candidate backup path 212B shares line card 204A and packet processor 206A with primary path 212A. Therefore, if any of packet processor 206A, line card 204A, or network device 200 fails, it is likely that both primary path 212A and candidate backup path 212B will fail. In this example, primary path 212A and candidate backup path 212B share a line card and packet processor, but have different ports associated with the same packet processor (ports P0 208A and P1 208B, respectively).

[0040] In this example, the RPD or protocol implementing the techniques described herein selects candidate backup path 212D as the backup path because it is the highest priority candidate backup path. The RPD can program packet processors 206A and 206C using primary path 212A and backup path 212D, respectively. If an internal routing component along primary path 212A fails, packet processing can be performed via backup path 212D.

[0041] In some aspects, the selection of a backup path as disclosed herein can be responsive to an event. As an example, the network device 200 can select a backup path using the techniques disclosed herein in response to learning the route of another network device via a routing protocol, such as an interior gateway protocol (IGP). Further, the network device 200 can select a backup path in response to the addition of a resource, such as a new line card or a new packet processor.

[0042] In some aspects, as part of the configuration of the network device 200, the technology for selecting a backup path as disclosed herein can be enabled or disabled. For example, as a default, the network device can enable the backup path selection as disclosed herein, and provide the administrator with the option of disabling the use of the backup path selection technology. For example, the administrator may wish to avoid using additional functions and checking to load the network device 200. In this case, the administrator can disable the enhanced backup path selection technology disclosed herein, and the network device 200 can revert to the traditional backup path selection technology, or the backup path calculation can be avoided completely. In some aspects, there can be two levels of configuration. The first level determines whether link protection or node protection is enabled, and the second level determines whether the enhanced backup path selection technology disclosed herein is used or whether other (possibly conventional) backup path selection technology is used. Similarly, if link protection or node protection is enabled for the network device 200, the backup selection technology disclosed herein can be enabled by default.

[0043] The line cards 204 and packet processors 206 may have identifiers associated therewith (in Figure 2 200). The identifier may be a numeric or alphanumeric identifier. In some aspects, the identifier may be unique within the network device 200. In some aspects, the identifier may be unique within the network system 100. In some aspects, the packet processor 206 discovers the identifier of the line card 204 and forwards the identifier to the RPD of the control unit 201 for determining the backup path.

[0044] The identifier can be used to determine whether the candidate backup path shares an internal routing component with the primary path. For example, the RPD or protocol can compare the identifiers of the internal routing components of the primary path and the backup path. If the identifiers are the same, then the RPD or protocol can determine that the primary path shares an internal routing component with the candidate backup path.

[0045] In some aspects, as part of link state protocol communication, control unit 201 can forward the identifier to other network devices, such as router 202. For example, the identifier can be announced to other devices in the internal gateway protocol (IGP) domain. These other network devices can use the identifier to calculate the expected path between network devices that share this identifier. As an example, the identifier can be announced in a "constrained shortest path first" (CSPF) algorithm to determine the path between network devices, such as determined by an inlet network device, a network controller, or a path calculation engine (PCE). This situation may be beneficial in a network deployment with different suppliers or platforms across different network devices.

[0046] Figure 3 A more detailed diagram Figure 2 2. In this example, a control unit 201 provides a control plane 300 operating environment for executing various user-level daemons, such as RPD 306 executing in user space 302. The control plane 300 may provide routing plane, service plane, and management plane functionality for the network device 200. Various examples of the control unit 201 may include Figure 3 Additional daemons not shown in the figure perform other control, management, or service plane functionality and / or drive and otherwise manage data plane functionality of the network device 200.

[0047] The RPD 316 operates via or interacts with the kernel 310, which provides a runtime operating environment for user-level processes. The kernel 310 may include, for example, a UNIX operating system derivative, such as Linux or Berkeley Software Distribution (BSD). The kernel 310 provides libraries and drivers through which the RPD 306 can interact with the underlying system. The line card interface 322 of the kernel 310 includes a kernel-level library through which the RPD 306 and other user-level processes or user-level libraries can interact with the packet processor 206. The line card interface 322 may include, for example, a socket library for communicating with the packet processor 206 via a dedicated network link.

[0048] The hardware environment 312 of the control unit 201 includes a microprocessor 314, which executes the operation from the storage device ( Figure 3 is loaded into main memory ( Figure 3310 and the user space 302 of the control unit 201. The microprocessor 314 may include one or more general or special-purpose processors, such as a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a field programmable gate array (FPGA), or any other equivalent logic device. Therefore, the term "processor" or "controller" as used herein may refer to any one or more of the aforementioned structures, processing circuit devices, or any other structures operable to perform the techniques described herein.

[0049] The RPD 306 executes one or more internal and / or external routing protocols 320 to exchange routing information with other network devices and stores the received routing information in a routing information base 316 ("RIB 316"). The RIB 316 may include information defining the topology of the network, including one or more routing tables and / or link state databases. The RPD 306 parses the topology defined by the routing information in the RIB 316 to select or determine one or more active routes through the network, and then installs these routes into a forwarding information base (FIB) 318. As used herein, the information in the RIB 316 used to define each route is referred to as a "route entry." Typically, the RPD 306 generates the FIB 318 in the form of a radix or other lookup tree to map packet information (e.g., header information with destination information and / or a label stack) to the next hop and ultimately to the interface port of the line card 204 associated with the corresponding packet processor 206.

[0050] In some aspects, RPD 306 can implement the techniques described herein to select a backup path from candidate backup paths. In some aspects, protocol 320 can implement the techniques described herein to select a backup path from candidate backup paths. In some aspects, RPD 306 and protocol 320 can collaborate to implement the techniques described herein to select a backup path from candidate backup paths. Figure 3 In the example shown in , protocols that may implement the techniques described herein include IGP 331, Resource Reservation Protocol (RSVP) 332, Protocol Independent Multicast (PIM) 334, PIM-only Multicast Fast Reroute (MoFRR) 336, and Intermediate System to Intermediate System (ISIS) Loop-Free Alternative (LFA) 338. Figure 3 Other protocols not shown may also implement the techniques described herein.

[0051] Packet processor 206 implements data plane 328 (also referred to as "forwarding plane") functionality to handle traffic from the ingress interface where the packet is received to the egress interface (eg, port 208, Figure 2) packet processing. The data plane 328 determines data packet forwarding through the network device 200, applies services, rate limits packet flows, filters packets, and processes packets using forwarding tables 332 installed by the control plane 300 to the data plane 328. The RPD 306 can program the primary and backup paths in the appropriate forwarding tables 332 of the packet processor 206 using the line card interface 322 to communicate the primary and backup paths to the packet processor 206A. The line card 204A may include a microprocessor 330 that can execute a microkernel to provide an operating environment for processing packets through the packet processor 206.

[0052] As packets traverse the internal architecture of the network device 200, each packet processor in the packet processor 206 processes the packets by performing a series of operations on each packet via a corresponding internal packet forwarding path. For example, the packet processor 206A may include one or more configurable hardware chips (e.g., chipsets) that, when configured by an application executing on the control unit 201, define the operations to be performed on the packets received by the packet processor 206A. In some examples, each chipset may represent a "packet forwarding engine" (PFE). Each chipset may include different chips, each chip having specialized functions such as queuing, buffering, interfacing, and lookup / packet processing. Each chip may represent an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), or other programmable hardware logic. A single line card may include one or more packet processors 206.

[0053] For example, operations may be performed on each packet by any of the corresponding ingress interfaces, packet processors 206, egress interfaces, or other components of the network device 200, to which the packets are directed before egress, such as one or more service cards. The packet processor 206 processes the packets to identify the packet properties and performs actions bound to the properties. Each packet processor 206 includes forwarding path elements, which, when executed, cause the packet processor to check the contents of each packet (or another packet property, such as an incoming interface), and make forwarding decisions on this basis, apply filters, and / or perform, for example, accounting, management, business analysis, and load balancing. In one example, each packet processor 206 arranges the forwarding path elements as next hop data, which can be linked together as a series of "hops" along the internal packet forwarding path (e.g., main path) of the network device in the forwarding topology. The result of the packet processing determines the way in which the packet is forwarded or otherwise processed by the packet processor 206 from its input interface to (at least in some cases) one of its output interfaces (e.g., ports 208).

[0054] The packet processor 206 may include a lookup data structure (e.g., forwarding table 332) to perform a lookup operation, such as a tree (or thread) search, a table (or index) search, a filter determination and application, or a rate limiter determination and application. The lookup operation locates a routing entry that matches the packet content or another property of the packet or packet flow (such as the inbound interface of the packet). The routing entry can be used to determine the port for forwarding the network packet to the next hop.

[0055] The line card 204A and / or the packet processor 206A may communicate information about the components of the data plane 328 to the RPD 306 via the line card interface 322. For example, the packet processor 206A may communicate the maximum transmission unit (MTU), encapsulation type, etc. to the RPD 306, which may store the information using various conventional data objects such as the if_link data object 345, the if_device data object 346, and / or the if_family data object 347. As above, the line card 204 and the packet processor 206 may have identifiers associated therewith (in Figure 2 ), these identifiers can be used to determine whether the candidate backup path shares internal routing components with the primary path. The line card 204 and / or the packet processor 206 can discover the identifiers of the line card 204 and the packet processor 206, and can forward the identifiers to the RPD of the control unit 201 for use in determining the backup path. In some embodiments, the if_link data object 345, the if_device data object 346, and / or the if_family data object 347 can be modified to include the line card identifier and the packet processor identifier. The line card 204A and / or the packet processor 206A can use an inter-process communication facility (such as a socket) to communicate information to the RPD 306 via the line card interface 322.

[0056] Although Figure 3 Only line card 204A is shown in detail, but each line card 204 includes similar components that perform substantially similar functionality.

[0057] Figure 44 is a flowchart of an example method for determining a backup path according to aspects of the technology described in the present disclosure. The RPD receives a line card ID and a packet processor ID from a line card and / or a packet processor on a network device (402). The RPD or a protocol used by the RPD determines a primary path and a set of candidate backup paths (404). The RPD determines whether there is a candidate backup path in the set of candidate backup paths that meets the criteria of the first priority (406). For example, the RPD may compare the line card ID and packet processor ID of the line card and packet processor in the primary path with the line card ID and packet processor ID of the line card and packet processor in the set of candidate backup paths. If there is a candidate backup path with a line card ID and a packet processor ID, where both the line card ID and the packet processor ID are different from the line card ID and the packet processor ID of the primary path, then the candidate backup path meets the criteria of the first priority and can be selected as a backup path (the "yes" branch of 406). The RPD can program the appropriate packet processor with the primary path and the backup path of the first priority (408).

[0058] If there is no candidate backup path that meets the criteria of the first priority (the "No" branch of 406), then the RPD can next determine whether there is a candidate backup path that meets the criteria of the second priority in the candidate backup path set (410). For example, the RPD can compare the line card ID and packet processor ID of the line card and packet processor in the primary path with the line card ID and packet processor ID of the line card and packet processor in the candidate backup path set. If there is a candidate backup path that has the same line card ID in the primary path as the line card ID in the candidate backup path, but the packet processor IDs of the primary path and the backup path are different, then the candidate backup path meets the criteria of the second priority. The candidate backup path can be selected as the backup path (the "Yes" branch of 410). The RPD can program the appropriate packet processor using the primary path and the backup path of the second priority (412).

[0059] If there is no candidate backup path that meets the criteria of the first priority or the criteria of the second priority (the "No" branch of 410), then the RPD can next determine whether there is a candidate backup path that meets the criteria of the third priority in the candidate backup path set (414). For example, the RPD can compare the line card ID and packet processor ID of the line card and packet processor in the primary path with the line card ID and packet processor ID of the line card and packet processor in the candidate backup path set. If there is a candidate backup path that has the same line card ID and packet processor ID as the line card ID and packet processor ID in the primary path, but a different port ID, then the candidate backup path meets the criteria of the third priority. The candidate backup path can be selected as the backup path (the "Yes" branch of 414). The RPD can program the appropriate packet processor using the primary path and the backup path of the third priority (416).

[0060] If there is no candidate backup path that meets the first priority criteria, the second priority criteria, or the third priority criteria (the "NO" branch of 414), then the RPD can determine that no backup plan is available to be provisioned for the destination next hop and allow the backup path of the primary path to remain unprovisioned (418).

[0061] In some cases, there may be multiple candidate backup paths that meet a given priority criterion. In this case, network device 200 can use various factors to select one of the backup paths that meet the given priority criterion. As an example, network device 200 can select the backup path with the lowest index number, the backup path that is calculated first, the backup path that uses the line card or packet processor with the lowest (or highest) identifier, etc.

[0062] As above, an administrator can configure a network device to implement link protection or node protection, and can enable or disable backup path selection using the techniques described herein. In some aspects, when node protection or link protection is selected for a network device, backup path selection using the techniques described herein is enabled by default. Figure 5 and 6 Illustrated is the output of a command line interpreter (CLI) based user interface showing example configuration outputs for different use cases of the techniques described herein.

[0063] Figure 5 is a conceptual diagram of an example user interface output of a network device having an IS-IS LFA interface, in which a backup path is determined according to the techniques described herein. Figure 5In the example output 500 illustrated in FIG. 1 , an administrator or other user issues a "run show isis interface details" command. The example output 500 shows the configuration details of the loopback interface 502 and two Ethernet interfaces, interface 504 and interface 506. As can be seen in the example output, the Ethernet interface 504 has been configured with link protection. Further, the output portion 508 indicates that the enhanced backup path selection technology as described herein is enabled for the Ethernet interface 504. In this example, the output portion 508 indicates that the enhanced protection is "LC level", thereby indicating that the backup path meets the criteria of the first priority and the backup path will only fail if the network device fails. Alternatively, the indication of "PFE level" will indicate that the backup path meets the criteria of the second priority, and if the line card fails, both the primary path and the backup path may fail. As a further alternative, the indication of "enhanced protection" without a level indicator may indicate that the backup path meets the criteria of the third priority and if the packet processor fails, the backup path may fail. In this example, interfaces 502 and 506 are not configured for link protection.

[0064] Figure 6 is a conceptual diagram of an example user interface output of a network device having a PIM MoFRR interface, in which a backup path is determined according to the techniques described herein. Figure 6 In the example output 600 illustrated in FIG. 1 , an administrator or other user issues a "run show pim join extensive". The example output 600 shows various configuration details of an interface using the PIM protocol. As can be seen in the example output, the interface has been configured with link protection. Further, output portion 602 indicates that the enhanced backup path selection technique as described herein is enabled for the interface. In this example, output portion 602 indicates that the enhanced protection is "LC level", indicating that the backup path meets the criteria of the first priority and that the backup path will only fail if a network device fails.

[0065] Another use case (not shown) involves the RSVP protocol. RSVP characterizes network nodes (i.e., network devices) as ingress nodes, transit nodes, and egress nodes. In some aspects, the techniques described herein can be implemented on ingress nodes to select bypass label switching paths (LSPs) and detour LSPs. Similarly, the techniques described herein can be implemented on transit nodes for selecting bypass LSPs.

[0066] RSVP can be used for Multi-Protocol Label Switching (MPLS). In MPLS traffic engineering, Shared Risk Link Groups (SRLGs) can be defined. An SRLG is a set of links that share a common resource, which, if failed, will affect all links in the set. These links share the same risk of failure and are therefore considered to belong to the same SRLG. For example, links that share a common fiber are said to be in the same SRLG because a failure of the fiber may cause all links in the group to fail.

[0067] A link may belong to more than one SRLG. The SRLG of a path in an LSP is the set of SRLGs of all the links in the path. When calculating the secondary path of an LSP, it is preferred to find a path such that the secondary path does not have any links in common with the primary path, in case the SRLGs of the primary and secondary paths are disjoint. This ensures that a single point failure on a particular link does not disrupt both the primary and secondary paths in the LSP.

[0068] When SRLG is configured, the device uses the Constrained Shortest Path First (CSPF) algorithm and attempts to keep the links used for the primary and secondary paths mutually exclusive. If the primary path fails, the CSPF algorithm calculates the secondary path by trying to avoid sharing any SRLG links with the primary path. Additionally, when calculating the path for the bypass LSP, CSPF attempts to avoid sharing any SRLG links with the protected links. The CSPF algorithm can be modified to calculate the bypass LSP using the techniques described herein, where the primary and secondary links are mutually exclusive and links that share resources with the protected links are avoided.

[0069] In some aspects, if the administrator has determined constraints on the backup path selection, then these constraints will take precedence over the backup path selection according to the techniques described herein. For example, the administrator may have configured interface management group constraints, explicit routing object (ERO) constraints, or shared risk link group (SRLG) constraints. In this case, these administrator-created constraints can take precedence over the backup path selection as described herein.

[0070] In some aspects, techniques may be used to automatically determine and configure SRLGs. In current systems, administrators typically use manual methods to define SRLGs. The techniques described herein may be used to automatically analyze a network system for shared resources and define SRLGs accordingly.

[0071] Figure 77 is a flowchart of another example method for determining a backup path according to the technology disclosed herein. A network device may determine a primary path between a first network device and a second network device (705). Next, the network device may determine a plurality of candidate backup paths between the first network device and the second network device (710). Next, the network device may determine whether a first candidate backup path among the plurality of candidate backup paths satisfies a first priority criterion (715). If the first candidate backup path satisfies the first priority criterion (the "yes" branch of 715), then the network device may select the first candidate backup path as a backup path for the primary path (720). If the first candidate path does not satisfy the first priority criterion (the "no" branch of 715), then the network device may determine whether a second candidate backup path among the plurality of candidate backup paths satisfies the first priority criterion (725). If a second candidate backup path among the plurality of candidate backup paths satisfies the second priority criterion (the "yes" branch of 725), then the network device may select the second candidate backup path as a backup path for the primary path instead of the first candidate backup path (730). Next, the network device may program one or more packet processors using either or both of the primary path and the backup path (735).

[0072] The techniques described in the present disclosure may be implemented, at least in part, in hardware, software, firmware, or any combination thereof. For example, various aspects of the described techniques may be implemented within one or more processors (including one or more microprocessors, digital signal processors (DSPs), application specific integrated circuits (ASICs), field programmable gate arrays (FPGAs), or any other equivalent integrated or discrete logic circuit devices, as well as any combination of such components). The term "processor" or "processing circuit device" may generally refer to any of the aforementioned logic circuit devices, either alone or in combination with other logic circuit devices or any other equivalent circuit devices. A control unit including hardware may also perform one or more techniques of the present disclosure.

[0073] Such hardware, software, and firmware may be implemented in the same device or in separate devices to support the various operations and functions described in this disclosure. Additionally, any of the described units, modules, or components may be implemented together or individually as discrete but interoperable logic devices. Depicting different features as modules or units is intended to highlight different functional aspects, and does not necessarily imply that such modules or units must be implemented by separate hardware or software components. On the contrary, the functionality associated with one or more modules or units may be performed by separate hardware or software components, or integrated in common or separate hardware or software components.

[0074] The techniques described in the present disclosure may also be implemented or encoded in a computer-readable medium (such as a computer-readable storage medium) containing instructions. Instructions embedded or encoded in a computer-readable medium may cause a programmable processor or other processor to perform the method, for example, when the instructions are executed. Computer-readable media may include non-transitory computer-readable storage media and temporary communication media. Computer-readable storage media (which are tangible and non-transitory) may include random access memory (RAM), read-only memory (ROM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electronically erasable programmable read-only memory (EEPROM), flash memory, hard disk, CD-ROM, floppy disk, cassette, magnetic media, optical media, or other computer-readable storage media. The term "computer-readable storage medium" refers to a physical storage medium, rather than a signal, carrier wave, or other temporary medium.

[0075] Various examples have been described. These and other examples are within the scope of the following claims.

[0076] Example 1. A method, comprising: determining, by a processing circuit device of a first network device, a primary path between the first network device and a second network device; determining, by the processing circuit device, a plurality of candidate backup paths between the first network device and the second network device; determining, by the processing circuit device, whether a first candidate backup path among the plurality of candidate backup paths satisfies a first priority criterion; in response to determining that the first candidate backup path satisfies the first priority criterion, selecting the first candidate backup path as a backup path for the primary path; in response to determining that the first candidate backup path does not satisfy the first priority criterion, determining whether a second candidate backup path among the plurality of candidate backup paths satisfies a second priority criterion, wherein the first priority criterion and the second priority criterion are at least partially based on corresponding risks of simultaneous failure of the primary path and the candidate backup paths among the plurality of backup paths, in response to determining that the second candidate backup path among the plurality of candidate backup paths satisfies the second priority criterion, selecting the second candidate backup path as a backup path for the primary path instead of selecting the first candidate backup path; and programming one or more packet processors of the first network device with either or both of the primary path and the backup path.

[0077] Example 2. The method of example 1, wherein the first priority criterion includes a requirement that the primary path and the candidate backup path are arranged so that they will both fail only if the first network device fails.

[0078] Example 3. The method of Example 1, wherein the second priority criteria includes a requirement that the primary path and the candidate backup path be arranged such that they will both fail upon a failure of a line card shared by the primary path and the candidate backup path.

[0079] Example 4. The method according to Example 3 also includes: receiving, by a routing protocol guardian RPD of the first network device, line card identifiers IDs for multiple line cards of the first network device; and determining, by the RPD, that the primary path and the candidate backup path share a line card based on determining that a first line card ID for a line card in a primary path matches a second line card ID for a line card in a candidate backup path.

[0080] Example 5. The method of any of Examples 1 to 3, further comprising: in response to determining that the second candidate backup path does not satisfy the second priority criteria, allowing the backup path for the primary path to remain unprovisioned.

[0081] Example 6. The method according to any one of Examples 1 to 3 further includes: in response to determining that the second candidate backup path does not satisfy the second priority criterion, determining whether a third candidate backup path among the multiple candidate backup paths satisfies a third priority criterion, wherein the third priority criterion is based at least in part on the risk of simultaneous failure of the primary path and the candidate backup paths among the multiple backup paths, in response to determining that the third candidate backup path satisfies the third priority criterion, selecting the third candidate backup path as a backup path for the primary path instead of selecting the first candidate backup path and the second candidate backup path, and in response to determining that the third candidate backup path does not satisfy the third priority criterion, allowing the backup path for the primary path to remain unprovisioned.

[0082] Example 7. The method of Example 6, wherein the third priority criterion includes a requirement that the primary path and the candidate backup path are arranged so that they will both fail upon a failure of a packet processor shared by the primary path and the candidate backup path.

[0083] Example 8. The method according to Example 7 also includes: receiving, by the RPD, packet processor identifiers for multiple packet processors from one or more packet processors among the multiple packet processors of the first network device; and determining, by the RPD, that when the first packet processor ID for the primary path matches the second packet processor ID for the candidate backup path, the packet processor is shared by the primary path and the candidate backup path.

[0084] Example 9. The method according to any one of Examples 1 to 3 further includes: receiving, by a processing circuit device, line card IDs for multiple line cards of a first network device and packet processor IDs for multiple packet processors of the first network device; and announcing the line card ID and the packet processor ID to one or more other network devices in a link state protocol packet.

[0085] Example 10. A first network device, comprising: a memory; and a processing circuit device, the processing circuit device being configured to: determine a primary path between the first network device and a second network device; determine multiple candidate backup paths between the first network device and the second network device; determine whether a first candidate backup path among the multiple candidate backup paths satisfies a first priority criterion; in response to determining that the first candidate backup path among the multiple candidate backup paths satisfies the first priority criterion, select the first candidate backup path as a backup path; in response to determining that the first candidate backup path does not satisfy the first priority criterion, determine whether a second candidate backup path among the multiple candidate backup paths satisfies a second priority criterion, wherein the first priority criterion and the second priority criterion are based at least in part on corresponding risks of simultaneous failure of the primary path and the candidate backup paths among the multiple backup paths, in response to determining that the second candidate backup path among the multiple candidate backup paths satisfies the second priority criterion, select the second candidate backup path as the backup path instead of selecting the first candidate backup path; and program one or more packet processors of the first network device using either or both of the primary path and the backup path.

[0086] Example 11. The first network device of example 10, wherein the first priority criteria includes a requirement that the primary path and the candidate backup paths are arranged such that they will both fail only if the first network device fails.

[0087] Example 12. The first network device of Example 10, wherein the second priority criteria includes a requirement that the primary path and the candidate backup path are arranged such that they will both fail upon a failure of a line card shared by the primary path and the candidate backup path.

[0088] Example 13. A first network device according to Example 12, wherein the processing circuit device is further configured to: receive line card identifiers IDs for multiple line cards of the first network device from a packet processor of the first network device; and determine whether the primary path and the candidate backup path share a line card based on a match between a first line card ID for a line card in a primary path and a second line card ID for a line card in a candidate backup path.

[0089] Example 14. The first network device of any of Examples 10 to 12, wherein the processing circuitry is further configured to: in response to determining that the second candidate backup path does not satisfy the second priority criterion, allow the backup path for the primary path to remain unprovisioned.

[0090] Example 15. A first network device according to any one of Examples 10 to 12, wherein the processing circuit device is further configured to: in response to determining that the second candidate backup path does not satisfy the second priority criterion, determine whether a third candidate backup path among the multiple candidate backup paths satisfies a third priority criterion, wherein the third priority criterion is based at least in part on the risk of simultaneous failure of the primary path and the candidate backup paths among the multiple backup paths, in response to determining that the third candidate backup path among the multiple candidate backup paths satisfies the third priority criterion, select the third candidate backup path as the backup path instead of selecting the first candidate backup path and the second candidate backup path, and in response to determining that the third candidate backup path does not satisfy the third priority criterion, allow the backup path for the primary path to remain unprovisioned.

[0091] Example 16. The first network device of Example 15, wherein the third priority criterion includes a requirement that the primary path and the candidate backup path are arranged such that they will both fail upon a failure of a packet processor shared by the primary path and the candidate backup path.

[0092] Example 17. A first network device according to Example 16, wherein the processing circuit device is further configured to: receive, by the RPD, packet processor identifiers for multiple packet processors from one or more packet processors of the multiple packet processors of the first network device; and determine, by the RPD, that when the first packet processor ID for the primary path matches the second packet processor ID for the candidate backup path, the packet processor is shared by the primary path and the candidate backup path.

[0093] Example 18. A first network device according to any one of Examples 10 to 12, wherein the processing circuit device is further configured to: receive line card IDs for multiple line cards of the first network device and packet processor IDs for multiple packet processors of the first network device; and announce the line card IDs and packet processor IDs in a link state protocol packet.

[0094] Example 19. The first network device of any one of Examples 10 to 12, wherein the plurality of line cards comprises one or more of: a flexible physical interface card (PIC), a concentrator (FPC), a dense port concentrator (DPC), or a modular port concentrator (MPC).

[0095] Example 20. A computer-readable storage medium encoded with instructions for causing one or more programmable processors to perform the method of any of Examples 1-9.

Claims

1. A network device, comprising: Memory; as well as processing circuitry having access to the memory and configured to: selecting, based on a determination that there is a first candidate backup path having line cards and packet processors that are different from line cards and packet processors in a primary path to the second network device, the first candidate backup path as a selected backup path to the second network device; based on a determination that there is no first candidate backup path having line cards and packet processors that are different from those in the primary path: selecting the second candidate backup path as the selected backup path to the second network device based on a determination that the primary path and the second candidate backup path share a common line card and the packet processor in the second candidate backup path is different from the packet processor in the primary path; as well as The first network device is programmed with the primary path and the selected backup path.

2. A method comprising: selecting, based on a determination that there is a first candidate backup path having line cards and packet processors that are different from line cards and packet processors in a primary path to the second network device, the first candidate backup path as a selected backup path to the second network device; based on a determination that there is no first candidate backup path having line cards and packet processors that are different from those in the primary path: selecting the second candidate backup path as the selected backup path to the second network device based on a determination that the primary path and the second candidate backup path share a common line card and the packet processor in the second candidate backup path is different from the packet processor in the primary path; as well as The first network device is programmed with the primary path and the selected backup path.

3. A non-transitory computer readable medium comprising an executable instruction set, which when executed by a processor of a device causes the device to perform the following steps: selecting, based on a determination that there is a first candidate backup path having line cards and packet processors that are different from line cards and packet processors in a primary path to the second network device, the first candidate backup path as a selected backup path to the second network device; based on a determination that there is no first candidate backup path having line cards and packet processors that are different from those in the primary path: selecting the second candidate backup path as the selected backup path to the second network device based on a determination that the primary path and the second candidate backup path share a common line card and the packet processor in the second candidate backup path is different from the packet processor in the primary path; as well as The first network device is programmed with the primary path and the selected backup path.