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