Re: [PATCH rdma-next 00/27] Flow actions to mutate packets

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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




[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Photo]     [Yosemite News]     [Yosemite Photos]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux