Hi all, For learning purposes, I'm trying to set up a test topology using multiple instances of VPP running in different network namespaces.
I see that there's documentation showing how to use VPP as a router between namespaces, but in all examples I found VPP is always running in the default network namespace. If I try to run VPP in a non-default network namespace, something weird happens: all interfaces from the default netns disappear! Does anyone know what might be the cause of this? I'm using the official vagrant VM (Ubuntu 16.04) and VPP v17.04.1, and I can see that the same problem occurs on master and on older releases as well. More details about the issue below. 1 - My VPP config: # cat /etc/vpp/startup.conf unix { nodaemon log /tmp/vpp.log full-coredump } api-trace { on } api-segment { gid vpp } 2 - VPP running ok in the default netns: # vpp -c /etc/vpp/startup.conf vlib_plugin_early_init:356: plugin path /usr/lib/vpp_plugins load_one_plugin:184: Loaded plugin: acl_plugin.so (Access Control Lists) load_one_plugin:184: Loaded plugin: dpdk_plugin.so (Data Plane Development Kit (DPDK)) load_one_plugin:184: Loaded plugin: flowperpkt_plugin.so (Flow per Packet) load_one_plugin:184: Loaded plugin: gtpu_plugin.so (GTPv1-U) load_one_plugin:184: Loaded plugin: ila_plugin.so (Identifier-locator addressing for IPv6) load_one_plugin:184: Loaded plugin: ioam_plugin.so (Inbound OAM) load_one_plugin:114: Plugin disabled (default): ixge_plugin.so load_one_plugin:184: Loaded plugin: lb_plugin.so (Load Balancer) load_one_plugin:184: Loaded plugin: libsixrd_plugin.so (IPv6 Rapid Deployment on IPv4 Infrastructure (RFC5969)) load_one_plugin:184: Loaded plugin: memif_plugin.so (Packet Memory Interface (experimetal)) load_one_plugin:184: Loaded plugin: snat_plugin.so (Network Address Translation) load_one_plugin:63: Loaded plugin: /usr/lib/vpp_api_test_plugins/dpdk_test_plugin.so load_one_plugin:63: Loaded plugin: /usr/lib/vpp_api_test_plugins/snat_test_plugin.so load_one_plugin:63: Loaded plugin: /usr/lib/vpp_api_test_plugins/lb_test_plugin.so load_one_plugin:63: Loaded plugin: /usr/lib/vpp_api_test_plugins/flowperpkt_test_plugin.so load_one_plugin:63: Loaded plugin: /usr/lib/vpp_api_test_plugins/udp_ping_test_plugin.so load_one_plugin:63: Loaded plugin: /usr/lib/vpp_api_test_plugins/acl_test_plugin.so load_one_plugin:63: Loaded plugin: /usr/lib/vpp_api_test_plugins/ioam_export_test_plugin.so load_one_plugin:63: Loaded plugin: /usr/lib/vpp_api_test_plugins/ioam_trace_test_plugin.so load_one_plugin:63: Loaded plugin: /usr/lib/vpp_api_test_plugins/vxlan_gpe_ioam_export_test_plugin.so load_one_plugin:63: Loaded plugin: /usr/lib/vpp_api_test_plugins/gtpu_test_plugin.so load_one_plugin:63: Loaded plugin: /usr/lib/vpp_api_test_plugins/ioam_vxlan_gpe_test_plugin.so load_one_plugin:63: Loaded plugin: /usr/lib/vpp_api_test_plugins/ioam_pot_test_plugin.so vlib_pci_bind_to_uio: Skipping PCI device 0000:00:03.0 as host interface enp0s3 is up vlib_pci_bind_to_uio: Skipping PCI device 0000:00:08.0 as host interface enp0s8 is up vlib_pci_bind_to_uio: Skipping PCI device 0000:00:09.0 as host interface enp0s9 is up vpp[1180]: dpdk_ipsec_process:239: not enough Cryptodevs, default to OpenSSL IPsec vpp[1180]: dpdk_lib_init:182: DPDK drivers found no ports... vpp[1180]: dpdk_lib_init:186: DPDK drivers found 0 ports... vpp[1180]: received signal SIGINT, PC 0x7fad6a98ea37 DPDK physical memory layout: Segment 0: phys:0x34000000, len:8388608, virt:0x7facdbc00000, socket_id:0, hugepage_sz:2097152, nchannel:0, nrank:0 Segment 1: phys:0x70800000, len:2097152, virt:0x7facdb800000, socket_id:0, hugepage_sz:2097152, nchannel:0, nrank:0 Segment 2: phys:0x70c00000, len:257949696, virt:0x7fac76200000, socket_id:0, hugepage_sz:2097152, nchannel:0, nrank:0 3 - Now running VPP in a non-default netns: root@localhost:~# unshare -n bash root@localhost:~# vpp -c /etc/vpp/startup.conf vlib_plugin_early_init:356: plugin path /usr/lib/vpp_plugins load_one_plugin:184: Loaded plugin: acl_plugin.so (Access Control Lists) load_one_plugin:184: Loaded plugin: dpdk_plugin.so (Data Plane Development Kit (DPDK)) load_one_plugin:184: Loaded plugin: flowperpkt_plugin.so (Flow per Packet) load_one_plugin:184: Loaded plugin: gtpu_plugin.so (GTPv1-U) load_one_plugin:184: Loaded plugin: ila_plugin.so (Identifier-locator addressing for IPv6) load_one_plugin:184: Loaded plugin: ioam_plugin.so (Inbound OAM) load_one_plugin:114: Plugin disabled (default): ixge_plugin.so load_one_plugin:184: Loaded plugin: lb_plugin.so (Load Balancer) load_one_plugin:184: Loaded plugin: libsixrd_plugin.so (IPv6 Rapid Deployment on IPv4 Infrastructure (RFC5969)) load_one_plugin:184: Loaded plugin: memif_plugin.so (Packet Memory Interface (experimetal)) load_one_plugin:184: Loaded plugin: snat_plugin.so (Network Address Translation) load_one_plugin:63: Loaded plugin: /usr/lib/vpp_api_test_plugins/dpdk_test_plugin.so load_one_plugin:63: Loaded plugin: /usr/lib/vpp_api_test_plugins/snat_test_plugin.so load_one_plugin:63: Loaded plugin: /usr/lib/vpp_api_test_plugins/lb_test_plugin.so load_one_plugin:63: Loaded plugin: /usr/lib/vpp_api_test_plugins/flowperpkt_test_plugin.so load_one_plugin:63: Loaded plugin: /usr/lib/vpp_api_test_plugins/udp_ping_test_plugin.so load_one_plugin:63: Loaded plugin: /usr/lib/vpp_api_test_plugins/acl_test_plugin.so load_one_plugin:63: Loaded plugin: /usr/lib/vpp_api_test_plugins/ioam_export_test_plugin.so load_one_plugin:63: Loaded plugin: /usr/lib/vpp_api_test_plugins/ioam_trace_test_plugin.so load_one_plugin:63: Loaded plugin: /usr/lib/vpp_api_test_plugins/vxlan_gpe_ioam_export_test_plugin.so load_one_plugin:63: Loaded plugin: /usr/lib/vpp_api_test_plugins/gtpu_test_plugin.so load_one_plugin:63: Loaded plugin: /usr/lib/vpp_api_test_plugins/ioam_vxlan_gpe_test_plugin.so load_one_plugin:63: Loaded plugin: /usr/lib/vpp_api_test_plugins/ioam_pot_test_plugin.so vpp[1264]: dpdk_ipsec_process:239: not enough Cryptodevs, default to OpenSSL IPsec vpp[1264]: dpdk_lib_init:186: DPDK drivers found 3 ports... vpp[1264]: svm_client_scan_this_region_nolock:1140: /vpe-api: cleanup ghost pid 1180 vpp[1264]: svm_client_scan_this_region_nolock:1140: /global_vm: cleanup ghost pid 1180 vpp[1264]: received signal SIGINT, PC 0x7f2e2d976a37 DPDK physical memory layout: Segment 0: phys:0x34000000, len:8388608, virt:0x7f2d9ec00000, socket_id:0, hugepage_sz:2097152, nchannel:0, nrank:0 Segment 1: phys:0x70800000, len:2097152, virt:0x7f2d9e800000, socket_id:0, hugepage_sz:2097152, nchannel:0, nrank:0 Segment 2: phys:0x70c00000, len:257949696, virt:0x7f2d39200000, socket_id:0, hugepage_sz:2097152, nchannel:0, nrank:0 4 - In another shell I can see all interfaces being removed (except lo): # ip monitor link 2: enp0s3: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast state DOWN group default link/ether 08:00:27:33:82:8a brd ff:ff:ff:ff:ff:ff Deleted 2: enp0s3: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default link/ether 08:00:27:33:82:8a brd ff:ff:ff:ff:ff:ff 3: enp0s8: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast state DOWN group default link/ether 08:00:27:b1:f8:99 brd ff:ff:ff:ff:ff:ff Deleted 3: enp0s8: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default link/ether 08:00:27:b1:f8:99 brd ff:ff:ff:ff:ff:ff 4: enp0s9: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast state DOWN group default link/ether 08:00:27:be:61:9f brd ff:ff:ff:ff:ff:ff Deleted 4: enp0s9: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default link/ether 08:00:27:be:61:9f brd ff:ff:ff:ff:ff:ff Any help would be appreciated. Best Regards, -- Renato Westphal _______________________________________________ vpp-dev mailing list vpp-dev@lists.fd.io https://lists.fd.io/mailman/listinfo/vpp-dev