This series fixes three related cases where Southbound BFD.status stays
wrong across gateway failover and chassis exit, so ovn-northd keeps (or
drops) ECMP nexthops incorrectly.
The patches are independent commits on current main, ordered for review
by dependency under SB RBAC:
1/3 northd: Keep BFD chassis_name aligned for SB RBAC
https://github.com/ovn-org/ovn/pull/334
2/3 controller: Mark BFD sessions down before exit cleanup
https://github.com/ovn-org/ovn/pull/332
3/3 controller: Reconcile BFD status with local session state
https://github.com/ovn-org/ovn/pull/333
Why this order: with SB RBAC, a chassis may update BFD.status only when
BFD.chassis_name names that chassis. 1/3 makes northd keep chassis_name
aligned with the binding that actually runs the sessions (including
chassisredirect for distributed gateway ports). 2/3 and 3/3 then write
status from ovn-controller; without 1/3 those writes are rejected for
DGP rows and for rows whose chassis_name is empty or stale.
Summary of each change:
- 1/3 (OVN-N): set chassis_name from the chassisredirect binding for a
DGP (else from the port binding); clear it when unbound; recompute
en_bfd_sync when that binding's chassis changes.
- 2/3 (OVN-G): on cleanup exit, mark owned BFD sessions down in a short
dedicated SB transaction before releasing gateway bindings, so a stale
"up" does not pin ECMP nexthops when nobody else takes the gateway.
- 3/3 (OVN-R): periodically reconcile SB BFD.status with the local
session state (with start-up grace, backoff, and a Chassis feature
flag), covering restart, failed transactions, and ovs-vswitchd downtime.
A Neutron companion that can mark BFD down from the CMS when it believes
a gateway dead is on Gerrit separately and is not part of this OVN
series.
Testing (high level): unit/system tests added or extended in each patch;
lab scenarios for clean exit, stale status after restart, and DGP/RBAC
chassis_name alignment. Please see the individual commit messages and
GitHub PRs for details.
Please review. Feedback welcome on the series order and on whether
1/3 should land before the controller patches under default SB RBAC.
Premysl Kouril (3):
northd: Keep BFD chassis_name aligned for SB RBAC
controller: Mark BFD sessions down before exit cleanup
controller: Reconcile BFD status with local session state
Assisted-by: Claude Opus 5.5 (claude-opus-5-5), Cursor Grok Bot / Ultimum
harness assistants
Signed-off-by: Premysl Kouril <[email protected]>
_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev