Coverage Report

Created: 2025-11-03 06:51

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/hostap/src/ap/ap_config.h
Line
Count
Source
1
/*
2
 * hostapd / Configuration definitions and helpers functions
3
 * Copyright (c) 2003-2024, Jouni Malinen <j@w1.fi>
4
 *
5
 * This software may be distributed under the terms of the BSD license.
6
 * See README for more details.
7
 */
8
9
#ifndef HOSTAPD_CONFIG_H
10
#define HOSTAPD_CONFIG_H
11
12
#include "common/defs.h"
13
#include "utils/list.h"
14
#include "ip_addr.h"
15
#include "common/wpa_common.h"
16
#include "common/ieee802_11_defs.h"
17
#include "common/ieee802_11_common.h"
18
#include "crypto/sha256.h"
19
#include "wps/wps.h"
20
#include "fst/fst.h"
21
#include "vlan.h"
22
23
enum macaddr_acl {
24
  ACCEPT_UNLESS_DENIED = 0,
25
  DENY_UNLESS_ACCEPTED = 1,
26
  USE_EXTERNAL_RADIUS_AUTH = 2
27
};
28
29
/**
30
 * mesh_conf - local MBSS state and settings
31
 */
32
struct mesh_conf {
33
  u8 meshid[32];
34
  u8 meshid_len;
35
  /* Active Path Selection Protocol Identifier */
36
  u8 mesh_pp_id;
37
  /* Active Path Selection Metric Identifier */
38
  u8 mesh_pm_id;
39
  /* Congestion Control Mode Identifier */
40
  u8 mesh_cc_id;
41
  /* Synchronization Protocol Identifier */
42
  u8 mesh_sp_id;
43
  /* Authentication Protocol Identifier */
44
  u8 mesh_auth_id;
45
  u8 *rsn_ie;
46
  int rsn_ie_len;
47
#define MESH_CONF_SEC_NONE BIT(0)
48
#define MESH_CONF_SEC_AUTH BIT(1)
49
#define MESH_CONF_SEC_AMPE BIT(2)
50
  unsigned int security;
51
  enum mfp_options ieee80211w;
52
  int ocv;
53
  unsigned int pairwise_cipher;
54
  unsigned int group_cipher;
55
  unsigned int mgmt_group_cipher;
56
  int dot11MeshMaxRetries;
57
  int dot11MeshRetryTimeout; /* msec */
58
  int dot11MeshConfirmTimeout; /* msec */
59
  int dot11MeshHoldingTimeout; /* msec */
60
  int mesh_fwding;
61
};
62
63
4.41k
#define MAX_STA_COUNT 2007
64
0
#define MAX_VLAN_ID 4094
65
66
typedef u8 macaddr[ETH_ALEN];
67
68
struct mac_acl_entry {
69
  macaddr addr;
70
  struct vlan_description vlan_id;
71
};
72
73
struct hostapd_radius_servers;
74
struct ft_remote_r0kh;
75
struct ft_remote_r1kh;
76
77
#ifdef CONFIG_WEP
78
#define NUM_WEP_KEYS 4
79
struct hostapd_wep_keys {
80
  u8 idx;
81
  u8 *key[NUM_WEP_KEYS];
82
  size_t len[NUM_WEP_KEYS];
83
  int keys_set;
84
  size_t default_len; /* key length used for dynamic key generation */
85
};
86
#endif /* CONFIG_WEP */
87
88
typedef enum hostap_security_policy {
89
  SECURITY_PLAINTEXT = 0,
90
#ifdef CONFIG_WEP
91
  SECURITY_STATIC_WEP = 1,
92
#endif /* CONFIG_WEP */
93
  SECURITY_IEEE_802_1X = 2,
94
  SECURITY_WPA_PSK = 3,
95
  SECURITY_WPA = 4,
96
} secpolicy;
97
98
struct hostapd_ssid {
99
  u8 ssid[SSID_MAX_LEN];
100
  size_t ssid_len;
101
  u32 short_ssid;
102
  unsigned int ssid_set:1;
103
  unsigned int utf8_ssid:1;
104
  unsigned int wpa_passphrase_set:1;
105
  unsigned int wpa_psk_set:1;
106
107
  char vlan[IFNAMSIZ + 1];
108
  secpolicy security_policy;
109
110
  struct hostapd_wpa_psk *wpa_psk;
111
  char *wpa_passphrase;
112
  char *wpa_psk_file;
113
  struct sae_pt *pt;
114
115
#ifdef CONFIG_WEP
116
  struct hostapd_wep_keys wep;
117
#endif /* CONFIG_WEP */
118
119
0
#define DYNAMIC_VLAN_DISABLED 0
120
#define DYNAMIC_VLAN_OPTIONAL 1
121
0
#define DYNAMIC_VLAN_REQUIRED 2
122
  int dynamic_vlan;
123
#define DYNAMIC_VLAN_NAMING_WITHOUT_DEVICE 0
124
#define DYNAMIC_VLAN_NAMING_WITH_DEVICE 1
125
#define DYNAMIC_VLAN_NAMING_END 2
126
  int vlan_naming;
127
  int per_sta_vif;
128
#ifdef CONFIG_FULL_DYNAMIC_VLAN
129
  char *vlan_tagged_interface;
130
#endif /* CONFIG_FULL_DYNAMIC_VLAN */
131
};
132
133
134
0
#define VLAN_ID_WILDCARD -1
135
136
struct hostapd_vlan {
137
  struct hostapd_vlan *next;
138
  int vlan_id; /* VLAN ID or -1 (VLAN_ID_WILDCARD) for wildcard entry */
139
  struct vlan_description vlan_desc;
140
  char ifname[IFNAMSIZ + 1];
141
  char bridge[IFNAMSIZ + 1];
142
  int configured;
143
  int dynamic_vlan;
144
#ifdef CONFIG_FULL_DYNAMIC_VLAN
145
146
#define DVLAN_CLEAN_WLAN_PORT 0x8
147
  int clean;
148
#endif /* CONFIG_FULL_DYNAMIC_VLAN */
149
};
150
151
1.69k
#define PMK_LEN 32
152
#define KEYID_LEN 32
153
0
#define MIN_PASSPHRASE_LEN 8
154
0
#define MAX_PASSPHRASE_LEN 63
155
struct hostapd_sta_wpa_psk_short {
156
  struct hostapd_sta_wpa_psk_short *next;
157
  unsigned int is_passphrase:1;
158
  u8 psk[PMK_LEN];
159
  char passphrase[MAX_PASSPHRASE_LEN + 1];
160
  int ref; /* (number of references held) - 1 */
161
};
162
163
struct hostapd_wpa_psk {
164
  struct hostapd_wpa_psk *next;
165
  int group;
166
  char keyid[KEYID_LEN];
167
  int wps;
168
  u8 psk[PMK_LEN];
169
  u8 addr[ETH_ALEN];
170
  u8 p2p_dev_addr[ETH_ALEN];
171
  int vlan_id;
172
};
173
174
struct hostapd_eap_user {
175
  struct hostapd_eap_user *next;
176
  u8 *identity;
177
  size_t identity_len;
178
  struct {
179
    int vendor;
180
    u32 method;
181
  } methods[EAP_MAX_METHODS];
182
  u8 *password;
183
  size_t password_len;
184
  u8 *salt;
185
  size_t salt_len; /* non-zero when password is salted */
186
  int phase2;
187
  int force_version;
188
  unsigned int wildcard_prefix:1;
189
  unsigned int password_hash:1; /* whether password is hashed with
190
               * nt_password_hash() */
191
  unsigned int macacl:1;
192
  int ttls_auth; /* EAP_TTLS_AUTH_* bitfield */
193
  struct hostapd_radius_attr *accept_attr;
194
  u32 t_c_timestamp;
195
};
196
197
struct hostapd_radius_attr {
198
  u8 type;
199
  struct wpabuf *val;
200
  struct hostapd_radius_attr *next;
201
};
202
203
204
0
#define NUM_TX_QUEUES 4
205
#define MAX_ROAMING_CONSORTIUM_LEN 15
206
207
struct hostapd_roaming_consortium {
208
  u8 len;
209
  u8 oi[MAX_ROAMING_CONSORTIUM_LEN];
210
};
211
212
struct hostapd_lang_string {
213
  u8 lang[3];
214
  u8 name_len;
215
  u8 name[252];
216
};
217
218
struct hostapd_venue_url {
219
  u8 venue_number;
220
  u8 url_len;
221
  u8 url[254];
222
};
223
224
0
#define MAX_NAI_REALMS 10
225
#define MAX_NAI_REALMLEN 255
226
#define MAX_NAI_EAP_METHODS 5
227
#define MAX_NAI_AUTH_TYPES 4
228
struct hostapd_nai_realm_data {
229
  u8 encoding;
230
  char realm_buf[MAX_NAI_REALMLEN + 1];
231
  char *realm[MAX_NAI_REALMS];
232
  u8 eap_method_count;
233
  struct hostapd_nai_realm_eap {
234
    u8 eap_method;
235
    u8 num_auths;
236
    u8 auth_id[MAX_NAI_AUTH_TYPES];
237
    u8 auth_val[MAX_NAI_AUTH_TYPES];
238
  } eap_method[MAX_NAI_EAP_METHODS];
239
};
240
241
struct anqp_element {
242
  struct dl_list list;
243
  u16 infoid;
244
  struct wpabuf *payload;
245
};
246
247
struct fils_realm {
248
  struct dl_list list;
249
  u8 hash[2];
250
  char realm[];
251
};
252
253
struct sae_password_entry {
254
  struct sae_password_entry *next;
255
  char *password;
256
  char *identifier;
257
  u8 peer_addr[ETH_ALEN];
258
  int vlan_id;
259
  struct sae_pt *pt;
260
  struct sae_pk *pk;
261
  u8 *success_mac;
262
  unsigned int num_success_mac, next_success_mac;
263
  u8 *fail_mac;
264
  unsigned int num_fail_mac, next_fail_mac;
265
};
266
267
struct dpp_controller_conf {
268
  struct dpp_controller_conf *next;
269
  u8 pkhash[SHA256_MAC_LEN];
270
  struct hostapd_ip_addr ipaddr;
271
};
272
273
struct airtime_sta_weight {
274
  struct airtime_sta_weight *next;
275
  unsigned int weight;
276
  u8 addr[ETH_ALEN];
277
};
278
279
0
#define EXT_CAPA_MAX_LEN 15
280
281
/**
282
 * struct hostapd_bss_config - Per-BSS configuration
283
 */
