Commit Graph

4 Commits (e6bca88295434a78a6673065cd3aae40bf863770)

Author SHA1 Message Date
Krish Sharma e6bca88295 feat: implement userspace program with integrated logging
Main Program (main.rs):
- Command-line interface using clap with comprehensive options
- eBPF program lifecycle management (load, configure, attach)
- Integration with structured logging system
- Graceful shutdown handling with log flushing

Command-Line Options:
- Interface selection for XDP attachment
- Configuration file path for CIDR ranges
- Packet action control (log-only vs drop)
- Logging format selection (console/json/csv/jsonl)
- Output file specification and buffer size tuning
- Verbose logging for debugging

eBPF Integration:
- Automatic eBPF program loading and BTF initialization
- CIDR range configuration via eBPF maps
- Real-time event processing from ring buffers
- XDP attachment with fallback to SKB mode

Enhanced Features:
- Structured event logging with flow correlation
- Real-time statistics and periodic summaries
- Signal handling for clean shutdown
- Error handling with context preservation

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
3 weeks ago
Krish Sharma da81c221d3 feat: add comprehensive structured logging system
Structured Logging Module (logger.rs):
- Multiple output formats: JSON, CSV, JSONL, Console
- Configurable buffering and log rotation settings
- Thread-safe logging with Arc<Mutex<>> for concurrent access
- Rich log entries with metadata and flow correlation

Log Entry Features:
- Timestamp (Unix and ISO 8601 formats)
- Source/destination IP addresses and ports
- Protocol information (name and number)
- Packet size and action taken (LOG/DROP)
- Network interface and unique flow hash
- Structured serialization with serde

Output Format Support:
- Console: Human-readable real-time logging
- JSON: Structured array format for batch processing
- JSONL: Line-delimited JSON for streaming analytics
- CSV: Spreadsheet-compatible format with headers

Performance Optimizations:
- Buffered I/O with configurable buffer sizes
- Efficient serialization and string formatting
- Minimal allocation during high-throughput logging

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
3 weeks ago
Krish Sharma 21bd2041e7 feat: implement core eBPF traffic monitoring functionality
Core eBPF Program (traffic_monitor.bpf.rs):
- XDP-based packet processing for high performance
- IP header parsing and CIDR range matching
- Configurable packet dropping or logging
- Ring buffer event logging to userspace

Supporting Modules:
- config.rs: JSON configuration management for CIDR ranges
- ip_utils.rs: CIDR parsing and IP matching utilities
- event_handler.rs: Traffic event processing and statistics
- lib.rs: Module exports and shared structures

Key Features:
- Line-rate packet filtering in kernel space
- Support for up to 256 permitted CIDR ranges
- Real-time event streaming via ring buffers
- Protocol-aware logging (TCP/UDP/ICMP/etc.)

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
3 weeks ago
Krish Sharma c590290bdf feat: initialize eBPF traffic monitor project structure
- Add Cargo.toml with aya dependencies and project configuration
- Add build.rs with aya-build integration for eBPF compilation
- Configure workspace and example targets

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
3 weeks ago