I was not able to use *linux_cp/linux_nl* (vpp 23.02-release) because with the same config, the interfaces are not even coming up, that is why I switched back to *lcpng_if_plugin and lcpng_nl_plugin*
On Sun, Mar 26, 2023 at 11:38 AM Pim van Pelt via lists.fd.io <pim= ipng...@lists.fd.io> wrote: > 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 (#22767): https://lists.fd.io/g/vpp-dev/message/22767 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] -=-=-=-=-=-=-=-=-=-=-=-