80-wifi-mesh-macfilter 528 B

123456789101112131415161718192021222324252627
  1. #!/bin/sh
  2. local MODE
  3. local POLICY
  4. local IW_POLICY
  5. local MAC
  6. local MACLIST
  7. [[ "$ACTION" != ifup ]] && exit 0;
  8. . /lib/functions.sh
  9. config_load "wireless"
  10. config_get MODE $INTERFACE mode
  11. [[ $MODE != mesh ]] && exit 0;
  12. config_get POLICY $INTERFACE macfilter
  13. case $POLICY in
  14. deny) IW_POLICY="block";;
  15. allow) IW_POLICY="open"; iw dev $DEVICE set mesh_param mesh_auto_open_plinks=0;;
  16. *) exit 0;;
  17. esac
  18. config_get MACLIST $INTERFACE maclist
  19. for MAC in $MACLIST; do
  20. iw dev $DEVICE station set $MAC plink_action $IW_POLICY
  21. done