diff options
Diffstat (limited to 'static/openbsd/man4/sppp.4')
| -rw-r--r-- | static/openbsd/man4/sppp.4 | 308 |
1 files changed, 308 insertions, 0 deletions
diff --git a/static/openbsd/man4/sppp.4 b/static/openbsd/man4/sppp.4 new file mode 100644 index 00000000..026e6603 --- /dev/null +++ b/static/openbsd/man4/sppp.4 @@ -0,0 +1,308 @@ +.\" $OpenBSD: sppp.4,v 1.28 2023/03/23 12:43:38 stsp Exp $ +.\" +.\" Copyright (c) 1997 Joerg Wunsch +.\" +.\" All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``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 DEVELOPERS 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. +.\" +.\" +.Dd $Mdocdate: March 23 2023 $ +.Dt SPPP 4 +.Os +.Sh NAME +.Nm sppp +.Nd PPP and Link Control Protocol +.Sh SYNOPSIS +.Cd "pseudo-device sppp" Op Ar count +.Sh DESCRIPTION +The +.Nm +network layer implements the state machine and Link Control +Protocol (LCP) of the +Point-to-Point Protocol (PPP) +as described in RFC 1661. +Note that this layer does not provide network interfaces of its own, it is +rather intended to be layered on +top of drivers providing a point-to-point connection that +wish to run a PPP stack over it. +The corresponding network interfaces have to be provided by these hardware +drivers. +.Pp +The +.Nm +layer provides three basic modes of operation. +The default mode, with no special flags set, is to create the +PPP connection (administrative +.Em Open +event to the LCP layer) as soon as the interface is taken up with the +.Xr ifconfig 8 +command. +Taking the interface down again will terminate the LCP layer +and thus all other layers on top. +The link will also terminate itself as soon as no Network Control Protocol +(NCP) is open anymore, indicating that the lower layers are no longer needed. +.Pp +Setting the link-level flag +.Cm link0 +with +.Xr ifconfig 8 +will cause the respective network interface to go into +.Em passive +mode. +This means the administrative +.Em Open +event to the LCP layer will be delayed until after the lower layers +signal an +.Em Up +event (rise of +.Dq carrier ) . +This can be used by the lower layers to support +a dial-in connection where the physical layer isn't available +immediately at startup, but only after some external event arrives. +Receipt of a +.Em Down +event from the lower layer will not take the interface completely down +in this case. +.Pp +Finally, setting the flag +.Cm link1 +will cause the interface to operate in +.Em dial-on-demand +mode. +This is also only useful if the lower layers support the notion +of a carrier (like with an ISDN line). +Upon configuring the respective interface, it will delay the administrative +.Em Open +event to the LCP layer until either an outbound network packet +arrives, or until the lower layers signal an +.Em Up +event, indicating an inbound connection. +As with passive mode, receipt of a +.Em Down +event (loss of carrier) will not automatically take the interface down, +thus it remains available for further connections. +.Pp +The +.Nm +layer supports the +.Em debug +interface flag, which can be set with +.Xr ifconfig 8 . +If this flag is set, the various control protocol packets being +exchanged as well as the option negotiation between both ends of the +link will be logged at level +.Dv LOG_DEBUG . +This can be helpful to examine configuration problems during the first +attempts to set up a new configuration. +Without this flag being set, only the major phase transitions will be +logged at level +.Dv LOG_INFO . +.Pp +It is possible to leave the local interface IP address open for +negotiation by setting it to 0.0.0.0. +This requires that the remote peer can correctly supply a value for it +based on the identity of the caller, or on the remote address supplied +by this side. +Due to the way the IPCP option negotiation works, this address is +supplied late during the negotiation, which could cause the remote peer +to make false assumptions. +.Pp +In a similar spirit the remote address can be set to a magical value in +the range 0.0.0.1 to 0.0.0.255, which means that we don't care what +address the remote side will use, as long as it is not 0.0.0.0. +This is useful if your ISP has several dial-in servers. +You can of course +.Ic route add +something or other 0.0.0.1 +and it will do exactly what you would want it to. +.Pp +Once a connection is established, +the device will send out a nameserver proposal, +which +.Xr resolvd 8 +can act on. +If during IPCP negotiation no DNS server options were exchanged, +the nameserver proposal will be empty. +.Pp +The PAP and CHAP authentication protocols, as described in RFCs 1334 +and 1994, respectively, are also implemented. +Their parameters are controlled by the +.Xr ifconfig 8 +utility. +.Sh EXAMPLES +Display the settings for pppoe0. +The interface is currently in the +.Em establish +phase and tries to connect to the remote peer; +other possible PPP phases are +.Em dead , +.Em authenticate , +.Em network , +or +.Em terminate . +Both ends of the connection use the CHAP protocol, the local client +tells the remote peer the system name +.Ql uriah , +and the peer is expected to authenticate by the name +.Ql ifb-gw . +Once the initial CHAP handshake has been successful, no further CHAP +challenges will be transmitted. +There are supposedly some known CHAP secrets for both ends of the link +which are not displayed. +.Bd -literal -offset indent +$ ifconfig pppoe0 +pppoe0: flags=8851<UP,POINTOPOINT,RUNNING,SIMPLEX,MULTICAST> mtu 1492 + dev: em0 state: PADI sent + sid: 0x0 PADI retries: 0 PADR retries: 0 + sppp: phase establish authproto chap authname "uriah" \e + peerproto chap peername "ifb-gw" norechallenge + groups: pppoe + inet 0.0.0.0 --> 0.0.0.1 netmask 0xffffffff +.Ed +.Pp +A possible call to +.Xr ifconfig 8 +that could have been used to bring the interface into the state shown +by the previous example: +.Bd -literal -offset indent +# ifconfig em0 up +# ifconfig pppoe0 0.0.0.0 0.0.0.1 netmask 0xffffffff \e + pppoedev em0 \e + authproto chap authname uriah authkey "some secret" \e + peerproto chap peername "ifb-gw" peerkey "another" \e + peerflag norechallenge \e + up +.Ed +.Sh DIAGNOSTICS +.Bl -diag +.It <ifname><ifnum>: <proto> illegal <event> in state <statename> +An event happened that should not happen for the current state +the respective control protocol is in. +See RFC 1661 for a description of the state automaton. +.It <ifname><ifnum>: loopback +The state automaton detected a line loopback (that is, it was talking +with itself). +The interface will be temporarily disabled. +.It <ifname><ifnum>: up +The LCP layer is running again, after a line loopback had previously +been detected. +.It <ifname><ifnum>: down +The keepalive facility detected the line being unresponsive. +Keepalive must be explicitly requested by the lower layers in order to +take place. +.El +.Sh SEE ALSO +.Xr inet 4 , +.Xr pppoe 4 , +.Xr ifconfig 8 +.Sh STANDARDS +.Rs +.%A G. McGregor +.%D May 1992 +.%R RFC 1332 +.%T The PPP Internet Protocol Control Protocol (IPCP) +.Re +.Pp +.Rs +.%A B. Lloyd +.%A W. Simpson +.%D October 1992 +.%R RFC 1334 +.%T PPP Authentication Protocols +.Re +.Pp +.Rs +.%A W. Simpson +.%D July 1994 +.%R RFC 1661 +.%T The Point-to-Point Protocol (PPP) +.Re +.Pp +.Rs +.%A S. Cobb +.%D December 1995 +.%R RFC 1877 +.%T PPP Internet Protocol Control Protocol Extensions for Name Server Addresses +.Re +.Pp +.Rs +.%A W. Simpson +.%D August 1996 +.%R RFC 1994 +.%T PPP Challenge Handshake Authentication Protocol (CHAP) +.Re +.Pp +.Rs +.%A S. Varada +.%A D. Haskins +.%A E. Allen +.%D September 2007 +.%R RFC 5072 +.%T IP Version 6 over PPP +.Re +.Sh AUTHORS +.An -nosplit +The original implementation of +.Nm +was written in 1994 at Cronyx Ltd., Moscow, by +.An Serge Vakulenko Aq Mt vak@cronyx.ru . +.An Joerg Wunsch Aq Mt joerg_wunsch@uriah.heep.sax.de +rewrote a large part in 1997 in order +to fully implement the state machine as described in RFC 1661, so it +could also be used for dialup lines. +He also wrote the initial version of this man page. +Serge later on wrote a basic implementation for PAP and CHAP, which +served as the base for the current implementation, done again by +Joerg Wunsch. +.Pp +.An Reyk Floeter +implemented +.Nm +support for +.Xr ifconfig 8 +in +.Ox 4.0 +in order to remove the original +.Ql spppcontrol +utility, which was previously used to configure and display the +.Nm +settings. +.Sh BUGS +Many. +.Pp +Negotiation loop avoidance is not fully implemented. +If the negotiation doesn't converge, this can cause an endless loop. +.Pp +The various parameters that should be adjustable per RFC 1661 are +currently hard-coded into the kernel, and should be made accessible +through +.Xr ifconfig 8 . +.Pp +.Em Passive +mode has not been tested extensively. +.Pp +More NCPs should be implemented, as well as other control protocols +for authentication and link quality reporting. +.Pp +IPCP should support VJ header compression. +.Pp +Link-level compression protocols should be supported. |
