<div dir="ltr">just a provocative thought: If we used the ovsdb connection instead, do we really need an L2 agent :P?<div class="gmail_extra"><br><br><div class="gmail_quote">On 17 June 2014 18:38, Kyle Mestery <span dir="ltr"><<a href="mailto:mestery@noironetworks.com" target="_blank">mestery@noironetworks.com</a>></span> wrote:<br>


<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">Another area of improvement for the agent would be to move away from<br>


executing CLIs for port commands and instead use OVSDB. Terry Wilson<br>
and I talked about this, and re-writing ovs_lib to use an OVSDB<br>
connection instead of the CLI methods would be a huge improvement<br>
here. I'm not sure if Terry was going to move forward with this, but<br>
I'd be in favor of this for Juno if he or someone else wants to move<br>
in this direction.<br>
<br>
Thanks,<br>
Kyle<br>
<div><div><br>
On Tue, Jun 17, 2014 at 11:24 AM, Salvatore Orlando <<a href="mailto:sorlando@nicira.com" target="_blank">sorlando@nicira.com</a>> wrote:<br>
> We've started doing this in a slightly more reasonable way for icehouse.<br>
> What we've done is:<br>
> - remove unnecessary notification from the server<br>
> - process all port-related events, either trigger via RPC or via monitor in<br>
> one place<br>
><br>
> Obviously there is always a lot of room for improvement, and I agree<br>
> something along the lines of what Zang suggests would be more maintainable<br>
> and ensure faster event processing as well as making it easier to have some<br>
> form of reliability on event processing.<br>
><br>
> I was considering doing something for the ovs-agent again in Juno, but since<br>
> we've moving towards a unified agent, I think any new "big" ticket should<br>
> address this effort.<br>
><br>
> Salvatore<br>
><br>
><br>
> On 17 June 2014 13:31, Zang MingJie <<a href="mailto:zealot0630@gmail.com" target="_blank">zealot0630@gmail.com</a>> wrote:<br>
>><br>
>> Hi:<br>
>><br>
>> Awesome! Currently we are suffering lots of bugs in ovs-agent, also<br>
>> intent to rebuild a more stable flexible agent.<br>
>><br>
>> Taking the experience of ovs-agent bugs, I think the concurrency<br>
>> problem is also a very important problem, the agent gets lots of event<br>
>> from different greenlets, the rpc, the ovs monitor or the main loop.<br>
>> I'd suggest to serialize all event to a queue, then process events in<br>
>> a dedicated thread. The thread check the events one by one ordered,<br>
>> and resolve what has been changed, then apply the corresponding<br>
>> changes. If there is any error occurred in the thread, discard the<br>
>> current processing event, do a fresh start event, which reset<br>
>> everything, then apply the correct settings.<br>
>><br>
>> The threading model is so important and may prevent tons of bugs in<br>
>> the future development, we should describe it clearly in the<br>
>> architecture<br>
>><br>
>><br>
>> On Wed, Jun 11, 2014 at 4:19 AM, Mohammad Banikazemi <<a href="mailto:mb@us.ibm.com" target="_blank">mb@us.ibm.com</a>><br>
>> wrote:<br>
>> > Following the discussions in the ML2 subgroup weekly meetings, I have<br>
>> > added<br>
>> > more information on the etherpad [1] describing the proposed<br>
>> > architecture<br>
>> > for modular L2 agents. I have also posted some code fragments at [2]<br>
>> > sketching the implementation of the proposed architecture. Please have a<br>
>> > look when you get a chance and let us know if you have any comments.<br>
>> ><br>
>> > [1] <a href="https://etherpad.openstack.org/p/modular-l2-agent-outline" target="_blank">https://etherpad.openstack.org/p/modular-l2-agent-outline</a><br>
>> > [2] <a href="https://review.openstack.org/#/c/99187/" target="_blank">https://review.openstack.org/#/c/99187/</a><br>
>> ><br>
>> ><br>
>> > _______________________________________________<br>
>> > OpenStack-dev mailing list<br>
>> > <a href="mailto:OpenStack-dev@lists.openstack.org" target="_blank">OpenStack-dev@lists.openstack.org</a><br>
>> > <a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br>
>> ><br>
>><br>
>> _______________________________________________<br>
>> OpenStack-dev mailing list<br>
>> <a href="mailto:OpenStack-dev@lists.openstack.org" target="_blank">OpenStack-dev@lists.openstack.org</a><br>
>> <a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br>
><br>
><br>
><br>
> _______________________________________________<br>
> OpenStack-dev mailing list<br>
> <a href="mailto:OpenStack-dev@lists.openstack.org" target="_blank">OpenStack-dev@lists.openstack.org</a><br>
> <a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br>
><br>
<br>
_______________________________________________<br>
OpenStack-dev mailing list<br>
<a href="mailto:OpenStack-dev@lists.openstack.org" target="_blank">OpenStack-dev@lists.openstack.org</a><br>
<a href="http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev" target="_blank">http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev</a><br>
</div></div></blockquote></div><br></div></div>