>>This is based on the patches submitted by Matthew Bowman:
>>http://patchwork.openwrt.org/patch/1258/
>>http://patchwork.openwrt.org/patch/1261/
>>
>>More recently hostapd has added support for setting the VLAN naming
>>scheme (eth0.11 vs. vlan11), in commit
>>a00237ceb8644fc270efd9fc0d0f8d0465db8410 upstream. So the updated patch
>>(620-dynamic_vlan-correct_bridge_interface_names.patch) only corrects
>>the bridge interface names (br-vlan11 vs. brvlan11).
>>
>>Rather than shipping a default hostapd VLAN file, one is created at
>>runtime based on the wi-fi ifname.
>>
>>Should this be accepted (hopefully!), I suppose the additional UCI
>>options would need to be documented; on the wiki? where else?
>>
>>
>>Signed-off-by: Zenon Mousmoulas<[email protected]>
>>---
>> package/network/services/hostapd/files/hostapd.sh | 17
>>+++++++++++++++++
>> ...namic_vlan-correct_bridge_interface_names.patch | 20
>>++++++++++++++++++++
>> 2 files changed, 37 insertions(+), 0 deletions(-)
>> create mode 100644
>>package/network/services/hostapd/patches/620-dynamic_vlan-correct_bridge_interface_names.patch
>>
>>diff --git a/package/network/services/hostapd/files/hostapd.sh
>>b/package/network/services/hostapd/files/hostapd.sh
>>index d60c26f..a462fe2 100644
>>--- a/package/network/services/hostapd/files/hostapd.sh
>>+++ b/package/network/services/hostapd/files/hostapd.sh
>>@@ -2,6 +2,7 @@ hostapd_set_bss_options() {
>> local var="$1"
>> local vif="$2"
>> local enc wep_rekey wpa_group_rekey wpa_pair_rekey
>>wpa_master_rekey wps_possible
>>+ local vlan_enable ifname vlan_file vlan_interface vlan_naming
>> config_get enc "$vif" encryption
>> config_get wep_rekey "$vif" wep_rekey # 300
>>@@ -112,6 +113,22 @@ hostapd_set_bss_options() {
>> [ -n "$wpa_group_rekey" ] && append "$var"
>>"wpa_group_rekey=$wpa_group_rekey" "$N"
>> [ -n "$wpa_pair_rekey" ] && append "$var"
>>"wpa_ptk_rekey=$wpa_pair_rekey" "$N"
>> [ -n "$wpa_master_rekey" ] && append "$var"
>>"wpa_gmk_rekey=$wpa_master_rekey" "$N"
>>+ config_get vlan_enable "$vif" vlan_enable 0
>>+ case "$vlan_enable" in
>>+ 1|2)
>>+ append "$var" "dynamic_vlan=$vlan_enable" "$N"
>>+ config_get ifname "$vif" ifname
>>+ config_get vlan_file "$vif" vlan_file
>>"/var/run/hostapd.${ifname}.vlan"
>>+ [ "$vlan_file" =
>>"/var/run/hostapd.${ifname}.vlan" ] && cat > "$vlan_file" <<-EOF
>>+ * ${ifname}.#
>>+ EOF
>>+ append "$var" "vlan_file=$vlan_file" "$N"
>>+ config_get vlan_interface "$vif" vlan_interface
>>eth0
>>+ append "$var"
>>"vlan_tagged_interface=$vlan_interface" "$N"
>>+ config_get vlan_naming "$vif" vlan_naming 1
>>+ append "$var" "vlan_naming=$vlan_naming" "$N"
>>+ ;;
>>+ esac
>> ;;
>> *wep*)
>> config_get key "$vif" key
>>diff --git
>>a/package/network/services/hostapd/patches/620-dynamic_vlan-correct_bridge_interface_names.patch
>>b/package/network/services/hostapd/patches/620-dynamic_vlan-correct_bridge_interface_names.patch
>>
>>new file mode 100644
>>index 0000000..ff87d3d
>>--- /dev/null
>>+++
>>b/package/network/services/hostapd/patches/620-dynamic_vlan-correct_bridge_interface_names.patch
>>@@ -0,0 +1,20 @@
>>+--- a/src/ap/vlan_init.c 2012-10-14 22:30:08.000000000 +0300
>>++++ b/src/ap/vlan_init.c 2012-10-14 23:51:12.000000000 +0300
>>+@@ -493,7 +493,7 @@
>>+ while (vlan) {
>>+ if (os_strcmp(ifname, vlan->ifname) == 0) {
>>+
>>+- os_snprintf(br_name, sizeof(br_name), "brvlan%d",
>>++ os_snprintf(br_name, sizeof(br_name), "br-vlan%d",
>>+ vlan->vlan_id);
>>+
>>+ if (!br_addbr(br_name))
>>+@@ -550,7 +550,7 @@
>>+
>>+ while (vlan) {
>>+ if (os_strcmp(ifname, vlan->ifname) == 0) {
>>+- os_snprintf(br_name, sizeof(br_name), "brvlan%d",
>>++ os_snprintf(br_name, sizeof(br_name), "br-vlan%d",
>>+ vlan->vlan_id);
>>+
>>+ if (vlan->clean & DVLAN_CLEAN_WLAN_PORT)