Skip to main content

OmniPGW Operations Guide

OmniPGW - Packet Gateway Control Plane (PGW-C)

by Omnitouch Network Services


Table of Contents

  1. Overview
  2. Architecture
  3. Network Interfaces
  4. Key Concepts
  5. Getting Started
  6. Configuration
  7. Web UI - Real-Time Operations Dashboard
  8. Monitoring & Metrics
  9. Detailed Documentation
  10. Additional Resources
  11. Contributing
  12. Support

Overview

OmniPGW is a high-performance Packet Gateway Control Plane (PGW-C) implementation for 3GPP LTE Evolved Packet Core (EPC) networks, developed by Omnitouch Network Services. It manages the control plane functions for data sessions, including:

  • Session Management - Creating, modifying, and terminating UE (User Equipment) data sessions
  • IP Address Allocation - Assigning IP addresses to mobile devices from configured pools
  • Policy & Charging Control - Interfacing with PCRF for policy enforcement and charging
  • User Plane Coordination - Controlling the PGW-U (User Plane) for packet forwarding

What PGW-C Does

  • Accepts session requests from SGW-C via S5/S8 interface (GTP-C)
  • Allocates UE IP addresses from configured subnet pools
  • Requests policy decisions from PCRF via Gx interface (Diameter)
  • Programs forwarding rules in PGW-U via Sxb interface (PFCP)
  • Manages QoS enforcement through bearer contexts and QoS rules
  • Tracks charging information for billing systems

Architecture

Component Overview

Process Architecture

PGW-C is built on Elixir/OTP and uses a supervised process architecture:

  • Application Supervisor - Top-level supervisor managing all components
  • Protocol Brokers - Handle incoming/outgoing protocol messages
  • Session Processes - One GenServer per active PDN connection
  • Registries - Track allocated resources (IPs, TEIDs, SEIDs, etc.)
  • PFCP Node Manager - Maintains PFCP associations with PGW-U peers

Each component is supervised and will automatically restart on failure, ensuring system reliability.


Network Interfaces

PGW-C implements three primary 3GPP interfaces:

S5/S8 Interface (GTP-C v2)

Purpose: Control plane signaling between SGW-C and PGW-C

Protocol: GTP-C Version 2 over UDP

Key Messages:

  • Create Session Request/Response
  • Delete Session Request/Response
  • Create Bearer Request/Response
  • Delete Bearer Request/Response

Configuration: See S5/S8 Configuration

Sxb Interface (PFCP)

Purpose: Control plane signaling between PGW-C and PGW-U

Protocol: PFCP (Packet Forwarding Control Protocol) over UDP

Key Messages:

  • Association Setup Request/Response
  • Session Establishment Request/Response
  • Session Modification Request/Response
  • Session Deletion Request/Response
  • Heartbeat Request/Response

Configuration: See PFCP/Sxb Interface Documentation

Gx Interface (Diameter)

Purpose: Policy and Charging Rules Function (PCRF) interface

Protocol: Diameter (IETF RFC 6733)

Key Messages:

  • Credit Control Initial Request/Answer (CCR-I/CCA-I)
  • Credit Control Termination Request/Answer (CCR-T/CCA-T)

Configuration: See Diameter Gx Interface Documentation


Key Concepts

PDN Session

A PDN (Packet Data Network) Session represents a UE's data connection to an external network (like the Internet). Each session has:

  • UE IP Address - Allocated from a configured subnet pool
  • APN (Access Point Name) - Identifies the external network
  • Bearer Context - Contains QoS parameters and tunnel information
  • Charging ID - Unique identifier for billing
  • TEID (Tunnel Endpoint ID) - S5/S8 interface tunnel identifier
  • SEID (Session Endpoint ID) - Sxb interface session identifier

Bearer Context

A bearer represents a traffic flow with specific QoS characteristics:

  • Default Bearer - Created with every PDN session
  • Dedicated Bearers - Additional bearers for specific QoS needs
  • EBI (EPS Bearer ID) - Unique identifier for each bearer
  • QoS Parameters - QCI, ARP, bitrates (MBR, GBR)

PFCP Rules

The PGW-C programs the PGW-U with packet processing rules:

  • PDR (Packet Detection Rule) - Matches packets (uplink/downlink)
  • FAR (Forwarding Action Rule) - Specifies forwarding behavior
  • QER (QoS Enforcement Rule) - Enforces bitrate limits
  • BAR (Buffering Action Rule) - Controls packet buffering

See PFCP Interface Documentation for details.

IP Address Allocation

UE IP addresses are allocated from configured subnet pools:

  • APN-based selection - Different APNs can use different subnets
  • Dynamic allocation - Random IP selection from available range
  • Static allocation - Support for UE-requested IP addresses
  • Collision detection - Ensures unique IP assignment

See UE IP Pool Allocation for configuration.


Getting Started

