157c2d39d85825f38c5fdac9b73bb0088406ffc85Dmitry Shmidt/* 257c2d39d85825f38c5fdac9b73bb0088406ffc85Dmitry Shmidt * MBO related functions and structures 357c2d39d85825f38c5fdac9b73bb0088406ffc85Dmitry Shmidt * Copyright (c) 2016, Qualcomm Atheros, Inc. 457c2d39d85825f38c5fdac9b73bb0088406ffc85Dmitry Shmidt * 557c2d39d85825f38c5fdac9b73bb0088406ffc85Dmitry Shmidt * This software may be distributed under the terms of the BSD license. 657c2d39d85825f38c5fdac9b73bb0088406ffc85Dmitry Shmidt * See README for more details. 757c2d39d85825f38c5fdac9b73bb0088406ffc85Dmitry Shmidt */ 857c2d39d85825f38c5fdac9b73bb0088406ffc85Dmitry Shmidt 957c2d39d85825f38c5fdac9b73bb0088406ffc85Dmitry Shmidt#ifndef MBO_AP_H 1057c2d39d85825f38c5fdac9b73bb0088406ffc85Dmitry Shmidt#define MBO_AP_H 1157c2d39d85825f38c5fdac9b73bb0088406ffc85Dmitry Shmidt 1257c2d39d85825f38c5fdac9b73bb0088406ffc85Dmitry Shmidtstruct hostapd_data; 1357c2d39d85825f38c5fdac9b73bb0088406ffc85Dmitry Shmidtstruct sta_info; 1457c2d39d85825f38c5fdac9b73bb0088406ffc85Dmitry Shmidtstruct ieee802_11_elems; 1557c2d39d85825f38c5fdac9b73bb0088406ffc85Dmitry Shmidt 1657c2d39d85825f38c5fdac9b73bb0088406ffc85Dmitry Shmidt#ifdef CONFIG_MBO 1757c2d39d85825f38c5fdac9b73bb0088406ffc85Dmitry Shmidt 1857c2d39d85825f38c5fdac9b73bb0088406ffc85Dmitry Shmidtvoid mbo_ap_check_sta_assoc(struct hostapd_data *hapd, struct sta_info *sta, 1957c2d39d85825f38c5fdac9b73bb0088406ffc85Dmitry Shmidt struct ieee802_11_elems *elems); 2057c2d39d85825f38c5fdac9b73bb0088406ffc85Dmitry Shmidtint mbo_ap_get_info(struct sta_info *sta, char *buf, size_t buflen); 2157c2d39d85825f38c5fdac9b73bb0088406ffc85Dmitry Shmidtvoid mbo_ap_wnm_notification_req(struct hostapd_data *hapd, const u8 *addr, 2257c2d39d85825f38c5fdac9b73bb0088406ffc85Dmitry Shmidt const u8 *buf, size_t len); 2357c2d39d85825f38c5fdac9b73bb0088406ffc85Dmitry Shmidtvoid mbo_ap_sta_free(struct sta_info *sta); 2457c2d39d85825f38c5fdac9b73bb0088406ffc85Dmitry Shmidt 2557c2d39d85825f38c5fdac9b73bb0088406ffc85Dmitry Shmidt#else /* CONFIG_MBO */ 2657c2d39d85825f38c5fdac9b73bb0088406ffc85Dmitry Shmidt 2757c2d39d85825f38c5fdac9b73bb0088406ffc85Dmitry Shmidtstatic inline void mbo_ap_check_sta_assoc(struct hostapd_data *hapd, 2857c2d39d85825f38c5fdac9b73bb0088406ffc85Dmitry Shmidt struct sta_info *sta, 2957c2d39d85825f38c5fdac9b73bb0088406ffc85Dmitry Shmidt struct ieee802_11_elems *elems) 3057c2d39d85825f38c5fdac9b73bb0088406ffc85Dmitry Shmidt{ 3157c2d39d85825f38c5fdac9b73bb0088406ffc85Dmitry Shmidt} 3257c2d39d85825f38c5fdac9b73bb0088406ffc85Dmitry Shmidt 3357c2d39d85825f38c5fdac9b73bb0088406ffc85Dmitry Shmidtstatic inline int mbo_ap_get_info(struct sta_info *sta, char *buf, 3457c2d39d85825f38c5fdac9b73bb0088406ffc85Dmitry Shmidt size_t buflen) 3557c2d39d85825f38c5fdac9b73bb0088406ffc85Dmitry Shmidt{ 3657c2d39d85825f38c5fdac9b73bb0088406ffc85Dmitry Shmidt return 0; 3757c2d39d85825f38c5fdac9b73bb0088406ffc85Dmitry Shmidt} 3857c2d39d85825f38c5fdac9b73bb0088406ffc85Dmitry Shmidt 3957c2d39d85825f38c5fdac9b73bb0088406ffc85Dmitry Shmidtstatic inline void mbo_ap_wnm_notification_req(struct hostapd_data *hapd, 4057c2d39d85825f38c5fdac9b73bb0088406ffc85Dmitry Shmidt const u8 *addr, 4157c2d39d85825f38c5fdac9b73bb0088406ffc85Dmitry Shmidt const u8 *buf, size_t len) 4257c2d39d85825f38c5fdac9b73bb0088406ffc85Dmitry Shmidt{ 4357c2d39d85825f38c5fdac9b73bb0088406ffc85Dmitry Shmidt} 4457c2d39d85825f38c5fdac9b73bb0088406ffc85Dmitry Shmidt 4557c2d39d85825f38c5fdac9b73bb0088406ffc85Dmitry Shmidtstatic inline void mbo_ap_sta_free(struct sta_info *sta) 4657c2d39d85825f38c5fdac9b73bb0088406ffc85Dmitry Shmidt{ 4757c2d39d85825f38c5fdac9b73bb0088406ffc85Dmitry Shmidt} 4857c2d39d85825f38c5fdac9b73bb0088406ffc85Dmitry Shmidt 4957c2d39d85825f38c5fdac9b73bb0088406ffc85Dmitry Shmidt#endif /* CONFIG_MBO */ 5057c2d39d85825f38c5fdac9b73bb0088406ffc85Dmitry Shmidt 5157c2d39d85825f38c5fdac9b73bb0088406ffc85Dmitry Shmidt#endif /* MBO_AP_H */ 52