Files
StreamLens/TABBED_INTERFACE_IMPLEMENTATION.md

5.5 KiB

Tabbed Interface Implementation Summary

Implementation Complete

Successfully added a comprehensive tabbed interface to the StreamLens TUI that shows Overview + individual tabs for each detected Protocol:FrameType.

📑 Tab Structure

Overview Tab (Default)

  • Shows all flows with mixed frame types
  • Maintains existing EnhancedFlowTable functionality
  • Provides sorting, filtering, and detailed view modes
  • Serves as the main flow analysis view

Frame-Type Specific Tabs

Based on PCAP analysis, the following tabs are dynamically created:

  1. CH10-Data Tab (1,105 packets)

    • Primary data stream with ~100ms timing
    • Shows detailed timing statistics and outlier analysis
    • Most active frame type with 2 timing outliers
  2. UDP Tab (443 packets across 6 flows)

    • Generic UDP traffic analysis
    • Multiple flows with different timing patterns
    • Broadcast and multicast traffic
  3. PTP-Signaling Tab (240 packets across 2 flows)

    • PTP protocol signaling messages
    • ~500ms average inter-arrival timing
    • Cross-flow timing analysis
  4. TMATS Tab (114 packets)

    • TMATS metadata frames
    • ~990ms timing with 1 outlier
    • Critical system configuration data
  5. PTP-Sync Tab (57 packets)

    • PTP synchronization messages
    • ~2000ms timing pattern
    • Clock synchronization analysis
  6. Additional Tabs

    • PTP-Unknown Tab (14 packets)
    • IGMP Tab (6 packets)
    • CH10-ACTTS Tab (5 packets with ~26s intervals)

🏗️ Architecture

TabbedFlowView (tabbed_flow_view.py)

  • Main container using Textual's TabbedContent
  • Dynamically enables/disables tabs based on detected frame types
  • Coordinates data refresh across all tabs

FrameTypeTabContent

  • Individual tab content for each frame type
  • Split layout: Flow list + Statistics panel
  • Filtered view showing only flows with that frame type

FrameTypeFlowTable

  • Specialized DataTable for frame-type specific views
  • Columns: Flow ID, IPs, Ports, Protocol, Packets, Timing, Outliers, Quality
  • Frame-type specific filtering and statistics

FrameTypeStatsPanel

  • Statistics summary for each frame type
  • Aggregate metrics: flow count, packet count, outlier rate, timing averages
  • Real-time updates with flow analysis

📊 Frame-Type Specific Views

Each frame-type tab shows:

Flow Information

  • Source/Destination IPs and ports
  • Transport protocol details
  • Frame-specific packet counts

Timing Analysis

  • Average inter-arrival time for this frame type
  • Standard deviation of timing
  • Frame-type specific outlier detection
  • Quality scoring based on timing consistency

Statistics Panel

📊 CH10-Data Statistics
Flows: 1
Total Packets: 1,105
Total Outliers: 2
Outlier Rate: 0.2%
Avg Inter-arrival: 102.2ms

🔄 Dynamic Tab Management

Auto-Detection

  • Scans all flows for detected frame types
  • Creates tabs only for frame types with data
  • Disables empty tabs to reduce clutter

Real-Time Updates

  • All tabs refresh when new data arrives
  • Frame-type specific filtering maintains accuracy
  • Statistics update automatically

Tab State Management

  • Tabs automatically enable when frame types are detected
  • Empty tabs remain disabled but available
  • Overview tab always active

🎯 User Interface Benefits

Organized Analysis

  • Clear separation of different protocol behaviors
  • Frame-type specific timing analysis
  • Focused view of related traffic patterns

Enhanced Navigation

  • Quick switching between protocol views
  • Keyboard shortcuts work within each tab
  • Maintains flow selection across tab switches

Detailed Statistics

  • Frame-type specific outlier detection
  • Quality scoring per protocol type
  • Aggregate statistics per frame type

🎨 Integration with Existing Features

Keyboard Shortcuts (Still Active)

  • q - Quit, p - Pause, v - Toggle View
  • 1,2,3,4 - Sort by Flows/Packets/Volume/Quality (Overview tab)
  • d - Details, r - Report, o - Copy Outliers

Progress Bar

  • Works across all tabs during PCAP loading
  • Shows unified progress for entire dataset

Flow Details Panels

  • Flow selection events work from any tab
  • Main and sub-flow details update consistently
  • Enhanced outlier information preserved

🧪 Testing Results

Test File: 1 PTPGM.pcapng (2,048 packets)

  • 9 flows detected across multiple protocols
  • 8 frame types identified for individual tabs
  • Dynamic tab creation working correctly
  • Frame-type filtering accurate
  • Statistics calculation functioning
  • Tab enabling/disabling operating properly

📈 Performance Impact

  • Minimal overhead: Frame-type filtering uses existing data structures
  • Efficient updates: Only active tabs refresh data
  • Memory efficient: Shared analyzer data across all tabs
  • Fast switching: Tab content cached and reused

🎉 Results

The tabbed interface provides a powerful way to analyze network traffic by protocol type:

  • Overview Tab: Complete flow analysis (existing functionality)
  • CH10-Data Tab: Focus on primary data stream (1,105 packets, 2 outliers)
  • Protocol-specific tabs: Dedicated views for PTP, TMATS, UDP, etc.
  • Real-time updates: All tabs stay synchronized with incoming data
  • Enhanced statistics: Frame-type specific metrics and quality analysis

Users can now quickly drill down into specific protocol behaviors while maintaining the comprehensive overview for system-wide analysis!