Patent Description:
Networks, data centers, cloud infrastructure, etc. are realized ultimately through physical hardware. The physical hardware is used to realize networking, computing, and/or storage functions, including packet switching and the like. Conventionally, there are generally two approaches for how physical hardware is deployed-through a chassis and associated modules or through a rack mounted unit. A chassis-based system includes a chassis with multiple slots and a backplane that supports different modules, line cards, circuit packs, blades, etc. (for simplicity, these are referred to as modules). The chassis-based system allows deployment flexibility where modules as-needed or required are selectively inserted in the chassis. The rack-mounted unit is also referred to as "pizza boxes" and generally includes <NUM>-<NUM> (or more) Rack Unit (RU or simply U and which is a standard unit of measurement of <NUM> or <NUM>") high completely enclosed form factor. The rack mounted unit differs from a chassis in that all of the hardware is already included as the rack mounted unit is deployed. For example, data centers realize network elements such as in a leaf/spine architecture in a completely decentralized and modular form using rack mounted units. Another type of approach is a combination of the chassis and rack-mounted unit, such as described in commonly assigned <CIT>, and entitled "Modular network element architecture". This combination describes an approach similar to the Distributed Disaggregated Chassis (DDC) white box design for the Open Compute Project (OCP).

A network element can be said to operate a control plane (also may be referred to as a management plane) and a data plane (also may be referred to as a traffic plane, forwarding plane, etc.). The data plane refers to all the functions and processes that forward packets/frames from one interface to another. The control plane refers to all the functions and processes that determine which path to use, e.g., routing protocols, spanning tree, Label Distribution Protocol (LDP), etc. From a hardware perspective, line modules, line cards, data modules, etc. may include ports and switching circuitry for implementing the data plane. A network element can include at least two router processors for implementing the control plane. As described herein, a router processor is a module, device, server, etc. configured to implement the control plane. Other terms in the art for a router processor include a controller, control module, a shelf processor, a router processor, a control plane processor, etc., all are contemplated herein. For description purposes, the term router processor is used herein.

Network elements require periodic software upgrades, updates, etc. while deployed and operational. A key objective during a software upgrade is the data plane remains operational, while the control plane does go down during the operation. Non-Stop Forwarding (NSF) refers to the functionality where a network element remains operational in the data plane during an ISSU. Non-Stop Routing (NSR) refers to a conventional technique to keep the control plane operational, while the router processors are upgraded at the network element. There are issues with conventional NSR techniques. First, NSR implementations are not available for all protocols, by all vendors, on all platforms, etc. Second, NSR adds significant complexity to the protocol implementation, as it requires initial synchronization of state between a primary and backup node protocol software processes, and then would require a continuous synchronization of state between active and backup nodes to maintain the exact control plane state at any time. Third, the complex NSR implementation adds risk to the availability of the protocol software implementation and impacts control plane convergence because of the ongoing synchronization of state between active and backup. Finally, NSR has not been widely deployed by customers. Other prior-art methods for In-Service Software Upgrade utilizing two router processors are disclosed in the patent publications <CIT> and <CIT>.

This invention is defined by the appended claims. The present disclosure relates to systems and methods for In-Service Software Upgrade (ISSU) systems and methods utilizing two router processors in a network element. Specifically, the present disclosure includes two router processors in a network element that appear as two separate network elements, each configured to implement a separate control plane. ISSU is achieved with no extensions to the routing protocols by having the network element appear in the Interior Gateway Protocol (IGP) routing domain using existing IGP mechanisms as two network elements (possibly as Primary/Backup nodes or as active/active nodes), both network elements will have exactly the same set of links and build IGP adjacencies to the same set of neighbors, now when one node (router processor) gets upgraded and goes down, the other node (router processor) remains up, and Shortest Path First (SPF) computation performed by all neighbors result in the same Forwarding Information Base (FIB) maintaining NSF. As described herein, the terms node and network element may be used interchangeably, both referring to an entity in a network. The present disclosure provides a novel technique to use existing IGP mechanisms to make a routing node appear in the IGP Link-State Database (LSD) as two routing nodes, so when one of those nodes get upgraded the other node can maintain the control plane sessions to its peers. Advantageously, the approach described herein does not require an NSR implementation and is not subject to the above issues with NSR. In the approach described herein, rather than primary and backup router processors in a routing node, the router processors appear as two different nodes in the IGP domain having the same set of links and the same set of neighbors.

In an embodiment, a node includes one or more line cards interconnected to one another via a switching fabric and configured to implement a data plane; and a first router processor and a second router processor communicatively coupled to the one or more line cards, and each configured to implement a separate control plane, such that the node appears in a link-state database as two separate nodes. The node can further include one or more fabric nodes configured to implement the switching fabric. Responsive to an in-service software upgrade, the first router processor can be upgraded and down while the second router processor can be active, thereby preserving routing and forwarding. The one or more line cards can include a first Virtual Local Area Networking (VLAN) for the first router processor and a second VLAN for the second router processor, and wherein the first VLAN and the second VLAN can be associated with a same physical interface on the one or more line cards. Adjacencies with neighbors connected to the one or more line cards can be built using the first VLAN for the first router processor and the second VLAN for the second router processor. The separate control planes can each have a same set of links with the first VLAN and the second VLAN being different. The data plane can perform Equal-Cost Multi-Path routing between both the first VLAN and the second VLAN. The data plane can perform one of (i) UCMP routing between both the first VLAN and the second VLAN and (ii) all routing to the first VLAN when it is active with the second VLAN as standby. For the two separate nodes, each of the first router processor and the second router processor can be configured with a different router identifier.

In another embodiment, a non-transitory computer-readable medium includes instructions stored thereon for programming one or more devices to perform steps of operating a data plane over one or more line cards, associated with a node, interconnected to one another via a switching fabric; and implementing two control planes for the node via a first router processor and a second router processor communicatively coupled to the one or more line cards, such that the node appears in a link-state database as two separate nodes. The steps cam further include performing an in-service software upgrade where the first router processor is upgraded and down while the second router processor is active, thereby preserving routing and forwarding. The one or more line cards can include a first Virtual Local Area Networking (VLAN) for the first router processor and a second VLAN for the second router processor, and wherein the first VLAN and the second VLAN can be associated with a same physical interface on the one or more line cards. Adjacencies with neighbors connected to the one or more line cards can be built using the first VLAN for the first router processor and the second VLAN for the second router processor. The separate control planes can each have a same set of links with the first VLAN and the second VLAN being different. The data plane can perform Equal-Cost Multi-Path routing between both the first VLAN and the second VLAN.

In a further embodiment, a method includes operating a data plane over one or more line cards, associated with a node, interconnected to one another via a switching fabric; and implementing two control planes for the node via a first router processor and a second router processor communicatively coupled to the one or more line cards, such that the node appears in a link-state database as two separate nodes. The method can further include performing an in-service software upgrade where the first router processor is upgraded and down while the second router processor is active, thereby preserving routing and forwarding. The one or more line cards can include a first Virtual Local Area Networking (VLAN) for the first router processor and a second VLAN for the second router processor, and wherein the first VLAN and the second VLAN can be associated with a same physical interface on the one or more line cards. Adjacencies with neighbors connected to the one or more line cards can be built using the first VLAN for the first router processor and the second VLAN for the second router processor. The separate control planes can each have a same set of links with the first VLAN and the second VLAN being different.

Again, the present disclosure relates to systems and methods for In-Service Software Upgrade (ISSU) systems and methods utilizing two router processors in a network element. Specifically, the present disclosure includes two router processors in a network element, each configured to implement a separate control plane, that appear as two separate network elements. ISSU is achieved with no extensions to the routing protocols by having the network element appear in the Interior Gateway Protocol (IGP) routing domain using existing IGP mechanisms as two network elements (possibly as Primary/Backup nodes or as active/active nodes), both network elements will have exactly the same set of links and build IGP adjacencies to the same set of neighbors, now when one node (router processor) gets upgraded and goes down, the other node (router processor) remains up, and Shortest Path First (SPF) computation performed by all neighbors result in the same Forwarding Information Base (FIB) maintaining NSF. As described herein, the terms node and network element may be used interchangeably, both referring to an entity in a network. The present disclosure provides a novel technique to use existing IGP mechanisms to make a routing node appear in the IGP Link-State Database (LSD) as two routing nodes, so when one of those nodes get upgraded the other node can maintain the control plane sessions to its peers. Advantageously, the approach described herein does not require an NSR implementation and is not subject to the above issues with NSR. In the approach described herein, rather than primary and backup router processors in a routing node, the router processors appear as two different nodes in the IGP domain having the same set of links and the same set of neighbors.

The following acronyms/abbreviations are utilized herein:.

<FIG> is a block diagram of an example implementation of a node <NUM>. Those of ordinary skill in the art will recognize <FIG> is a functional diagram in an oversimplified manner, and a practical embodiment may include additional components and suitably configured processing logic to support known or conventional operating features that are not described in detail herein. In an embodiment, the node <NUM> is a packet switch, but those of ordinary skill in the art will recognize the systems and methods described herein can operate with other types of network elements and other implementations. In this embodiment, the node <NUM> includes a plurality of modules <NUM>, <NUM> interconnected via an interface <NUM>. The modules <NUM>, <NUM> are also known as blades, line cards, line modules, circuit packs, pluggable modules, etc. and generally refer to components mounted on a chassis, shelf, etc. of a data switching device, i.e., the node <NUM>.

Also, the modules <NUM>, <NUM> can be rack-mounted units or "pizza boxes. " Various hardware implementations are contemplated. Specifically, the term module <NUM>, <NUM> is meant to cover any hardware implementation. Each of the modules <NUM>, <NUM> can include numerous electronic devices and/or optical devices mounted on a circuit board along with various interconnects, including interfaces to the chassis, shelf, etc. Further, the node <NUM> can be configured as a single "shelf" or multiple "shelves. " Also, those skilled in the art will recognize the term shelf can refer to a chassis, a rack-mounted unit (pizza box), etc. The node <NUM> is a single entity from a network management, Operations, Administration, Maintenance, and Provisioning (OAM&P), control plane, etc. perspective.

Two example modules <NUM>, <NUM> are illustrated with router processors 12A, 12B and line card <NUM>. The router processors 12A, 12B can include a microprocessor, memory, software, and a network interface, and an example implementation is shown in <FIG>. Specifically, the microprocessor, the memory, and the software can collectively control, configure, provision, monitor, etc. the node <NUM>, for the control plane, for OAM&P, etc. Additionally, the router processors 12A, 12B can include a database that tracks and maintains provisioning, configuration, operational data, and the like. For example, the router processors 12A, 12B can maintain dynamic system information including forwarding databases, FIB, protocol state machines, the operational status of the ports <NUM>, and the like. Again, conventionally, the router processors 12A, 12B operate in a redundant or protected configuration such as <NUM>:<NUM>, <NUM>+<NUM>, active/standby, etc. In the present disclosure, both the router processors 12A, 12B are active, each appearing as a different node <NUM> to the control plane. That is, the node <NUM> appears as two identical nodes based on the router processors 12A, 12B. The node <NUM>, in the approach described herein, is two entities from a network management, OAM&P, control plane, etc. perspective. As such, it is possible to perform ISSU without NSR as one router processor 12A, 12B can be updated while the other router processor 12A, 12B is active.

The line card <NUM> includes ports <NUM>, such as a plurality of physical ports disposed on an exterior of the line card <NUM><NUM> for receiving ingress/egress connections. Additionally, the line card <NUM> can include switching components to form a switching fabric via the interface <NUM> between all of the ports <NUM>, allowing data traffic (i.e., packets) to be switched/forwarded between the ports <NUM> on the various line cards <NUM>. The switching fabric is a combination of hardware, software, firmware, etc. that moves data coming into the node <NUM> out by the correct port <NUM> to the next node <NUM>. "Switching fabric" includes switching units in a node; integrated circuits contained in the switching units; and programming that allows switching paths to be controlled. Note, the switching fabric can be distributed on the modules <NUM>, in a separate module (illustrated in <FIG> as a fabric node), integrated on the line module <NUM>, a combination thereof, or the like.

Again, those of ordinary skill in the art will recognize the node <NUM> can include other components which are omitted for illustration purposes, and that the systems and methods described herein are contemplated for use with a plurality of different network elements with the node <NUM> presented as an example type of network element. For example, in another embodiment, the node <NUM> may include corresponding functionality in a distributed fashion. In a further embodiment, the chassis and modules may be a single integrated unit, namely a rack-mounted shelf where the functionality of the modules <NUM>, <NUM> is built-in, i.e., a "pizza-box" configuration. That is, <FIG> is meant to provide a functional view, and those of ordinary skill in the art will recognize actual hardware implementations may vary.

<FIG> is a block diagram of an example router processor <NUM>, which can be used in the node <NUM>. The router processor <NUM> can be part of the node <NUM>, or a stand-alone device communicatively coupled to the node <NUM>. Also, the router processor 12can be referred to in implementations as a controller, a control module, a shelf controller, a shelf processor, a system controller, etc. The router processor <NUM> can include a processor <NUM>, which is a hardware device for executing software instructions. The processor <NUM> can be any custom made or commercially available processor, a central processing unit (CPU), an auxiliary processor among several processors associated with the router processor <NUM>, a semiconductor-based microprocessor (in the form of a microchip or chipset), or generally any device for executing software instructions. When the router processor <NUM> is in operation, the processor <NUM> is configured to execute software stored within the memory, to communicate data to and from the memory, and to generally control operations of the router processor <NUM> pursuant to the software instructions. The router processor <NUM> can also include a network interface <NUM>, a data store <NUM>, memory <NUM>, an I/O interface <NUM>, and the like, all of which are communicatively coupled to one another and to the processor <NUM>.

The network interface <NUM> can be used to enable the router processor <NUM> to communicate on a data communication network, such as to communicate to a management system, to a Software-Defined Networking (SDN) controller, and the like. The network interface <NUM> can include, for example, an Ethernet module. The network interface <NUM> can include address, control, and/or data connections to enable appropriate communications on the network. The data store <NUM> can be used to store data, such as control plane information, provisioning data, OAM&P data, etc. The data store <NUM> can include any of volatile memory elements (e.g., random access memory (RAM, such as DRAM, SRAM, SDRAM, and the like)), nonvolatile memory elements (e.g., ROM, hard drive, flash drive, CDROM, and the like), and combinations thereof. Moreover, the data store <NUM> can incorporate electronic, magnetic, optical, and/or other types of storage media. The memory <NUM> can include any of volatile memory elements (e.g., random access memory (RAM, such as DRAM, SRAM, SDRAM, etc.)), nonvolatile memory elements (e.g., ROM, hard drive, flash drive, CDROM, etc.), and combinations thereof. Note that the memory <NUM> can have a distributed architecture, where various components are situated remotely from one another, but may be accessed by the processor <NUM>. The I/O interface <NUM> includes components for the router processor <NUM> to communicate with other devices, such as direct interfaces.

<FIG> is a block diagram of an example implementation of a node 10A in a Distributed Disaggregated Chassis (DDC) configuration. The node 10A is a specific implementation of a network element where the router processors <NUM>, the line cards <NUM>, and fabric nodes <NUM> are in different rack-mounted units or pizza boxes. In the example of <FIG>, there are two router processors 12A, 12B, four line cards 14A, 14B, 14C, 14D, and two fabric nodes 32A, 32B. Of course, other implementations are contemplated. Note, the line cards <NUM> can be any number, such as up to N cards. The fabric nodes <NUM> can provide the switching fabric between the line cards <NUM>.

The following description utilizes the node 10A in the DDC configuration for describing the ISSU approach with the two active router processors 12A, 12B. Those skilled in the art will appreciate this ISSU approach can apply to the generalized node <NUM> or any other network element. Again, ISSU is a key feature that allows a service provider to upgrade router nodes <NUM>, 10A without impacting services. Again, to support ISSU, many routing protocols have been extended to support NSR, for maintaining sessions and routing state across primary and backup routing processors <NUM> running the routing protocol instance for ISSU with no impact on the service. The NSR implementation added complexity to the routing protocol implementations and increased the risk to the availability of those protocols.

In the present disclosure, a new simpler mechanism to achieve ISSU without the added complexity of the NSR implementation is proposed. ISSU will be achieved with no extensions to the routing protocols by having the node <NUM>, 10A appear in the IGP routing domain using existing IGP mechanisms as two nodes (possibly as Primary/Backup nodes or as active/active nodes), both nodes will have exactly the same set of links and will build IGP adjacencies to the same set of neighbors <NUM> (labeled NBR1 34A, NBR1' 34B, NBR2 34C, NBR3 34D, NBR4 32E), now when one node gets upgraded and goes down the other node remains up, and SPF computation performed by all neighbors <NUM> will result in the same FIB maintaining NSF. The novelty of the approach is how to use existing IGP mechanisms to make a routing node <NUM>, 10A appear in an IGP Link-State Database as two routing nodes, so when one of those nodes get upgraded the other node can maintain the control plane sessions to its peers. That is, the node <NUM>, 10A appears as two nodes in a network, with different IP/router identifiers.

In the node 10A, VLAN1 and VLAN2 are illustrated, for example, associated with the IGP protocol, running in the corresponding VRF table. Note, the terms VLAN1, VLAN2 are presented for illustration purposes, and these can be any value to differentiate between one another. As is described herein, one VLAN (e.g., VLAN1) is associated with the router processor 12A, and another VLAN (e.g., VLAN2) is associated with the router processor 12B. Any packets received on VLAN1 or VLAN2 will be looked up in the same VRF table by all line cards <NUM> and neighbors <NUM>.

The router processors 12A, 12B appear as two nodes in the IGP Link-State Database. As is known in the are LSAs are provided to describe the network topology and each node <NUM>, 10A stores the received LSAs in the Link-State Database.

The router processor 12A builds adjacencies with the neighbors <NUM> using the VLAN1, and the router processor 12B builds adjacencies with the neighbors <NUM> using the VLAN <NUM>.

Note, assuming p2p VLAN interfaces for the VLAN1, VLAN2, i.e., no intermediate devices between the line cards <NUM> and the neighbors <NUM>, it is possible to use unnumbered interfaces for connectivity to the neighbors <NUM>. An unnumbered interface is one that does not have an explicit IP address assigned and is configured to "borrow" the IP address of another interface on the node <NUM>, 10A.

The neighbors <NUM> will perform SPF computation using the VLAN1 or VLAN <NUM> as the next-hop interface. As such, if the router processor 12A is down during an ISSU, the neighbors <NUM> will recompute and use the VLAN2 as the next-hop interface.

NSF is always maintained since both VLAN1 and VLAN2 can be used to forward traffic without impacting forwarding.

Also, a key advantage is there is no need to upgrade or specially configure the neighbors <NUM> to support this approach. The neighbors <NUM> can reach the node <NUM>, 10A via the VLAN1 or the VLAN2, which to it appears as different links, but are actually the same. Note, the router processors 12A, 12B each appear as a separate node, i.e., separate control plane instances for the same node <NUM>, 10A. However, there is only one data plane instance operating on the line cards <NUM>. The use of the VLAN1, VLAN2 allows separation of the data plane instance between the separate control plane instances.

Both the active router processors 12A, 12B receive the same set of LSAs and compute the same set of routes. However, one router processor 12A will set up the data plane to reach the neighbors <NUM> via one VLAN (e.g., VLAN1) while the other router processor 12B will set up via the other VLAN (e.g., VLAN2). The data plane can ECMP traffic via both VLANs to reach the neighbor <NUM>, and the neighbors <NUM> as well can ECMP traffic to both VLANs associated with the same physical interface on the line cards <NUM>.

When there is an upgrade or failure of a router processor, e.g., the router processor 12A, the route paths associated with this router processor control plane are deleted from the data plane line card <NUM>. However, the other route paths learned from the other router processor control plane, e.g., the router processor 12B, remain, and there is no impact to traffic forwarding to the neighbors <NUM>.

As such, ISSU is achieved with no extensions to the routing protocols by having the node <NUM>, 10A appear in the IGP routing domain using existing IGP mechanisms as two nodes, for the router processor 12A, 12B (possibly as Primary/Backup nodes or as active/active nodes). Again, both nodes have the same set of links and build IGP adjacencies to the same set of neighbors <NUM>. When one node (router processor 12A) gets upgraded and goes down, the other node (router processor 12B) remains up, and the SPF computation performed by all the neighbors <NUM> results in the same FIB maintaining NSF.

Again, the two router processors 12A, 12B approach described herein eliminates the need for the node <NUM>, 10A to implement NSR or NSF. With both the present approach and NSR, there is only one data plane instance on the line cards <NUM>. With the present approach, both active router processors 12A, 12B will receive the same set of LSAs and will compute the same set of routes, however one router processor 12A, 12B will setup the data plane to reach the neighbors <NUM> via one VLAN while the other will set up to go via another VLAN. The data plane can ECMP traffic to via both VLANs to reach the neighbor <NUM>, and the neighbors <NUM> as well can ECMP traffic to both VLANs associated with the same physical interface on the line card <NUM>.

The ECMP can be <NUM>/<NUM> or can be a different percentage, or only one VLAN can be active and the other standby, all will depend on the cost advertised by the router processors 12A, 12B routing control plane.

<FIG> is a flowchart of a process <NUM> for using the two router processors 12A, 12B to implement two separate control planes for the node <NUM>, 10A. The process <NUM> contemplates implementation by the node <NUM>, 10A as a method as well as a non-transitory computer-readable medium having instructions stored thereon for programming one or more devices in the nodes <NUM>, 10A to perform steps.

The steps include operating a data plane over one or more line cards, associated with a node, interconnected to one another via a switching fabric (step <NUM>); and implementing two control planes for the node via a first router processor and a second router processor communicatively coupled to the one or more line cards, such that the node appears in a link-state database as two separate nodes (step <NUM>). The steps can further include performing an in-service software upgrade where the first router processor is upgraded and down while the second router processor is active, thereby preserving routing and forwarding (step <NUM>).

The one or more line cards can include a first Virtual Local Area Networking (VLAN) for the first router processor and a second VLAN for the second router processor, and wherein the first VLAN and the second VLAN are associated with a same physical interface on the one or more line cards. Adjacencies with neighbors connected to the one or more line cards can be built using the first VLAN for the first router processor and the second VLAN for the second router processor. The separate control planes can each have the same set of links with the first VLAN and the second VLAN being different. The data plane can perform Equal-Cost Multi-Path routing to both the first VLAN and the second VLAN.

In another embodiment, the node <NUM>, 10A includes one or more line cards <NUM> interconnected to one another via a switching fabric and configured to implement a data plane; and a first router processor 12A and a second router processor 12B communicatively coupled to the one or more line cards <NUM>, and each configured to implement a separate control plane, such that the node <NUM>, 10A appears in a link-state database as two separate nodes. The node <NUM>, 10A can further include one or more fabric nodes <NUM> configured to implement the switching fabric.

Responsive to an in-service software upgrade, the first router processor 12A is upgraded and down while the second router processor 12B is active, thereby preserving routing and forwarding.

The one or more line cards <NUM> can include a first Virtual Local Area Networking (VLAN) for the first router processor 12A and a second VLAN for the second router processor 12B, and wherein the first VLAN and the second VLAN are associated with a same physical interface on the one or more line cards <NUM>. Adjacencies with neighbors <NUM> connected to the one or more line cards <NUM> can be built using the first VLAN for the first router processor 12A and the second VLAN for the second router processor 12B.

The separate control planes can each have the same set of links with the first VLAN and the second VLAN being different. The data plane can perform Equal-Cost Multi-Path routing to both the first VLAN and the second VLAN. The data plane can also perform one of (i) Unequal-Cost Multiple Path (UCMP) routing between both the first VLAN and the second VLAN and (ii) all routing to the first VLAN when it is active with the second VLAN as standby.

It will be appreciated that some embodiments described herein may include or utilize one or more generic or specialized processors ("one or more processors") such as microprocessors; Central Processing Units (CPUs); Digital Signal Processors (DSPs): customized processors such as Network Processors (NPs) or Network Processing Units (NPUs), Graphics Processing Units (GPUs), or the like; Field-Programmable Gate Arrays (FPGAs); and the like along with unique stored program instructions (including both software and firmware) for control thereof to implement, in conjunction with certain non-processor circuits, some, most, or all of the functions of the methods and/or systems described herein. Alternatively, some or all functions may be implemented by a state machine that has no stored program instructions, or in one or more Application-Specific Integrated Circuits (ASICs), in which each function or some combinations of certain of the functions are implemented as custom logic or circuitry. Of course, a combination of the aforementioned approaches may be used. For some of the embodiments described herein, a corresponding device in hardware and optionally with software, firmware, and a combination thereof can be referred to as "circuitry configured to," "logic configured to," etc. perform a set of operations, steps, methods, processes, algorithms, functions, techniques, etc. on digital and/or analog signals as described herein for the various embodiments.

Moreover, some embodiments may include a non-transitory computer-readable medium having instructions stored thereon for programming a computer, server, appliance, device, processor, circuit, etc. to perform functions as described and claimed herein. Examples of such non-transitory computer-readable medium include, but are not limited to, a hard disk, an optical storage device, a magnetic storage device, a Read-Only Memory (ROM), a Programmable ROM (PROM), an Erasable PROM (EPROM), an Electrically EPROM (EEPROM), Flash memory, and the like. When stored in the non-transitory computer-readable medium, software can include instructions executable by a processor or device (e.g., any type of programmable circuitry or logic) that, in response to such execution, cause a processor or the device to perform a set of operations, steps, methods, processes, algorithms, functions, techniques, etc. as described herein for the various embodiments.

Claim 1:
A node (<NUM>, 10A) comprising:
one or more line cards (<NUM>) interconnected to one another via a switching fabric and configured to implement a data plane; and
a first router processor (12A) and a second router processor (12B) communicatively coupled to the one or more line cards (<NUM>), and each configured to implement a separate control plane and each is active at a same time, except in an in-service software upgrade, wherein
the node (<NUM>, 10A) appears as two separate network elements with a same set of links and a same set of neighbors where each of the first router processor (12A) and the second router processor (12B) is configured to separately build adjacencies to the same set of neighbors in a network,
wherein the node (<NUM>, 10A) has a common physical link to a respective neighbor on the one or more line cards (<NUM>) for the first router processor (12A) and the second router processor (12B) that each provide separate control plane instances.