284
struct hostapd_bss_config {
285
  char iface[IFNAMSIZ + 1];
286
  char bridge[IFNAMSIZ + 1];
287
  char vlan_bridge[IFNAMSIZ + 1];
288
  char wds_bridge[IFNAMSIZ + 1];
289
  int bridge_hairpin; /* hairpin_mode on bridge members */
290
291
  enum hostapd_logger_level logger_syslog_level, logger_stdout_level;
292
293
  unsigned int logger_syslog; /* module bitfield */
294
  unsigned int logger_stdout; /* module bitfield */
295
296
  int max_num_sta; /* maximum number of STAs in station table */
297
298
  int dtim_period;
299
  unsigned int bss_load_update_period;
300
  unsigned int chan_util_avg_period;
301
302
  int ieee802_1x; /* use IEEE 802.1X */
303
  int eapol_version;
304
  int eap_server; /* Use internal EAP server instead of external
305
       * RADIUS server */
306
  struct hostapd_eap_user *eap_user;
307
  char *eap_user_sqlite;
308
  char *eap_sim_db;
309
  unsigned int eap_sim_db_timeout;
310
  int eap_server_erp; /* Whether ERP is enabled on internal EAP server */
311
  struct hostapd_ip_addr own_ip_addr;
312
  char *nas_identifier;
313
  struct hostapd_radius_servers *radius;
314
  int radius_require_message_authenticator;
315
  int acct_interim_interval;
316
  int radius_request_cui;
317
  struct hostapd_radius_attr *radius_auth_req_attr;
318
  struct hostapd_radius_attr *radius_acct_req_attr;
319
  char *radius_req_attr_sqlite;
320
  int radius_das_port;
321
  unsigned int radius_das_time_window;
322
  int radius_das_require_event_timestamp;
323
  int radius_das_require_message_authenticator;
324
  struct hostapd_ip_addr radius_das_client_addr;
325
  u8 *radius_das_shared_secret;
326
  size_t radius_das_shared_secret_len;
327
328
  struct hostapd_ssid ssid;
329
330
  char *eap_req_id_text; /* optional displayable message sent with
331
        * EAP Request-Identity */
332
  size_t eap_req_id_text_len;
333
  int eapol_key_index_workaround;
334
335
#ifdef CONFIG_WEP
336
  size_t default_wep_key_len;
337
  int individual_wep_key_len;
338
  int wep_rekeying_period;
339
  int broadcast_key_idx_min, broadcast_key_idx_max;
340
#endif /* CONFIG_WEP */
341
  int eap_reauth_period;
342
  int erp_send_reauth_start;
343
  char *erp_domain;
344
#ifdef CONFIG_TESTING_OPTIONS
345
  bool eap_skip_prot_success;
346
#endif /* CONFIG_TESTING_OPTIONS */
347
348
  enum macaddr_acl macaddr_acl;
349
  struct mac_acl_entry *accept_mac;
350
  int num_accept_mac;
351
  struct mac_acl_entry *deny_mac;
352
  int num_deny_mac;
353
  int wds_sta;
354
  int isolate;
355
  int start_disabled;
356
357
  int auth_algs; /* bitfield of allowed IEEE 802.11 authentication
358
      * algorithms, WPA_AUTH_ALG_{OPEN,SHARED,LEAP} */
359
360
  int wpa; /* bitfield of WPA_PROTO_WPA, WPA_PROTO_RSN */
361
  int extended_key_id;
362
  int wpa_key_mgmt;
363
  int rsn_override_key_mgmt;
364
  int rsn_override_key_mgmt_2;
365
  enum mfp_options ieee80211w;
366
  enum mfp_options rsn_override_mfp;
367
  enum mfp_options rsn_override_mfp_2;
368
  int group_mgmt_cipher;
369
  int beacon_prot;
370
  /* dot11AssociationSAQueryMaximumTimeout (in TUs) */
371
  unsigned int assoc_sa_query_max_timeout;
372
  /* dot11AssociationSAQueryRetryTimeout (in TUs) */
373
  int assoc_sa_query_retry_timeout;
374
#ifdef CONFIG_OCV
375
  int ocv; /* Operating Channel Validation */
376
#endif /* CONFIG_OCV */
377
  enum {
378
    PSK_RADIUS_IGNORED = 0,
379
    PSK_RADIUS_ACCEPTED = 1,
380
    PSK_RADIUS_REQUIRED = 2,
381
    PSK_RADIUS_DURING_4WAY_HS = 3,
382
  } wpa_psk_radius;
383
  int wpa_pairwise;
384
  int group_cipher; /* wpa_group value override from configuation */
385
  int wpa_group;
386
  int wpa_group_rekey;
387
  int wpa_group_rekey_set;
388
  int wpa_strict_rekey;
389
  int wpa_gmk_rekey;
390
  int wpa_ptk_rekey;
391
  enum ptk0_rekey_handling wpa_deny_ptk0_rekey;
392
  u32 wpa_group_update_count;
393
  u32 wpa_pairwise_update_count;
394
  int wpa_disable_eapol_key_retries;
395
  int rsn_pairwise;
396
  int rsn_override_pairwise;
397
  int rsn_override_pairwise_2;
398
  int rsn_preauth;
399
  char *rsn_preauth_interfaces;
400
401
  int rsn_override_omit_rsnxe;
402
403
#ifdef CONFIG_IEEE80211R_AP
404
  /* IEEE 802.11r - Fast BSS Transition */
405
  u8 mobility_domain[MOBILITY_DOMAIN_ID_LEN];
406
  u8 r1_key_holder[FT_R1KH_ID_LEN];
407
  u32 r0_key_lifetime; /* PMK-R0 lifetime seconds */
408
  int rkh_pos_timeout;
409
  int rkh_neg_timeout;
410
  int rkh_pull_timeout; /* ms */
411
  int rkh_pull_retries;
412
  u32 reassociation_deadline;
413
  struct ft_remote_r0kh *r0kh_list;
414
  struct ft_remote_r1kh *r1kh_list;
415
  int pmk_r1_push;
416
  int ft_over_ds;
417
  int ft_psk_generate_local;
418
  int r1_max_key_lifetime;
419
  char *rxkh_file;
420
#endif /* CONFIG_IEEE80211R_AP */
421
422
  char *ctrl_interface; /* directory for UNIX domain sockets */
423
#ifndef CONFIG_NATIVE_WINDOWS
424
  gid_t ctrl_interface_gid;
425
#endif /* CONFIG_NATIVE_WINDOWS */
426
  int ctrl_interface_gid_set;
427
428
  char *ca_cert;
429
  char *server_cert;
430
  char *server_cert2;
431
  char *private_key;
432
  char *private_key2;
433
  char *private_key_passwd;
434
  char *private_key_passwd2;
435
  char *check_cert_subject;
436
  int check_crl;
437
  int check_crl_strict;
438
  unsigned int crl_reload_interval;
439
  unsigned int tls_session_lifetime;
440
  unsigned int tls_flags;
441
  unsigned int max_auth_rounds;
442
  unsigned int max_auth_rounds_short;
443
  char *ocsp_stapling_response;
444
  char *ocsp_stapling_response_multi;
445
  char *dh_file;
446
  char *openssl_ciphers;
447
  char *openssl_ecdh_curves;
448
  u8 *pac_opaque_encr_key;
449
  u8 *eap_fast_a_id;
450
  size_t eap_fast_a_id_len;
451
  char *eap_fast_a_id_info;
452
  int eap_fast_prov;
453
  int pac_key_lifetime;
454
  int pac_key_refresh_time;
455
  int eap_teap_auth;
456
  int eap_teap_separate_result;
457
  int eap_teap_id;
458
  int eap_teap_method_sequence;
459
  int eap_sim_aka_result_ind;
460
  int eap_sim_id;
461
  char *imsi_privacy_key;
462
  int eap_sim_aka_fast_reauth_limit;
463
  int tnc;
464
  int fragment_size;
465
  u16 pwd_group;
466
467
  char *radius_server_clients;
468
  int radius_server_auth_port;
469
  int radius_server_acct_port;
470
  int radius_server_acct_log;
471
  int radius_server_ipv6;
472
473
  int use_pae_group_addr; /* Whether to send EAPOL frames to PAE group
474
         * address instead of individual address
475
         * (for driver_wired.c).
476
         */
477
478
  int ap_max_inactivity;
479
  int bss_max_idle;
480
  int max_acceptable_idle_period;
481
  bool no_disconnect_on_group_keyerror;
482
  int ignore_broadcast_ssid;
483
  int no_probe_resp_if_max_sta;
484
485
  int wmm_enabled;
486
  int wmm_uapsd;
487
488
  struct hostapd_vlan *vlan;
489
490
  macaddr bssid;
491
492
  /*
493
   * Maximum listen interval that STAs can use when associating with this
494
   * BSS. If a STA tries to use larger value, the association will be
495
   * denied with status code 51.
496
   */
497
  u16 max_listen_interval;
498
499
  int disable_pmksa_caching;
500
  int okc; /* Opportunistic Key Caching */
501
502
  int wps_state;
503
#ifdef CONFIG_WPS
504
  int wps_independent;
505
  int ap_setup_locked;
506
  u8 uuid[16];
507
  char *wps_pin_requests;
508
  char *device_name;
509
  char *manufacturer;
510
  char *model_name;
511
  char *model_number;
512
  char *serial_number;
513
  u8 device_type[WPS_DEV_TYPE_LEN];
514
  char *config_methods;
515
  u8 os_version[4];
516
  char *ap_pin;
517
  int skip_cred_build;
518
  u8 *extra_cred;
519
  size_t extra_cred_len;
520
  int wps_cred_processing;
521
  int wps_cred_add_sae;
522
  int force_per_enrollee_psk;
523
  u8 *ap_settings;
524
  size_t ap_settings_len;
525
  struct hostapd_ssid multi_ap_backhaul_ssid;
526
  char *upnp_iface;
527
  char *friendly_name;
528
  char *manufacturer_url;
529
  char *model_description;
530
  char *model_url;
531
  char *upc;
532
  struct wpabuf *wps_vendor_ext[MAX_WPS_VENDOR_EXTENSIONS];
533
  struct wpabuf *wps_application_ext;
534
  int wps_nfc_pw_from_config;
535
  int wps_nfc_dev_pw_id;
536
  struct wpabuf *wps_nfc_dh_pubkey;
537
  struct wpabuf *wps_nfc_dh_privkey;
538
  struct wpabuf *wps_nfc_dev_pw;
539
#endif /* CONFIG_WPS */
540
  int pbc_in_m1;
541
  char *server_id;
542
543
#define P2P_ENABLED BIT(0)
544
#define P2P_GROUP_OWNER BIT(1)
545
#define P2P_GROUP_FORMATION BIT(2)
546
#define P2P_MANAGE BIT(3)
547
#define P2P_ALLOW_CROSS_CONNECTION BIT(4)
548
  int p2p;
549
#ifdef CONFIG_P2P
550
  u8 ip_addr_go[4];
551
  u8 ip_addr_mask[4];
552
  u8 ip_addr_start[4];
553
  u8 ip_addr_end[4];
554
#endif /* CONFIG_P2P */
555
556
  int disassoc_low_ack;
557
  int skip_inactivity_poll;
558
559
0
#define TDLS_PROHIBIT BIT(0)
560
0
#define TDLS_PROHIBIT_CHAN_SWITCH BIT(1)
561
  int tdls;
562
  bool disable_11n;
563
  bool disable_11ac;
564
  bool disable_11ax;
565
  bool disable_11be;
566
567
  /* IEEE 802.11v */
568
  int time_advertisement;
569
  char *time_zone;
570
  int wnm_sleep_mode;
571
  int wnm_sleep_mode_no_keys;
572
  int bss_transition;
573
574
  /* IEEE 802.11u - Interworking */
575
  int interworking;
576
  int access_network_type;
577
  int internet;
578
  int asra;
579
  int esr;
580
  int uesa;
581
  int venue_info_set;
582
  u8 venue_group;
583
  u8 venue_type;
584
  u8 hessid[ETH_ALEN];
585
586
  /* IEEE 802.11u - Roaming Consortium list */
587
  unsigned int roaming_consortium_count;
588
  struct hostapd_roaming_consortium *roaming_consortium;
589
590
  /* IEEE 802.11u - Venue Name duples */
591
  unsigned int venue_name_count;
592
  struct hostapd_lang_string *venue_name;
593
594
  /* Venue URL duples */
595
  unsigned int venue_url_count;
596
  struct hostapd_venue_url *venue_url;
597
598
  /* IEEE 802.11u - Network Authentication Type */
599
  u8 *network_auth_type;
600
  size_t network_auth_type_len;
601
602
  /* IEEE 802.11u - IP Address Type Availability */
603
  u8 ipaddr_type_availability;
604
  u8 ipaddr_type_configured;
605
606
  /* IEEE 802.11u - 3GPP Cellular Network */
607
  u8 *anqp_3gpp_cell_net;
608
  size_t anqp_3gpp_cell_net_len;
609
610
  /* IEEE 802.11u - Domain Name */
611
  u8 *domain_name;
612
  size_t domain_name_len;
613
614
  unsigned int nai_realm_count;
615
  struct hostapd_nai_realm_data *nai_realm_data;
616
617
  struct dl_list anqp_elem; /* list of struct anqp_element */
618
619
  u16 gas_comeback_delay;
620
  size_t gas_frag_limit;
621
  int gas_address3;
622
623
  u8 qos_map_set[16 + 2 * 21];
624
  unsigned int qos_map_set_len;
625
626
  int proxy_arp;
627
  int na_mcast_to_ucast;
628
629
#ifdef CONFIG_HS20
630
  int hs20;
631
  int hs20_release;
632
  int disable_dgaf;
633
  u16 anqp_domain_id;
634
  unsigned int hs20_oper_friendly_name_count;
635
  struct hostapd_lang_string *hs20_oper_friendly_name;
636
  u8 *hs20_wan_metrics;
637
  u8 *hs20_connection_capability;
638
  size_t hs20_connection_capability_len;
639
  u8 *hs20_operating_class;
640
  u8 hs20_operating_class_len;
641
  unsigned int hs20_deauth_req_timeout;
642
  char *t_c_filename;
643
  u32 t_c_timestamp;
644
  char *t_c_server_url;
645
#endif /* CONFIG_HS20 */
646
647
  u8 wps_rf_bands; /* RF bands for WPS (WPS_RF_*) */
648
649
#ifdef CONFIG_RADIUS_TEST
650
  char *dump_msk_file;
651
#endif /* CONFIG_RADIUS_TEST */
652
653
  struct wpabuf *vendor_elements;
654
  struct wpabuf *assocresp_elements;
655
656
  unsigned int anti_clogging_threshold;
657
  unsigned int sae_sync;
658
  int sae_require_mfp;
659
  int sae_confirm_immediate;
660
  enum sae_pwe sae_pwe;
661
  int *sae_groups;
662
  struct sae_password_entry *sae_passwords;
663
  int sae_password_psk;
664
  int sae_track_password;
665
  struct wpabuf *sae_pw_id_key;
666
  unsigned int sae_pw_id_num;
667
668
  char *wowlan_triggers; /* Wake-on-WLAN triggers */
669
670
#ifdef CONFIG_TESTING_OPTIONS
671
  u8 bss_load_test[5];
672
  u8 bss_load_test_set;
673
  struct wpabuf *own_ie_override;
674
  struct wpabuf *rsne_override;
675
  struct wpabuf *rsnoe_override;
676
  struct wpabuf *rsno2e_override;
677
  struct wpabuf *rsnxe_override;
678
  struct wpabuf *rsnxoe_override;
679
  int sae_reflection_attack;
680
  int sae_commit_status;
681
  int sae_pk_omit;
682
  int sae_pk_password_check_skip;
683
  struct wpabuf *sae_commit_override;
684
  struct wpabuf *rsne_override_eapol;
685
  struct wpabuf *rsnxe_override_eapol;
686
  struct wpabuf *rsne_override_ft;
687
  struct wpabuf *rsnxe_override_ft;
688
  struct wpabuf *gtk_rsc_override;
689
  struct wpabuf *igtk_rsc_override;
690
  int no_beacon_rsnxe;
691
  int skip_prune_assoc;
692
  int ft_rsnxe_used;
693
  unsigned int oci_freq_override_eapol_m3;
694
  unsigned int oci_freq_override_eapol_g1;
695
  unsigned int oci_freq_override_saquery_req;
696
  unsigned int oci_freq_override_saquery_resp;
697
  unsigned int oci_freq_override_ft_assoc;
698
  unsigned int oci_freq_override_fils_assoc;
699
  unsigned int oci_freq_override_wnm_sleep;
700
  struct wpabuf *eapol_m1_elements;
701
  struct wpabuf *eapol_m3_elements;
702
  bool eapol_m3_no_encrypt;
703
  bool eapol_key_reserved_random;
704
  int test_assoc_comeback_type;
705
  struct wpabuf *presp_elements;
706
707
#ifdef CONFIG_IEEE80211BE
708
  u16 eht_oper_puncturing_override;
709
#endif /* CONFIG_IEEE80211BE */
710
#endif /* CONFIG_TESTING_OPTIONS */
711
712
2.20k
#define MESH_ENABLED BIT(0)
713
  int mesh;
714
  int mesh_fwding;
715
716
  u8 radio_measurements[RRM_CAPABILITIES_IE_LEN];
717
718
  int vendor_vht;
719
  int use_sta_nsts;
720
721
  char *no_probe_resp_if_seen_on;
722
  char *no_auth_if_seen_on;
723
724
  int pbss;
725
726
#ifdef CONFIG_MBO
727
  int mbo_enabled;
728
  /**
729
   * oce - Enable OCE in AP and/or STA-CFON mode
730
   *  - BIT(0) is Reserved
731
   *  - Set BIT(1) to enable OCE in STA-CFON mode
732
   *  - Set BIT(2) to enable OCE in AP mode
733
   */
734
  unsigned int oce;
735
  int mbo_cell_data_conn_pref;
736
#endif /* CONFIG_MBO */
737
738
  int ftm_responder;
739
  int ftm_initiator;
740
741
#ifdef CONFIG_FILS
742
  u8 fils_cache_id[FILS_CACHE_ID_LEN];
743
  int fils_cache_id_set;
744
  struct dl_list fils_realms; /* list of struct fils_realm */
745
  int fils_dh_group;
746
  struct hostapd_ip_addr dhcp_server;
747
  int dhcp_rapid_commit_proxy;
748
  unsigned int fils_hlp_wait_time;
749
  u16 dhcp_server_port;
750
  u16 dhcp_relay_port;
751
  u32 fils_discovery_min_int;
752
  u32 fils_discovery_max_int;
753
#endif /* CONFIG_FILS */
754
755
  int multicast_to_unicast;
756
  int bridge_multicast_to_unicast;
757
758
  int broadcast_deauth;
759
760
  int notify_mgmt_frames;
761
762
#ifdef CONFIG_DPP
763
  char *dpp_name;
764
  char *dpp_mud_url;
765
  char *dpp_extra_conf_req_name;
766
  char *dpp_extra_conf_req_value;
767
  char *dpp_connector;
768
  struct wpabuf *dpp_netaccesskey;
769
  unsigned int dpp_netaccesskey_expiry;
770
  struct wpabuf *dpp_csign;
771
#ifdef CONFIG_DPP2
772
  struct dpp_controller_conf *dpp_controller;
773
  int dpp_relay_port;
774
  int dpp_configurator_connectivity;
775
  int dpp_pfs;
776
#endif /* CONFIG_DPP2 */
777
#endif /* CONFIG_DPP */
778
779
#ifdef CONFIG_OWE
780
  macaddr owe_transition_bssid;
781
  u8 owe_transition_ssid[SSID_MAX_LEN];
782
  size_t owe_transition_ssid_len;
783
  char owe_transition_ifname[IFNAMSIZ + 1];
784
  int *owe_groups;
785
  int owe_ptk_workaround;
786
#endif /* CONFIG_OWE */
787
788
  int coloc_intf_reporting;
789
790
  u8 send_probe_response;
791
792
  u8 transition_disable;
793
794
0
#define BACKHAUL_BSS 1
795
0
#define FRONTHAUL_BSS 2
796
  int multi_ap; /* bitmap of BACKHAUL_BSS, FRONTHAUL_BSS */
797
  int multi_ap_profile;
798
  /* Multi-AP Profile-1 clients not allowed to connect */
799
0
#define PROFILE1_CLIENT_ASSOC_DISALLOW BIT(0)
800
  /* Multi-AP Profile-2 clients not allowed to connect */
801
0
#define PROFILE2_CLIENT_ASSOC_DISALLOW BIT(1)
802
  unsigned int multi_ap_client_disallow;
803
  /* Primary VLAN ID to use in Multi-AP */
804
  int multi_ap_vlanid;
805
806
#ifdef CONFIG_AIRTIME_POLICY
807
  unsigned int airtime_weight;
808
  int airtime_limit;
809
  struct airtime_sta_weight *airtime_weight_list;
810
#endif /* CONFIG_AIRTIME_POLICY */
811
812
#ifdef CONFIG_MACSEC
813
  /**
814
   * macsec_policy - Determines the policy for MACsec secure session
815
   *
816
   * 0: MACsec not in use (default)
817
   * 1: MACsec enabled - Should secure, accept key server's advice to
818
   *    determine whether to use a secure session or not.
819
   */
820
  int macsec_policy;
821
822
  /**
823
   * macsec_integ_only - Determines how MACsec are transmitted
824
   *
825
   * This setting applies only when MACsec is in use, i.e.,
826
   *  - macsec_policy is enabled
827
   *  - the key server has decided to enable MACsec
828
   *
829
   * 0: Encrypt traffic (default)
830
   * 1: Integrity only
831
   */
832
  int macsec_integ_only;
833
834
  /**
835
   * macsec_replay_protect - Enable MACsec replay protection
836
   *
837
   * This setting applies only when MACsec is in use, i.e.,
838
   *  - macsec_policy is enabled
839
   *  - the key server has decided to enable MACsec
840
   *
841
   * 0: Replay protection disabled (default)
842
   * 1: Replay protection enabled
843
   */
844
  int macsec_replay_protect;
845
846
  /**
847
   * macsec_replay_window - MACsec replay protection window
848
   *
849
   * A window in which replay is tolerated, to allow receipt of frames
850
   * that have been misordered by the network.
851
   *
852
   * This setting applies only when MACsec replay protection active, i.e.,
853
   *  - macsec_replay_protect is enabled
854
   *  - the key server has decided to enable MACsec
855
   *
856
   * 0: No replay window, strict check (default)
857
   * 1..2^32-1: number of packets that could be misordered
858
   */
859
  u32 macsec_replay_window;
860
861
  /**
862
   * macsec_offload - Enable MACsec offload
863
   *
864
   * This setting applies only when MACsec is in use, i.e.,
865
   *  - macsec_policy is enabled
866
   *  - the key server has decided to enable MACsec
867
   *
868
   * 0 = MACSEC_OFFLOAD_OFF (default)
869
   * 1 = MACSEC_OFFLOAD_PHY
870
   * 2 = MACSEC_OFFLOAD_MAC
871
   */
872
  int macsec_offload;
873
874
  /**
875
   * macsec_port - MACsec port (in SCI)
876
   *
877
   * Port component of the SCI.
878
   *
879
   * Range: 1-65534 (default: 1)
880
   */
881
  int macsec_port;
882
883
  /**
884
   * mka_priority - Priority of MKA Actor
885
   *
886
   * Range: 0-255 (default: 255)
887
   */
888
  int mka_priority;
889
890
  /**
891
   * macsec_csindex - Cipher suite index for MACsec
892
   *
893
   * Range: 0-1 (default: 0)
894
   */
895
  int macsec_csindex;
896
897
  /**
898
   * macsec_icv_indicator - Always include ICV Indicator
899
   * (for compatibility with older MACsec switches)
900
   *
901
   * Range: 0-1 (default: 0)
902
   */
903
  int macsec_icv_indicator;
904
905
  /**
906
   * mka_ckn - MKA pre-shared CKN
907
   */
908
#define MACSEC_CKN_MAX_LEN 32
909
  size_t mka_ckn_len;
910
  u8 mka_ckn[MACSEC_CKN_MAX_LEN];
911
912
  /**
913
   * mka_cak - MKA pre-shared CAK
914
   */
915
#define MACSEC_CAK_MAX_LEN 32
916
  size_t mka_cak_len;
917
  u8 mka_cak[MACSEC_CAK_MAX_LEN];
918
919
#define MKA_PSK_SET_CKN BIT(0)
920
#define MKA_PSK_SET_CAK BIT(1)
921
#define MKA_PSK_SET (MKA_PSK_SET_CKN | MKA_PSK_SET_CAK)
922
  /**
923
   * mka_psk_set - Whether mka_ckn and mka_cak are set
924
   */
925
  u8 mka_psk_set;
926
#endif /* CONFIG_MACSEC */
927
928
#ifdef CONFIG_PASN
929
  /* Whether to allow PASN-UNAUTH */
930
  int pasn_noauth;
931
932
#ifdef CONFIG_TESTING_OPTIONS
933
  /*
934
   * Normally, KDK should be derived if and only if both sides support
935
   * secure LTF. Allow forcing KDK derivation for testing purposes.
936
   */
937
  int force_kdk_derivation;
938
939
  /* If set, corrupt the MIC in the 2nd Authentication frame of PASN */
940
  int pasn_corrupt_mic;
941
#endif /* CONFIG_TESTING_OPTIONS */
942
943
  int *pasn_groups;
944
945
  /*
946
   * The time in TUs after which the non-AP STA is requested to retry the
947
   * PASN authentication in case there are too many parallel operations.
948
   */
949
  u16 pasn_comeback_after;
950
#endif /* CONFIG_PASN */
951
952
  int urnm_mfpr_x20;
953
  int urnm_mfpr;
954
955
  unsigned int unsol_bcast_probe_resp_interval;
956
957
  u8 ext_capa_mask[EXT_CAPA_MAX_LEN];
958
  u8 ext_capa[EXT_CAPA_MAX_LEN];
959
960
  u8 rnr;
961
  char *config_id;
962
963
  bool ssid_protection;
964
  bool known_sta_identification;
965
966
#ifdef CONFIG_IEEE80211BE
967
  /* The AP is part of an AP MLD */
968
  u8 mld_ap;
969
970
  /* The MLD ID to which the AP MLD is affiliated with */
971
  u8 mld_id;
972
973
  /* The AP's MLD MAC address within the AP MLD */
974
  u8 mld_addr[ETH_ALEN];
975
976
#ifdef CONFIG_TESTING_OPTIONS
977
  /*
978
   * If set indicate the AP as disabled in the RNR element included in the
979
   * other APs in the AP MLD.
980
   */
981
  bool mld_indicate_disabled;
982
#endif /* CONFIG_TESTING_OPTIONS */
983
#endif /* CONFIG_IEEE80211BE */
984
  int mbssid_index;
985
986
  bool spp_amsdu;
987
};
988
989
/**
990
 * struct he_phy_capabilities_info - HE PHY capabilities
991
 */
