IB/uverbs: Add more fields to IPv4 flow specification
authorMaor Gottlieb <maorg@mellanox.com>
Tue, 30 Aug 2016 13:58:33 +0000 (16:58 +0300)
committerDoug Ledford <dledford@redhat.com>
Fri, 7 Oct 2016 20:54:18 +0000 (16:54 -0400)
Add the following fields to IPv4 flow filter specification:
1. Type of Service
2. Time to Live
3. Flags
4. Protocol

Signed-off-by: Maor Gottlieb <maorg@mellanox.com>
Reviewed-by: Sagi Grimberg <sagi@grimberg.me>
Signed-off-by: Leon Romanovsky <leon@kernel.org>
Signed-off-by: Doug Ledford <dledford@redhat.com>
include/rdma/ib_verbs.h
include/uapi/rdma/ib_user_verbs.h

index 4570d8844f63b18af84934c08e098ecde9d3f5ef..990220b757f0c7ee78c55a1fc487a85033c1e248 100644 (file)
@@ -1648,9 +1648,20 @@ struct ib_flow_spec_ib {
        struct ib_flow_ib_filter mask;
 };
 
+/* IPv4 header flags */
+enum ib_ipv4_flags {
+       IB_IPV4_DONT_FRAG = 0x2, /* Don't enable packet fragmentation */
+       IB_IPV4_MORE_FRAG = 0X4  /* For All fragmented packets except the
+                                   last have this flag set */
+};
+
 struct ib_flow_ipv4_filter {
        __be32  src_ip;
        __be32  dst_ip;
+       u8      proto;
+       u8      tos;
+       u8      ttl;
+       u8      flags;
        /* Must be last */
        u8      real_sz[0];
 };
index a9ebb477dc77338691d0a2e17ab4012aa935265f..804f086835c6da00c8e1c88bb3abcb3d8575b635 100644 (file)
@@ -848,6 +848,10 @@ struct ib_uverbs_flow_spec_eth {
 struct ib_uverbs_flow_ipv4_filter {
        __be32 src_ip;
        __be32 dst_ip;
+       __u8    proto;
+       __u8    tos;
+       __u8    ttl;
+       __u8    flags;
 };
 
 struct ib_uverbs_flow_spec_ipv4 {