mirror of
https://github.com/vanhoefm/fragattacks.git
synced 2024-11-25 00:38:24 -05:00
P2PS: Add P2PS interface info
This adds documentation on P2PS related interface commands and events. Signed-off-by: Jouni Malinen <jouni@qca.qualcomm.com>
This commit is contained in:
parent
04bb845273
commit
f92446fb7d
@ -73,7 +73,7 @@ Device Discovery
|
||||
|
||||
p2p_find [timeout in seconds] [type=<social|progressive>] \
|
||||
[dev_id=<addr>] [dev_type=<device type>] \
|
||||
[delay=<search delay in ms>]
|
||||
[delay=<search delay in ms>] [seek=<service name>]
|
||||
|
||||
The default behavior is to run a single full scan in the beginning and
|
||||
then scan only social channels. type=social will scan only social
|
||||
@ -92,6 +92,24 @@ The optional dev_type option can be used to specify a single device type
|
||||
(primary or secondary) to search for, e.g.,
|
||||
"p2p_find dev_type=1-0050F204-1".
|
||||
|
||||
|
||||
With one or more seek arguments, the command sends Probe Request frames
|
||||
for a P2PS service. For example,
|
||||
p2p_find 5 dev_id=11:22:33:44:55:66 seek=alt.example.chat seek=alt.example.video
|
||||
|
||||
Parameters description:
|
||||
Timeout - Optional ASCII base-10-encoded u16. If missing, request will not
|
||||
time out and must be canceled manually
|
||||
dev_id - Optional to request responses from a single known remote device
|
||||
Service Name - Mandatory UTF-8 string for ASP seeks
|
||||
Service name must match the remote service being advertised exactly
|
||||
(no prefix matching).
|
||||
Service name may be empty, in which case all ASP services will be
|
||||
returned, and may be filtered with p2p_serv_disc_req settings, and
|
||||
p2p_serv_asp_resp results.
|
||||
Multiple service names may be requested, but if it exceeds internal
|
||||
limit, it will automatically revert to requesting all ASP services.
|
||||
|
||||
p2p_listen [timeout in seconds]
|
||||
|
||||
Start Listen-only state (become discoverable without searching for
|
||||
@ -128,7 +146,7 @@ parameter can be used to request wpa_supplicant to automatically figure
|
||||
out whether the peer device is operating as a GO and if so, use
|
||||
join-a-group style PD instead of GO Negotiation style PD.
|
||||
|
||||
p2p_connect <peer device address> <pbc|pin|PIN#> [display|keypad]
|
||||
p2p_connect <peer device address> <pbc|pin|PIN#|p2ps> [display|keypad|p2ps]
|
||||
[persistent|persistent=<network id>] [join|auth]
|
||||
[go_intent=<0..15>] [freq=<in MHz>] [ht40] [vht] [provdisc] [auto]
|
||||
|
||||
@ -175,6 +193,65 @@ connection.
|
||||
out whether the peer device is operating as a GO and if so, use
|
||||
join-a-group operation rather than GO Negotiation.
|
||||
|
||||
P2PS attribute changes to p2p_connect command:
|
||||
|
||||
P2PS supports two WPS provisioning methods namely PIN method and P2PS default.
|
||||
The remaining paramters hold same role as in legacy P2P. In case of P2PS default
|
||||
config method "p2ps" keyword is added in p2p_connect command.
|
||||
|
||||
For example:
|
||||
p2p_connect 02:0a:f5:85:11:00 12345670 p2ps persistent join
|
||||
(WPS Method = P2PS default)
|
||||
|
||||
p2p_connect 02:0a:f5:85:11:00 45629034 keypad persistent
|
||||
(WPS Method = PIN)
|
||||
|
||||
p2p_asp_provision <peer MAC address> <adv_id=peer adv id>
|
||||
<adv_mac=peer MAC address> [role=2|4|1] <session=session id>
|
||||
<session_mac=initiator mac address>
|
||||
[info='service info'] <method=Default|keypad|Display>
|
||||
|
||||
This command starts provision discovery with the P2PS enabled peer device.
|
||||
|
||||
For example,
|
||||
p2p_asp_provision 00:11:22:33:44:55 adv_id=4d6fc7 adv_mac=00:55:44:33:22:11 role=1 session=12ab34 session_mac=00:11:22:33:44:55 info='name=john' method=1000
|
||||
|
||||
Parameter description:
|
||||
MAC address - Mandatory
|
||||
adv_id - Mandatory remote Advertising ID of service connection is being
|
||||
established for
|
||||
adv_mac - Mandatory MAC address that owns/registered the service
|
||||
role - Optional
|
||||
2 (group client only) or 4 (group owner only)
|
||||
if not present (or 1) role is negotiated by the two peers.
|
||||
session - Mandatory Session ID of the first session to be established
|
||||
session_mac - Mandatory MAC address that owns/initiated the session
|
||||
method - Optional method to request for provisioning (1000 - P2PS Default,
|
||||
100 - Keypad(PIN), 8 - Display(PIN))
|
||||
info - Optional UTF-8 string. Hint for service to indicate possible usage
|
||||
parameters - Escape single quote & backslash:
|
||||
with a backslash 0x27 == ' == \', and 0x5c == \ == \\
|
||||
|
||||
p2p_asp_provision_resp <peer mac address> <adv_id= local adv id>
|
||||
<adv_mac=local MAC address> <role=1|2|4> <status=0>
|
||||
<session=session id> <session_mac=peer MAC address>
|
||||
|
||||
This command sends a provision discovery response from responder side.
|
||||
|
||||
For example,
|
||||
p2p_asp_provision_resp 00:55:44:33:22:11 adv_id=4d6fc7 adv_mac=00:55:44:33:22:11 role=1 status=0 session=12ab34 session_mac=00:11:22:33:44:55
|
||||
|
||||
Parameters definition:
|
||||
MAC address - Mandatory
|
||||
adv_id - Mandatory local Advertising ID of service connection is being
|
||||
established for
|
||||
adv_mac - Mandatory MAC address that owns/registered the service
|
||||
role - Optional 2 (group client only) or 4 (group owner only)
|
||||
if not present (or 1) role is negotiated by the two peers.
|
||||
status - Mandatory Acceptance/Rejection code of Provisioning
|
||||
session - Mandatory Session ID of the first session to be established
|
||||
session_mac - Mandatory MAC address that owns/initiated the session
|
||||
|
||||
p2p_group_add [persistent|persistent=<network id>] [freq=<freq in MHz>]
|
||||
[ht40] [vht]
|
||||
|
||||
@ -219,6 +296,70 @@ removed securely.
|
||||
|
||||
Service Discovery
|
||||
|
||||
p2p_service_add asp <auto accept> <adv id> <status 0/1> <Config Methods>
|
||||
<Service name> [Service Information] [Response Info]
|
||||
|
||||
This command can be used to search for a P2PS service which includes
|
||||
Play, Send, Display, and Print service. The parameters for this command
|
||||
are "asp" to identify the command as P2PS one, auto accept value,
|
||||
advertisement id which uniquely identifies the service requests, state
|
||||
of the service whether the service is available or not, config methods
|
||||
which can be either P2PS method or PIN method, service name followed by
|
||||
two optional parameters service information, and response info.
|
||||
|
||||
For example,
|
||||
p2p_service_add asp 1 4d6fc7 0 1108 alt.example.chat svc_info='name=john' rsp_info='enter PIN 1234'
|
||||
|
||||
Parameters definition:
|
||||
asp - Mandatory for ASP service registration
|
||||
auto accept - Mandatory ASCII hex-encoded boolean (0 == no auto-accept,
|
||||
1 == auto-accept ANY role, 2 == auto-accept CLIENT role,
|
||||
4 == auto-accept GO role)
|
||||
Advertisement ID - Mandatory non-zero ASCII hex-encoded u32
|
||||
(Must be unique/not yet exist in svc db)
|
||||
State - Mandatory ASCII hex-encoded u8 (0 -- Svc not available,
|
||||
1 -- Svc available, 2-0xff Application defined)
|
||||
Config Methods - Mandatory ASCII hex-encoded u16 (bitmask of WSC config
|
||||
methods)
|
||||
Service Name - Mandatory UTF-8 string
|
||||
Service Information - Optional UTF-8 string
|
||||
Escape single quote & backslash with a backslash:
|
||||
0x27 == ' == \', and 0x5c == \ == \\
|
||||
Session response information - Optional (used only if auto accept is TRUE)
|
||||
UTF-8 string
|
||||
Escape single quote & backslash with a backslash:
|
||||
0x27 == ' == \', and 0x5c == \ == \\
|
||||
|
||||
p2p_service_rep asp <auto accept> <adv id> <status 0/1> <Config Methods>
|
||||
<Service name> [Service Information] [Response Info]
|
||||
|
||||
This command can be used to replace the existing service request
|
||||
attributes from the initiator side. The replacement is only allowed if
|
||||
the advertisement id issued in the command matches with any one entry in
|
||||
the list of existing SD queries. If advertisement id doesn't match the
|
||||
command returns a failure.
|
||||
|
||||
For example,
|
||||
p2p_service_rep asp 1 4d6fc7 1 1108 alt.example.chat svc_info='name=john' rsp_info='enter PIN 1234'
|
||||
|
||||
Parameters definition:
|
||||
asp - Mandatory for ASP service registration
|
||||
auto accept - Mandatory ASCII hex-encoded boolean (1 == true, 0 == false)
|
||||
Advertisement ID - Mandatory non-zero ASCII hex-encoded u32
|
||||
(Must already exist in svc db)
|
||||
State - Mandatory ASCII hex-encoded u8 (can be used to indicate svc
|
||||
available or not available for instance)
|
||||
Config Methods - Mandatory ASCII hex-encoded u16 (bitmask of WSC config
|
||||
methods)
|
||||
Service Name - Mandatory UTF-8 string (Must match existing string in svc db)
|
||||
Service Information - Optional UTF-8 string
|
||||
Escape single quote & backslash with a backslash:
|
||||
0x27 == ' == \', and 0x5c == \ == \\
|
||||
Session response information - Optional (used only if auto accept is TRUE)
|
||||
UTF-8 string
|
||||
Escape single quote & backslash with a backslash:
|
||||
0x27 == ' == \', and 0x5c == \ == \\
|
||||
|
||||
p2p_serv_disc_req
|
||||
|
||||
Schedule a P2P service discovery request. The parameters for this
|
||||
@ -300,6 +441,27 @@ p2p_serv_disc_req 00:00:00:00:00:00 wifi-display [sec-source] 2
|
||||
p2p_serv_disc_req 00:00:00:00:00:00 wifi-display [source+sink] 2,3,4,5
|
||||
p2p_serv_disc_req 00:00:00:00:00:00 wifi-display [source][pri-sink] 2,3,4,5
|
||||
|
||||
p2p_serv_disc_req <Unicast|Broadcast mac address> asp <Transaction ID>
|
||||
<Service Name> [Service Information]
|
||||
|
||||
The command can be used for service discovery for P2PS enabled devices.
|
||||
|
||||
For example: p2p_serv_disc_req 00:00:00:00:00:00 asp a1 alt.example 'john'
|
||||
|
||||
Parameters definition:
|
||||
MAC address - Mandatory Existing
|
||||
asp - Mandatory for ASP queries
|
||||
Transaction ID - Mandatory non-zero ASCII hex-encoded u8 for GAS
|
||||
Service Name Prefix - Mandatory UTF-8 string.
|
||||
Will match from beginning of remote Service Name
|
||||
Service Information Substring - Optional UTF-8 string
|
||||
If Service Information Substring is not included, all services matching
|
||||
Service Name Prefix will be returned.
|
||||
If Service Information Substring is included, both the Substring and the
|
||||
Service Name Prefix must match for service to be returned.
|
||||
If remote service has no Service Information, all Substring searches
|
||||
will fail.
|
||||
|
||||
p2p_serv_disc_cancel_req <query identifier>
|
||||
|
||||
Cancel a pending P2P service discovery request. This command takes a
|
||||
@ -375,6 +537,11 @@ p2p_service_del upnp <version hex> <service>
|
||||
|
||||
Remove a local UPnP service from internal SD query processing.
|
||||
|
||||
p2p_service_del asp <adv id>
|
||||
|
||||
Removes the local asp service from internal SD query list.
|
||||
For example: p2p_service_del asp 4d6fc7
|
||||
|
||||
p2p_service_flush
|
||||
|
||||
Remove all local services from internal SD query processing.
|
||||
@ -609,6 +776,63 @@ remove_network <network id>
|
||||
Remove a network entry from configuration.
|
||||
|
||||
|
||||
P2PS Events/Responses:
|
||||
|
||||
P2PS-PROV-START: This events gets triggered when provisioning is issued for
|
||||
either seeker or advertiser.
|
||||
|
||||
For example,
|
||||
P2PS-PROV-START 00:55:44:33:22:11 adv_id=111 adv_mac=00:55:44:33:22:11 conncap=1 session=1234567 session_mac=00:11:22:33:44:55 info='xxxx'
|
||||
|
||||
Parameters definition:
|
||||
MAC address - always
|
||||
adv_id - always ASCII hex-encoded u32
|
||||
adv_mac - always MAC address that owns/registered the service
|
||||
conncap - always mask of 0x01 (new), 0x02 (group client), 0x04 (group owner)
|
||||
bits
|
||||
session - always Session ID of the first session to be established
|
||||
session_mac - always MAC address that owns/initiated the session
|
||||
info - if available, UTF-8 string
|
||||
Escaped single quote & backslash with a backslash:
|
||||
\' == 0x27 == ', and \\ == 0x5c == \
|
||||
|
||||
P2PS-PROV-DONE: When provisioning is completed then this event gets triggered.
|
||||
|
||||
For example,
|
||||
P2PS-PROV-DONE 00:11:22:33:44:55 status=0 adv_id=111 adv_mac=00:55:44:33:22:11 conncap=1 session=1234567 session_mac=00:11:22:33:44:55 [dev_passwd_id=8 | go=p2p-wlan0-0 | join=11:22:33:44:55:66 | persist=0]
|
||||
|
||||
Parameters definition:
|
||||
MAC address - always main device address of peer. May be different from MAC
|
||||
ultimately connected to.
|
||||
status - always ascii hex-encoded u8 (0 == success, 12 == deferred success)
|
||||
adv_id - always ascii hex-encoded u32
|
||||
adv_mac - always MAC address that owns/registered the service
|
||||
conncap - always One of: 1 (new), 2 (group client), 4 (group owner) bits
|
||||
session - always Session ID of the first session to be established
|
||||
session_mac - always MAC address that owns/initiated the session
|
||||
dev_passwd_id - only if conncap value == 1 (New GO negotiation)
|
||||
8 - "p2ps" password must be passed in p2p_connect command
|
||||
1 - "display" password must be passed in p2p_connect command
|
||||
5 - "keypad" password must be passed in p2p_connect command
|
||||
join only - if conncap value == 2 (Client Only). Display password and "join"
|
||||
must be passed in p2p_connect and address must be the MAC specified
|
||||
go only - if conncap value == 4 (GO Only). Interface name must be set with a
|
||||
password
|
||||
persist - only if previous persistent group existed between peers and shall
|
||||
be re-used. Group is restarted by sending "p2p_group_add persistent=0"
|
||||
where value is taken from P2P-PROV-DONE
|
||||
|
||||
Extended Events/Response
|
||||
|
||||
P2P-DEVICE-FOUND 00:11:22:33:44:55 p2p_dev_addr=00:11:22:33:44:55 pri_dev_type=0-00000000-0 name='' config_methods=0x108 dev_capab=0x21 group_capab=0x0 adv_id=111 asp_svc=alt.example.chat
|
||||
|
||||
Parameters definition:
|
||||
adv_id - if ASP ASCII hex-encoded u32. If it is reporting the
|
||||
"wildcard service", this value will be 0
|
||||
asp_svc - if ASP this is the service string. If it is reporting the
|
||||
"wildcard service", this value will be org.wi-fi.wfds
|
||||
|
||||
|
||||
wpa_cli action script
|
||||
---------------------
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user