This series add support for the flow API in tap PMD. It enables filtering specific packets incoming on the tap netdevice, to process only desired ones. Under the hood, it uses kernel TC (traffic control), which takes place very early in the stack, and supports most common pattern items and actions defined in the flow API.
v6 changes: - fix compilation issue on i686 (wrong cast for rte flow handle) v5 changes: - rebase after adrien's patches on Tx poll and Rx signaling - better spaces for comments in rte_eth_tap.h v4 changes: - rebase on top of "net/tap: add additional management ops" series - fix a few netlink doxygen comments - rename tap.h -> rte_eth_tap.h - flush flow rules only when applicable v3 changes: - vlan patterns enabled depending on running kernel (4.9+) - update doc/guides/nics/tap.rst for Flow API support - rebase on top of "net/tap: add additional management ops" series v2 changes: - support compilation on kernels < 4.2 (where flower support appeared) - set whitespaces in tap.h - remove unnecessary goto Pascal Mazon (4): net/tap: move private elements to external header net/tap: add preliminary support for rte_flow net/tap: add netlink back-end for flow API net/tap: add basic flow API patterns and actions doc/guides/nics/features/tap.ini | 1 + doc/guides/nics/tap.rst | 23 + drivers/net/tap/Makefile | 44 ++ drivers/net/tap/rte_eth_tap.c | 101 ++-- drivers/net/tap/rte_eth_tap.h | 80 +++ drivers/net/tap/tap_flow.c | 1070 ++++++++++++++++++++++++++++++++++++++ drivers/net/tap/tap_flow.h | 58 +++ drivers/net/tap/tap_netlink.c | 367 +++++++++++++ drivers/net/tap/tap_netlink.h | 69 +++ drivers/net/tap/tap_tcmsgs.c | 378 ++++++++++++++ drivers/net/tap/tap_tcmsgs.h | 63 +++ 11 files changed, 2219 insertions(+), 35 deletions(-) create mode 100644 drivers/net/tap/rte_eth_tap.h create mode 100644 drivers/net/tap/tap_flow.c create mode 100644 drivers/net/tap/tap_flow.h create mode 100644 drivers/net/tap/tap_netlink.c create mode 100644 drivers/net/tap/tap_netlink.h create mode 100644 drivers/net/tap/tap_tcmsgs.c create mode 100644 drivers/net/tap/tap_tcmsgs.h -- 2.12.0.306.g4a9b9b3