File: static

package info (click to toggle)
ifupdown-ng 0.12.1-8
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 964 kB
  • sloc: ansic: 3,572; sh: 980; makefile: 233
file content (56 lines) | stat: -rwxr-xr-x 1,071 bytes parent folder | download | duplicates (4)
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
#!/bin/sh
[ -z "${VERBOSE}" ] || set -x

[ -z "${IF_METRIC}" ] && IF_METRIC="1"
[ -n "${IF_VRF_TABLE}" ] && VRF_TABLE="table ${IF_VRF_TABLE}"
[ -n "${IF_VRF_MEMBER}" ] && VRF_TABLE="vrf ${IF_VRF_MEMBER}"
[ -n "${IF_METRIC}" ] && METRIC="metric ${IF_METRIC}"


addr_family() {
	if [ "$1" != "${1#*[0-9].[0-9]}" ]; then
		echo "-4"
	elif [ "$1" != "${1#*:[0-9a-fA-F]}" ]; then
		echo "-6"
	else
		exit 1
	fi
}

configure_addresses() {
	for addr in ${IF_ADDRESSES}; do
		addrfam=$(addr_family ${addr})
		if [ "${IF_POINT_TO_POINT}" -a "${addrfam}" = "-4" ]; then
			PEER="peer ${IF_POINT_TO_POINT}"
		else
			PEER=""
		fi

		${MOCK} ip "${addrfam}" addr add "${addr}" ${PEER} dev "${IFACE}"
	done
}

configure_gateways() {
	for gw in ${IF_GATEWAYS}; do
		addrfam=$(addr_family ${gw})
		${MOCK} ip "${addrfam}" route add default via "${gw}" ${VRF_TABLE} ${METRIC} dev "${IFACE}"
	done
}

flush() {
	cmd="addr"
	arg="dev ${IFACE}"

	${MOCK} ip ${cmd} flush ${arg}
}

case "$PHASE" in
up)
	configure_addresses add
	configure_gateways add
	;;
down)
	flush
	;;
*)	exit 0 ;;
esac