mirror of
https://github.com/CumulusNetworks/ifupdown2.git
synced 2024-05-06 15:54:50 +00:00
Conflicts: build-config/Makefile build-config/conf/extra-pkgs build-config/conf/linux.amd64.config build-config/conf/linux.powerpc-e500.config build-config/conf/linux.vci.config build-config/conf/snapshot-manifest-amd64 build-config/conf/snapshot-manifest-powerpc build-config/installer/arch/amd64-installer-functions build-config/installer/cumulus/init/im_n29xx_t40n/platform.conf build-config/make/bcm-sdk.make build-config/make/images.make build-config/make/kernel.make build-config/make/lkm.make build-config/make/local-pkgs.make build-config/make/local-pkgs2.make build-config/scripts/kernel-builddeb build-config/scripts/mkimage-amd64.sh modules/Makefile modules/accton_as5712_54x_platform.c modules/cel_redstone_xp_muxpld.c modules/dell_s6000_platform.c modules/platform_defs.h packages/cafe/clobjects.py packages/cafe/scripts/build.py packages/cafe/scripts/supporttarball.py packages/cafe/scripts/test_ci.sh packages/cl-basefiles/etc/cumulus/datapath/traffic.conf packages/cl-image/bin/cl-img-install packages/cl-image/bin/cl-img-select packages/cl-image/img/functions packages/cl-platform-config/usr/share/platform-config/accton/as5712_54x/bin/eeprom.py packages/cl-platform-config/usr/share/platform-config/accton/as5712_54x/etc/bcm.d/config.d/01config.bcm packages/cl-platform-config/usr/share/platform-config/accton/as5712_54x/etc/modules packages/cl-platform-config/usr/share/platform-config/accton/as5712_54x/etc/sensors.d/accton_as5712_54x.conf packages/cl-platform-config/usr/share/platform-config/accton/as6701_32x/etc/bcm.d/config.d/01config.bcm packages/cl-platform-config/usr/share/platform-config/cel/redstone_xp/bin/eeprom.py packages/cl-platform-config/usr/share/platform-config/cel/redstone_xp/etc/bcm.d/config.d/01config.bcm packages/cl-platform-config/usr/share/platform-config/cel/redstone_xp/etc/bcm.d/default_config_values packages/cl-platform-config/usr/share/platform-config/cel/redstone_xp/etc/bcm.d/hw_desc packages/cl-platform-config/usr/share/platform-config/cel/redstone_xp/etc/bcm.d/rc.soc packages/cl-platform-config/usr/share/platform-config/cel/redstone_xp/etc/modules packages/cl-platform-config/usr/share/platform-config/cel/redstone_xp/etc/sensors.d/cel_redstone_xp.conf packages/cl-platform-config/usr/share/platform-config/cel/redstone_xp/hw_init.d/S20qsfp_init.sh packages/cl-platform-config/usr/share/platform-config/cel/smallstone/etc/bcm.d/config.d/01config.bcm packages/cl-platform-config/usr/share/platform-config/dell/s6000_s1220/bin/eeprom.py packages/cl-platform-config/usr/share/platform-config/dell/s6000_s1220/etc/bcm.d/config.d/01config.bcm packages/cl-platform-config/usr/share/platform-config/dell/s6000_s1220/etc/modules packages/cl-platform-config/usr/share/platform-config/dell/s6000_s1220/etc/sensors.d/dell_s6000_s1220.conf packages/cl-platform-config/usr/share/platform-config/dni/c7448n/etc/bcm.d/default_config_values packages/cl-platform-config/usr/share/platform-config/dni/c7448n/etc/bcm.d/hw_desc packages/cl-platform-config/usr/share/platform-config/im/n29xx_t40n/etc/bcm.d/rc.soc packages/cl-platform-config/usr/share/platform-config/im/n29xx_t40n/etc/cumulus/ports.conf packages/cl-platform-config/usr/share/platform-config/quanta/ly6_p2020/etc/bcm.d/config.d/01config.bcm packages/cl-utilities/dist-packages/cumulus/__chip_config/bcm/Trident/rc.forwarding packages/cl-utilities/dist-packages/cumulus/__chip_config/bcm/TridentTwo/rc.forwarding packages/cl-utilities/dist-packages/cumulus/__chip_config/bcm/Triumph/rc.forwarding packages/cl-utilities/dist-packages/cumulus/__chip_config/bcm/datapath.conf packages/cl-utilities/dist-packages/cumulus/platform.py packages/cl-utilities/dist-packages/cumulus/platforms/accton.py packages/cl-utilities/dist-packages/cumulus/platforms/cel.py packages/cl-utilities/dist-packages/cumulus/platforms/dell.py packages/cl-utilities/dist-packages/cumulus/platforms/quanta.py packages/cl-utilities/dist-packages/cumulus/portconfig.py packages/cl-utilities/dist-packages/cumulus/sensors.py packages/cl-utilities/rst/pwmd.8.rst packages/cl-utilities/rst/smonctl.8.rst packages/cl-utilities/usrlib/datapath-config packages/cl-utilities/usrlib/datapath-update packages/cl-utilities/usrlib/update-ports packages/clag/man/clagctl.8 packages/clag/man/clagd.8 packages/clag/sbin/clagctl packages/clag/sbin/clagd packages/clag/setup.py packages/ifupdown2-addons/addons/bridge.py packages/ifupdown2-addons/addons/mstpctl.py packages/ifupdown2-addons/pkg/bridgeutils.py packages/ifupdown2-addons/pkg/ifenslaveutil.py packages/ifupdown2-addons/pkg/modulebase.py packages/ifupdown2/init.d/networking packages/ifupdown2/pkg/iface.py packages/ifupdown2/pkg/ifupdownbase.py packages/ifupdown2/pkg/ifupdownmain.py packages/ifupdown2/pkg/networkinterfaces.py packages/ifupdown2/pkg/scheduler.py packages/ifupdown2/sbin/ifupdown packages/iorw/Makefile packages/iorw/iorw.c packages/lnv/debian/control packages/lnv/debian/install packages/lnv/debian/lnv-dsr.init packages/lnv/debian/lnv-pdd.init packages/lnv/debian/postinst packages/lnv/lnv-dsr packages/lnv/lnv-pdd packages/lnv/lnv.conf packages/lnv/lnv/common.py packages/lnv/lnv/config.py packages/ptm/debian/ptmd.install patches/bcm-sdk/series patches/bridge-utils/remove-ifupdown-support.patch patches/ethtool/force-speed-and-duplex-setting.patch patches/ethtool/series patches/iproute/series patches/iproute/update-neighbour-h-to-latest-upstream.patch patches/kernel/arch-intel-centerton-reboot-cf9.patch patches/kernel/debian-cumulus-controlfiles.patch patches/kernel/driver-hwmon-max6620-fix-rpm-calc.patch patches/kernel/driver-hwmon-pmbus-dni_dps460.patch patches/kernel/driver-support-intel-avoton-ethernet-with-broadcom-phy.patch patches/kernel/network-bridge-igmp-fast-leave.patch patches/kernel/network-bridge-igmpv3.patch patches/kernel/network-bridge-querier-ifaddr.patch patches/kernel/network-bridge-use-spin_lock_bh-from-process-context.patch patches/kernel/network-ipv6-route-fix-multipath-duplicate-nexthops.patch patches/kernel/network-tun-ethtool.patch patches/kernel/series patches/libnl/series patches/lldpd/add-rport-notification-on-linkdown.patch patches/lldpd/series patches/monit/cumulus-monitrc.patch patches/monit/series patches/quagga/bgp-interface-config.patch patches/quagga/bgpd-anvl-aggregate-failures.patch patches/quagga/bgpd-as-override.patch patches/quagga/bgpd-atomic-aggregate-missing.patch patches/quagga/bgpd-connected-nht.patch patches/quagga/bgpd-establish-peers-faster.patch patches/quagga/bgpd-event-driven-route-map-updates.patch patches/quagga/bgpd-fsm-fix.patch patches/quagga/bgpd-gr-route-selection-fix.patch patches/quagga/bgpd-maxmed-administrative-onstartup.patch patches/quagga/bgpd-pfxrcd-include-unuseable.patch patches/quagga/bgpd-route-map-dry-run.patch patches/quagga/bgpd-route-map-match-interface.patch patches/quagga/bgpd-rr-allow-policy-outbound.patch patches/quagga/bgpd-save-last-bad-msg.patch patches/quagga/bgpd-scale-update-delay-packing.patch patches/quagga/nexthop-tracking.patch patches/quagga/ospfd-mi.patch patches/quagga/ospfd-p2p-destination-fix.patch patches/quagga/ptm-bfd-integration.patch patches/quagga/quagga-faster-compile.patch patches/quagga/series patches/quagga/zebra-client-info-detail.patch patches/quagga/zebra-nht-routemap.patch patches/quagga/zebra-recursive-route.patch patches/quagga/zebra-redistribute-table.patch patches/quagga/zebra-route-tags.patch patches/quagga/zebra-set-src-routemap.patch patches/quagga/zebra-static-route-nht.patch rootconf/default/etc/cumulus/switchd.conf rootconf/default/home/cumulus/sysroot-complete rootconf/default/home/cumulus/sysroot-config switchd/hal.c switchd/hal.h switchd/hal_acl_bcm.c switchd/hal_bcm.c switchd/hal_bcm.h switchd/hal_bcm_vxlan.c switchd/hal_dummy.c switchd/hal_int.h switchd/hal_util.c switchd/netlink.c switchd/switchd.c switchd/sync.c tests/config/__init__.py tests/config/default.cfg tests/data/specs/bgp_stress.py tests/examples/testssim2.py tests/infra/testssim2.py tests/l2/l2_lldp_test.py tests/l3/bgp_alpm_test.py tests/l3/bgp_msft_fastreboot_test.py tests/l3/bgp_scale_amzn_test.py tests/l3/bgp_smoke_test.py tests/l3/bgp_v4_v6.py tests/l3/l3_helper.py tests/l3/traffic_utils.py tests/l3/zebra_test.py tests/lib/decorators.py tests/platform/cl-img.py tests/smoke/testcommands.py tests/smoke/testifupdown2.py tests/smoke/testneighborcheck.py tests/smoke/testroutecheck.py tests/smoke/testroutes2.py tests/tests/examples/testssim2.py utilities/distro-cmd utilities/packages/autolib/fs.py utilities/packages/autolib/netobjects.py utilities/packages/autolib/scripts/watch.py utilities/packages/autolib/timeout.py utilities/packages/ssim2/net.py utilities/packages/ssim2/scripts/nodecom.py utilities/packages/ssim2/simlib.py utilities/packages/ssim2/spec.py utilities/packages/ssim2/templates/interfaces.tmpl utilities/packages/testfu/buildout.cfg utilities/packages/testfu/scripts/runteststmpl.sh utilities/packages/testfu/scripts/xmltoresults.py
218 lines
4.7 KiB
Bash
218 lines
4.7 KiB
Bash
#!/bin/bash
|
|
### 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"
|
|
|
|
NAME=networking
|
|
SCRIPTNAME=/etc/init.d/$NAME
|
|
|
|
[ -x /sbin/ifup ] || exit 0
|
|
[ -x /sbin/ifdown ] || exit 0
|
|
|
|
. /lib/lsb/init-functions
|
|
|
|
CONFIGURE_INTERFACES=yes
|
|
EXCLUDE_INTERFACES=
|
|
REMOTE_SYSLOG_SERVER=
|
|
VERBOSE=no
|
|
|
|
verbose=
|
|
|
|
[ -f /etc/default/networking ] && . /etc/default/networking
|
|
|
|
[ "$VERBOSE" = yes ] && verbose=-v
|
|
|
|
gen_examples() {
|
|
# Generate sample interfaces file. The interfaces files are
|
|
# generated under /usr/share/doc/python-ifupdown2/examples/
|
|
#
|
|
|
|
# generate files only at boot
|
|
[ -f /var/tmp/network/ifstatenew ] && return
|
|
|
|
python_ifupdown2_docdir="/usr/share/doc/python-ifupdown2"
|
|
swpfile=${python_ifupdown2_docdir}"/examples/swp_defaults"
|
|
bridgedefaultfile=${python_ifupdown2_docdir}"/examples/bridge_untagged_default"
|
|
interfaces_gen_script=${python_ifupdown2_docdir}"/examples/generate_interfaces.py"
|
|
|
|
[ ! -e $interfaces_gen_script ] && return
|
|
ret=$($interfaces_gen_script -s 2>&1 >$swpfile)
|
|
ret=$($interfaces_gen_script -b 2>&1 >$bridgedefaultfile)
|
|
return
|
|
}
|
|
|
|
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)
|
|
gen_examples
|
|
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 is_bootup ; then
|
|
ifup -a $verbose $perfoptions 2>&1 | /usr/bin/logger \
|
|
$REMOTE_SYSLOG_SERVER -s -i -t $SCRIPTNAME
|
|
else
|
|
ifup -a $verbose $perfoptions
|
|
fi
|
|
log_action_end_msg $?
|
|
;;
|
|
|
|
stop)
|
|
ifupdown_init
|
|
check_network_file_systems
|
|
check_network_swap
|
|
|
|
log_action_begin_msg "Deconfiguring network interfaces"
|
|
if ifdown -a $verbose; 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)
|
|
ifupdown_init
|
|
|
|
log_action_begin_msg "Reconfiguring network interfaces"
|
|
ifdown -a $verbose || true
|
|
set -f
|
|
exclusions=$(process_exclusions)
|
|
if ifup -a $verbose
|
|
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
|