]> git.ipfire.org Git - thirdparty/hostap.git/commitdiff
P2P: Add optional op_class argument to P2P_SET listen_channel
authorLior David <qca_liord@qca.qualcomm.com>
Thu, 18 Feb 2016 13:20:03 +0000 (15:20 +0200)
committerJouni Malinen <j@w1.fi>
Mon, 7 Mar 2016 11:51:01 +0000 (13:51 +0200)
The existing implementation in p2p_ctrl_set used a hard-coded operating
class 81 which is only suitable for the social channels in the 2.4 GHz
band, and will not work for the social channel in the 60 GHz band.
Extend this by adding an optional op_class argument to P2P_SET
listen_channel. If not specified, use the default value of 81 to match
existing behavior.

Signed-off-by: Lior David <qca_liord@qca.qualcomm.com>
wpa_supplicant/README-P2P
wpa_supplicant/ctrl_iface.c

index b8cf2091ba0b3b168724a3d607053d0ca5cd4baf..23ac7fa056a463d257c969044241871885785309 100644 (file)
@@ -640,12 +640,17 @@ p2p_set managed <0/1>
 Disable/enable managed P2P Device operations. This is disabled by
 default.
 
-p2p_set listen_channel <1/6/11>
+p2p_set listen_channel <channel> [<op_class>]
 
 Set P2P Listen channel. This is mainly meant for testing purposes and
 changing the Listen channel during normal operations can result in
 protocol failures.
 
+When specifying a social channel on the 2.4 GHz band (1/6/11) there is
+no need to specify the operating class since it defaults to 81.  When
+specifying a social channel on the 60 GHz band (2), specify the 60 GHz
+operating class (180).
+
 p2p_set ssid_postfix <postfix>
 
 Set postfix string to be added to the automatically generated P2P SSID
index be0cf5c6801826b6c8cc8db386d6823f60ac5b1f..4e16987139d09cbb1c0e37025f04800853d3a36e 100644 (file)
@@ -5919,8 +5919,15 @@ static int p2p_ctrl_set(struct wpa_supplicant *wpa_s, char *cmd)
        }
 
        if (os_strcmp(cmd, "listen_channel") == 0) {
-               return p2p_set_listen_channel(wpa_s->global->p2p, 81,
-                                             atoi(param), 1);
+               char *pos;
+               u8 channel, op_class;
+
+               channel = atoi(param);
+               pos = os_strchr(param, ' ');
+               op_class = pos ? atoi(pos) : 81;
+
+               return p2p_set_listen_channel(wpa_s->global->p2p, op_class,
+                                             channel, 1);
        }
 
        if (os_strcmp(cmd, "ssid_postfix") == 0) {