992
struct he_phy_capabilities_info {
993
  bool he_su_beamformer;
994
  bool he_su_beamformee;
995
  bool he_mu_beamformer;
996
};
997
998
/**
999
 * struct he_operation - HE operation
1000
 */
1001
struct he_operation {
1002
  u8 he_bss_color;
1003
  u8 he_bss_color_disabled;
1004
  u8 he_bss_color_partial;
1005
  u8 he_default_pe_duration;
1006
  u8 he_twt_required;
1007
  u8 he_twt_responder;
1008
  u16 he_rts_threshold;
1009
  u8 he_er_su_disable;
1010
  u16 he_basic_mcs_nss_set;
1011
};
1012
1013
/**
1014
 * struct spatial_reuse - Spatial reuse
1015
 */
1016
struct spatial_reuse {
1017
  u8 sr_control;
1018
  u8 non_srg_obss_pd_max_offset;
1019
  u8 srg_obss_pd_min_offset;
1020
  u8 srg_obss_pd_max_offset;
1021
  u8 srg_bss_color_bitmap[8];
1022
  u8 srg_partial_bssid_bitmap[8];
1023
};
1024
1025
/**
1026
 * struct eht_phy_capabilities_info - EHT PHY capabilities
1027
 */
1028
struct eht_phy_capabilities_info {
1029
  bool su_beamformer;
1030
  bool su_beamformee;
1031
  bool mu_beamformer;
1032
};
1033
1034
/**
1035
 * struct hostapd_config - Per-radio interface configuration
1036
 */
