US20160285765A1 - Virtual network device architecture - Google Patents

Virtual network device architecture Download PDF

Info

Publication number
US20160285765A1
US20160285765A1 US15/175,787 US201615175787A US2016285765A1 US 20160285765 A1 US20160285765 A1 US 20160285765A1 US 201615175787 A US201615175787 A US 201615175787A US 2016285765 A1 US2016285765 A1 US 2016285765A1
Authority
US
United States
Prior art keywords
physical line
database
line card
information
network
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
US15/175,787
Inventor
Krishnamurthy Subramanian
Rahul Kulkarni
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Force10 Networks Inc
Original Assignee
Force10 Networks Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority to US12/722,568 priority Critical patent/US9413649B2/en
Priority to US15/175,787 priority patent/US20160285765A1/en
Assigned to FORCE10 NETWORKS, INC. reassignment FORCE10 NETWORKS, INC. ASSIGNMENT OF ASSIGNORS INTEREST (SEE DOCUMENT FOR DETAILS). Assignors: KULKARNI, RAHUL, SUBRAMANIAN, KRISHNAMURTHY
Application filed by Force10 Networks Inc filed Critical Force10 Networks Inc
Assigned to BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT reassignment BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT SUPPLEMENT TO PATENT SECURITY AGREEMENT (ABL) Assignors: AVENTAIL LLC, DELL PRODUCTS L.P., DELL SOFTWARE INC., FORCE10 NETWORKS, INC., WYSE TECHNOLOGY L.L.C.
Assigned to BANK OF AMERICA, N.A., AS COLLATERAL AGENT reassignment BANK OF AMERICA, N.A., AS COLLATERAL AGENT SUPPLEMENT TO PATENT SECURITY AGREEMENT (TERM LOAN) Assignors: AVENTAIL LLC, DELL PRODUCTS L.P., DELL SOFTWARE INC., FORCE10 NETWORKS, INC., WYSE TECHNOLOGY L.L.C.
Assigned to THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT reassignment THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT SUPPLEMENT TO PATENT SECURITY AGREEMENT (NOTES) Assignors: AVENTAIL LLC, DELL PRODUCTS L.P., DELL SOFTWARE INC., FORCE10 NETWORKS, INC., WYSE TECHNOLOGY L.L.C.
Assigned to DELL PRODUCTS L.P., FORCE10 NETWORKS, INC., DELL SOFTWARE INC., AVENTAIL LLC, WYSE TECHNOLOGY L.L.C. reassignment DELL PRODUCTS L.P. RELEASE OF SEC. INT. IN PATENTS (ABL) Assignors: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
Assigned to DELL PRODUCTS L.P., DELL SOFTWARE INC., AVENTAIL LLC, WYSE TECHNOLOGY L.L.C., FORCE10 NETWORKS, INC. reassignment DELL PRODUCTS L.P. RELEASE OF SEC. INT. IN PATENTS (TL) Assignors: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Assigned to DELL SOFTWARE INC., AVENTAIL LLC, WYSE TECHNOLOGY L.L.C., DELL PRODUCTS L.P., FORCE10 NETWORKS, INC. reassignment DELL SOFTWARE INC. RELEASE OF SEC. INT. IN PATENTS (NOTES) Assignors: BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Assigned to THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT reassignment THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT SECURITY AGREEMENT Assignors: ASAP SOFTWARE EXPRESS, INC., AVENTAIL LLC, CREDANT TECHNOLOGIES, INC., DELL INTERNATIONAL L.L.C., DELL MARKETING L.P., DELL PRODUCTS L.P., DELL SOFTWARE INC., DELL SYSTEMS CORPORATION, DELL USA L.P., EMC CORPORATION, EMC IP Holding Company LLC, FORCE10 NETWORKS, INC., MAGINATICS LLC, MOZY, INC., SCALEIO LLC, SPANNING CLOUD APPS LLC, WYSE TECHNOLOGY L.L.C.
Assigned to CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT reassignment CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT SECURITY AGREEMENT Assignors: ASAP SOFTWARE EXPRESS, INC., AVENTAIL LLC, CREDANT TECHNOLOGIES, INC., DELL INTERNATIONAL L.L.C., DELL MARKETING L.P., DELL PRODUCTS L.P., DELL SOFTWARE INC., DELL SYSTEMS CORPORATION, DELL USA L.P., EMC CORPORATION, EMC IP Holding Company LLC, FORCE10 NETWORKS, INC., MAGINATICS LLC, MOZY, INC., SCALEIO LLC, SPANNING CLOUD APPS LLC, WYSE TECHNOLOGY L.L.C.
Publication of US20160285765A1 publication Critical patent/US20160285765A1/en
Assigned to THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A. reassignment THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A. SECURITY AGREEMENT Assignors: CREDANT TECHNOLOGIES, INC., DELL INTERNATIONAL L.L.C., DELL MARKETING L.P., DELL PRODUCTS L.P., DELL USA L.P., EMC CORPORATION, EMC IP Holding Company LLC, FORCE10 NETWORKS, INC., WYSE TECHNOLOGY L.L.C.
Assigned to THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A. reassignment THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A. SECURITY AGREEMENT Assignors: CREDANT TECHNOLOGIES INC., DELL INTERNATIONAL L.L.C., DELL MARKETING L.P., DELL PRODUCTS L.P., DELL USA L.P., EMC CORPORATION, EMC IP Holding Company LLC, FORCE10 NETWORKS, INC., WYSE TECHNOLOGY L.L.C.
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup or address filtering
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/58Association of routers
    • H04L45/586Virtual routers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/10Switching fabric construction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L49/00Packet switching elements
    • H04L49/25Routing or path finding through a switch fabric
    • H04L49/253Connections establishment or release between ports
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Application independent communication protocol aspects or techniques in packet data networks
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32High level architectural aspects of 7-layer open systems interconnection [OSI] type protocol stacks
    • H04L69/322Aspects of intra-layer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/324Aspects of intra-layer communication protocols among peer entities or protocol data unit [PDU] definitions in the data link layer, i.e. layer two, e.g. HDLC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Application independent communication protocol aspects or techniques in packet data networks
    • H04L69/30Definitions, standards or architectural aspects of layered protocol stacks
    • H04L69/32High level architectural aspects of 7-layer open systems interconnection [OSI] type protocol stacks
    • H04L69/322Aspects of intra-layer communication protocols among peer entities or protocol data unit [PDU] definitions
    • H04L69/325Aspects of intra-layer communication protocols among peer entities or protocol data unit [PDU] definitions in the network layer, i.e. layer three, e.g. X.25

Abstract

A network device such as a router or a switch is comprised of a control module and a plurality of physical line cards. The control module includes a control processor virtual machine, a plurality of route processing virtual machines and one or more instances of a line card virtual machine. The line card virtual machine operates to receive routing information base update information, to modify the routing information base according to the update information and to update each instance of a plurality of forwarding information bases included on each of the physical line cards.

