Go to file
Somnath Kotur 03c8f2fe11 net/bnxt: detect bad opaque in Rx completion
There is a rare hardware bug that can cause a bad opaque value in the RX
or TPA start completion. When this happens, the hardware may have used the
same buffer twice for 2 Rx packets.  In addition, the driver might also
crash later using the bad opaque as an index into the ring.

The Rx opaque value is predictable and is always monotonically increasing.
The workaround is to keep track of the expected next opaque value and
compare it with the one returned by hardware during RX and TPA start
completions. If they miscompare, log it, discard the completion,
schedule a ring reset and move on to the next one.

Fixes: 0958d8b643 ("net/bnxt: support LRO")
Cc: stable@dpdk.org

Signed-off-by: Somnath Kotur <somnath.kotur@broadcom.com>
Reviewed-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
2021-06-08 19:17:25 +02:00
.ci build: update minimum required Meson version 2021-04-16 18:51:51 +02:00
.github/workflows version: 21.08-rc0 2021-05-21 20:07:04 +02:00
app test: remove strict timing requirements some tests 2021-06-03 18:08:57 +02:00
buildtools build: check symbol maps in developer mode 2021-05-19 12:51:41 +02:00
config config/arm: add Qualcomm Centriq 2400 2021-05-19 12:08:42 +02:00
devtools devtools: check %l format specifier 2021-05-21 15:41:54 +02:00
doc net/bnxt: add AVX2 RX/Tx 2021-06-07 23:36:13 +02:00
drivers net/bnxt: detect bad opaque in Rx completion 2021-06-08 19:17:25 +02:00
examples examples/l3fwd-power: fix empty poll thresholds 2021-05-19 08:41:20 +02:00
kernel lib: remove librte_ prefix from directory names 2021-04-21 14:04:09 +02:00
lib malloc: fix size annotation for NUMA-aware realloc 2021-06-11 11:03:38 +02:00
license lib: remove librte_ prefix from directory names 2021-04-21 14:04:09 +02:00
usertools usertools: add Intel DLB device binding 2021-05-19 11:49:48 +02:00
.editorconfig doc: add Meson coding style to contributors guide 2021-04-21 14:04:09 +02:00
.gitattributes improve git diff 2016-11-13 15:25:12 +01:00
.gitignore doc: add flow API features tables 2021-05-18 19:06:56 +02:00
.travis.yml version: 21.08-rc0 2021-05-21 20:07:04 +02:00
ABI_VERSION version: 21.08-rc0 2021-05-21 20:07:04 +02:00
MAINTAINERS devtools: check flow API doc tables 2021-05-18 19:06:56 +02:00
Makefile build: create dummy Makefile 2020-09-07 23:51:57 +02:00
meson_options.txt lib: allow disabling optional libraries 2021-04-21 14:17:29 +02:00
meson.build lib: remove librte_ prefix from directory names 2021-04-21 14:04:09 +02:00
README license: introduce SPDX identifiers 2018-01-04 22:41:38 +01:00
VERSION version: 21.08-rc0 2021-05-21 20:07:04 +02:00

DPDK is a set of libraries and drivers for fast packet processing.
It supports many processor architectures and both FreeBSD and Linux.

The DPDK uses the Open Source BSD-3-Clause license for the core libraries
and drivers. The kernel components are GPL-2.0 licensed.

Please check the doc directory for release notes,
API documentation, and sample application information.

For questions and usage discussions, subscribe to: users@dpdk.org
Report bugs and issues to the development mailing list: dev@dpdk.org