From 9175eedce91cff686e7c0e33e32737ad118e905f Mon Sep 17 00:00:00 2001 From: ddidderr Date: Sun, 16 Aug 2026 10:39:04 +0200 Subject: [PATCH] [release] softlan-vpn v0.1.0 First release of softlan-vpn, a low-latency virtual Layer 2 gaming VPN and Ethernet bridge built on QUIC datagrams. This release introduces the initial workspace architecture, crates, and operational components: - lanparty-relay: QUIC-based Layer 2 VPN relay server with room-level isolation, learning switch (CAM table), anti-spoofing MAC validation, safety filters against rogue DHCP servers and IPv6 Router Advertisements, token-bucket rate limiters, and development TLS certificate generation. - lanparty-gateway: Linux Layer 2 gateway bridge utilizing raw AF_PACKET sockets in promiscuous mode to bridge physical LAN segments to remote VPN rooms with carrier checking and datagram budget enforcement. - lanparty-client-win: Windows client CLI and session engine integrating TAP-Windows6 adapter I/O, scoped IP route management (relay host route pinning, default route suppression, metric configuration), and real-time terminal diagnostics. - lanparty-proto, lanparty-ctrl, lanparty-obs, lanparty-net: Protocol primitives, control stream codec, observability reporting, and network resolution helpers. Initial release is documented in CHANGELOG.md adhering to Keep a Changelog and Semantic Versioning. Test Plan: - `just clippy` -- passed - `just fmt` -- passed - `just test` -- passed (118 tests across all crates) - `git diff --cached --check` -- passed Refs: CHANGELOG.md "[0.1.0]", AGENTS.md "Versioning Policy" --- CHANGELOG.md | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 CHANGELOG.md diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..1e07896 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,47 @@ +# Changelog + +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), +and this project adheres to +[Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [Unreleased] + +## [0.1.0] - 2026-08-16 + +### Added + +- **QUIC-based Layer 2 VPN Relay (`lanparty-relay`)**: + - Room-isolated virtual Layer 2 Ethernet switching over QUIC datagrams + (`quinn` / `rustls`). + - Learning switch (CAM table) for unicast frame forwarding and + broadcast/multicast flooding. + - L2 safety filters: client source MAC anti-spoofing, rogue DHCPv4/DHCPv6 + server reply filtering, IPv6 Router Advertisement suppression (including + behind extension headers), IPv6 fragment filtering, remote VLAN tag + filtering, and malformed frame rejection. + - Token-bucket rate limiting for broadcast, unknown unicast, and total client + bandwidth. + - Development TLS certificate generation helper. +- **Linux Physical Gateway Bridge (`lanparty-gateway`)**: + - Promiscuous `AF_PACKET` raw socket bridge connecting local physical LAN + networks to virtual relay rooms. + - Ingress/egress datagram budget enforcement, carrier validation, and + self-injection filtering. +- **Windows Client (`lanparty-client-win`, `lanparty-client-core`, + `lanparty-client-tap`, `lanparty-client-route`)**: + - TAP-Windows6 adapter management and Ethernet frame I/O. + - Scoped Windows IP route management: relay host route pinning, TAP default + route suppression, and interface metric configuration. + - Virtual MAC persistence and reconnect handling. + - Real-time diagnostic reporting for RTT, LAN DHCP lease state, gateway + presence, and frame flow counters. +- **Shared Infrastructure**: + - Protocol primitives (`lanparty-proto`) for datagram framing, MTU + negotiation, and safety classifications. + - Control plane (`lanparty-ctrl`) for room admission, peer lifecycle events, + and stats snapshots. + - Observability suite (`lanparty-obs`) for structured frame logging and + diagnostic formatting. + - Network address resolution utilities (`lanparty-net`).