1037
struct hostapd_config {
1038
  struct hostapd_bss_config **bss, *last_bss;
1039
  size_t num_bss;
1040
1041
  u16 beacon_int;
1042
  int rts_threshold;
1043
  int fragm_threshold;
1044
  u8 op_class;
1045
  u8 channel;
1046
  int enable_edmg;
1047
  u8 edmg_channel;
1048
  u8 acs;
1049
  struct wpa_freq_range_list acs_ch_list;
1050
  struct wpa_freq_range_list acs_freq_list;
1051
  u8 acs_freq_list_present;
1052
  int acs_exclude_dfs;
1053
  u8 min_tx_power;
1054
  enum hostapd_hw_mode hw_mode; /* HOSTAPD_MODE_IEEE80211A, .. */
1055
  bool hw_mode_set;
1056
  int acs_exclude_6ghz_non_psc;
1057
  int enable_background_radar;
1058
  enum {
1059
    LONG_PREAMBLE = 0,
1060
    SHORT_PREAMBLE = 1
1061
  } preamble;
1062
1063
  int *supported_rates;
1064
  int *basic_rates;
1065
  unsigned int beacon_rate;
1066
  enum beacon_rate_type rate_type;
1067
1068
  const struct wpa_driver_ops *driver;
1069
  char *driver_params;
1070
1071
  int ap_table_max_size;
1072
  int ap_table_expiration_time;
1073
1074
  unsigned int track_sta_max_num;
1075
  unsigned int track_sta_max_age;
1076
1077
  char country[3]; /* first two octets: country code as described in
1078
        * ISO/IEC 3166-1. Third octet:
1079
        * ' ' (ascii 32): all environments
1080
        * 'O': Outdoor environemnt only
1081
        * 'I': Indoor environment only
1082
        * 'X': Used with noncountry entity ("XXX")
1083
        * 0x00..0x31: identifying IEEE 802.11 standard
1084
        * Annex E table (0x04 = global table)
1085
        */
1086
1087
  int ieee80211d;
1088
1089
  int ieee80211h; /* DFS */
1090
1091
  /*
1092
   * Local power constraint is an octet encoded as an unsigned integer in
1093
   * units of decibels. Invalid value -1 indicates that Power Constraint
1094
   * element will not be added.
1095
   */
1096
  int local_pwr_constraint;
1097
1098
  /* Control Spectrum Management bit */
1099
  int spectrum_mgmt_required;
1100
1101
  struct hostapd_tx_queue_params tx_queue[NUM_TX_QUEUES];
1102
1103
  /*
1104
   * WMM AC parameters, in same order as 802.1D, i.e.
1105
   * 0 = BE (best effort)
1106
   * 1 = BK (background)
1107
   * 2 = VI (video)
1108
   * 3 = VO (voice)
1109
   */
1110
  struct hostapd_wmm_ac_params wmm_ac_params[4];
1111
1112
  int ht_op_mode_fixed;
1113
  u16 ht_capab;
1114
  int ieee80211n;
1115
  int secondary_channel;
1116
  int no_pri_sec_switch;
1117
  int require_ht;
1118
  int obss_interval;
1119
  u32 vht_capab;
1120
  int ieee80211ac;
1121
  int require_vht;
1122
  enum oper_chan_width vht_oper_chwidth;
1123
  u8 vht_oper_centr_freq_seg0_idx;
1124
  u8 vht_oper_centr_freq_seg1_idx;
1125
  u8 ht40_plus_minus_allowed;
1126
1127
  /* Use driver-generated interface addresses when adding multiple BSSs */
1128
  u8 use_driver_iface_addr;
1129
1130
#ifdef CONFIG_FST
1131
  struct fst_iface_cfg fst_cfg;
1132
#endif /* CONFIG_FST */
1133
1134
#ifdef CONFIG_P2P
1135
  u8 p2p_go_ctwindow;
1136
#endif /* CONFIG_P2P */
1137
1138
#ifdef CONFIG_TESTING_OPTIONS
1139
  double ignore_probe_probability;
1140
  double ignore_auth_probability;
1141
  double ignore_assoc_probability;
1142
  double ignore_reassoc_probability;
1143
  double corrupt_gtk_rekey_mic_probability;
1144
  int ecsa_ie_only;
1145
  int csa_ie_only;
1146
  bool delay_eapol_tx;
1147
#endif /* CONFIG_TESTING_OPTIONS */
1148
1149
#ifdef CONFIG_ACS
1150
  unsigned int acs_num_scans;
1151
  struct acs_bias {
1152
    int channel;
1153
    double bias;
1154
  } *acs_chan_bias;
1155
  unsigned int num_acs_chan_bias;
1156
#endif /* CONFIG_ACS */
1157
1158
  struct wpabuf *lci;
1159
  struct wpabuf *civic;
1160
  int stationary_ap;
1161
1162
  int ieee80211ax;
1163
#ifdef CONFIG_IEEE80211AX
1164
  struct he_phy_capabilities_info he_phy_capab;
1165
  struct he_operation he_op;
1166
  struct ieee80211_he_mu_edca_parameter_set he_mu_edca;
1167
  struct spatial_reuse spr;
1168
  enum oper_chan_width he_oper_chwidth;
1169
  u8 he_oper_centr_freq_seg0_idx;
1170
  u8 he_oper_centr_freq_seg1_idx;
1171
  u8 he_6ghz_max_mpdu;
1172
  u8 he_6ghz_max_ampdu_len_exp;
1173
  u8 he_6ghz_rx_ant_pat;
1174
  u8 he_6ghz_tx_ant_pat;
1175
  u8 he_6ghz_reg_pwr_type;
1176
1177
  int reg_def_cli_eirp_psd;
1178
  int reg_sub_cli_eirp_psd;
1179
1180
  /*
1181
   * This value should be used when regulatory client EIRP PSD values
1182
   * advertised by an AP that is an SP AP or an indoor SP AP are
1183
   * insufficient to ensure that regulatory client limits on total EIRP
1184
   * are always met for all transmission bandwidths within the bandwidth
1185
   * of the AP’s BSS.
1186
   */
1187
  int reg_def_cli_eirp;
1188
1189
  bool require_he;
1190
#endif /* CONFIG_IEEE80211AX */
1191
1192
  /* VHT enable/disable config from CHAN_SWITCH */
1193
0
#define CH_SWITCH_VHT_ENABLED BIT(0)
1194
0
#define CH_SWITCH_VHT_DISABLED BIT(1)
1195
  unsigned int ch_switch_vht_config;
1196
1197
  /* HE enable/disable config from CHAN_SWITCH */
1198
0
#define CH_SWITCH_HE_ENABLED BIT(0)
1199
0
#define CH_SWITCH_HE_DISABLED BIT(1)
1200
  unsigned int ch_switch_he_config;
1201
1202
  int rssi_reject_assoc_rssi;
1203
  int rssi_reject_assoc_timeout;
1204
  int rssi_ignore_probe_request;
1205
1206
#ifdef CONFIG_AIRTIME_POLICY
1207
  enum {
1208
    AIRTIME_MODE_OFF = 0,
1209
    AIRTIME_MODE_STATIC = 1,
1210
    AIRTIME_MODE_DYNAMIC = 2,
1211
    AIRTIME_MODE_LIMIT = 3,
1212
    __AIRTIME_MODE_MAX,
1213
  } airtime_mode;
1214
  unsigned int airtime_update_interval;
1215
#define AIRTIME_MODE_MAX (__AIRTIME_MODE_MAX - 1)
1216
#endif /* CONFIG_AIRTIME_POLICY */
1217
1218
  int ieee80211be;
1219
#ifdef CONFIG_IEEE80211BE
1220
  enum oper_chan_width eht_oper_chwidth;
1221
  u8 eht_oper_centr_freq_seg0_idx;
1222
  struct eht_phy_capabilities_info eht_phy_capab;
1223
  u16 punct_bitmap; /* a bitmap of disabled 20 MHz channels */
1224
  u8 punct_acs_threshold;
1225
  u8 eht_default_pe_duration;
1226
  u8 eht_bw320_offset;
1227
#endif /* CONFIG_IEEE80211BE */
1228
1229
  /* EHT enable/disable config from CHAN_SWITCH */
1230
0
#define CH_SWITCH_EHT_ENABLED BIT(0)
1231
0
#define CH_SWITCH_EHT_DISABLED BIT(1)
1232
  unsigned int ch_switch_eht_config;
1233
1234
  enum mbssid {
1235
    MBSSID_DISABLED = 0,
1236
    MBSSID_ENABLED = 1,
1237
    ENHANCED_MBSSID_ENABLED = 2,
1238
  } mbssid;
1239
  unsigned int mbssid_max;
1240
1241
  /* Whether to enable TWT responder in HT and VHT modes */
1242
  bool ht_vht_twt_responder;
1243
1244
  bool channel_usage;
1245
  bool peer_to_peer_twt;
1246
1247
  /* Set I2R LMR policy to allow LMR response from ISTA */
1248
  bool i2r_lmr_policy;
1249
};
1250
1251
1252
static inline enum oper_chan_width
1253
hostapd_get_oper_chwidth(struct hostapd_config *conf)
1254
0
{
1255
#ifdef CONFIG_IEEE80211BE
1256
  if (conf->ieee80211be)
1257
    return conf->eht_oper_chwidth;
1258
#endif /* CONFIG_IEEE80211BE */
1259
#ifdef CONFIG_IEEE80211AX
1260
  if (conf->ieee80211ax)
1261
    return conf->he_oper_chwidth;
1262
#endif /* CONFIG_IEEE80211AX */
1263
0
  return conf->vht_oper_chwidth;
1264
0
}
Unexecuted instantiation: comeback_token.c:hostapd_get_oper_chwidth
Unexecuted instantiation: pasn_responder.c:hostapd_get_oper_chwidth
Unexecuted instantiation: p2p.c:hostapd_get_oper_chwidth
Unexecuted instantiation: ap-mgmt.c:hostapd_get_oper_chwidth
Unexecuted instantiation: ap_config.c:hostapd_get_oper_chwidth
Unexecuted instantiation: ap_list.c:hostapd_get_oper_chwidth
Unexecuted instantiation: beacon.c:hostapd_get_oper_chwidth
Unexecuted instantiation: dfs.c:hostapd_get_oper_chwidth
Unexecuted instantiation: hostapd.c:hostapd_get_oper_chwidth
Unexecuted instantiation: hs20.c:hostapd_get_oper_chwidth
Unexecuted instantiation: hw_features.c:hostapd_get_oper_chwidth
Unexecuted instantiation: ieee802_11_auth.c:hostapd_get_oper_chwidth
Unexecuted instantiation: ieee802_11.c:hostapd_get_oper_chwidth
Unexecuted instantiation: ieee802_11_ht.c:hostapd_get_oper_chwidth
Unexecuted instantiation: ieee802_11_shared.c:hostapd_get_oper_chwidth
Unexecuted instantiation: ieee802_1x.c:hostapd_get_oper_chwidth
Unexecuted instantiation: neighbor_db.c:hostapd_get_oper_chwidth
Unexecuted instantiation: ndisc_snoop.c:hostapd_get_oper_chwidth
Unexecuted instantiation: pmksa_cache_auth.c:hostapd_get_oper_chwidth
Unexecuted instantiation: rrm.c:hostapd_get_oper_chwidth
Unexecuted instantiation: sta_info.c:hostapd_get_oper_chwidth
Unexecuted instantiation: utils.c:hostapd_get_oper_chwidth
Unexecuted instantiation: vlan_init.c:hostapd_get_oper_chwidth
Unexecuted instantiation: wmm.c:hostapd_get_oper_chwidth
Unexecuted instantiation: wpa_auth.c:hostapd_get_oper_chwidth
Unexecuted instantiation: wpa_auth_ft.c:hostapd_get_oper_chwidth
Unexecuted instantiation: wpa_auth_glue.c:hostapd_get_oper_chwidth
Unexecuted instantiation: wpa_auth_ie.c:hostapd_get_oper_chwidth
Unexecuted instantiation: wps_hostapd.c:hostapd_get_oper_chwidth
Unexecuted instantiation: x_snoop.c:hostapd_get_oper_chwidth
Unexecuted instantiation: accounting.c:hostapd_get_oper_chwidth
Unexecuted instantiation: ap_drv_ops.c:hostapd_get_oper_chwidth
Unexecuted instantiation: ap_mlme.c:hostapd_get_oper_chwidth
Unexecuted instantiation: airtime_policy.c:hostapd_get_oper_chwidth
Unexecuted instantiation: authsrv.c:hostapd_get_oper_chwidth
Unexecuted instantiation: bss_load.c:hostapd_get_oper_chwidth
Unexecuted instantiation: dhcp_snoop.c:hostapd_get_oper_chwidth
Unexecuted instantiation: eap_user_db.c:hostapd_get_oper_chwidth
Unexecuted instantiation: eth_p_oui.c:hostapd_get_oper_chwidth
Unexecuted instantiation: gas_serv.c:hostapd_get_oper_chwidth
Unexecuted instantiation: tkip_countermeasures.c:hostapd_get_oper_chwidth
Unexecuted instantiation: events.c:hostapd_get_oper_chwidth
1265
1266
static inline void
1267
hostapd_set_oper_chwidth(struct hostapd_config *conf,
1268
       enum oper_chan_width oper_chwidth)
