about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/libwifi/core/frame/tag.c343
-rw-r--r--src/libwifi/core/frame/tag.h8
2 files changed, 351 insertions, 0 deletions
diff --git a/src/libwifi/core/frame/tag.c b/src/libwifi/core/frame/tag.c index 1d43c55..4180f11 100644 --- a/src/libwifi/core/frame/tag.c +++ b/src/libwifi/core/frame/tag.c
@@ -145,3 +145,346 @@ int libwifi_check_tag(struct libwifi_tagged_parameters *tags, int tag_number) {
145 145
146 return tag_count; 146 return tag_count;
147} 147}
148
149char* libwifi_get_tag_name(int tag_number) {
150 switch (tag_number) {
151 case TAG_SSID:
152 return "TAG_SSID";
153 case TAG_SUPP_RATES:
154 return "TAG_SUPP_RATES";
155 case TAG_DS_PARAMETER:
156 return "TAG_DS_PARAMETER";
157 case TAG_CF_PARAMETER:
158 return "TAG_CF_PARAMETER";
159 case TAG_TIM:
160 return "TAG_TIM";
161 case TAG_BSS_PARAMETERS:
162 return "TAG_BSS_PARAMETERS";
163 case TAG_COUNTRY:
164 return "TAG_COUNTRY";
165 case TAG_REQUEST:
166 return "TAG_REQUEST";
167 case TAG_BSS_LOAD:
168 return "TAG_BSS_LOAD";
169 case TAG_EDCA_PARAMETERS:
170 return "TAG_EDCA_PARAMETERS";
171 case TAG_TSPEC:
172 return "TAG_TSPEC";
173 case TAG_TCLAS:
174 return "TAG_TCLAS";
175 case TAG_SCHEDULE:
176 return "TAG_SCHEDULE";
177 case TAG_CHALLENGE_TEXT:
178 return "TAG_CHALLENGE_TEXT";
179 case TAG_POWER_CONSTRAINT:
180 return "TAG_POWER_CONSTRAINT";
181 case TAG_POWER_CAPABILITY:
182 return "TAG_POWER_CAPABILITY";
183 case TAG_TPC_REQUEST:
184 return "TAG_TPC_REQUEST";
185 case TAG_TPC_REPORT:
186 return "TAG_TPC_REPORT";
187 case TAG_SUPPORTED_CHANNELS:
188 return "TAG_SUPPORTED_CHANNELS";
189 case TAG_CHANNEL_SWITCH_ANNOUNCEMENT:
190 return "TAG_CHANNEL_SWITCH_ANNOUNCEMENT";
191 case TAG_MEASUREMENT_REQUEST:
192 return "TAG_MEASUREMENT_REQUEST";
193 case TAG_MEASUREMENT_REPORT:
194 return "TAG_MEASUREMENT_REPORT";
195 case TAG_QUIET:
196 return "TAG_QUIET";
197 case TAG_IBSS_DFS:
198 return "TAG_IBSS_DFS";
199 case TAG_ERP:
200 return "TAG_ERP";
201 case TAG_TS_DELAY:
202 return "TAG_TS_DELAY";
203 case TAG_TCLAS_PROCESSING:
204 return "TAG_TCLAS_PROCESSING";
205 case TAG_HT_CAPABILITIES:
206 return "TAG_HT_CAPABILITIES";
207 case TAG_QOS_CAPABILITY:
208 return "TAG_QOS_CAPABILITY";
209 case TAG_RSN:
210 return "TAG_RSN";
211 case TAG_EXTENDED_SUPPORTED_RATES:
212 return "TAG_EXTENDED_SUPPORTED_RATES";
213 case TAG_AP_CHANNEL_REPORT:
214 return "TAG_AP_CHANNEL_REPORT";
215 case TAG_NEIGHBOR_REPORT:
216 return "TAG_NEIGHBOR_REPORT";
217 case TAG_RCPI:
218 return "TAG_RCPI";
219 case TAG_MOBILITY_DOMAIN:
220 return "TAG_MOBILITY_DOMAIN";
221 case TAG_FAST_BSS_TRANSITION:
222 return "TAG_FAST_BSS_TRANSITION";
223 case TAG_TIMEOUT_INTERVAL:
224 return "TAG_TIMEOUT_INTERVAL";
225 case TAG_RIC_DATA:
226 return "TAG_RIC_DATA";
227 case TAG_DSE_REGISTERED_LOCATION:
228 return "TAG_DSE_REGISTERED_LOCATION";
229 case TAG_SUPPORTED_OPERATING_CLASSES:
230 return "TAG_SUPPORTED_OPERATING_CLASSES";
231 case TAG_EXTENDED_CHANNEL_SWITCH_ANNOUNCEMENT:
232 return "TAG_EXTENDED_CHANNEL_SWITCH_ANNOUNCEMENT";
233 case TAG_HT_OPERATION:
234 return "TAG_HT_OPERATION";
235 case TAG_SECONDARY_CHANNEL_OFFSET:
236 return "TAG_SECONDARY_CHANNEL_OFFSET";
237 case TAG_BSS_AVERAGE_ACCESS_DELAY:
238 return "TAG_BSS_AVERAGE_ACCESS_DELAY";
239 case TAG_ANTENNA:
240 return "TAG_ANTENNA";
241 case TAG_RSNI:
242 return "TAG_RSNI";
243 case TAG_MEASUREMENT_PILOT_TRANSMISSION:
244 return "TAG_MEASUREMENT_PILOT_TRANSMISSION";
245 case TAG_BSS_AVAILABLE_ADMISSION_CAPACITY:
246 return "TAG_BSS_AVAILABLE_ADMISSION_CAPACITY";
247 case TAG_BSS_AC_ACCESS_DELAY:
248 return "TAG_BSS_AC_ACCESS_DELAY";
249 case TAG_TIME_ADVERTISEMENT:
250 return "TAG_TIME_ADVERTISEMENT";
251 case TAG_RM_ENABLED_CAPABILITIES:
252 return "TAG_RM_ENABLED_CAPABILITIES";
253 case TAG_MULTIPLE_BSSID:
254 return "TAG_MULTIPLE_BSSID";
255 case TAG_BSS_COEXISTENCE:
256 return "TAG_BSS_COEXISTENCE";
257 case TAG_BSS_INTOLERANT_CHANNEL_REPORT:
258 return "TAG_BSS_INTOLERANT_CHANNEL_REPORT";
259 case TAG_OVERLAPPING_BSS_PARAMETERS:
260 return "TAG_OVERLAPPING_BSS_PARAMETERS";
261 case TAG_RIC_DESCRIPTOR:
262 return "TAG_RIC_DESCRIPTOR";
263 case TAG_MANAGEMENT_MIC:
264 return "TAG_MANAGEMENT_MIC";
265 case TAG_EVENT_REQUEST:
266 return "TAG_EVENT_REQUEST";
267 case TAG_EVENT_REPORT:
268 return "TAG_EVENT_REPORT";
269 case TAG_DIAGNOSTIC_REQUEST:
270 return "TAG_DIAGNOSTIC_REQUEST";
271 case TAG_DIAGNOSTIC_REPORT:
272 return "TAG_DIAGNOSTIC_REPORT";
273 case TAG_LOCATION_PARAMTERS:
274 return "TAG_LOCATION_PARAMTERS";
275 case TAG_NONTRANSMITTED_BSSID_CAPABILITY:
276 return "TAG_NONTRANSMITTED_BSSID_CAPABILITY";
277 case TAG_SSID_LIST:
278 return "TAG_SSID_LIST";
279 case TAG_MULTIPLE_BSSID_INDEX:
280 return "TAG_MULTIPLE_BSSID_INDEX";
281 case TAG_FMS_DESCRIPTOR:
282 return "TAG_FMS_DESCRIPTOR";
283 case TAG_FMS_REQUEST:
284 return "TAG_FMS_REQUEST";
285 case TAG_FMS_RESPONSE:
286 return "TAG_FMS_RESPONSE";
287 case TAG_QOS_TRAFFIC_CAPABILITY:
288 return "TAG_QOS_TRAFFIC_CAPABILITY";
289 case TAG_BSS_MAX_IDLE_PERIOD:
290 return "TAG_BSS_MAX_IDLE_PERIOD";
291 case TAG_TFS_REQUEST:
292 return "TAG_TFS_REQUEST";
293 case TAG_TFS_RESPONSE:
294 return "TAG_TFS_RESPONSE";
295 case TAG_WNM_SLEEP_MODE:
296 return "TAG_WNM_SLEEP_MODE";
297 case TAG_TIM_BROADCAST_REQUEST:
298 return "TAG_TIM_BROADCAST_REQUEST";
299 case TAG_TIM_BROADCAST_RESPONSE:
300 return "TAG_TIM_BROADCAST_RESPONSE";
301 case TAG_COLLOCATED_INTERFERENCE_REPORT:
302 return "TAG_COLLOCATED_INTERFERENCE_REPORT";
303 case TAG_CHANNEL_USAGE:
304 return "TAG_CHANNEL_USAGE";
305 case TAG_TIME_ZONE:
306 return "TAG_TIME_ZONE";
307 case TAG_DMS_REQUEST:
308 return "TAG_DMS_REQUEST";
309 case TAG_DMS_RESPONSE:
310 return "TAG_DMS_RESPONSE";
311 case TAG_LINK_IDENTIFIER:
312 return "TAG_LINK_IDENTIFIER";
313 case TAG_WAKEUP_SCHEDULE:
314 return "TAG_WAKEUP_SCHEDULE";
315 case TAG_CHANNEL_SWITCH_TIMING:
316 return "TAG_CHANNEL_SWITCH_TIMING";
317 case TAG_PTI_CONTROL:
318 return "TAG_PTI_CONTROL";
319 case TAG_TPU_BUFFER_STATUS:
320 return "TAG_TPU_BUFFER_STATUS";
321 case TAG_INTERWORKING:
322 return "TAG_INTERWORKING";
323 case TAG_ADVERTISEMENT_PROTOCOL:
324 return "TAG_ADVERTISEMENT_PROTOCOL";
325 case TAG_EXPEDITED_BANDWIDTH_REQUEST:
326 return "TAG_EXPEDITED_BANDWIDTH_REQUEST";
327 case TAG_QOS_MAP:
328 return "TAG_QOS_MAP";
329 case TAG_ROAMING_CONSORTIUM:
330 return "TAG_ROAMING_CONSORTIUM";
331 case TAG_EMERGENCY_ALERT_IDENTIFIER:
332 return "TAG_EMERGENCY_ALERT_IDENTIFIER";
333 case TAG_MESH_CONFIGURATION:
334 return "TAG_MESH_CONFIGURATION";
335 case TAG_MESH_ID:
336 return "TAG_MESH_ID";
337 case TAG_MESH_LINK_METRIC_REPORT:
338 return "TAG_MESH_LINK_METRIC_REPORT";
339 case TAG_CONGESTION_NOTIFICATION:
340 return "TAG_CONGESTION_NOTIFICATION";
341 case TAG_MESH_PEERING_MANAGEMENT:
342 return "TAG_MESH_PEERING_MANAGEMENT";
343 case TAG_MESH_CHANNEL_SWITCH_PARAMETERS:
344 return "TAG_MESH_CHANNEL_SWITCH_PARAMETERS";
345 case TAG_MESH_AWAKE_WINDOW:
346 return "TAG_MESH_AWAKE_WINDOW";
347 case TAG_BEACON_TIMING:
348 return "TAG_BEACON_TIMING";
349 case TAG_MCCAOP_SETUP_REQUEST:
350 return "TAG_MCCAOP_SETUP_REQUEST";
351 case TAG_MCCAOP_SETUP_REPLY:
352 return "TAG_MCCAOP_SETUP_REPLY";
353 case TAG_MCCAOP_ADVERTISEMENT:
354 return "TAG_MCCAOP_ADVERTISEMENT";
355 case TAG_MCCAOP_TEARDOWN:
356 return "TAG_MCCAOP_TEARDOWN";
357 case TAG_GANN:
358 return "TAG_GANN";
359 case TAG_RANN:
360 return "TAG_RANN";
361 case TAG_EXTENDED_CAPABILITIES:
362 return "TAG_EXTENDED_CAPABILITIES";
363 case TAG_PREQ:
364 return "TAG_PREQ";
365 case TAG_PREP:
366 return "TAG_PREP";
367 case TAG_PERR:
368 return "TAG_PERR";
369 case TAG_PXU:
370 return "TAG_PXU";
371 case TAG_PXUC:
372 return "TAG_PXUC";
373 case TAG_AUTHENTICATED_MESH_PEERING_EXCHANGE:
374 return "TAG_AUTHENTICATED_MESH_PEERING_EXCHANGE";
375 case TAG_MIC:
376 return "TAG_MIC";
377 case TAG_DESTINATION_URI:
378 return "TAG_DESTINATION_URI";
379 case TAG_U_APSD_COEXISTENCE:
380 return "TAG_U_APSD_COEXISTENCE";
381 case TAG_DMG_WAKEUP_SCHEDULE:
382 return "TAG_DMG_WAKEUP_SCHEDULE";
383 case TAG_EXTENDED_SCHEDULE:
384 return "TAG_EXTENDED_SCHEDULE";
385 case TAG_STA_AVAILABILITY:
386 return "TAG_STA_AVAILABILITY";
387 case TAG_DMG_TSPEC:
388 return "TAG_DMG_TSPEC";
389 case TAG_NEXT_DMG_ATI:
390 return "TAG_NEXT_DMG_ATI";
391 case TAG_DMG_OPERATION:
392 return "TAG_DMG_OPERATION";
393 case TAG_DMG_BSS_PARAMETER_CHANGE:
394 return "TAG_DMG_BSS_PARAMETER_CHANGE";
395 case TAG_DMG_BEAM_REFINEMENT:
396 return "TAG_DMG_BEAM_REFINEMENT";
397 case TAG_CHANNEL_MEASUREMENT_FEEDBACK:
398 return "TAG_CHANNEL_MEASUREMENT_FEEDBACK";
399 case TAG_AWAKE_WINDOW:
400 return "TAG_AWAKE_WINDOW";
401 case TAG_MULTI_BAND:
402 return "TAG_MULTI_BAND";
403 case TAG_ADDBA_EXTENSION:
404 return "TAG_ADDBA_EXTENSION";
405 case TAG_NEXTPCP_LIST:
406 return "TAG_NEXTPCP_LIST";
407 case TAG_PCP_HANDOVER:
408 return "TAG_PCP_HANDOVER";
409 case TAG_DMG_LINK_MARGIN:
410 return "TAG_DMG_LINK_MARGIN";
411 case TAG_SWITCHING_STREAM:
412 return "TAG_SWITCHING_STREAM";
413 case TAG_SESSION_TRANSITION:
414 return "TAG_SESSION_TRANSITION";
415 case TAG_DYNAMIC_TONE_PAIRING_REPORT:
416 return "TAG_DYNAMIC_TONE_PAIRING_REPORT";
417 case TAG_CLUSTER_REPORT:
418 return "TAG_CLUSTER_REPORT";
419 case TAG_RELAY_CAPABILITIES:
420 return "TAG_RELAY_CAPABILITIES";
421 case TAG_RELAY_TRANSFER_PARAMETER_SET:
422 return "TAG_RELAY_TRANSFER_PARAMETER_SET";
423 case TAG_BEAMLINK_MAINTENANCE:
424 return "TAG_BEAMLINK_MAINTENANCE";
425 case TAG_MULTIPLE_MAC_SUBLAYERS:
426 return "TAG_MULTIPLE_MAC_SUBLAYERS";
427 case TAG_U_PID:
428 return "TAG_U_PID";
429 case TAG_DMG_LINK_ADAPTATION_ACKNOWLEDGEMENT:
430 return "TAG_DMG_LINK_ADAPTATION_ACKNOWLEDGEMENT";
431 case TAG_MCCAOP_ADVERTISEMENT_OVERVIEW:
432 return "TAG_MCCAOP_ADVERTISEMENT_OVERVIEW";
433 case TAG_QUIET_PERIOD_REQUEST:
434 return "TAG_QUIET_PERIOD_REQUEST";
435 case TAG_QUIET_PERIOD_RESPONSE:
436 return "TAG_QUIET_PERIOD_RESPONSE";
437 case TAG_QMF_POLICY:
438 return "TAG_QMF_POLICY";
439 case TAG_ECAPC_POLICY:
440 return "TAG_ECAPC_POLICY";
441 case TAG_CLUSTER_TIME_OFFSET:
442 return "TAG_CLUSTER_TIME_OFFSET";
443 case TAG_INTRA_ACCESS_CATEGORY_PRIORITY:
444 return "TAG_INTRA_ACCESS_CATEGORY_PRIORITY";
445 case TAG_SCS_DESCRIPTOR:
446 return "TAG_SCS_DESCRIPTOR";
447 case TAG_QLOAD_REPORT:
448 return "TAG_QLOAD_REPORT";
449 case TAG_HCCA_TXOP_UPDATE_COUNT:
450 return "TAG_HCCA_TXOP_UPDATE_COUNT";
451 case TAG_HIGHER_LAYER_STREAM_ID:
452 return "TAG_HIGHER_LAYER_STREAM_ID";
453 case TAG_GCR_GROUP_ADDRESS:
454 return "TAG_GCR_GROUP_ADDRESS";
455 case TAG_ANTENNA_SECTOR_ID_PATTERN:
456 return "TAG_ANTENNA_SECTOR_ID_PATTERN";
457 case TAG_VHT_CAPABILITIES:
458 return "TAG_VHT_CAPABILITIES";
459 case TAG_VHT_OPERATION:
460 return "TAG_VHT_OPERATION";
461 case TAG_EXTENDED_BSS_LOAD:
462 return "TAG_EXTENDED_BSS_LOAD";
463 case TAG_WIDE_BANDWIDTH_CHANNEL_SWITCH:
464 return "TAG_WIDE_BANDWIDTH_CHANNEL_SWITCH";
465 case TAG_TRANSMIT_POWER_ENVELOPE:
466 return "TAG_TRANSMIT_POWER_ENVELOPE";
467 case TAG_CHANNEL_SWITCH_WRAPPER:
468 return "TAG_CHANNEL_SWITCH_WRAPPER";
469 case TAG_AID:
470 return "TAG_AID";
471 case TAG_QUIET_CHANNEL:
472 return "TAG_QUIET_CHANNEL";
473 case TAG_UPSIM:
474 return "TAG_UPSIM";
475 case TAG_REDUCED_NEIGHBOR_REPORT:
476 return "TAG_REDUCED_NEIGHBOR_REPORT";
477 case TAG_TVHT_OPERATION:
478 return "TAG_TVHT_OPERATION";
479 case TAG_DEVICE_LOCATION:
480 return "TAG_DEVICE_LOCATION";
481 case TAG_WHITE_SPACE_MAP:
482 return "TAG_WHITE_SPACE_MAP";
483 case TAG_FINE_TIMING_MEASUREMENT_PARAMETERS:
484 return "TAG_FINE_TIMING_MEASUREMENT_PARAMETERS";
485 case TAG_VENDOR_SPECIFIC:
486 return "TAG_VENDOR_SPECIFIC";
487 default:
488 return "Unknown Tag";
489 }
490}
diff --git a/src/libwifi/core/frame/tag.h b/src/libwifi/core/frame/tag.h index 030c0b9..5a84cb3 100644 --- a/src/libwifi/core/frame/tag.h +++ b/src/libwifi/core/frame/tag.h
@@ -312,4 +312,12 @@ int libwifi_quick_add_tag(struct libwifi_tagged_parameters *tagged_parameters, i
312 */ 312 */
313int libwifi_check_tag(struct libwifi_tagged_parameters *tags, int tag_number); 313int libwifi_check_tag(struct libwifi_tagged_parameters *tags, int tag_number);
314 314
315/**
316 * Get the name of a tagged parameter via a supplied tag number.
317 *
318 * @param tag_number The number of the tagged parameter to name
319 * @returns The name of the tag
320 */
321char* libwifi_get_tag_name(int tag_number);
322
315#endif /* LIBWIFI_CORE_TAG_H */ 323#endif /* LIBWIFI_CORE_TAG_H */