From owner-freebsd-current Wed Jun 19 09:21:03 1996 Return-Path: owner-current Received: (from root@localhost) by freefall.freebsd.org (8.7.5/8.7.3) id JAA24427 for current-outgoing; Wed, 19 Jun 1996 09:21:03 -0700 (PDT) Received: from halloran-eldar.lcs.mit.edu (halloran-eldar.lcs.mit.edu [18.26.0.159]) by freefall.freebsd.org (8.7.5/8.7.3) with SMTP id JAA24420 for ; Wed, 19 Jun 1996 09:21:01 -0700 (PDT) Received: by halloran-eldar.lcs.mit.edu; (5.65/1.1.8.2/19Aug95-0530PM) id AA19066; Wed, 19 Jun 1996 12:20:52 -0400 Date: Wed, 19 Jun 1996 12:20:52 -0400 From: Garrett Wollman Message-Id: <9606191620.AA19066@halloran-eldar.lcs.mit.edu> To: "Daniel M. Eischen" Cc: current@FreeBSD.org, fenner@parc.xerox.com Subject: Re: As of 960608, routed now complains bitterly. In-Reply-To: <9606190146.AA01599@iworks.InterWorks.org> References: <9606190146.AA01599@iworks.InterWorks.org> Sender: owner-current@FreeBSD.org X-Loop: FreeBSD.org Precedence: bulk < said: > Add interface ppp0 204.213.233.105 --> 204.213.232.3 metric=1 > turn on RIP > Add 204.213.232.3/32--> 204.213.233.105 metric=1 ppp0 21:45:28 > Add 204.213.233.105/32--> 127.0.0.1 metric=1 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 > Chg 204.213.232.3/32--> 204.213.233.105 metric=1 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. -GAWollman -- Garrett A. Wollman | Shashish is simple, it's discreet, it's brief. ... wollman@lcs.mit.edu | Shashish is the bonding of hearts in spite of distance. Opinions not those of| It is a bond more powerful than absence. We like people MIT, LCS, ANA, or NSA| who like Shashish. - Claude McKenzie + Florent Vollant