Repository navigation
Commit 7195103
committed
configd plan: rewrite for layered model — dhcpcd Phase 1, netconfigd Phase 2+
Phase 1 implementation showed netconfigd's "own everything" architecture
was wrong: dhcpcd master mode does the autoconfig grunt work better
than we'd be able to (DHCPv4+v6+RA+IPv4LL+link-state+lagg/vlan/bridge
in one daemon), with features we'd otherwise have to reimplement.
This rewrite reflects what actually shipped + the proper Phase 2+
trajectory:
Phase 1 (DONE): dhcpcd + ports wpa_supplicant run directly by launchd.
NCDaemon is a stub. Network works out of box. Old org.freebsd.netconfigd.plist
removed; org.freebsd.dhcpcd.plist in its place.
Phase 2+ (PLANNED): netconfigd resumes — but its role is the upper
layer (dynamic store, DO IPC, Network.plist watcher, scutil). It
translates declarative config into dhcpcd.conf drop-ins; dhcpcd
remains in charge of the actual DHCP/RA/lease lifecycle. Clean split
between policy (netconfigd) and action (dhcpcd).
Key changes vs. the old plan:
- Architecture diagram is now layered: GUI → netconfigd → dhcpcd → kernel
- Decisions table: DHCP / RA / WiFi rows changed
- File-by-file plan: IPMonitor's role shrinks (no IPConfiguration to drive),
PreferencesMonitor becomes the new core
- Phase 1a-c marked SUPERSEDED; Phase 1d marked DONE
- Phase 2-6 reorganized around the upper-layer role
- Open questions: closed "internal DHCP", "rtsold for RA", repo layout,
binary path. New ones around resolv.conf ownership and dhcpcd.conf
drop-in vs whole-file rewrite
Companion to freebsd-launchd commit f218a61.1 parent 548b0c2 commit 7195103
1 file changed
Lines changed: 332 additions & 331 deletions
0 commit comments