Apparatus, system and method for instant routing engine switching
By introducing service replication devices into packet routers, instant switching between routing engines is achieved using Ethernet connections, the problem of long switching time of routing engines in the prior art is solved, and the stability and reliability of the system are improved.
Patent Information
- Application Number
- CN202311400411.5
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2023-08-04
- Filing Date
- 2023-10-26
- Publication Date
- 2025-02-14
AI Technical Summary
An existing packet router can take several seconds during the switching between routing engines, resulting in packet loss and protocol timeout.
The service replication device is used to transmit data between the packet forwarding board and the two routing engines through Ethernet connection, which realizes the replication and selection of control services and quickly switches the routing engine.
Real-time switching between routing engines is realized, reducing switching time, avoiding packet loss and protocol timeout.
Smart Images

Figure CN119449701A_ABST
Abstract
Description
Background Art
[0001] Packet routers often include redundant control plane solutions. For example, a router may include a primary and a backup routing engine. In the event of a failure in the primary routing engine, the backup routing engine can take over the control plane. Unfortunately, the switching process between routing engines can take several seconds; resulting in packet loss and protocol timeouts.
[0002] Accordingly, the present disclosure identifies and addresses the need for additional and / or improved apparatus, systems, and methods for implementing faster switching between routing engines. Summary of the invention
[0003] As will be described in more detail below, the present disclosure generally relates to apparatus, systems, and methods for instant switching between routing engines. In one example, a computing device may include (1) a packet forwarding board configured to (A) forward control traffic to a service replication device via a first link and (B) forward data traffic to a first routing engine via a second link, (2) a service replication device configured to (A) replicate control traffic received from the packet forwarding board and (B) select control signals received from the first routing engine, (3) a first routing engine configured to receive control traffic from the service replication device, and (4) a second routing engine configured to receive control traffic from the service replication device.
[0004] Similarly, a system for instant switching between routing engines may include a computing device that may include: (1) a packet forwarding board configured to (A) forward control traffic to a service replication device via a first link and (B) forward data traffic to a first routing engine via a second link, (2) a service replication device configured to (A) replicate control traffic received from the packet forwarding board and (B) select control signals received from the first routing engine, (3) the first routing engine configured to receive control traffic from the service replication device, and (4) a second routing engine configured to receive control traffic from the service replication device.
[0005] A corresponding method may include (1) replicating control traffic received from a packet forwarding board, (2) transmitting the replicated control traffic to a first routing engine and a second routing engine, (3) selecting control signals from the first routing engine for forwarding, and (4) in response to detecting a failure associated with the first routing engine, selecting control signals from the second routing engine for forwarding.
[0006] According to the general principles described herein, features from any of the above embodiments can be used in combination with each other. These and other embodiments, features and advantages will be more fully understood by reading the following detailed description in conjunction with the accompanying drawings and claims. BRIEF DESCRIPTION OF THE DRAWINGS
[0007] The accompanying drawings illustrate many exemplary embodiments and are a part of the specification. Together with the following description, these drawings illustrate and explain various principles of the present disclosure.
[0008] Figure 1 is a diagram of an existing computing device architecture according to one or more embodiments of the present disclosure, for illustrating problems that occur during a routing engine switch;
[0009] Figure 2 is a diagram of an exemplary computing device capable of switching between routing engines on the fly according to one or more embodiments of the present disclosure;
[0010] Figure 3 is a detailed description of a service replication device for implementing instant routing engine switching according to one or more embodiments of the present disclosure;
[0011] Figure 4 is a flow chart of an exemplary method for instant switching between routing engines according to one or more embodiments of the present disclosure; and
[0012] Figure 5 is a block diagram of an exemplary computing system capable of implementing and / or using in conjunction with one or more embodiments described and / or illustrated herein.
[0013] Throughout the drawings, the same reference numerals and descriptions represent similar but not necessarily identical elements. Although the exemplary embodiments described herein are susceptible to various modifications and alternative forms, specific embodiments have been shown by way of example in the drawings and will be described in detail herein. However, the exemplary embodiments described herein are not intended to be limited to the specific forms disclosed. On the contrary, this instant disclosure covers all modifications, equivalents, and alternatives that fall within the scope of the appended claims. DETAILED DESCRIPTION
[0014] The present disclosure describes various devices, systems and methods for switching between routing engines in a packet router with little or no waiting time. As will be described in more detail below, embodiments of the present disclosure may include and / or relate to an intermediate service replication device between a packet forwarding board and a primary routing engine and a backup routing engine within a packet router, the packet forwarding board being typically implemented as an application specific integrated circuit (ASIC). In one or more embodiments, the service replication device replicates control services and transmits the replicated control services to the two routing engines. The service replication device may also include a selector that filters and transmits only control plane signals from one of the routing engines. For example, in response to a fault detected in the primary routing engine, the service replication device may switch from transmitting control plane signals from the primary routing engine to transmitting control plane signals from the backup routing engine. This switching process is actually instantaneous because the service replication device bypasses the data bus and drivers previously used for control plane packets in the packet router and instead transmits services and signals across a dedicated Ethernet connection.
[0015] In more detail, Figure 1 As shown, an existing packet router 100 typically includes a forwarding engine board (FEB) or ASIC 106, which is connected to a main routing engine 102 via a peripheral component interconnect express (PCIe) connection 110a, which transmits packets (including control plane packets) from the ASIC 106. In one or more embodiments, the ASIC 106 receives network traffic including control plane traffic and data traffic from a network I / O device 108 that processes network input and output. When a failure is detected in the main routing engine 102, the packet router 100 may include a backup routing engine 104 that processes packet traffic previously routed to the main routing engine 102. In many examples, switching from the main routing engine 102 to the backup routing engine 104 may involve re-enumerating the peripheral component interconnect express (PCIe) connection 110a to the PCIe connection 110b, and loading a driver onto the ASIC 106 to accurately attach the ASIC 106 to the backup routing engine 104. As described above, this process may take tens of seconds. Such delays and / or lags may result in lengthy control plane disruptions for packet router 100 .
[0016] Thus, the service replication device described herein may include an Ethernet connection to a packet forwarding board (e.g., an ASIC) in a packet router, and additional Ethernet connections to both a primary routing engine and a backup routing engine. In some examples, the service replication device described herein may include an Ethernet connection to a packet forwarding board and a routing engine with speeds up to 10G. For example, the packet forwarding board may transmit control plane services to the service replication device via an Ethernet connection while continuing to transmit data services to the primary routing engine and the backup routing engine via a PCIe connection.
[0017] In addition, the business replication device may include a packet duplicator and a signal selector. For example, the business replication device may duplicate the control plane packets received from the packet forwarding board and transmit the duplicated packets to both the main routing engine and the backup routing engine. The business replication device may also include a selector (e.g., an interruption-free multiplexer) that receives control plane signals from both the main routing engine and the backup routing engine. The control board driver may cause the selector to transmit control plane signals from only one routing engine (e.g., the main routing engine) in the routing engine. Then, in response to the main routing engine experiencing a failure, the control board driver may cause the selector to transmit control plane signals from the backup routing engine. Therefore, the time spent switching from the main routing engine to the backup routing engine is the same as the time spent by the control board driver to instruct the selector in the business replication device (e.g., approximately 50 microseconds).
[0018] Although the above described Figure 1 The routing engine switching delays experienced by a typical packet router 100 are described in detail, but reference will be made to Figure 2-Figure 3 A detailed description of exemplary apparatus, devices, systems, and corresponding implementations for fast switching between routing engines in a packet router is provided. Figure 4 A detailed description of an exemplary method for rapidly switching between routing engines is provided. Figure 5 A detailed description of an exemplary computing system for performing such a method is provided.
[0019] Figure 2At least a portion of an exemplary computing device 200 (e.g., a packet router) capable of switching from a primary routing engine 202 to a backup routing engine 204 with little or no delay is shown. In some examples, computing device 200 may constitute and / or represent any type or form of physical computing device capable of reading computer executable instructions, performing calculations, converting data, and / or processing network traffic. Examples of computing device 200 include, but are not limited to, network devices, routers (such as provider edge routers, hub routers, spoke routers, autonomous system border routers, and / or regional border routers), switches, hubs, modems, bridges, repeaters, gateways (such as broadband network gateways), multiplexers, network adapters, network interfaces, client devices, laptop computers, tablet computers, desktop computers, servers, cellular phones, personal digital assistants (PDAs), multimedia players, embedded systems, wearable devices, game consoles, variations or combinations of one or more of the above, and / or any other suitable computing devices.
[0020] like Figure 1 As shown, the exemplary computing device 200 may include and / or represent a packet forwarding board 206 (e.g., a PFE board), a service replication device 208, a communication bus 210, a primary routing engine 202, and a backup routing engine 204. In some embodiments, the exemplary computing device 200 may also include memories 212a, 212b associated with the primary routing engine 202 and the backup routing engine 204, respectively. In addition, the exemplary computing device 200 may include communication points 220a, 220b associated with the primary routing engine 202 and the backup routing engine 204, respectively.
[0021] In some examples, the packet forwarding board 206 may constitute and / or represent any type or form of physical computing device capable of sending and receiving network services. Examples of the packet forwarding board 206 may include one or more line cards, each of which carries one or more network ports capable of sending and receiving network services. In some examples, the packet forwarding board 206 may include and / or represent one or more hardware-implemented devices and / or circuits capable of handling, processing and / or preparing services for transmission and / or forwarding. In one example, the packet forwarding board 206 may include and / or represent a packet forwarding engine (PFE) composed of multiple packet processing engines. In this example, the packet forwarding board 206 may parse packets, perform lookup operations, perform filtering operations, classify packets and / or encapsulate packets. In some implementations, the packet forwarding board 206 may process packets and / or forward packets between input and output interfaces through various types of communication connections (e.g., PCIe and Ethernet).
[0022] In some examples, packet forwarding board 206 (eg, an ASIC) can be configured and / or programmed to receive packets from one or more network I / O devices (eg, Figure 1 The network I / O device 108 shown in FIG. 1 receives network packets and forwards the received network packets in different ways according to the packet type. For example, the packet forwarding board 206 can directly forward data services including data packets to one or more of the main routing engine 202 and the backup routing engine 204. In addition, the packet forwarding board 206 can forward control services including control plane packets to the service replication device 208. In one or more embodiments, the data packets can include user request data, such as media segments, and the control plane packets can include routing instructions specific to the current network topology on how to provide the data packets to the users who requested them.
[0023] Examples of the packet forwarding board 206 (e.g., ASIC) may include, but are not limited to, a physical processor, a central processing unit (CPU), a microprocessor, a microcontroller, a field programmable gate array (FPGA), an application specific integrated circuit (ASIC), a system on a chip (SoC), a parallel acceleration processor, a tensor core, an integrated circuit, a chiplet, portions of one or more of the foregoing, combinations or variations of one or more of the foregoing, and / or any other suitable controller.
[0024] Thus, the packet forwarding board 206 may be configured and / or programmed to receive network traffic and separate the network traffic into data traffic and control traffic. In such an example, the network traffic may include and / or represent traffic intended to be sent to a remote device (in Figure 2 2 and 3. In this way, packet forwarding board 206 can transmit network packets via two or more types of connections. For example, packet forwarding board 206 can forward data traffic to communication bus 210 via a PCIe connection (e.g., link 216). Communication bus 210 can then forward data traffic to both primary routing engine 202 and backup routing engine 204 via links 222a and 222b, respectively. Furthermore, in such an example, packet forwarding board 206 can be connected to service replication device 208 in addition to communication bus 210.
[0025] In some examples, the service replication device 208 can be a control board configured and / or programmed to receive and / or obtain control services including control plane packets from the packet forwarding board 206 via the link 214. In this example, the service replication device 208 can replicate the control services received from the packet forwarding board 206. In addition, in this example, the service replication device 208 can transmit and / or transfer the replicated control services to one or both of the main routing engine 202 and the backup routing engine 204 according to the communication points 220a and 220b, respectively. Like the link 214, the links 218a, 218b can also be Ethernet connections. Therefore, in at least one embodiment, the communication points 220a, 220b can provide Ethernet drivers for the main routing engine 202 and the backup routing engine 204, so that the main routing engine 202 and the backup routing engine 204 can receive and transmit signals through the Ethernet links 218a, 218b.
[0026] In some examples, primary routing engine 202 and / or backup routing engine 204 may constitute and / or represent any type or form of physical computing device capable of receiving and transmitting routing information. In addition, primary routing engine 202 and / or backup routing engine 204 may be capable of building and maintaining routing tables and communicating with other components and interfaces within computing device 200.
[0027] like Figure 2 As further shown, the business replication device 208 can receive control signals from one or both of the main routing engine 202 and the backup routing engine 204 via links 218a, 218b. In one or more embodiments, the control signal may include a routing instruction generated by the routing engine based on the received control plane packet. In this example, the business replication device 208 can receive the control signal at a signal selector such as an interrupt-free multiplexer. In one or more embodiments, the selector can receive a drive signal from a control board driver of the business replication device 208, which drives The signal instructs the selector to forward a control signal from one of the main routing engine 202 or the backup routing engine 204. The business replication device 208 can then forward the selected control signal back to the packet forwarding board 206 via link 214.
[0028] Figure 3Additional details about the service replication device 208 are shown. As described above, the service replication device 208 can receive and replicate control services. The service replication device 208 can further transmit the replicated control services to the main routing engine 202 and the backup routing engine 204. In addition, the service replication device 208 can receive control signals from the main routing engine 202 and / or the backup routing engine 204. The service replication device 208 can further select a group of control signals to forward. In response to one of the main routing engine 202 or the backup routing engine 204 experiencing a failure, the service replication device 208 can switch to forwarding control signals from another routing engine that is not affected.
[0029] In one or more implementations, the business replication device 208 may include a control board (e.g., a CB card). For example, the business replication device 208 may be a physical layer device (e.g., a PHY) having the functionality to receive and transmit information over an Ethernet connection. The business replication device 208 may include components for replicating and selecting data. The business replication device 208 may also include components that allow data to pass intact.
[0030] In more detail, Figure 3 As shown, the service replication device 208 may include control service replicators 310a and 310b. In one or more embodiments, the control service replicators 310a, 310b may receive control services from the packet forwarding board 206 via link 312. For example, the packet forwarding board 206 (e.g., ASIC or packet forwarding engine) may include a packet forwarding ASIC 306 and a control field programmable gate array 308 (control FPGA). In at least one implementation, the packet forwarding ASIC 306 identifies and / or receives control plane packets and forwards the control plane packets via link 312. In at least one implementation, the control FPGA 308 forwards data services including data packets via link 320. As described above, link 320 may include a PCIe connection, and link 312 may include an Ethernet connection.
[0031] In one or more embodiments, control traffic replicators 310a, 310b may replicate received control traffic. For example, control traffic replicators 310a and 310b may replicate each control plane packet in the control traffic so that primary routing engine 202 and backup routing engine 204 receive the same control plane packet. Control traffic replicators 310a and 310b may also transmit the replicated control traffic to primary routing engine 202 and backup routing engine 204 via links 314a and 314b. Like link 312, links 314a and 314b may also include Ethernet connections.
[0032] After processing the control traffic received from traffic replication device 208, traffic replication device 208 may receive control signals from one or both of primary routing engine 202 and backup routing engine 204. For example, traffic replication device 208 may include signal selector 304 that receives control signals from one or both of primary routing engine 202 and backup routing engine 204 via links 316a and 316b, respectively. In one or more implementations, links 316a and 316b are Ethernet links.
[0033] In addition, the signal selector 304 can be a non-stop multiplexer that selects a set of control signals to be forwarded back to the packet forwarding ASIC 306 via another Ethernet link 318. The signal selector 304 can receive control signals simultaneously via links 316a, 316b. Additionally or alternatively, the signal selector 304 can receive control signals from only one of the main routing engine 202 or the backup routing engine 204, and does not receive control signals from the other routing engine until the switch occurs. In one or more embodiments, the business replication device 208 also includes a control board driver 302 (e.g., a control board complex programmable logic device, a control board CPLD, or a CPLD). For example, the control board driver 302 can switch the signal selector 304 from forwarding control signals from the main routing engine 202 to the packet forwarding ASIC 306 to forwarding control signals from the backup routing engine 204, and vice versa. In an example where the signal selector 304 is a non-stop multiplexer, the signal selector 304 switches between the groups of control signals almost instantly.
[0034] In at least one embodiment, the control board driver 302 instructs the signal selector 304 to switch from one set of control signals to another set of control signals in response to a detected fault. For example, the master routing engine 202 may experience a fault such as, but not limited to, a hardware fault, a peripheral component interconnect (PCI) bus error, a maintenance that requires the master routing engine 202 to be offline, and a storage device error (such as memory 212a). The control board driver 302 can detect and / or be informed of any of these types of faults. In addition, the control board driver 302 can detect and / or be informed of environmental faults. For example, a component of the exemplary computing device 200 may experience a temperature condition such as overheating. In at least one embodiment, the control board driver 302 can instruct the signal selector 304 to switch in response to such an environmental problem. In some examples, the control board driver 302 instructs the signal selector 304 to switch by instructing the signal selector 304 to stop the transmission of control signals from the master routing engine 202 and start forwarding control signals from the backup routing engine 204.
[0035] Thus, while previous systems required PCIe connection re-enumeration and driver loading to switch between the primary and backup routing engines, the disclosed apparatus, system, and method enable nearly instantaneous switching between primary routing engine 202 and backup routing engine 204. As described above, signal selector 304 can receive control signals from both primary routing engine 202 and backup routing engine 204, even when backup routing engine 204 is not functioning as the primary routing engine. When the primary routing engine experiences a failure, control board driver 302 can instruct signal selector 304 to switch to transmitting control signals from backup routing engine 204. This process does not require new enumeration or drivers and can be completed in just a few microseconds.
[0036] Figure 4 4 is a flow chart of an exemplary method 400 for immediately switching from a primary routing engine to a backup routing engine (or vice versa). In one example, Figure 4 The steps shown may be implemented and / or performed by a system, computing device, and / or server for facilitating and / or instant switching between routing engines by using an intermediate physical layer device. Additionally or alternatively, Figure 4 The steps shown may be combined and / or referred to in conjunction with the above Figure 2 and Figure 3 Certain sub-steps and / or variations consistent with the description are provided.
[0037] like Figure 4 As shown, method 400 may include a step (410) of replicating control traffic received from a packet forwarding board. Step 410 may be performed in a variety of ways, including in combination with the above. Figure 2 and Figure 3 For example, a traffic replication device (eg, traffic replication device 208) may receive control traffic including control plane packets via an Ethernet connection to a packet forwarding board, and replicate the control plane packets into two identical sets of control plane packets.
[0038] Method 400 may also include a step (420) of transmitting the copied control service to the first routing engine and the second routing engine. Step 420 may be performed in a variety of ways, including the above combined with Figure 2 and Figure 3 For example, the traffic replication device may transmit the replicated control traffic to the first routing engine (eg, the master routing engine 202) and the second routing engine (eg, the backup routing engine 204) via an additional Ethernet connection.
[0039] In addition, method 400 may include a step of selecting a control signal from the first routing engine for forwarding (430). Step 430 may be performed in a variety of ways, including in combination with the above. Figure 2 and Figure 3 For example, the service replication device may include a control signal selector that receives control signals from both the first routing engine and the second routing engine but only forwards control signals from one of the first routing engine or the second routing engine.
[0040] In addition, method 400 may include a step (440) of selecting a control signal from a second routing engine for forwarding in response to detecting a failure associated with the first routing engine. Step 440 may be performed in a variety of ways, including in combination with the above. Figure 2 and Figure 3 For example, a control board driver of a traffic replication device may detect a failure in a first routing engine and switch a control signal selector to forward control signals from a second routing engine.
[0041] Figure 5 1 is a block diagram of an exemplary computing system 500 capable of implementing and / or used in conjunction with one or more embodiments described and / or illustrated herein. In some embodiments, all or a portion of the computing system 500 may be used alone or in conjunction with other components to perform operations in conjunction with the computing system 500. Figure 4 One or more steps described and / or as for performing the combination Figure 4 All or a portion of computing system 500 may also perform and / or be a component for performing and / or implementing any other steps, methods, or processes described and / or illustrated herein.
[0042] The computing system 500 broadly represents any type or form of electrical load, including a single processor or multi-processor computing device or system capable of executing computer-readable instructions. Examples of the computing system 500 include, but are not limited to, workstations, laptop computers, client terminals, servers, distributed computing systems, mobile devices, network switches, network routers (e.g., backbone routers, edge routers, core routers, mobile service routers, broadband routers, etc.), network devices (e.g., network security devices, network control devices, network timing devices, SSL VPN (Secure Sockets Layer Virtual Private Network) devices, etc.), network controllers, gateways (e.g., service gateways, mobile packet gateways, multi-access gateways, security gateways, etc.), and / or any other type or form of computing system or device.
[0043] The computing system 500 may be programmed, configured, and / or otherwise designed to comply with one or more network protocols. According to certain embodiments, the computing system 500 may be designed to work with protocols of one or more layers of the Open Systems Interconnection (OSI) reference model, such as physical layer protocols, link layer protocols, network layer protocols, transport layer protocols, session layer protocols, presentation layer protocols, and / or application layer protocols. For example, the computing system 500 may include a network device configured according to the following: a Universal Serial Bus (USB) protocol, an Institute of Electrical and Electronics Engineers (IEEE) 1394 protocol, an Ethernet protocol, a T1 protocol, a Synchronous Optical Network (SONET) protocol, a Synchronous Digital Hierarchy (SDH) protocol, an Integrated Services Digital Network (ISDN) protocol, an Asynchronous Transfer Mode (ATM) protocol, a Point-to-Point Protocol (PPP), a Point-to-Point Protocol over Ethernet (PPPoE), a Point-to-Point Protocol over ATM (PPPoA), a Bluetooth protocol, an IEEE 802.XX protocol, a Frame Relay protocol, a Token Ring protocol, a Spanning Tree Protocol, and / or any other suitable protocol.
[0044] The computing system 500 may include various network and / or computing components. For example, the computing system 500 may include at least one processor 514 and a system memory 516. The processor 514 generally represents any type or form of processing unit capable of processing data or interpreting and executing instructions. For example, the processor 514 may represent an application specific integrated circuit (ASIC), a system on a chip (e.g., a network processor), a hardware accelerator, a general purpose processor, and / or any other suitable processing element.
[0045] Processor 514 may process data in accordance with one or more of the network protocols discussed above. For example, processor 514 may execute or implement a portion of a protocol stack, may process packets, may perform memory operations (e.g., queue packets for later processing), may execute end-user applications, and / or may perform any other processing tasks.
[0046] The system memory 516 generally represents any type or form of volatile or non-volatile storage device or medium capable of storing data and / or other computer-readable instructions. Examples of system memory 516 include, but are not limited to, random access memory (RAM), read-only memory (ROM), flash memory, or any other suitable memory device. Although not required, in some embodiments, the computing system 500 may include both a volatile memory unit (e.g., system memory 516) and a non-volatile storage device (e.g., main storage device 532, as described in detail below). The system memory 516 may be implemented as a shared memory and / or distributed memory in a network device. In addition, the system memory 516 may store packets and / or other information used in networking operations.
[0047] In some embodiments, in addition to the processor 514 and the system memory 516, the exemplary computing system 500 may also include one or more other components or elements. Figure 5 As shown, computing system 500 may include memory controller 518, input / output (I / O) controller 520, and communication interface 522, each of which may be interconnected via communication infrastructure 512. Communication infrastructure 512 generally represents any type or form of infrastructure capable of facilitating communication between one or more components of a computing device. Examples of communication infrastructure 512 include, but are not limited to, communication buses (such as Serial ATA (SATA), Industry Standard Architecture (ISA), Peripheral Component Interconnect (PCI), PCI Express (PCIe), and / or any other suitable bus) and networks.
[0048] Memory controller 518 generally represents any type or form of device capable of handling memory or data or capable of controlling communications between one or more components of computing system 500. For example, in some embodiments, memory controller 518 may control communications between processor 514, system memory 516, and I / O controller 520 via communication infrastructure 512. In some embodiments, memory controller 518 may include a direct memory access (DMA) unit that may transfer data (e.g., packets) to or from a link adapter.
[0049] I / O controller 520 generally represents any type or form of device or module capable of coordinating and / or controlling the input and output functions of a computing device. For example, in some embodiments, I / O controller 520 can control or facilitate the transmission of data between one or more elements of computing system 500, such as processor 514, system memory 516, communication interface 522, and storage interface 530.
[0050] The communication interface 522 broadly represents any type or form of communication device or adapter that can facilitate communication between the exemplary computing system 500 and one or more additional devices. For example, in some embodiments, the communication interface 522 can facilitate communication between the computing system 500 and a private or public network including additional computing systems. Examples of the communication interface 522 include, but are not limited to, a link adapter, a wired network interface (such as a network interface card), a wireless network interface (such as a wireless network interface card), and any other suitable interface. In at least one embodiment, the communication interface 522 can provide a direct connection to a remote server via a direct link to a network such as the Internet. The communication interface 522 can also provide such a connection indirectly through, for example, a local area network (such as an Ethernet), a personal area network, a wide area network, a private network (e.g., a virtual private network), a telephone or wired network, a cellular phone connection, a satellite data connection, or any other suitable connection.
[0051] In some embodiments, the communication interface 522 may also represent a host adapter that is configured to facilitate communication between the computing system 500 and one or more additional network or storage devices via an external bus or communication channel. Examples of host adapters include, but are not limited to, a small computer system interface (SCSI) host adapter, a universal serial bus (USB) host adapter, an IEEE 1394 host adapter, an advanced technology attachment (ATA), parallel ATA (PATA), serial ATA (SATA) and external SATA (eSATA) host adapters, a fiber channel interface adapter, an Ethernet adapter, and the like. The communication interface 522 may also enable the computing system 500 to participate in distributed or remote computing. For example, the communication interface 522 may receive instructions from a remote device or send instructions to a remote device for execution.
[0052] like Figure 5 As shown, the exemplary computing system 500 may also include a primary storage device 532 and / or a backup storage device 534 coupled to the communication infrastructure 512 via a storage interface 530. The storage devices 532 and 534 generally represent any type or form of storage device or medium capable of storing data and / or other computer-readable instructions. For example, the storage devices 532 and 534 may represent a disk drive (e.g., a so-called hard disk drive), a solid-state drive, a floppy disk drive, a tape drive, an optical disk drive, a flash drive, etc. The storage interface 530 generally represents any type or form of interface or device for transferring data between the storage devices 532 and 534 and other components of the computing system 500.
[0053] In some embodiments, storage devices 532 and 534 may be configured to read from and / or write to a removable storage unit that is configured to store computer software, data, or other computer-readable information. Examples of suitable removable storage units include, but are not limited to, floppy disks, magnetic tapes, optical disks, flash memory devices, and the like. Storage devices 532 and 534 may also include other similar structures or devices for allowing computer software, data, or other computer-readable instructions to be loaded into computing system 500. For example, storage devices 532 and 534 may be configured to read and write software, data, or other computer-readable information. Storage devices 532 and 534 may be part of computing system 500, or may be separate devices accessed through other interface systems.
[0054] Many other devices or subsystems may be connected to computing system 500. In contrast, Figure 5 All components and devices shown need not be present to practice the embodiments described and / or illustrated herein. The devices and subsystems mentioned above may also be present in different Figure 5 The computing system 500 may also be interconnected in the manner shown. The computing system 500 may also employ any number of software, firmware, and / or hardware configurations. For example, one or more of the exemplary embodiments disclosed herein may be encoded as a computer program (also referred to as computer software, software applications, computer-readable instructions, or computer control logic) on a computer-readable medium. The term "computer-readable medium" generally refers to any form of device, carrier, or medium capable of storing or carrying computer-readable instructions. Examples of computer-readable media include, but are not limited to, transmission-type media, such as carrier waves; and non-transitory media, such as magnetic storage media (e.g., hard drives and floppy disks), optical storage media (e.g., compact disks (CDs) and digital video disks (DVDs)), electronic storage media (e.g., solid-state drives and flash memory media), and other distribution systems.
[0055] Although the above disclosure uses specific block diagrams, flow charts, and examples to illustrate various embodiments, each block diagram component, flow chart step, operation, and / or component described and / or illustrated herein may be implemented individually and / or collectively using various hardware, software, or firmware (or any combination thereof) configurations. In addition, any disclosure of components contained within other components should be considered exemplary in nature, as many other architectures may be implemented to achieve the same functionality.
[0056] In some examples, Figure 1All or part of the packet router 100 in the embodiment may represent part of a cloud computing or network-based environment. Cloud computing and network-based environments may provide various services and applications via the Internet. These cloud computing and network-based services (e.g., software as a service, platform as a service, infrastructure as a service, etc.) may be accessed through a web browser or other remote interface. The various functions described herein may also provide network switching capabilities, gateway access capabilities, network security functions, content caching and delivery services for the network, network control services, and / or other networking functions.
[0057] Furthermore, one or more modules described herein may convert data, physical devices, and / or representations of physical devices from one form to another. Additionally or alternatively, one or more of the modules described herein may convert a processor, volatile memory, non-volatile memory, and / or any other portion of a physical computing device from one form to another by executing on a computing device, storing data in a computing device, and / or otherwise interacting with a computing device.
[0058] The process parameters and step sequences described and / or illustrated herein are given as examples only, and they may be changed as needed. For example, although the steps illustrated and / or described herein may be shown or discussed in a particular order, the steps do not necessarily need to be performed in the order shown or discussed. The various exemplary methods described and / or illustrated herein may also omit one or more of the steps described or illustrated herein, or include additional steps in addition to the disclosed steps.
[0059] The above description is provided to enable other persons skilled in the art to best utilize the various aspects of the exemplary embodiments disclosed herein. This exemplary description is not intended to be exhaustive or limited to any precise form disclosed. Many modifications and variations are possible without departing from the spirit and scope of the present disclosure. The embodiments disclosed herein should be considered in all respects to be illustrative and not restrictive. When determining the scope of the present disclosure, reference should be made to the attached claims and their equivalents.
[0060] Unless otherwise indicated, the terms "connected to" and "coupled to" (and their derivatives) used in the specification and claims should be interpreted as allowing both direct and indirect (i.e., via other elements or components) connections. In addition, the terms "a" or "an" used in the specification and claims should be interpreted as "at least one". Finally, for ease of use, the terms "including" and "having" (and their derivatives) used in the specification and claims are interchangeable with the word "comprising" and have the same meaning.
Claims
1. A computing device, comprising: The packet forwarding board is configured as follows: forwarding the control service to the service replication device via the first link, and forwarding the data service to the first routing engine via the second link; The business replication device is configured as follows: duplicating the control traffic received from the packet forwarding board, and selecting a control signal received from the first routing engine; The first routing engine is configured to receive a control service from the service replication device; as well as The second routing engine is configured to receive the control service from the service replication device.
2. The computing device of claim 1, wherein: The first link comprises an Ethernet connection to the traffic replication device; and The second link comprises a PCIe connection to the first routing engine.
3. The computing device of claim 2, wherein the packet forwarding plane is further configured to forward the data traffic to the second routing engine via an additional PCIe connection. 4 . The computing device of claim 1 , wherein the traffic replication device is further configured to simultaneously receive control signals from the first routing engine and the second routing engine.
5. The computing device of claim 1, wherein the traffic replication device further comprises a control board driver that causes the traffic replication device to select a control signal received from the second routing engine in response to detecting a failure in the first routing engine.
6. A system comprising: Computing equipment, including: The packet forwarding board is configured as follows: forwarding the control service to the service replication device via the first link, and forwarding the data service to the first routing engine via the second link; The business replication device is configured as follows: duplicating control traffic received from the packet forwarding board, and selecting a control signal received from the first routing engine; The first routing engine is configured to receive a control service from the service replication device; and The second routing engine is configured to receive the control service from the service replication device.
7. The system of claim 6, wherein: The first link comprises an Ethernet connection to the traffic replication device; and The second link comprises a PCIe connection to the first routing engine.
8. The system of claim 7, wherein the packet forwarding board is further configured to forward the data traffic to the second routing engine via an additional PCIe connection.
9. The system of claim 6, wherein the service replication device is further configured to simultaneously receive control signals from the first routing engine and the second routing engine.
10. The system of claim 6, wherein the traffic replication device further comprises a control board driver that causes the traffic replication device to select a control signal received from the second routing engine in response to detecting a failure in the first routing engine.
11. A method comprising: Copying control services received from the packet forwarding board; transmitting the copied control service to the first routing engine and the second routing engine; selecting a control signal from the first routing engine for forwarding; and In response to detecting a failure associated with the first routing engine, a control signal from the second routing engine is selected for forwarding.
12. The method of claim 11, further comprising transmitting the replicated control traffic to the first routing engine and the second routing engine via an Ethernet connection.
13. The method of claim 11, further comprising forwarding the control signal from the first routing engine to one or more network input / output controllers.
14. The method of claim 11, in response to selecting the control signal from the second routing engine for forwarding, further comprising: stopping transmission of the control signal received from the first routing engine; as well as The control signal from the second routing engine is forwarded to the packet forwarding board.
15. The method of claim 11, wherein selecting the control signal from the second routing engine is in response to receiving a drive signal instructing a multiplexer to select the control signal from the second routing engine.