libe3 0.2.5
C++ library for E3AP RAN vendor integration
Loading...
Searching...
No Matches
e3_service_model_handle_s Struct Reference
Inheritance diagram for e3_service_model_handle_s:
libe3::ServiceModel

Public Member Functions

 e3_service_model_handle_s (const e3_c_service_model_desc_t &desc)
std::string name () const override
 Get SM name.
uint32_t version () const override
 Get SM version.
uint32_t ran_function_id () const override
 Get RAN function ID for this SM.
std::vector< uint32_t > telemetry_ids () const override
 Get telemetry IDs supported by this SM.
std::vector< uint32_t > control_ids () const override
 Get control IDs supported by this SM.
std::vector< uint8_t > ran_function_data () const override
 RAN-function-specific opaque data (required, 1..32768 bytes).
ErrorCode init () override
 Initialize the SM.
void destroy () override
 Destroy the SM and release resources.
ErrorCode start () override
 Start the SM processing.
void stop () override
 Stop the SM processing.
bool is_running () const override
 Check if SM is currently running.
ErrorCode handle_control_action (uint32_t request_message_id, const DAppControlAction &action) override
 Process a control action from a dApp.
ErrorCode emit_pdu (Pdu &&pdu)
Public Member Functions inherited from libe3::ServiceModel
virtual ~ServiceModel ()=default

Public Attributes

std::string name_s
uint32_t version_s
uint32_t ran_function_id_s
std::vector< uint32_t > telemetry_ids_s
std::vector< uint32_t > control_ids_s
std::vector< uint8_t > ran_function_data_s
e3_sm_init_cb sm_init = nullptr
e3_sm_destroy_cb sm_destroy = nullptr
e3_sm_start_cb sm_start = nullptr
e3_sm_stop_cb sm_stop = nullptr
e3_sm_is_running_cb sm_is_running = nullptr
e3_sm_process_control_cb sm_process_control = nullptr
void * sm_context = nullptr
bool transferred_to_agent = false

Additional Inherited Members

Protected Member Functions inherited from libe3::ServiceModel
 ServiceModel ()=default
ErrorCode emit_outbound (Pdu &&pdu)
 Emit an outbound PDU produced by the SM.
std::vector< uint32_t > get_subscribers () const
 Get currently subscribed dApps for this SM's RAN function.
void set_outbound_emitter (std::function< ErrorCode(Pdu &&)> emitter)
 Set the outbound PDU emitter callback (used by E3Interface).
void set_subscribers_provider (std::function< std::vector< uint32_t >()> provider)
 Set subscriber provider callback (used by E3Interface).
Static Protected Member Functions inherited from libe3::ServiceModel
static Pdu make_message_ack_pdu (uint32_t request_message_id, ResponseCode response_code)
 Build a MessageAck PDU for a control/request message.
static Pdu make_indication_pdu (uint32_t dapp_id, uint32_t ran_function_id, std::vector< uint8_t > protocol_data)
 Build an IndicationMessage PDU.

Detailed Description

Definition at line 30 of file c_api.cpp.

Constructor & Destructor Documentation

◆ e3_service_model_handle_s()

e3_service_model_handle_s::e3_service_model_handle_s ( const e3_c_service_model_desc_t & desc)
inlineexplicit

Definition at line 51 of file c_api.cpp.

Member Function Documentation

◆ control_ids()

std::vector< uint32_t > e3_service_model_handle_s::control_ids ( ) const
inlineoverridevirtual

Get control IDs supported by this SM.

Implements libe3::ServiceModel.

Definition at line 79 of file c_api.cpp.

◆ destroy()

void e3_service_model_handle_s::destroy ( )
inlineoverridevirtual

Destroy the SM and release resources.

Called when the SM is being unregistered.

Implements libe3::ServiceModel.

Definition at line 85 of file c_api.cpp.

◆ emit_pdu()

ErrorCode e3_service_model_handle_s::emit_pdu ( Pdu && pdu)
inline

Definition at line 120 of file c_api.cpp.

◆ handle_control_action()

ErrorCode e3_service_model_handle_s::handle_control_action ( uint32_t request_message_id,
const DAppControlAction & action )
inlineoverridevirtual

Process a control action from a dApp.

Called by the E3 interface when a DAppControlAction is received for this service model. Implementations can emit outbound PDUs (e.g. MessageAck, IndicationMessage) via emit_outbound().

Implements libe3::ServiceModel.

Definition at line 100 of file c_api.cpp.

◆ init()

ErrorCode e3_service_model_handle_s::init ( )
inlineoverridevirtual

Initialize the SM.

Called when the SM is first registered.

Returns
ErrorCode::SUCCESS on success

Implements libe3::ServiceModel.

Definition at line 81 of file c_api.cpp.

◆ is_running()

bool e3_service_model_handle_s::is_running ( ) const
inlineoverridevirtual

Check if SM is currently running.

Implements libe3::ServiceModel.

Definition at line 95 of file c_api.cpp.

◆ name()

std::string e3_service_model_handle_s::name ( ) const
inlineoverridevirtual

Get SM name.

Implements libe3::ServiceModel.

Definition at line 75 of file c_api.cpp.

◆ ran_function_data()

std::vector< uint8_t > e3_service_model_handle_s::ran_function_data ( ) const
inlineoverridevirtual

RAN-function-specific opaque data (required, 1..32768 bytes).

Returns the byte vector advertised for this RAN function in the SetupResponse (ranFunctionList->ranFunctionData). E3AP declares the field mandatory and non-empty – OCTET STRING (SIZE (1..32768)) – so every SM must override this: even the most minimal SM carries at least its own name. An SM with nothing to advertise is not advertisable at all, since ranFunctionList itself is optional but its entries are not.

Registration fails with ErrorCode::INVALID_PARAM if the returned vector is empty or longer than MAX_PROTOCOL_DATA_SIZE. The base implementation returns an empty vector so that failure is a loud diagnostic rather than a compile error in every existing SM; it is not a usable default.

Reimplemented from libe3::ServiceModel.

Definition at line 80 of file c_api.cpp.

◆ ran_function_id()

uint32_t e3_service_model_handle_s::ran_function_id ( ) const
inlineoverridevirtual

Get RAN function ID for this SM.

Implements libe3::ServiceModel.

Definition at line 77 of file c_api.cpp.

◆ start()

ErrorCode e3_service_model_handle_s::start ( )
inlineoverridevirtual

Start the SM processing.

Called when the first dApp subscribes to this SM's RAN function.

Returns
ErrorCode::SUCCESS on success

Implements libe3::ServiceModel.

Definition at line 88 of file c_api.cpp.

◆ stop()

void e3_service_model_handle_s::stop ( )
inlineoverridevirtual

Stop the SM processing.

Called when the last dApp unsubscribes from this SM's RAN function.

Implements libe3::ServiceModel.

Definition at line 92 of file c_api.cpp.

◆ telemetry_ids()

std::vector< uint32_t > e3_service_model_handle_s::telemetry_ids ( ) const
inlineoverridevirtual

Get telemetry IDs supported by this SM.

Implements libe3::ServiceModel.

Definition at line 78 of file c_api.cpp.

◆ version()

uint32_t e3_service_model_handle_s::version ( ) const
inlineoverridevirtual

Get SM version.

Implements libe3::ServiceModel.

Definition at line 76 of file c_api.cpp.

Member Data Documentation

◆ control_ids_s

std::vector<uint32_t> e3_service_model_handle_s::control_ids_s

Definition at line 36 of file c_api.cpp.

◆ name_s

std::string e3_service_model_handle_s::name_s

Definition at line 32 of file c_api.cpp.

◆ ran_function_data_s

std::vector<uint8_t> e3_service_model_handle_s::ran_function_data_s

Definition at line 37 of file c_api.cpp.

◆ ran_function_id_s

uint32_t e3_service_model_handle_s::ran_function_id_s

Definition at line 34 of file c_api.cpp.

◆ sm_context

void* e3_service_model_handle_s::sm_context = nullptr

Definition at line 46 of file c_api.cpp.

◆ sm_destroy

e3_sm_destroy_cb e3_service_model_handle_s::sm_destroy = nullptr

Definition at line 41 of file c_api.cpp.

◆ sm_init

e3_sm_init_cb e3_service_model_handle_s::sm_init = nullptr

Definition at line 40 of file c_api.cpp.

◆ sm_is_running

e3_sm_is_running_cb e3_service_model_handle_s::sm_is_running = nullptr

Definition at line 44 of file c_api.cpp.

◆ sm_process_control

e3_sm_process_control_cb e3_service_model_handle_s::sm_process_control = nullptr

Definition at line 45 of file c_api.cpp.

◆ sm_start

e3_sm_start_cb e3_service_model_handle_s::sm_start = nullptr

Definition at line 42 of file c_api.cpp.

◆ sm_stop

e3_sm_stop_cb e3_service_model_handle_s::sm_stop = nullptr

Definition at line 43 of file c_api.cpp.

◆ telemetry_ids_s

std::vector<uint32_t> e3_service_model_handle_s::telemetry_ids_s

Definition at line 35 of file c_api.cpp.

◆ transferred_to_agent

bool e3_service_model_handle_s::transferred_to_agent = false

Definition at line 49 of file c_api.cpp.

◆ version_s

uint32_t e3_service_model_handle_s::version_s

Definition at line 33 of file c_api.cpp.


The documentation for this struct was generated from the following file:
  • /home/runner/work/libe3/libe3/src/c_api.cpp