Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
31 changes: 31 additions & 0 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
name: Tests

on:
push:
branches: [ main, master ]
pull_request:
branches: [ main, master ]

jobs:
test:
runs-on: ubuntu-latest

steps:
- uses: actions/checkout@v3

- name: Set up Rust
uses: actions-rs/toolchain@v1
with:
toolchain: stable
override: true

- name: Set up Go
uses: actions/setup-go@v4
with:
go-version: '1.24'

- name: Run tests
run: |
cargo test
cd noop-plugin && go test
cd ../xdp-forwarder && go test
28 changes: 22 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -142,6 +142,28 @@ sudo ip netns exec netns1 ping 10.0.0.2

```

## Testing

This project includes test suite for the client-server protocol and network components.

### Running Tests

**All tests:**
```bash
# Rust integration tests
cargo test

# Go CNI plugin tests
cd noop-plugin && go test -v

# Go XDP forwarder tests
cd xdp-forwarder && go test -v
```

**Run all tests at once:**
```bash
cargo test && cd noop-plugin && go test && cd ../xdp-forwarder && go test
```

## 5. Development Roadmap

Expand All @@ -156,8 +178,6 @@ The project is currently in **Phase 3: The Data Plane**. Below is the immediate
* Performs MAC address rewriting (Source/Dest swapping).
* Redirects packets between interfaces using `bpf_redirect` (Egress).



### [Upcoming] Month 3, Week 2: The Overlay Network (VXLAN)

* **Objective:** Evolve the forwarder into a Virtual Tunnel Endpoint (VTEP).
Expand All @@ -167,8 +187,6 @@ The project is currently in **Phase 3: The Data Plane**. Below is the immediate
* **Decapsulation:** Parse incoming VXLAN packets, validate VNI, and strip headers.
* Support for RFC 7348 VXLAN packet structure.



### [Upcoming] Month 3, Week 3: Dynamic Forwarding (eBPF Maps)

* **Objective:** Remove hardcoded logic and implement a Forwarding Database (FDB).
Expand All @@ -177,8 +195,6 @@ The project is currently in **Phase 3: The Data Plane**. Below is the immediate
* **Lookups:** Logic to distinguish between LOCAL (direct redirect) and REMOTE (VXLAN encap) traffic.
* **Control Plane:** Go loader acts as the initial map population tool.



### [Upcoming] Month 3, Week 4: The SDN Agent

* **Objective:** Create a long-running daemon to manage the data plane lifecycle.
Expand Down
1 change: 0 additions & 1 deletion tests/client_integration_test.rs
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
use std::io::{BufRead, BufReader, Write};
use std::os::unix::net::{UnixListener, UnixStream};
use std::path::PathBuf;
use std::thread;
use std::time::Duration;
use tempfile::TempDir;
Expand Down
Loading