1 /*****************************************************************************
3 * Copyright (c) 2012 - 2019 Samsung Electronics Co., Ltd. All rights reserved
5 ****************************************************************************/
6 #ifndef __SLSI_NL80211_VENDOR_NAN_H_
7 #define __SLSI_NL80211_VENDOR_NAN_H_
9 #define SLSI_NAN_TLV_TAG_CONFIGURATION 0x0101
10 #define SLSI_NAN_TLV_TAG_2G4_BAND_SPECIFIC_CONFIG 0x0102
11 #define SLSI_NAN_TLV_TAG_5G_BAND_SPECIFIC_CONFIG 0x0103
12 #define SLSI_NAN_TLV_TAG_SUBSCRIBE_SPECIFIC 0x0104
13 #define SLSI_NAN_TLV_TAG_DISCOVERY_COMMON_SPECIFIC 0x0105
14 #define SLSI_NAN_TLV_TAG_SERVICE_NAME 0x0106
15 #define SLSI_NAN_TLV_TAG_SERVICE_SPECIFIC_INFO 0x0107
16 #define SLSI_NAN_TLV_TAG_EXT_SERVICE_SPECIFIC_INFO 0x0108
17 #define SLSI_NAN_TLV_TAG_RX_MATCH_FILTER 0x0109
18 #define SLSI_NAN_TLV_TAG_TX_MATCH_FILTER 0x010a
19 #define SLSI_NAN_TLV_TAG_MATCH_FILTER 0x010b
20 #define SLSI_NAN_TLV_TAG_INTERFACE_ADDRESS_SET 0x010c
21 #define SLSI_NAN_TLV_TAG_MATCH_IND 0x010d
22 #define SLSI_NAN_TLV_TAG_DATA_PATH_SECURITY 0x010e
23 #define SLSI_NAN_TLV_TAG_APP_INFO 0x010f
24 #define SLSI_NAN_TLV_TAG_RANGING 0x0110
25 #define SLSI_NAN_TLV_WFA_IPV6_LOCAL_LINK 0x0000
27 #define SLSI_NAN_MAX_SERVICE_ID 16
29 #define SLSI_NAN_MAX_NDP_INSTANCES 8
30 #define SLSI_NAN_DATA_IFINDEX_START 5
32 enum SLSI_NAN_REPLY_ATTRIBUTES
{
33 NAN_REPLY_ATTR_STATUS_TYPE
,
35 NAN_REPLY_ATTR_RESPONSE_TYPE
,
36 NAN_REPLY_ATTR_PUBLISH_SUBSCRIBE_TYPE
,
37 NAN_REPLY_ATTR_CAP_MAX_CONCURRENT_CLUSTER
,
38 NAN_REPLY_ATTR_CAP_MAX_PUBLISHES
,
39 NAN_REPLY_ATTR_CAP_MAX_SUBSCRIBES
,
40 NAN_REPLY_ATTR_CAP_MAX_SERVICE_NAME_LEN
,
41 NAN_REPLY_ATTR_CAP_MAX_MATCH_FILTER_LEN
,
42 NAN_REPLY_ATTR_CAP_MAX_TOTAL_MATCH_FILTER_LEN
,
43 NAN_REPLY_ATTR_CAP_MAX_SERVICE_SPECIFIC_INFO_LEN
,
44 NAN_REPLY_ATTR_CAP_MAX_VSA_DATA_LEN
,
45 NAN_REPLY_ATTR_CAP_MAX_MESH_DATA_LEN
,
46 NAN_REPLY_ATTR_CAP_MAX_NDI_INTERFACES
,
47 NAN_REPLY_ATTR_CAP_MAX_NDP_SESSIONS
,
48 NAN_REPLY_ATTR_CAP_MAX_APP_INFO_LEN
,
49 NAN_REPLY_ATTR_NDP_INSTANCE_ID
,
50 NAN_REPLY_ATTR_CAP_MAX_QUEUED_TRANSMIT_FOLLOWUP_MGS
,
51 NAN_REPLY_ATTR_CAP_MAX_NDP_SUPPORTED_BANDS
,
52 NAN_REPLY_ATTR_CAP_MAX_CIPHER_SUITES_SUPPORTED
,
53 NAN_REPLY_ATTR_CAP_MAX_SCID_LEN
,
54 NAN_REPLY_ATTR_CAP_NDP_SECURITY_SUPPORTED
,
55 NAN_REPLY_ATTR_CAP_MAX_SDEA_SERVICE_SPECIFIC_INFO_LEN
,
56 NAN_REPLY_ATTR_CAP_MAX_SUBSCRIBE_ADDRESS
,
57 NAN_REPLY_ATTR_CAP_NDPE_ATTR_SUPPORTED
,
58 NAN_REPLY_ATTR_HAL_TRANSACTION_ID
61 enum SLSI_NAN_REQ_ATTRIBUTES
{
62 NAN_REQ_ATTR_MASTER_PREF
,
63 NAN_REQ_ATTR_CLUSTER_LOW
,
64 NAN_REQ_ATTR_CLUSTER_HIGH
,
65 NAN_REQ_ATTR_HOP_COUNT_LIMIT_VAL
,
66 NAN_REQ_ATTR_SID_BEACON_VAL
,
67 NAN_REQ_ATTR_SUPPORT_2G4_VAL
,
68 NAN_REQ_ATTR_SUPPORT_5G_VAL
,
69 NAN_REQ_ATTR_RSSI_CLOSE_2G4_VAL
,
70 NAN_REQ_ATTR_RSSI_MIDDLE_2G4_VAL
,
71 NAN_REQ_ATTR_RSSI_PROXIMITY_2G4_VAL
,
72 NAN_REQ_ATTR_BEACONS_2G4_VAL
= 10,
73 NAN_REQ_ATTR_SDF_2G4_VAL
,
74 NAN_REQ_ATTR_CHANNEL_2G4_MHZ_VAL
,
75 NAN_REQ_ATTR_RSSI_PROXIMITY_VAL
,
76 NAN_REQ_ATTR_RSSI_CLOSE_5G_VAL
,
77 NAN_REQ_ATTR_RSSI_CLOSE_PROXIMITY_5G_VAL
,
78 NAN_REQ_ATTR_RSSI_MIDDLE_5G_VAL
,
79 NAN_REQ_ATTR_RSSI_PROXIMITY_5G_VAL
,
80 NAN_REQ_ATTR_BEACON_5G_VAL
,
81 NAN_REQ_ATTR_SDF_5G_VAL
,
82 NAN_REQ_ATTR_CHANNEL_5G_MHZ_VAL
= 20,
83 NAN_REQ_ATTR_RSSI_WINDOW_SIZE_VAL
,
85 NAN_REQ_ATTR_MAC_ADDR_VAL
,
86 NAN_REQ_ATTR_CLUSTER_VAL
,
87 NAN_REQ_ATTR_SOCIAL_CH_SCAN_DWELL_TIME
,
88 NAN_REQ_ATTR_SOCIAL_CH_SCAN_PERIOD
,
89 NAN_REQ_ATTR_RANDOM_FACTOR_FORCE_VAL
,
90 NAN_REQ_ATTR_HOP_COUNT_FORCE_VAL
,
91 NAN_REQ_ATTR_CONN_CAPABILITY_PAYLOAD_TX
,
92 NAN_REQ_ATTR_CONN_CAPABILITY_IBSS
= 30,
93 NAN_REQ_ATTR_CONN_CAPABILITY_WFD
,
94 NAN_REQ_ATTR_CONN_CAPABILITY_WFDS
,
95 NAN_REQ_ATTR_CONN_CAPABILITY_TDLS
,
96 NAN_REQ_ATTR_CONN_CAPABILITY_MESH
,
97 NAN_REQ_ATTR_CONN_CAPABILITY_WLAN_INFRA
,
98 NAN_REQ_ATTR_DISCOVERY_ATTR_NUM_ENTRIES
,
99 NAN_REQ_ATTR_DISCOVERY_ATTR_VAL
,
100 NAN_REQ_ATTR_CONN_TYPE
,
101 NAN_REQ_ATTR_NAN_ROLE
,
102 NAN_REQ_ATTR_TRANSMIT_FREQ
= 40,
103 NAN_REQ_ATTR_AVAILABILITY_DURATION
,
104 NAN_REQ_ATTR_AVAILABILITY_INTERVAL
,
105 NAN_REQ_ATTR_MESH_ID_LEN
,
106 NAN_REQ_ATTR_MESH_ID
,
107 NAN_REQ_ATTR_INFRASTRUCTURE_SSID_LEN
,
108 NAN_REQ_ATTR_INFRASTRUCTURE_SSID
,
109 NAN_REQ_ATTR_FURTHER_AVAIL_NUM_ENTRIES
,
110 NAN_REQ_ATTR_FURTHER_AVAIL_VAL
,
111 NAN_REQ_ATTR_FURTHER_AVAIL_ENTRY_CTRL
,
112 NAN_REQ_ATTR_FURTHER_AVAIL_CHAN_CLASS
= 50,
113 NAN_REQ_ATTR_FURTHER_AVAIL_CHAN
,
114 NAN_REQ_ATTR_FURTHER_AVAIL_CHAN_MAPID
,
115 NAN_REQ_ATTR_FURTHER_AVAIL_INTERVAL_BITMAP
,
116 NAN_REQ_ATTR_PUBLISH_ID
,
117 NAN_REQ_ATTR_PUBLISH_TTL
,
118 NAN_REQ_ATTR_PUBLISH_PERIOD
,
119 NAN_REQ_ATTR_PUBLISH_TYPE
,
120 NAN_REQ_ATTR_PUBLISH_TX_TYPE
,
121 NAN_REQ_ATTR_PUBLISH_COUNT
,
122 NAN_REQ_ATTR_PUBLISH_SERVICE_NAME_LEN
= 60,
123 NAN_REQ_ATTR_PUBLISH_SERVICE_NAME
,
124 NAN_REQ_ATTR_PUBLISH_MATCH_ALGO
,
125 NAN_REQ_ATTR_PUBLISH_SERVICE_INFO_LEN
,
126 NAN_REQ_ATTR_PUBLISH_SERVICE_INFO
,
127 NAN_REQ_ATTR_PUBLISH_RX_MATCH_FILTER_LEN
,
128 NAN_REQ_ATTR_PUBLISH_RX_MATCH_FILTER
,
129 NAN_REQ_ATTR_PUBLISH_TX_MATCH_FILTER_LEN
,
130 NAN_REQ_ATTR_PUBLISH_TX_MATCH_FILTER
,
131 NAN_REQ_ATTR_PUBLISH_RSSI_THRESHOLD_FLAG
,
132 NAN_REQ_ATTR_PUBLISH_CONN_MAP
= 70,
133 NAN_REQ_ATTR_PUBLISH_RECV_IND_CFG
,
134 NAN_REQ_ATTR_SUBSCRIBE_ID
,
135 NAN_REQ_ATTR_SUBSCRIBE_TTL
,
136 NAN_REQ_ATTR_SUBSCRIBE_PERIOD
,
137 NAN_REQ_ATTR_SUBSCRIBE_TYPE
,
138 NAN_REQ_ATTR_SUBSCRIBE_RESP_FILTER_TYPE
,
139 NAN_REQ_ATTR_SUBSCRIBE_RESP_INCLUDE
,
140 NAN_REQ_ATTR_SUBSCRIBE_USE_RESP_FILTER
,
141 NAN_REQ_ATTR_SUBSCRIBE_SSI_REQUIRED
,
142 NAN_REQ_ATTR_SUBSCRIBE_MATCH_INDICATOR
= 80,
143 NAN_REQ_ATTR_SUBSCRIBE_COUNT
,
144 NAN_REQ_ATTR_SUBSCRIBE_SERVICE_NAME_LEN
,
145 NAN_REQ_ATTR_SUBSCRIBE_SERVICE_NAME
,
146 NAN_REQ_ATTR_SUBSCRIBE_SERVICE_INFO_LEN
,
147 NAN_REQ_ATTR_SUBSCRIBE_SERVICE_INFO
,
148 NAN_REQ_ATTR_SUBSCRIBE_RX_MATCH_FILTER_LEN
,
149 NAN_REQ_ATTR_SUBSCRIBE_RX_MATCH_FILTER
,
150 NAN_REQ_ATTR_SUBSCRIBE_TX_MATCH_FILTER_LEN
,
151 NAN_REQ_ATTR_SUBSCRIBE_TX_MATCH_FILTER
,
152 NAN_REQ_ATTR_SUBSCRIBE_RSSI_THRESHOLD_FLAG
= 90,
153 NAN_REQ_ATTR_SUBSCRIBE_CONN_MAP
,
154 NAN_REQ_ATTR_SUBSCRIBE_NUM_INTF_ADDR_PRESENT
,
155 NAN_REQ_ATTR_SUBSCRIBE_INTF_ADDR
,
156 NAN_REQ_ATTR_SUBSCRIBE_RECV_IND_CFG
,
157 NAN_REQ_ATTR_FOLLOWUP_ID
,
158 NAN_REQ_ATTR_FOLLOWUP_REQUESTOR_ID
,
159 NAN_REQ_ATTR_FOLLOWUP_ADDR
,
160 NAN_REQ_ATTR_FOLLOWUP_PRIORITY
,
161 NAN_REQ_ATTR_FOLLOWUP_SERVICE_NAME_LEN
,
162 NAN_REQ_ATTR_FOLLOWUP_SERVICE_NAME
= 100,
163 NAN_REQ_ATTR_FOLLOWUP_TX_WINDOW
,
164 NAN_REQ_ATTR_FOLLOWUP_RECV_IND_CFG
,
165 NAN_REQ_ATTR_SUBSCRIBE_SID_BEACON_VAL
,
166 NAN_REQ_ATTR_DW_2G4_INTERVAL
,
167 NAN_REQ_ATTR_DW_5G_INTERVAL
,
168 NAN_REQ_ATTR_DISC_MAC_ADDR_RANDOM_INTERVAL
,
169 NAN_REQ_ATTR_PUBLISH_SDEA_LEN
,
170 NAN_REQ_ATTR_PUBLISH_SDEA
,
171 NAN_REQ_ATTR_RANGING_AUTO_RESPONSE
,
172 NAN_REQ_ATTR_SDEA_PARAM_NDP_TYPE
= 110,
173 NAN_REQ_ATTR_SDEA_PARAM_SECURITY_CFG
,
174 NAN_REQ_ATTR_SDEA_PARAM_RANGING_STATE
,
175 NAN_REQ_ATTR_SDEA_PARAM_RANGE_REPORT
,
176 NAN_REQ_ATTR_SDEA_PARAM_QOS_CFG
,
177 NAN_REQ_ATTR_RANGING_CFG_INTERVAL
,
178 NAN_REQ_ATTR_RANGING_CFG_INDICATION
,
179 NAN_REQ_ATTR_RANGING_CFG_INGRESS_MM
,
180 NAN_REQ_ATTR_RANGING_CFG_EGRESS_MM
,
181 NAN_REQ_ATTR_CIPHER_TYPE
,
182 NAN_REQ_ATTR_SCID_LEN
= 120,
184 NAN_REQ_ATTR_SECURITY_KEY_TYPE
,
185 NAN_REQ_ATTR_SECURITY_PMK_LEN
,
186 NAN_REQ_ATTR_SECURITY_PMK
,
187 NAN_REQ_ATTR_SECURITY_PASSPHRASE_LEN
,
188 NAN_REQ_ATTR_SECURITY_PASSPHRASE
,
189 NAN_REQ_ATTR_RANGE_RESPONSE_CFG_PUBLISH_ID
,
190 NAN_REQ_ATTR_RANGE_RESPONSE_CFG_REQUESTOR_ID
,
191 NAN_REQ_ATTR_RANGE_RESPONSE_CFG_PEER_ADDR
,
192 NAN_REQ_ATTR_RANGE_RESPONSE_CFG_RANGING_RESPONSE
= 130,
193 NAN_REQ_ATTR_REQ_INSTANCE_ID
,
194 NAN_REQ_ATTR_NDP_INSTANCE_ID
,
195 NAN_REQ_ATTR_CHAN_REQ_TYPE
,
197 NAN_REQ_ATTR_DATA_INTERFACE_NAME_LEN
,
198 NAN_REQ_ATTR_DATA_INTERFACE_NAME
,
199 NAN_REQ_ATTR_APP_INFO_LEN
,
200 NAN_REQ_ATTR_APP_INFO
,
201 NAN_REQ_ATTR_SERVICE_NAME_LEN
,
202 NAN_REQ_ATTR_SERVICE_NAME
= 140,
203 NAN_REQ_ATTR_NDP_RESPONSE_CODE
,
204 NAN_REQ_ATTR_USE_NDPE_ATTR
,
205 NAN_REQ_ATTR_HAL_TRANSACTION_ID
208 enum SLSI_NAN_RESP_ATTRIBUTES
{
209 NAN_RESP_ATTR_MAX_CONCURRENT_NAN_CLUSTERS
,
210 NAN_RESP_ATTR_MAX_PUBLISHES
,
211 NAN_RESP_ATTR_MAX_SUBSCRIBES
,
212 NAN_RESP_ATTR_MAX_SERVICE_NAME_LEN
,
213 NAN_RESP_ATTR_MAX_MATCH_FILTER_LEN
,
214 NAN_RESP_ATTR_MAX_TOTAL_MATCH_FILTER_LEN
,
215 NAN_RESP_ATTR_MAX_SERVICE_SPECIFIC_INFO_LEN
,
216 NAN_RESP_ATTR_MAX_VSA_DATA_LEN
,
217 NAN_RESP_ATTR_MAX_MESH_DATA_LEN
,
218 NAN_RESP_ATTR_MAX_NDI_INTERFACES
,
219 NAN_RESP_ATTR_MAX_NDP_SESSIONS
,
220 NAN_RESP_ATTR_MAX_APP_INFO_LEN
,
221 NAN_RESP_ATTR_SUBSCRIBE_ID
,
222 NAN_RESP_ATTR_PUBLISH_ID
225 enum SLSI_NAN_EVT_ATTRIBUTES
{
226 NAN_EVT_ATTR_MATCH_PUBLISH_SUBSCRIBE_ID
,
227 NAN_EVT_ATTR_MATCH_REQUESTOR_INSTANCE_ID
,
228 NAN_EVT_ATTR_MATCH_ADDR
,
229 NAN_EVT_ATTR_MATCH_SERVICE_SPECIFIC_INFO_LEN
,
230 NAN_EVT_ATTR_MATCH_SERVICE_SPECIFIC_INFO
,
231 NAN_EVT_ATTR_MATCH_SDF_MATCH_FILTER_LEN
,
232 NAN_EVT_ATTR_MATCH_SDF_MATCH_FILTER
,
233 NAN_EVT_ATTR_MATCH_MATCH_OCCURRED_FLAG
,
234 NAN_EVT_ATTR_MATCH_OUT_OF_RESOURCE_FLAG
,
235 NAN_EVT_ATTR_MATCH_RSSI_VALUE
,
236 NAN_EVT_ATTR_MATCH_CONN_CAPABILITY_IS_WFD_SUPPORTED
= 10,
237 NAN_EVT_ATTR_MATCH_CONN_CAPABILITY_IS_WFDS_SUPPORTED
,
238 NAN_EVT_ATTR_MATCH_CONN_CAPABILITY_IS_TDLS_SUPPORTED
,
239 NAN_EVT_ATTR_MATCH_CONN_CAPABILITY_IS_IBSS_SUPPORTED
,
240 NAN_EVT_ATTR_MATCH_CONN_CAPABILITY_IS_MESH_SUPPORTED
,
241 NAN_EVT_ATTR_MATCH_CONN_CAPABILITY_WLAN_INFRA_FIELD
,
242 NAN_EVT_ATTR_MATCH_NUM_RX_DISCOVERY_ATTR
,
243 NAN_EVT_ATTR_MATCH_RX_DISCOVERY_ATTR
,
244 NAN_EVT_ATTR_MATCH_DISC_ATTR_TYPE
,
245 NAN_EVT_ATTR_MATCH_DISC_ATTR_ROLE
,
246 NAN_EVT_ATTR_MATCH_DISC_ATTR_DURATION
= 20,
247 NAN_EVT_ATTR_MATCH_DISC_ATTR_AVAIL_INTERVAL_BITMAP
,
248 NAN_EVT_ATTR_MATCH_DISC_ATTR_MAPID
,
249 NAN_EVT_ATTR_MATCH_DISC_ATTR_ADDR
,
250 NAN_EVT_ATTR_MATCH_DISC_ATTR_MESH_ID_LEN
,
251 NAN_EVT_ATTR_MATCH_DISC_ATTR_MESH_ID
,
252 NAN_EVT_ATTR_MATCH_DISC_ATTR_INFRASTRUCTURE_SSID_LEN
,
253 NAN_EVT_ATTR_MATCH_DISC_ATTR_INFRASTRUCTURE_SSID_VAL
,
254 NAN_EVT_ATTR_MATCH_NUM_CHANS
,
255 NAN_EVT_ATTR_MATCH_FAMCHAN
,
256 NAN_EVT_ATTR_MATCH_FAM_ENTRY_CONTROL
= 30,
257 NAN_EVT_ATTR_MATCH_FAM_CLASS_VAL
,
258 NAN_EVT_ATTR_MATCH_FAM_CHANNEL
,
259 NAN_EVT_ATTR_MATCH_FAM_MAPID
,
260 NAN_EVT_ATTR_MATCH_FAM_AVAIL_INTERVAL_BITMAP
,
261 NAN_EVT_ATTR_MATCH_CLUSTER_ATTRIBUTE_LEN
,
262 NAN_EVT_ATTR_MATCH_CLUSTER_ATTRIBUTE
,
263 NAN_EVT_ATTR_PUBLISH_ID
,
264 NAN_EVT_ATTR_PUBLISH_REASON
,
265 NAN_EVT_ATTR_SUBSCRIBE_ID
,
266 NAN_EVT_ATTR_SUBSCRIBE_REASON
= 40,
267 NAN_EVT_ATTR_DISABLED_REASON
,
268 NAN_EVT_ATTR_FOLLOWUP_PUBLISH_SUBSCRIBE_ID
,
269 NAN_EVT_ATTR_FOLLOWUP_REQUESTOR_INSTANCE_ID
,
270 NAN_EVT_ATTR_FOLLOWUP_ADDR
,
271 NAN_EVT_ATTR_FOLLOWUP_DW_OR_FAW
,
272 NAN_EVT_ATTR_FOLLOWUP_SERVICE_SPECIFIC_INFO_LEN
,
273 NAN_EVT_ATTR_FOLLOWUP_SERVICE_SPECIFIC_INFO
,
274 NAN_EVT_ATTR_DISCOVERY_ENGINE_EVT_TYPE
,
275 NAN_EVT_ATTR_DISCOVERY_ENGINE_MAC_ADDR
,
276 NAN_EVT_ATTR_DISCOVERY_ENGINE_CLUSTER
= 50,
278 NAN_EVT_ATTR_SDEA_LEN
,
280 NAN_EVT_ATTR_SCID_LEN
,
281 NAN_EVT_ATTR_SDEA_PARAM_CONFIG_NAN_DATA_PATH
,
282 NAN_EVT_ATTR_SDEA_PARAM_NDP_TYPE
,
283 NAN_EVT_ATTR_SDEA_PARAM_SECURITY_CONFIG
,
284 NAN_EVT_ATTR_SDEA_PARAM_RANGE_STATE
,
285 NAN_EVT_ATTR_SDEA_PARAM_RANGE_REPORT
,
286 NAN_EVT_ATTR_SDEA_PARAM_QOS_CFG
= 60,
287 NAN_EVT_ATTR_RANGE_MEASUREMENT_MM
,
288 NAN_EVT_ATTR_RANGEING_EVENT_TYPE
,
289 NAN_EVT_ATTR_SECURITY_CIPHER_TYPE
,
291 NAN_EVT_ATTR_SERVICE_INSTANCE_ID
,
292 NAN_EVT_ATTR_NDP_INSTANCE_ID
,
293 NAN_EVT_ATTR_NDP_RSP_CODE
,
294 NAN_EVT_ATTR_STATUS_CODE
,
295 NAN_EVT_ATTR_CHANNEL_INFO
,
296 NAN_EVT_ATTR_APP_INFO_LEN
= 70,
297 NAN_EVT_ATTR_APP_INFO
,
298 NAN_EVT_ATTR_CHANNEL
,
299 NAN_EVT_ATTR_CHANNEL_BW
,
300 NAN_EVT_ATTR_CHANNEL_NSS
,
301 NAN_EVT_ATTR_HAL_TRANSACTION_ID
304 #define SLSI_FAPI_NAN_CONFIG_PARAM_SID_BEACON 0X0003
305 #define SLSI_FAPI_NAN_CONFIG_PARAM_2_4_RSSI_CLOSE 0X0004
306 #define SLSI_FAPI_NAN_CONFIG_PARAM_2_4_RSSI_MIDDLE 0X0005
307 #define SLSI_FAPI_NAN_CONFIG_PARAM_2_4_RSSI_PROXIMITY 0X0006
308 #define SLSI_FAPI_NAN_CONFIG_PARAM_BAND_USAGE 0X0007
309 #define SLSI_FAPI_NAN_CONFIG_PARAM_5_RSSI_CLOSE 0X0008
310 #define SLSI_FAPI_NAN_CONFIG_PARAM_5_RSSI_MIDDLE 0X0009
311 #define SLSI_FAPI_NAN_CONFIG_PARAM_5_RSSI_PROXIMITY 0X000A
312 #define SLSI_FAPI_NAN_CONFIG_PARAM_HOP_COUNT_LIMIT 0X000B
313 #define SLSI_FAPI_NAN_CONFIG_PARAM_RSSI_WINDOW_SIZE 0X000C
314 #define SLSI_FAPI_NAN_CONFIG_PARAM_SCAN_PARAMETER_2_4 0X000D
315 #define SLSI_FAPI_NAN_CONFIG_PARAM_SCAN_PARAMETER_5 0X000E
316 #define SLSI_FAPI_NAN_CONFIG_PARAM_MASTER_PREFERENCE 0X000F
317 #define SLSI_FAPI_NAN_CONFIG_PARAM_CONNECTION_CAPAB 0X0010
318 #define SLSI_FAPI_NAN_CONFIG_PARAM_POST_DISCOVER_PARAM 0X0011
319 #define SLSI_FAPI_NAN_CONFIG_PARAM_FURTHER_AVAIL_CHANNEL_MAP 0X0012
320 #define SLSI_FAPI_NAN_CONFIG_PARAM_ADDR_RANDOM_INTERVAL 0X0013
321 #define SLSI_FAPI_NAN_SERVICE_NAME 0X0020
322 #define SLSI_FAPI_NAN_SERVICE_SPECIFIC_INFO 0X0021
323 #define SLSI_FAPI_NAN_RX_MATCH_FILTER 0X0022
324 #define SLSI_FAPI_NAN_TX_MATCH_FILTER 0X0023
325 #define SLSI_FAPI_NAN_SDF_MATCH_FILTER 0X0024
326 #define SLSI_FAPI_NAN_CLUSTER_ATTRIBUTE 0X0025
327 #define SLSI_FAPI_NAN_INTERFACE_ADDRESS_SET 0X0026
328 #define SLSI_FAPI_NAN_SDEA 0X0027
330 #define SLSI_HAL_NAN_MAX_SOCIAL_CHANNELS 3
331 #define SLSI_HAL_NAN_MAX_SERVICE_NAME_LEN 255
332 #define SLSI_HAL_NAN_MAX_SERVICE_SPECIFIC_INFO_LEN 1024
333 #define SLSI_HAL_NAN_MAX_MATCH_FILTER_LEN 255
334 #define SLSI_HAL_NAN_MAX_SUBSCRIBE_MAX_ADDRESS 42
335 #define SLSI_HAL_NAN_MAX_POSTDISCOVERY_LEN 5
336 #define SLSI_HAL_NAN_MAX_SDEA_SERVICE_SPEC_INFO_LEN 1024
337 #define SLSI_HAL_NAN_DP_MAX_APP_INFO_LEN 512
339 enum slsi_wifi_hal_nan_status_type
{
340 /* NAN Protocol Response Codes */
341 SLSI_HAL_NAN_STATUS_SUCCESS
= 0,
342 /* NAN Discovery Engine/Host driver failures */
343 SLSI_HAL_NAN_STATUS_INTERNAL_FAILURE
= 1,
344 /* NAN OTA failures */
345 SLSI_HAL_NAN_STATUS_PROTOCOL_FAILURE
= 2,
346 /* if the publish/subscribe id is invalid */
347 SLSI_HAL_NAN_STATUS_INVALID_PUBLISH_SUBSCRIBE_ID
= 3,
348 /* If we run out of resources allocated */
349 SLSI_HAL_NAN_STATUS_NO_RESOURCE_AVAILABLE
= 4,
350 /* if invalid params are passed */
351 SLSI_HAL_NAN_STATUS_INVALID_PARAM
= 5,
352 /* if the requestor instance id is invalid */
353 SLSI_HAL_NAN_STATUS_INVALID_REQUESTOR_INSTANCE_ID
= 6,
354 /* if the ndp id is invalid */
355 SLSI_HAL_NAN_STATUS_INVALID_NDP_ID
= 7,
356 /* if NAN is enabled when wifi is turned off */
357 SLSI_HAL_NAN_STATUS_NAN_NOT_ALLOWED
= 8,
358 /* if over the air ack is not received */
359 SLSI_HAL_NAN_STATUS_NO_OTA_ACK
= 9,
360 /* If NAN is already enabled and we are try to re-enable the same */
361 SLSI_HAL_NAN_STATUS_ALREADY_ENABLED
= 10,
362 /* If followup message internal queue is full */
363 SLSI_HAL_NAN_STATUS_FOLLOWUP_QUEUE_FULL
= 11,
364 /* Unsupported concurrency session enabled, NAN disabled notified */
365 SLSI_HAL_NAN_STATUS_UNSUPPORTED_CONCURRENCY_NAN_DISABLED
= 12
368 enum slsi_nan_status_type
{
369 /* NAN Protocol Response Codes */
370 NAN_STATUS_SUCCESS
= 0,
371 NAN_STATUS_TIMEOUT
= 1,
372 NAN_STATUS_DE_FAILURE
= 2,
373 NAN_STATUS_INVALID_MSG_VERSION
= 3,
374 NAN_STATUS_INVALID_MSG_LEN
= 4,
375 NAN_STATUS_INVALID_MSG_ID
= 5,
376 NAN_STATUS_INVALID_HANDLE
= 6,
377 NAN_STATUS_NO_SPACE_AVAILABLE
= 7,
378 NAN_STATUS_INVALID_PUBLISH_TYPE
= 8,
379 NAN_STATUS_INVALID_TX_TYPE
= 9,
380 NAN_STATUS_INVALID_MATCH_ALGORITHM
= 10,
381 NAN_STATUS_DISABLE_IN_PROGRESS
= 11,
382 NAN_STATUS_INVALID_TLV_LEN
= 12,
383 NAN_STATUS_INVALID_TLV_TYPE
= 13,
384 NAN_STATUS_MISSING_TLV_TYPE
= 14,
385 NAN_STATUS_INVALID_TOTAL_TLVS_LEN
= 15,
386 NAN_STATUS_INVALID_MATCH_HANDLE
= 16,
387 NAN_STATUS_INVALID_TLV_VALUE
= 17,
388 NAN_STATUS_INVALID_TX_PRIORITY
= 18,
389 NAN_STATUS_INVALID_CONNECTION_MAP
= 19,
390 NAN_STATUS_INVALID_TCA_ID
= 20,
391 NAN_STATUS_INVALID_STATS_ID
= 21,
392 NAN_STATUS_NAN_NOT_ALLOWED
= 22,
393 NAN_STATUS_NO_OTA_ACK
= 23,
394 NAN_STATUS_TX_FAIL
= 24,
395 /* 25-4095 Reserved */
396 /* NAN Configuration Response codes */
397 NAN_STATUS_INVALID_RSSI_CLOSE_VALUE
= 4096,
398 NAN_STATUS_INVALID_RSSI_MIDDLE_VALUE
= 4097,
399 NAN_STATUS_INVALID_HOP_COUNT_LIMIT
= 4098,
400 NAN_STATUS_INVALID_MASTER_PREFERENCE_VALUE
= 4099,
401 NAN_STATUS_INVALID_LOW_CLUSTER_ID_VALUE
= 4100,
402 NAN_STATUS_INVALID_HIGH_CLUSTER_ID_VALUE
= 4101,
403 NAN_STATUS_INVALID_BACKGROUND_SCAN_PERIOD
= 4102,
404 NAN_STATUS_INVALID_RSSI_PROXIMITY_VALUE
= 4103,
405 NAN_STATUS_INVALID_SCAN_CHANNEL
= 4104,
406 NAN_STATUS_INVALID_POST_NAN_CONNECTIVITY_CAPABILITIES_BITMAP
= 4105,
407 NAN_STATUS_INVALID_FURTHER_AVAILABILITY_MAP_NUMCHAN_VALUE
= 4106,
408 NAN_STATUS_INVALID_FURTHER_AVAILABILITY_MAP_DURATION_VALUE
= 4107,
409 NAN_STATUS_INVALID_FURTHER_AVAILABILITY_MAP_CLASS_VALUE
= 4108,
410 NAN_STATUS_INVALID_FURTHER_AVAILABILITY_MAP_CHANNEL_VALUE
= 4109,
411 NAN_STATUS_INVALID_FURTHER_AVAILABILITY_MAP_AVAILABILITY_INTERVAL_BITMAP_VALUE
= 4110,
412 NAN_STATUS_INVALID_FURTHER_AVAILABILITY_MAP_MAP_ID
= 4111,
413 NAN_STATUS_INVALID_POST_NAN_DISCOVERY_CONN_TYPE_VALUE
= 4112,
414 NAN_STATUS_INVALID_POST_NAN_DISCOVERY_DEVICE_ROLE_VALUE
= 4113,
415 NAN_STATUS_INVALID_POST_NAN_DISCOVERY_DURATION_VALUE
= 4114,
416 NAN_STATUS_INVALID_POST_NAN_DISCOVERY_BITMAP_VALUE
= 4115,
417 NAN_STATUS_MISSING_FUTHER_AVAILABILITY_MAP
= 4116,
418 NAN_STATUS_INVALID_BAND_CONFIG_FLAGS
= 4117,
419 NAN_STATUS_INVALID_RANDOM_FACTOR_UPDATE_TIME_VALUE
= 4118,
420 NAN_STATUS_INVALID_ONGOING_SCAN_PERIOD
= 4119,
421 NAN_STATUS_INVALID_DW_INTERVAL_VALUE
= 4120,
422 NAN_STATUS_INVALID_DB_INTERVAL_VALUE
= 4121,
423 /* 4122-8191 RESERVED */
424 NAN_TERMINATED_REASON_INVALID
= 8192,
425 NAN_TERMINATED_REASON_TIMEOUT
= 8193,
426 NAN_TERMINATED_REASON_USER_REQUEST
= 8194,
427 NAN_TERMINATED_REASON_FAILURE
= 8195,
428 NAN_TERMINATED_REASON_COUNT_REACHED
= 8196,
429 NAN_TERMINATED_REASON_DE_SHUTDOWN
= 8197,
430 NAN_TERMINATED_REASON_DISABLE_IN_PROGRESS
= 8198,
431 NAN_TERMINATED_REASON_POST_DISC_ATTR_EXPIRED
= 8199,
432 NAN_TERMINATED_REASON_POST_DISC_LEN_EXCEEDED
= 8200,
433 NAN_TERMINATED_REASON_FURTHER_AVAIL_MAP_EMPTY
= 8201
436 enum slsi_nan_response_type
{
437 NAN_RESPONSE_ENABLED
= 0,
438 NAN_RESPONSE_DISABLED
= 1,
439 NAN_RESPONSE_PUBLISH
= 2,
440 NAN_RESPONSE_PUBLISH_CANCEL
= 3,
441 NAN_RESPONSE_TRANSMIT_FOLLOWUP
= 4,
442 NAN_RESPONSE_SUBSCRIBE
= 5,
443 NAN_RESPONSE_SUBSCRIBE_CANCEL
= 6,
444 NAN_RESPONSE_STATS
= 7,
445 NAN_RESPONSE_CONFIG
= 8,
446 NAN_RESPONSE_TCA
= 9,
447 NAN_RESPONSE_ERROR
= 10,
448 NAN_RESPONSE_BEACON_SDF_PAYLOAD
= 11,
449 NAN_RESPONSE_GET_CAPABILITIES
= 12,
450 NAN_DP_INTERFACE_CREATE
= 13,
451 NAN_DP_INTERFACE_DELETE
= 14,
452 NAN_DP_INITIATOR_RESPONSE
= 15,
453 NAN_DP_RESPONDER_RESPONSE
= 16,
457 enum slsi_nan_disc_event_type
{
458 NAN_EVENT_ID_DISC_MAC_ADDR
= 0,
459 NAN_EVENT_ID_STARTED_CLUSTER
,
460 NAN_EVENT_ID_JOINED_CLUSTER
463 enum slsi_nan_data_path_response_code
{
464 NAN_DP_REQUEST_ACCEPT
= 0,
465 NAN_DP_REQUEST_REJECT
468 struct slsi_hal_nan_social_channel_scan_params
{
469 u8 dwell_time
[SLSI_HAL_NAN_MAX_SOCIAL_CHANNELS
];
470 u16 scan_period
[SLSI_HAL_NAN_MAX_SOCIAL_CHANNELS
];
473 struct slsi_hal_nan_connectivity_capability
{
474 u8 payload_transmit_flag
;
476 u8 is_wfds_supported
;
477 u8 is_tdls_supported
;
478 u8 is_ibss_supported
;
479 u8 is_mesh_supported
;
483 struct slsi_hal_nan_post_discovery_param
{
484 u8 type
; /* NanConnectionType */
485 u8 role
; /* NanDeviceRole */
487 u8 duration
; /* NanAvailDuration */
488 u32 avail_interval_bitmap
;
492 u16 infrastructure_ssid_len
;
493 u8 infrastructure_ssid_val
[32];
496 struct slsi_hal_nan_further_availability_channel
{
497 /* struct slsi_hal_nan_further_availability_channel*/
502 u32 avail_interval_bitmap
;
505 struct slsi_hal_nan_further_availability_map
{
507 struct slsi_hal_nan_further_availability_channel famchan
[32];
510 struct slsi_hal_nan_receive_post_discovery
{
514 u32 avail_interval_bitmap
;
519 u16 infrastructure_ssid_len
;
520 u8 infrastructure_ssid_val
[32];
523 struct slsi_nan_sdea_ctrl_params
{
524 u8 config_nan_data_path
;
532 struct slsi_nan_ranging_cfg
{
533 u32 ranging_interval_msec
;
534 u32 config_ranging_indications
;
535 u32 distance_ingress_mm
;
536 u32 distance_egress_mm
;
539 struct slsi_nan_range_response_cfg
{
541 u32 requestor_instance_id
;
542 u8 peer_addr
[ETH_ALEN
];
546 #define SLSI_NAN_PMK_INFO_LEN 32
547 #define SLSI_NAN_SECURITY_MAX_PASSPHRASE_LEN 63
548 #define SLSI_NAN_MAX_SCID_BUF_LEN 1024
549 struct slsi_nan_security_pmk
{
551 u8 pmk
[SLSI_NAN_PMK_INFO_LEN
];
554 struct slsi_nan_security_passphrase
{
556 u8 passphrase
[SLSI_NAN_SECURITY_MAX_PASSPHRASE_LEN
];
559 struct slsi_nan_security_key_info
{
562 struct slsi_nan_security_pmk pmk_info
;
563 struct slsi_nan_security_passphrase passphrase_info
;
567 struct slsi_nan_security_info
{
570 u8 scid
[SLSI_NAN_MAX_SCID_BUF_LEN
];
571 struct slsi_nan_security_key_info key_info
;
574 struct slsi_hal_nan_enable_req
{
576 /* Mandatory parameters below */
581 u8 config_support_5g
;
583 u8 config_sid_beacon
;
585 u8 config_2dot4g_rssi_close
;
586 u8 rssi_close_2dot4g_val
;
588 u8 config_2dot4g_rssi_middle
;
589 u8 rssi_middle_2dot4g_val
;
591 u8 config_2dot4g_rssi_proximity
;
592 u8 rssi_proximity_2dot4g_val
;
594 u8 config_hop_count_limit
;
595 u8 hop_count_limit_val
;
597 u8 config_2dot4g_support
;
598 u8 support_2dot4g_val
;
600 u8 config_2dot4g_beacons
;
601 u8 beacon_2dot4g_val
;
602 u8 config_2dot4g_sdf
;
604 u8 config_5g_beacons
;
608 u8 config_5g_rssi_close
;
609 u8 rssi_close_5g_val
;
610 u8 config_5g_rssi_middle
;
611 u8 rssi_middle_5g_val
;
612 u8 config_5g_rssi_close_proximity
;
613 u8 rssi_close_proximity_5g_val
;
614 u8 config_rssi_window_size
;
615 u8 rssi_window_size_val
;
616 /* The 24 bit Organizationally Unique ID + the 8 bit Network Id. */
620 u8 intf_addr_val
[ETH_ALEN
];
622 u8 config_cluster_attribute_val
;
623 u8 config_scan_params
;
624 struct slsi_hal_nan_social_channel_scan_params scan_params_val
;
625 u8 config_random_factor_force
;
626 u8 random_factor_force_val
;
627 u8 config_hop_count_force
;
628 u8 hop_count_force_val
;
630 /* channel frequency in MHz to enable Nan on */
631 u8 config_24g_channel
;
634 u8 config_5g_channel
;
636 u8 config_subscribe_sid_beacon
;
637 u32 subscribe_sid_beacon_val
;
639 /*NanConfigDW config_dw*/
640 u8 config_2dot4g_dw_band
;
641 u32 dw_2dot4g_interval_val
;
642 u8 config_5g_dw_band
;
643 u32 dw_5g_interval_val
;
644 u32 disc_mac_addr_rand_interval_sec
;
647 struct slsi_hal_nan_publish_req
{
649 /* id 0 means new publish, any other id is existing publish */
651 /* how many seconds to run for. 0 means forever until canceled */
653 /* periodicity of OTA unsolicited publish.
654 * Specified in increments of 500 ms
657 u8 publish_type
;/* 0= unsolicited, solicited = 1, 2= both */
658 u8 tx_type
; /* 0 = broadcast, 1= unicast if solicited publish */
659 /* number of OTA Publish, 0 means forever until canceled */
661 u16 service_name_len
;
662 u8 service_name
[SLSI_HAL_NAN_MAX_SERVICE_NAME_LEN
];
663 u8 publish_match_indicator
;
665 u16 service_specific_info_len
;
666 u8 service_specific_info
[SLSI_HAL_NAN_MAX_SERVICE_SPECIFIC_INFO_LEN
];
668 u16 rx_match_filter_len
;
669 u8 rx_match_filter
[SLSI_HAL_NAN_MAX_MATCH_FILTER_LEN
];
671 u16 tx_match_filter_len
;
672 u8 tx_match_filter
[SLSI_HAL_NAN_MAX_MATCH_FILTER_LEN
];
674 u8 rssi_threshold_flag
;
676 /* 8-bit bitmap which allows the Host to associate this publish
677 * with a particular Post-NAN Connectivity attribute
678 * which has been sent down in a NanConfigureRequest/NanEnableRequest
679 * message. If the DE fails to find a configured Post-NAN
680 * connectivity attributes referenced by the bitmap,
681 * the DE will return an error code to the Host.
682 * If the Publish is configured to use a Post-NAN Connectivity
683 * attribute and the Host does not refresh the Post-NAN Connectivity
684 * attribute the Publish will be canceled and the Host will be sent
685 * a PublishTerminatedIndication message.
688 /* Set/Enable corresponding bits to disable any
689 * indications that follow a publish.
690 * BIT0 - Disable publish termination indication.
691 * BIT1 - Disable match expired indication.
692 * BIT2 - Disable followUp indication received (OTA).
694 u8 recv_indication_cfg
;
696 u8 service_responder_policy
;
697 struct slsi_nan_security_info sec_info
;
698 struct slsi_nan_sdea_ctrl_params sdea_params
;
699 struct slsi_nan_ranging_cfg ranging_cfg
;
700 u8 ranging_auto_response
;
701 struct slsi_nan_range_response_cfg range_response_cfg
;
703 u16 sdea_service_specific_info_len
;
704 u8 sdea_service_specific_info
[SLSI_HAL_NAN_MAX_SDEA_SERVICE_SPEC_INFO_LEN
];
707 struct slsi_hal_nan_subscribe_req
{
709 /* id 0 means new subscribe, non zero is existing subscribe */
711 /* how many seconds to run for. 0 means forever until canceled */
713 /* periodicity of OTA Active Subscribe. Units in increments
714 * of 500 ms , 0 = attempt every DW
718 /* Flag which specifies how the Subscribe request shall be processed. */
719 u8 subscribe_type
; /* 0 - PASSIVE , 1- ACTIVE */
721 /* Flag which specifies on Active Subscribes how the Service Response
722 * Filter attribute is populated.
724 u8 service_response_filter
; /* 0 - Bloom Filter, 1 - MAC Addr */
726 /* Flag which specifies how the Service Response Filter Include
728 * 0=Do not respond if in the Address Set, 1= Respond
730 u8 service_response_include
;
732 /* Flag which specifies if the Service Response Filter
733 * should be used when creating Subscribes.
734 * 0=Do not send the Service Response Filter,1= send
736 u8 use_service_response_filter
;
738 /* Flag which specifies if the Service Specific Info is needed in
739 * the Publish message before creating the MatchIndication
741 u8 ssi_required_for_match_indication
; /* 0=Not needed, 1= Required */
743 /* Field which specifies how matching indication to host is controlled.
744 * 0 - Match and Indicate Once
745 * 1 - Match and Indicate continuous
746 * 2 - Match and Indicate never. This means don't
747 * indicate match to host.
750 u8 subscribe_match_indicator
;
752 /* The number of Subscribe Matches which should occur
753 * before the Subscribe request is automatically terminated.
755 /* If this value is 0 this field is not used by DE.*/
758 /* length of service name */
759 /* UTF-8 encoded string identifying the service */
760 u16 service_name_len
;
761 u8 service_name
[SLSI_HAL_NAN_MAX_SERVICE_NAME_LEN
];
763 /* Sequence of values which further specify the published service
764 * beyond the service name
766 u16 service_specific_info_len
;
767 u8 service_specific_info
[SLSI_HAL_NAN_MAX_SERVICE_SPECIFIC_INFO_LEN
];
769 /* Ordered sequence of <length, value> pairs used to filter out
770 * received publish discovery messages.
771 * This can be sent both for a Passive or an Active Subscribe
773 u16 rx_match_filter_len
;
774 u8 rx_match_filter
[SLSI_HAL_NAN_MAX_MATCH_FILTER_LEN
];
776 /* Ordered sequence of <length, value> pairs included in the
777 * Discovery Frame when an Active Subscribe is used.
779 u16 tx_match_filter_len
;
780 u8 tx_match_filter
[SLSI_HAL_NAN_MAX_MATCH_FILTER_LEN
];
781 u8 rssi_threshold_flag
;
784 /* NAN Interface Address, conforming to the format as described in
785 * 8.2.4.3.2 of IEEE Std. 802.11-2012.
787 u8 num_intf_addr_present
;
788 u8 intf_addr
[SLSI_HAL_NAN_MAX_SUBSCRIBE_MAX_ADDRESS
][ETH_ALEN
];
789 /* Set/Enable corresponding bits to disable
790 * indications that follow a subscribe.
791 * BIT0 - Disable subscribe termination indication.
792 * BIT1 - Disable match expired indication.
793 * BIT2 - Disable followUp indication received (OTA).
795 u8 recv_indication_cfg
;
797 struct slsi_nan_security_info sec_info
;
798 struct slsi_nan_sdea_ctrl_params sdea_params
;
799 struct slsi_nan_ranging_cfg ranging_cfg
;
800 u8 ranging_auto_response
;
801 struct slsi_nan_range_response_cfg range_response_cfg
;
803 u16 sdea_service_specific_info_len
;
804 u8 sdea_service_specific_info
[SLSI_HAL_NAN_MAX_SDEA_SERVICE_SPEC_INFO_LEN
];
807 struct slsi_hal_nan_transmit_followup_req
{
809 /* Publish or Subscribe Id of an earlier Publish/Subscribe */
810 u16 publish_subscribe_id
;
812 /* This Id is the Requestor Instance that is passed as
813 * part of earlier MatchInd/FollowupInd message.
815 u32 requestor_instance_id
;
816 u8 addr
[ETH_ALEN
]; /* Unicast address */
817 u8 priority
; /* priority of the request 2=high */
818 u8 dw_or_faw
; /* 0= send in a DW, 1=send in FAW */
820 /* Sequence of values which further specify the published service beyond
823 u16 service_specific_info_len
;
824 u8 service_specific_info
[SLSI_HAL_NAN_MAX_SERVICE_SPECIFIC_INFO_LEN
];
825 /* Set/Enable corresponding bits to disable
826 * responses after followUp.
827 * BIT0 - Disable followUp response from FW.
829 u8 recv_indication_cfg
;
831 u16 sdea_service_specific_info_len
;
832 u8 sdea_service_specific_info
[SLSI_HAL_NAN_MAX_SDEA_SERVICE_SPEC_INFO_LEN
];
835 struct slsi_hal_nan_config_req
{
837 u8 config_sid_beacon
;
839 u8 config_rssi_proximity
;
841 u8 config_master_pref
;
843 /* 1 byte value which defines the RSSI filter threshold.
844 * Any Service Descriptors received above this value
845 * that are configured for RSSI filtering will be dropped.
846 * The rssi values should be specified without sign.
847 * For eg: -70dBm should be specified as 70.
849 u8 config_5g_rssi_close_proximity
;
850 u8 rssi_close_proximity_5g_val
;
851 u8 config_rssi_window_size
;
852 u16 rssi_window_size_val
;
853 /* If set to 1, the Discovery Engine will enclose the Cluster
854 * Attribute only sent in Beacons in a Vendor Specific Attribute
855 * and transmit in a Service Descriptor Frame.
857 u8 config_cluster_attribute_val
;
858 u8 config_scan_params
;
859 struct slsi_hal_nan_social_channel_scan_params scan_params_val
;
860 /* 1 byte quantity which forces the Random Factor to a particular
861 * value for all transmitted Sync/Discovery beacons
863 u8 config_random_factor_force
;
864 u8 random_factor_force_val
;
865 /* 1 byte quantity which forces the HC for all transmitted Sync and
866 * Discovery Beacon NO matter the real HC being received over the
869 u8 config_hop_count_force
;
870 u8 hop_count_force_val
;
871 /* NAN Post Connectivity Capability */
872 u8 config_conn_capability
;
873 struct slsi_hal_nan_connectivity_capability conn_capability_val
;
874 /* NAN Post Discover Capability */
875 u8 num_config_discovery_attr
;
876 struct slsi_hal_nan_post_discovery_param discovery_attr_val
[SLSI_HAL_NAN_MAX_POSTDISCOVERY_LEN
];
877 /* NAN Further availability Map */
879 struct slsi_hal_nan_further_availability_map fam_val
;
882 u8 config_subscribe_sid_beacon
;
883 u32 subscribe_sid_beacon_val
;
885 /*NanConfigDW config_dw*/
886 u8 config_2dot4g_dw_band
;
887 u32 dw_2dot4g_interval_val
;
888 u8 config_5g_dw_band
;
889 u32 dw_5g_interval_val
;
890 u32 disc_mac_addr_rand_interval_sec
;
892 /* Values Added from enable Req*/
896 u8 config_support_5g
;
899 u8 config_2dot4g_rssi_close
;
900 u8 rssi_close_2dot4g_val
;
902 u8 config_2dot4g_rssi_middle
;
903 u8 rssi_middle_2dot4g_val
;
904 u8 config_hop_count_limit
;
905 u8 hop_count_limit_val
;
907 u8 config_2dot4g_support
;
908 u8 support_2dot4g_val
;
910 u8 config_2dot4g_beacons
;
911 u8 beacon_2dot4g_val
;
912 u8 config_2dot4g_sdf
;
914 u8 config_5g_beacons
;
918 u8 config_5g_rssi_close
;
919 u8 rssi_close_5g_val
;
920 u8 config_5g_rssi_middle
;
921 u8 rssi_middle_5g_val
;
923 /* The 24 bit Organizationally Unique ID + the 8 bit Network Id. */
927 u8 intf_addr_val
[ETH_ALEN
];
929 /* channel frequency in MHz to enable Nan on */
930 u8 config_24g_channel
;
934 struct slsi_hal_nan_data_path_cfg
{
939 struct slsi_hal_nan_data_path_app_info
{
940 u16 ndp_app_info_len
;
941 u8 ndp_app_info
[SLSI_HAL_NAN_DP_MAX_APP_INFO_LEN
];
944 struct slsi_hal_nan_data_path_initiator_req
{
946 u32 requestor_instance_id
;
947 u8 channel_request_type
;
949 u8 peer_disc_mac_addr
[ETH_ALEN
];
950 char ndp_iface
[IFNAMSIZ
+ 1];
951 struct slsi_hal_nan_data_path_cfg ndp_cfg
;
952 struct slsi_hal_nan_data_path_app_info app_info
;
953 struct slsi_nan_security_info key_info
;
954 u32 service_name_len
;
955 u8 service_name
[SLSI_HAL_NAN_MAX_SERVICE_NAME_LEN
];
958 struct slsi_hal_nan_data_path_indication_response
{
961 char ndp_iface
[IFNAMSIZ
+ 1];
962 struct slsi_hal_nan_data_path_cfg ndp_cfg
;
963 struct slsi_hal_nan_data_path_app_info app_info
;
965 struct slsi_nan_security_info key_info
;
967 u8 service_name
[SLSI_HAL_NAN_MAX_SERVICE_NAME_LEN
];
970 struct slsi_hal_nan_data_end
{
972 u8 num_ndp_instances
;
973 u32 ndp_instance_id
[SLSI_NAN_MAX_NDP_INSTANCES
];
976 struct slsi_hal_nan_capabilities
{
977 u32 max_concurrent_nan_clusters
;
980 u32 max_service_name_len
;
981 u32 max_match_filter_len
;
982 u32 max_total_match_filter_len
;
983 u32 max_service_specific_info_len
;
984 u32 max_vsa_data_len
;
985 u32 max_mesh_data_len
;
986 u32 max_ndi_interfaces
;
987 u32 max_ndp_sessions
;
988 u32 max_app_info_len
;
991 struct slsi_hal_nan_followup_ind
{
992 u16 publish_subscribe_id
;
993 u32 requestor_instance_id
;
996 u16 service_specific_info_len
;
997 u8 service_specific_info
[SLSI_HAL_NAN_MAX_SERVICE_SPECIFIC_INFO_LEN
];
998 u16 sdea_service_specific_info_len
;
999 u8 sdea_service_specific_info
[SLSI_HAL_NAN_MAX_SDEA_SERVICE_SPEC_INFO_LEN
];
1002 struct slsi_hal_nan_match_ind
{
1003 u16 publish_subscribe_id
;
1004 u32 requestor_instance_id
;
1006 u16 service_specific_info_len
;
1007 u8 service_specific_info
[SLSI_HAL_NAN_MAX_SERVICE_SPECIFIC_INFO_LEN
];
1008 u16 sdf_match_filter_len
;
1009 u8 sdf_match_filter
[SLSI_HAL_NAN_MAX_MATCH_FILTER_LEN
];
1010 u8 match_occurred_flag
;
1011 u8 out_of_resource_flag
;
1013 u8 is_conn_capability_valid
;
1014 struct slsi_hal_nan_connectivity_capability conn_capability
;
1015 u8 num_rx_discovery_attr
;
1016 struct slsi_hal_nan_receive_post_discovery discovery_attr
[SLSI_HAL_NAN_MAX_POSTDISCOVERY_LEN
];
1018 struct slsi_hal_nan_further_availability_channel famchan
[32];
1019 u8 cluster_attribute_len
;
1020 u8 cluster_attribute
[32];
1021 struct slsi_nan_security_info sec_info
;
1022 struct slsi_nan_sdea_ctrl_params peer_sdea_params
;
1023 u32 range_measurement_mm
;
1024 u32 ranging_event_type
;
1025 u16 sdea_service_specific_info_len
;
1026 u8 sdea_service_specific_info
[SLSI_HAL_NAN_MAX_SDEA_SERVICE_SPEC_INFO_LEN
];
1029 struct slsi_hal_nan_channel_info
{
1035 struct slsi_nan_data_path_request_ind
{
1036 u16 service_instance_id
;
1037 u8 peer_disc_mac_addr
[ETH_ALEN
];
1038 u32 ndp_instance_id
;
1039 struct slsi_hal_nan_data_path_cfg ndp_cfg
;
1040 struct slsi_hal_nan_data_path_app_info app_info
;
1043 #define SLSI_HAL_NAN_MAX_CHANNEL_INFO_SUPPORTED 4
1044 struct slsi_hal_nan_data_path_confirm_ind
{
1045 u32 ndp_instance_id
;
1046 u8 peer_ndi_mac_addr
[ETH_ALEN
];
1047 struct slsi_hal_nan_data_path_app_info app_info
;
1051 struct slsi_hal_nan_channel_info channel_info
[SLSI_HAL_NAN_MAX_CHANNEL_INFO_SUPPORTED
];
1054 struct slsi_hal_nan_data_path_end_ind
{
1055 u8 num_ndp_instances
;
1056 u32 ndp_instance_id
[SLSI_NAN_MAX_NDP_INSTANCES
];
1059 void slsi_nan_event(struct slsi_dev
*sdev
, struct net_device
*dev
, struct sk_buff
*skb
);
1060 void slsi_nan_followup_ind(struct slsi_dev
*sdev
, struct net_device
*dev
, struct sk_buff
*skb
);
1061 void slsi_nan_service_ind(struct slsi_dev
*sdev
, struct net_device
*dev
, struct sk_buff
*skb
);
1062 void slsi_nan_get_mac(struct slsi_dev
*sdev
, char *nan_mac_addr
);
1063 struct net_device
*slsi_nan_get_netdev(struct slsi_dev
*sdev
);
1064 int slsi_nan_enable(struct wiphy
*wiphy
, struct wireless_dev
*wdev
, const void *data
, int len
);
1065 int slsi_nan_disable(struct wiphy
*wiphy
, struct wireless_dev
*wdev
, const void *data
, int len
);
1066 int slsi_nan_publish(struct wiphy
*wiphy
, struct wireless_dev
*wdev
, const void *data
, int len
);
1067 int slsi_nan_publish_cancel(struct wiphy
*wiphy
, struct wireless_dev
*wdev
,
1068 const void *data
, int len
);
1069 int slsi_nan_subscribe(struct wiphy
*wiphy
, struct wireless_dev
*wdev
, const void *data
, int len
);
1070 int slsi_nan_subscribe_cancel(struct wiphy
*wiphy
, struct wireless_dev
*wdev
, const void *data
, int len
);
1071 int slsi_nan_transmit_followup(struct wiphy
*wiphy
, struct wireless_dev
*wdev
, const void *data
, int len
);
1072 int slsi_nan_set_config(struct wiphy
*wiphy
, struct wireless_dev
*wdev
, const void *data
, int len
);
1073 int slsi_nan_get_capabilities(struct wiphy
*wiphy
, struct wireless_dev
*wdev
, const void *data
, int len
);
1074 int slsi_nan_data_iface_create(struct wiphy
*wiphy
, struct wireless_dev
*wdev
, const void *data
, int len
);
1075 int slsi_nan_data_iface_delete(struct wiphy
*wiphy
, struct wireless_dev
*wdev
, const void *data
, int len
);
1076 int slsi_nan_ndp_initiate(struct wiphy
*wiphy
, struct wireless_dev
*wdev
, const void *data
, int len
);
1077 int slsi_nan_ndp_respond(struct wiphy
*wiphy
, struct wireless_dev
*wdev
, const void *data
, int len
);
1078 int slsi_nan_ndp_end(struct wiphy
*wiphy
, struct wireless_dev
*wdev
, const void *data
, int len
);
1079 int slsi_nan_ndp_new_entry(struct slsi_dev
*sdev
, struct net_device
*dev
, u32 ndp_id
,
1080 u16 ndl_vif_id
, u8
*local_ndi
, u8
*peer_nmi
);
1081 void slsi_nan_ndp_del_entry(struct slsi_dev
*sdev
, struct net_device
*dev
, u32 ndp_id
);
1082 void slsi_nan_ndp_setup_ind(struct slsi_dev
*sdev
, struct net_device
*dev
, struct sk_buff
*skb
, bool is_req_ind
);
1083 void slsi_nan_ndp_requested_ind(struct slsi_dev
*sdev
, struct net_device
*dev
, struct sk_buff
*skb
);
1084 void slsi_nan_ndp_termination_ind(struct slsi_dev
*sdev
, struct net_device
*dev
, struct sk_buff
*skb
,
1085 bool is_terminated_ind
);
1086 u32
slsi_nan_get_ndp_from_ndl_local_ndi(struct net_device
*dev
, u16 ndl_vif_id
, u8
*local_ndi
);
1087 void slsi_nan_del_peer(struct slsi_dev
*sdev
, struct net_device
*dev
, u8
*local_ndi
, u16 ndp_id
);
1088 void slsi_nan_ndp_termination_handler(struct slsi_dev
*sdev
, struct net_device
*dev
, u16 ndp_id
, u16 ndl_vif
, u8
*ndi
);