OmniNEF Configuration Reference
Overview | Operations Guide | Metrics and Monitoring | Troubleshooting
All configuration lives under the :omninef application key. Compile-time defaults are in
config/config.exs (mirrored by OmniNef.Config); production deployments override a subset via
environment variables in config/runtime.exs.
Table of Contents
SBI Listener
| Key | Type | Default | Description |
|---|---|---|---|
sbi_scheme | string | "http" | Scheme advertised in the NRF profile. The listener itself serves plain HTTP. |
sbi_addr | string | "127.0.0.30" | SBI bind/advertise address. |
sbi_port | integer | 7777 | SBI listen port (northbound API + status). |
NRF and PLMN
| Key | Type | Default | Description |
|---|---|---|---|
nrf_uri | string | "http://127.0.0.10:7777" | Base URI of the NRF for registration and discovery. |
mcc | string | "999" | Served PLMN MCC. Used in the registration profile and the derived NEF FQDN. |
mnc | string | "70" | Served PLMN MNC. |
heartbeat_interval | integer (ms) | 10_000 | NRF heartbeat interval. |
nef_fqdn | string | derived | This NEF's FQDN. Defaults to nef.5gc.mnc<mnc>.mcc<mcc>.3gppnetwork.org. |
AF Registry
af_registry is a map keyed by the AF's API key. Each value scopes what the AF may do. It is empty
by default: no AF can call the NEF until one is provisioned.
config :omninef,
af_registry: %{
"af-secret-001" => %{
af_id: "af-acme", # identifier echoed into logs
allowed_apis: :all, # or a list of API atoms (see below)
rate_limit_per_sec: 20 # optional; falls back to default_rate_limit_per_sec
}
}
allowed_apis is either :all or a list drawn from:
| API atom | Northbound resource |
|---|---|
:monitoring_event | /3gpp-monitoring-event/... |
:parameter_provision | /nnef-pp/... |
:af_session_with_qos | /3gpp-as-session-with-qos/... |
:traffic_influence | /3gpp-traffic-influence/... |
The API key is presented by the AF as Authorization: Bearer <key> or X-Api-Key: <key>.
Throttling
| Key | Type | Default | Description |
|---|---|---|---|
default_rate_limit_per_sec | integer | 10 | Per-AF request ceiling applied when an AF spec omits rate_limit_per_sec. |
Throttling uses a sliding one-second window per AF. An AF at or over its ceiling receives 429.
Environment Variables
Set in config/runtime.exs for MIX_ENV=prod. Unset variables fall back to the compile-time
defaults above.
| Variable | Maps to | Default |
|---|---|---|
NEF_SBI_SCHEME | sbi_scheme | http |
NEF_SBI_ADDR | sbi_addr | 127.0.0.30 |
NEF_SBI_PORT | sbi_port | 7777 |
NEF_NRF_URI | nrf_uri | http://127.0.0.10:7777 |
NEF_MCC | mcc | 999 |
NEF_MNC | mnc | 70 |
NEF_FQDN | nef_fqdn | derived |
NEF_DEFAULT_RATE_LIMIT_PER_SEC | default_rate_limit_per_sec | 10 |
NEF_AF_REGISTRY | af_registry (JSON) | unset (empty) |
NEF_AF_REGISTRY is a JSON object of the same shape as the af_registry map, with allowed_apis
as the string "all" or an array of API-name strings:
NEF_AF_REGISTRY='{"af-secret-001":{"af_id":"af-acme","allowed_apis":"all","rate_limit_per_sec":20}}'
Malformed JSON raises at boot so a bad deployment config fails fast rather than silently disabling all AFs.