Prerequisites

  • Elixir ~1.16
  • Erlang/OTP 26+
  • Network connectivity to SGW-C, PGW-U, and PCRF
  • Understanding of LTE EPC architecture

Starting OmniPGW

  1. Configure runtime settings in config/runtime.exs
  2. Compile the application:
    mix deps.get
    mix compile
  3. Start the application:
    mix run --no-halt

Verifying Operation

Check the logs for successful startup:

[info] Starting OmniPGW...
[info] Starting Metrics Exporter on 127.0.0.42:42069
[info] Starting S5/S8 Broker on 127.0.0.10
[info] Starting Sxb Broker on 127.0.0.20
[info] Starting Gx Broker
[info] Starting PFCP Node Manager
[info] OmniPGW successfully started

Access metrics at http://127.0.0.42:42069/metrics (configured address).


Configuration

All runtime configuration is defined in config/runtime.exs. The configuration is structured into several sections:

Configuration Overview

Quick Configuration Reference

SectionPurposeDocumentation
metricsPrometheus metrics exporterMonitoring Guide
diameterGx interface to PCRFDiameter Gx Config
s5s8GTP-C interface to SGW-CS5/S8 Config
sxbPFCP interface to PGW-UPFCP Config
ueUE IP address poolsIP Pool Config
pcoProtocol Configuration OptionsPCO Config

See the Complete Configuration Guide for detailed information.


Web UI - Real-Time Operations Dashboard

OmniPGW includes a built-in Web UI for real-time monitoring and operations, providing instant visibility into system status without needing command-line tools or metrics queries.

Accessing the Web UI

http://<omnipgw-ip>:<web-port>/

Available Pages:

PageURLPurposeRefresh Rate
PGW Sessions/pgw_sessionsView all active PDN sessions2 seconds
PFCP Sessions/pfcp_sessionsView PFCP sessions with PGW-U2 seconds
UPF Status/upf_statusMonitor PFCP peer associations2 seconds
Diameter Peers/diameterMonitor PCRF connectivity1 second
Logs/logsReal-time log streamingLive

Key Features

Real-Time Updates:

  • All pages auto-refresh (no manual reload needed)
  • Live data streaming from OmniPGW processes
  • Color-coded status indicators (green/red)

Search & Filter:

  • Search sessions by IMSI, IP, MSISDN, or APN
  • Instant filtering without page reload

Expandable Details:

  • Click any row to see complete details
  • Inspect full session state
  • View peer configuration and capabilities

No Authentication Required (Internal Use):

  • Direct access from management network
  • Designed for NOC/operations team use
  • Bind to management IP only for security

Operational Workflows

Session Troubleshooting:

1. User reports connection issue
2. Open PGW Sessions page
3. Search by IMSI or phone number
4. Verify session exists and has correct:
- UE IP address allocated
- QoS parameters from PCRF
- Tunnel endpoints established
5. If no session found → Check Diameter page for PCRF connectivity

System Health Check:

1. Open UPF Status page → Verify all PGW-U peers "Associated"
2. Open Diameter page → Verify all PCRF peers "Connected"
3. Open PGW Sessions → Check active session count vs. capacity

Capacity Monitoring:

  • Glance at PGW Sessions count
  • Compare to licensed/expected capacity
  • Identify peak usage times
  • Monitor distribution across APNs

Web UI vs. Metrics

Use Web UI for:

  • Individual session details
  • Real-time peer status
  • Quick health checks
  • Troubleshooting specific users
  • Verifying configuration

Use Prometheus Metrics for:

  • Historical trends
  • Alerting and notifications
  • Capacity planning graphs
  • Performance analysis
  • Long-term monitoring

Best Practice: Use both together - Web UI for immediate operations, Prometheus for trends and alerts.


Monitoring & Metrics

In addition to the Web UI, OmniPGW exposes Prometheus-compatible metrics for monitoring:

Available Metrics

  • Session Metrics

    • teid_registry_count - Active S5/S8 sessions
    • seid_registry_count - Active PFCP sessions
    • session_id_registry_count - Active Gx sessions
    • address_registry_count - Allocated UE IP addresses
    • charging_id_registry_count - Active charging IDs
  • Message Metrics

    • s5s8_inbound_messages_total - GTP-C messages received
    • sxb_inbound_messages_total - PFCP messages received
    • gx_inbound_messages_total - Diameter messages received
    • Message handling duration distributions
  • Error Metrics

    • s5s8_inbound_errors_total - S5/S8 protocol errors
    • sxb_inbound_errors_total - PFCP protocol errors
    • gx_inbound_errors_total - Diameter errors

Accessing Metrics

Metrics are exposed via HTTP at the configured endpoint:

curl http://127.0.0.42:42069/metrics

See Monitoring & Metrics Guide for dashboard setup and alerting.


Detailed Documentation

This section provides a comprehensive overview of all OmniPGW documentation. Documents are organized by topic and use case.

Documentation Structure

OmniPGW Documentation
├── OPERATIONS.md (This Guide)

