[Edited Message Follows]

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!

Edit: I noticed some possibly interesting error messages in my currently 
running VPP instance:
sudo systemctl status vpp
● vpp.service - vector packet processing engine
Loaded: loaded (/lib/systemd/system/vpp.service; enabled; vendor preset: 
enabled)
Active: active (running) since Wed 2020-01-22 18:27:15 UTC; 52min ago
Process: 32738 ExecStopPost=/bin/rm -f /dev/shm/db /dev/shm/global_vm 
/dev/shm/vpe-api (code=exited, status=0/SUCCESS)
Main PID: 32739 (vpp_main)
Tasks: 2 (limit: 16771)
CGroup: /system.slice/vpp.service
└─32739 /usr/bin/vpp -c /etc/vpp/startup.conf

Jan 22 18:27:16 --- vnet[32739]: dpdk: unsupported rx offloads requested on 
port 0: jumbo-frame
Jan 22 18:27:16 --- vnet[32739]: dpdk: unsupported rx offloads requested on 
port 2: jumbo-frame
Jan 22 18:27:53 --- vnet[32739]: format_dpdk_device:585: 
rte_eth_dev_rss_hash_conf_get returned -95
Jan 22 18:27:53 --- vnet[32739]: format_dpdk_device:585: 
rte_eth_dev_rss_hash_conf_get returned -95
-=-=-=-=-=-=-=-=-=-=-=-
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
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