#
b3e76948 |
|
16-Aug-2023 |
Warner Losh <imp@FreeBSD.org> |
Remove $FreeBSD$: two-line .h pattern Remove /^\s*\*\n \*\s+\$FreeBSD\$$\n/
|
#
4d846d26 |
|
10-May-2023 |
Warner Losh <imp@FreeBSD.org> |
spdx: The BSD-2-Clause-FreeBSD identifier is obsolete, drop -FreeBSD The SPDX folks have obsoleted the BSD-2-Clause-FreeBSD identifier. Catch up to that fact and revert to their recommended match of BSD-2-Clause. Discussed with: pfg MFC After: 3 days Sponsored by: Netflix
|
#
1de7b4b8 |
|
27-Nov-2017 |
Pedro F. Giffuni <pfg@FreeBSD.org> |
various: general adoption of SPDX licensing ID tags. Mainly focus on files that use BSD 2-Clause license, however the tool I was using misidentified many licenses so this was mostly a manual - error prone - task. The Software Package Data Exchange (SPDX) group provides a specification to make it easier for automated tools to detect and summarize well known opensource licenses. We are gradually adopting the specification, noting that the tags are considered only advisory and do not, in any way, superceed or replace the license texts. No functional change intended.
|
#
a7d5f7eb |
|
19-Oct-2010 |
Jamie Gritton <jamie@FreeBSD.org> |
A new jail(8) with a configuration file, to replace the work currently done by /etc/rc.d/jail.
|
#
fe0506d7 |
|
09-Mar-2010 |
Marcel Moolenaar <marcel@FreeBSD.org> |
Create the altix project branch. The altix project will add support for the SGI Altix 350 to FreeBSD/ia64. The hardware used for porting is a two-module system, consisting of a base compute module and a CPU expansion module. SGI's NUMAFlex architecture can be an excellent platform to test CPU affinity and NUMA-aware features in FreeBSD.
|
#
d7f03759 |
|
19-Oct-2008 |
Ulf Lilleengen <lulf@FreeBSD.org> |
- Import the HEAD csup code which is the basis for the cvsmode work.
|
#
0508c09a |
|
29-Nov-2004 |
Brian Somers <brian@FreeBSD.org> |
Send NAS-IP-Address as well as NAS-Identifier Add ``disable NAS-IP-Address'' and ``disable NAS-Identifier'' options to support pre-rfc2865 RADIUS servers. This pushes our enable/disable items over the 32 bit limit, so reoganise things to allow a bunch more options. Go to version 3.4.1 so that any compatability problems can be identified.
|
#
057f1760 |
|
04-Sep-2004 |
Brian Somers <brian@FreeBSD.org> |
Make ppp WARNS=5 clean
|
#
cf7c10d0 |
|
19-Jun-2003 |
Hajimu UMEMOTO <ume@FreeBSD.org> |
Do RADIUS accounting on IPV6CP. MFC after: 1 week
|
#
9603d5b4 |
|
25-Mar-2003 |
Brian Somers <brian@FreeBSD.org> |
Add a ``force-scripts'' option for using chat scripts with -direct and -dedicated links. Submitted by: Maksim Yevmenkin <myevmenk@exodus.net>
|
#
bf1eaec5 |
|
07-May-2002 |
Brian Somers <brian@FreeBSD.org> |
Understand the Session-Timeout RADIUS attribute Store the Filter-Id attribute (we don't do anything with it yet) Submitted mostly by: andrew pavlov <and@kremenchug.net>
|
#
46df5aa7 |
|
03-Nov-2001 |
Brian Somers <brian@FreeBSD.org> |
Add a ``log'' command for logging specific information. Add an ``UPTIME'' variable to indicate the bundle uptime. It's now possible to put something like this in ppp.linkdown for a server setup: MYADDR: log Session closing: User USER, address HISADDR, up UPTIME Fixed some memory leakage with commands that expand words. Made some functions static. Fixed a diagnostic bug (iface add .... SIOCDIFADDR)
|
#
30949fd4 |
|
14-Aug-2001 |
Brian Somers <brian@FreeBSD.org> |
o Add ipv6 support, abstracting most NCP addresses into opaque structures (well, they're treated as opaque). It's now possible to manage IPv6 interface addresses and routing table entries and to filter IPV6 traffic whether encapsulated or not. IPV6CP support is crude for now, and hasn't been tested against any other implementations. RADIUS and IPv6 are independent of eachother for now. ppp.linkup/ppp.linkdown aren't currently used by IPV6CP o Understand all protocols(5) in filter rules rather than only a select few. o Allow a mask specification for the ``delete'' command. It's now possible to specifically delete one of two conflicting routes. o When creating and deleting proxy arp entries, do it for all IPv4 interface addresses rather than doing it just for the ``current'' peer address. o When iface-alias isn't in effect, don't blow away manually (via ``iface add'') added interface addresses. o When listening on a tcp server (diagnostic) socket, bind so that a tcp46 socket is created -- allowing both IPv4 and IPv6 connections. o When displaying ICMP traffic, don't display the icmp type twice. When display traffic, display at least some information about unrecognised traffic. o Bump version Inspired after filtering work by: Makoto MATSUSHITA <matusita@jp.FreeBSD.org>
|
#
c8b9fb53 |
|
18-Jun-2001 |
Brian Somers <brian@FreeBSD.org> |
Handle hardware-imposed MTU/MRU limitations. PPPoE will no longer allow MRU/MTU negotiations to exceed 1492. Add an optional ``max'' specifier to ``set m[rt]u'', ie. set mtu max 1480 Bump the ppp version number. Sponsored by: Monzoon Networks AG and FreeBSD Services Limited
|
#
03a2501a |
|
04-Apr-2001 |
Brian Somers <brian@FreeBSD.org> |
When we change the interface MTU, run through the routing table and tweak all route MTUs too.
|
#
94d7be52 |
|
28-Nov-2000 |
Brian Somers <brian@FreeBSD.org> |
Add ``enable/disable tcpmssfixup'', defaulting to enabled. Suggested by: julian Hijacked from: ru (ports/net/tcpmssd)
|
#
794c9bbc |
|
28-Aug-2000 |
Brian Somers <brian@FreeBSD.org> |
Support radius accounting, and add a packet count to throughput statistics as a side effect. Submitted by: Marcin Cieslak <saper@system.pl> with some tweaks to RAD_ACCT_SESSION_ID and RAD_ACCT_MULTI_SESSION_ID generation by me.
|
#
0a4b6c5c |
|
11-Jul-2000 |
Brian Somers <brian@FreeBSD.org> |
Allow a ``timeout secs'' filter option to let specific packet types effect the idle timer in different ways. Submitted by: Stefan Esser <se@freebsd.org> With adjustments by me to document the option in the man page and to give the same semantics for outgoing traffic as incoming. I made the style more consistent in ip.c - this should really have been done as a separate commit.
|
#
98251667 |
|
07-Jul-2000 |
Brian Somers <brian@FreeBSD.org> |
o Log the (payload/size) of all packet types, not just TCP packets o If the new ``filter-decapsulation'' is enabled, delve into UDP packets that contain 0xff 0x03 as the first two bytes, and if we recognise it as PROTO_IP, decapsulate it for the purpose of filter checking. If we recognise it as PROTO_<anything else> mention this for logging purposes only. This change is aimed at people running PPPoUDP where the UDP traffic is being sent over another PPP link. It's desireable to have the top level link connected all the time, but to have the bottom level link capable of decapsulating the traffic and comparing the payload against the filters, thus allowing ``set filter dial ...'' to work in tunnelled environments. The caveat here is that the top ppp cannot employ any compression layers without making the data unreadable for the bottom ppp. ``disable deflate pred1 vj'' and ``deny deflate pred1 vj'' is suggested.
|
#
6c1d6731 |
|
10-Jun-2000 |
Brian Somers <brian@FreeBSD.org> |
Add ``set ifqueue'' to control the size of the outgoing packet queue. Doing ``set ifqueue 0'' and ``set urgent none'' will allow full use of luigi's WF2Q code. Requested by: luigi
|
#
b42135de |
|
07-Apr-2000 |
Brian Somers <brian@FreeBSD.org> |
When running ppp -background, show comfort messages showing when we're redialing/reconnecting. While we're here, log redial, reconnect and phone number announcements to LogCHAT, and reduce some other logging to LogDEBUG.
|
#
d568d6c4 |
|
13-Mar-2000 |
Brian Somers <brian@FreeBSD.org> |
Add the ``resolv'' command for telling ppp how to deal with resolv.conf. You can now ``resolv restore'' in ppp.linkdown ! Add DNS0 and DNS1 macros.
|
#
499640f1 |
|
13-Mar-2000 |
Brian Somers <brian@FreeBSD.org> |
Adjust whitespace
|
#
8e7bd08e |
|
13-Mar-2000 |
Brian Somers <brian@FreeBSD.org> |
Correct some typos introduced in the descriptor -> fdescriptor change.
|
#
f013f33e |
|
13-Mar-2000 |
Brian Somers <brian@FreeBSD.org> |
To avoid namespace polution in NetBSD: ``struct descriptor'' -> ``struct fdescriptor''
|
#
3a7b6d76 |
|
22-Jan-2000 |
Brian Somers <brian@FreeBSD.org> |
Handle the availability of TUNSIFHEAD. If it's there, use it. For the moment this is just overhead, but it'll be used for INET6 support later.
|
#
06b47306 |
|
20-Jan-2000 |
Brian Somers <brian@FreeBSD.org> |
Use TUNSIFPID when we change our PID (if it exists).
|
#
26af0ae9 |
|
20-Dec-1999 |
Brian Somers <brian@FreeBSD.org> |
Cosmetic: Make struct mbuf more like kernel mbufs.
|
#
2cb305af |
|
24-Nov-1999 |
Brian Somers <brian@FreeBSD.org> |
Rewrite the link descriptor transfer code in MP mode. Previously, ppp attempted to bind() to a local domain tcp socket based on the peer authname & enddisc. If it succeeded, it listen()ed and became MP server. If it failed, it connect()ed and became MP client. The server then select()ed on the descriptor, accept()ed it and wrote its pid to it then read the link data & link file descriptor, and finally sent an ack (``!''). The client would read() the server pid, transfer the link lock to that pid, send the link data & descriptor and read the ack. It would then close the descriptor and clean up. There was a race between the bind() and listen() where someone could attempt to connect() and fail. This change removes the race. Now ppp makes the RCVBUF big enough on a socket descriptor and attempts to bind() to a local domain *udp* socket (same name as before). If it succeeds, it becomes MP server. If it fails, it sets the SNDBUF and connect()s, becoming MP client. The server select()s on the descriptor and recvmsg()s the message, insisting on at least two descriptors (plus the link data). It uses the second descriptor to write() its pid then read()s an ack (``!''). The client creates a socketpair() and sendmsg()s the link data, link descriptor and one of the socketpair descriptors. It then read()s the server pid from the other socketpair descriptor, transfers any locks and write()s an ack. Now, there can be no race, and a connect() failure indicates a stale socket file. This also fixes MP ppp over ethernet, where the struct msghdr was being misconstructed when transferring the control socket descriptor. Also, if we fail to send the link, don't hang around in a ``session owner'' state, just do the setsid() and fork() if it's required to disown a tty. UDP idea suggested by: Chris Bennet from Mindspring at FreeBSDCon
|
#
cf0a3940 |
|
17-Nov-1999 |
Brian Somers <brian@FreeBSD.org> |
Fix ``set proctitle'' by using setproctitle().
|
#
c0593e34 |
|
19-Oct-1999 |
Brian Somers <brian@FreeBSD.org> |
Add the -unit command line switch for specifying the tun device. Warn about -alias being depricated (but still allow it). Don't moan twice about failing to open any tun device. Fix a diagnostic and add the -quiet switch to the usage message.
|
#
97d92980 |
|
27-Aug-1999 |
Peter Wemm <peter@FreeBSD.org> |
$Id$ -> $FreeBSD$
|
#
67b072f7 |
|
19-Aug-1999 |
Brian Somers <brian@FreeBSD.org> |
o Add the -foreground switch. This switch behaves like -background except that ppp stays in the foreground. o Add the -quiet switch to quieten ppps startup o Add the -nat flag and discourage the use of the -alias flag. Both do the same thing. o Correct some nat usage strings. o Change the internal ``alias'' command to ``nat''.
|
#
dade2407 |
|
17-Aug-1999 |
Brian Somers <brian@FreeBSD.org> |
Implement a minimum idle time value as an optional second argument to ``set timeout''. This is useful for situations where your minimum call charge is (say) 5 minutes (like mine is)
|
#
ab2de065 |
|
05-Aug-1999 |
Brian Somers <brian@FreeBSD.org> |
o Obsolete the undocumented ``set weight'' command. o If we're using RADIUS and the RADIUS mtu is less than our peers mru/mrru, reduce our mtu to this value for NetBSD too. o Make struct throughput's sample period dynamic and tweak the ppp version number to reflect the extra stuff being passed through the local domain socket as a result (MP mode). o Measure the current throughput based on the number of samples actually taken rather than on the full sample period. o Keep the throughput statisics persistent while being passed to another ppp invocation through the local domain socket. o When showing throughput statistics after the timer has stopped, use the stopped time for overall calculations, not the current time. Also show the stopped time and how long the current throughput has been sampled for. o Use time() consistently in throughput.c o Tighten up the ``show bundle'' output. o Introduce the ``set bandwidth'' command. o Rewrite the ``set autoload'' command. It now takes three arguments and works based on a rolling bundle throughput average compared against the theoretical bundle bandwidth over a given period (read: it's now functional).
|
#
ac685e31 |
|
01-Jun-1999 |
Brian Somers <brian@FreeBSD.org> |
Introduce the ``keep-session'' option. Refer to the man page for details. This allows MP over non-tty devices where the original ppp process must not exit (such as sshd-spawned ppp sessions).
|
#
1d1fc017 |
|
31-May-1999 |
Brian Somers <brian@FreeBSD.org> |
Remember if MYADDR or HISADDR is used in a filter add tweak all filters any time either value changes.
|
#
972a1bcf |
|
27-Jan-1999 |
Brian Somers <brian@FreeBSD.org> |
Initial RADIUS support (using libradius). See the man page for details. Compiling with -DNORADIUS (the default for `release') removes support. TODO: The functionality in libradius::rad_send_request() needs to be supplied as a set of routines so that ppp doesn't have to wait indefinitely for the radius server(s). Instead, we need to get a descriptor back, select() on the descriptor, and ask libradius to service it when necessary. For now, ppp blocks SIGALRM while in rad_send_request(), so it misses PAP/CHAP retries & timeouts if they occur. Only PAP is functional. When CHAP is attempted, libradius complains that no User-Password has been specified... rfc2138 says that it *mustn't* be used for CHAP :-( Sponsored by: Internet Business Solutions Ltd., Switzerland
|
#
991c2a7b |
|
10-Dec-1998 |
Brian Somers <brian@FreeBSD.org> |
When using ``set device !someprogram'', when ``someprogram'' exits, it causes a select() exception. Handle these select() exceptions on link descriptors in pretty much the same way as loss of carrier rather than dropping out in confusion.
|
#
004c6ac7 |
|
28-Oct-1998 |
Brian Somers <brian@FreeBSD.org> |
Remove some redundant (#if 0'd) code.
|
#
0f781a72 |
|
27-Oct-1998 |
Brian Somers <brian@FreeBSD.org> |
Add ``set proctitle'' for changing argv[0]. All substitutions are done in the same way as command execution. For example, ``set proctitle USER INTERFACE PROCESSID'' would be useful in a -direct profile for identifying who's connected.
|
#
3535dfb0 |
|
26-Oct-1998 |
Brian Somers <brian@FreeBSD.org> |
Shuffle the iface-alias option so that's in alphabetical order like the rest of the options.
|
#
3afe5ccb |
|
26-Oct-1998 |
Brian Somers <brian@FreeBSD.org> |
Add ``enable proxyall'' support. This adds proxy ARP entries for every machine on every class C or smaller subnet that we route to. Add ``set {send,recv}pipe'' for controlling our socket buffer sizes. Mention the IP number with the problem in a few error messages. All submitted by: Craig Leres <leres@ee.lbl.gov> Modified slightly by: me
|
#
9b5f8ffd |
|
23-Oct-1998 |
Brian Somers <brian@FreeBSD.org> |
Loosen our restrictions on setting enddisc, mrru, shortseq, authname and authkey. o Auth{name,key} may additionally be set in PHASE_ESTABLISH. o The others may be set in PHASE_ESTABLISH as long as no links have yet reached DATALINK_LCP.
|
#
8fa6ebe4 |
|
21-Oct-1998 |
Brian Somers <brian@FreeBSD.org> |
Solve the ``first connection'' problem that occurs on demand-dial links with dynamic IP numbers where the program that causes the dial bind()s to an interface address that is subsequently changed after ppp negotiation. The problem is defeated by adding negotiated addresses to the tun interface as additional alias addresses and providing a set of ``iface'' commands for managing the interface. Libalias is also required (and what a name clash!) - it happily IP-aliases the address so that the source is that of the primary (negotiated) interface and un-IP-aliases it on the way back. An ``enable iface-alias'' is done implicitly by the -alias command line switch. If -alias isn't given, iface-aliasing is disabled by default and can't be enabled 'till an ``alias enable yes'' is done. ``alias enable no'' silently disables iface-alias. So, for dynamic-IP-type-connections, running ``ppp -alias -auto blah'' will work for the first connection, although existing bindings will not survive a disconnect/connect as the TCP peer will be trying to send to the old IP address - the packets won't route. It's now a lot easier to add IPXCP to ppp with minor updates to the new iface.[ch] (if anyone ever gets 'round to it). It's also now possible to manually add interface aliases with something like ``iface add 1.2.3.4/24 5.6.7.8''. This allows multi-homed ppp links :-)
|
#
6f8e9f0a |
|
25-Aug-1998 |
Brian Somers <brian@FreeBSD.org> |
If we've got a full output buffer queue and cannot send anything for two mintues (see ``set choked'' and ``show bundle''), nuke the ip, mp and link level buffer queues. This should fix problems where ``ppp -auto'' seems to stop responding after failing to connect to the peer a few times.
|
#
92b09558 |
|
07-Aug-1998 |
Brian Somers <brian@FreeBSD.org> |
o Support callback types NONE, E.164, AUTH and CBCP. (see the new ``set callback'' and ``set cbcp'' commands) o Add a ``cbcp'' log level and mbuf type. o Don't dump core when \T is given in ``set login'' or ``set hangup''. o Allow ``*'' and blanks as placeholders in ppp.secret and allow a fifth field for specifying auth/cbcp dialback parameters. o Remove a few extraneous #includes o Define the default number of REQs (restart counter) in defs.h rather than hardcoding ``5'' all over the place. o Fix a few man page inconsistencies.
|
#
ba23f397 |
|
29-Jul-1998 |
Brian Somers <brian@FreeBSD.org> |
Allow an optional ``!'' in the open, dial & call commands. When used, the redial timer is ignored and the modem is opened immediately.
|
#
2062443f |
|
28-Jul-1998 |
Brian Somers <brian@FreeBSD.org> |
Silence ``Network unreachable'' warnings when using ``add .... HISADDR''. The network will never be reachable at this point unless we're in -auto or reading the command from ppp.linkup. We can now run the following lines and get the expected results: set ifaddr 1.2.3.4/0 5.6.7.8/0 add default HISADDR where a route is added immediately in auto mode and the whole thing is delayed 'till the IP numbers have been agreed in other modes. Essentially, ppp.linkup is no longer required.
|
#
615ad4f9 |
|
27-Jun-1998 |
Brian Somers <brian@FreeBSD.org> |
Don't dlopen()/dlsym() libalias, use it in the same way as the rest of the world uses libraries.
|
#
899011c4 |
|
16-Jun-1998 |
Brian Somers <brian@FreeBSD.org> |
Don't bring the modem offline or hangup when ``down lcp'' is done. Instead, behave like ``close lcp''.
|
#
ff0f9439 |
|
12-Jun-1998 |
Brian Somers <brian@FreeBSD.org> |
o Maintain a link-type mask for open datalinks as well as for all datalinks in a bundle. Ppp now deals correctly with link types that are changed while open o When changing the type of the last AUTO link, only clear the interface if we're not in PHASE_NETWORK. This allows us to switch to -ddial mode while we have a connection without suddenly unexpectedly throttling ourselves by clearing the interface configuration. Problem area noted by: Aaron Jeremias Luz <aaron@csh.rit.edu>
|
#
da66dd13 |
|
06-Jun-1998 |
Brian Somers <brian@FreeBSD.org> |
Put the correct pid in /var/run/tunX.pid Suggested by: many
|
#
8e7b8599 |
|
29-May-1998 |
Brian Somers <brian@FreeBSD.org> |
o If there's a session leader left running for a descriptor that we're now closing, manually HUP that session leader so that the tty is fully released. o Always restart our carrier detect timer in the receiving process if it was running in the sending process (as we now *always* pass the descriptor). o Tweak argv when we go into pause() mode to keep our session so that ps can see what's going on (without checking for a `pause' state in `ps -l').
|
#
1384bd27 |
|
28-May-1998 |
Brian Somers <brian@FreeBSD.org> |
o #define the name "tun" in defs.h against the future possibility of supporting architectures with different device names. o Close /dev/tunX when destroying the bundle. o Don't forget to close the parent end of the pipe in the child process when exec'ing a program from a chat script. o If we close our controlling terminal, ditch the current session with it, allowing getty(8) (or whatever) to regain control. o After transferring our controlling terminal descriptor to another ppp instance, we now fork a new ppp to continue where we left off, transferring ownership of all uucp locks and the /var/run/tunX.pid file. Meanwhile the parent closes all file descriptors, defaults all signals and does a pause() to wait for a HUP after the transferred descriptor is finally closed. We don't run /bin/cat any more (again!). Suggested by: bde TODO: It seems clocal devices need their pause()d session leader to be given a manual HUP, as closing the last open descriptor doesn't do the job.
|
#
0f2f3eb3 |
|
23-May-1998 |
Brian Somers <brian@FreeBSD.org> |
o Move our prompt descriptor list outside of the bundle. It's now dealt with by the `server' object. This simplifies things as we only have one list of prompt descriptors and the log_ routines check prompt::logactive to determine whether it should be used for output. o Include the MP socket UpdateSet() result in bundle::UpdateSet(). o Don't select on the tun device unless we're in NETWORK phase or AUTO mode. o Stop the idle timer when we go to DEAD phase. We may have transferred a link and not had a chance to kill it. o Don't fail when trying to unlink our transferred datalink from our descriptor lists just before the transfer. o Add our link descriptor to the write set if we got a short write the last time (physical::out is set). o Log the connection source address when a connection is closed. o Remove descriptor::next field. Descriptor lists are not required any more.
|
#
04eaa58c |
|
20-May-1998 |
Brian Somers <brian@FreeBSD.org> |
o Add `set autoload'. You can now set the minimum and maximum thresholds (in terms of queued packets for a period of time) where -auto links will be brought up and down. By default, all auto links come up when we reach NETWORK phase and never go down. o Display current autoload state in `show bundle'. o Disable the idle timer as soon as it's called. o Disable the idle and autoload timers when exiting (in case we're abending).
|
#
58d55334 |
|
16-May-1998 |
Brian Somers <brian@FreeBSD.org> |
Add the `rename' command for renaming links.
|
#
dd0645c5 |
|
15-May-1998 |
Brian Somers <brian@FreeBSD.org> |
o Add the `set mode' command for change a links current mode. It is not possible to switch to or from dedicated or direct mode, but all other combinations are ok (eg. -auto -> -ddial). o Cope with the fact that commands with optional context may not be able to obtain a link with command_ChooseLink() (if all links have been deleted for example). o Allow `clone'ing in non-multilink mode. We may for example want to configure two links in unilink mode and dial them both, using the one that comes up first. It's also possible to rename ``deflink'' by cloning it, deleting the original, then setting the mode of the new link.
|
#
e8607d38 |
|
10-May-1998 |
Brian Somers <brian@FreeBSD.org> |
Don't `clone' links with existing names.
|
#
faefde08 |
|
06-May-1998 |
Brian Somers <brian@FreeBSD.org> |
Categorize the fields in struct bundle, and make the tunnel device speed available in ``show bundle''.
|
#
1bc9b5ba |
|
06-May-1998 |
Brian Somers <brian@FreeBSD.org> |
o Make sure we don't dereference NULL when we've lost all our links. o Use srandomdev() for __FreeBSD__ >= 2, not just >2. o Use srandom((time(NULL)^getpid())+random()), random() when we haven't got srandomdev().
|
#
610b185f |
|
05-May-1998 |
Brian Somers <brian@FreeBSD.org> |
Create `struct sticky_route'. Any `add' or `delete' command that uses MYADDR or HISADDR will be added to the sticky route list (show ipcp). When MYADDR or HISADDR change due to IPCP negotiations, and if `sroutes' is enabled (the default), all sticky route entries are updated in the routing table. The end result is that `add default hisaddr' will ``stick'', as will ``add myaddr 255.255.255.255 127.0.0.1'' and ``add 1.2.3.4 255.255.255.0 hisaddr''.
|
#
96c9bb21 |
|
02-May-1998 |
Brian Somers <brian@FreeBSD.org> |
o Transfer file descriptors using {send,recv}msg & SCM_RIGHTS, using the scatter/gather array to transfer the link information. The whole link is now passed in one message. This is far better than the two `/bin/cat' processes per additional link :-) I remember years ago thinking that file descriptor transferral would be a really amazing facility ! Suggested by: Garrett Wollman <wollman@khavrinen.lcs.mit.edu> and: Eivind Eklund <eivind@yes.no>
|
#
6f384573 |
|
30-Apr-1998 |
Brian Somers <brian@FreeBSD.org> |
o Create a new ``timer'' log level. This lets us ``set log debug'' without filling our filesystem/screen with junk that we don't really want to see. o change PHYS_STDIN to PHYS_DIRECT - we can handle incoming connections that aren't on STDIN_FILENO now. o Allow return values from our FSM LayerUp functions. If LayerUp() fails, the FSM does an immediate FsmDown() without calling the fsm_parent's Layer{Up,Down} functions. o Clear the close-on-exec flag of file descriptor 3 when executing chat programs so that our documented ability to communicate with /dev/tty via that descriptor works. Also document it as descriptor 3, not 4 :-O o Allow a ``rm'' command as an alias for ``remove''. o Fix the bind()/connect()/accept() calls made by the MP server. o Create bundle_SendDatalink() and bundle_ReceiveDatalink(). This allows `struct datalink's to flatten themselves, pass through a pipe (read: the eye of a needle !) and come alive at the other end. The donator then fork()s & exec()s pppmpipe, ``passing'' the connection to another ppp instance. *** PPP NOW TALKS MULTILINK :-))) *** Our link utilization is hideous, and lots of code needs tidying still. It's also probably riddled with bugs ! It's been tested against itself only, and has hung once, so confidence isn't high....
|
#
1fa665f5 |
|
27-Apr-1998 |
Brian Somers <brian@FreeBSD.org> |
o Add the link name to modem diagnostics. o Create struct mpserver as part of struct mp. mpserver creates a unix-domain socket based on the peers auth name and endpoint discriminator. If it already exists, ppp will ``pass the link'' over to the owner of the socket, joining it into the bundle of another ppp invocation, otherwise ppp waits for other invocations to pass it links through this socket. The final piece of code will be the code that flattens our datalink info and passes it down this channel (not yet implemented).
|
#
49052c95 |
|
22-Apr-1998 |
Brian Somers <brian@FreeBSD.org> |
Negotiate MRRU, SHORTSEQ and ENDDISC. ENDDISC doesn't imply multilink ('cos I've seen my ISP REQ it without multilink). Setting MRRU is ifdef'd out until it's debugged and we can merge -direct links with other running programs. Fix MTU setting.
|
#
3edeb0c6 |
|
17-Apr-1998 |
Brian Somers <brian@FreeBSD.org> |
Support client side DNS server negotiation, disabled and denied by default (POLA). o Remove ``enable'' msext. Now, doing a ``set nbns'' will automatically enable a NBNS ACK/NAK rather than a REJ. o Add accept|disable|deny|enable dns. If we ``accept'', we'll tell the peer what our nameservers are (if he asks). The values in resolv.conf can be overridden with the ``set dns'' command. If we ``enable'', we'll REQ using our resolv.conf entries, and any NAKs are written back to resolv.conf. o Remove ``show msext'' and show the relevent IP numbers in ``show ipcp''.
|
#
030e4ebb |
|
17-Apr-1998 |
Brian Somers <brian@FreeBSD.org> |
o Remove bundle_LinkLost() and have the modem routines simply call datalink_Down() where appropriate rather than modem_Hangup(). o Now, when something horrible happens (failed read/write, loss of carrier etc), we go offline and run any hangup scripts etc in a controlled manner - exactly the same as if someone says ``down'' at the prompt or sends us a HUP. o -dedicated links that fail to make the modem raw close it, suffer the redial timeout then try to open it again. o Add a ``carrier lost'' warning diagnostic.
|
#
1342caed |
|
15-Apr-1998 |
Brian Somers <brian@FreeBSD.org> |
o Move the accept/deny/disable/enable globals either to the bundle (non-negotiated vars) or to their respective IPCP, LCP or CCP. o Enable rolling throughput statistics by default. o Remove the `display' command. These values now appear in `show bundle', `show ipcp', `show ccp' and `show lcp'. o Initialise auth name & key at bundle create time (oops). o Rename pppd-deflate (the id-24 hack) to deflate24. o Don't send both a REJ and a NAK to an IPCP or LCP REQ. Favour the REJ (already done at the CCP level). o Recurse in datalink_UpdateSet() when we change state, otherwise we end up setting no descriptors and getting jammed in the imminent select() instead of doing the dial/login/hangup. o Display our CHAP encryption method despite being built with DES. o Display VJ as not negotiated in ``show ipcp'' when necessary.
|
#
c08717df |
|
11-Apr-1998 |
Brian Somers <brian@FreeBSD.org> |
Remove ``show timeout'' and ``show auth'' and add ``show bundle''. Mention ``show timer'' in the man page.
|
#
565e35e5 |
|
10-Apr-1998 |
Brian Somers <brian@FreeBSD.org> |
o Remove the `mode' global - it's now per physical device. o Shuffle things that live at the datalink level into ``show link'' rather than ``show modem''. o Make both ``show'' commands prettier and more consistent, and display carrier status, link type and our name in ``show modem''. o Show redial and reconnect information in ``show link'' and remove ``show redial'' and ``show reconnect''. o Down the correct link in bundle_LinkLost(). o Remove stale -direct and -background links at the end of our main loop, not when we know they're going. This prevents unexpected pointer-invalidations... o If we ``set server'' with the same values twice, notice and don't moan about failure. o Record dial script despite our link mode. The mode may be changed later (next mod) :-) We never run scripts in -direct and -dedicated modes. o Make ``set server none'' functional again. o Correct datalink state array so that we don't report an ``unknown'' state. o Pass struct ipcp to IpcpCleanInterface, not struct fsm. o Create TUN_PREFIX define rather than hard-coding in main.c o prompt_TtyInit now handles a NULL prompt for -direct mode rather than having to create one then destroy it uncleanly. o Mention our mode in the "PPP Started" LogPHASE message. o Bring all auto links up when we have something to send. o Remove some redundant Physical_*() functions. o Show which connection is running a command when logging commands. o Initialise throughput uptime correctly.
|
#
cd7bd93a |
|
05-Apr-1998 |
Brian Somers <brian@FreeBSD.org> |
Add the `clone' and `remove' commands for creating and destroying links.
|
#
833882f7 |
|
03-Apr-1998 |
Brian Somers <brian@FreeBSD.org> |
o Move VarMSChap into struct chap, and remove `set encrypt' option. We never ask a client for MSChap when we've got chap `enabled', and we dynamically answer using MSChap if the peer demands it. o Remove all of the bundle2*() series of functions except bundle2datalink() as they're too expensive. The only calls to bundle2datalink() are made from command.c when determining context. o Write to the correct modem in term mode, and check the return value, dropping back to command mode if the write fails. Cosmetic: Make the PPP COMMAND LIST section of the man page prettier, better and more consistent. Alphabeticalise all command lists and document missing commands.
|
#
b6217683 |
|
03-Apr-1998 |
Brian Somers <brian@FreeBSD.org> |
Deglobalise `struct prompt': o Our diagnostic socket has its password set in the `set socket' line only (not in ppp.secret). o Passwords are per server socket (*VarAuthKey are gone) o Authority is per prompt (VarLocalAuth is gone). o Local logging is per prompt. o Add a `show who' command to see who's connected. No identd routine - just a `where the connection came from' display. o SIGUSR1 is disabled for now - we have no way of choosing a password for the socket created :-( Prompts are attached as a list of `struct descriptor's in struct bundle, and serviced under the bundles descriptor service routines. Ultimately, everything should be done like this. Cosmetic: o alphabeticalise SRCS in Makefile. o Add a few comments in command.h TODO: Start checking that we don't overflow the descriptor sets in select() now that we can have any number of descriptors.
|
#
92f4ff1c |
|
03-Apr-1998 |
Brian Somers <brian@FreeBSD.org> |
Move authname and authkey into struct bundle and only allow their alteration in PHASE_DEAD. Remove redundant pppConfs array element.
|
#
3b0f8d2e |
|
03-Apr-1998 |
Brian Somers <brian@FreeBSD.org> |
o Move struct lcp and struct ccp into struct link. o Remove bundle2lcp(), bundle2ccp() and bundle2link(). They're too resource-hungry and we have `owner pointers' to do their job. o Make our FSM understand LCPs that are always ST_OPENED (with a minimum code that != 1). o Send FSM code rejects for invalid codes. o Make our bundle fsm_parent deal with multiple links. o Make timer diagnostics pretty and allow access via ~t in `term' mode (not just when logging debug) and `show timers'. Only show timers every second in debug mode, otherwise we get too many diagnostics to be useful (we probably still do). Also, don't restrict ~m in term mode to depend on debug logging. o Rationalise our bundles' phases. o Create struct mp (multilink protocol). This is both an NCP and a type of struct link. It feeds off other NCPs for output, passing fragmented packets into the queues of available datalinks. It also gets PROTO_MP input, reassembles the fragments into ppp frames, and passes them back to the HDLC layer that the fragments were passed from. ** It's not yet possible to enter multilink mode :-( ** o Add `set weight' (requires context) for deciding on a links weighting in multilink mode. Weighting is simplistic (and probably badly implemented) for now. o Remove the function pointers in struct link. They ended up only applying to physical links. o Configure our tun device with an MTU equal to the MRU from struct mp's LCP and a speed equal to the sum of our link speeds. o `show {lcp,ccp,proto}' and `set deflate' now have optional context and use ChooseLink() to decide on which `struct link' to use. This allows behaviour as before when in non-multilink mode, and allows access to the MP logical link in multilink mode. o Ignore reconnect and redial values when in -direct mode and when cleaning up. Always redial when in -ddial or -dedicated mode (unless cleaning up). o Tell our links to `staydown' when we close them due to a signal. o Remove remaining `#ifdef SIGALRM's (ppp doesn't function without alarms). o Don't bother strdup()ing our physical link name. o Various other cosmetic changes.
|
#
5cf4388b |
|
25-Mar-1998 |
Brian Somers <brian@FreeBSD.org> |
Tidy up the parent notification stuff for -background mode. Remove extraneous extern decls of tun_{in,out} and netfd.
|
#
2f786681 |
|
20-Mar-1998 |
Brian Somers <brian@FreeBSD.org> |
Make struct bundle into a sort of `struct descriptor'. It does the fdsets/reads/writes for each of it's datalinks.
|
#
93ee0ff2 |
|
18-Mar-1998 |
Brian Somers <brian@FreeBSD.org> |
Display the correct amount of remaining time in `show time'.
|
#
a0cbd833 |
|
16-Mar-1998 |
Brian Somers <brian@FreeBSD.org> |
Move `CleaningUp' into struct bundle.
|
#
5ca5389a |
|
16-Mar-1998 |
Brian Somers <brian@FreeBSD.org> |
Move filter sets into struct bundle.
|
#
5828db6d |
|
13-Mar-1998 |
Brian Somers <brian@FreeBSD.org> |
Move the IPCP into struct bundle.
|
#
5563ebde |
|
12-Mar-1998 |
Brian Somers <brian@FreeBSD.org> |
Remove the second bundle_NewPhase argument and do the tun config from bundle_LayerUp.
|
#
879ed6fa |
|
12-Mar-1998 |
Brian Somers <brian@FreeBSD.org> |
De-staticise LQR information Increment OutPackets for any packet - not just LQRs MFC: o Fix a few comment typos. o Fix ``set timeout'' usage message and documentation. o Change ifOutPackets, ifOutOctets and ifOutLQRs to `u_int32_t's so that they wrap correctly. o Put the LQR in network byte order using the correct struct size (sizeof u_int32_t, not sizeof u_long). o Wrap LQR ECHO counters correctly. o Don't increment OutLQR count if the last LQR hasn't been replied to. o Initialise last received LQR in StartLqm. o Don't start the LQR timer if we're `disabled' and `accepted'. o Generate LQR responses when both sides are using a timer and we're not going to send our next LQR before the peers max timeout.
|
#
ab886ad0 |
|
09-Mar-1998 |
Brian Somers <brian@FreeBSD.org> |
Move the idle timer into struct bundle. There's no link-level idle timer for the moment.
|
#
e2ebb036 |
|
28-Feb-1998 |
Brian Somers <brian@FreeBSD.org> |
Do authentication at the datalink level, not the bundle level. The bundle doesn't get a LayerUp 'till we're authenticated. Introduce DATALINK_LCP and DATALINK_AUTH phases.
|
#
6d666775 |
|
26-Feb-1998 |
Brian Somers <brian@FreeBSD.org> |
Create struct fsm_parent. FSMs are created with one of these, and the FSM passes subsequent events to them. The datalink now hides its CCP from the bundle layer.
|
#
503a7782 |
|
20-Feb-1998 |
Brian Somers <brian@FreeBSD.org> |
Shuffle around our FSMs a bit. This'll make it easier to remove the CcpInfo, LcpInfo and IpcpInfo globals.
|
#
aef795cc |
|
17-Feb-1998 |
Brian Somers <brian@FreeBSD.org> |
Introduce the ``link'' command for controlling individual links.
|
#
3006ec67 |
|
15-Feb-1998 |
Brian Somers <brian@FreeBSD.org> |
Create struct datalink. This is a type of physical link that can chat and talk LCP & CCP. A bundle contains a list of these (only one in the list for the moment). The datalink is a type of descriptor, and dials, enters LCP (& does CCP), kicks the bundle when its FSMs do something interesting and does the hangup chat script on the way down. It also handles redials and reconnects. There are lots of loose ends, and probably lots of bugs, but the data structures are getting there !
|
#
68a0f0cc |
|
08-Feb-1998 |
Brian Somers <brian@FreeBSD.org> |
o Add bundle_Destroy(). o Don't remove routes and DOWN the interface when we're closed in auto mode. o Initialize the FSMs in bundle_Create. o Initialize ipcp::if_mine & ipcp::if_peer only once (so that we don't forget that we've SIOCAIFADDR'd the interface). o Do a SIOCDIFADDR on the specific address to avoid hurting any other (still non-existent) NCPs. o Fix some error/diagnostic messages.
|
#
455aabc3 |
|
07-Feb-1998 |
Brian Somers <brian@FreeBSD.org> |
o Hook the FSMs into our bundle. o The FSM layering is now more sane. o Move a lot of the NCP stuff into our ipcpstate rather than having it in the bundle, including control of the configured IP addresses. We don't need hacks like the global `linkup' variable any more as the FSM decides when our ppp.link* files get run. This is going to eventually be configurable based on FSM events anyway. o Fix a few inconsistencies when both sides require authentication. o We now have "Ppp..." and "PPp" prompts, reflecting authentication and network phase. We don't print loads of spurious prompts as we change phases any more. o Our phase is part of the bundle now. o Fix a bug where the FSM wasn't calling LayerFinish. o Close the FSM down correctly with a signal rather than slamming it down as if the line was dropped (the undocumented ``down'' command is still available though). o Remove the forgotten `tunno' variable and fix references to it.
|
#
83d1af55 |
|
05-Feb-1998 |
Brian Somers <brian@FreeBSD.org> |
Isolate fsm callback functions Derive {lcp,ipcp,ccp}state structures from struct fsm where convenient. Create bundle_Down() and remove LcpDown()
|
#
2289f246 |
|
05-Feb-1998 |
Brian Somers <brian@FreeBSD.org> |
Move pppVars.physical into the bundle (for the moment).
|
#
26fe3a55 |
|
03-Feb-1998 |
Brian Somers <brian@FreeBSD.org> |
Comment bundle.h
|
#
820de6eb |
|
02-Feb-1998 |
Brian Somers <brian@FreeBSD.org> |
Bring the routing seqno into struct bundle.
|
#
7a6f8720 |
|
02-Feb-1998 |
Brian Somers <brian@FreeBSD.org> |
Create `struct bundle' - the top level control structure. This structure will eventually contain a list of NCPs (currently only IPCP is supported) and a list of physical `struct link's. It will also derive from a struct link itself. Make ModemTimeout() static - it's way to dangerous to be called from outside ! Bump version to 1.9. Our first MP release should be 2.0.
|