On 7/30/2018 10:10 AM, Jason Gunthorpe wrote: > On Sun, Jul 29, 2018 at 03:58:38PM +0300, Leon Romanovsky wrote: >> From: Leon Romanovsky <leonro@xxxxxxxxxxxx> >> >> Hi, >> >> This is PATCH variant of RFC posted in previous week to the ML. >> https://patchwork.ozlabs.org/cover/944184/ >> >> Changelog: >> RFC -> v0: >> * Patch 1 a new patch which refactors the logic >> when getting a flow namespace. >> * Patch 2 was split into two. >> * Patch 3: Fixed a typo in commit message >> * Patch 5: Updated commit message >> * Patch 7: Updated commit message >> Renamed: >> - MLX5_FLOW_CONTEXT_ACTION_PACKET_REFORMAT_ID to >> MLX5_FLOW_CONTEXT_ACTION_PACKET_REFORMAT >> - packet_reformat_id to reformat_id in struct mlx5_flow_act >> - packet_reformat_id to encap_id in struct mlx5_esw_flow_attr >> - packet_reformat_id to encap_id in struct mlx5e_encap_entry >> - PACKET_REFORMAT to REFORMAT when printing trace points >> * Patch 9: Updated commit message >> Updated function declaration in mlx5_core.h, could of lead >> to compile error on bisection. >> * Patch 11: Disallow egress rules insertion when in switchdev mode >> * Patch 12: A new patch to deal with passing enum values using >> the IOCTL infrastructure. >> * Patch 13: Use new enum value attribute when passing enum >> mlx5_ib_uapi_flow_table_type >> * Patch 15: Don't set encap flags on flow tables if in switchdev mode >> * Patch 17: Use new enum value attribute when passing enum >> mlx5_ib_uapi_flow_table_type and enum >> mlx5_ib_uapi_flow_action_packet_reformat_type >> * Patch 19: Allow creation of both >> MLX5_IB_UAPI_FLOW_ACTION_PACKET_REFORMAT_TYPE_L2_TO_L3_TUNNEL >> and MLX5_IB_UAPI_FLOW_ACTION_PACKET_REFORMAT_TYPE_L3_TUNNEL_TO_L2 packet >> reformat actions. >> * Patch 20: A new patch which allows attaching packet reformat >> actions to flow tables on NIC RX. >> >> Thanks >> >> From Mark: >> This series exposes the ability to create flow actions which can >> mutate packet headers. We do that by exposing two new verbs: >> * modify header - can change existing packet headers. packet >> * reformat - can encapsulate or decapsulate a packet. >> Once created a flow action must be attached to a steering >> rule for it to take effect. > > Mark, this got a bit big in terms of patch count, however most of the > patches fit on one screen and the overall line count isn't too bad. Yes, there is a lot of code refactoring inside mlx5 drivers but overall the code is very simple. The difference from the RFC is mainly renames and commit messages and the last 6 patches which add support for flow action to mlx5 create flow, that wasn't posted with the RFC as the mlx5 create flow code wasn't merged yet. > > Can this be split somehow? > It can be split into 3 series like this: Refactoring mlx5_core + rename + creation of flow actions: patch [01/27]: net/mlx5: Cleanup flow namespace getter switch logic patch [02/27]: net/mlx5: Add proper NIC TX steering flow tables support patch [03/27]: net/mlx5: Export modify header alloc/dealloc functions patch [04/27]: net/mlx5: Add support for more namespaces when allocating modify header patch [05/27]: net/mlx5: Break encap/decap into two separated flow table creation flags patch [06/27]: net/mlx5: Move header encap type to IFC header file patch [07/27]: {net, RDMA}/mlx5: Rename encap to reformat packet patch [08/27]: net/mlx5: Expose new packet reformat capabilities patch [09/27]: net/mlx5: Pass a namespace for packet reformat ID allocation patch [10/27]: net/mlx5: Export packet reformat alloc/dealloc functions patch [12/27]: RDMA/uverbs: Add UVERBS_ATTR_CONST_IN to the specs language patch [13/27]: RDMA/mlx5: Add a new flow action verb, modify header patch [16/27]: RDMA/uverbs: Add generic function to fill in flow action object patch [17/27]: RDMA/mlx5: Add new flow action verb, packet reformat patch [19/27]: RDMA/mlx5: Extend packet reformat verbs Enable attaching modify header and packet reformat flow actions via verbs create flow: patch [11/27]: RDMA/mlx5: Add NIC TX steering support patch [14/27]: RDMA/mlx5: Enable attaching modify header to steering flows patch [15/27]: RDMA/mlx5: Enable decap and packet reformat on flow tables patch [18/27]: RDMA/mlx5: Enable attaching DECAP action to steering flows patch [20/27]: RDMA/mlx5: Enable reformat on NIC RX if supported patch [21/27]: RDMA/mlx5: Enable attaching packet reformat action to steering flows Enable attaching modify header and packet reformat flow actions via mlx5 create flow: patch [22/27]: IB/uverbs: Add IDRs array attribute type to ioctl() interface patch [23/27]: RDMA/mlx5: Refactor flow action parsing to be more generic patch [24/27]: RDMA/mlx5: Refactor DEVX flow creation patch [25/27]: RDMA/mlx5: Add flow actions support to DEVX create flow patch [26/27]: RDMA/mlx5: Add NIC TX namespace when getting a flow table patch [27/27]: RDMA/mlx5: Allow creating a matcher for a NIC TX flow table > Thanks, > Jason > Mark -- To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html