aboutsummaryrefslogtreecommitdiff
path: root/wpa_supplicant/README-P2P
diff options
context:
space:
mode:
Diffstat (limited to 'wpa_supplicant/README-P2P')
-rw-r--r--wpa_supplicant/README-P2P856
1 files changed, 0 insertions, 856 deletions
diff --git a/wpa_supplicant/README-P2P b/wpa_supplicant/README-P2P
deleted file mode 100644
index 55a60a296ad7..000000000000
--- a/wpa_supplicant/README-P2P
+++ /dev/null
@@ -1,856 +0,0 @@
-wpa_supplicant and Wi-Fi P2P
-============================
-
-This document describes how the Wi-Fi P2P implementation in
-wpa_supplicant can be configured and how an external component on the
-client (e.g., management GUI) is used to enable WPS enrollment and
-registrar registration.
-
-
-Introduction to Wi-Fi P2P
--------------------------
-
-TODO
-
-More information about Wi-Fi P2P is available from Wi-Fi Alliance:
-http://www.wi-fi.org/Wi-Fi_Direct.php
-
-
-wpa_supplicant implementation
------------------------------
-
-TODO
-
-
-wpa_supplicant configuration
-----------------------------
-
-Wi-Fi P2P is an optional component that needs to be enabled in the
-wpa_supplicant build configuration (.config). Here is an example
-configuration that includes Wi-Fi P2P support and Linux nl80211
--based driver interface:
-
-CONFIG_DRIVER_NL80211=y
-CONFIG_CTRL_IFACE=y
-CONFIG_P2P=y
-CONFIG_AP=y
-CONFIG_WPS=y
-
-
-In run-time configuration file (wpa_supplicant.conf), some parameters
-for P2P may be set. In order to make the devices easier to recognize,
-device_name and device_type should be specified. For example,
-something like this should be included:
-
-ctrl_interface=/var/run/wpa_supplicant
-device_name=My P2P Device
-device_type=1-0050F204-1
-
-
-wpa_cli
--------
-
-Actual Wi-Fi P2P operations are requested during runtime. These can be
-done for example using wpa_cli (which is described below) or a GUI
-like wpa_gui-qt4.
-
-
-wpa_cli starts in interactive mode if no command string is included on
-the command line. By default, it will select the first network interface
-that it can find (and that wpa_supplicant controls). If more than one
-interface is in use, it may be necessary to select one of the explicitly
-by adding -i argument on the command line (e.g., 'wpa_cli -i wlan1').
-
-Most of the P2P operations are done on the main interface (e.g., the
-interface that is automatically added when the driver is loaded, e.g.,
-wlan0). When using a separate virtual interface for group operations
-(e.g., wlan1), the control interface for that group interface may need
-to be used for some operations (mainly WPS activation in GO). This may
-change in the future so that all the needed operations could be done
-over the main control interface.
-
-Device Discovery
-
-p2p_find [timeout in seconds] [type=<social|progressive>] \
- [dev_id=<addr>] [dev_type=<device type>] \
- [delay=<search delay in ms>] [seek=<service name>] [freq=<MHz>]
-
-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
-channels, i.e., it skips the initial full scan. type=progressive is
-like the default behavior, but it will scan through all the channels
-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. When the type parameter is not included (i.e., full scan), the
-optional freq parameter can be used to override the first scan to use only
-the specified channel after which only social channels are scanned.
-
-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".
-
-
-With one or more seek arguments, the command sends Probe Request frames
-for a P2PS service. For example,
-p2p_find 5 dev_id=11:22:33:44:55:66 seek=alt.example.chat seek=alt.example.video
-
-Parameters description:
- Timeout - Optional ASCII base-10-encoded u16. If missing, request will not
- time out and must be canceled manually
- dev_id - Optional to request responses from a single known remote device
- Service Name - Mandatory UTF-8 string for ASP seeks
- Service name must match the remote service being advertised exactly
- (no prefix matching).
- Service name may be empty, in which case all ASP services will be
- returned, and may be filtered with p2p_serv_disc_req settings, and
- p2p_serv_asp_resp results.
- Multiple service names may be requested, but if it exceeds internal
- limit, it will automatically revert to requesting all ASP services.
-
-p2p_listen [timeout in seconds]
-
-Start Listen-only state (become discoverable without searching for
-other devices). Optional parameter can be used to specify the duration
-for the Listen operation in seconds. This command may not be of that
-much use during normal operations and is mainly designed for
-testing. It can also be used to keep the device discoverable without
-having to maintain a group.
-
-p2p_stop_find
-
-Stop ongoing P2P device discovery or other operation (connect, listen
-mode).
-
-p2p_flush
-
-Flush P2P peer table and state.
-
-Group Formation
-
-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
-the desired configuration method. For example, "p2p_prov_disc
-02:01:02:03:04:05 display" would request the peer to display a PIN for
-us and "p2p_prov_disc 02:01:02:03:04:05 keypad" would request the peer
-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. 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#|p2ps> [display|keypad|p2ps]
- [persistent|persistent=<network id>] [join|auth]
- [go_intent=<0..15>] [freq=<in MHz>] [ht40] [vht] [he] [provdisc] [auto]
- [ssid=<hexdump>]
-
-Start P2P group formation with a discovered P2P peer. This includes
-optional group owner negotiation, group interface setup, provisioning,
-and establishing data connection.
-
-The <pbc|pin|PIN#> parameter specifies the WPS provisioning
-method. "pbc" string starts pushbutton method, "pin" string start PIN
-method using an automatically generated PIN (which will be returned as
-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. 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
-Discovery Request message to the target GO before associating for WPS
-provisioning.
-
-"auth" indicates that the WPS parameters are authorized for the peer
-device without actually starting GO Negotiation (i.e., the peer is
-expected to initiate GO Negotiation). This is mainly for testing
-purposes.
-
-"go_intent" can be used to override the default GO Intent for this GO
-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.
-
-"auto" 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 operation rather than GO Negotiation.
-
-"ssid=<hexdump>" can be used to specify the Group SSID for join
-operations. This allows the P2P Client interface to filter scan results
-based on SSID to avoid selecting an incorrect BSS entry in case the same
-P2P Device or Interface address have been used in multiple groups
-recently.
-
-P2PS attribute changes to p2p_connect command:
-
-P2PS supports two WPS provisioning methods namely PIN method and P2PS default.
-The remaining parameters hold same role as in legacy P2P. In case of P2PS
-default config method "p2ps" keyword is added in p2p_connect command.
-
-For example:
-p2p_connect 02:0a:f5:85:11:00 12345670 p2ps persistent join
- (WPS Method = P2PS default)
-
-p2p_connect 02:0a:f5:85:11:00 45629034 keypad persistent
- (WPS Method = PIN)
-
-p2p_asp_provision <peer MAC address> <adv_id=peer adv id>
- <adv_mac=peer MAC address> [role=2|4|1] <session=session id>
- <session_mac=initiator mac address>
- [info='service info'] <method=Default|keypad|Display>
-
-This command starts provision discovery with the P2PS enabled peer device.
-
-For example,
-p2p_asp_provision 00:11:22:33:44:55 adv_id=4d6fc7 adv_mac=00:55:44:33:22:11 role=1 session=12ab34 session_mac=00:11:22:33:44:55 info='name=john' method=1000
-
-Parameter description:
- MAC address - Mandatory
- adv_id - Mandatory remote Advertising ID of service connection is being
- established for
- adv_mac - Mandatory MAC address that owns/registered the service
- role - Optional
- 2 (group client only) or 4 (group owner only)
- if not present (or 1) role is negotiated by the two peers.
- session - Mandatory Session ID of the first session to be established
- session_mac - Mandatory MAC address that owns/initiated the session
- method - Optional method to request for provisioning (1000 - P2PS Default,
- 100 - Keypad(PIN), 8 - Display(PIN))
- info - Optional UTF-8 string. Hint for service to indicate possible usage
- parameters - Escape single quote & backslash:
- with a backslash 0x27 == ' == \', and 0x5c == \ == \\
-
-p2p_asp_provision_resp <peer mac address> <adv_id= local adv id>
- <adv_mac=local MAC address> <role=1|2|4> <status=0>
- <session=session id> <session_mac=peer MAC address>
-
-This command sends a provision discovery response from responder side.
-
-For example,
-p2p_asp_provision_resp 00:55:44:33:22:11 adv_id=4d6fc7 adv_mac=00:55:44:33:22:11 role=1 status=0 session=12ab34 session_mac=00:11:22:33:44:55
-
-Parameters definition:
- MAC address - Mandatory
- adv_id - Mandatory local Advertising ID of service connection is being
- established for
- adv_mac - Mandatory MAC address that owns/registered the service
- role - Optional 2 (group client only) or 4 (group owner only)
- if not present (or 1) role is negotiated by the two peers.
- status - Mandatory Acceptance/Rejection code of Provisioning
- session - Mandatory Session ID of the first session to be established
- session_mac - Mandatory MAC address that owns/initiated the session
-
-p2p_group_add [persistent|persistent=<network id>] [freq=<freq in MHz>]
- [ht40] [vht] [he]
-
-Set up a P2P group owner manually (i.e., without group owner
-negotiation with a specific peer). This is also known as autonomous
-GO. Optional persistent=<network id> can be used to specify restart of
-a persistent group. Optional freq=<freq in MHz> can be used to force
-the GO to be started on a specific frequency. Special freq=2 or freq=5
-options can be used to request the best 2.4 GHz or 5 GHz band channel
-to be selected automatically.
-
-p2p_reject <peer device address>
-
-Reject connection attempt from a peer (specified with a device
-address). This is a mechanism to reject a pending GO Negotiation with
-a peer and request to automatically block any further connection or
-discovery of the peer.
-
-p2p_group_remove <group interface>
-
-Terminate a P2P group. If a new virtual network interface was used for
-the group, it will also be removed. The network interface name of the
-group interface is used as a parameter for this command.
-
-p2p_cancel
-
-Cancel an ongoing P2P group formation and joining-a-group related
-operation. This operation 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
-
-p2p_service_add asp <auto accept> <adv id> <status 0/1> <Config Methods>
- <Service name> [Service Information] [Response Info]
-
-This command can be used to search for a P2PS service which includes
-Play, Send, Display, and Print service. The parameters for this command
-are "asp" to identify the command as P2PS one, auto accept value,
-advertisement id which uniquely identifies the service requests, state
-of the service whether the service is available or not, config methods
-which can be either P2PS method or PIN method, service name followed by
-two optional parameters service information, and response info.
-
-For example,
-p2p_service_add asp 1 4d6fc7 0 1108 alt.example.chat svc_info='name=john' rsp_info='enter PIN 1234'
-
-Parameters definition:
- asp - Mandatory for ASP service registration
- auto accept - Mandatory ASCII hex-encoded boolean (0 == no auto-accept,
- 1 == auto-accept ANY role, 2 == auto-accept CLIENT role,
- 4 == auto-accept GO role)
- Advertisement ID - Mandatory non-zero ASCII hex-encoded u32
- (Must be unique/not yet exist in svc db)
- State - Mandatory ASCII hex-encoded u8 (0 -- Svc not available,
- 1 -- Svc available, 2-0xff Application defined)
- Config Methods - Mandatory ASCII hex-encoded u16 (bitmask of WSC config
- methods)
- Service Name - Mandatory UTF-8 string
- Service Information - Optional UTF-8 string
- Escape single quote & backslash with a backslash:
- 0x27 == ' == \', and 0x5c == \ == \\
- Session response information - Optional (used only if auto accept is TRUE)
- UTF-8 string
- Escape single quote & backslash with a backslash:
- 0x27 == ' == \', and 0x5c == \ == \\
-
-p2p_service_rep asp <auto accept> <adv id> <status 0/1> <Config Methods>
- <Service name> [Service Information] [Response Info]
-
-This command can be used to replace the existing service request
-attributes from the initiator side. The replacement is only allowed if
-the advertisement id issued in the command matches with any one entry in
-the list of existing SD queries. If advertisement id doesn't match the
-command returns a failure.
-
-For example,
-p2p_service_rep asp 1 4d6fc7 1 1108 alt.example.chat svc_info='name=john' rsp_info='enter PIN 1234'
-
-Parameters definition:
- asp - Mandatory for ASP service registration
- auto accept - Mandatory ASCII hex-encoded boolean (1 == true, 0 == false)
- Advertisement ID - Mandatory non-zero ASCII hex-encoded u32
- (Must already exist in svc db)
- State - Mandatory ASCII hex-encoded u8 (can be used to indicate svc
- available or not available for instance)
- Config Methods - Mandatory ASCII hex-encoded u16 (bitmask of WSC config
- methods)
- Service Name - Mandatory UTF-8 string (Must match existing string in svc db)
- Service Information - Optional UTF-8 string
- Escape single quote & backslash with a backslash:
- 0x27 == ' == \', and 0x5c == \ == \\
- Session response information - Optional (used only if auto accept is TRUE)
- UTF-8 string
- Escape single quote & backslash with a backslash:
- 0x27 == ' == \', and 0x5c == \ == \\
-
-p2p_serv_disc_req
-
-Schedule a P2P service discovery request. The parameters for this
-command are the device address of the peer device (or 00:00:00:00:00:00
-for wildcard query that is sent to every discovered P2P peer that
-supports service discovery) and P2P Service Query TLV(s) as hexdump. For
-example,
-
-p2p_serv_disc_req 00:00:00:00:00:00 02000001
-
-schedules a request for listing all available services of all service
-discovery protocols and requests this to be sent to all discovered
-peers (note: this can result in long response frames). The pending
-requests are sent during device discovery (see p2p_find).
-
-There can be multiple pending peer device specific queries (each will be
-sent in sequence whenever the peer is found).
-
-This command returns an identifier for the pending query (e.g.,
-"1f77628") that can be used to cancel the request. Directed requests
-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):
-
-p2p_serv_disc_req 00:00:00:00:00:00 upnp <version hex> <ST: from M-SEARCH>
-
-For example:
-
-p2p_serv_disc_req 00:00:00:00:00:00 upnp 10 urn:schemas-upnp-org:device:InternetGatewayDevice:1
-
-Additional examples for queries:
-
-# list of all Bonjour services
-p2p_serv_disc_req 00:00:00:00:00:00 02000101
-
-# list of all UPnP services
-p2p_serv_disc_req 00:00:00:00:00:00 02000201
-
-# list of all WS-Discovery services
-p2p_serv_disc_req 00:00:00:00:00:00 02000301
-
-# list of all Bonjour and UPnP services
-p2p_serv_disc_req 00:00:00:00:00:00 0200010102000202
-
-# Apple File Sharing over TCP
-p2p_serv_disc_req 00:00:00:00:00:00 130001010b5f6166706f766572746370c00c000c01
-
-# Bonjour SSTH (supported service type hash)
-p2p_serv_disc_req 00:00:00:00:00:00 05000101000000
-
-# UPnP examples
-p2p_serv_disc_req 00:00:00:00:00:00 upnp 10 ssdp:all
-p2p_serv_disc_req 00:00:00:00:00:00 upnp 10 upnp:rootdevice
-p2p_serv_disc_req 00:00:00:00:00:00 upnp 10 urn:schemas-upnp-org:service:ContentDirectory:2
-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_req <Unicast|Broadcast mac address> asp <Transaction ID>
- <Service Name> [Service Information]
-
-The command can be used for service discovery for P2PS enabled devices.
-
-For example: p2p_serv_disc_req 00:00:00:00:00:00 asp a1 alt.example 'john'
-
-Parameters definition:
- MAC address - Mandatory Existing
- asp - Mandatory for ASP queries
- Transaction ID - Mandatory non-zero ASCII hex-encoded u8 for GAS
- Service Name Prefix - Mandatory UTF-8 string.
- Will match from beginning of remote Service Name
- Service Information Substring - Optional UTF-8 string
- If Service Information Substring is not included, all services matching
- Service Name Prefix will be returned.
- If Service Information Substring is included, both the Substring and the
- Service Name Prefix must match for service to be returned.
- If remote service has no Service Information, all Substring searches
- will fail.
-
-p2p_serv_disc_cancel_req <query identifier>
-
-Cancel a pending P2P service discovery request. This command takes a
-single parameter: identifier for the pending query (the value returned
-by p2p_serv_disc_req, e.g., "p2p_serv_disc_cancel_req 1f77628".
-
-p2p_serv_disc_resp
-
-Reply to a service discovery query. This command takes following
-parameters: frequency in MHz, destination address, dialog token,
-response TLV(s). The first three parameters are copied from the
-request event. For example, "p2p_serv_disc_resp 2437 02:40:61:c2:f3:b7
-1 0300000101". This command is used only if external program is used
-to process the request (see p2p_serv_disc_external).
-
-p2p_service_update
-
-Indicate that local services have changed. This is used to increment
-the P2P service indicator value so that peers know when previously
-cached information may have changed. This is only needed when external
-service discovery processing is enabled since the commands to
-pre-configure services for internal processing will increment the
-indicator automatically.
-
-p2p_serv_disc_external <0|1>
-
-Configure external processing of P2P service requests: 0 (default) =
-no external processing of requests (i.e., internal code will process
-each request based on pre-configured services), 1 = external
-processing of requests (external program is responsible for replying
-to service discovery requests with p2p_serv_disc_resp). Please note
-that there is quite strict limit on how quickly the response needs to
-be transmitted, so use of the internal processing is strongly
-recommended.
-
-p2p_service_add bonjour <query hexdump> <RDATA hexdump>
-
-Add a local Bonjour service for internal SD query processing.
-
-Examples:
-
-# AFP Over TCP (PTR)
-p2p_service_add bonjour 0b5f6166706f766572746370c00c000c01 074578616d706c65c027
-# AFP Over TCP (TXT) (RDATA=null)
-p2p_service_add bonjour 076578616d706c650b5f6166706f766572746370c00c001001 00
-
-# IP Printing over TCP (PTR) (RDATA=MyPrinter._ipp._tcp.local.)
-p2p_service_add bonjour 045f697070c00c000c01 094d795072696e746572c027
-# IP Printing over TCP (TXT) (RDATA=txtvers=1,pdl=application/postscript)
-p2p_service_add bonjour 096d797072696e746572045f697070c00c001001 09747874766572733d311a70646c3d6170706c69636174696f6e2f706f7374736372797074
-
-# Supported Service Type Hash (SSTH)
-p2p_service_add bonjour 000000 <32-byte bitfield as hexdump>
-(note: see P2P spec Annex E.4 for information on how to construct the bitfield)
-
-p2p_service_del bonjour <query hexdump>
-
-Remove a local Bonjour service from internal SD query processing.
-
-p2p_service_add upnp <version hex> <service>
-
-Add a local UPnP service for internal SD query processing.
-
-Examples:
-
-p2p_service_add upnp 10 uuid:6859dede-8574-59ab-9332-123456789012::upnp:rootdevice
-p2p_service_add upnp 10 uuid:5566d33e-9774-09ab-4822-333456785632::upnp:rootdevice
-p2p_service_add upnp 10 uuid:1122de4e-8574-59ab-9322-333456789044::urn:schemas-upnp-org:service:ContentDirectory:2
-p2p_service_add upnp 10 uuid:5566d33e-9774-09ab-4822-333456785632::urn:schemas-upnp-org:service:ContentDirectory:2
-p2p_service_add upnp 10 uuid:6859dede-8574-59ab-9332-123456789012::urn:schemas-upnp-org:device:InternetGatewayDevice:1
-
-p2p_service_del upnp <version hex> <service>
-
-Remove a local UPnP service from internal SD query processing.
-
-p2p_service_del asp <adv id>
-
-Removes the local asp service from internal SD query list.
-For example: p2p_service_del asp 4d6fc7
-
-p2p_service_flush
-
-Remove all local services from internal SD query processing.
-
-Invitation
-
-p2p_invite [persistent=<network id>|group=<group ifname>] [peer=address]
- [go_dev_addr=address] [freq=<freq in MHz>] [ht40] [vht] [he]
- [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 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). 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
-
-(These are used on the group interface.)
-
-wps_pin <any|address> <PIN>
-
-Start WPS PIN method. This allows a single WPS Enrollee to connect to
-the AP/GO. This is used on the GO when a P2P client joins an existing
-group. The second parameter is the address of the Enrollee or a string
-"any" to allow any station to use the entered PIN (which will restrict
-the PIN for one-time-use). PIN is the Enrollee PIN read either from a
-label or display on the P2P Client/WPS Enrollee.
-
-wps_pbc
-
-Start WPS PBC method (i.e., push the button). This allows a single WPS
-Enrollee to connect to the AP/GO. This is used on the GO when a P2P
-client joins an existing group.
-
-p2p_get_passphrase
-
-Get the passphrase for a group (only available when acting as a GO).
-
-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
-interval values in microseconds. If the second pair is included, that
-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
-
-p2p_ext_listen [<period> <interval>]
-
-Configure Extended Listen Timing. If the parameters are omitted, this
-feature is disabled. If the parameters are included, Listen State will
-be entered every interval msec for at least period msec. Both values
-have acceptable range of 1-65535 (with interval obviously having to be
-larger than or equal to duration). If the P2P module is not idle at
-the time the Extended Listen Timing timeout occurs, the Listen State
-operation will be skipped.
-
-The configured values will also be advertised to other P2P Devices. The
-received values are available in the p2p_peer command output:
-
-ext_listen_period=100 ext_listen_interval=5000
-
-p2p_set <field> <value>
-
-Change dynamic P2P parameters
-
-p2p_set discoverability <0/1>
-
-Disable/enable advertisement of client discoverability. This is
-enabled by default and this parameter is mainly used to allow testing
-of device discoverability.
-
-p2p_set managed <0/1>
-
-Disable/enable managed P2P Device operations. This is disabled by
-default.
-
-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
-(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 securely 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
-operations. The format on these parameters is same as is used in
-wpa_supplicant.conf. Only the parameters listen here should be
-changed. Modifying other parameters may result in incorrect behavior
-since not all existing users of the parameters are updated.
-
-set uuid <UUID>
-
-Set WPS UUID (by default, this is generated based on the MAC address).
-
-set device_name <device name>
-
-Set WPS Device Name (also included in some P2P messages).
-
-set manufacturer <manufacturer>
-
-Set WPS Manufacturer.
-
-set model_name <model name>
-
-Set WPS Model Name.
-
-set model_number <model number>
-
-Set WPS Model Number.
-
-set serial_number <serial number>
-
-Set WPS Serial Number.
-
-set device_type <device type>
-
-Set WPS Device Type.
-
-set os_version <OS version>
-
-Set WPS OS Version.
-
-set config_methods <config methods>
-
-Set WPS Configuration Methods.
-
-set sec_device_type <device type>
-
-Add a new Secondary Device Type.
-
-set p2p_go_intent <GO intent>
-
-Set the default P2P GO Intent. Note: This value can be overridden in
-p2p_connect command and as such, there should be no need to change the
-default value here during normal operations.
-
-set p2p_ssid_postfix <P2P SSID postfix>
-
-Set P2P SSID postfix.
-
-set persistent_reconnect <0/1>
-
-Disable/enabled persistent reconnect for reinvocation of persistent
-groups. If enabled, invitations to reinvoke a persistent group will be
-accepted without separate authorization (e.g., user interaction).
-
-set country <two character country code>
-
-Set country code (this is included in some P2P messages).
-
-set p2p_search_delay <delay>
-
-Set p2p_search_delay which adds extra delay in milliseconds between
-concurrent search iterations to make p2p_find friendlier to concurrent
-operations by avoiding it from taking 100% of radio resources. The
-default value is 500 ms.
-
-Status
-
-p2p_peers [discovered]
-
-List P2P Device Addresses of all the P2P peers we know. The optional
-"discovered" parameter filters out the peers that we have not fully
-discovered, i.e., which we have only seen in a received Probe Request
-frame.
-
-p2p_peer <P2P Device Address>
-
-Fetch information about a known P2P peer.
-
-Group Status
-
-(These are used on the group interface.)
-
-status
-
-Show status information (connection state, role, use encryption
-parameters, IP address, etc.).
-
-sta
-
-Show information about an associated station (when acting in AP/GO role).
-
-all_sta
-
-Lists the currently associated stations.
-
-Configuration data
-
-list_networks
-
-Lists the configured networks, including stored information for
-persistent groups. The identifier in this list is used with
-p2p_group_add and p2p_invite to indicate which persistent group is to
-be reinvoked.
-
-remove_network <network id>
-
-Remove a network entry from configuration.
-
-
-P2PS Events/Responses:
-
-P2PS-PROV-START: This events gets triggered when provisioning is issued for
-either seeker or advertiser.
-
-For example,
-P2PS-PROV-START 00:55:44:33:22:11 adv_id=111 adv_mac=00:55:44:33:22:11 conncap=1 session=1234567 session_mac=00:11:22:33:44:55 info='xxxx'
-
-Parameters definition:
- MAC address - always
- adv_id - always ASCII hex-encoded u32
- adv_mac - always MAC address that owns/registered the service
- conncap - always mask of 0x01 (new), 0x02 (group client), 0x04 (group owner)
- bits
- session - always Session ID of the first session to be established
- session_mac - always MAC address that owns/initiated the session
- info - if available, UTF-8 string
- Escaped single quote & backslash with a backslash:
- \' == 0x27 == ', and \\ == 0x5c == \
-
-P2PS-PROV-DONE: When provisioning is completed then this event gets triggered.
-
-For example,
-P2PS-PROV-DONE 00:11:22:33:44:55 status=0 adv_id=111 adv_mac=00:55:44:33:22:11 conncap=1 session=1234567 session_mac=00:11:22:33:44:55 [dev_passwd_id=8 | go=p2p-wlan0-0 | join=11:22:33:44:55:66 | persist=0]
-
-Parameters definition:
- MAC address - always main device address of peer. May be different from MAC
- ultimately connected to.
- status - always ascii hex-encoded u8 (0 == success, 12 == deferred success)
- adv_id - always ascii hex-encoded u32
- adv_mac - always MAC address that owns/registered the service
- conncap - always One of: 1 (new), 2 (group client), 4 (group owner) bits
- session - always Session ID of the first session to be established
- session_mac - always MAC address that owns/initiated the session
- dev_passwd_id - only if conncap value == 1 (New GO negotiation)
- 8 - "p2ps" password must be passed in p2p_connect command
- 1 - "display" password must be passed in p2p_connect command
- 5 - "keypad" password must be passed in p2p_connect command
- join only - if conncap value == 2 (Client Only). Display password and "join"
- must be passed in p2p_connect and address must be the MAC specified
- go only - if conncap value == 4 (GO Only). Interface name must be set with a
- password
- persist - only if previous persistent group existed between peers and shall
- be re-used. Group is restarted by sending "p2p_group_add persistent=0"
- where value is taken from P2P-PROV-DONE
-
-Extended Events/Response
-
-P2P-DEVICE-FOUND 00:11:22:33:44:55 p2p_dev_addr=00:11:22:33:44:55 pri_dev_type=0-00000000-0 name='' config_methods=0x108 dev_capab=0x21 group_capab=0x0 adv_id=111 asp_svc=alt.example.chat
-
-Parameters definition:
- adv_id - if ASP ASCII hex-encoded u32. If it is reporting the
- "wildcard service", this value will be 0
- asp_svc - if ASP this is the service string. If it is reporting the
- "wildcard service", this value will be org.wi-fi.wfds
-
-
-wpa_cli action script
----------------------
-
-See examples/p2p-action.sh
-
-TODO: describe DHCP/DNS setup
-TODO: cross-connection