1
0
mirror of https://git.FreeBSD.org/src.git synced 2024-12-23 11:18:54 +00:00
Commit Graph

172 Commits

Author SHA1 Message Date
Brian Somers
7cf368eb42 Allow multiple systems (config labels) on the command
line and in the ``load'' & ``dial'' commands.  The last
label loaded becomes the current label name.
Only require a label for -auto mode.
1998-10-31 17:38:47 +00:00
Brian Somers
0f781a7252 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.
1998-10-27 22:53:22 +00:00
Brian Somers
a237dcba17 Add ``PROCESSID'' as a constant expanded when running
commands.
1998-10-27 22:53:19 +00:00
Brian Somers
0460185ddf Stress that `none'' must be specified on the set callback'
line if callback is to be optional.
Requested by: Andrzej Tobola <san@koziolek.lublin.top.pl>
1998-10-27 22:53:18 +00:00
Brian Somers
3afe5ccb75 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
1998-10-26 19:07:39 +00:00
Brian Somers
17871c5f6c Fix the interface alias code. Previously, I was expecting something
like

tun0: flags=blah
	10.0.0.1 -> 10.0.0.100
	10.0.0.2 -> 10.0.0.100
	10.0.0.3 -> 10.0.0.100

to DTRT, despite the SIOCAIFADDR for each new alias returning
-1 & EEXIST while adding the alias anyway.  In real life, once
we have the second alias with the same destination, nothing will
route any more !  Also, because I was ignoring EEXIST, the
dynamic IP assignment code was assigning duplicate addresses
('cos it was being lied to by iface_inAdd()).

Now we have

tun0: flags=blah
	10.0.0.1 -> 255.255.255.255
	10.0.0.2 -> 10.0.0.100
	10.0.0.3 -> 255.255.255.255

This works - stuff bound to 10.1 & 10.3 will be considered alive
by the kernel, and when they route back to the tun device, the
packets get aliased to 10.2 and go out to 10.100 (as with the
original plan).

We still see the EEXIST in SIOCAIFADDR, but ignore it when our
destination is 255.255.255.255, assuming that the alias *was*
actually added.

Additionally, ``iface add'' may now optionally be given only
the interface address.  The mask & destination default to
255.255.255.255.
1998-10-26 19:07:36 +00:00
Brian Somers
8fa6ebe47d 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 :-)
1998-10-22 02:32:50 +00:00
Brian Somers
68b414d193 Revert SEE ALSO ordering to version 1.124
Patched correctly by: wosch
Blunder pointed out by: bde
1998-09-18 23:28:10 +00:00
Brian Somers
0122d745f5 Alphabeticalize SEE ALSO section. 1998-09-17 00:45:12 +00:00
Wolfram Schneider
acd8019083 Sort cross references. 1998-08-31 16:41:09 +00:00
Brian Somers
a804ec2201 Don't use `-width 20'', it's misleading. Use `-width XX''
instead.
1998-08-29 23:02:45 +00:00
Brian Somers
7fdd475323 Don't claim that the alias library isn't loaded until
used.
1998-08-29 23:02:43 +00:00
Brian Somers
131ef891c7 Add the following word substitutions when running a shell
command:
  AUTHNAME:     The local authname
  ENDDISC:      The local endpoint discriminator
  LABEL:        The configuration label in use
  PEER_ENDDISC: The peers endpoint discriminator
  USER:         The peers authname
1998-08-29 23:02:42 +00:00
Brian Somers
f80e09b53a Mention what ``set authname'' does in -direct mode. 1998-08-25 17:48:55 +00:00
Brian Somers
6f8e9f0a8a 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.
1998-08-25 17:48:43 +00:00
Brian Somers
f841c4e56e Be careful about using ``.Bd -literal'' as groff sometimes keeps
the `-literal' after the closing .Ed.
Where this happens, use ``.Bd -unfilled'' with ``.It Li'' to dodge
the problem - it looks better too.
Problem reported by: Dom Mitchell <dom@phmit.demon.co.uk>
1998-08-11 18:59:36 +00:00
Brian Somers
7955cdca14 `dns' option defaults to disabled, not enabled. 1998-08-09 23:40:31 +00:00
Brian Somers
0f5ecc8b46 Add missing .El 1998-08-09 17:17:23 +00:00
Brian Somers
74e4a8dab7 /var/run/tunX.pid is created regardless of ppps mode.
Spotted by: Alex <garbanzo@hooked.net>
1998-08-09 17:17:10 +00:00
Brian Somers
92b0955883 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.
1998-08-07 18:42:51 +00:00
Brian Somers
c31ac0b396 Always dial immediately on `open'', dial'' and `call''.
We don't need a ``!''.
1998-07-31 19:50:24 +00:00
Brian Somers
ba23f3976a Allow an optional ``!'' in the open, dial & call commands.
When used, the redial timer is ignored and the modem is
opened immediately.
1998-07-29 18:21:17 +00:00
Brian Somers
3a2e4f621c o Fix remaining sizeof problems for 64 bit machines.
o Allow ``set ....'' when we have multiple links but aren't in
  multilink mode.
