5.5 KiB
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:
-
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
-
UDP Tab (443 packets across 6 flows)
- Generic UDP traffic analysis
- Multiple flows with different timing patterns
- Broadcast and multicast traffic
-
PTP-Signaling Tab (240 packets across 2 flows)
- PTP protocol signaling messages
- ~500ms average inter-arrival timing
- Cross-flow timing analysis
-
TMATS Tab (114 packets)
- TMATS metadata frames
- ~990ms timing with 1 outlier
- Critical system configuration data
-
PTP-Sync Tab (57 packets)
- PTP synchronization messages
- ~2000ms timing pattern
- Clock synchronization analysis
-
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 View1,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!