From owner-man-jp-reviewer@jp.freebsd.org  Sun Apr 11 23:58:42 1999
Received: (from daemon@localhost)
	by jaz.jp.freebsd.org (8.9.2+3.1W/8.7.3) id XAA20455;
	Sun, 11 Apr 1999 23:58:42 +0900 (JST)
	(envelope-from owner-man-jp-reviewer@jp.FreeBSD.org)
Received: from april.on.rim.or.jp (root@april.on.rim.or.jp [202.247.131.85])
	by jaz.jp.freebsd.org (8.9.2+3.1W/8.7.3) with ESMTP id XAA20449
	for <man-jp-reviewer@jp.freebsd.org>; Sun, 11 Apr 1999 23:58:41 +0900 (JST)
	(envelope-from ryo2@on.rim.or.jp)
Received: from quill.on.rim.or.jp (ppp093.jp.rim.or.jp [202.247.164.93])
	by april.on.rim.or.jp (8.8.8/3.6W-RIMNET-98-06-09) with ESMTP id XAA18495
	for <man-jp-reviewer@jp.freebsd.org>; Sun, 11 Apr 1999 23:58:36 +0900 (JST)
Message-Id: <199904111458.XAA18495@april.on.rim.or.jp>
Received: from localhost by quill.on.rim.or.jp (8.8.8/3.5Wpl5-97111919)
	id XAA00465; Sun, 11 Apr 1999 23:30:47 +0900 (JST)
To: man-jp-reviewer@jp.freebsd.org
From: Yoshishige ARAI <ryo2@on.rim.or.jp>
X-Mailer: Mew version 1.93 on XEmacs 20.4 (Emerald)
Mime-Version: 1.0
Content-Type: Multipart/Mixed;
	boundary="--Next_Part(Sun_Apr_11_23:30:32_1999_809)--"
Content-Transfer-Encoding: 7bit
Date: Sun, 11 Apr 1999 23:30:47 +0900 (JST)
X-Dispatcher: imput version 980905(IM100)
Lines: 757
Reply-To: man-jp-reviewer@jp.freebsd.org
Precedence: list
X-Distribute: distribute version 2.1 (Alpha) patchlevel 24e+990405
X-Sequence: man-jp-reviewer 1305
Subject: [man-jp-reviewer 1305] bpf.4
Errors-To: owner-man-jp-reviewer@jp.freebsd.org
Sender: owner-man-jp-reviewer@jp.freebsd.org
X-Originator: ryo2@on.rim.or.jp

----Next_Part(Sun_Apr_11_23:30:32_1999_809)--
Content-Type: Text/Plain; charset=iso-2022-jp
Content-Transfer-Encoding: 7bit

$B$"$i$$$G$9!#(B

bpf.4 $B$N?75,Lu$G$9!#(B
$B$^$:!"Lu8l$G$9$C$-$j$7$J$+$C$?$b$N$+$i!#(B

