public inbox for netdev@vger.kernel.org 
 help / color / mirror / Atom feed
From: Leon Romanovsky <leon@kernel•org>
To: Jason Gunthorpe <jgg@ziepe•ca>
Cc: Doug Ledford <dledford@redhat•com>,
	RDMA mailing list <linux-rdma@vger•kernel.org>,
	Ariel Levkovich <lariel@mellanox•com>,
	Mark Bloch <markb@mellanox•com>,
	Or Gerlitz <ogerlitz@mellanox•com>,
	Saeed Mahameed <saeedm@mellanox•com>,
	linux-netdev <netdev@vger•kernel.org>
Subject: Re: [PATCH rdma-next v1 00/15] Flow actions to mutate packets
Date: Wed, 5 Sep 2018 08:14:58 +0300	[thread overview]
Message-ID: <20180905051458.GD2977@mtr-leonro.mtl.com> (raw)
In-Reply-To: <20180904221205.GB3895@ziepe.ca>

[-- Attachment #1: Type: text/plain, Size: 6666 bytes --]

On Tue, Sep 04, 2018 at 04:12:05PM -0600, Jason Gunthorpe wrote:
> On Tue, Aug 28, 2018 at 02:18:39PM +0300, Leon Romanovsky wrote:
> > From: Leon Romanovsky <leonro@mellanox•com>
> >
> > >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.
> >
> > The first 10 patches refactor mlx5_core code, rename internal structures
> > to better reflect their operation and export needed functions so the
> > RDMA side can allocate the action.
> >
> > The last 5 patches expose via the IOCTL infrastructure mlx5_ib methods
> > which do the actual allocation of resources and return an handle to the
> > user. A user of this API is expected to know how to work with the
> > device's spec as the input to those function is HW depended.
> >
> > An example usage of the modify header action is routing, A user can
> > create an action which edits the L2 header and decrease the TTL.
> >
> > An example usage of the packet reformat action is VXLAN encap/decap
> > which is done by the HW.
> >
> > Changelog:
> >  v0 -> v1:
> >   * Patch 1: Addressed Saeed's comments and simplified the logic.
> >   * Patch 2: Changed due to changes in patch 1.
> >
> >  Split the 27 patch series into 3, this is the first one
> >  which just lets the user create flow action.
> >  Other than that styling fixes mainly in the RDMA patches
> >  to make sure 80 chars limit isn't exceeded.
> >
> >  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
> >
> > Mark Bloch (15):
> >   net/mlx5: Cleanup flow namespace getter switch logic
> >   net/mlx5: Add proper NIC TX steering flow tables support
> >   net/mlx5: Export modify header alloc/dealloc functions
> >   net/mlx5: Add support for more namespaces when allocating modify
> >     header
> >   net/mlx5: Break encap/decap into two separated flow table creation
> >     flags
> >   net/mlx5: Move header encap type to IFC header file
> >   {net, RDMA}/mlx5: Rename encap to reformat packet
> >   net/mlx5: Expose new packet reformat capabilities
> >   net/mlx5: Pass a namespace for packet reformat ID allocation
> >   net/mlx5: Export packet reformat alloc/dealloc functions
> >   RDMA/uverbs: Add UVERBS_ATTR_CONST_IN to the specs language
> >   RDMA/mlx5: Add a new flow action verb - modify header
> >   RDMA/uverbs: Add generic function to fill in flow action object
> >   RDMA/mlx5: Add new flow action verb - packet reformat
> >   RDMA/mlx5: Extend packet reformat verbs
> >
> >  drivers/infiniband/core/uverbs_ioctl.c             |  23 ++
> >  .../infiniband/core/uverbs_std_types_flow_action.c |   7 +-
> >  drivers/infiniband/hw/mlx5/devx.c                  |   6 +-
> >  drivers/infiniband/hw/mlx5/flow.c                  | 301 +++++++++++++++++++++
> >  drivers/infiniband/hw/mlx5/main.c                  |   3 +
> >  drivers/infiniband/hw/mlx5/mlx5_ib.h               |  19 +-
> >  drivers/net/ethernet/mellanox/mlx5/core/cmd.c      |   8 +-
> >  .../mellanox/mlx5/core/diag/fs_tracepoint.h        |   2 +-
> >  drivers/net/ethernet/mellanox/mlx5/core/en_tc.c    |  51 ++--
> >  drivers/net/ethernet/mellanox/mlx5/core/eswitch.c  |   2 +-
> >  .../ethernet/mellanox/mlx5/core/eswitch_offloads.c |   9 +-
> >  drivers/net/ethernet/mellanox/mlx5/core/fs_cmd.c   |  87 +++---
> >  drivers/net/ethernet/mellanox/mlx5/core/fs_core.c  |  73 +++--
> >  .../net/ethernet/mellanox/mlx5/core/mlx5_core.h    |  12 +-
> >  include/linux/mlx5/device.h                        |   6 +
> >  include/linux/mlx5/fs.h                            |  20 +-
> >  include/linux/mlx5/mlx5_ifc.h                      |  70 +++--
> >  include/rdma/uverbs_ioctl.h                        |  40 +++
> >  include/rdma/uverbs_std_types.h                    |  12 +
> >  include/uapi/rdma/mlx5_user_ioctl_cmds.h           |  18 ++
> >  include/uapi/rdma/mlx5_user_ioctl_verbs.h          |  12 +
> >  21 files changed, 638 insertions(+), 143 deletions(-)
>
> This looks OK to me, can you make the shared commit please?

Thanks, I pushed to mlx5-next

50acec06f392 net/mlx5: Export packet reformat alloc/dealloc functions
31ca3648f01b net/mlx5: Pass a namespace for packet reformat ID allocation
bea4e1f6c6c5 net/mlx5: Expose new packet reformat capabilities
60786f0987c0 {net, RDMA}/mlx5: Rename encap to reformat packet
e0e7a3861b6c net/mlx5: Move header encap type to IFC header file
61444b458b01 net/mlx5: Break encap/decap into two separated flow table creation flags
c3c062f80665 net/mlx5: Add support for more namespaces when allocating modify header
90c1d1b8da67 net/mlx5: Export modify header alloc/dealloc functions
8ce78257965e net/mlx5: Add proper NIC TX steering flow tables support
2226dcb424bf net/mlx5: Cleanup flow namespace getter switch logic


>
> Thanks,
> Jason

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 801 bytes --]

  reply	other threads:[~2018-09-05  9:43 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-08-28 11:18 [PATCH rdma-next v1 00/15] Flow actions to mutate packets Leon Romanovsky
2018-08-28 11:18 ` [PATCH mlx5-next v1 01/15] net/mlx5: Cleanup flow namespace getter switch logic Leon Romanovsky
2018-08-28 11:18 ` [PATCH mlx5-next v1 02/15] net/mlx5: Add proper NIC TX steering flow tables support Leon Romanovsky
2018-08-28 11:18 ` [PATCH mlx5-next v1 03/15] net/mlx5: Export modify header alloc/dealloc functions Leon Romanovsky
2018-08-28 11:18 ` [PATCH mlx5-next v1 04/15] net/mlx5: Add support for more namespaces when allocating modify header Leon Romanovsky
2018-08-28 11:18 ` [PATCH mlx5-next v1 05/15] net/mlx5: Break encap/decap into two separated flow table creation flags Leon Romanovsky
2018-09-04 22:02   ` Jason Gunthorpe
2018-09-05  5:10     ` Leon Romanovsky
2018-09-05 16:38       ` Jason Gunthorpe
2018-09-05 18:11         ` Leon Romanovsky
2018-09-05 21:37           ` Or Gerlitz
2018-09-06  4:09             ` Leon Romanovsky
2018-09-06 16:13               ` Or Gerlitz
2018-08-28 11:18 ` [PATCH mlx5-next v1 06/15] net/mlx5: Move header encap type to IFC header file Leon Romanovsky
2018-08-28 11:18 ` [PATCH mlx5-next v1 07/15] {net, RDMA}/mlx5: Rename encap to reformat packet Leon Romanovsky
2018-08-28 11:18 ` [PATCH mlx5-next v1 08/15] net/mlx5: Expose new packet reformat capabilities Leon Romanovsky
2018-08-28 11:18 ` [PATCH mlx5-next v1 09/15] net/mlx5: Pass a namespace for packet reformat ID allocation Leon Romanovsky
2018-08-28 11:18 ` [PATCH mlx5-next v1 10/15] net/mlx5: Export packet reformat alloc/dealloc functions Leon Romanovsky
2018-08-28 11:18 ` [PATCH rdma-next v1 11/15] RDMA/uverbs: Add UVERBS_ATTR_CONST_IN to the specs language Leon Romanovsky
2018-08-28 11:18 ` [PATCH rdma-next v1 12/15] RDMA/mlx5: Add a new flow action verb - modify header Leon Romanovsky
2018-09-04 21:58   ` Jason Gunthorpe
2018-09-05  5:20     ` Leon Romanovsky
2018-09-05 16:38       ` Jason Gunthorpe
2018-09-05 18:02         ` Leon Romanovsky
2018-08-28 11:18 ` [PATCH rdma-next v1 13/15] RDMA/uverbs: Add generic function to fill in flow action object Leon Romanovsky
2018-08-28 11:18 ` [PATCH rdma-next v1 14/15] RDMA/mlx5: Add new flow action verb - packet reformat Leon Romanovsky
2018-08-28 11:18 ` [PATCH rdma-next v1 15/15] RDMA/mlx5: Extend packet reformat verbs Leon Romanovsky
2018-09-04 22:12 ` [PATCH rdma-next v1 00/15] Flow actions to mutate packets Jason Gunthorpe
2018-09-05  5:14   ` Leon Romanovsky [this message]
2018-09-05 21:29     ` Jason Gunthorpe

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20180905051458.GD2977@mtr-leonro.mtl.com \
    --to=leon@kernel$(echo .)org \
    --cc=dledford@redhat$(echo .)com \
    --cc=jgg@ziepe$(echo .)ca \
    --cc=lariel@mellanox$(echo .)com \
    --cc=linux-rdma@vger$(echo .)kernel.org \
    --cc=markb@mellanox$(echo .)com \
    --cc=netdev@vger$(echo .)kernel.org \
    --cc=ogerlitz@mellanox$(echo .)com \
    --cc=saeedm@mellanox$(echo .)com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox