1351377Scy/*
2351377Scy * Airtime policy configuration
3351377Scy * Copyright (c) 2018-2019, Toke H��iland-J��rgensen <toke@toke.dk>
4351377Scy *
5351377Scy * This software may be distributed under the terms of the BSD license.
6351377Scy * See README for more details.
7351377Scy */
8351377Scy
9351377Scy#ifndef AIRTIME_POLICY_H
10351377Scy#define AIRTIME_POLICY_H
11351377Scy
12351377Scystruct hostapd_iface;
13351377Scy
14351377Scy#ifdef CONFIG_AIRTIME_POLICY
15351377Scy
16351377Scy#define AIRTIME_DEFAULT_UPDATE_INTERVAL 200 /* ms */
17351377Scy#define AIRTIME_BACKLOG_EXPIRY_FACTOR 2500 /* 2.5 intervals + convert to usec */
18351377Scy
19351377Scy/* scale quantum so this becomes the effective quantum after applying the max
20351377Scy * weight, but never go below min or above max */
21351377Scy#define AIRTIME_QUANTUM_MIN 8 /* usec */
22351377Scy#define AIRTIME_QUANTUM_MAX 256 /* usec */
23351377Scy#define AIRTIME_QUANTUM_TARGET 1024 /* usec */
24351377Scy
25351377Scyint airtime_policy_new_sta(struct hostapd_data *hapd, struct sta_info *sta);
26351377Scyint airtime_policy_update_init(struct hostapd_iface *iface);
27351377Scyvoid airtime_policy_update_deinit(struct hostapd_iface *iface);
28351377Scy
29351377Scy#else /* CONFIG_AIRTIME_POLICY */
30351377Scy
31351377Scystatic inline int airtime_policy_new_sta(struct hostapd_data *hapd,
32351377Scy					 struct sta_info *sta)
33351377Scy{
34351377Scy	return -1;
35351377Scy}
36351377Scy
37351377Scystatic inline int airtime_policy_update_init(struct hostapd_iface *iface)
38351377Scy{
39351377Scy	return -1;
40351377Scy}
41351377Scy
42351377Scystatic inline void airtime_policy_update_deinit(struct hostapd_iface *iface)
43351377Scy{
44351377Scy}
45351377Scy
46351377Scy#endif /* CONFIG_AIRTIME_POLICY */
47351377Scy
48351377Scy#endif /* AIRTIME_POLICY_H */
49