34 uint32_t request_message_id,
49 const uint8_t* report_data,
50 size_t report_data_len,
144 uint32_t ran_function_id,
324 uint32_t ran_function_id
338 uint32_t ran_function_id,
353 uint32_t ran_function_id,
375 uint32_t ran_function_id,
396 uint32_t ran_function_id,
397 const uint8_t* control_data,
398 size_t control_data_len,
void(* e3_dapp_status_changed_cb)(void)
void e3_agent_free_uint32_array(uint32_t *arr)
Free an array previously returned by the e3_agent_get_* helpers.
e3_error_t e3_agent_register_sm(e3_agent_handle_t *agent, e3_service_model_handle_t *sm)
Register a ServiceModel implementation with the agent.
struct e3_agent_handle_s e3_agent_handle_t
e3_service_model_handle_t * e3_service_model_create_from_c(const e3_c_service_model_desc_t *desc)
Create a ServiceModel implementation backed by C callbacks.
void(* e3_dapp_report_cb)(uint32_t dapp_id, uint32_t ran_function_id, const uint8_t *report_data, size_t report_data_len, uint32_t sequence_id)
uint32_t e3_agent_get_subscription_periodicity(e3_agent_handle_t *agent, uint32_t dapp_id, uint32_t ran_function_id)
Get the reporting periodicity a dApp requested for a RAN function.
uint32_t * e3_agent_get_ran_function_subscribers(e3_agent_handle_t *agent, uint32_t ran_function_id, size_t *out_len)
Return a newly-allocated array of dApp IDs subscribed to a RAN function.
void e3_agent_destroy(e3_agent_handle_t *agent)
Destroy an E3Agent handle.
e3_error_t(* e3_sm_process_control_cb)(e3_service_model_handle_t *sm_handle, void *sm_context, uint32_t request_message_id, uint32_t dapp_id, uint32_t ran_function_id, uint32_t control_id, const uint8_t *data, size_t data_len, uint32_t sequence_id)
void(* e3_sm_destroy_cb)(void *sm_context)
void e3_agent_stop(e3_agent_handle_t *agent)
Stop the agent and release runtime resources.
size_t e3_agent_subscription_count(e3_agent_handle_t *agent)
Total number of active subscriptions tracked by the agent.
e3_error_t e3_agent_set_dapp_report_handler(e3_agent_handle_t *agent, e3_dapp_report_cb handler)
Set callback for incoming dApp reports (dApp -> RAN).
e3_error_t(* e3_sm_start_cb)(void *sm_context)
void(* e3_sm_stop_cb)(void *sm_context)
e3_agent_handle_t * e3_agent_create_default()
Create/destroy an E3Agent handle.
e3_error_t e3_agent_send_message_ack(e3_agent_handle_t *agent, uint32_t request_id, int response_code)
Send a message acknowledgment (e.g. ack a control/request from dApp).
int e3_agent_is_running(e3_agent_handle_t *agent)
Query whether the agent is currently running.
uint32_t * e3_agent_get_registered_dapps(e3_agent_handle_t *agent, size_t *out_len)
Return a newly-allocated array of registered dApp IDs.
e3_error_t e3_service_model_emit_message_ack(e3_service_model_handle_t *sm, uint32_t request_id, int response_code)
Emit a message acknowledgment from a ServiceModel.
int(* e3_sm_is_running_cb)(void *sm_context)
int e3_agent_get_state(e3_agent_handle_t *agent)
Get the agent state as an integer matching libe3::AgentState.
e3_error_t e3_agent_start(e3_agent_handle_t *agent)
Start the agent processing threads and accept dApp connections.
void e3_service_model_destroy(e3_service_model_handle_t *sm)
Destroy a C-backed ServiceModel handle.
e3_agent_handle_t * e3_agent_create_with_config(const e3_config_t *config)
Create a new E3Agent with the given configuration.
e3_error_t e3_agent_send_indication(e3_agent_handle_t *agent, uint32_t dapp_id, uint32_t ran_function_id, const uint8_t *data, size_t data_len)
Send an indication message to a specific dApp.
e3_error_t e3_agent_init(e3_agent_handle_t *agent)
Initialize the agent.
uint32_t * e3_agent_get_active_ran_functions(e3_agent_handle_t *agent, size_t *out_len)
Return a newly-allocated array of RAN function IDs that currently have at least one subscriber (RAN r...
uint32_t * e3_agent_get_dapp_subscriptions(e3_agent_handle_t *agent, uint32_t dapp_id, size_t *out_len)
Return a newly-allocated array of RAN function IDs subscribed by a dApp.
struct e3_service_model_handle_s e3_service_model_handle_t
e3_error_t(* e3_sm_init_cb)(void *sm_context)
uint32_t * e3_agent_get_subscription_control_ids(e3_agent_handle_t *agent, uint32_t dapp_id, uint32_t ran_function_id, size_t *out_len)
Get the control IDs a dApp requested for a RAN function.
e3_error_t e3_service_model_emit_indication(e3_service_model_handle_t *sm, uint32_t dapp_id, uint32_t ran_function_id, const uint8_t *data, size_t data_len)
Emit an indication message from a ServiceModel to the outbound queue.
size_t e3_agent_dapp_count(e3_agent_handle_t *agent)
Number of registered dApps known to the agent.
uint32_t * e3_agent_get_subscription_telemetry_ids(e3_agent_handle_t *agent, uint32_t dapp_id, uint32_t ran_function_id, size_t *out_len)
Get the telemetry IDs a dApp requested for a RAN function.
uint32_t * e3_agent_get_available_ran_functions(e3_agent_handle_t *agent, size_t *out_len)
Return a newly-allocated array of available RAN function IDs.
e3_error_t e3_agent_send_xapp_control(e3_agent_handle_t *agent, uint32_t dapp_id, uint32_t ran_function_id, const uint8_t *control_data, size_t control_data_len, uint32_t sequence_id)
Send an xApp control action to a specific dApp (e.g. from E2/SM).
e3_error_t e3_agent_set_dapp_status_changed_handler(e3_agent_handle_t *agent, e3_dapp_status_changed_cb handler)
Set callback for dApp status changes.
libe3 error codes - shared C/C++ definitions
int e3_error_t
C error type alias.
Descriptor describing a ServiceModel implemented in C.
const uint32_t * control_ids
const uint8_t * ran_function_data
const uint32_t * telemetry_ids
e3_sm_is_running_cb sm_is_running
size_t ran_function_data_len
e3_sm_process_control_cb sm_process_control
e3_sm_destroy_cb sm_destroy
Configuration for creating an E3Agent from C.
const char * setup_endpoint
const char * ran_identifier
const char * subscriber_endpoint
const char * publisher_endpoint
uint32_t ran_function_id() const override
Get RAN function ID for this SM.