tabbed frametype filtering
This commit is contained in:
172
TABBED_INTERFACE_IMPLEMENTATION.md
Normal file
172
TABBED_INTERFACE_IMPLEMENTATION.md
Normal file
@@ -0,0 +1,172 @@
|
||||
# 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!
|
||||
Reference in New Issue
Block a user