Saltar al contenido principal

Documentación de la Interfaz Sxa

Comunicación PFCP con SGW-U

OmniSGW de Omnitouch Network Services


Tabla de Contenidos

  1. Descripción General
  2. Detalles del Protocolo
  3. Configuración
  4. Asociación PFCP
  5. Gestión de Sesiones
  6. Reglas PFCP
  7. Informes de Uso
  8. Operaciones de Red
  9. Solución de Problemas

Descripción General

La interfaz Sxa conecta OmniSGW al SGW-U (Serving Gateway User Plane) utilizando el protocolo PFCP (Packet Forwarding Control Protocol). Esta interfaz controla el reenvío de paquetes del plano de usuario, la aplicación de QoS y la elaboración de informes de uso.

Características Clave

  • PFCP v1.0 - Control de reenvío de paquetes conforme a estándares
  • Seguimiento de Sesiones Basado en SEID - Identificadores de Punto de Final de Sesión para asociación
  • Reglas de Detección de Paquetes - Coincidencia flexible de paquetes para uplink/downlink
  • Reglas de Acción de Reenvío - Control del enrutamiento y encapsulación de paquetes
  • Aplicación de QoS - Limitación de bitrate por portadora y priorización
  • Medición de Uso - Seguimiento de volumen para facturación y análisis
  • Control de Buffering - Buffering automático durante eventos de movilidad

Detalles del Protocolo

Versión PFCP 1.0

  • Protocolo: PFCP v1.0 (3GPP TS 29.244)
  • Transporte: UDP
  • Puerto: 8805 (estándar)
  • Tipo de Interfaz: Plano de Control
  • Modelo de Asociación: CP y UP forman una asociación persistente

SEID (Identificador de Punto de Final de Sesión)

Cada sesión tiene SEIDs únicos para seguimiento:

  • CP SEID - Asignado por SGW-C, utilizado en mensajes de uplink a SGW-U
  • UP SEID - Asignado por SGW-U, utilizado en mensajes de downlink a SGW-C
Enrutamiento de Mensajes:
SGW-C → SGW-U: Usa el UP SEID de SGW-U
SGW-U → SGW-C: Usa el CP SEID de SGW-C

Resumen de Tipos de Mensajes


Configuración

Configuración Básica

# config/runtime.exs
config :sgw_c,
sxa: %{
# Dirección IP local para la interfaz Sxa
local_ip_address: "10.0.0.20",

# Opcional: Sobrescribir puerto por defecto
local_port: 8805,

# Pares SGW-U a los que conectarse
peers: [
%{
ip_address: "10.0.0.30",
node_id: "sgw-u-1.example.com"
},
%{
ip_address: "10.0.0.31",
node_id: "sgw-u-2.example.com"
}
],

# Intervalo de latido de asociación (segundos)
heartbeat_interval_s: 20,

# Tiempo de espera para el establecimiento de sesión (milisegundos)
session_timeout_ms: 5000,

# Máximo de reintentos para operaciones de sesión
max_retries: 3
}

Requisitos de Red

Reglas de Firewall:

# Permitir PFCP desde la red SGW-U
iptables -A INPUT -p udp --dport 8805 -s <sgwu_network>/24 -j ACCEPT

# Permitir PFCP saliente a SGW-U
iptables -A OUTPUT -p udp --dport 8805 -d <sgwu_network>/24 -j ACCEPT

Enrutamiento:

# Asegurar ruta a la red SGW-U
ip route add <sgwu_network>/24 via <gateway_ip> dev eth0

Pruebas de Red:

# Probar conectividad PFCP
# Verificar registros para el mensaje "Configuración de Asociación Completa"

# Monitorear sesiones PFCP activas
curl http://127.0.0.40:42068/metrics | grep seid_registry_count

Asociación PFCP

Ciclo de Vida de la Asociación

Antes de que se puedan establecer sesiones, SGW-C y SGW-U deben formar una asociación PFCP.

Máquina de Estados de Asociación

[Desconectado]
↓ (Solicitud de Configuración)
[Asociando]
↓ (Respuesta de Configuración OK)
[Asociado]
↓ (Sesiones Creadas)
[Sesiones Activas]
↓ (Fallo de Latido)
[Re-asociando]
↓ (Configuración OK o Tiempo de Espera)
[Asociado o Desconectado]

Manejo de Recuperación

Si se pierde y recupera una asociación PFCP:

  1. Detección de Recuperación:

    • El tiempo de espera del latido activa la recuperación
    • Se envía una nueva Configuración de Asociación
    • Se verifica la Marca de Tiempo de Recuperación
  2. Recuperación de Sesiones:

    • Las sesiones pueden o no ser recuperables
    • Consultar a SGW-U por sesiones existentes
    • Reestablecer sesiones perdidas si es necesario
  3. Reenvío de Datos:

    • Buffering del plano de usuario en SGW-U durante la recuperación
    • Los PDRs permanecen activos hasta que se eliminen explícitamente
    • Minimizar la pérdida de paquetes durante el failover

Gestión de Sesiones

Establecimiento de Sesión

Disparador: Solicitud de Crear Sesión desde MME (recibida en S11)

Elementos de Información Enviados:

ElementoDescripción
CP SEIDAsignado por SGW-C para esta sesión
PDRsReglas de Detección de Paquetes (ver abajo)
FARsReglas de Acción de Reenvío
QERsReglas de Aplicación de QoS
BARRegla de Acción de Buffering para movilidad
Crear PDRIdentificadores de reglas para respuesta

Estado de la Sesión:

[Sin Sesión]
↓ (Solicitud de Establecimiento)
[Estableciendo]
↓ (Respuesta de Establecimiento)
[Sesión Activa]

Modificación de Sesión

Disparador: Solicitud de Modificación de Portadora desde MME (cambio de QoS, traspaso)

Modificaciones Comunes:

ModificaciónElementos ActualizadosRazón
Cambio de QoSQERsMejora/reducción de portadora
TraspasoPDRs, FARsCambio de eNodeB, selección de SGW-U
Añadir PortadoraNuevo PDR, FAR, QERActivación de portadora dedicada
Eliminar PortadoraEliminar PDR, FAR, QERDesactivación de portadora

Eliminación de Sesión

Disparador: Solicitud de Eliminación de Sesión desde MME (desvinculación)

Estado de la Sesión:

[Sesión Activa]
↓ (Solicitud de Eliminación)
[Eliminando]
↓ (Respuesta de Eliminación)
[Sesión Terminada]

Reglas PFCP

PDR (Regla de Detección de Paquetes)

Coincide paquetes entrantes para identificar flujos de tráfico.

Criterios de Detección de Paquetes:

CriterioDescripciónEjemplo
Interfaz de OrigenDesde dónde llega el paqueteAcceso (S1-U), Núcleo (S5/S8)
Dirección IP de OrigenDirección IP del UE (para Acceso)10.45.0.50
Dirección IP de DestinoIP de red externa (para Núcleo)8.8.8.8
Tipo de ProtocoloNúmero de protocolo IPTCP (6), UDP (17)
Puerto de OrigenCoincidencia de puerto1024-65535
Puerto de DestinoCoincidencia de puerto80 (HTTP), 443 (HTTPS)
TEIDIdentificador de túnel GTP-UPara paquetes de downlink

Estructura de PDR:

Estructura de PDR:
├── ID de PDR (único dentro de la sesión)
├── Precedencia (prioridad para reglas superpuestas)
├── Criterios de Detección de Paquetes
│ ├── Interfaz de Origen
│ ���── Instancia de Red (APN)
│ └── Dirección IP del UE / Dirección IP de Destino
├── ID de FAR (qué regla de reenvío aplicar)
├── ID de QER (qué regla de QoS aplicar)
└── Disparador de Informe de Uso

Caso de Uso Ejemplo - Portadora por Defecto:

  • Detecta: Todos los paquetes de/hacia la IP del UE
  • Acción: Reenviar a través de PDN (dirección PGW-U)
  • QoS: Aplicado por portadora

Caso de Uso Ejemplo - Portadora Dedicada:

  • Detecta: Paquetes que coinciden con flujo específico (rango de puertos, protocolo)
  • Acción: Reenviar por camino dedicado
  • QoS: Tarifas premium (GBR)

FAR (Regla de Acción de Reenvío)

Especifica cómo manejar los paquetes coincidentes.

Acciones de Reenvío:

AcciónDescripciónCaso de Uso
ReenviarEnviar paquete a la red de destinoReenvío normal
BufferAlmacenar paquete temporalmenteDurante movilidad/paging
DescartarEliminar paqueteAplicación de políticas, firewall
DuplicarEnviar paquete a múltiples destinosIntercepción legal

Opciones de Encapsulación:

  • GTP-U - Agregar encabezado de túnel GTP-U (S1-U, S5/S8)
  • Ethernet - Agregar encabezado Ethernet (para interconexión directa)
  • IPv4 - Reenvío IPv4 simple (para salida a internet)
  • IPv6 - Reenvío IPv6 simple

Ejemplo - UE a Internet:

Coincidencia de PDR: Interfaz de Origen = Acceso, IP del UE = 10.45.0.50
Acción de FAR:
- Reenviar = Sí
- Encapsulación de Encabezado Externo = Ninguna (internet directa)
- Parámetros de Reenvío = Puerta de enlace a internet

QER (Regla de Aplicación de QoS)

Aplica límites de bitrate por portadora.

Parámetros de QoS:

