Opérations OmniUDR
1. Vue d'ensemble des composants
OmniUDR est le Référentiel de Données Unifié (UDR) autonome pour le cœur 5G d'Omnitouch. Il implémente le service Nudr_DataRepository (TS 29.504), exposant les données d'abonné et les données de politique aux consommateurs UDM, AUSF et PCF via SBI. OmniUDR proxy toutes les demandes de données vers OmniHSS via l'API REST HSS, agissant comme une façade conforme à 3GPP sur le magasin d'abonnés hérité.
OmniUDR était auparavant une couche de proxy intégrée au sein d'OmniUDM et est maintenant déployé en tant que NF indépendant avec son propre point de terminaison SBI et son enregistrement NRF.
2. Rôle 3GPP et Références de Spécifications
| Aspect | Référence |
|---|---|
| Définition fonctionnelle de l'UDR | TS 23.501 Section 6.2.9 |
| Service Nudr_DataRepository | TS 29.504 |
| Modèle de données d'abonnement | TS 29.505 |
| Modèle de données de politique | TS 29.519 |
| Données d'abonnement à l'authentification | TS 29.504 Section 5.2.2 |
| Données provisionnées (AM, SM) | TS 29.504 Section 5.2.3 |
| Données de contexte (enregistrements AMF/SMF) | TS 29.504 Section 5.2.4 |
| Données de politique (politique AM/SM) | TS 29.504 Section 5.2.5 |
3. Points de terminaison SBI
Tous les points de terminaison sont HTTP/1.1 avec Content-Type: application/json.
Données d'abonnement (TS 29.504)
| Méthode | Chemin | Description | Succès |
|---|---|---|---|
| GET | /nudr-dr/v2/subscription-data/{ueId}/authentication-data/authentication-subscription | Récupérer l'abonnement d'authentification (Ki, OPc, SQN) | 200 OK |
| PATCH | /nudr-dr/v2/subscription-data/{ueId}/authentication-data/authentication-subscription | Mettre à jour l'abonnement d'authentification (mise à jour SQN) | 204 No Content |
| GET | /nudr-dr/v2/subscription-data/{ueId}/{servingPlmnId}/provisioned-data/am-data | Récupérer les données AM provisionnées | 200 OK |
| GET | /nudr-dr/v2/subscription-data/{ueId}/{servingPlmnId}/provisioned-data/sm-data | Récupérer les données SM provisionnées | 200 OK |
| GET | /nudr-dr/v2/subscription-data/{ueId}/{servingPlmnId}/provisioned-data/smf-select-data | Récupérer les données de sélection SMF | 200 OK |
Données de contexte (TS 29.504)
| Méthode | Chemin | Description | Succès |
|---|---|---|---|
| PUT | /nudr-dr/v2/subscription-data/{ueId}/context-data/amf-3gpp-access | Stocker le contexte d'enregistrement AMF | 204 No Content |
| PUT | /nudr-dr/v2/subscription-data/{ueId}/context-data/smf-registrations/{pduSessionId} | Stocker le contexte d'enregistrement SMF | 204 No Content |
Données de politique (TS 29.519)
| Méthode | Chemin | Description | Succès |
|---|---|---|---|
| GET | /nudr-dr/v2/policy-data/ues/{ueId}/am-data | Récupérer les données de politique AM | 200 OK |
| GET | /nudr-dr/v2/policy-data/ues/{ueId}/sm-data | Récupérer les données de politique SM | 200 OK |
4. Référence de Configuration
OmniUDR est configuré via l'environnement d'application Elixir sous la clé :omniudr.
Exemple de 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"
Tableau des Paramètres
| Paramètre | Type | Par défaut | Description |
|---|---|---|---|
sbi_scheme | chaîne | "http" | Schéma URI pour le serveur HTTP SBI |
sbi_addr | chaîne | "127.0.0.22" | Adresse IP à laquelle le serveur HTTP SBI se lie |
sbi_port | entier | 7777 | Port TCP sur lequel le serveur HTTP SBI écoute |
nrf_uri | chaîne | "http://127.0.0.10:7777" | URI de base du NRF pour l'enregistrement NF et le heartbeat |
mcc | chaîne | "999" | Code de Pays Mobile pour le PLMN de service |
mnc | chaîne | "70" | Code de Réseau Mobile pour le PLMN de service |
heartbeat_interval | entier (ms) | 10000 | Intervalle auquel OmniUDR envoie des requêtes PATCH de heartbeat NRF |
hss_api_base_url | chaîne | "https://127.0.0.1:8443" | URL de base de l'API REST OmniHSS. Toutes les demandes de données sont proxy vers ce backend |
5. Procédures Clés
5.1 Récupération de l'Abonnement d'Authentification
5.2 Mise à Jour de SQN
5.3 Récupération des Données Provisionnées
5.4 Récupération des Données de Politique
6. Métriques Prometheus
Métriques UDR
| Métrique | Type | Tags | Description |
|---|---|---|---|
omni_udr.nrf.registration.status | gauge | nf_type | Statut d'enregistrement NRF (1=registré, 0=non) |
omni_udr.hss.health | gauge | -- | Santé de la connectivité HSS (1=up, 0=down) |
omni_udr.hss_requests.total | counter | endpoint, result | Total des demandes au backend HSS |
omni_udr.hss_request.duration_ms | distribution | endpoint | Durée de la demande HSS en millisecondes (buckets: 5, 10, 25, 50, 100, 250, 500, 1000, 2500) |
Métriques BEAM VM
| Métrique | Type | Description |
|---|---|---|
beam.memory.total | gauge | Mémoire totale BEAM en octets |
beam.memory.processes | gauge | Mémoire utilisée par les processus Erlang |
beam.memory.system | gauge | Mémoire système (ETS, atomes, code) |
beam.processes.count | gauge | Nombre de processus Erlang |
beam.vm.uptime | gauge | Temps de fonctionnement de la VM en secondes |
7. Limitations Connues
| ID | Domaine | Description |
|---|---|---|
| UDR-1 | Modèle de données | Le modèle de données UDR proxy depuis OmniHSS est partiellement implémenté. L'abonnement d'authentification, les données AM et les données SM sont fonctionnels. Certains champs de données provisionnées peuvent être absents des réponses HSS |
| UDR-2 | Données de politique | Les points de terminaison de données de politique (/policy-data/ues/{ueId}/am-data et .../sm-data) renvoient des structures minimales dérivées des données AM/SM HSS. Le modèle de données de politique complet TS 29.519 n'est pas pris en charge |
| UDR-3 | Abonnements | L'abonnement aux changements de données et la notification (Nudr_DataRepository_Subscribe) ne sont pas implémentés. Les consommateurs ne peuvent pas s'abonner aux événements de changement de données |
| UDR-4 | Enregistrement SMF | put_smf_registration stocke le contexte localement mais ne le transmet pas à OmniHSS |
| UDR-5 | Proxy en mémoire | OmniUDR est un proxy sans état ; toutes les données au repos appartiennent à OmniHSS. Pas de mise en cache ou de persistance locale |
8. Dépannage
GET renvoie 404 pour un abonné connu
OmniUDR proxy la demande vers OmniHSS. Confirmez :
hss_api_base_urlest accessible depuis l'hôte OmniUDR.- L'IMSI de l'abonné existe dans OmniHSS.
- L'
ueIddans le chemin de la demande utilise le formatimsi-{chiffres}.
PATCH pour la mise à jour de SQN renvoie 500
Le HSS n'a pas réussi à accepter la mise à jour de SQN. Vérifiez les journaux d'OmniHSS. Le UDR journalise Failed to update SQN for {ueId}: {reason} mais renvoie :ok pour éviter de bloquer les flux d'authentification.
Les requêtes de données de politique renvoient des données minimales
Les points de terminaison /policy-data/ dérivent les structures de politique des données AM/SM HSS plutôt que d'un magasin de politique dédié. Cela est intentionnel dans l'architecture actuelle. Des données de politique complètes par abonné nécessitent un magasin de données de politique dédié (pas encore implémenté).
Vérification de la santé HSS
Surveillez la jauge omni_udr.hss.health (1=up, 0=down) et omni_udr.hss_request.duration_ms pour les tendances de latence. Une latence élevée peut indiquer une surcharge HSS ou des problèmes de réseau.