OmniAMF
OmniAMF est la Fonction de Gestion d'Accès et de Mobilité (AMF) pour le Cœur 5G d'Omnitouch. Il termine les interfaces N1 (NAS) et N2 (NGAP) du réseau d'accès radio 5G (gNBs) et orchestre l'enregistrement des UE, l'authentification, la mobilité, la gestion des connexions, la pagination et le relais de signalisation de session PDU.
Il participe à l'Architecture Basée sur les Services 5G (SBA) via l'SBI, produisant et consommant des services Namf et d'autres NF, et fournit l'interfonctionnement N26 EPS↔5GS avec un MME 4G. OmniAMF est l'ancre de mobilité et de connexion pour chaque UE dans le Cœur 5G : il accepte les associations SCTP/NGAP des gNBs, termine la signalisation NAS relayée à l'intérieur de NGAP, et coordonne avec des NF pairs pour authentifier l'UE, récupérer les données d'abonnement, sélectionner des tranches, et gérer les sessions PDU.
Documentation
- Guide des Opérations - Concepts de base, références 3GPP, interfaces / points de terminaison SBI, et procédures clés avec leurs diagrammes de séquence.
- Référence de Configuration - Documentation complète des paramètres, des points de terminaison de l'API de gestion/OAM, et notes de journalisation.
- API de Gestion - API REST OAM pour l'opérateur : état/inventaire, configuration d'exécution, et actions de contrôle UE/gNB/NRF/maintenance.
- Métriques & Surveillance - Métriques Prometheus et exemples de requêtes PromQL.
- Dépannage - Problèmes courants et résolutions.
Vue d'Ensemble de l'Architecture
Chaque UE est géré par un processus UeWorker dédié supervisé sous un superviseur UE. Les messages NGAP sont démultiplexés par les identifiants UE NGAP vers le worker propriétaire, de sorte que les machines d'état UE fonctionnent en isolation. Un Magasin de Contexte GUTI soutenu par ETS persiste le contexte de sécurité NAS natif 5G de chaque UE (SUPI, K_AMF, comptes NAS, capacités de sécurité) indexé par 5G-TMSI, indépendamment de la durée de vie du worker. Cela survit à la rotation des workers et permet à une UE revenant du mode inactif de reprendre sans ré-authentification.
Vue d'Ensemble des Fonctionnalités
- Terminaison NGAP / N2 - accepte les associations SCTP des gNBs ; gère la configuration NG, le message initial UE, la configuration/libération de contexte UE, le transport NAS, la pagination, et la préparation de transfert (TS 38.413).
- Enregistrement UE et 5G-AKA - orchestre l'authentification avec l'AUSF et la récupération d'abonnement / enregistrement UECM avec l'UDM.
- Sécurité NAS : dérive K_AMF et les clés NAS, exécute le Contrôle de Mode de Sécurité, et négocie l'intégrité NAS (NIA) et le chiffrement (NEA) selon les capacités de l'UE, préférant NIA2/NEA2 et revenant à NIA0/NEA0. Définissez
force_null_cipheringpour forcer NEA0 (chiffrement nul) indépendamment des capacités de l'UE. - Allocation de GUTI basée sur GUAMI - alloue des 5G-GUTIs à partir du GUAMI configuré et prend en charge la reprise de GUTI en mode inactif via le magasin de contexte soutenu par ETS.
- Pagination et Demande de Service - page les UE CM-IDLE à travers leur liste TAI et réactive le plan utilisateur sur Demande de Service.
- Relais de session PDU (N11) - relaye NAS 5GSM vers/depuis le SMF et dirige la configuration/modification des ressources de session PDU N2 vers le gNB.
- Politique AM PCF (N15) - crée et supprime des associations de politique d'accès et de mobilité lors de l'enregistrement et de la désinscription.
- Découverte NF - résout les URI NF pairs via la découverte NRF avec un fallback statique par NF (cache de 60 s).
- Interfonctionnement N26 EPS↔5GS - point de terminaison GTPv2-C optionnel pour le transfert inter-systèmes avec un MME 4G, y compris la découverte MME S-NAPTR.
- Services Namf - produit Namf_Communication (transfert N1N2, transfert de contexte, attribution EBI, abonnements d'état) et Namf_EventExposure.
- Gestion de l'opérateur - API REST de gestion et Panneau de Contrôle web pour l'inspection de l'état et les actions OAM.
Démarrage Rapide
OmniAMF lit la configuration de l'opérateur depuis l'environnement de l'application Elixir sous la clé :omniamf, peuplée au démarrage depuis config/runtime.exs. Chaque clé d'exécution est pilotée par une variable d'environnement avec une valeur par défaut intégrée, de sorte qu'un déploiement peut être entièrement ajusté via des variables d'environnement.
config :omniamf,
# Serveur HTTP SBI (services Namf produits)
sbi_scheme: "http",
sbi_addr: "127.0.0.5",
sbi_port: 7777,
# NRF (enregistrement, battement de cœur, découverte)
nrf_uri: "http://127.0.0.1:7777",
# URI de base des NF pairs consommés (fallback statiques ; découverte NRF préférée)
ausf_uri: "http://127.0.0.12:7777",
udm_uri: "http://127.0.0.12:7777",
smf_uri: "http://127.0.0.4:7777",
nssf_uri: "http://127.0.0.14:7777",
# PLMN de service
mcc: "999",
mnc: "70",
# Identité AMF (GUAMI)
amf_name: "OmniAMF",
amf_id: %{region_id: 2, set_id: 1, pointer: 0},
# Observabilité
prometheus_metrics_port: 9569,
# N2 / NGAP (écouteur SCTP pour gNBs)
ngap_addr: "0.0.0.0",
ngap_port: 38412,
# Cadence de battement de cœur NRF
heartbeat_interval: 10_000,
# Interfonctionnement N26 EPS↔5GS avec un MME 4G
n26_enabled: true,
n26_addr: "0.0.0.0",
n26_mme_peer: %{ip: "127.0.0.11", port: 2123}
La documentation complète de chaque paramètre, y compris les clés de configuration d'application avancées et l'API de gestion/OAM, se trouve dans la Référence de Configuration.