> For the complete documentation index, see [llms.txt](https://ccie-sp.gitbook.io/ccie-spv5.1-labs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://ccie-sp.gitbook.io/ccie-spv5.1-labs/labs/mpls-te/te-tunnel-with-explicit-null.md).

# TE Tunnel with Explicit-Null

Load **mpls.te.base.config.with.ospf.cfg**

```
#IOS-XE
config replace flash:mpls.te.base.config.with.ospf.cfg

#IOS-XR
configure
load bootflash:mpls.te.base.config.with.ospf.cfg
commit replace
y
```

Configure bi-directional TE tunnels between CSR8 and XR11 that takes the path:

* CSR8
* CSR9
* XR12
* XR11

Configuring the least number of routers, ensure that an explicit-null is used at the penultimate hop for both TE tunnels.

## Answer <a href="#id-5fb5952b-d700-4c86-9066-dd0a7ce8c5dc" id="id-5fb5952b-d700-4c86-9066-dd0a7ce8c5dc"></a>

```
#R9
mpls traffic-eng signalling interpret explicit-null verbatim

#R8
mpls traffic-eng signalling advertise explicit-null
!
ip explicit-path name EP_TO_XR11
 next-address 9.9.9.9
 next-address 12.12.12.12
!
int tun1
 description TO_XR11
 ip unn lo0
 tunnel dest 11.11.11.11
 tunnel mode mpls traffic-eng
 tunnel mpls traffic-eng path-option 1 explicit name EP_TO_XR11

#XR11
explicit-path name EP_TO_R8
 index 1 next-address strict ipv4 unicast 12.12.12.12
 index 2 next-address strict ipv4 unicast 9.9.9.9
 index 3 next-address strict ipv4 unicast 8.8.8.8
!
int tunnel-te1
 description TO_R8
 ip unn lo0
 destination 8.8.8.8
 path-option 1 explicit name EP_TO_R8
!
mpls traffic-eng
 signalling advertise explicit-null
```

## Explanation <a href="#id-9bd8ef8b-661a-4096-9cb5-767870f97c4c" id="id-9bd8ef8b-661a-4096-9cb5-767870f97c4c"></a>

By default, both IOS-XE and IOS-XR tailends advertise an implicit-null to their previous hop (phop). To change this, we must globally configure the tailends to advertise an explicit-null instead.

```
#R8
mpls traffic-eng signalling advertise explicit-null

#XR11
mpls traffic-eng
 signalling advertise explicit-null
```

However, on IOS-XE, an explicit-null is interpretted as implicit-null, and a Pop action will still happen. This means that no matter what you advertise on the tailend router, the IOS-XE phop will always do a Pop action. We can see this on R9 before adding the “interpret” command:

<div align="left"><figure><img src="https://3072390383-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FkUz2C3GqnZcWhoVL6jfk%2Fuploads%2Fjrd7NgakxNBOHY392sTH%2Fimage.png?alt=media&amp;token=ea81a081-9fcf-494c-b7cc-11fc9dc94d3e" alt=""><figcaption></figcaption></figure></div>

R9 has a “Pop” action even though R8 is advertising exp-null for the tunnel for which is it acting as tailend:

<div align="left"><figure><img src="https://3072390383-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FkUz2C3GqnZcWhoVL6jfk%2Fuploads%2FIiMZFzrfVqrbtGnXnZs3%2Fimage.png?alt=media&amp;token=f8e53779-e96f-47b1-b386-c9135340f962" alt=""><figcaption></figcaption></figure></div>

To change this, we must use the following command on R9:

```
#R9
mpls traffic-eng signalling interpret explicit-null verbatim
```

Note that this change is disruptive. R9 sends a PathError message up to XR11, prompting XR11 to re-signal the tunnel. R9 is now using explicit-null:

<div align="left"><figure><img src="https://3072390383-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FkUz2C3GqnZcWhoVL6jfk%2Fuploads%2FWszqjt4W1lJvxE7Jkpw2%2Fimage.png?alt=media&amp;token=e1687fc1-da73-4b6d-a913-a253954c9ac6" alt=""><figcaption></figcaption></figure></div>

IOS-XR already interprets exp-null as exp-null. For this reason, no configuration on XR12 is necessary. It is already using exp-null as the outgoing label for the tunnel for which XR11 is the tailend:

<div align="left"><figure><img src="https://3072390383-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FkUz2C3GqnZcWhoVL6jfk%2Fuploads%2FcSovN9uf2M2dR1ohXn9f%2Fimage.png?alt=media&amp;token=fac57189-452e-4a42-89dd-94513f9bd18a" alt=""><figcaption></figcaption></figure></div>
