net/pcap: fix infinite Rx with large files
authorFerruh Yigit <ferruh.yigit@intel.com>
Thu, 4 Feb 2021 16:51:03 +0000 (16:51 +0000)
committerFerruh Yigit <ferruh.yigit@intel.com>
Thu, 4 Feb 2021 17:19:37 +0000 (18:19 +0100)
commitf62490e64d60cb564240721d55f8b51d2bd719a9
tree1c5d501657c7692e26dcee38c9836dfcc2221a11
parentcec222d6e55d9bd15eff7fbbf45464c0c6a941c0
net/pcap: fix infinite Rx with large files

Packet forwarding is not working when infinite Rx feature is used with
large .pcap files that has high number of packets.

The problem is number of allocated mbufs are less than the infinite Rx
ring size, and all mbufs consumed to fill the ring, so there is no mbuf
left for forwarding.

Current logic can not detect that infinite Rx ring is not filled
completely and no more mbufs left, and setup continues which leads
silent fail on packet forwarding.

There isn't much can be done when there is not enough mbuf for the given
.pcap file, so additional checks added to detect the case and fail
explicitly with an error log.

Bugzilla ID: 595
Fixes: a3f5252e5cbd ("net/pcap: enable infinitely Rx a pcap file")
Cc: stable@dpdk.org
Reported-by: Cian Ferriter <cian.ferriter@intel.com>
Signed-off-by: Ferruh Yigit <ferruh.yigit@intel.com>
Acked-by: Cian Ferriter <cian.ferriter@intel.com>
drivers/net/pcap/rte_eth_pcap.c