Hi Adrien, Friday, July 13, 2018 12:41 PM, Adrien Mazarguil: > Subject: [PATCH v2 0/6] net/mlx5: add support for switch flow rules > > This series adds support for switch flow rules, that is, rte_flow rules > applied > to mlx5 devices at the switch level. > > It allows applications to offload traffic redirection between DPDK ports in > hardware, while optionally modifying it (e.g. performing encap/decap). > > For this to work, involved DPDK ports must be part of the same switch > domain, as is the case with port representors, and the transfer attribute > must be requested on flow rules. > > Also since the mlx5 switch is controlled through Netlink instead of Verbs, and > given how tedious formatting Netlink messages is, a new dependency is > added to mlx5: libmnl. See relevant patch.
There are some checkpatch[1] warning, but those are safe to ignore. Adrien, one thing which is missing is a documentation update for mlx5 doc on the new dependency of libmnl. Just like rdma-core: how to get it, how to install it, version required.. I won't postpone the series acceptance due to this (since I want to avoid big changes after the rc2), but we must have such doc before 18.08 release. Series applied to next-net-mlx, thanks! [1] ### net/mlx5: add framework for switch flow rules ERROR:COMPLEX_MACRO: Macros with complex values should be enclosed in parentheses #307: FILE: drivers/net/mlx5/mlx5_nl_flow.c:60: +#define PATTERN_COMMON \ + ITEM_VOID, ACTIONS ERROR:COMPLEX_MACRO: Macros with complex values should be enclosed in parentheses #309: FILE: drivers/net/mlx5/mlx5_nl_flow.c:62: +#define ACTIONS_COMMON \ + ACTION_VOID, END total: 2 errors, 0 warnings, 0 checks, 537 lines checked ### net/mlx5: add fate actions to switch flow rules ERROR:COMPLEX_MACRO: Macros with complex values should be enclosed in parentheses #55: FILE: drivers/net/mlx5/mlx5_nl_flow.c:68: +#define ACTIONS_FATE \ + ACTION_PORT_ID, ACTION_DROP ERROR:ASSIGN_IN_IF: do not use assignment in if condition #136: FILE: drivers/net/mlx5/mlx5_nl_flow.c:277: + if (!mnl_attr_put_check(buf, size, TCA_MIRRED_PARMS, ERROR:ASSIGN_IN_IF: do not use assignment in if condition #159: FILE: drivers/net/mlx5/mlx5_nl_flow.c:300: + if (!mnl_attr_put_check(buf, size, TCA_GACT_PARMS, total: 3 errors, 0 warnings, 0 checks, 134 lines checked ### net/mlx5: add VLAN item and actions to switch flow rules ERROR:ASSIGN_IN_IF: do not use assignment in if condition #367: FILE: drivers/net/mlx5/mlx5_nl_flow.c:930: + if (!mnl_attr_put_check(buf, size, TCA_VLAN_PARMS, total: 1 errors, 0 warnings, 0 checks, 358 lines checked > > v2 changes: > > - Mostly compilation fixes for missing Netlink definitions on older systems. > - Reduced stack consumption. > - Adapted series to rely on mlx5_dev_to_port_id() instead of > mlx5_dev_to_domain_id(). > - See relevant patches for more information. > > Adrien Mazarguil (6): > net/mlx5: lay groundwork for switch offloads > net/mlx5: add framework for switch flow rules > net/mlx5: add fate actions to switch flow rules > net/mlx5: add L2-L4 pattern items to switch flow rules > net/mlx5: add VLAN item and actions to switch flow rules > net/mlx5: add port ID pattern item to switch flow rules > > drivers/net/mlx5/Makefile | 142 ++++ > drivers/net/mlx5/mlx5.c | 32 + > drivers/net/mlx5/mlx5.h | 28 + > drivers/net/mlx5/mlx5_flow.c | 111 +++ > drivers/net/mlx5/mlx5_nl_flow.c | 1247 > ++++++++++++++++++++++++++++++++++ > mk/rte.app.mk | 2 +- > 6 files changed, 1561 insertions(+), 1 deletion(-) create mode 100644 > drivers/net/mlx5/mlx5_nl_flow.c > > -- > 2.11.0