[ovs-dev] [PATCH v5 ovn 0/5] introduce BFD support in ovn-controller

Lorenzo Bianconi lorenzo.bianconi at redhat.com
Wed Dec 23 09:22:16 UTC 2020


>
> Hi Lorenzo,

Hi Mark,

>
> One note for the whole series is that there seems to be some
> inconsistency with the acronym "bfd". For instance, in patch 3, there is
> a function called "bpf_monitor_need_update()" that I assume was supposed
> to be "bfd_monitor_need_update()". In patch 4, the commit message refers
> to "bfp".
>

ack, will fix in v6

> Also, in general, I'm a bit confused about the intention for IPv6
> support. For instance, bfd_entry in pinctrl.c has an IPv4 ip_src and
> ip_dst field, bfd_monitor_put_bfd_msg() always creates an ipv4 packet,
> and bfd_monitor_check_sb_conf() performs an IPv4 validation check on the
> sb_bt parameter. This makes it seem like BFD is being added with IPv4
> support only. However, pinctrl_check_bfd_msg() allows an ethertype of
> ETH_TYPE_IPV6, ovn-northd creates handle_bfd_msg() flows that match on
> IPv6 addresses, and there is nothing to prevent IPv6 dst_ips from being
> configured in the databases.
>

so far my goal is to support IPv4 only and complete IPv6 support in a
subsequent series.
Do you think it is mandatory?

Regards,
Lorenzo

> On 12/22/20 3:54 PM, Lorenzo Bianconi wrote:
> > Introduce BFD protocol in ovn-controller according to RFC5880 [0]
> > We added BFD implementation in ovn since layered protocols usually request to
> > enable it on ovn entities (e.g. logical router ports) while ovs implementation
> > relies on physical entities (e.g. ovs interfaces).
> > Moreover we would establish a BFD session between a given ovn-port and
> > multiple peers (1:n relation). A typical use-case is reported in [1].
> > In the current implementation Asynchronous mode is fully supported, while Demand
> > mode is supported only on rx side.
> >
> > [0] - https://tools.ietf.org/html/rfc5880
> > [1] - https://bugzilla.redhat.com/show_bug.cgi?id=1847570
> >
> > Changes since v4:
> > - fix open-bfdd restart issue
> > - do not send BFD packets in admin_down state
> > - fix BFD table sync in nb/sb db
> > - fix BFD and logical_router_static_route tables sync
> > - improve ovn-northd.at/system-ovn.at tests
> >
> > Changes since v3:
> > - fix 100% cpu utilization if min_tx/min_rx are 0
> > - improve unit tests
> > - move system tests in patch 5
> > - set admin_down as default state if no static route is associated to
> >    the BFD session
> > - fix possible memory leak in bfd_monitor_destroy()
> >
> > Changes since v2:
> > - introduce weak reference in Logical_Router_Static_Route table to
> >    the related BFD table
> > - remove idl_index for BFD table and perform lookup using local map
> > - remove unnecessary filed in bfd_entry struct
> > - add external_ids column in BFD nb/sb table
> > - make status info not mandatory configuring BFD table in nb db
> >
> > Changes since v1:
> > - rebase ontop of ovn master
> > - rename handle_bfd_msg action in handle_bfd_msg()
> > - add ovn-northd unit-tests
> > - improve commit logs
> > - remove global BFD control check
> > - introduce BFD support for ovn static routes
> >
> > Lorenzo Bianconi (5):
> >    controller: introduce BFD tx path in ovn-controller
> >    action: introduce handle_bfd_msg() action
> >    controller: bfd: introduce BFD state machine
> >    bfp: support demand mode on rx side
> >    ovn: integrate bfd for static routes
> >
> >   NEWS                        |   3 +
> >   controller/ovn-controller.c |   1 +
> >   controller/pinctrl.c        | 642 +++++++++++++++++++++++++++++++++++-
> >   controller/pinctrl.h        |   2 +
> >   include/ovn/actions.h       |   7 +
> >   lib/actions.c               |  27 ++
> >   lib/ovn-l7.h                |  19 ++
> >   northd/ovn-northd.8.xml     |  21 ++
> >   northd/ovn-northd.c         | 315 +++++++++++++++++-
> >   ovn-nb.ovsschema            |  28 +-
> >   ovn-nb.xml                  |  73 ++++
> >   ovn-sb.ovsschema            |  27 +-
> >   ovn-sb.xml                  |  78 +++++
> >   tests/atlocal.in            |   3 +
> >   tests/ovn-nbctl.at          |   8 +-
> >   tests/ovn-northd.at         |  43 +++
> >   tests/ovn.at                |   4 +
> >   tests/system-ovn.at         | 126 +++++++
> >   utilities/ovn-trace.c       |   2 +
> >   19 files changed, 1407 insertions(+), 22 deletions(-)
> >
>



More information about the dev mailing list