Scalable handling of BGP route information in VXLAN with EVPN control plane

Information

  • Patent Grant
  • 10826829
  • Patent Number
    10,826,829
  • Date Filed
    Monday, January 8, 2018
    7 years ago
  • Date Issued
    Tuesday, November 3, 2020
    4 years ago
Abstract
A method for programming a MAC address table by a first leaf node in a network comprising a plurality of leaf nodes is provided. Each leaf node comprises one or more Virtual Tunnel End Points (“VTEPs”) and instantiates a plurality of Virtual Routing and Forwarding elements (“VRFs”), with a corresponding Bridge Domain (“BD”) assigned to each VRF. The method includes obtaining information indicating one or more VTEP Affinity Groups (VAGs), each VAG comprising an identification of one VTEP per leaf node, obtaining information indicating assignment of each VRF to one of the VAGs, assigning each VAG to a unique Filtering Identifier (“FID”), thereby generating one or more FIDs, and programming the MAC address table, using FIDs instead of BDs, by populating the MAC address table with a plurality of entries, each entry comprising a unique combination of a FID and a MAC address of a leaf node.
Description
TECHNICAL FIELD

This disclosure relates in general to the field of computer networking and, more particularly, to techniques for scalable handling of Border Gateway Protocol (“BGP”) route information in a Virtual eXtensible Local Area Network (“VXLAN”) with Ethernet Virtual Private Network (“EVPN”) control plane.


BACKGROUND

Data centers are increasingly used by enterprises for effective collaboration and interaction and to store data and resources. A typical data center network contains myriad network elements, including hosts, load balancers, routers, switches, etc. The network connecting the network elements provides secure user access to data center services and an infrastructure for deployment, interconnection, and aggregation of shared resources as required, including applications, hosts, appliances, and storage. Improving operational efficiency and optimizing utilization of resources in such data centers are some of the challenges facing data center managers. Data center managers want a resilient infrastructure that consistently supports diverse applications and services and protects the applications and services against disruptions. A properly planned and operating data center network provides application and data integrity and optimizes application availability and performance.





BRIEF DESCRIPTION OF THE DRAWINGS

To provide a more complete understanding of the present disclosure and features and advantages thereof, reference is made to the following description, taken in conjunction with the accompanying figures, wherein like reference numerals represent like parts, in which:



FIG. 1 is a simplified block diagram illustrating an example deployment of an IP fabric;



FIG. 2 is a simplified block diagram illustrating an example deployment of an IP fabric, according to an embodiment of the present disclosure;



FIG. 3 is a flowchart of method steps illustrating a process of a particular leaf node programming a MAC address table, according to an embodiment of the present disclosure;



FIG. 4 is a flowchart of method steps illustrating a process of a particular leaf node programming an IP route into its FIB, according to an embodiment of the present disclosure;



FIG. 5 is a flowchart of method steps illustrating a process of a particular leaf node transmitting routing messages that enable another leaf node to program a MAC address table, according to an embodiment of the present disclosure; and



FIG. 6 is a flowchart of method steps illustrating a process of a particular leaf node programming a MAC address table after receiving the routing messages illustrated in FIG. 5, according to an embodiment of the present disclosure.





DETAILED DESCRIPTION OF EXAMPLE EMBODIMENTS

Overview


One aspect of the present disclosure provides an example embodiment of a method (referred to herein as a “first method”) for programming a Media Access Control (“MAC”) address table. The first method may be performed by a first leaf node in a network comprising N leaf nodes, where N is an integer greater than 1. Each leaf node in the network may comprise one or more Virtual Tunnel End Points (“VTEPs”) and instantiate a plurality of Virtual Routing and Forwarding elements (“VRFs”). A corresponding core Bridge Domain (“BD”) may be assigned to each VRF. The first method may include steps of obtaining information indicating one or more VTEP Affinity Groups (VAGs), each VAG of the one or more VAGs comprising an identification of only one VTEP of the one or more VTEPs per leaf node and obtaining information indicating assignment of each VRF of the plurality of VRFs to one of the one or more VAGs. The first method may also include steps of assigning each VAG of the one or more VAGs to a unique Filtering Identifier (“FID”), thereby generating one or more FIDs, and programming the MAC address table, using FIDs instead of BDs, by populating the MAC address table with a plurality of entries, each entry comprising a unique combination of a FID and a MAC address of a leaf node.


As used herein, the term “leaf node” refers to any network element configures with the functionality of a leaf node as described herein.


In an embodiment, the step of programming may comprise, based on the information indicating assignment of each VRF of the plurality of VRFs to one of the one or more VAGs, grouping VRFs assigned to each VAG into a different VRF subset, thereby generating one or more VRF subsets, and generating one entry for the MAC address table per each VRF subset of the one or more VRF subsets per each leaf node of the N leaf nodes except the first leaf node.


In an embodiment, each entry of the plurality of entries may identify a VTEP that is identified in a VAG that is assigned to a FID of the entry.


In an embodiment, the network may be a Virtual eXtensible Local Area Network (“VXLAN”) and the term “VTEP” may refer to a VXLAN Tunnel End Point.


In an embodiment, the first method may further include receiving a routing message (i.e., an advertisement route) from a VRF of the plurality of VRFs on a second leaf node, the routing message comprising an identification of a VTEP for the second leaf node as identified in a VAG to which the VRF is assigned to, and, based on information contained in the routing message, including, in a hardware Forwarding Information Base (“FIB”) table of the first leaf node (i.e. programming the FIB of the first leaf node), an Internet Protocol (“IP”) route to the VRF on the second leaf node, the IP route identifying a MAC address of the second leaf node in accordance with the MAC address table. In an embodiment, such a routing message may be a MAC/IP Advertisement Route received via Ethernet Virtual Private Network (“EVPN”) Border Gateway Protocol (“BGP”), and the identification of the VTEP for the second leaf node may be encoded in a Next Hop field of the routing message.


Another aspect of the present disclosure provides an example embodiment of another method (referred to herein as a “second method”) for a first leaf node in a network comprising a plurality of leaf nodes to program a MAC address table. The second method includes receiving a first routing message from a second leaf node, identifying that the first routing message comprises an identification of a VTEP of the second leaf node (i.e., one VTEP comprised within the second leaf node), an identification of a MAC address of the second leaf node, and an indication that the first routing message is independent of any of a plurality of VRFs that may be instantiated on the second leaf node. The second method further includes storing, e.g. in a database and/or in a cloud, the identification of the VTEP derived from the first routing message associated with the identification of the MAC address derived from the first routing message. The second method also includes receiving a second routing message from the second leaf node, identifying that the second routing message comprises an identification of the VTEP of the second leaf node and an identification of a VRF instantiated on the second leaf node, accessing the database to determine that the identification of the VTEP derived from the second routing message is associated with the identification of the MAC derived from the first routing message, and programming the MAC address table of the first leaf node with an entry indicating the identification of the VRF derived from the second routing message, the identification of the VTEP derived from the second routing message, and the identification of the MAC address derived from the first routing message.


Yet another aspect of the present disclosure provides an example embodiment of another method (referred to herein as a “third method”) for a second leaf node to provide information enabling the first leaf node to program a MAC address table according to the first or the second method described herein or another other method that the first leaf node may be configured to follow to program its MAC address table. The third method may include transmitting the first routing message and the second routing message as described above.


In an embodiment, each of the first and the second routing messages may comprises an EVPN BGP update message comprising Network Layer Reachability Information (“NLRI”). In such an embodiment, the first routing message may comprise a Route Type field encoding a predefined value indicating that the first routing message comprises the identification of the VTEP and the identification of the MAC address of the second leaf node, and another field, e.g. a Route Distinguisher field, encoding a predefined value indicating that the first routing message is independent of any of the plurality of VRFs instantiated on the second leaf node. The second routing message in such an embodiment may comprise a Route Type field encoding a predefined value indicating that the second routing message comprises a MAC/IP Advertisement Route. The second routing message may also comprise a Next Hop field encoding the identification of the VTEP of the second leaf node.


Since embodiments of the first and the second methods described herein involve programming of a MAC address table or, further programming of an IP route into the FIB table, a functional entity within a network element such as a first leaf node performing embodiments of these methods described herein will be referred to in the following as a “programming logic” of a first leaf node. Since embodiments of the third method described herein involve enabling a first leaf to program a MAC address table, a functional entity within a network element such as a second leaf node performing embodiments of these methods described herein may be referred to as a “programming logic” of a second leaf node.


As will be appreciated by one skilled in the art, aspects of the present disclosure, in particular the functionality of the programming logic of any leaf node described herein, may be embodied as a system, a method or a computer program product. Accordingly, aspects of the present disclosure may take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, micro-code, etc.) or an embodiment combining software and hardware aspects that may all generally be referred to herein as a “circuit,” “module” or “system.” Functions described in this disclosure may be implemented as an algorithm executed by a processor, e.g. a microprocessor, of a computer. Furthermore, aspects of the present disclosure may take the form of a computer program product embodied in one or more computer readable medium(s), preferably non-transitory, having computer readable program code embodied, e.g., stored, thereon. In various embodiments, such a computer program may, for example, be downloaded (updated) to the existing devices and systems (e.g. to the existing network elements such as the existing routers, switches, various control nodes, etc.) or be stored upon manufacturing of these devices and systems.


EXAMPLE EMBODIMENTS

Basics of VXLAN with EVPN Control Plane


Overlay networks in general, and Internet protocol (“IP”) overlay networks in particular, are gaining popularity for providing virtual machine (“VM”) mobility over Layer 3 (“L3”) networks. Virtual eXtensible Local Area Network (“VXLAN”) is a technique for providing a Layer 2 (“L2”) overlay on an L3 network. In particular, VXLAN is used to address the need for overlay networks within virtualized data centers accommodating multiple tenants. In such overlay networks, native frames are encapsulated with an outer IP overlay encapsulation, as along with a VXLAN header, and UDP header. In VXLAN, each overlay is referred to as a VXLAN segment. VMs within the same VXLAN segment are within the same L2 domain. Each VXLAN segment is identified by a 24-bit segment identifier (“ID”), referred to as a VXLAN Network Identifier (“VNI”), which identifies virtual network segments for different tenants and allows up to 16 M VXLAN segments to coexist within a single administrative domain. The term “VXLAN segment” herein may be used interchangeably with the term “VXLAN overlay network.” Additional details are provided in “VXLAN: A Framework for Overlaying Virtualized Layer 2 Networks over Layer 3 Networks” (RFC 7348) (hereinafter “VXLAN RFC”), which is hereby incorporated by reference in its entirety.


A VXLAN tunnel endpoint (“VTEP”) is a hardware or software component that performs VXLAN encapsulation and decapsulation. The IP address used by a VTEP as the source address for VXLAN encapsulation is referred to as the VTEP address. A leaf node, such as a Top of Rack (ToR) switch or router, may host one or more VTEPs, depending on its capability. Additional details are provided in RFC 7348, which is hereby incorporated by reference in its entirety.


Ethernet Virtual Private Network (“EVPN”) is an L2 Virtual Private Network (L2VPN) solution over IP/MPLS networks. Originally designed for applications such as data center interconnect and business L2VPN services, EVPN is recently considered as a Network Virtualization Overlay (NVO) solution. EVPN BGP has been proposed to be used as a control protocol to distribute tenant system (TS) reachability and underlay tunnel endpoint information. In the proposal, a MAC/IP Advertisement Route is used to advertise reachability to the tenant systems, where the Next Hop field of the route is set to an underlay tunnel endpoint address such as VTEP address. In addition, it has been proposed to advertise the route with a new EVPN BGP extended community attribute called “Router's MAC Extended Community” carrying the router MAC of a router that hosts the underlay tunnel endpoint specified in the Next Hop field. The router MAC is then used as the inner destination MAC of a VXLAN encapsulated packet. Additional details are provided in L2VPN workgroup internet drafts “A Network Virtualization Overlay Solution using EVPN” (draft-ietf-bess-evpn-overlay-00, dated Nov. 10, 2014) and “Integrated Routing and Bridging in EVPN” (draft-ietf-bess-evpn-inter-subnet-forwarding-00, dated Nov. 11, 2014), each of which is hereby incorporated by reference in its entirety.


