From owner-freebsd-bugs Tue Jul 7 07:52:47 1998 Return-Path: Received: (from majordom@localhost) by hub.freebsd.org (8.8.8/8.8.8) id HAA08758 for freebsd-bugs-outgoing; Tue, 7 Jul 1998 07:52:47 -0700 (PDT) (envelope-from owner-freebsd-bugs@FreeBSD.ORG) Received: from k2.lart.net (k2.lart.net [205.240.209.213]) by hub.freebsd.org (8.8.8/8.8.8) with ESMTP id HAA08746 for ; Tue, 7 Jul 1998 07:52:41 -0700 (PDT) (envelope-from sthomas@k2.lart.net) Received: (from sthomas@localhost) by k2.lart.net (8.8.7/8.8.7) id OAA16626; Tue, 7 Jul 1998 14:58:03 GMT Message-ID: <19980707145802.D1918@lart.net> Date: Tue, 7 Jul 1998 14:58:02 +0000 From: Samuel S Thomas To: dg@root.com Cc: Poul-Henning Kamp , freebsd-bugs@FreeBSD.ORG Subject: Re: kern/7191: FreeBSD 2.2.6 generates Source-route prohibited when not routing References: <19980707130918.F13836@lart.net> <199807071414.HAA24496@implode.root.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Mailer: Mutt 0.91.1 In-Reply-To: <199807071414.HAA24496@implode.root.com>; from David Greenman on Tue, Jul 07, 1998 at 07:14:33AM -0700 Sender: owner-freebsd-bugs@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.org > It is probably a bug that source route IP options are processed at all > when a machine isn't configured for IP forwarding. While fixing this would > supress your warnings, it wouldn't fix the real problem which is why the > machine is seeing the packets in the first place. This is exactly my point. This is mentioned fairly clearly in rfc1122, also. I will agree to work with the PAO people on determining how those packets are getting to the IP layer without being discarded by the interface, so long as you core kernel-hacker types agree that the kernel should know whether or not it's routing, and check IP src/dst addresses accordingly. Fair enough? There does appear to be a check in their if_ep.c, though... I'll be the first to admit that my C hacking skills have gone unused for the past 3 years, and are a bit rusty in deference to my TCP/IP and routing skills, but it seems to me that this code should work as advertised. I'll need to kill a tree to get much deeper into it, though. #if NBPFILTER > 0 if (ifp->if_bpf) { bpf_mtap(ifp, top); /* * Note that the interface cannot be in promiscuous mode if there are * no BPF listeners. And if we are in promiscuous mode, we have to * check if this packet is really ours. */ eh = mtod(top, struct ether_header *); if ((ifp->if_flags & IFF_PROMISC) && (eh->ether_dhost[0] & 1) == 0 && bcmp(eh->ether_dhost, sc->arpcom.ac_enaddr, sizeof(eh->ether_dhost)) != 0 && bcmp(eh->ether_dhost, etherbroadcastaddr, sizeof(eh->ether_dhost)) != 0) { if (sc->top) { m_freem(sc->top); sc->top = 0; } ep_fset(F_RX_FIRST); #ifdef EP_LOCAL_STATS sc->rx_bpf_disc++; #endif while (inw(BASE + EP_STATUS) & S_COMMAND_IN_PROGRESS); outw(BASE + EP_COMMAND, SET_RX_EARLY_THRESH | RX_INIT_EARLY_THRESH); return; } } #endif To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-bugs" in the body of the message