devstack/lib/quantum_plugins
Bob Kukura c9b0f1abaa Support for the ml2 quantum plugin.
Support is added for configuring devstack to use quantum's Modular L2
plugin, ml2. See https://review.openstack.org/#/c/20105/ and the
blueprint for details. Either the openvswitch or linuxbridge L2 agent
can be used with the ml2 plugin (or both in combination on different
nodes). Code configurating devstack for these L2 agents has been moved
into separate files so it can be shared between ml2 and the existing
monolithic plugins.

To use ml2 in devstack, set Q_PLUGIN=ml2 in localrc. By default it
will use the openvswitch L2 agent. To use ml2 with the linuxbridge
agent, also set Q_AGENT=linuxbridge in localrc. The local, flat, and
vlan network types are supported with either agent. Support for
openvswitch's gre network type is not yet implemented in ml2.

Note that ml2 does not yet return a useful value for binding:vif_type,
so nova's GenricVIFDriver cannot currently be used. If using the
linuxbridge agent, work around this by setting
NOVA_VIF_DRIVER=nova.virt.libvirt.vif.LinuxBridgeVIFDriver in localrc.

Implements: blueprint modular-l2
Change-Id: Ib3ed039d25295cf1ab268536cec408af8cd3795a
2013-06-06 23:26:00 -04:00
..
services Add configurable use of veths with Quantum+OVS. 2013-04-30 05:57:25 +00:00
bigswitch_floodlight Check quantum status dependent on the plugin 2013-05-09 09:05:15 -07:00
brocade Check quantum status dependent on the plugin 2013-05-09 09:05:15 -07:00
linuxbridge Support for the ml2 quantum plugin. 2013-06-06 23:26:00 -04:00
linuxbridge_agent Support for the ml2 quantum plugin. 2013-06-06 23:26:00 -04:00
ml2 Support for the ml2 quantum plugin. 2013-06-06 23:26:00 -04:00
nec Merge "add firewall driver if we use quantum security group" 2013-05-31 16:28:23 +00:00
nicira Changes to NVP plugin configuration file 2013-05-28 14:08:28 -07:00
openvswitch Support for the ml2 quantum plugin. 2013-06-06 23:26:00 -04:00
openvswitch_agent Support for the ml2 quantum plugin. 2013-06-06 23:26:00 -04:00
ovs_base On unstack : clean up network namespaces created by quantum 2013-05-22 10:00:30 +02:00
plumgrid Check quantum status dependent on the plugin 2013-05-09 09:05:15 -07:00
README.md Check quantum status dependent on the plugin 2013-05-09 09:05:15 -07:00
ryu Merge "add firewall driver if we use quantum security group" 2013-05-31 16:28:23 +00:00

Quantum plugin specific files

Quantum plugins require plugin specific behavior. The files under the directory, lib/quantum_plugins/, will be used when their service is enabled. Each plugin has lib/quantum_plugins/$Q_PLUGIN and define the following functions. Plugin specific configuration variables should be in this file.

  • filename: $Q_PLUGIN
    • The corresponding file name MUST be the same to plugin name $Q_PLUGIN. Plugin specific configuration variables should be in this file.

functions

lib/quantum calls the following functions when the $Q_PLUGIN is enabled

  • quantum_plugin_create_nova_conf : set NOVA_VIF_DRIVER and optionally set options in nova_conf e.g. NOVA_VIF_DRIVER=${NOVA_VIF_DRIVER:-"nova.virt.libvirt.vif.LibvirtGenericVIFDriver"}
  • quantum_plugin_install_agent_packages : install packages that is specific to plugin agent e.g. install_package bridge-utils
  • quantum_plugin_configure_common : set plugin-specific variables, Q_PLUGIN_CONF_PATH, Q_PLUGIN_CONF_FILENAME, Q_DB_NAME, Q_PLUGIN_CLASS
  • quantum_plugin_configure_debug_command
  • quantum_plugin_configure_dhcp_agent
  • quantum_plugin_configure_l3_agent
  • quantum_plugin_configure_plugin_agent
  • quantum_plugin_configure_service
  • quantum_plugin_setup_interface_driver
  • has_quantum_plugin_security_group: return 0 if the plugin support quantum security group otherwise return 1
  • quantum_plugin_check_adv_test_requirements: return 0 if requirements are satisfied otherwise return 1