o Do a TLS when we receive a ``Open'' event in ``Closed'' state,
  despite the rfc state transition table.  This is clearly an
  error in the RFC as TLS cannot have yet been called (without
  TLF) in the ``Closed'' state.
  I've posted a message to comp.protocols.ppp for confirmation.
1998-06-27 23:48:54 +00:00
Brian Somers
897f9429f9 Add `ipcp'' as an optional argument to `open'', and make
open capable of re-negotiatiating the various layers.

It is now possible to change various link options and then
re-open the relevant layer, making the changes effective -
for example, switching off VJ compression or starting ECHO
LQRs on-the-fly.
1998-06-25 22:33:31 +00:00
Brian Somers
8901e74902 Suggest the use of `accept dns'', not `enable dns'' in
server mode.
1998-06-21 11:14:50 +00:00
Brian Somers
5c6a2cdce8 Mention the ``allow users'' command when describing
how to set things up for incoming connections.
1998-06-18 01:24:29 +00:00
Brian Somers
c12b786782 o Allow `set mrru'' or `set mrru 0'' to disable
multi-link mode.
o Fix a typo in the ``set mrru'' description.
1998-06-16 23:23:57 +00:00
Brian Somers
899011c4eb Don't bring the modem offline or hangup when ``down lcp''
is done.  Instead, behave like ``close lcp''.
1998-06-16 19:40:28 +00:00
Brian Somers
9c81b87d1e Make `close lcp' just close the LCP layer and not hangup. This is
useful for slirp users that wish to get their shell back after the
ppp session.  `close' with no args still hangs up as expected.
Required by: jmz
1998-06-15 19:05:27 +00:00
Brian Somers
41dbe0c7af Add the ``clear'' function.
Mostly submitted by: "Stephane E. Potvin" <sepotvin@videotron.ca>
1998-06-12 20:12:26 +00:00
Brian Somers
87de006540 Correct arg hack
Submitted by: David Leonard <leonard@csee.uq.edu.au>
1998-06-12 17:45:26 +00:00
Brian Somers
05dbe14bd3 Some documentation corrections & typo fixes.... 1998-05-29 18:32:41 +00:00
Brian Somers
87f6044a4b Don't give .It too many args. 1998-05-21 23:45:10 +00:00
Brian Somers
d91d286164 MFMP: Make ppp multilink capable.
See the file README.changes, and re-read the man page.
1998-05-21 21:49:08 +00:00
Brian Somers
04eaa58c59 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).
1998-05-21 01:13:32 +00:00
Brian Somers
368da0a94a o Indicate which commands require context and which have optional
context in the `help' text.
o Remove some redundant code.
o Fix some comments.
1998-05-19 19:58:21 +00:00
Brian Somers
6a5f81994e Talk about multilink ppp 1998-05-18 23:24:24 +00:00
Brian Somers
58d5533465 Add the `rename' command for renaming links. 1998-05-16 23:47:28 +00:00
Brian Somers
dd0645c5b7 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.
1998-05-15 23:58:30 +00:00
Brian Somers
0a1b5c9d9e o Activate link-level CCPs in multilink mode, by bringing them
into the ST_STOPPED state.
o Allow an optional ccp|lcp argument to `down'.  The default is
  still lcp (as before).  You can now call down with no context
  in multilink mode, in which case it'll down the multilink ccp
  or the entire bundle (*very* rude).
o Allow an optional `!' after `close ccp' (close ccp!) to tell
  ccp to stay in the CLOSED state after the terminate ACK.  The
  default is now to re-enter STOPPED so that the peer can bring
  the layer back up if desired.
o Always handle proto-compressed packets, even if we've agreed
  (in LCP) that the peer will not send us 1 byte protocols.
  If the peer violates the LCP agreement, log it to the HDLC
  log.
