# ml2_conf.ini [ml2] {% if enable_ironic | bool %} tenant_network_types = vxlan, flat mechanism_drivers = openvswitch {% else %} # Changing type_drivers after bootstrap can lead to database inconsistencies type_drivers = flat,vlan,vxlan tenant_network_types = vxlan {% endif %} {% if neutron_plugin_agent == "openvswitch" %} mechanism_drivers = openvswitch,l2population {% elif neutron_plugin_agent == "linuxbridge" %} mechanism_drivers = linuxbridge,l2population {% endif %} {% if neutron_extension_drivers %} extension_drivers = {{ neutron_extension_drivers|map(attribute='name')|join(',') }} {% endif %} [ml2_type_vlan] {% if enable_ironic | bool %} network_vlan_ranges = physnet1 {% else %} network_vlan_ranges = {% endif %} [ml2_type_flat] {% if enable_ironic | bool %} flat_networks = * {% else %} flat_networks = {% for bridge in neutron_bridge_name.split(',') %}physnet{{ loop.index0 + 1 }}{% if not loop.last %},{% endif %}{% endfor %} {% endif %} [ml2_type_vxlan] vni_ranges = 1:1000 vxlan_group = 239.1.1.1 [securitygroup] {% if neutron_plugin_agent == "openvswitch" %} firewall_driver = neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver {% elif neutron_plugin_agent == "linuxbridge" %} firewall_driver = neutron.agent.linux.iptables_firewall.IptablesFirewallDriver {% endif %} {% if neutron_plugin_agent == "openvswitch" %} [agent] tunnel_types = vxlan l2_population = true arp_responder = true {% if enable_neutron_dvr | bool %} enable_distributed_routing = True {% endif %} [ovs] bridge_mappings = {% for bridge in neutron_bridge_name.split(',') %}physnet{{ loop.index0 + 1 }}:{{ bridge }}{% if not loop.last %},{% endif %}{% endfor %} ovsdb_connection = tcp:{{ api_interface_address }}:6640 {% if enable_nova_fake | bool %} integration_bridge = br-int-{{ item }} {% endif %} {% elif neutron_plugin_agent == "linuxbridge" %} [linux_bridge] physical_interface_mappings = physnet1:{{ neutron_external_interface }} [vxlan] l2_population = true {% endif %} local_ip = {{ tunnel_interface_address }}