[ovs-git] [ovn-org/ovn] 0db5cb: Split SB Port_Group per datapath.

Dumitru Ceara noreply at github.com
Tue Jun 30 12:08:00 UTC 2020

  Branch: refs/heads/branch-20.06
  Home:   https://github.com/ovn-org/ovn
  Commit: 0db5cbf65283fb41a7d28e5d0ad2f8ac14725d73
  Author: Dumitru Ceara <dceara at redhat.com>
  Date:   2020-06-30 (Tue, 30 Jun 2020)

  Changed paths:
    M TODO.rst
    M controller/lflow.c
    M include/ovn/expr.h
    M lib/actions.c
    M lib/expr.c
    M lib/ovn-util.h
    M northd/ovn-northd.c
    M tests/ovn-northd.at
    M tests/test-ovn.c
    M utilities/ovn-trace.c

  Log Message:
  Split SB Port_Group per datapath.

In order to avoid ovn-controller reinstalling all logical flows that
refer a port_group when some ports are added/removed from the port group
we now change the way ovn-northd populates the Southbound DB Port_Group

Instead of copying NB.Port_Group.name to SB.Port_Group.name we now
create one SB.Port_Group record for every datapath that has ports
referenced by the NB.Port_Group.ports field. In order to maintain the
SB.Port_Group.name uniqueness constraint, ovn-northd populates the field
with the value: <SB.Logical_Datapath.tunnel_key>_<NB.Port_Group.name>.

In specific scenarios we see significant improvements in time to
install/remove all logical flows to/from OVS. One such scenario, in the
BZ referenced below has:

$ ovn-nbctl acl-list pg
  from-lport  1001 (inport == @pg && ip) drop
    to-lport  1001 (outport == @pg && ip) drop

Then, incrementally, creates new logical ports on different logical
switches, binds them to OVS interfaces and adds them to the port_group.

Measuring the total time to perform the above steps 500 times (for 500
new ports attached to 100 switches, 5 per switch) on a test setup
we observe an improvement of 50% in time it takes to install all
openflow rules when port_groups are split in the SB database.

Suggested-by: Numan Siddique <numans at ovn.org>
Reported-by: Venkata Anil <anilvenkata at redhat.com>
Reported-at: https://bugzilla.redhat.com/1818128
Signed-off-by: Dumitru Ceara <dceara at redhat.com>
Acked-by: Numan Siddique <numans at ovn.org>
Signed-off-by: Mark Michelson <mmichels at redhat.com>

More information about the git mailing list