Re: [PATCH rdma-next 0/5] Add flow tag support to flow specification

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

 



On Wed, 2017-01-18 at 14:59 +0200, Leon Romanovsky wrote:
> Hi Doug,
> 
> The flow tag feature allows an application to request to add an
> action
> to tag all the packets that matches this rule.
> 
> The tag is a number that will came as a metadata with every packet in
> the CQE.
> 
> The tag rule == 0 is chosen as the default tag and application can
> use
> it in order to avoid the need to classify the packets that came with
> a
> tag while continuing to benefit from this tag mechanism.
> 
> struct definition:
> 
> struct ib_uverbs_flow_spec_action_tag {
>      union {
>           struct ib_uverbs_flow_spec_hdr hdr;
>           struct {
>               __u32 type;
>               __u16 size;
>               __u16 reserved;
>           };
>      };
>      __be32                   tag_id;
>      __u32                    reserved1;
> };
> 
> struct ib_uverbs_flow_spec {
>      union {
>           union {
>               struct ib_uverbs_flow_spec_hdr hdr;
>               struct {
>                    __u32 type;
>                    __u16 size;
>                    __u16 reserved;
>               };
>           };
>           struct ib_uverbs_flow_spec_eth     eth;
>           struct ib_uverbs_flow_spec_ipv4    ipv4;
>           struct ib_uverbs_flow_spec_tcp_udp tcp_udp;
>           struct ib_uverbs_flow_spec_ipv6    ipv6;
>           struct ib_uverbs_flow_spec_action_tag flow_tag;
>      };
> };
> 
> Where:
> 
> * type, size, reserved fields are identical to the rest of the
> * protocols,
>    and are used to identify the spec.
> * flow_tag is a spec of type 'action'
> * the ib_uverbs_flow_spec_hdr is identical to the rest of the specs.
> * tag_id - is the value of the stream defined by the specs.
> 
> Thanks,
> 	Moses
> 
> CC: Rony Efraim <ronye@xxxxxxxxxxxx>
> ----
> 
> Doug,
> I used this opportunity and fixed parse_flow_attr(..) return values.
> Adjusting this fix to this series minimizes chances of possible merge
> conflicts between different series.
> 
> This patchset was generated against commit
> f502d834950a ("net/mlx5: Activate support for 4K UARs") and it
> applies
> cleanly on k.o/for-4.11 branch.
> 
> Available in the "topic/flow-tag" topic branch of this git repo:
> git://git.kernel.org/pub/scm/linux/kernel/git/leon/linux-rdma.git
> 
> Or for browsing:
> https://git.kernel.org/cgit/linux/kernel/git/leon/linux-rdma.git/log/
> ?h=topic/flow-tag
> 
> Leon Romanovsky (1):
>   IB/mlx5: Replace ENOTSUPP usage with EOPNOTSUPP
> 
> Maor Gottlieb (1):
>   net/mlx5: Consolidate flow rules regardless their flow tag
> 
> Moses Reuben (3):
>   IB/core: Introduce flow tag specification
>   IB/uverbs: Add support for flow tag
>   IB/mlx5: Add flow tag support
> 
>  drivers/infiniband/core/uverbs.h                  |  1 +
>  drivers/infiniband/core/uverbs_cmd.c              | 35
> +++++++++++++++++++--
>  drivers/infiniband/hw/mlx5/main.c                 | 38
> +++++++++++++++++------
>  drivers/net/ethernet/mellanox/mlx5/core/fs_core.c | 12 +++++--
>  include/rdma/ib_verbs.h                           |  9 ++++++
>  include/uapi/rdma/ib_user_verbs.h                 | 13 ++++++++
>  6 files changed, 95 insertions(+), 13 deletions(-)

I looked through the API additions and they look reasonable to me
(meaning that if anyone else wants to implement tags on specific flows,
this API is appropriate for that, and if they want to do other things,
then this is not appropriate, but there is no restriction against other
action types in the enum, so extensibility is preserved).  Series
applied, thanks.

-- 
Doug Ledford <dledford@xxxxxxxxxx>
    GPG KeyID: B826A3330E572FDD
   
Key fingerprint = AE6B 1BDA 122B 23B4 265B  1274 B826 A333 0E57 2FDD

Attachment: signature.asc
Description: This is a digitally signed message part


[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