3 Copyright (C)1998 Adtran, Inc.
4 Mark Spencer <markster@marko.net>
9 l2tpd is an implementation of the layer two tunneling protocol. It works in
10 userspace completely (although kernel work is planned after the userspace
11 version is stablized). l2tpd works by opening a pseudo-tty for communicating
12 with pppd. Although l2tpd was written for Linux, the current version should
13 be highly portable to other UNIX's supported by pppd.
17 l2tpd is free software, distributed under the GNU General Public License (GPL)
18 and you should read the LICENSE File if you are not already familiar with the
19 GPL before using the product.
21 If you distribute l2tpd, a modified version, or a derivative product, you
22 MUST not remove Adtran's name from the product nor modify the terms of the
25 Adtran may license l2tpd under other terms in addition to the GPL. This way,
26 companies who wish to use l2tpd for embedded systems or commercial applications
27 and find the GPL too restrictive can license the technology from Adtran under
30 Bugs, Patches, and Code Contribution:
31 -------------------------------------
32 Please send bug reports and patches to either the l2tp mailng list
33 (l2tpd@marko.net) or myself (markster@marko.net).
35 In order to contribute code, either with patches, or by direct access to the
36 CVS tree for l2tpd, send me e-mail (markster@marko.net).
38 The word "FIXME" is a place holder for code that needs to be in place, or
39 checks that need to be done, but haven't been coded yet. Feel free to fix the
40 fixme's and submit patches!
42 Adtran requires that you not restrict the licensing of any patches or code
43 contributions to the main l2tpd project (beyond the terms that are already
44 there). This is to maintain our ability to distribute l2tpd as described
45 above. It does not in any way affect your ability to use code that you have
48 Of course, the above patch rules apply only to the "official" l2tpd product
49 as distributed by Adtran. If you are unwilling to give Adtran the right to
50 re-license your patches under other terms than GPL, you may create your own
51 third party product which is distributed only under GPL.
55 Version 0.60 should be considered ALPHA. It does NOT completely implement
56 the l2tp draft specification. Work on the high-speed kernel
57 implementation has already begun, but a relase date is not available.
59 The primary use of this ALPHA level code is to test the ability of l2tpd
60 to talk with other LAC and LNS implementations. I hope that everyone who
61 tests the software will send me results on how it worked or failed to work
64 (theoretically) implemented features
65 ------------------------------------
66 * Proper payload and control packet handling
67 * Reliable control packet delivery
68 * Ability to recover from payload errors
69 * Ability to handle packets with/without length set
70 * Ability to handle flow control or no flow control
71 * Most critical AVP's for normal operation
72 * Challenge authentication
74 * Hello's to detect outages
75 * Handles sync and async packets
77 * Can be a source of a virtual LAC call
78 * Reads configuration file
79 * Automated LAC dialup via config file, including redial
80 * Can be configured while running via a file system pipe
82 * Statistics report when sent a SIGUSR1
85 Major unimplemented specification features
86 ------------------------------------------
87 * Rate Adaptive Timeouts
88 * Out of order packet handling
89 * Initial/Final LCP states
95 Important non-specification related features to be added
96 --------------------------------------------------------
97 * More configuration options if needed
98 * Kernel support for *much* improved performance
100 Usage notes on /var/run/l2tp-control
101 ------------------------------------
102 There aren't any command line options to l2tpd yet.
104 Upon running l2tpd, a pipe is created in /var/run/l2tp-control. Simple
105 commands can then be echoed to this pipe to control l2tp on the fly. The
108 t <host> - create a tunnel to <host>
109 c <tid> or <entry> - originate an l2tp call on the tunnel
110 identified locally by <tid>, or dial the entry <entry>
111 h <cid> - hang up a call with the local identifier <cid>
112 d <tid> or <entry> - disconnect the tunnel locally identified by <tid>
113 or a lac entry <entry>
115 For example, to establish a tunnel to marko.net, one might do:
117 echo "t marko.net" >/var/run/l2tp-control
119 l2tpd must be running for this to work.
123 The PPP options are hard coded in l2tp.h until a file format is decided upon.
124 Sending a SIGUSR1 to l2tpd will cause it to dump its status.
128 If you would like to contribute to discussions of the architecture of l2tpd,
129 file formats, etc, I encourage you to join the l2tpd mailing list by sending
130 the word "subscribe" in the body of a message to "l2tpd-request@marko.net"