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

Reply via email to