xref: /aosp_15_r20/external/wpa_supplicant_8/wpa_supplicant/README-P2P (revision 03f9172ca588f91df233974f4258bab95191f931)
1*03f9172cSAndroid Build Coastguard Workerwpa_supplicant and Wi-Fi P2P
2*03f9172cSAndroid Build Coastguard Worker============================
3*03f9172cSAndroid Build Coastguard Worker
4*03f9172cSAndroid Build Coastguard WorkerThis document describes how the Wi-Fi P2P implementation in
5*03f9172cSAndroid Build Coastguard Workerwpa_supplicant can be configured and how an external component on the
6*03f9172cSAndroid Build Coastguard Workerclient (e.g., management GUI) is used to enable WPS enrollment and
7*03f9172cSAndroid Build Coastguard Workerregistrar registration.
8*03f9172cSAndroid Build Coastguard Worker
9*03f9172cSAndroid Build Coastguard Worker
10*03f9172cSAndroid Build Coastguard WorkerIntroduction to Wi-Fi P2P
11*03f9172cSAndroid Build Coastguard Worker-------------------------
12*03f9172cSAndroid Build Coastguard Worker
13*03f9172cSAndroid Build Coastguard WorkerTODO
14*03f9172cSAndroid Build Coastguard Worker
15*03f9172cSAndroid Build Coastguard WorkerMore information about Wi-Fi P2P is available from Wi-Fi Alliance:
16*03f9172cSAndroid Build Coastguard Workerhttp://www.wi-fi.org/Wi-Fi_Direct.php
17*03f9172cSAndroid Build Coastguard Worker
18*03f9172cSAndroid Build Coastguard Worker
19*03f9172cSAndroid Build Coastguard Workerwpa_supplicant implementation
20*03f9172cSAndroid Build Coastguard Worker-----------------------------
21*03f9172cSAndroid Build Coastguard Worker
22*03f9172cSAndroid Build Coastguard WorkerTODO
23*03f9172cSAndroid Build Coastguard Worker
24*03f9172cSAndroid Build Coastguard Worker
25*03f9172cSAndroid Build Coastguard Workerwpa_supplicant configuration
26*03f9172cSAndroid Build Coastguard Worker----------------------------
27*03f9172cSAndroid Build Coastguard Worker
28*03f9172cSAndroid Build Coastguard WorkerWi-Fi P2P is an optional component that needs to be enabled in the
29*03f9172cSAndroid Build Coastguard Workerwpa_supplicant build configuration (.config). Here is an example
30*03f9172cSAndroid Build Coastguard Workerconfiguration that includes Wi-Fi P2P support and Linux nl80211
31*03f9172cSAndroid Build Coastguard Worker-based driver interface:
32*03f9172cSAndroid Build Coastguard Worker
33*03f9172cSAndroid Build Coastguard WorkerCONFIG_DRIVER_NL80211=y
34*03f9172cSAndroid Build Coastguard WorkerCONFIG_CTRL_IFACE=y
35*03f9172cSAndroid Build Coastguard WorkerCONFIG_P2P=y
36*03f9172cSAndroid Build Coastguard WorkerCONFIG_AP=y
37*03f9172cSAndroid Build Coastguard WorkerCONFIG_WPS=y
38*03f9172cSAndroid Build Coastguard Worker
39*03f9172cSAndroid Build Coastguard Worker
40*03f9172cSAndroid Build Coastguard WorkerIn run-time configuration file (wpa_supplicant.conf), some parameters
41*03f9172cSAndroid Build Coastguard Workerfor P2P may be set. In order to make the devices easier to recognize,
42*03f9172cSAndroid Build Coastguard Workerdevice_name and device_type should be specified. For example,
43*03f9172cSAndroid Build Coastguard Workersomething like this should be included:
44*03f9172cSAndroid Build Coastguard Worker
45*03f9172cSAndroid Build Coastguard Workerctrl_interface=/var/run/wpa_supplicant
46*03f9172cSAndroid Build Coastguard Workerdevice_name=My P2P Device
47*03f9172cSAndroid Build Coastguard Workerdevice_type=1-0050F204-1
48*03f9172cSAndroid Build Coastguard Worker
49*03f9172cSAndroid Build Coastguard Worker
50*03f9172cSAndroid Build Coastguard Workerwpa_cli
51*03f9172cSAndroid Build Coastguard Worker-------
52*03f9172cSAndroid Build Coastguard Worker
53*03f9172cSAndroid Build Coastguard WorkerActual Wi-Fi P2P operations are requested during runtime. These can be
54*03f9172cSAndroid Build Coastguard Workerdone for example using wpa_cli (which is described below) or a GUI
55*03f9172cSAndroid Build Coastguard Workerlike wpa_gui-qt4.
56*03f9172cSAndroid Build Coastguard Worker
57*03f9172cSAndroid Build Coastguard Worker
58*03f9172cSAndroid Build Coastguard Workerwpa_cli starts in interactive mode if no command string is included on
59*03f9172cSAndroid Build Coastguard Workerthe command line. By default, it will select the first network interface
60*03f9172cSAndroid Build Coastguard Workerthat it can find (and that wpa_supplicant controls). If more than one
61*03f9172cSAndroid Build Coastguard Workerinterface is in use, it may be necessary to select one of the explicitly
62*03f9172cSAndroid Build Coastguard Workerby adding -i argument on the command line (e.g., 'wpa_cli -i wlan1').
63*03f9172cSAndroid Build Coastguard Worker
64*03f9172cSAndroid Build Coastguard WorkerMost of the P2P operations are done on the main interface (e.g., the
65*03f9172cSAndroid Build Coastguard Workerinterface that is automatically added when the driver is loaded, e.g.,
66*03f9172cSAndroid Build Coastguard Workerwlan0). When using a separate virtual interface for group operations
67*03f9172cSAndroid Build Coastguard Worker(e.g., wlan1), the control interface for that group interface may need
68*03f9172cSAndroid Build Coastguard Workerto be used for some operations (mainly WPS activation in GO). This may
69*03f9172cSAndroid Build Coastguard Workerchange in the future so that all the needed operations could be done
70*03f9172cSAndroid Build Coastguard Workerover the main control interface.
71*03f9172cSAndroid Build Coastguard Worker
72*03f9172cSAndroid Build Coastguard WorkerDevice Discovery
73*03f9172cSAndroid Build Coastguard Worker
74*03f9172cSAndroid Build Coastguard Workerp2p_find [timeout in seconds] [type=<social|progressive>] \
75*03f9172cSAndroid Build Coastguard Worker	[dev_id=<addr>] [dev_type=<device type>] \
76*03f9172cSAndroid Build Coastguard Worker	[delay=<search delay in ms>] [seek=<service name>] [freq=<MHz>]
77*03f9172cSAndroid Build Coastguard Worker
78*03f9172cSAndroid Build Coastguard WorkerThe default behavior is to run a single full scan in the beginning and
79*03f9172cSAndroid Build Coastguard Workerthen scan only social channels. type=social will scan only social
80*03f9172cSAndroid Build Coastguard Workerchannels, i.e., it skips the initial full scan. type=progressive is
81*03f9172cSAndroid Build Coastguard Workerlike the default behavior, but it will scan through all the channels
82*03f9172cSAndroid Build Coastguard Workerprogressively one channel at the time in the Search state rounds. This
83*03f9172cSAndroid Build Coastguard Workerwill help in finding new groups or groups missed during the initial
84*03f9172cSAndroid Build Coastguard Workerfull scan. When the type parameter is not included (i.e., full scan), the
85*03f9172cSAndroid Build Coastguard Workeroptional freq parameter can be used to override the first scan to use only
86*03f9172cSAndroid Build Coastguard Workerthe specified channel after which only social channels are scanned.
87*03f9172cSAndroid Build Coastguard Worker
88*03f9172cSAndroid Build Coastguard WorkerThe optional dev_id option can be used to specify a single P2P peer to
89*03f9172cSAndroid Build Coastguard Workersearch for. The optional delay parameter can be used to request an extra
90*03f9172cSAndroid Build Coastguard Workerdelay to be used between search iterations (e.g., to free up radio
91*03f9172cSAndroid Build Coastguard Workerresources for concurrent operations).
92*03f9172cSAndroid Build Coastguard Worker
93*03f9172cSAndroid Build Coastguard WorkerThe optional dev_type option can be used to specify a single device type
94*03f9172cSAndroid Build Coastguard Worker(primary or secondary) to search for, e.g.,
95*03f9172cSAndroid Build Coastguard Worker"p2p_find dev_type=1-0050F204-1".
96*03f9172cSAndroid Build Coastguard Worker
97*03f9172cSAndroid Build Coastguard Worker
98*03f9172cSAndroid Build Coastguard WorkerWith one or more seek arguments, the command sends Probe Request frames
99*03f9172cSAndroid Build Coastguard Workerfor a P2PS service. For example,
100*03f9172cSAndroid Build Coastguard Workerp2p_find 5 dev_id=11:22:33:44:55:66 seek=alt.example.chat seek=alt.example.video
101*03f9172cSAndroid Build Coastguard Worker
102*03f9172cSAndroid Build Coastguard WorkerParameters description:
103*03f9172cSAndroid Build Coastguard Worker    Timeout - Optional ASCII base-10-encoded u16. If missing, request will not
104*03f9172cSAndroid Build Coastguard Worker	time out and must be canceled manually
105*03f9172cSAndroid Build Coastguard Worker    dev_id - Optional to request responses from a single known remote device
106*03f9172cSAndroid Build Coastguard Worker    Service Name - Mandatory UTF-8 string for ASP seeks
107*03f9172cSAndroid Build Coastguard Worker	Service name must match the remote service being advertised exactly
108*03f9172cSAndroid Build Coastguard Worker	(no prefix matching).
109*03f9172cSAndroid Build Coastguard Worker	Service name may be empty, in which case all ASP services will be
110*03f9172cSAndroid Build Coastguard Worker	returned, and may be filtered with p2p_serv_disc_req settings, and
111*03f9172cSAndroid Build Coastguard Worker	p2p_serv_asp_resp results.
112*03f9172cSAndroid Build Coastguard Worker	Multiple service names may be requested, but if it exceeds internal
113*03f9172cSAndroid Build Coastguard Worker	limit, it will automatically revert to requesting all ASP services.
114*03f9172cSAndroid Build Coastguard Worker
115*03f9172cSAndroid Build Coastguard Workerp2p_listen [timeout in seconds]
116*03f9172cSAndroid Build Coastguard Worker
117*03f9172cSAndroid Build Coastguard WorkerStart Listen-only state (become discoverable without searching for
118*03f9172cSAndroid Build Coastguard Workerother devices). Optional parameter can be used to specify the duration
119*03f9172cSAndroid Build Coastguard Workerfor the Listen operation in seconds. This command may not be of that
120*03f9172cSAndroid Build Coastguard Workermuch use during normal operations and is mainly designed for
121*03f9172cSAndroid Build Coastguard Workertesting. It can also be used to keep the device discoverable without
122*03f9172cSAndroid Build Coastguard Workerhaving to maintain a group.
123*03f9172cSAndroid Build Coastguard Worker
124*03f9172cSAndroid Build Coastguard Workerp2p_stop_find
125*03f9172cSAndroid Build Coastguard Worker
126*03f9172cSAndroid Build Coastguard WorkerStop ongoing P2P device discovery or other operation (connect, listen
127*03f9172cSAndroid Build Coastguard Workermode).
128*03f9172cSAndroid Build Coastguard Worker
129*03f9172cSAndroid Build Coastguard Workerp2p_flush
130*03f9172cSAndroid Build Coastguard Worker
131*03f9172cSAndroid Build Coastguard WorkerFlush P2P peer table and state.
132*03f9172cSAndroid Build Coastguard Worker
133*03f9172cSAndroid Build Coastguard WorkerGroup Formation
134*03f9172cSAndroid Build Coastguard Worker
135*03f9172cSAndroid Build Coastguard Workerp2p_prov_disc <peer device address> <display|keypad|pbc> [join|auto]
136*03f9172cSAndroid Build Coastguard Worker
137*03f9172cSAndroid Build Coastguard WorkerSend P2P provision discovery request to the specified peer. The
138*03f9172cSAndroid Build Coastguard Workerparameters for this command are the P2P device address of the peer and
139*03f9172cSAndroid Build Coastguard Workerthe desired configuration method. For example, "p2p_prov_disc
140*03f9172cSAndroid Build Coastguard Worker02:01:02:03:04:05 display" would request the peer to display a PIN for
141*03f9172cSAndroid Build Coastguard Workerus and "p2p_prov_disc 02:01:02:03:04:05 keypad" would request the peer
142*03f9172cSAndroid Build Coastguard Workerto enter a PIN that we display.
143*03f9172cSAndroid Build Coastguard Worker
144*03f9172cSAndroid Build Coastguard WorkerThe optional "join" parameter can be used to indicate that this command
145*03f9172cSAndroid Build Coastguard Workeris requesting an already running GO to prepare for a new client. This is
146*03f9172cSAndroid Build Coastguard Workermainly used with "display" to request it to display a PIN. The "auto"
147*03f9172cSAndroid Build Coastguard Workerparameter can be used to request wpa_supplicant to automatically figure
148*03f9172cSAndroid Build Coastguard Workerout whether the peer device is operating as a GO and if so, use
149*03f9172cSAndroid Build Coastguard Workerjoin-a-group style PD instead of GO Negotiation style PD.
150*03f9172cSAndroid Build Coastguard Worker
151*03f9172cSAndroid Build Coastguard Workerp2p_connect <peer device address> <pbc|pin|PIN#|p2ps> [display|keypad|p2ps]
152*03f9172cSAndroid Build Coastguard Worker	[persistent|persistent=<network id>] [join|auth]
153*03f9172cSAndroid Build Coastguard Worker	[go_intent=<0..15>] [freq=<in MHz>] [ht40] [vht] [he] [provdisc] [auto]
154*03f9172cSAndroid Build Coastguard Worker	[ssid=<hexdump>]
155*03f9172cSAndroid Build Coastguard Worker
156*03f9172cSAndroid Build Coastguard WorkerStart P2P group formation with a discovered P2P peer. This includes
157*03f9172cSAndroid Build Coastguard Workeroptional group owner negotiation, group interface setup, provisioning,
158*03f9172cSAndroid Build Coastguard Workerand establishing data connection.
159*03f9172cSAndroid Build Coastguard Worker
160*03f9172cSAndroid Build Coastguard WorkerThe <pbc|pin|PIN#> parameter specifies the WPS provisioning
161*03f9172cSAndroid Build Coastguard Workermethod. "pbc" string starts pushbutton method, "pin" string start PIN
162*03f9172cSAndroid Build Coastguard Workermethod using an automatically generated PIN (which will be returned as
163*03f9172cSAndroid Build Coastguard Workerthe command return code), PIN# means that a pre-selected PIN can be
164*03f9172cSAndroid Build Coastguard Workerused (e.g., 12345670). [display|keypad] is used with PIN method
165*03f9172cSAndroid Build Coastguard Workerto specify which PIN is used (display=dynamically generated random PIN
166*03f9172cSAndroid Build Coastguard Workerfrom local display, keypad=PIN entered from peer display). "persistent"
167*03f9172cSAndroid Build Coastguard Workerparameter can be used to request a persistent group to be formed. The
168*03f9172cSAndroid Build Coastguard Worker"persistent=<network id>" alternative can be used to pre-populate
169*03f9172cSAndroid Build Coastguard WorkerSSID/passphrase configuration based on a previously used persistent
170*03f9172cSAndroid Build Coastguard Workergroup where this device was the GO. The previously used parameters will
171*03f9172cSAndroid Build Coastguard Workerthen be used if the local end becomes the GO in GO Negotiation (which
172*03f9172cSAndroid Build Coastguard Workercan be forced with go_intent=15).
173*03f9172cSAndroid Build Coastguard Worker
174*03f9172cSAndroid Build Coastguard Worker"join" indicates that this is a command to join an existing group as a
175*03f9172cSAndroid Build Coastguard Workerclient. It skips the GO Negotiation part. This will send a Provision
176*03f9172cSAndroid Build Coastguard WorkerDiscovery Request message to the target GO before associating for WPS
177*03f9172cSAndroid Build Coastguard Workerprovisioning.
178*03f9172cSAndroid Build Coastguard Worker
179*03f9172cSAndroid Build Coastguard Worker"auth" indicates that the WPS parameters are authorized for the peer
180*03f9172cSAndroid Build Coastguard Workerdevice without actually starting GO Negotiation (i.e., the peer is
181*03f9172cSAndroid Build Coastguard Workerexpected to initiate GO Negotiation). This is mainly for testing
182*03f9172cSAndroid Build Coastguard Workerpurposes.
183*03f9172cSAndroid Build Coastguard Worker
184*03f9172cSAndroid Build Coastguard Worker"go_intent" can be used to override the default GO Intent for this GO
185*03f9172cSAndroid Build Coastguard WorkerNegotiation.
186*03f9172cSAndroid Build Coastguard Worker
187*03f9172cSAndroid Build Coastguard Worker"freq" can be used to set a forced operating channel (e.g., freq=2412
188*03f9172cSAndroid Build Coastguard Workerto select 2.4 GHz channel 1).
189*03f9172cSAndroid Build Coastguard Worker
190*03f9172cSAndroid Build Coastguard Worker"provdisc" can be used to request a Provision Discovery exchange to be
191*03f9172cSAndroid Build Coastguard Workerused prior to starting GO Negotiation as a workaround with some deployed
192*03f9172cSAndroid Build Coastguard WorkerP2P implementations that require this to allow the user to accept the
193*03f9172cSAndroid Build Coastguard Workerconnection.
194*03f9172cSAndroid Build Coastguard Worker
195*03f9172cSAndroid Build Coastguard Worker"auto" can be used to request wpa_supplicant to automatically figure
196*03f9172cSAndroid Build Coastguard Workerout whether the peer device is operating as a GO and if so, use
197*03f9172cSAndroid Build Coastguard Workerjoin-a-group operation rather than GO Negotiation.
198*03f9172cSAndroid Build Coastguard Worker
199*03f9172cSAndroid Build Coastguard Worker"ssid=<hexdump>" can be used to specify the Group SSID for join
200*03f9172cSAndroid Build Coastguard Workeroperations. This allows the P2P Client interface to filter scan results
201*03f9172cSAndroid Build Coastguard Workerbased on SSID to avoid selecting an incorrect BSS entry in case the same
202*03f9172cSAndroid Build Coastguard WorkerP2P Device or Interface address have been used in multiple groups
203*03f9172cSAndroid Build Coastguard Workerrecently.
204*03f9172cSAndroid Build Coastguard Worker
205*03f9172cSAndroid Build Coastguard WorkerP2PS attribute changes to p2p_connect command:
206*03f9172cSAndroid Build Coastguard Worker
207*03f9172cSAndroid Build Coastguard WorkerP2PS supports two WPS provisioning methods namely PIN method and P2PS default.
208*03f9172cSAndroid Build Coastguard WorkerThe remaining parameters hold same role as in legacy P2P. In case of P2PS
209*03f9172cSAndroid Build Coastguard Workerdefault config method "p2ps" keyword is added in p2p_connect command.
210*03f9172cSAndroid Build Coastguard Worker
211*03f9172cSAndroid Build Coastguard WorkerFor example:
212*03f9172cSAndroid Build Coastguard Workerp2p_connect 02:0a:f5:85:11:00 12345670 p2ps persistent join
213*03f9172cSAndroid Build Coastguard Worker	(WPS Method = P2PS default)
214*03f9172cSAndroid Build Coastguard Worker
215*03f9172cSAndroid Build Coastguard Workerp2p_connect 02:0a:f5:85:11:00 45629034 keypad persistent
216*03f9172cSAndroid Build Coastguard Worker	(WPS Method = PIN)
217*03f9172cSAndroid Build Coastguard Worker
218*03f9172cSAndroid Build Coastguard Workerp2p_asp_provision <peer MAC address> <adv_id=peer adv id>
219*03f9172cSAndroid Build Coastguard Worker	<adv_mac=peer MAC address> [role=2|4|1] <session=session id>
220*03f9172cSAndroid Build Coastguard Worker	<session_mac=initiator mac address>
221*03f9172cSAndroid Build Coastguard Worker	[info='service info'] <method=Default|keypad|Display>
222*03f9172cSAndroid Build Coastguard Worker
223*03f9172cSAndroid Build Coastguard WorkerThis command starts provision discovery with the P2PS enabled peer device.
224*03f9172cSAndroid Build Coastguard Worker
225*03f9172cSAndroid Build Coastguard WorkerFor example,
226*03f9172cSAndroid Build Coastguard Workerp2p_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
227*03f9172cSAndroid Build Coastguard Worker
228*03f9172cSAndroid Build Coastguard WorkerParameter description:
229*03f9172cSAndroid Build Coastguard Worker    MAC address - Mandatory
230*03f9172cSAndroid Build Coastguard Worker    adv_id - Mandatory remote Advertising ID of service connection is being
231*03f9172cSAndroid Build Coastguard Worker	established for
232*03f9172cSAndroid Build Coastguard Worker    adv_mac - Mandatory MAC address that owns/registered the service
233*03f9172cSAndroid Build Coastguard Worker    role - Optional
234*03f9172cSAndroid Build Coastguard Worker	2 (group client only) or 4 (group owner only)
235*03f9172cSAndroid Build Coastguard Worker	if not present (or 1) role is negotiated by the two peers.
236*03f9172cSAndroid Build Coastguard Worker    session - Mandatory Session ID of the first session to be established
237*03f9172cSAndroid Build Coastguard Worker    session_mac - Mandatory MAC address that owns/initiated the session
238*03f9172cSAndroid Build Coastguard Worker    method - Optional method to request for provisioning (1000 - P2PS Default,
239*03f9172cSAndroid Build Coastguard Worker	100 - Keypad(PIN), 8 - Display(PIN))
240*03f9172cSAndroid Build Coastguard Worker    info - Optional UTF-8 string. Hint for service to indicate possible usage
241*03f9172cSAndroid Build Coastguard Worker	parameters - Escape single quote & backslash:
242*03f9172cSAndroid Build Coastguard Worker	with a backslash 0x27 == ' == \', and 0x5c == \ == \\
243*03f9172cSAndroid Build Coastguard Worker
244*03f9172cSAndroid Build Coastguard Workerp2p_asp_provision_resp <peer mac address> <adv_id= local adv id>
245*03f9172cSAndroid Build Coastguard Worker	<adv_mac=local MAC address> <role=1|2|4> <status=0>
246*03f9172cSAndroid Build Coastguard Worker	<session=session id> <session_mac=peer MAC address>
247*03f9172cSAndroid Build Coastguard Worker
248*03f9172cSAndroid Build Coastguard WorkerThis command sends a provision discovery response from responder side.
249*03f9172cSAndroid Build Coastguard Worker
250*03f9172cSAndroid Build Coastguard WorkerFor example,
251*03f9172cSAndroid Build Coastguard Workerp2p_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
252*03f9172cSAndroid Build Coastguard Worker
253*03f9172cSAndroid Build Coastguard WorkerParameters definition:
254*03f9172cSAndroid Build Coastguard Worker    MAC address - Mandatory
255*03f9172cSAndroid Build Coastguard Worker    adv_id - Mandatory local Advertising ID of service connection is being
256*03f9172cSAndroid Build Coastguard Worker	established for
257*03f9172cSAndroid Build Coastguard Worker    adv_mac - Mandatory MAC address that owns/registered the service
258*03f9172cSAndroid Build Coastguard Worker    role -  Optional 2 (group client only) or 4 (group owner only)
259*03f9172cSAndroid Build Coastguard Worker	if not present (or 1) role is negotiated by the two peers.
260*03f9172cSAndroid Build Coastguard Worker    status - Mandatory Acceptance/Rejection code of Provisioning
261*03f9172cSAndroid Build Coastguard Worker    session - Mandatory Session ID of the first session to be established
262*03f9172cSAndroid Build Coastguard Worker    session_mac - Mandatory MAC address that owns/initiated the session
263*03f9172cSAndroid Build Coastguard Worker
264*03f9172cSAndroid Build Coastguard Workerp2p_group_add [persistent|persistent=<network id>] [freq=<freq in MHz>]
265*03f9172cSAndroid Build Coastguard Worker	[ht40] [vht] [he]
266*03f9172cSAndroid Build Coastguard Worker
267*03f9172cSAndroid Build Coastguard WorkerSet up a P2P group owner manually (i.e., without group owner
268*03f9172cSAndroid Build Coastguard Workernegotiation with a specific peer). This is also known as autonomous
269*03f9172cSAndroid Build Coastguard WorkerGO. Optional persistent=<network id> can be used to specify restart of
270*03f9172cSAndroid Build Coastguard Workera persistent group. Optional freq=<freq in MHz> can be used to force
271*03f9172cSAndroid Build Coastguard Workerthe GO to be started on a specific frequency. Special freq=2 or freq=5
272*03f9172cSAndroid Build Coastguard Workeroptions can be used to request the best 2.4 GHz or 5 GHz band channel
273*03f9172cSAndroid Build Coastguard Workerto be selected automatically.
274*03f9172cSAndroid Build Coastguard Worker
275*03f9172cSAndroid Build Coastguard Workerp2p_reject <peer device address>
276*03f9172cSAndroid Build Coastguard Worker
277*03f9172cSAndroid Build Coastguard WorkerReject connection attempt from a peer (specified with a device
278*03f9172cSAndroid Build Coastguard Workeraddress). This is a mechanism to reject a pending GO Negotiation with
279*03f9172cSAndroid Build Coastguard Workera peer and request to automatically block any further connection or
280*03f9172cSAndroid Build Coastguard Workerdiscovery of the peer.
281*03f9172cSAndroid Build Coastguard Worker
282*03f9172cSAndroid Build Coastguard Workerp2p_group_remove <group interface>
283*03f9172cSAndroid Build Coastguard Worker
284*03f9172cSAndroid Build Coastguard WorkerTerminate a P2P group. If a new virtual network interface was used for
285*03f9172cSAndroid Build Coastguard Workerthe group, it will also be removed. The network interface name of the
286*03f9172cSAndroid Build Coastguard Workergroup interface is used as a parameter for this command.
287*03f9172cSAndroid Build Coastguard Worker
288*03f9172cSAndroid Build Coastguard Workerp2p_cancel
289*03f9172cSAndroid Build Coastguard Worker
290*03f9172cSAndroid Build Coastguard WorkerCancel an ongoing P2P group formation and joining-a-group related
291*03f9172cSAndroid Build Coastguard Workeroperation. This operation unauthorizes the specific peer device (if any
292*03f9172cSAndroid Build Coastguard Workerhad been authorized to start group formation), stops P2P find (if in
293*03f9172cSAndroid Build Coastguard Workerprogress), stops pending operations for join-a-group, and removes the
294*03f9172cSAndroid Build Coastguard WorkerP2P group interface (if one was used) that is in the WPS provisioning
295*03f9172cSAndroid Build Coastguard Workerstep. If the WPS provisioning step has been completed, the group is not
296*03f9172cSAndroid Build Coastguard Workerterminated.
297*03f9172cSAndroid Build Coastguard Worker
298*03f9172cSAndroid Build Coastguard Workerp2p_remove_client <peer's P2P Device Address|iface=<interface address>>
299*03f9172cSAndroid Build Coastguard Worker
300*03f9172cSAndroid Build Coastguard WorkerThis command can be used to remove the specified client from all groups
301*03f9172cSAndroid Build Coastguard Worker(operating and persistent) from the local GO. Note that the peer device
302*03f9172cSAndroid Build Coastguard Workercan rejoin the group if it is in possession of a valid key. See p2p_set
303*03f9172cSAndroid Build Coastguard Workerper_sta_psk command below for more details on how the peer can be
304*03f9172cSAndroid Build Coastguard Workerremoved securely.
305*03f9172cSAndroid Build Coastguard Worker
306*03f9172cSAndroid Build Coastguard WorkerService Discovery
307*03f9172cSAndroid Build Coastguard Worker
308*03f9172cSAndroid Build Coastguard Workerp2p_service_add asp <auto accept> <adv id> <status 0/1> <Config Methods>
309*03f9172cSAndroid Build Coastguard Worker	<Service name> [Service Information] [Response Info]
310*03f9172cSAndroid Build Coastguard Worker
311*03f9172cSAndroid Build Coastguard WorkerThis command can be used to search for a P2PS service which includes
312*03f9172cSAndroid Build Coastguard WorkerPlay, Send, Display, and Print service. The parameters for this command
313*03f9172cSAndroid Build Coastguard Workerare "asp" to identify the command as P2PS one, auto accept value,
314*03f9172cSAndroid Build Coastguard Workeradvertisement id which uniquely identifies the service requests, state
315*03f9172cSAndroid Build Coastguard Workerof the service whether the service is available or not, config methods
316*03f9172cSAndroid Build Coastguard Workerwhich can be either P2PS method or PIN method, service name followed by
317*03f9172cSAndroid Build Coastguard Workertwo optional parameters service information, and response info.
318*03f9172cSAndroid Build Coastguard Worker
319*03f9172cSAndroid Build Coastguard WorkerFor example,
320*03f9172cSAndroid Build Coastguard Workerp2p_service_add asp 1 4d6fc7 0 1108 alt.example.chat svc_info='name=john' rsp_info='enter PIN 1234'
321*03f9172cSAndroid Build Coastguard Worker
322*03f9172cSAndroid Build Coastguard WorkerParameters definition:
323*03f9172cSAndroid Build Coastguard Worker    asp - Mandatory for ASP service registration
324*03f9172cSAndroid Build Coastguard Worker    auto accept - Mandatory ASCII hex-encoded boolean (0 == no auto-accept,
325*03f9172cSAndroid Build Coastguard Worker	1 == auto-accept ANY role, 2 == auto-accept CLIENT role,
326*03f9172cSAndroid Build Coastguard Worker	4 == auto-accept GO role)
327*03f9172cSAndroid Build Coastguard Worker    Advertisement ID - Mandatory non-zero ASCII hex-encoded u32
328*03f9172cSAndroid Build Coastguard Worker	(Must be unique/not yet exist in svc db)
329*03f9172cSAndroid Build Coastguard Worker    State - Mandatory ASCII hex-encoded u8 (0 -- Svc not available,
330*03f9172cSAndroid Build Coastguard Worker	1 -- Svc available, 2-0xff  Application defined)
331*03f9172cSAndroid Build Coastguard Worker    Config Methods - Mandatory ASCII hex-encoded u16 (bitmask of WSC config
332*03f9172cSAndroid Build Coastguard Worker	methods)
333*03f9172cSAndroid Build Coastguard Worker    Service Name - Mandatory UTF-8 string
334*03f9172cSAndroid Build Coastguard Worker    Service Information - Optional UTF-8 string
335*03f9172cSAndroid Build Coastguard Worker	Escape single quote & backslash with a backslash:
336*03f9172cSAndroid Build Coastguard Worker	0x27 == ' == \', and 0x5c == \ == \\
337*03f9172cSAndroid Build Coastguard Worker    Session response information -  Optional (used only if auto accept is TRUE)
338*03f9172cSAndroid Build Coastguard Worker	UTF-8 string
339*03f9172cSAndroid Build Coastguard Worker	Escape single quote & backslash with a backslash:
340*03f9172cSAndroid Build Coastguard Worker	0x27 == ' == \', and 0x5c == \ == \\
341*03f9172cSAndroid Build Coastguard Worker
342*03f9172cSAndroid Build Coastguard Workerp2p_service_rep asp <auto accept> <adv id> <status 0/1> <Config Methods>
343*03f9172cSAndroid Build Coastguard Worker	<Service name> [Service Information] [Response Info]
344*03f9172cSAndroid Build Coastguard Worker
345*03f9172cSAndroid Build Coastguard WorkerThis command can be used to replace the existing service request
346*03f9172cSAndroid Build Coastguard Workerattributes from the initiator side. The replacement is only allowed if
347*03f9172cSAndroid Build Coastguard Workerthe advertisement id issued in the command matches with any one entry in
348*03f9172cSAndroid Build Coastguard Workerthe list of existing SD queries. If advertisement id doesn't match the
349*03f9172cSAndroid Build Coastguard Workercommand returns a failure.
350*03f9172cSAndroid Build Coastguard Worker
351*03f9172cSAndroid Build Coastguard WorkerFor example,
352*03f9172cSAndroid Build Coastguard Workerp2p_service_rep asp 1 4d6fc7 1 1108 alt.example.chat svc_info='name=john' rsp_info='enter PIN 1234'
353*03f9172cSAndroid Build Coastguard Worker
354*03f9172cSAndroid Build Coastguard WorkerParameters definition:
355*03f9172cSAndroid Build Coastguard Worker    asp - Mandatory for ASP service registration
356*03f9172cSAndroid Build Coastguard Worker    auto accept - Mandatory ASCII hex-encoded boolean (1 == true, 0 == false)
357*03f9172cSAndroid Build Coastguard Worker    Advertisement ID - Mandatory non-zero ASCII hex-encoded u32
358*03f9172cSAndroid Build Coastguard Worker	(Must already exist in svc db)
359*03f9172cSAndroid Build Coastguard Worker    State - Mandatory ASCII hex-encoded u8 (can be used to indicate svc
360*03f9172cSAndroid Build Coastguard Worker	available or not available for instance)
361*03f9172cSAndroid Build Coastguard Worker    Config Methods - Mandatory ASCII hex-encoded u16 (bitmask of WSC config
362*03f9172cSAndroid Build Coastguard Worker	methods)
363*03f9172cSAndroid Build Coastguard Worker    Service Name - Mandatory UTF-8 string (Must match existing string in svc db)
364*03f9172cSAndroid Build Coastguard Worker    Service Information - Optional UTF-8 string
365*03f9172cSAndroid Build Coastguard Worker	Escape single quote & backslash with a backslash:
366*03f9172cSAndroid Build Coastguard Worker	0x27 == ' == \', and 0x5c == \ == \\
367*03f9172cSAndroid Build Coastguard Worker    Session response information -  Optional (used only if auto accept is TRUE)
368*03f9172cSAndroid Build Coastguard Worker	UTF-8 string
369*03f9172cSAndroid Build Coastguard Worker	Escape single quote & backslash with a backslash:
370*03f9172cSAndroid Build Coastguard Worker	0x27 == ' == \', and 0x5c == \ == \\
371*03f9172cSAndroid Build Coastguard Worker
372*03f9172cSAndroid Build Coastguard Workerp2p_serv_disc_req
373*03f9172cSAndroid Build Coastguard Worker
374*03f9172cSAndroid Build Coastguard WorkerSchedule a P2P service discovery request. The parameters for this
375*03f9172cSAndroid Build Coastguard Workercommand are the device address of the peer device (or 00:00:00:00:00:00
376*03f9172cSAndroid Build Coastguard Workerfor wildcard query that is sent to every discovered P2P peer that
377*03f9172cSAndroid Build Coastguard Workersupports service discovery) and P2P Service Query TLV(s) as hexdump. For
378*03f9172cSAndroid Build Coastguard Workerexample,
379*03f9172cSAndroid Build Coastguard Worker
380*03f9172cSAndroid Build Coastguard Workerp2p_serv_disc_req 00:00:00:00:00:00 02000001
381*03f9172cSAndroid Build Coastguard Worker
382*03f9172cSAndroid Build Coastguard Workerschedules a request for listing all available services of all service
383*03f9172cSAndroid Build Coastguard Workerdiscovery protocols and requests this to be sent to all discovered
384*03f9172cSAndroid Build Coastguard Workerpeers (note: this can result in long response frames). The pending
385*03f9172cSAndroid Build Coastguard Workerrequests are sent during device discovery (see p2p_find).
386*03f9172cSAndroid Build Coastguard Worker
387*03f9172cSAndroid Build Coastguard WorkerThere can be multiple pending peer device specific queries (each will be
388*03f9172cSAndroid Build Coastguard Workersent in sequence whenever the peer is found).
389*03f9172cSAndroid Build Coastguard Worker
390*03f9172cSAndroid Build Coastguard WorkerThis command returns an identifier for the pending query (e.g.,
391*03f9172cSAndroid Build Coastguard Worker"1f77628") that can be used to cancel the request. Directed requests
392*03f9172cSAndroid Build Coastguard Workerwill be automatically removed when the specified peer has replied to
393*03f9172cSAndroid Build Coastguard Workerit.
394*03f9172cSAndroid Build Coastguard Worker
395*03f9172cSAndroid Build Coastguard WorkerService Query TLV has following format:
396*03f9172cSAndroid Build Coastguard WorkerLength (2 octets, little endian) - length of following data
397*03f9172cSAndroid Build Coastguard WorkerService Protocol Type (1 octet) - see the table below
398*03f9172cSAndroid Build Coastguard WorkerService Transaction ID (1 octet) - nonzero identifier for the TLV
399*03f9172cSAndroid Build Coastguard WorkerQuery Data (Length - 2 octets of data) - service protocol specific data
400*03f9172cSAndroid Build Coastguard Worker
401*03f9172cSAndroid Build Coastguard WorkerService Protocol Types:
402*03f9172cSAndroid Build Coastguard Worker0 = All service protocols
403*03f9172cSAndroid Build Coastguard Worker1 = Bonjour
404*03f9172cSAndroid Build Coastguard Worker2 = UPnP
405*03f9172cSAndroid Build Coastguard Worker3 = WS-Discovery
406*03f9172cSAndroid Build Coastguard Worker4 = Wi-Fi Display
407*03f9172cSAndroid Build Coastguard Worker
408*03f9172cSAndroid Build Coastguard WorkerFor UPnP, an alternative command format can be used to specify a
409*03f9172cSAndroid Build Coastguard Workersingle query TLV (i.e., a service discovery for a specific UPnP
410*03f9172cSAndroid Build Coastguard Workerservice):
411*03f9172cSAndroid Build Coastguard Worker
412*03f9172cSAndroid Build Coastguard Workerp2p_serv_disc_req 00:00:00:00:00:00 upnp <version hex> <ST: from M-SEARCH>
413*03f9172cSAndroid Build Coastguard Worker
414*03f9172cSAndroid Build Coastguard WorkerFor example:
415*03f9172cSAndroid Build Coastguard Worker
416*03f9172cSAndroid Build Coastguard Workerp2p_serv_disc_req 00:00:00:00:00:00 upnp 10 urn:schemas-upnp-org:device:InternetGatewayDevice:1
417*03f9172cSAndroid Build Coastguard Worker
418*03f9172cSAndroid Build Coastguard WorkerAdditional examples for queries:
419*03f9172cSAndroid Build Coastguard Worker
420*03f9172cSAndroid Build Coastguard Worker# list of all Bonjour services
421*03f9172cSAndroid Build Coastguard Workerp2p_serv_disc_req 00:00:00:00:00:00 02000101
422*03f9172cSAndroid Build Coastguard Worker
423*03f9172cSAndroid Build Coastguard Worker# list of all UPnP services
424*03f9172cSAndroid Build Coastguard Workerp2p_serv_disc_req 00:00:00:00:00:00 02000201
425*03f9172cSAndroid Build Coastguard Worker
426*03f9172cSAndroid Build Coastguard Worker# list of all WS-Discovery services
427*03f9172cSAndroid Build Coastguard Workerp2p_serv_disc_req 00:00:00:00:00:00 02000301
428*03f9172cSAndroid Build Coastguard Worker
429*03f9172cSAndroid Build Coastguard Worker# list of all Bonjour and UPnP services
430*03f9172cSAndroid Build Coastguard Workerp2p_serv_disc_req 00:00:00:00:00:00 0200010102000202
431*03f9172cSAndroid Build Coastguard Worker
432*03f9172cSAndroid Build Coastguard Worker# Apple File Sharing over TCP
433*03f9172cSAndroid Build Coastguard Workerp2p_serv_disc_req 00:00:00:00:00:00 130001010b5f6166706f766572746370c00c000c01
434*03f9172cSAndroid Build Coastguard Worker
435*03f9172cSAndroid Build Coastguard Worker# Bonjour SSTH (supported service type hash)
436*03f9172cSAndroid Build Coastguard Workerp2p_serv_disc_req 00:00:00:00:00:00 05000101000000
437*03f9172cSAndroid Build Coastguard Worker
438*03f9172cSAndroid Build Coastguard Worker# UPnP examples
439*03f9172cSAndroid Build Coastguard Workerp2p_serv_disc_req 00:00:00:00:00:00 upnp 10 ssdp:all
440*03f9172cSAndroid Build Coastguard Workerp2p_serv_disc_req 00:00:00:00:00:00 upnp 10 upnp:rootdevice
441*03f9172cSAndroid Build Coastguard Workerp2p_serv_disc_req 00:00:00:00:00:00 upnp 10 urn:schemas-upnp-org:service:ContentDirectory:2
442*03f9172cSAndroid Build Coastguard Workerp2p_serv_disc_req 00:00:00:00:00:00 upnp 10 uuid:6859dede-8574-59ab-9332-123456789012
443*03f9172cSAndroid Build Coastguard Workerp2p_serv_disc_req 00:00:00:00:00:00 upnp 10 urn:schemas-upnp-org:device:InternetGatewayDevice:1
444*03f9172cSAndroid Build Coastguard Worker
445*03f9172cSAndroid Build Coastguard Worker# Wi-Fi Display examples
446*03f9172cSAndroid Build Coastguard Worker# format: wifi-display <list of roles> <list of subelements>
447*03f9172cSAndroid Build Coastguard Workerp2p_serv_disc_req 00:00:00:00:00:00 wifi-display [source] 2,3,4,5
448*03f9172cSAndroid Build Coastguard Workerp2p_serv_disc_req 02:01:02:03:04:05 wifi-display [pri-sink] 3
449*03f9172cSAndroid Build Coastguard Workerp2p_serv_disc_req 00:00:00:00:00:00 wifi-display [sec-source] 2
450*03f9172cSAndroid Build Coastguard Workerp2p_serv_disc_req 00:00:00:00:00:00 wifi-display [source+sink] 2,3,4,5
451*03f9172cSAndroid Build Coastguard Workerp2p_serv_disc_req 00:00:00:00:00:00 wifi-display [source][pri-sink] 2,3,4,5
452*03f9172cSAndroid Build Coastguard Worker
453*03f9172cSAndroid Build Coastguard Workerp2p_serv_disc_req <Unicast|Broadcast mac address> asp <Transaction ID>
454*03f9172cSAndroid Build Coastguard Worker	<Service Name> [Service Information]
455*03f9172cSAndroid Build Coastguard Worker
456*03f9172cSAndroid Build Coastguard WorkerThe command can be used for service discovery for P2PS enabled devices.
457*03f9172cSAndroid Build Coastguard Worker
458*03f9172cSAndroid Build Coastguard WorkerFor example: p2p_serv_disc_req 00:00:00:00:00:00 asp a1 alt.example 'john'
459*03f9172cSAndroid Build Coastguard Worker
460*03f9172cSAndroid Build Coastguard WorkerParameters definition:
461*03f9172cSAndroid Build Coastguard Worker    MAC address - Mandatory Existing
462*03f9172cSAndroid Build Coastguard Worker    asp - Mandatory for ASP queries
463*03f9172cSAndroid Build Coastguard Worker    Transaction ID - Mandatory non-zero ASCII hex-encoded u8 for GAS
464*03f9172cSAndroid Build Coastguard Worker    Service Name Prefix - Mandatory UTF-8 string.
465*03f9172cSAndroid Build Coastguard Worker	Will match from beginning of remote Service Name
466*03f9172cSAndroid Build Coastguard Worker    Service Information Substring - Optional UTF-8 string
467*03f9172cSAndroid Build Coastguard Worker	If Service Information Substring is not included, all services matching
468*03f9172cSAndroid Build Coastguard Worker	Service Name Prefix will be returned.
469*03f9172cSAndroid Build Coastguard Worker	If Service Information Substring is included, both the Substring and the
470*03f9172cSAndroid Build Coastguard Worker	Service Name Prefix must match for service to be returned.
471*03f9172cSAndroid Build Coastguard Worker	If remote service has no Service Information, all Substring searches
472*03f9172cSAndroid Build Coastguard Worker	will fail.
473*03f9172cSAndroid Build Coastguard Worker
474*03f9172cSAndroid Build Coastguard Workerp2p_serv_disc_cancel_req <query identifier>
475*03f9172cSAndroid Build Coastguard Worker
476*03f9172cSAndroid Build Coastguard WorkerCancel a pending P2P service discovery request. This command takes a
477*03f9172cSAndroid Build Coastguard Workersingle parameter: identifier for the pending query (the value returned
478*03f9172cSAndroid Build Coastguard Workerby p2p_serv_disc_req, e.g., "p2p_serv_disc_cancel_req 1f77628".
479*03f9172cSAndroid Build Coastguard Worker
480*03f9172cSAndroid Build Coastguard Workerp2p_serv_disc_resp
481*03f9172cSAndroid Build Coastguard Worker
482*03f9172cSAndroid Build Coastguard WorkerReply to a service discovery query. This command takes following
483*03f9172cSAndroid Build Coastguard Workerparameters: frequency in MHz, destination address, dialog token,
484*03f9172cSAndroid Build Coastguard Workerresponse TLV(s). The first three parameters are copied from the
485*03f9172cSAndroid Build Coastguard Workerrequest event. For example, "p2p_serv_disc_resp 2437 02:40:61:c2:f3:b7
486*03f9172cSAndroid Build Coastguard Worker1 0300000101". This command is used only if external program is used
487*03f9172cSAndroid Build Coastguard Workerto process the request (see p2p_serv_disc_external).
488*03f9172cSAndroid Build Coastguard Worker
489*03f9172cSAndroid Build Coastguard Workerp2p_service_update
490*03f9172cSAndroid Build Coastguard Worker
491*03f9172cSAndroid Build Coastguard WorkerIndicate that local services have changed. This is used to increment
492*03f9172cSAndroid Build Coastguard Workerthe P2P service indicator value so that peers know when previously
493*03f9172cSAndroid Build Coastguard Workercached information may have changed. This is only needed when external
494*03f9172cSAndroid Build Coastguard Workerservice discovery processing is enabled since the commands to
495*03f9172cSAndroid Build Coastguard Workerpre-configure services for internal processing will increment the
496*03f9172cSAndroid Build Coastguard Workerindicator automatically.
497*03f9172cSAndroid Build Coastguard Worker
498*03f9172cSAndroid Build Coastguard Workerp2p_serv_disc_external <0|1>
499*03f9172cSAndroid Build Coastguard Worker
500*03f9172cSAndroid Build Coastguard WorkerConfigure external processing of P2P service requests: 0 (default) =
501*03f9172cSAndroid Build Coastguard Workerno external processing of requests (i.e., internal code will process
502*03f9172cSAndroid Build Coastguard Workereach request based on pre-configured services), 1 = external
503*03f9172cSAndroid Build Coastguard Workerprocessing of requests (external program is responsible for replying
504*03f9172cSAndroid Build Coastguard Workerto service discovery requests with p2p_serv_disc_resp). Please note
505*03f9172cSAndroid Build Coastguard Workerthat there is quite strict limit on how quickly the response needs to
506*03f9172cSAndroid Build Coastguard Workerbe transmitted, so use of the internal processing is strongly
507*03f9172cSAndroid Build Coastguard Workerrecommended.
508*03f9172cSAndroid Build Coastguard Worker
509*03f9172cSAndroid Build Coastguard Workerp2p_service_add bonjour <query hexdump> <RDATA hexdump>
510*03f9172cSAndroid Build Coastguard Worker
511*03f9172cSAndroid Build Coastguard WorkerAdd a local Bonjour service for internal SD query processing.
512*03f9172cSAndroid Build Coastguard Worker
513*03f9172cSAndroid Build Coastguard WorkerExamples:
514*03f9172cSAndroid Build Coastguard Worker
515*03f9172cSAndroid Build Coastguard Worker# AFP Over TCP (PTR)
516*03f9172cSAndroid Build Coastguard Workerp2p_service_add bonjour 0b5f6166706f766572746370c00c000c01 074578616d706c65c027
517*03f9172cSAndroid Build Coastguard Worker# AFP Over TCP (TXT) (RDATA=null)
518*03f9172cSAndroid Build Coastguard Workerp2p_service_add bonjour 076578616d706c650b5f6166706f766572746370c00c001001 00
519*03f9172cSAndroid Build Coastguard Worker
520*03f9172cSAndroid Build Coastguard Worker# IP Printing over TCP (PTR) (RDATA=MyPrinter._ipp._tcp.local.)
521*03f9172cSAndroid Build Coastguard Workerp2p_service_add bonjour 045f697070c00c000c01 094d795072696e746572c027
522*03f9172cSAndroid Build Coastguard Worker# IP Printing over TCP (TXT) (RDATA=txtvers=1,pdl=application/postscript)
523*03f9172cSAndroid Build Coastguard Workerp2p_service_add bonjour 096d797072696e746572045f697070c00c001001 09747874766572733d311a70646c3d6170706c69636174696f6e2f706f7374736372797074
524*03f9172cSAndroid Build Coastguard Worker
525*03f9172cSAndroid Build Coastguard Worker# Supported Service Type Hash (SSTH)
526*03f9172cSAndroid Build Coastguard Workerp2p_service_add bonjour 000000 <32-byte bitfield as hexdump>
527*03f9172cSAndroid Build Coastguard Worker(note: see P2P spec Annex E.4 for information on how to construct the bitfield)
528*03f9172cSAndroid Build Coastguard Worker
529*03f9172cSAndroid Build Coastguard Workerp2p_service_del bonjour <query hexdump>
530*03f9172cSAndroid Build Coastguard Worker
531*03f9172cSAndroid Build Coastguard WorkerRemove a local Bonjour service from internal SD query processing.
532*03f9172cSAndroid Build Coastguard Worker
533*03f9172cSAndroid Build Coastguard Workerp2p_service_add upnp <version hex> <service>
534*03f9172cSAndroid Build Coastguard Worker
535*03f9172cSAndroid Build Coastguard WorkerAdd a local UPnP service for internal SD query processing.
536*03f9172cSAndroid Build Coastguard Worker
537*03f9172cSAndroid Build Coastguard WorkerExamples:
538*03f9172cSAndroid Build Coastguard Worker
539*03f9172cSAndroid Build Coastguard Workerp2p_service_add upnp 10 uuid:6859dede-8574-59ab-9332-123456789012::upnp:rootdevice
540*03f9172cSAndroid Build Coastguard Workerp2p_service_add upnp 10 uuid:5566d33e-9774-09ab-4822-333456785632::upnp:rootdevice
541*03f9172cSAndroid Build Coastguard Workerp2p_service_add upnp 10 uuid:1122de4e-8574-59ab-9322-333456789044::urn:schemas-upnp-org:service:ContentDirectory:2
542*03f9172cSAndroid Build Coastguard Workerp2p_service_add upnp 10 uuid:5566d33e-9774-09ab-4822-333456785632::urn:schemas-upnp-org:service:ContentDirectory:2
543*03f9172cSAndroid Build Coastguard Workerp2p_service_add upnp 10 uuid:6859dede-8574-59ab-9332-123456789012::urn:schemas-upnp-org:device:InternetGatewayDevice:1
544*03f9172cSAndroid Build Coastguard Worker
545*03f9172cSAndroid Build Coastguard Workerp2p_service_del upnp <version hex> <service>
546*03f9172cSAndroid Build Coastguard Worker
547*03f9172cSAndroid Build Coastguard WorkerRemove a local UPnP service from internal SD query processing.
548*03f9172cSAndroid Build Coastguard Worker
549*03f9172cSAndroid Build Coastguard Workerp2p_service_del asp <adv id>
550*03f9172cSAndroid Build Coastguard Worker
551*03f9172cSAndroid Build Coastguard WorkerRemoves the local asp service from internal SD query list.
552*03f9172cSAndroid Build Coastguard WorkerFor example: p2p_service_del asp 4d6fc7
553*03f9172cSAndroid Build Coastguard Worker
554*03f9172cSAndroid Build Coastguard Workerp2p_service_flush
555*03f9172cSAndroid Build Coastguard Worker
556*03f9172cSAndroid Build Coastguard WorkerRemove all local services from internal SD query processing.
557*03f9172cSAndroid Build Coastguard Worker
558*03f9172cSAndroid Build Coastguard WorkerInvitation
559*03f9172cSAndroid Build Coastguard Worker
560*03f9172cSAndroid Build Coastguard Workerp2p_invite [persistent=<network id>|group=<group ifname>] [peer=address]
561*03f9172cSAndroid Build Coastguard Worker	[go_dev_addr=address] [freq=<freq in MHz>] [ht40] [vht] [he]
562*03f9172cSAndroid Build Coastguard Worker	[pref=<MHz>]
563*03f9172cSAndroid Build Coastguard Worker
564*03f9172cSAndroid Build Coastguard WorkerInvite a peer to join a group (e.g., group=wlan1) or to reinvoke a
565*03f9172cSAndroid Build Coastguard Workerpersistent group (e.g., persistent=4). If the peer device is the GO of
566*03f9172cSAndroid Build Coastguard Workerthe persistent group, the peer parameter is not needed. Otherwise it is
567*03f9172cSAndroid Build Coastguard Workerused to specify which device to invite. go_dev_addr parameter can be
568*03f9172cSAndroid Build Coastguard Workerused to override the GO device address for Invitation Request should
569*03f9172cSAndroid Build Coastguard Workerit be not known for some reason (this should not be needed in most
570*03f9172cSAndroid Build Coastguard Workercases). When reinvoking a persistent group, the GO device can specify
571*03f9172cSAndroid Build Coastguard Workerthe frequency for the group with the freq parameter. When reinvoking a
572*03f9172cSAndroid Build Coastguard Workerpersistent group, the P2P client device can use freq parameter to force
573*03f9172cSAndroid Build Coastguard Workera specific operating channel (or invitation failure if GO rejects that)
574*03f9172cSAndroid Build Coastguard Workeror pref parameter to request a specific channel (while allowing GO to
575*03f9172cSAndroid Build Coastguard Workerselect to use another channel, if needed).
576*03f9172cSAndroid Build Coastguard Worker
577*03f9172cSAndroid Build Coastguard WorkerGroup Operations
578*03f9172cSAndroid Build Coastguard Worker
579*03f9172cSAndroid Build Coastguard Worker(These are used on the group interface.)
580*03f9172cSAndroid Build Coastguard Worker
581*03f9172cSAndroid Build Coastguard Workerwps_pin <any|address> <PIN>
582*03f9172cSAndroid Build Coastguard Worker
583*03f9172cSAndroid Build Coastguard WorkerStart WPS PIN method. This allows a single WPS Enrollee to connect to
584*03f9172cSAndroid Build Coastguard Workerthe AP/GO. This is used on the GO when a P2P client joins an existing
585*03f9172cSAndroid Build Coastguard Workergroup. The second parameter is the address of the Enrollee or a string
586*03f9172cSAndroid Build Coastguard Worker"any" to allow any station to use the entered PIN (which will restrict
587*03f9172cSAndroid Build Coastguard Workerthe PIN for one-time-use). PIN is the Enrollee PIN read either from a
588*03f9172cSAndroid Build Coastguard Workerlabel or display on the P2P Client/WPS Enrollee.
589*03f9172cSAndroid Build Coastguard Worker
590*03f9172cSAndroid Build Coastguard Workerwps_pbc
591*03f9172cSAndroid Build Coastguard Worker
592*03f9172cSAndroid Build Coastguard WorkerStart WPS PBC method (i.e., push the button). This allows a single WPS
593*03f9172cSAndroid Build Coastguard WorkerEnrollee to connect to the AP/GO. This is used on the GO when a P2P
594*03f9172cSAndroid Build Coastguard Workerclient joins an existing group.
595*03f9172cSAndroid Build Coastguard Worker
596*03f9172cSAndroid Build Coastguard Workerp2p_get_passphrase
597*03f9172cSAndroid Build Coastguard Worker
598*03f9172cSAndroid Build Coastguard WorkerGet the passphrase for a group (only available when acting as a GO).
599*03f9172cSAndroid Build Coastguard Worker
600*03f9172cSAndroid Build Coastguard Workerp2p_presence_req [<duration> <interval>] [<duration> <interval>]
601*03f9172cSAndroid Build Coastguard Worker
602*03f9172cSAndroid Build Coastguard WorkerSend a P2P Presence Request to the GO (this is only available when
603*03f9172cSAndroid Build Coastguard Workeracting as a P2P client). If no duration/interval pairs are given, the
604*03f9172cSAndroid Build Coastguard Workerrequest indicates that this client has no special needs for GO
605*03f9172cSAndroid Build Coastguard Workerpresence. The first parameter pair gives the preferred duration and
606*03f9172cSAndroid Build Coastguard Workerinterval values in microseconds. If the second pair is included, that
607*03f9172cSAndroid Build Coastguard Workerindicates which value would be acceptable. This command returns OK
608*03f9172cSAndroid Build Coastguard Workerimmediately and the response from the GO is indicated in a
609*03f9172cSAndroid Build Coastguard WorkerP2P-PRESENCE-RESPONSE event message.
610*03f9172cSAndroid Build Coastguard Worker
611*03f9172cSAndroid Build Coastguard WorkerParameters
612*03f9172cSAndroid Build Coastguard Worker
613*03f9172cSAndroid Build Coastguard Workerp2p_ext_listen [<period> <interval>]
614*03f9172cSAndroid Build Coastguard Worker
615*03f9172cSAndroid Build Coastguard WorkerConfigure Extended Listen Timing. If the parameters are omitted, this
616*03f9172cSAndroid Build Coastguard Workerfeature is disabled. If the parameters are included, Listen State will
617*03f9172cSAndroid Build Coastguard Workerbe entered every interval msec for at least period msec. Both values
618*03f9172cSAndroid Build Coastguard Workerhave acceptable range of 1-65535 (with interval obviously having to be
619*03f9172cSAndroid Build Coastguard Workerlarger than or equal to duration). If the P2P module is not idle at
620*03f9172cSAndroid Build Coastguard Workerthe time the Extended Listen Timing timeout occurs, the Listen State
621*03f9172cSAndroid Build Coastguard Workeroperation will be skipped.
622*03f9172cSAndroid Build Coastguard Worker
623*03f9172cSAndroid Build Coastguard WorkerThe configured values will also be advertised to other P2P Devices. The
624*03f9172cSAndroid Build Coastguard Workerreceived values are available in the p2p_peer command output:
625*03f9172cSAndroid Build Coastguard Worker
626*03f9172cSAndroid Build Coastguard Workerext_listen_period=100 ext_listen_interval=5000
627*03f9172cSAndroid Build Coastguard Worker
628*03f9172cSAndroid Build Coastguard Workerp2p_set <field> <value>
629*03f9172cSAndroid Build Coastguard Worker
630*03f9172cSAndroid Build Coastguard WorkerChange dynamic P2P parameters
631*03f9172cSAndroid Build Coastguard Worker
632*03f9172cSAndroid Build Coastguard Workerp2p_set discoverability <0/1>
633*03f9172cSAndroid Build Coastguard Worker
634*03f9172cSAndroid Build Coastguard WorkerDisable/enable advertisement of client discoverability. This is
635*03f9172cSAndroid Build Coastguard Workerenabled by default and this parameter is mainly used to allow testing
636*03f9172cSAndroid Build Coastguard Workerof device discoverability.
637*03f9172cSAndroid Build Coastguard Worker
638*03f9172cSAndroid Build Coastguard Workerp2p_set managed <0/1>
639*03f9172cSAndroid Build Coastguard Worker
640*03f9172cSAndroid Build Coastguard WorkerDisable/enable managed P2P Device operations. This is disabled by
641*03f9172cSAndroid Build Coastguard Workerdefault.
642*03f9172cSAndroid Build Coastguard Worker
643*03f9172cSAndroid Build Coastguard Workerp2p_set listen_channel <channel> [<op_class>]
644*03f9172cSAndroid Build Coastguard Worker
645*03f9172cSAndroid Build Coastguard WorkerSet P2P Listen channel. This is mainly meant for testing purposes and
646*03f9172cSAndroid Build Coastguard Workerchanging the Listen channel during normal operations can result in
647*03f9172cSAndroid Build Coastguard Workerprotocol failures.
648*03f9172cSAndroid Build Coastguard Worker
649*03f9172cSAndroid Build Coastguard WorkerWhen specifying a social channel on the 2.4 GHz band (1/6/11) there is
650*03f9172cSAndroid Build Coastguard Workerno need to specify the operating class since it defaults to 81.  When
651*03f9172cSAndroid Build Coastguard Workerspecifying a social channel on the 60 GHz band (2), specify the 60 GHz
652*03f9172cSAndroid Build Coastguard Workeroperating class (180).
653*03f9172cSAndroid Build Coastguard Worker
654*03f9172cSAndroid Build Coastguard Workerp2p_set ssid_postfix <postfix>
655*03f9172cSAndroid Build Coastguard Worker
656*03f9172cSAndroid Build Coastguard WorkerSet postfix string to be added to the automatically generated P2P SSID
657*03f9172cSAndroid Build Coastguard Worker(DIRECT-<two random characters>). For example, postfix of "-testing"
658*03f9172cSAndroid Build Coastguard Workercould result in the SSID becoming DIRECT-ab-testing.
659*03f9172cSAndroid Build Coastguard Worker
660*03f9172cSAndroid Build Coastguard Workerp2p_set per_sta_psk <0/1>
661*03f9172cSAndroid Build Coastguard Worker
662*03f9172cSAndroid Build Coastguard WorkerDisabled(default)/enables use of per-client PSK in the P2P groups. This
663*03f9172cSAndroid Build Coastguard Workercan be used to request GO to assign a unique PSK for each client during
664*03f9172cSAndroid Build Coastguard WorkerWPS provisioning. When enabled, this allow clients to be removed from
665*03f9172cSAndroid Build Coastguard Workerthe group securely with p2p_remove_client command since that client's
666*03f9172cSAndroid Build Coastguard WorkerPSK is removed at the same time to prevent it from connecting back using
667*03f9172cSAndroid Build Coastguard Workerthe old PSK. When per-client PSK is not used, the client can still be
668*03f9172cSAndroid Build Coastguard Workerdisconnected, but it will be able to re-join the group since the PSK it
669*03f9172cSAndroid Build Coastguard Workerlearned previously is still valid. It should be noted that the default
670*03f9172cSAndroid Build Coastguard Workerpassphrase on the GO that is normally used to allow legacy stations to
671*03f9172cSAndroid Build Coastguard Workerconnect through manual configuration does not change here, so if that is
672*03f9172cSAndroid Build Coastguard Workershared, devices with knowledge of that passphrase can still connect.
673*03f9172cSAndroid Build Coastguard Worker
674*03f9172cSAndroid Build Coastguard Workerset <field> <value>
675*03f9172cSAndroid Build Coastguard Worker
676*03f9172cSAndroid Build Coastguard WorkerSet global configuration parameters which may also affect P2P
677*03f9172cSAndroid Build Coastguard Workeroperations. The format on these parameters is same as is used in
678*03f9172cSAndroid Build Coastguard Workerwpa_supplicant.conf. Only the parameters listen here should be
679*03f9172cSAndroid Build Coastguard Workerchanged. Modifying other parameters may result in incorrect behavior
680*03f9172cSAndroid Build Coastguard Workersince not all existing users of the parameters are updated.
681*03f9172cSAndroid Build Coastguard Worker
682*03f9172cSAndroid Build Coastguard Workerset uuid <UUID>
683*03f9172cSAndroid Build Coastguard Worker
684*03f9172cSAndroid Build Coastguard WorkerSet WPS UUID (by default, this is generated based on the MAC address).
685*03f9172cSAndroid Build Coastguard Worker
686*03f9172cSAndroid Build Coastguard Workerset device_name <device name>
687*03f9172cSAndroid Build Coastguard Worker
688*03f9172cSAndroid Build Coastguard WorkerSet WPS Device Name (also included in some P2P messages).
689*03f9172cSAndroid Build Coastguard Worker
690*03f9172cSAndroid Build Coastguard Workerset manufacturer <manufacturer>
691*03f9172cSAndroid Build Coastguard Worker
692*03f9172cSAndroid Build Coastguard WorkerSet WPS Manufacturer.
693*03f9172cSAndroid Build Coastguard Worker
694*03f9172cSAndroid Build Coastguard Workerset model_name <model name>
695*03f9172cSAndroid Build Coastguard Worker
696*03f9172cSAndroid Build Coastguard WorkerSet WPS Model Name.
697*03f9172cSAndroid Build Coastguard Worker
698*03f9172cSAndroid Build Coastguard Workerset model_number <model number>
699*03f9172cSAndroid Build Coastguard Worker
700*03f9172cSAndroid Build Coastguard WorkerSet WPS Model Number.
701*03f9172cSAndroid Build Coastguard Worker
702*03f9172cSAndroid Build Coastguard Workerset serial_number <serial number>
703*03f9172cSAndroid Build Coastguard Worker
704*03f9172cSAndroid Build Coastguard WorkerSet WPS Serial Number.
705*03f9172cSAndroid Build Coastguard Worker
706*03f9172cSAndroid Build Coastguard Workerset device_type <device type>
707*03f9172cSAndroid Build Coastguard Worker
708*03f9172cSAndroid Build Coastguard WorkerSet WPS Device Type.
709*03f9172cSAndroid Build Coastguard Worker
710*03f9172cSAndroid Build Coastguard Workerset os_version <OS version>
711*03f9172cSAndroid Build Coastguard Worker
712*03f9172cSAndroid Build Coastguard WorkerSet WPS OS Version.
713*03f9172cSAndroid Build Coastguard Worker
714*03f9172cSAndroid Build Coastguard Workerset config_methods <config methods>
715*03f9172cSAndroid Build Coastguard Worker
716*03f9172cSAndroid Build Coastguard WorkerSet WPS Configuration Methods.
717*03f9172cSAndroid Build Coastguard Worker
718*03f9172cSAndroid Build Coastguard Workerset sec_device_type <device type>
719*03f9172cSAndroid Build Coastguard Worker
720*03f9172cSAndroid Build Coastguard WorkerAdd a new Secondary Device Type.
721*03f9172cSAndroid Build Coastguard Worker
722*03f9172cSAndroid Build Coastguard Workerset p2p_go_intent <GO intent>
723*03f9172cSAndroid Build Coastguard Worker
724*03f9172cSAndroid Build Coastguard WorkerSet the default P2P GO Intent. Note: This value can be overridden in
725*03f9172cSAndroid Build Coastguard Workerp2p_connect command and as such, there should be no need to change the
726*03f9172cSAndroid Build Coastguard Workerdefault value here during normal operations.
727*03f9172cSAndroid Build Coastguard Worker
728*03f9172cSAndroid Build Coastguard Workerset p2p_ssid_postfix <P2P SSID postfix>
729*03f9172cSAndroid Build Coastguard Worker
730*03f9172cSAndroid Build Coastguard WorkerSet P2P SSID postfix.
731*03f9172cSAndroid Build Coastguard Worker
732*03f9172cSAndroid Build Coastguard Workerset persistent_reconnect <0/1>
733*03f9172cSAndroid Build Coastguard Worker
734*03f9172cSAndroid Build Coastguard WorkerDisable/enabled persistent reconnect for reinvocation of persistent
735*03f9172cSAndroid Build Coastguard Workergroups. If enabled, invitations to reinvoke a persistent group will be
736*03f9172cSAndroid Build Coastguard Workeraccepted without separate authorization (e.g., user interaction).
737*03f9172cSAndroid Build Coastguard Worker
738*03f9172cSAndroid Build Coastguard Workerset country <two character country code>
739*03f9172cSAndroid Build Coastguard Worker
740*03f9172cSAndroid Build Coastguard WorkerSet country code (this is included in some P2P messages).
741*03f9172cSAndroid Build Coastguard Worker
742*03f9172cSAndroid Build Coastguard Workerset p2p_search_delay <delay>
743*03f9172cSAndroid Build Coastguard Worker
744*03f9172cSAndroid Build Coastguard WorkerSet p2p_search_delay which adds extra delay in milliseconds between
745*03f9172cSAndroid Build Coastguard Workerconcurrent search iterations to make p2p_find friendlier to concurrent
746*03f9172cSAndroid Build Coastguard Workeroperations by avoiding it from taking 100% of radio resources. The
747*03f9172cSAndroid Build Coastguard Workerdefault value is 500 ms.
748*03f9172cSAndroid Build Coastguard Worker
749*03f9172cSAndroid Build Coastguard WorkerStatus
750*03f9172cSAndroid Build Coastguard Worker
751*03f9172cSAndroid Build Coastguard Workerp2p_peers [discovered]
752*03f9172cSAndroid Build Coastguard Worker
753*03f9172cSAndroid Build Coastguard WorkerList P2P Device Addresses of all the P2P peers we know. The optional
754*03f9172cSAndroid Build Coastguard Worker"discovered" parameter filters out the peers that we have not fully
755*03f9172cSAndroid Build Coastguard Workerdiscovered, i.e., which we have only seen in a received Probe Request
756*03f9172cSAndroid Build Coastguard Workerframe.
757*03f9172cSAndroid Build Coastguard Worker
758*03f9172cSAndroid Build Coastguard Workerp2p_peer <P2P Device Address>
759*03f9172cSAndroid Build Coastguard Worker
760*03f9172cSAndroid Build Coastguard WorkerFetch information about a known P2P peer.
761*03f9172cSAndroid Build Coastguard Worker
762*03f9172cSAndroid Build Coastguard WorkerGroup Status
763*03f9172cSAndroid Build Coastguard Worker
764*03f9172cSAndroid Build Coastguard Worker(These are used on the group interface.)
765*03f9172cSAndroid Build Coastguard Worker
766*03f9172cSAndroid Build Coastguard Workerstatus
767*03f9172cSAndroid Build Coastguard Worker
768*03f9172cSAndroid Build Coastguard WorkerShow status information (connection state, role, use encryption
769*03f9172cSAndroid Build Coastguard Workerparameters, IP address, etc.).
770*03f9172cSAndroid Build Coastguard Worker
771*03f9172cSAndroid Build Coastguard Workersta
772*03f9172cSAndroid Build Coastguard Worker
773*03f9172cSAndroid Build Coastguard WorkerShow information about an associated station (when acting in AP/GO role).
774*03f9172cSAndroid Build Coastguard Worker
775*03f9172cSAndroid Build Coastguard Workerall_sta
776*03f9172cSAndroid Build Coastguard Worker
777*03f9172cSAndroid Build Coastguard WorkerLists the currently associated stations.
778*03f9172cSAndroid Build Coastguard Worker
779*03f9172cSAndroid Build Coastguard WorkerConfiguration data
780*03f9172cSAndroid Build Coastguard Worker
781*03f9172cSAndroid Build Coastguard Workerlist_networks
782*03f9172cSAndroid Build Coastguard Worker
783*03f9172cSAndroid Build Coastguard WorkerLists the configured networks, including stored information for
784*03f9172cSAndroid Build Coastguard Workerpersistent groups. The identifier in this list is used with
785*03f9172cSAndroid Build Coastguard Workerp2p_group_add and p2p_invite to indicate which persistent group is to
786*03f9172cSAndroid Build Coastguard Workerbe reinvoked.
787*03f9172cSAndroid Build Coastguard Worker
788*03f9172cSAndroid Build Coastguard Workerremove_network <network id>
789*03f9172cSAndroid Build Coastguard Worker
790*03f9172cSAndroid Build Coastguard WorkerRemove a network entry from configuration.
791*03f9172cSAndroid Build Coastguard Worker
792*03f9172cSAndroid Build Coastguard Worker
793*03f9172cSAndroid Build Coastguard WorkerP2PS Events/Responses:
794*03f9172cSAndroid Build Coastguard Worker
795*03f9172cSAndroid Build Coastguard WorkerP2PS-PROV-START: This events gets triggered when provisioning is issued for
796*03f9172cSAndroid Build Coastguard Workereither seeker or advertiser.
797*03f9172cSAndroid Build Coastguard Worker
798*03f9172cSAndroid Build Coastguard WorkerFor example,
799*03f9172cSAndroid Build Coastguard WorkerP2PS-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'
800*03f9172cSAndroid Build Coastguard Worker
801*03f9172cSAndroid Build Coastguard WorkerParameters definition:
802*03f9172cSAndroid Build Coastguard Worker    MAC address - always
803*03f9172cSAndroid Build Coastguard Worker    adv_id - always ASCII hex-encoded u32
804*03f9172cSAndroid Build Coastguard Worker    adv_mac - always MAC address that owns/registered the service
805*03f9172cSAndroid Build Coastguard Worker    conncap - always mask of 0x01 (new), 0x02 (group client), 0x04 (group owner)
806*03f9172cSAndroid Build Coastguard Worker	bits
807*03f9172cSAndroid Build Coastguard Worker    session - always Session ID of the first session to be established
808*03f9172cSAndroid Build Coastguard Worker    session_mac - always MAC address that owns/initiated the session
809*03f9172cSAndroid Build Coastguard Worker    info - if available, UTF-8 string
810*03f9172cSAndroid Build Coastguard Worker	Escaped single quote & backslash with a backslash:
811*03f9172cSAndroid Build Coastguard Worker	\' == 0x27 == ', and \\ == 0x5c == \
812*03f9172cSAndroid Build Coastguard Worker
813*03f9172cSAndroid Build Coastguard WorkerP2PS-PROV-DONE: When provisioning is completed then this event gets triggered.
814*03f9172cSAndroid Build Coastguard Worker
815*03f9172cSAndroid Build Coastguard WorkerFor example,
816*03f9172cSAndroid Build Coastguard WorkerP2PS-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]
817*03f9172cSAndroid Build Coastguard Worker
818*03f9172cSAndroid Build Coastguard WorkerParameters definition:
819*03f9172cSAndroid Build Coastguard Worker    MAC address - always main device address of peer. May be different from MAC
820*03f9172cSAndroid Build Coastguard Worker	ultimately connected to.
821*03f9172cSAndroid Build Coastguard Worker    status - always ascii hex-encoded u8 (0 == success, 12 == deferred success)
822*03f9172cSAndroid Build Coastguard Worker    adv_id - always ascii hex-encoded u32
823*03f9172cSAndroid Build Coastguard Worker    adv_mac - always MAC address that owns/registered the service
824*03f9172cSAndroid Build Coastguard Worker    conncap - always One of: 1 (new), 2 (group client), 4 (group owner) bits
825*03f9172cSAndroid Build Coastguard Worker    session - always Session ID of the first session to be established
826*03f9172cSAndroid Build Coastguard Worker    session_mac - always MAC address that owns/initiated the session
827*03f9172cSAndroid Build Coastguard Worker    dev_passwd_id - only if conncap value == 1 (New GO negotiation)
828*03f9172cSAndroid Build Coastguard Worker	8 - "p2ps" password must be passed in p2p_connect command
829*03f9172cSAndroid Build Coastguard Worker	1 - "display" password must be passed in p2p_connect command
830*03f9172cSAndroid Build Coastguard Worker	5 - "keypad" password must be passed in p2p_connect command
831*03f9172cSAndroid Build Coastguard Worker    join only - if conncap value == 2 (Client Only). Display password and "join"
832*03f9172cSAndroid Build Coastguard Worker	must be passed in p2p_connect and address must be the MAC specified
833*03f9172cSAndroid Build Coastguard Worker    go only - if conncap value == 4 (GO Only). Interface name must be set with a
834*03f9172cSAndroid Build Coastguard Worker	password
835*03f9172cSAndroid Build Coastguard Worker    persist - only if previous persistent group existed between peers and shall
836*03f9172cSAndroid Build Coastguard Worker	be re-used. Group is restarted by sending "p2p_group_add persistent=0"
837*03f9172cSAndroid Build Coastguard Worker	where value is taken from P2P-PROV-DONE
838*03f9172cSAndroid Build Coastguard Worker
839*03f9172cSAndroid Build Coastguard WorkerExtended Events/Response
840*03f9172cSAndroid Build Coastguard Worker
841*03f9172cSAndroid Build Coastguard WorkerP2P-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
842*03f9172cSAndroid Build Coastguard Worker
843*03f9172cSAndroid Build Coastguard WorkerParameters definition:
844*03f9172cSAndroid Build Coastguard Worker    adv_id - if ASP ASCII hex-encoded u32. If it is reporting the
845*03f9172cSAndroid Build Coastguard Worker	"wildcard service", this value will be 0
846*03f9172cSAndroid Build Coastguard Worker    asp_svc - if ASP this is the service string. If it is reporting the
847*03f9172cSAndroid Build Coastguard Worker	"wildcard service", this value will be org.wi-fi.wfds
848*03f9172cSAndroid Build Coastguard Worker
849*03f9172cSAndroid Build Coastguard Worker
850*03f9172cSAndroid Build Coastguard Workerwpa_cli action script
851*03f9172cSAndroid Build Coastguard Worker---------------------
852*03f9172cSAndroid Build Coastguard Worker
853*03f9172cSAndroid Build Coastguard WorkerSee examples/p2p-action.sh
854*03f9172cSAndroid Build Coastguard Worker
855*03f9172cSAndroid Build Coastguard WorkerTODO: describe DHCP/DNS setup
856*03f9172cSAndroid Build Coastguard WorkerTODO: cross-connection
857