ParámetroTipoDescripción
QCIEnteroIdentificador de Clase de QoS (1-9)
MBR (Bitrate Máximo)BitrateTasa máxima permitida
GBR (Bitrate Garantizado)BitrateTasa mínima garantizada
ARPEnteroPrioridad de Asignación y Retención (1-15)

Clases de QoS (QCI):

QCITipo de ServicioEjemplos de Bitrate
1Voz (GBR)MBR: 64 kbps
2Llamada de Video (GBR)MBR: 256 kbps
3Juegos en Tiempo Real (GBR)MBR: 50 kbps
4No-GBRGBR: 128 kbps, MBR: 256 kbps
5Señalización IMSGBR: 100 kbps, MBR: 256 kbps
6Streaming de VideoMBR: 10 Mbps
7Voz con Video (GBR)GBR: 64 kbps, MBR: 384 kbps
8Navegación WebMBR: 5 Mbps
9Correo ElectrónicoMBR: 3 Mbps

Ejemplo - Portadora por Defecto (QCI 9):

QCI: 9 (Mejor Esfuerzo)
MBR: 100 Mbps (dependiente del sitio)
GBR: Ninguno (no-GBR)
ARP: 15 (prioridad más baja)

Ejemplo - Portadora Dedicada de Voz (QCI 1):

QCI: 1 (Voz)
MBR: 128 kbps (uplink + downlink)
GBR: 64 kbps (garantizado)
ARP: 1 (prioridad más alta)

BAR (Regla de Acción de Buffering)

Controla el buffering de paquetes durante eventos de movilidad.

Escenarios de Buffering:

  1. Buffering de Traspaso:

    • UE se transfiere entre eNodeBs
    • Paquetes almacenados mientras se mueve
    • Liberados cuando se completa el traspaso
  2. Buffering de Paging:

    • UE en estado inactivo (portadoras suspendidas)
    • Llega datos de downlink
    • Almacenados hasta que el UE se reactive
  3. Reubicación de SGW:

    • Durante el traspaso inter-MME con cambio de SGW
    • SGW antiguo almacena y reenvía al nuevo SGW
    • Se mantiene la entrega ordenada

Configuración de BAR:

Configuración de BAR:
├── Tiempo de Espera de Buffer: Cuánto tiempo mantener los paquetes
├── Umbral de Conteo de Paquetes: Máx. paquetes almacenados
└── Disparador de Informe de Datos de Downlink
└── Enviar notificación al CP cuando lleguen datos

Informes de Uso

Mensajes de Informe de Uso

SGW-U envía informes de uso a SGW-C para facturación y análisis.

Disparadores de Informe de Uso

Los informes se envían cuando:

DisparadorCondición
Período de TiempoInforme periódico cada N segundos
Umbral de VolumenDespués de N octetos reenviados
Umbral de DuraciónDespués de N segundos de reenvío
Fin de SesiónCuando se elimina la sesión
ModificaciónCuando se actualizan las reglas
Informe InmediatoSolicitado en el mensaje de modificación

Campos del Informe de Uso

Informe de Uso:
├── Disparador de Informe de Uso: Qué causó este informe
├── UR-SEQN: Número de secuencia para ordenación
├── Información de Uso por Portadora:
│ ├── EBI: Identificador de portadora
│ ├── Medición de Volumen
│ │ ├── UL: Octetos de uplink
│ │ ├── DL: Octetos de downlink
│ │ ├── Total: Total de octetos
│ │ └── Paquetes: Total de paquetes
│ ├── Medición de Duración: Segundos activos
│ └── Hora del Primer/Último Paquete: Timestamps
└── Consulta UR: Solicitar informe inmediato

Flujo de Generación de CDR


Operaciones de Red

Monitoreo de Asociación PFCP

Monitorear asociaciones PFCP activas:

# Verificar estado de asociación
curl -s http://127.0.0.40:42068/metrics | grep pfcp_association

# Salida esperada:
# pfcp_association_status{peer_ip="10.0.0.30"} 1 (asociado)
# pfcp_association_status{peer_ip="10.0.0.31"} 1 (asociado)

# Interfaz Web → Página de Estado de SGW-U
# Muestra todos los pares con estado "Asociado" e información de recuperación

Métricas de Sesión

Monitorear sesiones PFCP activas:

# Contar sesiones activas
curl -s http://127.0.0.40:42068/metrics | grep seid_registry_count

# Monitorear distribución por SGW-U
curl -s http://127.0.0.40:42068/metrics | grep seid_by_peer

# Tasa de uso (octetos/segundo)
curl -s http://127.0.0.40:42068/metrics | grep usage_octets_rate

Monitoreo del Flujo de Mensajes

Rastrear la actividad de mensajes PFCP:

