[ovs-dev] [PATCH ovn] Split SB Port_Group per datapath.

Dumitru Ceara 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
>     table.
>     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
>     <http://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
> switches.
> 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
> Numan

Hi Numan,

Thanks for the review. I sent a v2 with additional tests in ovn-northd.at:



More information about the dev mailing list