Description

    CROSS-REFERENCE TO RELATED APPLICATIONS
  • This is a Continuation application to U.S. Utility application Ser. No. 12/722,568, filed Mar. 12, 2010, entitled “VIRTUAL NETWORK DEVICE ARCHITECTURE,” Attorney Docket No. 16356.1364, the disclosure of which is incorporated herein by reference in its entirety.
  • BACKGROUND
  • The invention relates generally to the technical area of network switch and router architecture and specifically to a network switch or router architecture that is comprised of virtualized control and data plane functionality.
  • Modular network routers or switches (network devices) typically include a chassis with separate cards or modules for the provision of different functions associated with their operation. Such a modular architecture can include a control module that operates to provide overall control of the network device operation and to provide routing and/or switching protocol functionality (all generally referred to as control plane functions), one or more line cards to provide packet processing and forwarding functionality (generally referred to as data or forwarding plane functions) and one or more switching cards to switch packets between the line cards. All of these cards can be connected to a backplane that is arranged in the network device chassis. FIG. 1 generally illustrates this prior art switch architecture.
  • The switch/router 10 in FIG. 1 includes a control module and a plurality of line cards all connected by a switch fabric. The control module is comprised of three CPUs, CPU-A, CPU-B and CPU-C, each of which operates to perform different functionality in support of the overall system operation. In this case, CPU-A can be dedicated to certain management functions such as user interface management, system chassis management, system configuration management and management of system security to name only a few functions. CPU-B can be dedicated to running layer 3 routing protocols such as the border gateway protocol (BGP), the open shortest path first (OSPF) protocol, routing information protocol (RIP) to name just a few and CPU-C can be dedicated to running layer 2 switching protocols such as the Internet group management protocol (IGMP), address resolution protocol (ARP), spanning tree protocol (STP) and the virtual router redundancy protocol (VRRP) to name just a few. The routing protocols running in CPU-B generally send messages to and receive messages from the surrounding network devices in order to learn certain information about these devices and their relationship to the network. This information can include their IP address, distance information, link attributes, group membership information to name only a few. The switching protocols running in CPU-C generally gather information from the packets being processed by the host device, which in this case is the router 10. This information can include the MAC address and the port I.D. of another network device. The information received by the protocols running on CPU-B and CPU-C can be used to derive the shortest path from the host network device to another, neighboring network device or to calculated the distance between two network devices, to calculate a next hop address for instance or spanning trees and other information used to construct and maintain layer 2 switching tables and layer 3 routing tables. The switching table and routing table information is then made available to the line cards which use this information to update forwarding tables which it uses to process packets or frames of information arriving at the router 10.
  • Continuing to refer to FIG. 1, each of the line cards includes a CPU which is largely dedicated to running processes to support the construction and maintenance of layer 2 and/or a layer 3 forwarding tables stored in memory on each of the line cards. The information contained in each of the layer 2 and layer 3 forwarding tables stored in each line card is substantially the same. There are other tables stored and maintain by each of the line cards as well, and each of these tables can include different information. These tables can be an ingress L2 access control list (ACL) table, VLAN membership table, L2 QoS table, MPLS forwarding table and a next hop table to name only a few. Each of the line card CPUs also is responsible for running a MAC agent and a FIB agent. The MAC agent is primarily responsible for communicating with some of the layer 2 processes running on CPU-C of the control module to identify and receive commands or actions they need to take regarding the maintenance of the layer 2 forwarding table(s). The FIB agent is primarily responsible for communicating with some of the layer 3 processes running on CPU-B of the control module to identify and receive commands or actions they need to take regarding the maintenance of the layer 3 forwarding table(s).
  • Each line card is designed to support some fixed number of input/output ports (ports) that operate in the data plane to receive packets from and transmit packets to the network to which the network device is connected. Each port is typically designed to process a maximum number of packets or bytes per second. As the volume of network traffic increases, it becomes necessary to design network devices, such as routers and switches that have the capability to handle the increased volume of traffic. Generally, the solution to this problem has been to add additional resources. One solution to this problem is to design line cards that are capable of processing and forwarding the packets more rapidly. Another solution to this problem is to add more ports to each of the line cards. Typically, both of these solutions are implemented together, in which case it may be necessary to add additional components to the line card in order to support the additional ports. As there is a finite amount of space on each line card to support all of the functionality associated with it (additional memory and packet processing devices, etc), adding more resources to a line card can necessitate increasing its dimensions which is not always desirable or possible. Consequently, it is desirable to design a network device that operates to very efficiently utilize the resources provided for processing packets and frames of information and for running the various network protocols.
  • SUMMARY
  • We have discovered that it is possible to very efficiently utilize processing and storage resources comprising a network device by virtualizing one or more control and data plane processes running on the network device. Further, we discovered that virtualizing one or more control and data plane processes obviates the need for line card processors used to implement the control and data plane processes. Still further, the virtualization of one or more control and data plane processes eliminates the need for one or more CPUs to support the layer 2 and layer 3 protocols, and frees up space on the line card for additional ingress and egress ports. As a consequence, the system uses less power, the system cost is lowered, the system processing and memory resources are very efficiently utilized, less memory is used to maintain the forwarding tables and to store the line card agents and the line cards are highly available.
  • In one embodiment, a network device is comprised of a plurality of physical line cards that include ingress and egress ports and means for processing and forwarding one or more packets of information, and each one of the plurality of physical line cards is in communication with one or more virtual processes that operate to support the packet processing and forwarding means. From another perspective, a method of operating a network device comprises one or more virtual processes that receive information that they use to modify a first database, an agent running on at least one of the one or more virtual processes that detects the modification to the first database, and the agent using some information associated with the modification to the first database to modify a second database included in a physical line card.
  • BRIEF DESCRIPTION OF THE DRAWINGS
  • FIG. 1 is a block diagram of a prior art router/switch architecture showing one control module and a number of line cards interconnected over a switch fabric.
  • FIG. 2 is a block diagram of a network device showing a control module that includes a number of line card virtual machines and their associated physical line cards.
  • FIG. 3A is a detailed block diagram of one embodiment of the network device of FIG. 2.
  • FIG. 3B is a detailed block diagram of another embodiment of the network device of FIG. 2.
  • FIG. 3C is a detailed block diagram of another embodiment of the network device of FIG. 2.
  • FIG. 4A is a diagram showing the functionality comprising one embodiment of a line card virtual machine.
  • FIG. 4B is a diagram showing the functionality comprising another embodiment of the line card virtual machine.
  • FIG. 5 is a diagram showing the functionality comprising a router processing module.
  • FIG. 6 is a diagram illustrating the hi-level functionality comprising a line card.
  • DETAILED DESCRIPTION
  • FIG. 2 is a high level functional block diagram of a network router or switch 20, hereinafter referred to as the network device 20, comprised of a control module (CM) 21 and a plurality of line cards LC0-LCD) connected to each other over a standard inter-process communication bus such as a PCIe bus. It should be understood that the network device 20 typically also includes other functional modules, such as one or more switching modules and a back plane, but the functionality of these other modules is not important for the purpose of this description and so will not be discussed in any detail here. The CM 21 can be comprised of a number of virtual processes which in this case includes a control processor virtual machine (CP-VM) 22, a first rout processing virtual machine (RP-VM0), a second rout processing virtual machine (RP-VW and a plurality of line card virtual machine instances (LC-VM0-LC-VWn). Each of the LC-VMs operates in conjunction with only one of a plurality of respective physical line cards (LC0 to LCn). So for example, LC-VM0 operates in conjunction with LC0 and LC-VM1 operates in conjunction with LC1 and each of the LC-VMs is in communication with its respective LC over the PCIe bus. Although all of the individual processes running in the CM 21 are described as virtual processes, not all can be running in a virtual manner. Some can be running on CPU devices and some can be running under the control of a supervisory virtual process. Regardless, in the case where all of the CM 21 processes are running in a virtual manner, the CM 21 can be referred to as a virtual control module.
  • As will be described in detail later with reference to FIG. 3A, the functionality comprising the CP-VM 22, RP-VM0 and RP-VM1 is performed in a virtual manner by, in this case, a single CPU in the CM 21 operating under the control of a specially modified operating system and a hypervisor. However, it should be understood that the functionality associated with each of the CP-VM 22, the RP-VM0, RP-VM1 and LC-VMs can also be run by separate CPUs. That is, a different CPU can be responsible for running the functionality associate with the CP-VM 22, the RP-VM0, the RP-VM1 and the LC-VMs. The CP-VM 22 generally manages the overall operation of the network device 20 and is comprised of the same functionality as that of CPU-A of FIG. 1. Specifically, the CP-VM 22 can manage the users interface to the network device, it operates to provide overall control of the network device chassis, it can run a simple network management protocol (SNMP), it can run a configuration manager, it can run a remote authentication dial-in user service (Radius) to only name some of the functionality. The RP-VM0 and RP-VM1 have overall responsibility for running a plurality of networking protocols. Specifically, RP-VM0 is responsible for running layer 3 routing protocols and some layer 3 control and management functions such as those run by CPU-B of FIG. 1. A list of these routing protocols and other functions can include BGP, OSPF, LACP, RIP, RSVP, Diffserv manager and MPLS controller. The RP-VM1 is responsible for running a number of layer 2 switching protocols and layer 2 management functions such as those run by CPU-C of FIG. 1. A listing of the switching protocols running on the RP-VM1 can include STP/xSTP, VRRP, multicast, IGMP, PIM and NDPM and it also runs a layer two manager and an ARP manager.
  • Substantially all of the functionality comprising the CP-VM 22, RP-VM0, VRMP1 and the LC-VMs runs in what is typically referred to as a control plane, and substantially all of the functionality comprising the line cards (LC0-LCD) runs in what is typically referred to as a forwarding plane. The control plane is typically associated with network device 20 functionality responsible for gathering and processing information from the surrounding network and from packets or frames being processed in the data plane at any of the line cards (0-N) comprising network device 20. This information is used to construct and maintain layer 2 tables such as a MAC table and layer 3 tables such as a routing table. These layer 2 and layer 3 tables are referred to in this description collectively as the first database. The data plane functionality is typically associated with the network device functionality implemented on a line card that is responsible for processing packets or frames of information received by the network device from the surrounding network to determine how to forward the packets. Decisions about how to forward these packets or frames are made using information stored in a layer 2 and/or layer 3 forwarding tables collectively referred to here as a forwarding information base (FIB). In order to support very high data rates through the network device and to permit a large number of ports to be implemented on each of the line cards, the control and data plane functionality is strategically partitioned between the control module 21 and the line cards (0-N). This architecture results in the removal of the CPUs (CPU0-CPUn) and the associated line card software (MAC and FIB agents) from each of the line cards (LC0-LCD) in FIG. 1. Each of the instances of the line card software removed from each line card can be implemented in a separate one of the LC-VM (0-N) instances running on the CM 21. The removal of the CPUs and associated software from each of the line cards results in freeing up space (no CPU and less memory) on each line card which can be used to implement additional ports which has the effect of increasing the volume of traffic through the network device.
  • FIG. 3A is a block diagram of an embodiment of the network device 20 architecture showing functionality comprising the CM 21 included in the network device 20 of FIG. 2. CM 21 is comprised of the CP-VM 21, the RP-VM0, the RP-VM1 and the plurality of LC-VMs 0-N of FIG. 2 each of which are in communication with a host operating system over a virtual machine (VM) bus referred to here as an inter-process communication (IPC) bus. The host operating system runs on top of a hypervisor which in turn runs on top of a multi-core CPU 31 or simply CPU 31. The CPU 31 is connected over a bus (CPU bus) to an PCIe switch 32 which generally operates to switch signals from the CM 21 to one or more of the line cards (LC0-LCn) or to receive signals from the line cards over a serial bus which in this case is a PCIe bus. It should be understood that FIG. 3A is a logical representation of the functionality comprising the CM 21. The instructions/software/firmware used to implement the virtual machines represented by the CP-VM 22, the RP-VM0, RP-VM1 and the LC-VMs as well as the host kernel and the hypervisor are stored in memory or a mass storage device accessible by the CPU 31. For the purpose of this description, FIG. 3A illustrates the logical relationships between the virtual machines and the physical modules. Further, it should be understood, that the functionality of one or more of the CP-VM 22, RP-VM0 and RP-VM1 need not be virtual, but can be implemented in a physical device as in the prior art network switch 10 described with reference to FIG. 1.
  • As described previously with reference to FIG. 2, the two RP-VMs, RP-VM0 and RP-VM1, shown in FIG. 3A implement protocols that generally operate to send information about network device 20 (IP address, port IDs and status, etc.) to other network devices, they operate to receive information from other network devices that network device 20 is able to communicate with and they can operate to detect information in packets or frames of information received from other network devices and which are processed in the data plane of device 20. In this context, other network devices can be router, switches, aggregators, servers or any device connected to the network that is either the source or destination for packets or frames of information. The information received from other network devices and from local packets can include the IP address and/or MAC address of the other network devices, distance information, link attributes, and group membership information about the other network devices. RP-VW0 and RP-VM1 use the information they receive from the other network devices to derive, among other things, new or updated information that is used to modify a table entry in the first database, for instance. This update information can include the shortest paths to other network devices, the distances to other network devices, aggregation of network devices and spanning tree information or MAC addresses and port IDs and the results of these derivations can be stored in the first database maintained by each of the LC-VMs. An agent running on each of the LC-VMs periodically examines the databases maintained by each LC-VM to identify new information, which can be a next hop address for instance. In the event that the agent does identify new information, it can send this information to the respective physical line card(s) where the new information is stored in a forwarding table (FIB) or other table associated with the LC. In this embodiment, each LC-VM (0-N) maintains a separate instance of both a routing and a MAC table comprising the first database instance. A detailed description of the agents running on an LC-VM is included later with reference to FIG. 3B.
  • FIG. 3C is a block diagram showing functionality comprising RP-VM1. RP-VM0 is not described here in the same level of detail as this module operates similarly to RP-VM1, with the primary difference being the network protocols running on it. Among other things, the RP-VM1 is responsible for running layer 2 network protocols such as the address resolution protocol (ARP), the spanning tree protocol (STP), the Internet group management protocol (IGMP), the protocol independent multicast (PIM) protocol and a number of other protocols. Each of these protocols runs in the RP-VM1 as a separate process under the control of the kernel, and all of these protocols are well known to those familiar with the operation of communication networks and so they will not be described here in any detail. The RP-VM1 is also comprised of an instance of a kernel, which in conjunction with the CPU 31 controls the overall operation of the layer 2 protocols running in the RP-VM1.
  • Referring again to FIG. 3A, and as previously mentioned, all of the virtual processes running on the CM 21 is under the control of a hypervisor, which in this case is the commercially available Xen® hypervisor. The hypervisor is designed to operate in conjunction with a number of commercially available multi-core CPUs which can include an embedded virtualization capability. The primary purpose of including a hypervisor in the network device 20 architecture is so that at least one instance of a operating system kernel can be responsible for running each of the virtual machines in the network device 20. Specifically, a separate instance of a kernel is responsible for running the CP-VM 22, the RP-VM0, the RP-VM1 and a separate instance of a kernel is responsible for running each instance of the LC-VMs. So, in the case that CM 21 supports fourteen instances of a LC-VM, there are seventeen instances of an operating system kernel running (one kernel for each of the CP-VM, two RP-VMs and fourteen LC-VMs). In this case, the NetBSD kernel is used to run each of the virtual machines comprising the CM 21, but other suitable operating system kernels can be used as well.
  • With continued reference to FIG. 3A, a host kernel running on top of the hypervisor is a specially modified, commercially available operating system kernel, which in this case is a modified Linux kernel. The specially modified kernel has special rights to access physical input/output (IO) resources as well as interact with the CP-VM 22, the VPRMs and the LC-VMs comprising the CM 21. All of the IO messaging to/from the virtual machines (CP-VM 22, RP-VMs and LC-VMs) is handled by the host kernel and the operation of each of the kernel instances running the different virtual machines is managed by the hypervisor.
  • The functionality and operation of one of the plurality of LC-VM instances will be described now with reference to LC-VM 34 in FIG. 3B. The LC-VM 34 is comprised of several different processes and tables all running under the control of an instance of OS kernel 39 (NetBSD in this case). The processes can include a MAC agent, a FIB agent and other agents collectively referred to here as agents 35. Among other things, these agents operate to construct and maintain a first database 33 comprised of a routing table instance 36 and a MAC table 37 instance. The routing table 36 can be comprised of several entries such as an entry to a destination network id, an entry for a path cost and an entry of a next hop address and other entries associated with quality of service, packet filtering information for instance. The MAC table 37 is typically comprised of a plurality of MAC address and port ID entries. Entries in these tables can be used to construct and maintain forwarding tables in each of the associated physical line cards. The LC-VM 34 also can include separate processes for constructing and maintaining separate instances of other tables 38 (ACL tables, VLAN membership table, QoS tables, MPLS forwarding table, next and first hop tables to name only a few). The kernel 39 is in communication with the host kernel over the IPC bus identified in FIG. 3A. As described previously with reference to FIG. 3A, the agents 35 operate to receive information from the layer 2 and layer 3 network protocols running on RP-VM1 and RP-VM0 respectively and to use this information to update the first database 33.
  • Continuing to refer to FIG. 3B, the agents 35 also operate to detect changes or modifications information comprising the first database 33 (table entry changes), and in the event that the agent does detect new information, it enters at least some of this new information into a forwarding table or other table associated with at least one of the LC (0-N) described with reference to FIG. 3A. More specifically, the MAC agent 35 is comprised of functionality to configure the first database 33 that is used to store the MAC table 37 information, functionality to maintain a FIB, functionality to learn and age address information, functionality to monitor port state changes, functionality to track VLAN membership, functionality to manage communications with the VPRMs and LCs (0-N) and counter functionality to name just a few of the functions. The agent 35 also identifies modifications to the routing table 36 entries and uses at least some information included in the identified, modified table entry to update a forwarding table or FIB stored on at least one of the line cards (LC 0-N) associated with LC-VM 34. Other tables comprising LC-VM 34 can include ACL tables, a VLAN membership table, QoS tables, a MPLS forwarding table, next and first hop tables to name only a few.
  • FIG. 4A is a diagram illustrating another embodiment of a network device architecture comprised of virtual line card functionality. In this embodiment, a control module 41 included in a network device 40 is comprised of the same functionality as the CM 21 in network device 20 described earlier with reference to FIG. 3A; namely, CM41 is comprised of a CP-VM, two RP-VMs, a single LC-VM, a host kernel, a hypervisor and a CPU connected over a bus to an PCIe switch. One difference between the network device 20 embodiment described with reference to FIG. 3A and this network device 40 is that of the separate LC-VM instances comprising network device 20 are encapsulated in a single, logical LC-VM instance 42 in network device 40. So, if the network device 40 is comprised of fourteen physical line cards (LC 0-13), only a single logical instance of a LC-VM, LC-VM 42, is implemented in the CM 31, and this single LC-VM instance 42 is capable of communicating with each of the fourteen physical line cards comprising the network device 40. Another difference between the embodiment of network devices 20 and 40 is that the single, logical LC-VM 42 instance constructs and maintains only a single instance of a first database, comprised of a routing table and a MAC table, which includes information used to support the operation of all of the physical line cards with which it is associated. This single database architecture is possible because each of the physical line cards use substantially the same routing table information and the same MAC table information to construct their forwarding tables. The LC-VM 42 maintains separate/different layer 2 and layer 3 tables (ACL tables, VLAN membership table, QoS tables, MPLS forwarding table, next and first hop tables to name only a few) for each one of the physical lines cards with which it can communicate. Each of these tables is generally small in size and more easily maintained than the relative large routing and MAC tables. The functionality and operation of the LC-VM 42 is described below with reference to FIG. 4B.
  • The functionality comprising LC-VM 42 will now be described with reference to FIG. 4B. The LC-VM 42 is comprised of several different processes and databases all running under the control of an instance of OS kernel 49 (NetBSD in this case). The processes can include a MAC agent and a FIB agent collectively referred to here as agents 45. These agents 45 operate to construct and maintain a first database 44 comprised of a single routing table 46 instance and a single MAC table 47 instance both of which are used to construct and maintain a second database comprised of forwarding tables (FIBs) in each of the physical line cards in the network device 40. The LC-VM 42 also can include separate processes for constructing and maintaining separate instances of other tables 38 (ACL tables, VLAN membership table, QoS tables, MPLS forwarding table, Next and first hop tables to name only a few) for each of the physical line cards included in the network device 42. The kernel 49 is in communication with the host kernel over the IPC bus identified in FIG. 4A. The agents 45 operate to receive information from the layer 2 and layer 3 network protocols running on RP-VM1 and RP-VM0 respectively, and to use this information to update the routing table 46 and the MAC table 47 comprising the first database 44. The agents 45 also operate to detect changes to the routing table 46, the MAC table 47 or any of the other tables maintained by the LC-VM 42 to identify new information (entry changes), and in the event that the agent 45 detects new table information, it can send this information to all of the physical line card(s) where the new routing information is stored in a forwarding table or other table associated with the LC. More specifically, the MAC agent 45 is comprised of functionality to configure the first database 44 and FIBs, functionality to learn and age address information, functionality to monitor port state changes, functionality to track VLAN membership, functionality to manage communications with the VPRMs and counter functionality to name just a few of the functions. The routing table 46 can be comprised of several entries such as an entry to a destination network id, an entry for a path cost and an entry of a next hop address and other entries associated with quality of service, packet filtering information for instance. The agent 45 identifies changes to the routing table 46 and sends this table change information to all of the physical line cards in the network device 40 where it is used to update the forwarding tables. The MAC table 47 can be comprised of several entries such as an entry for a MAC source/destination address and port ID of another device connected to the network, entries can be static or dynamic and MAC addresses can be unicast or multicast. Other tables maintain in LC-VM 42 can include ACL tables, a VLAN membership table, QoS tables, a MPLS forwarding table, next and first hop tables to name only a few.
  • There are a number of advantages in aggregating all of the LC-VMs into the single logical LC-VM 42 as described in FIG. 4B. One advantage is that there is only a single point of communication for all of the processes running on each of the two RP-VMs. Another advantage is that running a single LC-VM instance 42 consumes less memory than running two or more LC-VMs. This is possible because only one instance of a routing table and one instance of a MAC table need to be constructed and maintained to provide forwarding information to all of the physical line cards in the device 40. Another advantage is that performance and convergence times of routing and switching entries is improved since there are fewer databases to be updated.
  • FIG. 5 is a block diagram of one of the physical line cards (LC 0-N) shown in either FIG. 3A or FIG. 4A. This line card (LCn) includes substantially all of the means to perform forwarding plane functionality comprising a network device and can include, among other things, a packet processor 50 for receiving packets or frames of information at an input port to the line card, examining header and other information included in the packet or frame and using this information as a pointer into a memory 51 in which a layer 2 or layer 3 forwarding table is stored. The line card also includes a second database 51 comprised of L2/L3 forwarding tables that include port and address information used by the packet processor 50 to determine how to forward the received packet or frame of information. Other tables that store forwarding information specific to at least one particular line card (same type of table in each line card, but information stored in table can be different) are maintained database 51. These other tables can include ACL tables, VLAN membership tables, QoS tables, next and first hop tables to name only a few. All of these tables are constructed and maintained by the agents 35 or 45 that respectively comprise any of the LC-VM instances described with reference to FIG. 3B or the single, logical LC-VM instance described with reference to FIG. 4B.
  • FIG. 6 is a logical flow diagram of the process, employed by the embodiment described with reference to FIG. 3A or FIG. 4A, for updating tables used to forward information in the data plane. In step 1, layer 2 network protocols running on RP-VM1 and layer 3 network protocols running on RP-VM0, that comprise either network device 20 or 40, respectively receive layer 2 information from packets or frames being processed by the data plane in the device or topology information from other network devices with which it can communicate. In step 2, this information received by the protocols running on either RP-VM 0 or RP-VM1 in step 1 is used to derive updates to a routing table, a MAC table, and other tables stored on a LC-VM instance, such as the LC-VM instances described in FIG. 3A and 4A. In step 3, if an agent running on a LC-VM detects that a change to a routing or MAC table entry should be made, in step 4 it updates the tables accordingly. Otherwise the process returns to step 1. In step 5, in the event that an agent running on the LC-VM detects a table change in step 4, in step 6 the agent updates the appropriate tables stored on the physical line cards.
  • It should be understood that while the embodiments described herein are all in terms of the layer 2 and 3 protocols and the agents being virtual processes, not all of these processes need to be virtual. One or more of the process can be implemented on one or more physical CPUs. So for instance, the network protocol functionality can be implemented in a CPU and the MAC and FIB agent functionality can be implemented virtually.
  • The forgoing description, for purposes of explanation, used specific nomenclature to provide a thorough understanding of the invention. However, it will be apparent to one skilled in the art that specific details are not required in order to practice the invention. Thus, the forgoing descriptions of specific embodiments of the invention are presented for purposes of illustration and description. They are not intended to be exhaustive or to limit the invention to the precise forms disclosed; obviously, many modifications and variations are possible in view of the above teachings. The embodiments were chosen and described in order to best explain the principles of the invention and its practical applications, they thereby enable others skilled in the art to best utilize the invention and various embodiments with various modifications as are suited to the particular use contemplated. It is intended that the following claims and their equivalents define the scope of the invention.

Claims (20)

What is claimed is:
1. A networking device, comprising:
a chassis;
a backplane housed in the chassis;
a physical line card housed in the chassis and coupled to the backplane, wherein the physical line card includes at least one port and a physical line card database; and
a virtualization subsystem housed in the chassis and coupled to the physical line card through the backplane, wherein the virtualization subsystem is configured to:
determine a database update;
determine that the database update provides modifications to information in the physical line card database and, in response, update information in the physical line card database using the database update; and
perform, using information in the physical line card database, layer 2 and layer 3 protocol processing for the physical line card to process and forward a packet that was received through the at least one port such that the packet is forwarded through the at least one port.
2. The network device of claim 1, wherein the physical line card is free of a layer 2 protocol processing system.
3. The network device of claim 1, wherein the physical line card is free of a layer 3 protocol processing system.
4. The network device of claim 1, wherein the virtualization subsystem is configured to:
execute at least one network protocol to receive network information through a network; and
use the network information to determine the database update.
5. The network device of claim 1, wherein the physical line card database includes a layer 2 forwarding table.
6. The network device of claim 1, wherein the physical line card database includes a layer 3 forwarding table.
7. The network device of claim 1, wherein the database update is provided in a virtualization subsystem database in the virtualization subsystem, and wherein the virtualization subsystem includes at least one agent that is configure to:
determine that the database update provides modifications to information in the physical line card database and update information in the physical line card database using the database update in response to determining that the database update provides modifications to information in the virtualization subsystem database.
8. A networking system, comprising:
a backplane;
a plurality of physical line cards coupled to the backplane, wherein each of the plurality of physical line cards includes at least one port and a physical line card database; and
a virtualization subsystem coupled to the plurality of physical line cards through the backplane, wherein the virtualization subsystem is configured to:
determine a database update;
determine that the database update provides modifications to information in a respective physical line card database included in each of a subset of the plurality of physical line cards;
update, using the database update, information in the respective physical line card database included in each of the subset of the plurality of physical line cards; and
perform, using information in the respective physical line card database in each of the plurality of physical line cards, layer 2 and layer 3 protocol processing for each of the plurality of physical line cards to process and forward packets that are received by those physical line cards such that the packets are forwarded from those physical line cards.
9. The networking system of claim 8, wherein each of the plurality of physical line cards is free of a layer 2 protocol processing system.
10. The networking system of claim 8, wherein each of the plurality of physical line cards is free of a layer 3 protocol processing system.
11. The networking system of claim 8, wherein the virtualization subsystem is configured to:
execute at least one network protocol to receive network information through a network; and
use the network information to determine the database update.
12. The networking system of claim 8, wherein each physical line card database includes a layer 2 forwarding table.
13. The networking system of claim 8, wherein each physical line card database includes a layer 3 forwarding table.
14. The networking system of claim 8, wherein the database update is provided in a virtualization subsystem database in the virtualization subsystem, and wherein the virtualization subsystem includes at least one agent that is configure to:
determine that the database update provides modifications to information in the respective physical line card database included in each of the subset of the plurality of physical line cards and update information in the respective physical line card database in each of the subset of the plurality physical line cards using the database update in response to determining that the database update provides modifications to information in the virtualization subsystem database.
15. A method for forwarding packets, comprising:
determining, using a virtualization subsystem in a networking device, a database update;
determining, using the virtualization subsystem, that the database update provides modifications to information in a physical line card database included in a physical line card in the networking device;
updating, by the virtualization subsystem using the database update, information in the physical line card database included in the physical line card; and
performing, by the virtualization subsystem using information in the physical line card database included in the physical line card, layer 2 and layer 3 protocol processing for the physical line card to process and forward a packet that is received by the physical line card such that the packet is forwarded from the physical line card.
16. The method of claim 15, wherein the physical line card is free of a layer 2 protocol processing system.
17. The method of claim 15, wherein the physical line card is free of a layer 3 protocol processing system.
18. The method of claim 15, further comprising:
executing, by the virtualization subsystem, at least one network protocol to receive network information through a network; and
using, by the virtualization subsystem, the network information to determine the database update.
19. The method of claim 15, wherein the physical line card database includes a layer 2 forwarding table.
20. The method of claim 15, wherein the physical line card database includes a layer 3 forwarding table.
US15/175,787 2010-03-12 2016-06-07 Virtual network device architecture Pending US20160285765A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US12/722,568 US9413649B2 (en) 2010-03-12 2010-03-12 Virtual network device architecture
US15/175,787 US20160285765A1 (en) 2010-03-12 2016-06-07 Virtual network device architecture

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US15/175,787 US20160285765A1 (en) 2010-03-12 2016-06-07 Virtual network device architecture

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
US12/722,568 Continuation US9413649B2 (en) 2010-03-12 2010-03-12 Virtual network device architecture

Publications (1)

Publication Number Publication Date
US20160285765A1 true US20160285765A1 (en) 2016-09-29

Family

ID=44560940

Family Applications (2)

Application Number Title Priority Date Filing Date
US12/722,568 Active 2032-11-23 US9413649B2 (en) 2010-03-12 2010-03-12 Virtual network device architecture
US15/175,787 Pending US20160285765A1 (en) 2010-03-12 2016-06-07 Virtual network device architecture

Family Applications Before (1)

Application Number Title Priority Date Filing Date
US12/722,568 Active 2032-11-23 US9413649B2 (en) 2010-03-12 2010-03-12 Virtual network device architecture

Country Status (1)

Country Link
US (2) US9413649B2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108471390A (en) * 2018-03-20 2018-08-31 深圳市风云实业有限公司 The reorientation method of service message straddle processing system and service message

Families Citing this family (51)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9734034B2 (en) * 2010-04-09 2017-08-15 Hewlett Packard Enterprise Development Lp System and method for processing data
US8611349B1 (en) 2010-06-28 2013-12-17 Amazon Technologies, Inc. Methods and apparatus for internet-scale routing using small-scale border routers
US20120155485A1 (en) * 2010-12-16 2012-06-21 Fujitsu Network Communications, Inc. Efficient space utilization of distributed mac address tables in ethernet switches
EP3605969A1 (en) 2011-08-17 2020-02-05 Nicira Inc. Distributed logical l3 routing
US9935901B2 (en) 2011-12-30 2018-04-03 Dell Products, Lp System and method of enabling a multi-chassis virtual switch for virtual server network provisioning
US9246702B1 (en) * 2012-01-31 2016-01-26 Cisco Technology, Inc. System and method for configuring service appliances as virtual line cards in a network environment
US9286047B1 (en) 2013-02-13 2016-03-15 Cisco Technology, Inc. Deployment and upgrade of network devices in a network environment
JP6036506B2 (en) * 2013-04-15 2016-11-30 富士通株式会社 Program and information processing apparatus for specifying fault influence range
US20140376555A1 (en) * 2013-06-24 2014-12-25 Electronics And Telecommunications Research Institute Network function virtualization method and apparatus using the same
US20150071298A1 (en) * 2013-09-09 2015-03-12 Microsoft Corporation Hybrid Forwarding in a Virtual Switch
US9785455B2 (en) 2013-10-13 2017-10-10 Nicira, Inc. Logical router
US9374305B2 (en) * 2013-10-24 2016-06-21 Dell Products L.P. Packet transfer system
US9893988B2 (en) 2014-03-27 2018-02-13 Nicira, Inc. Address resolution using multiple designated instances of a logical router
US9413644B2 (en) 2014-03-27 2016-08-09 Nicira, Inc. Ingress ECMP in virtual distributed routing environment
US9258255B2 (en) * 2014-04-11 2016-02-09 Cisco Technology, Inc. Hierarchical programming of dual-stack switches in a network environment
US10003495B1 (en) * 2014-09-20 2018-06-19 Cisco Technology, Inc. Discovery protocol for enabling automatic bootstrap and communication with a service appliance connected to a network switch
US10020960B2 (en) 2014-09-30 2018-07-10 Nicira, Inc. Virtual distributed bridging
US10511458B2 (en) 2014-09-30 2019-12-17 Nicira, Inc. Virtual distributed bridging
US10270658B2 (en) 2014-09-30 2019-04-23 Cisco Technology, Inc. Zero touch configuration and synchronization of a service appliance in a network environment
US10250443B2 (en) 2014-09-30 2019-04-02 Nicira, Inc. Using physical location to modify behavior of a distributed virtual network element
US9768980B2 (en) 2014-09-30 2017-09-19 Nicira, Inc. Virtual distributed bridging
US10250399B1 (en) * 2014-10-03 2019-04-02 Cisco Technology, Inc. Multicast routing
US10374904B2 (en) 2015-05-15 2019-08-06 Cisco Technology, Inc. Diagnostic network visualization
US9800497B2 (en) 2015-05-27 2017-10-24 Cisco Technology, Inc. Operations, administration and management (OAM) in overlay data center environments
US10142353B2 (en) 2015-06-05 2018-11-27 Cisco Technology, Inc. System for monitoring and managing datacenters
US9967158B2 (en) 2015-06-05 2018-05-08 Cisco Technology, Inc. Interactive hierarchical network chord diagram for application dependency mapping
US10089099B2 (en) 2015-06-05 2018-10-02 Cisco Technology, Inc. Automatic software upgrade
US10536357B2 (en) 2015-06-05 2020-01-14 Cisco Technology, Inc. Late data detection in data center
US10033766B2 (en) 2015-06-05 2018-07-24 Cisco Technology, Inc. Policy-driven compliance
US10225184B2 (en) 2015-06-30 2019-03-05 Nicira, Inc. Redirecting traffic in a virtual distributed router environment
US10038632B2 (en) * 2015-07-23 2018-07-31 Netscout Systems, Inc. AIA enhancements to support L2 connected networks
US9880829B2 (en) * 2015-12-14 2018-01-30 Telefonaktiebolaget Lm Ericsson (Publ) Method and apparatus for performing hitless update of line cards of a network device
US10320670B2 (en) * 2015-12-15 2019-06-11 At&T Intellectual Property I, L.P. Routers with network processing unit and central processing unit-based line cards
US10356955B2 (en) * 2016-05-11 2019-07-16 Facebook, Inc. Modular network switches, associated structures, and associated methods of manufacture and use
WO2017204983A1 (en) * 2016-05-26 2017-11-30 Brocade Communications Systems, Inc. Efficient convergence in network events
US10171357B2 (en) 2016-05-27 2019-01-01 Cisco Technology, Inc. Techniques for managing software defined networking controller in-band communications in a data center network
US10289438B2 (en) 2016-06-16 2019-05-14 Cisco Technology, Inc. Techniques for coordination of application components deployed on distributed virtual machines
CN107547409A (en) * 2016-06-24 2018-01-05 华为技术有限公司 A kind of method for searching route, device and routing device
US10523512B2 (en) 2017-03-24 2019-12-31 Cisco Technology, Inc. Network agent for generating platform specific network policies
US10764141B2 (en) 2017-03-27 2020-09-01 Cisco Technology, Inc. Network agent for reporting to a network policy system
US10594560B2 (en) 2017-03-27 2020-03-17 Cisco Technology, Inc. Intent driven network policy platform
US10250446B2 (en) 2017-03-27 2019-04-02 Cisco Technology, Inc. Distributed policy store
US10382333B2 (en) 2017-05-31 2019-08-13 Juniper Networks, Inc. Fabric path context-based forwarding for virtual nodes
US10680887B2 (en) 2017-07-21 2020-06-09 Cisco Technology, Inc. Remote device status audit and recovery
US10511546B2 (en) * 2017-09-29 2019-12-17 Juniper Networks, Inc. Connecting virtual nodes in a network device using abstract fabric interfaces
US10554501B2 (en) 2017-10-23 2020-02-04 Cisco Technology, Inc. Network migration assistant
US10523541B2 (en) 2017-10-25 2019-12-31 Cisco Technology, Inc. Federated network and application data analytics platform
US10594542B2 (en) 2017-10-27 2020-03-17 Cisco Technology, Inc. System and method for network root cause analysis
US10374827B2 (en) 2017-11-14 2019-08-06 Nicira, Inc. Identifier that maps to different networks at different datacenters
US10511459B2 (en) 2017-11-14 2019-12-17 Nicira, Inc. Selection of managed forwarding element for bridge spanning multiple datacenters
US10574575B2 (en) 2018-01-25 2020-02-25 Cisco Technology, Inc. Network flow stitching using middle box flow stitching

Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020176131A1 (en) * 2001-02-28 2002-11-28 Walters David H. Protection switching for an optical network, and methods and apparatus therefor
US20030046505A1 (en) * 2001-08-30 2003-03-06 International Business Machines Corporation Apparatus and method for swapping-out real memory by inhibiting I/O operations to a memory region
US20030091267A1 (en) * 2001-02-28 2003-05-15 Alvarez Mario F. Node management architecture with customized line card handlers for a modular optical network, and methods and apparatus therefor
US20030208618A1 (en) * 2002-01-07 2003-11-06 Gal Mor Fast failure protection using redundant network edge ports
US6735198B1 (en) * 1999-12-21 2004-05-11 Cisco Technology, Inc. Method and apparatus for updating and synchronizing forwarding tables in a distributed network switch
US6807172B1 (en) * 1999-12-21 2004-10-19 Cisco Technology, Inc. Method and apparatus for learning and switching frames in a distributed network switch
US20050276216A1 (en) * 2004-06-15 2005-12-15 Jean-Philippe Vasseur Avoiding micro-loop upon failure of fast reroute protected links
US20060007939A1 (en) * 2004-07-09 2006-01-12 Anusankar Elangovan Scaling VLANs in a data network
US20090063665A1 (en) * 2007-08-28 2009-03-05 Rohati Systems, Inc. Highly scalable architecture for application network appliances
US20090080428A1 (en) * 2007-09-25 2009-03-26 Maxxan Systems, Inc. System and method for scalable switch fabric for computer network
US7616646B1 (en) * 2000-12-12 2009-11-10 Cisco Technology, Inc. Intraserver tag-switched distributed packet processing for network access servers
US7720061B1 (en) * 2006-08-18 2010-05-18 Juniper Networks, Inc. Distributed solution for managing periodic communications in a multi-chassis routing system
US20110134931A1 (en) * 2009-12-08 2011-06-09 Jacobus Van Der Merwe Virtual router migration
US20110255207A1 (en) * 2008-10-28 2011-10-20 Alain Jousse Device for energizing an ignition output stage
US9274851B2 (en) * 2009-11-25 2016-03-01 Brocade Communications Systems, Inc. Core-trunking across cores on physically separated processors allocated to a virtual machine based on configuration information including context information for virtual machines

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020165961A1 (en) * 2001-04-19 2002-11-07 Everdell Peter B. Network device including dedicated resources control plane
US7398552B2 (en) * 2002-01-28 2008-07-08 Hughes Network Systems, Llc Method and system for integrating performance enhancing functions in a virtual private network (VPN)
US7389533B2 (en) * 2002-01-28 2008-06-17 Hughes Network Systems, Llc Method and system for adaptively applying performance enhancing functions
US20080177994A1 (en) * 2003-01-12 2008-07-24 Yaron Mayer System and method for improving the efficiency, comfort, and/or reliability in Operating Systems, such as for example Windows
US6907039B2 (en) * 2002-07-20 2005-06-14 Redback Networks Inc. Method and apparatus for routing and forwarding between virtual routers within a single network element
JP4658606B2 (en) * 2002-10-04 2011-03-23 スターレント・ネットワークス・エルエルシー Resource management for IP network connection
US7508764B2 (en) * 2005-09-12 2009-03-24 Zeugma Systems Inc. Packet flow bifurcation and analysis
US8429630B2 (en) * 2005-09-15 2013-04-23 Ca, Inc. Globally distributed utility computing cloud
US8929360B2 (en) * 2006-12-07 2015-01-06 Cisco Technology, Inc. Systems, methods, media, and means for hiding network topology
US7855982B2 (en) * 2007-11-19 2010-12-21 Rajesh Ramankutty Providing services to packet flows in a network
US8339954B2 (en) * 2008-05-16 2012-12-25 Cisco Technology, Inc. Providing trigger based traffic management
US8996683B2 (en) * 2008-06-09 2015-03-31 Microsoft Technology Licensing, Llc Data center without structural bottlenecks
US9497039B2 (en) * 2009-05-28 2016-11-15 Microsoft Technology Licensing, Llc Agile data center network architecture

Patent Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6735198B1 (en) * 1999-12-21 2004-05-11 Cisco Technology, Inc. Method and apparatus for updating and synchronizing forwarding tables in a distributed network switch
US6807172B1 (en) * 1999-12-21 2004-10-19 Cisco Technology, Inc. Method and apparatus for learning and switching frames in a distributed network switch
US7616646B1 (en) * 2000-12-12 2009-11-10 Cisco Technology, Inc. Intraserver tag-switched distributed packet processing for network access servers
US20020176131A1 (en) * 2001-02-28 2002-11-28 Walters David H. Protection switching for an optical network, and methods and apparatus therefor
US20030091267A1 (en) * 2001-02-28 2003-05-15 Alvarez Mario F. Node management architecture with customized line card handlers for a modular optical network, and methods and apparatus therefor
US20030046505A1 (en) * 2001-08-30 2003-03-06 International Business Machines Corporation Apparatus and method for swapping-out real memory by inhibiting I/O operations to a memory region
US20030208618A1 (en) * 2002-01-07 2003-11-06 Gal Mor Fast failure protection using redundant network edge ports
US20050276216A1 (en) * 2004-06-15 2005-12-15 Jean-Philippe Vasseur Avoiding micro-loop upon failure of fast reroute protected links
US20060007939A1 (en) * 2004-07-09 2006-01-12 Anusankar Elangovan Scaling VLANs in a data network
US7720061B1 (en) * 2006-08-18 2010-05-18 Juniper Networks, Inc. Distributed solution for managing periodic communications in a multi-chassis routing system
US20090063665A1 (en) * 2007-08-28 2009-03-05 Rohati Systems, Inc. Highly scalable architecture for application network appliances
US20090080428A1 (en) * 2007-09-25 2009-03-26 Maxxan Systems, Inc. System and method for scalable switch fabric for computer network
US20110255207A1 (en) * 2008-10-28 2011-10-20 Alain Jousse Device for energizing an ignition output stage
US9274851B2 (en) * 2009-11-25 2016-03-01 Brocade Communications Systems, Inc. Core-trunking across cores on physically separated processors allocated to a virtual machine based on configuration information including context information for virtual machines
US20110134931A1 (en) * 2009-12-08 2011-06-09 Jacobus Van Der Merwe Virtual router migration

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108471390A (en) * 2018-03-20 2018-08-31 深圳市风云实业有限公司 The reorientation method of service message straddle processing system and service message

Also Published As

Publication number Publication date
US9413649B2 (en) 2016-08-09
US20110225207A1 (en) 2011-09-15

Similar Documents

Publication Publication Date Title
US10237379B2 (en) High-efficiency service chaining with agentless service nodes
US9755853B2 (en) Methods, systems and apparatus for the control of interconnection of fibre channel over ethernet devices
US10135714B2 (en) Servers, switches, and systems with switching module implementing a distributed network operating system
US9590903B2 (en) Systems and methods for optimizing layer three routing in an information handling system
US9729387B2 (en) Link aggregation in software-defined networks
US10075396B2 (en) Methods and systems for managing distributed media access control address tables
US10404622B2 (en) Servers, switches, and systems with virtual interface to external network connecting hardware and integrated networking driver
US9912582B2 (en) Multi-tenant isolation in a cloud environment using software defined networking
US9674088B1 (en) Receive packet steering for virtual networks
US10476698B2 (en) Redundent virtual link aggregation group
CN106797351B (en) System and method for performing logical network forwarding using a controller
US9455899B2 (en) Disjoint multi-pathing for a data center network
US20170026294A1 (en) Method and system for load balancing in a software-defined networking (sdn) system upon server reconfiguration
US9923812B2 (en) Triple-tier anycast addressing
US9596159B2 (en) Finding latency through a physical network in a virtualized network
US9680714B2 (en) Methods, systems, and fabrics implementing a distributed network operating system
US10412012B2 (en) Intelligent, load adaptive, and self optimizing master node selection in an extended bridge
EP2880828B1 (en) System and method for virtual ethernet interface binding
EP3072264B1 (en) Method for performing network service insertion
US10404621B2 (en) Scalable InfiniBand packet-routing technique
CN104468358B (en) The message forwarding method and equipment of the distributed virtual switch system
US9590919B2 (en) Method and apparatus for implementing and managing virtual switches
US9942095B2 (en) Methods and apparatus for selecting a master virtual processor within a switch fabric element
US20170264622A1 (en) Providing a virtual security appliance architecture to a virtual cloud infrastructure
US9887777B2 (en) Affinity modeling in a data center network

Legal Events

Date Code Title Description
AS Assignment

Owner name: FORCE10 NETWORKS, INC., CALIFORNIA

Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:SUBRAMANIAN, KRISHNAMURTHY;KULKARNI, RAHUL;REEL/FRAME:038904/0993

Effective date: 20100311

AS Assignment

Owner name: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT, NORTH CAROLINA

Free format text: SUPPLEMENT TO PATENT SECURITY AGREEMENT (ABL);ASSIGNORS:AVENTAIL LLC;DELL PRODUCTS L.P.;DELL SOFTWARE INC.;AND OTHERS;REEL/FRAME:039643/0953

Effective date: 20160808

Owner name: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT, TEXAS

Free format text: SUPPLEMENT TO PATENT SECURITY AGREEMENT (NOTES);ASSIGNORS:AVENTAIL LLC;DELL PRODUCTS L.P.;DELL SOFTWARE INC.;AND OTHERS;REEL/FRAME:039644/0084

Effective date: 20160808

Owner name: BANK OF AMERICA, N.A., AS COLLATERAL AGENT, NORTH CAROLINA

Free format text: SUPPLEMENT TO PATENT SECURITY AGREEMENT (TERM LOAN);ASSIGNORS:AVENTAIL LLC;DELL PRODUCTS L.P.;DELL SOFTWARE INC.;AND OTHERS;REEL/FRAME:039719/0889

Effective date: 20160808

Owner name: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., A

Free format text: SUPPLEMENT TO PATENT SECURITY AGREEMENT (NOTES);ASSIGNORS:AVENTAIL LLC;DELL PRODUCTS L.P.;DELL SOFTWARE INC.;AND OTHERS;REEL/FRAME:039644/0084

Effective date: 20160808

Owner name: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT, NO

Free format text: SUPPLEMENT TO PATENT SECURITY AGREEMENT (ABL);ASSIGNORS:AVENTAIL LLC;DELL PRODUCTS L.P.;DELL SOFTWARE INC.;AND OTHERS;REEL/FRAME:039643/0953

Effective date: 20160808

Owner name: BANK OF AMERICA, N.A., AS COLLATERAL AGENT, NORTH

Free format text: SUPPLEMENT TO PATENT SECURITY AGREEMENT (TERM LOAN);ASSIGNORS:AVENTAIL LLC;DELL PRODUCTS L.P.;DELL SOFTWARE INC.;AND OTHERS;REEL/FRAME:039719/0889

Effective date: 20160808

AS Assignment

Owner name: DELL SOFTWARE INC., CALIFORNIA

Free format text: RELEASE OF SEC. INT. IN PATENTS (ABL);ASSIGNOR:BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT;REEL/FRAME:040013/0733

Effective date: 20160907

Owner name: DELL PRODUCTS L.P., TEXAS

Free format text: RELEASE OF SEC. INT. IN PATENTS (ABL);ASSIGNOR:BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT;REEL/FRAME:040013/0733

Effective date: 20160907

Owner name: FORCE10 NETWORKS, INC., CALIFORNIA

Free format text: RELEASE OF SEC. INT. IN PATENTS (ABL);ASSIGNOR:BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT;REEL/FRAME:040013/0733

Effective date: 20160907

Owner name: AVENTAIL LLC, CALIFORNIA

Free format text: RELEASE OF SEC. INT. IN PATENTS (ABL);ASSIGNOR:BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT;REEL/FRAME:040013/0733

Effective date: 20160907

Owner name: WYSE TECHNOLOGY L.L.C., CALIFORNIA

Free format text: RELEASE OF SEC. INT. IN PATENTS (ABL);ASSIGNOR:BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT;REEL/FRAME:040013/0733

Effective date: 20160907

AS Assignment

Owner name: FORCE10 NETWORKS, INC., CALIFORNIA

Free format text: RELEASE OF SEC. INT. IN PATENTS (TL);ASSIGNOR:BANK OF AMERICA, N.A., AS COLLATERAL AGENT;REEL/FRAME:040027/0329

Effective date: 20160907

Owner name: AVENTAIL LLC, CALIFORNIA

Free format text: RELEASE OF SEC. INT. IN PATENTS (TL);ASSIGNOR:BANK OF AMERICA, N.A., AS COLLATERAL AGENT;REEL/FRAME:040027/0329

Effective date: 20160907

Owner name: DELL PRODUCTS L.P., TEXAS

Free format text: RELEASE OF SEC. INT. IN PATENTS (TL);ASSIGNOR:BANK OF AMERICA, N.A., AS COLLATERAL AGENT;REEL/FRAME:040027/0329

Effective date: 20160907

Owner name: WYSE TECHNOLOGY L.L.C., CALIFORNIA

Free format text: RELEASE OF SEC. INT. IN PATENTS (TL);ASSIGNOR:BANK OF AMERICA, N.A., AS COLLATERAL AGENT;REEL/FRAME:040027/0329

Effective date: 20160907

Owner name: WYSE TECHNOLOGY L.L.C., CALIFORNIA

Free format text: RELEASE OF SEC. INT. IN PATENTS (NOTES);ASSIGNOR:BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT;REEL/FRAME:040026/0710

Effective date: 20160907

Owner name: AVENTAIL LLC, CALIFORNIA

Free format text: RELEASE OF SEC. INT. IN PATENTS (NOTES);ASSIGNOR:BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT;REEL/FRAME:040026/0710

Effective date: 20160907

Owner name: DELL SOFTWARE INC., CALIFORNIA

Free format text: RELEASE OF SEC. INT. IN PATENTS (TL);ASSIGNOR:BANK OF AMERICA, N.A., AS COLLATERAL AGENT;REEL/FRAME:040027/0329

Effective date: 20160907

Owner name: FORCE10 NETWORKS, INC., CALIFORNIA

Free format text: RELEASE OF SEC. INT. IN PATENTS (NOTES);ASSIGNOR:BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT;REEL/FRAME:040026/0710

Effective date: 20160907

Owner name: DELL PRODUCTS L.P., TEXAS

Free format text: RELEASE OF SEC. INT. IN PATENTS (NOTES);ASSIGNOR:BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT;REEL/FRAME:040026/0710

Effective date: 20160907

Owner name: DELL SOFTWARE INC., CALIFORNIA

Free format text: RELEASE OF SEC. INT. IN PATENTS (NOTES);ASSIGNOR:BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT;REEL/FRAME:040026/0710

Effective date: 20160907

AS Assignment

Owner name: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT, TEXAS

Free format text: SECURITY AGREEMENT;ASSIGNORS:ASAP SOFTWARE EXPRESS, INC.;AVENTAIL LLC;CREDANT TECHNOLOGIES, INC.;AND OTHERS;REEL/FRAME:040136/0001

Effective date: 20160907

Owner name: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT, NORTH CAROLINA

Free format text: SECURITY AGREEMENT;ASSIGNORS:ASAP SOFTWARE EXPRESS, INC.;AVENTAIL LLC;CREDANT TECHNOLOGIES, INC.;AND OTHERS;REEL/FRAME:040134/0001

Effective date: 20160907

Owner name: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLAT

Free format text: SECURITY AGREEMENT;ASSIGNORS:ASAP SOFTWARE EXPRESS, INC.;AVENTAIL LLC;CREDANT TECHNOLOGIES, INC.;AND OTHERS;REEL/FRAME:040134/0001

Effective date: 20160907

Owner name: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., A

Free format text: SECURITY AGREEMENT;ASSIGNORS:ASAP SOFTWARE EXPRESS, INC.;AVENTAIL LLC;CREDANT TECHNOLOGIES, INC.;AND OTHERS;REEL/FRAME:040136/0001

Effective date: 20160907

STPP Information on status: patent application and granting procedure in general

Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER

AS Assignment

Owner name: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., T

Free format text: SECURITY AGREEMENT;ASSIGNORS:CREDANT TECHNOLOGIES, INC.;DELL INTERNATIONAL L.L.C.;DELL MARKETING L.P.;AND OTHERS;REEL/FRAME:049452/0223

Effective date: 20190320

Owner name: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., TEXAS

Free format text: SECURITY AGREEMENT;ASSIGNORS:CREDANT TECHNOLOGIES, INC.;DELL INTERNATIONAL L.L.C.;DELL MARKETING L.P.;AND OTHERS;REEL/FRAME:049452/0223

Effective date: 20190320

STCB Information on status: application discontinuation

Free format text: FINAL REJECTION MAILED

STPP Information on status: patent application and granting procedure in general

Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION

STPP Information on status: patent application and granting procedure in general

Free format text: NON FINAL ACTION MAILED

STPP Information on status: patent application and granting procedure in general

Free format text: RESPONSE TO NON-FINAL OFFICE ACTION ENTERED AND FORWARDED TO EXAMINER

AS Assignment

Owner name: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., TEXAS

Free format text: SECURITY AGREEMENT;ASSIGNORS:CREDANT TECHNOLOGIES INC.;DELL INTERNATIONAL L.L.C.;DELL MARKETING L.P.;AND OTHERS;REEL/FRAME:053546/0001

Effective date: 20200409

STCB Information on status: application discontinuation

Free format text: FINAL REJECTION MAILED