2ef1c0da89
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:
|
||
---|---|---|
.. | ||
Makefile | ||
rte_eth_tap.c | ||
rte_eth_tap.h | ||
rte_pmd_tap_version.map | ||
tap_bpf_api.c | ||
tap_bpf_insns.h | ||
tap_bpf_program.c | ||
tap_bpf.h | ||
tap_flow.c | ||
tap_flow.h | ||
tap_intr.c | ||
tap_log.h | ||
tap_netlink.c | ||
tap_netlink.h | ||
tap_rss.h | ||
tap_tcmsgs.c | ||
tap_tcmsgs.h |