head 1.25; access; symbols netbsd-10-0-RELEASE:1.25 netbsd-10-0-RC6:1.25 netbsd-10-0-RC5:1.25 netbsd-10-0-RC4:1.25 netbsd-10-0-RC3:1.25 netbsd-10-0-RC2:1.25 thorpej-ifq:1.25.0.30 thorpej-ifq-base:1.25 thorpej-altq-separation:1.25.0.28 thorpej-altq-separation-base:1.25 netbsd-10-0-RC1:1.25 netbsd-10:1.25.0.26 netbsd-10-base:1.25 bouyer-sunxi-drm:1.25.0.24 bouyer-sunxi-drm-base:1.25 netbsd-9-3-RELEASE:1.24 thorpej-i2c-spi-conf2:1.25.0.22 thorpej-i2c-spi-conf2-base:1.25 thorpej-futex2:1.25.0.20 thorpej-futex2-base:1.25 thorpej-cfargs2:1.25.0.18 thorpej-cfargs2-base:1.25 cjep_sun2x-base1:1.25 cjep_sun2x:1.25.0.16 cjep_sun2x-base:1.25 cjep_staticlib_x-base1:1.25 netbsd-9-2-RELEASE:1.24 cjep_staticlib_x:1.25.0.14 cjep_staticlib_x-base:1.25 thorpej-i2c-spi-conf:1.25.0.12 thorpej-i2c-spi-conf-base:1.25 thorpej-cfargs:1.25.0.10 thorpej-cfargs-base:1.25 thorpej-futex:1.25.0.8 thorpej-futex-base:1.25 netbsd-9-1-RELEASE:1.24 bouyer-xenpvh-base2:1.25 phil-wifi-20200421:1.25 bouyer-xenpvh-base1:1.25 phil-wifi-20200411:1.25 bouyer-xenpvh:1.25.0.6 bouyer-xenpvh-base:1.25 is-mlppp:1.25.0.4 is-mlppp-base:1.25 phil-wifi-20200406:1.25 netbsd-8-2-RELEASE:1.24 ad-namecache-base3:1.25 netbsd-9-0-RELEASE:1.24 netbsd-9-0-RC2:1.24 ad-namecache-base2:1.25 ad-namecache-base1:1.25 ad-namecache:1.25.0.2 ad-namecache-base:1.25 netbsd-9-0-RC1:1.24 phil-wifi-20191119:1.25 netbsd-9:1.24.0.60 netbsd-9-base:1.24 phil-wifi-20190609:1.24 netbsd-8-1-RELEASE:1.24 netbsd-8-1-RC1:1.24 isaki-audio2:1.24.0.58 isaki-audio2-base:1.24 pgoyette-compat-merge-20190127:1.24 pgoyette-compat-20190127:1.24 pgoyette-compat-20190118:1.24 pgoyette-compat-1226:1.24 pgoyette-compat-1126:1.24 pgoyette-compat-1020:1.24 pgoyette-compat-0930:1.24 pgoyette-compat-0906:1.24 netbsd-7-2-RELEASE:1.24 pgoyette-compat-0728:1.24 netbsd-8-0-RELEASE:1.24 phil-wifi-freebsd-base:1.24.56.1 phil-wifi:1.24.0.56 phil-wifi-base:1.24 pgoyette-compat-0625:1.24 netbsd-8-0-RC2:1.24 pgoyette-compat-0521:1.24 pgoyette-compat-0502:1.24 pgoyette-compat-0422:1.24 netbsd-8-0-RC1:1.24 pgoyette-compat-0415:1.24 pgoyette-compat-0407:1.24 pgoyette-compat-0330:1.24 pgoyette-compat-0322:1.24 pgoyette-compat-0315:1.24 netbsd-7-1-2-RELEASE:1.24 pgoyette-compat:1.24.0.54 pgoyette-compat-base:1.24 netbsd-7-1-1-RELEASE:1.24 tls-maxphys-base-20171202:1.24 matt-nb8-mediatek:1.24.0.52 matt-nb8-mediatek-base:1.24 nick-nhusb-base-20170825:1.24 perseant-stdc-iso10646:1.24.0.50 perseant-stdc-iso10646-base:1.24 netbsd-8:1.24.0.48 netbsd-8-base:1.24 prg-localcount2-base3:1.24 prg-localcount2-base2:1.24 prg-localcount2-base1:1.24 prg-localcount2:1.24.0.46 prg-localcount2-base:1.24 pgoyette-localcount-20170426:1.24 bouyer-socketcan-base1:1.24 jdolecek-ncq:1.24.0.44 jdolecek-ncq-base:1.24 pgoyette-localcount-20170320:1.24 netbsd-7-1:1.24.0.42 netbsd-7-1-RELEASE:1.24 netbsd-7-1-RC2:1.24 nick-nhusb-base-20170204:1.24 netbsd-7-nhusb-base-20170116:1.24 bouyer-socketcan:1.24.0.40 bouyer-socketcan-base:1.24 pgoyette-localcount-20170107:1.24 netbsd-7-1-RC1:1.24 nick-nhusb-base-20161204:1.24 pgoyette-localcount-20161104:1.24 netbsd-7-0-2-RELEASE:1.24 nick-nhusb-base-20161004:1.24 localcount-20160914:1.24 netbsd-7-nhusb:1.24.0.38 netbsd-7-nhusb-base:1.24 pgoyette-localcount-20160806:1.24 pgoyette-localcount-20160726:1.24 pgoyette-localcount:1.24.0.36 pgoyette-localcount-base:1.24 nick-nhusb-base-20160907:1.24 nick-nhusb-base-20160529:1.24 netbsd-7-0-1-RELEASE:1.24 nick-nhusb-base-20160422:1.24 nick-nhusb-base-20160319:1.24 nick-nhusb-base-20151226:1.24 netbsd-7-0:1.24.0.34 netbsd-7-0-RELEASE:1.24 nick-nhusb-base-20150921:1.24 netbsd-7-0-RC3:1.24 netbsd-7-0-RC2:1.24 netbsd-7-0-RC1:1.24 nick-nhusb-base-20150606:1.24 nick-nhusb-base-20150406:1.24 nick-nhusb:1.24.0.32 nick-nhusb-base:1.24 netbsd-5-2-3-RELEASE:1.20 netbsd-5-1-5-RELEASE:1.20 netbsd-6-0-6-RELEASE:1.24 netbsd-6-1-5-RELEASE:1.24 netbsd-7:1.24.0.30 netbsd-7-base:1.24 yamt-pagecache-base9:1.24 yamt-pagecache-tag8:1.24 netbsd-6-1-4-RELEASE:1.24 netbsd-6-0-5-RELEASE:1.24 tls-earlyentropy:1.24.0.28 tls-earlyentropy-base:1.24 riastradh-xf86-video-intel-2-7-1-pre-2-21-15:1.24 riastradh-drm2-base3:1.24 netbsd-6-1-3-RELEASE:1.24 netbsd-6-0-4-RELEASE:1.24 netbsd-5-2-2-RELEASE:1.20 netbsd-5-1-4-RELEASE:1.20 netbsd-6-1-2-RELEASE:1.24 netbsd-6-0-3-RELEASE:1.24 netbsd-5-2-1-RELEASE:1.20 netbsd-5-1-3-RELEASE:1.20 rmind-smpnet-nbase:1.24 netbsd-6-1-1-RELEASE:1.24 riastradh-drm2-base2:1.24 riastradh-drm2-base1:1.24 riastradh-drm2:1.24.0.26 riastradh-drm2-base:1.24 rmind-smpnet:1.24.0.18 rmind-smpnet-base:1.24 netbsd-6-1:1.24.0.24 netbsd-6-0-2-RELEASE:1.24 netbsd-6-1-RELEASE:1.24 khorben-n900:1.24.0.22 netbsd-6-1-RC4:1.24 netbsd-6-1-RC3:1.24 agc-symver:1.24.0.20 agc-symver-base:1.24 netbsd-6-1-RC2:1.24 netbsd-6-1-RC1:1.24 yamt-pagecache-base8:1.24 netbsd-5-2:1.20.0.18 netbsd-6-0-1-RELEASE:1.24 yamt-pagecache-base7:1.24 netbsd-5-2-RELEASE:1.20 netbsd-5-2-RC1:1.20 matt-nb6-plus-nbase:1.24 yamt-pagecache-base6:1.24 netbsd-6-0:1.24.0.16 netbsd-6-0-RELEASE:1.24 netbsd-6-0-RC2:1.24 tls-maxphys:1.24.0.14 tls-maxphys-base:1.24 matt-nb6-plus:1.24.0.12 matt-nb6-plus-base:1.24 netbsd-6-0-RC1:1.24 jmcneill-usbmp-base10:1.24 yamt-pagecache-base5:1.24 jmcneill-usbmp-base9:1.24 yamt-pagecache-base4:1.24 jmcneill-usbmp-base8:1.24 jmcneill-usbmp-base7:1.24 jmcneill-usbmp-base6:1.24 jmcneill-usbmp-base5:1.24 jmcneill-usbmp-base4:1.24 jmcneill-usbmp-base3:1.24 jmcneill-usbmp-pre-base2:1.24 jmcneill-usbmp-base2:1.24 netbsd-6:1.24.0.10 netbsd-6-base:1.24 netbsd-5-1-2-RELEASE:1.20 netbsd-5-1-1-RELEASE:1.20 jmcneill-usbmp:1.24.0.8 jmcneill-usbmp-base:1.24 jmcneill-audiomp3:1.24.0.6 jmcneill-audiomp3-base:1.24 yamt-pagecache-base3:1.24 yamt-pagecache-base2:1.24 yamt-pagecache:1.24.0.4 yamt-pagecache-base:1.24 rmind-uvmplock-nbase:1.24 cherry-xenmp:1.24.0.2 cherry-xenmp-base:1.24 bouyer-quota2-nbase:1.24 bouyer-quota2:1.21.0.8 bouyer-quota2-base:1.21 jruoho-x86intr:1.21.0.6 jruoho-x86intr-base:1.21 matt-mips64-premerge-20101231:1.21 matt-nb5-mips64-premerge-20101231:1.20 matt-nb5-pq3:1.20.0.16 matt-nb5-pq3-base:1.20 netbsd-5-1:1.20.0.14 netbsd-5-1-RELEASE:1.20 uebayasi-xip-base4:1.21 uebayasi-xip-base3:1.21 yamt-nfs-mp-base11:1.21 netbsd-5-1-RC4:1.20 matt-nb5-mips64-k15:1.20 uebayasi-xip-base2:1.21 yamt-nfs-mp-base10:1.21 netbsd-5-1-RC3:1.20 netbsd-5-1-RC2:1.20 uebayasi-xip-base1:1.21 netbsd-5-1-RC1:1.20 rmind-uvmplock:1.21.0.4 rmind-uvmplock-base:1.24 yamt-nfs-mp-base9:1.21 uebayasi-xip:1.21.0.2 uebayasi-xip-base:1.21 netbsd-5-0-2-RELEASE:1.20 matt-nb5-mips64-premerge-20091211:1.20 matt-premerge-20091211:1.21 yamt-nfs-mp-base8:1.20 matt-nb5-mips64-u2-k2-k4-k7-k8-k9:1.20 matt-nb4-mips64-k7-u2a-k9b:1.20 matt-nb5-mips64-u1-k1-k5:1.20 yamt-nfs-mp-base7:1.20 matt-nb5-mips64:1.20.0.12 netbsd-5-0-1-RELEASE:1.20 jymxensuspend-base:1.20 yamt-nfs-mp-base6:1.20 yamt-nfs-mp-base5:1.20 yamt-nfs-mp-base4:1.20 jym-xensuspend-nbase:1.21 yamt-nfs-mp-base3:1.20 nick-hppapmap-base4:1.20 nick-hppapmap-base3:1.20 netbsd-5-0:1.20.0.10 netbsd-5-0-RELEASE:1.20 netbsd-5-0-RC4:1.20 netbsd-5-0-RC3:1.20 nick-hppapmap-base2:1.20 netbsd-5-0-RC2:1.20 jym-xensuspend:1.20.0.8 jym-xensuspend-base:1.20 netbsd-5-0-RC1:1.20 haad-dm-base2:1.20 haad-nbase2:1.20 ad-audiomp2:1.20.0.6 ad-audiomp2-base:1.20 netbsd-5:1.20.0.4 netbsd-5-base:1.20 nick-hppapmap:1.20.0.2 nick-hppapmap-base:1.20 matt-mips64-base2:1.20 matt-mips64:1.18.0.42 haad-dm-base1:1.20 wrstuden-revivesa-base-4:1.20 netbsd-4-0-1-RELEASE:1.15 wrstuden-revivesa-base-3:1.20 wrstuden-revivesa-base-2:1.19 wrstuden-fixsa-newbase:1.15 nick-csl-alignment-base5:1.18 haad-dm:1.18.0.40 haad-dm-base:1.20 wrstuden-revivesa-base-1:1.18 simonb-wapbl-nbase:1.19 yamt-pf42-base4:1.18 simonb-wapbl:1.18.0.38 simonb-wapbl-base:1.19 yamt-pf42-base3:1.18 hpcarm-cleanup-nbase:1.18 yamt-pf42-baseX:1.18 yamt-pf42-base2:1.18 yamt-nfs-mp-base2:1.18 wrstuden-revivesa:1.18.0.36 wrstuden-revivesa-base:1.18 yamt-nfs-mp:1.18.0.34 yamt-nfs-mp-base:1.18 yamt-pf42:1.18.0.32 yamt-pf42-base:1.18 ad-socklock-base1:1.18 yamt-lazymbuf-base15:1.18 yamt-lazymbuf-base14:1.18 keiichi-mipv6-nbase:1.18 mjf-devfs2:1.18.0.30 mjf-devfs2-base:1.20 nick-net80211-sync:1.18.0.28 nick-net80211-sync-base:1.18 keiichi-mipv6:1.18.0.26 keiichi-mipv6-base:1.18 bouyer-xeni386-merge1:1.18 matt-armv6-prevmlocking:1.18 wrstuden-fixsa-base-1:1.15 vmlocking2-base3:1.18 netbsd-4-0:1.15.0.20 netbsd-4-0-RELEASE:1.15 bouyer-xeni386-nbase:1.18 yamt-kmem-base3:1.18 cube-autoconf:1.18.0.24 cube-autoconf-base:1.18 yamt-kmem-base2:1.18 bouyer-xeni386:1.18.0.22 bouyer-xeni386-base:1.18 yamt-kmem:1.18.0.20 yamt-kmem-base:1.18 vmlocking2-base2:1.18 reinoud-bufcleanup-nbase:1.18 vmlocking2:1.18.0.18 vmlocking2-base1:1.18 netbsd-4-0-RC5:1.15 matt-nb4-arm:1.15.0.18 matt-nb4-arm-base:1.15 matt-armv6-nbase:1.18 jmcneill-base:1.18 netbsd-4-0-RC4:1.15 mjf-devfs:1.18.0.16 mjf-devfs-base:1.18 bouyer-xenamd64-base2:1.18 vmlocking-nbase:1.18 yamt-x86pmap-base4:1.18 bouyer-xenamd64:1.18.0.14 bouyer-xenamd64-base:1.18 netbsd-4-0-RC3:1.15 yamt-x86pmap-base3:1.18 yamt-x86pmap-base2:1.18 netbsd-4-0-RC2:1.15 yamt-x86pmap:1.18.0.12 yamt-x86pmap-base:1.18 netbsd-4-0-RC1:1.15 matt-armv6:1.18.0.10 matt-armv6-base:1.18 matt-mips64-base:1.18 jmcneill-pm:1.18.0.8 jmcneill-pm-base:1.18 hpcarm-cleanup:1.18.0.6 hpcarm-cleanup-base:1.18 nick-csl-alignment:1.18.0.4 nick-csl-alignment-base:1.18 netbsd-3-1-1-RELEASE:1.10 netbsd-3-0-3-RELEASE:1.10 yamt-idlelwp-base8:1.18 wrstuden-fixsa:1.15.0.16 wrstuden-fixsa-base:1.15 thorpej-atomic:1.18.0.2 thorpej-atomic-base:1.18 reinoud-bufcleanup:1.16.0.10 reinoud-bufcleanup-base:1.18 mjf-ufs-trans:1.16.0.8 mjf-ufs-trans-base:1.18 vmlocking:1.16.0.6 vmlocking-base:1.18 ad-audiomp:1.16.0.4 ad-audiomp-base:1.16 yamt-idlelwp:1.16.0.2 post-newlock2-merge:1.16 newlock2-nbase:1.16 yamt-splraiseipl-base5:1.15 yamt-splraiseipl-base4:1.15 yamt-splraiseipl-base3:1.15 abandoned-netbsd-4-base:1.15 abandoned-netbsd-4:1.15.0.8 netbsd-3-1:1.10.0.12 netbsd-3-1-RELEASE:1.10 netbsd-3-0-2-RELEASE:1.10 yamt-splraiseipl-base2:1.15 netbsd-3-1-RC4:1.10 yamt-splraiseipl:1.15.0.12 yamt-splraiseipl-base:1.15 netbsd-3-1-RC3:1.10 yamt-pdpolicy-base9:1.15 newlock2:1.15.0.10 newlock2-base:1.16 yamt-pdpolicy-base8:1.15 netbsd-3-1-RC2:1.10 netbsd-3-1-RC1:1.10 yamt-pdpolicy-base7:1.15 netbsd-4:1.15.0.14 netbsd-4-base:1.15 yamt-pdpolicy-base6:1.15 chap-midi-nbase:1.15 netbsd-3-0-1-RELEASE:1.10 gdamore-uart:1.15.0.6 gdamore-uart-base:1.15 simonb-timcounters-final:1.14.6.1 yamt-pdpolicy-base5:1.15 chap-midi:1.15.0.4 chap-midi-base:1.15 yamt-pdpolicy-base4:1.15 yamt-pdpolicy-base3:1.15 peter-altq-base:1.15 peter-altq:1.15.0.2 yamt-pdpolicy-base2:1.15 elad-kernelauth-base:1.15 elad-kernelauth:1.14.0.10 yamt-pdpolicy:1.14.0.8 yamt-pdpolicy-base:1.14 yamt-uio_vmspace-base5:1.14 simonb-timecounters:1.14.0.6 simonb-timecounters-base:1.15 rpaulo-netinet-merge-pcb:1.14.0.4 rpaulo-netinet-merge-pcb-base:1.15 yamt-uio_vmspace:1.14.0.2 netbsd-3-0:1.10.0.10 netbsd-3-0-RELEASE:1.10 netbsd-3-0-RC6:1.10 yamt-readahead-base3:1.12 netbsd-3-0-RC5:1.10 netbsd-3-0-RC4:1.10 netbsd-3-0-RC3:1.10 yamt-readahead-base2:1.12 netbsd-3-0-RC2:1.10 net80211-1-nov-2005:1.1.1.3 yamt-readahead-pervnode:1.12 yamt-readahead-perfile:1.12 yamt-readahead:1.12.0.6 yamt-readahead-base:1.12 netbsd-3-0-RC1:1.10 yamt-vop-base3:1.12 netbsd-2-0-3-RELEASE:1.5 netbsd-2-1:1.5.0.6 yamt-vop-base2:1.12 thorpej-vnode-attr:1.12.0.4 thorpej-vnode-attr-base:1.12 netbsd-2-1-RELEASE:1.5 yamt-vop:1.12.0.2 yamt-vop-base:1.12 netbsd-2-1-RC6:1.5 netbsd-2-1-RC5:1.5 netbsd-2-1-RC4:1.5 netbsd-2-1-RC3:1.5 netbsd-2-1-RC2:1.5 netbsd-2-1-RC1:1.5 net80211-2005-07-11:1.1.1.3 yamt-lazymbuf:1.11.0.2 net80211-2005-05-18:1.1.1.3 yamt-km-base4:1.10 netbsd-2-0-2-RELEASE:1.5 yamt-km-base3:1.10 netbsd-3:1.10.0.8 netbsd-3-base:1.10 yamt-km-base2:1.10 yamt-km:1.10.0.4 yamt-km-base:1.10 kent-audio2:1.10.0.2 kent-audio2-base:1.10 netbsd-2-0-1-RELEASE:1.5 kent-audio1-beforemerge:1.10 netbsd-2:1.5.0.4 netbsd-2-base:1.5 kent-audio1:1.9.0.4 kent-audio1-base:1.9 netbsd-2-0-RELEASE:1.5 netbsd-2-0-RC5:1.5 netbsd-2-0-RC4:1.5 netbsd-2-0-RC3:1.5 netbsd-2-0-RC2:1.5 netbsd-2-0-RC1:1.5 ktrace-lwp-base:1.14 ktrace-lwp:1.9.0.2 net80211-28-apr-2004:1.1.1.2 netbsd-2-0:1.5.0.2 netbsd-2-0-base:1.5 net80211-12-dec-2003:1.1.1.1 net80211-6-sep-2003:1.1.1.1 FreeBSD:1.1.1; locks; strict; comment @ * @; 1.25 date 2019.10.05.23.27.20; author mrg; state Exp; branches; next 1.24; commitid uph9jqvTg7dCAJFB; 1.24 date 2011.02.25.10.45.57; author tron; state Exp; branches 1.24.56.1; next 1.23; 1.23 date 2011.02.25.08.04.18; author cegger; state Exp; branches; next 1.22; 1.22 date 2011.02.25.08.01.49; author cegger; state Exp; branches; next 1.21; 1.21 date 2009.10.19.23.19.39; author rmind; state Exp; branches 1.21.4.1 1.21.6.1 1.21.8.1; next 1.20; 1.20 date 2008.09.08.23.36.55; author gmcgarry; state Exp; branches; next 1.19; 1.19 date 2008.07.28.17.54.02; author christos; state Exp; branches; next 1.18; 1.18 date 2007.03.26.21.22.35; author dyoung; state Exp; branches 1.18.28.1 1.18.30.1 1.18.34.1 1.18.36.1 1.18.38.1 1.18.40.1; next 1.17; 1.17 date 2007.03.26.04.32.14; author dyoung; state Exp; branches; next 1.16; 1.16 date 2007.01.06.05.51.15; author dyoung; state Exp; branches 1.16.2.1 1.16.6.1 1.16.8.1 1.16.10.1; next 1.15; 1.15 date 2006.03.12.03.22.02; author dyoung; state Exp; branches 1.15.10.1; next 1.14; 1.14 date 2005.12.10.23.26.35; author elad; state Exp; branches 1.14.4.1 1.14.6.1 1.14.8.1 1.14.10.1; next 1.13; 1.13 date 2005.12.08.20.13.27; author dyoung; state Exp; branches; next 1.12; 1.12 date 2005.07.26.22.52.48; author dyoung; state Exp; branches; next 1.11; 1.11 date 2005.06.22.06.16.02; author dyoung; state Exp; branches 1.11.2.1; next 1.10; 1.10 date 2005.01.04.00.34.58; author dyoung; state Exp; branches; next 1.9; 1.9 date 2004.06.06.04.13.28; author dyoung; state Exp; branches 1.9.2.1; next 1.8; 1.8 date 2004.04.30.22.22.53; author dyoung; state Exp; branches; next 1.7; 1.7 date 2004.03.29.04.08.14; author dyoung; state Exp; branches; next 1.6; 1.6 date 2004.03.29.04.04.48; author dyoung; state Exp; branches; next 1.5; 1.5 date 2003.12.08.04.48.58; author dyoung; state Exp; branches; next 1.4; 1.4 date 2003.12.07.04.49.17; author dyoung; state Exp; branches; next 1.3; 1.3 date 2003.11.16.09.02.42; author dyoung; state Exp; branches; next 1.2; 1.2 date 2003.09.14.01.14.55; author dyoung; state Exp; branches; next 1.1; 1.1 date 2003.09.07.04.05.33; author dyoung; state Exp; branches 1.1.1.1; next ; 1.24.56.1 date 2018.06.28.21.03.07; author phil; state Exp; branches; next 1.24.56.2; commitid fU5eenqZ23IoH5IA; 1.24.56.2 date 2018.06.28.21.23.01; author phil; state Exp; branches; next 1.24.56.3; commitid srXJ0FDHo2RLP5IA; 1.24.56.3 date 2020.04.13.08.05.16; author martin; state Exp; branches; next ; commitid X01YhRUPVUDaec4C; 1.21.4.1 date 2011.03.05.20.55.56; author rmind; state Exp; branches; next ; 1.21.6.1 date 2011.06.06.09.09.54; author jruoho; state Exp; branches; next ; 1.21.8.1 date 2011.03.05.15.10.47; author bouyer; state Exp; branches; next ; 1.18.28.1 date 2008.02.22.16.50.26; author skrll; state Exp; branches; next ; 1.18.30.1 date 2008.09.28.10.40.56; author mjf; state Exp; branches; next ; 1.18.34.1 date 2009.05.04.08.14.16; author yamt; state Exp; branches; next 1.18.34.2; 1.18.34.2 date 2010.03.11.15.04.28; author yamt; state Exp; branches; next ; 1.18.36.1 date 2008.09.18.04.37.00; author wrstuden; state Exp; branches; next 1.18.36.2; 1.18.36.2 date 2008.09.24.16.38.58; author wrstuden; state Exp; branches; next ; 1.18.38.1 date 2008.07.31.04.51.03; author simonb; state Exp; branches; next ; 1.18.40.1 date 2008.10.19.22.17.45; author haad; state Exp; branches; next ; 1.16.2.1 date 2007.04.15.16.03.58; author yamt; state Exp; branches; next ; 1.16.6.1 date 2007.04.10.13.26.47; author ad; state Exp; branches; next ; 1.16.8.1 date 2007.07.11.20.11.06; author mjf; state Exp; branches; next ; 1.16.10.1 date 2007.03.29.19.27.59; author reinoud; state Exp; branches; next ; 1.15.10.1 date 2007.01.12.01.04.12; author ad; state Exp; branches; next ; 1.14.4.1 date 2006.09.09.02.58.25; author rpaulo; state Exp; branches; next ; 1.14.6.1 date 2006.04.22.11.40.09; author simonb; state Exp; branches; next ; 1.14.8.1 date 2006.03.13.09.07.39; author yamt; state Exp; branches; next ; 1.14.10.1 date 2006.04.19.04.46.11; author elad; state Exp; branches; next ; 1.11.2.1 date 2006.06.21.15.10.46; author yamt; state Exp; branches; next 1.11.2.2; 1.11.2.2 date 2007.02.26.09.11.40; author yamt; state Exp; branches; next 1.11.2.3; 1.11.2.3 date 2007.09.03.14.42.29; author yamt; state Exp; branches; next ; 1.9.2.1 date 2004.06.06.04.13.28; author skrll; state dead; branches; next 1.9.2.2; 1.9.2.2 date 2004.08.03.10.54.21; author skrll; state Exp; branches; next 1.9.2.3; 1.9.2.3 date 2004.09.18.14.54.39; author skrll; state Exp; branches; next 1.9.2.4; 1.9.2.4 date 2004.09.21.13.36.55; author skrll; state Exp; branches; next 1.9.2.5; 1.9.2.5 date 2005.01.17.19.32.39; author skrll; state Exp; branches; next 1.9.2.6; 1.9.2.6 date 2005.11.10.14.10.51; author skrll; state Exp; branches; next 1.9.2.7; 1.9.2.7 date 2005.12.11.10.29.22; author christos; state Exp; branches; next ; 1.1.1.1 date 2003.09.07.04.05.33; author dyoung; state Exp; branches; next 1.1.1.2; 1.1.1.2 date 2004.04.29.03.54.40; author dyoung; state Exp; branches; next 1.1.1.3; 1.1.1.3 date 2005.06.21.20.37.44; author dyoung; state Exp; branches; next ; desc @@ 1.25 log @remove __packed attribute from struct ieee80211_radiotap_header and all the structures that include it. this should not change anything while avoiding packed vs alignment warnings from GCC 8, and potentially pessimised code generation due to the packed marker (there are no misaligned members, just that the per-device parts may end unaligned.) all consumers of these members are done from the properly aligned packet members directly, or, as a union with a 64 byte member, also properly aligned. codegen didn't appear to change, except for the definition of sizeof(struct driver_[rt]x_radiotap_header) in debug info, which is not directly used anywhere. @ text @/* $FreeBSD: src/sys/net80211/ieee80211_radiotap.h,v 1.11 2007/12/13 01:23:40 sam Exp $ */ /* $NetBSD: ieee80211_radiotap.h,v 1.24 2011/02/25 10:45:57 tron Exp $ */ /*- * Copyright (c) 2003, 2004 David Young. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * * THIS SOFTWARE IS PROVIDED BY DAVID YOUNG ``AS IS'' AND ANY * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL DAVID * YOUNG BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY * OF SUCH DAMAGE. */ #ifndef _NET80211_IEEE80211_RADIOTAP_H_ #define _NET80211_IEEE80211_RADIOTAP_H_ /* A generic radio capture format is desirable. It must be * rigidly defined (e.g., units for fields should be given), * and easily extensible. * * The following is an extensible radio capture format. It is * based on a bitmap indicating which fields are present. * * I am trying to describe precisely what the application programmer * should expect in the following, and for that reason I tell the * units and origin of each measurement (where it applies), or else I * use sufficiently weaselly language ("is a monotonically nondecreasing * function of...") that I cannot set false expectations for lawyerly * readers. */ #if defined(__KERNEL__) || defined(_KERNEL) #ifndef DLT_IEEE802_11_RADIO #define DLT_IEEE802_11_RADIO 127 /* 802.11 plus WLAN header */ #endif #endif /* defined(__KERNEL__) || defined(_KERNEL) */ /* XXX tcpdump/libpcap do not tolerate variable-length headers, * yet, so we pad every radiotap header to 64 bytes. Ugh. */ #define IEEE80211_RADIOTAP_HDRLEN 64 /* * The radio capture header precedes the 802.11 header. * * Note well: all radiotap fields are little-endian. */ struct ieee80211_radiotap_header { uint8_t it_version; /* Version 0. Only increases * for drastic changes, * introduction of compatible * new fields does not count. */ uint8_t it_pad; uint16_t it_len; /* length of the whole * header in bytes, including * it_version, it_pad, * it_len, and data fields. */ uint32_t it_present; /* A bitmap telling which * fields are present. Set bit 31 * (0x80000000) to extend the * bitmap by another 32 bits. * Additional extensions are made * by setting bit 31. */ } __aligned(8); /* * Name Data type Units * ---- --------- ----- * * IEEE80211_RADIOTAP_TSFT uint64_t microseconds * * Value in microseconds of the MAC's 64-bit 802.11 Time * Synchronization Function timer when the first bit of the * MPDU arrived at the MAC. For received frames, only. * * IEEE80211_RADIOTAP_CHANNEL 2 x uint16_t MHz, bitmap * * Tx/Rx frequency in MHz, followed by flags (see below). * * IEEE80211_RADIOTAP_FHSS uint16_t see below * * For frequency-hopping radios, the hop set (first byte) * and pattern (second byte). * * IEEE80211_RADIOTAP_RATE uint8_t 500kb/s * * Tx/Rx data rate * * IEEE80211_RADIOTAP_DBM_ANTSIGNAL int8_t decibels from * one milliwatt (dBm) * * RF signal power at the antenna, decibel difference from * one milliwatt. * * IEEE80211_RADIOTAP_DBM_ANTNOISE int8_t decibels from * one milliwatt (dBm) * * RF noise power at the antenna, decibel difference from one * milliwatt. * * IEEE80211_RADIOTAP_DB_ANTSIGNAL uint8_t decibel (dB) * * RF signal power at the antenna, decibel difference from an * arbitrary, fixed reference. * * IEEE80211_RADIOTAP_DB_ANTNOISE uint8_t decibel (dB) * * RF noise power at the antenna, decibel difference from an * arbitrary, fixed reference point. * * IEEE80211_RADIOTAP_LOCK_QUALITY uint16_t unitless * * Quality of Barker code lock. Unitless. Monotonically * nondecreasing with "better" lock strength. Called "Signal * Quality" in datasheets. (Is there a standard way to measure * this?) * * IEEE80211_RADIOTAP_TX_ATTENUATION uint16_t unitless * * Transmit power expressed as unitless distance from max * power set at factory calibration. 0 is max power. * Monotonically nondecreasing with lower power levels. * * IEEE80211_RADIOTAP_DB_TX_ATTENUATION uint16_t decibels (dB) * * Transmit power expressed as decibel distance from max power * set at factory calibration. 0 is max power. Monotonically * nondecreasing with lower power levels. * * IEEE80211_RADIOTAP_DBM_TX_POWER int8_t decibels from * one milliwatt (dBm) * * Transmit power expressed as dBm (decibels from a 1 milliwatt * reference). This is the absolute power level measured at * the antenna port. * * IEEE80211_RADIOTAP_FLAGS uint8_t bitmap * * Properties of transmitted and received frames. See flags * defined below. * * IEEE80211_RADIOTAP_ANTENNA uint8_t antenna index * * Unitless indication of the Rx/Tx antenna for this packet. * The first antenna is antenna 0. * * IEEE80211_RADIOTAP_RX_FLAGS uint16_t bitmap * * Properties of received frames. See flags defined below. * * IEEE80211_RADIOTAP_TX_FLAGS uint16_t bitmap * * Properties of transmitted frames. See flags defined below. * * IEEE80211_RADIOTAP_RTS_RETRIES uint8_t data * * Number of rts retries a transmitted frame used. * * IEEE80211_RADIOTAP_DATA_RETRIES uint8_t data * * Number of unicast retries a transmitted frame used. * * IEEE80211_RADIOTAP_XCHANNEL uint32_t bitmap * uint16_t MHz * uint8_t channel number * int8_t .5 dBm * * Extended channel specification: flags (see below) followed by * frequency in MHz, the corresponding IEEE channel number, and * finally the maximum regulatory transmit power cap in .5 dBm * units. This property supersedes IEEE80211_RADIOTAP_CHANNEL * and only one of the two should be present. */ enum ieee80211_radiotap_type { IEEE80211_RADIOTAP_TSFT = 0, IEEE80211_RADIOTAP_FLAGS = 1, IEEE80211_RADIOTAP_RATE = 2, IEEE80211_RADIOTAP_CHANNEL = 3, IEEE80211_RADIOTAP_FHSS = 4, IEEE80211_RADIOTAP_DBM_ANTSIGNAL = 5, IEEE80211_RADIOTAP_DBM_ANTNOISE = 6, IEEE80211_RADIOTAP_LOCK_QUALITY = 7, IEEE80211_RADIOTAP_TX_ATTENUATION = 8, IEEE80211_RADIOTAP_DB_TX_ATTENUATION = 9, IEEE80211_RADIOTAP_DBM_TX_POWER = 10, IEEE80211_RADIOTAP_ANTENNA = 11, IEEE80211_RADIOTAP_DB_ANTSIGNAL = 12, IEEE80211_RADIOTAP_DB_ANTNOISE = 13, IEEE80211_RADIOTAP_RX_FLAGS = 14, IEEE80211_RADIOTAP_TX_FLAGS = 15, IEEE80211_RADIOTAP_RTS_RETRIES = 16, IEEE80211_RADIOTAP_DATA_RETRIES = 17, IEEE80211_RADIOTAP_XCHANNEL = 18, IEEE80211_RADIOTAP_EXT = 31 }; /* For IEEE80211_RADIOTAP_FLAGS */ #define IEEE80211_RADIOTAP_F_CFP 0x01 /* sent/received * during CFP */ #define IEEE80211_RADIOTAP_F_SHORTPRE 0x02 /* sent/received * with short * preamble */ #define IEEE80211_RADIOTAP_F_WEP 0x04 /* sent/received * with WEP encryption */ #define IEEE80211_RADIOTAP_F_FRAG 0x08 /* sent/received * with fragmentation */ #define IEEE80211_RADIOTAP_F_FCS 0x10 /* frame includes FCS */ #define IEEE80211_RADIOTAP_F_DATAPAD 0x20 /* frame has padding between * 802.11 header and payload * (to 32-bit boundary) */ #define IEEE80211_RADIOTAP_F_BADFCS 0x40 /* does not pass FCS check */ #define IEEE80211_RADIOTAP_F_SHORTGI 0x80 /* HT short GI */ /* For IEEE80211_RADIOTAP_RX_FLAGS */ #define IEEE80211_RADIOTAP_F_RX_BADFCS 0x0001 /* Frame failed CRC check. * * Deprecated: use the flag * IEEE80211_RADIOTAP_F_BADFCS in * the IEEE80211_RADIOTAP_FLAGS * field, instead. */ /* For IEEE80211_RADIOTAP_TX_FLAGS */ #define IEEE80211_RADIOTAP_F_TX_FAIL 0x0001 /* failed due to excessive * retries */ #define IEEE80211_RADIOTAP_F_TX_CTS 0x0002 /* used cts 'protection' */ #define IEEE80211_RADIOTAP_F_TX_RTS 0x0004 /* used rts/cts handshake */ #endif /* !_NET80211_IEEE80211_RADIOTAP_H_ */ @ 1.24 log @Remove duplicate definitions which break the build. @ text @d2 1 a2 1 /* $NetBSD: ieee80211_radiotap.h,v 1.23 2011/02/25 08:04:18 cegger Exp $ */ d81 1 a81 1 } __packed __aligned(8); @ 1.24.56.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 @d1 2 a2 2 /* $FreeBSD$ */ /* $NetBSD: ieee80211_radiotap.h,v 1.16 2007/01/06 05:51:15 dyoung Exp $ */ a4 2 * SPDX-License-Identifier: BSD-3-Clause * a14 3 * 3. The name of David Young may not be used to endorse or promote * products derived from this software without specific prior * written permission. d52 4 a55 7 #define IEEE80211_RADIOTAP_HDRLEN 64 /* XXX deprecated */ struct ieee80211_radiotap_vendor_header { uint8_t vh_oui[3]; /* 3 byte vendor OUI */ uint8_t vh_sub_ns; /* Sub namespace of this section */ uint16_t vh_skip_len; /* Length of this vendor section */ } __packed; d63 1 a63 1 uint8_t it_version; /* Version 0. Only increases d68 2 a69 2 uint8_t it_pad; uint16_t it_len; /* length of the whole d74 1 a74 1 uint32_t it_present; /* A bitmap telling which d81 1 a81 1 } __packed; d102 1 a102 1 * IEEE80211_RADIOTAP_RATE uint8_t 500kb/s or index d104 1 a104 2 * Tx/Rx data rate. If bit 0x80 is set then it represents an * an MCS index and not an IEEE rate. d164 1 a164 11 * IEEE80211_RADIOTAP_XCHANNEL uint32_t bitmap * uint16_t MHz * uint8_t channel number * int8_t .5 dBm * * Extended channel specification: flags (see below) followed by * frequency in MHz, the corresponding IEEE channel number, and * finally the maximum regulatory transmit power cap in .5 dBm * units. This property supersedes IEEE80211_RADIOTAP_CHANNEL * and only one of the two should be present. * IEEE80211_RADIOTAP_RX_FLAGS guint16 bitmap d168 1 a168 1 * IEEE80211_RADIOTAP_TX_FLAGS guint16 bitmap d172 1 a172 1 * IEEE80211_RADIOTAP_RTS_RETRIES u8 data d176 1 a176 1 * IEEE80211_RADIOTAP_DATA_RETRIES u8 data d180 4 a183 1 * IEEE80211_RADIOTAP_MCS u8, u8, u8 unitless d185 5 a189 6 * Contains a bitmap of known fields/flags, the flags, and * the MCS index. * * IEEE80211_RADIOTAP_AMPDU_STATUS u32, u16, u8, u8 unitlesss * * Contains the AMPDU information for the subframe. a205 4 /* * 14-17 are from Linux, they overlap the netbsd-specific * fields. */ a209 1 d211 1 a211 7 IEEE80211_RADIOTAP_MCS = 19, IEEE80211_RADIOTAP_AMPDU_STATUS = 20, IEEE80211_RADIOTAP_VHT = 21, IEEE80211_RADIOTAP_RADIOTAP_NAMESPACE = 29, IEEE80211_RADIOTAP_VENDOREXT = 30, IEEE80211_RADIOTAP_EXT = 31, a213 16 #ifndef _KERNEL /* channel attributes */ #define IEEE80211_CHAN_TURBO 0x00000010 /* Turbo channel */ #define IEEE80211_CHAN_CCK 0x00000020 /* CCK channel */ #define IEEE80211_CHAN_OFDM 0x00000040 /* OFDM channel */ #define IEEE80211_CHAN_2GHZ 0x00000080 /* 2 GHz spectrum channel. */ #define IEEE80211_CHAN_5GHZ 0x00000100 /* 5 GHz spectrum channel */ #define IEEE80211_CHAN_PASSIVE 0x00000200 /* Only passive scan allowed */ #define IEEE80211_CHAN_DYN 0x00000400 /* Dynamic CCK-OFDM channel */ #define IEEE80211_CHAN_GFSK 0x00000800 /* GFSK channel (FHSS PHY) */ #define IEEE80211_CHAN_GSM 0x00001000 /* 900 MHz spectrum channel */ #define IEEE80211_CHAN_STURBO 0x00002000 /* 11a static turbo channel only */ #define IEEE80211_CHAN_HALF 0x00004000 /* Half rate channel */ #define IEEE80211_CHAN_QUARTER 0x00008000 /* Quarter rate channel */ #endif /* !_KERNEL */ d234 1 a234 1 #define IEEE80211_RADIOTAP_F_SHORTGI 0x80 /* HT short GI */ d237 7 a243 1 #define IEEE80211_RADIOTAP_F_RX_BADPLCP 0x0002 /* bad PLCP */ d246 5 a250 86 #define IEEE80211_RADIOTAP_F_TX_FAIL 0x0001 /* failed due to excessive * retries */ #define IEEE80211_RADIOTAP_F_TX_CTS 0x0002 /* used cts 'protection' */ #define IEEE80211_RADIOTAP_F_TX_RTS 0x0004 /* used rts/cts handshake */ /* For IEEE80211_RADIOTAP_MCS */ #define IEEE80211_RADIOTAP_MCS_HAVE_BW 0x01 #define IEEE80211_RADIOTAP_MCS_HAVE_MCS 0x02 #define IEEE80211_RADIOTAP_MCS_HAVE_GI 0x04 #define IEEE80211_RADIOTAP_MCS_HAVE_FMT 0x08 #define IEEE80211_RADIOTAP_MCS_HAVE_FEC 0x10 #define IEEE80211_RADIOTAP_MCS_HAVE_STBC 0x20 #define IEEE80211_RADIOTAP_MCS_HAVE_NESS 0x40 #define IEEE80211_RADIOTAP_MCS_NESS_BIT1 0x80 #define IEEE80211_RADIOTAP_MCS_BW_MASK 0x03 #define IEEE80211_RADIOTAP_MCS_BW_20 0 #define IEEE80211_RADIOTAP_MCS_BW_40 1 #define IEEE80211_RADIOTAP_MCS_BW_20L 2 #define IEEE80211_RADIOTAP_MCS_BW_20U 3 #define IEEE80211_RADIOTAP_MCS_SGI 0x04 #define IEEE80211_RADIOTAP_MCS_FMT_GF 0x08 #define IEEE80211_RADIOTAP_MCS_FEC_LDPC 0x10 #define IEEE80211_RADIOTAP_MCS_STBC_MASK 0x60 #define IEEE80211_RADIOTAP_MCS_STBC_SHIFT 5 #define IEEE80211_RADIOTAP_MCS_STBC_1 1 #define IEEE80211_RADIOTAP_MCS_STBC_2 2 #define IEEE80211_RADIOTAP_MCS_STBC_3 3 #define IEEE80211_RADIOTAP_MCS_NESS_BIT0 0x80 /* For IEEE80211_RADIOTAP_AMPDU_STATUS */ #define IEEE80211_RADIOTAP_AMPDU_REPORT_ZEROLEN 0x0001 #define IEEE80211_RADIOTAP_AMPDU_IS_ZEROLEN 0x0002 #define IEEE80211_RADIOTAP_AMPDU_LAST_KNOWN 0x0004 #define IEEE80211_RADIOTAP_AMPDU_IS_LAST 0x0008 #define IEEE80211_RADIOTAP_AMPDU_DELIM_CRC_ERR 0x0010 #define IEEE80211_RADIOTAP_AMPDU_DELIM_CRC_KNOWN 0x0020 /* For IEEE80211_RADIOTAP_VHT */ #define IEEE80211_RADIOTAP_VHT_HAVE_STBC 0x0001 #define IEEE80211_RADIOTAP_VHT_HAVE_TXOP_PS 0x0002 #define IEEE80211_RADIOTAP_VHT_HAVE_GI 0x0004 #define IEEE80211_RADIOTAP_VHT_HAVE_SGI_NSYM_DA 0x0008 #define IEEE80211_RADIOTAP_VHT_HAVE_LDPC_EXTRA 0x0010 #define IEEE80211_RADIOTAP_VHT_HAVE_BF 0x0020 #define IEEE80211_RADIOTAP_VHT_HAVE_BW 0x0040 #define IEEE80211_RADIOTAP_VHT_HAVE_GID 0x0080 #define IEEE80211_RADIOTAP_VHT_HAVE_PAID 0x0100 #define IEEE80211_RADIOTAP_VHT_STBC 0x01 #define IEEE80211_RADIOTAP_VHT_TXOP_PS 0x02 #define IEEE80211_RADIOTAP_VHT_SGI 0x04 #define IEEE80211_RADIOTAP_VHT_SGI_NSYM_DA 0x08 #define IEEE80211_RADIOTAP_VHT_LDPC_EXTRA 0x10 #define IEEE80211_RADIOTAP_VHT_BF 0x20 #define IEEE80211_RADIOTAP_VHT_NSS 0x0f #define IEEE80211_RADIOTAP_VHT_MCS 0xf0 #define IEEE80211_RADIOTAP_VHT_CODING_LDPC 0x01 #define IEEE80211_RADIOTAP_VHT_BW_MASK 0x1f #define IEEE80211_RADIOTAP_VHT_BW_20 IEEE80211_RADIOTAP_MCS_BW_20 #define IEEE80211_RADIOTAP_VHT_BW_40 IEEE80211_RADIOTAP_MCS_BW_40 #define IEEE80211_RADIOTAP_VHT_BW_20L IEEE80211_RADIOTAP_MCS_BW_20L #define IEEE80211_RADIOTAP_VHT_BW_20U IEEE80211_RADIOTAP_MCS_BW_20U #define IEEE80211_RADIOTAP_VHT_BW_80 4 #define IEEE80211_RADIOTAP_VHT_BW_40L 5 #define IEEE80211_RADIOTAP_VHT_BW_40U 6 #define IEEE80211_RADIOTAP_VHT_BW_20LL 7 #define IEEE80211_RADIOTAP_VHT_BW_20LU 8 #define IEEE80211_RADIOTAP_VHT_BW_20UL 9 #define IEEE80211_RADIOTAP_VHT_BW_20UU 10 #define IEEE80211_RADIOTAP_VHT_BW_160 11 #define IEEE80211_RADIOTAP_VHT_BW_80L 12 #define IEEE80211_RADIOTAP_VHT_BW_80U 13 #define IEEE80211_RADIOTAP_VHT_BW_40LL 14 #define IEEE80211_RADIOTAP_VHT_BW_40LU 15 #define IEEE80211_RADIOTAP_VHT_BW_40UL 16 #define IEEE80211_RADIOTAP_VHT_BW_40UU 17 #define IEEE80211_RADIOTAP_VHT_BW_20LLL 18 #define IEEE80211_RADIOTAP_VHT_BW_20LLU 19 #define IEEE80211_RADIOTAP_VHT_BW_20LUL 20 #define IEEE80211_RADIOTAP_VHT_BW_20LUU 21 #define IEEE80211_RADIOTAP_VHT_BW_20ULL 22 #define IEEE80211_RADIOTAP_VHT_BW_20ULU 23 #define IEEE80211_RADIOTAP_VHT_BW_20UUL 24 #define IEEE80211_RADIOTAP_VHT_BW_20UUU 25 @ 1.24.56.2 log @Add RCS ID at the top of all the files. @ text @d1 2 a2 1 /* $NetBSD: $ */ @ 1.24.56.3 log @Mostly merge changes from HEAD upto 20200411 @ text @d1 1 a1 1 /* $NetBSD$ */ d4 1 a4 1 * SPDX-License-Identifier: BSD-2-Clause d16 3 d56 1 a56 4 /* XXX tcpdump/libpcap do not tolerate variable-length headers, * yet, so we pad every radiotap header to 64 bytes. Ugh. */ #define IEEE80211_RADIOTAP_HDRLEN 64 /* XXX deprecated */ d59 2 a60 2 uint8_t vh_oui[3]; /* 3 byte vendor OUI */ uint8_t vh_sub_ns; /* Sub namespace of this section */ d76 1 a76 1 uint16_t it_len; /* length of the whole d88 1 a88 2 } __aligned(8); d109 1 a109 1 * IEEE80211_RADIOTAP_RATE uint8_t 500kb/s d111 2 a112 1 * Tx/Rx data rate d172 11 a182 1 * IEEE80211_RADIOTAP_RX_FLAGS uint16_t bitmap d186 1 a186 1 * IEEE80211_RADIOTAP_TX_FLAGS uint16_t bitmap d190 1 a190 1 * IEEE80211_RADIOTAP_RTS_RETRIES uint8_t data d194 1 a194 1 * IEEE80211_RADIOTAP_DATA_RETRIES uint8_t data d198 6 a203 4 * IEEE80211_RADIOTAP_XCHANNEL uint32_t bitmap * uint16_t MHz * uint8_t channel number * int8_t .5 dBm d205 1 a205 5 * Extended channel specification: flags (see below) followed by * frequency in MHz, the corresponding IEEE channel number, and * finally the maximum regulatory transmit power cap in .5 dBm * units. This property supersedes IEEE80211_RADIOTAP_CHANNEL * and only one of the two should be present. d236 1 a236 1 IEEE80211_RADIOTAP_RADIOTAP_NAMESPACE = 29, d243 12 a254 12 #define IEEE80211_CHAN_TURBO 0x00000010 /* Turbo channel */ #define IEEE80211_CHAN_CCK 0x00000020 /* CCK channel */ #define IEEE80211_CHAN_OFDM 0x00000040 /* OFDM channel */ #define IEEE80211_CHAN_2GHZ 0x00000080 /* 2 GHz spectrum channel. */ #define IEEE80211_CHAN_5GHZ 0x00000100 /* 5 GHz spectrum channel */ #define IEEE80211_CHAN_PASSIVE 0x00000200 /* Only passive scan allowed */ #define IEEE80211_CHAN_DYN 0x00000400 /* Dynamic CCK-OFDM channel */ #define IEEE80211_CHAN_GFSK 0x00000800 /* GFSK channel (FHSS PHY) */ #define IEEE80211_CHAN_GSM 0x00001000 /* 900 MHz spectrum channel */ #define IEEE80211_CHAN_STURBO 0x00002000 /* 11a static turbo channel only */ #define IEEE80211_CHAN_HALF 0x00004000 /* Half rate channel */ #define IEEE80211_CHAN_QUARTER 0x00008000 /* Quarter rate channel */ d280 1 a280 8 #define IEEE80211_RADIOTAP_F_RX_BADFCS 0x0001 /* Frame failed CRC check. * * Deprecated: use the flag * IEEE80211_RADIOTAP_F_BADFCS in * the IEEE80211_RADIOTAP_FLAGS * field, instead. */ #define IEEE80211_RADIOTAP_F_RX_BADPLCP 0x0002 /* bad PLCP */ d290 23 a312 23 #define IEEE80211_RADIOTAP_MCS_HAVE_BW 0x01 #define IEEE80211_RADIOTAP_MCS_HAVE_MCS 0x02 #define IEEE80211_RADIOTAP_MCS_HAVE_GI 0x04 #define IEEE80211_RADIOTAP_MCS_HAVE_FMT 0x08 #define IEEE80211_RADIOTAP_MCS_HAVE_FEC 0x10 #define IEEE80211_RADIOTAP_MCS_HAVE_STBC 0x20 #define IEEE80211_RADIOTAP_MCS_HAVE_NESS 0x40 #define IEEE80211_RADIOTAP_MCS_NESS_BIT1 0x80 #define IEEE80211_RADIOTAP_MCS_BW_MASK 0x03 #define IEEE80211_RADIOTAP_MCS_BW_20 0 #define IEEE80211_RADIOTAP_MCS_BW_40 1 #define IEEE80211_RADIOTAP_MCS_BW_20L 2 #define IEEE80211_RADIOTAP_MCS_BW_20U 3 #define IEEE80211_RADIOTAP_MCS_SGI 0x04 #define IEEE80211_RADIOTAP_MCS_FMT_GF 0x08 #define IEEE80211_RADIOTAP_MCS_FEC_LDPC 0x10 #define IEEE80211_RADIOTAP_MCS_STBC_MASK 0x60 #define IEEE80211_RADIOTAP_MCS_STBC_SHIFT 5 #define IEEE80211_RADIOTAP_MCS_STBC_1 1 #define IEEE80211_RADIOTAP_MCS_STBC_2 2 #define IEEE80211_RADIOTAP_MCS_STBC_3 3 #define IEEE80211_RADIOTAP_MCS_NESS_BIT0 0x80 d315 6 a320 6 #define IEEE80211_RADIOTAP_AMPDU_REPORT_ZEROLEN 0x0001 #define IEEE80211_RADIOTAP_AMPDU_IS_ZEROLEN 0x0002 #define IEEE80211_RADIOTAP_AMPDU_LAST_KNOWN 0x0004 #define IEEE80211_RADIOTAP_AMPDU_IS_LAST 0x0008 #define IEEE80211_RADIOTAP_AMPDU_DELIM_CRC_ERR 0x0010 #define IEEE80211_RADIOTAP_AMPDU_DELIM_CRC_KNOWN 0x0020 d323 46 a368 46 #define IEEE80211_RADIOTAP_VHT_HAVE_STBC 0x0001 #define IEEE80211_RADIOTAP_VHT_HAVE_TXOP_PS 0x0002 #define IEEE80211_RADIOTAP_VHT_HAVE_GI 0x0004 #define IEEE80211_RADIOTAP_VHT_HAVE_SGI_NSYM_DA 0x0008 #define IEEE80211_RADIOTAP_VHT_HAVE_LDPC_EXTRA 0x0010 #define IEEE80211_RADIOTAP_VHT_HAVE_BF 0x0020 #define IEEE80211_RADIOTAP_VHT_HAVE_BW 0x0040 #define IEEE80211_RADIOTAP_VHT_HAVE_GID 0x0080 #define IEEE80211_RADIOTAP_VHT_HAVE_PAID 0x0100 #define IEEE80211_RADIOTAP_VHT_STBC 0x01 #define IEEE80211_RADIOTAP_VHT_TXOP_PS 0x02 #define IEEE80211_RADIOTAP_VHT_SGI 0x04 #define IEEE80211_RADIOTAP_VHT_SGI_NSYM_DA 0x08 #define IEEE80211_RADIOTAP_VHT_LDPC_EXTRA 0x10 #define IEEE80211_RADIOTAP_VHT_BF 0x20 #define IEEE80211_RADIOTAP_VHT_NSS 0x0f #define IEEE80211_RADIOTAP_VHT_MCS 0xf0 #define IEEE80211_RADIOTAP_VHT_CODING_LDPC 0x01 #define IEEE80211_RADIOTAP_VHT_BW_MASK 0x1f #define IEEE80211_RADIOTAP_VHT_BW_20 IEEE80211_RADIOTAP_MCS_BW_20 #define IEEE80211_RADIOTAP_VHT_BW_40 IEEE80211_RADIOTAP_MCS_BW_40 #define IEEE80211_RADIOTAP_VHT_BW_20L IEEE80211_RADIOTAP_MCS_BW_20L #define IEEE80211_RADIOTAP_VHT_BW_20U IEEE80211_RADIOTAP_MCS_BW_20U #define IEEE80211_RADIOTAP_VHT_BW_80 4 #define IEEE80211_RADIOTAP_VHT_BW_40L 5 #define IEEE80211_RADIOTAP_VHT_BW_40U 6 #define IEEE80211_RADIOTAP_VHT_BW_20LL 7 #define IEEE80211_RADIOTAP_VHT_BW_20LU 8 #define IEEE80211_RADIOTAP_VHT_BW_20UL 9 #define IEEE80211_RADIOTAP_VHT_BW_20UU 10 #define IEEE80211_RADIOTAP_VHT_BW_160 11 #define IEEE80211_RADIOTAP_VHT_BW_80L 12 #define IEEE80211_RADIOTAP_VHT_BW_80U 13 #define IEEE80211_RADIOTAP_VHT_BW_40LL 14 #define IEEE80211_RADIOTAP_VHT_BW_40LU 15 #define IEEE80211_RADIOTAP_VHT_BW_40UL 16 #define IEEE80211_RADIOTAP_VHT_BW_40UU 17 #define IEEE80211_RADIOTAP_VHT_BW_20LLL 18 #define IEEE80211_RADIOTAP_VHT_BW_20LLU 19 #define IEEE80211_RADIOTAP_VHT_BW_20LUL 20 #define IEEE80211_RADIOTAP_VHT_BW_20LUU 21 #define IEEE80211_RADIOTAP_VHT_BW_20ULL 22 #define IEEE80211_RADIOTAP_VHT_BW_20ULU 23 #define IEEE80211_RADIOTAP_VHT_BW_20UUL 24 #define IEEE80211_RADIOTAP_VHT_BW_20UUU 25 @ 1.23 log @fix botched line break. How did this even compile for me? @ text @d2 1 a2 1 /* $NetBSD: ieee80211_radiotap.h,v 1.22 2011/02/25 08:01:49 cegger Exp $ */ a213 16 #ifndef _KERNEL /* Channel flags. */ #define IEEE80211_CHAN_TURBO 0x00000010 /* Turbo channel */ #define IEEE80211_CHAN_CCK 0x00000020 /* CCK channel */ #define IEEE80211_CHAN_OFDM 0x00000040 /* OFDM channel */ #define IEEE80211_CHAN_2GHZ 0x00000080 /* 2 GHz spectrum channel. */ #define IEEE80211_CHAN_5GHZ 0x00000100 /* 5 GHz spectrum channel */ #define IEEE80211_CHAN_PASSIVE 0x00000200 /* Only passive scan allowed */ #define IEEE80211_CHAN_DYN 0x00000400 /* Dynamic CCK-OFDM channel */ #define IEEE80211_CHAN_GFSK 0x00000800 /* GFSK channel (FHSS PHY) */ #define IEEE80211_CHAN_GSM 0x00001000 /* 900 MHz spectrum channel */ #define IEEE80211_CHAN_STURBO 0x00002000 /* 11a static turbo channel only */ #define IEEE80211_CHAN_HALF 0x00004000 /* Half rate channel */ #define IEEE80211_CHAN_QUARTER 0x00008000 /* Quarter rate channel */ #endif /* !_KERNEL */ @ 1.22 log @sync with FreeBSD rev 1.11. No binary changes. @ text @d1 2 a2 3 /* $FreeBSD: src/sys/net80211/ieee80211_radiotap.h,v 1.11 2007/12/13 01:23:40 sa m Exp $ */ /* $NetBSD: ieee80211_radiotap.h,v 1.21 2009/10/19 23:19:39 rmind Exp $ */ @ 1.21 log @Drop 3rd and 4th clauses from David Young's license. Reviewed and approved by dyoung@@ (copyright holder). @ text @d1 3 a3 2 /* $FreeBSD: src/sys/net80211/ieee80211_radiotap.h,v 1.5 2005/01/22 20:12:05 sam Exp $ */ /* $NetBSD: ieee80211_radiotap.h,v 1.20 2008/09/08 23:36:55 gmcgarry Exp $ */ d64 1 a64 1 u_int8_t it_version; /* Version 0. Only increases d69 2 a70 2 u_int8_t it_pad; u_int16_t it_len; /* length of the whole d75 1 a75 1 u_int32_t it_present; /* A bitmap telling which d88 1 a88 1 * IEEE80211_RADIOTAP_TSFT u_int64_t microseconds d94 1 a94 1 * IEEE80211_RADIOTAP_CHANNEL 2 x u_int16_t MHz, bitmap d98 1 a98 1 * IEEE80211_RADIOTAP_FHSS u_int16_t see below d103 1 a103 1 * IEEE80211_RADIOTAP_RATE u_int8_t 500kb/s d119 1 a119 1 * IEEE80211_RADIOTAP_DB_ANTSIGNAL u_int8_t decibel (dB) d124 1 a124 1 * IEEE80211_RADIOTAP_DB_ANTNOISE u_int8_t decibel (dB) d129 1 a129 1 * IEEE80211_RADIOTAP_LOCK_QUALITY u_int16_t unitless d136 1 a136 1 * IEEE80211_RADIOTAP_TX_ATTENUATION u_int16_t unitless d142 1 a142 1 * IEEE80211_RADIOTAP_DB_TX_ATTENUATION u_int16_t decibels (dB) d155 1 a155 1 * IEEE80211_RADIOTAP_FLAGS u_int8_t bitmap d160 1 a160 1 * IEEE80211_RADIOTAP_ANTENNA u_int8_t antenna index d165 1 a165 1 * IEEE80211_RADIOTAP_RX_FLAGS u_int16_t bitmap d169 1 a169 1 * IEEE80211_RADIOTAP_TX_FLAGS u_int16_t bitmap d173 1 a173 1 * IEEE80211_RADIOTAP_RTS_RETRIES u_int8_t data d177 1 a177 1 * IEEE80211_RADIOTAP_DATA_RETRIES u_int8_t data d180 11 d211 1 d217 12 a228 8 #define IEEE80211_CHAN_TURBO 0x0010 /* Turbo channel */ #define IEEE80211_CHAN_CCK 0x0020 /* CCK channel */ #define IEEE80211_CHAN_OFDM 0x0040 /* OFDM channel */ #define IEEE80211_CHAN_2GHZ 0x0080 /* 2 GHz spectrum channel. */ #define IEEE80211_CHAN_5GHZ 0x0100 /* 5 GHz spectrum channel */ #define IEEE80211_CHAN_PASSIVE 0x0200 /* Only passive scan allowed */ #define IEEE80211_CHAN_DYN 0x0400 /* Dynamic CCK-OFDM channel */ #define IEEE80211_CHAN_GFSK 0x0800 /* GFSK channel (FHSS PHY) */ d251 1 @ 1.21.6.1 log @Sync with HEAD. @ text @d1 2 a2 2 /* $FreeBSD: src/sys/net80211/ieee80211_radiotap.h,v 1.11 2007/12/13 01:23:40 sam Exp $ */ /* $NetBSD: ieee80211_radiotap.h,v 1.24 2011/02/25 10:45:57 tron Exp $ */ d63 1 a63 1 uint8_t it_version; /* Version 0. Only increases d68 2 a69 2 uint8_t it_pad; uint16_t it_len; /* length of the whole d74 1 a74 1 uint32_t it_present; /* A bitmap telling which d87 1 a87 1 * IEEE80211_RADIOTAP_TSFT uint64_t microseconds d93 1 a93 1 * IEEE80211_RADIOTAP_CHANNEL 2 x uint16_t MHz, bitmap d97 1 a97 1 * IEEE80211_RADIOTAP_FHSS uint16_t see below d102 1 a102 1 * IEEE80211_RADIOTAP_RATE uint8_t 500kb/s d118 1 a118 1 * IEEE80211_RADIOTAP_DB_ANTSIGNAL uint8_t decibel (dB) d123 1 a123 1 * IEEE80211_RADIOTAP_DB_ANTNOISE uint8_t decibel (dB) d128 1 a128 1 * IEEE80211_RADIOTAP_LOCK_QUALITY uint16_t unitless d135 1 a135 1 * IEEE80211_RADIOTAP_TX_ATTENUATION uint16_t unitless d141 1 a141 1 * IEEE80211_RADIOTAP_DB_TX_ATTENUATION uint16_t decibels (dB) d154 1 a154 1 * IEEE80211_RADIOTAP_FLAGS uint8_t bitmap d159 1 a159 1 * IEEE80211_RADIOTAP_ANTENNA uint8_t antenna index d164 1 a164 1 * IEEE80211_RADIOTAP_RX_FLAGS uint16_t bitmap d168 1 a168 1 * IEEE80211_RADIOTAP_TX_FLAGS uint16_t bitmap d172 1 a172 1 * IEEE80211_RADIOTAP_RTS_RETRIES uint8_t data d176 1 a176 1 * IEEE80211_RADIOTAP_DATA_RETRIES uint8_t data a178 11 * * IEEE80211_RADIOTAP_XCHANNEL uint32_t bitmap * uint16_t MHz * uint8_t channel number * int8_t .5 dBm * * Extended channel specification: flags (see below) followed by * frequency in MHz, the corresponding IEEE channel number, and * finally the maximum regulatory transmit power cap in .5 dBm * units. This property supersedes IEEE80211_RADIOTAP_CHANNEL * and only one of the two should be present. a198 1 IEEE80211_RADIOTAP_XCHANNEL = 18, d202 12 a233 1 #define IEEE80211_RADIOTAP_F_SHORTGI 0x80 /* HT short GI */ @ 1.21.4.1 log @sync with head @ text @d1 2 a2 2 /* $FreeBSD: src/sys/net80211/ieee80211_radiotap.h,v 1.11 2007/12/13 01:23:40 sam Exp $ */ /* $NetBSD$ */ d63 1 a63 1 uint8_t it_version; /* Version 0. Only increases d68 2 a69 2 uint8_t it_pad; uint16_t it_len; /* length of the whole d74 1 a74 1 uint32_t it_present; /* A bitmap telling which d87 1 a87 1 * IEEE80211_RADIOTAP_TSFT uint64_t microseconds d93 1 a93 1 * IEEE80211_RADIOTAP_CHANNEL 2 x uint16_t MHz, bitmap d97 1 a97 1 * IEEE80211_RADIOTAP_FHSS uint16_t see below d102 1 a102 1 * IEEE80211_RADIOTAP_RATE uint8_t 500kb/s d118 1 a118 1 * IEEE80211_RADIOTAP_DB_ANTSIGNAL uint8_t decibel (dB) d123 1 a123 1 * IEEE80211_RADIOTAP_DB_ANTNOISE uint8_t decibel (dB) d128 1 a128 1 * IEEE80211_RADIOTAP_LOCK_QUALITY uint16_t unitless d135 1 a135 1 * IEEE80211_RADIOTAP_TX_ATTENUATION uint16_t unitless d141 1 a141 1 * IEEE80211_RADIOTAP_DB_TX_ATTENUATION uint16_t decibels (dB) d154 1 a154 1 * IEEE80211_RADIOTAP_FLAGS uint8_t bitmap d159 1 a159 1 * IEEE80211_RADIOTAP_ANTENNA uint8_t antenna index d164 1 a164 1 * IEEE80211_RADIOTAP_RX_FLAGS uint16_t bitmap d168 1 a168 1 * IEEE80211_RADIOTAP_TX_FLAGS uint16_t bitmap d172 1 a172 1 * IEEE80211_RADIOTAP_RTS_RETRIES uint8_t data d176 1 a176 1 * IEEE80211_RADIOTAP_DATA_RETRIES uint8_t data a178 11 * * IEEE80211_RADIOTAP_XCHANNEL uint32_t bitmap * uint16_t MHz * uint8_t channel number * int8_t .5 dBm * * Extended channel specification: flags (see below) followed by * frequency in MHz, the corresponding IEEE channel number, and * finally the maximum regulatory transmit power cap in .5 dBm * units. This property supersedes IEEE80211_RADIOTAP_CHANNEL * and only one of the two should be present. a198 1 IEEE80211_RADIOTAP_XCHANNEL = 18, d202 12 a233 1 #define IEEE80211_RADIOTAP_F_SHORTGI 0x80 /* HT short GI */ @ 1.21.8.1 log @Sync with HEAD @ text @d1 2 a2 2 /* $FreeBSD: src/sys/net80211/ieee80211_radiotap.h,v 1.11 2007/12/13 01:23:40 sam Exp $ */ /* $NetBSD$ */ d63 1 a63 1 uint8_t it_version; /* Version 0. Only increases d68 2 a69 2 uint8_t it_pad; uint16_t it_len; /* length of the whole d74 1 a74 1 uint32_t it_present; /* A bitmap telling which d87 1 a87 1 * IEEE80211_RADIOTAP_TSFT uint64_t microseconds d93 1 a93 1 * IEEE80211_RADIOTAP_CHANNEL 2 x uint16_t MHz, bitmap d97 1 a97 1 * IEEE80211_RADIOTAP_FHSS uint16_t see below d102 1 a102 1 * IEEE80211_RADIOTAP_RATE uint8_t 500kb/s d118 1 a118 1 * IEEE80211_RADIOTAP_DB_ANTSIGNAL uint8_t decibel (dB) d123 1 a123 1 * IEEE80211_RADIOTAP_DB_ANTNOISE uint8_t decibel (dB) d128 1 a128 1 * IEEE80211_RADIOTAP_LOCK_QUALITY uint16_t unitless d135 1 a135 1 * IEEE80211_RADIOTAP_TX_ATTENUATION uint16_t unitless d141 1 a141 1 * IEEE80211_RADIOTAP_DB_TX_ATTENUATION uint16_t decibels (dB) d154 1 a154 1 * IEEE80211_RADIOTAP_FLAGS uint8_t bitmap d159 1 a159 1 * IEEE80211_RADIOTAP_ANTENNA uint8_t antenna index d164 1 a164 1 * IEEE80211_RADIOTAP_RX_FLAGS uint16_t bitmap d168 1 a168 1 * IEEE80211_RADIOTAP_TX_FLAGS uint16_t bitmap d172 1 a172 1 * IEEE80211_RADIOTAP_RTS_RETRIES uint8_t data d176 1 a176 1 * IEEE80211_RADIOTAP_DATA_RETRIES uint8_t data a178 11 * * IEEE80211_RADIOTAP_XCHANNEL uint32_t bitmap * uint16_t MHz * uint8_t channel number * int8_t .5 dBm * * Extended channel specification: flags (see below) followed by * frequency in MHz, the corresponding IEEE channel number, and * finally the maximum regulatory transmit power cap in .5 dBm * units. This property supersedes IEEE80211_RADIOTAP_CHANNEL * and only one of the two should be present. a198 1 IEEE80211_RADIOTAP_XCHANNEL = 18, d202 12 a233 1 #define IEEE80211_RADIOTAP_F_SHORTGI 0x80 /* HT short GI */ @ 1.20 log @Replace most gcc-specific __attribute__ uses with BSD-style sys/cdef.h preprocessor macros. @ text @d2 1 a2 1 /* $NetBSD: ieee80211_radiotap.h,v 1.19 2008/07/28 17:54:02 christos Exp $ */ a14 3 * 3. The name of David Young may not be used to endorse or promote * products derived from this software without specific prior * written permission. @ 1.19 log @- trailing commas in enums - arithmetic on enums needs cast from Anon Ymous @ text @d2 1 a2 1 /* $NetBSD: ieee80211_radiotap.h,v 1.18 2007/03/26 21:22:35 dyoung Exp $ */ d84 1 a84 1 } __attribute__((__packed__, __aligned__(8))); @ 1.18 log @Reference the right flag, s/IEEE80211_RADIOTAP_F_FCS/IEEE80211_RADIOTAP_F_BADFCS/. @ text @d2 1 a2 1 /* $NetBSD: ieee80211_radiotap.h,v 1.17 2007/03/26 04:32:14 dyoung Exp $ */ d202 1 a202 1 IEEE80211_RADIOTAP_EXT = 31, @ 1.18.34.1 log @sync with head. @ text @d2 1 a2 1 /* $NetBSD: ieee80211_radiotap.h,v 1.18 2007/03/26 21:22:35 dyoung Exp $ */ d84 1 a84 1 } __packed __aligned(8); d202 1 a202 1 IEEE80211_RADIOTAP_EXT = 31 @ 1.18.34.2 log @sync with head @ text @d2 1 a2 1 /* $NetBSD: ieee80211_radiotap.h,v 1.18.34.1 2009/05/04 08:14:16 yamt Exp $ */ d15 3 @ 1.18.40.1 log @Sync with HEAD. @ text @d2 1 a2 1 /* $NetBSD: ieee80211_radiotap.h,v 1.20 2008/09/08 23:36:55 gmcgarry Exp $ */ d84 1 a84 1 } __packed __aligned(8); d202 1 a202 1 IEEE80211_RADIOTAP_EXT = 31 @ 1.18.30.1 log @Sync with HEAD. @ text @d2 1 a2 1 /* $NetBSD$ */ d84 1 a84 1 } __packed __aligned(8); d202 1 a202 1 IEEE80211_RADIOTAP_EXT = 31 @ 1.18.36.1 log @Sync with wrstuden-revivesa-base-2. @ text @d2 1 a2 1 /* $NetBSD: ieee80211_radiotap.h,v 1.18 2007/03/26 21:22:35 dyoung Exp $ */ d202 1 a202 1 IEEE80211_RADIOTAP_EXT = 31 @ 1.18.36.2 log @Merge in changes between wrstuden-revivesa-base-2 and wrstuden-revivesa-base-3. @ text @d2 1 a2 1 /* $NetBSD: ieee80211_radiotap.h,v 1.18.36.1 2008/09/18 04:37:00 wrstuden Exp $ */ d84 1 a84 1 } __packed __aligned(8); @ 1.18.38.1 log @Sync with head. @ text @d2 1 a2 1 /* $NetBSD: ieee80211_radiotap.h,v 1.19 2008/07/28 17:54:02 christos Exp $ */ d202 1 a202 1 IEEE80211_RADIOTAP_EXT = 31 @ 1.18.28.1 log @Beginning of a sync with net80211 from FreeBSD. Lots to do. Sources taken from 2008-02-22. @ text @d1 1 a1 1 /* $FreeBSD: src/sys/net80211/ieee80211_radiotap.h,v 1.11 2007/12/13 01:23:40 sam Exp $ */ d55 2 a56 6 #define IEEE80211_RADIOTAP_HDRLEN 64 /* XXX deprecated */ /* * The radio capture header precedes the 802.11 header. * * Note well: all radiotap fields are little-endian. d66 1 a66 1 uint8_t it_version; /* Version 0. Only increases d71 2 a72 2 uint8_t it_pad; uint16_t it_len; /* length of the whole d77 1 a77 1 uint32_t it_present; /* A bitmap telling which d90 1 a90 1 * IEEE80211_RADIOTAP_TSFT uint64_t microseconds d96 1 a96 1 * IEEE80211_RADIOTAP_CHANNEL 2 x uint16_t MHz, bitmap d100 1 a100 1 * IEEE80211_RADIOTAP_FHSS uint16_t see below d105 1 a105 1 * IEEE80211_RADIOTAP_RATE uint8_t 500kb/s or index d107 1 a107 2 * Tx/Rx data rate. If bit 0x80 is set then it represents an * an MCS index and not an IEEE rate. d121 1 a121 1 * IEEE80211_RADIOTAP_DB_ANTSIGNAL uint8_t decibel (dB) d126 1 a126 1 * IEEE80211_RADIOTAP_DB_ANTNOISE uint8_t decibel (dB) d131 1 a131 1 * IEEE80211_RADIOTAP_LOCK_QUALITY uint16_t unitless d138 1 a138 1 * IEEE80211_RADIOTAP_TX_ATTENUATION uint16_t unitless d144 1 a144 1 * IEEE80211_RADIOTAP_DB_TX_ATTENUATION uint16_t decibels (dB) d157 1 a157 1 * IEEE80211_RADIOTAP_FLAGS uint8_t bitmap d162 1 a162 1 * IEEE80211_RADIOTAP_ANTENNA uint8_t antenna index a181 10 * IEEE80211_RADIOTAP_XCHANNEL uint32_t bitmap * uint16_t MHz * uint8_t channel number * int8_t .5 dBm * * Extended channel specification: flags (see below) followed by * frequency in MHz, the corresponding IEEE channel number, and * finally the maximum regulatory transmit power cap in .5 dBm * units. This property supersedes IEEE80211_RADIOTAP_CHANNEL * and only one of the two should be present. a201 1 IEEE80211_RADIOTAP_XCHANNEL = 18, d206 9 a214 13 /* channel attributes */ #define IEEE80211_CHAN_TURBO 0x00000010 /* Turbo channel */ #define IEEE80211_CHAN_CCK 0x00000020 /* CCK channel */ #define IEEE80211_CHAN_OFDM 0x00000040 /* OFDM channel */ #define IEEE80211_CHAN_2GHZ 0x00000080 /* 2 GHz spectrum channel. */ #define IEEE80211_CHAN_5GHZ 0x00000100 /* 5 GHz spectrum channel */ #define IEEE80211_CHAN_PASSIVE 0x00000200 /* Only passive scan allowed */ #define IEEE80211_CHAN_DYN 0x00000400 /* Dynamic CCK-OFDM channel */ #define IEEE80211_CHAN_GFSK 0x00000800 /* GFSK channel (FHSS PHY) */ #define IEEE80211_CHAN_GSM 0x00001000 /* 900 MHz spectrum channel */ #define IEEE80211_CHAN_STURBO 0x00002000 /* 11a static turbo channel only */ #define IEEE80211_CHAN_HALF 0x00004000 /* Half rate channel */ #define IEEE80211_CHAN_QUARTER 0x00008000 /* Quarter rate channel */ a236 1 #define IEEE80211_RADIOTAP_F_SHORTGI 0x80 /* HT short GI */ @ 1.17 log @Define four new radiotap fields per discussions with John Bicket, Sam Leffler, and others: IEEE80211_RADIOTAP_RX_FLAGS = 14, IEEE80211_RADIOTAP_TX_FLAGS = 15, IEEE80211_RADIOTAP_RTS_RETRIES = 16, IEEE80211_RADIOTAP_DATA_RETRIES = 17, I describe the fields in the manual page and in comments in the header file (cross-referenced by the manual page). @ text @d2 1 a2 1 /* $NetBSD: ieee80211_radiotap.h,v 1.16 2007/01/06 05:51:15 dyoung Exp $ */ d242 1 a242 1 * IEEE80211_RADIOTAP_F_FCS in @ 1.16 log @Add a hint to the compiler that the radiotap header requires 8-byte alignment. This 1 helps GCC make better code for architectures such as ARM where it would otherwise do a lot of byte-loads and shifts to load a multi-byte word, and 2 ensures that the compiler will add no padding between a radiotap header and a 64-bit or narrower field that follows it. @ text @d2 1 a2 1 /* $NetBSD: ieee80211_radiotap.h,v 1.15 2006/03/12 03:22:02 dyoung Exp $ */ d166 16 d198 4 d238 16 @ 1.16.8.1 log @Sync with head. @ text @d2 1 a2 1 /* $NetBSD: ieee80211_radiotap.h,v 1.18 2007/03/26 21:22:35 dyoung Exp $ */ a165 16 * * IEEE80211_RADIOTAP_RX_FLAGS u_int16_t bitmap * * Properties of received frames. See flags defined below. * * IEEE80211_RADIOTAP_TX_FLAGS u_int16_t bitmap * * Properties of transmitted frames. See flags defined below. * * IEEE80211_RADIOTAP_RTS_RETRIES u_int8_t data * * Number of rts retries a transmitted frame used. * * IEEE80211_RADIOTAP_DATA_RETRIES u_int8_t data * * Number of unicast retries a transmitted frame used. a181 4 IEEE80211_RADIOTAP_RX_FLAGS = 14, IEEE80211_RADIOTAP_TX_FLAGS = 15, IEEE80211_RADIOTAP_RTS_RETRIES = 16, IEEE80211_RADIOTAP_DATA_RETRIES = 17, a217 16 /* For IEEE80211_RADIOTAP_RX_FLAGS */ #define IEEE80211_RADIOTAP_F_RX_BADFCS 0x0001 /* Frame failed CRC check. * * Deprecated: use the flag * IEEE80211_RADIOTAP_F_BADFCS in * the IEEE80211_RADIOTAP_FLAGS * field, instead. */ /* For IEEE80211_RADIOTAP_TX_FLAGS */ #define IEEE80211_RADIOTAP_F_TX_FAIL 0x0001 /* failed due to excessive * retries */ #define IEEE80211_RADIOTAP_F_TX_CTS 0x0002 /* used cts 'protection' */ #define IEEE80211_RADIOTAP_F_TX_RTS 0x0004 /* used rts/cts handshake */ @ 1.16.2.1 log @sync with head. @ text @d2 1 a2 1 /* $NetBSD: ieee80211_radiotap.h,v 1.16 2007/01/06 05:51:15 dyoung Exp $ */ a165 16 * * IEEE80211_RADIOTAP_RX_FLAGS u_int16_t bitmap * * Properties of received frames. See flags defined below. * * IEEE80211_RADIOTAP_TX_FLAGS u_int16_t bitmap * * Properties of transmitted frames. See flags defined below. * * IEEE80211_RADIOTAP_RTS_RETRIES u_int8_t data * * Number of rts retries a transmitted frame used. * * IEEE80211_RADIOTAP_DATA_RETRIES u_int8_t data * * Number of unicast retries a transmitted frame used. a181 4 IEEE80211_RADIOTAP_RX_FLAGS = 14, IEEE80211_RADIOTAP_TX_FLAGS = 15, IEEE80211_RADIOTAP_RTS_RETRIES = 16, IEEE80211_RADIOTAP_DATA_RETRIES = 17, a217 16 /* For IEEE80211_RADIOTAP_RX_FLAGS */ #define IEEE80211_RADIOTAP_F_RX_BADFCS 0x0001 /* Frame failed CRC check. * * Deprecated: use the flag * IEEE80211_RADIOTAP_F_BADFCS in * the IEEE80211_RADIOTAP_FLAGS * field, instead. */ /* For IEEE80211_RADIOTAP_TX_FLAGS */ #define IEEE80211_RADIOTAP_F_TX_FAIL 0x0001 /* failed due to excessive * retries */ #define IEEE80211_RADIOTAP_F_TX_CTS 0x0002 /* used cts 'protection' */ #define IEEE80211_RADIOTAP_F_TX_RTS 0x0004 /* used rts/cts handshake */ @ 1.16.6.1 log @Sync with head. @ text @d2 1 a2 1 /* $NetBSD: ieee80211_radiotap.h,v 1.16 2007/01/06 05:51:15 dyoung Exp $ */ a165 16 * * IEEE80211_RADIOTAP_RX_FLAGS u_int16_t bitmap * * Properties of received frames. See flags defined below. * * IEEE80211_RADIOTAP_TX_FLAGS u_int16_t bitmap * * Properties of transmitted frames. See flags defined below. * * IEEE80211_RADIOTAP_RTS_RETRIES u_int8_t data * * Number of rts retries a transmitted frame used. * * IEEE80211_RADIOTAP_DATA_RETRIES u_int8_t data * * Number of unicast retries a transmitted frame used. a181 4 IEEE80211_RADIOTAP_RX_FLAGS = 14, IEEE80211_RADIOTAP_TX_FLAGS = 15, IEEE80211_RADIOTAP_RTS_RETRIES = 16, IEEE80211_RADIOTAP_DATA_RETRIES = 17, a217 16 /* For IEEE80211_RADIOTAP_RX_FLAGS */ #define IEEE80211_RADIOTAP_F_RX_BADFCS 0x0001 /* Frame failed CRC check. * * Deprecated: use the flag * IEEE80211_RADIOTAP_F_BADFCS in * the IEEE80211_RADIOTAP_FLAGS * field, instead. */ /* For IEEE80211_RADIOTAP_TX_FLAGS */ #define IEEE80211_RADIOTAP_F_TX_FAIL 0x0001 /* failed due to excessive * retries */ #define IEEE80211_RADIOTAP_F_TX_CTS 0x0002 /* used cts 'protection' */ #define IEEE80211_RADIOTAP_F_TX_RTS 0x0004 /* used rts/cts handshake */ @ 1.16.10.1 log @Pullup to -current @ text @d2 1 a2 1 /* $NetBSD: ieee80211_radiotap.h,v 1.16 2007/01/06 05:51:15 dyoung Exp $ */ a165 16 * * IEEE80211_RADIOTAP_RX_FLAGS u_int16_t bitmap * * Properties of received frames. See flags defined below. * * IEEE80211_RADIOTAP_TX_FLAGS u_int16_t bitmap * * Properties of transmitted frames. See flags defined below. * * IEEE80211_RADIOTAP_RTS_RETRIES u_int8_t data * * Number of rts retries a transmitted frame used. * * IEEE80211_RADIOTAP_DATA_RETRIES u_int8_t data * * Number of unicast retries a transmitted frame used. a181 4 IEEE80211_RADIOTAP_RX_FLAGS = 14, IEEE80211_RADIOTAP_TX_FLAGS = 15, IEEE80211_RADIOTAP_RTS_RETRIES = 16, IEEE80211_RADIOTAP_DATA_RETRIES = 17, a217 16 /* For IEEE80211_RADIOTAP_RX_FLAGS */ #define IEEE80211_RADIOTAP_F_RX_BADFCS 0x0001 /* Frame failed CRC check. * * Deprecated: use the flag * IEEE80211_RADIOTAP_F_BADFCS in * the IEEE80211_RADIOTAP_FLAGS * field, instead. */ /* For IEEE80211_RADIOTAP_TX_FLAGS */ #define IEEE80211_RADIOTAP_F_TX_FAIL 0x0001 /* failed due to excessive * retries */ #define IEEE80211_RADIOTAP_F_TX_CTS 0x0002 /* used cts 'protection' */ #define IEEE80211_RADIOTAP_F_TX_RTS 0x0004 /* used rts/cts handshake */ @ 1.15 log @Note in radiotap header file and manual page that radiotap fields are little-endian. Fix wi(4) and atw(4) to reflect this fact. @ text @d2 1 a2 1 /* $NetBSD: ieee80211_radiotap.h,v 1.14 2005/12/10 23:26:35 elad Exp $ */ d84 1 a84 1 } __attribute__((__packed__)); @ 1.15.10.1 log @Sync with head. @ text @d2 1 a2 1 /* $NetBSD: ieee80211_radiotap.h,v 1.16 2007/01/06 05:51:15 dyoung Exp $ */ d84 1 a84 1 } __attribute__((__packed__, __aligned__(8))); @ 1.14 log @Multiple inclusion protection, as suggested by christos@@ on tech-kern@@ few days ago. @ text @d2 1 a2 1 /* $NetBSD: ieee80211_radiotap.h,v 1.13 2005/12/08 20:13:27 dyoung Exp $ */ d35 3 a37 3 /* A generic radio capture format is desirable. There is one for * Linux, but it is neither rigidly defined (there were not even * units given for some fields) nor easily extensible. d39 1 a39 1 * I suggest the following extensible radio capture format. It is d60 5 a64 1 /* The radio capture header precedes the 802.11 header. */ d86 2 a87 1 /* Name Data type Units @ 1.14.4.1 log @sync with head @ text @d2 1 a2 1 /* $NetBSD: ieee80211_radiotap.h,v 1.15 2006/03/12 03:22:02 dyoung Exp $ */ d35 3 a37 3 /* A generic radio capture format is desirable. It must be * rigidly defined (e.g., units for fields should be given), * and easily extensible. d39 1 a39 1 * The following is an extensible radio capture format. It is d60 1 a60 5 /* * The radio capture header precedes the 802.11 header. * * Note well: all radiotap fields are little-endian. */ d82 1 a82 2 /* * Name Data type Units @ 1.14.6.1 log @Sync with head. @ text @d2 1 a2 1 /* $NetBSD: ieee80211_radiotap.h,v 1.15 2006/03/12 03:22:02 dyoung Exp $ */ d35 3 a37 3 /* A generic radio capture format is desirable. It must be * rigidly defined (e.g., units for fields should be given), * and easily extensible. d39 1 a39 1 * The following is an extensible radio capture format. It is d60 1 a60 5 /* * The radio capture header precedes the 802.11 header. * * Note well: all radiotap fields are little-endian. */ d82 1 a82 2 /* * Name Data type Units @ 1.14.10.1 log @sync with head. @ text @d2 1 a2 1 /* $NetBSD: ieee80211_radiotap.h,v 1.15 2006/03/12 03:22:02 dyoung Exp $ */ d35 3 a37 3 /* A generic radio capture format is desirable. It must be * rigidly defined (e.g., units for fields should be given), * and easily extensible. d39 1 a39 1 * The following is an extensible radio capture format. It is d60 1 a60 5 /* * The radio capture header precedes the 802.11 header. * * Note well: all radiotap fields are little-endian. */ d82 1 a82 2 /* * Name Data type Units @ 1.14.8.1 log @sync with head. @ text @d2 1 a2 1 /* $NetBSD: ieee80211_radiotap.h,v 1.14 2005/12/10 23:26:35 elad Exp $ */ d35 3 a37 3 /* A generic radio capture format is desirable. It must be * rigidly defined (e.g., units for fields should be given), * and easily extensible. d39 1 a39 1 * The following is an extensible radio capture format. It is d60 1 a60 5 /* * The radio capture header precedes the 802.11 header. * * Note well: all radiotap fields are little-endian. */ d82 1 a82 2 /* * Name Data type Units @ 1.13 log @Add flag IEEE80211_RADIOTAP_F_BADFCS for packets whose checksum doesn't match their contents. While I'm here, remove the mention of field IEEE80211_RADIOTAP_FCS, which wasn't adopted. @ text @d2 1 a2 1 /* $NetBSD: ieee80211_radiotap.h,v 1.12 2005/07/26 22:52:48 dyoung Exp $ */ d32 2 a33 2 #ifndef _NET_IF_IEEE80211RADIOTAP_H_ #define _NET_IF_IEEE80211RADIOTAP_H_ d213 1 a213 1 #endif /* _NET_IF_IEEE80211RADIOTAP_H_ */ @ 1.12 log @Resolve conflicts. @ text @d2 1 a2 1 /* $NetBSD: ieee80211_radiotap.h,v 1.10 2005/01/04 00:34:58 dyoung Exp $ */ a160 4 * * IEEE80211_RADIOTAP_FCS u_int32_t data * * FCS from frame in network byte order. d211 1 @ 1.11 log @Resolve conflicts in importation of 18-May-2005 ath(4) / net80211(9) from FreeBSD. Introduce compatibility shims (sys/dev/ic/ath_netbsd.[ch], sys/net80211/ieee80211_netbsd.[ch]). Update drivers (an, atu, atw, awi, ipw, iwi, rtw, wi) for the new net80211(9) API. @ text @@ 1.11.2.1 log @sync with head. @ text @d2 1 a2 1 /* $NetBSD: ieee80211_radiotap.h,v 1.11 2005/06/22 06:16:02 dyoung Exp $ */ d32 2 a33 2 #ifndef _NET80211_IEEE80211_RADIOTAP_H_ #define _NET80211_IEEE80211_RADIOTAP_H_ d35 3 a37 3 /* A generic radio capture format is desirable. It must be * rigidly defined (e.g., units for fields should be given), * and easily extensible. d39 1 a39 1 * The following is an extensible radio capture format. It is d60 1 a60 5 /* * The radio capture header precedes the 802.11 header. * * Note well: all radiotap fields are little-endian. */ d82 1 a82 2 /* * Name Data type Units d161 4 a214 1 #define IEEE80211_RADIOTAP_F_BADFCS 0x40 /* does not pass FCS check */ d216 1 a216 1 #endif /* !_NET80211_IEEE80211_RADIOTAP_H_ */ @ 1.11.2.2 log @sync with head. @ text @d2 1 a2 1 /* $NetBSD: ieee80211_radiotap.h,v 1.11.2.1 2006/06/21 15:10:46 yamt Exp $ */ d84 1 a84 1 } __attribute__((__packed__, __aligned__(8))); @ 1.11.2.3 log @sync with head. @ text @d2 1 a2 1 /* $NetBSD: ieee80211_radiotap.h,v 1.11.2.2 2007/02/26 09:11:40 yamt Exp $ */ a165 16 * * IEEE80211_RADIOTAP_RX_FLAGS u_int16_t bitmap * * Properties of received frames. See flags defined below. * * IEEE80211_RADIOTAP_TX_FLAGS u_int16_t bitmap * * Properties of transmitted frames. See flags defined below. * * IEEE80211_RADIOTAP_RTS_RETRIES u_int8_t data * * Number of rts retries a transmitted frame used. * * IEEE80211_RADIOTAP_DATA_RETRIES u_int8_t data * * Number of unicast retries a transmitted frame used. a181 4 IEEE80211_RADIOTAP_RX_FLAGS = 14, IEEE80211_RADIOTAP_TX_FLAGS = 15, IEEE80211_RADIOTAP_RTS_RETRIES = 16, IEEE80211_RADIOTAP_DATA_RETRIES = 17, a217 16 /* For IEEE80211_RADIOTAP_RX_FLAGS */ #define IEEE80211_RADIOTAP_F_RX_BADFCS 0x0001 /* Frame failed CRC check. * * Deprecated: use the flag * IEEE80211_RADIOTAP_F_BADFCS in * the IEEE80211_RADIOTAP_FLAGS * field, instead. */ /* For IEEE80211_RADIOTAP_TX_FLAGS */ #define IEEE80211_RADIOTAP_F_TX_FAIL 0x0001 /* failed due to excessive * retries */ #define IEEE80211_RADIOTAP_F_TX_CTS 0x0002 /* used cts 'protection' */ #define IEEE80211_RADIOTAP_F_TX_RTS 0x0004 /* used rts/cts handshake */ @ 1.10 log @Fix a typo. @ text @d1 2 a2 2 /* $FreeBSD: src/sys/net80211/ieee80211_radiotap.h,v 1.3 2004/04/05 22:13:21 sam Exp $ */ /* $NetBSD: ieee80211_radiotap.h,v 1.9 2004/06/06 04:13:28 dyoung Exp $ */ d49 1 a49 1 #ifdef _KERNEL d53 1 a53 1 #endif /* _KERNEL */ a180 1 IEEE80211_RADIOTAP_FCS = 14, d210 5 @ 1.9 log @Define IEEE80211_RADIOTAP_HDRLEN, the length of a radiotap header. @ text @d2 1 a2 1 /* $NetBSD: ieee80211_radiotap.h,v 1.8 2004/04/30 22:22:53 dyoung Exp $ */ d126 1 a126 1 * IEEE80211_RADIOTAP_BARKER_CODE_LOCK u_int16_t unitless @ 1.9.2.1 log @file ieee80211_radiotap.h was added on branch ktrace-lwp on 2004-08-03 10:54:21 +0000 @ text @d1 212 @ 1.9.2.2 log @Sync with HEAD @ text @a0 212 /* $FreeBSD: src/sys/net80211/ieee80211_radiotap.h,v 1.3 2004/04/05 22:13:21 sam Exp $ */ /* $NetBSD: ieee80211_radiotap.h,v 1.9.2.1 2004/08/03 10:54:21 skrll Exp $ */ /*- * Copyright (c) 2003, 2004 David Young. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in the * documentation and/or other materials provided with the distribution. * 3. The name of David Young may not be used to endorse or promote * products derived from this software without specific prior * written permission. * * THIS SOFTWARE IS PROVIDED BY DAVID YOUNG ``AS IS'' AND ANY * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL DAVID * YOUNG BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED * TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY * OF SUCH DAMAGE. */ #ifndef _NET_IF_IEEE80211RADIOTAP_H_ #define _NET_IF_IEEE80211RADIOTAP_H_ /* A generic radio capture format is desirable. There is one for * Linux, but it is neither rigidly defined (there were not even * units given for some fields) nor easily extensible. * * I suggest the following extensible radio capture format. It is * based on a bitmap indicating which fields are present. * * I am trying to describe precisely what the application programmer * should expect in the following, and for that reason I tell the * units and origin of each measurement (where it applies), or else I * use sufficiently weaselly language ("is a monotonically nondecreasing * function of...") that I cannot set false expectations for lawyerly * readers. */ #ifdef _KERNEL #ifndef DLT_IEEE802_11_RADIO #define DLT_IEEE802_11_RADIO 127 /* 802.11 plus WLAN header */ #endif #endif /* _KERNEL */ /* XXX tcpdump/libpcap do not tolerate variable-length headers, * yet, so we pad every radiotap header to 64 bytes. Ugh. */ #define IEEE80211_RADIOTAP_HDRLEN 64 /* The radio capture header precedes the 802.11 header. */ struct ieee80211_radiotap_header { u_int8_t it_version; /* Version 0. Only increases * for drastic changes, * introduction of compatible * new fields does not count. */ u_int8_t it_pad; u_int16_t it_len; /* length of the whole * header in bytes, including * it_version, it_pad, * it_len, and data fields. */ u_int32_t it_present; /* A bitmap telling which * fields are present. Set bit 31 * (0x80000000) to extend the * bitmap by another 32 bits. * Additional extensions are made * by setting bit 31. */ } __attribute__((__packed__)); /* Name Data type Units * ---- --------- ----- * * IEEE80211_RADIOTAP_TSFT u_int64_t microseconds * * Value in microseconds of the MAC's 64-bit 802.11 Time * Synchronization Function timer when the first bit of the * MPDU arrived at the MAC. For received frames, only. * * IEEE80211_RADIOTAP_CHANNEL 2 x u_int16_t MHz, bitmap * * Tx/Rx frequency in MHz, followed by flags (see below). * * IEEE80211_RADIOTAP_FHSS u_int16_t see below * * For frequency-hopping radios, the hop set (first byte) * and pattern (second byte). * * IEEE80211_RADIOTAP_RATE u_int8_t 500kb/s * * Tx/Rx data rate * * IEEE80211_RADIOTAP_DBM_ANTSIGNAL int8_t decibels from * one milliwatt (dBm) * * RF signal power at the antenna, decibel difference from * one milliwatt. * * IEEE80211_RADIOTAP_DBM_ANTNOISE int8_t decibels from * one milliwatt (dBm) * * RF noise power at the antenna, decibel difference from one * milliwatt. * * IEEE80211_RADIOTAP_DB_ANTSIGNAL u_int8_t decibel (dB) * * RF signal power at the antenna, decibel difference from an * arbitrary, fixed reference. * * IEEE80211_RADIOTAP_DB_ANTNOISE u_int8_t decibel (dB) * * RF noise power at the antenna, decibel difference from an * arbitrary, fixed reference point. * * IEEE80211_RADIOTAP_BARKER_CODE_LOCK u_int16_t unitless * * Quality of Barker code lock. Unitless. Monotonically * nondecreasing with "better" lock strength. Called "Signal * Quality" in datasheets. (Is there a standard way to measure * this?) * * IEEE80211_RADIOTAP_TX_ATTENUATION u_int16_t unitless * * Transmit power expressed as unitless distance from max * power set at factory calibration. 0 is max power. * Monotonically nondecreasing with lower power levels. * * IEEE80211_RADIOTAP_DB_TX_ATTENUATION u_int16_t decibels (dB) * * Transmit power expressed as decibel distance from max power * set at factory calibration. 0 is max power. Monotonically * nondecreasing with lower power levels. * * IEEE80211_RADIOTAP_DBM_TX_POWER int8_t decibels from * one milliwatt (dBm) * * Transmit power expressed as dBm (decibels from a 1 milliwatt * reference). This is the absolute power level measured at * the antenna port. * * IEEE80211_RADIOTAP_FLAGS u_int8_t bitmap * * Properties of transmitted and received frames. See flags * defined below. * * IEEE80211_RADIOTAP_ANTENNA u_int8_t antenna index * * Unitless indication of the Rx/Tx antenna for this packet. * The first antenna is antenna 0. * * IEEE80211_RADIOTAP_FCS u_int32_t data * * FCS from frame in network byte order. */ enum ieee80211_radiotap_type { IEEE80211_RADIOTAP_TSFT = 0, IEEE80211_RADIOTAP_FLAGS = 1, IEEE80211_RADIOTAP_RATE = 2, IEEE80211_RADIOTAP_CHANNEL = 3, IEEE80211_RADIOTAP_FHSS = 4, IEEE80211_RADIOTAP_DBM_ANTSIGNAL = 5, IEEE80211_RADIOTAP_DBM_ANTNOISE = 6, IEEE80211_RADIOTAP_LOCK_QUALITY = 7, IEEE80211_RADIOTAP_TX_ATTENUATION = 8, IEEE80211_RADIOTAP_DB_TX_ATTENUATION = 9, IEEE80211_RADIOTAP_DBM_TX_POWER = 10, IEEE80211_RADIOTAP_ANTENNA = 11, IEEE80211_RADIOTAP_DB_ANTSIGNAL = 12, IEEE80211_RADIOTAP_DB_ANTNOISE = 13, IEEE80211_RADIOTAP_FCS = 14, IEEE80211_RADIOTAP_EXT = 31, }; #ifndef _KERNEL /* Channel flags. */ #define IEEE80211_CHAN_TURBO 0x0010 /* Turbo channel */ #define IEEE80211_CHAN_CCK 0x0020 /* CCK channel */ #define IEEE80211_CHAN_OFDM 0x0040 /* OFDM channel */ #define IEEE80211_CHAN_2GHZ 0x0080 /* 2 GHz spectrum channel. */ #define IEEE80211_CHAN_5GHZ 0x0100 /* 5 GHz spectrum channel */ #define IEEE80211_CHAN_PASSIVE 0x0200 /* Only passive scan allowed */ #define IEEE80211_CHAN_DYN 0x0400 /* Dynamic CCK-OFDM channel */ #define IEEE80211_CHAN_GFSK 0x0800 /* GFSK channel (FHSS PHY) */ #endif /* !_KERNEL */ /* For IEEE80211_RADIOTAP_FLAGS */ #define IEEE80211_RADIOTAP_F_CFP 0x01 /* sent/received * during CFP */ #define IEEE80211_RADIOTAP_F_SHORTPRE 0x02 /* sent/received * with short * preamble */ #define IEEE80211_RADIOTAP_F_WEP 0x04 /* sent/received * with WEP encryption */ #define IEEE80211_RADIOTAP_F_FRAG 0x08 /* sent/received * with fragmentation */ #endif /* _NET_IF_IEEE80211RADIOTAP_H_ */ @ 1.9.2.3 log @Sync with HEAD. @ text @d2 1 a2 1 /* $NetBSD: ieee80211_radiotap.h,v 1.9.2.2 2004/09/18 14:54:39 skrll Exp $ */ @ 1.9.2.4 log @Fix the sync with head I botched. @ text @d2 1 a2 1 /* $NetBSD: ieee80211_radiotap.h,v 1.9.2.3 2004/09/21 13:36:55 skrll Exp $ */ @ 1.9.2.5 log @Sync with HEAD. @ text @d2 1 a2 1 /* $NetBSD: ieee80211_radiotap.h,v 1.9.2.4 2005/01/17 19:32:39 skrll Exp $ */ d126 1 a126 1 * IEEE80211_RADIOTAP_LOCK_QUALITY u_int16_t unitless @ 1.9.2.6 log @Sync with HEAD. Here we go again... @ text @d1 2 a2 2 /* $FreeBSD: src/sys/net80211/ieee80211_radiotap.h,v 1.5 2005/01/22 20:12:05 sam Exp $ */ /* $NetBSD: ieee80211_radiotap.h,v 1.9.2.5 2005/11/10 14:10:51 skrll Exp $ */ d49 1 a49 1 #if defined(__KERNEL__) || defined(_KERNEL) d53 1 a53 1 #endif /* defined(__KERNEL__) || defined(_KERNEL) */ d181 1 a210 5 #define IEEE80211_RADIOTAP_F_FCS 0x10 /* frame includes FCS */ #define IEEE80211_RADIOTAP_F_DATAPAD 0x20 /* frame has padding between * 802.11 header and payload * (to 32-bit boundary) */ @ 1.9.2.7 log @Sync with head. @ text @d2 1 a2 1 /* $NetBSD: ieee80211_radiotap.h,v 1.9.2.6 2005/12/11 10:29:22 christos Exp $ */ d32 2 a33 2 #ifndef _NET80211_IEEE80211_RADIOTAP_H_ #define _NET80211_IEEE80211_RADIOTAP_H_ d161 4 a214 1 #define IEEE80211_RADIOTAP_F_BADFCS 0x40 /* does not pass FCS check */ d216 1 a216 1 #endif /* !_NET80211_IEEE80211_RADIOTAP_H_ */ @ 1.8 log @Sync with FreeBSD. Some apps get confused when the FCS comes at the end of the tapped frame, so stick it into the radiotap header. @ text @d2 1 a2 1 /* $NetBSD: ieee80211_radiotap.h,v 1.1.1.2 2004/04/29 03:54:40 dyoung Exp $ */ d55 5 @ 1.7 log @Add missing flags IEEE80211_CHAN_DYN and IEEE80211_CHAN_GFSK, needed by userland programs to interpret radiotap channel indications. @ text @d1 2 a2 2 /* $FreeBSD: src/sys/net80211/ieee80211_radiotap.h,v 1.1 2003/09/05 22:19:32 sam Exp $ */ /* $NetBSD: ieee80211_radiotap.h,v 1.6 2004/03/29 04:04:48 dyoung Exp $ */ d156 4 d176 2 a177 1 IEEE80211_RADIOTAP_EXT = 31 @ 1.6 log @Whitespace nits, esp. change #define to #define. @ text @d2 1 a2 1 /* $NetBSD: ieee80211_radiotap.h,v 1.5 2003/12/08 04:48:58 dyoung Exp $ */ d183 2 @ 1.5 log @Forget the tcpdump $Header$. @ text @d2 1 a2 1 /* $NetBSD: ieee80211_radiotap.h,v 1.4 2003/12/07 04:49:17 dyoung Exp $ */ d177 6 a182 6 #define IEEE80211_CHAN_TURBO 0x0010 /* Turbo channel */ #define IEEE80211_CHAN_CCK 0x0020 /* CCK channel */ #define IEEE80211_CHAN_OFDM 0x0040 /* OFDM channel */ #define IEEE80211_CHAN_2GHZ 0x0080 /* 2 GHz spectrum channel. */ #define IEEE80211_CHAN_5GHZ 0x0100 /* 5 GHz spectrum channel */ #define IEEE80211_CHAN_PASSIVE 0x0200 /* Only passive scan allowed */ @ 1.4 log @Updates to 802.11 radiotap. The _DB_ flags were used everywhere to denote a signed dBm Rx power, so rename them to _DBM_ and change the signedness. Add new _DB_ flags for unsigned Rx power measured from an arbitrary reference. Try to synchronize net80211/ieee80211_radiotap.h with my tcpdump sources (which public tcpdump has not seen, yet) and with FreeBSD. @ text @d2 1 a2 2 /* $NetBSD: ieee80211_radiotap.h,v 1.3 2003/11/16 09:02:42 dyoung Exp $ */ /* $Header$ */ @ 1.3 log @Add data-link type DLT_IEEE802_11_RADIO to wi and atw. DLT_IEEE802_11_RADIO lets you monitor radio stats like received signal strength, which diversity antenna was used, channel/frequency, modulation, and data rate. @ text @d2 2 a3 1 /* $NetBSD: ieee80211_radiotap.h,v 1.2 2003/09/14 01:14:55 dyoung Exp $ */ d50 1 d54 1 d96 1 a96 1 * IEEE80211_RADIOTAP_RATE u_int16_t 500kb/s d100 2 a101 1 * IEEE80211_RADIOTAP_DB_ANTSIGNAL int8_t decibel (dB) d103 2 a104 2 * RF signal power at the antenna, measured from a fixed, * arbitrary reference point. d106 2 a107 1 * IEEE80211_RADIOTAP_DB_ANTNOISE int8_t decibel (dB) d109 12 a120 2 * RF noise power at the antenna in decibels from an arbitrary, * fixed reference point. d141 2 a142 2 * IEEE80211_RADIOTAP_DBM_TX_POWER u_int16_t decibels from * milliwatt (dBm) d164 2 a165 2 IEEE80211_RADIOTAP_DB_ANTSIGNAL = 5, IEEE80211_RADIOTAP_DB_ANTNOISE = 6, d171 2 d175 10 @ 1.2 log @Insert RCSIDs. @ text @d2 1 a2 1 /* $NetBSD$ */ d58 1 a58 1 * new LTVs does not count. d64 1 a64 1 * it_len, and LTVs. d73 1 a73 1 }; d78 7 a84 1 * IEEE80211_RADIOTAP_CHANNEL u_int8_t MHz d86 1 a86 1 * Tx/Rx channel number (for DSSS/OFDM/PBCC PHY) d93 3 a95 1 * IEEE80211_RADIOTAP_RATE u_int8_t .5Mb/s d97 1 a97 1 * IEEE Tx/Rx data rate cookie (including basic rate flag) a98 2 * IEEE80211_RADIOTAP_DB_ANTSIGNAL int16_t decibel (dB) * d102 1 a102 1 * IEEE80211_RADIOTAP_DB_ANTNOISE int16_t decibel (dB) d133 1 a133 8 * IEEE80211_RADIOTAP_TSFT u_int64_t microseconds * * Value in microseconds of the MAC's 64-bit 802.11 Time * Synchronization Function timer when the first bit of the * MPDU arrived at the MAC. For received frames, only. * Little-endian byte order. * * IEEE80211_RADIOTAP_FLAGS u_int16_t bitmap d138 1 a138 9 * IEEE80211_RADIOTAP_TIME u_int32_t microseconds * * For radios that provide it: packet arrival time in * microseconds. Prism hardware will provide this, but it is * not known whether it marks the first or the last bit of * the frame. Nor is it known where that bit has arrived * (antenna, modem, MAC?) when the time is measured. * * IEEE80211_RADIOTAP_ANTENNA u_int16_t antenna index d144 1 a144 1 IEEE80211_RADIOTAP_PAD = 0, d156 1 a156 3 IEEE80211_RADIOTAP_TSFT = 12, IEEE80211_RADIOTAP_EXT = 31, IEEE80211_RADIOTAP_TIME = 32 d160 1 a160 1 #define IEEE80211_RADIOTAP_F_CFP 0x0001 /* sent/received d163 1 a163 1 #define IEEE80211_RADIOTAP_F_SHORTPRE 0x0002 /* sent/received d167 1 a167 1 #define IEEE80211_RADIOTAP_F_WEP 0x0004 /* sent/received d170 1 a170 1 #define IEEE80211_RADIOTAP_F_FRAG 0x0008 /* sent/received @ 1.1 log @Initial revision @ text @d2 1 a2 1 /* $NetBSD: $ */ @ 1.1.1.1 log @Bring net80211/ sources up-to-date with FreeBSD. PR: Submitted by: Reviewed by: Approved by: Obtained from: MFC after: @ text @@ 1.1.1.2 log @Import FreeBSD's net80211 of 28-apr-2004 @ text @d1 2 a2 2 /* $FreeBSD: src/sys/net80211/ieee80211_radiotap.h,v 1.3 2004/04/05 22:13:21 sam Exp $ */ /* $NetBSD: ieee80211_radiotap.h,v 1.3 2003/11/16 09:02:42 dyoung Exp $ */ a48 1 #ifdef _KERNEL a51 1 #endif /* _KERNEL */ d58 1 a58 1 * new fields does not count. d64 1 a64 1 * it_len, and data fields. d73 1 a73 1 } __attribute__((__packed__)); d78 1 a78 7 * IEEE80211_RADIOTAP_TSFT u_int64_t microseconds * * Value in microseconds of the MAC's 64-bit 802.11 Time * Synchronization Function timer when the first bit of the * MPDU arrived at the MAC. For received frames, only. * * IEEE80211_RADIOTAP_CHANNEL 2 x u_int16_t MHz, bitmap d80 1 a80 1 * Tx/Rx frequency in MHz, followed by flags (see below). d87 1 a87 15 * IEEE80211_RADIOTAP_RATE u_int8_t 500kb/s * * Tx/Rx data rate * * IEEE80211_RADIOTAP_DBM_ANTSIGNAL int8_t decibels from * one milliwatt (dBm) * * RF signal power at the antenna, decibel difference from * one milliwatt. * * IEEE80211_RADIOTAP_DBM_ANTNOISE int8_t decibels from * one milliwatt (dBm) * * RF noise power at the antenna, decibel difference from one * milliwatt. d89 1 a89 1 * IEEE80211_RADIOTAP_DB_ANTSIGNAL u_int8_t decibel (dB) d91 4 a94 2 * RF signal power at the antenna, decibel difference from an * arbitrary, fixed reference. d96 1 a96 1 * IEEE80211_RADIOTAP_DB_ANTNOISE u_int8_t decibel (dB) d98 2 a99 2 * RF noise power at the antenna, decibel difference from an * arbitrary, fixed reference point. d120 2 a121 2 * IEEE80211_RADIOTAP_DBM_TX_POWER int8_t decibels from * one milliwatt (dBm) d127 8 a134 1 * IEEE80211_RADIOTAP_FLAGS u_int8_t bitmap d139 9 a147 1 * IEEE80211_RADIOTAP_ANTENNA u_int8_t antenna index a150 4 * * IEEE80211_RADIOTAP_FCS u_int32_t data * * FCS from frame in network byte order. d153 1 a153 1 IEEE80211_RADIOTAP_TSFT = 0, d158 2 a159 2 IEEE80211_RADIOTAP_DBM_ANTSIGNAL = 5, IEEE80211_RADIOTAP_DBM_ANTNOISE = 6, d165 1 a165 3 IEEE80211_RADIOTAP_DB_ANTSIGNAL = 12, IEEE80211_RADIOTAP_DB_ANTNOISE = 13, IEEE80211_RADIOTAP_FCS = 14, d167 1 a169 12 #ifndef _KERNEL /* Channel flags. */ #define IEEE80211_CHAN_TURBO 0x0010 /* Turbo channel */ #define IEEE80211_CHAN_CCK 0x0020 /* CCK channel */ #define IEEE80211_CHAN_OFDM 0x0040 /* OFDM channel */ #define IEEE80211_CHAN_2GHZ 0x0080 /* 2 GHz spectrum channel. */ #define IEEE80211_CHAN_5GHZ 0x0100 /* 5 GHz spectrum channel */ #define IEEE80211_CHAN_PASSIVE 0x0200 /* Only passive scan allowed */ #define IEEE80211_CHAN_DYN 0x0400 /* Dynamic CCK-OFDM channel */ #define IEEE80211_CHAN_GFSK 0x0800 /* GFSK channel (FHSS PHY) */ #endif /* !_KERNEL */ d171 1 a171 1 #define IEEE80211_RADIOTAP_F_CFP 0x01 /* sent/received d174 1 a174 1 #define IEEE80211_RADIOTAP_F_SHORTPRE 0x02 /* sent/received d178 1 a178 1 #define IEEE80211_RADIOTAP_F_WEP 0x04 /* sent/received d181 1 a181 1 #define IEEE80211_RADIOTAP_F_FRAG 0x08 /* sent/received @ 1.1.1.3 log @Import FreeBSD's net80211(9) of 2005-05-18 @ text @d1 2 a2 2 /* $FreeBSD: src/sys/net80211/ieee80211_radiotap.h,v 1.5 2005/01/22 20:12:05 sam Exp $ */ /* $NetBSD: ieee80211_radiotap.h,v 1.10 2005/01/04 00:34:58 dyoung Exp $ */ d49 1 a49 1 #if defined(__KERNEL__) || defined(_KERNEL) d53 1 a53 6 #endif /* defined(__KERNEL__) || defined(_KERNEL) */ /* XXX tcpdump/libpcap do not tolerate variable-length headers, * yet, so we pad every radiotap header to 64 bytes. Ugh. */ #define IEEE80211_RADIOTAP_HDRLEN 64 d121 1 a121 1 * IEEE80211_RADIOTAP_LOCK_QUALITY u_int16_t unitless d176 1 d182 6 a187 6 #define IEEE80211_CHAN_TURBO 0x0010 /* Turbo channel */ #define IEEE80211_CHAN_CCK 0x0020 /* CCK channel */ #define IEEE80211_CHAN_OFDM 0x0040 /* OFDM channel */ #define IEEE80211_CHAN_2GHZ 0x0080 /* 2 GHz spectrum channel. */ #define IEEE80211_CHAN_5GHZ 0x0100 /* 5 GHz spectrum channel */ #define IEEE80211_CHAN_PASSIVE 0x0200 /* Only passive scan allowed */ a205 5 #define IEEE80211_RADIOTAP_F_FCS 0x10 /* frame includes FCS */ #define IEEE80211_RADIOTAP_F_DATAPAD 0x20 /* frame has padding between * 802.11 header and payload * (to 32-bit boundary) */ @