انتقل إلى المحتوى الرئيسي

OmniUDR Operations

1. Component Overview

OmniUDR is the standalone Unified Data Repository (UDR) for the Omnitouch 5G core. It implements the Nudr_DataRepository service (TS 29.504), exposing subscriber data and policy data to UDM, AUSF, and PCF consumers via SBI. OmniUDR proxies all data requests to OmniHSS via the HSS REST API, acting as a 3GPP-compliant facade over the legacy subscriber store.

OmniUDR was previously an embedded proxy layer within OmniUDM and is now deployed as an independent NF with its own SBI endpoint and NRF registration.

2. 3GPP Role and Spec References

AspectReference
UDR functional definitionTS 23.501 Section 6.2.9
Nudr_DataRepository serviceTS 29.504
Subscription data modelTS 29.505
Policy data modelTS 29.519
Authentication subscription dataTS 29.504 Section 5.2.2
Provisioned data (AM, SM)TS 29.504 Section 5.2.3
Context data (AMF/SMF registrations)TS 29.504 Section 5.2.4
Policy data (AM/SM policy)TS 29.504 Section 5.2.5

3. SBI Endpoints

All endpoints are HTTP/1.1 with Content-Type: application/json.

Subscription Data (TS 29.504)

MethodPathDescriptionSuccess
GET/nudr-dr/v2/subscription-data/{ueId}/authentication-data/authentication-subscriptionRetrieve authentication subscription (Ki, OPc, SQN)200 OK
PATCH/nudr-dr/v2/subscription-data/{ueId}/authentication-data/authentication-subscriptionUpdate authentication subscription (SQN update)204 No Content
GET/nudr-dr/v2/subscription-data/{ueId}/{servingPlmnId}/provisioned-data/am-dataRetrieve provisioned AM data200 OK
GET/nudr-dr/v2/subscription-data/{ueId}/{servingPlmnId}/provisioned-data/sm-dataRetrieve provisioned SM data200 OK
GET/nudr-dr/v2/subscription-data/{ueId}/{servingPlmnId}/provisioned-data/smf-select-dataRetrieve SMF selection data200 OK

Context Data (TS 29.504)

MethodPathDescriptionSuccess
PUT/nudr-dr/v2/subscription-data/{ueId}/context-data/amf-3gpp-accessStore AMF registration context204 No Content
PUT/nudr-dr/v2/subscription-data/{ueId}/context-data/smf-registrations/{pduSessionId}Store SMF registration context204 No Content

Policy Data (TS 29.519)

MethodPathDescriptionSuccess
GET/nudr-dr/v2/policy-data/ues/{ueId}/am-dataRetrieve AM policy data200 OK
GET/nudr-dr/v2/policy-data/ues/{ueId}/sm-dataRetrieve SM policy data200 OK

4. Configuration Reference

OmniUDR is configured via Elixir application environment under the :omniudr key.

Example Configuration

config :omniudr,
sbi_scheme: "http",
sbi_addr: "127.0.0.22",
sbi_port: 7777,
nrf_uri: "http://127.0.0.10:7777",
mcc: "999",
mnc: "70",
heartbeat_interval: 10_000,
hss_api_base_url: "https://127.0.0.1:8443"

Parameter Table

ParameterTypeDefaultDescription
sbi_schemestring"http"URI scheme for the SBI HTTP server
sbi_addrstring"127.0.0.22"IP address the SBI HTTP server binds to
sbi_portinteger7777TCP port the SBI HTTP server listens on
nrf_uristring"http://127.0.0.10:7777"Base URI of the NRF for NF registration and heartbeat
mccstring"999"Mobile Country Code for the serving PLMN
mncstring"70"Mobile Network Code for the serving PLMN
heartbeat_intervalinteger (ms)10000Interval at which OmniUDR sends NRF heartbeat PATCH requests
hss_api_base_urlstring"https://127.0.0.1:8443"Base URL of the OmniHSS REST API. All data requests are proxied to this backend

5. Key Procedures

5.1 Authentication Subscription Retrieval

5.2 SQN Update

5.3 Provisioned Data Retrieval

5.4 Policy Data Retrieval

6. Prometheus Metrics

UDR Metrics

MetricTypeTagsDescription
omni_udr.nrf.registration.statusgaugenf_typeNRF registration status (1=registered, 0=not)
omni_udr.hss.healthgauge--HSS connectivity health (1=up, 0=down)
omni_udr.hss_requests.totalcounterendpoint, resultTotal requests to HSS backend
omni_udr.hss_request.duration_msdistributionendpointHSS request duration in milliseconds (buckets: 5, 10, 25, 50, 100, 250, 500, 1000, 2500)

BEAM VM Metrics

MetricTypeDescription
beam.memory.totalgaugeTotal BEAM memory in bytes
beam.memory.processesgaugeMemory used by Erlang processes
beam.memory.systemgaugeSystem memory (ETS, atoms, code)
beam.processes.countgaugeNumber of Erlang processes
beam.vm.uptimegaugeVM uptime in seconds

7. Known Limitations

IDAreaDescription
UDR-1Data modelThe UDR data model proxied from OmniHSS is partially implemented. Authentication subscription, AM data, and SM data are functional. Some provisioned data fields may be absent from HSS responses
UDR-2Policy dataPolicy data endpoints (/policy-data/ues/{ueId}/am-data and .../sm-data) return minimal structures derived from HSS AM/SM data. Full TS 29.519 policy data model is not supported
UDR-3SubscriptionsData change subscription and notification (Nudr_DataRepository_Subscribe) is not implemented. Consumers cannot subscribe to data change events
UDR-4SMF registrationput_smf_registration stores context locally but does not forward to OmniHSS
UDR-5In-memory proxyOmniUDR is a stateless proxy; all data at rest is owned by OmniHSS. No local caching or persistence

8. Troubleshooting

GET returns 404 for a known subscriber

OmniUDR proxies the request to OmniHSS. Confirm:

  1. hss_api_base_url is reachable from the OmniUDR host.
  2. The subscriber IMSI exists in OmniHSS.
  3. The ueId in the request path uses the imsi-{digits} format.

PATCH for SQN update returns 500

The HSS failed to accept the SQN update. Check OmniHSS logs. The UDR logs Failed to update SQN for {ueId}: {reason} but returns :ok to avoid blocking authentication flows.

Policy data queries return minimal data

The /policy-data/ endpoints derive policy structures from HSS AM/SM data rather than a dedicated policy store. This is by design in the current architecture. Full per-subscriber policy data requires a dedicated policy data store (not yet implemented).

HSS health check

Monitor omni_udr.hss.health gauge (1=up, 0=down) and omni_udr.hss_request.duration_ms for latency trends. High latency may indicate HSS overload or network issues.