Hoi, Does the same behavior happen with linux_cp_plugin and linux_nl_plugin enabled instead? I saw a change in linux_cp that will walk the fib and remove routes associated with down interfaces; and I think this is because FRR does not remove them while Bird does. Can you try with linux_cp/linux_nl please?
Relevant reading: https://gerrit.fd.io/r/c/vpp/+/35529 https://gerrit.fd.io/r/c/vpp/+/35530 https://gerrit.fd.io/r/c/vpp/+/35531 groet, Pim On Sun, Mar 26, 2023 at 5:33 PM Christopher Adigun <future...@gmail.com> wrote: > > *Hi,* > > *I am facing an issue with the LCP route update when a particular > interface changes state (i.e. when I manually shut it down and when I bring > it up).* > > *Before shutting interface down, below is the state both in FRR and Linux > table:* > > *FRR table:* > > ingress-node-vpp-58dcb69b5f-g9rzp:/# vtysh > > Hello, this is FRRouting (version 8.5_git). > Copyright 1996-2005 Kunihiro Ishiguro, et al. > > ingress-node-vpp-58dcb69b5f-g9rzp# show ip route > Codes: K - kernel route, C - connected, S - static, R - RIP, > O - OSPF, I - IS-IS, B - BGP, E - EIGRP, N - NHRP, > T - Table, v - VNC, V - VNC-Direct, A - Babel, F - PBR, > f - OpenFabric, > > - selected route, * - FIB route, q - queued, r - rejected, b - > backup > t - trapped, o - offload failure > > K>* 0.0.0.0/0 [0/0] via 169.254.1.1, eth0, 00:29:12 > C>* 10.0.0.142/32 is directly connected, eth0, 00:29:12 > O 10.0.5.0/24 [110/10] is directly connected, dpdk0, weight 1, 00:29:12 > C>* 10.0.5.0/24 is directly connected, dpdk0, 00:29:12 > > *O>* 10.0.9.0/24 <http://10.0.9.0/24> [110/40] via 192.168.100.2, gre0, > weight 1, 00:24:19 * via 192.168.100.6, gre1, weight > 1, 00:24:19* > K>* 169.254.1.1/32 [0/0] is directly connected, eth0, 00:29:12 > O 192.168.100.0/30 [110/10] is directly connected, gre0, weight 1, > 00:24:31 > C>* 192.168.100.0/30 is directly connected, gre0, 00:24:31 > O 192.168.100.4/30 [110/10] is directly connected, gre1, weight 1, > 00:24:33 > C>* 192.168.100.4/30 is directly connected, gre1, 00:24:33 > O>* 192.168.100.8/30 [110/20] via 192.168.100.2, gre0, weight 1, 00:24:19 > O>* 192.168.100.12/30 [110/20] via 192.168.100.6, gre1, weight 1, 00:24:19 > O>* 192.168.100.16/30 [110/30] via 192.168.100.2, gre0, weight 1, 00:24:19 > O>* 192.168.100.20/30 [110/30] via 192.168.100.6, gre1, weight 1, 00:24:19 > > *Linux Table:* > ingress-node-vpp-58dcb69b5f-g9rzp:/# ip r > default via 169.254.1.1 dev eth0 > 10.0.5.0/24 dev dpdk0 proto kernel scope link src 10.0.5.16 > > > *10.0.9.0/24 <http://10.0.9.0/24> nhid 22 proto ospf metric 20 > nexthop via 192.168.100.2 dev gre0 weight 1 nexthop via > 192.168.100.6 dev gre1 weight 1* > 169.254.1.1 dev eth0 scope link > 192.168.100.0/30 dev gre0 proto kernel scope link src 192.168.100.1 > 192.168.100.4/30 dev gre1 proto kernel scope link src 192.168.100.5 > 192.168.100.8/30 nhid 18 via 192.168.100.2 dev gre0 proto ospf metric 20 > 192.168.100.12/30 nhid 23 via 192.168.100.6 dev gre1 proto ospf metric 20 > 192.168.100.16/30 nhid 18 via 192.168.100.2 dev gre0 proto ospf metric 20 > 192.168.100.20/30 nhid 23 via 192.168.100.6 dev gre1 proto ospf metric 20 > > *When I manually shut gre0 down, it is removed from the nexthop:* > > ingress-node-vpp-58dcb69b5f-g9rzp:/# vtysh > > Hello, this is FRRouting (version 8.5_git). > Copyright 1996-2005 Kunihiro Ishiguro, et al. > > ingress-node-vpp-58dcb69b5f-g9rzp# > ingress-node-vpp-58dcb69b5f-g9rzp# > ingress-node-vpp-58dcb69b5f-g9rzp# show ip route > Codes: K - kernel route, C - connected, S - static, R - RIP, > O - OSPF, I - IS-IS, B - BGP, E - EIGRP, N - NHRP, > T - Table, v - VNC, V - VNC-Direct, A - Babel, F - PBR, > f - OpenFabric, > > - selected route, * - FIB route, q - queued, r - rejected, b - > backup > t - trapped, o - offload failure > > K>* 0.0.0.0/0 [0/0] via 169.254.1.1, eth0, 00:37:00 > C>* 10.0.0.142/32 is directly connected, eth0, 00:37:00 > O 10.0.5.0/24 [110/10] is directly connected, dpdk0, weight 1, 00:37:00 > C>* 10.0.5.0/24 is directly connected, dpdk0, 00:37:00 > *O>* 10.0.9.0/24 <http://10.0.9.0/24> [110/40] via 192.168.100.6, gre1, > weight 1, 00:00:06* > K>* 169.254.1.1/32 [0/0] is directly connected, eth0, 00:37:00 > O>* 192.168.100.0/30 [110/60] via 192.168.100.6, gre1, weight 1, 00:00:06 > O 192.168.100.4/30 [110/10] is directly connected, gre1, weight 1, > 00:32:21 > C>* 192.168.100.4/30 is directly connected, gre1, 00:32:21 > O>* 192.168.100.8/30 [110/50] via 192.168.100.6, gre1, weight 1, 00:00:06 > O>* 192.168.100.12/30 [110/20] via 192.168.100.6, gre1, weight 1, 00:32:07 > O>* 192.168.100.16/30 [110/40] via 192.168.100.6, gre1, weight 1, 00:00:06 > O>* 192.168.100.20/30 [110/30] via 192.168.100.6, gre1, weight 1, 00:32:07 > > ingress-node-vpp-58dcb69b5f-g9rzp:/# ip link set dev gre0 down > ingress-node-vpp-58dcb69b5f-g9rzp:/# > ingress-node-vpp-58dcb69b5f-g9rzp:/# > ingress-node-vpp-58dcb69b5f-g9rzp:/# > ingress-node-vpp-58dcb69b5f-g9rzp:/# ip r > default via 169.254.1.1 dev eth0 > 10.0.5.0/24 dev dpdk0 proto kernel scope link src 10.0.5.16 > *10.0.9.0/24 <http://10.0.9.0/24> nhid 23 via 192.168.100.6 dev gre1 proto > ospf metric 20* > 169.254.1.1 dev eth0 scope link > 192.168.100.0/30 nhid 23 via 192.168.100.6 dev gre1 proto ospf metric 20 > 192.168.100.4/30 dev gre1 proto kernel scope link src 192.168.100.5 > 192.168.100.8/30 nhid 23 via 192.168.100.6 dev gre1 proto ospf metric 20 > 192.168.100.12/30 nhid 23 via 192.168.100.6 dev gre1 proto ospf metric 20 > 192.168.100.16/30 nhid 23 via 192.168.100.6 dev gre1 proto ospf metric 20 > 192.168.100.20/30 nhid 23 via 192.168.100.6 dev gre1 proto ospf metric 20 > > *But when I bring it up again, FRR shows that both gre0 and gre1 are > nexthops but Linux table (also in VPP fib) still shows only gre1:* > > ingress-node-vpp-58dcb69b5f-g9rzp:/# ip link set dev gre0 up > ingress-node-vpp-58dcb69b5f-g9rzp:/# > ingress-node-vpp-58dcb69b5f-g9rzp:/# > ingress-node-vpp-58dcb69b5f-g9rzp:/# > ingress-node-vpp-58dcb69b5f-g9rzp:/# > ingress-node-vpp-58dcb69b5f-g9rzp:/# ip r > default via 169.254.1.1 dev eth0 > 10.0.5.0/24 dev dpdk0 proto kernel scope link src 10.0.5.16 > *10.0.9.0/24 <http://10.0.9.0/24> nhid 23 via 192.168.100.6 dev gre1 proto > ospf metric 20* > 169.254.1.1 dev eth0 scope link > 192.168.100.0/30 dev gre0 proto kernel scope link src 192.168.100.1 > 192.168.100.4/30 dev gre1 proto kernel scope link src 192.168.100.5 > 192.168.100.8/30 nhid 23 via 192.168.100.6 dev gre1 proto ospf metric 20 > 192.168.100.12/30 nhid 23 via 192.168.100.6 dev gre1 proto ospf metric 20 > 192.168.100.16/30 nhid 23 via 192.168.100.6 dev gre1 proto ospf metric 20 > 192.168.100.20/30 nhid 23 via 192.168.100.6 dev gre1 proto ospf metric 20 > ingress-node-vpp-58dcb69b5f-g9rzp:/# > ingress-node-vpp-58dcb69b5f-g9rzp:/# > ingress-node-vpp-58dcb69b5f-g9rzp:/# vtysh > > Hello, this is FRRouting (version 8.5_git). > Copyright 1996-2005 Kunihiro Ishiguro, et al. > > ingress-node-vpp-58dcb69b5f-g9rzp# > ingress-node-vpp-58dcb69b5f-g9rzp# > ingress-node-vpp-58dcb69b5f-g9rzp# show ip route > Codes: K - kernel route, C - connected, S - static, R - RIP, > O - OSPF, I - IS-IS, B - BGP, E - EIGRP, N - NHRP, > T - Table, v - VNC, V - VNC-Direct, A - Babel, F - PBR, > f - OpenFabric, > > - selected route, * - FIB route, q - queued, r - rejected, b - > backup > t - trapped, o - offload failure > > K>* 0.0.0.0/0 [0/0] via 169.254.1.1, eth0, 00:34:25 > C>* 10.0.0.142/32 is directly connected, eth0, 00:34:25 > O 10.0.5.0/24 [110/10] is directly connected, dpdk0, weight 1, 00:34:25 > C>* 10.0.5.0/24 is directly connected, dpdk0, 00:34:25 > > *O>* 10.0.9.0/24 <http://10.0.9.0/24> [110/40] via 192.168.100.2, gre0, > weight 1, 00:00:17 * via 192.168.100.6, gre1, weight > 1, 00:00:17* > K>* 169.254.1.1/32 [0/0] is directly connected, eth0, 00:34:25 > O 192.168.100.0/30 [110/10] is directly connected, gre0, weight 1, > 00:00:24 > C>* 192.168.100.0/30 is directly connected, gre0, 00:00:24 > O 192.168.100.4/30 [110/10] is directly connected, gre1, weight 1, > 00:29:46 > C>* 192.168.100.4/30 is directly connected, gre1, 00:29:46 > O>* 192.168.100.8/30 [110/20] via 192.168.100.2, gre0, weight 1, 00:00:17 > O>* 192.168.100.12/30 [110/20] via 192.168.100.6, gre1, weight 1, 00:29:32 > O>* 192.168.100.16/30 [110/30] via 192.168.100.2, gre0, weight 1, 00:00:17 > O>* 192.168.100.20/30 [110/30] via 192.168.100.6, gre1, weight 1, 00:29:32 > > *startup.conf:* > > unix { > nodaemon > log /tmp/vpp.log > full-coredump > gid vpp > interactive > cli-listen /run/vpp/cli.sock > exec /etc/vpp/init.conf > } > cpu { > main-core CORE1 > corelist-workers CORE2 > } > memory { > main-heap-size 2G > } > api-trace { > on > } > buffers { > buffers-per-numa 128000 > default data-size 2048 > page-size default-hugepage > } > dpdk { > dev 0000:00:06.0 {name dpdk0} > dev 0000:00:07.0 {name dpdk1} > } > api-segment { > gid vpp > } > plugins { > path /usr/lib/x86_64-linux-gnu/vpp_plugins/ > plugin ping_plugin.so { disable } > plugin linux_cp_plugin.so { disable } > plugin linux_nl_plugin.so { disable } > plugin lcpng_if_plugin.so { enable } > plugin lcpng_nl_plugin.so { enable } > plugin dpdk_plugin.so { enable } > } > lcpng { > lcp-sync > lcp-auto-subint > } > logging { > default-log-level info > default-syslog-log-level crit > class linux-cp/if { rate-limit 10000 level debug syslog-level debug } > class linux-cp/nl { rate-limit 10000 level debug syslog-level debug } > } > > *Init conf:* > > create gre tunnel src 10.0.6.16 dst 10.0.6.17 instance 0 > create gre tunnel src 10.0.6.16 dst 10.0.6.18 instance 1 > lcp create gre0 host-if gre0 tun > lcp create gre1 host-if gre1 tun > lcp create dpdk0 host-if dpdk0 > set interface ip address gre0 192.168.100.1/30 > set interface ip address gre1 192.168.100.5/30 > set interface state gre0 up > set interface state gre1 up > set interface mtu 9001 dpdk0 > set interface mtu 9001 dpdk1 > set interface ip address dpdk0 10.0.5.16/24 > set interface ip address dpdk1 10.0.6.16/24 > set interface state dpdk0 up > set interface state dpdk1 up > > What could be wrong? > > Thanks > > > > > > -- Pim van Pelt <p...@ipng.nl> PBVP1-RIPE - http://www.ipng.nl/
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#22766): https://lists.fd.io/g/vpp-dev/message/22766 Mute This Topic: https://lists.fd.io/mt/97863718/21656 Group Owner: vpp-dev+ow...@lists.fd.io Unsubscribe: https://lists.fd.io/g/vpp-dev/leave/1480452/21656/631435203/xyzzy [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-