P2P: Add optional op_class argument to P2P_SET listen_channel

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>
This commit is contained in:
Lior David 2016-02-18 15:20:03 +02:00 committed by Jouni Malinen
parent e4a1469cec
commit dfe0745c9a
2 changed files with 15 additions and 3 deletions

View file

@ -640,12 +640,17 @@ p2p_set managed <0/1>
Disable/enable managed P2P Device operations. This is disabled by Disable/enable managed P2P Device operations. This is disabled by
default. 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 Set P2P Listen channel. This is mainly meant for testing purposes and
changing the Listen channel during normal operations can result in changing the Listen channel during normal operations can result in
protocol failures. 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> p2p_set ssid_postfix <postfix>
Set postfix string to be added to the automatically generated P2P SSID Set postfix string to be added to the automatically generated P2P SSID

View file

@ -5919,8 +5919,15 @@ static int p2p_ctrl_set(struct wpa_supplicant *wpa_s, char *cmd)
} }
if (os_strcmp(cmd, "listen_channel") == 0) { if (os_strcmp(cmd, "listen_channel") == 0) {
return p2p_set_listen_channel(wpa_s->global->p2p, 81, char *pos;
atoi(param), 1); 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) { if (os_strcmp(cmd, "ssid_postfix") == 0) {