118334Speter/*
250397Sobrien * WPA Supplicant - Basic AP mode support routines
318334Speter * Copyright (c) 2003-2009, Jouni Malinen <j@w1.fi>
418334Speter * Copyright (c) 2009, Atheros Communications
518334Speter *
618334Speter * This software may be distributed under the terms of the BSD license.
718334Speter * See README for more details.
818334Speter */
918334Speter
1018334Speter#ifndef AP_H
1118334Speter#define AP_H
1218334Speter
1318334Speterint wpa_supplicant_create_ap(struct wpa_supplicant *wpa_s,
1418334Speter			     struct wpa_ssid *ssid);
1518334Spetervoid wpa_supplicant_ap_deinit(struct wpa_supplicant *wpa_s);
1618334Spetervoid wpa_supplicant_ap_rx_eapol(struct wpa_supplicant *wpa_s,
1718334Speter				const u8 *src_addr, const u8 *buf, size_t len);
1818334Speterint wpa_supplicant_ap_wps_pbc(struct wpa_supplicant *wpa_s, const u8 *bssid,
1918334Speter			      const u8 *p2p_dev_addr);
2018334Speterint wpa_supplicant_ap_wps_pin(struct wpa_supplicant *wpa_s, const u8 *bssid,
2118334Speter			      const char *pin, char *buf, size_t buflen,
2218334Speter			      int timeout);
2318334Speterint wpa_supplicant_ap_wps_cancel(struct wpa_supplicant *wpa_s);
2418334Spetervoid wpas_wps_ap_pin_disable(struct wpa_supplicant *wpa_s);
2518334Speterconst char * wpas_wps_ap_pin_random(struct wpa_supplicant *wpa_s, int timeout);
2618334Speterconst char * wpas_wps_ap_pin_get(struct wpa_supplicant *wpa_s);
2718334Speterint wpas_wps_ap_pin_set(struct wpa_supplicant *wpa_s, const char *pin,
2818334Speter			int timeout);
2918334Speterint ap_ctrl_iface_sta_first(struct wpa_supplicant *wpa_s,
3018334Speter			    char *buf, size_t buflen);
3118334Speterint ap_ctrl_iface_sta(struct wpa_supplicant *wpa_s, const char *txtaddr,
3218334Speter		      char *buf, size_t buflen);
3318334Speterint ap_ctrl_iface_sta_next(struct wpa_supplicant *wpa_s, const char *txtaddr,
3418334Speter			   char *buf, size_t buflen);
3518334Speterint ap_ctrl_iface_sta_deauthenticate(struct wpa_supplicant *wpa_s,
3618334Speter				     const char *txtaddr);
3718334Speterint ap_ctrl_iface_sta_disassociate(struct wpa_supplicant *wpa_s,
3818334Speter				   const char *txtaddr);
3918334Speterint ap_ctrl_iface_wpa_get_status(struct wpa_supplicant *wpa_s, char *buf,
4018334Speter				 size_t buflen, int verbose);
4118334Spetervoid ap_tx_status(void *ctx, const u8 *addr,
4218334Speter		  const u8 *buf, size_t len, int ack);
4318334Spetervoid ap_eapol_tx_status(void *ctx, const u8 *dst,
4418334Speter			const u8 *data, size_t len, int ack);
4518334Spetervoid ap_client_poll_ok(void *ctx, const u8 *addr);
4618334Spetervoid ap_rx_from_unknown_sta(void *ctx, const u8 *addr, int wds);
4718334Spetervoid ap_mgmt_rx(void *ctx, struct rx_mgmt *rx_mgmt);
4818334Spetervoid ap_mgmt_tx_cb(void *ctx, const u8 *buf, size_t len, u16 stype, int ok);
4918334Speterint wpa_supplicant_ap_update_beacon(struct wpa_supplicant *wpa_s);
5018334Speterint wpa_supplicant_ap_mac_addr_filter(struct wpa_supplicant *wpa_s,
5118334Speter				      const u8 *addr);
5218334Spetervoid wpa_supplicant_ap_pwd_auth_fail(struct wpa_supplicant *wpa_s);
5318334Spetervoid wpas_ap_ch_switch(struct wpa_supplicant *wpa_s, int freq, int ht,
5418334Speter		       int offset);
5518334Speter
5618334Speter#endif /* AP_H */
5718334Speter