NVIDIA DOCA SDK Data Center on a Chip Framework Documentation
doca_urom.h File Reference
#include <ucs/type/cpu_set.h>
#include <doca_error.h>
#include <doca_types.h>
#include <doca_urom_plugin.h>
Include dependency graph for doca_urom.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  doca_urom_domain_oob_coll
 Out-of-band communication descriptor for Domain creation. More...
 

Macros

#define DOCA_CPU_ZERO(_cpusetp)   UCS_CPU_ZERO(_cpusetp)
 Set DOCA CPU set to zero. More...
 
#define DOCA_CPU_SET(_cpu, _cpusetp)   UCS_CPU_SET(_cpu, _cpusetp)
 Set specific bit in DOCA CPU set. More...
 
#define doca_cpu_is_set(_cpu, _cpusetp)   ucs_cpu_is_set(_cpu, _cpusetp)
 Check if specific bit in DOCA CPU is set. More...
 
#define DOCA_UROM_WORKER_ID_ANY   -1ULL
 DOCA UROM WORKER ID any give the library the responsibility to generate a worker id. More...
 

Typedefs

typedef ucs_cpu_set_t doca_cpu_set_t
 DOCA CPU set structure. More...
 
typedef void(* doca_urom_service_get_workers_by_gid_task_completion_cb_t) (struct doca_urom_service_get_workers_by_gid_task *task, union doca_data task_user_data, union doca_data ctx_user_data)
 Service get workers task completion callback type. More...
 
typedef void(* doca_urom_worker_cmd_task_completion_cb_t) (struct doca_urom_worker_cmd_task *task, union doca_data task_user_data, union doca_data ctx_user_data)
 Worker Command task completion callback type. More...
 
typedef doca_error_t(* doca_urom_domain_allgather_cb_t) (void *sbuf, void *rbuf, size_t msglen, void *coll_info, void **req)
 Callback for a non-blocking allgather operation. More...
 
typedef doca_error_t(* doca_urom_domain_req_test_cb_t) (void *req)
 Callback to test the status of a non-blocking allgather request. More...
 
typedef doca_error_t(* doca_urom_domain_req_free_cb_t) (void *req)
 Callback to free a non-blocking allgather request. More...
 

Functions

DOCA_EXPERIMENTAL doca_error_t doca_urom_service_create (struct doca_urom_service **service_ctx)
 This method creates a UROM Service context. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_urom_service_destroy (struct doca_urom_service *service_ctx)
 This method destroys a UROM Service context. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_urom_service_set_max_comm_msg_size (struct doca_urom_service *service_ctx, size_t msg_size)
 Set the maximum message size for the UROM communication channel. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_urom_service_set_max_workers (struct doca_urom_service *service_ctx, uint32_t max_workers)
 Set maximum number of UROM workers. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_urom_service_set_dev (struct doca_urom_service *service_ctx, struct doca_dev *dev)
 This method attaches a DOCA Device to the UROM Service context. More...
 
DOCA_EXPERIMENTAL struct doca_ctx * doca_urom_service_as_ctx (struct doca_urom_service *service_ctx)
 Convert service_ctx instance into a generalized context for use with DOCA core objects. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_urom_service_get_plugins_list (struct doca_urom_service *service_ctx, const struct doca_urom_service_plugin_info **plugins, size_t *plugins_count)
 This method gets the list of supported plugins on service's DPU side. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_urom_service_get_cpuset (struct doca_urom_service *service_ctx, doca_cpu_set_t *cpuset)
 Get the allowed CPU set for the service. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_urom_service_get_workers_by_gid_task_allocate (struct doca_urom_service *service_ctx, struct doca_urom_service_get_workers_by_gid_task **task)
 Allocate Service get workers by gid task. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_urom_service_get_workers_by_gid_task_allocate_init (struct doca_urom_service *service_ctx, uint32_t gid, doca_urom_service_get_workers_by_gid_task_completion_cb_t cb, struct doca_urom_service_get_workers_by_gid_task **task)
 Allocate Service get workers by gid task and set task attributes. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_urom_service_get_workers_by_gid_task_release (struct doca_urom_service_get_workers_by_gid_task *task)
 Release Service get workers by gid task. More...
 
DOCA_EXPERIMENTAL void doca_urom_service_get_workers_by_gid_task_set_gid (struct doca_urom_service_get_workers_by_gid_task *task, uint32_t gid)
 Set Service get workers task group id. More...
 
DOCA_EXPERIMENTAL void doca_urom_service_get_workers_by_gid_task_set_cb (struct doca_urom_service_get_workers_by_gid_task *task, doca_urom_service_get_workers_by_gid_task_completion_cb_t cb)
 Set Service get workers task completion callback. More...
 
DOCA_EXPERIMENTAL struct doca_task * doca_urom_service_get_workers_by_gid_task_as_task (struct doca_urom_service_get_workers_by_gid_task *task)
 This method converts a service get workers task to doca_task. More...
 
DOCA_EXPERIMENTAL size_t doca_urom_service_get_workers_by_gid_task_get_workers_count (struct doca_urom_service_get_workers_by_gid_task *task)
 Get the number of workers returned for the requested gid. More...
 
