# Override few things here as early as we can

# We will enable the opendaylight ML2 MechanismDriver v1 version by default.
# Note we are also enabling the logger driver, which is helpful for
# debugging things on the Neutron side.
Q_ML2_PLUGIN_MECHANISM_DRIVERS=${Q_ML2_PLUGIN_MECHANISM_DRIVERS:-"opendaylight,logger"}

# This triggers the provisioning of L3 resources like routers and
# external network, if not overriden.
Q_L3_ENABLED=${Q_L3_ENABLED:-True}

# We have to disable the neutron L2 agent. OpenDaylight does not use the
# L2 agent, it instead uses a combination of OpenFlow and OVSDB commands
# to program OVS on each compute and network node host.
disable_service q-agt

# If ODL_L3 is enabled, then we don't need the L3 agent and OpenDaylight
# is going to act as the ML2's L3 service plugin.
if [[ "$ODL_L3" == "True" ]]
then
    disable_service q-l3
    ML2_L3_PLUGIN="${ML2_L3_PLUGIN:-odl-router}"
fi

# [networking-feature-enabled] api-extensions
# api-extensions=all means any kind of extensions is enabled irrelevant of what plugin supports
# ML2 plugin with ODL driver supports only the following extensions, not all
# Those list must be maintained as ML2 plugin with ODL driver supports more extensions
NETWORK_API_EXTENSIONS=${NETWORK_API_EXTENSIONS:-"dns-integration,address-scope,ext-gw-mode,binding,agent,subnet_allocation,dhcp_agent_scheduler,external-net,flavors,net-mtu,quotas,provider,multi-provider,extraroute,vlan-transparent,router,extra_dhcp_opt,security-group,rbac-policies,port-security,allowed-address-pairs,dvr"}