# NOTE(xiaohhui): By default, devstack will set Q_AGENT as openvswitch.
# Here we deny that, because there is no agent in DF. But most of
# functions in lib/neutron_plugins/openvswitch_agent are needed. So,
# lib/neutron_plugins/openvswitch_agent is still used here. And override
# functions can be added in this file.
Q_AGENT=${Q_AGENT:-" "}

source $TOP_DIR/lib/neutron_plugins/openvswitch_agent

# This function is invoked by DevStack's Neutron plugin setup
# code and is being overridden here since the DF devstack
# plugin will handle the install.
function neutron_plugin_install_agent_packages {
    :
}

# Workaround for devstack/systemd, which will try to define q-agt even though
# it's disabled.
AGENT_BINARY=$(which true)

if is_service_enabled df-l3-agent ; then
    AGENT_L3_BINARY=${AGENT_L3_BINARY:-"$(get_python_exec_prefix)/df-l3-agent"}
    enable_service q-l3
fi

if is_service_enabled df-metadata ; then
    disable_service q-meta
fi

DRAGONFLOW_CONF=/etc/neutron/dragonflow.ini
DRAGONFLOW_PUBLISHER_CONF=/etc/neutron/dragonflow_publisher.ini
DRAGONFLOW_DATAPATH=/etc/neutron/dragonflow_datapath_layout.yaml
Q_PLUGIN_EXTRA_CONF_PATH=/etc/neutron
Q_PLUGIN_EXTRA_CONF_FILES=(dragonflow.ini)

Q_ML2_PLUGIN_MECHANISM_DRIVERS=${Q_ML2_PLUGIN_MECHANISM_DRIVERS:-"df"}
if [[ -z ${ML2_L3_PLUGIN} ]]; then
    if is_service_enabled q-l3 ; then
        ML2_L3_PLUGIN="df-l3"
    else
        ML2_L3_PLUGIN="df-l3-agentless"
    fi
fi

if [[ "$ENABLE_DPDK" == "True" ]]; then
    # By default, dragonflow uses OVS kernel datapath. If you want to use
    # user space datapath powered by DPDK, please use 'netdev'.
    OVS_DATAPATH_TYPE=netdev
fi
