Bug: 275651698 Test: Connect to open, WPA2, WPA3 and passpoint network Test: Establish P2P connection Test: Basic SoftAp tests Test: Regression test (b/275948027) BYPASS_INCLUSIVE_LANGUAGE_REASON=Merged from opne source bb945b98f Add 40 and 80 MHz channels 165 and 173 for 5 GHz IBSS/mesh 0059fa5ba 6 GHz: Fix secondary channel setting 744295c8b Add 6 GHz channel validation during channel switching 5349a45d3 Set interface state as inactive if mesh bringup fails a4af79624 Handle signal termination in hostapd_cli for all cases cf8f13ac8 Add support to send 320 MHz bandwidth through vendor subcmd a0403c023 EHT: Validate the puncturing bitmap for ACS af0f60e7d EHT: Calculate puncturing bitmap for ACS f3206fbe9 EHT: Configuration option for ACS puncturing threshold e3621867c EHT: Process puncturing bitmap from channel switch event e277e577c nl80211: Send EHT puncturing bitmap to the driver for switch command 29a882bed EHT: Configure puncturing bitmap during channel switch 4942b19ff EHT: Send puncturing bitmap to the driver for AP bring up f9fc2eabb EHT: Add puncturing bitmap to EHT Operation element 46a5d989d EHT: Downgrade bandwidths for VHT and HE when using puncturing 7618269ec EHT: Validate puncturing bitmap 9102fda31 EHT: Add configuration option for puncturing in AP mode 9e79439fc nl80211: Retrieve driver support for EHT puncturing 507be376c Sync with wireless-next.git include/uapi/linux/nl80211.h 591256a8c FILS: 320 MHz support in FD frame 903e3a1e6 FILS: Fix maximum NSS calculation for FD frame ecae45ff6 FILS: Make HE a requirement for FILS discovery 4e86692ff AP: Fix 6 GHz AP setup after disable-enable a34b8477a ml80211: Put wiphy idx to obtain correct country code 1491fc64a Define QCA vendor per-enum 64-bit pad attributes 55e31699e qca-vendor: Add QCA_WLAN_VENDOR_ATTR_LL_STATS_IFACE_NF_CAL_VAL b1f85957c Add QCA vendor commands to set and get MLO links state information 44b32a752 mesh: Add EHT support c4cb62ca8 WPA_AUTH: MLO: Add functions to get the AA and SPA cab963e9f AP: Split check_assoc_ies() 7a7a2256c common: Support parsing link specific association request b39e35693 common: Add support for clearing elements 0b2fc4268 common: Split ieee8021_parse_elems() df6561ec0 nl80211: AP MLD support for adding multi link stations b8b4ceb8d nl80211: Properly stop and deinit MLO AP 2f8fc46ed nl80211: Provide link_id in EAPOL_RX and RX_MGMT events 821374d43 nl80211: Introduce and implement a callback to add an MLO link for AP MLD 47269be36 nl80211: Refactor i802_bss to support multiple links eb146ee80 AP: Add some bridge port attribute settings f628e6b30 nl80211: Make sure scan frequency debug buffer is NUL terminated 41d23254b nl80211: Fix frequencies array boundary check for scanned frequencies a9012070a Android: Add wowlan_disconnect_on_deinit to template configuration e2ea0fd70 EST: Write the RSA private key using the standard PRIVATE KEY format bfd236df2 webkit2: Avoid deprecated function call 2c3202682 P2P: Filter out 6 GHz frequencies if not allowed for P2P connection b2bf7e39e Update PMK in wpa_sm when roam+auth event indicated with authorized flag 6b9c86466 nl80211: Replace the channel flags for VHT support 6f63aca7b DPP: Allow both STA and AP configObject to be set 7292e30b7 DPP: Fix @CONF-OBJ-SEP@ parsing for multiple configs c31600ce1 P2P: Allow GO BSSID to be specified for P2P_GROUP_ADD commands 0430756e6 P2P: Optimize join scan frequency b3921db42 nl80211: Add frequency info in start AP command 40c139664 macsec_linux: Add support for MACsec hardware offload 6d24673ab mka: Allow configuration of MACsec hardware offload 3081a9cb6 hostapd: Output country_code and country3 when using STATUS 91ad7a309 FT: Store PTKSA entry for the correct BSSID in the FT protocol case 3f3e356fa Mark addr argument to storing PTKSA const 242c3ad99 FT: Store PTKSA from FT protocol ba6954874 Mark wpa_auth_remove_ptksa() static 3b1ad1334 FT: Include KDK in FT specific PTK derivation on the AP 870a5bdc0 nl80211: Report guard interval and dual carrier modulation edcad193a dbus: Add inactive time to D-Bus signal info a678a510f dbus: Add D-Bus signal for PSK mismatch heuristics 691f729d5 P2P: Make invitation flow less aggressive f4a7e2a07 Rework IBSS/mesh 80 MHz channel selection f91f971bd Fix creating 6 GHz IBSS/mesh on 5/6 GHz-capable PHYs c623cee42 Make arrays static const in ibss_mesh_select_*() 64043e615 Split ibss_mesh_setup_freq() into multiple functions 8085a7e65 wpa_supplicant: Add option to explicitly set 4addr mode 1ffc7d1c6 Apply bias towards 6 GHz in roaming faa410292 WNM: Event report handling for BSS color collision and in-use 97405be96 Small textual improvements to wpa_supplicant man page ec02a0e93 hostapd: Output hw_mode when using STATUS 390e24c6c EAP-TTLS server: Add Ident field to MS-CHAP-Error 4ae798a22 P2P: Pick the best driver pref freq for invitation process 6c75f1dfa Send broadcast Probe Response frames on the 6 GHz band edfcb2f1a MLD STA: Indicate MLO support in NL80211_CMD_CONNECT c91852044 MLD STA: Add support for SAE external authentication offload to userspace 575712450 qca-vendor: Add QCA_WLAN_VENDOR_MCC_QUOTA_TYPE_LOW_LATENCY ba150059d FT: Store PMK-R0/PMK-R1 after EAPOL-Key msg 2/4 MIC validation 56662f36d Refine vendor subcmd QCA_NL80211_VENDOR_SUBCMD_ROAM_STATS 72b8193f4 MACsec: Remove EAP Session-Id length constraint 3915e8834 hostapd: Report error on unknown ACCEPT_ACL/DENY_ACL commands 2cff340d1 utils: Move log2pcap to python3 12de8112b Fix BSS age underflow d31c2b43a Fix segfault in case of an invalid configuration a32b424a3 MLD STA: Use AP MLD address in PMKSA cache attempts for driver-SME case 8c4790cef MLD STA: Store PMKSA with AP MLD address for MLO connection event bf124a03d SAE: Update PT value at later point for SME cases, if needed 1aadcca0a P2P: Enable SAE-H2E for client when joining a 6 GHz group 37f8257c4 SAE: Extend automatic enabling of H2E on 6 GHz to additional cases 89377c6b9 OCV: Fix build without CONFIG_OCV=y 2e47ea22c P2P: Fix handling Service Discovery Response received by GO device dc7e330e0 Set OCV capability based on Association Request frame RSNE 831be6514 WPS: Do not indicate incorrect PBC overlap based on partner link c9fc12425 P2P: Make wpas_p2p_notif_pbc_overlap() static Change-Id: I1eb61fc82b98b937a2ff37a30e60e28129fe143d Merged-In: I1eb61fc82b98b937a2ff37a30e60e28129fe143d
		
			
				
	
	
		
			127 lines
		
	
	
		
			5.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			127 lines
		
	
	
		
			5.4 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/*
 | 
						|
 * WPA Supplicant - Basic AP mode support routines
 | 
						|
 * Copyright (c) 2003-2009, Jouni Malinen <j@w1.fi>
 | 
						|
 * Copyright (c) 2009, Atheros Communications
 | 
						|
 *
 | 
						|
 * This software may be distributed under the terms of the BSD license.
 | 
						|
 * See README for more details.
 | 
						|
 */
 | 
						|
 | 
						|
#ifndef AP_H
 | 
						|
#define AP_H
 | 
						|
 | 
						|
enum macaddr_acl;
 | 
						|
 | 
						|
int wpa_supplicant_create_ap(struct wpa_supplicant *wpa_s,
 | 
						|
			     struct wpa_ssid *ssid);
 | 
						|
void wpa_supplicant_ap_deinit(struct wpa_supplicant *wpa_s);
 | 
						|
void wpa_supplicant_ap_rx_eapol(struct wpa_supplicant *wpa_s,
 | 
						|
				const u8 *src_addr, const u8 *buf, size_t len,
 | 
						|
				enum frame_encryption encrypted);
 | 
						|
int wpa_supplicant_ap_wps_pbc(struct wpa_supplicant *wpa_s, const u8 *bssid,
 | 
						|
			      const u8 *p2p_dev_addr);
 | 
						|
int wpa_supplicant_ap_wps_pin(struct wpa_supplicant *wpa_s, const u8 *bssid,
 | 
						|
			      const char *pin, char *buf, size_t buflen,
 | 
						|
			      int timeout);
 | 
						|
int wpa_supplicant_ap_wps_cancel(struct wpa_supplicant *wpa_s);
 | 
						|
void wpas_wps_ap_pin_disable(struct wpa_supplicant *wpa_s);
 | 
						|
