mbox series

[ovs-dev,v5,0/5] MAC binding aging mechanism

Message ID 20220811142001.106287-1-amusil@redhat.com
Headers show
Series MAC binding aging mechanism | expand

Message

Ales Musil Aug. 11, 2022, 2:19 p.m. UTC
Add MAC binding aging mechanism, that
should take care of stale MAC bindings.

The mechanism is configurable per logical
router, with option called
"mac_binding_age_threshold", which is 0 by
default. The zero also indicates that the
aging mechanism is disabled.

The aging is based on timestamp in MAC_binding
table, rows that exceed threshold specified
by the LR option will be deleted. The row timestamp
is refresh when we receive ARP that changes
MAC address of corresponding row.

Add config option for limiting how many
MAC binding rows can be removed in single
transcation called "mac_binding_removal_limit".
The default value is 0 which is unlimited.

Ales Musil (5):
  northd, controller: Add timestamp column to MAC_Binding table
  controller: Add mac-binding-index.c/.h files
  northd: Move struct ovn_datapath and related structs to northd.h
  northd: Add MAC binding aging mechanism
  northd: Add config to limit bulk removal of MAC binding

 NEWS                        |   3 +
 controller/ovn-controller.c |   8 +-
 controller/pinctrl.c        |   2 +
 lib/automake.mk             |   2 +
 lib/mac-binding-index.c     |  33 +++++++
 lib/mac-binding-index.h     |  26 +++++
 northd/automake.mk          |   2 +
 northd/inc-proc-northd.c    |  16 +++
 northd/mac-binding-aging.c  | 190 ++++++++++++++++++++++++++++++++++++
 northd/mac-binding-aging.h  |  33 +++++++
 northd/northd.c             | 154 -----------------------------
 northd/northd.h             | 158 ++++++++++++++++++++++++++++++
 northd/ovn-northd.c         |   2 +-
 ovn-nb.xml                  |  15 +++
 ovn-sb.ovsschema            |   5 +-
 ovn-sb.xml                  |   6 ++
 tests/ovn.at                | 111 +++++++++++++++++++++
 17 files changed, 604 insertions(+), 162 deletions(-)
 create mode 100644 lib/mac-binding-index.c
 create mode 100644 lib/mac-binding-index.h
 create mode 100644 northd/mac-binding-aging.c
 create mode 100644 northd/mac-binding-aging.h

Comments

Han Zhou Aug. 15, 2022, 5:10 p.m. UTC | #1
On Thu, Aug 11, 2022 at 7:20 AM Ales Musil <amusil@redhat.com> wrote:
>
> Add MAC binding aging mechanism, that
> should take care of stale MAC bindings.
>
> The mechanism is configurable per logical
> router, with option called
> "mac_binding_age_threshold", which is 0 by
> default. The zero also indicates that the
> aging mechanism is disabled.
>
> The aging is based on timestamp in MAC_binding
> table, rows that exceed threshold specified
> by the LR option will be deleted. The row timestamp
> is refresh when we receive ARP that changes
> MAC address of corresponding row.
>
> Add config option for limiting how many
> MAC binding rows can be removed in single
> transcation called "mac_binding_removal_limit".
> The default value is 0 which is unlimited.
>
> Ales Musil (5):
>   northd, controller: Add timestamp column to MAC_Binding table
>   controller: Add mac-binding-index.c/.h files
>   northd: Move struct ovn_datapath and related structs to northd.h
>   northd: Add MAC binding aging mechanism
>   northd: Add config to limit bulk removal of MAC binding
>
>  NEWS                        |   3 +
>  controller/ovn-controller.c |   8 +-
>  controller/pinctrl.c        |   2 +
>  lib/automake.mk             |   2 +
>  lib/mac-binding-index.c     |  33 +++++++
>  lib/mac-binding-index.h     |  26 +++++
>  northd/automake.mk          |   2 +
>  northd/inc-proc-northd.c    |  16 +++
>  northd/mac-binding-aging.c  | 190 ++++++++++++++++++++++++++++++++++++
>  northd/mac-binding-aging.h  |  33 +++++++
>  northd/northd.c             | 154 -----------------------------
>  northd/northd.h             | 158 ++++++++++++++++++++++++++++++
>  northd/ovn-northd.c         |   2 +-
>  ovn-nb.xml                  |  15 +++
>  ovn-sb.ovsschema            |   5 +-
>  ovn-sb.xml                  |   6 ++
>  tests/ovn.at                | 111 +++++++++++++++++++++
>  17 files changed, 604 insertions(+), 162 deletions(-)
>  create mode 100644 lib/mac-binding-index.c
>  create mode 100644 lib/mac-binding-index.h
>  create mode 100644 northd/mac-binding-aging.c
>  create mode 100644 northd/mac-binding-aging.h
>
> --
> 2.37.1
>

Thanks Ales. The series looks good to me. Other than the minor comment of
patch 5, and the ongoing discussion of upgrading strategy:

Acked-by: Han Zhou <hzhou@ovn.org>