]> git.ipfire.org Git - ipfire-2.x.git/blame - src/initscripts/networking/any
Merge remote-tracking branch 'origin/next'
[ipfire-2.x.git] / src / initscripts / networking / any
CommitLineData
d1e90efc
MT
1#!/bin/sh
2########################################################################
3# Begin
4#
5# Description : ANY Device Script
6#
7# Authors : Nathan Coulson - nathan@linuxfromscratch.org
8# Kevin P. Fleming - kpfleming@linuxfromscratch.org
9# Michael Tremer - mitch@ipfire.org
10# Maniacikarus - maniacikarus@ipfire.org
11#
12# Version : 01.00
13#
14# Notes :
15#
16########################################################################
17
18. /etc/sysconfig/rc
19. ${rc_functions}
20eval $(/usr/local/bin/readhash /var/ipfire/ethernet/settings)
21
64ff033d 22if [ "$(basename $0)" == "green" ]; then
d1e90efc
MT
23 DEVICE="${GREEN_DEV}"
24 ADDRESS="${GREEN_ADDRESS}"
d1e90efc
MT
25 NETADDRESS="${GREEN_NETADDRESS}"
26 NETMASK="${GREEN_NETMASK}"
27 DEVICE="${GREEN_DEV}"
9bdf5e71 28 MTU="${GREEN_MTU}"
64ff033d 29elif [ "$(basename $0)" == "blue" ]; then
d1e90efc
MT
30 DEVICE="${BLUE_DEV}"
31 ADDRESS="${BLUE_ADDRESS}"
d1e90efc
MT
32 NETADDRESS="${BLUE_NETADDRESS}"
33 NETMASK="${BLUE_NETMASK}"
34 DEVICE="${BLUE_DEV}"
e43c3206 35 MTU="${BLUE_MTU}"
64ff033d 36elif [ "$(basename $0)" == "orange" ]; then
d1e90efc
MT
37 DEVICE="${ORANGE_DEV}"
38 ADDRESS="${ORANGE_ADDRESS}"
d1e90efc
MT
39 NETADDRESS="${ORANGE_NETADDRESS}"
40 NETMASK="${ORANGE_NETMASK}"
41 DEVICE="${ORANGE_DEV}"
9bdf5e71 42 MTU="${ORANGE_MTU}"
d1e90efc
MT
43fi
44
d1e90efc
MT
45if [ -n "${ADDRESS}" -a -n "${NETMASK}" ]; then
46 PREFIX=`whatmask ${NETMASK} | grep -e ^CIDR | awk -F': ' '{ print $2 }' | cut -c 2-`
b67f02d5 47 args="${args} ${ADDRESS}/${PREFIX}"
d1e90efc
MT
48else
49 boot_mesg "ADDRESS and/or NETMASK variable missing from input, cannot continue." ${FAILURE}
50 echo_failure
51 exit 1
52fi
53
64ff033d 54case "${1}" in
d1e90efc
MT
55
56 start)
57 boot_mesg "Bringing up the ${DEVICE} interface..."
58 boot_mesg_flush
59
60 # Check if an interface is there...
61 if ip link show ${DEVICE} > /dev/null 2>&1; then
62 link_status=`ip link show ${DEVICE} 2> /dev/null`
63 if [ -n "${link_status}" ]; then
64 if ! echo "${link_status}" | grep -q UP; then
65 ip link set ${DEVICE} up
66 fi
67 fi
68 else
69 boot_mesg "Interface ${DEVICE} doesn't exist." ${FAILURE}
70 echo_failure
71 exit 1
72 fi
6c33dc5c 73
9bdf5e71
MT
74 # Set the MTU
75 if [ -n "${MTU}" ]; then
76 if ! ip link set dev "${DEVICE}" mtu "${MTU}" &>/dev/null; then
77 boot_mesg "Could not set MTU of ${MTU} to ${DEVICE}..."
78 echo_warning
79 fi
80 fi
81
1e4656cd
AF
82 # Create & Enable vnstat data collection
83 /usr/bin/vnstat -u -i ${DEVICE} -r --enable --force > /dev/null 2>&1
d1e90efc 84
fa4762fb
AF
85 if [ ! "${ADDRESS}" == "1.1.1.1" ]; then
86 boot_mesg "Adding IPv4 address ${ADDRESS} to the ${DEVICE} interface..."
87 ip addr add ${args} dev ${DEVICE}
88 evaluate_retval
89 fi
d1e90efc
MT
90 ;;
91
92 stop)
fa4762fb
AF
93 if [ ! "${ADDRESS}" == "1.1.1.1" ]; then
94 boot_mesg "Removing IPv4 addresses from the ${DEVICE} interface..."
95 ip addr flush dev ${DEVICE}
96 evaluate_retval
97 fi
6c33dc5c 98
1e4656cd
AF
99 # Disable vnstat collection
100 /usr/bin/vnstat -u -i ${DEVICE} -r --disable > /dev/null 2>&1
6c33dc5c 101 exit 0;
d1e90efc 102 ;;
d1e90efc 103esac
d1e90efc 104# End