Guide des Opérations OmniUPF
Table des Matières
- Aperçu
- Comprendre l'Architecture du Plan Utilisateur 5G
- Composants du UPF
- Protocole PFCP et Intégration SMF
- Opérations Courantes
- Dépannage
- Documentation Supplémentaire
- Glossaire
Aperçu
OmniUPF (Fonction de Plan Utilisateur basée sur eBPF) est une fonction de plan utilisateur 5G/LTE haute performance qui fournit un transfert de paquets de qualité opérateur, une application de la qualité de service (QoS) et une gestion du trafic pour les réseaux mobiles. Basé sur la technologie eBPF (Extended Berkeley Packet Filter) de Linux et amélioré avec des capacités de gestion complètes, OmniUPF fournit l'infrastructure de traitement de paquets essentielle requise pour les réseaux 5G SA, 5G NSA et LTE.
Qu'est-ce qu'une Fonction de Plan Utilisateur ?
La Fonction de Plan Utilisateur (UPF) est l'élément de réseau standardisé par 3GPP responsable du traitement et du transfert de paquets dans les réseaux 5G et LTE. Elle fournit :
- Transfert de paquets à haute vitesse entre les appareils mobiles et les réseaux de données
- Application de la Qualité de Service (QoS) pour différents types de trafic
- Détection et routage du trafic basés sur des filtres et des règles de paquets
- Rapports d'utilisation pour la facturation et l'analyse
- Mise en mémoire tampon des paquets pour les scénarios de gestion de mobilité et de session
- Support d'interception légale pour la conformité réglementaire
OmniUPF implémente l'ensemble des fonctionnalités UPF définies dans 3GPP TS 23.501 (5G) et TS 23.401 (LTE), fournissant une solution de plan utilisateur complète et prête pour la production utilisant la technologie eBPF du noyau Linux pour des performances maximales.
Capacités Clés d'OmniUPF
Traitement des Paquets :
- Traitement complet des paquets de plan utilisateur conforme à 3GPP
- Chemin de données basé sur eBPF pour des performances au niveau du noyau
- Encapsulation et décapsulation GTP-U (GPRS Tunneling Protocol)
- Support IPv4 et IPv6 pour les réseaux d'accès et de données
- XDP (eXpress Data Path) pour un traitement à latence ultra-faible
- Traitement des paquets multi-threadé
QoS et Gestion du Trafic :
- Règles d'application de la QoS (QER) pour la gestion de la bande passante
- Règles de détection de paquets (PDR) pour la classification du trafic
- Règles d'action de transfert (FAR) pour les décisions de routage
- Filtrage de flux de données de service (SDF) pour le routage spécifique aux applications
- Règles de rapport d'utilisation (URR) pour le suivi des volumes et la facturation
Contrôle et Gestion :
- Interface PFCP (Packet Forwarding Control Protocol) vers SMF/PGW-C
- API RESTful pour la surveillance et le diagnostic
- Statistiques et métriques en temps réel
- Surveillance de la capacité des cartes eBPF
- Panneau de contrôle basé sur le web
Fonctionnalités de Performance :
- Traitement de paquets sans copie via eBPF
- Transfert de paquets au niveau du noyau (sans surcharge d'espace utilisateur)
- Scalabilité multi-cœurs
- Capable de décharger pour l'accélération matérielle
- Optimisé pour les déploiements cloud-natifs
Pour des détails sur l'utilisation du panneau de contrôle, voir Opérations de l'Interface Web.
Comprendre l'Architecture du Plan Utilisateur
OmniUPF est une solution de plan utilisateur unifiée fournissant un transfert de paquets de qualité opérateur pour les réseaux 5G Standalone (SA), 5G NSA et 4G LTE/EPC. OmniUPF est un produit unique qui peut simultanément fonctionner comme :
- UPF (Fonction de Plan Utilisateur) - plan utilisateur 5G/NSA (contrôlé par OmniSMF via N4/PFCP)
- PGW-U (PDN Gateway User Plane) - passerelle 4G EPC vers des réseaux externes (contrôlé par OmniPGW-C via Sxc/PFCP)
- SGW-U (Serving Gateway User Plane) - passerelle de service 4G EPC (contrôlé par OmniSGW-C via Sxb/PFCP)
OmniUPF peut fonctionner dans n'importe quelle combinaison de ces modes :
- UPF uniquement : Déploiement pur 5G
- PGW-U + SGW-U : Passerelle 4G combinée (déploiement EPC typique)
- UPF + PGW-U + SGW-U : Support simultané 4G et 5G (scénario de migration)
Tous les modes utilisent le même moteur de traitement de paquets basé sur eBPF et le protocole PFCP, offrant des performances élevées constantes qu'il fonctionne comme UPF, PGW-U, SGW-U, ou les trois simultanément.
Architecture du Réseau 5G (Mode SA)
La solution OmniUPF se situe au niveau du plan de données des réseaux 5G, fournissant la couche de transfert de paquets à haute vitesse qui connecte les appareils mobiles aux réseaux et services de données.
Architecture du Réseau 4G LTE/EPC
OmniUPF prend également en charge les déploiements 4G LTE et EPC (Evolved Packet Core), fonctionnant soit comme OmniPGW-U soit comme OmniSGW-U en fonction de l'architecture du réseau.
Mode PGW-U/SGW-U Combiné (Déploiement 4G Typique)
Dans ce mode, OmniUPF agit à la fois comme SGW-U et PGW-U, contrôlé par des fonctions de plan de contrôle distinctes.
Mode SGW-U et PGW-U Séparés (Roaming/Multi-Site)
Dans les déploiements de roaming ou multi-site, deux instances OmniUPF distinctes peuvent être déployées - une comme SGW-U et une comme PGW-U.
Mode Boucle N9 (Instance Unique SGWU+PGWU)
Pour des déploiements simplifiés, OmniUPF peut exécuter à la fois les rôles SGWU et PGWU sur une seule instance avec un traitement de boucle N9 entièrement en eBPF.
Caractéristiques Clés :
- ✅ Latence N9 sub-microseconde - Traitée entièrement en eBPF, ne touche jamais le réseau
- ✅ Réduction CPU de 40-50% - Un seul passage XDP contre deux instances séparées
- ✅ Déploiement simplifié - Une instance, un fichier de configuration
- ✅ Détection automatique - Lorsque
n3_address=n9_address, la boucle est activée - ✅ Conformité complète 3GPP - Protocoles PFCP et GTP-U standard
Configuration :
# /etc/omniupf/runtime.exs
xdp_interfaces = "eth0"
n3_address = "10.0.1.10" # IP de l'interface S1-U
n9_address = n3_address # La même IP active la boucle N9
pfcp_address = "10.0.1.10" # Les deux SGWU-C et PGWU-C se connectent ici
pfcp_port = 8805
Quand l'utiliser :
- Déploiements de calcul en périphérie (minimiser la latence)
- Environnements à coûts contraints (serveur unique)
- Laboratoire/test (configuration simplifiée)
- Déploiements petits à moyens (< 100K abonnés)
Quand NE PAS utiliser :
- Redondance géographique requise (SGWU et PGWU dans des emplacements différents)
- Mandats réglementaires pour des passerelles séparées
- Échelle massive (> 1M abonnés)
Pour des détails complets, des exemples de configuration, du dépannage et des métriques de performance, voir Guide des Opérations de Boucle N9.
Comment Fonctionnent les Fonctions de Plan Utilisateur dans le Réseau
La fonction de plan utilisateur (OmniUPF, OmniPGW-U ou OmniSGW-U) fonctionne comme le plan de transfert contrôlé par le plan de contrôle respectif :
-
Établissement de Session
- 5G : OmniSMF établit l'association PFCP via l'interface N4 avec OmniUPF
- 4G : OmniPGW-C ou OmniSGW-C établit l'association PFCP via Sxb/Sxc avec OmniPGW-U/OmniSGW-U
- Le plan de contrôle crée des sessions PFCP pour chaque session PDU UE (5G) ou contexte PDP (4G)
- Le plan utilisateur reçoit des règles PDR, FAR, QER et URR via PFCP
- Les cartes eBPF sont peuplées avec des règles de transfert
-
Traitement des Paquets Montants (UE → Réseau de Données)
- 5G : Les paquets arrivent sur l'interface N3 depuis gNB avec encapsulation GTP-U
- 4G : Les paquets arrivent sur l'interface S1-U (SGW-U) ou S5/S8 (PGW-U) depuis eNodeB avec encapsulation GTP-U
- Le plan utilisateur fait correspondre les paquets aux PDRs montants basés sur TEID
- Le programme eBPF applique QER (limitation de débit, marquage)
- FAR détermine l'action de transfert (transférer, supprimer, mettre en mémoire tampon, dupliquer)
- Tunnel GTP-U retiré, paquets transférés à l'interface N6 (5G) ou SGi (4G)
- URR suit les comptes de paquets et d'octets pour la facturation
-
Traitement des Paquets Descendants (Réseau de Données → UE)
- 5G : Les paquets arrivent sur l'interface N6 sous forme d'IP native
- 4G : Les paquets arrivent sur l'interface SGi sous forme d'IP native
- Le plan utilisateur fait correspondre les paquets aux PDRs descendants basés sur l'adresse IP de l'UE
- Les filtres SDF peuvent classifier davantage le trafic par port, protocole ou application
- FAR détermine le tunnel GTP-U et les paramètres de transfert
- L'encapsulation GTP-U est ajoutée avec le TEID approprié
- 5G : Les paquets sont transférés à l'interface N3 vers gNB
- 4G : Les paquets sont transférés à S1-U (SGW-U) ou S5/S8 (PGW-U) vers eNodeB
-
Mobilité et Transfert
- 5G : OmniSMF met à jour les règles PDR/FAR lors des scénarios de transfert
- 4G : OmniSGW-C/OmniPGW-C met à jour les règles lors du transfert inter-eNodeB ou TAU (Mise à Jour de Zone de Suivi)
- Le plan utilisateur peut mettre en mémoire tampon les paquets lors du changement de chemin
- Transition transparente entre les stations de base sans perte de paquets
Intégration avec le Plan de Contrôle (4G et 5G)
OmniUPF s'intègre avec les fonctions de plan de contrôle 5G et 4G via des interfaces 3GPP standard :
Interfaces 5G
| Interface | De → À | Objectif | Spécification 3GPP |
|---|---|---|---|
| N4 | OmniSMF ↔ OmniUPF | Établissement, modification, suppression de session PFCP | TS 29.244 |
| N3 | gNB → OmniUPF | Trafic de plan utilisateur depuis RAN (GTP-U) | TS 29.281 |
| N6 | OmniUPF → Réseau de Données | Trafic de plan utilisateur vers DN (IP native) | TS 23.501 |
| N9 | OmniUPF ↔ OmniUPF | Communication inter-UPF pour roaming/périphérie | TS 23.501 |
Interfaces 4G/EPC
| Interface | De → À | Objectif | Spécification 3GPP |
|---|---|---|---|
| Sxb | OmniSGW-C ↔ OmniUPF (mode SGW-U) | Contrôle de session PFCP pour la passerelle de service | TS 29.244 |
| Sxc | OmniPGW-C ↔ OmniUPF (mode PGW-U) | Contrôle de session PFCP pour la passerelle PDN | TS 29.244 |
| S1-U | eNodeB → OmniUPF (mode SGW-U) | Trafic de plan utilisateur depuis RAN (GTP-U) | TS 29.281 |
| S5/S8 | OmniUPF (SGW-U) ↔ OmniUPF (PGW-U) | Plan utilisateur inter-passerelle (GTP-U) | TS 29.281 |
| SGi | OmniUPF (mode PGW-U) → PDN | Trafic de plan utilisateur vers le réseau de données (IP native) | TS 23.401 |
Remarque : Toutes les interfaces PFCP (N4, Sxb, Sxc) utilisent le même protocole PFCP défini dans TS 29.244. Les noms d'interface diffèrent mais le protocole et les formats de message sont identiques.
Composants du UPF
Chemin de Données eBPF
Le chemin de données eBPF est le moteur de traitement de paquets central qui fonctionne dans le noyau Linux pour des performances maximales.
Fonctions Principales :
- Traitement GTP-U : Encapsulation et décapsulation des tunnels GTP-U
- Classification des Paquets : Correspondance des paquets avec les règles PDR en utilisant TEID, IP de l'UE ou filtres SDF
- Application de la QoS : Appliquer la limitation de débit et le marquage des paquets selon les règles QER
- Décisions de Transfert : Exécuter les actions FAR (transférer, supprimer, mettre en mémoire tampon, dupliquer, notifier)
- Suivi d'Utilisation : Incrémenter les compteurs URR pour la facturation basée sur le volume
Cartes eBPF : Le chemin de données utilise des cartes eBPF (tables de hachage dans la mémoire du noyau) pour le stockage des règles :
| Nom de la Carte | Objectif | Clé | Valeur |
|---|---|---|---|
uplink_pdr_map | PDRs montants | TEID (32 bits) | Infos PDR (ID FAR, ID QER, IDs URR) |
downlink_pdr_map | PDRs descendants (IPv4) | Adresse IP de l'UE | Infos PDR |
downlink_pdr_map_ip6 | PDRs descendants (IPv6) | Adresse IPv6 de l'UE | Infos PDR |
far_map | Règles de transfert | ID FAR | Paramètres de transfert (action, infos de tunnel) |
qer_map | Règles de QoS | ID QER | Paramètres de QoS (MBR, GBR, marquage) |
urr_map | Suivi d'utilisation | ID URR | Compteurs de volume (montant, descendant, total) |
sdf_filter_map | Filtres SDF | ID PDR | Filtres d'application (ports, protocoles) |
Caractéristiques de Performance :
- Zéro-copie : Paquets traités entièrement dans l'espace du noyau
- Support XDP : Attacher au niveau du pilote réseau pour une latence sub-microseconde
- Multi-cœur : Se développe sur les cœurs CPU avec un support de carte par CPU
- Capacité : Millions de PDRs/FARs dans les cartes eBPF (limité par la mémoire du noyau)
Pour la surveillance de la capacité, voir Gestion de Capacité.
Gestionnaire d'Interface PFCP
L'interface PFCP implémente 3GPP TS 29.244 pour la communication avec SMF ou PGW-C.
Fonctions Principales :
- Gestion d'Association : Cœur de PFCP et configuration de l'association
- Cycle de Vie de Session : Créer, modifier et supprimer des sessions PFCP
- Installation de Règles : Traduire les IE PFCP en entrées de carte eBPF
- Rapports d'Événements : Notifier SMF des seuils d'utilisation, des erreurs ou des événements de session
Support de Message PFCP :
| Type de Message | Direction | Objectif |
|---|---|---|
| Établissement d'Association | SMF → UPF | Établir l'association de contrôle PFCP |
| Libération d'Association | SMF → UPF | Détruire l'association PFCP |
| Cœur de Vie | Bidirectionnel | Maintenir l'association active |
| Établissement de Session | SMF → UPF | Créer une nouvelle session PDU avec PDR/FAR/QER/URR |
| Modification de Session | SMF → UPF | Mettre à jour les règles pour la mobilité, les changements de QoS |
| Suppression de Session | SMF → UPF | Supprimer la session et toutes les règles associées |
| Rapport de Session | UPF → SMF | Rapporter l'utilisation, les erreurs ou les événements |
Éléments d'Information (IE) Supportés :
- Créer PDR, FAR, QER, URR
- Mettre à jour PDR, FAR, QER, URR
- Supprimer PDR, FAR, QER, URR
- Informations de Détection de Paquet (IP de l'UE, F-TEID, filtre SDF)
- Paramètres de Transfert (instance réseau, création d'en-tête externe)
- Paramètres de QoS (MBR, GBR, QFI)
- Déclencheurs de Rapport d'Utilisation (seuil de volume, seuil de temps)
Serveur API REST
L'API REST fournit un accès programmatique à l'état et aux opérations du UPF.
Fonctions Principales :
- Surveillance de Session : Interroger les sessions PFCP actives et les associations
- Inspection des Règles : Voir les configurations PDR, FAR, QER, URR
- Statistiques : Récupérer les compteurs de paquets, les statistiques de route, les statistiques XDP
- Gestion des Tampons : Voir et contrôler les tampons de paquets
- Informations sur les Cartes : Surveiller l'utilisation et la capacité des cartes eBPF
Points de Terminaison API : (34 points de terminaison au total)
| Catégorie | Points de Terminaison | Description |
|---|---|---|
| Santé | /health | Vérification de santé et état |
| Configuration | /config | Configuration du UPF |
| Sessions | /pfcp_sessions, /pfcp_associations | Données de session/association PFCP |
| PDRs | /uplink_pdr_map, /downlink_pdr_map, /downlink_pdr_map_ip6, /uplink_pdr_map_ip6 | Règles de détection de paquets |
| FARs | /far_map | Règles d'action de transfert |
| QERs | /qer_map | Règles d'application de la QoS |
| URRs | /urr_map | Règles de rapport d'utilisation |
| Tampons | /buffer | État et contrôle des tampons de paquets |
| Statistiques | /packet_stats, /route_stats, /xdp_stats, /n3n6_stats | Métriques de performance |
| Capacité | /map_info | Capacité et utilisation des cartes eBPF |
| Dataplane | /dataplane_config | Adresses des interfaces N3/N9 |
Pour des détails sur l'API et son utilisation, voir Guide de Surveillance.
Panneau de Contrôle Web
Le Panneau de Contrôle Web fournit un tableau de bord en temps réel pour la surveillance et la gestion du UPF.
Fonctionnalités :
- Vue des Sessions : Parcourir les sessions PFCP actives avec IP UE, TEID et compte de règles
- Gestion des Règles : Voir et gérer les PDRs, FARs, QERs et URRs à travers toutes les sessions
- Surveillance des Tampons : Suivre les paquets mis en mémoire tampon et contrôler la mise en mémoire tampon par FAR
- Tableau de Bord Statistique : Statistiques en temps réel sur les paquets, les routes, XDP et les statistiques des interfaces N3/N6
- Surveillance de la Capacité : Utilisation des cartes eBPF avec des indicateurs de capacité codés par couleur
- Vue de Configuration : Afficher la configuration du UPF et les adresses du dataplane
- Visionneuse de Journaux : Diffusion en direct des journaux pour le dépannage
Pour des opérations détaillées de l'interface utilisateur, voir Guide des Opérations de l'Interface Web.
Protocole PFCP et Intégration SMF
Association PFCP
Avant que des sessions puissent être créées, le SMF doit établir une association PFCP avec le UPF.
Cycle de Vie de l'Association :
Points Clés :
- Chaque SMF établit une association avec le UPF
- UPF suit l'association par Node ID (FQDN ou adresse IP)
- Les messages de cœur de vie maintiennent la vivacité de l'association
- Toutes les sessions sous une association sont supprimées si l'association est libérée
Pour voir les associations, voir Vue des Sessions.
Détection de Redémarrage SMF et Nettoyage des Sessions Orphelines
OmniUPF détecte automatiquement lorsqu'un SMF redémarre et nettoie les sessions orphelines conformément aux spécifications 3GPP TS 29.244.
Comment Ça Fonctionne :
Lorsqu'un SMF établit une association PFCP, il fournit un Horodatage de Récupération indiquant quand il a démarré. OmniUPF stocke cet horodatage pour chaque association. Si le SMF redémarre :
- Le SMF perd tout l'état de session en mémoire
- Le SMF rétablit l'association PFCP avec le UPF
- Le SMF envoie un nouvel Horodatage de Récupération (différent de l'avant)
- UPF détecte le changement d'horodatage = SMF redémarré
- UPF supprime automatiquement toutes les sessions orphelines de l'ancienne instance SMF
- Le SMF crée de nouvelles sessions pour les abonnés actifs
Flux de Détection de Redémarrage :
Exemple de Journal :
Lorsqu'un SMF redémarre, vous verrez :
WARN: Association avec NodeID: smf-1 et adresse: 192.168.1.10 existe déjà
WARN: L'Horodatage de Récupération du SMF a changé (ancien : 2025-01-15T10:00:00Z, nouveau : 2025-01-15T10:30:15Z) - SMF redémarré, suppression de 245 sessions orphelines
INFO: Suppression de la session orpheline 2 (LocalSEID) en raison du redémarrage du SMF
INFO: Suppression de la session orpheline 3 (LocalSEID) en raison du redémarrage du SMF
...
INFO: Suppression de la session orpheline 246 (LocalSEID) en raison du redémarrage du SMF
Notes Importantes :
-
Isolation : Seules les sessions du SMF redémarré sont supprimées. Les autres associations SMF et leurs sessions ne sont pas affectées.
-
Comparaison d'Horodatage : Si l'Horodatage de Récupération est identique, les sessions sont conservées (SMF reconnecté sans redémarrage).
-
Conformité 3GPP : Ce comportement est imposé par la section 5.22.2 de 3GPP TS 29.244 :
"Si l'Horodatage de Récupération de la fonction CP a changé depuis le dernier Établissement d'Association, la fonction UP doit considérer que la fonction CP a redémarré et doit supprimer toutes les sessions PFCP associées à cette fonction CP."
Pour le dépannage des sessions orphelines, voir Détection des Sessions Orphelines.
Gestion des Indications d'Erreur GTP-U
OmniUPF gère les messages d'Indication d'Erreur GTP-U des pairs en aval (PGW-U, SGW-U, eNodeB, gNodeB) conformément aux spécifications 3GPP TS 29.281.
Qu'est-ce que les Indications d'Erreur :
Lorsque OmniUPF transfère un paquet GTP-U à un pair distant (par exemple, PGW-U dans un déploiement SGW-U), le pair peut renvoyer une Indication d'Erreur s'il ne reconnaît pas le TEID (Tunnel Endpoint Identifier). Cela indique :
- Le pair distant a redémarré et a perdu l'état du tunnel
- Le tunnel n'a jamais été créé du côté distant (mismatch de configuration)
- Le tunnel a déjà été supprimé du côté distant
Comment Ça Fonctionne :
- UPF transfère le paquet → Envoie un paquet GTP-U avec TEID X au pair distant (port 2152)
- Le pair distant ne reconnaît pas TEID X → Recherche TEID dans sa table de tunnels, non trouvé
- Le pair distant envoie une Indication d'Erreur → Message GTP-U type 26 avec IE contenant le TEID erroné
- UPF reçoit l'Indication d'Erreur → Analyse le message pour extraire TEID X
- UPF trouve les sessions affectées → Recherche toutes les sessions pour les FARs transférant vers TEID X
- UPF supprime les sessions → Retire les sessions des cartes eBPF et de l'état PFCP
- UPF met à jour les métriques → Incrémente les compteurs Prometheus pour la surveillance
Flux d'Indication d'Erreur :
Format de Paquet (3GPP TS 29.281 Section 7.3.1) :
Indication d'Erreur GTP-U :
┌─────────────────────────────────────────┐
│ En-tête GTP-U (12 octets) │
├─────────────────────────────────────────┤
│ Version, PT, Flags │ 0x32 │
│ Type de Message │ 26 (0x1A) │
│ Longueur │ 9 octets │
│ TEID │ 0 (toujours) │
│ Numéro de Séquence │ varie │
│ Numéro N-PDU │ 0 │
│ Prochain En-tête d'Extension │ 0 │
├─────────────────────────────────────────┤
│ IE : Données TEID I (5 octets) │
├─────────────────────────────────────────┤
│ Type │ 16 (0x10) │
│ TEID erroné │ 4 octets │
└─────────────────────────────────────────┘
Quand Cela Compte :
Scénario 1 : Redémarrage de PGW-U dans l'Architecture GTP S5/S8
- SGW-U (OmniUPF) transfère le trafic S5/S8 vers PGW-U
- PGW-U redémarre et perd tout l'état du tunnel S5/S8
- SGW-U continue de transférer vers les anciens TEIDs
- PGW-U envoie des Indications d'Erreur
- SGW-U arrête automatiquement d'utiliser les tunnels morts
Scénario 2 : Redémarrage du Pair UPF dans l'Architecture N9
- UPF-1 (OmniUPF) transfère le trafic N9 vers UPF-2
- UPF-2 redémarre
- UPF-1 reçoit des Indications d'Erreur
- UPF-1 nettoie les sessions
Exemple de Journal :
Lors de la réception d'une Indication d'Erreur :
WARN: Reçu Indication d'Erreur GTP-U de 192.168.50.10:2152 pour TEID 0x12345678 - le pair distant ne reconnaît pas ce TEID
WARN: Session LocalSEID=42 trouvée avec FAR GlobalId=1 transférant vers le TEID erroné 0x12345678 du pair 192.168.50.10
INFO: Suppression de la session LocalSEID=42 en raison de l'Indication d'Erreur GTP-U pour TEID 0x12345678 de 192.168.50.10
WARN: Supprimé 1 session(s) en raison de l'Indication d'Erreur GTP-U pour TEID 0x12345678 du pair 192.168.50.10
Métriques Prometheus :
Surveillez l'activité des Indications d'Erreur avec granularité par pair et par nœud :
# Total des Indications d'Erreur reçues des pairs
upf_buffer_listener_error_indications_received_total{node_id="pgw-u-1",peer_address="192.168.50.10"}
# Sessions supprimées en raison d'Indications d'Erreur
upf_buffer_listener_error_indication_sessions_deleted_total{node_id="pgw-u-1",peer_address="192.168.50.10"}
# Indications d'Erreur envoyées (pour TEIDs entrants inconnus)
upf_buffer_listener_error_indications_sent_total{node_id="enodeb-1",peer_address="10.60.0.1"}
Étiquettes de Métriques :
node_id: ID de nœud PFCP de l'association (ou "inconnu" si aucune association n'existe)peer_address: Adresse IP du pair distant
Ces métriques aident à identifier les pairs problématiques et à suivre les modèles d'Indication d'Erreur par nœud de plan de contrôle.
Notes Importantes :
-
Nettoyage Automatique : Aucune intervention de l'opérateur nécessaire - les sessions sont supprimées automatiquement
-
Correspondance de TEID : Seules les sessions avec des FARs transférant vers le TEID erroné exact sont supprimées
-
Isolation par Pair : Les Indications d'Erreur d'un pair n'affectent que les sessions transférant vers ce pair
-
Sessions Multiples : Si plusieurs sessions transfèrent vers le même TEID mort, toutes sont supprimées
-
Complémentaire à l'Horodatage de Récupération :
- Détection d'Horodatage de Récupération = proactif (détecte le redémarrage lors de l'établissement de l'association)
- Gestion des Indications d'Erreur = réactif (détecte les tunnels morts lorsque le trafic circule)
-
Gestion des Paquets Malformés : Les Indications d'Erreur invalides sont enregistrées et ignorées (aucune session supprimée)
Pour le dépannage des Indications d'Erreur, voir Débogage des Indications d'Erreur GTP-U.
Création de Session PFCP
Lorsqu'un UE établit une session PDU (5G) ou un contexte PDP (LTE), le SMF crée une session PFCP au niveau du UPF.
Flux d'Établissement de Session :
Contenu Typique de Session :
- PDR Montant : Correspondance sur TEID N3, transfert via FAR vers N6
- PDR Descendant : Correspondance sur l'adresse IP de l'UE, transfert via FAR vers N3 avec encapsulation GTP-U
- FAR : Paramètres de transfert (création d'en-tête externe, instance réseau)
- QER : Limites de QoS (MBR, GBR) et marquage de paquets (QFI)
- URR : Rapport de volume pour la facturation (optionnel)
Modification de Session PFCP
Le SMF peut modifier les sessions pour des événements de mobilité (transfert), des changements de QoS ou des mises à jour de service.
Scénarios de Modification Courants :
-
Transfert (basé sur N2)
- Mettre à jour le FAR montant avec le nouveau point de terminaison de tunnel gNB (F-TEID)
- Optionnellement mettre en mémoire tampon les paquets pendant le changement de chemin
- Vider le tampon vers le nouveau chemin lorsque prêt
-
Changement de QoS
- Mettre à jour le QER avec de nouvelles valeurs MBR/GBR
- Peut ajouter/supprimer des filtres SDF dans PDR pour une QoS spécifique à l'application
-
Mise à Jour de Service
- Ajouter de nouveaux PDRs pour des flux de trafic supplémentaires
- Modifier les FARs pour des changements de routage
Flux de Modification de Session :
Pour la gestion des règles, voir Guide de Gestion des Règles.
Suppression de Session PFCP
Lorsqu'une session PDU est libérée, le SMF supprime la session PFCP au niveau du UPF.
Flux de Suppression de Session :
Nettoyage Effectué :
- Tous les PDRs supprimés (montant et descendant)
- Tous les FARs, QERs, URRs supprimés
- Tampons de paquets effacés
- Rapport d'utilisation final envoyé au SMF pour la facturation
Opérations Courantes
OmniUPF fournit des capacités opérationnelles complètes via son panneau de contrôle basé sur le web et son API REST. Cette section couvre les tâches opérationnelles courantes et leur signification.
Surveillance des Sessions
Comprendre les Sessions PFCP :
Les sessions PFCP représentent les sessions PDU actives de l'UE (5G) ou les contextes PDP (LTE). Chaque session contient :
- SEIDs local et distant (Identificateurs de Point de Terminaison de Session)
- PDRs pour la classification des paquets
- FARs pour les décisions de transfert
- QERs pour l'application de la QoS (optionnel)
- URRs pour le suivi d'utilisation (optionnel)
Opérations Clés sur les Sessions :
- Voir toutes les sessions avec adresses IP UE, TEIDs et compte de règles
- Filtrer les sessions par adresse IP ou TEID
- Inspecter les détails de session y compris les configurations complètes PDR/FAR/QER/URR
- Surveiller les comptes de session par association PFCP
Pour des procédures détaillées sur les sessions, voir Vue des Sessions.
Gestion des Règles
Règles de Détection de Paquets (PDR) :
Les PDRs déterminent quels paquets correspondent à des flux de trafic spécifiques. Les opérateurs peuvent :
- Voir les PDRs montants indexés par TEID de l'interface N3
- Voir les PDRs descendants indexés par adresse IP de l'UE (IPv4 et IPv6)
- Inspecter les filtres SDF pour la classification spécifique à l'application
- Surveiller les comptes de PDR et l'utilisation de la capacité
Règles d'Action de Transfert (FAR) :
Les FARs définissent quoi faire avec les paquets correspondants. Les opérateurs peuvent :
- Voir les actions FAR (TRANSMETTRE, SUPPRIMER, METTRE EN MÉMOIRE TAMBOUR, DUPLIQUER, NOTIFIER)
- Inspecter les paramètres de transfert (création d'en-tête externe, destination)
- Surveiller l'état de mise en mémoire tampon par FAR
- Basculer la mise en mémoire tampon pour des FAR spécifiques pendant le dépannage
Règles d'Application de la QoS (QER) :
Les QERs appliquent des limites de bande passante et marquent les paquets. Les opérateurs peuvent :
- Voir les paramètres de QoS (MBR, GBR, marquage de paquets)
- Surveiller les QERs actives par session
- Inspecter les marquages QFI pour les flux QoS 5G
Règles de Rapport d'Utilisation (URR) :
Les URRs suivent les volumes de données pour la facturation. Les opérateurs peuvent :
- Voir les compteurs de volume (montant, descendant, total d'octets)
- Surveiller les seuils d'utilisation et les déclencheurs de rapport
- Inspecter les URRs actives à travers toutes les sessions
Pour les opérations sur les règles, voir Guide de Gestion des Règles.
Mise en Mémoire Tampon des Paquets
Pourquoi la Mise en Mémoire Tampon est Critique pour le UPF
La mise en mémoire tampon des paquets est l'une des fonctions les plus importantes d'un UPF car elle empêche la perte de paquets lors d'événements de mobilité et de reconfigurations de session. Sans mise en mémoire tampon, les utilisateurs mobiles connaîtraient des connexions interrompues, des téléchargements interrompus et des communications en temps réel échouées chaque fois qu'ils se déplacent entre des tours cellulaires ou lorsque les conditions du réseau changent.
Le Problème : Perte de Paquets Pendant la Mobilité
Dans les réseaux mobiles, les utilisateurs sont constamment en mouvement. Lorsqu'un appareil passe d'une tour cellulaire à une autre (transfert), ou lorsque le réseau doit reconfigurer le chemin de données, il existe une fenêtre critique où les paquets sont en vol mais le nouveau chemin n'est pas encore prêt :
Sans mise en mémoire tampon : Les paquets arrivant pendant cette fenêtre critique seraient perdus, causant :
- Des connexions TCP qui se bloquent ou se réinitialisent (navigation web, téléchargements interrompus)
- Des appels vidéo qui se figent ou se coupent (Zoom, Teams, appels WhatsApp échouent)
- Des sessions de jeu qui se déconnectent (jeux en ligne, applications en temps réel échouent)
- Des appels VoIP qui ont des lacunes ou se coupent entièrement (appels téléphoniques interrompus)
- Des téléchargements qui échouent et doivent redémarrer
Avec mise en mémoire tampon : OmniUPF maintient temporairement les paquets jusqu'à ce que le nouveau chemin soit établi, puis les transfère sans problème. L'utilisateur connaît une absence d'interruption.
Quand la Mise en Mémoire Tampon Se Produit
OmniUPF met en mémoire tampon les paquets dans ces scénarios critiques :
1. Transfert Basé sur N2 (5G) / Transfert Basé sur X2 (4G)
Lorsque un UE se déplace entre des tours cellulaires :
Chronologie :
- T+0ms : Ancien chemin encore actif
- T+10ms : SMF dit à UPF de mettre en mémoire tampon (ancien chemin se fermant, nouveau chemin pas prêt)
- T+10-50ms : Fenêtre critique de mise en mémoire tampon - les paquets arrivent mais ne peuvent pas être transférés
- T+50ms : Nouveau chemin prêt, SMF dit à UPF de transférer
- T+50ms+ : UPF vide les paquets mis en mémoire tampon vers le nouveau chemin, puis transfère de nouveaux paquets normalement
Sans mise en mémoire tampon : ~40ms de paquets (potentiellement des milliers) seraient perdus. Avec mise en mémoire tampon : Aucune perte de paquets, transfert transparent.
2. Modification de Session (Changement de QoS, Mise à Jour de Chemin)
Lorsque le réseau doit changer les paramètres de session :
- Mise à niveau/diminution de QoS : L'utilisateur passe de la couverture 4G à 5G (mode NSA)
- Changement de politique : L'utilisateur d'entreprise entre dans le campus d'entreprise (changement de direction du trafic)
- Optimisation du réseau : Le réseau central redirige le trafic vers un UPF plus proche (mise à jour ULCL)
Pendant la modification, le plan de contrôle peut avoir besoin de mettre à jour plusieurs règles de manière atomique. La mise en mémoire tampon garantit que les paquets ne sont pas transférés avec des ensembles de règles partiels/incohérents.
3. Notification de Données Descendantes (Récupération en Mode Inactif)
Lorsque un UE est en mode inactif (écran éteint, économie de batterie) et que des données descendantes arrivent :
Sans mise en mémoire tampon : Le paquet initial qui a déclenché la notification serait perdu, nécessitant que l'expéditeur retransmette (ajoute de la latence). Avec mise en mémoire tampon : Le paquet qui a réveillé l'UE est livré immédiatement lorsque l'UE se reconnecte.
4. Transfert Inter-RAT (4G ↔ 5G)
Lorsque un UE se déplace entre la couverture 4G et 5G :
- Changements d'architecture (eNodeB ↔ gNB)
- Changements de points de terminaison de tunnel (nouvelle allocation de TEID)
- La mise en mémoire tampon garantit une transition fluide entre les types de RAT
Comment la Mise en Mémoire Tampon Fonctionne dans OmniUPF
Mécanisme Technique :
OmniUPF utilise une architecture de mise en mémoire tampon à deux niveaux :
- Niveau eBPF (Noyau) : Détecte les paquets nécessitant une mise en mémoire tampon en fonction des drapeaux d'action FAR
- Niveau Utilisateur : Stocke et gère les paquets mis en mémoire tampon en mémoire
Processus de Mise en Mémoire Tampon :
Détails Clés :
- Port de Tampon : Port UDP 22152 (paquets envoyés du eBPF à l'espace utilisateur)
- Encapsulation : Paquets enveloppés dans GTP-U avec ID FAR comme TEID
- Stockage : Tampons en mémoire par FAR avec métadonnées (horodatage, direction, taille de paquet)
- Limites :
- Limite par FAR : 10 000 paquets (par défaut)
- Limite globale : 100 000 paquets à travers tous les FARs
- TTL : 30 secondes (par défaut) - les paquets plus anciens que TTL sont supprimés
- Nettoyage : Un processus en arrière-plan retire les paquets expirés toutes les 60 secondes
Cycle de Vie du Tampon :
- Mise en Mémoire Tampon Activée : SMF définit l'action FAR BUFF=1 (bit 2) via la Modification de Session PFCP
- Paquets Mis en Mémoire Tampon : eBPF détecte le drapeau BUFF, encapsule les paquets, envoie au port 22152
- Stockage Utilisateur : Le gestionnaire de tampons stocke les paquets avec ID FAR, horodatage, direction
- Mise en Mémoire Tampon Désactivée : SMF définit l'action FAR FORW=1, BUFF=0 avec de nouveaux paramètres de transfert
- Vider le Tampon : L'espace utilisateur rejoue les paquets mis en mémoire tampon en utilisant les nouvelles règles FAR (nouveau point de terminaison de tunnel)
- Reprendre Normal : Les nouveaux paquets sont transférés immédiatement via le nouveau chemin
Pourquoi Cela Compte pour l'Expérience Utilisateur
Impact dans le Monde Réel :
| Scénario | Sans Mise en Mémoire Tampon | Avec Mise en Mémoire Tampon |
|---|---|---|
| Appel Vidéo Pendant le Transfert | L'appel se fige pendant 1-2 secondes, peut se couper | Transparent, aucune interruption |
| Téléchargement de Fichier à la Limite Cellulaire | Le téléchargement échoue, doit redémarrer | Le téléchargement continue sans interruption |
| Jeu en Ligne en Déplacement | La connexion se coupe, expulsé du jeu | Jeu fluide, aucune déconnexion |
| Appel VoIP dans la Voiture | L'appel se coupe à chaque transfert | Clair comme de l'eau de roche, aucune coupure |
| Vidéo en Streaming dans un Train | La vidéo se met en mémoire tampon, la qualité baisse | Lecture fluide |
| Point d'Accès Mobile pour Ordinateur Portable | La session SSH se coupe, l'appel vidéo échoue | Toutes les connexions maintenues |
Avantages pour l'Opérateur de Réseau :
- Taux de Chute d'Appel Réduit (CDR) : KPI critique pour la qualité du réseau
- Satisfaction Client Élevée : Les utilisateurs ne remarquent pas les transferts
- Coûts de Support Plus Bas : Moins de plaintes concernant les connexions interrompues
- Avantage Concurrentiel : Marketing "meilleur réseau pour la couverture"
Opérations de Gestion des Tampons
Les opérateurs peuvent surveiller et contrôler la mise en mémoire tampon via l'interface Web et l'API :
Surveillance :
- Voir les paquets mis en mémoire tampon par ID FAR (compte, octets, âge)
- Suivre l'utilisation du tampon par rapport aux limites (par FAR, global)
- Alerte sur le débordement du tampon ou la durée excessive de mise en mémoire tampon
- Identifier les tampons bloqués (paquets mis en mémoire tampon > seuil TTL)
Opérations de Contrôle :
- Vider les tampons : Déclencher manuellement la rejouée du tampon (dépannage)
- Effacer les tampons : Supprimer les paquets mis en mémoire tampon (nettoyer les tampons bloqués)
- Ajuster le TTL : Changer le temps d'expiration des paquets
- Modifier les limites : Augmenter la capacité du tampon par FAR ou globale
Dépannage :
- Tampon ne se vidant pas : Vérifiez si le SMF a envoyé la mise à jour de FAR pour désactiver la mise en mémoire tampon
- Débordement de tampon : Augmentez les limites ou enquêtez sur les raisons pour lesquelles la durée de mise en mémoire tampon est excessive
- Paquets anciens dans le tampon : Le TTL peut être trop élevé, ou la mise à jour de FAR retardée
- Mise en Mémoire Tampon Excessive : Peut indiquer des problèmes de mobilité ou des problèmes avec le SMF
Pour des opérations détaillées sur les tampons, voir Guide de Gestion des Tampons.
Configuration du Tampon
Configurez le comportement de mise en mémoire tampon dans /etc/omniupf/runtime.exs :
# Paramètres de Tampon
buffer_port = 22152 # Port UDP pour les paquets mis en mémoire tampon (par défaut)
Recommandations :
- Réseaux à haute mobilité (autoroutes, trains) : Augmentez
buffer_max_packetsà 20 000+ - Zones urbaines denses (transferts fréquents) : Diminuez
buffer_packet_ttlà 15s - Applications à faible latence : Réglez
buffer_packet_ttlà 10s pour éviter les données obsolètes - Réseaux IoT : Diminuez les limites (les appareils IoT génèrent moins de trafic pendant le transfert)
Pour des options de configuration complètes, voir Guide de Configuration.
Statistiques et Surveillance
Statistiques des Paquets :
Métriques de traitement des paquets en temps réel comprenant :
- Paquets RX : Total reçus de toutes les interfaces
- Paquets TX : Total transmis vers toutes les interfaces
- Paquets Supprimés : Paquets rejetés en raison d'erreurs ou de politiques
- Paquets GTP-U : Comptes de paquets encapsulés
Statistiques de Route :
Métriques de transfert par route :
- Hits de Route : Paquets correspondants à chaque route
- Comptes de Transfert : Succès/échec par destination
- Compteurs d'Erreur : TEIDs invalides, IPs UE inconnues
Statistiques XDP :
Métriques de performance eXpress Data Path :
- XDP traités : Paquets gérés au niveau XDP
- XDP passés : Paquets envoyés à la pile réseau
- XDP supprimés : Paquets supprimés au niveau XDP
- XDP abandonnés : Erreurs de traitement
Statistiques des Interfaces N3/N6 :
Comptes de trafic par interface :
- N3 RX/TX : Trafic vers/depuis RAN (gNB/eNodeB)
- N6 RX/TX : Trafic vers/depuis le réseau de données
- Comptes totaux de paquets : Statistiques agrégées par interface
Pour des détails sur la surveillance, voir Guide de Surveillance.
Gestion de Capacité
Surveillance de la Capacité des Cartes eBPF :
La performance du UPF dépend de la capacité des cartes eBPF. Les opérateurs peuvent :
- Surveiller l'utilisation des cartes avec des indicateurs de pourcentage en temps réel
- Voir les limites de capacité pour chaque carte eBPF
- Alertes codées par couleur :
- Vert (<50%) : Normal
- Jaune (50-70%) : Prudence
- Ambre (70-90%) : Avertissement
- Rouge (>90%) : Critique
Cartes Critiques à Surveiller :
uplink_pdr_map: Classification du trafic montantdownlink_pdr_map: Classification du trafic descendant IPv4far_map: Règles de transfertqer_map: Règles de QoSurr_map: Suivi d'utilisation
Planification de Capacité :
- Chaque PDR consomme une entrée de carte (taille de clé + taille de valeur)
- La capacité de la carte est configurée au démarrage du UPF (limite de mémoire du noyau)
- Dépasser la capacité entraîne des échecs d'établissement de session
Pour la surveillance de la capacité, voir Gestion de Capacité.
Gestion de Configuration
Configuration du UPF :
Voir et vérifier les paramètres opérationnels du UPF :
- Interface N3 : Adresse IP pour la connectivité RAN (GTP-U)
- Interface N6 : Adresse IP pour la connectivité au réseau de données
- Interface N9 : Adresse IP pour la communication inter-UPF (optionnel)
- Interface PFCP : Adresse IP pour la connectivité SMF
- Port API : Port d'écoute de l'API REST
- Point de terminaison des métriques : Port des métriques Prometheus
Configuration du Dataplane :
Paramètres actifs du chemin de données eBPF :
- Adresse N3 active : Liaison de l'interface N3 au runtime
- Adresse N9 active : Liaison de l'interface N9 au runtime (si activée)
Pour la visualisation de la configuration, voir [Vue de Configuration](./docs/WEB_UI.md#configuration-view