feat(client): add TAP-Windows adapter crate
The Windows client still needs a real Ethernet TAP boundary before it can pump
frames between the adapter and the relay session. Keep that OS-specific surface
separate from the QUIC client state by adding a `lanparty-client-tap` crate.
The new crate discovers TAP-Windows6 adapters through the Windows network
adapter registry class, validates `tap0901` component ids, constructs the
`\\.\Global\{NetCfgInstanceId}.tap` device path, opens the TAP device handle,
and exposes blocking Ethernet frame read/write helpers. It also wraps the
TAP-Windows IOCTLs for media status, driver MAC, and driver MTU.
This does not wire the TAP crate into `lanparty-client-win` yet and does not
attempt route protection. The value of this slice is the target-checkable OS
boundary that the next client pump can depend on.
Test Plan:
- cargo fmt --check
- cargo test --workspace
- cargo clippy --workspace --all-targets -- -D warnings
- Windows-target cargo check for lanparty-client-tap with clang-cl/lld-link
- Windows-target cargo clippy for lanparty-client-tap with -D warnings
- git diff --check
Refs: PLAN.md Windows TAP client
This commit is contained in:
@@ -8,6 +8,7 @@ Monorepo for a Layer 2 over QUIC LAN party bridge.
|
||||
- `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-tap`: TAP-Windows6 adapter discovery and frame I/O.
|
||||
- `lanparty-client-win`: Windows TAP + route/metric handling binary.
|
||||
- `lanparty-gateway`: Linux AF_PACKET gateway binary.
|
||||
- `lanparty-relay`: public QUIC relay binary.
|
||||
@@ -47,6 +48,15 @@ Platform-neutral remote client relay session:
|
||||
- welcome/reject handling with assigned peer id and effective TAP MTU
|
||||
- Ethernet frame send/receive helpers over QUIC DATAGRAM
|
||||
|
||||
### `lanparty-client-tap`
|
||||
|
||||
Windows TAP adapter boundary:
|
||||
|
||||
- TAP-Windows6 adapter discovery from the Windows network adapter registry
|
||||
- `\\.\Global\{NetCfgInstanceId}.tap` device path construction
|
||||
- blocking Ethernet frame reads/writes through the TAP device handle
|
||||
- TAP driver IOCTL helpers for media status, adapter MAC, and MTU
|
||||
|
||||
### `lanparty-relay`
|
||||
|
||||
Public relay binary and relay-owned room state:
|
||||
|
||||
Reference in New Issue
Block a user