diff options
Diffstat (limited to 'wpa_supplicant/README-P2P')
-rw-r--r-- | wpa_supplicant/README-P2P | 105 |
1 files changed, 94 insertions, 11 deletions
diff --git a/wpa_supplicant/README-P2P b/wpa_supplicant/README-P2P index db6e4ae..7354bbf 100644 --- a/wpa_supplicant/README-P2P +++ b/wpa_supplicant/README-P2P @@ -71,7 +71,9 @@ over the main control interface. Device Discovery -p2p_find [timeout in seconds] [type=<social|progressive>] +p2p_find [timeout in seconds] [type=<social|progressive>] \ + [dev_id=<addr>] [dev_type=<device type>] \ + [delay=<search delay in ms>] The default behavior is to run a single full scan in the beginning and then scan only social channels. type=social will scan only social @@ -81,6 +83,15 @@ progressively one channel at the time in the Search state rounds. This will help in finding new groups or groups missed during the initial full scan. +The optional dev_id option can be used to specify a single P2P peer to +search for. The optional delay parameter can be used to request an extra +delay to be used between search iterations (e.g., to free up radio +resources for concurrent operations). + +The optional dev_type option can be used to specify a single device type +(primary or secondary) to search for, e.g., +"p2p_find dev_type=1-0050F204-1". + p2p_listen [timeout in seconds] Start Listen-only state (become discoverable without searching for @@ -101,7 +112,7 @@ Flush P2P peer table and state. Group Formation -p2p_prov_disc <peer device address> <display|keypad|pbc> [join] +p2p_prov_disc <peer device address> <display|keypad|pbc> [join|auto] Send P2P provision discovery request to the specified peer. The parameters for this command are the P2P device address of the peer and @@ -112,10 +123,14 @@ to enter a PIN that we display. The optional "join" parameter can be used to indicate that this command is requesting an already running GO to prepare for a new client. This is -mainly used with "display" to request it to display a PIN. +mainly used with "display" to request it to display a PIN. The "auto" +parameter can be used to request wpa_supplicant to automatically figure +out whether the peer device is operating as a GO and if so, use +join-a-group style PD instead of GO Negotiation style PD. p2p_connect <peer device address> <pbc|pin|PIN#> [display|keypad] - [persistent] [join|auth] [go_intent=<0..15>] [freq=<in MHz>] + [persistent|persistent=<network id>] [join|auth] + [go_intent=<0..15>] [freq=<in MHz>] [ht40] [vht] [provdisc] Start P2P group formation with a discovered P2P peer. This includes optional group owner negotiation, group interface setup, provisioning, @@ -128,7 +143,12 @@ the command return code), PIN# means that a pre-selected PIN can be used (e.g., 12345670). [display|keypad] is used with PIN method to specify which PIN is used (display=dynamically generated random PIN from local display, keypad=PIN entered from peer display). "persistent" -parameter can be used to request a persistent group to be formed. +parameter can be used to request a persistent group to be formed. The +"persistent=<network id>" alternative can be used to pre-populate +SSID/passphrase configuration based on a previously used persistent +group where this device was the GO. The previously used parameters will +then be used if the local end becomes the GO in GO Negotiation (which +can be forced with go_intent=15). "join" indicates that this is a command to join an existing group as a client. It skips the GO Negotiation part. This will send a Provision @@ -146,7 +166,13 @@ Negotiation. "freq" can be used to set a forced operating channel (e.g., freq=2412 to select 2.4 GHz channel 1). +"provdisc" can be used to request a Provision Discovery exchange to be +used prior to starting GO Negotiation as a workaround with some deployed +P2P implementations that require this to allow the user to accept the +connection. + p2p_group_add [persistent|persistent=<network id>] [freq=<freq in MHz>] + [ht40] [vht] Set up a P2P group owner manually (i.e., without group owner negotiation with a specific peer). This is also known as autonomous @@ -171,7 +197,21 @@ group interface is used as a parameter for this command. p2p_cancel -Cancel an ongoing P2P group formation related operation. +Cancel an ongoing P2P group formation and joining-a-group related +operation. This operations unauthorizes the specific peer device (if any +had been authorized to start group formation), stops P2P find (if in +progress), stops pending operations for join-a-group, and removes the +P2P group interface (if one was used) that is in the WPS provisioning +step. If the WPS provisioning step has been completed, the group is not +terminated. + +p2p_remove_client <peer's P2P Device Address|iface=<interface address>> + +This command can be used to remove the specified client from all groups +(operating and persistent) from the local GO. Note that the peer device +can rejoin the group if it is in possession of a valid key. See p2p_set +per_sta_psk command below for more details on how the peer can be +removed securely. Service Discovery @@ -199,6 +239,19 @@ This command returns an identifier for the pending query (e.g., will be automatically removed when the specified peer has replied to it. +Service Query TLV has following format: +Length (2 octets, little endian) - length of following data +Service Protocol Type (1 octet) - see the table below +Service Transaction ID (1 octet) - nonzero identifier for the TLV +Query Data (Length - 2 octets of data) - service protocol specific data + +Service Protocol Types: +0 = All service protocols +1 = Bonjour +2 = UPnP +3 = WS-Discovery +4 = Wi-Fi Display + For UPnP, an alternative command format can be used to specify a single query TLV (i.e., a service discovery for a specific UPnP service): @@ -236,6 +289,14 @@ p2p_serv_disc_req 00:00:00:00:00:00 upnp 10 urn:schemas-upnp-org:service:Content p2p_serv_disc_req 00:00:00:00:00:00 upnp 10 uuid:6859dede-8574-59ab-9332-123456789012 p2p_serv_disc_req 00:00:00:00:00:00 upnp 10 urn:schemas-upnp-org:device:InternetGatewayDevice:1 +# Wi-Fi Display examples +# format: wifi-display <list of roles> <list of subelements> +p2p_serv_disc_req 00:00:00:00:00:00 wifi-display [source] 2,3,4,5 +p2p_serv_disc_req 02:01:02:03:04:05 wifi-display [pri-sink] 3 +p2p_serv_disc_req 00:00:00:00:00:00 wifi-display [sec-source] 2 +p2p_serv_disc_req 00:00:00:00:00:00 wifi-display [source+sink] 2,3,4,5 +p2p_serv_disc_req 00:00:00:00:00:00 wifi-display [source][pri-sink] 2,3,4,5 + p2p_serv_disc_cancel_req <query identifier> Cancel a pending P2P service discovery request. This command takes a @@ -318,15 +379,21 @@ Remove all local services from internal SD query processing. Invitation p2p_invite [persistent=<network id>|group=<group ifname>] [peer=address] - [go_dev_addr=address] + [go_dev_addr=address] [freq=<freq in MHz>] [ht40] [vht] + [pref=<MHz>] Invite a peer to join a group (e.g., group=wlan1) or to reinvoke a persistent group (e.g., persistent=4). If the peer device is the GO of -the persisten group, the peer parameter is not needed. Otherwise it is +the persistent group, the peer parameter is not needed. Otherwise it is used to specify which device to invite. go_dev_addr parameter can be used to override the GO device address for Invitation Request should it be not known for some reason (this should not be needed in most -cases). +cases). When reinvoking a persistent group, the GO device can specify +the frequency for the group with the freq parameter. When reinvoking a +persistent group, the P2P client device can use freq parameter to force +a specific operating channel (or invitation failure if GO rejects that) +or pref parameter to request a specific channel (while allowing GO to +select to use another channel, if needed). Group Operations @@ -356,9 +423,11 @@ p2p_presence_req [<duration> <interval>] [<duration> <interval>] Send a P2P Presence Request to the GO (this is only available when acting as a P2P client). If no duration/interval pairs are given, the request indicates that this client has no special needs for GO -presence. the first parameter pair gives the preferred duration and +presence. The first parameter pair gives the preferred duration and interval values in microseconds. If the second pair is included, that -indicates which value would be acceptable. +indicates which value would be acceptable. This command returns OK +immediately and the response from the GO is indicated in a +P2P-PRESENCE-RESPONSE event message. Parameters @@ -404,6 +473,20 @@ Set postfix string to be added to the automatically generated P2P SSID (DIRECT-<two random characters>). For example, postfix of "-testing" could result in the SSID becoming DIRECT-ab-testing. +p2p_set per_sta_psk <0/1> + +Disabled(default)/enables use of per-client PSK in the P2P groups. This +can be used to request GO to assign a unique PSK for each client during +WPS provisioning. When enabled, this allow clients to be removed from +the group securily with p2p_remove_client command since that client's +PSK is removed at the same time to prevent it from connecting back using +the old PSK. When per-client PSK is not used, the client can still be +disconnected, but it will be able to re-join the group since the PSK it +learned previously is still valid. It should be noted that the default +passphrase on the GO that is normally used to allow legacy stations to +connect through manual configuration does not change here, so if that is +shared, devices with knowledge of that passphrase can still connect. + set <field> <value> Set global configuration parameters which may also affect P2P |