aboutsummaryrefslogtreecommitdiff
path: root/platform/linux-dpdk/odp_packet_dpdk.c
diff options
context:
space:
mode:
Diffstat (limited to 'platform/linux-dpdk/odp_packet_dpdk.c')
-rw-r--r--platform/linux-dpdk/odp_packet_dpdk.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/platform/linux-dpdk/odp_packet_dpdk.c b/platform/linux-dpdk/odp_packet_dpdk.c
index 472cb1b4a..2b6a8c8a3 100644
--- a/platform/linux-dpdk/odp_packet_dpdk.c
+++ b/platform/linux-dpdk/odp_packet_dpdk.c
@@ -171,6 +171,11 @@ int setup_pkt_dpdk(pkt_dpdk_t * const pkt_dpdk, const char *netdev,
}
rte_eth_promiscuous_enable(portid);
+ /* Some DPDK PMD vdev like pcap do not support promisc mode change. Use
+ * system call for them. */
+ if (!rte_eth_promiscuous_get(portid))
+ pkt_dpdk->vdev_sysc_promisc = 1;
+
rte_eth_allmulticast_enable(portid);
return 0;
}