Dynamic Fabric Automation (“DFA”), also referred to as “Vinci,” is one exemplary architecture for facilitating data center networking. The physical topology of DFA is based on a two-tier fat tree, also known as a Clos network, in which a plurality of leaf nodes (which may be implemented as Top of Rack (“ToR”) switches or routers) connects to each of a plurality of spine nodes (implemented as switches or routers) and vice versa. To support data forwarding, IP fabric is used in one embodiment of DFA. While embodiments of the present disclosure are described with reference to DFA, as illustrated with the IP fabrics shown in FIGS. 1 and 2, these embodiments are applicable to a broader scope of any VXLAN-based IP fabric, beyond DFA. In particular, functionality of the leaf nodes 220 and the MAC programming logic 260 described herein is applicable to any IP traffic comprising a plurality of leaf nodes, connected in any network topology, e.g., a topology in the absence of the second tier of the spine nodes 230.


Multitenancy is an important feature for IP fabric. Tenant traffic is either switched or routed over the IP fabric, encapsulated with VXLAN segment IDs. A tenant may be allocated one or more Virtual Local Area Network (“VLAN”) on a leaf node to which the virtual machines (VMs) thereof are connected. Each VLAN is associated with a layer 2 (“L2”) segment ID, which is used to encapsulate traffic switched over the fabric. In addition, a tenant may be associated with a VRF on the leaf node. The IP packets of a tenant may be forwarded over the IP fabric based on lookups in its VRF. Each VRF is associated with a layer 3 (“L3”) segment ID, which is used to encapsulate traffic routed over the fabric.



FIG. 1 provides a simplified block diagram illustrating an example deployment of an IP fabric. FIG. 1 illustrates an underlay fabric 110 comprising a plurality of leaf nodes, shown as four leaf nodes 120-1 through 120-4, each of which may be implemented as a ToR switch located in a rack unit (not shown) that houses one or more network elements, such as e.g. physical servers (not shown).


In one exemplary implementation, each leaf node 120 may be connected to each of a plurality of spine nodes, shown as two spine nodes 130-1 and 130-2, which may be implemented using routers or switches, and is configured to forward communications between the physical servers of the leaf nodes 120, in the rack unit and other network elements. However, discussions herein are applicable to any IP fabric 110 and presence of the spine nodes is entirely optional. For example, without spine nodes, the leaf nodes could be connected through a full mesh topology.


One or more virtual switches and virtual machines (“VMs”) (not shown) may be created and run on a physical server connected to each leaf node on top of a hypervisor (not shown). The virtual switches may be configured to manage communications of VMs in particular virtual networks and/or subnetworks (“subnets”) and may be embodied by software stored and executed on the corresponding physical server connected to a leaf node, thus performing functions of a physical switch device. Similarly, the VMs may be software stored and executed on the corresponding physical servers connected to the leaf nodes and configured to exchange communications with other VMs via the fabric 110.


Though not illustrated in FIG. 1, a physical server associated with a leaf switch of each leaf node may be housed in a rack unit or “rack.” Additional physical servers may also be housed in the rack. Leaf nodes 120 are responsible for managing communications (e.g., routing and forwarding) originating from and destined for physical servers (and virtual machines and virtual switches hosted by the physical servers) in the rack. Hence the term “top-of-rack” (ToR) ascribed to leaf nodes 120. Leaf nodes 120 may be used to provide redundancy and fault-tolerance for communications associated with physical servers, virtual machines and virtual switches in the rack. Thus, leaf node 120-1 is a peer to leaf node 120-2, and vice versa. These leaf nodes are configured to communicate with a network controller unit (“network controller”), not shown in FIG. 1, which is configured to manage communications between leaf nodes in different racks.


It may be appreciated that any number of two or more leaf nodes, any number of zero or more spine nodes, any number of physical servers hosting any number of virtual switches and VMs may be present in the system 110. For simplicity, FIG. 1 is further described with reference to the first leaf node 120-1. However, analogous descriptions are applicable to any other leaf nodes of the system 110.



FIG. 1 provides an exemplary illustration of two spine nodes 130, spine1-2, and four leaf nodes 120, leaf1-4, connected in a Clos network topology. Each of the leaf nodes leaf1-4 has a corresponding node MACs mac1-4, respectively. One VTEP is present in leaf1 and leaf4 each while two VTEPs are in leaf2 and leaf3 each, shown in FIG. 1 as VTEP addresses vtep1 for leaf1, vtep2a/b for leaf2, vtep3a/b for leaf3 and vtep4 for leaf4. A route reflector (“RR”) 140 may establish EVPN BGP adjacencies with each leaf node. A leaf node is configured to pass its TS and VTEP information through BGP to the RR 140, which then reflects the information to other leaf nodes. For the purpose of discussion, consider that there are four VRFs in the overlay network, vrf1-4, which are instantiated in each of the four leaf nodes. In a leaf node, each VRF uses one L3 VNI to forward L3 routed traffic over the network fabric 110. A L3 VNI is mapped to a Bridge Domain (BD) internally (i.e., within each leaf node). Therefore, each VRF has a BD for routed traffic over the network fabric, which is called “core BD.” For example, in the leaf node leaf1, VRFs vrf1-4 have core BDs bd1-4, respectively.


When a leaf node receives a MAC/IP Advertisement Route, it needs to program the IP route in a hardware FIB table pointing to an adjacency which contains the remote VTEP's router MAC for L2 rewrite. For post-L3 L2 lookup, it also needs to program that router MAC in its MAC address table to point to the next-hop VTEP. One approach for the programming of the MAC address table is based on allocating a MAC address table entry with the core BD tied to the route's VRF and the router MAC carried in Router's MAC Extended Community as keys and the VTEP address carried in the Next Hop field as content. Table 150 shown in FIG. 1 illustrates such a programming in leaf1. Consider an example that in vrf1, leaf2-4 advertise MAC/IP Advertisement Routes with Next Hop fields of vtep2a, vtep3a and vtep4, respectively. Consider further that leafs2-4 also advertise their respective router MACs, mac2-4, in Router's MAC Extended Community along with the routes. In such an example, when leaf1 receives the routes, it will program three MAC address table entries, keyed by vrf1's core BD, bd1, and leaf2-4's router MACs, mac2-4 (shown as entries 152). Similarly, leaf1 will program three MAC address table entries allocated for vrf2-4 each—i.e. three entries keyed by vrf2's core BD, bd2, and leaf2-4's router MACs, mac2-4 (shown as entries 154), three entries keyed by vrf3's core BD, bd3, and leaf2-4's router MACs, mac2-4 (shown as entries 156), and three entries keyed by vrf4's core BD, bd4, and leaf2-4's router MACs, mac2-4 (shown as entries 158). Therefore, a total of 12 entries are programmed in the MAC address table 150.


Generally speaking, if there are N leaf nodes and M VRFs in a network, such an approach would require M×(N−1) MAC address table entries in each a leaf node. Since a typical network contains a large number of leaf nodes, e.g. 100 leaf nodes, and a large number of VRFs, e.g. 1000 VRFs, this approach does not scale well in data plane.


Apart from the above scalability issue in data path programming, there is also a scalability issue in control path advertisement. A MAC/IP Advertisement Route is advertised with a router MAC via Router's MAC Extended Community attribute. Given that routes of different VRFs are advertised separately, a router MAC may be advertised repeatedly, once per VRF. Therefore, if there are N leaf nodes and M VRFs in a network, there may be M×(N−1) advertisements of router MACs, even if there are only N router MACs.


In view of the foregoing, at least two issues exist to be considered regarding scalable handling of BGP route information in VXLAN with EVPN control plane as described above. One is an issue in a data plane, namely the issue of how to efficiently utilize route information for the support of a large scale deployment of VXLAN overlay with EVPN control plane. Another is an issue in a control plane, namely the issue of how to cut down the redundant advertisements for better control path scalability. Accordingly, two solutions are described herein, both providing enhancements to the existing handling of BGP route information in VXLAN with EVPN control plane—one for the data plane issue and one for the control plane issue.


Addressing the Issue of Scalability in a Data Plane



FIG. 2 is a simplified block diagram illustrating an example deployment of an IP fabric, according to an embodiment of the present disclosure. Similar to FIG. 1, FIG. 2 provides a simplified block diagram illustrating an example deployment of a Vinci IP fabric by illustrating a leaf/spine underlay fabric 210 comprising a router reflector 240, a plurality of leaf nodes, shown as four leaf nodes 220-1 through 220-4, each leaf node connected to each of a plurality of spine nodes, shown as two spine nodes 230-1 and 230-2.


General description of the elements of the fabric 110 provided for FIG. 1, up to the description of programming a MAC address table and programming IP routes in a FIB table, is applicable to the corresponding elements of the fabric 210 illustrated in FIG. 2 and, therefore, in the interests of brevity, is not repeated here. As with the fabric illustrated in FIG. 1, discussions provided with reference to elements shown in FIG. 2 are applicable to any IP fabric 210 and presence of the spine nodes 230 is entirely optional. Programming a MAC address table and programming IP routes in a FIB table for the underlay fabric 210 of FIG. 2 is described below.


In order to facilitate the various operations performed by a leaf node as described herein, each of the leaf nodes 220 includes a programming logic 260 which may comprise at least a processor 262 and a memory element 264.



FIG. 3 is a flowchart of method steps 300 illustrating a process of a particular leaf node, e.g. the first leaf node leaf1, programming a MAC address table, according to an embodiment of the present disclosure. Referring to FIG. 3, in step 302, the programming logic 260 of a particular leaf node, e.g. the first leaf node leaf1, obtains information indicating one or more VTEP Affinity Groups (VAGs), each VAG comprising an identification of one and only one VTEP per leaf node. Thus, even when a leaf node may comprise multiple VTEPs, such as e.g. leaf 2 and leaf3 illustrated in FIG. 2, each VAG only includes an identification of only one VTEP for leaf2 and only one VTEP for leaf3.


Consider, for example, that two VAGs have been constructed, vag1 and vag2, vag1 identifying VTEPs {vtep1, vtep2a, vtep3a, vtep4} and vag2 identifying VTEPs {vtep1, vtep2b, vtep3b, vtep4}. In various embodiments, however, any number of VAGs may be used. In an embodiment, only a single VAG may be formed. However, multiple VAGs may be beneficial e.g. for load balancing purpose. Multiple VAGs may also be formed for the purpose of isolation of different sets of tenants using different groups of VTEPs. In an embodiment, a network controller, such as e.g. a data center network management (DCNM) station, may construct VAGs and then provide that information to the leaf nodes, e.g. as illustrated with step 302.


Each VRF is assigned to one of the VAGs. A MAC/IP advertisement route in a VRF can only use a VTEP in the VAG in the Next Hop field of a MAC/IP advertisement route.


While each VRF is assigned to only one VAG, a single VAG may have many VRFs assigned to it. Thus, there is a one-to-many relationship between VAGs and VRFs. In an embodiment, a network controller, such as e.g. the DCNM station, may assign VRFs to VAGs and then provide that information to the leaf nodes, e.g. as illustrated with step 304. In step 304, the programming logic 260 of the leaf1 obtains information indicating assignment of each VRF to one of the VAGs.


Consider, for example, that vrf1 and vrf2 are assigned to vag1, while vrf3 and vrf4 are assigned to vag2. A MAC/IP Advertisement Route is advertised with a VTEP in the VAG assigned to its VRF. Therefore, for example, a vrf1 route advertised by leaf2 would have vtep2a encoded in its Next Hop field, while a vrf3 route advertised by leaf3 would have vtep3b as its Next Hop.


Since leaf1 is now informed of which VAGs have been formed (step 302), in step 306, the programming logic 260 of the leaf1 assigns each VAG to a FID that is unique within the leaf1, thereby generating one or more FIDs (the same number of FIDs as VAGs, since there is one-to-one correspondence between FIDs and VAGs).


Originally specified in IEEE 802.1Q, a FID identifies a set of VLANs among which Shared VLAN Learning (SVL) may take place. IEEE 802.1Q provides that, in a MAC address table, FID, instead of VLAN ID, may be used as a key for MAC address lookup. As an extension to VLAN, some Cisco switches, such as e.g. Nexus 5600 BigSur ASIC, further provide that a bridge domain may also be mapped to a FID to support shared learning in hardware. While these examples provide that a VLAN and/or a BD may be mapped to a FID, how exactly the mapping is done is not prescribed.


As a result of the assignment of step 306, core BDs of the VRFs which are assigned the same VAG are mapped into the FID assigned to the VAG. Continuing with the example described in the earlier steps, leaf1 assigns vag1 and vag2 filtering identifiers fid1 and fid2, respectively. Since vrf1 and vrf2 are assigned to vag1, core BDs of vrf1 and vrf2, i.e. bd1 and bd2, are mapped to fid1. Since vrf3 and vrf4 are assigned to vag2, core BDs of vrf3 and vrf4, i.e. bd3 and bd4, are mapped to fid2. Such a BD to FID mapping is illustrated in a table 270 shown in FIG. 2.


