switch.sh 813 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. #!/bin/sh
  2. # Copyright (C) 2006-2009 OpenWrt.org
  3. setup_switch_hw() {
  4. local dev="$1"
  5. local enable reset evlan
  6. config_get_bool enable "$dev" enable 1
  7. config_get_bool evlan "$dev" enable_vlan 1
  8. config_get_bool reset "$dev" reset 1
  9. local proc="/proc/switch/$dev"
  10. [ -d "$proc" ] && {
  11. echo "$reset" > "$proc/reset"
  12. echo "$evlan" > "$proc/enable_vlan"
  13. echo "$enable" > "$proc/enable"
  14. }
  15. }
  16. setup_switch_vlan() {
  17. local s="$1"
  18. local dev vlan ports
  19. config_get dev "$s" device
  20. config_get vlan "$s" vlan
  21. config_get ports "$s" ports
  22. [ -n "$dev" ] && [ -n "$vlan" ] && {
  23. local proc="/proc/switch/$dev/vlan/$vlan/ports"
  24. [ -f "$proc" ] && echo "$ports" > "$proc"
  25. }
  26. }
  27. setup_switch() {
  28. config_load network
  29. config_foreach setup_switch_hw switch
  30. config_foreach setup_switch_vlan switch_vlan
  31. }