Go to file
Ophir Munk 54aad2f231 net/tap: fix eBPF handling of non-RSS flows
The eBPF classifier (section "cls_q" in tap_bpf_program.c) is tracing
marked packets in which skb->cb[1] contains an RSS queue number, and
redirects those packets to the matched queue.
It is expected that skb->cb[1] has been previously set with a valid RSS
queue number during an eBPF action (section "l3_l4" in tap_bpf_program.c).
However, for non-RSS flows, skb->cb[1] may contain a random unset value,
which could falsely be interpreted as a valid RSS queue.
To avoid this potential error, tap_bpf_program.c has been updated as
follows:
1. After calculating the RSS queue number, it is added a unique offset in
order to uniquely identify it as a valid RSS queue number.
2. After matching an RSS queue to a packet, skb->cb[1] is set to 0.

Fixes: cdc07e83bb ("net/tap: add eBPF program file")
Fixes: aabe70df73 ("net/tap: add eBPF bytes code")

Signed-off-by: Ophir Munk <ophirmu@mellanox.com>
Acked-by: Pascal Mazon <pascal.mazon@6wind.com>
2018-02-05 19:56:04 +01:00
app doc: fix DDP usage in testpmd 2018-02-05 13:42:25 +01:00
buildtools pmdinfogen: fix resource leak of file object 2018-02-06 01:15:14 +01:00
config config: replace Intel license headers with SPDX tags 2018-02-01 02:39:40 +01:00
devtools bb/turbo_sw: add software turbo driver 2018-01-19 01:44:25 +01:00
doc doc: update mlx required OFED version 2018-02-05 19:56:04 +01:00
drivers net/tap: fix eBPF handling of non-RSS flows 2018-02-05 19:56:04 +01:00
examples examples/vhost_scsi: drop unimplemented event index feature 2018-02-05 15:18:56 +01:00
lib vhost: remove pending IOTLB entry if miss request failed 2018-02-05 19:56:04 +01:00
license license: introduce SPDX identifiers 2018-01-04 22:41:38 +01:00
mk mk: fix external build 2018-02-05 23:39:04 +01:00
pkg version: 17.11.0 2017-11-15 19:00:28 +01:00
test test/bonding: assign non-zero MAC to null devices 2018-02-05 16:29:35 +01:00
usertools usertools/devbind: fix kernel module reporting 2018-02-06 02:18:45 +01:00
.gitattributes improve git diff 2016-11-13 15:25:12 +01:00
.gitignore devtools: add tags and cscope index generation 2017-04-30 12:57:04 +02:00
GNUmakefile license: use SPDX tag in root makefile 2018-01-04 22:41:38 +01:00
MAINTAINERS doc: add rawdev library guide and doxygen page 2018-01-31 15:42:58 +01:00
Makefile license: use SPDX tag in root makefile 2018-01-04 22:41:38 +01:00
meson_options.txt test: build app with meson as dpdk-test 2018-01-30 21:58:59 +01:00
meson.build build: detect micro-arch on ARM 2018-01-30 21:59:00 +01:00
README license: introduce SPDX identifiers 2018-01-04 22:41:38 +01: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