As the subject indicates, I am having difficulty getting my VPP interfaces activating properly. I am trying to use DPDK-enabled netvsc devices with VPP in Ubuntu 18.04 in Azure.
I am trying to follow this guide: https://wiki.fd.io/view/VPP/How_To_Connect_A_PCI_Interface_To_VPP Here is some basic info (run at the time I'm currently at when I can't get the VPP hardware in the 'up' state): sudo vppctl show ver vpp v19.08.1-release built by chris on --- at Thu Jan 9 19:08:52 UTC 2020 Excerpts from /etc/vpp/startup.conf: unix { nodaemon log /var/log/vpp/vpp.log full-coredump cli-listen /run/vpp/cli.sock gid vpp } dpdk { dev 0002:00:02.0 vdev net_vdev_netvsc0,iface=eth1 dev 0003:00:02.0 vdev net_vdev_netvsc1,iface=eth2 } ifconfig eth1 eth1: flags=4675<UP,BROADCAST,RUNNING,ALLMULTI,MULTICAST> mtu 1500 inet6 fe80::20d:3aff:fef4:eb8d prefixlen 64 scopeid 0x20<link> ether 00:0d:3a:f4:eb:8d txqueuelen 1000 (Ethernet) RX packets 217 bytes 82394 (82.3 KB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 285 bytes 79830 (79.8 KB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 ifconfig eth2 eth2: flags=4675<UP,BROADCAST,RUNNING,ALLMULTI,MULTICAST> mtu 1500 inet6 fe80::20d:3aff:fef4:e08c prefixlen 64 scopeid 0x20<link> ether 00:0d:3a:f4:e0:8c txqueuelen 1000 (Ethernet) RX packets 32 bytes 12192 (12.1 KB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 70 bytes 14263 (14.2 KB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 vpp# show int Name Idx State MTU (L3/IP4/IP6/MPLS) Counter Count FailsafeEthernet0 1 up 9000/0/0/0 rx packets 19 rx bytes 3914 drops 19 ip4 8 ip6 11 FailsafeEthernet2 2 up 9000/0/0/0 local0 0 down 0/0/0/0 vpp# show int addr FailsafeEthernet0 (up): L3 10.4.1.5/24 FailsafeEthernet2 (up): L3 10.4.2.6/24 local0 (dn): vpp# show hardware Name Idx Link Hardware FailsafeEthernet0 1 *down* FailsafeEthernet0 Link speed: 10 Gbps Ethernet address 00:0d:3a:f4:eb:8d FailsafeEthernet carrier down flags: admin-up pmd maybe-multiseg rx-ip4-cksum rx: queues 1 (max 16), desc 1024 (min 0 max 65535 align 1) tx: queues 1 (max 16), desc 1024 (min 0 max 65535 align 1) max rx packet len: 1522 promiscuous: unicast off all-multicast on vlan offload: strip off filter off qinq off rx offload avail: ipv4-cksum udp-cksum tcp-cksum scatter rx offload active: ipv4-cksum scatter tx offload avail: ipv4-cksum udp-cksum tcp-cksum tcp-tso multi-segs tx offload active: multi-segs rss avail: ipv4-frag ipv4-tcp ipv4-udp ipv4-other ipv4 ipv6-tcp-ex ipv6-udp-ex ipv6-frag ipv6-tcp ipv6-udp ipv6-other ipv6-ex ipv6 rss active: none tx burst function: failsafe_tx_burst rx burst function: failsafe_rx_burst rx frames ok 19 rx bytes ok 3914 extended stats: rx good packets 19 rx good bytes 3914 rx q0packets 19 rx q0bytes 3914 FailsafeEthernet2 2 *down* FailsafeEthernet2 Link speed: 10 Gbps Ethernet address 00:0d:3a:f4:e0:8c FailsafeEthernet carrier down flags: admin-up pmd maybe-multiseg rx-ip4-cksum rx: queues 1 (max 16), desc 1024 (min 0 max 65535 align 1) tx: queues 1 (max 16), desc 1024 (min 0 max 65535 align 1) max rx packet len: 1522 promiscuous: unicast off all-multicast on vlan offload: strip off filter off qinq off rx offload avail: ipv4-cksum udp-cksum tcp-cksum scatter rx offload active: ipv4-cksum scatter tx offload avail: ipv4-cksum udp-cksum tcp-cksum tcp-tso multi-segs tx offload active: multi-segs rss avail: ipv4-frag ipv4-tcp ipv4-udp ipv4-other ipv4 ipv6-tcp-ex ipv6-udp-ex ipv6-frag ipv6-tcp ipv6-udp ipv6-other Steps: before restarting VPP, I have been issuing the following commands to bring down eth1 and eth2: sudo ifconfig down eth1 sudo ip addr flush dev eth1 sudo ifconfig down eth2 sudo ip addr flush dev eth2 Next, I restart VPP like so: sudo systemctl restart vpp Then I add IP addresses to the VPP adapters as they are listed above and set the interface states up. When doing that, I sometimes notice that 'vppctl show hardware' does show the FailsafeEthernet hardware as up but by the time I've raised both interfaces they will both show as down again. I think this has something to do with a conflict with the host's eth1 and eth2 interfaces. The eth[1|2] interfaces have corresponding 'rename' interfaces on my Azure host too: rename5: flags=6211<UP,BROADCAST,RUNNING,SLAVE,MULTICAST> mtu 1500 ether 00:0d:3a:f4:b5:f9 txqueuelen 1000 (Ethernet) RX packets 229821 bytes 271067393 (271.0 MB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 222945 bytes 53685565 (53.6 MB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 rename6: flags=6211<UP,BROADCAST,RUNNING,SLAVE,MULTICAST> mtu 1500 ether 00:0d:3a:f4:eb:8d txqueuelen 1000 (Ethernet) RX packets 0 bytes 0 (0.0 B) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 14 bytes 2726 (2.7 KB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 Is there a sequence of commands that would allow me to avoid interference between the FailsafeEthernet interfaces within VPP and the eth[1|2] interfaces on my host? Is this possibly just an IP address conflict issue? Success Criteria: to prove that this setup works, I would like to be able to ping FailsafeEthernet0 and FailsafeEthernet2 from my host as follows: ping -c 1 10.4.1.5 ping -c 1 10.4.2.6 Trace Results: currently, if I set up a trace and then ping in this manner, this is what I get: sudo vppctl trace add dpdk-input 10 ping -c 1 10.4.1.5 PING 10.4.1.5 (10.4.1.5) 56(84) bytes of data. --- 10.4.1.5 ping statistics --- 1 packets transmitted, 0 received, 100% packet loss, time 0ms sudo vppctl show trace ------------------- Start of thread 0 vpp_main ------------------- Packet 1 00:30:13:057563: dpdk-input FailsafeEthernet0 rx queue 0 buffer 0x8829a: current data 0, length 381, buffer-pool 0, ref-count 1, totlen-nifb 0, trace handle 0x0 ext-hdr-valid l4-cksum-computed l4-cksum-correct PKT MBUF: port 0, nb_segs 1, pkt_len 381 buf_len 2176, data_len 381, ol_flags 0x88, data_off 128, phys_addr 0x9e20a700 packet_type 0x211 l2_len 0 l3_len 0 outer_l2_len 0 outer_l3_len 0 rss 0x0 fdir.hi 0x0 fdir.lo 0x0 Packet Offload Flags PKT_RX_L4_CKSUM_BAD (0x0008) L4 cksum of RX pkt. is not OK PKT_RX_IP_CKSUM_GOOD (0x0080) IP cksum of RX pkt. is valid Packet Types RTE_PTYPE_L2_ETHER (0x0001) Ethernet packet RTE_PTYPE_L3_IPV4 (0x0010) IPv4 packet without extension headers RTE_PTYPE_L4_UDP (0x0200) UDP packet IP4: 12:34:56:78:9a:bc -> 00:0d:3a:f4:e0:8c UDP: 168.63.129.16 -> 255.255.255.255 tos 0x00, ttl 128, length 367, checksum 0x102e fragment id 0x0001 UDP: 67 -> 68 length 347, checksum 0x0000 00:30:13:057583: ethernet-input frame: flags 0x3, hw-if-index 1, sw-if-index 1 IP4: 12:34:56:78:9a:bc -> 00:0d:3a:f4:e0:8c 00:30:13:057589: ip4-input-no-checksum UDP: 168.63.129.16 -> 255.255.255.255 tos 0x00, ttl 128, length 367, checksum 0x102e fragment id 0x0001 UDP: 67 -> 68 length 347, checksum 0x0000 00:30:13:057591: ip4-lookup fib 0 dpo-idx 0 flow hash: 0x00000000 UDP: 168.63.129.16 -> 255.255.255.255 tos 0x00, ttl 128, length 367, checksum 0x102e fragment id 0x0001 UDP: 67 -> 68 length 347, checksum 0x0000 00:30:13:057594: ip4-drop UDP: 168.63.129.16 -> 255.255.255.255 tos 0x00, ttl 128, length 367, checksum 0x102e fragment id 0x0001 UDP: 67 -> 68 length 347, checksum 0x0000 00:30:13:057595: error-drop rx:FailsafeEthernet0 00:30:13:057597: drop dpdk-input: no error Any help with this setup would be greatly appreciated and I would be willing to provide more information if required! Thanks!
-=-=-=-=-=-=-=-=-=-=-=- Links: You receive all messages sent to this group. View/Reply Online (#15231): https://lists.fd.io/g/vpp-dev/message/15231 Mute This Topic: https://lists.fd.io/mt/69987045/21656 Mute #vpp: https://lists.fd.io/mk?hashtag=vpp&subid=1480452 Mute #dpdk: https://lists.fd.io/mk?hashtag=dpdk&subid=1480452 Mute #azure: https://lists.fd.io/mk?hashtag=azure&subid=1480452 Group Owner: vpp-dev+ow...@lists.fd.io Unsubscribe: https://lists.fd.io/g/vpp-dev/unsub [arch...@mail-archive.com] -=-=-=-=-=-=-=-=-=-=-=-