Configuration File¶
Ella is configured using a yaml formatted file.
Start Ella core with the --config flag to specify the path to the configuration file.
Parameters¶
logging(object): The logging configuration.system(object): The system logging configuration.level(string): The log level. Options aredebug,info,warn,error, andfatal.output(string): The output for the logs. Options arestdoutandfile.path(string): The path to the log file. Only used if the output is set tofile.
audit(object): The audit logging configuration.output(string): The output for the logs. Options arestdoutandfile.path(string): The path to the log file. Only used if the output is set tofile.
db(object): The database configuration.path(string): The path to the SQLite database file.
interfaces(object): The network interfaces configuration.n2(object): The configuration for the n2 interface (N2 in 5G, S1-MME in 4G). This is the SCTP control-plane interface towards radios.name(string): The name of the network interface to listen on (optional: either name or address must be provided). When set, the server binds to all IP addresses configured on this interface.address(string): The IP address to listen on (optional: either name or address must be provided). When set, the server binds to this specific address.ngap-port(int, optional): The SCTP port for the 5G N2 / NGAP listener. Default38412.s1ap-port(int, optional): The SCTP port for the 4G S1-MME / S1AP listener. Default36412.port(int, optional): Deprecated alias forngap-port. Cannot be set together withngap-port.
n3(object): The configuration for the n3 interface (N3 in 5G, S1-U in 4G). This is the user plane interface towards radios.name(string): The name of the network interface (optional: either name or address must be provided).address(string): The address to listen on (optional: either name or address must be provided).
n6(object): The configuration for the n6 interface (N6 in 5G, SGi in 4G). This interface should be connected to the internet.name(string): The name of the network interface.
api(object): The configuration for the api interface.name(string): The name of the network interface to listen on (optional: either name or address must be provided). When set, the server listens on all addresses (0.0.0.0) but usesSO_BINDTODEVICEto restrict incoming traffic to this interface. Use this when you want to bind to a device without pinning to a specific IP address.address(string): The IP address to listen on (optional: either name or address must be provided). When set, the server binds to this specific address.port(int): The port to listen on.tls(object): The TLS configuration (optional).cert(string): The path to the TLS certificate file (optional).key(string): The path to the TLS key file (optional).
datapath(object): The datapath configuration (optional). When omitted, the datapath attaches at the XDP hook in driver mode where the network interface supports it, and at the TCX hook otherwise.attach-mode(string): The kernel hook the datapath attaches to (optional):xdp-native,tcx, orxdp-generic. See the eBPF attach mode explanation.
xdp(object, deprecated): Replaced bydatapath. Cannot be set together withdatapath.attach-mode(string):nativeis equivalent todatapath.attach-mode: xdp-native,generictoxdp-generic.
telemetry(object): The telemetry configuration.enabled(boolean): Whether telemetry is enabled or not. Default isfalse.otlp-endpoint(string): The endpoint for the OpenTelemetry Protocol (OTLP) collector.
cluster(object): Clustering configuration for high-availability deployments. See Clustering.enabled(boolean): Enables HA mode. Whenfalse, Ella Core runs standalone.node-id(int, 1–63, optional, deprecated): Node identity. Deprecated, the node ID is now generated automatically.bind-address(string):host:portthe cluster listener binds to. Carries Raft consensus and cluster HTTP over mTLS.advertise-address(string, optional):host:portpeers use to reach this node. Host may be an IP or DNS name. Defaults tobind-address.peers(list of strings, optional, deprecated):host:portseed addresses. Deprecated, use the API or UI instead.join-token(string, optional, deprecated): Single-use token minted on the cluster leader. Deprecated, use the API or UI instead.initial-suffrage(string, optional, deprecated):voterornonvoter. Defaults tovoter. Deprecated, use the API or UI instead.join-timeout(duration string, optional): How long a joining node keeps trying to reach a formed peer before it gives up and exits. Defaults to2m.propose-timeout(duration string, optional): Maximum wait for a Raft commit before the API returns 503.snapshot-interval(duration string, optional): Minimum interval between automatic Raft snapshots.snapshot-threshold(int, optional): Minimum number of applied log entries between automatic snapshots.trailing-logs(int, optional): Number of Raft log entries retained after a snapshot, so a lagging follower can catch up by log replay instead of a full snapshot install. Defaults to the Raft library's default, currently10240.
Note
When you use the Ella Core snap, the configuration file is located at /var/snap/ella-core/common/core.yaml. After modifying the configuration file, restart Ella Core with sudo snap restart ella-core.cored for the changes to take effect.
Example¶
logging:
system:
level: "info"
output: "stdout"
audit:
output: "file"
path: "/var/log/ella_system.log"
db:
path: "/var/lib/ella-core/ella.db"
interfaces:
n2:
address: "22.22.22.2"
n3:
name: "ens5"
n6:
name: "ens3"
api:
address: "0.0.0.0"
port: 5002
tls:
cert: "/etc/ella/cert.pem"
key: "/etc/ella/key.pem"
datapath:
attach-mode: "xdp-native"
telemetry:
enabled: true
otlp-endpoint: "localhost:4317"
Clustering¶
Enable clustering on each node to deploy Ella Core in a high-availability configuration. See Deploy a High Availability Cluster for the walkthrough.
cluster:
bind-address: "10.0.0.1:7000"