172 lines
5.5 KiB
Markdown
172 lines
5.5 KiB
Markdown
|
|
# 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!
|