From owner-man-jp-reviewer@jp.freebsd.org  Tue Dec 14 21:25:32 1999
Received: (from daemon@localhost)
	by castle.jp.freebsd.org (8.9.3+3.2W/8.7.3) id VAA21445;
	Tue, 14 Dec 1999 21:25:32 +0900 (JST)
	(envelope-from owner-man-jp-reviewer@jp.FreeBSD.org)
Received: from serio.al.rim.or.jp (serio.al.rim.or.jp [202.247.191.251])
	by castle.jp.freebsd.org (8.9.3+3.2W/8.7.3) with ESMTP id VAA21440
	for <man-jp-reviewer@jp.freebsd.org>; Tue, 14 Dec 1999 21:25:31 +0900 (JST)
	(envelope-from k-horik@yk.rim.or.jp)
Received: from mail-relay.rim.or.jp by serio.al.rim.or.jp (8.8.8/3.7W/HMX-12) with ESMTP id VAA29668 for <man-jp-reviewer@jp.freebsd.org>; Tue, 14 Dec 1999 21:25:31 +0900 (JST)
Received: from localhost (pppa14.yk.rim.or.jp [202.247.186.14]) by mail-relay.rim.or.jp (3.7W/HMX-12) id VAA24253 for <man-jp-reviewer@jp.freebsd.org>; Tue, 14 Dec 1999 21:25:27 +0900 (JST)
To: man-jp-reviewer@jp.freebsd.org
Mime-Version: 1.0
X-Mailer: Mew version 1.93 on Emacs 19.34 / Mule 2.3 (SUETSUMUHANA)
Content-Type: Text/Plain; charset=iso-2022-jp
Content-Transfer-Encoding: 7bit
Message-Id: <19991214212451N.k-horik@yk.rim.or.jp>
Date: Tue, 14 Dec 1999 21:24:51 +0900
From: Kazuo Horikawa <k-horik@yk.rim.or.jp>
X-Dispatcher: imput version 980905(IM100)
Lines: 607
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 1790
Subject: [man-jp-reviewer 1790] ng_ppp.8
Errors-To: owner-man-jp-reviewer@jp.freebsd.org
Sender: owner-man-jp-reviewer@jp.freebsd.org
X-Originator: k-horik@yk.rim.or.jp

 ng_ppp.8 $B$N=iLu$G$9!#(B

 bypass $B$NLu$O!"(B.Dv bypass $B$N$_(B .Dv bypass $B$N$^$^$H$7$F!"$=$NB>$N(B 
bypass $B$O!V%P%$%Q%9!W$H$7$^$7$?!#(B

--- ng_ppp.8.eng	Fri Dec 10 23:49:12 1999
+++ ng_ppp.8	Mon Dec 13 00:49:13 1999
@@ -35,332 +35,357 @@
 .\" $FreeBSD: src/sys/modules/netgraph/ppp/ng_ppp.8,v 1.5.2.2 1999/12/01 19:29:29 julian Exp $
 .\" $Whistle: ng_ppp.8,v 1.3 1999/01/25 23:46:27 archie Exp $
 .\"
+.\" jpman %Id: ng_ppp.8,v 0.0 1999/11/28 13:24:13 horikawa Stab %
 .Dd January 19, 1999
 .Dt NG_PPP 8
 .Os FreeBSD
-.Sh NAME
+.Sh $BL>>N(B
 .Nm ng_ppp
-.Nd PPP protocol netgraph node type
-.Sh SYNOPSIS
+.Nd PPP $B%W%m%H%3%k(B netgraph $B%N!<%I%?%$%W(B
+.Sh $B=q<0(B
 .Fd #include <netgraph/ng_ppp.h>
-.Sh DESCRIPTION
-The
+.Sh $B2r@b(B
 .Nm ppp
-node type performs multiplexing for the PPP protocol.  It handles
-only packets that contain data, and forwards protocol negotiation
-and control packets to a separate controlling entity (e.g., a
-user-land daemon).  This approach combines the fast dispatch of
-kernel implementations with the configuration flexibility of a
-user-land implementations.  The PPP node type directly supports
-multi-link PPP, Van Jacobsen compression, PPP compression, PPP
-encryption, and the IP, IPX, and AppleTalk protocols.  A single
-PPP node corresponds to one PPP multi-link bundle.
-.Pp
-There is a separate hook for each PPP link in the bundle, plus
-several hooks corresponding to the directly supported protocols.
-For compression and encryption, separate attached nodes are required
-to do the actual work.  The node type used will of course depend
-on the algorithm negotiated.  There is also a
+$B%N!<%I%?%$%W$O(B PPP $B%W%m%H%3%k$N$?$a$KB?=E2=$r9T$$$^$9!#(B
+$B%G!<%?$r;}$D%Q%1%C%H$N$_$r07$$!"(B
+$B%W%m%H%3%k%M%4%7%(!<%7%g%s$d@)8f$N%Q%1%C%H$OJL$N@)8f<BBN(B
+($BNc$($P!"%f!<%6%i%s%I$N%G!<%b%s(B) $B$XE>Aw$7$^$9!#(B
+$B$3$N%"%W%m!<%A$O!"(B
+$B%+!<%M%k$K$*$1$k9bB.%G%#%9%Q%C%A$N<BAu$H!"(B
+$B%f!<%6%i%s%I$K$*$1$k=@Fp$J@_Dj$N<BAu$H$rAH$_9g$o$;$^$9!#(B
+PPP $B%N!<%I%?%$%W$O!"%^%k%A%j%s%/(B PPP$B!"(BVan Jacobson $B05=L!"(B
+PPP $B05=L!"(BPPP $B0E9f2=!"$=$7$F(B IP, IPX, AppleTalk $B$N3F%W%m%H%3%k$r(B
+$BD>@\%5%]!<%H$7$^$9!#(B
+1 $B8D$N(B PPP $B%N!<%I$,(B 1 $B8D$N(B PPP $B%^%k%A%j%s%/%P%s%I%k$KBP1~$7$^$9!#(B
+.Pp
+$B%P%s%I%kCf$N3F(B PPP $B%j%s%/$K$OJL!9$N%U%C%/$,$"$j!"(B
+$BD>@\%5%]!<%H$5$l$F$$$k%W%m%H%3%k$KBP1~$7$FJL!9$N%U%C%/$,$"$j$^$9!#(B
+$B05=L$H0E9f2=$N$?$a$K$O!"JL$K@\B3$5$l$?%N!<%I$,<B:]$N;E;v$r9T$&I,MW$,$"$j$^$9!#(B
+$B;HMQ$5$l$k%N!<%I%?%$%W$O!"EvA3!"%M%4%7%(!<%H$5$l$k%"%k%4%j%:%`$K0MB8$7$^$9!#(B
+$B$^$?(B
 .Dv bypass
-hook which is used to handle any protocol not directly supported
-by the node. This includes all of the control protocols: LCP, IPCP,
-CCP, etc.  Typically this node is connected to a user-land daemon
-via a
+$B%U%C%/$,$"$j!"K\%N!<%I$,D>@\%5%]!<%H$7$J$$%W%m%H%3%k$r07$&$?$a$K!"(B
+$B;HMQ$5$l$^$9!#(B
+$B$3$l$K$O$9$Y$F$N@)8f%W%m%H%3%k!"(BLCP, IPCP, CCP $BEy$,4^$^$l$^$9!#(B
+$BE57?E*$K$O!"K\%N!<%I$O%f!<%6%i%s%I%G!<%b%s$H(B
 .Xr ng_socket(8)
-type node.
-.Sh ENABLING FUNCTIONALITY
-In general, the PPP node enables a specific link or functionality when
-(a) a
+$B%?%$%W%N!<%I$r2p$7$F@\B3$5$l$^$9!#(B
+.Sh $B5!G=$NM-8z2=(B
+$B0lHLE*$K$O!"(BPPP $B%N!<%I$OFCDj$N%j%s%/$^$?$O5!G=$r!"<!$N>l9g$KM-8z2=$7$^$9(B:
+$B$=$l$O(B
+(a) $B$3$l$rM-8z$K$9$k$?$a$N(B
 .Dv NGM_PPP_SET_CONFIG
-message has been received which enables it, and
-(b) the corresponding hook(s) are connected.
-This allows the controlling entity to use either method (a) or (b)
-(or both) to control the node's behavior.
-When a link is connected but disabled, traffic can still flow on
-the link via the
+$B%a%C%;!<%8$,FO$-!"$+$D(B
+(b) $BBP1~$9$k%U%C%/(B ($BJ#?t2D(B) $B$,@\B3$5$l$?>l9g$G$9!#(B
+$B$3$l$K$h$j!"@)8f<BBN$,(B (a) $B$^$?$O(B (b) ($B$^$?$ON>J}(B) $B$r;HMQ$7!"(B
+$B%N!<%I$N?6Iq$$$r@)8f$7$^$9!#(B
+$B%j%s%/$,@\B3$5$l$?$,L58z$J>l9g!"(B
 .Dv bypass
-hook (see below).
-.Sh LINK HOOKS
-During normal operation, the individual PPP links are connected to hooks
+$B%U%C%/(B ($B8e=R(B) $B$K$h$j!"%j%s%/>e$K%H%i%C%U%#%C%/$rN.$;$^$9!#(B
+.Sh $B%j%s%/%U%C%/(B
+$BDL>oF0:nCf!"8D!9$N(B PPP $B%j%s%/$O%U%C%/(B
 .Dv link0 ,
-.Dv link1 ,
-etc.  Up to
+.Dv link1
+$BEy$K@\B3$5$l$^$9!#(B
 .Dv NG_PPP_MAX_LINKS
-links are supported.
-These device-independent hooks transmit and receive full PPP
-frames, which include the PPP protocol, address, control, and
-information fields, but no checksum or other link-specific fields.
-.Pp
-On outgoing frames, when protocol compression
-has been enabled and the protocol number is suitable for compression,
-the protocol field will be compressed (i.e., sent as one byte
-instead of two).  Either compressed or uncompressed protocol fields
-are accepted on incoming frames.  Similarly, if address and control
-field compression has been enabled for the link, the address and
-control fields will be omitted (except for LCP frames as required
-by the standards).  Incoming frames have the address and control fields
-stripped automatically if present.
-.Pp
-Since all negotiation is handled outside the PPP node, the links
-should not be connected and enabled until the corresponding link
-has reached the network phase (i.e., LCP negotiation and authentication
-have completed successfully) and the PPP node has been informed of
-the link parameters via the
+$B$^$G$N%j%s%/$,%5%]!<%H$5$l$F$$$^$9!#(B
+$B$3$l$i$N%G%P%$%9FHN)$J%U%C%/$O!"40A4$J(B PPP $B%U%l!<%`$rAw<u?.$7$^$9!#(B
+$B$3$N%U%l!<%`$O!"(B
+PPP $B%W%m%H%3%k$H!"%"%I%l%9$H!"@)8f$H!">pJs$N3F%U%#!<%k%I$r4^$_$^$9$,!"(B
+$B%A%'%C%/%5%`$HB>$N%j%s%/8GM-$N%U%#!<%k%I$O4^$_$^$;$s!#(B
+.Pp
+$B=PNO%U%l!<%`$G$O!"(B
+$B%W%m%H%3%k05=L$,M-8z$+$D%W%m%H%3%kHV9f$,05=LMQ$N>l9g!"(B
+$B%W%m%H%3%k%U%#!<%k%I$,05=L$5$l$^$9(B
+($B$9$J$o$A!"(B2 $B%P%$%H$G$J$/(B 1 $B%P%$%H$GAw=P$5$l$^$9(B)$B!#(B
+$BF~NO%U%l!<%`$G$O!"(B
+$B05=L$5$l$?%W%m%H%3%k%U%#!<%k%I$bHs05=L$N%W%m%H%3%k%U%#!<%k%I$b(B
+$B<u$1IU$1$i$l$^$9!#(B
+$BF1MM$K!"%"%I%l%9$*$h$S@)8f$N%U%#!<%k%I$N05=L$,$3$N%j%s%/$GM-8z$J>l9g!"(B
+$B%"%I%l%9$H@)8f$N%U%#!<%k%I$O>JN,$5$l$^$9(B
+(LCP $B%U%l!<%`$ONc30$G$"$j!"5,3J$,I,?\$G$"$k$H5,Dj$7$F$$$^$9(B)$B!#(B
+$BF~NO%U%l!<%`$K%"%I%l%9$H@)8f$N%U%#!<%k%I$,IU$$$F$$$k>l9g$K$O!"(B
+$B<+F0E*$K<h$j=|$+$l$^$9!#(B
+.Pp
+$BA4%M%4%7%(!<%7%g%s$O(B PPP $B%N!<%I30$G07$o$l$k$?$a!"(B
+$B%j%s%/$r@\B3$7$FM-8z$K$9$k$N$O!"(B
+$BBP1~$9$k%j%s%/$,%M%C%H%o!<%/%U%'!<%:$K$J$j(B
+($B$9$J$o$A(B LCP $B%M%4%7%(!<%7%g%s$HG'>Z$,@.8yN"$K40N;$7(B)$B!"(B
+PPP $B%N!<%I$,%j%s%/%Q%i%a!<%?$r(B
 .Dv NGM_PPP_LINK_CONFIG
-message.
+$B%a%C%;!<%8$K$h$jDLCN$5$l$F$+$i$K$9$Y$-$G$9!#(B
 .Pp
-When a link is connected but disabled, all received frames are forwarded
-directly out the
+$B%j%s%/$,@\B3$5$l$?$b$N$NL58z2=$5$l$F$$$k$H$-$K$O!"(B
+$BA4<u?.%U%l!<%`$O(B
 .Dv bypass
-hook, and conversely, frames may be transmitted via the
+$B%U%C%/$+$iD>@\Aw=P$5$l!"(B
+$B$^$?!"%U%l!<%`$r(B
 .Dv bypass
-hook as well.  This mode is appropriate for the link authentication phase.
-As soon as the link is enabled, the PPP node will
-begin processing frames received on the link.
-.Sh COMPRESSION AND ENCRYPTION
-Compression is supported via two hooks,
+$B%U%C%/$+$iAw=P$9$k$3$H$b2DG=$G$9!#(B
+$B$3$N%b!<%I$O%j%s%/G'>Z%U%'!<%:MQ$G$9!#(B
+$B%j%s%/$,M-8z$K$J$k$H$9$0$K!"(B
+PPP $B%N!<%I$O!"%j%s%/$+$i<u?.$9$k%U%l!<%`$KBP$9$k=hM}$r3+;O$7$^$9!#(B
+.Sh $B05=L$H0E9f2=(B
+$B05=L$O(B 2 $B8D$N%U%C%/(B
 .Dv compress
-and
-.Dv decompress .
-When enabled and connected, the PPP node writes outgoing frames on the
-.Dv comp
-hook and expects to receive back the compressed frame on the same hook.
-Similarly, the
+$B$H(B
 .Dv decompress
-hook is used to uncompress incoming frames when decompression is
-negotiated (compression and decompression are independently negotiable).
-The type of node attached to these hooks should correspond
-to the type of compression negotiated, e.g., Deflate, Predictor-1, etc.
+$B$G%5%]!<%H$7$F$$$^$9!#(B
+$BM-8z$K$J$j@\B3$5$l$k$H!"(BPPP $B%N!<%I$O=PNO%U%l!<%`$r(B
+.Dv compress
+$B%U%C%/$K=q$-9~$_!"(B
+$BF1$8%U%C%/$+$i05=L$5$l$?%U%l!<%`$r<u$1<h$k$b$N$H4|BT$7$^$9!#(B
+$BF1MM$K!"(B
+$B?-D9$,%M%4%7%(!<%H$5$l$?>l9g(B
+($B05=L$H?-D9$OFHN)$K%M%4%7%(!<%H2DG=$G$9(B)$B!"(B
+.Dv decompress
+$B%U%C%/$OF~NO%U%l!<%`$r?-D9$9$k$?$a$K;HMQ$5$l$^$9!#(B
+$B$3$l$i$N%U%C%/$K@\B3$5$l$?%N!<%I$N%?%$%W$O!"(B
+$B%M%4%7%(!<%H$5$l$?05=L%?%$%W$K!"(B
+$BNc$($P(B Deflate, Predictor-1 $BEy$KBP1~$9$Y$-$G$9!#(B
 .Pp
-Encryption works exactly analogously via the
+$B0E9f2=$O!"$3$l$H$^$5$KF1MM$K(B
 .Dv encrypt
-and
+$B$H(B
 .Dv decrypt
-nodes.  Data is always compressed before being encrypted,
-and decrypted before being decompressed.
+$B$N%N!<%I$G9T$o$l$^$9!#(B
+$B%G!<%?$O>o$K0E9f2=A0$K05=L$5$l!"?-D98e$K0E9f2rFI$5$l$^$9!#(B
 .Pp
-Only bundle-level compression and encryption is directly supported;
-link-level compression and encryption can be handled transparently
-by downstream nodes.
-.Sh VAN JACOBSEN COMPRESSION
-When all of the
+$B%P%s%I%k%l%Y%k$G$N05=L$H0E9f2=$@$1$,D>@\%5%]!<%H$5$l$F$$$^$9!#(B
+$B%j%s%/%l%Y%k$N05=L$H0E9f2=$O!"(Bdownstream $B%N!<%I$GF)2aE*$K07$($^$9!#(B
+.Sh VAN JACOBSEN $B05=L(B
+$B%U%C%/(B
 .Dv vjc_ip ,
 .Dv vjc_vjcomp ,
 .Dv vjc_vjuncomp ,
-and
 .Dv vjc_vjip
-hooks are connected, and the corresponding configuration flag is
-enabled, Van Jacobsen compression and/or decompression will become active.
-Normally these hooks connect to the corresponding hooks of a single
+$B$9$Y$F$,@\B3$5$l!"BP1~$9$k@_Dj%U%i%0$,M-8z$G$"$k$H$-!"(B
+Van Jacobsen $B05=L$H?-D9$,3h@-2=$5$l$^$9!#(B
+$BDL>o$3$l$i$N%U%C%/$O!"C10l$N(B
 .Xr ng_vjc 8
-node.  The PPP node is compatible with the ``pass through'' modes of the
+$B%N!<%I$NBP1~$9$k%U%C%/$K@\B3$5$l$^$9!#(B
+PPP $B%N!<%I$O(B
 .Xr ng_vjc 8
-node type.
-.Sh BYPASS HOOK
-When a frame is received on a link with an unsupported protocol,
-or a protocol which is disabled or for which the corresponding hook
-is unconnected, the PPP node forwards the frame out the
+$B%N!<%I%?%$%W$N(B  ``$BDL2a(B'' $B%b!<%I$H8_49$G$9!#(B
+.Sh $B%P%$%Q%9%U%C%/(B
+$B%j%s%/>e$GL$%5%]!<%H$^$?$OL58z2=$5$l$?%W%m%H%3%k$N%U%l!<%`$r<u?.$9$k$+!"(B
+$BBP1~$9$k%U%C%/$,@\B3$5$l$F$$$J$$%U%l!<%`$r<u?.$9$k$H!"(B
+PPP $B%N!<%I$O$3$N%U%l!<%`$NA0$K(B 4 $B%P%$%H$N%W%l%U%#%C%/%9$rIU$1$F(B
 .Dv bypass
-hook, prepended with a four byte prefix.  This first two bytes of
-the prefix indicate the link number on which the frame was received
-(in network order).
-For such frames received over the bundle (i.e., encapsulated in the
-multi-link protocol), the special link number
+$B%U%C%/$+$iAw=P$7$^$9!#(B
+$B%W%l%U%#%C%/%9$N:G=i$N(B 2 $B%P%$%H$O!"(B
+$B%U%l!<%`$r<u?.$7$?%j%s%/HV9f(B ($B%M%C%H%o!<%/=g(B) $B$r<($7$^$9!#(B
+$B%P%s%I%k$G<u?.$7$?%U%l!<%`(B
+($B$9$J$o$A%^%k%A%j%s%/%W%m%H%3%k$G%+%W%;%k2=$5$l$?%U%l!<%`(B) $B$G$O!"(B
+$BFC<l%j%s%/HV9f(B
 .Dv NG_PPP_BUNDLE_LINKNUM
-is used.  After the two byte link number is the two byte PPP protocol number
-(also in network order).
-The PPP protocol number is two bytes long even if the original frame
-was protocol compressed.
+$B$,;HMQ$5$l$^$9!#(B
+2 $B%P%$%H$N%j%s%/HV9f$N8e$O!"(B2 $B%P%$%H$N(B PPP $B%W%m%H%3%kHV9f(B
+($B$3$l$b%M%C%H%o!<%/=g(B) $B$G$9!#(B
+$B85$N%U%l!<%`$,%W%m%H%3%k05=L$5$l$F$$$?$H$7$F$b!"(B
+PPP $B%W%m%H%3%kHV9f$O(B 2 $B%P%$%HD9$G$9!#(B
 .Pp
-Conversely, any data written to the
+$B0lJ}!"(B
 .Dv bypass
-hook is assumed to be in this same format.  The four byte header is
-stripped off, the PPP protocol number is prepended (possibly compressed),
-and the frame is delivered over the desired link.
-If the link number is
+$B$K=q$-9~$^$l$?A4%G!<%?$OF1$8%U%)!<%^%C%H$G$"$k$H8+Jo$5$l$^$9!#(B
+$BA0=R$N(B 4 $B%P%$%H$N%X%C%@$,<h$j=|$+$l!"(B
+PPP $B%W%m%H%3%kHV9f$,A0$KIU$1$i$l(B ($B05=L$5$l$F$$$k$+$b$7$l$^$;$s(B)$B!"(B
+$B;XDj$5$l$?%j%s%/$+$i$3$N%U%l!<%`$,G[Aw$5$l$^$9!#(B
+$B%j%s%/HV9f$,(B
 .Dv NG_PPP_BUNDLE_LINKNUM
-the frame will be delivered over the multi-link bundle; or, if multi-link
-is disabled, over the (single) PPP link.
-.Pp
-Typically when the controlling entity receives a packet on the bypass
-hook it responds either by dropping the frame (if it's not ready for
-the protocol) or with an LCP protocol reject (if it doesn't recognize
-or expect the protocol).
-.Sh MULTILINK OPERATION
-To enable multi-link PPP, the corresponding configuration flag must be set
-and at least one link connected.  The PPP node will not allow more than
-one link to be connected if multi-link is not enabled, nor will it allow
-certain multi-link settings to be changed while multi-link operation is
-active (e.g., short sequence number header format).
-.Pp
-Because packets are sent as fragments across multiple individual links,
-it is important that when a link goes down the PPP node is notified
-immediately, either by disconnecting the corresponding hook or disabling
-the link via the
+$B$N>l9g!"%U%l!<%`$O%^%k%A%j%s%/%P%s%I%k$r2p$7$FG[Aw$5$l$^$9!#(B
+$B%^%k%A%j%s%/$,L58z2=$5$l$F$$$k>l9g$O(B ($BC10l$N(B) PPP $B%j%s%/$r2p$7$F(B
+$BG[Aw$5$l$^$9!#(B
+.Pp
+$BE57?E*$K$O!"@)8f<BBN$,%P%$%Q%9%U%C%/$+$i%Q%1%C%H$r<u?.$7$?$H$-!"(B
+$B$3$N%U%l!<%`$rMn$9(B ($B%W%m%H%3%k$KBP$7$F=`Hw$,$G$-$F$$$J$$$H$-(B) $B$H$$$&BP1~$+!"(B
+LCP $B%W%m%H%3%k5qH](B ($B%W%m%H%3%k$rM}2r$G$-$J$$$+4|BT$7$J$+$C$?$H$-(B) $B$H$$$&(B
+$BBP1~$r9T$$$^$9!#(B
+.Sh $B%^%k%A%j%s%/F0:n(B
+$B%^%k%A%j%s%/(B PPP $B$rM-8z$K$9$k$K$O!"(B
+$BBP1~$9$k@_Dj%U%i%0$r%;%C%H$7!"(B
+$B>/$J$/$H$b(B 1 $B8D$N%j%s%/$r@\B3$9$k$3$H$,I,MW$G$9!#(B
+$B%^%k%A%j%s%/$,M-8z$K$J$C$F$$$J$$$H!"(B
+PPP $B%N!<%I$OJ#?t$N%j%s%/$N@\B3$r5v$7$^$;$s!#(B
+$B$^$?!"%^%k%A%j%s%/F0:n$,3h@-2=$5$l$F$$$k4V$O!"(B
+$B%^%k%A%j%s%/$N@_Dj$K$OJQ99$r5v$5$J$$$b$N$,$"$j$^$9(B
+($BNc$($PC;%7!<%1%s%9HV9f%X%C%@%U%)!<%^%C%H(B)$B!#(B
+.Pp
+$B%Q%1%C%H$O%U%i%0%a%s%H$H$7$FJ#?t$NFHN)$7$?%j%s%/$+$iAw$i$l$k$N$G!"(B
+$B%j%s%/$,%@%&%s$9$k$H$-$K$O!"(B
+$BBP1~$9$k%U%C%/$N@ZCG$+!"(B
 .Dv NGM_PPP_SET_CONFIG
-control message.
+$B@)8f%a%C%;!<%8$K$h$k%j%s%/L58z2=$K$h$j!"(B
+PPP $B%N!<%I$X$9$0$KDLCN$9$k$3$H$,=EMW$G$9!#(B
 .Pp
-Each link has configuration parameters for latency (specified in
-milliseconds) and bandwidth (specified in tens of bytes per second).
-The PPP node can be configured for
-.Em round-robin
-or
-.Em optimized
-packet delivery.
-.Pp
-When configured for round-robin delivery, the latency and bandwidth
-values are ignored and the PPP node simply sends each frame as a
-single fragment, alternating frames across all the links in the
-bundle.  This scheme has the advantage that even if one link fails
-silently, some packets will still get through.  It has the disadvantage
-of sub-optimal overall bundle latency, which is important for
-interactive response time, and sub-optimal overall bundle bandwidth
-when links with different bandwidths exist in the same bundle.
-.Pp
-When configured for optimal delivery, the PPP node distributes the
-packet across the links in a way that minimizes the time it takes
-for the completed packet to be received by the far end.  This
-involves taking into account each link's latency, bandwidth, and
-current queue length.  Therefore these numbers should be
-configured as accurately as possible.  The algorithm does require
-some computation, so may not be appropriate for very slow machines
-and/or very fast links.
-.Pp
-As a special case, if all links have identical latency and bandwidth,
-then the above algorithm is disabled (because it is unnecessary)
-and the PPP node simply fragments frames into equal sized portions
-across all of the links.
-.Sh HOOKS
-This node type supports the following hooks:
+$B3F%j%s%/$O!"CY1d(B ($B%_%jIC$G;XDj(B) $B$H%P%s%II}(B ($BIC$"$?$j$K2?(B 10 $B%P%$%H$G;XDj(B)
+$B$N@_Dj%Q%i%a!<%?$r;}$A$^$9!#(B
+PPP $B%N!<%I$O!"(B
+.Em $B%i%&%s%I%m%S%s(B
+$B$^$?$O(B
+.Em $B:GE,2=(B
+$B$N%Q%1%C%HG[Aw$K@_Dj2DG=$G$9!#(B
+.Pp
+$B%i%&%s%I%m%S%sG[Aw$K@_Dj$9$k$H!"(B
+$BCY1d$H%P%s%II}$NCM$OL5;k$5$l!"(B
+PPP $B%N!<%I$O!"(B
+$B%P%s%I%kFb$NA4%j%s%/$K$o$?$C$F%U%l!<%`$rJQ$($J$,$i!"(B
+$BC1$K3F%U%l!<%`$rC10l%U%i%0%a%s%H$H$7$FAw?.$7$^$9!#(B
+$B$3$NJ}<0$NMxE@$O!"$"$k%j%s%/$,L[$C$?$^$^2u$l$?>l9g$K$*$$$F$b!"(B
+$B$$$/$i$+$N%Q%1%C%H$O$^$@DL2a$G$-$k$3$H$G$9!#(B
+$B7gE@$O!"(B
+$BBPOC1~Ez;~4V$K$H$C$F=EMW$J%P%s%I%kA4BN$NCY1d$,=`:GE,$G$"$j!"(B
+$B%P%s%I%kFb$N%j%s%/$N%P%s%II}$,0[$J$k>l9g$K$O(B
+$B%P%s%I%kA4BN$N%P%s%II}$,=`:GE,$G$"$k$3$H$G$9!#(B
+.Pp
+$B:GE,G[Aw$K@_Dj$9$k$H!"(B
+$BKvC<$,%Q%1%C%HA4BN$r<u?.$9$k$N$K$+$+$k;~4V$,:G>.2=$5$l$k$h$&$K!"(B
+PPP $B%N!<%I$O%Q%1%C%H$r%j%s%/$KJ,;6$7$^$9!#(B
+$B$3$N7W;;$K$O!"(B
+$B3F%j%s%/$NCY1d!"%P%s%II}!"8=:_$N%-%e!<$ND9$5$r9MN8$KF~$l$^$9!#(B
+$B$=$l$f$(!"$3$l$i$N?tCM$O2DG=$J8B$j@53N$K@_Dj$9$Y$-$G$9!#(B
+$BK\%"%k%4%j%:%`$O7W;;$rMW$7$^$9$N$G!"(B
+$BHs>o$KCY$$%^%7%s$dHs>o$K9bB.$J%j%s%/$K$O8~$-$^$;$s!#(B
+.Pp
+$BFCJL$J>l9g$H$7$F!"A4%j%s%/$,F1$8CY1d$H%P%s%II}$N>l9g!"(B
+$B>e=R$N%"%k%4%j%:%`$OL58z2=$5$l(B ($BITMW$H$$$&M}M3$G$9(B)$B!"(B
+PPP $B%N!<%I$OC1$K%U%i%0%a%s%H$rEyD9$KJ,3d$7$FA4%j%s%/$K?6$jJ,$1$^$9!#(B
+.Sh $B%U%C%/(B
+$BK\%N!<%I%?%$%W$O<!$N%U%C%/$r%5%]!<%H$7$^$9(B:
 .Pp
 .Bl -tag -compact -width vjc_vjuncomp
 .It Dv link<N>
-Individual PPP link number
+$B8D!9$N(B PPP $B%j%s%/HV9f(B
 .Dv <N>
 .It Dv compress
-Connection to compression engine
+$B05=L%(%s%8%s$X$N@\B3(B
 .It Dv decompress
-Connection to decompression engine
+$B?-D9%(%s%8%s$X$N@\B3(B
 .It Dv encrypt
-Connection to encryption engine
+$B0E9f2=%(%s%8%s$X$N@\B3(B
 .It Dv decrypt
-Connection to decryption engine
+$B0E9f2rFI%(%s%8%s$X$N@\B3(B
 .It Dv vjc_ip
-Connection to
 .Xr ng_vjc 8
 .Dv ip
-hook
+$B%U%C%/$X$N@\B3(B
 .It Dv vjc_vjcomp
-Connection to
 .Xr ng_vjc 8
 .Dv vjcomp
-hook
+$B%U%C%/$X$N@\B3(B
 .It Dv vjc_vjuncomp
-Connection to
 .Xr ng_vjc 8
 .Dv vjuncomp
-hook
+$B%U%C%/$X$N@\B3(B
 .It Dv vjc_vjip
-Connection to
 .Xr ng_vjc 8
 .Dv vjip
-hook
+$B%U%C%/$X$N@\B3(B
 .It Dv inet
-IP packet data
+IP $B%Q%1%C%H%G!<%?(B
 .It Dv atalk
-AppleTalk packet data
+AppleTalk $B%Q%1%C%H%G!<%?(B
 .It Dv ipx
-IPX packet data
+IPX $B%Q%1%C%H%G!<%?(B
 .It Dv bypass
-Bypass hook; frames have a four byte header consisting of
-a link number and a PPP protocol number.
+$B%P%$%Q%9%U%C%/!#(B
+$B%U%l!<%`$O!"%j%s%/HV9f$H(B PPP $B%W%m%H%3%kHV9f$+$i$J$k(B
+4 $B%P%$%H%X%C%@$r;}$A$^$9!#(B
 .El
 .Pp
-.Sh CONTROL MESSAGES
-This node type supports the generic control messages, plus the following:
+.Sh $B@)8f%a%C%;!<%8(B
+$BK\%N!<%I%?%$%W$O!"HFMQ@)8f%a%C%;!<%8$r%5%]!<%H$7!"(B
+$B99$K<!$N$b$N$b%5%]!<%H$7$^$9(B:
 .Bl -tag -width foo
 .It Dv NGM_PPP_SET_CONFIG
-This command configures all aspects of the node.  This includes enabling
-multi-link PPP, encryption, compression, Van Jacobsen compression, and IP,
-AppleTalk, and IPX packet delivery.  It includes per-link configuration,
-including enabling the link, setting latency and bandwidth parameters,
-and enabling protocol field compression.  Note that no link or functionality
-is active until the corresponding hook is also connected.
-This command takes a
+$BK\%3%^%s%I$O!"K\%N!<%I$N$9$Y$F$NB&LL$r@_Dj$7$^$9!#(B
+$B$3$l$K$O!"(B
+$B%^%k%A%j%s%/(B PPP$B!"0E9f2=!"05=L!"(BVan Jacobsen $B05=L$N$=$l$>$l$NM-8z2=$H!"(B
+IP, AppleTalk, IPX $B$N3F%Q%1%C%H$NG[Aw$,4^$^$l$^$9!#(B
+$B$^$?%j%s%/Kh$N@_Dj$b4^$_!"$3$l$K$O(B
+$B%j%s%/$NM-8z2=!"CY1d$H%P%s%II}$N%Q%i%a!<%?$N@_Dj!"(B
+$B%W%m%H%3%k%U%#!<%k%I05=L$NM-8z2=$,4^$^$l$^$9!#(B
+$B%j%s%/$d5!G=$,3h@-2=$5$l$k$N$O!"(B
+$BBP1~$9$k%U%C%/$,@\B3$5$l$F$+$i$G$"$k$3$H$KCm0U$7$F$/$@$5$$!#(B
+$BK\%3%^%s%I$O!"0z?t$H$7$F(B
 .Dv "struct ng_ppp_node_config"
-as an argument:
+$B$r<h$j$^$9(B:
 .Bd -literal -offset 0
-/* Per-link config structure */
+/* $B%j%s%/Kh$N@_Dj9=B$BN(B */
 struct ng_ppp_link_config {
-  u_char    enableLink;     /* enable this link */
-  u_char    enableProtoComp;/* enable protocol field compression */
-  u_char    enableACFComp;  /* enable addr/ctrl field compression */
-  u_int16_t mru;            /* peer MRU */
-  u_int32_t latency;        /* link latency (in milliseconds) */
-  u_int32_t bandwidth;      /* link bandwidth (in bytes/second) */
+  u_char    enableLink;     /* $BK\%j%s%/$NM-8z2=(B */
+  u_char    enableProtoComp;/* $B%W%m%H%3%k%U%#!<%k%I05=L$NM-8z2=(B */
+  u_char    enableACFComp;  /* $B%"%I%l%9(B/$B@)8f%U%#!<%k%I05=L$NM-8z2=(B */
+  u_int16_t mru;            /* $BBP8~(B MRU */
+  u_int32_t latency;        /* $B%j%s%/CY1d(B ($B%_%jICC10L(B) */
+  u_int32_t bandwidth;      /* $B%j%s%/%P%s%II}(B ($B%P%$%H(B/$BICC10L(B) */
 };
 
-/* Node config structure */
+/* $B%N!<%I@_Dj9=B$BN(B */
 struct ng_ppp_node_config {
-  u_int16_t mrru;                   /* multilink peer MRRU */
-  u_char    enableMultilink;        /* enable multilink */
-  u_char    recvShortSeq;           /* recv multilink short seq # */
-  u_char    xmitShortSeq;           /* xmit multilink short seq # */
-  u_char    enableRoundRobin;       /* xmit whole packets */
-  u_char    enableIP;               /* enable IP data flow */
-  u_char    enableAtalk;            /* enable AppleTalk data flow */
-  u_char    enableIPX;              /* enable IPX data flow */
-  u_char    enableCompression;      /* enable PPP compression */
-  u_char    enableDecompression;    /* enable PPP decompression */
-  u_char    enableEncryption;       /* enable PPP encryption */
-  u_char    enableDecryption;       /* enable PPP decryption */
-  u_char    enableVJCompression;    /* enable VJ compression */
-  u_char    enableVJDecompression;  /* enable VJ decompression */
-  struct ng_ppp_link_config          /* per link config params */
+  u_int16_t mrru;                   /* $B%^%k%A%j%s%/$NBP8~(B MRRU */
+  u_char    enableMultilink;        /* $B%^%k%A%j%s%/$NM-8z2=(B */
+  u_char    recvShortSeq;           /* $B<u?.%^%k%A%j%s%/$N(B
+                                       $BC;%7!<%1%s%9HV9f(B */
+  u_char    xmitShortSeq;           /* $BAw?.%^%k%A%j%s%/$N(B
+                                       $BC;%7!<%1%s%9HV9f(B */
+  u_char    enableRoundRobin;       /* $B%Q%1%C%HA4BN$NAw?.(B */
+  u_char    enableIP;               /* IP $B%G!<%?%U%m!<M-8z2=(B */
+  u_char    enableAtalk;            /* AppleTalk $B%G!<%?%U%m!<M-8z2=(B */
+  u_char    enableIPX;              /* IPX $B%G!<%?%U%m!<M-8z2=(B */
+  u_char    enableCompression;      /* PPP $B05=LM-8z2=(B */
+  u_char    enableDecompression;    /* PPP $B?-D9M-8z2=(B */
+  u_char    enableEncryption;       /* PPP $B0E9f2=M-8z2=(B */
+  u_char    enableDecryption;       /* PPP $B0E9f2rFIM-8z2=(B */
+  u_char    enableVJCompression;    /* VJ $B05=LM-8z2=(B */
+  u_char    enableVJDecompression;  /* VJ $B?-D9M-8z2=(B */
+  struct ng_ppp_link_config         /* $B%j%s%/Kh$N@_Dj%Q%i%a!<%?(B */
             links[NG_PPP_MAX_LINKS];
 };
 .Ed
 .Pp
 .It Dv NGM_PPP_GET_CONFIG
-Returns the current configuration as a
-.Dv "struct ng_ppp_node_config" .
+$B8=:_$N@_Dj$r(B
+.Dv "struct ng_ppp_node_config"
+$B$GJV$7$^$9!#(B
 .It Dv NGM_PPP_GET_LINK_STATS
-This command takes a two byte link number as an argument and returns a
+$BK\%3%^%s%I$O(B 2 $B%P%$%H$N%j%s%/HV9f$rC10l$N0z?t$H$7$F<h$j!"(B
+$BBP1~$9$k%j%s%/$NE}7W>pJs$r4^$`(B
 .Dv "struct ng_ppp_link_stat"
-containing statistics for the corresponding link.  Here
+$B$rJV$7$^$9!#(B
+$B$3$3$G(B
 .Dv NG_PPP_BUNDLE_LINKNUM
-is a valid link number corresponding to the multi-link bundle.
+$B$O!"%^%k%A%j%s%/%P%s%I%k$KBP1~$9$kM-8z$J%j%s%/HV9f$G$9!#(B
 .It Dv NGM_PPP_CLR_LINK_STATS
-This command takes a two byte link number as an argument and
-clears the statistics for that link.
+$BK\%3%^%s%I$O(B 2 $B%P%$%H$N%j%s%/HV9f$rC10l$N0z?t$H$7$F<h$j!"(B
+$BBP1~$9$k%j%s%/$NE}7W>pJs$r%/%j%"$7$^$9!#(B
 .It Dv NGM_PPP_GETCLR_LINK_STATS
-Same as
-.Dv NGM_PPP_GET_LINK_STATS ,
-but also atomically clears the statistics as well.
+.Dv NGM_PPP_GET_LINK_STATS
+$B$HF1MM$G$9$,!"<+F0E*$KE}7W>pJs$N%/%j%"$b9T$$$^$9!#(B
 .El
 .Pp
-This node type also accepts the control messages accepted by the
+$BK\%N!<%I%?%$%W$O!"(B
 .Xr ng_vjc 8
-node type. When received, these messages are simply forwarded to
-the adjacent
+$B%N!<%I%?%$%W$,<u$1IU$1$k@)8f%a%C%;!<%8$b<u$1IU$1$^$9!#(B
+$B$3$l$i$N%a%C%;!<%8$r<u?.$9$k$H!"NY@\$9$k(B
 .Xr ng_vjc 8
-node, if any.  This is particularly useful when the individual
-PPP links are able to generate
+$B%N!<%I$,$"$l$P!"$=$3$XC1$KE>Aw$7$^$9!#(B
+$B8D!9$N(B PPP $B%j%s%/$,(B
 .Dv NGM_VJC_RECV_ERROR
-messages (see
+$B%a%C%;!<%8$r@8@.2DG=$G$"$k>l9g$K!"$3$l$OFC$KM-8z$G$9(B ($B2r@b$K$D$$$F$O(B
 .Xr ng_vjc 8
-for a description).
-.Sh SHUTDOWN
-This node shuts down upon receipt of a
+$B$r;2>H$7$F$/$@$5$$(B)$B!#(B
+.Sh $B%7%c%C%H%@%&%s(B
+$BK\%N!<%I$O!"(B
 .Dv NGM_SHUTDOWN
-control message, or when all hooks have been disconnected.
-.Sh SEE ALSO
+$B@)8f%a%C%;!<%8$N<u?.;~$+!"A4%U%C%/$,@ZCG$5$l$?$H$-$K!"%7%c%C%H%@%&%s$7$^$9!#(B
+.Sh $B4XO"9`L\(B
 .Xr netgraph 4 ,
 .Xr ng_async 8 ,
 .Xr ng_iface 8 ,
 .Xr ng_vjc 8 ,
 .Xr ng_pppoe 8 ,
-.Xr ngctl 8 .
+.Xr ngctl 8
 .Rs
 .%A W. Simpson
 .%T "The Point-to-Point Protocol (PPP)"
@@ -375,5 +400,5 @@
 .%T "The PPP Multilink Protocol (MP)"
 .%O RFC 1990
 .Re
-.Sh AUTHOR
+.Sh $B:n<T(B
 Archie Cobbs <archie@whistle.com>