1269
0
{
1270
#ifdef CONFIG_IEEE80211BE
1271
  if (conf->ieee80211be)
1272
    conf->eht_oper_chwidth = oper_chwidth;
1273
  if (oper_chwidth == CONF_OPER_CHWIDTH_320MHZ)
1274
    oper_chwidth = CONF_OPER_CHWIDTH_160MHZ;
1275
#endif /* CONFIG_IEEE80211BE */
1276
#ifdef CONFIG_IEEE80211AX
1277
  if (conf->ieee80211ax)
1278
    conf->he_oper_chwidth = oper_chwidth;
1279
#endif /* CONFIG_IEEE80211AX */
1280
0
  conf->vht_oper_chwidth = oper_chwidth;
1281
0
}
Unexecuted instantiation: comeback_token.c:hostapd_set_oper_chwidth
Unexecuted instantiation: pasn_responder.c:hostapd_set_oper_chwidth
Unexecuted instantiation: p2p.c:hostapd_set_oper_chwidth
Unexecuted instantiation: ap-mgmt.c:hostapd_set_oper_chwidth
Unexecuted instantiation: ap_config.c:hostapd_set_oper_chwidth
Unexecuted instantiation: ap_list.c:hostapd_set_oper_chwidth
Unexecuted instantiation: beacon.c:hostapd_set_oper_chwidth
Unexecuted instantiation: dfs.c:hostapd_set_oper_chwidth
Unexecuted instantiation: hostapd.c:hostapd_set_oper_chwidth
Unexecuted instantiation: hs20.c:hostapd_set_oper_chwidth
Unexecuted instantiation: hw_features.c:hostapd_set_oper_chwidth
Unexecuted instantiation: ieee802_11_auth.c:hostapd_set_oper_chwidth
Unexecuted instantiation: ieee802_11.c:hostapd_set_oper_chwidth
Unexecuted instantiation: ieee802_11_ht.c:hostapd_set_oper_chwidth
Unexecuted instantiation: ieee802_11_shared.c:hostapd_set_oper_chwidth
Unexecuted instantiation: ieee802_1x.c:hostapd_set_oper_chwidth
Unexecuted instantiation: neighbor_db.c:hostapd_set_oper_chwidth
Unexecuted instantiation: ndisc_snoop.c:hostapd_set_oper_chwidth
Unexecuted instantiation: pmksa_cache_auth.c:hostapd_set_oper_chwidth
Unexecuted instantiation: rrm.c:hostapd_set_oper_chwidth
Unexecuted instantiation: sta_info.c:hostapd_set_oper_chwidth
Unexecuted instantiation: utils.c:hostapd_set_oper_chwidth
Unexecuted instantiation: vlan_init.c:hostapd_set_oper_chwidth
Unexecuted instantiation: wmm.c:hostapd_set_oper_chwidth
Unexecuted instantiation: wpa_auth.c:hostapd_set_oper_chwidth
Unexecuted instantiation: wpa_auth_ft.c:hostapd_set_oper_chwidth
Unexecuted instantiation: wpa_auth_glue.c:hostapd_set_oper_chwidth
Unexecuted instantiation: wpa_auth_ie.c:hostapd_set_oper_chwidth
Unexecuted instantiation: wps_hostapd.c:hostapd_set_oper_chwidth
Unexecuted instantiation: x_snoop.c:hostapd_set_oper_chwidth
Unexecuted instantiation: accounting.c:hostapd_set_oper_chwidth
Unexecuted instantiation: ap_drv_ops.c:hostapd_set_oper_chwidth
Unexecuted instantiation: ap_mlme.c:hostapd_set_oper_chwidth
Unexecuted instantiation: airtime_policy.c:hostapd_set_oper_chwidth
Unexecuted instantiation: authsrv.c:hostapd_set_oper_chwidth
Unexecuted instantiation: bss_load.c:hostapd_set_oper_chwidth
Unexecuted instantiation: dhcp_snoop.c:hostapd_set_oper_chwidth
Unexecuted instantiation: eap_user_db.c:hostapd_set_oper_chwidth
Unexecuted instantiation: eth_p_oui.c:hostapd_set_oper_chwidth
Unexecuted instantiation: gas_serv.c:hostapd_set_oper_chwidth
Unexecuted instantiation: tkip_countermeasures.c:hostapd_set_oper_chwidth
Unexecuted instantiation: events.c:hostapd_set_oper_chwidth
1282
1283
static inline u8
1284
hostapd_get_oper_centr_freq_seg0_idx(struct hostapd_config *conf)
1285
0
{
1286
#ifdef CONFIG_IEEE80211BE
1287
  if (conf->ieee80211be)
1288
    return conf->eht_oper_centr_freq_seg0_idx;
1289
#endif /* CONFIG_IEEE80211BE */
1290
#ifdef CONFIG_IEEE80211AX
1291
  if (conf->ieee80211ax)
1292
    return conf->he_oper_centr_freq_seg0_idx;
1293
#endif /* CONFIG_IEEE80211AX */
1294
0
  return conf->vht_oper_centr_freq_seg0_idx;
1295
0
}
Unexecuted instantiation: comeback_token.c:hostapd_get_oper_centr_freq_seg0_idx
Unexecuted instantiation: pasn_responder.c:hostapd_get_oper_centr_freq_seg0_idx
Unexecuted instantiation: p2p.c:hostapd_get_oper_centr_freq_seg0_idx
Unexecuted instantiation: ap-mgmt.c:hostapd_get_oper_centr_freq_seg0_idx
Unexecuted instantiation: ap_config.c:hostapd_get_oper_centr_freq_seg0_idx
Unexecuted instantiation: ap_list.c:hostapd_get_oper_centr_freq_seg0_idx
Unexecuted instantiation: beacon.c:hostapd_get_oper_centr_freq_seg0_idx
Unexecuted instantiation: dfs.c:hostapd_get_oper_centr_freq_seg0_idx
Unexecuted instantiation: hostapd.c:hostapd_get_oper_centr_freq_seg0_idx
Unexecuted instantiation: hs20.c:hostapd_get_oper_centr_freq_seg0_idx
Unexecuted instantiation: hw_features.c:hostapd_get_oper_centr_freq_seg0_idx
Unexecuted instantiation: ieee802_11_auth.c:hostapd_get_oper_centr_freq_seg0_idx
Unexecuted instantiation: ieee802_11.c:hostapd_get_oper_centr_freq_seg0_idx
Unexecuted instantiation: ieee802_11_ht.c:hostapd_get_oper_centr_freq_seg0_idx
Unexecuted instantiation: ieee802_11_shared.c:hostapd_get_oper_centr_freq_seg0_idx
Unexecuted instantiation: ieee802_1x.c:hostapd_get_oper_centr_freq_seg0_idx
Unexecuted instantiation: neighbor_db.c:hostapd_get_oper_centr_freq_seg0_idx
Unexecuted instantiation: ndisc_snoop.c:hostapd_get_oper_centr_freq_seg0_idx
Unexecuted instantiation: pmksa_cache_auth.c:hostapd_get_oper_centr_freq_seg0_idx
Unexecuted instantiation: rrm.c:hostapd_get_oper_centr_freq_seg0_idx
Unexecuted instantiation: sta_info.c:hostapd_get_oper_centr_freq_seg0_idx
Unexecuted instantiation: utils.c:hostapd_get_oper_centr_freq_seg0_idx
Unexecuted instantiation: vlan_init.c:hostapd_get_oper_centr_freq_seg0_idx
Unexecuted instantiation: wmm.c:hostapd_get_oper_centr_freq_seg0_idx
Unexecuted instantiation: wpa_auth.c:hostapd_get_oper_centr_freq_seg0_idx
Unexecuted instantiation: wpa_auth_ft.c:hostapd_get_oper_centr_freq_seg0_idx
Unexecuted instantiation: wpa_auth_glue.c:hostapd_get_oper_centr_freq_seg0_idx
Unexecuted instantiation: wpa_auth_ie.c:hostapd_get_oper_centr_freq_seg0_idx
Unexecuted instantiation: wps_hostapd.c:hostapd_get_oper_centr_freq_seg0_idx
Unexecuted instantiation: x_snoop.c:hostapd_get_oper_centr_freq_seg0_idx
Unexecuted instantiation: accounting.c:hostapd_get_oper_centr_freq_seg0_idx
Unexecuted instantiation: ap_drv_ops.c:hostapd_get_oper_centr_freq_seg0_idx
Unexecuted instantiation: ap_mlme.c:hostapd_get_oper_centr_freq_seg0_idx
Unexecuted instantiation: airtime_policy.c:hostapd_get_oper_centr_freq_seg0_idx
Unexecuted instantiation: authsrv.c:hostapd_get_oper_centr_freq_seg0_idx
Unexecuted instantiation: bss_load.c:hostapd_get_oper_centr_freq_seg0_idx
Unexecuted instantiation: dhcp_snoop.c:hostapd_get_oper_centr_freq_seg0_idx
Unexecuted instantiation: eap_user_db.c:hostapd_get_oper_centr_freq_seg0_idx
Unexecuted instantiation: eth_p_oui.c:hostapd_get_oper_centr_freq_seg0_idx
Unexecuted instantiation: gas_serv.c:hostapd_get_oper_centr_freq_seg0_idx
Unexecuted instantiation: tkip_countermeasures.c:hostapd_get_oper_centr_freq_seg0_idx
Unexecuted instantiation: events.c:hostapd_get_oper_centr_freq_seg0_idx
1296
1297
static inline void
1298
hostapd_set_oper_centr_freq_seg0_idx(struct hostapd_config *conf,
1299
             u8 oper_centr_freq_seg0_idx)
