Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 20 Mar 2000 08:34:59 +0100
From:      Gary Jennejohn <garyj@peedub.muc.de>
To:        Andreas Haakh <ah@haakh.de>
Cc:        freebsd-isdn@FreeBSD.ORG
Subject:   Re: isp0 up and running but not working 
Message-ID:  <200003200734.IAA02547@peedub.muc.de>
In-Reply-To: Your message of "Sun, 19 Mar 2000 15:59:32 %2B0100." <Pine.BSF.4.21.0003191534120.696-100000@alvman.RoBIN.de> 

next in thread | previous in thread | raw e-mail | index | archive | help
Andreas Haakh writes:
>On Sun, 19 Mar 2000, Gary Jennejohn wrote:
>
>> With this patch (against the latest developers release, but it should =
be
>> easy to apply it by hand against older releases) the first few queued
>> packets no longer get lost. This is obvious from the following tcpdump=

>> info:
>Great! this solves quite some of the problems...
>
>Nevertheless, looking at the changes I assume (I can't test it because I=

>use dynamic IP-addresses) that, if you start the connection using "real"=

>TCP/IP packets, they still will be lost because the packets will be
>delayed until IPCP_UP is reached but as the interface is not yet running=

>(IFF_RUNNING is not set), the peer will probably ignore them??
>I thing You still need something like /*!!!*/ to delay the transfer.
>
>         * Do always serve all three queues in Cisco mode.
>         */
>        IF_DEQUEUE(&sp->pp_cpq, m);
>        if (m =3D=3D NULL &&
>            ((sppp_ncp_check(sp) && (sp->ipcp.flags & IPCP_UP))
>            || sp->pp_mode =3D=3D IFF_CISCO)) {
>                IF_DEQUEUE(&sp->pp_fastq, m);
>                if (m =3D=3D NULL && ((ifp->if_flags & IFF_RUNNING)	/*!!=
!*/
>		     || sp->pp_mode =3D=3D IFF_CISCO)) 		/*!!!*/
>                        IF_DEQUEUE (&sp->pp_if.if_snd, m);
>        }
>
>

IFF_RUNNING is set in various places, among others in sppp_output when
the dialout is done. If IFF_RUNNING is not set there then no packets
will be queued in pp_fastq or if_snd, in which case the check against
IFF_RUNNING above is redundant since IF_DEQUEUE will return NULL.
At least, that's the way it looks to me.

---
Gary Jennejohn / garyj@muc.de garyj@fkr.cpqcorp.net gj@freebsd.org




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?200003200734.IAA02547>