Add MAC binding aging mechanism, that should take care of stale MAC bindings.
The mechanism works on "ownership" of the MAC binding row. The chassis that creates the row is then checking if the "idle_age" of the flow is over the aging threshold. In that case the MAC binding is removed from database. The "owner" might change when another chassis saw an update of the MAC address. This approach has downside, the chassis that "owns" the MAC binding might not actually be the one that is using it actively. This might lead some delays in packet flow when the row is removed. The threshold can be configured in NB_global table with key "mac_binding_age_threshold" in seconds with default value being 60. The test case is present as separate patch of the series. Add delay to ARP response processing to prevent race condition between multiple controllers that received the same ARP. Ales Musil (6): Add chassis column to MAC_Binding table Add MAC binding aging mechanism Add stopwatch for MAC binding aging Allow the MAC binding age threshold to be configurable ovn.at: Add test case covering the MAC binding aging pinctrl.c: Add delay after ARP packet controller/automake.mk | 4 +- controller/mac-binding-aging.c | 241 +++++++++++++++++++++++++++++++++ controller/mac-binding-aging.h | 32 +++++ controller/ovn-controller.c | 32 +++++ controller/pinctrl.c | 73 ++++++++-- northd/northd.c | 12 ++ northd/ovn-northd.c | 2 +- ovn-nb.xml | 5 + ovn-sb.ovsschema | 6 +- ovn-sb.xml | 5 + tests/ovn.at | 212 +++++++++++++++++++++++++++-- 11 files changed, 595 insertions(+), 29 deletions(-) create mode 100644 controller/mac-binding-aging.c create mode 100644 controller/mac-binding-aging.h -- 2.35.3 _______________________________________________ dev mailing list [email protected] https://mail.openvswitch.org/mailman/listinfo/ovs-dev
