Skip to main content

Web UI Operations Guide

Table of Contents

  1. Overview
  2. Accessing the Control Panel
  3. Sessions View
  4. Rules Management
  5. Buffer Management
  6. Statistics Dashboard
  7. Capacity Monitoring
  8. Configuration View
  9. Routes View
  10. XDP Capabilities View
  11. 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.

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):

ColumnDescription
Node IDSMF or PGW-C node identifier (FQDN or IP)
AddressSMF/PGW-C IP address for PFCP communication
Next Session IDNext 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:

ColumnDescription
Local SEIDUPF-assigned session endpoint identifier
Remote SEIDSMF-assigned session endpoint identifier
UE IPUser equipment IPv4 or IPv6 address
TEIDGTP-U Tunnel Endpoint Identifier for uplink traffic
PDRsNumber of packet detection rules in session
FARsNumber of forwarding action rules in session
QERsNumber of QoS enforcement rules in session
URRsNumber of usage reporting rules in session
ActionsExpand 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)

Sessions Expanded View

Expanded session view showing detailed PDRs, FARs, and QERs for a specific session.

Use Cases

Verify UE Connectivity:

  1. Navigate to Sessions view
  2. Enter UE IP address in filter
  3. Confirm session exists with correct TEID
  4. 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
ColumnDescription
FAR IDUnique forwarding rule identifier
ActionForwarding action flags (FORWARD, DROP, BUFFER, DUPLICATE, NOTIFY)
BufferingCurrent buffering status (Enabled/Disabled)
DestinationOuter 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)
ColumnDescription
QER IDUnique 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)
QFIQoS 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)
ColumnDescription
URR IDUnique usage reporting rule identifier (clickable when referenced from PDRs)
Uplink VolumeBytes sent from UE to data network
Downlink VolumeBytes sent from data network to UE
Total VolumeTotal bytes in both directions
ActionsDelete 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:

  1. Navigate to Rules → PDR tab
  2. Search for specific TEID or UE IP
  3. Verify PDR associates with correct FAR and QER

Troubleshoot Forwarding Issues:

  1. Navigate to Rules → FAR tab
  2. Locate FAR ID from session PDR
  3. Verify action is FORWARD (not DROP or BUFFER)
  4. Check outer header creation parameters

Monitor QoS Enforcement:

  1. Navigate to Rules → QER tab
  2. Verify MBR and GBR values match policy
  3. Check QFI marking for 5G flows

Track Data Usage:

  1. Navigate to Rules → URR tab
  2. Sort by total volume to find highest users
  3. Monitor volume growth over time
  4. 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:

ColumnDescription
FAR IDForwarding action rule identifier
Packet CountNumber of packets buffered for this FAR
Byte CountTotal bytes buffered for this FAR
Oldest PacketTimestamp of oldest buffered packet
Newest PacketTimestamp of newest buffered packet
ActionsBuffer 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:

  1. During handover, verify packets are being buffered
  2. Check FAR buffering status (should be enabled)
  3. Monitor packet count and age

Complete Handover:

  1. After path switch, click "Flush" to replay buffered packets
  2. Verify packets are forwarded to new path
  3. Click "Disable Buffer" to stop buffering

Clear Stuck Buffers:

  1. Identify FARs with old buffered packets (check oldest timestamp)
  2. Click "Clear" to discard stale packets
  3. Or click "Disable Buffer" to prevent further buffering

Troubleshoot Buffer Overflow:

  1. Check total packet count vs. max total
  2. Identify FARs with excessive buffering
  3. Verify SMF has sent session modification to disable buffering
  4. 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:

  1. Check packet RX/TX rates
  2. Verify traffic is flowing in both directions
  3. Compare N3 vs N6 traffic (should be roughly equal)

Detect Packet Drops:

  1. Check dropped packet counter
  2. Review XDP dropped counter
  3. Investigate cause in logs if drops are high

Performance Analysis:

  1. Monitor XDP processed vs. passed ratio
  2. Check for XDP aborts (indicates errors)
  3. Verify N3/N6 interface traffic distribution

Capacity Planning:

  1. Track packet rate over time
  2. Compare to UPF capacity limits
  3. 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:

ColumnDescription
Map NameeBPF map name (e.g., uplink_pdr_map, far_map)
UsedNumber of entries currently in map
CapacityMaximum entries allowed in map
UsageVisual progress bar with percentage
Key SizeSize of map keys in bytes
Value SizeSize 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:

  1. Monitor map usage trends over time
  2. Identify which maps are growing fastest
  3. Plan capacity increases before reaching limits