└── docs/
├── Configuration & Setup
│ ├── configuration.md Complete runtime.exs reference
│ ├── ue-ip-allocation.md IP pool configuration
│ └── pco-configuration.md DNS, P-CSCF, MTU settings

├── Network Interfaces
│ ├── pfcp-interface.md Sxb/PFCP (PGW-U communication)
│ ├── diameter-gx.md Gx (PCRF communication)
│ ├── diameter-gy.md Gy/Ro (OCS communication)
│ └── s5s8-interface.md S5/S8 (SGW-C communication)

└── Operations
├── session-management.md PDN session lifecycle
└── monitoring.md Prometheus metrics & alerting

Documentation by Topic

🚀 Getting Started

DocumentDescriptionPurpose
OPERATIONS.mdMain operations guide (this document)Overview and quick start

⚙️ Configuration

DocumentDescriptionLines
configuration.mdComplete runtime.exs configuration reference1,600+
ue-ip-allocation.mdUE IP pool management and allocation943
pco-configuration.mdProtocol Configuration Options (DNS, P-CSCF, MTU)344

🔌 Network Interfaces

DocumentDescriptionLines
pfcp-interface.mdPFCP/Sxb interface to PGW-U1,355
diameter-gx.mdDiameter Gx interface to PCRF (Policy Control)941
diameter-gy.mdDiameter Gy/Ro interface to OCS (Online Charging)1,100+
s5s8-interface.mdGTP-C S5/S8 interface to SGW-C456

📊 Operations & Monitoring

DocumentDescriptionLines
session-management.mdPDN session lifecycle and operations435
monitoring.mdPrometheus metrics, Grafana dashboards, alerting807

Documentation Features

📈 Mermaid Diagrams

All documents include Mermaid charts for visual understanding:

  • Architecture diagrams
  • Sequence diagrams (message flows)
  • State machines
  • Network topology

💡 Practical Examples

Every document includes:

  • Real-world configuration examples
  • Copy-paste ready configs
  • Common use cases

🔍 Troubleshooting

Each interface document includes:

  • Common issues and solutions
  • Debug commands
  • Metrics for diagnosis

🔗 Cross-References

Documents are extensively cross-linked for easy navigation.

Reading Paths

For Network Operators

  1. OPERATIONS.md - Overview (this document)
  2. configuration.md - Setup
  3. monitoring.md - Monitoring
  4. session-management.md - Day-to-day operations

For Network Engineers

  1. OPERATIONS.md - Architecture overview (this document)
  2. pfcp-interface.md - User plane control
  3. diameter-gx.md - Policy control
  4. diameter-gy.md - Online charging
  5. s5s8-interface.md - Session management
  6. ue-ip-allocation.md - IP management

For Configuration & Deployment

  1. configuration.md - Complete reference
  2. ue-ip-allocation.md - IP pools
  3. pco-configuration.md - Network parameters
  4. monitoring.md - Set up monitoring

Document Statistics

  • Total Documents: 10
  • Total Lines: ~7,300+
  • Total Size: ~180 KB
  • Mermaid Diagrams: 65+
  • Code Examples: 120+

Key Concepts Covered

Architecture

  • ✅ Control/User plane separation
  • ✅ OTP/Elixir architecture
  • ✅ Process supervision
  • ✅ GenServer-based sessions

Protocols

  • ✅ PFCP (Packet Forwarding Control Protocol)
  • ✅ GTP-C v2 (GPRS Tunnelling Protocol)
  • ✅ Diameter (RFC 6733)

3GPP Interfaces

  • ✅ Sxb (PGW-C ↔ PGW-U)
  • ✅ Gx (PGW-C ↔ PCRF)
  • ✅ Gy/Ro (PGW-C ↔ OCS)
  • ✅ S5/S8 (SGW-C ↔ PGW-C)

Operations

  • ✅ Session management
  • ✅ IP allocation strategies
  • ✅ QoS enforcement
  • ✅ Charging integration
  • ✅ Monitoring & alerting

Additional Resources

3GPP Specifications

SpecTitle
TS 29.274GTP-C v2 (S5/S8 interface)
TS 29.244PFCP (Sxb interface)
TS 29.212Diameter Gx interface (Policy Control)
TS 32.299Diameter Charging Applications (Gy/Ro)
TS 32.251Packet Switched domain charging
TS 23.401EPC architecture

Contributing

To update documentation:

  1. Edit Markdown files in docs/
  2. Include Mermaid diagrams for visual concepts
  3. Add practical examples
  4. Cross-reference related docs
  5. Update OPERATIONS.md if adding new documents


Support

For questions or issues with OmniPGW:

  • Review documentation in this guide
  • Check configuration examples
  • Consult troubleshooting sections in interface docs
  • Refer to the project repository for contributions

OmniPGW - Carrier-grade LTE Packet Gateway Control Plane

Developed by Omnitouch Network Services

Documentation Version: 1.0 Last Updated: 2025-10-29