On 8/20/2019 4:36 PM, Miroslav Kováč wrote: > Hello, > > > We are trying a setup with intel 25 GB card XXV710 and sr-iov. We need sr-iov > to sort packets based on vlan in between the VFs. We are using trex on one > machine to generate packets and multiple VPPs (each in docker container, > using one VF) on another one. Trex machine contains the exact same hardware. > > > Each VF contains one vlan with spoof checking off and trust on and specific > MAC address. For example -> > > > vf 0 MAC ba:dc:0f:fe:ed:00, vlan 1537, spoof checking off, link-state auto, > trust on > > > > We are generating packets with VF destination MACs with the corresponding > VLAN. When sending packets to 3 VFs trex shows 35 million tx-packets and Dpdk > stats on the trex machine show that 35 million were in fact sent out: > > > ##### DPDK Statistics port0 ##### > { > "tx_good_bytes": 2142835740, > "tx_good_packets": 35713929, > "tx_size_64_packets": 35713929, > "tx_unicast_packets": 35713929 > } > > > rate= '96%'; pktSize= 64; frameLoss%=51.31%; bytesReceived/s= > 1112966528.00; totalReceived= 17390102; totalSent= 35713929; frameLoss= > 18323827; bytesReceived= 1112966528; targetDuration=1.0 > > > However VPP shows only 33 million rx-packets: > > VirtualFunctionEthernet17/a/0 2 up 9000/0/0/0 > rx packets 5718196 > rx bytes 343091760 > rx-miss 5572089 > > VirtualFunctionEthernet17/a/1 2 up 9000/0/0/0 > rx packets 5831396 > rx bytes 349883760 > rx-miss 5459089 > > VirtualFunctionEthernet17/a/2 2 up 9000/0/0/0 > rx packets 5840512 > rx bytes 350430720 > rx-miss 5449466 > > Sum of rx packets and rx-miss is 33,870,748. About 2 million is missing. > > > > Even when I check VFs stats I see only 33 million to come (out of which 9.9 > million are rx-missed): > > > root@protonet:/home/protonet# for f in $(ls > /sys/class/net/enp23s0f1/device/sriov/*/stats/rx_packets); do echo "$f: $(cat > $f)"; done | grep -v ' 0$' > > /sys/class/net/enp23s0f1/device/sriov/0/stats/rx_packets: 11290290 > /sys/class/net/enp23s0f1/device/sriov/1/stats/rx_packets: 11290485 > /sys/class/net/enp23s0f1/device/sriov/2/stats/rx_packets: 11289978 > > > > When increasing the number of VFs the number of rx-packets on VPP is actually > decreasing. Up to 6 or 7 VFs I still receive somewhere around 28-33 million > packets, but when I use 8 VFs all the sudden it drops to 16 million packets > (no rx-miss any more). The same goes with trunk mode: > > > VirtualFunctionEthernet17/a/0 2 up 9000/0/0/0 > rx packets 1959110 > rx bytes 117546600 > > > VirtualFunctionEthernet17/a/1 2 up 9000/0/0/0 > rx packets 1959181 > rx bytes 117550860 > > VirtualFunctionEthernet17/a/2 2 up 9000/0/0/0 > rx packets 1956242 > rx bytes 117374520 > . > . > . > Approximately the same amount of packets for each VPP instance which is 2 > million packets * 8 = 16 million packets out of 35 million sent. Almost 20 > million are gone > > > > We are using vfio-pci driver. > > > The strange thing is that when I use only PF, no sr-iov VFs are on and I try > the same vpp setup I can see all 35 million packets to come across. > > > This leads us to believe that there could be something wrong the sr-iov on > XXV710 but we don't know how to debug this any further - The packets seem to > be lost somewhere in the NIC when using sr-iov and we don't know of any dpdk > or linux tool that could help us with locating the lost packets. > > > Regards, > > Miroslav Kovac >
+i40e maintainers.