111. NIC PF Smoke Test¶
111.1. Description¶
Test the basic functions of dpdk. 1. Port connection status. 2. Launch testpmd normally. 3. Basic rx and tx.
111.2. Prerequisites¶
Hardware:
82599/Intel® Ethernet 700 Series/Intel® Ethernet 800 Series
Software:
Compile DPDK:
CC=gcc meson -Denable_kmods=True -Dlibdir=lib --default-library=static x86_64-native-linuxapp-gcc ninja -C x86_64-native-linuxapp-gcc
Get the pci device id of DUT, for example:
./usertools/dpdk-devbind.py -s 0000:86:00.0 'Device 1593' if=enp134s0f0 drv=ice unused=vfio-pci
Bind PF to dpdk driver:
modprobe vfio-pci ./usertools/dpdk-devbind.py -b vfio-pci 0000:86:00.0
Launch dpdk on PF:
./x86_64-native-linuxapp-gcc/app/dpdk-testpmd -c 0xf -n 4 -a 0000:86:00.0 --file-prefix=pf -- -i --rxq=4 --txq=4 testpmd> set fwd mac testpmd> set verbose 3 testpmd> start testpmd> show port info all
111.3. Test Case 1: test enable and disable jumbo frame¶
when launch dpdk on PF, add parameter ‘–max-pkt-len=9600 –tx-offloads=0x00008000’
set fwd mode is mac:
testpmd> set fwd mac testpmd> set verbose 3 testpmd> start
Send a packet with size 9601 bytes
testpmd> show port stats 0 ######################## NIC statistics for port 0 ######################## RX-packets: 0 RX-errors: 1 RX-bytes: 0 TX-packets: 0 TX-errors: 0 TX-bytes: 0 ############################################################################
Verify that TX-bytes on port 0 and RX-bytes on port 0 are 0.
Send a packet with size 9600 bytes
testpmd> show port stats 0 ######################## NIC statistics for port 0 ######################## RX-packets: 1 RX-errors: 0 RX-bytes: 9600 TX-packets: 1 TX-errors: 0 TX-bytes: 9600 ############################################################################
Verify that TX-bytes on port 0 and RX-bytes on port 0 are 9600.
Set mtu is 1500
testpmd> port config mtu 1500
Send a packet with size 1518 bytes
testpmd> show port stats 0 ######################## NIC statistics for port 0 ######################## RX-packets: 1 RX-errors: 0 RX-bytes: 1518 TX-packets: 1 TX-errors: 0 TX-bytes: 1518 ############################################################################
Verify that TX-bytes on port 0 and RX-bytes on port 0 are 1518
Send a packet with size 1519 bytes
testpmd> show port stats 0 ######################## NIC statistics for port 0 ######################## RX-packets: 0 RX-errors: 1 RX-bytes: 0 TX-packets: 0 TX-errors: 0 TX-bytes: 0 ############################################################################
Verify that TX-bytes on port 0 and RX-bytes on port 1 are 0
111.4. Test Case 2: test RSS¶
set fwd mode is rxonly:
testpmd> set fwd rxonly testpmd> set verbose 1 testpmd> start
- Send different hash types’ packets with different keywords, then check rx port
could receive packets by different queues:
sendp([Ether(dst="00:01:23:45:67:89")/IP(src="192.168.0.4", dst=RandIP())], iface="eth3")
111.5. Test Case 3: test reset RX/TX queues¶
- Run
port stop all
to stop all ports. - Run
port config all rxq 2
to change the number of receiving queues to two. - Run
port config all txq 2
to change the number of transmitting queues to two. - Run
port start all
to restart all ports. - Check with
show config rxtx
that the configuration for these parameters changed. - Run
start
again to restart the forwarding, then start packet generator to transmit and receive packets, and check if testpmd is able to receive and forward packets successfully.