@@ -95,7 +95,14 @@ sudo apt-get install -y \
9595pip3 install -r requirements.txt
9696```
9797
98- This installs ` click ` (CLI framework), ` PyYAML ` (rule parsing), ` pyroute2 ` (ARP neighbor table lookup), and ` scapy ` (test packet generation).
98+ This installs ` click ` (CLI framework), ` PyYAML ` (rule parsing), and ` pyroute2 `
99+ (ARP neighbor table lookup).
100+
101+ The Scapy packet generator is optional and lives in the dev/test requirements:
102+
103+ ``` bash
104+ pip3 install -r requirements-dev.txt
105+ ```
99106
100107## Building the eBPF Programs
101108
@@ -361,6 +368,11 @@ ls /sys/fs/bpf/rudder/ 2>/dev/null # Directory should not exist
361368## Testing with Generated Traffic
362369
363370The included packet generator uses Scapy to send crafted packets for validating rules.
371+ Install the dev/test requirements before using it:
372+
373+ ``` bash
374+ pip3 install -r requirements-dev.txt
375+ ```
364376
365377### Test Steer Rules
366378
@@ -429,7 +441,7 @@ A full test cycle on a machine with `eth0`, `eth1`, `eth2`, and `eth3`:
429441# 1. Install dependencies
430442sudo apt-get install -y libbpf-dev linux-headers-$( uname -r) \
431443 linux-tools-generic clang llvm iproute2 tcpdump
432- pip3 install -r requirements.txt
444+ pip3 install -r requirements-dev .txt
433445
434446# 2. Load steering and replication rules
435447sudo python3 rudder.py load rules/example_steer.yaml rules/example_replicate.yaml
@@ -529,7 +541,8 @@ rudder/
529541├── CODE_OF_CONDUCT.md # Community expectations
530542├── CONTRIBUTING.md # Development and validation notes
531543├── SECURITY.md # Vulnerability reporting and security scope
532- └── requirements.txt # Python dependencies
544+ ├── requirements.txt # Runtime Python dependencies
545+ └── requirements-dev.txt # Optional dev/test dependencies
533546```
534547
535548## Limits
0 commit comments