# Monitorear todos los mensajes PFCP
watch -n 1 'curl -s http://127.0.0.40:42068/metrics | grep sxa_inbound'

# Salida de ejemplo:
# sxa_inbound_messages_total{message_type="session_establishment_response"} 5432
# sxa_inbound_messages_total{message_type="session_modification_response"} 12100
# sxa_inbound_messages_total{message_type="session_report_request"} 67000

Verificación de Instalación de Reglas

Verificar si las reglas están correctamente instaladas en SGW-U:

# Monitorear éxitos/fallos en el establecimiento de sesiones
curl -s http://127.0.0.40:42068/metrics | grep sxa_session_establishment

# Verificar problemas de instalación de PDR
curl -s http://127.0.0.40:42068/metrics | grep pdr_installation

# Buscar tiempos de espera
curl -s http://127.0.0.40:42068/metrics | grep sxa_timeout_total

Solución de Problemas

Fallos de Asociación

Problema: "Configuración de Asociación Fallida"

Diagnóstico:

  1. Verificar conectividad de red: ping <sgwu_ip>
  2. Verificar puerto: netstat -an | grep 8805
  3. Verificar registros para detalles de error

Causas Comunes y Soluciones:

CausaSíntomaSolución
Red inalcanzableTiempo de espera en configuraciónVerificar enrutamiento a SGW-U
Puerto bloqueadoConexión rechazadaVerificar reglas de firewall
SGW-U apagadoSin respuestaReiniciar proceso SGW-U
Desajuste de ID de NodoConfiguración rechazadaVerificar configuración

Fallos en el Establecimiento de Sesión

Problema: "Establecimiento de Sesión Fallido"

Diagnóstico:

# Verificar métricas
curl -s http://127.0.0.40:42068/metrics | grep seid_registry_count

# Verificar registros para error específico
tail -f /var/log/sgw_c/sgw_c.log | grep "Establecimiento de Sesión"

Causas Comunes:

CausaMensaje de ErrorSolución
SGW-U sin recursos"Recursos insuficientes"Verificar capacidad de SGW-U
PDR inválido"IE obligatoria faltante"Verificar definiciones de reglas
Conflicto de SEID"SEID ya existe"Verificar duplicación de sesión
Tiempo de espera"Tiempo de espera para establecimiento de sesión"Aumentar tiempo de espera o verificar SGW-U

Problemas de Informe de Uso

Problema: "Informes de Uso Faltantes"

Diagnóstico:

# Verificar conteo de informes
curl -s http://127.0.0.40:42068/metrics | grep session_report_request_total

# Monitorear generación de CDR
tail -f /var/log/sgw_c/cdrs/<timestamp>

Soluciones:

  • Verificar que el latido de SGW-U esté activo
  • Verificar configuración del disparador de Informe de Sesión
  • Asegurarse de que los permisos del directorio CDR sean correctos
  • Monitorear para desbordamiento de buffer en SGW-U

Problemas de Rendimiento

Problema: Alta latencia de mensajes PFCP

Métricas a Verificar:

# Duración del procesamiento de mensajes
curl -s http://127.0.0.40:42068/metrics | grep sxa_inbound_duration_seconds

# Carga por par
curl -s http://127.0.0.40:42068/metrics | grep seid_by_peer

# Profundidad de la cola
curl -s http://127.0.0.40:42068/metrics | grep pfcp_queue_depth

Pasos de Optimización:

  1. Balancear carga entre múltiples pares SGW-U
  2. Aumentar tiempo de espera de latido si la red es propensa a pérdidas
  3. Monitorear y reducir la complejidad de las reglas
  4. Escalar horizontalmente con instancias adicionales de SGW-C

Para referencia completa de métricas, configuración de panel y configuración de alertas, consulte la Guía de Monitoreo y M��tricas.


Mejores Prácticas

Configuración

  • Intervalo de Latido: Establecer entre 20-30 segundos para detección confiable
  • Tiempo de Espera de Sesión: 5-10 segundos basado en RTT de red
  • Máximo de Reintentos: 2-3 para balance entre confiabilidad y latencia
  • Selección de Pares: Distribuir carga entre todos los pares SGW-U

Operaciones

  • Redundancia de Pares: Configurar múltiples instancias de SGW-U para failover
  • Recarga Suave: Soporte para actualizaciones de software en servicio
  • Drenaje de Sesiones: Migrar sesiones antes del mantenimiento
  • Monitoreo: Rastrear frecuencia de recuperación de asociación

Solución de Problemas

  • Mantener Registros: Conservar trazas de mensajes PFCP para depuración
  • Correlación: Vincular mensajes S11 a operaciones de sesión PFCP
  • Métricas de Línea Base: Establecer línea base de rendimiento normal
  • Probar Escenarios de Fallo: Practicar procedimientos de failover de SGW-U