When input only Rx interface argument 'rx_iface_in' provided, current
code assigns 'eth_null_rx' burst function by mistake and no packet
received as a result.
Like in following usage no packets received from physical interface:
"--vdev net_pcap0,rx_iface_in=eth0,tx_iface=eth0"

Fixing the burst function assignment when 'rx_iface_in' argument is used

Fixes: f14a94591504 ("net/pcap: remove Rx queue argument necessity")
Cc: [email protected]

Reported-by: Muthurajan Jayakumar <[email protected]>
Signed-off-by: Ferruh Yigit <[email protected]>
---
Cc: [email protected]
---
 drivers/net/pcap/rte_eth_pcap.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/net/pcap/rte_eth_pcap.c b/drivers/net/pcap/rte_eth_pcap.c
index da4988064a..057aa9dbfc 100644
--- a/drivers/net/pcap/rte_eth_pcap.c
+++ b/drivers/net/pcap/rte_eth_pcap.c
@@ -1416,7 +1416,8 @@ pmd_pcap_probe(struct rte_vdev_device *dev)
        devargs_all.is_rx_pcap =
                rte_kvargs_count(kvlist, ETH_PCAP_RX_PCAP_ARG) ? 1 : 0;
        devargs_all.is_rx_iface =
-               rte_kvargs_count(kvlist, ETH_PCAP_RX_IFACE_ARG) ? 1 : 0;
+               (rte_kvargs_count(kvlist, ETH_PCAP_RX_IFACE_ARG) +
+                rte_kvargs_count(kvlist, ETH_PCAP_RX_IFACE_IN_ARG)) ? 1 : 0;
        pcaps.num_of_queue = 0;
 
        devargs_all.is_tx_pcap =
-- 
2.26.2

Reply via email to