
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
53 lines
1.7 KiB
Plaintext
53 lines
1.7 KiB
Plaintext
# Quantum Open vSwitch plugin
|
|
# ---------------------------
|
|
|
|
# Save trace setting
|
|
MY_XTRACE=$(set +o | grep xtrace)
|
|
set +o xtrace
|
|
|
|
source $TOP_DIR/lib/quantum_plugins/openvswitch_agent
|
|
|
|
function quantum_plugin_configure_common() {
|
|
Q_PLUGIN_CONF_PATH=etc/quantum/plugins/openvswitch
|
|
Q_PLUGIN_CONF_FILENAME=ovs_quantum_plugin.ini
|
|
Q_DB_NAME="ovs_quantum"
|
|
Q_PLUGIN_CLASS="quantum.plugins.openvswitch.ovs_quantum_plugin.OVSQuantumPluginV2"
|
|
}
|
|
|
|
function quantum_plugin_configure_service() {
|
|
if [[ "$ENABLE_TENANT_TUNNELS" = "True" ]]; then
|
|
iniset /$Q_PLUGIN_CONF_FILE OVS tenant_network_type gre
|
|
iniset /$Q_PLUGIN_CONF_FILE OVS tunnel_id_ranges $TENANT_TUNNEL_RANGES
|
|
elif [[ "$ENABLE_TENANT_VLANS" = "True" ]]; then
|
|
iniset /$Q_PLUGIN_CONF_FILE OVS tenant_network_type vlan
|
|
else
|
|
echo "WARNING - The openvswitch plugin is using local tenant networks, with no connectivity between hosts."
|
|
fi
|
|
|
|
# Override ``OVS_VLAN_RANGES`` and ``OVS_BRIDGE_MAPPINGS`` in ``localrc``
|
|
# for more complex physical network configurations.
|
|
if [[ "$OVS_VLAN_RANGES" = "" ]] && [[ "$PHYSICAL_NETWORK" != "" ]]; then
|
|
OVS_VLAN_RANGES=$PHYSICAL_NETWORK
|
|
if [[ "$TENANT_VLAN_RANGE" != "" ]]; then
|
|
OVS_VLAN_RANGES=$OVS_VLAN_RANGES:$TENANT_VLAN_RANGE
|
|
fi
|
|
fi
|
|
if [[ "$OVS_VLAN_RANGES" != "" ]]; then
|
|
iniset /$Q_PLUGIN_CONF_FILE OVS network_vlan_ranges $OVS_VLAN_RANGES
|
|
fi
|
|
|
|
# Enable tunnel networks if selected
|
|
if [[ $OVS_ENABLE_TUNNELING = "True" ]]; then
|
|
iniset /$Q_PLUGIN_CONF_FILE OVS enable_tunneling True
|
|
fi
|
|
|
|
_quantum_ovs_base_configure_firewall_driver
|
|
}
|
|
|
|
function has_quantum_plugin_security_group() {
|
|
return 0
|
|
}
|
|
|
|
# Restore xtrace
|
|
$MY_XTRACE
|