|
libe3 0.2.5
C++ library for E3AP RAN vendor integration
|
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. | |
| uint32_t libe3::E3Config::connect_timeout_ms {5000} |
| std::string libe3::E3Config::dapp_name {"libe3-dapp"} |
dApp name advertised in SetupRequest
| std::string libe3::E3Config::dapp_version {"0.0.0"} |
dApp version advertised in SetupRequest
| std::string libe3::E3Config::e3ap_version {"1.0.0"} |
| EncodingFormat libe3::E3Config::encoding {EncodingFormat::ASN1} |
| 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.
| 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.
| size_t libe3::E3Config::io_threads {2} |
| E3LinkLayer libe3::E3Config::link_layer {E3LinkLayer::ZMQ} |
| int libe3::E3Config::log_level {3} |
| 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.
| std::string libe3::E3Config::publisher_endpoint {"ipc:///tmp/dapps/e3_socket"} |
| uint16_t libe3::E3Config::publisher_port {9991} |
| std::string libe3::E3Config::ran_identifier |
| size_t libe3::E3Config::receive_buffer_size {DEFAULT_BUFFER_SIZE} |
| uint32_t libe3::E3Config::recv_timeout_ms {1000} |
| E3Role libe3::E3Config::role {E3Role::RAN} |
| size_t libe3::E3Config::send_buffer_size {DEFAULT_BUFFER_SIZE} |
| uint32_t libe3::E3Config::send_timeout_ms {1000} |
| std::string libe3::E3Config::setup_endpoint {"ipc:///tmp/dapps/setup"} |
| uint16_t libe3::E3Config::setup_port {9990} |
| std::string libe3::E3Config::subscriber_endpoint {"ipc:///tmp/dapps/dapp_socket"} |
| uint16_t libe3::E3Config::subscriber_port {9999} |
| E3TransportLayer libe3::E3Config::transport_layer {E3TransportLayer::IPC} |
| std::string libe3::E3Config::vendor |
Vendor name for SetupRequest (optional).