Yes, I think your view is correct.  The web service API exposed by Quantum
is for cloud tenants or cloud orchestrators (a different type of developer
than you're talking about).  Working toward a more standard driver model
within a plugin would be nice, though I suspect really you will end up with
drivers interfaces that are tied to particular assumptions about the single
plugin maps logical networks to physical network (e.g., if the plugin maps a
logical network to a VLAN in the physical network, you will need a VLAN
driver for switch type X).

Dan

On Tue, Sep 20, 2011 at 12:30 PM, Andy Bierman <bierm...@brocade.com> wrote:

> Currently, the one and only plugin selected is clearly not going to support
> all possible driver types.****
>
> It will support 1 or more switch types by a specific vendor.****
>
> ** **
>
> So it seems that Quantum developer API needs to move down a layer,
> so the one-and-only-plugin can talk to any driver type.****
>
> Then drivers get registered in plugins.ini, not the q-plugin.****
>
> ** **
>
> I have been implementing a separate wrapper and driver,
> and  following the return data in the openvswitch and cisco drivers (not
> the API docs).****
>
> ** **
>
> I like the idea of a common plugin that manages the global data structures,
> and handles the task list you described, and using a new API for drivers
> instead.****
>
> ** **
>
> ** **
>
> Andy****
>
> ** **
>
> ** **
>
> *From:* Dan Wendlandt [mailto:d...@nicira.com]
> *Sent:* Tuesday, September 20, 2011 12:10 PM
> *To:* Andy Bierman
> *Cc:* netstack@lists.launchpad.net
> *Subject:* Re: [Netstack] support for multiple plugins in Quantum****
>
> ** **
>
> ** **
>
> On Tue, Sep 20, 2011 at 11:53 AM, Andy Bierman <bierm...@brocade.com>
> wrote:****
>
> Hi,****
>
>  ****
>
> I am working on a Quantum plugin for Brocade switches.****
>
> I noticed that if multiple ‘provider’ lines are specified in
> quantum/plugins.ini
> that quantum will use the last one and ignore the rest.****
>
>  ****
>
> What are the plans to support networking equipment from multiple vendors
> within openstack?****
>
> ** **
>
> Hi Andy,****
>
> ** **
>
> This gets to a common point of confusion with folks looking to extend
> Quantum: the difference between a plugin and a "driver" (unofficial term).
> ****
>
> ** **
>
> Think of a plugin as a chunk of code that is responsible for accepting API
> calls like "create network", "create port", etc.  ****
>
> ** **
>
> Drivers on the other hand are device-specific code that know how to perform
> a particular task on a particular device (e.g., a brocade switch).  ****
>
> ** **
>
> You can definitely have a single plugin that communicates with different
> drivers to control different types of devices (the Cisco plugin has some
> examples of this, I believe).  ****
>
> ** **
>
> In my experience, it commonly breaks down this way:  ****
>
> - the single plugin holds the logical network model and determines global
> state that applies across all switches (e.g., the VLAN being used to
> implement a particular network). ****
>
> - when nova schedules a VM workload in a particular location, the quantum
> plugin learns about the "binding" of that VM interface to a virtual/physical
> switch port. ****
>
> - the plugin invokes the driver specific to that virtual/physical switch
> along with global config state (e.g., a tenant VLAN) to perform the actual
> network configuration.  ****
>
> ** **
>
> The available plugins use a common code base for storing the logical data
> model and (if you choose) mapping it to a VLAN.  It would likely be a pretty
> straightforward exercise for you to modify this code to work with a driver
> that talks Brocade switches instead of OVS or a Cisco switch.  During the
> summit we talked about creating a plugin designed to simultaneously manage
> switches from multiple vendors by defining a standard driver interface in
> addition to the shared data model.  I think the Cisco folks have taken some
> steps in that direction within their own plugin, so perhaps some of them can
> chime in. ****
>
> ** **
>
> Dan****
>
> ** **
>
>  ****
>
>
> Seems to me there needs to be a resource pool for switches, and when nova
> decides
> which compute node will host the VM, then 1 of the switches (maybe only 1)
> that
> is physically attached to that compute node is selected by quantum.  Then
> the
> plugin for that switch is loaded (if it isn’t already), and the plugin uses
> the switch(es) and port(s)
> that quantum tells it to use. ****
>
>  ****
>
>  ****
>
> Andy****
>
>  ****
>
>
> --
> Mailing list: https://launchpad.net/~netstack
> Post to     : netstack@lists.launchpad.net
> Unsubscribe : https://launchpad.net/~netstack
> More help   : https://help.launchpad.net/ListHelp****
>
>
>
> ****
>
> ** **
>
> --
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~
> Dan Wendlandt
> Nicira Networks, Inc.
> www.nicira.com | www.openvswitch.org
> Sr. Product Manager
> cell: 650-906-2650
> ~~~~~~~~~~~~~~~~~~~~~~~~~~~****
>



-- 
~~~~~~~~~~~~~~~~~~~~~~~~~~~
Dan Wendlandt
Nicira Networks, Inc.
www.nicira.com | www.openvswitch.org
Sr. Product Manager
cell: 650-906-2650
~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- 
Mailing list: https://launchpad.net/~netstack
Post to     : netstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~netstack
More help   : https://help.launchpad.net/ListHelp

Reply via email to