Hi Mike,

The first problem you mentioned (packets matching a route are not sent when
the next hop has not been resolved at the time the route is added) is
likely fixed by this patch:

e2353a7f6 linux-cp: Add delegate to adjacencies

It was merged after fd77f8c00, so you would either need to cherry-pick it
or rebase onto that commit or some more recent one on master.

I have heard another report of the second issue you mentioned (changing
default netns does not work correctly) but I haven't gotten time to look at
it yet.

Thanks,
-Matt


On Thu, May 27, 2021 at 6:59 PM Mike Beattie <m...@ethernal.org> wrote:

> On Thu, May 27, 2021 at 11:36:02AM +0200, Pim van Pelt wrote:
> > Hoi Nate,
> >
> > further to what Andrew suggested, there are a few more hints I can offer:
> > ....
> > Then you should be able to consume the IPv4 and IPv6 DFZ in your router.
> I
> > tested extensively with FRR and Bird2, and so far had good success.
>
> Pim, thank you for those hints - I plan to be implementing a new core
> routing infrastructure using VPP & FRR w/ linux-cp & linux-nl that will be
> consuming full tables in the near future. Your hints will be invaluable I
> susect.
>
> However, in my testing, I discovered an interesting behaviour with regards
> to routing. I have previously tried to reply with my findings to the list,
> but I wasn't subscribed at the time of Neale's posts, and I wanted to
> continue on his thread ... I composed a detailed report on the web
> interface
> of the list, then managed to completely miss the "CC list" checkbox. So I
> think Neale got it himself only. (Sorry Neale).
>
> I digress... what I discovered was that if a route entry is created before
> a
> neighbor entry with the next hop is established, no traffic flows:
>
>
> root@vpp-test:~# ip netns exec dataplane bash
> root@vpp-test:~# systemctl restart vpp.service
> root@vpp-test:~# vppctl set interface mtu 1500 GigabitEthernet0/13/0
> root@vpp-test:~# vppctl lcp create GigabitEthernet0/13/0 host-if vpp1
> netns dataplane
> root@vpp-test:~# ip l
> 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode
> DEFAULT group default qlen 1000
>     link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
> root@vpp-test:~# ip a
> 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group
> default qlen 1000
>     link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
>     inet 127.0.0.1/8 scope host lo
>        valid_lft forever preferred_lft forever
>     inet6 ::1/128 scope host
>        valid_lft forever preferred_lft forever
> 15: vpp1: <BROADCAST,MULTICAST> mtu 1500 qdisc mq state DOWN group default
> qlen 1000
>     link/ether 32:dc:fa:93:9e:fe brd ff:ff:ff:ff:ff:ff
> root@vpp-test:~# cat init50.sh
> #!/bin/sh
>
> ip link set up dev vpp1
>
> ip link add link vpp1 vpp1.50 type vlan id 50
> ip link set up dev vpp1.50
> ip addr add 10.xxx.yyy.202/24 dev vpp1.50
>
> root@vpp-test:~# ./init50.sh
> root@vpp-test:~# ping 1.1.1.1
> ping: connect: Network is unreachable
> root@vpp-test:~# ip route add default via 10.xxx.yyy.254
> root@vpp-test:~# ping 1.1.1.1
> PING 1.1.1.1 (1.1.1.1) 56(84) bytes of data.
> ^C
> --- 1.1.1.1 ping statistics ---
> 5 packets transmitted, 0 received, 100% packet loss, time 4077ms
>
> root@vpp-test:~# ping 10.xxx.yyy.254
> PING 10.xxx.yyy.254 (10.xxx.yyy.254) 56(84) bytes of data.
> ^C
> --- 10.xxx.yyy.254 ping statistics ---
> 4 packets transmitted, 0 received, 100% packet loss, time 3070ms
>
> root@vpp-test:~# ip route delete default
> root@vpp-test:~# ping 10.xxx.yyy.254
> PING 10.xxx.yyy.254 (10.xxx.yyy.254) 56(84) bytes of data.
> ^C
> --- 10.xxx.yyy.254 ping statistics ---
> 4 packets transmitted, 0 received, 100% packet loss, time 3062ms
>
>
>
> No traffic passed... ping router before adding route:
>
>
>
> root@vpp-test:~# systemctl restart vpp.service
> root@vpp-test:~# ./init50.sh
> root@vpp-test:~# ping 10.xxx.yyy.254
> PING 10.xxx.yyy.254 (10.xxx.yyy.254) 56(84) bytes of data.
> 64 bytes from 10.xxx.yyy.254: icmp_seq=1 ttl=64 time=0.780 ms
> 64 bytes from 10.xxx.yyy.254: icmp_seq=2 ttl=64 time=0.306 ms
> 64 bytes from 10.xxx.yyy.254: icmp_seq=3 ttl=64 time=0.310 ms
> ^C
> --- 10.xxx.yyy.254 ping statistics ---
> 3 packets transmitted, 3 received, 0% packet loss, time 2038ms
> rtt min/avg/max/mdev = 0.306/0.465/0.780/0.222 ms
> root@vpp-test:~# ip route add default via 10.xxx.yyy.254
> root@vpp-test:~# ping 1.1.1.1
> PING 1.1.1.1 (1.1.1.1) 56(84) bytes of data.
> 64 bytes from 1.1.1.1: icmp_seq=1 ttl=60 time=23.5 ms
> 64 bytes from 1.1.1.1: icmp_seq=2 ttl=60 time=23.9 ms
> ^C
> --- 1.1.1.1 ping statistics ---
> 2 packets transmitted, 2 received, 0% packet loss, time 1002ms
> rtt min/avg/max/mdev = 23.541/23.710/23.879/0.169 ms
> root@vpp-test:~#
>
>
> Traffic passes fine.
>
> This is a basic VPP installation built with
> https://gerrit.fd.io/r/c/vpp/+/31122 rebased onto master of a couple weeks
> ago (fd77f8c00). Ping plugin disabled, linux-cp and linux-nl enabled, with
> linux-cp config of:
>
> linux-cp {
>         default netns dataplane
>         interface-auto-create
> }
>
> Normally, this behaviour wouldn't be an issue, as a neighbor relationship
> with the nexthop will be created with the BGP converstion that would cause
> routes to be created that use that nexthop - however, that's not the case
> with Route Reflectors that I plan on implementing. OSPF will be used in the
> implementation which might mitigate the problem - I hadn't gotten that far
> in testing. However, I figured that if this is a real bug, then it's worth
> fixing.
>
>
> There were a couple of other feedback items for the linux-nl plugin that
> I'd
> written to Neale in the web form for the list, but I can only recall one of
> them - the default netns has to be specified in the config file, you can't
> use the command:
>
> # vppctl lcp default netns dataplane
>
> As the netlink listener doesn't appear to be re-created in that netns
> dynamically.
>
> Of course, I'm new to VPP as well, so if I'm doing something stupid, please
> let me know!
>
> Mike.
> --
> Mike Beattie <m...@ethernal.org>
>
> 
>
>
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#19500): https://lists.fd.io/g/vpp-dev/message/19500
Mute This Topic: https://lists.fd.io/mt/83138237/21656
Group Owner: vpp-dev+ow...@lists.fd.io
Unsubscribe: https://lists.fd.io/g/vpp-dev/unsub [arch...@mail-archive.com]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to