Web UI Operations Guide
Table of Contents
- Overview
- Accessing the Control Panel
- Sessions View
- Rules Management
- Buffer Management
- Statistics Dashboard
- Capacity Monitoring
- Configuration View
- Routes View
- XDP Capabilities View
- Logs Viewer
Overview
The OmniUPF Web UI provides a comprehensive control panel for real-time monitoring and management of the User Plane Function. The interface is built on Phoenix LiveView and provides:
- Real-time visibility into PFCP sessions and active PDU connections
- Rules inspection for PDR, FAR, QER, and URR across all sessions
- Buffer management for packet buffering during mobility events
- Statistics monitoring for packet processing, routes, and interfaces
- Capacity tracking for eBPF map usage and limits
- Live log viewing for troubleshooting
Architecture
The control panel communicates with multiple OmniUPF instances via their REST API to:
- Query PFCP sessions and associations
- Inspect packet detection and forwarding rules
- Monitor packet buffers and their status
- Access real-time statistics and performance metrics
- Track eBPF map capacity and utilization
Accessing the Control Panel
Default Access
The control panel is accessible via HTTPS on the OmniUPF management server:
https://<upf-server>:443/
Default Port: 443 (HTTPS with self-signed certificate)
Configuration
The control panel requires OmniUPF host configuration in config/config.exs:
Multiple UPF instances can be configured for multi-instance deployments:
The upf_hosts configuration defines which OmniUPF instances are available in the host selector dropdown throughout the UI.
Navigation
The control panel provides navigation tabs for each operational area:
- Sessions -
/sessions- PFCP sessions and associations - Rules -
/rules- PDR, FAR, QER, URR rule inspection - Buffers -
/buffers- Packet buffer monitoring and control - Statistics -
/statistics- Packet, route, XDP, and interface statistics - Capacity -
/capacity- eBPF map usage and capacity monitoring - Config -
/upf_config- UPF configuration and dataplane addresses - Routes -
/routes- UE routes and routing protocol sessions (OSPF, BGP) - XDP Capabilities -
/xdp_capabilities- XDP mode support and performance capabilities - Logs -
/logs- Live log streaming
Sessions View
URL: /sessions
Features
The Sessions view displays all active PFCP sessions and associations from selected OmniUPF instances.
PFCP Associations Summary
Displays all active PFCP associations (control connections from SMF/PGW-C):
| Column | Description |
|---|---|
| Node ID | SMF or PGW-C node identifier (FQDN or IP) |
| Address | SMF/PGW-C IP address for PFCP communication |
| Next Session ID | Next available PFCP session ID for this association |
Purpose:
- Verify SMF connectivity to UPF
- Monitor number of control plane connections
- Track session ID allocation per association
Active Sessions Table
Displays all PFCP sessions representing active UE PDU sessions:
| Column | Description |
|---|---|
| Local SEID | UPF-assigned session endpoint identifier |
| Remote SEID | SMF-assigned session endpoint identifier |
| UE IP | User equipment IPv4 or IPv6 address |
| TEID | GTP-U Tunnel Endpoint Identifier for uplink traffic |
| PDRs | Number of packet detection rules in session |
| FARs | Number of forwarding action rules in session |
| QERs | Number of QoS enforcement rules in session |
| URRs | Number of usage reporting rules in session |
| Actions | Expand button to view detailed rule information |
Features:
- Filter by IP: Find sessions for specific UE IP address
- Filter by TEID: Find sessions by tunnel endpoint ID
- Expand session: View complete PDR/FAR/QER/URR JSON details
- Auto-refresh: Updates every 10 seconds
Expanded Session View:
When you click "Expand" on a session, the view shows:
- Packet Detection Rules (PDRs): Complete JSON with TEID, UE IP, FAR ID, QER ID, SDF filters
- PDR IDs are clickable - Click to navigate to the Rules tab and view full PDR details
- Uplink PDRs (TEID ≠ 0) link to uplink PDR lookup
- Downlink PDRs (IPv4) link to downlink PDR lookup
- Downlink PDRs (IPv6) link to IPv6 downlink PDR lookup
- Forwarding Action Rules (FARs): Action flags, outer header creation, destination endpoints
- QoS Enforcement Rules (QERs): MBR, GBR, QFI, and other QoS parameters
- Usage Reporting Rules (URRs): Volume counters (uplink, downlink, total bytes)

