Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 28 Jan 2003 10:25:57 +0200
From:      Ari Suutari <ari.suutari@syncrontech.com>
To:        Gary Jennejohn <garyj@jennejohn.org>, joerg@FreeBSD.ORG
Cc:        "G Hasse" <gh@raditex.se>, freebsd-isdn@FreeBSD.ORG
Subject:   Re: Problem with "no bufferspace" - solution
Message-ID:  <200301281025.57413.ari.suutari@syncrontech.com>
In-Reply-To: <200301241522.h0OFLwj1014253@peedub.jennejohn.org>
References:  <200301241522.h0OFLwj1014253@peedub.jennejohn.org>

next in thread | previous in thread | raw e-mail | index | archive | help
Hi,

I think I have now understood this better.
The PPP layer can be activated by two events,
either by "up" or "open". When PPP is activated by
incoming call "up" is used to signal that physical layer
has become ready to transmit packets. In this case,
"down" can be used to bring the layer down.

However, if the PPP is activated by outgoing packet,
an "open" event is used inside ppp to put LCP layer
into starting state. In this case, "close" should
be used to bring the LCP layer down. This is
why the sppp complains about illegal state transition
when i4b issues "down" after dialing has failed.

I cannot think of any kind of simple solution
to this, except when dialing fails issue first
"up" and then immediately "down".

I wonder how pppd and user ppp handle this
(ie. modem dialing fails when using on-demand dialing)

=09Ari S.


On Friday 24 January 2003 17:21, Gary Jennejohn wrote:
>
> In that case my suggestion is incorrect. Your patch is the correct
> way to do it.
>
> "Ari Suutari" writes:
> >    I did some reading on PPP RFC (1661). The correct way for
> >    physical layer to signal that it is no longer able to carry packet
> >    is to use Down event. So I think that my original code was correct=
=2E
> >    The problem is in sppp layer, which works otherwise ok
> >    but prints out extraneous message.
> >
> >    The PPP RFC doesn't say that it is legal to receive
> >    Down event when LCP is in starting state but says
> >    elsewhere that Down is the event to use by physical layer...
>
> I suppose. if_spppsubr.c is J=F6rg Wunsch's baby. We should ask him
> his opinion. I'm pretty sure that he's subscribed to this list.
> But I'll Cc: him.
>
> J=F6rg, any problem aith adding something like this to sppp_down_event?
> (not a real diff)
>
> case STATE_CLOSING:
> + case STATE_STARTING:
> =09sppp_cp_change_state(cp, sp, STATE_INITIAL);
> =09break;
>
> ---
> Gary Jennejohn / garyj@jennejohn.org gj@freebsd.org gj@denx.de
>
>
> To Unsubscribe: send mail to majordomo@FreeBSD.org
> with "unsubscribe freebsd-isdn" in the body of the message


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-isdn" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200301281025.57413.ari.suutari>