Date: Sat, 24 Mar 2001 00:10:26 +0000 From: Brian Somers <brian@Awfulhak.org> To: Joerg Wunsch <joerg@FreeBSD.org> Cc: cvs-committers@FreeBSD.org, cvs-all@FreeBSD.org, brian@Awfulhak.org Subject: Re: cvs commit: src/sys/net if_spppsubr.c Message-ID: <200103240010.f2O0AQ717066@hak.lan.Awfulhak.org> In-Reply-To: Message from Joerg Wunsch <joerg@FreeBSD.org> of "Fri, 23 Mar 2001 11:51:13 PST." <200103231951.f2NJpDA18258@freefall.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
> joerg 2001/03/23 11:51:13 PST
>
> Modified files:
> sys/net if_spppsubr.c
> Log:
> (MFC candidate, see below).
>
> When we get an Open event in stopped state, experience shows that this
> is usually means we've somehow missed a previous Down event. This has
I don't think I understand what ``missing a previous Down event''
means :-)
I suspect that the problem here may be related to the unbalanced TLS
calls in the state diagram in rfc1661. If for example a RCR occurs
in Stopped state, a TLS isn't required according to the rfc, but this
means that it's possible to bring the link (back) up without a TLS.
> occasionally bitten people for the IPCP layer with ISDN, apparently a
> previously aborted IPCP negotiation must have caused this. As a
> bandaid, we quickly pretent a Down event by advancing to starting
> state; this effectively implements the `restart' option mentioned in
> RFC 1663.
>
> While i'm not yet fully convinced this is the best thing to do (and is
> fully compliant with RFC 1661), i've seen a number of reports here on
> the German mailing lists where people have been bitten by the previous
> behaviour which usually causes quickly looping ISDN reconnects (thus
> loss of money...), and where just this patch fixes the problem.
FWIW, ppp(8) (purposefully) violates the rfc here and does a TLS when
it gets an RCR in Stopped or Closed state. As a result, the restart
option isn't necessary (I believe the restart option is a hack to cope
with the missing TLS -- doing a Down from Stopped gets it back).
FWIW(2), ppp(8) also ``hacks'' it's way into Stopped when it's
``openmode'' value has been set to anything but the default of active.
This is so that it can react correctly to the peer starting things.
I believe other implementations do this too, so perhaps the problem
you're seeing is as a result of the peer going into Stopped when it
shouldn't and missing it's TLS because of an rfc-compliant
implementation. It's possible it'll get confused after that and
end up pushing our side into Stopped... although I'm not too
convinced about this...
> For this, i'd even like to see it MFC'd if possible.
I prefer the extra TLS idea :-)
> Submitted by: Helmut Kreft <kreft@zeus.ai-lab.fh-furtwangen.de>
>
> Revision Changes Path
> 1.65 +15 -1 src/sys/net/if_spppsubr.c
--
Brian <brian@Awfulhak.org> <brian@[uk.]FreeBSD.org>
<http://www.Awfulhak.org> <brian@[uk.]OpenBSD.org>
Don't _EVER_ lose your sense of humour !
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe cvs-all" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200103240010.f2O0AQ717066>
