diff options
author | Matias Elo <matias.elo@nokia.com> | 2020-06-29 10:54:38 +0300 |
---|---|---|
committer | Matias Elo <matias.elo@nokia.com> | 2020-06-30 08:33:20 +0300 |
commit | bd75b10924e6df74089d27482dd68bdef33eaf83 (patch) | |
tree | 224e06b94a2024683299995e357b71409fd5cbab | |
parent | 11314a0b7585edec8f9956dd00d1bc12f4fe3210 (diff) |
linux-dpdk: pktio: fix setting promiscuous mode
Previously, calling odp_pktio_start() would always disable promiscuous
mode. Fix this by moving promiscuous mode check into odp_pktio_open().
Signed-off-by: Matias Elo <matias.elo@nokia.com>
Reported-by: Marian Beniac <marian.beniac@nokia.com>
-rw-r--r-- | platform/linux-dpdk/odp_packet_dpdk.c | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/platform/linux-dpdk/odp_packet_dpdk.c b/platform/linux-dpdk/odp_packet_dpdk.c index c9b71ff60..ba3f47b8f 100644 --- a/platform/linux-dpdk/odp_packet_dpdk.c +++ b/platform/linux-dpdk/odp_packet_dpdk.c @@ -715,6 +715,13 @@ static int setup_pkt_dpdk(odp_pktio_t pktio ODP_UNUSED, } pkt_dpdk->mtu = mtu + _ODP_ETHHDR_LEN; + /* Setup promiscuous mode and multicast */ + promisc_mode_check(pkt_dpdk); + if (pkt_dpdk->opt.multicast_enable) + rte_eth_allmulticast_enable(pkt_dpdk->port_id); + else + rte_eth_allmulticast_disable(pkt_dpdk->port_id); + for (i = 0; i < PKTIO_MAX_QUEUES; i++) { odp_ticketlock_init(&pkt_dpdk->rx_lock[i]); odp_ticketlock_init(&pkt_dpdk->tx_lock[i]); @@ -887,13 +894,6 @@ static int dpdk_start(pktio_entry_t *pktio_entry) if (dpdk_setup_eth_rx(pktio_entry, pkt_dpdk, &dev_info)) return -1; - /* Setup promiscuous mode and multicast */ - promisc_mode_check(pkt_dpdk); - if (pkt_dpdk->opt.multicast_enable) - rte_eth_allmulticast_enable(port_id); - else - rte_eth_allmulticast_disable(port_id); - /* Add callback for loopback interface */ if (pkt_dpdk->loopback) { unsigned int i; |