[dpdk-users] Promiscuous mode in testpmd
Yichen Wang (yicwang)
yicwang at cisco.com
Wed Nov 8 05:25:14 CET 2017
I am trying a very easy PVP test case in my setup, which uses TRex as the traffic generator, VPP as the vswitch, and testpmd as the loopback VNF. The flow is similar to page 5 in this document: http://fast.dpdk.org/doc/perf/DPDK_17_08_Intel_virtio_performance_report.pdf, except I am using two physical ports running on two VLANs and two vhost-user ports instead of one in the document.
I am generating bi-directional traffic with SRC MAC to NIC_PORT_A/NIC_PORT_B, DST_MAC to VNF_PORT_A/VNF_PORT_B, SRC_IP: 10.0.0.1, DST_IP: 22.214.171.124. Initially, vswitch will flood the packets from both directions to all VMs in the same bridge domain (VLAN). But after testpmd is up running and starting to forward the traffic, the vswitch will learn the MAC address of both vhost-user ports, and flood will stop. When there is only one pair, the whole thing works perfectly fine. But when I am sending a second pair of flow with SRC_MAC to NIC_PORT_A/NIC_PORT_B, DST_MAC to RANDOM_1/RANDOM_2, SRC_IP: random, DST_IP: random. Things are not working as expected.
Without static L2 fib entries, vswitch again will start flood the packet to all VMs in the same bridge domain, which means the testpmd VNF will also get the packets with DST_MAC to RANDOM_1/RANDOM_2. In the case of promiscuous mode enabled (by default) of testpmd VM, it will forward the packets regardless as it doesn’t really care about the MAC addresses in the packets at all. However, when I turned off the promiscuous mode (set promisc all off) in testpmd, I am still seeing testpmd forwarding the packets which supposed to be dropped, i.e. the behavior doesn’t change.
I tried both 17.05.2 and 17.08, same behavior. So am I understanding wrong with the promiscuous behavior of testpmd, or this is a bug?
Thanks very much for helps!
More information about the users