[ovs-dev] Imperative vs. Declarative abstraction at the SB DB

Ben Pfaff blp at ovn.org
Fri Apr 6 20:05:24 UTC 2018

On Fri, Mar 30, 2018 at 05:15:57AM +0200, Liran Schour wrote:
> I wanted to raise a question that I came a cross. Maybe the community 
> already dealt with it.
> The ovn-northd translates the CMS's commands that resides in the NB DB 
> into the SB DB.
> Specifically it produces the Logical_flow table which represent the L2 L3 
> topologies specified in the NB DB.
> However logical flows are very much imperative abstraction. Means that 
> they are very specific and instruct the hypervisors
> how to implement those topologies. These logical flows are very much 
> derived and linked to the physical networking while we are implementing 
> virtual networking.
> The disadvantage that I see for such approach are:
>         1. Reduce flexibility of implementation at the hypervisor level.
>         2. Increase total number of control messages between SB DB to 
> hypervisors.
> I see the reason why to do that in one centralized place (SB DB) instead 
> of on each hypervisor, but the hypervisors anyhow needs to translate these 
> logical flows into actual local flows.
> Therefore there is no real reduction of computation in the system overall.
> Lower at the stack, the ovn-controller' on each hypervisot, should 
> implement an imperative abstraction with it's datapath.

I'm not sure I understand the point yet.  What alternative approach do
you recommend?

More information about the dev mailing list