#
879ed6fa |
| 13-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, i
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.
show more ...
|
#
f4768038 |
| 23-Feb-1998 |
Brian Somers <brian@FreeBSD.org> |
o Remove the global CcpInfo. It's now part of the datalink. Struct bundle will have its own struct ccp in the future too. o The ``set stopped'' command now requires context and doesn't work on
o Remove the global CcpInfo. It's now part of the datalink. Struct bundle will have its own struct ccp in the future too. o The ``set stopped'' command now requires context and doesn't work on the IPCP FSM. o Check if it's time to break out of our top level loop before doing a select - otherwise, we'll select forever :-( o Remove `struct link'::ccp (a temporary hack). It turns out that IpStartOutput() calls link_Output() and link_Output() incorrectly calls StartOutput() (really modem_StartOutput) requiring the ccp knowledge so that it can call IpStartOutput()... The end result is that the whole IP output queue gets dumped into the modem output queue and a pile of physical writes are done prematurely. This makes the (original) code in main() actually work in that it would not bother selecting() on the tun descriptor when our modem queue length was 20 or greater. Instead, we now make that decision based on the overall queue length.
This will need improvement later.
show more ...
|
#
63258dcc |
| 18-Feb-1998 |
Brian Somers <brian@FreeBSD.org> |
o Create `struct hdlc' - a part of struct physical. o Move our LCP report timer into struct hdlc - it's really a hdlc timer (fcs errors etc). o Make `show hdlc' require context and make the output
o Create `struct hdlc' - a part of struct physical. o Move our LCP report timer into struct hdlc - it's really a hdlc timer (fcs errors etc). o Make `show hdlc' require context and make the output more friendly. o Remove all non-const globals from hdlc.c o Output peer-rejected protocols by name - not just ones that we reject.
show more ...
|
#
7308ec68 |
| 31-Jan-1998 |
Brian Somers <brian@FreeBSD.org> |
Move the global FSMs into their relevent structures. IPCP, CCP and LCP are now just derived FSMs. Comment each of the FSM implementations so that we can tell what's going on. Revise the state transit
Move the global FSMs into their relevent structures. IPCP, CCP and LCP are now just derived FSMs. Comment each of the FSM implementations so that we can tell what's going on. Revise the state transitions so that CCP and IPCP actually send terminate REQs when appropriate.
The OS & IPCP layers are still like spagetti (next job).
show more ...
|
#
8c07a7b2 |
| 30-Jan-1998 |
Brian Somers <brian@FreeBSD.org> |
Create `struct link' - the logical link from which `struct physical' (and the future `struct logical') are derived.
|
#
c8ee0d78 |
| 30-Jan-1998 |
Brian Somers <brian@FreeBSD.org> |
o Bring global/static data into LcpInfo. o Parameterise LcpReportTime(). o Don't obscure the hard-coded use of LcpInfo. o Comment on the data elements of LcpInfo.
|
#
63b73463 |
| 29-Jan-1998 |
Brian Somers <brian@FreeBSD.org> |
Create a new MP branch for `multilink protocol'.
Do lots of initial shuffling and grouping. Submitted by: Eivind Eklund <perhaps@yes.no>
|
#
1ae349f5 |
| 29-Jan-1998 |
cvs2svn <cvs2svn@FreeBSD.org> |
This commit was manufactured by cvs2svn to create branch 'MP'.
|
#
98baf7c8 |
| 10-Jan-1998 |
Brian Somers <brian@FreeBSD.org> |
Implement Reset{Req,Ack} properly, as per rfc 1962. (I completely mis-read the rfc last time 'round!)
This means: o Better CCP/WARN Reset diagnostics. o After we've sent a REQ and before we've r
Implement Reset{Req,Ack} properly, as per rfc 1962. (I completely mis-read the rfc last time 'round!)
This means: o Better CCP/WARN Reset diagnostics. o After we've sent a REQ and before we've received an ACK, we drop incoming compressed data and send another REQ. o Before sending an ACK, re-sequence all pending PRI_NORMAL data in the modem queue so that pending packets won't get to the peer *after* the ResetAck. o Send ACKs with the `identifier' from the REQ frame. o After we've received a correct ACK, duplicate ACKs are ok (and will reset our history). o Incorrect ACKs (not matching the last REQ) are moaned about and dropped.
Also,
o Calculate the correct FCS after compressing a packet. DEFLATE *may* produce an mbuf with more than a single link in the chain, but HdlcOutput didn't know how to calculate the FCS :-( o Make `struct fsm'::reqid a u_char, not an int. This fix will prevent us from sending id `255' 2,000,000,000 times before wrapping to `0' for another 2,000,000,000 sends :-/ o Bump the version number a little.
The end result: DEFLATE now works over an unreliable link layer. I can txfr a 1.5Mb kernel over a (rather bad) null-modem cable at an average of 21679 bytes per second using rcp. Repeat after me: Don't test compression using a loopback ppp/tcp setup as we never lose packets and therefore never have to reset!
show more ...
|
#
1208d55b |
| 28-Dec-1997 |
Brian Somers <brian@FreeBSD.org> |
Allow initial sequence numbers less than what we're expecting. When CCP is originally negotiated, the only thing we can be sure about is that we've started adding data to the inflate dictionary eithe
Allow initial sequence numbers less than what we're expecting. When CCP is originally negotiated, the only thing we can be sure about is that we've started adding data to the inflate dictionary either before or at the same time as the peer. This is ok, 'cos DEFLATE is a `sliding window' compressor.
show more ...
|
#
c39934ea |
| 21-Dec-1997 |
Brian Somers <brian@FreeBSD.org> |
Add (BSD) copyright headers.
|
#
038a3666 |
| 08-Dec-1997 |
Brian Somers <brian@FreeBSD.org> |
Deal with inflate() returning avail_in == avail_out == 0 We must call inflate again in case there's any pending output despite our input buffer being empty. If the output buffer is in fact already f
Deal with inflate() returning avail_in == avail_out == 0 We must call inflate again in case there's any pending output despite our input buffer being empty. If the output buffer is in fact already flushed, inflate() returns Z_BUF_ERROR. There isn't really an error !
show more ...
|
#
4bc84b8c |
| 04-Dec-1997 |
Brian Somers <brian@FreeBSD.org> |
Fix the CCP Type field value for DEFLATE. (I *really* meant to do this *before* committing the deflate changes in the first place - oops).
Pppd is horribly broken in this respect - refer to the ppp
Fix the CCP Type field value for DEFLATE. (I *really* meant to do this *before* committing the deflate changes in the first place - oops).
Pppd is horribly broken in this respect - refer to the ppp man page for details. Ppp *WON'T* negotiate deflate with pppd by default - you must ``enable'' and ``accept'' ``pppd-deflate'' in your config.
While I'm in there, update the cftypes in ccp.c so that we recognise some more protocols (we don't actually do anything with them - just send a REJ).
show more ...
|
#
0053cc58 |
| 03-Dec-1997 |
Brian Somers <brian@FreeBSD.org> |
Abstract the CCP layer a level. Add DEFLATE support.
|