Now when I start both bird and vpp in the dataplane netns, the dpdk
interface goes into down state in the dataplane nents:

















*root@nat-gw-55896dc777-cxld2:/vpp# ip netns exec dataplane ip a1: 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 <http://127.0.0.1/8> scope host lo       valid_lft forever
preferred_lft forever    inet6 ::1/128 scope host       valid_lft forever
preferred_lft forever2: loop0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9000
qdisc mq state UP group default qlen 1000    link/ether de:ad:00:00:00:00
brd ff:ff:ff:ff:ff:ff    inet 192.168.163.2/32 <http://192.168.163.2/32>
scope global loop0       valid_lft forever preferred_lft forever    inet6
fe80::dcad:ff:fe00:0/64 scope link tentative       valid_lft forever
preferred_lft forever3: xe0-1: <BROADCAST,MULTICAST> mtu 9001 qdisc mq
state DOWN group default qlen 1000    link/ether 02:40:0a:84:e3:83 brd
ff:ff:ff:ff:ff:ff    inet 10.0.5.10/24 <http://10.0.5.10/24> scope global
xe0-1       valid_lft forever preferred_lft forever*

In VPP, all the interfaces are up:

vpp# show int
              Name               Idx    State  MTU (L3/IP4/IP6/MPLS)
Counter          Count
internet                          1      up          9001/0/0/0     rx
packets                     7
                                                                    rx
bytes                     294
                                                                    tx
packets                     1
                                                                    tx
bytes                      42
                                                                    drops
                       7
local0                            0     down          0/0/0/0
loop0                             3      up          9000/0/0/0     tx
packets                 65118
                                                                    tx
bytes                 2746724
                                                                    drops
                   32559
                                                                    ip6
                     133
n6                                2      up          9001/0/0/0     rx
packets                     5
                                                                    rx
bytes                     306
                                                                    tx
packets                     1
                                                                    tx
bytes                      90
                                                                    drops
                       2
                                                                    ip4
                       3

tx-error                       1
tap2                              5      up          9001/0/0/0     rx
packets                     2
                                                                    rx
bytes                     176
                                                                    tx
packets                     3
                                                                    tx
bytes                     222
                                                                    drops
                       1
                                                                    ip6
                       2
tap3                              4      up          9000/0/0/0     rx
packets                   133
                                                                    rx
bytes                   11470
                                                                    ip6
                     133
vpp#
vpp#
vpp# show lcp
lcp default netns 'dataplane'
lcp lcp-auto-subint on
lcp lcp-sync on
lcp del-static-on-link-down off
lcp del-dynamic-on-link-down off
itf-pair: [0] loop0 tap3 loop0 2 type tap netns dataplane
itf-pair: [1] n6 tap2 xe0-1 3 type tap netns dataplane

But in the vpp logs, n6 interfaces keeps going off

