1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
|
//---------------------------------------------------------------------------
//
// Copyright (c) 2015 Realtek Semiconductor, Inc. All rights reserved.
//
//---------------------------------------------------------------------------
// Description:
// Defines values specified in the WFA P2P Specification.
//
#ifndef __INC_P2P_PROTOCOL_SPEC_H
#define __INC_P2P_PROTOCOL_SPEC_H
#define P2P_WILDCARD_SSID "DIRECT-"
#define P2P_WILDCARD_SSID_LEN 7
#define P2P_MAX_GO_INTENT 15
typedef enum _P2P_ATTR_ID
{
P2P_ATTR_STATUS = 0,
P2P_ATTR_MINOR_REASON_CODE = 1,
P2P_ATTR_CAPABILITY = 2,
P2P_ATTR_DEVICE_ID = 3,
P2P_ATTR_GROUP_OWNER_INTENT = 4,
P2P_ATTR_CONFIGURATION_TIMEOUT = 5,
P2P_ATTR_LISTEN_CHANNEL = 6,
P2P_ATTR_GROUP_BSSID = 7,
P2P_ATTR_EXT_LISTEN_TIMING = 8,
P2P_ATTR_INTENDED_INTERFACE_ADDRESS = 9,
P2P_ATTR_MANAGEABILITY = 10,
P2P_ATTR_CHANNEL_LIST = 11,
P2P_ATTR_NOTICE_OF_ABSENCE = 12,
P2P_ATTR_DEVICE_INFO = 13,
P2P_ATTR_GROUP_INFO = 14,
P2P_ATTR_GROUP_ID = 15,
P2P_ATTR_INTERFACE = 16,
P2P_ATTR_OP_CHANNEL= 17,
P2P_ATTR_INVITATION_FLAGS = 18,
//-----------------------------------------
// P2P service addendum
P2P_ATTR_RSVD_19 = 19,
P2P_ATTR_RSVD_20 = 20,
P2P_ATTR_SVC_HASH = 21,
P2P_ATTR_SESSION_INFO_DATA_INFO = 22,
P2P_ATTR_CONN_CAP_INFO = 23,
P2P_ATTR_ADV_ID_INFO = 24,
P2P_ATTR_ADV_SVC_INFO = 25,
P2P_ATTR_SESSION_ID_INFO = 26,
P2P_ATTR_FEATURE_CAP_INFO = 27,
P2P_ATTR_VENDOR_SPECIFIC = 221
}P2P_ATTR_ID, *PP2P_ATTR_ID;
// Invitation Flags
#define P2P_INVITATION_FLAGS_TYPE 0x01
// P2P Capability
#define P2P_DEV_CAP_SERVICE_DISCOVERY BIT0
#define P2P_DEV_CAP_CLIENT_DISCOVERABILITY BIT1
#define P2P_DEV_CAP_CONCURRENT_OPER BIT2
#define P2P_DEV_CAP_INFRA_MANAGED BIT3
#define P2P_DEV_CAP_DEVICE_LIMIT BIT4
#define P2P_DEV_CAP_INVITATION_PROCEDURE BIT5
// P2P Capability
#define P2P_GROUP_CAP_GROUP_OWNER BIT0
#define P2P_GROUP_CAP_PERSISTENT_GROUP BIT1
#define P2P_GROUP_CAP_GROUP_LIMIT BIT2
#define P2P_GROUP_CAP_INTRA_BSS_DIST BIT3
#define P2P_GROUP_CAP_CROSS_CONN BIT4
#define P2P_GROUP_CAP_PERSISTENT_RECONN BIT5
#define P2P_GROUP_CAP_GROUP_FORMATION BIT6
#define P2P_GROUP_CAP_IP_ADDR_ALLOCATION BIT7
// P2P action frames
typedef enum _P2P_ACTION_FRAME_TYPES
{
P2P_NOA = 0,
P2P_PRESENCE_REQ = 1,
P2P_PRESENCE_RSP = 2,
P2P_GO_DISC_REQ = 3
}P2P_ACTION_FRAME_TYPES, *PP2P_ACTION_FRAME_TYPES;
// P2P public action frames
typedef enum _P2P_PUBLIC_ACTION_FRAME_TYPES
{
P2P_GO_NEG_REQ = 0,
P2P_GO_NEG_RSP = 1,
P2P_GO_NEG_CONF = 2,
P2P_INVITATION_REQ = 3,
P2P_INVITATION_RSP = 4,
P2P_DEV_DISC_REQ = 5,
P2P_DEV_DISC_RSP = 6,
P2P_PROV_DISC_REQ = 7,
P2P_PROV_DISC_RSP = 8
}P2P_PUBLIC_ACTION_FRAME_TYPES, *PP2P_PUBLIC_ACTION_FRAME_TYPES;
#define OUI_WFA 0x506F9A
#define P2P_IE_VENDOR_TYPE 0x506f9a09
#define P2P_SC_SUCCESS (u1Byte)0
#define P2P_SC_FAIL_INFO_CURRENTLY_UNAVAILABLE (u1Byte)1
#define P2P_SC_FAIL_INCOMPATIBLE_PARAMS (u1Byte)2
#define P2P_SC_FAIL_LIMIT_REACHED (u1Byte)3
#define P2P_SC_FAIL_INVALID_PARAMS (u1Byte)4
#define P2P_SC_FAIL_UNABLE_TO_ACCOMMODATE (u1Byte)5
#define P2P_SC_FAIL_PREV_PROTOCOL_ERROR (u1Byte)6
#define P2P_SC_FAIL_NO_COMMON_CHANNELS (u1Byte)7
#define P2P_SC_FAIL_UNKNOWN_GROUP (u1Byte)8
#define P2P_SC_FAIL_BOTH_GO_INTENT_15 (u1Byte)9
#define P2P_SC_FAIL_INCOMPATIBLE_PROV_METHOD (u1Byte)10
#define P2P_SC_FAIL_REJECTED_BY_USER (u1Byte)11
#define P2P_SC_FAIL_COMMON_CHANNEL_NOT_ARRIVED (u1Byte)200
#define P2P_SC_FAIL_TIMEOUT_WAITING_FOR_GON_RSP (u1Byte)201
#define P2P_SC_FAIL_TIMEOUT_WAITING_FOR_GON_CONFIRM (u1Byte)202
#define P2P_SC_FAIL_TIMEOUT_WAITING_FOR_GO_BEACON (u1Byte)203
#define P2P_SC_FAIL_TIMEOUT_WAITING_FOR_DEVICE_DISCOVERABILITY_RSP (u1Byte)204
#define P2P_SC_FAIL_TIMEOUT_WAITING_FOR_PROVISION_DISCOVERY_RSP (u1Byte)205
#define P2P_SC_FAIL_TIMEOUT_WAITING_FOR_INVITATION_RSP (u1Byte)206
#define P2P_SC_FAIL_FAIL_PROVISION_DISCOVERY_FAILED (u1Byte)207
#define P2P_SC_FAIL_FAIL_SERVICE_DISCOVERY_FAILED (u1Byte)208
#endif // #ifndef __INC_P2P_PROTOCOL_SPEC_H
|