From: Leon Romanovsky <leonro@xxxxxxxxxxxx> This series is based on previously sent "Flow actions to mutate packets" https://patchwork.kernel.org/project/linux-rdma/list/?series=12117 ------------------------------------------------------------------- >From Mark, This series adds the ability to attach recently added flow actions to flow steering rules: - modify header - packet reformat In order to attach a flow action to a steering rule user first needs to create a flow action and then he should pass it as a spec during the ibv_create_flow() call. Flow actions can be used when not operating in none SR-iOV environment where the PF is connected to a software switch and we want to offload some operation to be done by the hardware. With those feature we can support vxlan encap/decap, NAT, routing, etc without the need to use E-Switch/SR-iOV configuration. Patch 1 - When moving to/from switchdeev mode we need to update the capabilities reported by the FW as those may change as we may create a flow table with encap/decap support in the FDB. Patch 2 - Exposes NIC TX steering table so a user can create an egress steering rule. Patches 3, 5 and 7 - add the ability to pass flow action as a argument when using verbs API to create steering rules. Patches 4 and 6 - Tweak the creation of the NIC RX/TX flow tables so steering rule which do packet reformat/decap actions can be inserted into them. Thanks Mark Bloch (6): RDMA/mlx5: Add NIC TX steering support RDMA/mlx5: Enable attaching modify header to steering flows RDMA/mlx5: Enable decap and packet reformat on flow tables RDMA/mlx5: Enable attaching DECAP action to steering flows RDMA/mlx5: Enable reformat on NIC RX if supported RDMA/mlx5: Enable attaching packet reformat action to steering flows drivers/infiniband/hw/mlx5/main.c | 71 +++++++++++++++++++++++++++++------- drivers/infiniband/hw/mlx5/mlx5_ib.h | 1 + 2 files changed, 58 insertions(+), 14 deletions(-) -- 2.14.4