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