[openstack-dev] [Nova][Neutron] out-of-tree plugin for Mech driver/L2 and vif_driver

Neil Jerram Neil.Jerram at metaswitch.com
Mon Dec 15 10:36:59 UTC 2014

"Daniel P. Berrange" <berrange at redhat.com> writes:

> Failing that though, I could see a way to accomplish a similar thing
> without a Neutron launched agent. If one of the VIF type binding
> parameters were the name of a script, we could run that script on
> plug & unplug. So we'd have a finite number of VIF types, and each
> new Neutron mechanism would merely have to provide a script to invoke
> eg consider the existing midonet & iovisor VIF types as an example.
> Both of them use the libvirt "ethernet" config, but have different
> things running in their plug methods. If we had a mechanism for
> associating a "plug script" with a vif type, we could use a single
> VIF type for both.
> eg iovisor port binding info would contain
>   vif_type=ethernet
>   vif_plug_script=/usr/bin/neutron-iovisor-vif-plug
> while midonet would contain
>   vif_type=ethernet
>   vif_plug_script=/usr/bin/neutron-midonet-vif-plug
> And so you see implementing a new Neutron mechanism in this way would
> not require *any* changes in Nova whatsoever. The work would be entirely
> self-contained within the scope of Neutron. It is simply a packaging
> task to get the vif script installed on the compute hosts, so that Nova
> can execute it.
> This is essentially providing a flexible VIF plugin system for Nova,
> without having to have it plug directly into the Nova codebase with
> the API & RPC stability constraints that implies.

I agree that this is a very promising idea.  But... what about the
problem that it is libvirt-specific?  Does that matter?


More information about the OpenStack-dev mailing list