head 1.1; access; symbols netbsd-10-0-RELEASE:1.1 netbsd-10-0-RC6:1.1 netbsd-10-0-RC5:1.1 netbsd-10-0-RC4:1.1 netbsd-10-0-RC3:1.1 netbsd-10-0-RC2:1.1 thorpej-ifq:1.1.0.182 thorpej-ifq-base:1.1 thorpej-altq-separation:1.1.0.180 thorpej-altq-separation-base:1.1 netbsd-10-0-RC1:1.1 netbsd-10:1.1.0.178 netbsd-10-base:1.1 bouyer-sunxi-drm:1.1.0.176 bouyer-sunxi-drm-base:1.1 netbsd-9-3-RELEASE:1.1 thorpej-i2c-spi-conf2:1.1.0.174 thorpej-i2c-spi-conf2-base:1.1 thorpej-futex2:1.1.0.172 thorpej-futex2-base:1.1 thorpej-cfargs2:1.1.0.170 thorpej-cfargs2-base:1.1 cjep_sun2x-base1:1.1 cjep_sun2x:1.1.0.168 cjep_sun2x-base:1.1 cjep_staticlib_x-base1:1.1 netbsd-9-2-RELEASE:1.1 cjep_staticlib_x:1.1.0.166 cjep_staticlib_x-base:1.1 thorpej-i2c-spi-conf:1.1.0.164 thorpej-i2c-spi-conf-base:1.1 thorpej-cfargs:1.1.0.162 thorpej-cfargs-base:1.1 thorpej-futex:1.1.0.160 thorpej-futex-base:1.1 netbsd-9-1-RELEASE:1.1 bouyer-xenpvh-base2:1.1 phil-wifi-20200421:1.1 bouyer-xenpvh-base1:1.1 phil-wifi-20200411:1.1 bouyer-xenpvh:1.1.0.158 bouyer-xenpvh-base:1.1 is-mlppp:1.1.0.156 is-mlppp-base:1.1 phil-wifi-20200406:1.1 netbsd-8-2-RELEASE:1.1 ad-namecache-base3:1.1 netbsd-9-0-RELEASE:1.1 netbsd-9-0-RC2:1.1 ad-namecache-base2:1.1 ad-namecache-base1:1.1 ad-namecache:1.1.0.154 ad-namecache-base:1.1 netbsd-9-0-RC1:1.1 phil-wifi-20191119:1.1 netbsd-9:1.1.0.152 netbsd-9-base:1.1 phil-wifi-20190609:1.1 netbsd-8-1-RELEASE:1.1 netbsd-8-1-RC1:1.1 isaki-audio2:1.1.0.150 isaki-audio2-base:1.1 pgoyette-compat-merge-20190127:1.1 pgoyette-compat-20190127:1.1 pgoyette-compat-20190118:1.1 pgoyette-compat-1226:1.1 pgoyette-compat-1126:1.1 pgoyette-compat-1020:1.1 pgoyette-compat-0930:1.1 pgoyette-compat-0906:1.1 netbsd-7-2-RELEASE:1.1 pgoyette-compat-0728:1.1 netbsd-8-0-RELEASE:1.1 phil-wifi-freebsd-base:1.1.148.1 phil-wifi:1.1.0.148 phil-wifi-base:1.1 pgoyette-compat-0625:1.1 netbsd-8-0-RC2:1.1 pgoyette-compat-0521:1.1 pgoyette-compat-0502:1.1 pgoyette-compat-0422:1.1 netbsd-8-0-RC1:1.1 pgoyette-compat-0415:1.1 pgoyette-compat-0407:1.1 pgoyette-compat-0330:1.1 pgoyette-compat-0322:1.1 pgoyette-compat-0315:1.1 netbsd-7-1-2-RELEASE:1.1 pgoyette-compat:1.1.0.146 pgoyette-compat-base:1.1 netbsd-7-1-1-RELEASE:1.1 tls-maxphys-base-20171202:1.1 matt-nb8-mediatek:1.1.0.144 matt-nb8-mediatek-base:1.1 nick-nhusb-base-20170825:1.1 perseant-stdc-iso10646:1.1.0.142 perseant-stdc-iso10646-base:1.1 netbsd-8:1.1.0.140 netbsd-8-base:1.1 prg-localcount2-base3:1.1 prg-localcount2-base2:1.1 prg-localcount2-base1:1.1 prg-localcount2:1.1.0.138 prg-localcount2-base:1.1 pgoyette-localcount-20170426:1.1 bouyer-socketcan-base1:1.1 jdolecek-ncq:1.1.0.136 jdolecek-ncq-base:1.1 pgoyette-localcount-20170320:1.1 netbsd-7-1:1.1.0.134 netbsd-7-1-RELEASE:1.1 netbsd-7-1-RC2:1.1 nick-nhusb-base-20170204:1.1 netbsd-7-nhusb-base-20170116:1.1 bouyer-socketcan:1.1.0.132 bouyer-socketcan-base:1.1 pgoyette-localcount-20170107:1.1 netbsd-7-1-RC1:1.1 nick-nhusb-base-20161204:1.1 pgoyette-localcount-20161104:1.1 netbsd-7-0-2-RELEASE:1.1 nick-nhusb-base-20161004:1.1 localcount-20160914:1.1 netbsd-7-nhusb:1.1.0.130 netbsd-7-nhusb-base:1.1 pgoyette-localcount-20160806:1.1 pgoyette-localcount-20160726:1.1 pgoyette-localcount:1.1.0.128 pgoyette-localcount-base:1.1 nick-nhusb-base-20160907:1.1 nick-nhusb-base-20160529:1.1 netbsd-7-0-1-RELEASE:1.1 nick-nhusb-base-20160422:1.1 nick-nhusb-base-20160319:1.1 nick-nhusb-base-20151226:1.1 netbsd-7-0:1.1.0.126 netbsd-7-0-RELEASE:1.1 nick-nhusb-base-20150921:1.1 netbsd-7-0-RC3:1.1 netbsd-7-0-RC2:1.1 netbsd-7-0-RC1:1.1 nick-nhusb-base-20150606:1.1 nick-nhusb-base-20150406:1.1 nick-nhusb:1.1.0.124 nick-nhusb-base:1.1 netbsd-5-2-3-RELEASE:1.1 netbsd-5-1-5-RELEASE:1.1 netbsd-6-0-6-RELEASE:1.1 netbsd-6-1-5-RELEASE:1.1 netbsd-7:1.1.0.122 netbsd-7-base:1.1 yamt-pagecache-base9:1.1 yamt-pagecache-tag8:1.1 netbsd-6-1-4-RELEASE:1.1 netbsd-6-0-5-RELEASE:1.1 tls-earlyentropy:1.1.0.120 tls-earlyentropy-base:1.1 riastradh-xf86-video-intel-2-7-1-pre-2-21-15:1.1 riastradh-drm2-base3:1.1 netbsd-6-1-3-RELEASE:1.1 netbsd-6-0-4-RELEASE:1.1 netbsd-5-2-2-RELEASE:1.1 netbsd-5-1-4-RELEASE:1.1 netbsd-6-1-2-RELEASE:1.1 netbsd-6-0-3-RELEASE:1.1 netbsd-5-2-1-RELEASE:1.1 netbsd-5-1-3-RELEASE:1.1 rmind-smpnet-nbase:1.1 netbsd-6-1-1-RELEASE:1.1 riastradh-drm2-base2:1.1 riastradh-drm2-base1:1.1 riastradh-drm2:1.1.0.118 riastradh-drm2-base:1.1 rmind-smpnet:1.1.0.110 rmind-smpnet-base:1.1 netbsd-6-1:1.1.0.116 netbsd-6-0-2-RELEASE:1.1 netbsd-6-1-RELEASE:1.1 khorben-n900:1.1.0.114 netbsd-6-1-RC4:1.1 netbsd-6-1-RC3:1.1 agc-symver:1.1.0.112 agc-symver-base:1.1 netbsd-6-1-RC2:1.1 netbsd-6-1-RC1:1.1 yamt-pagecache-base8:1.1 netbsd-5-2:1.1.0.108 netbsd-6-0-1-RELEASE:1.1 yamt-pagecache-base7:1.1 netbsd-5-2-RELEASE:1.1 netbsd-5-2-RC1:1.1 matt-nb6-plus-nbase:1.1 yamt-pagecache-base6:1.1 netbsd-6-0:1.1.0.106 netbsd-6-0-RELEASE:1.1 netbsd-6-0-RC2:1.1 tls-maxphys:1.1.0.104 tls-maxphys-base:1.1 matt-nb6-plus:1.1.0.102 matt-nb6-plus-base:1.1 netbsd-6-0-RC1:1.1 jmcneill-usbmp-base10:1.1 yamt-pagecache-base5:1.1 jmcneill-usbmp-base9:1.1 yamt-pagecache-base4:1.1 jmcneill-usbmp-base8:1.1 jmcneill-usbmp-base7:1.1 jmcneill-usbmp-base6:1.1 jmcneill-usbmp-base5:1.1 jmcneill-usbmp-base4:1.1 jmcneill-usbmp-base3:1.1 jmcneill-usbmp-pre-base2:1.1 jmcneill-usbmp-base2:1.1 netbsd-6:1.1.0.100 netbsd-6-base:1.1 netbsd-5-1-2-RELEASE:1.1 netbsd-5-1-1-RELEASE:1.1 jmcneill-usbmp:1.1.0.98 jmcneill-usbmp-base:1.1 jmcneill-audiomp3:1.1.0.96 jmcneill-audiomp3-base:1.1 yamt-pagecache-base3:1.1 yamt-pagecache-base2:1.1 yamt-pagecache:1.1.0.94 yamt-pagecache-base:1.1 rmind-uvmplock-nbase:1.1 cherry-xenmp:1.1.0.92 cherry-xenmp-base:1.1 bouyer-quota2-nbase:1.1 bouyer-quota2:1.1.0.90 bouyer-quota2-base:1.1 jruoho-x86intr:1.1.0.88 jruoho-x86intr-base:1.1 matt-mips64-premerge-20101231:1.1 matt-nb5-mips64-premerge-20101231:1.1 matt-nb5-pq3:1.1.0.86 matt-nb5-pq3-base:1.1 netbsd-5-1:1.1.0.84 netbsd-5-1-RELEASE:1.1 uebayasi-xip-base4:1.1 uebayasi-xip-base3:1.1 yamt-nfs-mp-base11:1.1 netbsd-5-1-RC4:1.1 matt-nb5-mips64-k15:1.1 uebayasi-xip-base2:1.1 yamt-nfs-mp-base10:1.1 netbsd-5-1-RC3:1.1 netbsd-5-1-RC2:1.1 uebayasi-xip-base1:1.1 netbsd-5-1-RC1:1.1 rmind-uvmplock:1.1.0.82 rmind-uvmplock-base:1.1 yamt-nfs-mp-base9:1.1 uebayasi-xip:1.1.0.80 uebayasi-xip-base:1.1 netbsd-5-0-2-RELEASE:1.1 matt-nb5-mips64-premerge-20091211:1.1 matt-premerge-20091211:1.1 yamt-nfs-mp-base8:1.1 matt-nb5-mips64-u2-k2-k4-k7-k8-k9:1.1 matt-nb4-mips64-k7-u2a-k9b:1.1 matt-nb5-mips64-u1-k1-k5:1.1 yamt-nfs-mp-base7:1.1 matt-nb5-mips64:1.1.0.78 netbsd-5-0-1-RELEASE:1.1 jymxensuspend-base:1.1 yamt-nfs-mp-base6:1.1 yamt-nfs-mp-base5:1.1 yamt-nfs-mp-base4:1.1 jym-xensuspend-nbase:1.1 yamt-nfs-mp-base3:1.1 nick-hppapmap-base4:1.1 nick-hppapmap-base3:1.1 netbsd-5-0:1.1.0.76 netbsd-5-0-RELEASE:1.1 netbsd-5-0-RC4:1.1 netbsd-5-0-RC3:1.1 nick-hppapmap-base2:1.1 netbsd-5-0-RC2:1.1 jym-xensuspend:1.1.0.74 jym-xensuspend-base:1.1 netbsd-5-0-RC1:1.1 haad-dm-base2:1.1 haad-nbase2:1.1 ad-audiomp2:1.1.0.72 ad-audiomp2-base:1.1 netbsd-5:1.1.0.70 netbsd-5-base:1.1 nick-hppapmap:1.1.0.68 nick-hppapmap-base:1.1 matt-mips64-base2:1.1 matt-mips64:1.1.0.66 haad-dm-base1:1.1 wrstuden-revivesa-base-4:1.1 netbsd-4-0-1-RELEASE:1.1 wrstuden-revivesa-base-3:1.1 wrstuden-revivesa-base-2:1.1 wrstuden-fixsa-newbase:1.1 nick-csl-alignment-base5:1.1 haad-dm:1.1.0.64 haad-dm-base:1.1 wrstuden-revivesa-base-1:1.1 simonb-wapbl-nbase:1.1 yamt-pf42-base4:1.1 simonb-wapbl:1.1.0.62 simonb-wapbl-base:1.1 yamt-pf42-base3:1.1 hpcarm-cleanup-nbase:1.1 yamt-pf42-baseX:1.1 yamt-pf42-base2:1.1 yamt-nfs-mp-base2:1.1 wrstuden-revivesa:1.1.0.60 wrstuden-revivesa-base:1.1 yamt-nfs-mp:1.1.0.58 yamt-nfs-mp-base:1.1 yamt-pf42:1.1.0.56 yamt-pf42-base:1.1 ad-socklock-base1:1.1 yamt-lazymbuf-base15:1.1 yamt-lazymbuf-base14:1.1 keiichi-mipv6-nbase:1.1 mjf-devfs2:1.1.0.54 mjf-devfs2-base:1.1 nick-net80211-sync:1.1.0.52 nick-net80211-sync-base:1.1 keiichi-mipv6:1.1.0.50 keiichi-mipv6-base:1.1 bouyer-xeni386-merge1:1.1 matt-armv6-prevmlocking:1.1 wrstuden-fixsa-base-1:1.1 vmlocking2-base3:1.1 netbsd-4-0:1.1.0.48 netbsd-4-0-RELEASE:1.1 bouyer-xeni386-nbase:1.1 yamt-kmem-base3:1.1 cube-autoconf:1.1.0.46 cube-autoconf-base:1.1 yamt-kmem-base2:1.1 bouyer-xeni386:1.1.0.44 bouyer-xeni386-base:1.1 yamt-kmem:1.1.0.42 yamt-kmem-base:1.1 vmlocking2-base2:1.1 reinoud-bufcleanup-nbase:1.1 vmlocking2:1.1.0.40 vmlocking2-base1:1.1 netbsd-4-0-RC5:1.1 matt-nb4-arm:1.1.0.38 matt-nb4-arm-base:1.1 matt-armv6-nbase:1.1 jmcneill-base:1.1 netbsd-4-0-RC4:1.1 mjf-devfs:1.1.0.36 mjf-devfs-base:1.1 bouyer-xenamd64-base2:1.1 vmlocking-nbase:1.1 yamt-x86pmap-base4:1.1 bouyer-xenamd64:1.1.0.34 bouyer-xenamd64-base:1.1 netbsd-4-0-RC3:1.1 yamt-x86pmap-base3:1.1 yamt-x86pmap-base2:1.1 netbsd-4-0-RC2:1.1 yamt-x86pmap:1.1.0.32 yamt-x86pmap-base:1.1 netbsd-4-0-RC1:1.1 matt-armv6:1.1.0.30 matt-armv6-base:1.1 matt-mips64-base:1.1 jmcneill-pm:1.1.0.28 jmcneill-pm-base:1.1 hpcarm-cleanup:1.1.0.26 hpcarm-cleanup-base:1.1 nick-csl-alignment:1.1.0.24 nick-csl-alignment-base:1.1 yamt-idlelwp-base8:1.1 wrstuden-fixsa:1.1.0.22 wrstuden-fixsa-base:1.1 thorpej-atomic:1.1.0.20 thorpej-atomic-base:1.1 reinoud-bufcleanup:1.1.0.18 reinoud-bufcleanup-base:1.1 mjf-ufs-trans:1.1.0.16 mjf-ufs-trans-base:1.1 vmlocking:1.1.0.14 vmlocking-base:1.1 ad-audiomp:1.1.0.12 ad-audiomp-base:1.1 yamt-idlelwp:1.1.0.10 post-newlock2-merge:1.1 newlock2-nbase:1.1 yamt-lazymbuf:1.1.0.8 yamt-splraiseipl-base5:1.1 yamt-splraiseipl-base4:1.1 yamt-splraiseipl:1.1.0.6 yamt-splraiseipl-base3:1.1 netbsd-4:1.1.0.4 netbsd-4-base:1.1 newlock2:1.1.0.2 newlock2-base:1.1; locks; strict; comment @ * @; 1.1 date 2006.10.31.21.53.41; author joerg; state Exp; branches 1.1.2.1 1.1.6.1 1.1.8.1 1.1.52.1 1.1.148.1; next ; 1.1.2.1 date 2006.10.31.21.53.41; author ad; state dead; branches; next 1.1.2.2; 1.1.2.2 date 2006.11.18.21.39.32; author ad; state Exp; branches; next ; 1.1.6.1 date 2006.10.31.21.53.41; author yamt; state dead; branches; next 1.1.6.2; 1.1.6.2 date 2006.12.10.07.19.06; author yamt; state Exp; branches; next ; 1.1.8.1 date 2006.10.31.21.53.41; author yamt; state dead; branches; next 1.1.8.2; 1.1.8.2 date 2006.12.30.20.50.28; author yamt; state Exp; branches; next ; 1.1.52.1 date 2008.02.22.16.50.25; author skrll; state Exp; branches; next ; 1.1.148.1 date 2018.06.28.21.03.07; author phil; state Exp; branches; next 1.1.148.2; commitid fU5eenqZ23IoH5IA; 1.1.148.2 date 2018.06.28.21.23.01; author phil; state Exp; branches; next ; commitid srXJ0FDHo2RLP5IA; desc @@ 1.1 log @Move AMRR code out of wpi(4) and ural(4) into net80211 itself. From OpenBSD. @ text @/* $OpenBSD: ieee80211_amrr.h,v 1.3 2006/06/17 19:34:31 damien Exp $ */ /* $NetBSD$ */ /*- * Copyright (c) 2006 * Damien Bergamini * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice appear in all copies. * * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ #ifndef _NET80211_IEEE80211_AMRR_H_ #define _NET80211_IEEE80211_AMRR_H_ /*- * Naive implementation of the Adaptive Multi Rate Retry algorithm: * * "IEEE 802.11 Rate Adaptation: A Practical Approach" * Mathieu Lacage, Hossein Manshaei, Thierry Turletti * INRIA Sophia - Projet Planete * http://www-sop.inria.fr/rapports/sophia/RR-5208.html */ /* * Rate control settings. */ struct ieee80211_amrr { u_int amrr_min_success_threshold; u_int amrr_max_success_threshold; }; #define IEEE80211_AMRR_MIN_SUCCESS_THRESHOLD 1 #define IEEE80211_AMRR_MAX_SUCCESS_THRESHOLD 15 /* * Rate control state for a given node. */ struct ieee80211_amrr_node { u_int amn_success; u_int amn_recovery; u_int amn_success_threshold; u_int amn_txcnt; u_int amn_retrycnt; }; void ieee80211_amrr_node_init(struct ieee80211_amrr *, struct ieee80211_amrr_node *); void ieee80211_amrr_choose(struct ieee80211_amrr *, struct ieee80211_node *, struct ieee80211_amrr_node *); #endif /* _NET80211_IEEE80211_AMRR_H_ */ @ 1.1.148.1 log @Start of WiFi refresh. Copy of FreeBSD net80211 directory with git mirror commit id of 09e3123164ec345822e00465039503686efde455, no changes yet. ieee80211_netbsd.[ch] from ieee80211_freebsd.[ch]. @ text @a0 1 /* $FreeBSD$ */ d2 1 a34 2 struct ieee80211vap; a37 1 int amrr_interval; /* update interval (ticks) */ a46 5 struct ieee80211_amrr *amn_amrr;/* backpointer */ int amn_rix; /* current rate index */ int amn_ticks; /* time of last update */ /* statistics */ u_int amn_txcnt; d48 1 d50 1 a50 1 u_int amn_recovery; d54 5 @ 1.1.148.2 log @Add RCS ID at the top of all the files. @ text @a0 2 /* $NetBSD: $ */ @ 1.1.2.1 log @file ieee80211_amrr.h was added on branch newlock2 on 2006-11-18 21:39:32 +0000 @ text @d1 59 @ 1.1.2.2 log @Sync with head. @ text @a0 59 /* $OpenBSD: ieee80211_amrr.h,v 1.3 2006/06/17 19:34:31 damien Exp $ */ /* $NetBSD: ieee80211_amrr.h,v 1.1.2.1 2006/11/18 21:39:32 ad Exp $ */ /*- * Copyright (c) 2006 * Damien Bergamini * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice appear in all copies. * * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ #ifndef _NET80211_IEEE80211_AMRR_H_ #define _NET80211_IEEE80211_AMRR_H_ /*- * Naive implementation of the Adaptive Multi Rate Retry algorithm: * * "IEEE 802.11 Rate Adaptation: A Practical Approach" * Mathieu Lacage, Hossein Manshaei, Thierry Turletti * INRIA Sophia - Projet Planete * http://www-sop.inria.fr/rapports/sophia/RR-5208.html */ /* * Rate control settings. */ struct ieee80211_amrr { u_int amrr_min_success_threshold; u_int amrr_max_success_threshold; }; #define IEEE80211_AMRR_MIN_SUCCESS_THRESHOLD 1 #define IEEE80211_AMRR_MAX_SUCCESS_THRESHOLD 15 /* * Rate control state for a given node. */ struct ieee80211_amrr_node { u_int amn_success; u_int amn_recovery; u_int amn_success_threshold; u_int amn_txcnt; u_int amn_retrycnt; }; void ieee80211_amrr_node_init(struct ieee80211_amrr *, struct ieee80211_amrr_node *); void ieee80211_amrr_choose(struct ieee80211_amrr *, struct ieee80211_node *, struct ieee80211_amrr_node *); #endif /* _NET80211_IEEE80211_AMRR_H_ */ @ 1.1.6.1 log @file ieee80211_amrr.h was added on branch yamt-splraiseipl on 2006-12-10 07:19:06 +0000 @ text @d1 59 @ 1.1.6.2 log @sync with head. @ text @a0 59 /* $OpenBSD: ieee80211_amrr.h,v 1.3 2006/06/17 19:34:31 damien Exp $ */ /* $NetBSD: ieee80211_amrr.h,v 1.1.6.1 2006/12/10 07:19:06 yamt Exp $ */ /*- * Copyright (c) 2006 * Damien Bergamini * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice appear in all copies. * * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ #ifndef _NET80211_IEEE80211_AMRR_H_ #define _NET80211_IEEE80211_AMRR_H_ /*- * Naive implementation of the Adaptive Multi Rate Retry algorithm: * * "IEEE 802.11 Rate Adaptation: A Practical Approach" * Mathieu Lacage, Hossein Manshaei, Thierry Turletti * INRIA Sophia - Projet Planete * http://www-sop.inria.fr/rapports/sophia/RR-5208.html */ /* * Rate control settings. */ struct ieee80211_amrr { u_int amrr_min_success_threshold; u_int amrr_max_success_threshold; }; #define IEEE80211_AMRR_MIN_SUCCESS_THRESHOLD 1 #define IEEE80211_AMRR_MAX_SUCCESS_THRESHOLD 15 /* * Rate control state for a given node. */ struct ieee80211_amrr_node { u_int amn_success; u_int amn_recovery; u_int amn_success_threshold; u_int amn_txcnt; u_int amn_retrycnt; }; void ieee80211_amrr_node_init(struct ieee80211_amrr *, struct ieee80211_amrr_node *); void ieee80211_amrr_choose(struct ieee80211_amrr *, struct ieee80211_node *, struct ieee80211_amrr_node *); #endif /* _NET80211_IEEE80211_AMRR_H_ */ @ 1.1.8.1 log @file ieee80211_amrr.h was added on branch yamt-lazymbuf on 2006-12-30 20:50:28 +0000 @ text @d1 59 @ 1.1.8.2 log @sync with head. @ text @a0 59 /* $OpenBSD: ieee80211_amrr.h,v 1.3 2006/06/17 19:34:31 damien Exp $ */ /* $NetBSD: ieee80211_amrr.h,v 1.1.8.1 2006/12/30 20:50:28 yamt Exp $ */ /*- * Copyright (c) 2006 * Damien Bergamini * * Permission to use, copy, modify, and distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice appear in all copies. * * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ #ifndef _NET80211_IEEE80211_AMRR_H_ #define _NET80211_IEEE80211_AMRR_H_ /*- * Naive implementation of the Adaptive Multi Rate Retry algorithm: * * "IEEE 802.11 Rate Adaptation: A Practical Approach" * Mathieu Lacage, Hossein Manshaei, Thierry Turletti * INRIA Sophia - Projet Planete * http://www-sop.inria.fr/rapports/sophia/RR-5208.html */ /* * Rate control settings. */ struct ieee80211_amrr { u_int amrr_min_success_threshold; u_int amrr_max_success_threshold; }; #define IEEE80211_AMRR_MIN_SUCCESS_THRESHOLD 1 #define IEEE80211_AMRR_MAX_SUCCESS_THRESHOLD 15 /* * Rate control state for a given node. */ struct ieee80211_amrr_node { u_int amn_success; u_int amn_recovery; u_int amn_success_threshold; u_int amn_txcnt; u_int amn_retrycnt; }; void ieee80211_amrr_node_init(struct ieee80211_amrr *, struct ieee80211_amrr_node *); void ieee80211_amrr_choose(struct ieee80211_amrr *, struct ieee80211_node *, struct ieee80211_amrr_node *); #endif /* _NET80211_IEEE80211_AMRR_H_ */ @ 1.1.52.1 log @Beginning of a sync with net80211 from FreeBSD. Lots to do. Sources taken from 2008-02-22. @ text @d1 1 a2 2 /* $FreeBSD: src/sys/net80211/ieee80211_amrr.h,v 1.1 2006/11/26 19:55:26 sam Exp $ */ /* $OpenBSD: ieee80211_amrr.h,v 1.3 2006/06/17 19:34:31 damien Exp $ */ a34 2 struct ieee80211com; a37 1 struct ieee80211com *amrr_ic; a53 2 void ieee80211_amrr_init(struct ieee80211_amrr *, struct ieee80211com *ic, int, int); @