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
12struct 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
25int airtime_policy_new_sta(struct hostapd_data *hapd, struct sta_info *sta);
26int airtime_policy_update_init(struct hostapd_iface *iface);
27void airtime_policy_update_deinit(struct hostapd_iface *iface);
28
29#else /* CONFIG_AIRTIME_POLICY */
30
31static inline int airtime_policy_new_sta(struct hostapd_data *hapd,
32					 struct sta_info *sta)
33{
34	return -1;
35}
36
37static inline int airtime_policy_update_init(struct hostapd_iface *iface)
38{
39	return -1;
40}
41
42static 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