Переглянути джерело

Move ffho-wifi-mesh-macfilter to master

This Package only makes sense for 802.11s-mesh
Karsten Böddeker 8 роки тому
батько
коміт
34633a5aeb

+ 40 - 0
ffho/ffho-wifi-mesh-macfilter/Makefile

@@ -0,0 +1,40 @@
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=ffho-wifi-mesh-macfilter
+PKG_VERSION:=1
+PKG_RELEASE:=1
+
+PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME)
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/ffho-wifi-mesh-macfilter
+  SECTION:=ffho
+  CATEGORY:=workarounds
+  TITLE:=WiFi - block/open 802.11s-mesh stations
+  DEPENDS:=+iw +uci
+endef
+
+define Package/ffho-wifi-mesh-macfilter/description
+	Setting plink_action [block|open], when 802.11s mesh-interface comes up.
+	Define filterpolicy in uci wireless.<wifi-iface>.macfilter=[disable|deny|allow].
+	Deny sets iw dev <device> station set <mac> plink_action block, and
+	allow sets iw dev <device> mesh_param mesh_auto_open_plink=0 and iw dev <device> station set <mac> plink_action open.
+	List MAC adresses (divided by spaces) in uci wireless.<wifi-iface>.maclist.
+endef
+
+define Build/Prepare
+	mkdir -p $(PKG_BUILD_DIR)
+endef
+
+define Build/Configure
+endef
+
+define Build/Compile
+endef
+
+define Package/ffho-wifi-mesh-macfilter/install
+	$(CP) ./files/* $(1)/
+endef
+
+$(eval $(call BuildPackage,ffho-wifi-mesh-macfilter))

+ 27 - 0
ffho/ffho-wifi-mesh-macfilter/files/etc/hotplug.d/iface/80-wifi-mesh-macfilter

@@ -0,0 +1,27 @@
+#!/bin/sh
+
+local MODE
+local POLICY
+local IW_POLICY
+local MAC
+local MACLIST
+
+[[ "$ACTION" != ifup ]] && exit 0;
+
+. /lib/functions.sh
+config_load "wireless"
+
+config_get MODE $INTERFACE mode
+[[ $MODE != mesh ]] && exit 0;
+
+config_get POLICY $INTERFACE macfilter
+case $POLICY in
+	deny)	IW_POLICY="block";;
+	allow)	IW_POLICY="open"; iw dev $DEVICE set mesh_param mesh_auto_open_plinks=0;;
+	*)		exit 0;;
+esac
+
+config_get MACLIST $INTERFACE maclist
+for MAC in $MACLIST; do
+	iw dev $DEVICE station set $MAC plink_action $IW_POLICY
+done