]> git.ozlabs.org Git - ppp.git/blobdiff - README
CI: Updated the 'checkout' actions that were using Node.js 16 to Node.js 20. (#489)
[ppp.git] / README
diff --git a/README b/README
index f60c8a9c3a48e7b809e98edd2a0ae15a3d16d32c..588b7b87639ef47fdca6d724376c1175b1e4af12 100644 (file)
--- a/README
+++ b/README
@@ -1,35 +1,41 @@
-This is the README file for ppp-2.2, a package which implements the
+This is the README file for ppp-2.5, a package which implements the
 Point-to-Point Protocol (PPP) to provide Internet connections over
-serial lines.
+serial lines and other types of links which can be considered to be
+point-to-point links.
 
 
 Introduction.
 *************
 
-The Point-to-Point Protocol (PPP) provides a standard way to transmit
-datagrams over a serial link, as well as a standard way for the
-machines at either end of the link (the `peers') to negotiate various
-optional characteristics of the link.  Using PPP, a serial link can be
-used to transmit Internet Protocol (IP) datagrams, allowing TCP/IP
-connections between the peers.  PPP is defined in several RFC (Request
-For Comments) documents, in particular RFCs 1661, 1662, 1332 and 1334.
-Other RFCs describe standard ways to transmit datagrams from other
-network protocols (e.g., DECnet, OSI, Appletalk), but this package
-only supports IP.
+The Point-to-Point Protocol (PPP) provides a standard way to establish
+a network connection over a serial link.  At present, this package
+supports IP and IPV6 and the protocols layered above them, such as TCP
+and UDP.
 
-This software consists of two parts:
+This PPP implementation consists of two parts:
 
 - Kernel code, which establishes a network interface and passes
 packets between the serial port, the kernel networking code and the
 PPP daemon (pppd).  This code is implemented using STREAMS modules on
-SunOS 4.x, AIX 4.1 and OSF/1, and as a line discipline under Ultrix,
-NextStep, NetBSD, FreeBSD, and Linux.
+Solaris, and as a line discipline under Linux.
 
 - The PPP daemon (pppd), which negotiates with the peer to establish
 the link and sets up the ppp network interface.  Pppd includes support
 for authentication, so you can control which other systems may make a
 PPP connection and what IP addresses they may use.
 
+The platforms supported by this package are Linux and Solaris.  I have
+code for NeXTStep, FreeBSD, SunOS 4.x, SVR4, Tru64 (Digital Unix), AIX
+and Ultrix but no active maintainers for these platforms.  Code for
+all of these except AIX is included in the ppp-2.3.11 release.
+
+The kernel code for Linux is no longer distributed with this package,
+since the relevant kernel code is in the official Linux kernel source
+(and has been for many years) and is included in all reasonably modern
+Linux distributions.  The Linux kernel code supports using PPP over
+things other than serial ports, such as PPP over Ethernet and PPP over
+ATM.
+
 
 Installation.
 *************
@@ -40,138 +46,130 @@ system, which contains more specific details for installing PPP on
 that system.  The supported systems, and the corresponding README
 files, are:
 
-       SunOS 4.x                       README.sun
-       NetBSD, FreeBSD                 README.bsd
-       Ultrix 4.x                      README.ultrix
        Linux                           README.linux
-       OSF/1                           README.osf
-       AIX 4.x                         README.aix4
-       NeXTStep                        README.next
-       Solaris 2                       README.svr4
+       Solaris                         README.sol2
 
 In each case you start by running the ./configure script.  This works
-out which operating system you are using and creates symbolic links to
-the appropriate makefiles.  You then run `make' to compile the
-user-level code, and (as root) `make install' to install the
-user-level programs pppd, chat and pppstats.
+out which operating system you are using and creates the appropriate
+makefiles.  You then run `make' to compile the user-level code, and
+(as root) `make install' to install the user-level programs pppd, chat
+and pppstats.
 
-The procedures for installing the kernel code vary from system to
-system.  On some systems, the kernel code can be loaded into a running
-kernel using a `modload' facility.  On others, the kernel image has to
-be recompiled and the system rebooted.  See the README.* files for
-details.
+N.B. Since 2.3.0, leaving the permitted IP addresses column of the
+pap-secrets or chap-secrets file empty means that no addresses are
+permitted.  You need to put a "*" in that column to allow the peer to
+use any IP address.  (This only applies where the peer is
+authenticating itself to you, of course.)
 
 
-What is new in ppp-2.2.
+What's new in ppp-2.5.1
 ***********************
 
-* More systems are now supported:
-
-  AIX 4, thanks to Charlie Wick,
-  OSF/1 on DEC Alpha, thanks to Steve Tate (srt@zaphod.csci.unt.edu),
-  NextStep 3.2 and 3.3, thanks to Philip-Andrew Prindeville
-       (philipp@res.enst.fr) and Steve Perkins (perkins@cps.msu.edu),
-  Solaris 2,
-
-in addition to NetBSD 1.0, SunOS 4.x, Ultrix 4.x, FreeBSD 2.0, and
-Linux.
-
-* Packet compression has been implemented.  This version implements
-CCP (Compression Control Protocol) and the BSD-Compress compression
-scheme according to the current draft RFCs.  This means that incoming
-and outgoing packets can be compressed with the LZW scheme (same as
-the `compress' command) using a code size of up to 15 bits.
-
-* Some bug fixes to the LCP protocol code.  In particular, pppd now
-correctly replies with a Configure-NAK (instead of a Configure-Reject)
-if the peer asks for CHAP and pppd is willing to do PAP but not CHAP.
-
-* The ip-up and ip-down scripts are now run with the real user ID set
-to root, and with an empty environment.  Clearing the environment
-fixes a security hole.
-
-* The kernel code on NetBSD, FreeBSD, NextStep and Ultrix has been
-restructured to make it easier to implement PPP over devices other
-than asynchronous tty ports (for example, synchronous serial ports).
-
-* pppd now looks at the list of interfaces in the system to determine
-what the netmask should be.  In most cases, this should eliminate the
-need to use the `netmask' option.
-
-* There is a new `papcrypt' option to pppd, which specifies that
-secrets in /etc/ppp/pap-secrets used for authenticating the peer are
-encrypted, so pppd always encrypts the peer's password before
-comparing it with the secret from /etc/ppp/pap-secrets.  This gives
-better security.
-
-
-Patents.
-********
-
-The BSD-Compress algorithm used for packet compression is the same as
-that used in the Unix "compress" command.  It is apparently covered by
-U.S. patents 4,814,746 (owned by IBM) and 4,558,302 (owned by Unisys),
-and corresponding patents in various other countries (but not
-Australia).  If this is of concern, you can build the package without
-including BSD-Compress.  To do this, edit net/ppp-comp.h to change the
-definition of DO_BSD_COMPRESS to 0.  The bsd-comp.c files are then no
-longer needed, so the references to bsd-comp.o may optionally be
-removed from the Makefiles.
+* Pppd can now measure and log the round-trip time (RTT) of LCP
+  echo-requests and record them in a binary file structured as a
+  circular buffer.  Other programs or scripts can examine the file and
+  provide real-time statistics on link latency.  This is enabled by a
+  new "lcp-rtt-file" option.
+
+* New scripts net-init, net-pre-up and net-down are executed in the
+  process of bringing the network interface up and down.  They provide
+  additional, more deterministic ways for pppd to interact with the
+  rest of the networking configuration.
+
+* Pppd will now create the directory for the TDB connection database
+  if it doesn't already exist.
+
+* Various other bug fixes and minor enhancements.
+
+
+What was new in ppp-2.5.0.
+**************************
+
+The 2.5.0 release is a major release of pppd which contains breaking 
+changes for third-party plugins, a complete revamp of the build-system
+and that allows for flexibility of configuring features as needed.
+
+In Summary:
+* Support for PEAP authentication by Eivind Næss and Rustam Kovhaev
+* Support for loading PKCS12 certificate envelopes 
+* Adoption of GNU Autoconf / Automake build environment, by Eivind Næss
+  and others.
+* Support for pkgconfig tool has been added by Eivind Næss.
+* Bunch of fixes and cleanup to PPPoE and IPv6 support by Pali Rohár.
+* Major revision to PPPD's Plugin API by Eivind Næss.
+  - Defines in which describes what features was included in pppd
+  - Functions now prefixed with explicit ppp_* to indicate that
+    pppd functions being called.
+  - Header files were renamed to better align with their features,
+    and now use proper include guards
+  - A pppdconf.h file is supplied to allow third-party modules to use
+    the same feature defines pppd was compiled with.
+  - No extern declarations of internal variable names of pppd, 
+    continued use of these extern variables are considered 
+    unstable.
+* Lots of internal fixes and cleanups for Radius and PPPoE by Jaco Kroon
+* Dropped IPX support, as Linux has dropped support in version 5.15
+  for this protocol.
+* Many more fixes and cleanups.
+* Pppd is no longer installed setuid-root.
+* New pppd options:
+  - ipv6cp-noremote, ipv6cp-nosend, ipv6cp-use-remotenumber,
+    ipv6-up-script, ipv6-down-script
+  - -v, show-options
+  - usepeerwins, ipcp-no-address, ipcp-no-addresses, nosendip
+* On Linux, any baud rate can be set on a serial port provided the
+  kernel serial driver supports that.
+
+Note that if you have built and installed previous versions of this
+package and you want to continue having configuration and TDB files in
+/etc/ppp, you will need to use the --sysconfdir option to ./configure.
+
+For a list of the changes made during the 2.4 series releases of this
+package, see the Changes-2.4 file.
+
+
+Compression methods.
+********************
+
+This package supports two packet compression methods: Deflate and
+BSD-Compress.  Other compression methods which are in common use
+include Predictor, LZS, and MPPC.  These methods are not supported for
+two reasons - they are patent-encumbered, and they cause some packets
+to expand slightly, which pppd doesn't currently allow for.
+BSD-Compress and Deflate (which uses the same algorithm as gzip) don't
+ever expand packets.
 
 
 Contacts.
 *********
 
-Bugs in the the SunOS, NetBSD and Ultrix ports and bugs in pppd, chat
-or pppstats should be reported to:
-
-       paulus@cs.anu.edu.au
-       Paul Mackerras
-       Dept. of Computer Science
-       Australian National University
-       Canberra  ACT  0200
-       AUSTRALIA
+Most communication relating to this package happens on github at
+https://github.com/ppp-project/ppp/.  The linux-ppp@vger.kernel.org
+mailing list also exists and can be used.
 
-Bugs in other ports should be reported to the maintainer for that port
-(see the appropriate README.* file) or to the above.  Unfortunately,
-Charlie Wick is not in a position to provide support for the AIX 4
-port, so if you find bugs in it, send them to me.
+If you find bugs in this package, the best thing to do is to create an
+issue on github.  If you can't or don't want to do that, you can post
+to linux-ppp@vger.kernel.org, or report them to the maintainer for the
+port for the operating system you are using:
 
-Thanks to:
-
-       Brad Parker  (brad@fcr.com)
-       Greg Christy (gmc@quotron.com)
-       Drew D. Perkins (ddp@andrew.cmu.edu)
-       Rick Adams (rick@seismo.ARPA)
-       Chris Torek (chris@mimsy.umd.edu, umcp-cs!chris).
+Linux                  Paul Mackerras <paulus@ozlabs.org>
+Solaris                        James Carlson <carlson@workingcode.com>
 
 
 Copyrights:
+***********
 
-Most of the code can be freely used and redistributed.  The STREAMS
-code for SunOS 4.x, OSF/1 and AIX 4 is under a more restrictive
-copyright:
+All of the code can be freely used and redistributed.  The individual
+source files each have their own copyright and permission notice.
+Pppd, pppstats and pppdump are under BSD-style notices.  Some of the
+pppd plugins are GPL'd.  Chat is public domain.
 
-       This code is Copyright (C) 1989, 1990 By Brad K. Clements, 
-       All Rights Reserved.
 
-       You may use this code for your personal use, to provide a non-profit
-       service to others, or to use as a test platform for a commercial
-       implementation.
+Distribution:
+*************
 
-       You may NOT use this code in a commercial product, nor to provide a 
-       commercial service, nor may you sell this code without express
-       written permission of the author.
+The primary site for releases of this software is:
 
-       Otherwise, Enjoy!
+       ftp://ftp.samba.org/pub/ppp/
 
-This copyright applies to (parts of) the following files:
 
-       sunos/ppp_async.c
-       sunos/ppp_if.c
-       aix4/ppp_async.c
-       aix4/ppp_if.c
-       net/ppp_str.h
-       pppd/sys-str.c
-       pppd/sys-osf.c
-       pppd/sys-aix4.c