Expanded session view showing detailed PDRs, FARs, and QERs for a specific session.
Use Cases
Verify UE Connectivity:
- Navigate to Sessions view
- Enter UE IP address in filter
- Confirm session exists with correct TEID
- Expand to verify PDR/FAR configuration
Monitor Session Count:
- Check total session count in header
- Compare across multiple UPF instances
- Track session growth over time
Troubleshoot Session Issues:
- Search for specific UE IP or TEID
- Expand session to inspect rule configuration
- Verify FAR forwarding parameters
- Check QER QoS settings
Real-time Updates
The Sessions view automatically refreshes every 10 seconds. A health check indicator shows UPF connectivity status:
- HEALTHY (green): UPF is reachable and responding
- UNHEALTHY (red): UPF is not reachable or not responding
- UNKNOWN (gray): Health status not yet determined
Rules Management
URL: /rules
The Rules view provides comprehensive inspection of all packet detection, forwarding, QoS, and usage reporting rules across all sessions.
PDR Tab - Packet Detection Rules
View and inspect all PDRs in the UPF with lookup forms and clickable navigation:
Uplink PDRs (N3 → N6):
- Lookup Form: Search by TEID to view specific uplink PDR details
- TEID: GTP-U tunnel endpoint ID from gNB (clickable - navigates to lookup)
- FAR ID: Associated forwarding action rule (clickable - navigates to FAR tab)
- QER ID: Associated QoS enforcement rule (clickable - navigates to QER tab)
- URR IDs: Associated usage reporting rules (clickable - navigates to URR tab)
- Outer Header Removal: GTP-U decapsulation flag
- SDF Filters: Service data flow classification rules
Downlink PDRs (N6 → N3):
- Lookup Form: Search by UE IPv4 address to view specific downlink PDR details
- UE IP: IPv4 address of user equipment (displayed in lookup results)
- FAR ID: Associated forwarding action rule (clickable - navigates to FAR tab)
- QER ID: Associated QoS enforcement rule (clickable - navigates to QER tab)
- URR IDs: Associated usage reporting rules (clickable - navigates to URR tab)
- SDF Mode: Service data flow filter mode (none, sdf only, sdf + default)
- Pagination: Browse PDRs with page controls (default 100 per page, max 1000)
IPv6 Downlink PDRs:
- API supports pagination for IPv6 downlink PDRs
- Same structure as IPv4 but keyed by IPv6 addresses
- Full UI tab can be added if needed
FAR Tab - Forwarding Action Rules
View all FARs with their forwarding actions and parameters:
Features:
- Lookup Form: Search by FAR ID to view specific FAR details
- Auto-lookup: Clicking FAR IDs from PDR details automatically populates lookup
- Real-time Updates: FAR status reflects current buffering state
| Column | Description |
|---|---|
| FAR ID | Unique forwarding rule identifier |
| Action | Forwarding action flags (FORWARD, DROP, BUFFER, DUPLICATE, NOTIFY) |
| Buffering | Current buffering status (Enabled/Disabled) |
| Destination | Outer header creation parameters (TEID, IP address) |
FAR Action Flags:
- FORWARD (1): Forward packet to destination
- DROP (2): Discard packet
- BUFFER (4): Store packet in buffer
- NOTIFY (8): Send notification to control plane
- DUPLICATE (16): Duplicate packet to multiple destinations
Buffering Toggle:
- Click "Enable Buffer" or "Disable Buffer" to toggle buffering flag
- Useful for troubleshooting handover scenarios
- Changes FAR action immediately in eBPF map
QER Tab - QoS Enforcement Rules
View QoS rules applied to traffic flows:
Features:
- Clickable Navigation: Click QER IDs from PDR details to navigate and highlight specific QER
- Auto-highlight: QER row is highlighted when navigated from PDR
- Pagination: Browse QERs with page controls (default 100 per page, max 1000)
| Column | Description |
|---|---|
| QER ID | Unique QoS rule identifier (clickable when referenced from PDRs) |
| MBR (Uplink) | Maximum bit rate for uplink traffic (kbps) |
| MBR (Downlink) | Maximum bit rate for downlink traffic (kbps) |
| GBR (Uplink) | Guaranteed bit rate for uplink traffic (kbps) |
| GBR (Downlink) | Guaranteed bit rate for downlink traffic (kbps) |
| QFI | QoS Flow Identifier (5G marking) |
QoS Interpretation:
- MBR = 0: No rate limit
- GBR = 0: Best-effort (no guaranteed bandwidth)
- GBR > 0: Guaranteed bit rate flow (prioritized)
URR Tab - Usage Reporting Rules
View usage tracking rules and volume counters:
Features:
- Lookup Form: Search by URR ID to find and highlight specific URR
- Clickable Navigation: Click URR IDs from PDR details to navigate and highlight specific URR
- Auto-highlight: URR row is highlighted in blue when navigated from PDR or searched via lookup
- Pagination: Browse URRs with page controls (default 100 per page, max 1000)
| Column | Description |
|---|---|
| URR ID | Unique usage reporting rule identifier (clickable when referenced from PDRs) |
| Uplink Volume | Bytes sent from UE to data network |
| Downlink Volume | Bytes sent from data network to UE |
| Total Volume | Total bytes in both directions |
| Actions | Delete button to reset counters for this URR |
Volume Display:
- Automatically formatted (B, KB, MB, GB, TB)
- Real-time counters updated every refresh
- Used for charging and analytics
Filtering:
- Only shows URRs with non-zero volume
- Inactive URRs (all counters at 0) are filtered out for performance
Use Cases
Inspect Traffic Classification:
- Navigate to Rules → PDR tab
- Search for specific TEID or UE IP
- Verify PDR associates with correct FAR and QER
Troubleshoot Forwarding Issues:
- Navigate to Rules → FAR tab
- Locate FAR ID from session PDR
- Verify action is FORWARD (not DROP or BUFFER)
- Check outer header creation parameters
Monitor QoS Enforcement:
- Navigate to Rules → QER tab
- Verify MBR and GBR values match policy
- Check QFI marking for 5G flows
Track Data Usage:
- Navigate to Rules → URR tab
- Sort by total volume to find highest users
- Monitor volume growth over time
- Verify charging integration
Buffer Management
URL: /buffers
Features
The Buffers view displays packet buffers maintained by the UPF during mobility events or path switches.
Total Statistics
Dashboard displays aggregate buffer statistics:
- Total Packets: Number of buffered packets across all FARs
- Total Bytes: Total buffered data size
- Total FARs: Number of FARs with buffered packets
- Max Per FAR: Maximum packets allowed per FAR
- Max Total: Maximum total buffered packets
- Packet TTL: Time-to-live for buffered packets (seconds)
Buffers by FAR
Table of all FARs with buffered packets:
| Column | Description |
|---|---|
| FAR ID | Forwarding action rule identifier |
| Packet Count | Number of packets buffered for this FAR |
| Byte Count | Total bytes buffered for this FAR |
| Oldest Packet | Timestamp of oldest buffered packet |
| Newest Packet | Timestamp of newest buffered packet |
| Actions | Buffer control buttons (pill-style) |
Buffer Control Actions
For each FAR with buffered packets, the following pill-style buttons are available:
Buffering Control:
- Disable Buffer (red): Turn off buffering for this FAR (updates FAR action flag)
- Enable Buffer (purple): Turn on buffering for this FAR
Buffer Operations:
- Flush (blue): Replay all buffered packets using current FAR rules
- Clear (gray): Delete all buffered packets without forwarding
Clear All Buffers:
- Red "Clear All" button in header
- Clears buffers for all FARs
- Requires confirmation
Use Cases
Monitor Handover Buffering:
- During handover, verify packets are being buffered
- Check FAR buffering status (should be enabled)
- Monitor packet count and age
Complete Handover:
- After path switch, click "Flush" to replay buffered packets
- Verify packets are forwarded to new path
- Click "Disable Buffer" to stop buffering
Clear Stuck Buffers:
- Identify FARs with old buffered packets (check oldest timestamp)
- Click "Clear" to discard stale packets
- Or click "Disable Buffer" to prevent further buffering
Troubleshoot Buffer Overflow:
- Check total packet count vs. max total
- Identify FARs with excessive buffering
- Verify SMF has sent session modification to disable buffering
- Manually disable buffering if SMF command missed
Real-time Updates
The Buffers view automatically refreshes every 5 seconds to show current buffer status.
Statistics Dashboard
URL: /statistics
Features
The Statistics view provides real-time performance metrics from the OmniUPF datapath. For detailed information about Prometheus metrics, see the Metrics Reference.
Packet Statistics
Aggregate packet processing counters:
- RX Packets: Total packets received on all interfaces
- TX Packets: Total packets transmitted on all interfaces
- Dropped Packets: Packets discarded due to errors or policy
- GTP-U Packets: Packets processed with GTP-U encapsulation
Use: Monitor overall UPF traffic load and packet drop rate
Route Statistics
Per-route forwarding metrics (if available):
- Route hits: Packets matched by each routing rule
- Forwarding success: Successfully forwarded packet count
- Forwarding errors: Failed forwarding attempts
Use: Identify busy routes and forwarding errors
XDP Statistics
eXpress Data Path performance metrics:
- XDP Processed: Total packets processed at XDP layer
- XDP Passed: Packets sent to network stack
- XDP Dropped: Packets dropped at XDP layer
- XDP Aborted: Processing errors in XDP program
Use: Monitor XDP performance and detect processing errors
XDP Drop Causes:
- Invalid packet format
- eBPF map lookup failure
- Policy-based drops
- Resource exhaustion
N3/N6 Interface Statistics
Per-interface traffic counters:
N3 Interface (RAN connectivity):
- RX N3: Packets received from gNB/eNodeB
- TX N3: Packets transmitted to gNB/eNodeB
N6 Interface (Data Network connectivity):
- RX N6: Packets received from data network (Internet/IMS)
- TX N6: Packets transmitted to data network
Total: Aggregate packet count across interfaces
Use: Monitor traffic balance and interface-specific issues
Use Cases
Monitor Traffic Load:
- Check packet RX/TX rates
- Verify traffic is flowing in both directions
- Compare N3 vs N6 traffic (should be roughly equal)
Detect Packet Drops:
- Check dropped packet counter
- Review XDP dropped counter
- Investigate cause in logs if drops are high
Performance Analysis:
- Monitor XDP processed vs. passed ratio
- Check for XDP aborts (indicates errors)
- Verify N3/N6 interface traffic distribution
Capacity Planning:
- Track packet rate over time
- Compare to UPF capacity limits
- Plan for scaling if approaching limits
Real-time Updates
Statistics automatically refresh every 5 seconds.
Capacity Monitoring
URL: /capacity
Features
The Capacity view displays eBPF map usage and capacity limits for all maps in the UPF datapath.
eBPF Map Usage Table
Table of all eBPF maps with usage information:
| Column | Description |
|---|---|
| Map Name | eBPF map name (e.g., uplink_pdr_map, far_map) |
| Used | Number of entries currently in map |
| Capacity | Maximum entries allowed in map |
| Usage | Visual progress bar with percentage |
| Key Size | Size of map keys in bytes |
| Value Size | Size of map values in bytes |
Color-Coded Usage Indicators
The usage progress bar is color-coded based on utilization:
- Green (<50%): Normal operation, ample capacity
- Yellow (50-70%): Caution, monitor growth
- Amber (70-90%): Warning, plan capacity increase
- Red (>90%): Critical, immediate action required
Critical Maps to Monitor
uplink_pdr_map:
- Stores uplink PDRs keyed by TEID
- One entry per uplink traffic flow
- Critical: Exhaustion prevents new session establishment
downlink_pdr_map / downlink_pdr_map_ip6:
- Stores downlink PDRs keyed by UE IP address
- One entry per UE IPv4/IPv6 address
- Critical: Exhaustion prevents new session establishment
far_map:
- Stores forwarding action rules keyed by FAR ID
- Shared across multiple PDRs
- High Priority: Affects forwarding decisions
qer_map:
- Stores QoS enforcement rules keyed by QER ID
- Medium Priority: Affects QoS but not basic connectivity
urr_map:
- Stores usage reporting rules keyed by URR ID
- Low Priority: Affects charging but not connectivity
Use Cases
Capacity Planning:
- Monitor map usage trends over time
- Identify which maps are growing fastest
- Plan capacity increases before reaching limits
Prevent Session Establishment Failures:
- Check PDR map usage before expected traffic surge
- Increase map capacity if approaching limits
- Monitor after capacity increase to verify
Troubleshoot Session Failures:
- When session establishment fails, check Capacity view
- If PDR maps are red (>90%), capacity is exhausted
- Increase map capacity or clear stale sessions
Optimize Map Configuration:
- Review key and value sizes
- Calculate memory usage per map
- Optimize map sizes based on actual usage patterns
Capacity Configuration
eBPF map capacities are configured at UPF startup in the UPF configuration file. Typical values:
- Small deployment: 10,000 - 100,000 entries per map
- Medium deployment: 100,000 - 1,000,000 entries per map
- Large deployment: 1,000,000+ entries per map
Memory Calculation:
Map Memory = (Key Size + Value Size) × Capacity
For example, a PDR map with 1 million entries and 64-byte values uses approximately 64 MB of kernel memory.
Real-time Updates
Capacity view automatically refreshes every 10 seconds.
Configuration View
URL: /upf_config
Features
The Configuration view displays UPF operational parameters and dataplane configuration.
UPF Configuration
Displays static UPF configuration:
- PFCP Interface: IP address and port for SMF/PGW-C connectivity
- N3 Interface: IP address for RAN (gNB/eNodeB) connectivity
- N6 Interface: IP address for data network connectivity
- N9 Interface: IP address for inter-UPF communication (optional)
- API Port: REST API listening port
- Version: OmniUPF software version
Dataplane (eBPF) Configuration
Displays active runtime dataplane parameters:
- Active N3 Address: Runtime N3 interface binding
- Active N9 Address: Runtime N9 interface binding (if enabled)
These values reflect the actual eBPF datapath configuration and may differ from static configuration if interfaces have been changed.
Use Cases
Verify UPF Connectivity:
- Check N3 interface IP matches gNB configuration
- Verify N6 interface can route to data network
- Confirm PFCP interface is reachable from SMF
Troubleshoot Interface Issues:
- Compare static config with dataplane active addresses
- Verify interfaces are bound correctly
- Check for interface configuration changes
Documentation and Audit:
- Record UPF configuration for documentation
- Verify deployment matches design specifications
- Audit interface assignments
Routes View
URL: /routes
Features
The Routes view provides comprehensive monitoring of User Equipment (UE) IP routes and routing protocol sessions (OSPF and BGP).
Route Status Overview
Dashboard displays aggregate route statistics:
- Status: Routing enabled or disabled
- Total Routes: Total number of UE IP routes
- Synced: Number of successfully synced routes
- Failed: Number of routes that failed to sync
Active UE IP Routes
Table displaying all active User Equipment IP routes:
| Column | Description |
|---|---|
| Index | Route index number |
| UE IP Address | IPv4 or IPv6 address assigned to the UE |
Purpose:
- View all UE IP addresses that have routes configured
- Verify route distribution to routing protocols
- Monitor route synchronization status
OSPF Neighbors
Table of OSPF (Open Shortest Path First) protocol neighbors:
| Column | Description |
|---|---|
| Neighbor ID | OSPF router identifier |
| Address | IP address of the OSPF neighbor |
| Interface | Interface used for OSPF adjacency |
| State | OSPF adjacency state (Full, Init, etc.) |
| Priority | OSPF priority value |
| Up Time | Duration the neighbor has been up |
| Dead Time | Time until neighbor is considered dead |
OSPF States:
- Full (green): Fully adjacent and exchanging routing information
- Other states (yellow): Adjacency forming or incomplete
BGP Peers
Table of BGP (Border Gateway Protocol) peers:
| Column | Description |
|---|---|
| Neighbor IP | IP address of the BGP peer |
| ASN | Autonomous System Number of the peer |
| State | BGP session state (Established, Idle, etc.) |
| Up/Down | Duration of current state |
| Prefixes Received | Number of route prefixes received from peer |
| Msg Sent | Total BGP messages sent to peer |
| Msg Rcvd | Total BGP messages received from peer |
BGP States:
- Established (green): Active BGP session, exchanging routes
- Other states (red): Session down or establishing
The header also displays the local BGP Router ID and ASN when BGP is configured.
OSPF Redistributed Routes
Table showing OSPF External LSAs (Link State Advertisements) for redistributed UE routes:
| Column | Description |
|---|---|
| Link State ID | LSA identifier (typically the network address) |
| Mask | Network mask for the route |
| Advertising Router | Router ID advertising this external route |
| Metric Type | OSPF external metric type (E1 or E2) |
| Metric | OSPF cost metric for the route |
| Age | Time since LSA was originated (seconds) |
| Seq Number | LSA sequence number for versioning |
Purpose:
- Verify UE routes are being redistributed into OSPF
- Monitor which router is advertising external routes
- Track LSA aging and updates
Route Control Actions
Sync Routes Button:
- Manually triggers route synchronization to FRR (Free Range Routing)
- Forces update of routing protocol with current UE routes
- Useful after configuration changes or to recover from sync failures
Refresh Button:
- Manually refresh all route information
- Updates OSPF neighbors, BGP peers, and route tables
Use Cases
Monitor Routing Protocol Health:
- Navigate to Routes view
- Check OSPF neighbor states (should be "Full")
- Verify BGP peers are "Established"
- Confirm expected number of neighbors/peers
Verify UE Route Distribution:
- Check Active UE IP Routes table for specific UE
- Scroll to OSPF Redistributed Routes section
- Verify UE route appears in external LSAs
- Confirm advertising router matches expected UPF
Troubleshoot Route Sync Issues:
- Check Synced vs. Failed counters in status overview
- If routes are failing, click "Sync Routes" button
- Monitor error messages in red banner if sync fails
- Check OSPF/BGP error messages in respective sections
Verify Multi-UPF Deployment:
- Select different UPF instances from dropdown
- Compare route counts across instances
- Verify OSPF neighbors see each other
- Check BGP peering relationships
Monitor Route Scaling:
- Track total route count as UE sessions increase
- Verify routes are distributed to routing protocols
- Monitor OSPF LSA count growth
- Check BGP prefix count received by peers
Real-time Updates
The Routes view automatically refreshes every 10 seconds to show current routing protocol status and UE routes.
Routing Integration
The Routes view integrates with FRR (Free Range Routing) running on the UPF:
- OSPF: Routes are redistributed as External Type-2 LSAs
- BGP: Routes are advertised to configured BGP peers
- Sync mechanism: REST API calls trigger vtysh commands to update FRR
XDP Capabilities View
URL: /xdp_capabilities
Features
The XDP Capabilities view displays eXpress Data Path (XDP) mode support, performance capabilities, and throughput calculations for the UPF dataplane.
Interface Configuration
Displays network interface and driver information:
| Field | Description |
|---|---|
| Interface Name | Network interface used for XDP (e.g., eth0, ens1f0) |
| Driver | Network driver name (e.g., i40e, ixgbe, virtio_net) |
| Driver Version | Driver version string |
| Current Mode | Active XDP mode (DRV, SKB, or NONE) |
| Multi-Queue Count | Number of NIC queue pairs for parallel processing |
XDP Modes
The view displays all XDP modes with their support status and performance characteristics:
XDP_DRV (Driver Mode):
- Performance: ~5-10 Mpps (millions of packets per second)
- Description: Native XDP support in driver, highest performance
- Requires: NIC driver with native XDP support (i40e, ixgbe, mlx5, etc.)
- Status: Supported if driver has XDP hooks
- Indicator: Green checkmark (✓) if supported, red X (✗) if not
XDP_SKB (Generic Mode):
- Performance: ~1-2 Mpps
- Description: Fallback mode using kernel network stack
- Requires: Any network interface
- Status: Always supported
- Indicator: Green checkmark (✓)
Current Mode Indicator:
- Blue dot next to the currently active XDP mode
- Shows which mode is actually in use
Unsupported Mode Reasons:
- If a mode is unsupported, the "Reason" field explains why
- Common reasons: driver lacks XDP support, interface type incompatibility
XDP Capabilities view showing interface configuration, supported modes, and the interactive Mpps throughput calculator
Recommendations
The view displays a colored recommendation banner based on current configuration:
Green (Optimal):
- "✓ Optimal: XDP_DRV mode enabled with native driver support"
- Highest performance mode is active
Yellow (Warning):
- "⚠ Consider upgrading to XDP_DRV mode for better performance"
- Running in generic mode when driver mode is available
- "⚠ Warning: XDP_DRV not supported by this driver"
- Hardware limitations prevent optimal performance
Blue (Informational):
- General information about XDP configuration
Mpps Performance Calculator
Interactive calculator to convert packet rate (Mpps) to throughput (Gbps):
Input Parameters
Packet Rate (Mpps):
- Range: 0.1 - 100 Mpps
- Default: Maximum Mpps for current XDP mode
- Represents millions of packets processed per second
Average Packet Size (bytes):
- Range: 64 - 9000 bytes
- Default: 1200 bytes (typical GTP packet)
- Includes full packet with GTP encapsulation
Quick Preset Buttons:
- 64B (min): Minimum Ethernet frame size
- 128B: Small packets
- 256B: Control plane or signaling
- 512B: Medium-sized packets
- 1024B: Large packets
- 1518B (max): Maximum Ethernet frame size without jumbo frames
Calculation Results
Total Throughput (Gbps):
- Wire-rate throughput including all headers
- Formula:
Gbps = Mpps × Packet_Size × 8 / 1000 - Includes GTP, UDP, IP, and Ethernet headers
User Data Rate (Gbps):
- Actual user payload throughput
- Excludes ~50 bytes GTP encapsulation overhead
- Formula:
Gbps = Mpps × (Packet_Size - 50) / 1000
Packet Rate:
- Displays Mpps and packets/sec with thousands separator
- Example: 10 Mpps = 10,000,000 packets/sec
Formula Display:
- Shows calculation breakdown step-by-step
- Example:
10 Mpps × 1200 bytes × 8 bits/byte ÷ 1000 = 96 Gbps
Understanding Mpps
The view includes an explanation section covering:
What is Mpps:
- Millions of Packets Per Second
- Key metric for packet processing performance
- Independent of packet size
Relationship to Throughput:
- Same Mpps with larger packets = higher Gbps
- Same Mpps with smaller packets = lower Gbps
- Throughput depends on both rate and packet size
GTP Encapsulation Overhead:
- Ethernet header: 14 bytes
- IP header: 20 bytes (IPv4) or 40 bytes (IPv6)
- UDP header: 8 bytes
- GTP header: 8 bytes (minimum)
- Total typical overhead: ~50 bytes per packet
Use Cases
Evaluate XDP Performance:
- Navigate to XDP Capabilities view
- Check current XDP mode (should be DRV for best performance)
- Note the Mpps performance range
- Review recommendation banner
Calculate Expected Throughput:
- Enter expected packet rate in Mpps
- Enter average packet size for your traffic profile
- Review calculated throughput in Gbps
- Compare to link capacity or performance requirements
Optimize XDP Configuration:
- Check if XDP_DRV mode is supported but not active
- Review driver version and compatibility
- Follow recommendation to upgrade to driver mode if available
- Verify multi-queue count matches CPU cores
Capacity Planning:
- Use calculator to determine required Mpps for target throughput
- Compare to current XDP mode capabilities
- Determine if hardware upgrade needed
- Plan interface and driver selection for new deployments
Troubleshoot Performance Issues:
- Verify XDP mode is DRV, not SKB
- Check driver version for known performance issues
- Verify multi-queue count is sufficient
- Calculate if current mode supports required throughput
Performance Optimization Tips
Driver Mode (XDP_DRV):
- Use NICs with native XDP support (Intel i40e/ixgbe, Mellanox mlx5)
- Update NIC drivers to latest version
- Enable multi-queue (RSS) for parallel processing
- Tune NIC ring buffer sizes
Generic Mode (XDP_SKB):
- Acceptable for development and testing
- Not recommended for production high-throughput
- Consider hardware upgrade for production deployments
Multi-Queue Configuration:
- Number of queues should match or exceed CPU core count
- Enables parallel packet processing across cores
- Distributes load via RSS (Receive Side Scaling)
Real-time Updates
XDP Capabilities view refreshes every 30 seconds to update interface status and mode information.
Logs Viewer
URL: /logs
Features
View OmniUPF application logs in real-time from the control panel.
Features:
- Live log streaming via Phoenix LiveView
- Real-time updates as logs are generated
- Scrollable log history
- Useful for troubleshooting during active sessions
Log Levels
OmniUPF logs use standard Elixir Logger levels:
- DEBUG: Detailed diagnostic information
- INFO: General informational messages (default)
- WARNING: Warning messages for non-critical issues
- ERROR: Error messages for failures
Use Cases
Troubleshoot Session Establishment:
- Open Logs view
- Initiate session establishment from SMF
- Watch for PFCP message logs and any errors
Monitor PFCP Communication:
- View PFCP association setup messages
- Track session creation/modification/deletion
- Verify heartbeat messages
Debug Forwarding Issues:
- Look for packet processing errors
- Check eBPF map operation logs
- Identify FAR/PDR configuration issues
Best Practices
Operational Guidelines
Monitoring:
- Regularly check Capacity view to prevent map exhaustion
- Monitor Statistics for unusual traffic patterns or drops
- Track session count growth over time
- Watch for XDP processing errors
Buffer Management:
- Monitor buffers during handover scenarios
- Clear stuck buffers if packets age beyond TTL
- Verify buffering is disabled after handover completes
- Use "Flush" instead of "Clear" to avoid packet loss
Session Management:
- Use filters to quickly locate specific UE sessions
- Expand sessions to verify rule configuration
- Compare sessions across multiple UPF instances
- Check health indicator before troubleshooting
Troubleshooting:
- Use Logs for real-time debugging
- Check Sessions view to verify UE connectivity
- Verify Rules configuration for traffic flows
- Monitor Statistics for packet drops or forwarding errors
Performance
- Control panel auto-refresh is 5-10 seconds depending on view
- Large session lists may take time to load
- Rules view filters by active entries (non-zero volumes for URRs)
- Buffer operations execute immediately on selected UPF
Related Documentation
- Rules Management Guide - PDR, FAR, QER, URR configuration
- Monitoring Guide - Statistics, metrics, and capacity planning
- Metrics Reference - Complete Prometheus metrics reference
- PFCP Cause Codes - PFCP error codes and session diagnostics
- API Documentation - REST API reference and pagination
- Routes Guide - UE routing and FRR integration details
- XDP Modes Guide - Detailed XDP mode documentation and eBPF information
- Troubleshooting Guide - Common issues and diagnostics
- UPF Operations Guide - General UPF operations and architecture