#
6301d506 |
| 04-Jul-2001 |
Brian Somers <brian@FreeBSD.org> |
Reduce the interface MTU by 2 when MPPE has been successfully negotiated.
This is necessary because MPPE will combine the protocol id with the payload received on the tun interface, encrypt it, then
Reduce the interface MTU by 2 when MPPE has been successfully negotiated.
This is necessary because MPPE will combine the protocol id with the payload received on the tun interface, encrypt it, then prepend its own protocol id, effectively increasing the payload by two bytes.
show more ...
|
Revision tags: release/4.3.0_cvs, release/4.3.0, release/4.2.0 |
|
#
9b996792 |
| 30-Oct-2000 |
Brian Somers <brian@FreeBSD.org> |
Various whitespace changes. Make some functions static.
|
Revision tags: release/4.1.1_cvs |
|
#
3fd1e17c |
| 17-Aug-2000 |
Brian Somers <brian@FreeBSD.org> |
If we're in MP mode with a single open link, MP link level compression isn't open and the links MRU >= our MRRU, send outbound traffic as PROTO_IP rather than PROTO_MP. This shaves some bytes off th
If we're in MP mode with a single open link, MP link level compression isn't open and the links MRU >= our MRRU, send outbound traffic as PROTO_IP rather than PROTO_MP. This shaves some bytes off the front of each packet 'till the second link is brought up.
Idea obtained from: Cisco
show more ...
|
#
91cbd2ee |
| 15-Aug-2000 |
Brian Somers <brian@FreeBSD.org> |
Maintain input and output throughput averages and choose the highest of the two when calculating the MP throughput average for the ``set autoload'' implementation.
This makes more sense as all links
Maintain input and output throughput averages and choose the highest of the two when calculating the MP throughput average for the ``set autoload'' implementation.
This makes more sense as all links I know of are full-duplex. This also means that people may need to adjust their autoload settings as 100% bandwidth is now the theoretical maximum rather than 200% (but of course, halfing the current settings is probably not the correct answer either!).
This involves a ppp version bump as we need to pass an extra throughput array through the MP local domain socket.
show more ...
|
#
11572abf |
| 15-Aug-2000 |
Brian Somers <brian@FreeBSD.org> |
Calculate the average link throughput using a counter based on the cumulative total of all active links rather than basing it on the total of PROTO_MP traffic.
This fixes a problem whereby Cisco rou
Calculate the average link throughput using a counter based on the cumulative total of all active links rather than basing it on the total of PROTO_MP traffic.
This fixes a problem whereby Cisco routers send PROTO_IP packets only when there's only one link (hmm, what a good idea!).
show more ...
|
Revision tags: release/4.1.0 |
|
#
cb8bd8dd |
| 12-Jul-2000 |
Brian Somers <brian@FreeBSD.org> |
Fix a rather nasty latency problem that occurs with single tcp sessions thorough an MP setup with only a single link.
|
Revision tags: release/3.5.0_cvs |
|
#
7ebff009 |
| 22-May-2000 |
Brian Somers <brian@FreeBSD.org> |
Be more verbose when a second link doesn't match the first because the peer enddisc/authname is different.
|
Revision tags: release/4.0.0_cvs |
|
#
f013f33e |
| 14-Mar-2000 |
Brian Somers <brian@FreeBSD.org> |
To avoid namespace polution in NetBSD:
``struct descriptor'' -> ``struct fdescriptor''
|
#
57f0cd10 |
| 07-Jan-2000 |
Brian Somers <brian@FreeBSD.org> |
Remove an unused #define
|
#
26af0ae9 |
| 20-Dec-1999 |
Brian Somers <brian@FreeBSD.org> |
Cosmetic: Make struct mbuf more like kernel mbufs.
|
Revision tags: release/3.4.0_cvs |
|
#
cbee9754 |
| 01-Dec-1999 |
Brian Somers <brian@FreeBSD.org> |
Change the way we transfer links (again). The previous method avoided all race conditions, but suffered from sometimes running out of buffer space if enough clients were piled up at the same time.
Change the way we transfer links (again). The previous method avoided all race conditions, but suffered from sometimes running out of buffer space if enough clients were piled up at the same time.
Now, the client pushes the link descriptor, one end of a socketpair() and the ppp version via sendmsg() at the server. The server replies with a pid. The client then transfers any link lock with uu_lock_txfr() and writev()s the actual link contents. The socketpair is now the only place we need to have large socket buffers and the bind()ed socket can keep the default 4k buffer while still handling around 90 racing clients.
show more ...
|
#
2cb305af |
| 25-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 becam
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
show more ...
|
#
b9391689 |
| 21-Sep-1999 |
Brian Somers <brian@FreeBSD.org> |
Back out the bogus #ifdef __NetBSD__ #include <signal.h> lines. The original report was due to a mis-installation of the NetBS header files :-/
Submitted by: Kazuyoshi Kato <kazk@yyy.or.jp>
|
#
7e795ebe |
| 20-Sep-1999 |
Brian Somers <brian@FreeBSD.org> |
NetBSD has moved ``extern int errno;'' to signal.h :-/
Submitted by: Kazuyoshi Kato <kazk@yyy.or.jp>
|
Revision tags: release/3.3.0_cvs |
|
#
f02c2029 |
| 08-Sep-1999 |
Brian Somers <brian@FreeBSD.org> |
Cosmetic: alias_cmd -> nat_cmd after a repo-copy
|
#
442f8495 |
| 04-Sep-1999 |
Brian Somers <brian@FreeBSD.org> |
o Split the two IPCP queues into three - one for FSM data (LCP/CCP/IPCP), one for urgent IP traffic and one for everything else. o Add the ``set urgent'' command for adjusting the list of urgen
o Split the two IPCP queues into three - one for FSM data (LCP/CCP/IPCP), one for urgent IP traffic and one for everything else. o Add the ``set urgent'' command for adjusting the list of urgent port numbers. The default urgent ports are 21, 22, 23, 513, 514, 543 and 544 (Ports 80 and 81 have been removed from the default priority list). o Increase the buffered packet threshold from 20 to 30. o Report the number of packets in the IP output queue and the list of urgent ports under ``show ipcp''.
show more ...
|
#
97d92980 |
| 28-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 u
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''.
show more ...
|
#
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
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).
show more ...
|
#
7063995c |
| 09-Jun-1999 |
Brian Somers <brian@FreeBSD.org> |
Allow our endpoint discriminator to be enabled, disabled, accepted and denied. This is necessary for some MP implementations that get confused if you accept their endpoint discriminator but reject t
Allow our endpoint discriminator to be enabled, disabled, accepted and denied. This is necessary for some MP implementations that get confused if you accept their endpoint discriminator but reject their MRRU.
show more ...
|
#
64e0f466 |
| 03-Jun-1999 |
Brian Somers <brian@FreeBSD.org> |
Fix some MP sequence number comparison bogons that are tickled by having different speed links in a bundle. This would manifest itself by having the link occasionally hang, but revive when a new con
Fix some MP sequence number comparison bogons that are tickled by having different speed links in a bundle. This would manifest itself by having the link occasionally hang, but revive when a new connection is made.... Make ``show mp'' a bit prettier.
show more ...
|
#
fa0d5216 |
| 03-Jun-1999 |
Brian Somers <brian@FreeBSD.org> |
Oops, quieten a compiler warning.
|
#
411675ba |
| 02-Jun-1999 |
Brian Somers <brian@FreeBSD.org> |
o Alter the mbuf type as it's processed by different layers. o Show more information about missing MP fragments in ``show mp''. o Do away with mbuf_Log(). It was showing mbuf stats twice on receip
o Alter the mbuf type as it's processed by different layers. o Show more information about missing MP fragments in ``show mp''. o Do away with mbuf_Log(). It was showing mbuf stats twice on receipt of LCP/CCP/IPCP packets.... ???!!? o Pre-allocate a bit extra when creating LQR packets to avoid having to allocate another mbuf in mbuf_Prepend().
show more ...
|
#
65cec6e7 |
| 28-May-1999 |
Brian Somers <brian@FreeBSD.org> |
Don't forget to free the mbufs that get processed by mp_Assemble(). Leak spotted by: louqi
|
Revision tags: release/3.2.0 |
|
#
6815097b |
| 12-May-1999 |
Brian Somers <brian@FreeBSD.org> |
Allow ``host:port/udp'' devices and support ``host:port/tcp'' as being the same as the previous (still supported) ``host:port'' syntax for tcp socket devices.
A udp device uses synchronous ppp rathe
Allow ``host:port/udp'' devices and support ``host:port/tcp'' as being the same as the previous (still supported) ``host:port'' syntax for tcp socket devices.
A udp device uses synchronous ppp rather than async, and avoids the double-retransmit overhead that comes with ppp over tcp (it's usually a bad idea to transport IP over a reliable transport that itself is using an unreliable transport). PPP over UDP provides througput of ** 1.5Mb per second ** with all compression disabled, maxing out a PPro/200 when running ppp twice, back-to-back.
This proves that PPPoE is plausable in userland....
This change adds a few more handler functions to struct device and allows derivations of struct device (which may contain their own data etc) to pass themselves through the unix domain socket for MP. ** At last **, struct physical has lost all the tty crud !
iov2physical() is now smart enough to restore the correct stack of layers so that MP servers will work again.
The version number has bumped as our MP link transfer contents have changed (they now may contain a `struct device').
Don't extract the protocol twice in MP mode (resulting in protocol rejects for every MP packet). This was broken with my original layering changes.
Add ``Physical'' and ``Sync'' log levels for logging the relevent raw packets and add protocol-tracking LogDEBUG stuff in various LayerPush & LayerPull functions.
Assign our physical device name for incoming tcp connections by calling getpeername().
Assign our physical device name for incoming udp connections from the address retrieved by the first recvfrom().
show more ...
|