]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
P2P: Prefer VHT channels for initial pick
authorJouni Malinen <jouni@qca.qualcomm.com>
Mon, 18 Nov 2013 15:58:14 +0000 (17:58 +0200)
committerJouni Malinen <j@w1.fi>
Mon, 18 Nov 2013 15:58:14 +0000 (17:58 +0200)
If there are no other preferences from local configuration or driver,
prefer a random VHT channel instead of falling back to the fixed
pre-configured channel or 5 GHz/HT40 channel preference.

Signed-hostap: Jouni Malinen <jouni@qca.qualcomm.com>

src/p2p/p2p.c

index 94d57b5ddccae2b4f907485d2a47ccddee89cdd4..ee25bbc4cf124ef82f32adc9d58bcc1935683bfa 100644 (file)
@@ -1182,6 +1182,7 @@ static void p2p_prepare_channel_best(struct p2p_data *p2p)
        u8 op_class, op_channel;
        const int op_classes_5ghz[] = { 115, 124, 0 };
        const int op_classes_ht40[] = { 116, 117, 126, 127, 0 };
+       const int op_classes_vht[] = { 128, 0 };
 
        p2p_dbg(p2p, "Prepare channel best");
 
@@ -1213,6 +1214,11 @@ static void p2p_prepare_channel_best(struct p2p_data *p2p)
                p2p_dbg(p2p, "Select first pref_chan entry as operating channel preference");
                p2p->op_reg_class = p2p->cfg->pref_chan[0].op_class;
                p2p->op_channel = p2p->cfg->pref_chan[0].chan;
+       } else if (p2p_channel_select(&p2p->cfg->channels, op_classes_vht,
+                                     &p2p->op_reg_class, &p2p->op_channel) ==
+                  0) {
+               p2p_dbg(p2p, "Select possible VHT channel (op_class %u channel %u) as operating channel preference",
+                       p2p->op_reg_class, p2p->op_channel);
        } else if (p2p_channel_select(&p2p->cfg->channels, op_classes_ht40,
                                      &p2p->op_reg_class, &p2p->op_channel) ==
                   0) {