1300
0
{
1301
#ifdef CONFIG_IEEE80211BE
1302
  if (conf->ieee80211be)
1303
    conf->eht_oper_centr_freq_seg0_idx = oper_centr_freq_seg0_idx;
1304
  if (is_6ghz_op_class(conf->op_class) &&
1305
      center_idx_to_bw_6ghz(oper_centr_freq_seg0_idx) == 4)
1306
    oper_centr_freq_seg0_idx +=
1307
      conf->channel > oper_centr_freq_seg0_idx ? 16 : -16;
1308
#endif /* CONFIG_IEEE80211BE */
1309
#ifdef CONFIG_IEEE80211AX
1310
  if (conf->ieee80211ax)
1311
    conf->he_oper_centr_freq_seg0_idx = oper_centr_freq_seg0_idx;
1312
#endif /* CONFIG_IEEE80211AX */
1313
0
  conf->vht_oper_centr_freq_seg0_idx = oper_centr_freq_seg0_idx;
1314
0
}
Unexecuted instantiation: comeback_token.c:hostapd_set_oper_centr_freq_seg0_idx
Unexecuted instantiation: pasn_responder.c:hostapd_set_oper_centr_freq_seg0_idx
Unexecuted instantiation: p2p.c:hostapd_set_oper_centr_freq_seg0_idx
Unexecuted instantiation: ap-mgmt.c:hostapd_set_oper_centr_freq_seg0_idx
Unexecuted instantiation: ap_config.c:hostapd_set_oper_centr_freq_seg0_idx
Unexecuted instantiation: ap_list.c:hostapd_set_oper_centr_freq_seg0_idx
Unexecuted instantiation: beacon.c:hostapd_set_oper_centr_freq_seg0_idx
Unexecuted instantiation: dfs.c:hostapd_set_oper_centr_freq_seg0_idx
Unexecuted instantiation: hostapd.c:hostapd_set_oper_centr_freq_seg0_idx
Unexecuted instantiation: hs20.c:hostapd_set_oper_centr_freq_seg0_idx
Unexecuted instantiation: hw_features.c:hostapd_set_oper_centr_freq_seg0_idx
Unexecuted instantiation: ieee802_11_auth.c:hostapd_set_oper_centr_freq_seg0_idx
Unexecuted instantiation: ieee802_11.c:hostapd_set_oper_centr_freq_seg0_idx
Unexecuted instantiation: ieee802_11_ht.c:hostapd_set_oper_centr_freq_seg0_idx
Unexecuted instantiation: ieee802_11_shared.c:hostapd_set_oper_centr_freq_seg0_idx
Unexecuted instantiation: ieee802_1x.c:hostapd_set_oper_centr_freq_seg0_idx
Unexecuted instantiation: neighbor_db.c:hostapd_set_oper_centr_freq_seg0_idx
Unexecuted instantiation: ndisc_snoop.c:hostapd_set_oper_centr_freq_seg0_idx
Unexecuted instantiation: pmksa_cache_auth.c:hostapd_set_oper_centr_freq_seg0_idx
Unexecuted instantiation: rrm.c:hostapd_set_oper_centr_freq_seg0_idx
Unexecuted instantiation: sta_info.c:hostapd_set_oper_centr_freq_seg0_idx
Unexecuted instantiation: utils.c:hostapd_set_oper_centr_freq_seg0_idx
Unexecuted instantiation: vlan_init.c:hostapd_set_oper_centr_freq_seg0_idx
Unexecuted instantiation: wmm.c:hostapd_set_oper_centr_freq_seg0_idx
Unexecuted instantiation: wpa_auth.c:hostapd_set_oper_centr_freq_seg0_idx
Unexecuted instantiation: wpa_auth_ft.c:hostapd_set_oper_centr_freq_seg0_idx
Unexecuted instantiation: wpa_auth_glue.c:hostapd_set_oper_centr_freq_seg0_idx
Unexecuted instantiation: wpa_auth_ie.c:hostapd_set_oper_centr_freq_seg0_idx
Unexecuted instantiation: wps_hostapd.c:hostapd_set_oper_centr_freq_seg0_idx
Unexecuted instantiation: x_snoop.c:hostapd_set_oper_centr_freq_seg0_idx
Unexecuted instantiation: accounting.c:hostapd_set_oper_centr_freq_seg0_idx
Unexecuted instantiation: ap_drv_ops.c:hostapd_set_oper_centr_freq_seg0_idx
Unexecuted instantiation: ap_mlme.c:hostapd_set_oper_centr_freq_seg0_idx
Unexecuted instantiation: airtime_policy.c:hostapd_set_oper_centr_freq_seg0_idx
Unexecuted instantiation: authsrv.c:hostapd_set_oper_centr_freq_seg0_idx
Unexecuted instantiation: bss_load.c:hostapd_set_oper_centr_freq_seg0_idx
Unexecuted instantiation: dhcp_snoop.c:hostapd_set_oper_centr_freq_seg0_idx
Unexecuted instantiation: eap_user_db.c:hostapd_set_oper_centr_freq_seg0_idx
Unexecuted instantiation: eth_p_oui.c:hostapd_set_oper_centr_freq_seg0_idx
Unexecuted instantiation: gas_serv.c:hostapd_set_oper_centr_freq_seg0_idx
Unexecuted instantiation: tkip_countermeasures.c:hostapd_set_oper_centr_freq_seg0_idx
Unexecuted instantiation: events.c:hostapd_set_oper_centr_freq_seg0_idx
1315
1316
static inline u8
1317
hostapd_get_oper_centr_freq_seg1_idx(struct hostapd_config *conf)
1318
0
{
1319
#ifdef CONFIG_IEEE80211AX
1320
  if (conf->ieee80211ax)
1321
    return conf->he_oper_centr_freq_seg1_idx;
1322
#endif /* CONFIG_IEEE80211AX */
1323
0
  return conf->vht_oper_centr_freq_seg1_idx;
1324
0
}
Unexecuted instantiation: comeback_token.c:hostapd_get_oper_centr_freq_seg1_idx
Unexecuted instantiation: pasn_responder.c:hostapd_get_oper_centr_freq_seg1_idx
Unexecuted instantiation: p2p.c:hostapd_get_oper_centr_freq_seg1_idx
Unexecuted instantiation: ap-mgmt.c:hostapd_get_oper_centr_freq_seg1_idx
Unexecuted instantiation: ap_config.c:hostapd_get_oper_centr_freq_seg1_idx
Unexecuted instantiation: ap_list.c:hostapd_get_oper_centr_freq_seg1_idx
Unexecuted instantiation: beacon.c:hostapd_get_oper_centr_freq_seg1_idx
Unexecuted instantiation: dfs.c:hostapd_get_oper_centr_freq_seg1_idx
Unexecuted instantiation: hostapd.c:hostapd_get_oper_centr_freq_seg1_idx
Unexecuted instantiation: hs20.c:hostapd_get_oper_centr_freq_seg1_idx
Unexecuted instantiation: hw_features.c:hostapd_get_oper_centr_freq_seg1_idx
Unexecuted instantiation: ieee802_11_auth.c:hostapd_get_oper_centr_freq_seg1_idx
Unexecuted instantiation: ieee802_11.c:hostapd_get_oper_centr_freq_seg1_idx
Unexecuted instantiation: ieee802_11_ht.c:hostapd_get_oper_centr_freq_seg1_idx
Unexecuted instantiation: ieee802_11_shared.c:hostapd_get_oper_centr_freq_seg1_idx
Unexecuted instantiation: ieee802_1x.c:hostapd_get_oper_centr_freq_seg1_idx
Unexecuted instantiation: neighbor_db.c:hostapd_get_oper_centr_freq_seg1_idx
Unexecuted instantiation: ndisc_snoop.c:hostapd_get_oper_centr_freq_seg1_idx
Unexecuted instantiation: pmksa_cache_auth.c:hostapd_get_oper_centr_freq_seg1_idx
Unexecuted instantiation: rrm.c:hostapd_get_oper_centr_freq_seg1_idx
Unexecuted instantiation: sta_info.c:hostapd_get_oper_centr_freq_seg1_idx
Unexecuted instantiation: utils.c:hostapd_get_oper_centr_freq_seg1_idx
Unexecuted instantiation: vlan_init.c:hostapd_get_oper_centr_freq_seg1_idx
Unexecuted instantiation: wmm.c:hostapd_get_oper_centr_freq_seg1_idx
Unexecuted instantiation: wpa_auth.c:hostapd_get_oper_centr_freq_seg1_idx
Unexecuted instantiation: wpa_auth_ft.c:hostapd_get_oper_centr_freq_seg1_idx
Unexecuted instantiation: wpa_auth_glue.c:hostapd_get_oper_centr_freq_seg1_idx
Unexecuted instantiation: wpa_auth_ie.c:hostapd_get_oper_centr_freq_seg1_idx
Unexecuted instantiation: wps_hostapd.c:hostapd_get_oper_centr_freq_seg1_idx
Unexecuted instantiation: x_snoop.c:hostapd_get_oper_centr_freq_seg1_idx
Unexecuted instantiation: accounting.c:hostapd_get_oper_centr_freq_seg1_idx
Unexecuted instantiation: ap_drv_ops.c:hostapd_get_oper_centr_freq_seg1_idx
Unexecuted instantiation: ap_mlme.c:hostapd_get_oper_centr_freq_seg1_idx
Unexecuted instantiation: airtime_policy.c:hostapd_get_oper_centr_freq_seg1_idx
Unexecuted instantiation: authsrv.c:hostapd_get_oper_centr_freq_seg1_idx
Unexecuted instantiation: bss_load.c:hostapd_get_oper_centr_freq_seg1_idx
Unexecuted instantiation: dhcp_snoop.c:hostapd_get_oper_centr_freq_seg1_idx
Unexecuted instantiation: eap_user_db.c:hostapd_get_oper_centr_freq_seg1_idx
Unexecuted instantiation: eth_p_oui.c:hostapd_get_oper_centr_freq_seg1_idx
Unexecuted instantiation: gas_serv.c:hostapd_get_oper_centr_freq_seg1_idx
Unexecuted instantiation: tkip_countermeasures.c:hostapd_get_oper_centr_freq_seg1_idx
Unexecuted instantiation: events.c:hostapd_get_oper_centr_freq_seg1_idx
1325
1326
static inline void
1327
hostapd_set_oper_centr_freq_seg1_idx(struct hostapd_config *conf,
1328
             u8 oper_centr_freq_seg1_idx)
