mirror of
https://github.com/CumulusNetworks/ifupdown2.git
synced 2024-05-06 15:54:50 +00:00
single port expression + cleanup Ticket: CM-1438 Reviewed By: Testing Done: This has left some dead code in. cleanup comming in subsequent patches. ip batch support is not complete. It currently works only for mstpctl bridges. more coming ..
208 lines
4.0 KiB
Bash
208 lines
4.0 KiB
Bash
#!/bin/sh -e
|
|
### BEGIN INIT INFO
|
|
# Provides: networking ifupdown
|
|
# Required-Start: mountkernfs $local_fs urandom
|
|
# Required-Stop: $local_fs
|
|
# Default-Start: S
|
|
# Default-Stop: 0 6
|
|
# Short-Description: Raise network interfaces.
|
|
# Description: Prepare /run/network directory, ifstate file and raise network interfaces, or take them down.
|
|
### END INIT INFO
|
|
|
|
PATH="/sbin:/bin"
|
|
RUN_DIR="/run/network"
|
|
IFSTATE="$RUN_DIR/ifstate"
|
|
|
|
[ -x /sbin/ifup ] || exit 0
|
|
[ -x /sbin/ifdown ] || exit 0
|
|
|
|
. /lib/lsb/init-functions
|
|
|
|
CONFIGURE_INTERFACES=yes
|
|
EXCLUDE_INTERFACES=
|
|
VERBOSE=no
|
|
|
|
verbose=
|
|
|
|
[ -f /etc/default/networking ] && . /etc/default/networking
|
|
|
|
[ "$VERBOSE" = yes ] && verbose=-v
|
|
|
|
perf_options() {
|
|
# At bootup lets set perfmode
|
|
[ -f /var/tmp/network/ifstatenew ] && echo -n "" && return
|
|
|
|
echo -n "--perfmode"
|
|
}
|
|
|
|
|
|
process_exclusions() {
|
|
set -- $EXCLUDE_INTERFACES
|
|
exclusions=""
|
|
for d
|
|
do
|
|
exclusions="-X $d $exclusions"
|
|
done
|
|
echo $exclusions
|
|
}
|
|
|
|
check_network_file_systems() {
|
|
[ -e /proc/mounts ] || return 0
|
|
|
|
if [ -e /etc/iscsi/iscsi.initramfs ]; then
|
|
log_warning_msg "not deconfiguring network interfaces: iSCSI root is mounted."
|
|
exit 0
|
|
fi
|
|
|
|
while read DEV MTPT FSTYPE REST; do
|
|
case $DEV in
|
|
/dev/nbd*|/dev/nd[a-z]*|/dev/etherd/e*)
|
|
log_warning_msg "not deconfiguring network interfaces: network devices still mounted."
|
|
exit 0
|
|
;;
|
|
esac
|
|
case $FSTYPE in
|
|
nfs|nfs4|smbfs|ncp|ncpfs|cifs|coda|ocfs2|gfs|pvfs|pvfs2|fuse.httpfs|fuse.curlftpfs)
|
|
log_warning_msg "not deconfiguring network interfaces: network file systems still mounted."
|
|
exit 0
|
|
;;
|
|
esac
|
|
done < /proc/mounts
|
|
}
|
|
|
|
check_network_swap() {
|
|
[ -e /proc/swaps ] || return 0
|
|
|
|
while read DEV MTPT FSTYPE REST; do
|
|
case $DEV in
|
|
/dev/nbd*|/dev/nd[a-z]*|/dev/etherd/e*)
|
|
log_warning_msg "not deconfiguring network interfaces: network swap still mounted."
|
|
exit 0
|
|
;;
|
|
esac
|
|
done < /proc/swaps
|
|
}
|
|
|
|
ifup_hotplug () {
|
|
if [ -d /sys/class/net ]
|
|
then
|
|
ifaces=$(for iface in $(ifquery --list --allow=hotplug 2>/dev/null)
|
|
do
|
|
link=${iface##:*}
|
|
link=${link##.*}
|
|
if [ -e "/sys/class/net/$link" ] && [ "$(cat /sys/class/net/$link/operstate)" = up ]
|
|
then
|
|
echo "$iface"
|
|
fi
|
|
done)
|
|
if [ -n "$ifaces" ]
|
|
then
|
|
ifup $ifaces "$@" || true
|
|
fi
|
|
fi
|
|
}
|
|
|
|
ifupdown_init() {
|
|
[ ! -e /run/network ] && mkdir -p /run/network &>/dev/null
|
|
[ ! -e /etc/network/run ] && \
|
|
ln -sf /run/network /etc/network/run &>/dev/null
|
|
}
|
|
|
|
case "$1" in
|
|
start)
|
|
if init_is_upstart; then
|
|
exit 1
|
|
fi
|
|
|
|
ifupdown_init
|
|
|
|
if [ "$CONFIGURE_INTERFACES" = no ]
|
|
then
|
|
log_action_msg "Not configuring network interfaces, see /etc/default/networking"
|
|
exit 0
|
|
fi
|
|
set -f
|
|
exclusions=$(process_exclusions)
|
|
perfoptions=$(perf_options)
|
|
log_action_begin_msg "Configuring network interfaces"
|
|
if ifup -a $verbose $perfoptions
|
|
then
|
|
log_action_end_msg $?
|
|
else
|
|
log_action_end_msg $?
|
|
fi
|
|
;;
|
|
|
|
stop)
|
|
if init_is_upstart; then
|
|
exit 0
|
|
fi
|
|
|
|
ifupdown_init
|
|
check_network_file_systems
|
|
check_network_swap
|
|
|
|
log_action_begin_msg "Deconfiguring network interfaces"
|
|
if ifdown -a --exclude=lo $verbose --perfmode; then
|
|
log_action_end_msg $?
|
|
else
|
|
log_action_end_msg $?
|
|
fi
|
|
;;
|
|
|
|
reload)
|
|
|
|
ifupdown_init
|
|
log_action_begin_msg "Reloading network interfaces configuration"
|
|
|
|
if ifreload -a
|
|
then
|
|
log_action_end_msg $?
|
|
else
|
|
log_action_end_msg $?
|
|
fi
|
|
;;
|
|
|
|
force-reload)
|
|
|
|
ifupdown_init
|
|
|
|
log_action_begin_msg "Reloading network interfaces configuration"
|
|
if ifreload -a
|
|
then
|
|
log_action_end_msg $?
|
|
else
|
|
log_action_end_msg $?
|
|
fi
|
|
;;
|
|
|
|
restart)
|
|
if init_is_upstart; then
|
|
exit 1
|
|
fi
|
|
|
|
ifupdown_init
|
|
|
|
|
|
log_action_begin_msg "Reconfiguring network interfaces"
|
|
ifdown -a --exclude=lo $verbose --perfmode || true
|
|
set -f
|
|
exclusions=$(process_exclusions)
|
|
if ifup -a --exclude=lo $verbose --perfmode
|
|
then
|
|
log_action_end_msg $?
|
|
else
|
|
log_action_end_msg $?
|
|
fi
|
|
;;
|
|
|
|
*)
|
|
echo "Usage: /etc/init.d/networking {start|stop|reload|restart|force-reload}"
|
|
exit 1
|
|
;;
|
|
esac
|
|
|
|
exit 0
|
|
|
|
# vim: noet ts=8
|