head 1.43; access; symbols netbsd-10-0-RELEASE:1.43 netbsd-10-0-RC6:1.43 netbsd-10-0-RC5:1.43 netbsd-10-0-RC4:1.43 netbsd-10-0-RC3:1.43 netbsd-10-0-RC2:1.43 thorpej-ifq:1.43.0.22 thorpej-ifq-base:1.43 thorpej-altq-separation:1.43.0.20 thorpej-altq-separation-base:1.43 netbsd-10-0-RC1:1.43 netbsd-10:1.43.0.18 netbsd-10-base:1.43 bouyer-sunxi-drm:1.43.0.16 bouyer-sunxi-drm-base:1.43 netbsd-9-3-RELEASE:1.33 thorpej-i2c-spi-conf2:1.43.0.14 thorpej-i2c-spi-conf2-base:1.43 thorpej-futex2:1.43.0.12 thorpej-futex2-base:1.43 thorpej-cfargs2:1.43.0.10 thorpej-cfargs2-base:1.43 cjep_sun2x-base1:1.43 cjep_sun2x:1.43.0.8 cjep_sun2x-base:1.43 cjep_staticlib_x-base1:1.43 netbsd-9-2-RELEASE:1.33 cjep_staticlib_x:1.43.0.6 cjep_staticlib_x-base:1.43 thorpej-i2c-spi-conf:1.43.0.4 thorpej-i2c-spi-conf-base:1.43 thorpej-cfargs:1.43.0.2 thorpej-cfargs-base:1.43 thorpej-futex:1.33.0.12 thorpej-futex-base:1.43 netbsd-9-1-RELEASE:1.33 bouyer-xenpvh-base2:1.33 phil-wifi-20200421:1.33 bouyer-xenpvh-base1:1.33 phil-wifi-20200411:1.33 bouyer-xenpvh:1.33.0.10 bouyer-xenpvh-base:1.33 is-mlppp:1.33.0.8 is-mlppp-base:1.33 phil-wifi-20200406:1.33 netbsd-8-2-RELEASE:1.30 ad-namecache-base3:1.33 netbsd-9-0-RELEASE:1.33 netbsd-9-0-RC2:1.33 ad-namecache-base2:1.33 ad-namecache-base1:1.33 ad-namecache:1.33.0.6 ad-namecache-base:1.33 netbsd-9-0-RC1:1.33 phil-wifi-20191119:1.33 netbsd-9:1.33.0.4 netbsd-9-base:1.33 phil-wifi-20190609:1.33 netbsd-8-1-RELEASE:1.30 netbsd-8-1-RC1:1.30 isaki-audio2:1.33.0.2 isaki-audio2-base:1.33 pgoyette-compat-merge-20190127:1.31.2.2 pgoyette-compat-20190127:1.33 pgoyette-compat-20190118:1.33 pgoyette-compat-1226:1.33 pgoyette-compat-1126:1.33 pgoyette-compat-1020:1.33 pgoyette-compat-0930:1.33 pgoyette-compat-0906:1.33 netbsd-7-2-RELEASE:1.29 pgoyette-compat-0728:1.33 netbsd-8-0-RELEASE:1.30 phil-wifi:1.32.0.2 phil-wifi-base:1.32 pgoyette-compat-0625:1.32 netbsd-8-0-RC2:1.30 pgoyette-compat-0521:1.32 pgoyette-compat-0502:1.32 pgoyette-compat-0422:1.32 netbsd-8-0-RC1:1.30 pgoyette-compat-0415:1.31 pgoyette-compat-0407:1.31 pgoyette-compat-0330:1.31 pgoyette-compat-0322:1.31 pgoyette-compat-0315:1.31 netbsd-7-1-2-RELEASE:1.29 pgoyette-compat:1.31.0.2 pgoyette-compat-base:1.31 netbsd-7-1-1-RELEASE:1.29 tls-maxphys-base-20171202:1.30 matt-nb8-mediatek:1.30.0.14 matt-nb8-mediatek-base:1.30 nick-nhusb-base-20170825:1.30 perseant-stdc-iso10646:1.30.0.12 perseant-stdc-iso10646-base:1.30 netbsd-8:1.30.0.10 netbsd-8-base:1.30 prg-localcount2-base3:1.30 prg-localcount2-base2:1.30 prg-localcount2-base1:1.30 prg-localcount2:1.30.0.8 prg-localcount2-base:1.30 pgoyette-localcount-20170426:1.30 bouyer-socketcan-base1:1.30 jdolecek-ncq:1.30.0.6 jdolecek-ncq-base:1.30 pgoyette-localcount-20170320:1.30 netbsd-7-1:1.29.0.74 netbsd-7-1-RELEASE:1.29 netbsd-7-1-RC2:1.29 nick-nhusb-base-20170204:1.30 netbsd-7-nhusb-base-20170116:1.29 bouyer-socketcan:1.30.0.4 bouyer-socketcan-base:1.30 pgoyette-localcount-20170107:1.30 netbsd-7-1-RC1:1.29 nick-nhusb-base-20161204:1.30 pgoyette-localcount-20161104:1.30 netbsd-7-0-2-RELEASE:1.29 nick-nhusb-base-20161004:1.30 localcount-20160914:1.30 netbsd-7-nhusb:1.29.0.72 netbsd-7-nhusb-base:1.29 pgoyette-localcount-20160806:1.30 pgoyette-localcount-20160726:1.30 pgoyette-localcount:1.30.0.2 pgoyette-localcount-base:1.30 nick-nhusb-base-20160907:1.30 nick-nhusb-base-20160529:1.30 netbsd-7-0-1-RELEASE:1.29 nick-nhusb-base-20160422:1.30 nick-nhusb-base-20160319:1.30 nick-nhusb-base-20151226:1.30 netbsd-7-0:1.29.0.70 netbsd-7-0-RELEASE:1.29 nick-nhusb-base-20150921:1.30 netbsd-7-0-RC3:1.29 netbsd-7-0-RC2:1.29 netbsd-7-0-RC1:1.29 nick-nhusb-base-20150606:1.29 nick-nhusb-base-20150406:1.29 nick-nhusb:1.29.0.68 nick-nhusb-base:1.29 netbsd-5-2-3-RELEASE:1.29 netbsd-5-1-5-RELEASE:1.29 netbsd-6-0-6-RELEASE:1.29 netbsd-6-1-5-RELEASE:1.29 netbsd-7:1.29.0.66 netbsd-7-base:1.29 yamt-pagecache-base9:1.29 yamt-pagecache-tag8:1.29 netbsd-6-1-4-RELEASE:1.29 netbsd-6-0-5-RELEASE:1.29 tls-earlyentropy:1.29.0.64 tls-earlyentropy-base:1.29 riastradh-xf86-video-intel-2-7-1-pre-2-21-15:1.29 riastradh-drm2-base3:1.29 netbsd-6-1-3-RELEASE:1.29 netbsd-6-0-4-RELEASE:1.29 netbsd-5-2-2-RELEASE:1.29 netbsd-5-1-4-RELEASE:1.29 netbsd-6-1-2-RELEASE:1.29 netbsd-6-0-3-RELEASE:1.29 netbsd-5-2-1-RELEASE:1.29 netbsd-5-1-3-RELEASE:1.29 rmind-smpnet-nbase:1.29 netbsd-6-1-1-RELEASE:1.29 riastradh-drm2-base2:1.29 riastradh-drm2-base1:1.29 riastradh-drm2:1.29.0.62 riastradh-drm2-base:1.29 rmind-smpnet:1.29.0.54 rmind-smpnet-base:1.29 netbsd-6-1:1.29.0.60 netbsd-6-0-2-RELEASE:1.29 netbsd-6-1-RELEASE:1.29 khorben-n900:1.29.0.58 netbsd-6-1-RC4:1.29 netbsd-6-1-RC3:1.29 agc-symver:1.29.0.56 agc-symver-base:1.29 netbsd-6-1-RC2:1.29 netbsd-6-1-RC1:1.29 yamt-pagecache-base8:1.29 netbsd-5-2:1.29.0.52 netbsd-6-0-1-RELEASE:1.29 yamt-pagecache-base7:1.29 netbsd-5-2-RELEASE:1.29 netbsd-5-2-RC1:1.29 matt-nb6-plus-nbase:1.29 yamt-pagecache-base6:1.29 netbsd-6-0:1.29.0.50 netbsd-6-0-RELEASE:1.29 netbsd-6-0-RC2:1.29 tls-maxphys:1.29.0.48 tls-maxphys-base:1.29 matt-nb6-plus:1.29.0.46 matt-nb6-plus-base:1.29 netbsd-6-0-RC1:1.29 jmcneill-usbmp-base10:1.29 yamt-pagecache-base5:1.29 jmcneill-usbmp-base9:1.29 yamt-pagecache-base4:1.29 jmcneill-usbmp-base8:1.29 jmcneill-usbmp-base7:1.29 jmcneill-usbmp-base6:1.29 jmcneill-usbmp-base5:1.29 jmcneill-usbmp-base4:1.29 jmcneill-usbmp-base3:1.29 jmcneill-usbmp-pre-base2:1.29 jmcneill-usbmp-base2:1.29 netbsd-6:1.29.0.44 netbsd-6-base:1.29 netbsd-5-1-2-RELEASE:1.29 netbsd-5-1-1-RELEASE:1.29 jmcneill-usbmp:1.29.0.42 jmcneill-usbmp-base:1.29 jmcneill-audiomp3:1.29.0.40 jmcneill-audiomp3-base:1.29 yamt-pagecache-base3:1.29 yamt-pagecache-base2:1.29 yamt-pagecache:1.29.0.38 yamt-pagecache-base:1.29 rmind-uvmplock-nbase:1.29 cherry-xenmp:1.29.0.36 cherry-xenmp-base:1.29 bouyer-quota2-nbase:1.29 bouyer-quota2:1.29.0.34 bouyer-quota2-base:1.29 jruoho-x86intr:1.29.0.32 jruoho-x86intr-base:1.29 matt-mips64-premerge-20101231:1.29 matt-nb5-mips64-premerge-20101231:1.29 matt-nb5-pq3:1.29.0.30 matt-nb5-pq3-base:1.29 netbsd-5-1:1.29.0.28 netbsd-5-1-RELEASE:1.29 uebayasi-xip-base4:1.29 uebayasi-xip-base3:1.29 yamt-nfs-mp-base11:1.29 netbsd-5-1-RC4:1.29 matt-nb5-mips64-k15:1.29 uebayasi-xip-base2:1.29 yamt-nfs-mp-base10:1.29 netbsd-5-1-RC3:1.29 netbsd-5-1-RC2:1.29 uebayasi-xip-base1:1.29 netbsd-5-1-RC1:1.29 rmind-uvmplock:1.29.0.26 rmind-uvmplock-base:1.29 yamt-nfs-mp-base9:1.29 uebayasi-xip:1.29.0.24 uebayasi-xip-base:1.29 netbsd-5-0-2-RELEASE:1.29 matt-nb5-mips64-premerge-20091211:1.29 matt-premerge-20091211:1.29 yamt-nfs-mp-base8:1.29 matt-nb5-mips64-u2-k2-k4-k7-k8-k9:1.29 matt-nb4-mips64-k7-u2a-k9b:1.29 matt-nb5-mips64-u1-k1-k5:1.29 yamt-nfs-mp-base7:1.29 matt-nb5-mips64:1.29.0.22 netbsd-5-0-1-RELEASE:1.29 jymxensuspend-base:1.29 yamt-nfs-mp-base6:1.29 yamt-nfs-mp-base5:1.29 yamt-nfs-mp-base4:1.29 jym-xensuspend-nbase:1.29 yamt-nfs-mp-base3:1.29 nick-hppapmap-base4:1.29 nick-hppapmap-base3:1.29 netbsd-5-0:1.29.0.20 netbsd-5-0-RELEASE:1.29 netbsd-5-0-RC4:1.29 netbsd-5-0-RC3:1.29 nick-hppapmap-base2:1.29 netbsd-5-0-RC2:1.29 jym-xensuspend:1.29.0.18 jym-xensuspend-base:1.29 netbsd-5-0-RC1:1.29 haad-dm-base2:1.29 haad-nbase2:1.29 ad-audiomp2:1.29.0.16 ad-audiomp2-base:1.29 netbsd-5:1.29.0.14 netbsd-5-base:1.29 nick-hppapmap:1.29.0.12 nick-hppapmap-base:1.29 matt-mips64-base2:1.29 matt-mips64:1.26.0.32 haad-dm-base1:1.29 wrstuden-revivesa-base-4:1.29 netbsd-4-0-1-RELEASE:1.25 wrstuden-revivesa-base-3:1.29 wrstuden-revivesa-base-2:1.29 wrstuden-fixsa-newbase:1.25 nick-csl-alignment-base5:1.26 haad-dm:1.29.0.10 haad-dm-base:1.29 wrstuden-revivesa-base-1:1.29 simonb-wapbl-nbase:1.29 yamt-pf42-base4:1.29 simonb-wapbl:1.29.0.8 simonb-wapbl-base:1.29 yamt-pf42-base3:1.29 hpcarm-cleanup-nbase:1.29 yamt-pf42-baseX:1.29 yamt-pf42-base2:1.29 yamt-nfs-mp-base2:1.29 wrstuden-revivesa:1.29.0.6 wrstuden-revivesa-base:1.29 yamt-nfs-mp:1.29.0.4 yamt-nfs-mp-base:1.29 yamt-pf42:1.29.0.2 yamt-pf42-base:1.29 ad-socklock-base1:1.28 yamt-lazymbuf-base15:1.28 yamt-lazymbuf-base14:1.28 keiichi-mipv6-nbase:1.28 mjf-devfs2:1.28.0.6 mjf-devfs2-base:1.29 nick-net80211-sync:1.28.0.4 nick-net80211-sync-base:1.28 keiichi-mipv6:1.28.0.2 keiichi-mipv6-base:1.28 bouyer-xeni386-merge1:1.26.28.1 matt-armv6-prevmlocking:1.26 wrstuden-fixsa-base-1:1.25 vmlocking2-base3:1.27 netbsd-4-0:1.25.0.34 netbsd-4-0-RELEASE:1.25 bouyer-xeni386-nbase:1.27 yamt-kmem-base3:1.26 cube-autoconf:1.26.0.30 cube-autoconf-base:1.26 yamt-kmem-base2:1.26 bouyer-xeni386:1.26.0.28 bouyer-xeni386-base:1.27 yamt-kmem:1.26.0.26 yamt-kmem-base:1.26 vmlocking2-base2:1.26 reinoud-bufcleanup-nbase:1.26 vmlocking2:1.26.0.24 vmlocking2-base1:1.26 netbsd-4-0-RC5:1.25 matt-nb4-arm:1.25.0.32 matt-nb4-arm-base:1.25 matt-armv6-nbase:1.28 jmcneill-base:1.26 netbsd-4-0-RC4:1.25 mjf-devfs:1.26.0.22 mjf-devfs-base:1.27 bouyer-xenamd64-base2:1.26 vmlocking-nbase:1.26 yamt-x86pmap-base4:1.26 bouyer-xenamd64:1.26.0.20 bouyer-xenamd64-base:1.26 netbsd-4-0-RC3:1.25 yamt-x86pmap-base3:1.26 yamt-x86pmap-base2:1.26 netbsd-4-0-RC2:1.25 yamt-x86pmap:1.26.0.18 yamt-x86pmap-base:1.26 netbsd-4-0-RC1:1.25 matt-armv6:1.26.0.16 matt-armv6-base:1.27 matt-mips64-base:1.26 jmcneill-pm:1.26.0.14 jmcneill-pm-base:1.26 hpcarm-cleanup:1.26.0.12 hpcarm-cleanup-base:1.28 nick-csl-alignment:1.26.0.10 nick-csl-alignment-base:1.26 netbsd-3-1-1-RELEASE:1.24 netbsd-3-0-3-RELEASE:1.24 yamt-idlelwp-base8:1.26 wrstuden-fixsa:1.25.0.30 wrstuden-fixsa-base:1.25 thorpej-atomic:1.26.0.8 thorpej-atomic-base:1.26 reinoud-bufcleanup:1.26.0.6 reinoud-bufcleanup-base:1.26 mjf-ufs-trans:1.26.0.4 mjf-ufs-trans-base:1.26 vmlocking:1.26.0.2 vmlocking-base:1.26 ad-audiomp:1.25.0.28 ad-audiomp-base:1.25 yamt-idlelwp:1.25.0.26 post-newlock2-merge:1.25 newlock2-nbase:1.25 yamt-splraiseipl-base5:1.25 yamt-splraiseipl-base4:1.25 yamt-splraiseipl-base3:1.25 abandoned-netbsd-4-base:1.25 abandoned-netbsd-4:1.25.0.18 netbsd-3-1:1.24.0.28 netbsd-3-1-RELEASE:1.24 netbsd-3-0-2-RELEASE:1.24 yamt-splraiseipl-base2:1.25 netbsd-3-1-RC4:1.24 yamt-splraiseipl:1.25.0.22 yamt-splraiseipl-base:1.25 netbsd-3-1-RC3:1.24 yamt-pdpolicy-base9:1.25 newlock2:1.25.0.20 newlock2-base:1.25 yamt-pdpolicy-base8:1.25 netbsd-3-1-RC2:1.24 netbsd-3-1-RC1:1.24 yamt-pdpolicy-base7:1.25 netbsd-4:1.25.0.24 netbsd-4-base:1.25 yamt-pdpolicy-base6:1.25 chap-midi-nbase:1.25 netbsd-3-0-1-RELEASE:1.24 gdamore-uart:1.25.0.16 gdamore-uart-base:1.25 simonb-timcounters-final:1.25 yamt-pdpolicy-base5:1.25 chap-midi:1.25.0.14 chap-midi-base:1.25 yamt-pdpolicy-base4:1.25 yamt-pdpolicy-base3:1.25 peter-altq-base:1.25 peter-altq:1.25.0.12 yamt-pdpolicy-base2:1.25 elad-kernelauth-base:1.25 elad-kernelauth:1.25.0.10 yamt-pdpolicy:1.25.0.8 yamt-pdpolicy-base:1.25 yamt-uio_vmspace-base5:1.25 simonb-timecounters:1.25.0.6 simonb-timecounters-base:1.25 rpaulo-netinet-merge-pcb:1.25.0.4 rpaulo-netinet-merge-pcb-base:1.25 yamt-uio_vmspace:1.25.0.2 netbsd-3-0:1.24.0.26 netbsd-3-0-RELEASE:1.24 netbsd-3-0-RC6:1.24 yamt-readahead-base3:1.24 netbsd-3-0-RC5:1.24 netbsd-3-0-RC4:1.24 netbsd-3-0-RC3:1.24 yamt-readahead-base2:1.24 netbsd-3-0-RC2:1.24 yamt-readahead-pervnode:1.24 yamt-readahead-perfile:1.24 yamt-readahead:1.24.0.24 yamt-readahead-base:1.24 netbsd-3-0-RC1:1.24 yamt-vop-base3:1.24 netbsd-2-0-3-RELEASE:1.24 netbsd-2-1:1.24.0.22 yamt-vop-base2:1.24 thorpej-vnode-attr:1.24.0.20 thorpej-vnode-attr-base:1.24 netbsd-2-1-RELEASE:1.24 yamt-vop:1.24.0.18 yamt-vop-base:1.24 netbsd-2-1-RC6:1.24 netbsd-2-1-RC5:1.24 netbsd-2-1-RC4:1.24 netbsd-2-1-RC3:1.24 netbsd-2-1-RC2:1.24 netbsd-2-1-RC1:1.24 yamt-lazymbuf:1.24.0.16 yamt-km-base4:1.24 netbsd-2-0-2-RELEASE:1.24 yamt-km-base3:1.24 netbsd-3:1.24.0.14 netbsd-3-base:1.24 yamt-km-base2:1.24 yamt-km:1.24.0.10 yamt-km-base:1.24 kent-audio2:1.24.0.8 kent-audio2-base:1.24 netbsd-2-0-1-RELEASE:1.24 kent-audio1-beforemerge:1.24 netbsd-2:1.24.0.6 netbsd-2-base:1.24 kent-audio1:1.24.0.4 kent-audio1-base:1.24 netbsd-2-0-RELEASE:1.24 netbsd-2-0-RC5:1.24 netbsd-2-0-RC4:1.24 netbsd-2-0-RC3:1.24 netbsd-2-0-RC2:1.24 netbsd-2-0-RC1:1.24 netbsd-2-0:1.24.0.2 netbsd-2-0-base:1.24 netbsd-1-6-PATCH002-RELEASE:1.22 netbsd-1-6-PATCH002:1.22 netbsd-1-6-PATCH002-RC4:1.22 netbsd-1-6-PATCH002-RC3:1.22 netbsd-1-6-PATCH002-RC2:1.22 netbsd-1-6-PATCH002-RC1:1.22 ktrace-lwp:1.23.0.6 ktrace-lwp-base:1.25 netbsd-1-6-PATCH001:1.22 netbsd-1-6-PATCH001-RELEASE:1.22 netbsd-1-6-PATCH001-RC3:1.22 netbsd-1-6-PATCH001-RC2:1.22 netbsd-1-6-PATCH001-RC1:1.22 nathanw_sa_end:1.21.2.2 nathanw_sa_before_merge:1.23 fvdl_fs64_base:1.23 gmcgarry_ctxsw:1.23.0.4 gmcgarry_ctxsw_base:1.23 gmcgarry_ucred:1.23.0.2 gmcgarry_ucred_base:1.23 nathanw_sa_base:1.23 kqueue-aftermerge:1.23 kqueue-beforemerge:1.23 netbsd-1-6-RELEASE:1.22 netbsd-1-6-RC3:1.22 netbsd-1-6-RC2:1.22 netbsd-1-6-RC1:1.22 netbsd-1-6:1.22.0.16 netbsd-1-6-base:1.22 gehenna-devsw:1.22.0.14 gehenna-devsw-base:1.23 netbsd-1-5-PATCH003:1.20 eeh-devprop:1.22.0.12 eeh-devprop-base:1.22 newlock:1.22.0.10 newlock-base:1.22 ifpoll-base:1.22 thorpej-mips-cache:1.22.0.6 thorpej-mips-cache-base:1.22 thorpej-devvp-base3:1.22 thorpej-devvp-base2:1.22 post-chs-ubcperf:1.22 pre-chs-ubcperf:1.22 thorpej-devvp:1.22.0.4 thorpej-devvp-base:1.22 netbsd-1-5-PATCH002:1.20 kqueue:1.22.0.2 kqueue-base:1.23 netbsd-1-5-PATCH001:1.20 thorpej_scsipi_beforemerge:1.21 nathanw_sa:1.21.0.2 thorpej_scsipi_nbase:1.21 netbsd-1-5-RELEASE:1.20 netbsd-1-5-BETA2:1.20 netbsd-1-5-BETA:1.20 netbsd-1-4-PATCH003:1.18 netbsd-1-5-ALPHA2:1.20 netbsd-1-5:1.20.0.12 netbsd-1-5-base:1.20 minoura-xpg4dl-base:1.20 minoura-xpg4dl:1.20.0.10 netbsd-1-4-PATCH002:1.18 chs-ubc2-newbase:1.20 wrstuden-devbsize-19991221:1.20 wrstuden-devbsize:1.20.0.8 wrstuden-devbsize-base:1.20 kame_141_19991130:1.18 comdex-fall-1999:1.20.0.6 comdex-fall-1999-base:1.20 fvdl-softdep:1.20.0.4 fvdl-softdep-base:1.20 thorpej_scsipi:1.20.0.2 thorpej_scsipi_base:1.21 netbsd-1-4-PATCH001:1.18 kame_14_19990705:1.18 kame_14_19990628:1.18 kame:1.18.0.6 chs-ubc2:1.18.0.4 chs-ubc2-base:1.19 netbsd-1-4-RELEASE:1.18 netbsd-1-4:1.18.0.2 netbsd-1-4-base:1.18 netbsd-1-3-PATCH003:1.12 netbsd-1-3-PATCH003-CANDIDATE2:1.12 kenh-if-detach:1.13.0.6 kenh-if-detach-base:1.13 netbsd-1-3-PATCH003-CANDIDATE1:1.12 netbsd-1-3-PATCH003-CANDIDATE0:1.12 chs-ubc:1.13.0.4 chs-ubc-base:1.13 eeh-paddr_t:1.13.0.2 eeh-paddr_t-base:1.13 netbsd-1-3-PATCH002:1.12 lite-2:1.1.1.2 lite-1:1.1.1.2 CSRG:1.1.1 netbsd-1-3-PATCH001:1.12 netbsd-1-3-RELEASE:1.12 netbsd-1-3-BETA:1.12 netbsd-1-3:1.12.0.4 netbsd-1-3-base:1.12 thorpej-signal:1.12.0.2 thorpej-signal-base:1.12 marc-pcmcia:1.11.0.4 marc-pcmcia-bp:1.11 marc-pcmcia-base:1.12 bouyer-scsipi:1.11.0.2 is-newarp-before-merge:1.8 netbsd-1-2-PATCH001:1.8 mrg-vm-swap:1.8.0.10 is-newarp:1.8.0.8 is-newarp-base:1.8 thorpej-setroot:1.8.0.4 netbsd-1-2-RELEASE:1.8 netbsd-1-2-BETA:1.8 netbsd-1-2:1.8.0.6 netbsd-1-2-base:1.8 date-03-may-96:1.1.1.2 netbsd-1-1-PATCH001:1.8 netbsd-1-1-RELEASE:1.8 netbsd-1-1:1.8.0.2 netbsd-1-1-base:1.8 netbsd-1-0-PATCH06:1.7 netbsd-1-0-PATCH05:1.7 netbsd-1-0-PATCH04:1.7 netbsd-1-0-PATCH03:1.7 netbsd-1-0-PATCH02:1.7 netbsd-1-0-PATCH1:1.7 netbsd-1-0-PATCH0:1.7 netbsd-1-0-RELEASE:1.7 netbsd-1-0:1.7.0.2 netbsd-1-0-base:1.7 magnum-base:1.5 magnum:1.5.0.2 netbsd-0-9-patch-001:1.3 netbsd-0-9-RELEASE:1.3 netbsd-0-9-BETA:1.3 netbsd-0-9-ALPHA2:1.3 netbsd-0-9-ALPHA:1.3 netbsd-0-9:1.3.0.2 netbsd-0-9-base:1.3 netbsd-0-8:1.1.1.1 netbsd-alpha-1:1.1.1.1 patchkit-0-2-2:1.1.1.1 WFJ-386bsd-01:1.1.1.1 WFJ-920714:1.1.1; locks; strict; comment @ * @; 1.43 date 2021.02.19.14.51.59; author christos; state Exp; branches; next 1.42; commitid wdRVbcAyAXsnAkIC; 1.42 date 2021.02.17.22.32.04; author christos; state Exp; branches; next 1.41; commitid iJegUn6KXlBlc7IC; 1.41 date 2021.02.16.10.20.56; author martin; state Exp; branches; next 1.40; commitid JT6PHUfct6tubVHC; 1.40 date 2021.02.14.20.58.34; author christos; state Exp; branches; next 1.39; commitid jf1vtf1Dpp5BLIHC; 1.39 date 2021.02.14.19.47.16; author roy; state Exp; branches; next 1.38; commitid USu0GtvDsb6OlIHC; 1.38 date 2021.02.13.07.57.09; author roy; state Exp; branches; next 1.37; commitid XPzEp2BySTcOtwHC; 1.37 date 2021.02.03.18.13.13; author roy; state Exp; branches; next 1.36; commitid W26lRWt1lztgdiGC; 1.36 date 2021.02.03.11.53.43; author roy; state Exp; branches; next 1.35; commitid 7irZkizDUb3Z6gGC; 1.35 date 2021.02.03.10.31.10; author roy; state Exp; branches; next 1.34; commitid 3GubAlbh1TL1FfGC; 1.34 date 2021.02.03.05.51.40; author roy; state Exp; branches; next 1.33; commitid Ejsas7gYBOHG6eGC; 1.33 date 2018.06.30.15.08.04; author christos; state Exp; branches 1.33.12.1; next 1.32; commitid 3oIIC7wpPQN8HjIA; 1.32 date 2018.04.19.21.20.43; author christos; state Exp; branches 1.32.2.1; next 1.31; commitid AoVIbAhhWnBy46zA; 1.31 date 2018.02.13.08.43.26; author maxv; state Exp; branches 1.31.2.1; next 1.30; commitid z9nicMcuJYliYFqA; 1.30 date 2015.08.31.08.05.20; author ozaki-r; state Exp; branches; next 1.29; 1.29 date 2008.04.15.15.17.54; author thorpej; state Exp; branches 1.29.48.1 1.29.68.1; next 1.28; 1.28 date 2008.02.20.17.05.52; author matt; state Exp; branches 1.28.6.1; next 1.27; 1.27 date 2007.12.25.18.33.44; author perry; state Exp; branches; next 1.26; 1.26 date 2007.03.04.06.03.15; author christos; state Exp; branches 1.26.16.1 1.26.22.1 1.26.24.1 1.26.28.1; next 1.25; 1.25 date 2005.12.10.23.21.38; author elad; state Exp; branches 1.25.26.1; next 1.24; 1.24 date 2003.08.07.16.32.50; author agc; state Exp; branches 1.24.16.1; next 1.23; 1.23 date 2002.06.24.08.06.22; author itojun; state Exp; branches 1.23.6.1; next 1.22; 1.22 date 2001.06.12.15.17.27; author wiz; state Exp; branches 1.22.2.1 1.22.14.1; next 1.21; 1.21 date 2000.08.15.20.24.57; author jhawk; state Exp; branches 1.21.2.1; next 1.20; 1.20 date 99.08.27.01.52.26; author thorpej; state Exp; branches 1.20.2.1; next 1.19; 1.19 date 99.05.08.01.42.24; author matt; state Exp; branches; next 1.18; 1.18 date 99.03.22.22.28.40; author bad; state Exp; branches 1.18.4.1; next 1.17; 1.17 date 99.02.23.20.11.06; author is; state Exp; branches; next 1.16; 1.16 date 99.02.23.16.59.38; author kleink; state Exp; branches; next 1.15; 1.15 date 99.02.21.17.35.17; author kleink; state Exp; branches; next 1.14; 1.14 date 98.12.10.15.11.05; author christos; state Exp; branches; next 1.13; 1.13 date 98.02.09.17.43.46; author perry; state Exp; branches; next 1.12; 1.12 date 97.09.08.02.06.30; author mikel; state Exp; branches; next 1.11; 1.11 date 97.03.25.02.30.52; author jonathan; state Exp; branches 1.11.4.1; next 1.10; 1.10 date 97.03.23.01.22.36; author is; state Exp; branches; next 1.9; 1.9 date 97.03.15.18.12.23; author is; state Exp; branches; next 1.8; 1.8 date 95.03.08.02.56.52; author cgd; state Exp; branches 1.8.8.1; next 1.7; 1.7 date 94.06.29.06.36.07; author cgd; state Exp; branches; next 1.6; 1.6 date 94.05.13.06.02.31; author mycroft; state Exp; branches; next 1.5; 1.5 date 93.09.05.00.46.54; author cassidy; state Exp; branches; next 1.4; 1.4 date 93.08.03.01.51.16; author glass; state Exp; branches; next 1.3; 1.3 date 93.05.20.03.05.57; author cgd; state Exp; branches; next 1.2; 1.2 date 93.04.19.03.47.47; author mycroft; state Exp; branches; next 1.1; 1.1 date 93.03.21.09.45.37; author cgd; state Exp; branches 1.1.1.1; next ; 1.33.12.1 date 2021.04.03.22.29.01; author thorpej; state Exp; branches; next ; commitid 1gqS07EfPjskJTNC; 1.32.2.1 date 2019.06.10.22.09.45; author christos; state Exp; branches; next ; commitid jtc8rnCzWiEEHGqB; 1.31.2.1 date 2018.04.22.07.20.27; author pgoyette; state Exp; branches; next 1.31.2.2; commitid W6xykws0Zbl4kpzA; 1.31.2.2 date 2018.07.28.04.38.09; author pgoyette; state Exp; branches; next ; commitid 1UP1xAIUxv1ZgRLA; 1.29.48.1 date 2017.12.03.11.39.02; author jdolecek; state Exp; branches; next ; commitid XcIYRZTAh1LmerhA; 1.29.68.1 date 2015.09.22.12.06.10; author skrll; state Exp; branches; next ; 1.28.6.1 date 2008.06.02.13.24.21; author mjf; state Exp; branches; next ; 1.26.16.1 date 2008.01.09.01.57.09; author matt; state Exp; branches; next 1.26.16.2; 1.26.16.2 date 2008.03.23.02.05.04; author matt; state Exp; branches; next ; 1.26.22.1 date 2008.02.18.21.07.01; author mjf; state Exp; branches; next ; 1.26.24.1 date 2007.12.26.19.57.30; author ad; state Exp; branches; next ; 1.26.28.1 date 2008.01.02.21.57.03; author bouyer; state Exp; branches; next ; 1.25.26.1 date 2007.03.12.05.59.10; author rmind; state Exp; branches; next ; 1.24.16.1 date 2006.06.21.15.10.27; author yamt; state Exp; branches; next 1.24.16.2; 1.24.16.2 date 2007.09.03.14.42.02; author yamt; state Exp; branches; next 1.24.16.3; 1.24.16.3 date 2008.01.21.09.47.00; author yamt; state Exp; branches; next 1.24.16.4; 1.24.16.4 date 2008.02.27.08.37.00; author yamt; state Exp; branches; next ; 1.23.6.1 date 2004.08.03.10.54.11; author skrll; state Exp; branches; next 1.23.6.2; 1.23.6.2 date 2004.09.18.14.54.16; author skrll; state Exp; branches; next 1.23.6.3; 1.23.6.3 date 2004.09.21.13.36.35; author skrll; state Exp; branches; next 1.23.6.4; 1.23.6.4 date 2005.12.11.10.29.19; author christos; state Exp; branches; next ; 1.22.2.1 date 2002.09.06.08.48.50; author jdolecek; state Exp; branches; next ; 1.22.14.1 date 2002.07.15.10.36.48; author gehenna; state Exp; branches; next ; 1.21.2.1 date 2001.06.21.20.07.58; author nathanw; state Exp; branches; next 1.21.2.2; 1.21.2.2 date 2002.08.01.02.46.38; author nathanw; state Exp; branches; next ; 1.20.2.1 date 2000.11.20.18.09.57; author bouyer; state Exp; branches; next ; 1.18.4.1 date 99.06.21.01.27.33; author thorpej; state Exp; branches; next ; 1.11.4.1 date 97.09.16.03.51.19; author thorpej; state Exp; branches; next ; 1.8.8.1 date 97.02.11.20.21.11; author is; state Exp; branches; next 1.8.8.2; 1.8.8.2 date 97.03.12.15.56.56; author is; state Exp; branches; next ; 1.1.1.1 date 93.03.21.09.45.37; author cgd; state Exp; branches; next 1.1.1.2; 1.1.1.2 date 98.03.01.02.10.06; author fvdl; state Exp; branches; next ; desc @@ 1.43 log @- Make ALIGNED_POINTER use __alignof(t) instead of sizeof(t). This is more correct because it works with non-primitive types and provides the ABI alignment for the type the compiler will use. - Remove all the *_HDR_ALIGNMENT macros and asserts - Replace POINTER_ALIGNED_P with ACCESSIBLE_POINTER which is identical to ALIGNED_POINTER, but returns that the pointer is always aligned if the CPU supports unaligned accesses. [ as proposed in tech-kern ] @ text @/* $NetBSD: if_arp.h,v 1.42 2021/02/17 22:32:04 christos Exp $ */ /* * Copyright (c) 1986, 1993 * The Regents of the University of California. 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. Neither the name of the University nor the names of its contributors * may be used to endorse or promote products derived from this software * without specific prior written permission. * * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``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 THE REGENTS OR CONTRIBUTORS 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. * * @@(#)if_arp.h 8.1 (Berkeley) 6/10/93 */ #ifndef _NET_IF_ARP_H_ #define _NET_IF_ARP_H_ /* * Address Resolution Protocol. * * See RFC 826 for protocol description. ARP packets are variable * in size; the arphdr structure defines the fixed-length portion. * Protocol type values are the same as those for 10 Mb/s Ethernet. * It is followed by the variable-sized fields ar_sha, arp_spa, * arp_tha and arp_tpa in that order, according to the lengths * specified. Field names used correspond to RFC 826. */ struct arphdr { uint16_t ar_hrd; /* format of hardware address */ #define ARPHRD_ETHER 1 /* ethernet hardware format */ #define ARPHRD_IEEE802 6 /* IEEE 802 hardware format */ #define ARPHRD_ARCNET 7 /* ethernet hardware format */ #define ARPHRD_FRELAY 15 /* frame relay hardware format */ #define ARPHRD_STRIP 23 /* Ricochet Starmode Radio hardware format */ #define ARPHRD_IEEE1394 24 /* IEEE 1394 (FireWire) hardware format */ uint16_t ar_pro; /* format of protocol address */ uint8_t ar_hln; /* length of hardware address */ uint8_t ar_pln; /* length of protocol address */ uint16_t ar_op; /* one of: */ #define ARPOP_REQUEST 1 /* request to resolve address */ #define ARPOP_REPLY 2 /* response to previous request */ #define ARPOP_REVREQUEST 3 /* request protocol address given hardware */ #define ARPOP_REVREPLY 4 /* response giving protocol address */ #define ARPOP_INVREQUEST 8 /* request to identify peer */ #define ARPOP_INVREPLY 9 /* response identifying peer */ /* * The remaining fields are variable in size, * according to the sizes above. */ #ifdef COMMENT_ONLY uint8_t ar_sha[]; /* sender hardware address */ uint8_t ar_spa[]; /* sender protocol address */ uint8_t ar_tha[]; /* target hardware address (!IEEE1394) */ uint8_t ar_tpa[]; /* target protocol address */ #endif }; static __inline uint8_t * ar_data(struct arphdr *ap) { return (uint8_t *)(void *)(ap + 1); } static __inline uint8_t * ar_sha(struct arphdr *ap) { return ar_data(ap) + 0; } static __inline uint8_t * ar_spa(struct arphdr *ap) { return ar_data(ap) + ap->ar_hln; } static __inline uint8_t * ar_tha(struct arphdr *ap) { if (ntohs(ap->ar_hrd) == ARPHRD_IEEE1394) { return NULL; } else { return ar_data(ap) + ap->ar_hln + ap->ar_pln; } } static __inline uint8_t * ar_tpa(struct arphdr *ap) { if (ntohs(ap->ar_hrd) == ARPHRD_IEEE1394) { return ar_data(ap) + ap->ar_hln + ap->ar_pln; } else { return ar_data(ap) + ap->ar_hln + ap->ar_pln + ap->ar_hln; } } /* * ARP ioctl request */ struct arpreq { struct sockaddr arp_pa; /* protocol address */ struct sockaddr arp_ha; /* hardware address */ int arp_flags; /* flags */ }; /* arp_flags and at_flags field values */ #define ATF_INUSE 0x01 /* entry in use */ #define ATF_COM 0x02 /* completed entry (enaddr valid) */ #define ATF_PERM 0x04 /* permanent entry */ #define ATF_PUBL 0x08 /* publish entry (respond for other host) */ #define ATF_USETRAILERS 0x10 /* has requested trailers */ /* * Kernel statistics about arp */ #define ARP_STAT_SNDTOTAL 0 /* total packets sent */ #define ARP_STAT_SNDREPLY 1 /* replies sent */ #define ARP_STAT_SENDREQUEST 2 /* requests sent */ #define ARP_STAT_RCVTOTAL 3 /* total packets received */ #define ARP_STAT_RCVREQUEST 4 /* valid requests received */ #define ARP_STAT_RCVREPLY 5 /* replies received */ #define ARP_STAT_RCVMCAST 6 /* multicast/broadcast received */ #define ARP_STAT_RCVBADPROTO 7 /* unknown protocol type received */ #define ARP_STAT_RCVBADLEN 8 /* bad (short) length received */ #define ARP_STAT_RCVZEROTPA 9 /* received w/ null target ip */ #define ARP_STAT_RCVZEROSPA 10 /* received w/ null source ip */ #define ARP_STAT_RCVNOINT 11 /* couldn't map to interface */ #define ARP_STAT_RCVLOCALSHA 12 /* received from local hw address */ #define ARP_STAT_RCVBCASTSHA 13 /* received w/ broadcast src */ #define ARP_STAT_RCVLOCALSPA 14 /* received for a local ip [dup!] */ #define ARP_STAT_RCVOVERPERM 15 /* attempts to overwrite static info */ #define ARP_STAT_RCVOVERINT 16 /* attempts to overwrite wrong if */ #define ARP_STAT_RCVOVER 17 /* entries overwritten! */ #define ARP_STAT_RCVLENCHG 18 /* changes in hw address len */ #define ARP_STAT_DFRTOTAL 19 /* deferred pending ARP resolution */ #define ARP_STAT_DFRSENT 20 /* deferred, then sent */ #define ARP_STAT_DFRDROPPED 21 /* deferred, then dropped */ #define ARP_STAT_ALLOCFAIL 22 /* failures to allocate llinfo */ #define ARP_NSTATS 23 void arp_stat_add(int, uint64_t); #endif /* !_NET_IF_ARP_H_ */ @ 1.42 log @- pass the alignment instead of the mask (as Roy asked and to match the other macro) - use alignof to determine that alignment and CTASSERT what we expect - remove unused macros @ text @d1 1 a1 1 /* $NetBSD: if_arp.h,v 1.41 2021/02/16 10:20:56 martin Exp $ */ a74 2 #define ARP_HDR_ALIGNMENT __alignof(struct arphdr) __CTASSERT(ARP_HDR_ALIGNMENT == 2); @ 1.41 log @ARP headers only need 2 byte alignment - pointed out by roy. @ text @d1 1 a1 1 /* $NetBSD: if_arp.h,v 1.40 2021/02/14 20:58:34 christos Exp $ */ d75 2 a76 1 #define ARP_HDR_ALIGNMENT 1 @ 1.40 log @- centralize header align and pullup into a single inline function - use a single macro to align pointers and expose the alignment, instead of hard-coding 3 in 1/2 the macros. - fix an issue in the ipv6 lt2p where it was aligning for ipv4 and pulling for ipv6. @ text @d1 1 a1 1 /* $NetBSD: if_arp.h,v 1.39 2021/02/14 19:47:16 roy Exp $ */ d75 1 a75 1 #define ARP_HDR_ALIGNMENT 3 @ 1.39 log @if_arp: Just KASSERT that arphrd is aligned While here improve readability of checking ARP IEEE1394 matches interface. @ text @d1 1 a1 1 /* $NetBSD: if_arp.h,v 1.38 2021/02/13 07:57:09 roy Exp $ */ d75 1 @ 1.38 log @if_arp: Ensure that arphdr is aligned @ text @d1 1 a1 1 /* $NetBSD: if_arp.h,v 1.37 2021/02/03 18:13:13 roy Exp $ */ a74 8 #ifdef __NO_STRICT_ALIGNMENT #define ARP_HDR_ALIGNED_P(ah) 1 #else #define ARP_HDR_ALIGNED_P(ah) ((((vaddr_t) (ah)) & 3) == 0) #endif #ifdef __CTASSERT __CTASSERT(sizeof(struct arphdr) == 8); #endif @ 1.37 log @CTASSERT -> __CTASSERT to unbreak userland build. While here move __packed in tcp_debug.h back to where it was and note removal warrants more investigation. @ text @d1 1 a1 1 /* $NetBSD: if_arp.h,v 1.36 2021/02/03 11:53:43 roy Exp $ */ d75 5 @ 1.36 log @Sprinkle CTASSERT to enforce on-wire layout without __packed @ text @d1 1 a1 1 /* $NetBSD: if_arp.h,v 1.35 2021/02/03 10:31:10 roy Exp $ */ d75 2 a76 2 #ifdef CTASSERT CTASSERT(sizeof(struct arphdr) == 8); @ 1.35 log @Whitespace @ text @d1 1 a1 1 /* $NetBSD: if_arp.h,v 1.34 2021/02/03 05:51:40 roy Exp $ */ d75 3 @ 1.34 log @Remove __packed from various network structures They are already network aligned and adding the __packed attribute just causes needless compiler warnings about accssing members of packed objects. @ text @d1 1 a1 1 /* $NetBSD: if_arp.h,v 1.33 2018/06/30 15:08:04 christos Exp $ */ d48 16 a63 16 #define ARPHRD_ETHER 1 /* ethernet hardware format */ #define ARPHRD_IEEE802 6 /* IEEE 802 hardware format */ #define ARPHRD_ARCNET 7 /* ethernet hardware format */ #define ARPHRD_FRELAY 15 /* frame relay hardware format */ #define ARPHRD_STRIP 23 /* Ricochet Starmode Radio hardware format */ #define ARPHRD_IEEE1394 24 /* IEEE 1394 (FireWire) hardware format */ uint16_t ar_pro; /* format of protocol address */ uint8_t ar_hln; /* length of hardware address */ uint8_t ar_pln; /* length of protocol address */ uint16_t ar_op; /* one of: */ #define ARPOP_REQUEST 1 /* request to resolve address */ #define ARPOP_REPLY 2 /* response to previous request */ #define ARPOP_REVREQUEST 3 /* request protocol address given hardware */ #define ARPOP_REVREPLY 4 /* response giving protocol address */ #define ARPOP_INVREQUEST 8 /* request to identify peer */ #define ARPOP_INVREPLY 9 /* response identifying peer */ @ 1.33 log @Provide an inline to return the data part of the arp packet instead of open-coding it in multiple places. @ text @d1 1 a1 1 /* $NetBSD: if_arp.h,v 1.32 2018/04/19 21:20:43 christos Exp $ */ d74 1 a74 1 } __packed; @ 1.33.12.1 log @Sync with HEAD. @ text @d1 1 a1 1 /* $NetBSD: if_arp.h,v 1.43 2021/02/19 14:51:59 christos Exp $ */ d48 16 a63 16 #define ARPHRD_ETHER 1 /* ethernet hardware format */ #define ARPHRD_IEEE802 6 /* IEEE 802 hardware format */ #define ARPHRD_ARCNET 7 /* ethernet hardware format */ #define ARPHRD_FRELAY 15 /* frame relay hardware format */ #define ARPHRD_STRIP 23 /* Ricochet Starmode Radio hardware format */ #define ARPHRD_IEEE1394 24 /* IEEE 1394 (FireWire) hardware format */ uint16_t ar_pro; /* format of protocol address */ uint8_t ar_hln; /* length of hardware address */ uint8_t ar_pln; /* length of protocol address */ uint16_t ar_op; /* one of: */ #define ARPOP_REQUEST 1 /* request to resolve address */ #define ARPOP_REPLY 2 /* response to previous request */ #define ARPOP_REVREQUEST 3 /* request protocol address given hardware */ #define ARPOP_REVREPLY 4 /* response giving protocol address */ #define ARPOP_INVREQUEST 8 /* request to identify peer */ #define ARPOP_INVREPLY 9 /* response identifying peer */ d74 1 a74 1 }; @ 1.32 log @s/static inline/static __inline/g for consistency. @ text @d1 1 a1 1 /* $NetBSD: if_arp.h,v 1.31 2018/02/13 08:43:26 maxv Exp $ */ d77 6 d85 1 a85 1 return ((uint8_t *)(ap + 1)) + 0; d91 1 a91 1 return ((uint8_t *)(ap + 1)) + ap->ar_hln; d100 1 a100 1 return ((uint8_t *)(ap + 1)) + ap->ar_hln + ap->ar_pln; d108 1 a108 1 return ((uint8_t *)(ap + 1)) + ap->ar_hln + ap->ar_pln; d110 1 a110 2 return ((uint8_t *)(ap + 1)) + ap->ar_hln + ap->ar_pln + ap->ar_hln; @ 1.32.2.1 log @Sync with HEAD @ text @d1 1 a1 1 /* $NetBSD: if_arp.h,v 1.33 2018/06/30 15:08:04 christos Exp $ */ a76 6 ar_data(struct arphdr *ap) { return (uint8_t *)(void *)(ap + 1); } static __inline uint8_t * d79 1 a79 1 return ar_data(ap) + 0; d85 1 a85 1 return ar_data(ap) + ap->ar_hln; d94 1 a94 1 return ar_data(ap) + ap->ar_hln + ap->ar_pln; d102 1 a102 1 return ar_data(ap) + ap->ar_hln + ap->ar_pln; d104 2 a105 1 return ar_data(ap) + ap->ar_hln + ap->ar_pln + ap->ar_hln; @ 1.31 log @Define ar_* as inlined functions, not as macros. Makes it easier to understand why ARPHRD_IEEE1394 needs to be handled with care - it doesn't have ar_tha. @ text @d1 1 a1 1 /* $NetBSD: if_arp.h,v 1.30 2015/08/31 08:05:20 ozaki-r Exp $ */ d76 1 a76 1 static inline uint8_t * d82 1 a82 1 static inline uint8_t * d88 1 a88 1 static inline uint8_t * d98 1 a98 1 static inline uint8_t * @ 1.31.2.1 log @Sync with HEAD @ text @d1 1 a1 1 /* $NetBSD: if_arp.h,v 1.32 2018/04/19 21:20:43 christos Exp $ */ d76 1 a76 1 static __inline uint8_t * d82 1 a82 1 static __inline uint8_t * d88 1 a88 1 static __inline uint8_t * d98 1 a98 1 static __inline uint8_t * @ 1.31.2.2 log @Sync with HEAD @ text @d1 1 a1 1 /* $NetBSD: if_arp.h,v 1.33 2018/06/30 15:08:04 christos Exp $ */ a76 6 ar_data(struct arphdr *ap) { return (uint8_t *)(void *)(ap + 1); } static __inline uint8_t * d79 1 a79 1 return ar_data(ap) + 0; d85 1 a85 1 return ar_data(ap) + ap->ar_hln; d94 1 a94 1 return ar_data(ap) + ap->ar_hln + ap->ar_pln; d102 1 a102 1 return ar_data(ap) + ap->ar_hln + ap->ar_pln; d104 2 a105 1 return ar_data(ap) + ap->ar_hln + ap->ar_pln + ap->ar_hln; @ 1.30 log @Replace ARP cache (llinfo) with lltable/llentry Highlights of the change are: - Use llentry instead of llinfo to manage ARP caches - ARP specific data are stored in the hashed list of an interface instead of the global list (llinfo_arp) - Fine-grain locking on llentry - arptimer (callout) per ARP cache - the global timer callout with the big locks can be removed (though softnet_lock is still required for now) - net.inet.arp.prune is now obsoleted - it was the interval of the global timer callout - net.inet.arp.refresh is now obsoleted - it was a parameter that prevents expiration of active caches - Removed to simplify the timer logic, but we may be able to restore the feature if really needed Proposed on tech-kern and tech-net. @ text @d1 1 a1 1 /* $NetBSD: if_arp.h,v 1.29 2008/04/15 15:17:54 thorpej Exp $ */ d71 1 a71 1 uint8_t ar_tha[]; /* target hardware address */ a73 9 #define ar_sha(ap) (((char *)((ap)+1))+0) #define ar_spa(ap) (((char *)((ap)+1))+(ap)->ar_hln) #define ar_tha(ap) \ (ntohs((ap)->ar_hrd) == ARPHRD_IEEE1394 \ ? NULL : (((char *)((ap)+1))+(ap)->ar_hln+(ap)->ar_pln)) #define ar_tpa(ap) \ (ntohs((ap)->ar_hrd) == ARPHRD_IEEE1394 \ ? (((char *)((ap)+1))+(ap)->ar_hln+(ap)->ar_pln) \ : (((char *)((ap)+1))+(ap)->ar_hln+(ap)->ar_pln+(ap)->ar_hln)) d76 32 @ 1.29 log @Make ARP stats per-cpu. @ text @d1 1 a1 1 /* $NetBSD: if_arp.h,v 1.28 2008/02/20 17:05:52 matt Exp $ */ d130 2 @ 1.29.48.1 log @update from HEAD @ text @d1 1 a1 1 /* $NetBSD$ */ a129 2 void arp_stat_add(int, uint64_t); @ 1.29.68.1 log @Sync with HEAD @ text @d1 1 a1 1 /* $NetBSD: if_arp.h,v 1.30 2015/08/31 08:05:20 ozaki-r Exp $ */ a129 2 void arp_stat_add(int, uint64_t); @ 1.28 log @s/u_\(int[0-9]*_t\)/u\1/g (change u_int*_t to uint*_t) @ text @d1 1 a1 1 /* $NetBSD: if_arp.h,v 1.27 2007/12/25 18:33:44 perry Exp $ */ d104 23 a126 25 struct arpstat { u_quad_t as_sndtotal; /* total packets sent */ u_quad_t as_sndreply; /* replies sent */ u_quad_t as_sndrequest; /* requests sent */ u_quad_t as_rcvtotal; /* total packets received */ u_quad_t as_rcvrequest; /* valid requests received */ u_quad_t as_rcvreply; /* replies received */ u_quad_t as_rcvmcast; /* multicast/broadcast received */ u_quad_t as_rcvbadproto; /* unknown protocol type received */ u_quad_t as_rcvbadlen; /* bad (short) length received */ u_quad_t as_rcvzerotpa; /* received w/ null target ip */ u_quad_t as_rcvzerospa; /* received w/ null src ip */ u_quad_t as_rcvnoint; /* couldn't map to interface */ u_quad_t as_rcvlocalsha; /* received from local hw address */ u_quad_t as_rcvbcastsha; /* received w/ broadcast src */ u_quad_t as_rcvlocalspa; /* received for a local ip [dup!] */ u_quad_t as_rcvoverperm; /* attempts to overwrite static info */ u_quad_t as_rcvoverint; /* attempts to overwrite wrong if */ u_quad_t as_rcvover; /* entries overwritten! */ u_quad_t as_rcvlenchg; /* changes in hw add len */ u_quad_t as_dfrtotal; /* deferred pending ARP resolution. */ u_quad_t as_dfrsent; /* deferred, then sent */ u_quad_t as_dfrdropped; /* deferred, then dropped */ d128 1 a128 2 u_quad_t as_allocfail; /* Failures to allocate llinfo */ }; @ 1.28.6.1 log @Sync with HEAD. @ text @d1 1 a1 1 /* $NetBSD$ */ d104 25 a128 23 #define ARP_STAT_SNDTOTAL 0 /* total packets sent */ #define ARP_STAT_SNDREPLY 1 /* replies sent */ #define ARP_STAT_SENDREQUEST 2 /* requests sent */ #define ARP_STAT_RCVTOTAL 3 /* total packets received */ #define ARP_STAT_RCVREQUEST 4 /* valid requests received */ #define ARP_STAT_RCVREPLY 5 /* replies received */ #define ARP_STAT_RCVMCAST 6 /* multicast/broadcast received */ #define ARP_STAT_RCVBADPROTO 7 /* unknown protocol type received */ #define ARP_STAT_RCVBADLEN 8 /* bad (short) length received */ #define ARP_STAT_RCVZEROTPA 9 /* received w/ null target ip */ #define ARP_STAT_RCVZEROSPA 10 /* received w/ null source ip */ #define ARP_STAT_RCVNOINT 11 /* couldn't map to interface */ #define ARP_STAT_RCVLOCALSHA 12 /* received from local hw address */ #define ARP_STAT_RCVBCASTSHA 13 /* received w/ broadcast src */ #define ARP_STAT_RCVLOCALSPA 14 /* received for a local ip [dup!] */ #define ARP_STAT_RCVOVERPERM 15 /* attempts to overwrite static info */ #define ARP_STAT_RCVOVERINT 16 /* attempts to overwrite wrong if */ #define ARP_STAT_RCVOVER 17 /* entries overwritten! */ #define ARP_STAT_RCVLENCHG 18 /* changes in hw address len */ #define ARP_STAT_DFRTOTAL 19 /* deferred pending ARP resolution */ #define ARP_STAT_DFRSENT 20 /* deferred, then sent */ #define ARP_STAT_DFRDROPPED 21 /* deferred, then dropped */ #define ARP_STAT_ALLOCFAIL 22 /* failures to allocate llinfo */ d130 2 a131 1 #define ARP_NSTATS 23 @ 1.27 log @Convert many of the uses of __attribute__ to equivalent __packed, __unused and __dead macros from cdefs.h @ text @d1 1 a1 1 /* $NetBSD: if_arp.h,v 1.26 2007/03/04 06:03:15 christos Exp $ */ d47 1 a47 1 u_int16_t ar_hrd; /* format of hardware address */ d54 4 a57 4 u_int16_t ar_pro; /* format of protocol address */ u_int8_t ar_hln; /* length of hardware address */ u_int8_t ar_pln; /* length of protocol address */ u_int16_t ar_op; /* one of: */ d69 4 a72 4 u_int8_t ar_sha[]; /* sender hardware address */ u_int8_t ar_spa[]; /* sender protocol address */ u_int8_t ar_tha[]; /* target hardware address */ u_int8_t ar_tpa[]; /* target protocol address */ @ 1.26 log @Kill caddr_t; there will be some MI fallout, but it will be fixed shortly. @ text @d1 1 a1 1 /* $NetBSD: if_arp.h,v 1.25 2005/12/10 23:21:38 elad Exp $ */ d83 1 a83 1 } __attribute__((__packed__)); @ 1.26.22.1 log @Sync with HEAD. @ text @d1 1 a1 1 /* $NetBSD: if_arp.h,v 1.27 2007/12/25 18:33:44 perry Exp $ */ d83 1 a83 1 } __packed; @ 1.26.16.1 log @sync with HEAD @ text @d1 1 a1 1 /* $NetBSD: if_arp.h,v 1.26 2007/03/04 06:03:15 christos Exp $ */ d83 1 a83 1 } __packed; @ 1.26.16.2 log @sync with HEAD @ text @d1 1 a1 1 /* if_arp.h,v 1.26.16.1 2008/01/09 01:57:09 matt Exp */ d47 1 a47 1 uint16_t ar_hrd; /* format of hardware address */ d54 4 a57 4 uint16_t ar_pro; /* format of protocol address */ uint8_t ar_hln; /* length of hardware address */ uint8_t ar_pln; /* length of protocol address */ uint16_t ar_op; /* one of: */ d69 4 a72 4 uint8_t ar_sha[]; /* sender hardware address */ uint8_t ar_spa[]; /* sender protocol address */ uint8_t ar_tha[]; /* target hardware address */ uint8_t ar_tpa[]; /* target protocol address */ @ 1.26.28.1 log @Sync with HEAD @ text @d1 1 a1 1 /* $NetBSD$ */ d83 1 a83 1 } __packed; @ 1.26.24.1 log @Sync with head. @ text @d1 1 a1 1 /* $NetBSD: if_arp.h,v 1.27 2007/12/25 18:33:44 perry Exp $ */ d83 1 a83 1 } __packed; @ 1.25 log @Multiple inclusion protection, as suggested by christos@@ on tech-kern@@ few days ago. @ text @d1 1 a1 1 /* $NetBSD: if_arp.h,v 1.24 2003/08/07 16:32:50 agc Exp $ */ d74 2 a75 2 #define ar_sha(ap) (((caddr_t)((ap)+1))+0) #define ar_spa(ap) (((caddr_t)((ap)+1))+(ap)->ar_hln) d78 1 a78 1 ? NULL : (((caddr_t)((ap)+1))+(ap)->ar_hln+(ap)->ar_pln)) d81 2 a82 2 ? (((caddr_t)((ap)+1))+(ap)->ar_hln+(ap)->ar_pln) \ : (((caddr_t)((ap)+1))+(ap)->ar_hln+(ap)->ar_pln+(ap)->ar_hln)) @ 1.25.26.1 log @Sync with HEAD. @ text @d1 1 a1 1 /* $NetBSD: if_arp.h,v 1.25 2005/12/10 23:21:38 elad Exp $ */ d74 2 a75 2 #define ar_sha(ap) (((char *)((ap)+1))+0) #define ar_spa(ap) (((char *)((ap)+1))+(ap)->ar_hln) d78 1 a78 1 ? NULL : (((char *)((ap)+1))+(ap)->ar_hln+(ap)->ar_pln)) d81 2 a82 2 ? (((char *)((ap)+1))+(ap)->ar_hln+(ap)->ar_pln) \ : (((char *)((ap)+1))+(ap)->ar_hln+(ap)->ar_pln+(ap)->ar_hln)) @ 1.24 log @Move UCB-licensed code from 4-clause to 3-clause licence. Patches provided by Joel Baker in PR 22364, verified by myself. @ text @d1 1 a1 1 /* $NetBSD: if_arp.h,v 1.23 2002/06/24 08:06:22 itojun Exp $ */ d133 1 a133 1 #endif /* _NET_IF_ARP_H_ */ @ 1.24.16.1 log @sync with head. @ text @d1 1 a1 1 /* $NetBSD: if_arp.h,v 1.24 2003/08/07 16:32:50 agc Exp $ */ d133 1 a133 1 #endif /* !_NET_IF_ARP_H_ */ @ 1.24.16.2 log @sync with head. @ text @d1 1 a1 1 /* $NetBSD: if_arp.h,v 1.24.16.1 2006/06/21 15:10:27 yamt Exp $ */ d74 2 a75 2 #define ar_sha(ap) (((char *)((ap)+1))+0) #define ar_spa(ap) (((char *)((ap)+1))+(ap)->ar_hln) d78 1 a78 1 ? NULL : (((char *)((ap)+1))+(ap)->ar_hln+(ap)->ar_pln)) d81 2 a82 2 ? (((char *)((ap)+1))+(ap)->ar_hln+(ap)->ar_pln) \ : (((char *)((ap)+1))+(ap)->ar_hln+(ap)->ar_pln+(ap)->ar_hln)) @ 1.24.16.3 log @sync with head @ text @d1 1 a1 1 /* $NetBSD: if_arp.h,v 1.24.16.2 2007/09/03 14:42:02 yamt Exp $ */ d83 1 a83 1 } __packed; @ 1.24.16.4 log @sync with head. @ text @d1 1 a1 1 /* $NetBSD: if_arp.h,v 1.24.16.3 2008/01/21 09:47:00 yamt Exp $ */ d47 1 a47 1 uint16_t ar_hrd; /* format of hardware address */ d54 4 a57 4 uint16_t ar_pro; /* format of protocol address */ uint8_t ar_hln; /* length of hardware address */ uint8_t ar_pln; /* length of protocol address */ uint16_t ar_op; /* one of: */ d69 4 a72 4 uint8_t ar_sha[]; /* sender hardware address */ uint8_t ar_spa[]; /* sender protocol address */ uint8_t ar_tha[]; /* target hardware address */ uint8_t ar_tpa[]; /* target protocol address */ @ 1.23 log @integrate IEEE1394 ARP into generic ARP logic. XXX there's no check at all in ar_hrd, and we don't set ar_hrd on outgoing. it seems like a bad thing. @ text @d1 1 a1 1 /* $NetBSD: if_arp.h,v 1.22 2001/06/12 15:17:27 wiz Exp $ */ d15 1 a15 5 * 3. All advertising materials mentioning features or use of this software * must display the following acknowledgement: * This product includes software developed by the University of * California, Berkeley and its contributors. * 4. Neither the name of the University nor the names of its contributors @ 1.23.6.1 log @Sync with HEAD @ text @d1 1 a1 1 /* $NetBSD: if_arp.h,v 1.24 2003/08/07 16:32:50 agc Exp $ */ d15 5 a19 1 * 3. Neither the name of the University nor the names of its contributors @ 1.23.6.2 log @Sync with HEAD. @ text @@ 1.23.6.3 log @Fix the sync with head I botched. @ text @d1 1 a1 1 /* $NetBSD: if_arp.h,v 1.23.6.1 2004/08/03 10:54:11 skrll Exp $ */ @ 1.23.6.4 log @Sync with head. @ text @d1 1 a1 1 /* $NetBSD: if_arp.h,v 1.25 2005/12/10 23:21:38 elad Exp $ */ d133 1 a133 1 #endif /* !_NET_IF_ARP_H_ */ @ 1.22 log @receive, not recieve @ text @d1 1 a1 1 /* $NetBSD: if_arp.h,v 1.21 2000/08/15 20:24:57 jhawk Exp $ */ d79 8 a86 3 #define ar_spa(ap) (((caddr_t)((ap)+1))+ (ap)->ar_hln) #define ar_tha(ap) (((caddr_t)((ap)+1))+ (ap)->ar_hln+(ap)->ar_pln) #define ar_tpa(ap) (((caddr_t)((ap)+1))+2*(ap)->ar_hln+(ap)->ar_pln) @ 1.22.2.1 log @sync kqueue branch with HEAD @ text @d1 1 a1 1 /* $NetBSD: if_arp.h,v 1.22 2001/06/12 15:17:27 wiz Exp $ */ d79 3 a81 8 #define ar_spa(ap) (((caddr_t)((ap)+1))+(ap)->ar_hln) #define ar_tha(ap) \ (ntohs((ap)->ar_hrd) == ARPHRD_IEEE1394 \ ? NULL : (((caddr_t)((ap)+1))+(ap)->ar_hln+(ap)->ar_pln)) #define ar_tpa(ap) \ (ntohs((ap)->ar_hrd) == ARPHRD_IEEE1394 \ ? (((caddr_t)((ap)+1))+(ap)->ar_hln+(ap)->ar_pln) \ : (((caddr_t)((ap)+1))+(ap)->ar_hln+(ap)->ar_pln+(ap)->ar_hln)) @ 1.22.14.1 log @catch up with -current. @ text @d1 1 a1 1 /* $NetBSD: if_arp.h,v 1.23 2002/06/24 08:06:22 itojun Exp $ */ d79 3 a81 8 #define ar_spa(ap) (((caddr_t)((ap)+1))+(ap)->ar_hln) #define ar_tha(ap) \ (ntohs((ap)->ar_hrd) == ARPHRD_IEEE1394 \ ? NULL : (((caddr_t)((ap)+1))+(ap)->ar_hln+(ap)->ar_pln)) #define ar_tpa(ap) \ (ntohs((ap)->ar_hrd) == ARPHRD_IEEE1394 \ ? (((caddr_t)((ap)+1))+(ap)->ar_hln+(ap)->ar_pln) \ : (((caddr_t)((ap)+1))+(ap)->ar_hln+(ap)->ar_pln+(ap)->ar_hln)) @ 1.21 log @Add kernel counters for arp events, displayable with netstat -s -f arp @ text @d1 1 a1 1 /* $NetBSD: if_arp.h,v 1.20 1999/08/27 01:52:26 thorpej Exp $ */ d110 1 a110 1 u_quad_t as_rcvreply; /* replies recieved */ @ 1.21.2.1 log @Catch up to -current. @ text @d1 1 a1 1 /* $NetBSD: if_arp.h,v 1.21 2000/08/15 20:24:57 jhawk Exp $ */ d110 1 a110 1 u_quad_t as_rcvreply; /* replies received */ @ 1.21.2.2 log @Catch up to -current. @ text @d1 1 a1 1 /* $NetBSD$ */ d79 3 a81 8 #define ar_spa(ap) (((caddr_t)((ap)+1))+(ap)->ar_hln) #define ar_tha(ap) \ (ntohs((ap)->ar_hrd) == ARPHRD_IEEE1394 \ ? NULL : (((caddr_t)((ap)+1))+(ap)->ar_hln+(ap)->ar_pln)) #define ar_tpa(ap) \ (ntohs((ap)->ar_hrd) == ARPHRD_IEEE1394 \ ? (((caddr_t)((ap)+1))+(ap)->ar_hln+(ap)->ar_pln) \ : (((caddr_t)((ap)+1))+(ap)->ar_hln+(ap)->ar_pln+(ap)->ar_hln)) @ 1.20 log @packed -> __packed__ @ text @d1 1 a1 1 /* $NetBSD: if_arp.h,v 1.19 1999/05/08 01:42:24 matt Exp $ */ d99 32 @ 1.20.2.1 log @Update thorpej_scsipi to -current as of a month ago @ text @d1 1 a1 1 /* $NetBSD: if_arp.h,v 1.21 2000/08/15 20:24:57 jhawk Exp $ */ a98 32 /* * Kernel statistics about arp */ struct arpstat { u_quad_t as_sndtotal; /* total packets sent */ u_quad_t as_sndreply; /* replies sent */ u_quad_t as_sndrequest; /* requests sent */ u_quad_t as_rcvtotal; /* total packets received */ u_quad_t as_rcvrequest; /* valid requests received */ u_quad_t as_rcvreply; /* replies recieved */ u_quad_t as_rcvmcast; /* multicast/broadcast received */ u_quad_t as_rcvbadproto; /* unknown protocol type received */ u_quad_t as_rcvbadlen; /* bad (short) length received */ u_quad_t as_rcvzerotpa; /* received w/ null target ip */ u_quad_t as_rcvzerospa; /* received w/ null src ip */ u_quad_t as_rcvnoint; /* couldn't map to interface */ u_quad_t as_rcvlocalsha; /* received from local hw address */ u_quad_t as_rcvbcastsha; /* received w/ broadcast src */ u_quad_t as_rcvlocalspa; /* received for a local ip [dup!] */ u_quad_t as_rcvoverperm; /* attempts to overwrite static info */ u_quad_t as_rcvoverint; /* attempts to overwrite wrong if */ u_quad_t as_rcvover; /* entries overwritten! */ u_quad_t as_rcvlenchg; /* changes in hw add len */ u_quad_t as_dfrtotal; /* deferred pending ARP resolution. */ u_quad_t as_dfrsent; /* deferred, then sent */ u_quad_t as_dfrdropped; /* deferred, then dropped */ u_quad_t as_allocfail; /* Failures to allocate llinfo */ }; @ 1.19 log @Add ARP hardware type for IEEE 1394 (FireWire) @ text @d1 1 a1 1 /* $NetBSD: if_arp.h,v 1.18 1999/03/22 22:28:40 bad Exp $ */ d82 1 a82 1 } __attribute__((packed)); @ 1.18 log @Add ARPHRD_IEEE802. @ text @d1 1 a1 1 /* $NetBSD: if_arp.h,v 1.17 1999/02/23 20:11:06 is Exp $ */ d57 1 @ 1.18.4.1 log @Sync w/ -current. @ text @d1 1 a1 1 /* $NetBSD: if_arp.h,v 1.19 1999/05/08 01:42:24 matt Exp $ */ a56 1 #define ARPHRD_IEEE1394 24 /* IEEE 1394 (FireWire) hardware format */ @ 1.17 log @Remove zero length array @ text @d1 1 a1 1 /* $NetBSD: if_arp.h,v 1.15 1999/02/21 17:35:17 kleink Exp $ */ d53 1 @ 1.16 log @Addendum to rev. 1.15: use of __extension__ here is supported in GCC 2.8.0 and above only; since this is the only occurence, fix it locally rather than in as to not remove all the functionality on pre-2.8 systems. XXX Shouldn't use zero-length arrays at all. @ text @d76 5 a80 11 /* LINTED 0 sized arrays are not legal, but we like one here */ #if defined(__GNUC__) && (((__GNUC__ == 2) && (__GNUC_MINOR >= 8)) || \ (__GNUC__ > 2)) __extension__ #endif u_int8_t ar_remain[0]; /* minimum size, normally bigger */ #define ar_sha(ap) (((ap)->ar_remain)+0) #define ar_spa(ap) (((ap)->ar_remain)+(ap)->ar_hln) #define ar_tha(ap) (((ap)->ar_remain)+(ap)->ar_hln+(ap)->ar_pln) #define ar_tpa(ap) (((ap)->ar_remain)+2*(ap)->ar_hln+(ap)->ar_pln) }; @ 1.15 log @Zero-sized arrays are a GNU C extension; from Dave Sainty in PR kern/6271. @ text @d1 1 a1 1 /* $NetBSD: if_arp.h,v 1.14 1998/12/10 15:11:05 christos Exp $ */ d77 2 d80 1 @ 1.14 log @linted comment @ text @d1 1 a1 1 /* $NetBSD: if_arp.h,v 1.13 1998/02/09 17:43:46 perry Exp $ */ d77 1 @ 1.13 log @add multiple inclusion protection (and cleanup). @ text @d1 1 a1 1 /* $NetBSD: if_arp.h,v 1.12 1997/09/08 02:06:30 mikel Exp $ */ d76 1 @ 1.12 log @eliminate non-comment text after #endifs; from Dave Sainty in PR kern/4091 @ text @d1 1 a1 1 /* $NetBSD: if_arp.h,v 1.11 1997/03/25 02:30:52 jonathan Exp $ */ d38 2 a39 2 #ifndef _IF_ARP_H_ #define _IF_ARP_H_ d99 1 a99 1 #endif /* _IF_ARP_H_ */ @ 1.11 log @Add ARP hardware type for Richochet "starmode" radio addresses. @ text @d1 1 a1 1 /* $NetBSD: if_arp.h,v 1.10 1997/03/23 01:22:36 is Exp $ */ d99 1 a99 1 #endif _IF_ARP_H_ @ 1.11.4.1 log @Update marc-pcmcia branch from trunk. @ text @d1 1 a1 1 /* $NetBSD: if_arp.h,v 1.12 1997/09/08 02:06:30 mikel Exp $ */ d99 1 a99 1 #endif /* _IF_ARP_H_ */ @ 1.10 log @Fix several bugs related to the new ARP code, and ARCnet ARP support. Among other, add ARPHRD_ARCNET definition, make sure the hardware type is set on outgoing ARP packets, make sure we dont send out replies as broadcasts. @ text @d1 1 a1 1 /* $NetBSD: if_arp.h,v 1.9 1997/03/15 18:12:23 is Exp $ */ d55 1 @ 1.9 log @New ARP system, supports IPv4 over any hardware link. Some of the stuff (e.g., rarpd, bootpd, dhcpd etc., libsa) still will only support Ethernet. Tcpdump itself should be ok, but libpcap needs lot of work. For the detailed change history, look at the commit log entries for the is-newarp branch. @ text @d1 1 a1 1 /* $NetBSD: if_arp.h,v 1.8.8.2 1997/03/12 15:56:56 is Exp $ */ d53 1 @ 1.8 log @fixed sized types, where appropriate. when casting pointers to integers to do math on them, cast to long. ioctl commands are u_longs. @ text @d1 1 a1 1 /* $NetBSD: if_arp.h,v 1.7 1994/06/29 06:36:07 cgd Exp $ */ d38 2 d74 5 d81 1 d96 2 @ 1.8.8.1 log @- Add macros, to if_arp.h:struct arphdr, to access an ARP messages' variable fields based on the ar_hln and ar_pln fields. - Add AR_ARP case to ether_output, using the ar_tha() macro defined above. @ text @d1 1 a1 1 /* $NetBSD: if_arp.h,v 1.8 1995/03/08 02:56:52 cgd Exp $ */ a71 5 u_int8_t ar_remain[0]; /* minimum size, normally bigger */ #define ar_sha(ap) (((ap)->ar_remain)+0) #define ar_spa(ap) (((ap)->ar_remain)+(ap)->ar_hln) #define ar_tha(ap) (((ap)->ar_remain)+(ap)->ar_hln+(ap)->ar_pln) #define ar_tpa(ap) (((ap)->ar_remain)+2*(ap)->ar_hln+(ap)->ar_pln) a72 1 @ 1.8.8.2 log @Merge in changes from The Trunk @ text @d1 1 a1 1 /* $NetBSD: if_arp.h,v 1.8.8.1 1997/02/11 20:21:11 is Exp $ */ a37 2 #ifndef _IF_ARP_H_ #define _IF_ARP_H_ a93 2 #endif _IF_ARP_H_ @ 1.7 log @New RCS ID's, take two. they're more aesthecially pleasant, and use 'NetBSD' @ text @d1 1 a1 1 /* $NetBSD$ */ d49 1 a49 1 u_short ar_hrd; /* format of hardware address */ d52 4 a55 4 u_short ar_pro; /* format of protocol address */ u_char ar_hln; /* length of hardware address */ u_char ar_pln; /* length of protocol address */ u_short ar_op; /* one of: */ d67 4 a70 4 u_char ar_sha[]; /* sender hardware address */ u_char ar_spa[]; /* sender protocol address */ u_char ar_tha[]; /* target hardware address */ u_char ar_tpa[]; /* target protocol address */ @ 1.6 log @Update to 4.4-Lite networking code, with a few local changes. @ text @d1 2 d35 1 a35 2 * from: @@(#)if_arp.h 8.1 (Berkeley) 6/10/93 * $Id: $ @ 1.5 log @Add definitions for RARP request and reply. @ text @d2 2 a3 2 * Copyright (c) 1986 Regents of the University of California. * All rights reserved. d33 2 a34 2 * from: @@(#)if_arp.h 7.4 (Berkeley) 6/28/90 * $Id: if_arp.h,v 1.4 1993/08/03 01:51:16 glass Exp $ a36 3 #ifndef _NET_IF_ARP_H_ #define _NET_IF_ARP_H_ d49 2 a50 1 #define ARPHRD_ETHER 1 /* ethernet hardware address */ d57 4 a60 2 #define REVARP_REQUEST 3 /* reverse ARP request */ #define REVARP_REPLY 4 /* reverse ARP reply */ d65 6 a70 4 /* u_char ar_sha[]; * sender hardware address */ /* u_char ar_spa[]; * sender protocol address */ /* u_char ar_tha[]; * target hardware address */ /* u_char ar_tpa[]; * target protocol address */ a86 2 #endif /* !_NET_IF_ARP_H_ */ @ 1.4 log @more "warning: `/*' within comment" fixes @ text @d34 1 a34 1 * $Id: if_arp.h,v 1.3 1993/05/20 03:05:57 cgd Exp $ d59 2 @ 1.3 log @add rcs ids to everything, and clean up headers @ text @d34 1 a34 1 * $Id$ d63 4 a66 4 /* u_char ar_sha[]; /* sender hardware address */ /* u_char ar_spa[]; /* sender protocol address */ /* u_char ar_tha[]; /* target hardware address */ /* u_char ar_tpa[]; /* target protocol address */ @ 1.2 log @Add consistent multiple-inclusion protection. @ text @d33 2 a34 1 * @@(#)if_arp.h 7.4 (Berkeley) 6/28/90 @ 1.1 log @Initial revision @ text @d36 3 d82 2 @ 1.1.1.1 log @initial import of 386bsd-0.1 sources @ text @@ 1.1.1.2 log @Import 4.4BSD-Lite for reference @ text @d2 2 a3 2 * Copyright (c) 1986, 1993 * The Regents of the University of California. All rights reserved. d33 1 a33 1 * @@(#)if_arp.h 8.1 (Berkeley) 6/10/93 d48 1 a48 2 #define ARPHRD_ETHER 1 /* ethernet hardware format */ #define ARPHRD_FRELAY 15 /* frame relay hardware format */ a54 4 #define ARPOP_REVREQUEST 3 /* request protocol address given hardware */ #define ARPOP_REVREPLY 4 /* response giving protocol address */ #define ARPOP_INVREQUEST 8 /* request to identify peer */ #define ARPOP_INVREPLY 9 /* response identifying peer */ d59 4 a62 6 #ifdef COMMENT_ONLY u_char ar_sha[]; /* sender hardware address */ u_char ar_spa[]; /* sender protocol address */ u_char ar_tha[]; /* target hardware address */ u_char ar_tpa[]; /* target protocol address */ #endif @