# VPLS with BGP and XRv RR

Load **basic.vpls.ldp.init.cfg**

```
#IOS-XE (R1-R6, CE1-3)
config replace flash:basic.vpls.ldp.init.cfg

#IOS-XR (XR1, XR2)
configure
load basic.vpls.ldp.init.cfg
commit replace
y
```

The CE routers CE1-3 are preconfigured with EIGRP.

* Configure VPLS and verify that the EIGRP neighborships come up.
* Use BGP for signaling of the service label.
* Use XR1 as the RR.

## Answer <a href="#id-93a1c43a-09ad-4ec5-bebf-3a565dc0b332" id="id-93a1c43a-09ad-4ec5-bebf-3a565dc0b332"></a>

```
#XR1
router bgp 65000
 add l2vpn vpls
 !
 neighbor-group IBGP
  remote-as 65000
  update-source Loopback0
  address-family l2vpn vpls-vpws
   route-reflector-client
   Signalling ldp disable
 !
 neighbor 1.1.1.1 use neighbor-group IBGP
 neighbor 3.3.3.3 use neighbor-group IBGP
 neighbor 5.5.5.5 use neighbor-group IBGP

#R1
router bgp 65000
 neighbor 11.11.11.11 remote-as 65000
 neighbor 11.11.11.11 update-so lo0
 add l2vpn vpls
  neighbor 11.11.11.11 activate
  neighbor 11.11.11.11 suppress-signaling-protocol ldp
!
int gi4
 service instance 1 eth
  encap default
 exit
!
l2vpn vfi context VPLS1
 vpn id 100
 autodiscovery bgp signaling bgp
  ve id 1
!
bridge-domain 100
 member gi4 service-instance 1
 member vfi VPLS1

#R3
router bgp 65000
 neighbor 11.11.11.11 remote-as 65000
 neighbor 11.11.11.11 update-so lo0
 add l2vpn vpls
  neighbor 11.11.11.11 activate
  neighbor 11.11.11.11 suppress-signaling-protocol ldp
!
int gi6
 service instance 1 eth
  encap default
 exit
!
l2vpn vfi context VPLS1
 vpn id 100
 autodiscovery bgp signaling bgp
  ve id 3
!
bridge-domain 100
 member gi6 service-instance 1
 member vfi VPLS1

#R5
router bgp 65000
 neighbor 11.11.11.11 remote-as 65000
 neighbor 11.11.11.11 update-so lo0
 add l2vpn vpls
  neighbor 11.11.11.11 activate
  neighbor 11.11.11.11 suppress-signaling-protocol ldp
!
int gi6
 service instance 1 eth
  encap default
 exit
!
l2vpn vfi context VPLS1
 vpn id 100
 autodiscovery bgp signaling bgp
  ve id 5
!
bridge-domain 100
 member gi6 service-instance 1
 member vfi VPLS1
```

## Explanation <a href="#id-163c1e34-fa78-4020-aba9-a657e2e2b8e8" id="id-163c1e34-fa78-4020-aba9-a657e2e2b8e8"></a>

IOS-XR uses negative logic for the signaling protocol under l2vpn/vpls. We saw in the previous article that to use LDP, you use **signaling bgp disable**. To use BGP in this lab, we use **signaling ldp disable** in order to use BGP for signaling.

```
router bgp 65000
 neighbor-group IBGP
  address-family l2vpn vpls-vpws
   Signalling ldp disable
```

IOS-XE uses LDP signaling by default and uses BGP with **disable-signaling-protocol ldp** on the neighbor statement.

```
router bgp 65000
 add l2vpn vpls
  neighbor 11.11.11.11 suppress-signaling-protocol ldp
```

The XE routers do not need to specify the XR neighbor as **prefix-length-size 2** as they did when using LDP for signaling. When using BGP for signaling, XR is expecting a prefix-len of 1 byte, so we don’t need to worry about this. However, specifying **prefix-length-size 2** does not appear to break the BGP session/updates.

When using BGP for signaling of the label, it does not seem that we can apply templates to toggle specific features, such as the CW, as we were able to do when using LDP for signaling.

```
!
! This is only available when using LDP for signaling
!
template type pseudowire NO_CW
 encapsulation mpls
 control-word exclude
!
l2vpn vfi context VPLS1
 vpn id 100
 autodiscovery bgp signaling ldp template NO_CW
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://ccie-sp.gitbook.io/ccie-spv5.1-labs/labs/vpls/vpls-with-bgp-and-xrv-rr.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