DOCA_EXPERIMENTAL const uint64_t * doca_urom_service_get_workers_by_gid_task_get_worker_ids (struct doca_urom_service_get_workers_by_gid_task *task)
 Get Service get workers task ids array. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_urom_worker_create (struct doca_urom_worker **worker_ctx)
 This method creates a UROM Worker context. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_urom_worker_destroy (struct doca_urom_worker *worker_ctx)
 This method destroys a UROM Worker context. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_urom_worker_set_service (struct doca_urom_worker *worker_ctx, struct doca_urom_service *service_ctx)
 This method attaches a UROM Service to the Worker context. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_urom_worker_set_id (struct doca_urom_worker *worker_ctx, uint64_t worker_id)
 This method sets the Worker context ID to be used to identify the Worker. Worker IDs enable an application to establish multiple connections to the same Worker process running on a DOCA Device. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_urom_worker_set_plugins (struct doca_urom_worker *worker_ctx, uint64_t plugins)
 This method adds plugins mask for the supported plugins by the UROM Worker on the DPU. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_urom_worker_set_cpuset (struct doca_urom_worker *worker_ctx, doca_cpu_set_t cpuset)
 Set the allowed CPUs for the Worker. The cpuset must be a subset of the service's allowed CPUs. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_urom_worker_set_gid (struct doca_urom_worker *worker_ctx, uint32_t gid)
 Set worker group ID, must be set before starting the worker context. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_urom_worker_set_max_inflight_tasks (struct doca_urom_worker *worker_ctx, uint32_t max_tasks)
 Set Worker maximum in-flight tasks. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_urom_worker_set_env (struct doca_urom_worker *worker_ctx, char *const env[], size_t count)
 Set worker env variables when spawning worker on DPU side. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_urom_worker_get_id (struct doca_urom_worker *worker_ctx, uint64_t *worker_id)
 This method gets the Worker context ID to be used to identify the Worker. Worker IDs enable an application to establish multiple connections to the same Worker process running on a DOCA Device. If when creating the worker the user sets worker id equals to DOCA_UROM_WORKER_ID_ANY the library will generate new id for the worker. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_urom_worker_get_gid (struct doca_urom_worker *worker_ctx, uint32_t *worker_gid)
 This method gets the Worker context group ID to be used to identify the Worker group that belongs to. More...
 
DOCA_EXPERIMENTAL struct doca_ctx * doca_urom_worker_as_ctx (struct doca_urom_worker *worker_ctx)
 
DOCA_EXPERIMENTAL doca_error_t doca_urom_worker_cmd_task_allocate (struct doca_urom_worker *worker_ctx, struct doca_urom_worker_cmd_task **task)
 Allocate Worker Command task. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_urom_worker_cmd_task_allocate_init (struct doca_urom_worker *worker_ctx, uint64_t plugin, struct doca_urom_worker_cmd_task **task)
 Allocate and initialize Worker Command task. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_urom_worker_cmd_task_release (struct doca_urom_worker_cmd_task *task)
 Release Worker Command task. More...
 
DOCA_EXPERIMENTAL void doca_urom_worker_cmd_task_set_plugin (struct doca_urom_worker_cmd_task *task, uint64_t plugin)
 Set Worker Command task plugin. More...
 
DOCA_EXPERIMENTAL void doca_urom_worker_cmd_task_set_cb (struct doca_urom_worker_cmd_task *task, doca_urom_worker_cmd_task_completion_cb_t cb)
 Set Worker Command task callback. More...
 
DOCA_EXPERIMENTAL struct doca_buf * doca_urom_worker_cmd_task_get_payload (struct doca_urom_worker_cmd_task *task)
 Get Worker Command task payload. More...
 
DOCA_EXPERIMENTAL struct doca_buf * doca_urom_worker_cmd_task_get_response (struct doca_urom_worker_cmd_task *task)
 Get Worker Command task response. More...
 
DOCA_EXPERIMENTAL void * doca_urom_worker_cmd_task_get_user_data (struct doca_urom_worker_cmd_task *task)
 Get Worker Command user data to populate. More...
 
DOCA_EXPERIMENTAL struct doca_task * doca_urom_worker_cmd_task_as_task (struct doca_urom_worker_cmd_task *task)
 This method converts a worker cmd task to doca_task. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_urom_domain_create (struct doca_urom_domain **domain_ctx)
 This method creates a UROM Domain context. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_urom_domain_destroy (struct doca_urom_domain *domain_ctx)
 
DOCA_EXPERIMENTAL doca_error_t doca_urom_domain_set_buffers_count (struct doca_urom_domain *domain_ctx, size_t buffers_cnt)
 This method attaches the number of local buffers that will be added to the Domain. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_urom_domain_add_buffer (struct doca_urom_domain *domain_ctx, void *buffer, size_t buf_len, void *memh, size_t memh_len, void *mkey, size_t mkey_len)
 This method attaches local buffer attributes to the Domain. Should be called after calling doca_urom_domain_set_buffers_count() More...
 
DOCA_EXPERIMENTAL doca_error_t doca_urom_domain_set_oob (struct doca_urom_domain *domain_ctx, struct doca_urom_domain_oob_coll *oob)
 Set OOB communication info to be used for Domain initialization. More...
 
DOCA_EXPERIMENTAL doca_error_t doca_urom_domain_set_workers (struct doca_urom_domain *domain_ctx, uint64_t *domain_worker_ids, struct doca_urom_worker **workers, size_t workers_cnt)
 Set the list of Workers in the domain. More...
 
DOCA_EXPERIMENTAL struct doca_ctx * doca_urom_domain_as_ctx (struct doca_urom_domain *domain_ctx)