]> git.puffer.fish Git - matthieu/frr.git/commit
bgpd: Withdraw implicitly old paths from VRFs when import/export list changes
authorDonatas Abraitis <donatas@opensourcerouting.org>
Tue, 7 Jun 2022 19:12:07 +0000 (22:12 +0300)
committerDonatas Abraitis <donatas@opensourcerouting.org>
Tue, 7 Jun 2022 19:50:24 +0000 (22:50 +0300)
commit3840a8193ea9dcc3a8b61cd4a5d890879878986e
tree6f04134ea82216f9a3d8080a38a81bb023fb6553
parentaa800819cde613f296a38228642463477fcf7c12
bgpd: Withdraw implicitly old paths from VRFs when import/export list changes

If we overwrite import/export RT list via route-maps or even flush by using
`set extcommunity none`, then we must withdraw old paths from VRFs to avoid
stale paths.

For example using:

```
router bgp 65500 vrf vrf1
 bgp router-id 10.180.1.1
 !
 address-family ipv4 unicast
  network 192.168.100.100/32 route-map rm
  rd vpn export 65500:10001
  rt vpn import 65500:10000 65500:10990
  rt vpn export 65500:10000
  export vpn
  import vpn
 exit-address-family
exit
!
router bgp 65500 vrf vrf2
 bgp router-id 10.180.1.1
 !
 address-family ipv4 unicast
  rd vpn export 65500:11001
  rt vpn import 65500:11000 65500:11990
  rt vpn export 65500:11000
  export vpn
  import vpn
 exit-address-family
exit
!
route-map rm permit 10
 set extcommunity rt 65500:10100 65500:12990 65500:13990 65500:11990
exit
```

If we strip extcommunities using:

```
route-map rm permit 10
 set extcommunity none
exit
```

or

```
route-map rm permit 10
 set extcommunity rt 65500:10100 65500:12990 65500:13990
```

Routes that are imported with 65500:11990 (192.168.100.100/32 from vrf1)
becomes stale.

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
bgpd/bgp_mplsvpn.c