const char * wpas_wps_ap_pin_random(struct wpa_supplicant *wpa_s, int timeout);
 | 
						|
const char * wpas_wps_ap_pin_get(struct wpa_supplicant *wpa_s);
 | 
						|
int wpas_wps_ap_pin_set(struct wpa_supplicant *wpa_s, const char *pin,
 | 
						|
			int timeout);
 | 
						|
int ap_ctrl_iface_sta_first(struct wpa_supplicant *wpa_s,
 | 
						|
			    char *buf, size_t buflen);
 | 
						|
int ap_ctrl_iface_sta(struct wpa_supplicant *wpa_s, const char *txtaddr,
 | 
						|
		      char *buf, size_t buflen);
 | 
						|
int ap_ctrl_iface_sta_next(struct wpa_supplicant *wpa_s, const char *txtaddr,
 | 
						|
			   char *buf, size_t buflen);
 | 
						|
int ap_ctrl_iface_sta_deauthenticate(struct wpa_supplicant *wpa_s,
 | 
						|
				     const char *txtaddr);
 | 
						|
int ap_ctrl_iface_sta_disassociate(struct wpa_supplicant *wpa_s,
 | 
						|
				   const char *txtaddr);
 | 
						|
int ap_ctrl_iface_wpa_get_status(struct wpa_supplicant *wpa_s, char *buf,
 | 
						|
				 size_t buflen, int verbose);
 | 
						|
int ap_ctrl_iface_disassoc_imminent(struct wpa_supplicant *wpa_s,
 | 
						|
				    const char *buf);
 | 
						|
int ap_ctrl_iface_ess_disassoc(struct wpa_supplicant *wpa_s, const char *buf);
 | 
						|
int ap_ctrl_iface_bss_tm_req(struct wpa_supplicant *wpa_s, const char *buf);
 | 
						|
int ap_ctrl_iface_acl_add_mac(struct wpa_supplicant *wpa_s,
 | 
						|
			      enum macaddr_acl acl_type, const char *buf);
 | 
						|
int ap_ctrl_iface_acl_del_mac(struct wpa_supplicant *wpa_s,
 | 
						|
			      enum macaddr_acl acl_type, const char *buf);
 | 
						|
int ap_ctrl_iface_acl_show_mac(struct wpa_supplicant *wpa_s,
 | 
						|
			       enum macaddr_acl acl_type, char *buf,
 | 
						|
			       size_t buflen);
 | 
						|
void ap_ctrl_iface_acl_clear_list(struct wpa_supplicant *wpa_s,
 | 
						|
				  enum macaddr_acl acl_type);
 | 
						|
int ap_ctrl_iface_disassoc_deny_mac(struct wpa_supplicant *wpa_s);
 | 
						|
int ap_ctrl_iface_disassoc_accept_mac(struct wpa_supplicant *wpa_s);
 | 
						|
int ap_ctrl_iface_set_acl(struct wpa_supplicant *wpa_s);
 | 
						|
void ap_tx_status(void *ctx, const u8 *addr,
 | 
						|
		  const u8 *buf, size_t len, int ack);
 | 
						|
void ap_eapol_tx_status(void *ctx, const u8 *dst,
 | 
						|
			const u8 *data, size_t len, int ack);
 | 
						|
void ap_client_poll_ok(void *ctx, const u8 *addr);
 | 
						|
void ap_rx_from_unknown_sta(void *ctx, const u8 *addr, int wds);
 | 
						|
void ap_mgmt_rx(void *ctx, struct rx_mgmt *rx_mgmt);
 | 
						|
void ap_mgmt_tx_cb(void *ctx, const u8 *buf, size_t len, u16 stype, int ok);
 | 
						|
int wpa_supplicant_ap_update_beacon(struct wpa_supplicant *wpa_s);
 | 
						|
int wpa_supplicant_ap_mac_addr_filter(struct wpa_supplicant *wpa_s,
 | 
						|
				      const u8 *addr);
 | 
						|
void wpa_supplicant_ap_pwd_auth_fail(struct wpa_supplicant *wpa_s);
 | 
						|
int ap_switch_channel(struct wpa_supplicant *wpa_s,
 | 
						|
		      struct csa_settings *settings);
 | 
						|
int ap_ctrl_iface_chanswitch(struct wpa_supplicant *wpa_s, const char *txtaddr);
 | 
						|
void wpas_ap_ch_switch(struct wpa_supplicant *wpa_s, int freq, int ht,
 | 
						|
		       int offset, int width, int cf1, int cf2,
 | 
						|
		       u16 punct_bitmap, int finished);
 | 
						|
struct wpabuf * wpas_ap_wps_nfc_config_token(struct wpa_supplicant *wpa_s,
 | 
						|
					     int ndef);
 | 
						|
#ifdef CONFIG_AP
 | 
						|
struct wpabuf * wpas_ap_wps_nfc_handover_sel(struct wpa_supplicant *wpa_s,
 | 
						|
					     int ndef);
 | 
						|
#else /* CONFIG_AP */
 | 
						|
static inline struct wpabuf *
 | 
						|
wpas_ap_wps_nfc_handover_sel(struct wpa_supplicant *wpa_s,
 | 
						|
			     int ndef)
 | 
						|
{
 | 
						|
	return NULL;
 | 
						|
}
 | 
						|
#endif /* CONFIG_AP */
 | 
						|
 | 
						|
int wpas_ap_wps_nfc_report_handover(struct wpa_supplicant *wpa_s,
 | 
						|
				    const struct wpabuf *req,
 | 
						|
				    const struct wpabuf *sel);
 | 
						|
int wpas_ap_wps_add_nfc_pw(struct wpa_supplicant *wpa_s, u16 pw_id,
 | 
						|
			   const struct wpabuf *pw, const u8 *pubkey_hash);
 | 
						|
 | 
						|
struct hostapd_config;
 | 
						|
int wpa_supplicant_conf_ap_ht(struct wpa_supplicant *wpa_s,
 | 
						|
			      struct wpa_ssid *ssid,
 | 
						|
			      struct hostapd_config *conf);
 | 
						|
 | 
						|
int wpas_ap_stop_ap(struct wpa_supplicant *wpa_s);
 | 
						|
 | 
						|
int wpas_ap_pmksa_cache_list(struct wpa_supplicant *wpa_s, char *buf,
 | 
						|
			     size_t len);
 | 
						|
void wpas_ap_pmksa_cache_flush(struct wpa_supplicant *wpa_s);
 | 
						|
int wpas_ap_pmksa_cache_list_mesh(struct wpa_supplicant *wpa_s, const u8 *addr,
 | 
						|
				  char *buf, size_t len);
 | 
						|
int wpas_ap_pmksa_cache_add_external(struct wpa_supplicant *wpa_s, char *cmd);
 | 
						|
int wpas_ap_update_beacon(struct wpa_supplicant *wpa_s);
 | 
						|
 | 
						|
void wpas_ap_event_dfs_radar_detected(struct wpa_supplicant *wpa_s,
 | 
						|
				      struct dfs_event *radar);
 | 
						|
void wpas_ap_event_dfs_cac_started(struct wpa_supplicant *wpa_s,
 | 
						|
				   struct dfs_event *radar);
 | 
						|
void wpas_ap_event_dfs_cac_finished(struct wpa_supplicant *wpa_s,
 | 
						|
				    struct dfs_event *radar);
 | 
						|
void wpas_ap_event_dfs_cac_aborted(struct wpa_supplicant *wpa_s,
 | 
						|
				   struct dfs_event *radar);
 | 
						|
void wpas_ap_event_dfs_cac_nop_finished(struct wpa_supplicant *wpa_s,
 | 
						|
					struct dfs_event *radar);
 | 
						|
 | 
						|
void ap_periodic(struct wpa_supplicant *wpa_s);
 | 
						|
 | 
						|
#endif /* AP_H */
 |