v1.2.1
Fix
- Per-interface sysctl keys are no longer persisted to sysctl.d. v1.2.0 wrote
net.ipv4.conf.<iface>.rp_filter = 2for every detected interface into/etc/sysctl.d/90-sbr-config.conf. That file is applied early at boot, before late-binding drivers (notably Mellanox/IPoIBib*) create their interfaces, so every boot logged errors setting sysctls for interfaces that didn't exist yet -- and permanently on systems imaged from a host with different NICs. The keys were never needed there:conf.default.rp_filter = 2is inherited by interfaces created later, and the kernel evaluatesmax(all, iface), soconf.all.rp_filter = 2already makes loose mode effective. - Validation and planning now honor the
max(all, iface)kernel semantics: per-interface rp_filter passes when either it orconf.allis loose, preventing false FAILs after reboot on interfaces created before sysctl.d is applied. Runtime per-interface writes still happen when neither is loose (safe -- those interfaces exist at that point). - Self-healing: a clean
--configurerun now detects a managed sysctl.d file containing per-interface keys and rewrites it. To remediate affected systems: update the tool and runsbr-config -conce.
Release on top of v1.2.0.