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