[ovs-git] [ovn-org/ovn] 20fbe2: ovn-northd: Avoid creation of identical datapath g...

Ihar Hrachyshka noreply at github.com
Tue Aug 31 15:32:32 UTC 2021


  Branch: refs/heads/master
  Home:   https://github.com/ovn-org/ovn
  Commit: 20fbe2421a3c05936b985c724a0aa36e76b83ee1
      https://github.com/ovn-org/ovn/commit/20fbe2421a3c05936b985c724a0aa36e76b83ee1
  Author: Ilya Maximets <i.maximets at ovn.org>
  Date:   2021-08-31 (Tue, 31 Aug 2021)

  Changed paths:
    M northd/ovn-northd.c

  Log Message:
  -----------
  ovn-northd: Avoid creation of identical datapath groups.

Currently, in a case where datapath groups doesn't need to be changed,
but a new flow should be added, northd will create a new identical
datapath group for a new flow.  It happens because we're not looking
for suitable group in Southbound database, but only tracking ones
created on current iteration.

With this change, northd will collect existing Sb DB datapath groups
while checking logical flows by linking them to unique datapath
groups generated on this run.  This way we can reduce number of
datapath groups.  It wasn't really a problem, almost all the flows
in typical use case are using the same datapath group with only
a few of them using separate copies.  More importantly, this change
allows to avoid full comparison of datapath groups if we already
checked this group from the database once and linked it to a new group
generated on this run.

Acked-by: Dumitru Ceara <dceara at redhat.com>
Signed-off-by: Ilya Maximets <i.maximets at ovn.org>
Signed-off-by: Numan Siddique <numans at ovn.org>


  Commit: 1313d6457d760bb8ee41e5d74b3c6abe88561430
      https://github.com/ovn-org/ovn/commit/1313d6457d760bb8ee41e5d74b3c6abe88561430
  Author: Ilya Maximets <i.maximets at ovn.org>
  Date:   2021-08-31 (Tue, 31 Aug 2021)

  Changed paths:
    M northd/ovn-northd.c

  Log Message:
  -----------
  ovn-northd: Don't check datapath groups in full if not needed.

The '/* Push changes to the Logical_Flow table to database. */' loop
reads all the datapaths from the datapath group and checks them even
if it's not required.

To check that flow has at least one valid datapath, we need to find
one valid datapath.  To find Sb logical flow we need a datapath type
and for this we only need one datapath again.  Technically, the only
place where we need to check all datapaths is when we're checking
certain Sb datapath group for the first time.  In all other cases
we can validate/discard the flow by other characteristics that we
already know.

The change saves a fair amount of time in this loop.  Up to a few
seconds in case of a big database.

More comments added to make the code easier to read.

Acked-by: Dumitru Ceara <dceara at redhat.com>
Signed-off-by: Ilya Maximets <i.maximets at ovn.org>
Signed-off-by: Numan Siddique <numans at ovn.org>


  Commit: 14c6dac51dc87747707ffe678e777277ca776d84
      https://github.com/ovn-org/ovn/commit/14c6dac51dc87747707ffe678e777277ca776d84
  Author: Ihar Hrachyshka <ihrachys at redhat.com>
  Date:   2021-08-31 (Tue, 31 Aug 2021)

  Changed paths:
    M controller/physical.c
    M ovn-architecture.7.xml
    M tests/ovn.at

  Log Message:
  -----------
  Suppress LOCAL_ONLY traffic for localnet ports

When a router port is attached to a localnet switch, sending periodic
RAs through localnet port will confuse upstream router by leaking
conflicting router advertisements into datacenter network.

This patch blocks all LOCAL_ONLY marked traffic leaving through localnet
port. In addition to RAs, it also covers BFD periodic messages and IPv6
prefix delegation.

Signed-off-by: Ihar Hrachyshka <ihrachys at redhat.com>
Signed-off-by: Numan Siddique <numans at ovn.org>


Compare: https://github.com/ovn-org/ovn/compare/fa4f9ee51c36...14c6dac51dc8


More information about the git mailing list