2022/12/22 14:22:38:540 notice     nl/nl          Processed 21 messages
2022/12/22 14:22:38:540 notice     dpdk           ena_mtu_set(): MTU set
to: 9004
2022/12/22 14:22:38:540 notice     dpdk           ena_mtu_set(): MTU set
to: 9005
2022/12/22 14:22:38:547 info       dpdk           Interface n6 stopped
2022/12/22 14:22:38:549 info       dpdk           Probe for interrupt mode
for device n6. Success.
2022/12/22 14:22:38:549 info       dpdk           Interface n6 started
2022/12/22 14:22:38:550 notice     nl/nl          Processed 21 messages
2022/12/22 14:22:38:550 notice     dpdk           ena_mtu_set(): MTU set
to: 9004
2022/12/22 14:22:38:550 notice     dpdk           ena_mtu_set(): MTU set
to: 9005
2022/12/22 14:22:38:557 info       dpdk           Interface n6 stopped
2022/12/22 14:22:38:559 info       dpdk           Probe for interrupt mode
for device n6. Success.
2022/12/22 14:22:38:559 info     *  dpdk           Interface n6 started*
2022/12/22 14:22:38:560 notice     nl/nl          Processed 21 messages
2022/12/22 14:22:38:560 notice     dpdk           ena_mtu_set(): MTU set
to: 9004
2022/12/22 14:22:38:560 notice     dpdk           ena_mtu_set(): MTU set
to: 9005
2022/12/22 14:22:38:567 info       dpdk           Interface n6 stopped
2022/12/22 14:22:38:569 info       dpdk           Probe for interrupt mode
for device n6. Success.
2022/12/22 14:22:38:569 info       *dpdk           Interface n6 started*
2022/12/22 14:22:38:570 notice     nl/nl          Processed 21 messages
2022/12/22 14:22:38:570 notice     dpdk           ena_mtu_set(): MTU set
to: 9004
2022/12/22 14:22:38:570 notice     dpdk           ena_mtu_set(): MTU set
to: 9005
2022/12/22 14:22:38:577 info      * dpdk           Interface n6 stopped*
2022/12/22 14:22:38:580 info       dpdk           Probe for interrupt mode
for device n6. Success.
2022/12/22 14:22:38:580 info       dpdk           Interface n6 started
2022/12/22 14:22:38:580 notice     nl/nl          Processed 21 messages
2022/12/22 14:22:38:580 notice     dpdk           ena_mtu_set(): MTU set
to: 9004
2022/12/22 14:22:38:580 notice     dpdk           ena_mtu_set(): MTU set
to: 9005
2022/12/22 14:22:38:588 info      * dpdk           Interface n6 stopped*
2022/12/22 14:22:38:590 info       dpdk           Probe for interrupt mode
for device n6. Success.
2022/12/22 14:22:38:590 info       dpdk           Interface n6 started
2022/12/22 14:22:38:590 notice     nl/nl          Processed 21 messages
2022/12/22 14:22:38:590 notice     dpdk           ena_mtu_set(): MTU set
to: 9004
2022/12/22 14:22:38:590 notice     dpdk           ena_mtu_set(): MTU set
to: 9005
2022/12/22 14:22:38:598 info       dpdk           Interface n6 stopped
2022/12/22 14:22:38:600 info       dpdk           Probe for interrupt mode
for device n6. Success.
2022/12/22 14:22:38:600 info       dpdk           Interface n6 started
2022/12/22 14:22:38:601 notice     nl/nl          Processed 21 messages
2022/12/22 14:22:38:601 notice     dpdk           ena_mtu_set(): MTU set
to: 9004
2022/12/22 14:22:38:601 notice     dpdk           ena_mtu_set(): MTU set
to: 9005
2022/12/22 14:22:38:608 info       dpdk           Interface n6 stopped

*This behavior is the same when I am running vpp without using a specific
namespace (i.e. namespace 0), the xe0-1 (i.e. n6 in vpp) interface does not
come up*

N.B --- If I disable the linux_nl_plugin.so, the interfaces works without
any issues


On Thu, Dec 22, 2022 at 8:09 AM Petr Boltík <petr.bol...@gmail.com> wrote:

