Control Word for BGP VPLS Overview
In a BGP VPLS network, transit routers must determine the payload for hash calculations for load balancing. While parsing an MPLS encapsulated packet for hashing, a transit router can incorrectly calculate an Ethernet payload as an IPv4 or IPv6 payload if the first nibble of the destination address MAC is 0x4 or 0x6, respectively. This false positive can cause out-of-order packet delivery over a pseudowire. This issue can be avoided by configuring a BGP VPLS edge (VE) router to request that other BGP VE routers insert a control word between the label stack and the MPLS payload.
By inserting a control word between the label stack and the Layer 2 header of a packet traversing a VPLS, the first nibble of the destination address MAC can be ensured to be 0, thus preventing the packet from being identified as an IPv4 or IPv6 packet. All VE routers should want incoming packets to contain control words.
BGP is used to negotiate the support for control words between
VE routers. You configure a VE router with the control-word
parameter to indicate
the preference to receive packets with the control word. By setting
the control word, the VE router expects that all frames marked with
a label from the VPLS contain the control word. When remote VE routers
advertise their NLRI, if the control word is set on them as well,
both ends of the pseudowire have control-word support and the control
word is expected in packets arriving at the VE routers in both directions.
If a VE router doesn’t have the control word set, a VE router that does have a control word set will act as if the VE router without the control word can neither send nor accept BGP VPLS packets with a control word included.