br2684ctl 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. #!/bin/sh /etc/rc.common
  2. START=50
  3. USE_PROCD=1
  4. start_daemon() {
  5. local cfg="$1"
  6. local atmdev
  7. config_get atmdev "$cfg" atmdev 0
  8. local unit
  9. config_get unit "$cfg" unit 0
  10. local vpi
  11. config_get vpi "$cfg" vpi 8
  12. local vci
  13. config_get vci "$cfg" vci 35
  14. local encaps
  15. config_get encaps "$cfg" encaps
  16. case "$encaps" in
  17. 1|vc) encaps=1;;
  18. *) encaps=0;;
  19. esac
  20. local payload
  21. config_get payload "$cfg" payload
  22. case "$payload" in
  23. 0|routed) payload=0;;
  24. *) payload=1;;
  25. esac
  26. local qos
  27. config_get qos "$cfg" qos
  28. local sendsize
  29. config_get sendsize "$cfg" sendsize
  30. found=
  31. for device in /sys/class/atm/*; do
  32. [ -d "$device" ] || break
  33. [ "$(cat $device/atmindex)" = "$atmdev" ] || continue
  34. found=1
  35. break
  36. done
  37. [ -n "$found" ] || return
  38. local circuit="$atmdev.$vpi.$vci"
  39. procd_open_instance
  40. procd_set_param command \
  41. /usr/sbin/br2684ctl \
  42. -c "$unit" -e "$encaps" -p "$payload" \
  43. -a "$circuit" ${qos:+-q "$qos"} ${sendsize:+-s "$sendsize"}
  44. procd_close_instance
  45. }
  46. service_running() {
  47. . /lib/functions/network.sh
  48. sleep 1
  49. for path in /sys/class/net/nas*; do
  50. dev="${path##*/}"
  51. network_ready_device "$dev"
  52. done
  53. }
  54. service_triggers() {
  55. local script=$(readlink "$initscript")
  56. local name=$(basename ${script:-$initscript})
  57. procd_open_trigger
  58. procd_add_raw_trigger hotplug.atm 2000 /etc/init.d/$name reload
  59. procd_add_config_trigger "config.change" "$file" /etc/init.d/$name reload
  60. procd_close_trigger
  61. }
  62. start_service() {
  63. config_load network
  64. config_foreach start_daemon atm-bridge
  65. }