1329
0
{
1330
#ifdef CONFIG_IEEE80211AX
1331
  if (conf->ieee80211ax)
1332
    conf->he_oper_centr_freq_seg1_idx = oper_centr_freq_seg1_idx;
1333
#endif /* CONFIG_IEEE80211AX */
1334
0
  conf->vht_oper_centr_freq_seg1_idx = oper_centr_freq_seg1_idx;
1335
0
}
Unexecuted instantiation: comeback_token.c:hostapd_set_oper_centr_freq_seg1_idx
Unexecuted instantiation: pasn_responder.c:hostapd_set_oper_centr_freq_seg1_idx
Unexecuted instantiation: p2p.c:hostapd_set_oper_centr_freq_seg1_idx
Unexecuted instantiation: ap-mgmt.c:hostapd_set_oper_centr_freq_seg1_idx
Unexecuted instantiation: ap_config.c:hostapd_set_oper_centr_freq_seg1_idx
Unexecuted instantiation: ap_list.c:hostapd_set_oper_centr_freq_seg1_idx
Unexecuted instantiation: beacon.c:hostapd_set_oper_centr_freq_seg1_idx
Unexecuted instantiation: dfs.c:hostapd_set_oper_centr_freq_seg1_idx
Unexecuted instantiation: hostapd.c:hostapd_set_oper_centr_freq_seg1_idx
Unexecuted instantiation: hs20.c:hostapd_set_oper_centr_freq_seg1_idx
Unexecuted instantiation: hw_features.c:hostapd_set_oper_centr_freq_seg1_idx
Unexecuted instantiation: ieee802_11_auth.c:hostapd_set_oper_centr_freq_seg1_idx
Unexecuted instantiation: ieee802_11.c:hostapd_set_oper_centr_freq_seg1_idx
Unexecuted instantiation: ieee802_11_ht.c:hostapd_set_oper_centr_freq_seg1_idx
Unexecuted instantiation: ieee802_11_shared.c:hostapd_set_oper_centr_freq_seg1_idx
Unexecuted instantiation: ieee802_1x.c:hostapd_set_oper_centr_freq_seg1_idx
Unexecuted instantiation: neighbor_db.c:hostapd_set_oper_centr_freq_seg1_idx
Unexecuted instantiation: ndisc_snoop.c:hostapd_set_oper_centr_freq_seg1_idx
Unexecuted instantiation: pmksa_cache_auth.c:hostapd_set_oper_centr_freq_seg1_idx
Unexecuted instantiation: rrm.c:hostapd_set_oper_centr_freq_seg1_idx
Unexecuted instantiation: sta_info.c:hostapd_set_oper_centr_freq_seg1_idx
Unexecuted instantiation: utils.c:hostapd_set_oper_centr_freq_seg1_idx
Unexecuted instantiation: vlan_init.c:hostapd_set_oper_centr_freq_seg1_idx
Unexecuted instantiation: wmm.c:hostapd_set_oper_centr_freq_seg1_idx
Unexecuted instantiation: wpa_auth.c:hostapd_set_oper_centr_freq_seg1_idx
Unexecuted instantiation: wpa_auth_ft.c:hostapd_set_oper_centr_freq_seg1_idx
Unexecuted instantiation: wpa_auth_glue.c:hostapd_set_oper_centr_freq_seg1_idx
Unexecuted instantiation: wpa_auth_ie.c:hostapd_set_oper_centr_freq_seg1_idx
Unexecuted instantiation: wps_hostapd.c:hostapd_set_oper_centr_freq_seg1_idx
Unexecuted instantiation: x_snoop.c:hostapd_set_oper_centr_freq_seg1_idx
Unexecuted instantiation: accounting.c:hostapd_set_oper_centr_freq_seg1_idx
Unexecuted instantiation: ap_drv_ops.c:hostapd_set_oper_centr_freq_seg1_idx
Unexecuted instantiation: ap_mlme.c:hostapd_set_oper_centr_freq_seg1_idx
Unexecuted instantiation: airtime_policy.c:hostapd_set_oper_centr_freq_seg1_idx
Unexecuted instantiation: authsrv.c:hostapd_set_oper_centr_freq_seg1_idx
Unexecuted instantiation: bss_load.c:hostapd_set_oper_centr_freq_seg1_idx
Unexecuted instantiation: dhcp_snoop.c:hostapd_set_oper_centr_freq_seg1_idx
Unexecuted instantiation: eap_user_db.c:hostapd_set_oper_centr_freq_seg1_idx
Unexecuted instantiation: eth_p_oui.c:hostapd_set_oper_centr_freq_seg1_idx
Unexecuted instantiation: gas_serv.c:hostapd_set_oper_centr_freq_seg1_idx
Unexecuted instantiation: tkip_countermeasures.c:hostapd_set_oper_centr_freq_seg1_idx
Unexecuted instantiation: events.c:hostapd_set_oper_centr_freq_seg1_idx
1336
1337
static inline u8
1338
hostapd_get_bw320_offset(struct hostapd_config *conf)
1339
0
{
1340
0
#ifdef CONFIG_IEEE80211BE
1341
0
  if (conf->ieee80211be && is_6ghz_op_class(conf->op_class) &&
1342
0
      hostapd_get_oper_chwidth(conf) == CONF_OPER_CHWIDTH_320MHZ)
1343
0
    return conf->eht_bw320_offset;
1344
0
#endif /* CONFIG_IEEE80211BE */
1345
0
  return 0;
1346
0
}
Unexecuted instantiation: comeback_token.c:hostapd_get_bw320_offset
Unexecuted instantiation: pasn_responder.c:hostapd_get_bw320_offset
Unexecuted instantiation: p2p.c:hostapd_get_bw320_offset
Unexecuted instantiation: ap-mgmt.c:hostapd_get_bw320_offset
Unexecuted instantiation: ap_config.c:hostapd_get_bw320_offset
Unexecuted instantiation: ap_list.c:hostapd_get_bw320_offset
Unexecuted instantiation: beacon.c:hostapd_get_bw320_offset
Unexecuted instantiation: dfs.c:hostapd_get_bw320_offset
Unexecuted instantiation: hostapd.c:hostapd_get_bw320_offset
Unexecuted instantiation: hs20.c:hostapd_get_bw320_offset
Unexecuted instantiation: hw_features.c:hostapd_get_bw320_offset
Unexecuted instantiation: ieee802_11_auth.c:hostapd_get_bw320_offset
Unexecuted instantiation: ieee802_11.c:hostapd_get_bw320_offset
Unexecuted instantiation: ieee802_11_ht.c:hostapd_get_bw320_offset
Unexecuted instantiation: ieee802_11_shared.c:hostapd_get_bw320_offset
Unexecuted instantiation: ieee802_1x.c:hostapd_get_bw320_offset
Unexecuted instantiation: neighbor_db.c:hostapd_get_bw320_offset
Unexecuted instantiation: ndisc_snoop.c:hostapd_get_bw320_offset
Unexecuted instantiation: pmksa_cache_auth.c:hostapd_get_bw320_offset
Unexecuted instantiation: rrm.c:hostapd_get_bw320_offset
Unexecuted instantiation: sta_info.c:hostapd_get_bw320_offset
Unexecuted instantiation: utils.c:hostapd_get_bw320_offset
Unexecuted instantiation: vlan_init.c:hostapd_get_bw320_offset
Unexecuted instantiation: wmm.c:hostapd_get_bw320_offset
Unexecuted instantiation: wpa_auth.c:hostapd_get_bw320_offset
Unexecuted instantiation: wpa_auth_ft.c:hostapd_get_bw320_offset
Unexecuted instantiation: wpa_auth_glue.c:hostapd_get_bw320_offset
Unexecuted instantiation: wpa_auth_ie.c:hostapd_get_bw320_offset
Unexecuted instantiation: wps_hostapd.c:hostapd_get_bw320_offset
Unexecuted instantiation: x_snoop.c:hostapd_get_bw320_offset
Unexecuted instantiation: accounting.c:hostapd_get_bw320_offset
Unexecuted instantiation: ap_drv_ops.c:hostapd_get_bw320_offset
Unexecuted instantiation: ap_mlme.c:hostapd_get_bw320_offset
Unexecuted instantiation: airtime_policy.c:hostapd_get_bw320_offset
Unexecuted instantiation: authsrv.c:hostapd_get_bw320_offset
Unexecuted instantiation: bss_load.c:hostapd_get_bw320_offset
Unexecuted instantiation: dhcp_snoop.c:hostapd_get_bw320_offset
Unexecuted instantiation: eap_user_db.c:hostapd_get_bw320_offset
Unexecuted instantiation: eth_p_oui.c:hostapd_get_bw320_offset
Unexecuted instantiation: gas_serv.c:hostapd_get_bw320_offset
Unexecuted instantiation: tkip_countermeasures.c:hostapd_get_bw320_offset
Unexecuted instantiation: events.c:hostapd_get_bw320_offset
1347
1348
static inline void
1349
hostapd_set_and_check_bw320_offset(struct hostapd_config *conf,
1350
           u8 bw320_offset)