Once BD to FID mapping is determined, the programming logic 260 in leaf1 can populate the MAC address table of leaf1 with entries using FID, instead of BD, as a key (step 308). Consider, for example, that leaf2 advertises two routes, one route in vrf1 and the other route in vrf2. When leaf1 receives the advertisement routes, the programming logic 260 will install only one entry in its MAC address table, because bd1 (i.e., the core BD of vrf1) and bd2 (i.e., the core BD of vrf2) are mapped to the same FID, fid1. On the other hand, consider, for example, that leaf2 advertises another route in vrf3. When leaf1 receives that advertisement route, the programming logic 260 in leaf1 will install a new entry in its MAC address table, because bd3 (i.e., the core BD of vrf3) is mapped to a different FID, fid2, and thus cannot share with the previous entry “fid1” as a key.


Thus, programming the MAC address table in leaf1 using FIDs instead of BDs comprises populating the MAC address table in leaf1 with entries each of which comprises a unique combination of a FID and a MAC address of a leaf node. This is illustrated with a MAC address table 250 shown in FIG. 2 for leaf1, for the example described in association with method steps 300. Compared to the MAC address table shown in FIG. 1, the number of entries in the table shown in FIG. 2 is reduced from 12 to 6, where, in comparison with FIG. 1, entries for vrf1 and vrf2 are combined together and shown as entries 252 for fid1 (because fid1 is assigned to vag1 to which vrf1 and vrf2 are assigned to), and entries for vrf3 and vrf4 are combined together and shown as entries 254 for fid2 (because fid2 is assigned to vag2 to which vrf3 and vrf4 are assigned to).


In other words, populating the MAC address table in leaf1 in step 308 may be described as, first, based on the information received in step 302 indicating assignment of each VRF to one of the VAGs, grouping VRFs assigned to each VAG into a different VRF subset (thereby generating one or more VRF subsets), and, second, generating one entry for the MAC address table per each VRF subset per each leaf node of the N leaf nodes except the first leaf node. Continuing with the example described above, such an approach would result in, first, grouping VRFs into 2 subsets (subset 1: vrf 1 and vrf2; subset 2: vrf3 and vrf4), and then generating one entry per subset per leaf node except the first node—i.e. one entry for subset 1 for leaf node leaf2 (the first entry in the table 250), one entry for subset 1 for leaf node leaf3 (the second entry in the table 250), one entry for subset 1 for leaf node leaf4 (the third entry in the table 250), and then another 3 entries for the 3 leaf nodes leaf2-4 for the subset 2.


Generally speaking, if there are N leaf nodes and G VAGs in the network (G being an integer equal to or greater than 1), the method illustrated in FIG. 3 results in G×(N−1) MAC address table entries in a lead node. Given a typically small number of VAGs, e.g. 2, and a large number of VRFs, e.g. 1000, such an approach scales much better than that described in association with FIG. 1.


As a special case, if each leaf node has only one VTEP, only one VAG can be constructed. In this case, the approach according to FIG. 3 would require only (N−1) MAC address table entries, which is the minimal number of entries possible.



FIG. 4 is a flowchart of method steps 400 illustrating a process of a particular leaf node, e.g. the first leaf node leaf1, programming an IP route into its FIB (not shown), according to an embodiment of the present disclosure. Referring to FIG. 4 and continuing with the example described in association with FIG. 3, in step 402, the programming logic 260 of the first leaf node leaf1 receives a MAC/IP advertisement route for a particular VRF on a particular other (i.e., second) leaf node, e.g. from vrf1 on leaf2. In step 404, based on the info received in step 402, the programming logic 260 includes in a FIB table of the leaf1, an IP route to that VRF on the other leaf node, the IP route identifying a MAC address of the second leaf node in accordance with the MAC address table. Continuing with the example described above, this means that the programming logic of leaf1 extracts the VTEP for leaf2 from the advertisement (so leaf1 extracts “vtep2a” because leaf2 has to include that vtep, and not vtep2b, as the Next Hop), obtains MAC address for vtep2a from the VTEP router's MAC Extended Community attribute carried along with the BGP MAC/IP advertisement route for vrf1 on leaf2 (i.e., for vtep2a, the MAC is “mac2”), and then programs the FIB in leaf1 with a route with the destination MAC equal to mac2. In the MAC address table, leaf1 will program an entry with BD/FID and mac2 as a key and vtep2a as content.


In summary, the above-described embodiments of the VTEP affinity approach to scale MAC address table programming in a data path provide enhancements to existing handling of BGP route information in VXLAN with EVPN control plane. As a result, the number of MAC address table entries needed for a large scale deployment of VXLAN with EVPN as control plane may be substantially reduced.


Addressing the Issue of Scalability in a Control Plane


Section 7 of Network Working Group Internet Draft “BGP MPLS Based Ethernet VPN” (draft-ietf-l2vpn-evpn-11, dated Oct. 18, 2014), which is hereby incorporated by reference in its entirety, defines a new BGP Network Layer Reachability Information (NLRI), called “EVPN NLRI.” The following format of the EVPN NLRI is proposed: Route Type (1 octet), Length (1 octet), and Route Type specific (variable). The Route Type field defines encoding of the rest of the EVPN NLRI (Route Type specific EVPN NLRI). The Length field indicates the length in octets of the Route Type specific field of EVPN NLRI.


In addition to the four Route Types proposed in this document (Ethernet Auto-Discovery (A-D) route denoted as Route Type “1”, MAC/IP advertisement route denoted as Route Type “2”, Inclusive Multicast Ethernet Tag Route denoted as Route Type “3”, and Ethernet Segment Route denoted as Route Type “4”), embodiments of the present disclosure are based on using a new Route Type of such EVPN NLRI, which Route Type may be called e.g. “VTEP's Router MAC route” (and be denoted e.g. “5”). A VTEP's Router MAC route type specific EVPN NLRI would consist of a VTEP address, the router MAC of the leaf node that hosts the VTEP, and a Route Distinguisher (RD) set to a predefined value, e.g. all zeros, so that it can be advertised in a BGP update independent of VRF. Such a VTEP's Router MAC EVPN NLRI would then be transmitted by a leaf node in combination with one or more MAC/IP advertisement route EVPN NLRIs (not necessarily at the same time) to enable another leaf node to program an entry in the MAC address table, as described below with reference to FIGS. 5 and 6.



FIG. 5 is a flowchart of method steps 500 illustrating how the routing messages are transmitted according to an embodiment of the present disclosure, while FIG. 6 is a flowchart of method steps 600 illustrating how a leaf node that has received the messages of FIG. 5 can program its' MAC address table according to an embodiment of the present disclosure. For illustrative purposes, the leaf node that transmits the messages as shown in FIG. 5 is referred to herein as a “second leaf node” while the leaf node that receives the messages and programs its' MAC address table is referred to as a “first leaf node.” Steps of FIGS. 5 and 6 are to be understood to be performed by logical entities within or associated with such a second and first leaf nodes, respectively, the logical entities comprising at least a processor and a memory that enable the leaf nodes to perform the steps.


As shown in FIG. 5, the method 500 may begin with a step 502, where the second leaf node transmits a first routing message comprising an identification of one VTEP comprises within the second leaf node, an identification of a MAC address of the second leaf node, and an indication that the first routing message is independent of any VRFs that may be instantiated on the second leaf node. Such a message could be a BGP update message comprising EVPN NLRI with Route Type field encoding a value that indicates that the route type is a VTEP's Router MAC route. The indication that the first routing message is independent of VRFs on the second leaf node may be provided by encoding a particular field within such EVPN NLRI, e.g. a RD field with a predefined value, such as e.g. all zeros.


In step 504, the second leaf node transmits a second routing message comprising an identification of the VTEP of the second leaf node that was identified in the first routing message and an identification of a VRF instantiated on the second leaf node. Such a message could be a BGP update message comprising EVPN NLRI with Route Type field encoding a value that indicates that the route type is a MAC/IP route as defined e.g. in Section 7 of Network Working Group Internet Draft “BGP MPLS Based Ethernet VPN” described above. The VTEP address could be included in the Next Hop field of such a routing message.


As shown in FIG. 6, the method 600 may begin with step 602 where one of the leaf nodes, e.g. the first leaf node, receives the first routing message transmitted by the second leaf node as described in step 502 above.


In step 604, the first leaf node can decode the received first message to obtain the identifications of the VTEP and MAC addresses included in their respective fields of the first routing message as well as to identify that the first routing message was independent of any VRFs on the second leaf node (e.g. by decoding the Route Type value encoded in that field).


In step 606, the first leaf node stores the VTEP and the MAC obtained from the first routing message in a database in such a manner that associated the VTEP address provided in the first routing message to the MAC address provided in the first routing message.


In step 608, the first leaf node receives the second routing message transmitted by the second leaf node as described in step 504 above. Note that, in various embodiments, timing of when the first leaf nodes receives the first and second routing messages may differ—the messages may be received substantially simultaneously, partially overlapping in time (in any order), or sequentially (in any order).


In step 610, the first leaf node identifies that the second routing message comprises a MAC/IP Advertisement route (e.g. by decoding the Route Type value encoded in that field and determining that the Route Type indicates “MAC/IP Advertisement route” update message), and obtains the VTEP and VRF identified in that message. For example, the VTEP can be encoded in the Next Hop field of the second routing message.


In step 612, the first leaf node accesses the database to determine MAC that is associated with the VTEP identified in the second routing message.


In step 614, the first leaf node may then program an entry in its' MAC address table with the VTEP address derived from the second routing message and the MAC address derived from the first routing message. In an embodiment when the MAC address table is programmed using BD's and MAC addresses as keys (e.g., the implementation described with reference to FIG. 1), such an entry may include an identification of the VRF derived from the second routing message by indicating a core BD assigned to that VRF (e.g. as illustrated with any one of the entries shown in the table 150). In an embodiment when the MAC address table is programmed using FID's and MAC addresses as keys (e.g., the implementation described with reference to FIG. 2, however other implementations using FID/MAC combination as keys may be used), such an entry may include an identification of the VRF derived from the second routing message by indicating the node-unique FID associated with that VRF (e.g. as illustrated with any one of the entries shown in the table 250).


The first leaf node may then install it's FIB based on the information contained in the first and second routing messages, e.g. by including in the FIB an IP route to the VRF on the second leaf node, the IP route identifying a MAC address of the second leaf node in accordance with the MAC address table entry programmed in step 614.


Consider that e.g. leaf2 advertises a route in vrf1 using EVPN NLRI. To do so, leaf2 will first generate and transmit a BGP update message (i.e., the advertisement of step 502 above) that comprises EVPN NLRI with Route Type field encoding a value that indicates that the route type is a VTEP's Router MAC route and with the RD field encoding a predetermined value (e.g. all zeros) indicating that the advertisement is independent of a particular VRF within leaf2. When another leaf node, e.g. leaf1, receives such an advertisement (step 602 above), the node (e.g. programming logic within the node) processes the advertisement to identify and store the mapping of VTEP address and router MAC carried in the message in a database (steps 604, 606 above). Furthermore, e.g. leaf2 will generate and transmit another BGP update message (i.e., the advertisement of step 504 above) that comprises EVPN NLRI with Route Type field indicating that this update message is a MAC/IP advertisement route. When another leaf node, e.g. leaf1, receives such an advertisement (step 608 above), the node (e.g. programming logic within the node) processes the advertisement to install entries in the MAC address table of the node (steps 610, 612, 614 above). In particular, the programming logic of leaf1 will examine the other BGP update message to determine that the Route Type field encodes a value indicating that the received EVPN NLRI is of MAC/IP advertisement route type and determine the VTEP address encoded in the Next Hop field of the message (step 610 above). Continuing with the example illustrated in FIG. 1, leaf1 will determine that the address vtep2a is encoded in the Next Hop field of the routing message (because vrf1 uses vtep2a). In the next step, the programming logic of leaf1 will derive the MAC address of leaf2 (i.e., mac2) based on the determined VTEP (i.e., vtep2a) and the previously received mapping of VTEP address, vtep2a, and router MAC, mac2, stored in the database (step 612 above). After that, the programming logic of leaf1 will install an entry in the MAC address table of leaf1 (step 614 above). In the implementation shown in FIG. 1, such an entry would be the entry (of the table 150) containing bd1 (i.e., the core BD associated with vrf1) and the router MAC mac2 as the keys. On the other hand, in the implementation shown in FIG. 2, such an entry would be the entry (of the table 250) containing fid1 (i.e., the FID assigned to vrf1) and the router MAC mac2 as the keys. The content is the same in both of these entries of FIGS. 1 and 2, i.e. the VTEP address vtep2.


Using such a new Route Type of EVPN NLRI, a MAC/IP Advertisement Route can be advertised in a manner that avoids advertising a router MAC via Router's MAC Extended Community. The reason is that the router MAC can be derived based the VTEP address already contained in route's Next Hop field and the mapping advertised in a VTEP's router MAC route. With such an approach, if there are N leaf nodes and V VTEPs per leaf node, using the new Route Type described herein requires only V×N advertisements of router MACs. Given a small number of VTEPs per leaf, e.g. 2, and a typically much larger number of VRFs, e.g. 1000, such an approach scales much better than what is originally specified in Section 5.1.1 of L2VPN Workgroup Internet Draft “Integrated Routing and Bridging in EVPN” described above.


In summary, the above-described embodiments of the new route type (VTEP's Router MAC route) for the EVPN NLRI to scale router MAC advertisement in control path provide enhancements to existing handling of BGP route information in VXLAN with EVPN control plane. As a result, the number of router MAC advertisements needed for a large scale deployment of VXLAN with EVPN as control plane may be substantially reduced.


Variations and Implementations


Within the context of the disclosure, a network used herein represents a series of points, nodes, or network elements of interconnected communication paths for receiving and transmitting packets of information that propagate through a communication system. A network offers communicative interface between sources and/or hosts, and may be any local area network (LAN), wireless local area network (WLAN), metropolitan area network (MAN), Intranet, Extranet, Internet, WAN, virtual private network (VPN), or any other appropriate architecture or system that facilitates communications in a network environment depending on the network topology. A network can comprise any number of hardware or software elements coupled to (and in communication with) each other through a communications medium.


In one particular instance, the architecture of the present disclosure can be associated with a service provider deployment. In other examples, the architecture of the present disclosure would be equally applicable to other communication environments, such as an enterprise wide area network (WAN) deployment. The architecture of the present disclosure may include a configuration capable of transmission control protocol/internet protocol (TCP/IP) communications for the transmission and/or reception of packets in a network.


As used herein in this Specification, the term ‘network element’ is meant to encompass any of the aforementioned elements, as well as servers (physical or virtually implemented on physical hardware), machines (physical or virtually implemented on physical hardware), end user devices, routers, switches, cable boxes, gateways, bridges, load balancers, firewalls, inline service nodes, proxies, processors, modules, or any other suitable device, component, element, proprietary appliance, or object operable to exchange, receive, and transmit information in a network environment. These network elements may include any suitable hardware, software, components, modules, interfaces, or objects that facilitate operations thereof related to scalable handling of BGP route information in VXLAN with EVPN control plane. This may be inclusive of appropriate algorithms and communication protocols that allow for the effective exchange of data or information.


In one implementation, leaf nodes described herein may include software to achieve (or to foster) the functions discussed herein for scalable handling of BGP route information in VXLAN with EVPN control plane where the software is executed on one or more processors to carry out the functions. This could include the implementation of instances of programming logic and/or any other suitable element that would foster the activities discussed herein. Additionally, each of the leaf nodes can have an internal structure (e.g., a processor, a memory element, etc.) to facilitate some of the operations described herein. In other embodiments, these functions for scalable handling of BGP route information in VXLAN with EVPN control plane may be executed externally to the leaf nodes, or included in some other network element to achieve the intended functionality. Alternatively, leaf nodes may include software (or reciprocating software) that can coordinate with other network elements in order to achieve the functions related to scalable handling of BGP route information in VXLAN with EVPN control plane described herein. In still other embodiments, one or several devices may include any suitable algorithms, hardware, software, components, modules, interfaces, or objects that facilitate the operations thereof.


In certain example implementations, functions related to scalable handling of BGP route information in VXLAN with EVPN control plane outlined herein may be implemented by logic encoded in one or more non-transitory, tangible media (e.g., embedded logic provided in an application specific integrated circuit [ASIC], digital signal processor [DSP] instructions, software [potentially inclusive of object code and source code] to be executed by one or more processors, or other similar machine, etc.). In some of these instances, one or more memory elements can store data used for the operations described herein. This includes the memory element being able to store instructions (e.g., software, code, etc.) that are executed to carry out the activities described in this Specification. The memory element is further configured to store databases such as mapping databases to enable functions disclosed herein. The processor can execute any type of instructions associated with the data to achieve the operations detailed herein in this Specification. In one example, the processor could transform an element or an article (e.g., data) from one state or thing to another state or thing. In another example, the activities outlined herein may be implemented with fixed logic or programmable logic (e.g., software/computer instructions executed by the processor) and the elements identified herein could be some type of a programmable processor, programmable digital logic (e.g., a field programmable gate array [FPGA], an erasable programmable read only memory (EPROM), an electrically erasable programmable ROM (EEPROM)) or an ASIC that includes digital logic, software, code, electronic instructions, or any suitable combination thereof.


Any of these elements (e.g., the network elements, etc.) can include memory elements for storing information to be used in achieving scalable handling of BGP route information in VXLAN with EVPN control plane, as outlined herein. Additionally, each of these devices may include a processor that can execute software or an algorithm to perform the scalable handling of BGP route information in VXLAN with EVPN control plane as discussed in this Specification. These devices may further keep information in any suitable memory element [random access memory (RAM), ROM, EPROM, EEPROM, ASIC, etc.], software, hardware, or in any other suitable component, device, element, or object where appropriate and based on particular needs. Any of the memory items discussed herein should be construed as being encompassed within the broad term ‘memory element.’ Similarly, any of the potential processing elements, modules, and machines described in this Specification should be construed as being encompassed within the broad term ‘processor.’ Each of the network elements can also include suitable interfaces for receiving, transmitting, and/or otherwise communicating data or information in a network environment.


Additionally, it should be noted that with the examples provided above, interaction may be described in terms of two, three, or four network elements. However, this has been done for purposes of clarity and example only. In certain cases, it may be easier to describe one or more of the functionalities of a given set of flows by only referencing a limited number of network elements. It should be appreciated that the systems described herein are readily scalable and, further, can accommodate a large number of components, as well as more complicated/sophisticated arrangements and configurations. Accordingly, the examples provided should not limit the scope or inhibit the broad techniques of scalable handling of BGP route information in VXLAN with EVPN control plane, as potentially applied to a myriad of other architectures.


It is also important to note that the steps in the FIGS. 3-6 illustrate only some of the possible scenarios that may be executed by, or within, the leaf nodes described herein. Some of these steps may be deleted or removed where appropriate, or these steps may be modified or changed considerably without departing from the scope of the present disclosure. In addition, a number of these operations have been described as being executed concurrently with, or in parallel to, one or more additional operations. However, the timing of these operations may be altered considerably. The preceding operational flows have been offered for purposes of example and discussion. Substantial flexibility is provided by the leaf nodes in that any suitable arrangements, chronologies, configurations, and timing mechanisms may be provided without departing from the teachings of the present disclosure.


It should also be noted that many of the previous discussions may imply a single client-server relationship. In reality, there is a multitude of servers in the delivery tier in certain implementations of the present disclosure. Moreover, the present disclosure can readily be extended to apply to intervening servers further upstream in the architecture, though this is not necessarily correlated to the ‘m’ clients that are passing through the ‘n’ servers. Any such permutations, scaling, and configurations are clearly within the broad scope of the present disclosure.


Numerous other changes, substitutions, variations, alterations, and modifications may be ascertained to one skilled in the art and it is intended that the present disclosure encompass all such changes, substitutions, variations, alterations, and modifications as falling within the scope of the appended claims. In order to assist the United States Patent and Trademark Office (USPTO) and, additionally, any readers of any patent issued on this application in interpreting the claims appended hereto, Applicant wishes to note that the Applicant: (a) does not intend any of the appended claims to invoke paragraph six (6) of 35 U.S.C. section 112 as it exists on the date of the filing hereof unless the words “means for” or “step for” are specifically used in the particular claims; and (b) does not intend, by any statement in the specification, to limit this disclosure in any way that is not otherwise reflected in the appended claims.


Although the claims are presented in single dependency format in the style used before the USPTO, it should be understood that any claim can depend on and be combined with any preceding claim of the same type unless that is clearly technically infeasible.

Claims
  • 1. A method to program a Media Access Control (MAC) address table, the method comprising: obtaining identification information identifying one or more Virtual Tunnel End Point (VTEP) Affinity Groups (VAGs), each of the one or more VAGs including an identification of only one VTEP per leaf node;generating a Filtering Identifier (FID) for each of the one or more VAGs;obtaining assignment information identifying assignment of each Virtual Routing and Forwarding element (VRF) of a plurality of VRFs instantiated on each leaf node to a respective one of the one or more VAGs;grouping each of the plurality VRFs based on the assignment information into one or more VRF subsets; andpopulating the MAC address table with the FIDs, a MAC address of a leaf node, and the one or more VRF subsets.
  • 2. The method according to claim 1, further comprising: generating one entry for the MAC address table per each VRF subset of the one or more VRF subsets.
  • 3. The method according to claim 1, wherein the MAC address table includes at least one entry with a VTEP identified in a VAG assigned to a FID.
  • 4. The method according to claim 1, wherein the MAC address table is programmed by a first leaf node.
  • 5. The method according to claim 4, further comprising: receiving a routing message from a VRF of the plurality of VRFs on a second leaf node, the routing message comprising an identification of a VTEP for the second leaf node as identified in a VAG to which the VRF is assigned to; andbased on routing information contained in the routing message, including, in a Forwarding Information Base (“FIB”) table of the first leaf node, an Internet Protocol (“IP”) route to the VRF on the second leaf node, the IP route identifying a MAC address of the second leaf node in accordance with the MAC address table.
  • 6. The method according to claim 5, wherein the routing message comprises a MAC/IP Advertisement Route.
  • 7. The method according to claim 5, wherein the routing message is received via Ethernet Virtual Private Network (“EVPN”) Border Gateway Protocol (“BGP”) and the identification of the VTEP for the second leaf node is encoded in a Next Hop field of the routing message.
  • 8. One or more non-transitory computer readable storage media encoded with software comprising computer executable instructions and, when the software is executed, operable to carry out a method to program a Media Access Control (MAC) address table, the method comprising: obtaining identification information identifying one or more Virtual Tunnel End Point (VTEP) Affinity Groups (VAGs), each of the one or more VAGs including an identification of only one VTEP per leaf node;generating a Filtering Identifier (FID) for each of the one or more VAGs;obtaining assignment information identifying assignment of each Virtual Routing and Forwarding element (VRF) of a plurality of VRFs instantiated on each leaf node to a respective one of the one or more VAGs;grouping each of the plurality VRFs based on the assignment information into one or more VRF subsets; andpopulating the MAC address table with the FIDs, a MAC address of a leaf node, and the one or more VRF subsets.
  • 9. The one or more non-transitory computer readable storage media according to claim 8, the method further comprising: generating one entry for the MAC address table per each VRF subset of the one or more VRF subsets.
  • 10. The one or more non-transitory computer readable storage media according to claim 8, wherein the MAC address table includes at least one entry identifies a VTEP identified in a VAG assigned to a FID.
  • 11. The one or more non-transitory computer readable storage media according to claim 8, wherein the MAC address table is programmed by a first leaf node.
  • 12. The one or more non-transitory computer readable storage media according to claim 11, wherein the method further comprises: receiving a routing message from a VRF of the plurality of VRFs on a second leaf node, the routing message comprising an identification of a VTEP for the second leaf node as identified in a VAG to which the VRF is assigned to; andbased on information contained in the routing message, including, in a Forwarding Information Base (“FIB”) table of the first leaf node, an Internet Protocol (“IP”) route to the VRF on the second leaf node, the IP route identifying a MAC address of the second leaf node in accordance with the MAC address table.
  • 13. The one or more non-transitory computer readable storage media according to claim 12, wherein the routing message comprises a MAC/IP Advertisement Route and is received via Ethernet Virtual Private Network (“EVPN”) Border Gateway Protocol (“BGP”), and the identification of the VTEP for the second leaf node is encoded in a Next Hop field of the routing message.
  • 14. A system to program a Media Access Control (MAC) address table, the system comprising: at least one memory configured to store computer executable instructions; andat least one processor coupled to the at least one memory and configured, when executing the instructions, to: obtain identification information identifying one or more Virtual Tunnel End Point (VTEP) Affinity Groups (VAGs), each of the one or more VAGs including an identification of only one VTEP per leaf node;generate a Filtering Identifier (FID) for each of the one or more VAGs;obtain assignment information identifying assignment of each Virtual Routing and Forwarding element (VRF) of a plurality of VRFs instantiated on each leaf node to a respective one of the one or more VAGs;group each of the plurality VRFs based on the assignment information into one or more VRF subsets; andpopulate the MAC address table with the FIDs, a MAC address of a leaf node, and the one or more VRF subsets.
  • 15. The system according to claim 14, wherein the at least one processor is further configured to: generate one entry for the MAC address table per each VRF subset of the one or more VRF subsets.
  • 16. The system according to claim 14, wherein the MAC address table includes at least one entry identifies a VTEP identified in a VAG assigned to a FID.
  • 17. The system according to claim 14, further comprising: a first leaf node configured to program the MAC address table.
  • 18. The system according to claim 17, wherein the at least one processor is further configured to: receive a routing message from a VRF of the plurality of VRFs on a second leaf node, the routing message comprising an identification of a VTEP for the second leaf node as identified in a VAG to which the VRF is assigned to; andbased on information contained in the routing message, include, in a Forwarding Information Base (“FIB”) table of the first leaf node, an Internet Protocol (“IP”) route to the VRF on the second leaf node, the IP route identifying a MAC address of the second leaf node in accordance with the MAC address table.
  • 19. The system according to claim 18, wherein the routing message is received via Ethernet Virtual Private Network (“EVPN”) Border Gateway Protocol (“BGP”) and the identification of the VTEP for the second leaf node is encoded in a Next Hop field of the routing message.
  • 20. The system according to claim 14, wherein each VRF comprises a corresponding core Bridge Domain (BD) assigned thereto and wherein the MAC address table is populated using FIDs instead of BDs.
RELATED APPLICATION

This application is a continuation of U.S. patent application Ser. No. 14/670,185 filed on Mar. 26, 2015, the contents of which is incorporated by reference in its entirety

US Referenced Citations (573)
Number Name Date Kind
4688695 Hirohata Aug 1987 A
5263003 Cowles et al. Nov 1993 A
5339445 Gasztonyi Aug 1994 A
5430859 Norman et al. Jul 1995 A
5457746 Dolphin Oct 1995 A
5535336 Smith et al. Jul 1996 A
5588012 Oizumi Dec 1996 A
5617421 Chin et al. Apr 1997 A
5680579 Young et al. Oct 1997 A
5690194 Parker et al. Nov 1997 A
5740171 Mazzola et al. Apr 1998 A
5742604 Edsall et al. Apr 1998 A
5764636 Edsall Jun 1998 A
5809285 Hilland Sep 1998 A
5812814 Sukegawa Sep 1998 A
5812950 Tom Sep 1998 A
5838970 Thomas Nov 1998 A
5999930 Wolff Dec 1999 A
6035105 McCloghrie et al. Mar 2000 A
6043777 Bergman et al. Mar 2000 A
6101497 Ofek Aug 2000 A
6148414 Brown et al. Nov 2000 A
6185203 Berman Feb 2001 B1
6188694 Fine et al. Feb 2001 B1
6202135 Kedem et al. Mar 2001 B1
6208649 Kloth Mar 2001 B1
6209059 Ofer et al. Mar 2001 B1
6219699 McCloghrie et al. Apr 2001 B1
6219753 Richardson Apr 2001 B1
6223250 Yokono Apr 2001 B1
6226771 Hilla et al. May 2001 B1
6260120 Blumenau et al. Jul 2001 B1
6266705 Ullum et al. Jul 2001 B1
6269381 St. Pierre et al. Jul 2001 B1
6269431 Dunham Jul 2001 B1
6295575 Blumenau et al. Sep 2001 B1
6400730 Latif et al. Jun 2002 B1
6408406 Parris Jun 2002 B1
6542909 Tamer et al. Apr 2003 B1
6542961 Matsunami et al. Apr 2003 B1
6553390 Gross et al. Apr 2003 B1
6564252 Hickman et al. May 2003 B1
6647474 Yanai et al. Nov 2003 B2
6675258 Bramhall et al. Jan 2004 B1
6683883 Czeiger et al. Jan 2004 B1
6694413 Mimatsu et al. Feb 2004 B1
6708227 Cabrera et al. Mar 2004 B1
6715007 Williams et al. Mar 2004 B1
6728791 Young Apr 2004 B1
6772231 Reuter et al. Aug 2004 B2
6820099 Huber et al. Nov 2004 B1
6847647 Wrenn Jan 2005 B1
6848759 Doornbos et al. Feb 2005 B2
6850955 Sonoda et al. Feb 2005 B2
6876656 Brewer et al. Apr 2005 B2
6880062 Ibrahim et al. Apr 2005 B1
6898670 Nahum May 2005 B2
6907419 Pesola et al. Jun 2005 B1
6912668 Brown et al. Jun 2005 B1
6952734 Gunlock et al. Oct 2005 B1
6976090 Ben-Shaul et al. Dec 2005 B2
6978300 Beukema et al. Dec 2005 B1
6983303 Pellegrino et al. Jan 2006 B2
6986015 Testardi Jan 2006 B2
6986069 Oehler et al. Jan 2006 B2
7051056 Rodriguez-Rivera et al. May 2006 B2
7069465 Chu et al. Jun 2006 B2
7073017 Yamamoto Jul 2006 B2
7108339 Berger Sep 2006 B2
7149858 Kiselev Dec 2006 B1
7171514 Coronado et al. Jan 2007 B2
7171668 Molloy et al. Jan 2007 B2
7174354 Andreasson Feb 2007 B2
7200144 Terrell et al. Apr 2007 B2
7222255 Claessens et al. May 2007 B1
7237045 Beckmann et al. Jun 2007 B2
7240188 Takata et al. Jul 2007 B2
7246260 Brown et al. Jul 2007 B2
7266718 Idei et al. Sep 2007 B2
7269168 Roy et al. Sep 2007 B2
7277431 Walter et al. Oct 2007 B2
7277948 Igarashi et al. Oct 2007 B2
7305658 Hamilton et al. Dec 2007 B1
7328434 Swanson et al. Feb 2008 B2
7340555 Ashmore et al. Mar 2008 B2
7346751 Prahlad et al. Mar 2008 B2
7352706 Klotz et al. Apr 2008 B2
7353305 Pangal et al. Apr 2008 B2
7359321 Sindhu et al. Apr 2008 B1
7383381 Faulkner et al. Jun 2008 B1
7403987 Marinelli et al. Jul 2008 B1
7433326 Desai et al. Oct 2008 B2
7433948 Edsall Oct 2008 B2
7434105 Rodriguez-Rivera et al. Oct 2008 B1
7441154 Klotz et al. Oct 2008 B2
7447839 Uppala Nov 2008 B2
7487321 Muthiah et al. Feb 2009 B2
7500053 Kavuri et al. Mar 2009 B1
7512744 Banga et al. Mar 2009 B2
7542681 Cornell et al. Jun 2009 B2
7558872 Senevirathne et al. Jul 2009 B1
7587570 Sarkar et al. Sep 2009 B2
7631023 Kaiser et al. Dec 2009 B1
7643505 Colloff Jan 2010 B1
7654625 Amann et al. Feb 2010 B2
7657796 Kaiser et al. Feb 2010 B1
7668981 Nagineni et al. Feb 2010 B1
7669071 Cochran et al. Feb 2010 B2
7689384 Becker Mar 2010 B1
7694092 Mizuno Apr 2010 B2
7697554 Ofer et al. Apr 2010 B1
7706303 Bose et al. Apr 2010 B2
7707481 Kirschner et al. Apr 2010 B2
7716648 Vaidyanathan et al. May 2010 B2
7752360 Galles Jul 2010 B2
7757059 Ofer et al. Jul 2010 B1
7774329 Peddy et al. Aug 2010 B1
7774839 Nazzal Aug 2010 B2
7793138 Rastogi et al. Sep 2010 B2
7840730 D'Amato et al. Nov 2010 B2
7843906 Chidambaram et al. Nov 2010 B1
7895428 Boland, IV et al. Feb 2011 B2
7904599 Bennett Mar 2011 B1
7930494 Goheer et al. Apr 2011 B1
7975175 Votta et al. Jul 2011 B2
7979670 Saliba et al. Jul 2011 B2
7984259 English Jul 2011 B1
8031703 Gottumukkula et al. Oct 2011 B2
8032621 Upalekar et al. Oct 2011 B1
8051197 Mullendore et al. Nov 2011 B2
8086755 Duffy, IV et al. Dec 2011 B2
8161134 Mishra et al. Apr 2012 B2
8196018 Forhan et al. Jun 2012 B2
8205951 Boks Jun 2012 B2
8218538 Chidambaram et al. Jul 2012 B1
8230066 Heil Jul 2012 B2
8234377 Cohn Jul 2012 B2
8266238 Zimmer et al. Sep 2012 B2
8272104 Chen et al. Sep 2012 B2
8274993 Sharma et al. Sep 2012 B2
8290919 Kelly et al. Oct 2012 B1
8297722 Chambers et al. Oct 2012 B2
8301746 Head et al. Oct 2012 B2
8335231 Kloth et al. Dec 2012 B2
8341121 Claudatos et al. Dec 2012 B1
8345692 Smith Jan 2013 B2
8352941 Protopopov et al. Jan 2013 B1
8392760 Kandula et al. Mar 2013 B2
8442059 de la Iglesia et al. May 2013 B1
8479211 Marshall et al. Jul 2013 B1
8495356 Ashok et al. Jul 2013 B2
8514868 Hill Aug 2013 B2
8532108 Li et al. Sep 2013 B2
8560663 Baucke et al. Oct 2013 B2
8619599 Even Dec 2013 B1
8626891 Guru et al. Jan 2014 B2
8630983 Sengupta et al. Jan 2014 B2
8660129 Brendel et al. Feb 2014 B1
8661299 Ip Feb 2014 B1
8677485 Sharma et al. Mar 2014 B2
8683296 Anderson et al. Mar 2014 B2
8706772 Hartig et al. Apr 2014 B2
8719804 Jain May 2014 B2
8725854 Edsall May 2014 B2
8768981 Milne et al. Jul 2014 B1
8775773 Acharya et al. Jul 2014 B2
8793372 Ashok et al. Jul 2014 B2
8805918 Chandrasekaran et al. Aug 2014 B1
8805951 Faibish et al. Aug 2014 B1
8832330 Lancaster Sep 2014 B1
8855116 Rosset et al. Oct 2014 B2
8856339 Mestery et al. Oct 2014 B2
8868474 Leung et al. Oct 2014 B2
8887286 Dupont et al. Nov 2014 B2
8898385 Jayaraman et al. Nov 2014 B2
8909928 Ahmad et al. Dec 2014 B2
8918510 Gmach et al. Dec 2014 B2
8918586 Todd et al. Dec 2014 B1
8924720 Raghuram et al. Dec 2014 B2
8930747 Levijarvi et al. Jan 2015 B2
8935500 Gulati et al. Jan 2015 B1
8949677 Brundage et al. Feb 2015 B1
8996837 Bono et al. Mar 2015 B1
9003086 Schuller et al. Apr 2015 B1
9007922 Mittal et al. Apr 2015 B1
9009427 Sharma et al. Apr 2015 B2
9009704 McGrath et al. Apr 2015 B2
9075638 Barnett et al. Jul 2015 B2
9141554 Candelaria Sep 2015 B1
9141785 Mukkara et al. Sep 2015 B2
9164795 Vincent Oct 2015 B1
9176677 Fradkin et al. Nov 2015 B1
9201704 Chang et al. Dec 2015 B2
9203784 Chang et al. Dec 2015 B2
9207882 Rosset et al. Dec 2015 B2
9207929 Katsura Dec 2015 B2
9213612 Candelaria Dec 2015 B2
9223564 Munireddy et al. Dec 2015 B2
9223634 Chang et al. Dec 2015 B2
9244761 Yekhanin et al. Jan 2016 B2
9250969 Lagar-Cavilla et al. Feb 2016 B2
9264494 Factor et al. Feb 2016 B2
9270754 Iyengar et al. Feb 2016 B2
9280487 Candelaria Mar 2016 B2
9304815 Vasanth et al. Apr 2016 B1
9313048 Chang et al. Apr 2016 B2
9374270 Nakil et al. Jun 2016 B2
9378060 Jansson et al. Jun 2016 B2
9396251 Boudreau et al. Jul 2016 B1
9448877 Candelaria Sep 2016 B2
9471348 Zuo et al. Oct 2016 B2
9501473 Kong et al. Nov 2016 B1
9503523 Rosset et al. Nov 2016 B2
9565110 Mullendore et al. Feb 2017 B2
9575828 Agarwal et al. Feb 2017 B2
9582377 Dhoolam et al. Feb 2017 B1
9614763 Dong Apr 2017 B2
9658868 Hill May 2017 B2
9658876 Chang et al. May 2017 B2
9733868 Chandrasekaran et al. Aug 2017 B2
9763518 Charest et al. Sep 2017 B2
9830240 George et al. Nov 2017 B2
9853873 Dasu et al. Dec 2017 B2
9900250 Dong Feb 2018 B2
20020049980 Hoang Apr 2002 A1
20020053009 Selkirk et al. May 2002 A1
20020073276 Howard et al. Jun 2002 A1
20020083120 Soltis Jun 2002 A1
20020095547 Watanabe et al. Jul 2002 A1
20020103889 Markson et al. Aug 2002 A1
20020103943 Lo et al. Aug 2002 A1
20020112113 Karpoff et al. Aug 2002 A1
20020120741 Webb et al. Aug 2002 A1
20020138675 Mann Sep 2002 A1
20020156971 Jones et al. Oct 2002 A1
20030023885 Potter et al. Jan 2003 A1
20030026267 Oberman et al. Feb 2003 A1
20030055933 Ishizaki et al. Mar 2003 A1
20030056126 O'Connor et al. Mar 2003 A1
20030065986 Fraenkel et al. Apr 2003 A1
20030084359 Bresniker et al. May 2003 A1
20030118053 Edsall et al. Jun 2003 A1
20030131105 Czeiger et al. Jul 2003 A1
20030131165 Asano et al. Jul 2003 A1
20030131182 Kumar et al. Jul 2003 A1
20030140134 Swanson et al. Jul 2003 A1
20030140210 Testardi Jul 2003 A1
20030149763 Heitman et al. Aug 2003 A1
20030154271 Baldwin et al. Aug 2003 A1
20030159058 Eguchi et al. Aug 2003 A1
20030174725 Shankar Sep 2003 A1
20030189395 Doornbos et al. Oct 2003 A1
20030210686 Terrell et al. Nov 2003 A1
20040024961 Cochran et al. Feb 2004 A1
20040030857 Krakirian et al. Feb 2004 A1
20040039939 Cox et al. Feb 2004 A1
20040054776 Klotz et al. Mar 2004 A1
20040057389 Klotz et al. Mar 2004 A1
20040059807 Klotz et al. Mar 2004 A1
20040088574 Walter et al. May 2004 A1
20040117438 Considine et al. Jun 2004 A1
20040123029 Dalai et al. Jun 2004 A1
20040128470 Hetzler et al. Jul 2004 A1
20040128540 Roskind Jul 2004 A1
20040153863 Klotz et al. Aug 2004 A1
20040190901 Fang Sep 2004 A1
20040215749 Tsao Oct 2004 A1
20040230848 Mayo et al. Nov 2004 A1
20040250034 Yagawa et al. Dec 2004 A1
20050033936 Nakano et al. Feb 2005 A1
20050036499 Dutt et al. Feb 2005 A1
20050050211 Kaul et al. Mar 2005 A1
20050050270 Horn et al. Mar 2005 A1
20050053073 Kloth et al. Mar 2005 A1
20050055428 Terai et al. Mar 2005 A1
20050060574 Klotz et al. Mar 2005 A1
20050060598 Klotz et al. Mar 2005 A1
20050071851 Opheim Mar 2005 A1
20050076113 Klotz et al. Apr 2005 A1
20050091426 Horn et al. Apr 2005 A1
20050114611 Durham et al. May 2005 A1
20050114615 Ogasawara et al. May 2005 A1
20050117522 Basavaiah et al. Jun 2005 A1
20050117562 Wrenn Jun 2005 A1
20050138287 Ogasawara et al. Jun 2005 A1
20050169188 Cometto et al. Aug 2005 A1
20050185597 Le et al. Aug 2005 A1
20050188170 Yamamoto Aug 2005 A1
20050198523 Shanbhag et al. Sep 2005 A1
20050235072 Smith et al. Oct 2005 A1
20050283658 Clark et al. Dec 2005 A1
20060015861 Takata et al. Jan 2006 A1
20060015928 Setty et al. Jan 2006 A1
20060034302 Peterson Feb 2006 A1
20060045021 Deragon et al. Mar 2006 A1
20060075191 Lolayekar et al. Apr 2006 A1
20060098672 Schzukin et al. May 2006 A1
20060117099 Mogul Jun 2006 A1
20060136684 Le et al. Jun 2006 A1
20060184287 Belady et al. Aug 2006 A1
20060198319 Schondelmayer et al. Sep 2006 A1
20060215297 Kikuchi Sep 2006 A1
20060230227 Ogasawara et al. Oct 2006 A1
20060242332 Johnsen et al. Oct 2006 A1
20060251111 Kloth et al. Nov 2006 A1
20070005297 Beresniewicz et al. Jan 2007 A1
20070067593 Satoyama et al. Mar 2007 A1
20070079068 Draggon Apr 2007 A1
20070091903 Atkinson Apr 2007 A1
20070094465 Sharma et al. Apr 2007 A1
20070101202 Garbow May 2007 A1
20070121519 Cuni et al. May 2007 A1
20070136541 Herz et al. Jun 2007 A1
20070162969 Becker Jul 2007 A1
20070211640 Palacharla et al. Sep 2007 A1
20070214316 Kim Sep 2007 A1
20070250838 Belady et al. Oct 2007 A1
20070258380 Chamdani et al. Nov 2007 A1
20070263545 Foster et al. Nov 2007 A1
20070276884 Hara et al. Nov 2007 A1
20070283059 Ho et al. Dec 2007 A1
20080016412 White et al. Jan 2008 A1
20080034149 Sheen Feb 2008 A1
20080052459 Chang et al. Feb 2008 A1
20080059698 Kabir et al. Mar 2008 A1
20080114933 Ogasawara et al. May 2008 A1
20080126509 Subrannanian et al. May 2008 A1
20080126734 Murase May 2008 A1
20080168304 Flynn et al. Jul 2008 A1
20080201616 Ashmore Aug 2008 A1
20080244184 Lewis et al. Oct 2008 A1
20080256082 Davies et al. Oct 2008 A1
20080267217 Colville et al. Oct 2008 A1
20080288661 Galles Nov 2008 A1
20080294888 Ando et al. Nov 2008 A1
20090063766 Matsumura et al. Mar 2009 A1
20090083484 Basham et al. Mar 2009 A1
20090089567 Boland, IV et al. Apr 2009 A1
20090094380 Qiu et al. Apr 2009 A1
20090094664 Butler et al. Apr 2009 A1
20090125694 Innan et al. May 2009 A1
20090193223 Saliba et al. Jul 2009 A1
20090201926 Kagan et al. Aug 2009 A1
20090222733 Basham et al. Sep 2009 A1
20090240873 Yu et al. Sep 2009 A1
20090282471 Green et al. Nov 2009 A1
20090323706 Germain et al. Dec 2009 A1
20100011365 Gerovac et al. Jan 2010 A1
20100030995 Wang et al. Feb 2010 A1
20100046378 Knapp et al. Feb 2010 A1
20100083055 Ozonat Apr 2010 A1
20100174968 Charles et al. Jul 2010 A1
20100318609 Lahiri et al. Dec 2010 A1
20100318837 Murphy et al. Dec 2010 A1
20110010394 Carew et al. Jan 2011 A1
20110022691 Banerjee et al. Jan 2011 A1
20110029824 Schöler et al. Feb 2011 A1
20110035494 Pandey et al. Feb 2011 A1
20110075667 Li et al. Mar 2011 A1
20110087848 Trent Apr 2011 A1
20110119556 de Buen May 2011 A1
20110142053 Van Der Merwe et al. Jun 2011 A1
20110161496 Nicklin Jun 2011 A1
20110173303 Rider Jul 2011 A1
20110228679 Varma et al. Sep 2011 A1
20110231899 Pulier et al. Sep 2011 A1
20110239039 Dieffenbach et al. Sep 2011 A1
20110252274 Kawaguchi et al. Oct 2011 A1
20110255540 Mizrahi et al. Oct 2011 A1
20110276584 Cotner et al. Nov 2011 A1
20110276675 Singh et al. Nov 2011 A1
20110276951 Jain Nov 2011 A1
20110299539 Rajagopal et al. Dec 2011 A1
20110307450 Hahn et al. Dec 2011 A1
20110313973 Srivas et al. Dec 2011 A1
20120023319 Chin et al. Jan 2012 A1
20120030401 Cowan et al. Feb 2012 A1
20120054367 Ramakrishnan et al. Mar 2012 A1
20120072578 Alam Mar 2012 A1
20120072985 Davne et al. Mar 2012 A1
20120075999 Ko et al. Mar 2012 A1
20120084445 Brock et al. Apr 2012 A1
20120084782 Chou et al. Apr 2012 A1
20120096134 Suit Apr 2012 A1
20120130874 Mane et al. May 2012 A1
20120131174 Ferris et al. May 2012 A1
20120134672 Banerjee May 2012 A1
20120144014 Natham et al. Jun 2012 A1
20120159112 Tokusho et al. Jun 2012 A1
20120167094 Suit Jun 2012 A1
20120173581 Hartig et al. Jul 2012 A1
20120173589 Kwon et al. Jul 2012 A1
20120177039 Berman Jul 2012 A1
20120177041 Berman Jul 2012 A1
20120177042 Berman Jul 2012 A1
20120177043 Berman Jul 2012 A1
20120177044 Berman Jul 2012 A1
20120177045 Berman Jul 2012 A1
20120177370 Berman Jul 2012 A1
20120179909 Sagi et al. Jul 2012 A1
20120201138 Yu et al. Aug 2012 A1
20120210041 Flynn et al. Aug 2012 A1
20120254440 Wang Oct 2012 A1
20120257501 Kucharczyk Oct 2012 A1
20120265976 Spiers et al. Oct 2012 A1
20120281706 Agarwal et al. Nov 2012 A1
20120297088 Wang et al. Nov 2012 A1
20120303618 Dutta et al. Nov 2012 A1
20120311106 Morgan Dec 2012 A1
20120311568 Jansen Dec 2012 A1
20120320788 Venkataramanan et al. Dec 2012 A1
20120324114 Dutta et al. Dec 2012 A1
20120331119 Bose et al. Dec 2012 A1
20130003737 Sinicrope Jan 2013 A1
20130013664 Baird et al. Jan 2013 A1
20130028135 Berman Jan 2013 A1
20130036212 Jibbe et al. Feb 2013 A1
20130036213 Hasan et al. Feb 2013 A1
20130036449 Mukkara et al. Feb 2013 A1
20130054888 Bhat et al. Feb 2013 A1
20130061089 Valiyaparambil et al. Mar 2013 A1
20130067162 Jayaraman et al. Mar 2013 A1
20130080823 Roth et al. Mar 2013 A1
20130086340 Fleming et al. Apr 2013 A1
20130100858 Kamath et al. Apr 2013 A1
20130111540 Sabin May 2013 A1
20130138816 Kuo et al. May 2013 A1
20130138836 Cohen et al. May 2013 A1
20130139138 Kakos May 2013 A1
20130144933 Hinni et al. Jun 2013 A1
20130152076 Patel Jun 2013 A1
20130152175 Hromoko et al. Jun 2013 A1
20130163426 Beliveau et al. Jun 2013 A1
20130163606 Bagepalli et al. Jun 2013 A1
20130179941 McGloin et al. Jul 2013 A1
20130182712 Aguayo et al. Jul 2013 A1
20130185433 Zhu et al. Jul 2013 A1
20130191106 Kephart et al. Jul 2013 A1
20130198730 Munireddy et al. Aug 2013 A1
20130208888 Agrawal et al. Aug 2013 A1
20130212130 Rahnama Aug 2013 A1
20130223236 Dickey Aug 2013 A1
20130238641 Mandelstein et al. Sep 2013 A1
20130266307 Garg et al. Oct 2013 A1
20130268922 Tiwari et al. Oct 2013 A1
20130275470 Cao et al. Oct 2013 A1
20130297655 Narasayya et al. Nov 2013 A1
20130297769 Chang et al. Nov 2013 A1
20130318134 Bolik et al. Nov 2013 A1
20130318288 Khan et al. Nov 2013 A1
20140006708 Huynh et al. Jan 2014 A1
20140016493 Johnsson et al. Jan 2014 A1
20140019684 Wei et al. Jan 2014 A1
20140025770 Warfield et al. Jan 2014 A1
20140029441 Nydell Jan 2014 A1
20140029442 Wallman Jan 2014 A1
20140039683 Zimmermann et al. Feb 2014 A1
20140040473 Ho et al. Feb 2014 A1
20140040883 Tompkins Feb 2014 A1
20140047201 Mehta Feb 2014 A1
20140053264 Dubrovsky et al. Feb 2014 A1
20140059187 Rosset et al. Feb 2014 A1
20140059266 Ben-Michael et al. Feb 2014 A1
20140086253 Yong Mar 2014 A1
20140089273 Borshack et al. Mar 2014 A1
20140095556 Lee et al. Apr 2014 A1
20140096249 Dupont et al. Apr 2014 A1
20140105009 Vos et al. Apr 2014 A1
20140108474 David et al. Apr 2014 A1
20140109071 Ding et al. Apr 2014 A1
20140112122 Kapadia Apr 2014 A1
20140123207 Agarwal et al. May 2014 A1
20140156557 Zeng et al. Jun 2014 A1
20140164666 Yand Jun 2014 A1
20140164866 Bolotov et al. Jun 2014 A1
20140172371 Zhu et al. Jun 2014 A1
20140173060 Jubran et al. Jun 2014 A1
20140173195 Rosset et al. Jun 2014 A1
20140173579 McDonald et al. Jun 2014 A1
20140189278 Peng Jul 2014 A1
20140198794 Mehta et al. Jul 2014 A1
20140211661 Gorkemli et al. Jul 2014 A1
20140215265 Mohanta et al. Jul 2014 A1
20140215590 Brand Jul 2014 A1
20140219086 Cantu′ et al. Aug 2014 A1
20140222953 Karve et al. Aug 2014 A1
20140229790 Goss et al. Aug 2014 A1
20140244585 Sivasubramanian et al. Aug 2014 A1
20140244897 Goss et al. Aug 2014 A1
20140245435 Belenky Aug 2014 A1
20140269390 Ciodaru et al. Sep 2014 A1
20140281700 Nagesharao et al. Sep 2014 A1
20140297941 Rajani et al. Oct 2014 A1
20140307578 DeSanti Oct 2014 A1
20140317206 Lomelino et al. Oct 2014 A1
20140324862 Bingham et al. Oct 2014 A1
20140325208 Resch et al. Oct 2014 A1
20140331276 Frascadore et al. Nov 2014 A1
20140348166 Yang Nov 2014 A1
20140355450 Bhikkaji Dec 2014 A1
20140366155 Chang et al. Dec 2014 A1
20140376550 Khan et al. Dec 2014 A1
20150003450 Salam et al. Jan 2015 A1
20150003458 Li et al. Jan 2015 A1
20150003463 Li et al. Jan 2015 A1
20150010001 Duda et al. Jan 2015 A1
20150016461 Qiang Jan 2015 A1
20150030024 Venkataswami et al. Jan 2015 A1
20150046123 Kato Feb 2015 A1
20150053353 Kapadia et al. Mar 2015 A1
20150067001 Koltsidas Mar 2015 A1
20150082432 Eaton et al. Mar 2015 A1
20150092824 Wicker, Jr. et al. Apr 2015 A1
20150120907 Niestemski et al. Apr 2015 A1
20150121131 Kiselev et al. Apr 2015 A1
20150127979 Doppalapudi May 2015 A1
20150142840 Baldwin et al. May 2015 A1
20150169313 Katsura Jun 2015 A1
20150180672 Kuwata Jun 2015 A1
20150207763 Bertran Ortiz et al. Jun 2015 A1
20150205974 Talley et al. Jul 2015 A1
20150222444 Sarkar Aug 2015 A1
20150229546 Somaiya et al. Aug 2015 A1
20150248366 Bergsten et al. Sep 2015 A1
20150248418 Bhardwaj et al. Sep 2015 A1
20150254003 Lee et al. Sep 2015 A1
20150254088 Chou et al. Sep 2015 A1
20150261446 Lee Sep 2015 A1
20150263993 Kuch et al. Sep 2015 A1
20150269048 Marr et al. Sep 2015 A1
20150277804 Arnold et al. Oct 2015 A1
20150281067 Wu Oct 2015 A1
20150303949 Jafarkhani et al. Oct 2015 A1
20150341237 Cuni et al. Nov 2015 A1
20150341239 Bertran Ortiz et al. Nov 2015 A1
20150358136 Medard Dec 2015 A1
20150379150 Duda Dec 2015 A1
20160004611 Lakshman et al. Jan 2016 A1
20160011936 Luby Jan 2016 A1
20160011942 Golbourn et al. Jan 2016 A1
20160054922 Awasthi et al. Feb 2016 A1
20160062820 Jones et al. Mar 2016 A1
20160070652 Sundararaman et al. Mar 2016 A1
20160087885 Tripathi Mar 2016 A1
20160088083 Bharadwaj et al. Mar 2016 A1
20160119159 Zhao et al. Apr 2016 A1
20160119421 Semke et al. Apr 2016 A1
20160139820 Fluman et al. May 2016 A1
20160149639 Pham et al. May 2016 A1
20160205189 Mopur et al. Jul 2016 A1
20160210161 Rosset et al. Jul 2016 A1
20160231928 Lewis et al. Aug 2016 A1
20160274926 Narasimhamurthy Sep 2016 A1
20160285760 Dong Sep 2016 A1
20160292359 Tellis et al. Oct 2016 A1
20160294983 Kliteynik et al. Oct 2016 A1
20160334998 George et al. Nov 2016 A1
20160366094 Mason et al. Dec 2016 A1
20160378624 Jenkins, Jr. et al. Dec 2016 A1
20160380694 Guduru Dec 2016 A1
20170010874 Rosset Jan 2017 A1
20170010930 Dutta et al. Jan 2017 A1
20170019475 Metz et al. Jan 2017 A1
20170068630 Iskandar et al. Mar 2017 A1
20170168970 Sajeepa et al. Jun 2017 A1
20170177860 Suarez et al. Jun 2017 A1
20170212858 Chu et al. Jul 2017 A1
20170273019 Park et al. Sep 2017 A1
20170277655 Das et al. Sep 2017 A1
20170337097 Sipos et al. Nov 2017 A1
20170340113 Charest et al. Nov 2017 A1
20170371558 George et al. Dec 2017 A1
20180097707 Wright et al. Apr 2018 A1
Foreign Referenced Citations (12)
Number Date Country
103259726 Aug 2013 CN
104471899 Mar 2015 CN
2228719 Sep 2010 EP
2439637 Apr 2012 EP
2680155 Jan 2014 EP
2350028 May 2001 GB
2000-242434 Sep 2000 JP
1566104 Jan 2017 TW
WO 2004077214 Sep 2004 WO
2016003489 Jan 2016 WO
WO 2016003408 Jan 2016 WO
WO-2016003489 Jan 2016 WO
Non-Patent Literature Citations (86)
Entry
Notice of Allowance from U.S. Appl. No. 14/674,900 dated Dec. 6, 2016.
Sajassi et al., “Integrated Routing and Bridging in EVPN,” L2VPN Workgroup, Nov. 11, 2014, 26 pages; http://tools.ietf.org/pdf/draft-ietf-bess-evpn-inter-subnet-forwarding-00.pdf.
Sajassi et al., “A Network Virtualization Overlay Solution using EVPN,” L2VPN Workgroup, Nov. 10, 2014, 24 pages; http://tools.ietf.org/pdf/draft-ietf-bess-evpn-overlay-00.pdf.
Sajassi et al., “BGP MPLS Based Ethernet VPN,” Network Working Group, Oct. 18, 2014, 52 pages.
Mahalingam, et al., “Virtual eXtensible Local Area Network (VXLAN): A Framework for Overlaying Virtualized Layer 2 Networks over Layer 3 Networks,” Independent Submission, RFC 7348, Aug. 2014, 22 pages; http://www.hjp.at/doc/rfc/rfc7348.html.
Non-Final Office Action from U.S. Appl. No. 14/674,900 dated Sep. 23, 2016.
PCT Aug. 17, 2016 International Search Report and Written Opinion from International Application Serial No. PCT/US2016/023955; 17 pages.
Aweya, James, et al., “Multi-level active queue management with dynamic thresholds,” Elsevier, Computer Communications 25 (2002) pp. 756-771.
Petersen, Chris, “Introducing Lightning: A flexible NVMe JBOF,” Mar. 9, 2016, 6 pages.
Stamey, John, et al., “Client-Side Dynamic Metadata in Web 2.0,” SIGDOC '07, Oct. 22-24, 2007, pp. 155-161.
Author Unknown, “5 Benefits of a Storage Gateway in the Cloud,” Blog, TwinStrata, Inc., posted Jul. 10, 2012, 4 pages, https://web.archive.org/web/20120725092619/http://blog.twinstrata.com/2012/07/10//5-benefits-of-a-storage-gateway-in-the-cloud.
Author Unknown, “Configuration Interface for IBM System Storage DS5000, IBM DS4000, and IBM DS3000 Systems,” IBM SAN Volume Controller Version 7.1, IBM® System Storage® SAN Volume Controller Information Center, Jun. 16, 2013, 3 pages.
Author Unknown, “Coraid EtherCloud, Software-Defined Storage with Scale-Out Infrastructure,” Solution Brief, 2013, 2 pages, Coraid, Redwood City, California, U.S.A.
Author Unknown, “Coraid Virtual DAS (VDAS) Technology: Eliminate Tradeoffs between DAS and Networked Storage,” Coraid Technology Brief, © 2013 Cora id, Inc., Published on or about Mar. 20, 2013, 2 pages.
Author Unknown, “Creating Performance-based SAN SLAs Using Finisar's NetWisdom” May 2006, 7 pages, Finisar Corporation, Sunnyvale, California, U.S.A.
Author Unknown, “Data Center, Metro Cloud Connectivity: Integrated Metro SAN Connectivity in 16 Gbps Switches,” Brocade Communication Systems, Inc., Apr. 2011, 14 pages.
Author Unknown, “Data Center, SAN Fabric Administration Best Practices Guide, Support Perspective,” Brocade Communication Systems, Inc., May 2013, 21 pages.
Author Unknown, “delphi—Save a CRC value in a file, without altering the actual CRC Checksum?” Stack Overflow, stackoverflow.com, Dec. 23, 2011, XP055130879, 3 pages http://stackoverflow.com/questions/8608219/save-a-crc-value-in-a-file-without-altering-the-actual-crc-checksum.
Author Unknown, “EMC Unisphere: Innovative Approach to Managing Low-End and Midrange Storage; Redefining Simplicity in the Entry-Level and Midrange Storage Markets,” Data Sheet, EMC Corporation; published on or about Jan. 4, 2013 [Retrieved and printed Sep. 12, 2013] 6 pages http://www.emc.com/storage/vnx/unisphere.htm.
Author Unknown, “HP XP Array Manager Software—Overview & Features,” Storage Device Management Software; Hewlett-Packard Development Company, 3 pages; © 2013 Hewlett-Packard Development Company, L.P.
Author Unknown, “Joint Cisco and VMWare Solution for Optimizing Virtual Desktop Delivery: Data Center 3.0: Solutions to Accelerate Data Center Virtualization,” Cisco Systems, Inc. and VMware, Inc., Sep. 2008, 10 pages.
Author Unknown, “Network Transformation with Software-Defined Networking and Ethernet Fabrics,” Positioning Paper, 2012, 6 pages, Brocade Communications Systems.
Author Unknown, “Recreating Real Application Traffic in Junosphere Lab,” Solution Brief, Juniper Networks, Dec. 2011, 3 pages.
Author Unknown, “Shunra for HP Softwarer, Enabiling Confidence in Application Performance Before Deployment,” 2010, 2 pages.
Author Unknown, “Software Defined Networking: The New Norm for Networks,” White Paper, Open Networking Foundation, Apr. 13, 2012, 12 pages.
Author Unknown, “Software Defined Storage Networks an Introduction,” White Paper, Doc # 01-000030-001 Rev. A, Dec. 12, 2012, 8 pages; Jeda Networks, Newport Beach, California, U.S.A.
Author Unknown, “Standard RAID Levels,” Wikipedia, the Free Encyclopedia, last updated Jul. 18, 2014, 7 pages; http://en.wikipedia.org/wiki/Standard_RAID_levels.
Author Unknown, “Storage Infrastructure for the Cloud,” Solution Brief, © 2012, 3 pages; coraid, Redwood City, California, U.S.A.
Author Unknown, “Storage Area Network—NPIV: Emulex Virtual HBA and Brocade, Proven Interoperability and Proven Solution,” Technical Brief, Apr. 2008, 4 pages, Emulex and Brocade Communications Systems.
Author Unknown, “The Fundamentals of Software-Defined Storage, Simplicity at Scale for Cloud-Architectures” Solution Brief, 2013, 3 pages; Coraid, Redwood City, California, U.S.A.
Author Unknown, “VirtualWisdom® SAN Performance Probe Family Models: Probe FC8, HD, and HD48,” Virtual Instruments Data Sheet, Apr. 2014 Virtual Instruments. All Rights Reserved; 4 pages.
Author Unknown, “Xgig Analyzer: Quick Start Feature Guide 4.0,” Feb. 2008, 24 pages, Finisar Corporation, Sunnyvale, California, U.S.A.
Author Unknown, “Sun Storage Common Array Manager Installation and Setup Guide,” Software Installation and Setup Guide Version 6.7.x 821-1362-10, Appendix D: Configuring In-Band Management, Sun Oracle; retrieved and printed Sep. 12, 2013, 15 pages.
Author Unknown, “Vblock Solution for SAP: Simplified Provisioning for Operation Efficiency,” VCE White Paper, VCE—The Virtual Computing Environment Company, Aug. 2011, 11 pages.
Berman, Stuart, et al., “Start-Up Jeda Networks in Software Defined Storage Network Technology,” Press Release, Feb. 25, 2013, 2 pages, http://www.storagenewsletter.com/news/startups/jeda-networks.
Borovick, Lucinda, et al., “White Paper, Architecting the Network for the Cloud,” IDC Analyze the Future, Jan. 2011, pp. 1-8.
Chakrabarti, Kaushik, et al., “Locally Adaptive Dimensionality Reduction for Indexing Large Time Series Databases,” ACM Transactions on Database Systems, vol. 27, No. 2, Jun. 2009, pp. 188-228.
Chandola, Varun, et al., “A Gaussian Process Based Online Change Detection Algorithm for Monitoring Periodic Time Series,” Proceedings of the Eleventh SIAM International Conference on Data Mining, SDM 2011, Apr. 28-30, 2011, 12 pages.
Cisco Systems, Inc. “N-Port Virtualization in the Data Center,” Cisco White Paper, Cisco Systems, Inc., Mar. 2008, 7 pages.
Cisco Systems, Inc., “Best Practices in Deploying Cisco Nexus 1000V Series Switches on Cisco UCS B and C Series Cisco UCS Manager Servers,” White Paper, Cisco Systems, Inc., Apr. 2011, 36 pages.
Cisco Systems, Inc., “Cisco Prime Data Center Network Manager 6.1,” At-A-Glance, © 2012, 3 pages.
Cisco Systems, Inc., “Cisco Prime Data Center Network Manager,” Release 6.1 Data Sheet, © 2012, 10 pages.
Cisco Systems, Inc., “Cisco Unified Network Services: Overcome Obstacles to Cloud-Ready Deployments,” White Paper, Cisco Systems, Inc., Jan. 2011, 6 pages.
Clarke, Alan, et al., “Open Data Center Alliance Usage: Virtual Machine (VM) Interoperability in a Hybrid Cloud Environment Rev. 1.2,” Open Data Center Alliance, Inc., 2013, pp. 1-18.
Cummings, Roger, et al., Fibre Channel—Fabric Generic Requirements (FC-FG), Dec. 4, 1996, 33 pages, American National Standards Institute, Inc., New York, New York, U.S.A.
Farber, Franz, et al. “An In-Memory Database System for Multi-Tenant Applications,” Proceedings of 14th Business, Technology and Web (BTW) Conference on Database Systems for Business, Technology, and Web, Feb. 28 to Mar. 4, 2011, 17 pages, University of Kaiserslautern, Germany.
Guo, Chang Jie, et al., “IBM Resarch Report: Data Integration and Composite Business Services, Part 3, Building a Multi-Tenant Data Tier with with [sic] Access Control and Security,” RC24426 (C0711-037), Nov. 19, 2007, 20 pages, IBM.
Hatzieleftheriou, Andromachi, et al., “Host-side Filesystem Journaling for Durable Shared Storage,” 13th USENIX Conference on File and Storage Technologies (FAST '15), Feb. 16-19, 2015, 9 pages; https://www.usenix.org/system/files/conference/fast15-paper-hatzieleftheriou.pdf.
Hedayat, K., et al., “A Two-Way Active Measurement Protocol (TWAMP),” Network Working Group, RFC 5357, Oct. 2008, 26 pages.
Horn, C., et al., “Online anomaly detection with expert system feedback in social networks,” 2011 IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP), May 22-27, 2011, 2 pages, Prague; [Abstract only].
Hosterman, Cody, et al., “Using EMC Symmetrix Storage inVMware vSph ere Environments,” Version 8.0, EMC2Techbooks, EMC Corporation; published on or about Jul. 8, 2008, 314 pages; [Retrieved and printed Sep. 12, 2013].
Hu, Yuchong, et al., “Cooperative Recovery of Distributed Storage Systems from Multiple Losses with Network Coding,” University of Science & Technology of China, Feb. 2010, 9 pages.
Keogh, Eamonn, et al., “Dimensionality Reduction for Fast Similarity Search in Large Time Series Databases,” KAIS Long Paper submitted May 16, 2000; 19 pages.
Kolyshkin, Kirill, “Virtualization in Linux,” Sep. 1, 2006, pp. 1-5.
Kovar, Joseph F., “Startup Jeda Networks Takes SDN Approach to Storage Networks,” CRN Press Release, Feb. 22, 2013, 1 page, http://www.crn.com/240149244/printablearticle.htm.
Lampson, Butler, W., et al., “Crash Recovery in a Distributed Data Storage System,” Jun. 1, 1979, 28 pages.
Lewis, Michael E., et al., “Design of an Advanced Development Model Optical Disk-Based Redundant Array of Independent Disks (RAID) High Speed Mass Storage Subsystem,” Final Technical Report, Oct. 1997, pp. 1-211.
Lin, Jessica, “Finding Motifs in Time Series,” SIGKDD'02 Jul. 23,-26, 2002, 11 pages, Edmonton, Alberta, Canada.
Linthicum, David, “VM Import could be a game changer for hybrid clouds”, InfoWorld, Dec. 23, 2010, 4 pages.
Long, Abraham Jr., “Modeling the Reliability of RAID Sets,” Dell Power Solutions, May 2008, 4 pages.
Ma, AO, et al., “RAIDShield: Characterizing, Monitoring, and Proactively Protecting Against Disk Failures,” FAST '15, 13th USENIX Conference on File and Storage Technologies, Feb. 16-19, 2015, 17 pages, Santa Clara, California, U.S.A.
Mcquerry, Steve, “Cisco UCS M-Series Modular Servers for Cloud-Scale Workloads,” White Paper, Cisco Systems, Inc., Sep. 2014, 11 pages.
Monia, Charles, et al., IFCP—A Protocol for Internet Fibre Channel Networking, draft-monia-ips-ifcp-00.txt, Dec. 12, 2000, 6 pages.
Mueen, Abdullah, et al., “Online Discovery and Maintenance of Time Series Motifs,” KDD'10 The 16th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining, Jul. 25-28, 2010, 10 pages, Washington, DC, U.S.A.
Muglia, Bob, “Decoding SDN,” Jan. 14, 2013, Juniper Networks, pp. 1-7, http://forums.juniper.net/t5/The-New-Network/Decoding-SDN/ba-p/174651.
Murray, Joseph F., et al., “Machine Learning Methods for Predicting Failures in Hard Drives: A Multiple-Instance Application,” Journal of Machine Learning Research 6 (2005), pp. 783-816; May 2005, 34 pages.
Nelson, Mark, “File Verification Using CRC,” Dr. Dobb's Journal, May 1, 1992, pp. 1-18, XP055130883.
Pace, Alberto, “Technologies for Large Data Management in Scientific Computing,” International Journal of Modern Physics C., vol. 25, No. 2, Feb. 2014, 72 pages.
Pinheiro, Eduardo, et al., “Failure Trends in a Large Disk Drive Population,” FAST '07, 5th USENIX Conference on File and Storage Technologies, Feb. 13-16, 2007, 13 pages, San Jose, California, U.S.A.
Raginsky, Maxim, et al., “Sequential Anomaly Detection in the Presence of Noise and Limited Feedback,” arXiv:0911.2904v4 [cs.LG] Mar. 13, 2012, 19 pages.
Saidi, Ali G., et al., “Performance Validation of Network-Intensive Workloads on a Full-System Simulator,” Interaction between Operating System and Computer Architecture Workshop, (IOSCA 2005), Austin, Texas, Oct. 2005, 10 pages.
Schroeder, Bianca, et al., “Disk failures in the real world: What does an MTTF of 1,000,000 hours mean to you?” FAST '07: 5th USENIX Conference on File and Storage Technologies, Feb. 13-16, 2007, 16 pages, San Jose, California, U.S.A.
Shue, David, et al., “Performance Isolation and Fairness for Multi-Tenant Cloud Storage,” USENIX Association, 10th USENIX Symposium on Operating Systems Design Implementation (OSDI '12), 2012, 14 pages; https://www.usenix.org/system/files/conference/osdi12/osdi12-final-215.pdf.
Staimer, Marc, “Inside Cisco Systems′ Unified Computing System,” Dragon Slayer Consulting, Jul. 2009, 5 pages.
Swami, Vijay, “Simplifying SAN Management for VMWare Boot from SAN, Utilizing Cisco UCS and Palo,” posted May 31, 2011, 6 pages.
Tate, Jon, et al., “Introduction to Storage Area Networks and System Networking,” Dec. 2017, 302 pages, ibm.com/redbooks.
Vuppala, Vibhavasu, et al., “Layer-3 Switching Using Virtual Network Ports,” Computer Communications and Networks, 1999, Proceedings, Eight International Conference in Boston, MA, USA, Oct. 11-13, 1999, Piscataway, NJ, USA, IEEE, ISBN: 0-7803-5794-9, pp. 642-648.
Wang, Feng, et al. “OBFS: A File System for Object-Based Storage Devices,” Storage System Research Center, MSST. vol. 4., Apr. 2004, 18 pages.
Weil, Sage A., “CEPH: Reliable, Scalable, and High-Performance Distributed Storage,” Dec. 2007, 239 pages, University of California, Santa Cruz.
Weil, Sage A., et al. “CRUSH: Controlled, Scalable, Decentralized Placement of Replicated Data.” Proceedings of the 2006 ACM/IEEE conference on Supercomputing. ACM, Nov. 11, 2006, 12 pages.
Weil, Sage A., et al. “Ceph: A Scalable, High-performance Distributed File System,” Proceedings of the 7th symposium on Operating systems design and implementation. USENIX Association, Nov. 6, 2006, 14 pages.
Wu, Joel, et al., “The Design, and Implementation of AQuA: An Adaptive Quality of Service Aware Object-Based Storage Device,” Department of Computer Science, MSST, May 17, 2006, 25 pages; http://storageconference.us/2006/Presentations/30Wu.pdf.
Xue, Chendi, et al. “A Standard framework for Ceph performance profiling with latency breakdown,” CEPH, Jun. 30, 2015, 3 pages.
Zhou, Zihan, et al., “Stable Principal Component Pursuit,” arXiv:1001.2363v1 [cs.IT], Jan. 14, 2010, 5 pages.
Zhu, Yunfeng, et al., “A Cost-based Heterogeneous Recovery Scheme for Distributed Storage Systems with RAID-6 Codes,” University of Science & Technology of China, 2012, 12 pages.
English translation of Notification to Grant Patent Right for Invention with Supplementary Search, issued by the National Intellectual Property Administration, PRC (CNIPA) on May 20, 2020, 6 pages, for corresponding CN Application 20160007852.0.
Related Publications (1)
Number Date Country
20180131610 A1 May 2018 US
Continuations (1)
Number Date Country
Parent 14670185 Mar 2015 US
Child 15864762 US