#!/bin/sh
#
# $XORP: xorp/fea/configure_mfea,v 1.11 2005/09/07 21:17:18 pavlin Exp $
#
#
# Send configuration commands to a running MFEA process.
#
MODULE_NAME="MFEA"
HOSTNAME=`hostname`
IP_VERSION="IPV4" # XXX: IP version defaults to IPv4
# Conditionally set ${srcdir} if it wasn't assigned (e.g., by `gmake check`)
if [ "X${srcdir}" = "X" ] ; then srcdir=`dirname $0` ; fi
#
# The optional first argument should be either -4 or -6 to specify
# IPv4 or IPv6 mode.
#
usage()
{
echo "Usage: $0 [-4 | -6 ]"
}
#
# Get the arguments
#
if [ $# -gt 0 ] ; then
case "${1}" in
-4)
IP_VERSION="IPV4"
shift
;;
-6)
IP_VERSION="IPV6"
shift
;;
-h)
usage;
exit 0
;;
*)
;;
esac
fi
echo "Configuring ${MODULE_NAME} on ${HOSTNAME} in ${IP_VERSION} mode..."
###############################################################
# USER CONFIGURATION BEGIN
###############################################################
#
# Select the vifs to enable
#
if [ ! -z "$ENABLE_VIFS" ] ; then
echo "Using predefined settings:"
echo " ENABLE_VIFS=${ENABLE_VIFS}"
else
case ${HOSTNAME} in
xorp1)
ENABLE_VIFS="dc1 dc4"
;;
xorp2)
ENABLE_VIFS="dc1 dc2"
;;
xorp3)
ENABLE_VIFS="dc0 dc1 dc2"
;;
xorp4)
ENABLE_VIFS="eth6 eth7"
;;
xorp6)
ENABLE_VIFS="dc1"
;;
possum.icir.org)
ENABLE_VIFS="rl0"
;;
oreo.icir.org)
ENABLE_VIFS="wi0"
ENABLE_VIFS="ed1"
;;
koala.icir.org)
ENABLE_VIFS="eth0"
;;
carp.icir.org)
ENABLE_VIFS="xl0"
;;
pie)
ENABLE_VIFS="en1"
;;
carp | carp.icir.org)
ENABLE_VIFS="eth0"
;;
*)
echo "Unknown host : ${HOSTNAME}"
exit 1
;;
esac
fi
#
# Comment-out to disable log trace
#
MFEA_LOG_TRACE_ALL_ENABLE=yes
#
# The subnets to enable/disable CLI access
#
CLI_ENABLE_SUBNETS="127.0.0.1/32 192.150.187.0/25"
CLI_DISABLE_SUBNETS="0.0.0.0/0" # Disable everything else
###############################################################
# USER CONFIGURATION END
###############################################################
#
# Read-in the files with helper functions
#
. ${srcdir}/../cli/xrl_cli_shell_funcs.sh
. ${srcdir}/../fea/xrl_fea_shell_funcs.sh
. ${srcdir}/../fea/xrl_mfea_shell_funcs.sh
#
# Add the PIM 'register_vif' to the list of interfaces to enable
#
MFEA_ENABLE_VIFS="${ENABLE_VIFS} register_vif"
#
# Enable/disable log trace
#
if [ "${MFEA_LOG_TRACE_ALL_ENABLE}" = "yes" ] ; then
mfea_log_trace_all true
else
mfea_log_trace_all false
fi
#
# Configure CLI
#
for subnet in ${CLI_ENABLE_SUBNETS}; do
# XXX: for now, the CLI access is always over IPv4
cli_add_enable_cli_access_from_subnet4 ${subnet}
done
for subnet in ${CLI_DISABLE_SUBNETS}; do
# XXX: for now, the CLI access is always over IPv4
cli_add_disable_cli_access_from_subnet4 ${subnet}
done
#
# Enable and start CLI
#
cli_enable_cli true
cli_start_cli
#
# Configure FEA interfaces
#
tid=`get_xrl_variable_value \`fea_ifmgr_start_transaction\` tid:u32`
if [ "${tid}" = "" ] ; then
echo "ERROR: cannot start transaction: cannot get transaction ID"
exit 1
fi
for vif in ${ENABLE_VIFS}; do
fea_ifmgr_configure_interface_from_system ${tid} ${vif}
done
fea_ifmgr_commit_transaction ${tid}
#
# Enable and start MFEA CLI
#
mfea_enable_cli true
mfea_start_cli
#
# Enable and start MFEA
#
mfea_enable_mfea true
mfea_start_mfea
#
# Enable and start MFEA vifs
#
for vif in ${MFEA_ENABLE_VIFS}; do
mfea_enable_vif ${vif} true
mfea_start_vif ${vif}
done
#
# Done
#
echo "Configuration done."
exit 0
syntax highlighted by Code2HTML, v. 0.9.1