From owner-man-jp-reviewer@jp.freebsd.org  Wed Aug 25 14:11:50 1999
Received: (from daemon@localhost)
	by castle.jp.freebsd.org (8.9.3+3.2W/8.7.3) id OAA30782;
	Wed, 25 Aug 1999 14:11:50 +0900 (JST)
	(envelope-from owner-man-jp-reviewer@jp.FreeBSD.org)
Received: from hitpro.hitachi.co.jp (root@hitpro.hitachi.co.jp [133.145.224.7])
	by castle.jp.freebsd.org (8.9.3+3.2W/8.7.3) with ESMTP id OAA30777
	for <man-jp-reviewer@jp.freebsd.org>; Wed, 25 Aug 1999 14:11:50 +0900 (JST)
	(envelope-from horikawa@ebina.hitachi.co.jp)
Received: from newton.ebina.hitachi.co.jp by hitpro.hitachi.co.jp (8.9.3/3.7W-hitpro) id OAA11548; Wed, 25 Aug 1999 14:11:45 +0900 (JST)
Received: from localhost (horikawa@[172.16.103.145])
	by newton.ebina.hitachi.co.jp (8.9.0/3.7W-EBINA) with ESMTP id OAA06798
	for <man-jp-reviewer@jp.freebsd.org>; Wed, 25 Aug 1999 14:11:44 +0900 (JST)
