Date: Wed, 19 Jun 1996 15:37:09 -0400 From: "Daniel M. Eischen" <deischen@iworks.InterWorks.org> To: wollman@lcs.mit.edu, fenner@parc.xerox.com Cc: current@FreeBSD.org, deischen@iworks.InterWorks.org Subject: Re: As of 960608, routed now complains bitterly Message-ID: <31C856E5.41C67EA6@iworks.InterWorks.org>
next in thread | raw e-mail | index | archive | help
Bill Fenner writes:
> >RTM_ADD 0.0.0.0 --> 204.213.232.3 from pid 189
>
> Was routed pid 189, or did this come from somewhere else (your ppp startup
> script?) Is your ppp neighbor advertising default?
>
> Can you try running "route monitor" in parallel? I don't think that
> routed is doing enough tracing.
No it wasn't routed, but was probably from my PPP startup script in which I
set the default route. I'm away from my machine at home, so I can't verify
this until later tonight (EST). I'll try running "route monitor" as you
suggest.
Garret Wollman writes:
> > Add interface ppp0 204.213.233.105 --> 204.213.232.3 metric=1 <PT-TO-PT> <BCAST_RDISC>
> > turn on RIP
> > Add 204.213.232.3/32--> 204.213.233.105 metric=1 <IF> ppp0 21:45:28
> > Add 204.213.233.105/32--> 127.0.0.1 metric=1 <IF|LOCAL> ppp0 21:45:28
> > Send RIPv2 REQUEST to 204.213.232.3.520 via ppp0
> > sendto(ppp0, 204.213.232.3.520): Network is down
> > Chg interface ppp0 204.213.233.105 --> 204.213.232.3 metric=1 <PT-TO-PT> <BROKE|BCAST_RDISC>
> > Chg 204.213.232.3/32--> 204.213.233.105 metric=1 <IF> ppp0
> > 204.213.232.3/32--> metric=16 - hold-down=10 21:43:28
>
> This part looks curious. Note here that it's trying to send a RIP
> message to the other side of your PPP link and getting an ENETDOWN
> error. I'm guessing that the following code is what's causing it:
>
> (from if_ppp.c)
> if (sc->sc_devp == NULL || (ifp->if_flags & IFF_RUNNING) == 0
> || (ifp->if_flags & IFF_UP) == 0 && dst->sa_family != AF_UNSPEC) {
> error = ENETDOWN; /* sort of */
> goto bad;
> }
>
> What this seems to be saying is: `if there is no TTY attached, or if
> the interface is not RUNNING, or if both the interface is not UP and
> the attempted write is not for family AF_UNSPEC (meaning raw PPP)'.
> My guess would be that there is some window in between the time that
> the interface is configured as UP, and the time that it is configured
> as RUNNING (perhaps there is some IPCP transaction that has to go on
> here), and that `routed' is attempting to send on an interface that is
> in such a state.
>
> Here is an experiment you might try... in
> /usr/src/usr.sbin/routed/defs.h, look for the lines:
>
> #ifdef sgi
> #define IFF_UP_RUNNING (IFF_RUNNING|IFF_UP)
> #else
> #define IFF_UP_RUNNING IFF_UP
> #endif
>
> ...and change the `#ifdef sgi' to `#if 1' and see what happens. You
> might have to fix up a few interfaces in the kernel (like the
> loopback) so that they properly set IFF_RUNNING in order for this to
> work. (I will do so in -current.)
>
> Also, if you are getting lots of IP_[ADD|DROP]_MEMBERSHIP warnings,
> try defining MCAST_PPP_BUG. I don't think that this should be
> necessary, but it can't hurt to try.
I'll also try this later tonight.
Dan Eischen
deischen@iworks.InterWorks.org
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?31C856E5.41C67EA6>
