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 | 163 | BNXT_RE_OBJECT_ALLOC_PAGE = (1U << UVERBS_ID_NS_SHIFT), |
| 164 | 164 | BNXT_RE_OBJECT_NOTIFY_DRV, |
| 165 | 165 | BNXT_RE_OBJECT_GET_TOGGLE_MEM, |
| 166 | + BNXT_RE_OBJECT_DBR, | |
| 167 | + BNXT_RE_OBJECT_DEFAULT_DBR, | |
| 166 | 168 | }; |
| 167 | 169 | |
| 168 | 170 | enum bnxt_re_alloc_page_type { |
| @@ -231,4 +233,31 @@ struct bnxt_re_packet_pacing_caps { · 62 unmodified lines | ||
| 231 | 233 | struct bnxt_re_query_device_ex_resp { |
| 232 | 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 | 263 | #endif /* __BNXT_RE_UVERBS_ABI_H__*/ |