1351
2.20k
{
1352
#ifdef CONFIG_IEEE80211BE
1353
  if (conf->ieee80211be && is_6ghz_op_class(conf->op_class) &&
1354
      op_class_to_ch_width(conf->op_class) == CONF_OPER_CHWIDTH_320MHZ) {
1355
    if (conf->channel) {
1356
      /* If the channel is set, then calculate bw320_offset
1357
       * by center frequency segment 0.
1358
       */
1359
      u8 seg0 = hostapd_get_oper_centr_freq_seg0_idx(conf);
1360
1361
      conf->eht_bw320_offset = (seg0 - 31) % 64 ? 2 : 1;
1362
    } else {
1363
      /* If the channel is not set, bw320_offset indicates
1364
       * preferred offset of 320 MHz.
1365
       */
1366
      conf->eht_bw320_offset = bw320_offset;
1367
    }
1368
  } else {
1369
    conf->eht_bw320_offset = 0;
1370
  }
1371
#endif /* CONFIG_IEEE80211BE */
1372
2.20k
}
Unexecuted instantiation: comeback_token.c:hostapd_set_and_check_bw320_offset
Unexecuted instantiation: pasn_responder.c:hostapd_set_and_check_bw320_offset
Unexecuted instantiation: p2p.c:hostapd_set_and_check_bw320_offset
Unexecuted instantiation: ap-mgmt.c:hostapd_set_and_check_bw320_offset
ap_config.c:hostapd_set_and_check_bw320_offset
Line
Count
Source
1351
2.20k
{
1352
#ifdef CONFIG_IEEE80211BE
1353
  if (conf->ieee80211be && is_6ghz_op_class(conf->op_class) &&
1354
      op_class_to_ch_width(conf->op_class) == CONF_OPER_CHWIDTH_320MHZ) {
1355
    if (conf->channel) {
1356
      /* If the channel is set, then calculate bw320_offset
1357
       * by center frequency segment 0.
1358
       */
1359
      u8 seg0 = hostapd_get_oper_centr_freq_seg0_idx(conf);
1360
1361
      conf->eht_bw320_offset = (seg0 - 31) % 64 ? 2 : 1;
1362
    } else {
1363
      /* If the channel is not set, bw320_offset indicates
1364
       * preferred offset of 320 MHz.
1365
       */
1366
      conf->eht_bw320_offset = bw320_offset;
1367
    }
1368
  } else {
1369
    conf->eht_bw320_offset = 0;
1370
  }
1371
#endif /* CONFIG_IEEE80211BE */
1372
2.20k
}
Unexecuted instantiation: ap_list.c:hostapd_set_and_check_bw320_offset
Unexecuted instantiation: beacon.c:hostapd_set_and_check_bw320_offset
Unexecuted instantiation: dfs.c:hostapd_set_and_check_bw320_offset
Unexecuted instantiation: hostapd.c:hostapd_set_and_check_bw320_offset
Unexecuted instantiation: hs20.c:hostapd_set_and_check_bw320_offset
Unexecuted instantiation: hw_features.c:hostapd_set_and_check_bw320_offset
Unexecuted instantiation: ieee802_11_auth.c:hostapd_set_and_check_bw320_offset
Unexecuted instantiation: ieee802_11.c:hostapd_set_and_check_bw320_offset
Unexecuted instantiation: ieee802_11_ht.c:hostapd_set_and_check_bw320_offset
Unexecuted instantiation: ieee802_11_shared.c:hostapd_set_and_check_bw320_offset
Unexecuted instantiation: ieee802_1x.c:hostapd_set_and_check_bw320_offset
Unexecuted instantiation: neighbor_db.c:hostapd_set_and_check_bw320_offset
Unexecuted instantiation: ndisc_snoop.c:hostapd_set_and_check_bw320_offset
Unexecuted instantiation: pmksa_cache_auth.c:hostapd_set_and_check_bw320_offset
Unexecuted instantiation: rrm.c:hostapd_set_and_check_bw320_offset
Unexecuted instantiation: sta_info.c:hostapd_set_and_check_bw320_offset
Unexecuted instantiation: utils.c:hostapd_set_and_check_bw320_offset
Unexecuted instantiation: vlan_init.c:hostapd_set_and_check_bw320_offset
Unexecuted instantiation: wmm.c:hostapd_set_and_check_bw320_offset
Unexecuted instantiation: wpa_auth.c:hostapd_set_and_check_bw320_offset
Unexecuted instantiation: wpa_auth_ft.c:hostapd_set_and_check_bw320_offset
Unexecuted instantiation: wpa_auth_glue.c:hostapd_set_and_check_bw320_offset
Unexecuted instantiation: wpa_auth_ie.c:hostapd_set_and_check_bw320_offset
Unexecuted instantiation: wps_hostapd.c:hostapd_set_and_check_bw320_offset
Unexecuted instantiation: x_snoop.c:hostapd_set_and_check_bw320_offset
Unexecuted instantiation: accounting.c:hostapd_set_and_check_bw320_offset
Unexecuted instantiation: ap_drv_ops.c:hostapd_set_and_check_bw320_offset
Unexecuted instantiation: ap_mlme.c:hostapd_set_and_check_bw320_offset
Unexecuted instantiation: airtime_policy.c:hostapd_set_and_check_bw320_offset
Unexecuted instantiation: authsrv.c:hostapd_set_and_check_bw320_offset
Unexecuted instantiation: bss_load.c:hostapd_set_and_check_bw320_offset
Unexecuted instantiation: dhcp_snoop.c:hostapd_set_and_check_bw320_offset
Unexecuted instantiation: eap_user_db.c:hostapd_set_and_check_bw320_offset
Unexecuted instantiation: eth_p_oui.c:hostapd_set_and_check_bw320_offset
Unexecuted instantiation: gas_serv.c:hostapd_set_and_check_bw320_offset
Unexecuted instantiation: tkip_countermeasures.c:hostapd_set_and_check_bw320_offset
Unexecuted instantiation: events.c:hostapd_set_and_check_bw320_offset
1373
1374
1375
int hostapd_mac_comp(const void *a, const void *b);
1376
struct hostapd_config * hostapd_config_defaults(void);
1377
void hostapd_config_defaults_bss(struct hostapd_bss_config *bss);
1378
void hostapd_config_free_radius_attr(struct hostapd_radius_attr *attr);
1379
void hostapd_config_free_eap_user(struct hostapd_eap_user *user);
1380
void hostapd_config_free_eap_users(struct hostapd_eap_user *user);
1381
void hostapd_config_clear_wpa_psk(struct hostapd_wpa_psk **p);
1382
void hostapd_config_clear_rxkhs(struct hostapd_bss_config *conf);
1383
void hostapd_config_free_bss(struct hostapd_bss_config *conf);
1384
void hostapd_config_free(struct hostapd_config *conf);
1385
int hostapd_maclist_found(struct mac_acl_entry *list, int num_entries,
1386
        const u8 *addr, struct vlan_description *vlan_id);
1387
const u8 * hostapd_get_psk(const struct hostapd_bss_config *conf,
1388
         const u8 *addr, const u8 *p2p_dev_addr,
1389
         const u8 *prev_psk, int *vlan_id);
1390
int hostapd_setup_wpa_psk(struct hostapd_bss_config *conf);
1391
int hostapd_vlan_valid(struct hostapd_vlan *vlan,
1392
           struct vlan_description *vlan_desc);
1393
const char * hostapd_get_vlan_id_ifname(struct hostapd_vlan *vlan,
1394
          int vlan_id);
1395
struct hostapd_radius_attr *
1396
hostapd_config_get_radius_attr(struct hostapd_radius_attr *attr, u8 type);
1397
struct hostapd_radius_attr * hostapd_parse_radius_attr(const char *value);
1398
int hostapd_config_check(struct hostapd_config *conf, int full_config);
1399
void hostapd_set_security_params(struct hostapd_bss_config *bss,
1400
         int full_config);
1401
int hostapd_sae_pw_id_in_use(struct hostapd_bss_config *conf);
1402
bool hostapd_sae_pk_in_use(struct hostapd_bss_config *conf);
1403
bool hostapd_sae_pk_exclusively(struct hostapd_bss_config *conf);
1404
int hostapd_setup_sae_pt(struct hostapd_bss_config *conf);
1405
int hostapd_acl_comp(const void *a, const void *b);
1406
int hostapd_add_acl_maclist(struct mac_acl_entry **acl, int *num,
1407
          int vlan_id, const u8 *addr);
1408
void hostapd_remove_acl_mac(struct mac_acl_entry **acl, int *num,
1409
          const u8 *addr);
1410
bool hostapd_config_check_bss_6g(struct hostapd_bss_config *bss);
1411
1412
#endif /* HOSTAPD_CONFIG_H */