Skip to content

bgpd: EVPN MH fix unimport ES route on vtep change (backport #20730)#20773

Merged
donaldsharp merged 1 commit intostable/10.5from
mergify/bp/stable/10.5/pr-20730
Feb 11, 2026
Merged

bgpd: EVPN MH fix unimport ES route on vtep change (backport #20730)#20773
donaldsharp merged 1 commit intostable/10.5from
mergify/bp/stable/10.5/pr-20730

Conversation

@mergify
Copy link

@mergify mergify bot commented Feb 11, 2026

In EVPN MH deployment, when a VTEP-IP address changed at the sender VTEP, the remote VTEP sees a stale VTEP-IP entry in ES to VTEP-IP mapping.

RCA:
Handling for nexthop change for evpn es (Type-1) route is missing on receiver side.

On changing the VTEP IP on local node, the EAD (Type-1) route's BGP update contains new originator VTEP-IP as nexthop. The new BGP update message treated as update to existing path and the ES route import simply goes with adding with the new VTEP-IP,
hence the stale ES EVI/VTEP (old VTEP) references are seen.

Fix:
At the receiving VTEP, detect the nexthop change during processing of EVPN ES (Type-1) BGP Update.
Unimport the prior Type-1 route entry before processing of the new nexthop pased bgp update. The unimport/import ensures the proper clean up of old VTEP-IP in ES to VTEP-IP list.

Test:
Before Fix:

On local node vtep is changed from 27.0.0.103 to 27.0.0.3 Remote node shows 27.0.0.103 stale vtep

torm-21# show evpn es
Type: B bypass, L local, R remote, N non-DF
ESI                            Type ES-IF                 VTEPs
03:44:38:39:ff:ff:01:00:00:01  R    -                     27.0.0.3,27.0.0.4,27.0.0.5,27.0.0.103

Afer fix:

The old VTEP IP is no longer present as stale entry on remote VTEP

root@torm-21:mgmt:/var/home/cumulus# vtysh -c "show evpn es"
Type: B bypass, L local, R remote, N non-DF
ESI                            Type ES-IF                 VTEPs
03:44:38:39:ff:ff:01:00:00:01  R    -                     27.0.0.3,27.0.0.4,27.0.0.5
```<hr>This is an automatic backport of pull request #20730 done by [Mergify](https://mergify.com).

In EVPN MH deployment, when a VTEP-IP address changed at the sender VTEP,
the remote VTEP sees a stale VTEP-IP entry in ES to VTEP-IP mapping.

RCA:
Handling for nexthop change for evpn es (Type-1) route is missing on receiver side.

On changing the VTEP IP on local node, the EAD (Type-1)
route's BGP update contains new originator VTEP-IP as nexthop.
The new BGP update message treated as update to existing path and the ES route import
simply goes with adding with the new VTEP-IP,
hence the stale ES EVI/VTEP (old VTEP) references are seen.

Fix:
At the receiving VTEP, detect the nexthop change during
processing of EVPN ES (Type-1) BGP Update.
Unimport the prior Type-1 route entry before processing of the new nexthop
pased bgp update. The unimport/import ensures the proper clean up of old
VTEP-IP in ES to VTEP-IP list.

Test:
Before Fix:
----------
On local node vtep is changed from 27.0.0.103 to 27.0.0.3
Remote node shows 27.0.0.103 stale vtep

```
torm-21# show evpn es
Type: B bypass, L local, R remote, N non-DF
ESI                            Type ES-IF                 VTEPs
03:44:38:39:ff:ff:01:00:00:01  R    -                     27.0.0.3,27.0.0.4,27.0.0.5,27.0.0.103
```

Afer fix:
--------
The old VTEP IP is no longer present as stale entry  on remote VTEP

```
root@torm-21:mgmt:/var/home/cumulus# vtysh -c "show evpn es"
Type: B bypass, L local, R remote, N non-DF
ESI                            Type ES-IF                 VTEPs
03:44:38:39:ff:ff:01:00:00:01  R    -                     27.0.0.3,27.0.0.4,27.0.0.5
```
Topotest result with and without fix:
-------------------------------------
Without fix:
```
E       AssertionError: torm11: stale VTEP 192.168.100.117 still in ES 03:44:38:39:ff:ff:02:00:00:01 after restore
E       assert "stale vtep 192.168.100.117 still in ES 03:44:38:39:ff:ff:02:00:00:01 vteps ['192.168.100.17', '192.168.100.18', '192.168.100.117']" is None                                      test_evpn_mh.py:864: AssertionError
```

With Fix:
```
PASSED
test_evpn_mh.py::test_evpn_vtep_change
```

Ticket: #4850442

Signed-off-by: Vivek Venkatraman <vivek@nvidia.com>
Signed-off-by: Chirag Shah <chirag@nvidia.com>
Signed-off-by: Manpreet Kaur <manpreetk@nvidia.com>
(cherry picked from commit 14a4f8b)
@greptile-apps
Copy link

greptile-apps bot commented Feb 11, 2026

Target branch is not in the allowed branches list.

@donaldsharp donaldsharp merged commit 6b1f3fb into stable/10.5 Feb 11, 2026
18 of 23 checks passed
@mergify mergify bot deleted the mergify/bp/stable/10.5/pr-20730 branch February 11, 2026 12:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants