libe3 0.2.5
C++ library for E3AP RAN vendor integration
Loading...
Searching...
No Matches
libe3::E3Config Struct Reference

Configuration for E3Agent. More...

#include <types.hpp>

Public Attributes

E3Role role {E3Role::RAN}
std::string ran_identifier
 Unique identifier for this RAN function (e.g. "DU-1").
std::string dapp_name {"libe3-dapp"}
 dApp name advertised in SetupRequest
std::string dapp_version {"0.0.0"}
 dApp version advertised in SetupRequest
std::string vendor
 Vendor name for SetupRequest (optional).
std::string e3ap_version {"1.0.0"}
 E3AP protocol version advertised during setup.
E3LinkLayer link_layer {E3LinkLayer::ZMQ}
 Link-layer transport (ZMQ or POSIX).
E3TransportLayer transport_layer {E3TransportLayer::IPC}
 Transport-layer protocol (SCTP, TCP, IPC).
uint16_t setup_port {9990}
 Port used for E3AP setup channel.
uint16_t subscriber_port {9999}
 Port used for inbound control/subscription channel.
uint16_t publisher_port {9991}
 Port used for outbound indication/publication channel.
std::string setup_endpoint {"ipc:///tmp/dapps/setup"}
 Endpoint URI for setup channel.
std::string subscriber_endpoint {"ipc:///tmp/dapps/dapp_socket"}
 Endpoint URI for inbound channel.
std::string publisher_endpoint {"ipc:///tmp/dapps/e3_socket"}
 Endpoint URI for outbound channel.
EncodingFormat encoding {EncodingFormat::ASN1}
 PDU encoding format (ASN.1 PER or JSON).
uint32_t connect_timeout_ms {5000}
 Connection establishment timeout in milliseconds.
uint32_t recv_timeout_ms {1000}
 Receive operation timeout in milliseconds.
uint32_t send_timeout_ms {1000}
 Send operation timeout in milliseconds.
size_t receive_buffer_size {DEFAULT_BUFFER_SIZE}
 Size of the receive buffer in bytes.
size_t send_buffer_size {DEFAULT_BUFFER_SIZE}
 Size of the send buffer in bytes.
size_t io_threads {2}
 Number of I/O threads (used by ZMQ context).
int io_thread_affinity {-1}
 CPU core to pin the subscriber and publisher I/O threads to.
int io_thread_niceness {0}
 Nice value applied to the subscriber and publisher I/O threads.
int log_level {3}
 Logging verbosity: 0=none, 1=error, 2=warn, 3=info, 4=debug, 5=trace.
std::string log_path
 Path of the shared log file. Empty (default) => auto-generated.

Detailed Description

Configuration for E3Agent.

Definition at line 390 of file types.hpp.

Member Data Documentation

◆ connect_timeout_ms

uint32_t libe3::E3Config::connect_timeout_ms {5000}

Connection establishment timeout in milliseconds.

Definition at line 436 of file types.hpp.

◆ dapp_name

std::string libe3::E3Config::dapp_name {"libe3-dapp"}

dApp name advertised in SetupRequest

Definition at line 398 of file types.hpp.

◆ dapp_version

std::string libe3::E3Config::dapp_version {"0.0.0"}

dApp version advertised in SetupRequest

Definition at line 399 of file types.hpp.

◆ e3ap_version

std::string libe3::E3Config::e3ap_version {"1.0.0"}

E3AP protocol version advertised during setup.

Definition at line 402 of file types.hpp.

◆ encoding

EncodingFormat libe3::E3Config::encoding {EncodingFormat::ASN1}

PDU encoding format (ASN.1 PER or JSON).

Definition at line 428 of file types.hpp.

◆ io_thread_affinity

int libe3::E3Config::io_thread_affinity {-1}

CPU core to pin the subscriber and publisher I/O threads to.

When set to a non-negative value the subscriber_loop and publisher_loop threads will be pinned to this logical CPU core via pthread_setaffinity_np (Linux only; ignored on other platforms). This eliminates cache-migration overhead and reduces scheduling jitter in sub-millisecond control loops.

-1 (default) disables core pinning.

Definition at line 458 of file types.hpp.

◆ io_thread_niceness

int libe3::E3Config::io_thread_niceness {0}

Nice value applied to the subscriber and publisher I/O threads.

Range -20 (highest priority) to 19 (lowest priority), 0 = system default. A negative value reduces OS scheduling latency at the cost of slightly less CPU time for other processes. Requires appropriate privileges for negative values (CAP_SYS_NICE on Linux).

Applied via setpriority(PRIO_PROCESS, tid, value) on Linux.

Definition at line 470 of file types.hpp.

◆ io_threads

size_t libe3::E3Config::io_threads {2}

Number of I/O threads (used by ZMQ context).

Definition at line 445 of file types.hpp.

◆ link_layer

E3LinkLayer libe3::E3Config::link_layer {E3LinkLayer::ZMQ}

Link-layer transport (ZMQ or POSIX).

Definition at line 412 of file types.hpp.

◆ log_level

int libe3::E3Config::log_level {3}

Logging verbosity: 0=none, 1=error, 2=warn, 3=info, 4=debug, 5=trace.

Definition at line 473 of file types.hpp.

◆ log_path

std::string libe3::E3Config::log_path

Path of the shared log file. Empty (default) => auto-generated.

When left empty the library derives a per-process path of the form /tmp/e3_<role>[_<sanitized-id>]_<euid>.log (see E3Interface ctor). The trailing effective-uid keeps the file owned by whoever opens it, which avoids fs.protected_regular blocking an O_CREAT re-open of a /tmp file owned by a different user (e.g. a root gNB vs. a prior non-sudo run). Set this explicitly to override the location entirely.

Definition at line 485 of file types.hpp.

◆ publisher_endpoint

std::string libe3::E3Config::publisher_endpoint {"ipc:///tmp/dapps/e3_socket"}

Endpoint URI for outbound channel.

Definition at line 424 of file types.hpp.

◆ publisher_port

uint16_t libe3::E3Config::publisher_port {9991}

Port used for outbound indication/publication channel.

Definition at line 419 of file types.hpp.

◆ ran_identifier

std::string libe3::E3Config::ran_identifier

Unique identifier for this RAN function (e.g. "DU-1").

Definition at line 395 of file types.hpp.

◆ receive_buffer_size

size_t libe3::E3Config::receive_buffer_size {DEFAULT_BUFFER_SIZE}

Size of the receive buffer in bytes.

Definition at line 441 of file types.hpp.

◆ recv_timeout_ms

uint32_t libe3::E3Config::recv_timeout_ms {1000}

Receive operation timeout in milliseconds.

Definition at line 437 of file types.hpp.

◆ role

E3Role libe3::E3Config::role {E3Role::RAN}

Definition at line 392 of file types.hpp.

◆ send_buffer_size

size_t libe3::E3Config::send_buffer_size {DEFAULT_BUFFER_SIZE}

Size of the send buffer in bytes.

Definition at line 442 of file types.hpp.

◆ send_timeout_ms

uint32_t libe3::E3Config::send_timeout_ms {1000}

Send operation timeout in milliseconds.

Definition at line 438 of file types.hpp.

◆ setup_endpoint

std::string libe3::E3Config::setup_endpoint {"ipc:///tmp/dapps/setup"}

Endpoint URI for setup channel.

Definition at line 422 of file types.hpp.

◆ setup_port

uint16_t libe3::E3Config::setup_port {9990}

Port used for E3AP setup channel.

Definition at line 417 of file types.hpp.

◆ subscriber_endpoint

std::string libe3::E3Config::subscriber_endpoint {"ipc:///tmp/dapps/dapp_socket"}

Endpoint URI for inbound channel.

Definition at line 423 of file types.hpp.

◆ subscriber_port

uint16_t libe3::E3Config::subscriber_port {9999}

Port used for inbound control/subscription channel.

Definition at line 418 of file types.hpp.

◆ transport_layer

E3TransportLayer libe3::E3Config::transport_layer {E3TransportLayer::IPC}

Transport-layer protocol (SCTP, TCP, IPC).

Definition at line 414 of file types.hpp.

◆ vendor

std::string libe3::E3Config::vendor

Vendor name for SetupRequest (optional).

Definition at line 400 of file types.hpp.


The documentation for this struct was generated from the following file:
  • /home/runner/work/libe3/libe3/include/libe3/types.hpp