forked from openwrt/openwrt
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
hostapd: configure inter-AP communication interface for 802.11r
In setups using VLAN bridge filtering, hostapd may need to communicate using a VLAN interface on top of the bridge, instead of using the bridge directly Signed-off-by: Felix Fietkau <nbd@nbd.name>
- Loading branch information
Showing
2 changed files
with
39 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
38 changes: 38 additions & 0 deletions
38
package/network/services/hostapd/patches/730-ft_iface.patch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,38 @@ | ||
--- a/hostapd/config_file.c | ||
+++ b/hostapd/config_file.c | ||
@@ -3031,6 +3031,8 @@ static int hostapd_config_fill(struct ho | ||
wpa_printf(MSG_INFO, | ||
"Line %d: Obsolete peerkey parameter ignored", line); | ||
#ifdef CONFIG_IEEE80211R_AP | ||
+ } else if (os_strcmp(buf, "ft_iface") == 0) { | ||
+ os_strlcpy(bss->ft_iface, pos, sizeof(bss->ft_iface)); | ||
} else if (os_strcmp(buf, "mobility_domain") == 0) { | ||
if (os_strlen(pos) != 2 * MOBILITY_DOMAIN_ID_LEN || | ||
hexstr2bin(pos, bss->mobility_domain, | ||
--- a/src/ap/ap_config.h | ||
+++ b/src/ap/ap_config.h | ||
@@ -277,6 +277,7 @@ struct airtime_sta_weight { | ||
struct hostapd_bss_config { | ||
char iface[IFNAMSIZ + 1]; | ||
char bridge[IFNAMSIZ + 1]; | ||
+ char ft_iface[IFNAMSIZ + 1]; | ||
char vlan_bridge[IFNAMSIZ + 1]; | ||
char wds_bridge[IFNAMSIZ + 1]; | ||
|
||
--- a/src/ap/wpa_auth_glue.c | ||
+++ b/src/ap/wpa_auth_glue.c | ||
@@ -1565,8 +1565,12 @@ int hostapd_setup_wpa(struct hostapd_dat | ||
wpa_key_mgmt_ft(hapd->conf->wpa_key_mgmt)) { | ||
const char *ft_iface; | ||
|
||
- ft_iface = hapd->conf->bridge[0] ? hapd->conf->bridge : | ||
- hapd->conf->iface; | ||
+ if (hapd->conf->ft_iface[0]) | ||
+ ft_iface = hapd->conf->ft_iface; | ||
+ else if (hapd->conf->bridge[0]) | ||
+ ft_iface = hapd->conf->bridge; | ||
+ else | ||
+ ft_iface = hapd->conf->iface; | ||
hapd->l2 = l2_packet_init(ft_iface, NULL, ETH_P_RRB, | ||
hostapd_rrb_receive, hapd, 1); | ||
if (!hapd->l2) { |