devstack/lib/neutron_plugins/ofagent_agent
YAMAMOTO Takashi b2631211ab Remove neutron ryu-plugin support
Ryu plugin was marked deprecated in Juno and will be removed for Kilo.

We (Ryu team) recommend users to migrate to ofagent, on which
we aim to concentrate our development resources by this deprecation.

Partial-Bug: #1391714
Change-Id: I1ef28818e9400664ae3d83758dc2dcf71c02f185
2014-11-12 02:25:23 +00:00

106 lines
4.0 KiB
Plaintext

# OpenFlow Agent plugin
# ----------------------
# Save trace setting
OFA_XTRACE=$(set +o | grep xtrace)
set +o xtrace
source $TOP_DIR/lib/neutron_plugins/ovs_base
source $TOP_DIR/lib/neutron_thirdparty/ryu # for RYU_DIR, install_ryu, etc
function neutron_plugin_create_nova_conf {
_neutron_ovs_base_configure_nova_vif_driver
}
function neutron_plugin_install_agent_packages {
_neutron_ovs_base_install_agent_packages
# This agent uses ryu to talk with switches
install_package $(get_packages "ryu")
install_ryu
}
function neutron_plugin_configure_debug_command {
_neutron_ovs_base_configure_debug_command
}
function neutron_plugin_configure_dhcp_agent {
iniset $Q_DHCP_CONF_FILE DEFAULT dhcp_agent_manager neutron.agent.dhcp_agent.DhcpAgentWithStateReport
}
function neutron_plugin_configure_l3_agent {
_neutron_ovs_base_configure_l3_agent
iniset $Q_L3_CONF_FILE DEFAULT l3_agent_manager neutron.agent.l3_agent.L3NATAgentWithStateReport
}
function _neutron_ofagent_configure_firewall_driver {
if [[ "$Q_USE_SECGROUP" == "True" ]]; then
iniset /$Q_PLUGIN_CONF_FILE securitygroup firewall_driver neutron.agent.linux.iptables_firewall.IptablesFirewallDriver
else
iniset /$Q_PLUGIN_CONF_FILE securitygroup firewall_driver neutron.agent.firewall.NoopFirewallDriver
fi
}
function neutron_plugin_configure_plugin_agent {
# Set up integration bridge
_neutron_ovs_base_setup_bridge $OVS_BRIDGE
_neutron_ofagent_configure_firewall_driver
# Check a supported openflow version
OF_VERSION=`ovs-ofctl --version | grep "OpenFlow versions" | awk '{print $3}' | cut -d':' -f2`
if [ `vercmp_numbers "$OF_VERSION" "0x3"` -lt "0" ]; then
die $LINENO "This agent requires OpenFlow 1.3+ capable switch."
fi
# Enable tunnel networks if selected
if [[ "$OVS_ENABLE_TUNNELING" == "True" ]]; then
# Verify tunnels are supported
# REVISIT - also check kernel module support for GRE and patch ports
OVS_VERSION=`ovs-vsctl --version | head -n 1 | grep -E -o "[0-9]+\.[0-9]+"`
if [ `vercmp_numbers "$OVS_VERSION" "1.4"` -lt "0" ]; then
die $LINENO "You are running OVS version $OVS_VERSION. OVS 1.4+ is required for tunneling between multiple hosts."
fi
iniset /$Q_PLUGIN_CONF_FILE ovs local_ip $TUNNEL_ENDPOINT_IP
fi
# Setup physical network bridge mappings. Override
# ``OVS_VLAN_RANGES`` and ``OVS_BRIDGE_MAPPINGS`` in ``localrc`` for more
# complex physical network configurations.
if [[ "$OVS_BRIDGE_MAPPINGS" == "" ]] && [[ "$PHYSICAL_NETWORK" != "" ]] && [[ "$OVS_PHYSICAL_BRIDGE" != "" ]]; then
OVS_BRIDGE_MAPPINGS=$PHYSICAL_NETWORK:$OVS_PHYSICAL_BRIDGE
# Configure bridge manually with physical interface as port for multi-node
sudo ovs-vsctl --no-wait -- --may-exist add-br $OVS_PHYSICAL_BRIDGE
fi
if [[ "$OVS_BRIDGE_MAPPINGS" != "" ]]; then
iniset /$Q_PLUGIN_CONF_FILE ovs bridge_mappings $OVS_BRIDGE_MAPPINGS
fi
if [[ "$OFAGENT_PHYSICAL_INTERFACE_MAPPINGS" != "" ]]; then
iniset /$Q_PLUGIN_CONF_FILE agent physical_interface_mappings \
$OFAGENT_PHYSICAL_INTERFACE_MAPPINGS
fi
AGENT_BINARY="$NEUTRON_BIN_DIR/neutron-ofagent-agent"
iniset /$Q_PLUGIN_CONF_FILE agent tunnel_types $Q_TUNNEL_TYPES
# Define extra "AGENT" configuration options when q-agt is configured by defining
# defining the array ``Q_AGENT_EXTRA_AGENT_OPTS``.
# For Example: ``Q_AGENT_EXTRA_AGENT_OPTS=(foo=true bar=2)``
for I in "${Q_AGENT_EXTRA_AGENT_OPTS[@]}"; do
# Replace the first '=' with ' ' for iniset syntax
iniset /$Q_PLUGIN_CONF_FILE agent ${I/=/ }
done
}
function neutron_plugin_setup_interface_driver {
local conf_file=$1
iniset $conf_file DEFAULT interface_driver neutron.agent.linux.interface.OVSInterfaceDriver
iniset $conf_file DEFAULT ovs_use_veth True
}
function neutron_plugin_check_adv_test_requirements {
is_service_enabled q-agt && is_service_enabled q-dhcp && return 0
}
# Restore xtrace
$OFA_XTRACE