Skip to content

v1.2.1

Choose a tag to compare

@WekaJosh WekaJosh released this 01 Sep 05:42
· 4 commits to main since this release

Fix

  • Per-interface sysctl keys are no longer persisted to sysctl.d. v1.2.0 wrote net.ipv4.conf.<iface>.rp_filter = 2 for every detected interface into /etc/sysctl.d/90-sbr-config.conf. That file is applied early at boot, before late-binding drivers (notably Mellanox/IPoIB ib*) 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 = 2 is inherited by interfaces created later, and the kernel evaluates max(all, iface), so conf.all.rp_filter = 2 already makes loose mode effective.
  • Validation and planning now honor the max(all, iface) kernel semantics: per-interface rp_filter passes when either it or conf.all is 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 --configure run now detects a managed sysctl.d file containing per-interface keys and rewrites it. To remediate affected systems: update the tool and run sbr-config -c once.

Release on top of v1.2.0.