> Hi,
>
> - there is no " ignore lcp default netns" declaration in startup.conf or
> init.conf. If you start VPP(systemctl vpp start) with no netns configured,
> plugin linux_nl_plugin.so will not sync correct routing table and fail.
> - If you run the entire VPP process inside netns dataplane, you can skip
> configuration line "lcp default netns dataplane".
> - To make "plugin linux_nl_plugin.so" working, you need to run VPP inside
> netns dataplane (same as bird). This can be done by editing VPP systemd
> startup file (add something like "
> NetworkNamespacePath=/var/run/netns/dataplane" ) and ensuring that netns
> "dataplane" will be started first.
>
> Petr.
>
>
>
> čt 22. 12. 2022 v 13:53 odesílatel Christopher Adigun <future...@gmail.com>
> napsal:
>
>> Hi Petr,
>>
>> Thanks for the response, bird is actually running in the dataplane ns:
>>
>> root@nat-gw-697d886cb4-xn62q:/etc/bird# *ip netns exec dataplane 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
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>> *2: loop0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9000 qdisc mq state UP
>> group default qlen 1000    link/ether de:ad:00:00:00:00 brd
>> ff:ff:ff:ff:ff:ff    inet 192.168.163.2/32 <http://192.168.163.2/32> scope
>> global loop0       valid_lft forever preferred_lft forever    inet6
>> fe80::dcad:ff:fe00:0/64 scope link       valid_lft forever preferred_lft
>> forever3: xe0-1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 9001 qdisc mq state
>> UNKNOWN group default qlen 1000    link/ether 02:40:0a:84:e3:83 brd
>> ff:ff:ff:ff:ff:ff    inet 10.0.5.10/24 <http://10.0.5.10/24> scope global
>> xe0-1       valid_lft forever preferred_lft forever    inet6
>> fe80::40:aff:fe84:e383/64 scope link       valid_lft forever preferred_lft
>> forever*
>> root@nat-gw-697d886cb4-xn62q:/etc/bird#
>> root@nat-gw-697d886cb4-xn62q:/etc/bird#
>> root@nat-gw-697d886cb4-xn62q:/etc/bird# ip netns exec *dataplane *ip r
>> 10.0.5.0/24 dev xe0-1 proto kernel scope link src 10.0.5.10
>> 10.45.0.0/16 via 10.0.5.9 dev xe0-1 proto bird
>>
>> One other thing, I am running this in a kubernetes POD, maybe this might
>> be affecting something.
>>
>> Also can you clarify how to perform *plugin "linux_nl_plugin.so" ignore
>> "lcp default netns" configuration?* Should this be placed in the
>> startup.conf or init.conf?
>> I want to test without netns, I tried the following in the startup config
>> but vpp was crashing
>>
>> plugin "linux_nl_plugin.so" {
>>   ignore "lcp default netns"
>> }
>>
>> I also tried using the full command in init.conf but that did not work.
>>
>>
>> On Thu, Dec 22, 2022 at 4:22 AM Petr Boltík <petr.bol...@gmail.com>
>> wrote:
>>
>>> Hi,
>>>
>>> there can be a few misconfigurations:
>>> 1. "lcp default netns dataplane" start synchronizing
>>> interfaces/address/etc inside netns "dataplane" (netns "dataplane" must
>>> exist) - NOT synchronizing routes
>>> 2. plugin "linux_nl_plugin.so" ignore "lcp default netns" configuration
>>> =>  "linux_nl_plugin.so" will synchronize VPP with default namespace "0"
>>>
>>> Solution with netns:
>>> 0. Create netns "dataplane" with systemd
>>> 1. run VPP inside netns "dataplane" (edit systemd, start after previous
>>> point)
>>> 2. run Bird inside netns "dataplane" (edit systemd, start after previous
>>> point)
>>> 3. do not use "lcp default netns dataplane", it is controlled by VPP
>>> netns
>>>
>>> For running without netns only skip "lcp default netns dataplane".
>>>
>>> Petr
>>>
>>> čt 22. 12. 2022 v 10:07 odesílatel Pim van Pelt via lists.fd.io <pim=
>>> ipng...@lists.fd.io> napsal:
>>>
>>>> Hoi,
>>>>
>>>> Is bird running in the 'dataplane' network namespace ?
>>>>
>>>> groet,
>>>> Pim
>>>>
>>>> On Thu, Dec 22, 2022 at 12:52 AM Christopher Adigun <
>>>> future...@gmail.com> wrote:
>>>>
>>>>> Hi,
>>>>>
>>>>> I am currently trying to use linx-cp plugins to sync routes learned
>>>>> via BGP, bird is seeing the BGP route but I can't see the routes in VPP.
>>>>>
>>>>> Details:
>>>>>
>>>>> *vpp v22.10-release built by root on ff42e25458af at
>>>>> 2022-10-26T14:00:24*
>>>>>
>>>>> *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 1
>>>>>   corelist-workers 19
>>>>> }
>>>>>
>>>>> memory {
>>>>>   main-heap-size 2G
>>>>> }
>>>>> api-trace {
>>>>>   on
>>>>> }
>>>>>
>>>>> dpdk {
>>>>>  dev 0000:00:09.0 {name n6}
>>>>>  dev 0000:00:07.0 {name internet}
>>>>> }
>>>>>
>>>>> api-segment {
>>>>>   gid vpp
>>>>> }
>>>>>
>>>>> plugins {
>>>>>   path /usr/lib/x86_64-linux-gnu/vpp_plugins/
>>>>>   plugin ping_plugin.so { disable }
>>>>>   plugin linux_cp_plugin.so { enable }
>>>>>   plugin linux_nl_plugin.so { enable }
>>>>>   plugin dpdk_plugin.so { enable }
>>>>> }
>>>>>
>>>>> *Init.conf:*
>>>>>
>>>>> lcp default netns dataplane
>>>>> lcp lcp-sync on
>>>>> lcp lcp-auto-subint on
>>>>> create loopback interface instance 0
>>>>> lcp create loop0 host-if loop0
>>>>> set interface state loop0 up
>>>>> set interface ip address loop0 192.168.163.2/32
>>>>> lcp create n6 host-if xe0-1
>>>>> set interface mtu 9001 n6
>>>>> set interface mtu 9001 internet
>>>>> set interface ip address n6 10.0.5.10/24
>>>>> set interface ip address internet 10.0.4.9/24
>>>>> set interface state n6 up
>>>>> set interface state internet up
>>>>> ip route add 0.0.0.0/0 via 10.0.4.1 internet
>>>>> set cnat snat-policy addr 10.0.4.9
>>>>> set cnat snat-policy if-pfx
>>>>> set cnat snat-policy if table include-v4 internet
>>>>> set cnat snat-policy prefix 10.45.0.0/16
>>>>> set interface feature internet cnat-snat-ip4 arc ip4-unicast
>>>>>
>>>>> *BIRD routes:*
>>>>>
>>>>> root@nat-gw-697d886cb4-xn62q:/etc/bird# birdc show route all
>>>>> BIRD 1.6.8 ready.
>>>>> 10.45.0.0/16       via 10.0.5.9 on xe0-1 [neighbor_v4_1 23:13:04] *
>>>>> (100) [i]
>>>>>         Type: BGP unicast univ
>>>>>         BGP.origin: IGP
>>>>>         BGP.as_path:
>>>>>         BGP.next_hop: 10.0.5.9
>>>>>         BGP.med: 0
>>>>>         BGP.local_pref: 100
>>>>>
>>>>> root@nat-gw-697d886cb4-xn62q:/etc/bird# ip r
>>>>> 10.0.5.0/24 dev xe0-1 proto kernel scope link src 10.0.5.10
>>>>> 10.45.0.0/16 via 10.0.5.9 dev xe0-1 proto bird
>>>>>
>>>>>
>>>>> *BIRD config:*
>>>>>
>>>>> router id 194.1.163.2;
>>>>>
>>>>> protocol device { scan time 30; }
>>>>> protocol kernel kernel4 {
>>>>>   import none;
>>>>>   export where source != RTS_DEVICE;
>>>>>   learn off;
>>>>>   scan time 300;
>>>>> }
>>>>>
>>>>> protocol bgp neighbor_v4_1 {
>>>>>   local as 65001;
>>>>>   direct;
>>>>>   neighbor 10.0.5.9 as 65001;
>>>>> }
>>>>>
>>>>> Need any hint on troubleshooting this.
>>>>>
>>>>> 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 (#22368): https://lists.fd.io/g/vpp-dev/message/22368
Mute This Topic: https://lists.fd.io/mt/95817807/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