f06760d1ac
Build the shared protocol contract that the client, gateway, and relay will use for Ethernet datagrams. The MVP needs these pieces agreed on before socket or TAP work can be reasoned about safely. This adds strict MAC parsing and client identity validation, Ethernet header inspection, fixed overlay datagram encoding and decoding, and MTU helpers for the no-fragmentation QUIC datagram design. The protocol crate stays transport-agnostic so platform and network code can depend on it without pulling in OS-specific behavior. Remaining work is to put these primitives behind the control-plane handshake, relay forwarding loop, Windows TAP client, and Linux AF_PACKET gateway. Test Plan: - cargo fmt --check - cargo test --workspace - cargo clippy --workspace --all-targets -- -D warnings Refs: PLAN.md Phase 1: prove the illusion
29 lines
819 B
Markdown
29 lines
819 B
Markdown
# softlan-vpn
|
|
|
|
Monorepo for a Layer 2 over QUIC LAN party bridge.
|
|
|
|
## Workspace crates
|
|
|
|
- `lanparty-proto`: shared frame format, MAC validation, MTU helpers.
|
|
- `lanparty-ctrl`: control-plane messages (join/hello/role/version).
|
|
- `lanparty-obs`: shared diagnostics/logging event models.
|
|
- `lanparty-client-core`: platform-agnostic client session state.
|
|
- `lanparty-client-win`: Windows TAP + route/metric handling binary.
|
|
- `lanparty-gateway`: Linux AF_PACKET gateway binary.
|
|
- `lanparty-relay`: public QUIC relay binary.
|
|
|
|
### `lanparty-proto`
|
|
|
|
Transport-agnostic tunnel contract shared by all binaries:
|
|
|
|
- overlay datagram header encoding and decoding
|
|
- Ethernet frame header parsing
|
|
- MAC address parsing and identity validation
|
|
- QUIC datagram to TAP MTU budget helpers
|
|
|
|
## Build
|
|
|
|
```bash
|
|
cargo check --workspace
|
|
```
|