summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--package/base-files/default/etc/hotplug.d/net/10-net24
-rw-r--r--target/linux/package/base-files/files/brcm-2.4/etc/hotplug.d/09-net40
-rw-r--r--target/linux/package/base-files/files/brcm-2.6/etc/hotplug.d/09-net34
3 files changed, 76 insertions, 22 deletions
diff --git a/package/base-files/default/etc/hotplug.d/net/10-net b/package/base-files/default/etc/hotplug.d/net/10-net
index 9a4c45003..8d2c6a803 100644
--- a/package/base-files/default/etc/hotplug.d/net/10-net
+++ b/package/base-files/default/etc/hotplug.d/net/10-net
@@ -1,30 +1,10 @@
#!/bin/sh
setup_eth()
{
- for part in $(nvram get unused_ifnames); do
- [ "$part" = "$INTERFACE" ] && return 0
+ for part in $(nvram get unused_ifnames); do
+ [ "$part" = "$INTERFACE" ] && exit 0
done
- [ -f /proc/net/wl0 ] && {
- lsmod | grep wlcompat >&- || insmod wlcompat
- }
- iwconfig "$INTERFACE" 2>&- | grep -v 'no wireless' >&- && {
- /sbin/wifi
- }
- [ -d /proc/switch ] || {
- insmod switch-core
- insmod switch-robo || insmod switch-adm
- }
- if="$(echo "$INTERFACE" | sed s,eth,et,)"
ifconfig "$INTERFACE" up 2>&- >&-
- for vlan in $(seq 0 15); do
- [ "$(nvram get vlan${vlan}hwname)" = "$if" ] && {
- $DEBUG vconfig add "$INTERFACE" "$vlan"
- vports="$(nvram get vlan${vlan}ports)"
- [ \! -z "$vports" -a -d "/proc/switch/$INTERFACE" ] && \
- echo "$vports" > "/proc/switch/$INTERFACE/vlan/$vlan/ports"
- echo "1" > "/proc/switch/$INTERFACE/enable_vlan"
- }
- done
}
find_name()
diff --git a/target/linux/package/base-files/files/brcm-2.4/etc/hotplug.d/09-net b/target/linux/package/base-files/files/brcm-2.4/etc/hotplug.d/09-net
new file mode 100644
index 000000000..75604ebef
--- /dev/null
+++ b/target/linux/package/base-files/files/brcm-2.4/etc/hotplug.d/09-net
@@ -0,0 +1,40 @@
+#!/bin/sh
+setup_eth()
+{
+ for part in $(nvram get unused_ifnames); do
+ [ "$part" = "$INTERFACE" ] && exit 0
+ done
+ [ -f /proc/net/wl0 ] && {
+ lsmod | grep wlcompat >&- || insmod wlcompat
+ }
+ iwconfig "$INTERFACE" 2>&- | grep -v 'no wireless' >&- && {
+ /sbin/wifi
+ }
+ [ -d /proc/switch ] || {
+ insmod switch-core
+ insmod switch-robo || insmod switch-adm
+ }
+ if="$(echo "$INTERFACE" | sed s,eth,et,)"
+ ifconfig "$INTERFACE" up 2>&- >&-
+ [ -d "/proc/switch/$INTERFACE" ] || return 0
+ echo "1" > "/proc/switch/$INTERFACE/enable_vlan"
+ for vlan in $(seq 0 15); do
+ [ "$(nvram get vlan${vlan}hwname)" = "$if" ] && {
+ vports="$(nvram get vlan${vlan}ports)"
+ [ -n "$vports" ] && echo "$vports" > "/proc/switch/$INTERFACE/vlan/$vlan/ports"
+ $DEBUG vconfig add "$INTERFACE" "$vlan"
+ }
+ done
+}
+
+do_register()
+{
+ case "${INTERFACE%%[0-9]*}" in
+ eth) setup_eth;;
+ esac
+}
+
+
+case "$ACTION" in
+ add|register) do_register;;
+esac
diff --git a/target/linux/package/base-files/files/brcm-2.6/etc/hotplug.d/09-net b/target/linux/package/base-files/files/brcm-2.6/etc/hotplug.d/09-net
new file mode 100644
index 000000000..5e941e5a7
--- /dev/null
+++ b/target/linux/package/base-files/files/brcm-2.6/etc/hotplug.d/09-net
@@ -0,0 +1,34 @@
+#!/bin/sh
+setup_eth()
+{
+ for part in $(nvram get unused_ifnames); do
+ [ "$part" = "$INTERFACE" ] && exit 0
+ done
+ [ -d /proc/switch ] || {
+ insmod switch-core
+ insmod switch-robo || insmod switch-adm
+ }
+ if="$(echo "$INTERFACE" | sed s,eth,et,)"
+ ifconfig "$INTERFACE" up 2>&- >&-
+ [ -d "/proc/switch/$INTERFACE" ] || return 0
+ echo "1" > "/proc/switch/$INTERFACE/enable_vlan"
+ for vlan in $(seq 0 15); do
+ [ "$(nvram get vlan${vlan}hwname)" = "$if" ] && {
+ vports="$(nvram get vlan${vlan}ports)"
+ [ -n "$vports" ] && echo "$vports" > "/proc/switch/$INTERFACE/vlan/$vlan/ports"
+ $DEBUG vconfig add "$INTERFACE" "$vlan"
+ }
+ done
+}
+
+do_register()
+{
+ case "${INTERFACE%%[0-9]*}" in
+ eth) setup_eth;;
+ esac
+}
+
+
+case "$ACTION" in
+ add|register) do_register;;
+esac