aboutsummaryrefslogtreecommitdiff
path: root/platform/linux-dpdk/odp_packet_dpdk.c
diff options
context:
space:
mode:
authorMaxim Uvarov <maxim.uvarov@linaro.org>2015-06-08 10:07:22 +0300
committerZoltan Kiss <zoltan.kiss@linaro.org>2015-06-09 19:34:50 +0100
commit19121fd26494c136b3ec5734dccd26abc0751335 (patch)
treeb0c1a106c2b3ca8a35f2e714e6eb138efa6ac640 /platform/linux-dpdk/odp_packet_dpdk.c
parent3000df7d88b57af6ed2c1c2b383e1966818d556f (diff)
dpdk: pktio implement promisc mode on vdevs
DPDK PMD vdev like pcap does not support switching promisc mode. Use system calls for corresponding devices. Signed-off-by: Maxim Uvarov <maxim.uvarov@linaro.org> Signed-off-by: Zoltan Kiss <zoltan.kiss@linaro.org>
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;
}