byte order
  $B4{Lu$N(B man page $B$G$b(B
  $B%P%$%H=g=x(B(locate.1)$B$H(B
  $B%P%$%H%*!<%@(B(file.1 rwhod.8 strfile.8 unstr.8 ..)$B$HFs<oN`$"$j$^$9!#(B

semi-hierarchical fashion
  $BH>3,AXE*(B ?

$BJ8>O$b?t$+=j!"M}2r$G$-$J$$$^$^Lu$7$?$H$3$m$,$"$k$N$G!"8f;XE&2<$5$$!#(B
--------
$B9S0fNI=E(B(Yoshishige Arai)
ryo2@on.rim.or.jp


----Next_Part(Sun_Apr_11_23:30:32_1999_809)--
Content-Type: Text/Plain; charset=iso-2022-jp
Content-Transfer-Encoding: 7bit
Content-Description: bpf.4
Content-Disposition: attachment; filename=bpf.4

.\" Copyright (c) 1990 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: (1) source code distributions
.\" retain the above copyright notice and this paragraph in its entirety, (2)
.\" distributions including binary code include the above copyright notice and
.\" this paragraph in its entirety in the documentation or other materials
.\" provided with the distribution, and (3) all advertising materials mentioning
.\" features or use of this software display the following acknowledgement:
.\" ``This product includes software developed by the University of California,
.\" Lawrence Berkeley Laboratory and its contributors.'' 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 ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
.\" WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
.\" MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
.\"
.\" This document is derived in part from the enet man page (enet.4)
.\" distributed with 4.3BSD Unix.
.\"
.\"	$Id: bpf.4,v 1.16 1999/01/10 04:59:59 danny Exp $
.\" jpman %Id: bpf.4,v 0.0 1999/02/22 16:13:14 horikawa Stab %
.\"
.Dd January 16, 1996
.Dt BPF 4
.Os BSD 4.4
.Sh $BL>>N(B
.Nm bpf
.Nd $B%P!<%/%l%$%Q%1%C%H%U%#%k%?(B
.Sh $B=q<0(B
.Cd pseudo-device bpfilter
.Sh $B2r@b(B
$B%P!<%/%l%$%Q%1%C%H%U%#%k%?$O!"%G!<%?%j%s%/AX$K$*$$$F%W%m%H%3%kHs0MB8$N(B
$B@8$N7A$N%$%s%?!<%U%'!<%9$rDs6!$7$^$9!#(B
$B%M%C%H%o!<%/>e$N$9$Y$F$N%Q%1%C%H$O!"$?$H$(B>$N%[%9%H$K8~$1$i$l$?$b$N$G$"$C(B
$B$F$b!"$3$N5!9=$rDL$8$F%"%/%;%9$9$k$3$H$,$G$-$^$9!#(B
.Pp
$B$3$N%Q%1%C%H%U%#%k%?$O(B
.Pa /dev/bpf0 ,
.Pa /dev/bpf1
$B$J$I$N(B
$B%-%c%i%/%?%9%Z%7%c%k%G%P%$%9$K8+$($^$9!#(B
$B$3$N%G%P%$%9$r%*!<%W%s$7$?8e!"%U%!%$%k5-=R;R$O(B
.Dv BIOCSETIF
ioctl $B$K$h$C$F!"FC<l$J%M%C%H%o!<%/%$%s%?%U%'!<%9$K7k$S$D$1$i$l$^$9!#(B
$BM?$($i$l$?%$%s%?%U%'!<%9$O!"J#?t$N4F;k<T4V$G6&M-$5$l!"(B
$B3F5-=R;R$N4pAC$H$J$k%U%#%k%?$O!"F1$8%Q%1%C%H$NN.$l$r8+$k$3$H$K$J$j$^$9!#(B
$B%U%!%$%k$r%*!<%W%s$9$k>e8B$O!"(B
$B%+!<%M%k$N%3%s%U%#%.%e%l!<%7%g%s$GM?$($i$l$?CM$K@)8B$5$l$^$9!#(B
$B>e$N(B
.Sx $B=q<0(B
$B$GM?$($i$l$?Nc$G$O!"@)8B$O(B 16 $B$K$J$C$F$$$^$9!#(B
.Pp
$B$=$l$>$l$N%^%$%J%G%P%$%9$K$O!"JL!9$N%G%P%$%9%U%!%$%k$,I,MW$G$9!#(B
$B0l$D$N%U%!%$%k$,;HMQCf$G$"$k$H$-!"$=$N%U%!%$%k$N%*!<%W%s$O<:GT$7!"(B
.Va errno
$B$K$O(B
.Er EBUSY $B$,%;%C%H$5$l$^$9!#(B
.Pp
$B%*!<%W%s$9$kKh$K!"(B
.Nm bpf
$B%U%!%$%k$O!"<B:]$K$O%f!<%6$,@_Dj2DG=$J%Q%1%C%H%U%#%k%?$K$J$j$^$9!#(B
$B%$%s%?%U%'!<%9$G%Q%1%C%H$r<u?.$7$?$H$-$O!"$=$N%$%s%?%U%'!<%9$r(B
$B4F;k$7$F$$$k$9$Y$F$N%U%!%$%k5-=R;R$O<+J,$N%U%#%k%?$rDL$7$^$9!#(B
$B%Q%1%C%H$r<u$1<h$k3F5-=R;R$O!"<+J,MQ$N%3%T!<$r<u$1<h$j$^$9!#(B
.Pp
$B$=$l$>$l$N%U%!%$%k$+$i$NF~NO$O!"%U%#%k%?$G%^%C%A$7$?%Q%1%C%H$N(B
$B<!$N%0%k!<%W$rJV$7$^$9!#(B
$B@-G=$r>e$2$k$?$a$K$O!"FI$_9~$s$@%P%C%U%!$O(B
.Nm
$B$KFbIt$G;H$o$l$k%P%C%U%!$HF1$8Bg$-$5$K$7$J$1$l$P$J$j$^$;$s!#(B
$B$3$NBg$-$5$O!"(B
.Dv BIOCGBLEN
ioctl ($B2<5-$r;2>H(B) $B$GF@$i$l!"(B
.Dv BIOCSBLEN
$B$G@_Dj$G$-$^$9!#(B
$B$3$N%5%$%:$h$jBg$-$$8D!9$N%Q%1%C%H$O!"(B
$BI,A3E*$K@Z$j5M$a$i$l$F$7$^$&$3$H$KCm0U$7$F2<$5$$!#(B
.Pp
$B$3$N%Q%1%C%H%U%#%k%?$O!"%X%C%@D98GDj$G$"$l$P(B
$B$I$N%j%s%/%l%Y%k%W%m%H%3%k$G$b%5%]!<%H$7$^$9!#:#$N$H$3$m!"%$!<%5%M%C%H$H(B
.Tn SLIP
$B$H(B
.Tn PPP
$B%I%i%$%P$@$1$,(B
.Nm bpf
$B$HBPOCE*$K=hM}$9$k$h$&$K=$@5$5$l$F$$$^$9!#(B
.Pp
$B%Q%1%C%H%G!<%?$O%M%C%H%o!<%/%P%$%H%*!<%@$K$J$C$F$$$k$N$G!"(B
$B%"%W%j%1!<%7%g%s$,J#?t%P%$%H$NCM$r0z$-=P$9$?$a$K$O(B
.Xr byteorder 3
$B%^%/%m$r;H$o$J$1$l$P$J$j$^$;$s!#(B
.Pp
$B%Q%1%C%H$O!"(B
.Nm bpf
$B%U%!%$%k5-=R;R$K=q$-9~$`$3$H$G%M%C%H%o!<%/>e$KAw=P$5$l$^$9!#(B
$B0l$D$N%Q%1%C%H$O=q$-9~$_Kh$K=hM}$5$l$k$?$a!"=q$-9~$_$O%P%C%U%!$5$l$^$;$s!#(B
$B8=:_%$!<%5%M%C%H$H(B
.Tn SLIP
$B%j%s%/$X$N=q$-9~$_$@$1$,%5%]!<%H$5$l$F$$$^$9!#(B
.Sh IOCTLS
$B2<5-$N(B
.Xr ioctl 2
$B%3%^%s%I%3!<%I$,(B <net/bpf.h> $B$GDj5A$5$l$F$$$^$9!#$9$Y$F$N%3%^%s%I$O(B
$B$3$l$i$r4^$`I,MW$,$"$j$^$9!#(B
.Bd -literal
	#include <sys/types.h>
	#include <sys/time.h>
	#include <sys/ioctl.h>
	#include <net/bpf.h> 
.Ed
.Pp
$B99$K!"(B
.Dv BIOCGETIF
$B$H(B
.Dv BIOCSETIF
$B$O!"(B
.Aq Pa sys/socket.h
$B$H(B
.Aq Pa net/if.h
$B$rI,MW$H$7$^$9!#(B

.Dv FIONREAD
$B$H(B
.Dv SIOCGIFADDR
$B$K2C$($F!"0J2<$N%3%^%s%I$,!"%*!<%W%s$5$l$?(B
.Nm
$B%U%!%$%k$KE,MQ$5$l$^$9!#(B
.Xr ioctl 2
$B$X$N(B (3 $BHVL\$N(B) $B0z?t$O!"(B
$B;XDj$N7?$X$N%]%$%s%?$G$J$1$l$P$J$j$^$;$s!#(B

.Bl -tag -width BIOCGRTIMEOUT
.It Dv BIOCGBLEN
.Pq Li u_int
.Nm
$B%U%!%$%k$rFI$`$?$a$KI,MW$J%P%C%U%!D9$rJV$7$^$9!#(B
.It Dv BIOCSBLEN
.Pq Li u_int
.Nm
$B%U%!%$%k$rFI$`$?$a$N%P%C%U%!D9$r@_Dj$7$^$9!#%P%C%U%!$O!"%U%!%$%k$r(B
.Dv BIOCSETIF
$B$N%$%s%?!<%U%'!<%9$K@\B3$9$kA0$K@_Dj$5$l$J$1$l$P$J$j$^$;$s!#(B
$BMW5a$5$l$?%P%C%U%!%5%$%:$,E,MQ$G$-$J$+$C$?>l9g$O!"(B
$B5v$5$l$k:G$b6a$$%5%$%:$K@_Dj$5$l!"$=$l$,0z?t$NCf$KJV$5$l$^$9!#(B
$B$3$N%5%$%:$G$J$$%Q%1%C%H$,%P%C%U%!$rDL$C$?$H$-$K$O!"(B
$BFI$_9~$_%3!<%k$O(B
.Er EIO
$B$NCM$G=*N;$7$^$9!#(B
.It Dv BIOCGDLT
.Pq Li u_int
$B@\B3$5$l$?%$%s%?%U%'!<%9$N2<$K$"$k%G!<%?%j%s%/AX$N7?$rJV$7$^$9!#(B
$B%$%s%?%U%'!<%9$,;XDj$5$l$J$+$C$?>l9g(B
.Er EINVAL
$B$,JV$5$l$^$9!#(B
.Dq Li DLT_
$B$,A0CV$9$k%G%P%$%9$N7?$O!"(B
.Aq Pa net/bpf.h
$B$GDj5A$5$l$F$$$^$9!#(B
.It Dv BIOCPROMISC
$B6/@)E*$K%$%s%?%U%'!<%9$rL5:9JL(B (promiscuous) $B%b!<%I$K$7$^$9!#(B
$B%m!<%+%k%[%9%H$K8~$1$i$l$?$b$N$r=|$/$9$Y$F$N%Q%1%C%H$,=hM}$5$l$^$9!#(B
$BJ#?t$N%U%!%$%k$,M?$($i$l$?%$%s%?%U%'!<%9$r4F;k$9$k$3$H$,$G$-$k$N$G!"(B
$B$=$N%$%s%?%U%'!<%9$rL5:9JL$G$J$$%b!<%I$G%*!<%W%s$7$?4F;k<T$G$b(B
$B%Q%1%C%H$rL5:9JL$K<u?.$9$k$3$H$,$G$-$F$7$^$$$^$9!#(B
$B$3$NLdBj$OE,Ev$J%U%#%k%?$G6:@5$9$k$3$H$,$G$-$^$9!#(B
.It Dv BIOCFLUSH
$BF~NO%Q%1%C%H$N%P%C%U%!$r%U%i%C%7%e$7!"(BBIOCGSTATS $B$GJV$5$l$k(B
$B=87WCM$r%j%;%C%H$7$^$9!#(B
.It Dv BIOCGETIF
.Pq Li "struct ifreq"
$B%U%!%$%k$,4F;k$7$F$$$k%O!<%I%&%'%"%$%s%?%U%'!<%9$NL>A0$rJV$7$^$9!#(B
$BL>A0$O(B
.Li ifreq
$B9=B$BN$N(B ifr_name $B%U%#!<%k%I$KJV$5$l$^$9!#(B
$BB>$N%U%#!<%k%I$O$9$Y$FL$Dj5A$H$J$j$^$9!#(B
.It Dv BIOCSETIF
.Pq Li "struct ifreq"
$B%U%!%$%k$K4X78$9$k%O!<%I%&%'%"%$%s%?%U%'!<%9$r@_Dj$7$^$9!#(B
$B$3$N%3%^%s%I$O!"$I$s$J%Q%1%C%H$rFI$_9~$`$h$j$bA0$K(B
$B<B9T$5$l$J$1$l$P$$$1$^$;$s!#(B
$B%G%P%$%9$O!"(B
.Li ifreq
$B9=B$BN$N(B
.Li ifr_name
$B%U%#!<%k%I$r;H$C$FL>A0$r;XDj$5$l$^$9!#(B
$B$5$i$K(B
.Dv BIOCFLUSH
$B$NF0:n$r<B9T$7$^$9!#(B
.It Dv BIOCSRTIMEOUT
.It Dv BIOCGRTIMEOUT
.Pq Li "struct timeval"
$B%?%$%`%"%&%H%Q%i%a!<%?$r%;%C%H$^$?$O<hF@$7$^$9!#(B
$B0z?t$K$O!"FI$_9~$_MW5a$G%?%$%`%"%&%H$9$k$^$G$N(B
$BBT$A;~4V$ND9$5$r;XDj$7$^$9!#(B
$B$3$N%Q%i%a!<%?$O!"(B
.Xr open 2
$B$K$h$j%<%m$K=i4|2=$5$l!"%?%$%`%"%&%H$7$J$$$3$H$r;X<($7$^$9!#(B
.It Dv BIOCGSTATS
.Pq Li "struct bpf_stat"
$B%Q%1%C%H=87W$N0J2<$N9=B$BN$rJV$7$^$9(B:
.Bd -literal
struct bpf_stat {
	u_int bs_recv;    /* $B<u?.$7$?%Q%1%C%H?t(B */
	u_int bs_drop;    /* $BMn$7$?%Q%1%C%H?t(B */
};
.Ed
.Pp
$B%U%#!<%k%I$O<!$N$h$&$K$J$j$^$9(B:
.Bl -hang -offset indent
.It Li bs_recv
$B%*!<%W%s$^$?$O%j%;%C%H8e$K!"$3$N5-=R;R$K$h$C$F<u?.$7$?%Q%1%C%H?t!#(B
($B:G8e$NFI$_9~$_%3!<%k$+$i%P%C%U%!$5$l$?$b$N$r4^$_$^$9(B)
.It Li bs_drop
$B%U%#%k%?$,<u$1<h$j$O$7$?$,!"%P%C%U%!$N%*!<%P%U%m!<$K$h$j(B
$B%+!<%M%k$,Mn$7$?%Q%1%C%H$N?t!#(B
($B$9$J$o$A!"%"%W%j%1!<%7%g%s$NF~NO$O%Q%1%C%H$N%H%i%U%#%C%/$G0];}$5$l$k$o(B
$B$1$G$O$J$$$H$$$&$3$H$G$9(B)
.El
.It Dv BIOCIMMEDIATE
.Pq Li u_int
$B0z?t$N??56CM$K4p$E$$$F(B ``$BD>@\%b!<%I(B'' $B$rM-8z$^$?$OL58z$K$7$^$9!#(B
$BD>@\%b!<%I$,M-8z$J$H$-!"<u?.%Q%1%C%H>e$NFI$_9~$_$O!"(B
$B$?$@$A$KJV$5$l$^$9!#L58z$J$H$-!"F~NO$O%+!<%M%k%P%C%U%!$,$$$C$Q$$$K$J$k$+!"(B
$B$^$?$O%?%$%`%"%&%H$,5/$3$k$^$G%V%m%C%/$5$l$^$9!#(B
$B$3$l$O!"%j%"%k%?%$%`$K%a%C%;!<%8$K1~Ez$7$J$1$l$P$J$i$J$$(B
.Xr rarpd 8
$B$N$h$&$J%W%m%0%i%`$K$OJXMx$G$9!#(B
$B?7$7$$%U%!%$%k$K$D$$$F$N%G%U%)%k%H$O%*%U$K$J$j$^$9!#(B
.It Dv BIOCSETF
.Pq Li "struct bpf_program"
$B6=L#$N$J$$%Q%1%C%H$r<N$F$k$?$a$K(B
$B%+!<%M%k$,;H$&%U%#%k%?%W%m%0%i%`$r%;%C%H$7$^$9!#(B
$B0J2<$N9=B$BN$rDL$7$F;XNa$NG[Ns$H$=$ND9$5$,EO$5$l$^$9(B:
.Bd -literal
struct bpf_program {
	int bf_len;
	struct bpf_insn *bf_insns; 
};
.Ed

$B%U%#%k%?%W%m%0%i%`$O(B
.Li bf_insns
$B%U%#!<%k%I$G;XDj$5$l!"(B
.Sq Li struct bpf_insn
$B$N9=B$BNCf$K$*$1$k%W%m%0%i%`$ND9$5$,(B
.Li bf_len
$B%U%#!<%k%I$GM?$($i$l$^$9!#(B
$B$=$7$F!"(B
.Dv BIOCFLUSH
$B$NF0:n$,<B9T$5$l$^$9!#(B
$B%U%#%k%?8@8l$N@bL@$K$D$$$F$O(B
.Sx "FILTER MACHINE"
$B$N%;%/%7%g%s$r8+$F2<$5$$!#(B
.It Dv BIOCVERSION
.Pq Li "struct bpf_version"
$B8=:_%+!<%M%k$KG'<1$5$l$F$$$k%U%#%k%?8@8l$N%a%8%c!<!"%^%$%JHV9f$rJV$7$^(B
$B$9!#%U%#%k%?$r%$%s%9%H!<%k$9$kA0$K!"%"%W%j%1!<%7%g%s$O8=:_$N%P!<%8%g%s$,(B
$BF0$$$F$$$k%+!<%M%k$N$b$N$H8_49$G$"$k$+$I$&$+$rD4$Y$J$1$l$P$J$j$^$;$s!#(B
$B%a%8%c!<HV9f$,0lCW$7!"%"%W%j%1!<%7%g%s$N%^%$%JHV9f$,(B
$B%+!<%M%k$N%^%$%JHV9f$KEy$7$$$+$=$l0J2<$J$i!"%P!<%8%g%sHV9f$O8_49$G$9!#(B
$B%+!<%M%k$N%P!<%8%g%sHV9f$O0J2<$N9=B$BN$GJV$5$l$^$9(B:
.Bd -literal
struct bpf_version {
        u_short bv_major;
        u_short bv_minor;
};
.Ed
.Pp
$B8=:_$N%P!<%8%g%sHV9f$O(B
.Aq Pa net/bpf.h
$B$+$i(B
.Dv BPF_MAJOR_VERSION
$B$H(B
.Dv BPF_MINOR_VERSION
$B$GM?$($i$l$^$9!#(B
$BHs8_49$J%U%#%k%?$O!"Dj5A$5$l$J$$F0:n$K=*$o$k$+$b$7$l$^$;$s(B
($B:G$b$"$j$=$&$J$N$O!"(B
.Fn ioctl
$B$K$h$C$F%(%i!<$,JV$5$l$k$+!"$^$?$O6vA3$K%Q%1%C%H$,0lCW$9$k$3$H$G$9(B) $B!#(B
.Sh BPF $B%X%C%@(B
.Xr read 2
$B$K$h$C$FJV$5$l$k3F%Q%1%C%H$KBP$7$F(B
$B0J2<$N9=B$BN$,MQ0U$5$l$F$$$^$9(B:
.Bd -literal
struct bpf_hdr {
        struct timeval bh_tstamp;     /* $B%?%$%`%9%?%s%W(B */
        u_long bh_caplen;             /* $B%-%c%W%A%c$7$?It0L$ND9$5(B */
        u_long bh_datalen;            /* $B%Q%1%C%H$N%*%j%8%J%k$ND9$5(B */
        u_short bh_hdrlen;            /* bpf $B%X%C%@$ND9$5(B ($B$3$N9=B$BN(B
					 + $B%"%i%$%s%a%s%H%Q%G%#%s%0(B) */
};
.Ed
.Pp
$B%U%#!<%k%I$O%[%9%H=g$GJ]B8$5$l$F$$$F!"0J2<$N$h$&$K$J$j$^$9(B:
.Pp
.Bl -tag -compact -width bh_datalen
.It Li bh_tstamp
$B%Q%1%C%H%U%#%k%?$K$h$C$F!"$=$N%Q%1%C%H$,=hM}$5$l$?;~4V(B
.It Li bh_caplen
$B%Q%1%C%H$N%-%c%W%A%c$5$l$?It0L$ND9$5!#(B
$B$3$l$O%U%#%k%?$H%Q%1%C%HD9$K$h$C$F;XDj$5$l$?!"@Z$j5M$a$k:G>.$NNL$G$9!#(B
.It Li bh_datalen
$B7PO)$+$iN%$l$?%Q%1%C%HD9!#(B
$B$3$NCM$O%U%#%k%?$G;XDj$5$l$?@Z$j5M$a$NNL$K$O0MB8$7$^$;$s!#(B
.It Li bh_hdrlen
.Nm
$B%X%C%@$ND9$5!"$3$l$O(B
.\" XXX - not really a function call
.Fn sizeof "struct bpf_hdr"
$B$KEy$7$$$H$O8B$j$^$;$s!#(B
.El
.Pp
.Li bh_hdrlen
$B%U%#!<%k%I$O%X%C%@$H%j%s%/%l%Y%k%W%m%H%3%k4V$N(B
$B%Q%G%#%s%0$N$?$a$KB8:_$7$^$9!#(B
$B$3$NL\E*$O%Q%1%C%H%G!<%?9=B$$NE,Ev$J%"%i%$%s%a%s%H$rJ]>Z$9$k$3$H$G$"$j!"(B
$B9=B$BN$O%"%i%$%s%a%s%H0MB8$N%"!<%-%F%/%A%c$KI,MW$G!"(B
$BB?$/$NB>$N%"!<%-%F%/%A%c$K$*$1$k@-G=$r8~>e$5$;$^$9!#(B
$B$3$N%Q%1%C%H%U%#%k%?$O(B
.Li bpf_hdr
$B$H%M%C%H%o!<%/AX$N%X%C%@$,%o!<%I%"%i%$%s$K$J$k$3$H$rJ]>Z$7$^$9!#(B
$B%"%i%$%s%a%s%H$,@)Ls$5$l$?%^%7%s>e$G%j%s%/AX%W%m%H%3%k$r%"%/%;%9(B
$B$9$k$H$-$K$O!"E,@Z$JCm0U$,J'$o$l$J$1$l$P$J$j$^$;$s!#(B
($B$3$l$O%$!<%5%M%C%H>e$G$OLdBj$K$O$J$j$^$;$s!#%U%#!<%k%I$N7?$,(B
$B6v?t%*%U%;%C%H$KMn$ACe$/(B short $B$G!"(B
$B%"%I%l%9$,$[$H$s$I%P%$%HC10L$G%"%/%;%9$5$l$k$?$a$G$9(B) $B!#(B
.Pp
$B$5$i$K!"8D!9$N%Q%1%C%H$O%o!<%I6-3&$G;O$^$k$h$&$K%Q%G%#%s%0$5$l$^$9!#(B
$B$3$l$K$h$j!"%"%W%j%1!<%7%g%s$,%Q%1%C%H$+$i<!$N%Q%1%C%H$rF@$kJ}K!$r(B
$BCN$C$F$$$k$3$H$,MW5a$5$l$^$9!#(B
$B%^%/%m(B
.Dv BPF_WORDALIGN
$B$O!"$3$N2aDx$r=u$1$k$?$a$K(B
.Aq Pa net/bpf.h
$B$NCf$GDj5A$5$l$F$$$^$9!#(B
$B0z?t$O:G$b6a$$%o!<%I6-3&CM(B ($B%o!<%I$,(B
.Dv BPF_ALIGNMENT
$B%P%$%HI}(B) $B$K@Z$j>e$2$i$l$^$9!#(B
.Pp
$BNc$($P(B
.Sq Li p
$B$,%Q%1%C%H$N@hF,$r;X$9$H$-!"0J2<$NI=8=$O(B
$B%]%$%s%?$r<!$N%Q%1%C%H$X?J$a$^$9(B:
.Dl p = (char *)p + BPF_WORDALIGN(p->bh_hdrlen + p->bh_caplen)
.Pp
$B%"%i%$%s%a%s%H5!9=$rE,@Z$KF0:n$5$;$k$?$a$K(B
.Xr read 2
$B$KEO$5$l$k%Q%C%U%!$O!"$=$l<+?H$,%o!<%I6-3&$K$J$1$l$P$J$j$^$;$s!#(B
.Xr malloc 3
$B4X?t$O>o$K%o!<%I6-3&$N%P%C%U%!$rJV$7$^$9!#(B
.Sh $B%U%#%k%?%^%7%s(B
$B%U%#%k%?%W%m%0%i%`$O!"$9$Y$F$NJ,4t$,%3!<%I$NA0J}$K8~$-!"(B
.Em return
$BL?Na$G=*$o$kL?Na$NG[Ns$G$9!#(B
$B3FL?Na$O%"%-%e%`%l!<%?!"%$%s%G%C%/%9%l%8%9%?!"0l;~%a%b%j5-21!"(B
$B0EL[$N%W%m%0%i%`%+%&%s%?$+$i@.$k5?;w%^%7%s>uBV>e$G2?$i$+$NF0:n$r9T$J$$$^$9!#(B

$B0J2<$N9=B$BN$OL?Na%U%)!<%^%C%H$NDj5A$G$9(B:
.Bd -literal
struct bpf_insn {
	u_short	code;
	u_char 	jt;
	u_char 	jf;
	u_long k;
};
.Ed

.Li k
$B%U%#!<%k%I$O0[$J$kL?Na$K$h$C$F0[$J$kMQK!$GMQ$$$i$l!"(B
.Li jt
$B$H(B
.Li jf
$B%U%#!<%k%I$OJ,4tL?Na$K$h$C$F%*%U%;%C%H$H$7$FMQ$$$i$l$^$9!#(B
$BA`:n%3!<%I$OH>3,AXE*$J7A$GId9f2=$5$l$^$9!#(B
$BL?Na$K$O(B 8 $B$D$N%/%i%9(B:
.Dv BPF_LD , 
.Dv BPF_LDX ,
.Dv BPF_ST ,
.Dv BPF_STX ,
.Dv BPF_ALU ,
.Dv BPF_JMP ,
.Dv BPF_RET ,
.Dv BPF_MISC
$B$,$"$j$^$9!#(B
$B$$$m$$$m$JB>$N%b!<%I$HA`:n%S%C%H$O<B:]$NL?Na$rM?$($k$?$a$K(B
$B%S%C%H2C;;(B (or) $B$5$l!"%/%i%9$KJQ49$5$l$^$9!#(B
$B%/%i%9$H%b!<%I$O(B
.Aq Pa net/bpf.h
$BFb$GDj5A$5$l$F$$$^$9!#(B

$B0J2<$ODj5A$5$l$?$=$l$>$l$N(B
.Nm
$BL?Na$G$9!#(B
$BJX59E*$K(B A $B$,%"%-%e%`%l!<%?!"(BX $B$,%$%s%G%C%/%9%l%8%9%?!"(B
P[] $B$,%Q%1%C%H%G!<%?!"(BM[] $B$,4s$;=8$a$N0l;~%a%b%j5-21$K;H$o$l$^$9!#(B
P[i:n] $B$O%Q%1%C%HFb$N(B ``i'' $B%P%$%H%*%U%;%C%H$N%G!<%?$r;X$7!"(B
$B%o!<%I(B (n=4)$B!"Id9fL5$7H>%o!<%I(B (n=2)$B!"Id9fL5$7%P%$%H(B (n=1)
$B$H$7$FK]Lu$5$l$^$9!#(B
M[i] $B$O!"0l;~%a%b%j5-21$NCf$G(B i $BHVL\$N%o!<%I$r;X$7!"%o!<%IC10L$N%"%I%l%9(B
$B$@$1$,3d$j?6$i$l$^$9!#%a%b%j5-21$O(B 0 $B$+$i(B
.Dv BPF_MEMWORDS
- 1 $B$KHV9fIU$1$,$5$l$^$9!#(B
.Li k ,
.Li jt ,
.Li jf
$B$O!"L?NaDj5A$NCf$GBP1~$9$k%U%#!<%k%I$K$J$j$^$9!#(B``len'' $B$O!"(B
$B%Q%1%C%HD9$r;2>H$7$^$9!#(B
.Pp
.Bl -tag -width BPF_STXx -compact
.It Dv BPF_LD
$B$3$l$i$NL?Na$O!"CM$r%"%-%e%`%l!<%?$KJ#<L$7$^$9!#(B
$B%=!<%9%*%Z%i%s%I$N7?$O!"(B``$B%"%I%l%7%s%0%b!<%I(B'' $B$G;XDj$5$l!"(B
$BDj?t(B
.Pq Dv BPF_IMM
$B$G$b!"8GDj%*%U%;%C%H$N%Q%1%C%H%G!<%?(B
.Pq Dv BPF_ABS
$B!"2DJQ%*%U%;%C%H$N%Q%1%C%H%G!<%?(B
.Pq Dv BPF_IND
$B!"%Q%1%C%HD9(B
.Pq Dv BPF_LEN
$B!"0l;~%a%b%j5-21Fb$N%o!<%I(B
.Pq Dv BPF_MEM
$B$J$I$G$b$+$^$$$^$;$s!#(B
.Dv BPF_IND
$B$H(B
.Dv BPF_ABS
$B$N>l9g!"%G!<%?%5%$%:$O!"%o!<%I(B
.Pq Dv BPF_W
$B!"%O!<%U%o!<%I(B
.Pq Dv BPF_H
$B!"%P%$%H(B
.Pq Dv BPF_B
$B$N$$$:$l$+$G$J$1$l$P$J$j$^$;$s!#(B
$B$9$Y$F$N;HMQ2DG=$J(B
.Dv BPF_LD
$BL?Na$N0UL#$O0J2<$NDL$j$G$9!#(B
.Pp
.Bl -tag -width "BPF_LD+BPF_W+BPF_IND" -compact
.It Li BPF_LD+BPF_W+BPF_ABS
A <- P[k:4]
.It Li BPF_LD+BPF_H+BPF_ABS
A <- P[k:2]
.It Li BPF_LD+BPF_B+BPF_ABS
A <- P[k:1]
.It Li BPF_LD+BPF_W+BPF_IND
A <- P[X+k:4]
.It Li BPF_LD+BPF_H+BPF_IND
A <- P[X+k:2]
.It Li BPF_LD+BPF_B+BPF_IND
A <- P[X+k:1]
.It Li BPF_LD+BPF_W+BPF_LEN
A <- len
.It Li BPF_LD+BPF_IMM
A <- k
.It Li BPF_LD+BPF_MEM
A <- M[k]
.El

.It Dv BPF_LDX
$B$3$l$i$NL?Na$OCM$r%$%s%G%C%/%9%l%8%9%?$K%m!<%I$7$^$9!#(B
$B%"%I%l%7%s%0%b!<%I$O!"%"%-%e%`%l!<%?$,%m!<%I$9$kCM$KHf$Y$F(B
$B$h$j87L)$G$9$,!"(BIP $B%X%C%@D9$r%m!<%I$9$k8z2LE*$JJ}K!$G$"$k(B
.Dv BPF_MSH
$B$r4^$s$G$$$k$3$H$KN10U$7$F2<$5$$!#(B

.Bl -tag -width "BPF_LDX+BPF_W+BPF_MEM" -compact
.It Li BPF_LDX+BPF_W+BPF_IMM
X <- k
.It Li BPF_LDX+BPF_W+BPF_MEM
X <- M[k]
.It Li BPF_LDX+BPF_W+BPF_LEN
X <- len
.It Li BPF_LDX+BPF_B+BPF_MSH
X <- 4*(P[k:1]&0xf)
.El

.It Dv BPF_ST
$B$3$NL?Na$O%"%-%e%`%l!<%?$r0l;~%a%b%j$KB`Hr$7$^$9!#(B
$B9T$-@h$N2DG=@-$,0l$D$7$+$J$$$N$G%"%I%l%7%s%0%b!<%I$OITMW$G$9!#(B

.Bl -tag -width "BPF_ST" -compact
.It Li BPF_ST
M[k] <- A
.El

.It Dv BPF_STX
$B$3$NL?Na$O%$%s%G%C%/%9%l%8%9%?$r0l;~%a%b%j$KB`Hr$7$^$9!#(B

.Bl -tag -width "BPF_STX" -compact
.It Li BPF_STX
M[k] <- X
.El

.It Dv BPF_ALU
alu $BL?Na$O!"%"%-%e%`%l!<%?$H%$%s%G%C%/%9%l%8%9%?$^$?$ODj?t4V$NA`:n$r<B9T(B
$B$7!"7k2L$r%"%-%e%`%l!<%?$KLa$7$^$9!#(B
$B%P%$%J%jA`:n$N$?$a$K$O%=!<%9%b!<%I$,I,MW$G$9(B
.Po
.Dv BPF_K
$B$^$?$O(B
.Dv BPF_X
.Pc $B!#(B

.Bl -tag -width "BPF_ALU+BPF_MUL+BPF_K" -compact
.It Li BPF_ALU+BPF_ADD+BPF_K
A <- A + k
.It Li BPF_ALU+BPF_SUB+BPF_K
A <- A - k
.It Li BPF_ALU+BPF_MUL+BPF_K
A <- A * k
.It Li BPF_ALU+BPF_DIV+BPF_K
A <- A / k
.It Li BPF_ALU+BPF_AND+BPF_K
A <- A & k
.It Li BPF_ALU+BPF_OR+BPF_K
A <- A | k
.It Li BPF_ALU+BPF_LSH+BPF_K
A <- A << k
.It Li BPF_ALU+BPF_RSH+BPF_K
A <- A >> k
.It Li BPF_ALU+BPF_ADD+BPF_X
A <- A + X
.It Li BPF_ALU+BPF_SUB+BPF_X
A <- A - X
.It Li BPF_ALU+BPF_MUL+BPF_X
A <- A * X
.It Li BPF_ALU+BPF_DIV+BPF_X
A <- A / X
.It Li BPF_ALU+BPF_AND+BPF_X
A <- A & X
.It Li BPF_ALU+BPF_OR+BPF_X
A <- A | X
.It Li BPF_ALU+BPF_LSH+BPF_X
A <- A << X
.It Li BPF_ALU+BPF_RSH+BPF_X
A <- A >> X
.It Li BPF_ALU+BPF_NEG
A <- -A
.El

.It Dv BPF_JMP
$B%8%c%s%WL?Na$O%U%m!<@)8f$rJQ99$7$^$9!#>r7o%8%c%s%W$O(B
$B%"%-%e%`%l!<%?$H!"Dj?t(B
.Pq Dv BPF_K
$B$^$?$O%$%s%G%C%/%9%l%8%9%?(B
.Pq Dv BPF_X
$B4V$NHf3S$r9T$J$$$^$9!#(B
$B7k2L$,??(B ($B$^$?$OHs%<%m(B) $B$G$"$C$?>l9g$K??$NJ,4t$,A*Br$5$l!"(B
$B$=$&$G$J$1$l$P56$NJ,4t$,A*Br$5$l$^$9!#(B
$B%8%c%s%W%*%U%;%C%H$O(B 8 $B%S%C%H$K%(%s%3!<%I$5$l$k$N$G!":GD9$N%8%c%s%W$O(B
256 $BL?Na$G$9!#(B
$B$7$+$7!">o$K%8%c%s%W$9$k(B
.Pq Dv BPF_JA
$BA`:n%3!<%I$O!"%*%U%;%C%H$H$7$F(B 32 $B%S%C%H$N(B
opcode uses the 32 bit
.Li k 
$B%U%#!<%k%I$r;HMQ$7!"G$0U$NN%$l$?9T$-@h$r5v$7$^$9!#(B
$B$9$Y$F$N>r7o$O47=,E*$KId9fL5$7Hf3S$rMQ$$$^$9!#(B

.Bl -tag -width "BPF_JMP+BPF_KSET+BPF_X" -compact
.It Li BPF_JMP+BPF_JA
pc += k
.It Li BPF_JMP+BPF_JGT+BPF_K
pc += (A > k) ? jt : jf
.It Li BPF_JMP+BPF_JGE+BPF_K
pc += (A >= k) ? jt : jf
.It Li BPF_JMP+BPF_JEQ+BPF_K
pc += (A == k) ? jt : jf
.It Li BPF_JMP+BPF_JSET+BPF_K
pc += (A & k) ? jt : jf
.It Li BPF_JMP+BPF_JGT+BPF_X
pc += (A > X) ? jt : jf
.It Li BPF_JMP+BPF_JGE+BPF_X
pc += (A >= X) ? jt : jf
.It Li BPF_JMP+BPF_JEQ+BPF_X
pc += (A == X) ? jt : jf
.It Li BPF_JMP+BPF_JSET+BPF_X
pc += (A & X) ? jt : jf
.El

.It Dv BPF_RET
$B%j%?!<%sL?Na$O%U%#%k%?%W%m%0%i%`$r=*N;$7!"<u?.$9$k%Q%1%C%H$NNL$r(B
$B;XDj$7$^$9(B ($B$9$J$o$A!"@Z$j5M$a$NNL$rJV$7$^$9(B)$B!#(B
$BLa$jCM%<%m$O!"$=$N%Q%1%C%H$,L5;k$5$l$k$Y$-$G$"$k$3$H$rI=$7$F$$$^$9!#(B
$BLa$jCM$ODj?t(B
.Pq Dv BPF_K
$B$^$?$O%"%-%e%`%l!<%?(B
.Pq Dv BPF_A
$B$N$$$:$l$+$G$9!#(B

.Bl -tag -width "BPF_RET+BPF_K" -compact
.It Li BPF_RET+BPF_A
accept A bytes
.It Li BPF_RET+BPF_K
accept k bytes
.El

.It Dv BPF_MISC
$B>e5-$N%/%i%9$KE,9g$7$J$$$b$N$N$?$a$K!"$=$7$FDI2C$5$l$k$Y$-?7$7$$L?Na$N$?(B
$B$a$K!"$=$NB>$N%+%F%4%j$,:n$i$l$^$7$?!#(B
$B8=:_%$%s%G%C%/%9%l%8%9%?$r%"%-%e%`%l!<%?$KJ#<L$9$k!"$^$?$O$=$N5U$r9T$J(B
$B$&%l%8%9%?E>AwL?Na$,$"$j$^$9!#(B

.Bl -tag -width "BPF_MISC+BPF_TAX" -compact
.It Li BPF_MISC+BPF_TAX
X <- A
.It Li BPF_MISC+BPF_TXA
A <- X
.El
.Pp
.Nm
$B%$%s%?!<%U%'!<%9$OG[Ns$N=i4|2=$r=uD9$9$k0J2<$N%^%/%m$rDs6!$7$F$$$^$9(B:
.Fn BPF_STMT opcode operand
$B$H(B
.Fn BPF_JUMP opcode operand true_offset false_offset
.Pp
.Sh $B;HMQNc(B
$B0J2<$N%U%#%k%?$,5U(B ARP $B%G!<%b%s$+$i<hF@$5$l$^$9!#!"%U%#%k%?$O!"(B
$B5U(B ARP $BMW5a$N$_$r<u?.$7$^$9!#(B
.Bd -literal
struct bpf_insn insns[] = {
	BPF_STMT(BPF_LD+BPF_H+BPF_ABS, 12),
	BPF_JUMP(BPF_JMP+BPF_JEQ+BPF_K, ETHERTYPE_REVARP, 0, 3),
	BPF_STMT(BPF_LD+BPF_H+BPF_ABS, 20),
	BPF_JUMP(BPF_JMP+BPF_JEQ+BPF_K, REVARP_REQUEST, 0, 1),
	BPF_STMT(BPF_RET+BPF_K, sizeof(struct ether_arp) + 
		 sizeof(struct ether_header)),
	BPF_STMT(BPF_RET+BPF_K, 0),
};
.Ed
.Pp
$B$3$N%U%#%k%?$O(B 128.3.112.15 $B$H(B 128.3.112.35 $B$N4V$N(B IP $B%Q%1%C%H(B
$B$@$1$r<u$1<h$j$^$9!#(B
.Bd -literal
struct bpf_insn insns[] = {
	BPF_STMT(BPF_LD+BPF_H+BPF_ABS, 12),
	BPF_JUMP(BPF_JMP+BPF_JEQ+BPF_K, ETHERTYPE_IP, 0, 8),
	BPF_STMT(BPF_LD+BPF_W+BPF_ABS, 26),
	BPF_JUMP(BPF_JMP+BPF_JEQ+BPF_K, 0x8003700f, 0, 2),
	BPF_STMT(BPF_LD+BPF_W+BPF_ABS, 30),
	BPF_JUMP(BPF_JMP+BPF_JEQ+BPF_K, 0x80037023, 3, 4),
	BPF_JUMP(BPF_JMP+BPF_JEQ+BPF_K, 0x80037023, 0, 3),
	BPF_STMT(BPF_LD+BPF_W+BPF_ABS, 30),
	BPF_JUMP(BPF_JMP+BPF_JEQ+BPF_K, 0x8003700f, 0, 1),
	BPF_STMT(BPF_RET+BPF_K, (u_int)-1),
	BPF_STMT(BPF_RET+BPF_K, 0),
};
.Ed
.Pp
$B:G=*E*$K!"$3$N%U%#%k%?$O(B TCP $B%U%#%s%,%Q%1%C%H$@$1$rJV$7$^$9!#(B
TCP $B%X%C%@$K$?$I$jCe$/$?$a$K$O(B IP $B%X%C%@$r2r@O$7$J$1$l$P$J$j$^$;$s!#(B
.Dv BPF_JSET
$BL?Na$O(B IP $B%U%i%0%a%s%H%*%U%;%C%H$,(B 0 $B$G$"$k$3$H$rD4$Y$F!"(B
$B$=$l$,(B TCP $B%X%C%@$G$"$k$3$H$r3NG'$7$^$9!#(B
.Bd -literal
struct bpf_insn insns[] = {
	BPF_STMT(BPF_LD+BPF_H+BPF_ABS, 12),
	BPF_JUMP(BPF_JMP+BPF_JEQ+BPF_K, ETHERTYPE_IP, 0, 10),
	BPF_STMT(BPF_LD+BPF_B+BPF_ABS, 23),
	BPF_JUMP(BPF_JMP+BPF_JEQ+BPF_K, IPPROTO_TCP, 0, 8),
	BPF_STMT(BPF_LD+BPF_H+BPF_ABS, 20),
	BPF_JUMP(BPF_JMP+BPF_JSET+BPF_K, 0x1fff, 6, 0),
	BPF_STMT(BPF_LDX+BPF_B+BPF_MSH, 14),
	BPF_STMT(BPF_LD+BPF_H+BPF_IND, 14),
	BPF_JUMP(BPF_JMP+BPF_JEQ+BPF_K, 79, 2, 0),
	BPF_STMT(BPF_LD+BPF_H+BPF_IND, 16),
	BPF_JUMP(BPF_JMP+BPF_JEQ+BPF_K, 79, 0, 1),
	BPF_STMT(BPF_RET+BPF_K, (u_int)-1),
	BPF_STMT(BPF_RET+BPF_K, 0),
};
.Ed
.Sh $B4XO"9`L\(B
.Xr tcpdump 1 ,
.Xr ioctl 2 ,
.Xr byteorder 3
.Rs
.%A McCanne, S.
.%A Jacobson V.
.%T "An efficient, extensible, and portable network monitor"
.Re
.Sh $B4XO"%U%!%$%k(B
.Bl -tag -compact -width /dev/bpfXXX
.It Pa /dev/bpf Ns Sy n
$B%Q%1%C%H%U%#%k%?%G%P%$%9(B
.El
.Sh $B%P%0(B
$BFI$_9~$_%P%C%U%!$O8GDjD9(B (
.Dv BIOCGBLEN
ioctl $B$GJV$k(B)
$B$G$J$1$l$P$J$j$^$;$s!#(B
.Pp
$BL5:9JL%b!<%I$rMW5a$7$J$$%U%!%$%k$O!"F1$8%O!<%I%&%'%"%$%s%?%U%'!<%9>e$G(B
$B$3$N%b!<%I$rMW5a$9$kB>$N%U%!%$%k$NI{:nMQ$H$7$F!"(B
$B=gITF1$K<u$1<h$C$?%Q%1%C%H$r<u?.$9$k$+$b$7$l$^$;$s!#(B
$B$3$l$O!"%*!<%P!<%X%C%I$N$"$k=hM}$rDI2C$9$l$P!"%+!<%M%kFb$G=$@5$G$-$^$9!#(B
$B$7$+$7!"$9$Y$F$N%U%!%$%k$,%$%s%?!<%U%'!<%9$OL5:9JL$G$"$k$H(B
$B$_$J$5$J$1$l$P$J$i$J$$!"4j$o$/$P30It$N%Q%1%C%H$r$O$8$/$?$a$N%U%#%k%?(B
$B$rMxMQ$7$J$1$l$P$J$i$J$$$h$&$J%b%G%k$NJ}$,9%$^$l$^$9!#(B
.Pp
$B2DJQD9%X%C%@$N%G!<%?%j%s%/%W%m%H%3%k$O8=:_%5%]!<%H$5$l$F$$$^$;$s!#(B

.Sh $BNr;K(B
.Pp
Enet $B%Q%1%C%H%U%#%k%?$O!"(B 1980 $BG/$K%+!<%M%.!<%a%m%sBg3X$G(B
Mike Accetta $B$H(B Rick Rashid $B$K$h$j:n@.$5$l$^$7$?!#(B
$B%9%?%s%U%)!<%I$N(B Jeffrey Mogul $B$,%3!<%I$r(B BSD $B$K0\?"$7$F(B
1983 $BG/0J9_H/E8$5$;$^$7$?!#$=$N8e(B
.Tn DEC
$B$N(B Ultrix $B%Q%1%C%H%U%#%k%?!"(B
.Tn SunOS 4.1
$B$N(B
.Tn STREAMS
.Tn NIT
$B%b%8%e!<%k!"(B
.Tn BPF
$B$X$H?J2=$7$^$7$?!#(B
.Sh $BCx<T(B
Lawrence Berkeley $B8&5f=j$N(B
.An Steven McCanne
$B$,(B 1990 $BG/2F$K(B BPF $B$r%$%s%W%j%a%s%H$7$^$7$?!#(B
$BB?$/$O(B
.An Van Jacobson
$B$K$h$C$F%G%6%$%s$5$l$^$7$?!#(B

----Next_Part(Sun_Apr_11_23:30:32_1999_809)----
