[ovs-dev] [PATCH ovn] Split SB Port_Group per datapath.
dceara at redhat.com
Mon Jun 29 15:26:31 UTC 2020
On 6/29/20 9:39 AM, Numan Siddique wrote:
> On Fri, Jun 26, 2020 at 6:50 PM Dumitru Ceara <dceara at redhat.com
> <mailto:dceara at redhat.com>> wrote:
> 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 <http://NB.Port_Group.name> to
> SB.Port_Group.name <http://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 <http://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 <mailto:numans at ovn.org>>
> Reported-by: Venkata Anil <anilvenkata at redhat.com
> <mailto:anilvenkata at redhat.com>>
> Reported-at: https://bugzilla.redhat.com/1818128
> Signed-off-by: Dumitru Ceara <dceara at redhat.com
> <mailto:dceara at redhat.com>>
> Thanks Dumitru for this patch.
> Thi patch has turned out to be much simpler than I thought.
> Can you please add a few test cases in ovn-northd.at
> <http://ovn-northd.at> to make sure
> that the SB Port_Group rows are created as expected when
> a NB Port_Group is created and it is referenced by multiple logical
> If you could cover cases like, delete a logical switch and make sure
> that the PG
> for that logical switch in SB DB is deleted etc.
Thanks for the review. I sent a v2 with additional tests in ovn-northd.at:
More information about the dev