o Fix some comments.
1998-05-15 18:21:12 +00:00
Brian Somers
a36e970919 Add support for devices beginning with ``!'', where we execute
the given program, using stdin/stdout/stderr as our link
descriptor.
1998-05-13 19:06:27 +00:00
Brian Somers
52ff8cacf6 Allow /nn specifications in the `add' command.
Suggested by: Garrett Wollman <wollman@khavrinen.lcs.mit.edu>

It's now possible to

  add myaddr 127.0.0.1		(add myaddr 255.255.255.255 127.0.0.1)
  add hisaddr/24 hisaddr	(add hisaddr 255.255.255.0 hisaddr)
  add 0 hisaddr			(add 0 0 hisaddr)
  add default hisaddr		(add 0 0 hisaddr)
1998-05-10 09:26:21 +00:00
Brian Somers
846af6dc99 o When specifying the diagnostic port (`set server'), replace
the first ``%d'' in the unix-domain socket name with the
  current interface unit number.  In the case of tcp ports, allow
  a ``+'' prefix to add the unit number to the specified port
  number.
o Remove all mention of SIGUSR1 (was already #ifdef'd out).  We
  can't create diagnostic sockets on-the-fly with a signal any
  more because there's no way of specifying the password without
  confusing matters with the previous ppp.secret scenario.
1998-05-08 18:50:24 +00:00
Brian Somers
b3e3e12ed9 Make the link' and clone' commands understand a comma-separated
list of links, and make `link' understand `*' for all links.  This
allows (for example):

  clone 1,2,3,4,5
  link 1,3 open
  link 2,4,5 rm
  close
  link * rm
1998-05-08 18:49:59 +00:00
Brian Somers
610b185f37 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''.
1998-05-05 23:30:13 +00:00
Brian Somers
9c53a7b1c5 o Display current link throughput in `show links' (assuming
throughput measurement is enabled).
o Load balance the links based on weight *and* on a round-robin
  basis.  This makes things fairly even on an output basis.  We
  don't try to allow for the peer sending all his data down one
  link (and try to send ours back up the other).
o Show the number of pending input buffers that can't be processed
  in ``show mp''.
o Fix a typo in the man page.
1998-05-03 22:13:14 +00:00
Brian Somers
b1ac9332fd o Mention the ``timer'' log in the man page.
o Remove an escaped mention of ``carrier'' logging.
o Alphabeticalise timer logging in the log list.
1998-05-01 22:39:38 +00:00
Brian Somers
6f38457323 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....
1998-04-30 23:53:56 +00:00
Brian Somers
643f49047e o Defer setting up pap/chap based IP numbers & labels until after
we've determined if we're going to join another ppp invocation.
o Make ``show link'' show all link details, and ``show links''
  just give a list of links and their current status.
o Show our current label in ``show bundle''.
o Allow link cloning and removal as soon as our MRRU is set.
o Make ``show lcp'' require context as nothing will ever change
  in our MP LCP (it's auto-configured as per rfc1990).
o Initialise our LQM owner in hdlc_Init().
o Store our endpoint discriminator and authentication name at both
  the datalink and multilink level and compare them when we've
  finished AUTHENTICATE phase and before entering NETWORK phase.
  If they don't match, close the link again.
  Display the information in the appropriate ``show'' command.
o Initialise datalink::phone and datalink::fsmp.object properly
  when we're cloning the link.
o Show which link we're passing LQRs on in our diagnostics.
o Reject endpoint discriminator REQs at the logical multilink
  level.
o Remove the rest of our CARRIER and LINK logging setup.
1998-04-24 19:16:15 +00:00
Brian Somers
d47dceb8ab o Remove LINK level logging.
o change the default link name to ``deflink'' rather
  than ``default''.
o Prepend the link name to CCP and LCP FSM diagnostics.
o Protect against 0 length options in CCP and IPCP REQ
  interpreters (already done for LCP).
o Allow optional context for the `show' command.
o Use MPs link when interpreting commands if the multilink
  mrru is configured rather than when multilink is active.
  This means that once we've ``set mrru xxx'', we then need
  to ``link deflink show ccp'' etc if we want to do link-level
  stuff (based on the command requiring optional or manditory
  context).
o Use the ifconfig'd interface address in `set enddisc {ip,mac}'
  if it's there, otherwise the configuration file value.
1998-04-24 19:15:48 +00:00