numam-dpdk/drivers/net/tap
Ophir Munk 2ef1c0da89 net/tap: fix isolation mode toggling
Running testpmd command "flow isolae <port> 0" (i.e. disabling flow
isolation) followed by command "flow isolate <port> 1" (i.e. enabling
flow isolation) may result in a TAP error:
PMD: Kernel refused TC filter rule creation (17): File exists

Root cause analysis: when disabling flow isolation we keep the local
rule to redirect packets on TX (TAP_REMOTE_TX index) while we add it
again when enabling flow isolation. As a result this rule is added
two times in a row which results in "File exists" error.
The fix is to identify the "File exists" error and silently ignore it.

Another issue occurs when enabling isolation mode several times in a
row in which case the same tc rules are added consecutively and
rte_flow structs are added to a linked list before removing the
previous rte_flow structs.
The fix is to act upon isolation mode command only when there is a
change from "0" to "1" (or vice versa).

Fixes: f503d26948 ("net/tap: support flow API isolated mode")
Cc: stable@dpdk.org

Reviewed-by: Raslan Darawsheh <rasland@mellanox.com>
Signed-off-by: Ophir Munk <ophirmu@mellanox.com>
Acked-by: Keith Wiles <keith.wiles@intel.com>
2018-05-17 16:01:05 +02:00
..
Makefile net/tap: support Rx interrupt 2018-01-29 10:45:20 +01:00
rte_eth_tap.c net/tap: add default name to tun 2018-05-14 22:32:23 +01:00
rte_eth_tap.h net/tap: convert to dynamic logging 2018-04-27 18:00:59 +01:00
rte_pmd_tap_version.map net/tap: add TUN/TAP device PMD 2017-01-17 19:40:50 +01:00
tap_bpf_api.c align SPDX Mellanox copyrights 2018-04-11 01:47:47 +02:00
tap_bpf_insns.h align SPDX Mellanox copyrights 2018-04-11 01:47:47 +02:00
tap_bpf_program.c net/tap: report on supported RSS hash functions 2018-05-14 22:31:51 +01:00
tap_bpf.h align SPDX Mellanox copyrights 2018-04-11 01:47:47 +02:00
tap_flow.c net/tap: fix isolation mode toggling 2018-05-17 16:01:05 +02:00
tap_flow.h align SPDX Mellanox copyrights 2018-04-11 01:47:47 +02:00
tap_intr.c net/tap: convert to dynamic logging 2018-04-27 18:00:59 +01:00
tap_log.h net/tap: convert to dynamic logging 2018-04-27 18:00:59 +01:00
tap_netlink.c net/tap: convert to dynamic logging 2018-04-27 18:00:59 +01:00
tap_netlink.h align SPDX Mellanox copyrights 2018-04-11 01:47:47 +02:00
tap_rss.h net/tap: report on supported RSS hash functions 2018-05-14 22:31:51 +01:00
tap_tcmsgs.c net/tap: convert to dynamic logging 2018-04-27 18:00:59 +01:00
tap_tcmsgs.h align SPDX Mellanox copyrights 2018-04-11 01:47:47 +02:00