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]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to