PCRF (Fonction de Règles de Politique et de Facturation)
Vue d'ensemble
Le HSS comprend un PCRF (Fonction de Règles de Politique et de Facturation) intégré qui fournit un contrôle de politique et des règles de facturation pour les sessions de données mobiles. Le PCRF contrôle les politiques de Qualité de Service (QoS), l'allocation de bande passante et les règles de facturation pour les porteurs par défaut et dédiés dans les réseaux LTE.
Capacités clés
- Interface Gx : Contrôle de politique pour PGW/PCEF (Passerelle de Données de Paquet / Fonction d'Application et de Facturation)
- Interface Rx : Autorisation et QoS pour les flux multimédias IMS (Système Multimédia IP)
- Gestion Dynamique des Politiques : Mises à jour de politique en temps réel via des Requêtes de Ré-Authentification (RAR)
- Support VoLTE : Création de porteur dédié pour les appels vocaux avec QoS garanti
- Règles de Facturation : Définir le comportement de facturation et les profils de vitesse à l'aide de Modèles de Flux de Trafic (TFT)
- API REST : Contrôle programmatique de l'application des politiques et de la gestion des règles
Architecture
Interfaces Diameter
| Interface | ID d'application | Pair | Objectif |
|---|---|---|---|
| Gx | 16,777,238 | PGW (PCEF) | Gestion de session PDN, application de QoS, règles de facturation |
| Rx | 16,777,236 | P-CSCF (AF) | Autorisation multimédia IMS, réservation de bande passante |
Gestion de l'état de session
Le PCRF maintient l'état de session pour les connexions PDN actives et les appels VoLTE :
Interface Gx
Opérations prises en charge
1. Requête de Contrôle de Crédit - Initiale (CCR-I)
Déclencheur : PGW crée une nouvelle connexion PDN pour l'abonné
AVPs de Requête :
- Session-Id
- Origin-Host, Origin-Realm
- Subscription-Id (contient IMSI)
- Called-Station-Id (nom APN)
- IP-CAN-Type (type de réseau d'accès IP)
- RAT-Type (Technologie d'Accès Radio)
- Framed-IP-Address (adresse IP UE)
Actions PCRF :
- Rechercher l'abonné par IMSI
- Récupérer le profil APN et la configuration QoS
- Créer une entrée de suivi de session
- Construire des politiques QoS à partir du profil APN
AVPs de Réponse :
- Result-Code: 2001 (DIAMETER_SUCCESS)
- QoS-Information (limites de bande passante agrégée APN)
- Default-EPS-Bearer-QoS (QCI, ARP, priorité)
- Bearer-Control-Mode
2. Requête de Contrôle de Crédit - Mise à jour (CCR-U)
Déclencheur : PGW signale des changements de session (mise à jour de localisation, changement de RAT, etc.)
Actions PCRF :
- Localiser la session existante par ID de session
- Mettre à jour les paramètres de session (type de RAT, localisation, etc.)
- Retourner les politiques mises à jour si nécessaire
Réponse : Result-Code 2001 avec mises à jour de politique optionnelles
3. Requête de Contrôle de Crédit - Terminer (CCR-T)
Déclencheur : PGW termine la connexion PDN
Actions PCRF :
- Localiser la session par ID de session
- Supprimer la session et les enregistrements d'appel associés
- Confirmer la terminaison
Réponse : Result-Code 2001
4. Requête de Ré-Authentification (RAR)
Direction : PCRF → PGW (HSS initie)
Déclencheur :
- Mise en place d'appel IMS (Rx AAR déclenche Gx RAR)
- Fin d'appel IMS (Rx STR déclenche Gx RAR)
- Ré-auth manuelle via API REST
AVPs RAR :
- Session-Id (ID de session PGW)
- Auth-Application-Id: 16,777,238
- Re-Auth-Request-Type (0 = Autoriser uniquement)
- Charging-Rule-Install/Remove
- QoS-Information (pour porteurs dédiés)
Actions PGW : Créer/modifier/supprimer des porteurs dédiés en fonction des règles de facturation
Règles de Facturation et Modèles de Flux de Trafic
Le PCRF prend en charge la définition de règles de facturation avec des Modèles de Flux de Trafic (TFT) pour contrôler :
- Facturation spécifique au service - Tarifs différents pour la vidéo, les jeux, les réseaux sociaux, etc.
- Profils de vitesse - Limiter ou prioriser le trafic correspondant à des modèles spécifiques
- Politiques basées sur l'utilisation - Appliquer différentes QoS en fonction du type de trafic ou de la destination
Les règles de facturation peuvent être :
- Installées dynamiquement via Gx RAR en fonction de la détection d'application
- Prédéfinies et déclenchées par des conditions spécifiques (heure de la journée, localisation, quota)
- Associées à des TFT à l'aide de règles de filtre de paquets (5-tuple : protocole, IP source/destination, port source/destination)
Cas d'utilisation courants :
- Zero-rating - Accès illimité à des services spécifiques (Spotify, WhatsApp, Facebook) sans consommer de quota de données
- Accès post-quota - Autoriser le portail d'auto-assistance et les sites de support même après que l'abonné ait épuisé son allocation de données
- Vitesse par paliers - Haute vitesse pour les services premium, limitée pour le contenu standard
- Politiques basées sur le temps - Streaming illimité hors pointe, priorisation en période de pointe
- Politiques de roaming - Facturation différente pour l'utilisation de données internationales par rapport à l'utilisation domestique
- SLA d'entreprise - QoS garantie pour les applications critiques pour les entreprises
Structure de la Politique QoS
QoS du Porteur par Défaut (à partir du profil APN) :
{
"QoS-Class-Identifier": 9, // QCI (9 = porteur par défaut)
"APN-Aggregate-Max-Bitrate-UL": 50000, // kbps
"APN-Aggregate-Max-Bitrate-DL": 100000, // kbps
"Allocation-Retention-Priority": {
"Priority-Level": 8,
"Pre-emption-Capability": 1, // Peut préempter
"Pre-emption-Vulnerability": 1 // Peut être préempté
}
}
QoS du Porteur Dédié (pour VoLTE) :
{
"QoS-Class-Identifier": 1, // QCI 1 = Voix Conversationnelle
"Max-Requested-Bandwidth-UL": 128000, // bps
"Max-Requested-Bandwidth-DL": 128000, // bps
"Guaranteed-Bitrate-UL": 128000,
"Guaranteed-Bitrate-DL": 128000
}
Interface Rx
Opérations prises en charge
1. Requête AA (AAR) / Réponse AA (AAA)
Déclencheur : P-CSCF demande une autorisation pour la session multimédia IMS (mise en place d'appel VoLTE)
AVPs de Requête :
- Session-Id (identifiant de session P-CSCF)
- Subscription-Id (IMSI ou URI SIP)
- Media-Component-Description
- Media-Type (audio, vidéo)
- Max-Requested-Bandwidth-UL/DL
- Codec-Data
- Flow-Description (filtres de paquets 5-tuple)
- AF-Application-Identifier
Actions PCRF :
- Rechercher l'abonné par IMSI ou URI SIP
- Trouver la session IMS active
- Extraire les paramètres multimédias (codec, bande passante, règles de flux)
- Créer une entrée de suivi d'appel
- Déclencher Gx RAR vers PGW pour créer un porteur dédié
- Attendre la réponse Gx RAA
- Retourner Rx AAA avec le résultat de l'autorisation
AVPs de Réponse :
- Result-Code: 2001 (succès) ou 5063 (service non autorisé)
2. Requête de Terminaison de Session (STR) / Réponse de Terminaison de Session (STA)
Déclencheur : P-CSCF termine la session IMS (fin d'appel)
Actions PCRF :
- Localiser la session d'appel par ID de session P-CSCF
- Déclencher Gx RAR vers PGW pour supprimer le porteur dédié
- Supprimer l'entrée de suivi d'appel
- Retourner la confirmation STA
Réponse : Result-Code 2001
Flux de Messages Courants
Flux 1 : Établissement de Session PDN
Flux 2 : Mise en Place d'Appel VoLTE (Rx AAR → Gx RAR)
Flux 3 : Fin d'Appel VoLTE (Rx STR → Gx RAR)
Flux 4 : Mise à Jour de Session PDN
Flux 5 : Terminaison de Session PDN
Flux 6 : Ré-Auth Manuelle via API REST
API REST
Point de terminaison PCRF Re-Auth
Point de terminaison : POST /api/operation/pcrf_re_auth
Objectif : Déclencher manuellement une Requête de Ré-Authentification Gx pour rafraîchir les politiques
Quand l'utiliser : Ce point de terminaison manuel est généralement utilisé pour le dépannage ou pour forcer le rafraîchissement de la politique sur des abonnés spécifiques. Pour les mises à jour de politique de routine (changement de profils QoS APN), le système déclenche automatiquement la ré-auth pour toutes les sessions affectées - aucune action manuelle n'est nécessaire.
Corps de la requête :
{
"imsi": "999999876543210",
"apn": "ims"
}
Réponse de succès (HTTP 200) :
{
"data": "Gx Re-Auth Request for 999999876543210 sent to pgw.epc.mnc999.mcc999.3gppnetwork.org, Result-Code: 2001"
}
Réponse d'erreur (HTTP 400) :
{
"error": "Unable to send Re-Auth Request for 999999876543210 on APN ims, no active PDN Session found"
}
API de Configuration de Politique
Le PCRF récupère les politiques QoS à partir des configurations APN stockées dans la base de données. Ces politiques peuvent être créées et gérées via l'API REST.
Application Automatique des Politiques : Lorsque vous mettez à jour un profil QoS APN (par exemple, changement de limites de bande passante ou de QCI), le système envoie automatiquement des Requêtes de Ré-Authentification Gx (RAR) à tous les PGW avec des sessions PDN actives utilisant cet APN. Cela garantit que les changements de politique sont appliqués immédiatement à tous les abonnés connectés sans intervention manuelle.
Architecture des Politiques
Les politiques sont définies à travers une structure à trois niveaux :
Identifiant APN → Profil QoS APN → Profil APN
↓ ↓ ↓
"internet" QCI, AMBR, ARP Lien entre les deux
1. Créer un Identifiant APN
Définir le nom de l'APN et le support de version IP.
Point de terminaison : POST /api/apn/identifier
Corps de la requête :
{
"apn_identifier": {
"apn": "internet",
"ip_version": "ipv4v6"
}
}
Options de Version IP :
"ipv4"- IPv4 uniquement"ipv6"- IPv6 uniquement"ipv4v6"- Double pile (IPv4 et IPv6)"ipv4_or_ipv6"- Le réseau décide (soit IPv4 soit IPv6)
Réponse (HTTP 201) :
{
"data": {
"id": 1,
"apn": "internet",
"ip_version": "ipv4v6"
}
}
Validation :
apn: Requis, 1-254 caractères, uniqueip_version: Requis, doit être l'une des quatre options ci-dessus
Lister les Identifiants APN : GET /api/apn/identifier
2. Créer un Profil QoS APN
Définir les paramètres QoS (bande passante, QCI, priorité).
Point de terminaison : POST /api/apn/qos_profile
Corps de la requête :
{
"apn_qos_profile": {
"name": "Internet à Effort Maximum",
"qci": 9,
"allocation_retention_priority": 8,
"apn_ambr_dl_kbps": 100000,
"apn_ambr_ul_kbps": 50000,
"pre_emption_capability": false,
"pre_emption_vulnerability": true
}
}
Paramètres QoS :
| Champ | Type | Plage | Description |
|---|---|---|---|
name | string | 1-254 chars | Nom du profil (unique) |
qci | integer | 1-254 | Identifiant de Classe QoS (1-4 = GBR, 5-9 = Non-GBR) |
allocation_retention_priority | integer | 1-15 | Niveau ARP (1 = priorité la plus élevée) |
apn_ambr_dl_kbps | integer | 1-4,294,967,293 | Débit Maximum Agrégé APN en Descendant (kbps) |
apn_ambr_ul_kbps | integer | 1-4,294,967,293 | Débit Maximum Agrégé APN en Montant (kbps) |
pre_emption_capability | boolean | true/false | Peut préempter des porteurs de priorité inférieure |
pre_emption_vulnerability | boolean | true/false | Peut être préempté par des porteurs de priorité supérieure |
Valeurs QCI courantes :
1- Voix Conversationnelle (VoLTE) - GBR, budget de délai de 100 ms2- Vidéo Conversationnelle - GBR, budget de délai de 150 ms5- Signalisation IMS - Non-GBR, budget de délai de 100 ms9- Porteur par Défaut (Internet) - Non-GBR, budget de délai de 300 ms
Réponse (HTTP 201) :
{
"data": {
"id": 1,
"name": "Internet à Effort Maximum",
"qci": 9,
"allocation_retention_priority": 8,
"apn_ambr_dl_kbps": 100000,
"apn_ambr_ul_kbps": 50000,
"pre_emption_capability": false,
"pre_emption_vulnerability": true
}
}
Lister les Profils QoS : GET /api/apn/qos_profile
3. Créer un Profil APN
Lier l'identifiant APN avec un profil QoS.
Point de terminaison : POST /api/apn/profile
Corps de la requête :
{
"apn_profile": {
"name": "Profil APN Internet",
"apn_identifier_id": 1,
"apn_qos_profile_id": 1
}
}
Champs :
name: Nom du profil (unique), utilisé pour référenceapn_identifier_id: ID provenant de Créer un Identifiant APNapn_qos_profile_id: ID provenant de Créer un Profil QoS APN
Réponse (HTTP 201) :
{
"data": {
"id": 1,
"name": "Profil APN Internet",
"apn_identifier_id": 1,
"apn_qos_profile_id": 1
}
}
Contraintes :
apn_identifier_idetapn_qos_profile_iddoivent référencer des enregistrements existants- Chaque combinaison d'identifiant APN et de profil QoS doit être unique
Lister les Profils APN : GET /api/apn/profile
Exemple Complet de Configuration de Politique
Étape 1 : Créer une Politique APN IMS (VoLTE)
# 1. Créer un Identifiant APN
curl -X POST https://hss.example.com:8443/api/apn/identifier \
-H "Content-Type: application/json" \
-d '{
"apn_identifier": {
"apn": "ims",
"ip_version": "ipv4v6"
}
}'
# Réponse : {"data": {"id": 2, ...}}
# 2. Créer un Profil QoS (Signalisation IMS)
curl -X POST https://hss.example.com:8443/api/apn/qos_profile \
-H "Content-Type: application/json" \
-d '{
"apn_qos_profile": {
"name": "QoS de Signalisation IMS",
"qci": 5,
"allocation_retention_priority": 2,
"apn_ambr_dl_kbps": 5000,
"apn_ambr_ul_kbps": 5000,
"pre_emption_capability": true,
"pre_emption_vulnerability": false
}
}'
# Réponse : {"data": {"id": 2, ...}}
# 3. Créer un Profil APN
curl -X POST https://hss.example.com:8443/api/apn/profile \
-H "Content-Type: application/json" \
-d '{
"apn_profile": {
"name": "Profil APN IMS",
"apn_identifier_id": 2,
"apn_qos_profile_id": 2
}
}'
# Réponse : {"data": {"id": 2, ...}}
Étape 2 : Assigner à l'Abonné
Une fois créés, le profil APN est assigné aux abonnés via des profils EPC. Voir Référence API pour lier les profils APN aux abonnés.
Mise à Jour et Suppression de Politique
Mettre à jour le Profil QoS :
PATCH /api/apn/qos_profile/{id}
PUT /api/apn/qos_profile/{id}
Exemple - Augmenter la Bande Passante pour Tous les Utilisateurs :
# Mettre à jour le profil QoS ID 1 pour augmenter la bande passante
curl -X PATCH https://hss.example.com:8443/api/apn/qos_profile/1 \
-H "Content-Type: application/json" \
-d '{
"apn_qos_profile": {
"apn_ambr_dl_kbps": 150000,
"apn_ambr_ul_kbps": 75000
}
}'
Ce qui se Passe Automatiquement :
- Le profil QoS est mis à jour dans la base de données
- Le système identifie toutes les sessions PDN actives utilisant des APNs liés à ce profil QoS
- Pour chaque session active, un Gx RAR est envoyé au PGW correspondant
- Les PGW mettent à jour la QoS du porteur pour refléter les nouvelles limites de bande passante
- Tous les abonnés connectés reçoivent immédiatement la politique mise à jour
Scénario Exemple : Si 100 abonnés sont actuellement connectés sur l'APN "internet" utilisant le profil QoS ID 1, tous les 100 verront leurs limites de bande passante mises à jour à 150 Mbps en descendant / 75 Mbps en montant dans les secondes suivant l'achèvement de l'appel API.
Remarque : Lorsque vous mettez à jour un profil QoS APN, le système déclenche automatiquement une ré-auth pour toutes les sessions PDN actives utilisant cet APN, appliquant les nouvelles politiques immédiatement aux abonnés connectés. Aucune ré-auth manuelle n'est requise.
Supprimer des Ressources :
DELETE /api/apn/identifier/{id}
DELETE /api/apn/qos_profile/{id}
DELETE /api/apn/profile/{id}
Contraintes de Suppression :
- Ne peut pas supprimer des identifiants APN ou des profils QoS référencés par des profils APN
- Ne peut pas supprimer des profils APN assignés à des abonnés actifs
Modèles de Politique
Internet Haute Vitesse (100 Mbps en descendant / 50 Mbps en montant) :
{
"apn_qos_profile": {
"name": "Internet Haute Vitesse",
"qci": 9,
"allocation_retention_priority": 8,
"apn_ambr_dl_kbps": 100000,
"apn_ambr_ul_kbps": 50000,
"pre_emption_capability": false,
"pre_emption_vulnerability": true
}
}
Internet Premium (500 Mbps en descendant / 100 Mbps en montant) :
{
"apn_qos_profile": {
"name": "Internet Premium",
"qci": 8,
"allocation_retention_priority": 5,
"apn_ambr_dl_kbps": 500000,
"apn_ambr_ul_kbps": 100000,
"pre_emption_capability": true,
"pre_emption_vulnerability": false
}
}
IoT/M2M (Bande Passante Faible) :
{
"apn_qos_profile": {
"name": "IoT M2M",
"qci": 9,
"allocation_retention_priority": 10,
"apn_ambr_dl_kbps": 1024,
"apn_ambr_ul_kbps": 512,
"pre_emption_capability": false,
"pre_emption_vulnerability": true
}
}
Services d'Urgence (Priorité Maximale) :
{
"apn_qos_profile": {
"name": "Profil APN d'Urgence",
"qci": 5,
"allocation_retention_priority": 1,
"apn_ambr_dl_kbps": 10000,
"apn_ambr_ul_kbps": 10000,
"pre_emption_capability": true,
"pre_emption_vulnerability": false
}
}
Configuration
Configuration du Service Diameter
Application Gx (config/runtime.exs) :
%{
application_name: :gx,
application_dictionary: :diameter_gen_3gpp_gx,
vendor_specific_application_ids: [
%{vendor_id: 10415, auth_application_id: 16_777_238}
]
}
Application Rx (config/runtime.exs) :
%{
application_name: :rx,
application_dictionary: :diameter_gen_3gpp_rx,
vendor_specific_application_ids: [
%{vendor_id: 10415, auth_application_id: 16_777_236}
]
}
Paramètres QoS
Les paramètres QoS sont issus de :
-
Porteur par Défaut : Configuration du profil APN dans la base de données
apn_qos_profile.qci(Identifiant de Classe QoS)apn_qos_profile.apn_ambr_ul_kbps(Débit Maximum Agrégé en Montant)apn_qos_profile.apn_ambr_dl_kbps(Débit Maximum Agrégé en Descendant)apn_qos_profile.priority_level(Priorité de Conservation d'Allocation)
-
Porteur Dédié : Extrait de la Description de Composant Multimédia Rx AAR
- QCI : 1 (Voix Conversationnelle)
- Débit Garanti : À partir des AVPs de Max-Requested-Bandwidth
- Filtres de flux : À partir des AVPs de Flow-Description
Gestion des Erreurs
| Code de Résultat | Type | Signification | Cause |
|---|---|---|---|
| 2001 | Succès | DIAMETER_SUCCESS | Requête traitée avec succès |
| 5001 | Expérimental | Utilisateur non trouvé | IMSI non présent dans la base de données des abonnés |
| 5002 | Expérimental | Session non trouvée | La session PDN n'existe pas pour mise à jour/terminer |
| 5063 | Expérimental | Service non autorisé | Autorisation multimédia IMS refusée |
Détails de Mise en Œuvre
Gestion de Session
Le PCRF suit :
- Sessions PDN Actives - Une par APN, par abonné
- Appels VoLTE - Plusieurs appels par session IMS (prend en charge les appels en conférence)
- Politiques QoS - Appliquées dynamiquement en fonction de la configuration APN
- Règles de Facturation - Modèles de flux de trafic et politiques spécifiques au service
Fonctionnalités Avancées de Politique
Le PCRF prend en charge le contrôle avancé des politiques, y compris :
- Installation/Suppression de règles de facturation via l'interface Gx
- Correspondance de Modèle de Flux de Trafic (TFT) pour la différenciation des services
- Profils de vitesse dynamiques en fonction de l'application ou du type de trafic
- Politiques conscientes du service déclenchées par des conditions réseau ou le comportement des abonnés
Contactez votre administrateur système pour des informations sur la configuration des règles de facturation avancées et des politiques basées sur TFT.
Documentation Connexe
- Protocoles Diameter - Spécifications détaillées des protocoles
- Référence API - Documentation complète de l'API
- Architecture - Architecture globale du HSS
- Mapping des Données - Mappages de la base de données aux AVP Diameter