This patch brings full dynamic vlan support to netifd that existed in 
hostapd.sh in Attitude Adjustment.

This email was originally sent to n...@openwrt.org, but the CC to the devel 
list was rejected, this email is another attempt at a CC.

Signed-off-by: Joseph CG Walker <j...@chubbypenguin.net>

diff --git a/package/network/services/hostapd/Makefile 
b/package/network/services/hostapd/Makefile
index 7070afd..65e9e78 100644
--- a/package/network/services/hostapd/Makefile
+++ b/package/network/services/hostapd/Makefile
@@ -320,9 +320,16 @@ define Install/supplicant
        $(INSTALL_DIR) $(1)/usr/sbin
 endef
 
+define Package/hostpad-common/conffiles
+/etc/config/hostpad.vlan
+endef
+
+
 define Package/hostapd-common/install
        $(INSTALL_DIR) $(1)/lib/netifd
        $(INSTALL_DATA) ./files/netifd.sh $(1)/lib/netifd/hostapd.sh
+       $(INSTALL_DIR) $(1)/etc/config
+       $(INSTALL_CONF) ./files/hostapd.vlan $(1)/etc/config/hostapd.vlan
 endef
 
 define Package/hostapd-common-old/install
diff --git a/package/network/services/hostapd/files/hostapd.vlan 
b/package/network/services/hostapd/files/hostapd.vlan
new file mode 100644
index 0000000..facd56b
--- /dev/null
+++ b/package/network/services/hostapd/files/hostapd.vlan
@@ -0,0 +1 @@
+*      wlan0.#
diff --git a/package/network/services/hostapd/files/netifd.sh 
b/package/network/services/hostapd/files/netifd.sh
index f06b2ac..e1d8978 100644
--- a/package/network/services/hostapd/files/netifd.sh
+++ b/package/network/services/hostapd/files/netifd.sh
@@ -118,6 +118,9 @@ hostapd_common_add_bss_config() {
        config_add_string iapp_interface
        config_add_string eap_type ca_cert client_cert identity auth priv_key 
priv_key_pwd
 
+       config_add_int dynamic_vlan vlan_naming
+       config_add_string vlan_tagged_interface vlan_file
+
        config_add_string 'key1:wepkey' 'key2:wepkey' 'key3:wepkey' 
'key4:wepkey' 'password:wpakey'
 
        config_add_boolean wps_pushbutton wps_label ext_registrar
@@ -204,7 +207,8 @@ hostapd_set_bss_options() {
                                acct_server acct_secret acct_port \
                                dae_client dae_secret dae_port \
                                nasid rsn_preauth iapp_interface \
-                               eap_reauth_period
+                               eap_reauth_period dynamic_vlan \
+                               vlan_file vlan_tagged_interface
 
                        # legacy compatibility
                        [ -n "$auth_server" ] || json_get_var auth_server server
@@ -215,6 +219,9 @@ hostapd_set_bss_options() {
                        set_default acct_port 1813
                        set_default dae_port 3799
 
+                       set_default vlan_file "/etc/config/hostapd.vlan"
+                       set_default vlan_naming "1"
+
                        append bss_conf "auth_server_addr=$auth_server" "$N"
                        append bss_conf "auth_server_port=$auth_port" "$N"
                        append bss_conf 
"auth_server_shared_secret=$auth_secret" "$N"
@@ -237,6 +244,15 @@ hostapd_set_bss_options() {
                        append bss_conf "eapol_key_index_workaround=1" "$N"
                        append bss_conf "ieee8021x=1" "$N"
                        append bss_conf "wpa_key_mgmt=WPA-EAP" "$N"
+
+                       [ -n "$dynamic_vlan" ] && {
+                               append bss_conf "dynamic_vlan=$dynamic_vlan" 
"$N"
+                               append bss_conf "vlan_file=$vlan_file" "$N"
+                               append bss_conf "vlan_naming=$vlan_naming" "$N"
+                               [ -n "$vlan_tagged_interface" ] && \
+                                       append bss_conf 
"vlan_tagged_interface=$vlan_tagged_interface" "$N"
+                               
+                       }
                ;;
                wep)
                        local wep_keyidx=0
_______________________________________________
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel

Reply via email to