Subversion Repositories svn LFS-FR

Rev

Blame | Last modification | View Log | RSS feed

#!/bin/sh
########################################################################
# Begin $network_devices/services/ipv4-static-route
#
# Description : IPV4 Static Route Script
#
# Authors     : Kevin P. Fleming - kpfleming@linuxfromscratch.org
#
# Version     : 00.00
#
# Notes       :
#
########################################################################

. /etc/sysconfig/rc 
. ${rc_functions} 
. ${IFCONFIG}

case "${TYPE}" in
        ("" | "network")
                need_ip=1
                need_gateway=1
        ;;

        ("default")
                need_gateway=1
                args="${args} default"
                desc="default"
        ;;

        ("host")
                need_ip=1
        ;;

        ("unreachable")
                need_ip=1
                args="${args} unreachable"
                desc="unreachable "
        ;;

        (*)
                boot_mesg "Unknown route type (${TYPE}) in ${IFCONFIG}, cannot continue." ${FAILURE}
                echo_failure
                exit 1
        ;;
esac

if [ -n "${need_ip}" ]; then
        if [ -z "${IP}" ]; then
                boot_mesg "IP variable missing from ${IFCONFIG}, cannot continue." ${FAILURE}
                echo_failure
                exit 1
        fi

        if [ -z "${PREFIX}" ]; then
                boot_mesg "PREFIX variable missing from ${IFCONFIG}, cannot continue." ${FAILURE}
                echo_failure
                exit 1
        fi
        
        args="${args} ${IP}/${PREFIX}"
        desc="${desc}${IP}/${PREFIX}"
fi

if [ -n "${need_gateway}" ]; then
        if [ -z "${GATEWAY}" ]; then
                boot_mesg "GATEWAY variable missing from ${IFCONFIG}, cannot continue." ${FAILURE}
                echo_failure
                exit 1
        fi
        args="${args} via ${GATEWAY}"
fi

if [ -n "${SOURCE}" ]; then
        args="${args} src ${SOURCE}"
fi

case "${2}" in
        up)
                boot_mesg "Adding '${desc}' route to the ${1} interface..."
                ip route add ${args} dev ${1}
                evaluate_retval
        ;;
        
        down)
                boot_mesg "Removing '${desc}' route from the ${1} interface..."
                ip route del ${args} dev ${1}
                evaluate_retval
        ;;
        
        *)
                echo "Usage: ${0} [interface] {up|down}"
                exit 1
        ;;
esac

# End $network_devices/services/ipv4-static-route