diff options
Diffstat (limited to 'package/network/services/hostapd/patches/017-mesh-use-right-interface-context-to-send-DFS-event-m.patch')
-rw-r--r-- | package/network/services/hostapd/patches/017-mesh-use-right-interface-context-to-send-DFS-event-m.patch | 107 |
1 files changed, 107 insertions, 0 deletions
diff --git a/package/network/services/hostapd/patches/017-mesh-use-right-interface-context-to-send-DFS-event-m.patch b/package/network/services/hostapd/patches/017-mesh-use-right-interface-context-to-send-DFS-event-m.patch new file mode 100644 index 0000000..a4073bb --- /dev/null +++ b/package/network/services/hostapd/patches/017-mesh-use-right-interface-context-to-send-DFS-event-m.patch @@ -0,0 +1,107 @@ +From d3201adfe7d2219217a07ef16ef365ad59c1a89b Mon Sep 17 00:00:00 2001 +From: Peter Oh <peter.oh@bowerswilkins.com> +Date: Tue, 29 May 2018 14:39:21 -0700 +Subject: [PATCH 17/18] mesh: use right interface context to send DFS event + messages + +use mesh interface context to send DFS event messages when +DFS events are on mesh interface. + +Signed-off-by: Peter Oh <peter.oh@bowerswilkins.com> +Signed-off-by: Masashi Honma <masashi.honma@gmail.com> +--- + src/ap/dfs.c | 27 +++++++++++++++++++-------- + 1 file changed, 19 insertions(+), 8 deletions(-) + +--- a/src/ap/dfs.c ++++ b/src/ap/dfs.c +@@ -637,6 +637,17 @@ static unsigned int dfs_get_cac_time(str + } + + ++static void *get_message_ctx(struct hostapd_iface *iface) ++{ ++#ifdef CONFIG_MESH ++ if (iface->mconf) ++ return iface->owner; ++#endif /* CONFIG_MESH */ ++ ++ return iface->bss[0]->msg_ctx; ++} ++ ++ + /* + * Main DFS handler + * 1 - continue channel/ap setup +@@ -719,7 +730,7 @@ int hostapd_handle_dfs(struct hostapd_if + /* Finally start CAC */ + hostapd_set_state(iface, HAPD_IFACE_DFS); + wpa_printf(MSG_DEBUG, "DFS start CAC on %d MHz", iface->freq); +- wpa_msg(iface->bss[0]->msg_ctx, MSG_INFO, DFS_EVENT_CAC_START ++ wpa_msg(get_message_ctx(iface), MSG_INFO, DFS_EVENT_CAC_START + "freq=%d chan=%d sec_chan=%d, width=%d, seg0=%d, seg1=%d, cac_time=%ds", + iface->freq, + iface->conf->channel, iface->conf->secondary_channel, +@@ -768,7 +779,7 @@ int hostapd_dfs_complete_cac(struct host + int ht_enabled, int chan_offset, int chan_width, + int cf1, int cf2) + { +- wpa_msg(iface->bss[0]->msg_ctx, MSG_INFO, DFS_EVENT_CAC_COMPLETED ++ wpa_msg(get_message_ctx(iface), MSG_INFO, DFS_EVENT_CAC_COMPLETED + "success=%d freq=%d ht_enabled=%d chan_offset=%d chan_width=%d cf1=%d cf2=%d", + success, freq, ht_enabled, chan_offset, chan_width, cf1, cf2); + +@@ -810,7 +821,7 @@ int hostapd_dfs_pre_cac_expired(struct h + int ht_enabled, int chan_offset, int chan_width, + int cf1, int cf2) + { +- wpa_msg(iface->bss[0]->msg_ctx, MSG_INFO, DFS_EVENT_PRE_CAC_EXPIRED ++ wpa_msg(get_message_ctx(iface), MSG_INFO, DFS_EVENT_PRE_CAC_EXPIRED + "freq=%d ht_enabled=%d chan_offset=%d chan_width=%d cf1=%d cf2=%d", + freq, ht_enabled, chan_offset, chan_width, cf1, cf2); + +@@ -848,7 +859,7 @@ static int hostapd_dfs_start_channel_swi + + wpa_printf(MSG_DEBUG, "DFS will switch to a new channel %d", + channel->chan); +- wpa_msg(iface->bss[0]->msg_ctx, MSG_INFO, DFS_EVENT_NEW_CHANNEL ++ wpa_msg(get_message_ctx(iface), MSG_INFO, DFS_EVENT_NEW_CHANNEL + "freq=%d chan=%d sec_chan=%d", channel->freq, + channel->chan, secondary_channel); + +@@ -935,7 +946,7 @@ static int hostapd_dfs_start_channel_swi + + wpa_printf(MSG_DEBUG, "DFS will switch to a new channel %d", + channel->chan); +- wpa_msg(iface->bss[0]->msg_ctx, MSG_INFO, DFS_EVENT_NEW_CHANNEL ++ wpa_msg(get_message_ctx(iface), MSG_INFO, DFS_EVENT_NEW_CHANNEL + "freq=%d chan=%d sec_chan=%d", channel->freq, + channel->chan, secondary_channel); + +@@ -997,7 +1008,7 @@ int hostapd_dfs_radar_detected(struct ho + { + int res; + +- wpa_msg(iface->bss[0]->msg_ctx, MSG_INFO, DFS_EVENT_RADAR_DETECTED ++ wpa_msg(get_message_ctx(iface), MSG_INFO, DFS_EVENT_RADAR_DETECTED + "freq=%d ht_enabled=%d chan_offset=%d chan_width=%d cf1=%d cf2=%d", + freq, ht_enabled, chan_offset, chan_width, cf1, cf2); + +@@ -1028,7 +1039,7 @@ int hostapd_dfs_nop_finished(struct host + int ht_enabled, int chan_offset, int chan_width, + int cf1, int cf2) + { +- wpa_msg(iface->bss[0]->msg_ctx, MSG_INFO, DFS_EVENT_NOP_FINISHED ++ wpa_msg(get_message_ctx(iface), MSG_INFO, DFS_EVENT_NOP_FINISHED + "freq=%d ht_enabled=%d chan_offset=%d chan_width=%d cf1=%d cf2=%d", + freq, ht_enabled, chan_offset, chan_width, cf1, cf2); + +@@ -1078,7 +1089,7 @@ int hostapd_dfs_start_cac(struct hostapd + int ht_enabled, int chan_offset, int chan_width, + int cf1, int cf2) + { +- wpa_msg(iface->bss[0]->msg_ctx, MSG_INFO, DFS_EVENT_CAC_START ++ wpa_msg(get_message_ctx(iface), MSG_INFO, DFS_EVENT_CAC_START + "freq=%d chan=%d chan_offset=%d width=%d seg0=%d " + "seg1=%d cac_time=%ds", + freq, (freq - 5000) / 5, chan_offset, chan_width, cf1, cf2, 60); |