Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 24 Jan 2003 12:37:51 +0100
From:      Gary Jennejohn <garyj@jennejohn.org>
To:        "Ari Suutari" <ari.suutari@syncrontech.com>
Cc:        "G Hasse" <gh@raditex.se>, freebsd-isdn@FreeBSD.ORG
Subject:   Re: Problem with "no bufferspace" - solution 
Message-ID:  <200301241137.h0OBbp6e003767@peedub.jennejohn.org>
In-Reply-To: Your message of "Fri, 24 Jan 2003 10:47:12 %2B0200." <00dd01c2c385$308ba500$2508473e@coffee> 

next in thread | previous in thread | raw e-mail | index | archive | help
"Ari Suutari" writes:
> Hi,
> 
> Here is a patch that works for me. The only problem is that
> I got following message to console:
> 
> Jan 24 10:33:04 test /kernel: isp1: lcp illegal down in state starting
> 
> when dialing fails. Maybe something else than
> sp->pp_down should be used to close down sppp layer.
> However, the sppp layer returns to idle state and
> new ping tries to dial again.
> 

The LCP is most probably still in STATE_INITIAL since no data were ever
exchanged with the other end.

I recommend  something like this (this is not a diff! I just added code
here):

>     Ari S.
> 
> *** i4b_isppp.c.orig    Wed Apr 24 21:45:24 2002
> --- i4b_isppp.c Fri Jan 24 10:32:32 2003
> ***************
> *** 614,619 ****
> --- 614,620 ----
>   i4bisppp_dialresponse(int unit, int status, cause_t cause)
>   {
>         struct i4bisppp_softc *sc = &i4bisppp_softc[unit];
> +       struct sppp *sp = &sc->sc_if_un.scu_sp;
	  struct ifnet *ifp = &sp->pp_if;
> 
>         NDBGL4(L4_ISPDBG, "isp%d: status=%d, cause=%d", unit, status,
> cause);
> 
> ***************
> *** 628,633 ****
> --- 629,639 ----
>                         while((m = sppp_dequeue(&sc->sc_if)) != NULL)
>                                 m_freem(m);
>                 }
		  /* taken from spp_lcp_down */
		  if ((ifp->if_flags & (IFF_AUTO | IFF_PASSIVE)) == 0)
			if_down(ifp);
		  else {
			sp->pp_flags &= ~PP_CALLIN;
#if 0
			/* we assume STATE_INITIAL here! */
			/* these lines kept for information only */
			if (sp->state[IDX_LCP] != STATE_INITIAL)
				lcp.Close(sp);
#endif
			ifp->if_flags &= ~IFF_RUNNING;
		  }
>         }
>   }
> 

Get the idea?

---
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




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