]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
P2P: Prefer 20 MHz operating channels on 5 GHz band over 2.4 GHz
authorHardik Kantilal Patel <hkpatel@qti.qualcomm.com>
Sun, 15 Sep 2013 01:09:48 +0000 (18:09 -0700)
committerJouni Malinen <j@w1.fi>
Fri, 1 Nov 2013 14:36:34 +0000 (16:36 +0200)
When no other user preference is specified, opt to use an operating
channel that allows 5 GHz band to be used rather than 2.4 GHz.
Previously, this was already done in practice for HT40 channels since no
such channel is enabled for P2P on 2.4 GHz. This commit extends this to
apply 5 GHz preference for 20 MHz channels as well.

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

src/p2p/p2p_go_neg.c

index 8740ed5babfe0b1a0dd22d639833c4de8415ad83..17fb329382bf6ca7e3e28db6709e11918302995b 100644 (file)
@@ -416,6 +416,27 @@ void p2p_reselect_channel(struct p2p_data *p2p,
                }
        }
 
+       /* Prefer a 5 GHz channel */
+       for (i = 0; i < intersection->reg_classes; i++) {
+               struct p2p_reg_class *c = &intersection->reg_class[i];
+               if ((c->reg_class == 115 || c->reg_class == 124) &&
+                   c->channels) {
+                       unsigned int r;
+
+                       /*
+                        * Pick one of the available channels in the operating
+                        * class at random.
+                        */
+                       os_get_random((u8 *) &r, sizeof(r));
+                       r %= c->channels;
+                       p2p_dbg(p2p, "Pick possible 5 GHz channel (op_class %u channel %u) from intersection",
+                               c->reg_class, c->channel[r]);
+                       p2p->op_reg_class = c->reg_class;
+                       p2p->op_channel = c->channel[r];
+                       return;
+               }
+       }
+
        /*
         * Try to see if the original channel is in the intersection. If
         * so, no need to change anything, as it already contains some