To: man-jp-reviewer@jp.freebsd.org
X-Mailer: Mew version 1.93 on Emacs 19.34 / Mule 2.3 (SUETSUMUHANA)
Mime-Version: 1.0
Content-Type: Text/Plain; charset=iso-2022-jp
Content-Transfer-Encoding: 7bit
Message-Id: <19990825141125T.horikawa@ebina.hitachi.co.jp>
Date: Wed, 25 Aug 1999 14:11:25 +0900 (JST)
From: Kazuo Horikawa <horikawa@ebina.hitachi.co.jp>
X-Dispatcher: imput version 980923(IM101)
Lines: 301
Reply-To: man-jp-reviewer@jp.freebsd.org
Precedence: list
X-Distribute: distribute version 2.1 (Alpha) patchlevel 24e+990727
X-Sequence: man-jp-reviewer 1528
Subject: [man-jp-reviewer 1528] dummynet.4
Errors-To: owner-man-jp-reviewer@jp.freebsd.org
Sender: owner-man-jp-reviewer@jp.freebsd.org
X-Originator: horikawa@ebina.hitachi.co.jp

 $BKY@n$G$9!#(B

 $B1|B<$5$s$,K]Lu$7$F$/$l$?(B dummynet.4 $B$G$9!#(B

# man-jp-reviewer $B$KN.$9$N$rK:$l$F!"(Bsend-jpman $B$7$F$$$?$@$$$?$h$&$G$9!#(B
# ($B%-%c%s%;%k$J$I$9$k$N$b<j4V$@$C$?$N$G(B) $B<uM}$7$F<!2sC4Ev$rKY@n$H$7$^$7(B
# $B$?!#$3$N%a!<%k$KBP$9$k;XE&;v9`$O!"KY@n$,BP1~$7$^$9!#(B

--- /proj/manjpadm/manjp/man4/dummynet.4	1999/02/22 16:13:21	0.0
+++ /proj/manjpadm/manjp/man4/dummynet.4	1999/08/22 15:08:16	1.2
@@ -1,74 +1,75 @@
 .\"
 .\"     %Id: dummynet.4,v 1.2 1998/12/21 22:37:53 luigi Exp %
-.\" jpman $Id: dummynet.4,v 0.0 1999/02/22 16:13:21 horikawa Stab $
+.\" jpman $Id: dummynet.4,v 1.2 1999/08/22 15:08:16 okumura Exp $
 .\"
 .Dd Sep 28, 1998
 .Dt DUMMYNET 4
 .Os
-.Sh NAME
+.Sh $BL>>N(B
 .Nm dummynet
-.Nd Flexible bandwidth manager and delay emulator
-.Sh SYNOPSIS
+.\" .Nd Flexible bandwidth manager and delay emulator
+.Nd $B%U%l%-%7%V%kBS0h%^%M!<%8%c$*$h$SCY1d%(%_%e%l!<%?(B
+.Sh $B=q<0(B
 .Fd #include <sys/types.h>
 .Fd #include <sys/queue.h>
 .Fd #include <netinet/in.h>
 .Fd #include <netinet/ip_fw.h>
 .Ft int
 .Fn setsockopt raw_socket IPPROTO_IP "ipfw option" "struct ipfw" size
-.Sh DESCRIPTION
-dummynet is a system facility that permits the control of traffic
-going through the various network interfaces, by applying bandwidth
-and queue size limitations, and simulating delays and losses.
+.Sh $B2r@b(B
+dummynet $B$O!$BS0hI}$H%-%e!<$N%5%$%:$K@)8B$r2C$($?$j!$%Q%1%C%H$NCY1d$d(B
+$BB;<:$r%7%_%e%l!<%H$9$k$3$H$K$h$j!$MM!9$J%M%C%H%o!<%/%$%s%?!<%U%'%$%9$r2p(B
+$B$7$F$d$j$H$j$5$l$k%H%i%U%#%C%/$r@)8f$9$k;v$r2DG=$K$7$^$9!%(B
 .Pp
-In its current implementation,
-packet selection is done with the
+$B8=:_$N<BAu$G$O!$%Q%1%C%H$NA*JL$O(B
 .Nm ipfw
-program, by means of
-.Nm ``pipe''
-rules.
-A dummynet
-.Nm pipe
-is characterized by a bandwidth, delay, queue size, and loss
-rate, which can be configured with the
+$B%W%m%0%i%`$N(B
+.Nm ``$B%Q%$%W(B''
+$B%k!<%k$K$h$j9T$o$l$^$9!%(B
+dummynet $B$N(B
+.Nm $B%Q%$%W(B
+$B$K$*$$$F$O!$BS0hI}!$CY1d!$%-%e!<%5%$%:!$B;<:N($r@_Dj$9$k;v$,$G$-$^$9!%(B
+$B$3$l$i$N@_Dj$O(B
 .Nm ipfw
-program. Pipes are
-numbered from 1 to 65534, and packets can be passed through multiple
-pipes depending on the ipfw configuration.
-.Pp
-Dummynet operates at the ip level, but if bridging extensions are
-enabled, it is possible to pass bridged packets through pipes as well.
-.Sh USAGE
-Packets are sent to a pipe using the command
+$B%W%m%0%i%`$G9T$$$^$9!%(B
+
+$B%Q%$%W$K$O(B 1 $B$+$i(B 65534 $B$^$G$NHV9f$,$D$1$i$l$^$9!%$^$?!$%Q%1%C%H$O(B
+ipfw $B$N@_Dj$K$h$C$F$OJ#?t$N(B pipe $B$r2p$7$FAw=P$9$k;v$,2DG=$G$9!%(B
+.Pp
+dummynet $B$O(B IP $B%l%Y%k$GF0:n$7$^$9$,!$%V%j%C%83HD%5!G=$rM-8z$K$9$k$3$H$K(B
+$B$h$j!$%Q%$%W$r2p$7$F%V%j%C%8%I%Q%1%C%H$rAw=P$9$k;v$b$G$-$^$9!%(B
+.Sh $B;HMQK!(B
+$B2<5-$N%3%^%s%I$K$h$j!$%Q%$%W$K%Q%1%C%H$rAw=P$7$^$9!%(B
 .Bd -literal
     ipfw add pipe NNN ....
 .Ed
 
-and pipes are configured as follows:
+$B$^$?!$%Q%$%W$N@_Dj$O2<5-$N%3%^%s%I$K$h$j9T$$$^$9!%(B
 .Bd -literal
     ipfw pipe NNN config bw B delay D queue Q plr P
 .Ed
 
-where the bandwidth B can be expressed in bit/s, Kbit/s, Mbit/s,
-Bytes/s, KBytes/s, MBytes/s , delay in milliseconds, queue size in
-packets or Bytes, plr is the fraction of packets randomly dropped.
-.Pp
-Getting ipfw to work right is not very intuitive, especially when
-the system is acting as a router or a bridge.
-.Pp
-When acting as a router, the same ruleset is applied on both the
-input and the output path for routed packets, so you have to make
-sure that a packet does not go through the same pipe twice (unless
-this is what you really want).
+$B$?$@$7!$BS0hI}(B B $B$O!$(Bbit/s, Kbit/s, Mbit/s, Bytes/s $B$GI=$9$3$H$,(B
+$B$G$-$^$9!%(B
+delay $B$O%_%jICC10L$G!$$^$?!$%-%e!<%5%$%:$O%Q%1%C%H?t$+%P%$%H?t(B
+$B$K$h$j;XDj$7$^$9!%(B
+$B$^$?!$(Bplr $B$O%Q%1%C%H$,%i%s%@%`$K<:$o$l$k3d9g$G$9!%(B
+.Pp
+ipfw $B$r@5$7$/F0:n$5$;$k$3$H$O4JC1$G$O$"$j$^$;$s!%%7%9%F%`$,(B
+$B%k!<%?$d%V%j%C%8$H$7$F5!G=$7$F$$$k>l9g$O$J$*$5$i$G$9!%(B
+.Pp
+$B%k!<%?$H$7$F5!G=$9$k>l9g$O!$%k!<%F%#%s%0$5$l$k%Q%1%C%H$NF~NO7PO)!$$*$h$S!$(B
+$B=PNO7PO)$KF1$8%k!<%k%;%C%H$,E,MQ$5$l$^$9$N$G!$%Q%1%C%H$,F1$8%Q%$%W$r(B
+$BFsEYDL$i$J$$$h$&$KCm0U$7$F$/$@$5$$!%(B($BK\Ev$K$=$&$7$?$$>l9g$OJL$G$9$,!%(B)
 .Pp
-When acting as a bridge, the
+$B%V%j%C%8$H$7$F5!G=$9$k;~$O!$%V%j%C%8$5$l$k%Q%1%C%H$KBP$7$F!$(B
 .Nm ipfw
-filter is invoked only once, in the input path,
-for bridged packets.
+$B%U%#%k%?$O!$F~NO7PO)$G0lEY$@$15/F0$5$l$^$9!%(B
 .Pp
-Also, when simulating true full-duplex channels, be sure to pass
-traffic through two different pipes, depending on the direction.
-E.g. a suitable rule set for simulating an asymmetric bidirectional
-link would be the following:
+$BF1MM$K!$??$NA4Fs=E%A%c%s%M%k$r%7%_%e%l!<%H$9$k>l9g$K$O!$J}8~$N0c$&(B
+2 $B$D$N%Q%$%W$rMQ$$$k$h$&$K$7$F$/$@$5$$!%(B
+$BNc$($P!$HsBP>]$JAPJ}8~$N%j%s%/$r%7%_%e%l!<%H$9$k>l9g$N%k!<%k%;%C%H$O(B
+$B<!$N$h$&$K$J$k$G$7$g$&!%(B
 .Bd -literal
    ipfw add pipe 1 ip from A to B out
    ipfw add pipe 2 ip from B to A in
@@ -77,107 +78,106 @@
 .Ed
 
 .Pp
-.Sh OPERATION
-The
+.Sh $BA`:n(B
 .Nm ipfw
-code is used to select packets that must be subject to
-bandwidth/queue/delay/losses, and returns the identifier of
-the ``pipe'' describing such limitations.
-.Pp
-Selected packets are first queued in a bounded size queue, from which
-they are extracted at the programmed rate and passed to a second queue
-where delay is simulated. At the output from the second queue packets
-are reinjected into the protocol stack at the same point they came
-from (i.e. ip_input(), ip_output(), bdg_forward() ).
-Depending on the setting of the sysctl variable
+$B$N%3!<%I$O!$BS0hI}!$%-%e!<%5%$%:!$CY1d!$B;<:$rE,MQ$9$k$Y$-(B
+$B%Q%1%C%H$rA*JL$7!$$=$l$i$N@)8B$r5-=R$9$k(B ``$B%Q%$%W(B'' $B$N<1JL;R$r(B
+$BJV$7$^$9!%(B
+.Pp
+$BA*JL$5$l$?%Q%1%C%H$O!$$^$:3d$jEv$F$i$l$?%5%$%:$N%-%e!<$KC_$($i$l$^$9!%(B
+$B%-%e!<$KC_$($i$l$?%Q%1%C%H$O!$%W%m%0%i%`$5$l$?B.$5$G<h$j=P$5$l!$CY1d$r(B
+$B%7%_%e%l!<%H$9$k$?$a$N(B 2 $BHVL\$N%-%e!<$K0\$5$l$^$9!%(B
+2 $BHVL\$N%-%e!<$+$i<h$j=P$5$l$k:]$K!$%Q%1%C%H$,Aw$i$l$F$-$?$N$HF1$8(B
+$B%W%m%H%3%k%9%?%C%/$KF~$l$i$l$^$9(B($BNc$($P(B ip_input(), ip_output(),
+bdg_forward() $B$J$I(B)$B!%(B
+$B$3$l$O(B sysctl $B$N(B
    sys.net.inet.ipfw.one_pass
-Packets coming from a pipe can be either forwarded to their
-destination, or passed again through the
+$B$N@_DjCM$K0MB8$7$^$9!%(B
+$B%Q%$%W$+$i=PNO$5$l$?%Q%1%C%H$O!$%Q%1%C%H$N08@h$KE>Aw$5$l$k$+!$(B
+$B:G=i$K%^%C%A$7$?%k!<%k$N8e$K5-=R$5$l$?(B
 .Nm ipfw
-rules, starting from the one after the matching rule.
+$B$N%k!<%k$K:F$SEO$5$l$^$9!%(B
 .Pp
 .Nm dummynet
-performs its task once per timer tick. The granularity of operation is
-thus controlled by the kernel option
+$B$O%?%$%^!<$N(B 1 tick $BKh$K=hM}$r9T$$$^$9!%$D$^$j!$=hM}$N<~4|$O%+!<%M%k(B
+$B%*%W%7%g%s$N(B
 .Bd -literal
     options HZ
 .Ed
 
-whose default value (100) means a granularity of 10ms.
-For an accurate simulation of high data rates it might be necessary to
-reduce the timer granularity to 1ms or less. Consider, however,
-that some interfaces using programmed I/O may require a considerable
-time to output packets. So, reducing the granularity too much might
-actually cause ticks to be missed thus reducing the accuracy of
-operation.
-
-.Sh KERNEL OPTIONS
-The following options in the kernel configuration file are related
-to
+$B$K$h$C$F@)8f$5$l$^$9!%%G%U%)%k%HCM$N(B (100) $B$O(B 10ms $B<~4|$r0UL#$7$^$9!%(B
+$B9b$$%G!<%?B.EY$G@53N$J%7%_%e%l!<%7%g%s$r9T$&$?$a$K$O!$%?%$%^!<(B
+$B<~4|$r(B 1ms $B0J2<$K@_Dj$9$kI,MW$,$"$k$+$b$7$l$^$;$s!%(B
+$B$7$+$7!$%W%m%0%i%`$K$h$k(B I/O $B$rMQ$$$F$$$k%$%s%?!<%U%'%$%9$NCf$K$O!$(B
+$B%Q%1%C%H$r=PNO$9$k$N$K$+$J$j$N;~4V$rMW$9$k$b$N$,$"$k$3$H$KCm0U$7$F(B
+$B$/$@$5$$!%$D$^$j!$%?%$%^<~4|$r>.$5$/$72a$.$k$H!$%?%$%^!<$N<~4|$K=hM}$,(B
+$BDI$$IU$+$:!$=hM}$N@:EY$rB;$J$C$F$7$^$&$*$=$l$,$"$j$^$9!%(B
+
+.Sh $B%+!<%M%k%*%W%7%g%s(B
+$B%+!<%M%k%3%s%U%#%.%e%l!<%7%g%s%U%!%$%kFb$N0J2<$N%*%W%7%g%s$,(B
 .Nm dummynet
-operation:
+$B$NF0:n$K4X78$7$^$9!%(B
 .Bd -literal
-  IPFIREWALL               - enable ipfirewall (required for dummynet).
-  IPFIREWALL_VERBOSE       - enable firewall output.
-  IPFIREWALL_VERBOSE_LIMIT - limit firewall output.
-  DUMMYNET                 - enable dummynet operation.
-  NMBCLUSTER               - set the amount of network packet buffers
-  HZ                       - sets the timer granularity
+  IPFIREWALL               - ipfirewall $B$rM-8z$K$7$^$9(B(dummynet $B$r;H$&$?$a$K$OI,?\(B).
+  IPFIREWALL_VERBOSE       - $B%U%!%$%"%&%)!<%k$N>\:Y$J=PNO$rM-8z$K$7$^$9!%(B
+  IPFIREWALL_VERBOSE_LIMIT - $B%U%!%$%"%&%)!<%k$N>\:Y$J=PNO$r@)8B$7$^$9!%(B
+  DUMMYNET                 - dummynet $B$N=hM}$rM-8z$K$7$^$9!%(B
+  NMBCLUSTER               - $B%M%C%H%o!<%/%Q%1%C%H%P%C%U%!$NBg$-$5$r@_Dj$7$^$9!%(B
+  HZ                       - $B%?%$%^$N<~4|$r@_Dj$7$^$9!%(B
 .Ed
 .Pp
-Generally, the following options are required:
+$BDL>o!$2<5-$N%*%W%7%g%s$OI,?\$G$9!%(B
 .Bd -literal
   options IPFIREWALL
   options DUMMYNET
 .Ed
 
-additionally, one may want to increase the number
-of mbuf clusters (used to store network packets) according to the
-sum of the bandwidth-delay products and queue sizes of all configured
-pipes.
-
+$B2C$($F!$@_Dj$7$?$9$Y$F$N%Q%$%W$N!$BS0hI}$HCY1d;~4V$N@Q$H!$%-%e!<%5%$%:(B
+$B$N9g7W$K$h$C$F$O!$(Bmbuf $B%/%i%9%?(B($B%M%C%H%o!<%/%Q%1%C%H$rC_$($F$*$/$?$a$K;H$o(B
+$B$l$^$9(B)$B$N?t$rA}$d$9J}$,NI$$$+$b$7$l$^$;$s!%(B
 
-.Sh SYSCTL VARIABLES
+.Sh SYSCTL $BJQ?t(B
 .Pp
 .Bd -literal
     net.inet.ip.fw.one_pass
 .Ed
 
-is set to 1 if we want packets to pass through the firewall code only
-once.
+$B%Q%1%C%H$,%U%!%$%d%&%)!<%k$N%3!<%I$r0lEY$@$1$7$+DL$i$J$$$h$&$K(B
+$B$7$?$$>l9g$K(B 1 $B$K@_Dj$7$^$9!%(B
 .Bd -literal
    net.link.ether.bridge_ipfw
 .Ed
 
-is set if we want bridged packets to pass through the firewall code.
+$B%U%!%$%d%&%)!<%k$N%3!<%I$K%V%j%C%8%Q%1%C%H$rEO$7$?$$>l9g$K%;%C%H$7$^$9!%(B
 
-.Sh COMMANDS
-The following socket options are used to manage pipes:
+.Sh $B%3%^%s%I(B
+$B%Q%$%W$r07$&$?$a$K$O!$0J2<$N%=%1%C%H%*%W%7%g%s$rMQ$$$^$9!%(B
 .Pp
-IP_DUMMYNET_CONFIGURE updates a pipe configuration (or creates a
-new one.
+IP_DUMMYNET_CONFIGURE $B$O!$%Q%$%W$N@_Dj$r99?7$7$^$9!%(B($B$^$?$O?7$7$$(B
+$B%Q%$%W$r:n@.$7$^$9!%(B)
 .Pp
-IP_DUMMYNET_DEL deletes all pipes having the matching rule number.
+IP_DUMMYNET_DEL $B$O!$%^%C%A$9$k%k!<%kHV9f$,B8:_$9$k$9$Y$F$N%Q%$%W$r(B
+$B:o=|$7$^$9!%(B
 .Pp
-IP_DUMMYNET_GET returns the pipes matching the number.
+IP_DUMMYNET_GET $B$O!$;XDj$7$?HV9f$K%^%C%A$9$k%Q%$%W$rJV$7$^$9!%(B
 .Pp
-IP_FW_FLUSH flushes the pipes matching the number.
+IP_FW_FLUSH $B;XDj$7$?HV9f$K%^%C%A$9$k%Q%$%W$r%U%i%C%7%e$7$^$9!%(B
 .Pp
-When the kernel security level is greater than 2, only IP_DUMMYNET_GET
-is allowed.
-.Sh SEE ALSO
+$B%+!<%M%k%;%-%e%j%F%#!<%l%Y%k$,(B 2 $B$h$jBg$-$$>l9g$O!$(B
+IP_DUMMYNET_GET $B$N$_$,;HMQ2DG=$G$9!%(B
+.Sh $B4XO"9`L\(B
 .Xr setsockopt 2 ,
 .Xr ip 4 ,
 .Xr ipfw 8 ,
 .Xr sysctl 8 .
-.Sh BUGS
-This manpage is not illustrating all the possible ways to use
-dummynet.
-.Sh HISTORY
+.Sh $B%P%0(B
+$B$3$N%^%K%e%"%k%Z!<%8$O(B dummynet $B;HMQJ}K!$NA4It$r5-=R$7$F$$$k(B
+$B$o$1$G$O$"$j$^$;$s!%(B
+.Sh $BNr;K(B
 .Nm
 dummynet
-was initially implemented as a testing tool for TCP congestion control
-by Luigi Rizzo <luigi@iet.unipi.it>, as described on ACM Computer
-Communication Review, Jan.97 issue. Later it has been then modified
-to work at the ip and bridging level, and integrated with the IPFW
-packet filter.
+$B$O!$(BACM Computer Communication Review, Jan.97 issue $B$K5-=R$5$l$F$$$k$h$&$K!$(B
+TCP $B$NmUmT$N@)8f$N$?$a$K(B Luigi Rizzo <luigi@iet.unipi.it> $B$K$h$C$F(B
+$B<BAu$5$l$^$7$?!%(B
+$B$=$N8e!$(BIP$B$*$h$S%V%j%C%8%l%Y%k$G5!G=$9$k$h$&$KJQ99$5$l!$$5$i$K(B
+IPFW $B%Q%1%C%H%U%#%k%?$KE}9g$5$l$^$7$?!%(B
