OmniPCF
OmniPCF implémente la Fonction de Contrôle de Politique (PCF) du cœur 5G d'Omnitouch. C'est le point de décision de politique du réseau : il indique au SMF comment chaque session PDU doit être traitée (règles PCC, session-AMBR, QoS par flux) et indique à l'AMF la politique d'accès et de mobilité pour chaque UE enregistré. Il expose également le service d'autorisation de politique orienté vers la fonction d'application qui transforme un appel IMS/VoNR en un flux à débit garanti dédié.
OmniPCF sert trois services SBI : Npcf_SMPolicyControl (TS 29.512), Npcf_AMPolicyControl (TS 29.507), et Npcf_PolicyAuthorization (TS 29.514). Il récupère les données de politique par abonné depuis le UDR (Nudr_DataRepository, TS 29.519), enregistre le lien adresse-UE-à-PCF dans le BSF (Nbsf_Management, TS 29.521), et s'enregistre/émet des signaux de cœur avec le NRF. Les associations de politique sont un état d'exécution conservé en mémoire ; le UDR est la source autorisée des données de politique des abonnés, et les associations sont rétablies par le SMF et l'AMF au fur et à mesure que les sessions et les enregistrements sont établis.
Documentation
- Guide des opérations : Concepts de base, références 3GPP, points de terminaison SBI, et les procédures de politique clés avec des diagrammes de séquence.
- Référence de configuration : Référence complète de configuration d'exécution, valeurs par défaut de politique compilées, API de gestion/OAM, et journalisation.
- Métriques & Surveillance : Référence des métriques Prometheus et exemples de requêtes PromQL.
- Dépannage : Problèmes courants et résolutions.
Vue d'ensemble de l'architecture
Vue d'ensemble des fonctionnalités
- Cycle de vie complet de
Npcf_SMPolicyControl: création, lecture, mise à jour et suppression de l'association de politique SM, retournant unSmPolicyDecision(règles de session, règles PCC, décisions QoS, contrôle de trafic, déclencheurs de contrôle de politique) par TS 29.512. - Cycle de vie complet de
Npcf_AMPolicyControl: création, lecture, mise à jour et suppression de l'association de politique AM, retournant l'UE-AMBR autorisé et les déclencheurs de politique par TS 29.507. Npcf_PolicyAuthorizationpour AF/IMS : Contextes de session d'application, sous-ressource d'abonnement aux événements, et restauration de P-CSCF ; les composants médias AF (AUDIO/VIDEO) sont traduits en règles PCC GBR dédiées et poussés vers le SMF propriétaire pour VoNR.- Politique pilotée par UDR : les données de politique SM/AM par abonné sont récupérées depuis le UDR (Nudr-DR v2) ; les règles de facturation de porteur dédié statiques provisionnées dans le UDR deviennent des flux QoS 5G dédiés. Revertit à une politique par défaut sûre lorsque le UDR n'est pas disponible.
- Enregistrement de liaison BSF : le lien adresse-UE-à-PCF est enregistré dans le BSF afin qu'un AF puisse découvrir ce PCF pour QoS initiée par AF.
- Abonnements aux changements de données de politique : le PCF s'abonne aux notifications de changement de données de politique UDR et réagit aux changements pour les associations affectées.
- Négociation de fonctionnalités prises en charge :
suppFeatest négocié par AND bit à bit contre chaque bitmap de service pris en charge. - API de gestion opérateur et métriques Prometheus pour l'observabilité et le contrôle en temps réel. Un panneau de contrôle LiveView (ressources, configuration, licence et vues de journal) est servi via HTTPS sur le port
7443aux côtés de l'API de gestion REST.
Démarrage rapide
OmniPCF lit sa configuration à partir de la clé d'environnement d'application :omnipcf. Le mécanisme de déploiement standard est config/runtime.exs, qui associe chaque valeur d'une variable d'environnement OS avec une valeur par défaut intégrée.
config :omnipcf,
sbi_scheme: System.get_env("SBI_SCHEME", "http"),
sbi_addr: System.get_env("SBI_ADDR", "127.0.0.13"),
sbi_port: String.to_integer(System.get_env("SBI_PORT", "7777")),
nrf_uri: System.get_env("NRF_URI", "http://127.0.0.1:7777"),
udr_uri: System.get_env("UDR_URI", "http://127.0.0.12:7777"),
bsf_uri: System.get_env("BSF_URI", "http://127.0.0.15:7777"),
mcc: System.get_env("MCC", "999"),
mnc: System.get_env("MNC", "70"),
heartbeat_interval: String.to_integer(System.get_env("HEARTBEAT_INTERVAL", "10000")),
prometheus_metrics_port: String.to_integer(System.get_env("PROMETHEUS_PORT", "9568"))
La référence complète des paramètres, les valeurs par défaut de politique compilées, l'API de gestion/OAM, et les notes de journalisation se trouvent dans la Référence de configuration.