This patch introduces a new Neutron config option: Q_DVR_MODE. The possible values are: - legacy : No DVR functionality - dvr_snat: Controller/single node DVR - dvr : Compute node in multi-node DVR When DVR is enabled the following configuration changes will be in place: - neutron.conf - router_distributed=True - l3_agent.ini - agent_mode=$Q_DVR_MODE - ovs_neutron_plugin.ini: - enable_distributed_routing=True - l2_population=True - tunnel_types=vxlan Supports-blueprint: neutron-ovs-dvr Change-Id: I669e054a8489fe7ac7f5c00df6535349d477e8c4
Neutron plugin specific files
Neutron plugins require plugin specific behavior.
The files under the directory, lib/neutron_plugins/, will be used
when their service is enabled.
Each plugin has lib/neutron_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.
- The corresponding file name MUST be the same to plugin name
functions
lib/neutron calls the following functions when the $Q_PLUGIN is enabled
neutron_plugin_create_nova_conf: setNOVA_VIF_DRIVERand optionally set options in nova_conf e.g. NOVA_VIF_DRIVER=${NOVA_VIF_DRIVER:-"nova.virt.libvirt.vif.LibvirtGenericVIFDriver"}neutron_plugin_install_agent_packages: install packages that is specific to plugin agent e.g. install_package bridge-utilsneutron_plugin_configure_common: set plugin-specific variables,Q_PLUGIN_CONF_PATH,Q_PLUGIN_CONF_FILENAME,Q_DB_NAME,Q_PLUGIN_CLASSneutron_plugin_configure_debug_commandneutron_plugin_configure_dhcp_agentneutron_plugin_configure_l3_agentneutron_plugin_configure_plugin_agentneutron_plugin_configure_serviceneutron_plugin_setup_interface_driverhas_neutron_plugin_security_group: return 0 if the plugin support neutron security group otherwise return 1neutron_plugin_check_adv_test_requirements: return 0 if requirements are satisfied otherwise return 1