| /* |
| * |
| * Wireless daemon for Linux |
| * |
| * Copyright (C) 2020 Intel Corporation. All rights reserved. |
| * |
| * This library is free software; you can redistribute it and/or |
| * modify it under the terms of the GNU Lesser General Public |
| * License as published by the Free Software Foundation; either |
| * version 2.1 of the License, or (at your option) any later version. |
| * |
| * This library is distributed in the hope that it will be useful, |
| * but WITHOUT ANY WARRANTY; without even the implied warranty of |
| * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
| * Lesser General Public License for more details. |
| * |
| * You should have received a copy of the GNU Lesser General Public |
| * License along with this library; if not, write to the Free Software |
| * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA |
| * |
| */ |
| |
| struct ap_state; |
| struct iovec; |
| |
| enum ap_event_type { |
| AP_EVENT_START_FAILED, |
| AP_EVENT_STARTED, |
| AP_EVENT_STOPPING, |
| AP_EVENT_STATION_ADDED, |
| AP_EVENT_STATION_REMOVED, |
| AP_EVENT_REGISTRATION_START, |
| AP_EVENT_REGISTRATION_SUCCESS, |
| AP_EVENT_PBC_MODE_EXIT, |
| }; |
| |
| struct ap_event_station_added_data { |
| const uint8_t *mac; |
| const uint8_t *rsn_ie; |
| }; |
| |
| struct ap_event_station_removed_data { |
| const uint8_t *mac; |
| enum mmpdu_reason_code reason; |
| }; |
| |
| struct ap_event_registration_start_data { |
| const uint8_t *mac; |
| }; |
| |
| struct ap_event_registration_success_data { |
| const uint8_t *mac; |
| }; |
| |
| typedef void (*ap_stopped_func_t)(void *user_data); |
| |
| struct ap_config { |
| char *ssid; |
| char passphrase[64]; |
| uint8_t psk[32]; |
| uint8_t channel; |
| uint8_t *authorized_macs; |
| unsigned int authorized_macs_num; |
| char *wsc_name; |
| struct wsc_primary_device_type wsc_primary_device_type; |
| |
| char *profile; |
| |
| bool no_cck_rates : 1; |
| }; |
| |
| struct ap_ops { |
| void (*handle_event)(enum ap_event_type type, const void *event_data, |
| void *user_data); |
| }; |
| |
| void ap_config_free(struct ap_config *config); |
| |
| struct ap_state *ap_start(struct netdev *netdev, struct ap_config *config, |
| const struct ap_ops *ops, int *err, |
| void *user_data); |
| void ap_shutdown(struct ap_state *ap, ap_stopped_func_t stopped_func, |
| void *user_data); |
| void ap_free(struct ap_state *ap); |
| |
| bool ap_station_disconnect(struct ap_state *ap, const uint8_t *mac, |
| enum mmpdu_reason_code reason); |
| |
| bool ap_push_button(struct ap_state *ap); |