diff options
author | Shuibing Dai <shuibing@google.com> | 2023-05-09 06:42:02 +0000 |
---|---|---|
committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | 2023-05-09 06:42:02 +0000 |
commit | dfa517168eff2c439e838294fe482f5fc3a43c1f (patch) | |
tree | fa40e45c1aa69a86ac095bd7a3ef69f3d47ce6eb | |
parent | 3b887efee513bafc72ef0095b69902f764ee0688 (diff) | |
parent | e2fad41387f69ed12ad120a39b604fa1d8d07bf5 (diff) | |
download | wpa_supplicant_8-dfa517168eff2c439e838294fe482f5fc3a43c1f.tar.gz |
Fix p2p on DFS channel issue: p2p_dfs_chan_enable is NOT enabled on p2p interface am: e2fad41387
Original change: https://googleplex-android-review.googlesource.com/c/platform/external/wpa_supplicant_8/+/23063502
Change-Id: Ic503f175ecdc35d7ec0efca0760018164b23e353
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
-rw-r--r-- | src/p2p/p2p.c | 8 | ||||
-rw-r--r-- | src/p2p/p2p.h | 6 | ||||
-rw-r--r-- | wpa_supplicant/p2p_supplicant.c | 3 |
3 files changed, 16 insertions, 1 deletions
diff --git a/src/p2p/p2p.c b/src/p2p/p2p.c index 5d50726d..a1fe1213 100644 --- a/src/p2p/p2p.c +++ b/src/p2p/p2p.c @@ -2960,6 +2960,14 @@ bool is_p2p_6ghz_disabled(struct p2p_data *p2p) } +bool is_p2p_dfs_chan_enabled(struct p2p_data *p2p) +{ + if (p2p) + return p2p->cfg->p2p_dfs_chan_enable; + return false; +} + + struct p2p_data * p2p_init(const struct p2p_config *cfg) { struct p2p_data *p2p; diff --git a/src/p2p/p2p.h b/src/p2p/p2p.h index 27bdac3b..77841285 100644 --- a/src/p2p/p2p.h +++ b/src/p2p/p2p.h @@ -508,6 +508,11 @@ struct p2p_config { bool p2p_6ghz_disable; /** + * p2p_dfs_chan_enable - Enable p2p Go to operate on dfs channel + */ + bool p2p_dfs_chan_enable; + + /** * pri_dev_type - Primary Device Type (see WPS) */ u8 pri_dev_type[8]; @@ -2114,6 +2119,7 @@ void p2p_update_channel_list(struct p2p_data *p2p, const struct p2p_channels *cli_chan); bool is_p2p_6ghz_disabled(struct p2p_data *p2p); +bool is_p2p_dfs_chan_enabled(struct p2p_data *p2p); /** * p2p_set_best_channels - Update best channel information diff --git a/wpa_supplicant/p2p_supplicant.c b/wpa_supplicant/p2p_supplicant.c index 5cf67300..09c11e06 100644 --- a/wpa_supplicant/p2p_supplicant.c +++ b/wpa_supplicant/p2p_supplicant.c @@ -3993,7 +3993,7 @@ static int wpas_p2p_setup_channels(struct wpa_supplicant *wpa_s, const struct oper_class_map *o = &global_op_class[op]; unsigned int ch; struct p2p_reg_class *reg = NULL, *cli_reg = NULL; - bool check_dfs_supported = (wpa_s->conf->p2p_dfs_chan_enable + bool check_dfs_supported = (is_p2p_dfs_chan_enabled(wpa_s->global->p2p) && is_dfs_global_op_class(o->op_class)); if ((!check_dfs_supported && o->p2p == NO_P2P_SUPP) || @@ -4971,6 +4971,7 @@ int wpas_p2p_init(struct wpa_global *global, struct wpa_supplicant *wpa_s) p2p.p2ps_group_capability = p2ps_group_capability; p2p.get_pref_freq_list = wpas_p2p_get_pref_freq_list; p2p.p2p_6ghz_disable = wpa_s->conf->p2p_6ghz_disable; + p2p.p2p_dfs_chan_enable = wpa_s->conf->p2p_dfs_chan_enable; os_memcpy(wpa_s->global->p2p_dev_addr, wpa_s->own_addr, ETH_ALEN); os_memcpy(p2p.dev_addr, wpa_s->global->p2p_dev_addr, ETH_ALEN); |