Some applications may need multiple doorbells to support parallel processing of threads that each operate on a group of resources. The following uapi methods have been implemented in this patch. - BNXT_RE_METHOD_DBR_ALLOC: This will allow the appliation to create extra doorbell regions and use the associated doorbell page index in CREATE_QP and use the associated DB address while ringing the doorbell. - BNXT_RE_METHOD_DBR_FREE: Free the allocated doorbell region. - BNXT_RE_METHOD_GET_DEFAULT_DBR: Return the default doorbell page index and doorbell page address associated with the ucontext.
Showing the changes to include/uapi (1 of 5 files). Show all
Unified · Split
| @@ -163,6 +163,8 @@ enum bnxt_re_objects { · 162 unmodified lines | |||
| 163 | BNXT_RE_OBJECT_ALLOC_PAGE = (1U << UVERBS_ID_NS_SHIFT), | 163 | BNXT_RE_OBJECT_ALLOC_PAGE = (1U << UVERBS_ID_NS_SHIFT), |
| 164 | BNXT_RE_OBJECT_NOTIFY_DRV, | 164 | BNXT_RE_OBJECT_NOTIFY_DRV, |
| 165 | BNXT_RE_OBJECT_GET_TOGGLE_MEM, | 165 | BNXT_RE_OBJECT_GET_TOGGLE_MEM, |
| 166 | BNXT_RE_OBJECT_DBR, | ||
| 167 | BNXT_RE_OBJECT_DEFAULT_DBR, | ||
| 166 | }; | 168 | }; |
| 167 | 169 | ||
| 168 | enum bnxt_re_alloc_page_type { | 170 | enum bnxt_re_alloc_page_type { |
| @@ -231,4 +233,31 @@ struct bnxt_re_packet_pacing_caps { · 62 unmodified lines | |||
| 231 | struct bnxt_re_query_device_ex_resp { | 233 | struct bnxt_re_query_device_ex_resp { |
| 232 | struct bnxt_re_packet_pacing_caps packet_pacing_caps; | 234 | struct bnxt_re_packet_pacing_caps packet_pacing_caps; |
| 233 | }; | 235 | }; |
| 236 | |||
| 237 | struct bnxt_re_db_region { | ||
| 238 | __u32 dpi; | ||
| 239 | __u32 reserved; | ||
| 240 | __aligned_u64 umdbr; | ||
| 241 | }; | ||
| 242 | |||
| 243 | enum bnxt_re_obj_dbr_alloc_attrs { | ||
| 244 | BNXT_RE_ALLOC_DBR_HANDLE = (1U << UVERBS_ID_NS_SHIFT), | ||
| 245 | BNXT_RE_ALLOC_DBR_ATTR, | ||
| 246 | BNXT_RE_ALLOC_DBR_OFFSET, | ||
| 247 | }; | ||
| 248 | |||
| 249 | enum bnxt_re_obj_dbr_free_attrs { | ||
| 250 | BNXT_RE_FREE_DBR_HANDLE = (1U << UVERBS_ID_NS_SHIFT), | ||
| 251 | }; | ||
| 252 | |||
| 253 | enum bnxt_re_obj_default_dbr_attrs { | ||
| 254 | BNXT_RE_DEFAULT_DBR_ATTR = (1U << UVERBS_ID_NS_SHIFT), | ||
| 255 | }; | ||
| 256 | |||
| 257 | enum bnxt_re_obj_dpi_methods { | ||
| 258 | BNXT_RE_METHOD_DBR_ALLOC = (1U << UVERBS_ID_NS_SHIFT), | ||
| 259 | BNXT_RE_METHOD_DBR_FREE, | ||
| 260 | BNXT_RE_METHOD_GET_DEFAULT_DBR, | ||
| 261 | }; | ||
| 262 | |||
| 234 | #endif /* __BNXT_RE_UVERBS_ABI_H__*/ | 263 | #endif /* __BNXT_RE_UVERBS_ABI_H__*/ |