[0/6] net/mlx5: add support for switch flow rules

Message ID 20180627173355.4718-1-adrien.mazarguil@6wind.com (mailing list archive)
Headers
Series net/mlx5: add support for switch flow rules |

Message

Adrien Mazarguil June 27, 2018, 6:08 p.m. UTC
  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.

This series depends on Nelio's mlx5 flow engine rework ("net/mlx5: flow
rework" [1][2]) which must be applied first.

[1] https://patches.dpdk.org/project/dpdk/list/?series=268
[2] https://mails.dpdk.org/archives/dev/2018-June/105499.html

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       |    2 +
 drivers/net/mlx5/mlx5.c         |   32 +
 drivers/net/mlx5/mlx5.h         |   28 +
 drivers/net/mlx5/mlx5_flow.c    |  113 ++++
 drivers/net/mlx5/mlx5_nl_flow.c | 1126 ++++++++++++++++++++++++++++++++++
 mk/rte.app.mk                   |    2 +-
 6 files changed, 1302 insertions(+), 1 deletion(-)
 create mode 100644 drivers/net/mlx5/mlx5_nl_flow.c
  

Comments

NĂ©lio Laranjeiro June 28, 2018, 9:05 a.m. UTC | #1
On Wed, Jun 27, 2018 at 08:08:08PM +0200, Adrien Mazarguil wrote:
> 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.
> 
> This series depends on Nelio's mlx5 flow engine rework ("net/mlx5: flow
> rework" [1][2]) which must be applied first.
> 
> [1] https://patches.dpdk.org/project/dpdk/list/?series=268
> [2] https://mails.dpdk.org/archives/dev/2018-June/105499.html
> 
> 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       |    2 +
>  drivers/net/mlx5/mlx5.c         |   32 +
>  drivers/net/mlx5/mlx5.h         |   28 +
>  drivers/net/mlx5/mlx5_flow.c    |  113 ++++
>  drivers/net/mlx5/mlx5_nl_flow.c | 1126 ++++++++++++++++++++++++++++++++++
>  mk/rte.app.mk                   |    2 +-
>  6 files changed, 1302 insertions(+), 1 deletion(-)
>  create mode 100644 drivers/net/mlx5/mlx5_nl_flow.c
> 
> -- 
> 2.11.0

Acked-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com>