[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <AM0PR05MB44033B0E72CC4FF5B4EE27F0D22F0@AM0PR05MB4403.eurprd05.prod.outlook.com>
Date: Mon, 30 Jul 2018 17:37:05 +0000
From: Mark Bloch <markb@...lanox.com>
To: Jason Gunthorpe <jgg@...lanox.com>,
Leon Romanovsky <leon@...nel.org>
CC: Doug Ledford <dledford@...hat.com>,
Leon Romanovsky <leonro@...lanox.com>,
RDMA mailing list <linux-rdma@...r.kernel.org>,
"Guy Levi(SW)" <guyle@...lanox.com>,
Or Gerlitz <ogerlitz@...lanox.com>,
Saeed Mahameed <saeedm@...lanox.com>,
linux-netdev <netdev@...r.kernel.org>
Subject: Re: [PATCH rdma-next 00/27] Flow actions to mutate packets
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@...lanox.com>
>>
>> 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
Powered by blists - more mailing lists