|
|
|
|
@@ -13,7 +13,7 @@ This is a standalone host-level Module and does not yet wire any Guest to a brid
|
|
|
|
|
- [x] `modules.network` declares an `enable` option and its option path mirrors its file location per the Namespace convention.
|
|
|
|
|
- [x] A Host declares its trunk interface and its set of VLAN ids through the Module's options.
|
|
|
|
|
- [x] Enabling the Module emits exactly one systemd-networkd bridge per declared VLAN, each named `br-vlan<id>`, and manages the Host's own management address.
|
|
|
|
|
- [x] A Host enabling `modules.network` builds via `nix flake check`, and the emitted bridge names are verifiable by `nix eval`. Verified by temporarily enabling it on `neogaia`; the enablement is not committed (see notes).
|
|
|
|
|
- [x] A Host enabling `modules.network` builds via `nix flake check`, and the emitted bridge names are verifiable by `nix eval`.
|
|
|
|
|
|
|
|
|
|
## Implementation Notes
|
|
|
|
|
|
|
|
|
|
@@ -26,10 +26,5 @@ Two assertions guard it: the management VLAN must be one of the declared VLANs,
|
|
|
|
|
The Module owns its own NetworkManager `unmanaged` guard for the trunk, sub-interfaces, and bridges, so enabling it is self-sufficient on a host that also runs NetworkManager rather than pushing that wiring into every Host.
|
|
|
|
|
A `management.gateway` option was considered and dropped as speculative for this slice, since the foundation carries no other routing.
|
|
|
|
|
|
|
|
|
|
No host commits an enablement of this Module.
|
|
|
|
|
The repo's only host is `neogaia`, a wifi laptop on an access port, and enabling the Module there turns on `systemd-networkd` and pulls in `systemd-resolved`, which takes over the laptop's DNS.
|
|
|
|
|
That is an unwanted change to a daily machine that cannot present guests as L2 citizens anyway (wifi does not bridge), so the standing enablement waits for the first wired server host.
|
|
|
|
|
The build and bridge-name evaluation were verified by temporarily enabling the Module on `neogaia` (`nix flake check` passed, `nix eval` showed `br-vlan10`/`br-vlan20`), then reverting.
|
|
|
|
|
Both stay reproducible from the committed tree by enabling the Module ad hoc through `nixosConfigurations.neogaia.extendModules`, leaving the host file untouched.
|
|
|
|
|
|
|
|
|
|
Enabled on `neogaia` as a tracer with a placeholder trunk and VLAN ids, mirroring the walking-skeleton guest, so the host build and bridge-name evaluation are proven through this host's `nix flake check`.
|
|
|
|
|
No Guest is wired to a bridge — that is the guest networking placement slice.
|
|
|
|
|
|