Prevent Session Establishment Failures:

  1. Check PDR map usage before expected traffic surge
  2. Increase map capacity if approaching limits
  3. Monitor after capacity increase to verify

Troubleshoot Session Failures:

  1. When session establishment fails, check Capacity view
  2. If PDR maps are red (>90%), capacity is exhausted
  3. Increase map capacity or clear stale sessions

Optimize Map Configuration:

  1. Review key and value sizes
  2. Calculate memory usage per map
  3. 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:

  1. Check N3 interface IP matches gNB configuration
  2. Verify N6 interface can route to data network
  3. Confirm PFCP interface is reachable from SMF

Troubleshoot Interface Issues:

  1. Compare static config with dataplane active addresses
  2. Verify interfaces are bound correctly
  3. Check for interface configuration changes

Documentation and Audit:

  1. Record UPF configuration for documentation
  2. Verify deployment matches design specifications
  3. 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:

ColumnDescription
IndexRoute index number
UE IP AddressIPv4 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:

ColumnDescription
Neighbor IDOSPF router identifier
AddressIP address of the OSPF neighbor
InterfaceInterface used for OSPF adjacency
StateOSPF adjacency state (Full, Init, etc.)
PriorityOSPF priority value
Up TimeDuration the neighbor has been up
Dead TimeTime 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:

ColumnDescription
Neighbor IPIP address of the BGP peer
ASNAutonomous System Number of the peer
StateBGP session state (Established, Idle, etc.)
Up/DownDuration of current state
Prefixes ReceivedNumber of route prefixes received from peer
Msg SentTotal BGP messages sent to peer
Msg RcvdTotal 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:

ColumnDescription
Link State IDLSA identifier (typically the network address)
MaskNetwork mask for the route
Advertising RouterRouter ID advertising this external route
Metric TypeOSPF external metric type (E1 or E2)
MetricOSPF cost metric for the route
AgeTime since LSA was originated (seconds)
Seq NumberLSA 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:

  1. Navigate to Routes view
  2. Check OSPF neighbor states (should be "Full")
  3. Verify BGP peers are "Established"
  4. Confirm expected number of neighbors/peers

Verify UE Route Distribution:

  1. Check Active UE IP Routes table for specific UE
  2. Scroll to OSPF Redistributed Routes section
  3. Verify UE route appears in external LSAs
  4. Confirm advertising router matches expected UPF

Troubleshoot Route Sync Issues:

  1. Check Synced vs. Failed counters in status overview
  2. If routes are failing, click "Sync Routes" button
  3. Monitor error messages in red banner if sync fails
  4. Check OSPF/BGP error messages in respective sections

Verify Multi-UPF Deployment:

  1. Select different UPF instances from dropdown
  2. Compare route counts across instances
  3. Verify OSPF neighbors see each other
  4. Check BGP peering relationships

Monitor Route Scaling:

  1. Track total route count as UE sessions increase
  2. Verify routes are distributed to routing protocols
  3. Monitor OSPF LSA count growth
  4. 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:

FieldDescription
Interface NameNetwork interface used for XDP (e.g., eth0, ens1f0)
DriverNetwork driver name (e.g., i40e, ixgbe, virtio_net)
Driver VersionDriver version string
Current ModeActive XDP mode (DRV, SKB, or NONE)
Multi-Queue CountNumber 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 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:

  1. Navigate to XDP Capabilities view
  2. Check current XDP mode (should be DRV for best performance)
  3. Note the Mpps performance range
  4. Review recommendation banner

Calculate Expected Throughput:

  1. Enter expected packet rate in Mpps
  2. Enter average packet size for your traffic profile
  3. Review calculated throughput in Gbps
  4. Compare to link capacity or performance requirements

Optimize XDP Configuration:

  1. Check if XDP_DRV mode is supported but not active
  2. Review driver version and compatibility
  3. Follow recommendation to upgrade to driver mode if available
  4. Verify multi-queue count matches CPU cores

Capacity Planning:

  1. Use calculator to determine required Mpps for target throughput
  2. Compare to current XDP mode capabilities
  3. Determine if hardware upgrade needed
  4. Plan interface and driver selection for new deployments

Troubleshoot Performance Issues:

  1. Verify XDP mode is DRV, not SKB
  2. Check driver version for known performance issues
  3. Verify multi-queue count is sufficient
  4. 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:

  1. Open Logs view
  2. Initiate session establishment from SMF
  3. Watch for PFCP message logs and any errors

Monitor PFCP Communication:

  1. View PFCP association setup messages
  2. Track session creation/modification/deletion
  3. Verify heartbeat messages

Debug Forwarding Issues:

  1. Look for packet processing errors
  2. Check eBPF map operation logs
  3. 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