#!/bin/sh
#
-# $Id$
#
PATH=/sbin:/usr/sbin:/bin:/usr/bin
# set all major variables
setup_ip_param
+SYSCTLDEVICE=$(echo ${DEVICE} | sed 's/\./\//g')
+
OTHERSCRIPT="/lib/rc-scripts/ifup-${DEVICETYPE}"
if [ -x "$OTHERSCRIPT" ]; then
if [ -n "$MACVLAN_DEV" -a -n "$MACVLAN_MACADDR" ]; then
ip link del link ${MACVLAN_DEV} ${DEVICE} type macvlan > /dev/null 2>&1
- ip link add link ${MACVLAN_DEV} address ${MACVLAN_MACADDR} ${DEVICE} type macvlan
+ ip link add link ${MACVLAN_DEV} address ${MACVLAN_MACADDR} name ${DEVICE} type macvlan
fi
# is this device available? (this catches PCMCIA devices for us)
exit 1
fi
-if is_yes "$SLAVE" && [ ! -x /sbin/ifenslave ]; then
- nls "%s is missing. Can't continue." "/sbin/ifenslave"
- exit 1
-fi
-
-if is_yes "$SLAVE" && [ -n "$MASTER" -a -x /sbin/ifenslave ]; then
- RFLAG="" && is_yes "${RECIEVE-ONLY}" && RFLAG="-r"
-
- ip link set ${DEVICE} down
- nls "Enslaving %s to %s" "$DEVICE" "$MASTER"
- ifenslave $RFLAG "$MASTER" "$DEVICE"
-
- if [ -n "$ETHTOOL_OPTS" ] ; then
- /sbin/ethtool -s $DEVICE $ETHTOOL_OPTS
- fi
-
- exit 0
-fi
-
if [ -n "$MACADDR" ]; then
ip link set ${DEVICE} address ${MACADDR}
fi
fi
if is_yes "${IPV6_NETWORKING}" && is_yes "${IPV6_DISABLE_AUTOCONF}"; then
- run_cmd "Disabling IPv6 autoconfiguration" sysctl -w net.ipv6.conf.${DEVICE}.autoconf=0
+ run_cmd "Disabling IPv6 autoconfiguration" sysctl -w net.ipv6.conf.${SYSCTLDEVICE}.autoconf=0
fi
if is_wireless_device "${DEVICE}"; then
check_link_down ${DEVICE} $(( $WLAN_WPA_WAIT_TIMEOUT * 2 ))
fi
+if [ -n "$ETHTOOL_OPTS" ] ; then
+ /sbin/ethtool -s $DEVICE $ETHTOOL_OPTS
+fi
+
+if is_yes "$SLAVE" && [ -n "$MASTER" ] ; then
+ nls "Enslaving %s to %s" "$DEVICE" "$MASTER"
+ ip link set "$DEVICE" master "$MASTER"
+ ip link set "$DEVICE" up
+
+ exit 0
+fi
+
if [ "$HANDLING" = "2" ]; then
exit 0
fi
DHCP_ARGS=
if [ -n "$DHCP_CLIENT" ]; then
if [ -z "$DHCP_HOSTNAME" ]; then
- DHCP_HOSTNAME="$HOSTNAME"
+ # set DHCP_HOSTNAME only basename
+ DHCP_HOSTNAME=${HOSTNAME%%.*}
fi
case ${DHCP_CLIENT##*/} in
pump)
if is_yes "$IPV4_NETWORKING" && [ -n "${IP4ADDR}" -a -x /sbin/arping ]; then
# update ARP cache of neighbouring computers
/sbin/arping -q -A -c 1 -I ${DEVICE} ${IP4ADDR%/*}
- ( sleep 2; /sbin/arping -q -U -c 1 -I ${DEVICE} ${IP4ADDR%/*} ) > /dev/null 2>&1 < /dev/null &
+ { ( sleep 2; /sbin/arping -q -U -c 1 -I ${DEVICE} ${IP4ADDR%/*} ) & } > /dev/null 2>&1
fi
# IPv4/6 gateways and default routes
# device have to have ip address set before
if is_yes "$PROXYARP"; then
- run_cmd "$(nls 'Enabling proxy ARP on %s' "${DEVICE}")" sysctl -w net.ipv4.conf.${DEVICE}.proxy_arp=1
+ run_cmd "$(nls 'Enabling proxy ARP on %s' "${DEVICE}")" sysctl -w net.ipv4.conf.${SYSCTLDEVICE}.proxy_arp=1
fi
if [ "$HANDLING" = "3" ]; then