Skip site navigation (1)Skip section navigation (2)
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>