IB/core: Expose RSS related capabilities
authorYishai Hadas <yishaih@mellanox.com>
Sun, 28 Aug 2016 08:28:43 +0000 (11:28 +0300)
committerDoug Ledford <dledford@redhat.com>
Fri, 7 Oct 2016 20:54:12 +0000 (16:54 -0400)
Expose RSS related capabilities, it includes both direct ones (i.e.
struct ib_rss_caps) and max_wq_type_rq which may be used in both
RSS and non RSS flows.

Specifically,
supported_qpts:
- QP types that support RSS on the device.

max_rwq_indirection_tables:
- Max number of receive work queue indirection tables that
  could be opened on the device.

max_rwq_indirection_table_size:
- Max size of a receive work queue indirection table.

max_wq_type_rq:
- Max number of work queues of receive type that
  could be opened on the device.

Signed-off-by: Yishai Hadas <yishaih@mellanox.com>
Signed-off-by: Leon Romanovsky <leon@kernel.org>
Signed-off-by: Doug Ledford <dledford@redhat.com>
include/rdma/ib_verbs.h

index 0a6c70895c8b954e582ab2a840dcd9a4cb7cbdad..d74c76bf76d33d838989534a10306ba28dfcc162 100644 (file)
@@ -261,6 +261,16 @@ struct ib_odp_caps {
        } per_transport_caps;
 };
 
+struct ib_rss_caps {
+       /* Corresponding bit will be set if qp type from
+        * 'enum ib_qp_type' is supported, e.g.
+        * supported_qpts |= 1 << IB_QPT_UD
+        */
+       u32 supported_qpts;
+       u32 max_rwq_indirection_tables;
+       u32 max_rwq_indirection_table_size;
+};
+
 enum ib_cq_creation_flags {
        IB_CQ_FLAGS_TIMESTAMP_COMPLETION   = 1 << 0,
        IB_CQ_FLAGS_IGNORE_OVERRUN         = 1 << 1,
@@ -318,6 +328,8 @@ struct ib_device_attr {
        struct ib_odp_caps      odp_caps;
        uint64_t                timestamp_mask;
        uint64_t                hca_core_clock; /* in KHZ */
+       struct ib_rss_caps      rss_caps;
+       u32                     max_wq_type_rq;
 };
 
 enum ib_mtu {