Aller au contenu principal

OmniNSSF

OmniNSSF implémente la Fonction de Sélection de Tranche de Réseau (NSSF) du cœur 5G. Le NSSF est l'autorité pour les décisions de découpage de réseau : il indique à l'AMF quelles tranches un UE est autorisé à utiliser, où la découverte NF spécifique à la tranche doit être dirigée (le NRF cible pour une Instance de Tranche de Réseau), et quel ensemble d'AMF peut servir une tranche donnée. Il collecte également et autorise la disponibilité des tranches par Zone de Suivi (Tracking Area) rapportée par les AMF.

OmniNSSF expose deux services d'Interface Basée sur les Services 5G (SBI) - Nnssf_NSSelection (nnssf-nsselection/v2), interrogé par l'AMF lors de l'enregistrement de l'UE et de l'établissement de la session PDU pour résoudre un S-NSSAI demandé / souscrit en un NSSAI autorisé, des informations NSI (NRF cible), un ensemble d'AMF cible, et (pour les UEs en itinérance) un mappage NSSAI configuré ; et Nnssf_NSSAIAvailability (nnssf-nssaiavailability/v1), qui reçoit des mises à jour de disponibilité S-NSSAI par Zone de Suivi (TAI) poussées par les AMF et gère l'abonnement / notification des changements de disponibilité. La topologie des tranches et la disponibilité par AMF sont conservées dans des magasins en mémoire qui sont reconstruits à partir de la configuration et des rapports AMF en direct après un redémarrage.

Documentation

  • Guide des Opérations - rôle 3GPP, points de terminaison SBI, et les procédures clés de sélection de tranche et de disponibilité NSSAI avec des diagrammes de séquence.
  • Référence de Configuration - Référence complète de configuration à l'exécution, tables de paramètres de topologie de tranche, API de gestion/OAM, et journalisation.
  • Métriques - Métriques Prometheus pour la sélection de tranche, les mises à jour de disponibilité, l'enregistrement NRF, et la santé de la VM BEAM, avec exemple de PromQL.
  • Dépannage - Problèmes courants et leurs résolutions.

Vue d'Ensemble de l'Architecture

Vue d'Ensemble des Fonctionnalités

  • Sélection de tranche pour l'enregistrement et la session PDU - résout le S-NSSAI demandé / souscrit en informations NSI, NSSAI autorisé, ensemble d'AMF cible, et NSSAI configuré.
  • Mappage NSI vers NRF - dirige la découverte NF spécifique à la tranche vers le bon NRF par tranche.
  • NSSAI autorisé par PLMN avec retour au PLMN d'origine.
  • Filtrage de disponibilité conscient du TAI - le NSSAI autorisé et la sélection de tranche respectent la disponibilité par TAI rapportée par les AMF ; permissif lorsque aucune donnée de disponibilité n'existe.
  • Gestion de la disponibilité NSSAI - PUT/PATCH/DELETE de la disponibilité par AMF, avec support de JSON Patch (RFC 6902).
  • Abonnements et notifications de disponibilité - POST/PATCH/DELETE des abonnements avec notifications de changement livrées hors du chemin de demande avec des tentatives limitées.
  • Découverte NRF dynamique optionnelle - lorsqu'elle est activée, le NSSF résout le NRF servant la tranche au moment de l'exécution à partir du NRF racine via Nnrf_NFDiscovery, revenant à la nsi_list configurée statiquement lorsque la découverte ne donne rien. Désactivé par défaut (uniquement nsi_list statique).
  • Négociation des fonctionnalités supportées - annonce le bit de fonctionnalité NssaiAvailability et retourne l'intersection négociée.
  • Enregistrement et heartbeat NRF - enregistrement automatique au démarrage avec des heartbeats périodiques ; annonce à la fois nnssf-nsselection (v2) et nnssf-nssaiavailability (v1).
  • OAM à l'exécution - inspecter et ajuster la topologie de tranche, l'URI NRF, la capacité/priorité, et le niveau de journalisation sans redémarrage.
  • Journalisation JSON structurée et métriques Prometheus.

Démarrage Rapide

OmniNSSF est configuré via des variables d'environnement du système lues au démarrage. La configuration principale à l'exécution est :

config :omnissf,
sbi_scheme: System.get_env("SBI_SCHEME", "http"),
sbi_addr: System.get_env("SBI_ADDR", "127.0.0.14"),
sbi_port: String.to_integer(System.get_env("SBI_PORT", "7777")),
nrf_uri: System.get_env("NRF_URI", "http://127.0.0.1:7777"),
mcc: System.get_env("MCC", "999"),
mnc: System.get_env("MNC", "70"),
prometheus_metrics_port: String.to_integer(System.get_env("PROMETHEUS_PORT", "9568")),
heartbeat_interval: String.to_integer(System.get_env("HEARTBEAT_INTERVAL", "10000"))

La topologie de tranche (liste NSI, NSSAI autorisé, mappage d'ensemble AMF, NSSAI configuré) est fournie via une configuration d'application structurelle. La référence complète des paramètres, y compris les tables de topologie de tranche et l'API de gestion/OAM, se trouve dans la Référence de Configuration.