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
~~~~~~~~~~~~~~~~~~~~~~~~~~~
-- 
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