IB/core: Introduce driver QP type
authorMoni Shoua <monis@mellanox.com>
Tue, 2 Jan 2018 14:19:30 +0000 (16:19 +0200)
committerJason Gunthorpe <jgg@mellanox.com>
Mon, 8 Jan 2018 18:38:50 +0000 (11:38 -0700)
Vendors can implement type of QPs that are not described in the
InfiniBand specification. To still be able to use the IB/core layer
services (e.g. user object management) without tainting this layer with
driver proprietary logic, a new QP type is added - IB_QPT_DRIVER. This
will be a general QP type that the core layer doesn't know about its true nature.
When a command like create_qp() is passed to a hardware driver the extra
data that is required is taken from the driver channel.
Downstream patches from this series will use that QP type in the mlx5
driver.

Signed-off-by: Moni Shoua <monis@mellanox.com>
Reviewed-by: Yishai Hadas <yishaih@mellanox.com>
Signed-off-by: Leon Romanovsky <leon@kernel.org>
Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
include/rdma/ib_verbs.h

index 60c3268..e44a8ad 100644 (file)
@@ -1082,6 +1082,7 @@ enum ib_qp_type {
        IB_QPT_XRC_INI = 9,
        IB_QPT_XRC_TGT,
        IB_QPT_MAX,
+       IB_QPT_DRIVER = 0xFF,
        /* Reserve a range for qp types internal to the low level driver.
         * These qp types will not be visible at the IB core layer, so the
         * IB_QPT_MAX usages should not be affected in the core layer