The timestamp refresh mechanism is based on
separate table. The new thread will collect
flow statistics from this table and based on
"idle_age" data we can decide whether we should
bump the timestamp (MAC binding/FDB still in use)
or keep it as is.

The timestamp refresh mechanism works only if
the MAC bindingi or FDB aging is activated,
so ovn-controller doesn't do anything otherwise.
To prevent a lot of updates of timestamp
happening concurrently the flow dump period is
set to 3/4 of aging thresholdi, and we do update
only rows which have the timestamp older than
the dump period.

Another thing to note is that the thread is purposely
made somewhat generic, there is an idea to reuse it for
packet statistics on logical ports. Which should be fairly
easy to do in its current form.

There isn't any test case yet, it will be in the official
patch iteration. It was tested manually for now.

Ales Musil (8):
  actions: Add mac_cache_use action
  northd, controller: Use the MAC cache table
  northd: Synchronize the MAC binding age threshold
  controller: Add MAC cache I-P node
  controller: Update MAC binding timestamp
  northd: Synchronize the FDB age threshold
  controller: Add FDB support to MAC cache I-P node
  controller: Update FDB timestamp

 controller/automake.mk      |   6 +-
 controller/lflow.c          |  22 ++
 controller/lflow.h          |   1 +
 controller/mac_cache.c      | 547 ++++++++++++++++++++++++++++++++++++
 controller/mac_cache.h      | 124 ++++++++
 controller/ovn-controller.c | 347 +++++++++++++++++++++++
 controller/statctrl.c       | 446 +++++++++++++++++++++++++++++
 controller/statctrl.h       |  28 ++
 include/ovn/actions.h       |   3 +
 lib/actions.c               |  16 ++
 northd/northd.c             |  16 +-
 ovn-sb.xml                  |   8 +
 tests/ovn-northd.at         |   2 +-
 tests/ovn.at                |  83 +++++-
 tests/test-ovn.c            |   1 +
 utilities/ovn-trace.c       |   2 +
 16 files changed, 1636 insertions(+), 16 deletions(-)
 create mode 100644 controller/mac_cache.c
 create mode 100644 controller/mac_cache.h
 create mode 100644 controller/statctrl.c
 create mode 100644 controller/statctrl.h

-- 
2.41.0

_______________________________________________
dev mailing list
[email protected]
https://mail.openvswitch.org/mailman/listinfo/ovs-dev

Reply via email to