Embodiments of the invention relate to computer networking, and more particularly to load sharing of MPLS pseudo-wires.
VPLS (Virtual Private LAN Service) is a layer 2 VPN technology based on MPLS (Multiprotocol Label Switching). VPLS provides a way to connect geographically disperse Ethernet provider edge (PE) sites over an MPLS network using pseudo-wires. The current offering of VPLS by the assignee of the present patent application using third party chipsets allows a VPLS pseudo-wire to be established over a single Tunnel LSP (Label Switched Path). This approach has the following shortcomings:
1.) An ingress node that originates a VPLS pseudo-wire is unable to distribute traffic over multiple paths available to the VPLS peer. In deployments that have very few pseudo-wires, this shortcoming is reflected throughout the network since the intermediate nodes are not able to distribute traffic. The intermediate nodes depend on the ability of the ingress nodes to distribute traffic for them.
2.) If the LSP over which the pseudo-wire rides fails or goes down, the pseudo-wire traffic is lost until the pseudo-wire is established over an alternate LSP.
The diagram in
A first switch at a first edge of an MPLS network establishes a VPLS pseudo-wire over a plurality of label switched paths (LSPs) of the MPLS network that couple the first switch to a second switch at a second edge of the MPLS network. The first switch further load balances data to be transmitted across the VPLS pseudo-wire over the plurality of LSPs. The first switch accomplishes this by maintaining at a first table an indication that the VPLS pseudo-wire traffic is to be transmitted over the plurality of LSPs and further identifying in the first table a pointer to a second table maintaining a plurality of LSP entries corresponding to the respective plurality of LSPs. The first switch then identifies at the second table a pointer to a third table maintaining a plurality of entries, wherein each of the plurality of entries identifies a next hop index. The first switch receives a packet to be transmitted over the VPLS pseudo-wire, computes a hash value on at least one or more portions of the received packet, and selects one of the plurality of entries in the third table according to the computed hash value.
Embodiments of the invention disclosed herein are referred to as pseudo-wire label switched paths (LSP) Load Sharing, i.e. establishing a pseudo-wire over multiple LSPs and load balancing the pseudo-wire bound traffic over multiple LSPs. Embodiments of the invention presented here include an implementation, for example, on the following Broadcom chipsets: 5684x, 5685x and 5664x. The assignee of the present patent application considers the embodiments disclosed herein to be applicable to the following chipsets as well: 5634x, 5644x and 5654x. Embodiments of the invention have the following characteristics:
Ability for VPLS ingress nodes to distribute traffic over multiple LSPs thus allowing the whole network to distribute traffic.
Ability to establish VPLS pseudo-wires over multiple LSPs thus allowing for better resiliency during network transitions. A particular LSP or path going down does not cause the pseudo-wire to be re-established or re-routed. The pseudo-wire continues to operate over the remaining LSPs on which it is established.
Referring to
In
In
In
If there is a failure in Primary Path 2 (LSPs 9-16), the PW traffic switches to using Secondary Path 1, along the top of the network. In this failure condition, all of the PW traffic traverses the top of the network. Upon restoration of Primary Path 2, PW traffic for LSPs 9-16 reverts back to Primary Path 2.
One embodiment of the invention disclosed herein is the implementation of the above feature on, for example, Broadcom hardware.
With reference to
If the platforms built using these chips employ multiple chips (examples are Extreme Networks BDX8 Chassis, BD8K Chassis, x670 Stack), the ECMP pointer value programmed in the Destination Virtual Port table 405 has a non-zero value. When VPLS does not use ECMP, the VPLS encapsulation happens on the egress chip. But with ECMP, the egress chip is unable to do VPLS encapsulation, so the encapsulation is done by the ingress chip. This is accomplished by setting EGR_L3_NEXT_HOP.HG_MODIFY_ENABLE=1 at 430, as illustrated in
According to one embodiment, and with reference to
Load balancing and Traffic distribution is achieved by using RTAG7 registers present on these chips for use by another Broadcom feature referred to as TRILL. Embodiments of the invention use the same registers used by TRILL for achieving traffic distribution for VPLS pseudo-wires. The following registers are set.
The above settings work in conjunction with RTAG7 packet field selector registers to provide traffic distribution. Embodiments of the invention with respect to load balancing using RTAG7 registers makes use of TRILL RTAG7 registers for VPLS load balancing. TRILL and VPLS are completely different protocols. VPLS does not provide its own set of RTAG7 registers, but embodiments of the invention provide for VPLS to make use of TRILL RTAG7 registers.
Thus, disclosed are embodiments of the invention implemented in a first switch at a first edge of a multiprotocol label switching (MPLS) network, to allow the first switch to establish a virtual private local area network service (VPLS) pseudo-wire over a plurality of label switched paths (LSPs) of the MPLS network that couple the first switch to a second switch at a second edge of the MPLS network, and to load balance data to be transmitted across the VPLS pseudo-wire over the plurality of LSPs, the method comprising: maintaining at a first table an indication that the VPLS pseudo-wire traffic is to be transmitted over the plurality of LSPs and further identifying in the first table a pointer to a second table maintaining a plurality of LSP entries corresponding to the respective plurality of LSPs, identifying at the second table a pointer to a third table maintaining a plurality of entries, wherein each of the plurality of entries identifies a next hop index; receiving a packet to be transmitted over the VPLS pseudo-wire; computing a hash value on at least one or more portions of the received packet; selecting one of the plurality of entries in the third table according to the computed hash value; and retrieving the next hop index from the selected one of the plurality of entries in the third table.
An embodiment further comprises the first switch selecting an entry in a fourth table according to the retrieved next hop index; and retrieving from the selected entry in the fourth table an egress port number associated with an egress port to which the received packet is to be directed for transmission across the VPLS pseudo-wire.
An embodiment further comprises the switch selecting an entry in a fifth table according to the retrieved next hop index; and retrieving from the selected entry in the fifth table instructions for encapsulating the received packet for transmission across the VPLS pseudo-wire.
In one embodiment, the first switch comprises an ingress chipset having an ingress port, and an egress chipset; wherein receiving the packet to be transmitted over the VPLS pseudo-wire comprises receiving the packet at the ingress port of the ingress chipset; and further comprising processing at the ingress chipset the retrieved instructions for encapsulating the received packet for transmission across the VPLS pseudo-wire.
One embodiment further comprises the switch maintaining an indication in the fifth table that the ingress chipset is to process the retrieved instructions for encapsulating the received packet for transmission across the VPLS pseudo-wire. In one embodiment, the switch maintains in the fifth table dummy information for an egress port number associated with an egress port of the first switch to which the received packet is to be directed for transmission across the VPLS pseudo-wire; and provides the dummy information from the ingress chipset to the egress chipset.
In one embodiment, computing a hash value on at least one or more portions of the received packet comprises computing a hash value on at least one or more portions of the received packet using an RTAG7 hash engine and link state routing (Transparent Interconnection of Lots of Links (TRILL) RTAG7) registers. In another embodiment, computing a hash value on at least one or more portions of the received packet comprises selecting one or more of a plurality of TRILL RTAG7 hash value calculation modules according to the at least one or more portions of the received packet on which to compute the hash value.
In one embodiment, maintaining at the first table an indication that the VPLS pseudo-wire traffic is to be transmitted over the plurality of LSPs comprises maintaining at an ingress destination virtual port table the indication that the VPLS pseudo-wire traffic is to be transmitted over the plurality of LSPs, and identifying in the first table a pointer to a second table maintaining a plurality of LSP entries corresponding to the respective plurality of LSPs comprises identifying in the first table a pointer to an equal cost multipath group table maintaining a plurality of LSP entries corresponding to the respective plurality of LSPs. Further, identifying at the second table a pointer to a third table maintaining a plurality of entries comprises identifying at the second table a pointer to an equal cost multiple path (ECMP) table maintaining a plurality of equal cost multiple path (ECMP) entries, selecting an entry in a fourth table according to the retrieved next hop index comprises selecting an entry in a next hop table according to the retrieved next hop index; and retrieving from the selected entry in the fourth table an egress port number associated with an egress port to which the received packet is to be directed for transmission across the VPLS pseudo-wire further comprises retrieving from the selected entry in the fourth table an egress port number associated with an egress slot to which the received packet is to be directed for transmission across the VPLS pseudo-wire.
According to one embodiment, retrieving from the selected entry in the fifth table instructions for encapsulating the received packet for transmission across the VPLS pseudo-wire comprises retrieving from the selected entry in the fifth table a pointer to a location maintained in a memory of the first switch at which is stored instructions for encapsulating the received packet for transmission across the VPLS pseudo-wire.
Additional embodiments further contemplate detecting a failure of at least one of the plurality of label switched paths (LSPs) of the MPLS network; reconfiguring the plurality of LSPs of the MPLS network responsive to detecting the failure; and updating the second table maintaining the plurality of LSP entries corresponding to the respective reconfigured plurality of LSPs.
This application claims the benefit of U.S. Provisional Application No. 61/913,836, filed Dec. 9, 2013, the entire disclosure of which is incorporated herein by reference.
Number | Date | Country | |
---|---|---|---|
61913836 | Dec 2013 | US |