dd376170a8246cc2d81a71a220ba4ec75846d765
[mech_eap.git] / wpa_supplicant / wmm_ac.h
1 /*
2  * Wi-Fi Multimedia Admission Control (WMM-AC)
3  * Copyright(c) 2014, Intel Mobile Communication GmbH.
4  * Copyright(c) 2014, Intel Corporation. All rights reserved.
5  *
6  * This software may be distributed under the terms of the BSD license.
7  * See README for more details.
8  */
9
10 #ifndef WMM_AC_H
11 #define WMM_AC_H
12
13 #include "common/ieee802_11_defs.h"
14 #include "drivers/driver.h"
15
16 struct wpa_supplicant;
17
18 /**
19  * struct wmm_ac_assoc_data - WMM Admission Control Association Data
20  *
21  * This struct will store any relevant WMM association data needed by WMM AC.
22  * In case there is a valid WMM association, an instance of this struct will be
23  * created. In case there is no instance of this struct, the station is not
24  * associated to a valid WMM BSS and hence, WMM AC will not be used.
25  */
26 struct wmm_ac_assoc_data {
27         struct {
28                 /*
29                  * acm - Admission Control Mandatory
30                  * In case an access category is ACM, the traffic will have
31                  * to be admitted by WMM-AC's admission mechanism before use.
32                  */
33                 unsigned int acm:1;
34
35                 /*
36                  * uapsd_queues - Unscheduled Automatic Power Save Delivery
37                  *                queues.
38                  * Indicates whether ACs are configured for U-APSD (or legacy
39                  * PS). Storing this value is necessary in order to set the
40                  * Power Save Bit (PSB) in ADDTS request Action frames (if not
41                  * given).
42                  */
43                 unsigned int uapsd:1;
44         } ac_params[WMM_AC_NUM];
45 };
46
47 void wmm_ac_notify_assoc(struct wpa_supplicant *wpa_s, const u8 *ies,
48                          size_t ies_len, const struct wmm_params *wmm_params);
49 void wmm_ac_notify_disassoc(struct wpa_supplicant *wpa_s);
50
51 #endif /* WMM_AC_H */