Code for the paper "SRmesh: Deterministic and Efficient Diagnosis of Latency Bottleneck Links in SRv6 Networks" in IEEE ICNP 2025
- Frontend: Web-based user interface for visualization and interaction (see
./frontend/
) - Controller: Central orchestration component that manages the diagnosis process
- Agent: Distributed monitoring agents deployed on network nodes
- Analyzer: Data analysis component for processing network metrics
- Docker Infrastructure: Containerized deployment for easy scalability
Month (2025) | Task Description | Status |
---|---|---|
Mid-August | Core code implementation | ✅ 95% Complete |
September | Frontend development | ✅ 90% Complete |
October | Provide necessary utility scripts | 🚧 80% Complete |
December | One-click deployment, testing, and optimization | 🚧 50% Complete |
- Docker (version 20.10 or higher)
- Docker Compose (version 2.0 or higher)
- Linux environment with kernel version 5.4 or higher (recommended for eBPF support)
- At least 8GB RAM and 20GB disk space
# Clone the repository
git clone https://github.com/DeepShield-AI/SRmesh.git
cd SRmesh
# Build and deploy the entire system
cd docker
chmod +x run.sh
./run.sh
# Start the system
docker compose up -d
The system supports custom network topologies. Configure your topology in:
docker/conf/topo.json
- Primary topology configurationdocker/conf/topo2.json
- Alternative topology configuration
Example topology configuration:
{
"nodes": [
{
"id": "node1",
"type": "router",
"ipv6": "fc00::1/64"
},
{
"id": "node2",
"type": "router",
"ipv6": "fc00::2/64"
}
],
"links": [
{
"source": "node1",
"target": "node2",
"latency": "10ms"
}
]
}
SRmesh supports automatic injection of artificial delay (latency bottlenecks) for testing and diagnosis. This feature is integrated into the deployment and analysis workflow.
You can specify delay injection for any container interface when starting the system:
cd docker
# Syntax: ./run.sh --delay <container> <interface> [delay]
./run.sh --delay Wulumuqi eth1 100ms
# You can specify multiple --delay parameters in one command
./run.sh --delay Wulumuqi eth1 100ms --delay Beihang eth2 200ms
This will automatically set the specified delay (default: 200ms if omitted) on the given container interface(s) after startup. All delay settings are applied before the system begins probing.
To verify the current delay (netem) settings on all containers, use:
cd docker
./check_delay.sh
This script will print the network interfaces and their delay rules for each running container, helping you confirm that artificial bottlenecks are in effect.
After running the system and collecting probe data, the analyzer will automatically diagnose and report bottleneck links:
- The analyzer (
analyzer/analyzer.py
) is invoked automatically at the end ofrun.sh
(on exit or Ctrl+C), or can be run manually:
cd analyzer
python3 analyzer.py
# Optionally specify a custom bottleneck threshold (ms):
python3 analyzer.py 80
The analyzer will output:
- Estimated per-link delays
- Detected bottleneck links (with severity)
- A summary report
This workflow enables end-to-end testing of delay injection, verification, and diagnosis in SRmesh.
Key environment variables for configuration:
Variable | Description | Default |
---|---|---|
CONTROLLER_PORT |
Controller gRPC port | 50051 |
LOG_LEVEL |
Logging level | INFO |
METRICS_INTERVAL |
Metrics collection interval | 5s |
# Check all services status
docker compose ps
# View controller logs
docker logs controller -f
# Check agent connectivity
docker exec point-1 ping fc00::2
# Monitor network traffic
docker exec controller tcpdump -i any -n
-
Port conflicts
# Check if port 50051 is in use ss -tnlp | grep 50051 # Kill conflicting processes if needed sudo kill $(sudo lsof -t -i:50051)
-
eBPF program loading failures
# Ensure kernel version support uname -r # Check BPF filesystem mount mount | grep bpf
-
Network connectivity issues
# Verify Docker networks docker network ls # Check IP routing docker exec controller ip route
SRmesh achieves up to 95% reduction in probe traffic through three-step optimization while maintaining comprehensive network coverage. See ./simulation/
for detailed results.
- Controller README - Controller component documentation
- API Documentation - API reference (coming soon)
- Architecture Guide - System architecture details (coming soon)
![]() KenyonZhao233 Major Contributor |
![]() tongy21 Major Contributor |
Coming soon.