1 /*
2  * Airtime policy configuration
3  * Copyright (c) 2018-2019, Toke Høiland-Jørgensen <toke@toke.dk>
4  *
5  * This software may be distributed under the terms of the BSD license.
6  * See README for more details.
7  */
8 
9 #ifndef AIRTIME_POLICY_H
10 #define AIRTIME_POLICY_H
11 
12 struct hostapd_iface;
13 
14 #ifdef CONFIG_AIRTIME_POLICY
15 
16 #define AIRTIME_DEFAULT_UPDATE_INTERVAL 200 /* ms */
17 #define AIRTIME_BACKLOG_EXPIRY_FACTOR 2500 /* 2.5 intervals + convert to usec */
18 
19 /* scale quantum so this becomes the effective quantum after applying the max
20  * weight, but never go below min or above max */
21 #define AIRTIME_QUANTUM_MIN 8 /* usec */
22 #define AIRTIME_QUANTUM_MAX 256 /* usec */
23 #define AIRTIME_QUANTUM_TARGET 1024 /* usec */
24 
25 int airtime_policy_new_sta(struct hostapd_data *hapd, struct sta_info *sta);
26 int airtime_policy_update_init(struct hostapd_iface *iface);
27 void airtime_policy_update_deinit(struct hostapd_iface *iface);
28 
29 #else /* CONFIG_AIRTIME_POLICY */
30 
31 static inline int airtime_policy_new_sta(struct hostapd_data *hapd,
32 					 struct sta_info *sta)
33 {
34 	return -1;
35 }
36 
37 static inline int airtime_policy_update_init(struct hostapd_iface *iface)
38 {
39 	return -1;
40 }
41 
42 static inline void airtime_policy_update_deinit(struct hostapd_iface *iface)
43 {
44 }
45 
46 #endif /* CONFIG_AIRTIME_POLICY */
47 
48 #endif /* AIRTIME_POLICY_H */
49