lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
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

Powered by Openwall GNU/*/Linux Powered by OpenVZ