This commit addresses a case of RSS and non RSS flows mixture. In the corrupted code, if a non-RSS flow is destroyed, it has an eBPF map index 0 (initialized upon flow creation). This might unintentionally remove RSS entry 0 from eBPF map. To fix this issue, add an offset to the real index during a KEY_CMD_GET operation, and subtract this offset during a KEY_CMD_RELEASE operation, in order to restore the real index. Thus, if a non RSS flow is falsely trying to release map entry 0 - The offset subtraction will calculate the real map index as an out-of-range value, and the release operation will be silently ignored. Fixes: 036d721a8229 ("net/tap: implement RSS using eBPF") Signed-off-by: Ophir Munk <ophirmu@mellanox.com> Acked-by: Pascal Mazon <pascal.mazon@6wind.com>
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
Description
Languages
C
99.1%
Meson
0.5%
Python
0.2%
Shell
0.1%