In the Juno cycle there is proposal of ModularL2Agent [1,2], which is very 
useful to develop agent for new backend with much less redundant code. Without 
that, we have to either fork a new agent by copying large amount of existing 
l2agent code, or patch existing l2agent. However in the K pad [3] it seems that 
this feature disappeared?

Now there are some interest on hybrid backend (e.g. Hierachical Binding), and 
some BPs are proposed to patch OVS agent. But it has two drawbacks: 1) tightly 
coupled with OVS; 2) OVS agent became unnecessarily heavier. With ML2agent we 
only need to add separated driver modules in the common L2agent framework, but 
not to patch the monolithic ovs agent.

Also if it is convenient  to write only modules but not the whole agent, 
backend providers may prefer to move out most of the logic from MD to agent 
side driver, for better stability for Neutron controller node and easier 
co-existing with other backend. Ofagent shows good compatibility of l2pop to 
build vxlan/gre tunnel network between itself and other ovs/linuxbridge agent.

Or are there any general consideration about Neutron agent side consolidation, 
either L2/L3/L4-7?

1. https://wiki.openstack.org/wiki/Neutron/ModularL2Agent#Possible_Directions
2. https://etherpad.openstack.org/p/juno-neutron-modular-l2-agent
3. https://etherpad.openstack.org/p/kilo-neutron-summit-topics

Best Regards
OpenStack-dev mailing list

Reply via email to