Message ID | 20220319170351.336731-2-yangx.jy@fujitsu.com (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | [1/2] IB/uverbs: Move enum ib_raw_packet_caps to uapi | expand |
On Sun, Mar 20, 2022 at 01:03:51AM +0800, Xiao Yang wrote: > Part of enum ib_device_cap_flags are used by ibv_query_device(3) > or ibv_query_device_ex(3), so we define them in > include/uapi/rdma/ib_user_verbs.h and only expose them to userspace. > > Signed-off-by: Xiao Yang <yangx.jy@fujitsu.com> > drivers/infiniband/core/uverbs_cmd.c | 6 +- > include/rdma/ib_verbs.h | 82 +++++++++++++++++++--------- > include/uapi/rdma/ib_user_verbs.h | 31 +++++++++++ > 3 files changed, 91 insertions(+), 28 deletions(-) > > diff --git a/drivers/infiniband/core/uverbs_cmd.c b/drivers/infiniband/core/uverbs_cmd.c > index 6b6393176b3c..ca1045c28fad 100644 > +++ b/drivers/infiniband/core/uverbs_cmd.c > @@ -337,7 +337,8 @@ static void copy_query_dev_fields(struct ib_ucontext *ucontext, > resp->hw_ver = attr->hw_ver; > resp->max_qp = attr->max_qp; > resp->max_qp_wr = attr->max_qp_wr; > - resp->device_cap_flags = lower_32_bits(attr->device_cap_flags); > + resp->device_cap_flags = lower_32_bits(attr->device_cap_flags & > + UVERBS_DEVICE_CAP_FLAGS_MASK); > resp->max_sge = min(attr->max_send_sge, attr->max_recv_sge); > resp->max_sge_rd = attr->max_sge_rd; > resp->max_cq = attr->max_cq; > @@ -3618,7 +3619,8 @@ static int ib_uverbs_ex_query_device(struct uverbs_attr_bundle *attrs) > > resp.timestamp_mask = attr.timestamp_mask; > resp.hca_core_clock = attr.hca_core_clock; > - resp.device_cap_flags_ex = attr.device_cap_flags; > + resp.device_cap_flags_ex = attr.device_cap_flags & > + UVERBS_DEVICE_CAP_FLAGS_MASK; > resp.rss_caps.supported_qpts = attr.rss_caps.supported_qpts; > resp.rss_caps.max_rwq_indirection_tables = > attr.rss_caps.max_rwq_indirection_tables; > diff --git a/include/rdma/ib_verbs.h b/include/rdma/ib_verbs.h > index e5455f6e0d82..54f0045942ca 100644 > +++ b/include/rdma/ib_verbs.h > @@ -219,22 +219,41 @@ enum rdma_link_layer { > IB_LINK_LAYER_ETHERNET, > }; > > +#define UVERBS_DEVICE_CAP_FLAGS_MASK 0x1427B67FFF This needs to be expressed as a | of constants > enum ib_device_cap_flags { > - IB_DEVICE_RESIZE_MAX_WR = (1 << 0), > - IB_DEVICE_BAD_PKEY_CNTR = (1 << 1), > - IB_DEVICE_BAD_QKEY_CNTR = (1 << 2), > - IB_DEVICE_RAW_MULTI = (1 << 3), > - IB_DEVICE_AUTO_PATH_MIG = (1 << 4), > - IB_DEVICE_CHANGE_PHY_PORT = (1 << 5), > - IB_DEVICE_UD_AV_PORT_ENFORCE = (1 << 6), > - IB_DEVICE_CURR_QP_STATE_MOD = (1 << 7), > - IB_DEVICE_SHUTDOWN_PORT = (1 << 8), > - /* Not in use, former INIT_TYPE = (1 << 9),*/ > - IB_DEVICE_PORT_ACTIVE_EVENT = (1 << 10), > - IB_DEVICE_SYS_IMAGE_GUID = (1 << 11), > - IB_DEVICE_RC_RNR_NAK_GEN = (1 << 12), > - IB_DEVICE_SRQ_RESIZE = (1 << 13), > - IB_DEVICE_N_NOTIFY_CQ = (1 << 14), > + IB_DEVICE_RESIZE_MAX_WR = > + IB_UVERBS_DEVICE_RESIZE_MAX_WR, > + IB_DEVICE_BAD_PKEY_CNTR = > + IB_UVERBS_DEVICE_BAD_PKEY_CNTR, > + IB_DEVICE_BAD_QKEY_CNTR = > + IB_UVERBS_DEVICE_BAD_QKEY_CNTR, > + IB_DEVICE_RAW_MULTI = > + IB_UVERBS_DEVICE_RAW_MULTI, > + IB_DEVICE_AUTO_PATH_MIG = > + IB_UVERBS_DEVICE_AUTO_PATH_MIG, > + IB_DEVICE_CHANGE_PHY_PORT = > + IB_UVERBS_DEVICE_CHANGE_PHY_PORT, > + IB_DEVICE_UD_AV_PORT_ENFORCE = > + IB_UVERBS_DEVICE_UD_AV_PORT_ENFORCE, > + IB_DEVICE_CURR_QP_STATE_MOD = > + IB_UVERBS_DEVICE_CURR_QP_STATE_MOD, > + IB_DEVICE_SHUTDOWN_PORT = > + IB_UVERBS_DEVICE_SHUTDOWN_PORT, > + /* > + * IB_DEVICE_INIT_TYPE = > + * IB_UVERBS_DEVICE_INIT_TYPE, (not in use) > + */ > + IB_DEVICE_PORT_ACTIVE_EVENT = > + IB_UVERBS_DEVICE_PORT_ACTIVE_EVENT, > + IB_DEVICE_SYS_IMAGE_GUID = > + IB_UVERBS_DEVICE_SYS_IMAGE_GUID, > + IB_DEVICE_RC_RNR_NAK_GEN = > + IB_UVERBS_DEVICE_RC_RNR_NAK_GEN, > + IB_DEVICE_SRQ_RESIZE = > + IB_UVERBS_DEVICE_SRQ_RESIZE, > + IB_DEVICE_N_NOTIFY_CQ = > + IB_UVERBS_DEVICE_N_NOTIFY_CQ, > > /* > * This device supports a per-device lkey or stag that can be > @@ -245,7 +264,8 @@ enum ib_device_cap_flags { > */ > IB_DEVICE_LOCAL_DMA_LKEY = (1 << 15), > /* Reserved, old SEND_W_INV = (1 << 16),*/ > - IB_DEVICE_MEM_WINDOW = (1 << 17), > + IB_DEVICE_MEM_WINDOW = > + IB_UVERBS_DEVICE_MEM_WINDOW, > /* > * Devices should set IB_DEVICE_UD_IP_SUM if they support > * insertion of UDP and TCP checksum on outgoing UD IPoIB > @@ -253,9 +273,11 @@ enum ib_device_cap_flags { > * incoming messages. Setting this flag implies that the > * IPoIB driver may set NETIF_F_IP_CSUM for datagram mode. > */ > - IB_DEVICE_UD_IP_CSUM = (1 << 18), > + IB_DEVICE_UD_IP_CSUM = > + IB_UVERBS_DEVICE_UD_IP_CSUM, > IB_DEVICE_UD_TSO = (1 << 19), > - IB_DEVICE_XRC = (1 << 20), > + IB_DEVICE_XRC = > + IB_UVERBS_DEVICE_XRC, > > /* > * This device supports the IB "base memory management extension", > @@ -266,13 +288,18 @@ enum ib_device_cap_flags { > * IB_WR_RDMA_READ_WITH_INV verb for RDMA READs that invalidate the > * stag. > */ > - IB_DEVICE_MEM_MGT_EXTENSIONS = (1 << 21), > + IB_DEVICE_MEM_MGT_EXTENSIONS = > + IB_UVERBS_DEVICE_MEM_MGT_EXTENSIONS, > IB_DEVICE_BLOCK_MULTICAST_LOOPBACK = (1 << 22), > - IB_DEVICE_MEM_WINDOW_TYPE_2A = (1 << 23), > - IB_DEVICE_MEM_WINDOW_TYPE_2B = (1 << 24), > - IB_DEVICE_RC_IP_CSUM = (1 << 25), > + IB_DEVICE_MEM_WINDOW_TYPE_2A = > + IB_UVERBS_DEVICE_MEM_WINDOW_TYPE_2A, > + IB_DEVICE_MEM_WINDOW_TYPE_2B = > + IB_UVERBS_DEVICE_MEM_WINDOW_TYPE_2B, > + IB_DEVICE_RC_IP_CSUM = > + IB_UVERBS_DEVICE_RC_IP_CSUM, > /* Deprecated. Please use IB_RAW_PACKET_CAP_IP_CSUM. */ > - IB_DEVICE_RAW_IP_CSUM = (1 << 26), > + IB_DEVICE_RAW_IP_CSUM = > + IB_UVERBS_DEVICE_RAW_IP_CSUM, > /* > * Devices should set IB_DEVICE_CROSS_CHANNEL if they > * support execution of WQEs that involve synchronization > @@ -280,16 +307,19 @@ enum ib_device_cap_flags { > * by hardware. > */ > IB_DEVICE_CROSS_CHANNEL = (1 << 27), > - IB_DEVICE_MANAGED_FLOW_STEERING = (1 << 29), > + IB_DEVICE_MANAGED_FLOW_STEERING = > + IB_UVERBS_DEVICE_MANAGED_FLOW_STEERING, > IB_DEVICE_INTEGRITY_HANDOVER = (1 << 30), > IB_DEVICE_ON_DEMAND_PAGING = (1ULL << 31), > IB_DEVICE_SG_GAPS_REG = (1ULL << 32), > IB_DEVICE_VIRTUAL_FUNCTION = (1ULL << 33), > /* Deprecated. Please use IB_RAW_PACKET_CAP_SCATTER_FCS. */ > - IB_DEVICE_RAW_SCATTER_FCS = (1ULL << 34), > + IB_DEVICE_RAW_SCATTER_FCS = > + IB_UVERBS_DEVICE_RAW_SCATTER_FCS, > IB_DEVICE_RDMA_NETDEV_OPA = (1ULL << 35), > /* The device supports padding incoming writes to cacheline. */ > - IB_DEVICE_PCI_WRITE_END_PADDING = (1ULL << 36), > + IB_DEVICE_PCI_WRITE_END_PADDING = > + IB_UVERBS_DEVICE_PCI_WRITE_END_PADDING, > IB_DEVICE_ALLOW_USER_UNREG = (1ULL << 37), > }; This should be reformatted, no reason to have a = indented way out like that > +enum ib_uverbs_device_cap_flags { > + IB_UVERBS_DEVICE_RESIZE_MAX_WR = (1 << 0), > + IB_UVERBS_DEVICE_BAD_PKEY_CNTR = (1 << 1), > + IB_UVERBS_DEVICE_BAD_QKEY_CNTR = (1 << 2), > + IB_UVERBS_DEVICE_RAW_MULTI = (1 << 3), > + IB_UVERBS_DEVICE_AUTO_PATH_MIG = (1 << 4), > + IB_UVERBS_DEVICE_CHANGE_PHY_PORT = (1 << 5), > + IB_UVERBS_DEVICE_UD_AV_PORT_ENFORCE = (1 << 6), > + IB_UVERBS_DEVICE_CURR_QP_STATE_MOD = (1 << 7), > + IB_UVERBS_DEVICE_SHUTDOWN_PORT = (1 << 8), > + /* IB_UVERBS_DEVICE_INIT_TYPE = (1 << 9), (not in use) */ > + IB_UVERBS_DEVICE_PORT_ACTIVE_EVENT = (1 << 10), > + IB_UVERBS_DEVICE_SYS_IMAGE_GUID = (1 << 11), > + IB_UVERBS_DEVICE_RC_RNR_NAK_GEN = (1 << 12), > + IB_UVERBS_DEVICE_SRQ_RESIZE = (1 << 13), > + IB_UVERBS_DEVICE_N_NOTIFY_CQ = (1 << 14), > + IB_UVERBS_DEVICE_MEM_WINDOW = (1 << 17), > + IB_UVERBS_DEVICE_UD_IP_CSUM = (1 << 18), > + IB_UVERBS_DEVICE_XRC = (1 << 20), > + IB_UVERBS_DEVICE_MEM_MGT_EXTENSIONS = (1 << 21), > + IB_UVERBS_DEVICE_MEM_WINDOW_TYPE_2A = (1 << 23), > + IB_UVERBS_DEVICE_MEM_WINDOW_TYPE_2B = (1 << 24), > + IB_UVERBS_DEVICE_RC_IP_CSUM = (1 << 25), > + /* Deprecated. Please use IB_UVERBS_RAW_PACKET_CAP_IP_CSUM. */ > + IB_UVERBS_DEVICE_RAW_IP_CSUM = (1 << 26), > + IB_UVERBS_DEVICE_MANAGED_FLOW_STEERING = (1 << 29), > + /* Deprecated. Please use IB_UVERBS_RAW_PACKET_CAP_SCATTER_FCS. */ > + IB_UVERBS_DEVICE_RAW_SCATTER_FCS = (1ULL << 34), > + IB_UVERBS_DEVICE_PCI_WRITE_END_PADDING = (1ULL << 36), > +}; Also please drop the horizontal alignment for new code > + > enum ib_uverbs_raw_packet_caps { > IB_UVERBS_RAW_PACKET_CAP_CVLAN_STRIPPING = (1 << 0), > IB_UVERBS_RAW_PACKET_CAP_SCATTER_FCS = (1 << 1),
diff --git a/drivers/infiniband/core/uverbs_cmd.c b/drivers/infiniband/core/uverbs_cmd.c index 6b6393176b3c..ca1045c28fad 100644 --- a/drivers/infiniband/core/uverbs_cmd.c +++ b/drivers/infiniband/core/uverbs_cmd.c @@ -337,7 +337,8 @@ static void copy_query_dev_fields(struct ib_ucontext *ucontext, resp->hw_ver = attr->hw_ver; resp->max_qp = attr->max_qp; resp->max_qp_wr = attr->max_qp_wr; - resp->device_cap_flags = lower_32_bits(attr->device_cap_flags); + resp->device_cap_flags = lower_32_bits(attr->device_cap_flags & + UVERBS_DEVICE_CAP_FLAGS_MASK); resp->max_sge = min(attr->max_send_sge, attr->max_recv_sge); resp->max_sge_rd = attr->max_sge_rd; resp->max_cq = attr->max_cq; @@ -3618,7 +3619,8 @@ static int ib_uverbs_ex_query_device(struct uverbs_attr_bundle *attrs) resp.timestamp_mask = attr.timestamp_mask; resp.hca_core_clock = attr.hca_core_clock; - resp.device_cap_flags_ex = attr.device_cap_flags; + resp.device_cap_flags_ex = attr.device_cap_flags & + UVERBS_DEVICE_CAP_FLAGS_MASK; resp.rss_caps.supported_qpts = attr.rss_caps.supported_qpts; resp.rss_caps.max_rwq_indirection_tables = attr.rss_caps.max_rwq_indirection_tables; diff --git a/include/rdma/ib_verbs.h b/include/rdma/ib_verbs.h index e5455f6e0d82..54f0045942ca 100644 --- a/include/rdma/ib_verbs.h +++ b/include/rdma/ib_verbs.h @@ -219,22 +219,41 @@ enum rdma_link_layer { IB_LINK_LAYER_ETHERNET, }; +#define UVERBS_DEVICE_CAP_FLAGS_MASK 0x1427B67FFF + enum ib_device_cap_flags { - IB_DEVICE_RESIZE_MAX_WR = (1 << 0), - IB_DEVICE_BAD_PKEY_CNTR = (1 << 1), - IB_DEVICE_BAD_QKEY_CNTR = (1 << 2), - IB_DEVICE_RAW_MULTI = (1 << 3), - IB_DEVICE_AUTO_PATH_MIG = (1 << 4), - IB_DEVICE_CHANGE_PHY_PORT = (1 << 5), - IB_DEVICE_UD_AV_PORT_ENFORCE = (1 << 6), - IB_DEVICE_CURR_QP_STATE_MOD = (1 << 7), - IB_DEVICE_SHUTDOWN_PORT = (1 << 8), - /* Not in use, former INIT_TYPE = (1 << 9),*/ - IB_DEVICE_PORT_ACTIVE_EVENT = (1 << 10), - IB_DEVICE_SYS_IMAGE_GUID = (1 << 11), - IB_DEVICE_RC_RNR_NAK_GEN = (1 << 12), - IB_DEVICE_SRQ_RESIZE = (1 << 13), - IB_DEVICE_N_NOTIFY_CQ = (1 << 14), + IB_DEVICE_RESIZE_MAX_WR = + IB_UVERBS_DEVICE_RESIZE_MAX_WR, + IB_DEVICE_BAD_PKEY_CNTR = + IB_UVERBS_DEVICE_BAD_PKEY_CNTR, + IB_DEVICE_BAD_QKEY_CNTR = + IB_UVERBS_DEVICE_BAD_QKEY_CNTR, + IB_DEVICE_RAW_MULTI = + IB_UVERBS_DEVICE_RAW_MULTI, + IB_DEVICE_AUTO_PATH_MIG = + IB_UVERBS_DEVICE_AUTO_PATH_MIG, + IB_DEVICE_CHANGE_PHY_PORT = + IB_UVERBS_DEVICE_CHANGE_PHY_PORT, + IB_DEVICE_UD_AV_PORT_ENFORCE = + IB_UVERBS_DEVICE_UD_AV_PORT_ENFORCE, + IB_DEVICE_CURR_QP_STATE_MOD = + IB_UVERBS_DEVICE_CURR_QP_STATE_MOD, + IB_DEVICE_SHUTDOWN_PORT = + IB_UVERBS_DEVICE_SHUTDOWN_PORT, + /* + * IB_DEVICE_INIT_TYPE = + * IB_UVERBS_DEVICE_INIT_TYPE, (not in use) + */ + IB_DEVICE_PORT_ACTIVE_EVENT = + IB_UVERBS_DEVICE_PORT_ACTIVE_EVENT, + IB_DEVICE_SYS_IMAGE_GUID = + IB_UVERBS_DEVICE_SYS_IMAGE_GUID, + IB_DEVICE_RC_RNR_NAK_GEN = + IB_UVERBS_DEVICE_RC_RNR_NAK_GEN, + IB_DEVICE_SRQ_RESIZE = + IB_UVERBS_DEVICE_SRQ_RESIZE, + IB_DEVICE_N_NOTIFY_CQ = + IB_UVERBS_DEVICE_N_NOTIFY_CQ, /* * This device supports a per-device lkey or stag that can be @@ -245,7 +264,8 @@ enum ib_device_cap_flags { */ IB_DEVICE_LOCAL_DMA_LKEY = (1 << 15), /* Reserved, old SEND_W_INV = (1 << 16),*/ - IB_DEVICE_MEM_WINDOW = (1 << 17), + IB_DEVICE_MEM_WINDOW = + IB_UVERBS_DEVICE_MEM_WINDOW, /* * Devices should set IB_DEVICE_UD_IP_SUM if they support * insertion of UDP and TCP checksum on outgoing UD IPoIB @@ -253,9 +273,11 @@ enum ib_device_cap_flags { * incoming messages. Setting this flag implies that the * IPoIB driver may set NETIF_F_IP_CSUM for datagram mode. */ - IB_DEVICE_UD_IP_CSUM = (1 << 18), + IB_DEVICE_UD_IP_CSUM = + IB_UVERBS_DEVICE_UD_IP_CSUM, IB_DEVICE_UD_TSO = (1 << 19), - IB_DEVICE_XRC = (1 << 20), + IB_DEVICE_XRC = + IB_UVERBS_DEVICE_XRC, /* * This device supports the IB "base memory management extension", @@ -266,13 +288,18 @@ enum ib_device_cap_flags { * IB_WR_RDMA_READ_WITH_INV verb for RDMA READs that invalidate the * stag. */ - IB_DEVICE_MEM_MGT_EXTENSIONS = (1 << 21), + IB_DEVICE_MEM_MGT_EXTENSIONS = + IB_UVERBS_DEVICE_MEM_MGT_EXTENSIONS, IB_DEVICE_BLOCK_MULTICAST_LOOPBACK = (1 << 22), - IB_DEVICE_MEM_WINDOW_TYPE_2A = (1 << 23), - IB_DEVICE_MEM_WINDOW_TYPE_2B = (1 << 24), - IB_DEVICE_RC_IP_CSUM = (1 << 25), + IB_DEVICE_MEM_WINDOW_TYPE_2A = + IB_UVERBS_DEVICE_MEM_WINDOW_TYPE_2A, + IB_DEVICE_MEM_WINDOW_TYPE_2B = + IB_UVERBS_DEVICE_MEM_WINDOW_TYPE_2B, + IB_DEVICE_RC_IP_CSUM = + IB_UVERBS_DEVICE_RC_IP_CSUM, /* Deprecated. Please use IB_RAW_PACKET_CAP_IP_CSUM. */ - IB_DEVICE_RAW_IP_CSUM = (1 << 26), + IB_DEVICE_RAW_IP_CSUM = + IB_UVERBS_DEVICE_RAW_IP_CSUM, /* * Devices should set IB_DEVICE_CROSS_CHANNEL if they * support execution of WQEs that involve synchronization @@ -280,16 +307,19 @@ enum ib_device_cap_flags { * by hardware. */ IB_DEVICE_CROSS_CHANNEL = (1 << 27), - IB_DEVICE_MANAGED_FLOW_STEERING = (1 << 29), + IB_DEVICE_MANAGED_FLOW_STEERING = + IB_UVERBS_DEVICE_MANAGED_FLOW_STEERING, IB_DEVICE_INTEGRITY_HANDOVER = (1 << 30), IB_DEVICE_ON_DEMAND_PAGING = (1ULL << 31), IB_DEVICE_SG_GAPS_REG = (1ULL << 32), IB_DEVICE_VIRTUAL_FUNCTION = (1ULL << 33), /* Deprecated. Please use IB_RAW_PACKET_CAP_SCATTER_FCS. */ - IB_DEVICE_RAW_SCATTER_FCS = (1ULL << 34), + IB_DEVICE_RAW_SCATTER_FCS = + IB_UVERBS_DEVICE_RAW_SCATTER_FCS, IB_DEVICE_RDMA_NETDEV_OPA = (1ULL << 35), /* The device supports padding incoming writes to cacheline. */ - IB_DEVICE_PCI_WRITE_END_PADDING = (1ULL << 36), + IB_DEVICE_PCI_WRITE_END_PADDING = + IB_UVERBS_DEVICE_PCI_WRITE_END_PADDING, IB_DEVICE_ALLOW_USER_UNREG = (1ULL << 37), }; diff --git a/include/uapi/rdma/ib_user_verbs.h b/include/uapi/rdma/ib_user_verbs.h index 0660405ca2cb..18a0678d3aec 100644 --- a/include/uapi/rdma/ib_user_verbs.h +++ b/include/uapi/rdma/ib_user_verbs.h @@ -1298,6 +1298,37 @@ struct ib_uverbs_ex_modify_cq { #define IB_DEVICE_NAME_MAX 64 +enum ib_uverbs_device_cap_flags { + IB_UVERBS_DEVICE_RESIZE_MAX_WR = (1 << 0), + IB_UVERBS_DEVICE_BAD_PKEY_CNTR = (1 << 1), + IB_UVERBS_DEVICE_BAD_QKEY_CNTR = (1 << 2), + IB_UVERBS_DEVICE_RAW_MULTI = (1 << 3), + IB_UVERBS_DEVICE_AUTO_PATH_MIG = (1 << 4), + IB_UVERBS_DEVICE_CHANGE_PHY_PORT = (1 << 5), + IB_UVERBS_DEVICE_UD_AV_PORT_ENFORCE = (1 << 6), + IB_UVERBS_DEVICE_CURR_QP_STATE_MOD = (1 << 7), + IB_UVERBS_DEVICE_SHUTDOWN_PORT = (1 << 8), + /* IB_UVERBS_DEVICE_INIT_TYPE = (1 << 9), (not in use) */ + IB_UVERBS_DEVICE_PORT_ACTIVE_EVENT = (1 << 10), + IB_UVERBS_DEVICE_SYS_IMAGE_GUID = (1 << 11), + IB_UVERBS_DEVICE_RC_RNR_NAK_GEN = (1 << 12), + IB_UVERBS_DEVICE_SRQ_RESIZE = (1 << 13), + IB_UVERBS_DEVICE_N_NOTIFY_CQ = (1 << 14), + IB_UVERBS_DEVICE_MEM_WINDOW = (1 << 17), + IB_UVERBS_DEVICE_UD_IP_CSUM = (1 << 18), + IB_UVERBS_DEVICE_XRC = (1 << 20), + IB_UVERBS_DEVICE_MEM_MGT_EXTENSIONS = (1 << 21), + IB_UVERBS_DEVICE_MEM_WINDOW_TYPE_2A = (1 << 23), + IB_UVERBS_DEVICE_MEM_WINDOW_TYPE_2B = (1 << 24), + IB_UVERBS_DEVICE_RC_IP_CSUM = (1 << 25), + /* Deprecated. Please use IB_UVERBS_RAW_PACKET_CAP_IP_CSUM. */ + IB_UVERBS_DEVICE_RAW_IP_CSUM = (1 << 26), + IB_UVERBS_DEVICE_MANAGED_FLOW_STEERING = (1 << 29), + /* Deprecated. Please use IB_UVERBS_RAW_PACKET_CAP_SCATTER_FCS. */ + IB_UVERBS_DEVICE_RAW_SCATTER_FCS = (1ULL << 34), + IB_UVERBS_DEVICE_PCI_WRITE_END_PADDING = (1ULL << 36), +}; + enum ib_uverbs_raw_packet_caps { IB_UVERBS_RAW_PACKET_CAP_CVLAN_STRIPPING = (1 << 0), IB_UVERBS_RAW_PACKET_CAP_SCATTER_FCS = (1 << 1),
Part of enum ib_device_cap_flags are used by ibv_query_device(3) or ibv_query_device_ex(3), so we define them in include/uapi/rdma/ib_user_verbs.h and only expose them to userspace. Signed-off-by: Xiao Yang <yangx.jy@fujitsu.com> --- drivers/infiniband/core/uverbs_cmd.c | 6 +- include/rdma/ib_verbs.h | 82 +++++++++++++++++++--------- include/uapi/rdma/ib_user_verbs.h | 31 +++++++++++ 3 files changed, 91 insertions(+), 28 deletions(-)