aboutsummaryrefslogtreecommitdiffstats
path: root/bootscripts/contrib/lsb-v3/sysconfig/network-devices/services/ipv4-static-route
blob: 4205a022db774c1ddb76a4ebd3c8d2d58a62cbd9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
#!/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       :
#
########################################################################

. /lib/lsb/init-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

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