1139825Simp/* $FreeBSD$ */ 282899Sjake/* $OpenBSD: ieee80211_amrr.h,v 1.3 2006/06/17 19:34:31 damien Exp $ */ 380708Sjake 480708Sjake/*- 582899Sjake * Copyright (c) 2006 682899Sjake * Damien Bergamini <damien.bergamini@free.fr> 782899Sjake * 882899Sjake * Permission to use, copy, modify, and distribute this software for any 980708Sjake * purpose with or without fee is hereby granted, provided that the above 1080708Sjake * copyright notice and this permission notice appear in all copies. 1180708Sjake * 1280708Sjake * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES 1380708Sjake * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF 1480708Sjake * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR 1580708Sjake * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES 1680708Sjake * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN 1782899Sjake * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 1882899Sjake * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 1982899Sjake */ 2080708Sjake#ifndef _NET80211_IEEE80211_AMRR_H_ 2182899Sjake#define _NET80211_IEEE80211_AMRR_H_ 2280708Sjake 2380708Sjake/*- 2482899Sjake * Naive implementation of the Adaptive Multi Rate Retry algorithm: 2580708Sjake * 2680708Sjake * "IEEE 802.11 Rate Adaptation: A Practical Approach" 2780708Sjake * Mathieu Lacage, Hossein Manshaei, Thierry Turletti 2880708Sjake * INRIA Sophia - Projet Planete 2980708Sjake * http://www-sop.inria.fr/rapports/sophia/RR-5208.html 3080708Sjake */ 3180708Sjake 3280708Sjake/* 3382899Sjake * Rate control settings. 3482899Sjake */ 3582899Sjakestruct ieee80211vap; 3680708Sjake 3780708Sjakestruct ieee80211_amrr { 3880708Sjake u_int amrr_min_success_threshold; 3980708Sjake u_int amrr_max_success_threshold; 4080708Sjake int amrr_interval; /* update interval (ticks) */ 4180708Sjake}; 42104265Sjake 43133451Salc#define IEEE80211_AMRR_MIN_SUCCESS_THRESHOLD 1 44133451Salc#define IEEE80211_AMRR_MAX_SUCCESS_THRESHOLD 15 45112399Sjake 4680709Sjake/* 4780709Sjake * Rate control state for a given node. 4880709Sjake */ 4980709Sjakestruct ieee80211_amrr_node { 5080709Sjake struct ieee80211_amrr *amn_amrr;/* backpointer */ 5180709Sjake int amn_rix; /* current rate index */ 5283053Sobrien int amn_ticks; /* time of last update */ 53108166Sjake /* statistics */ 54108166Sjake u_int amn_txcnt; 55108166Sjake u_int amn_success; 56108166Sjake u_int amn_success_threshold; 57108166Sjake u_int amn_recovery; 5880708Sjake u_int amn_retrycnt; 5980708Sjake}; 6083053Sobrien 61133451Salc#endif /* _NET80211_IEEE80211_AMRR_H_ */ 6288651Sjake