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 Schubertstatic 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 Schubertstatic 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 Schubertstatic 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