From owner-freebsd-net Mon Aug 19 10:29:57 2002 Delivered-To: freebsd-net@freebsd.org Received: from mx1.FreeBSD.org (mx1.FreeBSD.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 853FB37B400 for ; Mon, 19 Aug 2002 10:29:52 -0700 (PDT) Received: from iguana.icir.org (iguana.icir.org [192.150.187.36]) by mx1.FreeBSD.org (Postfix) with ESMTP id 1B81243E42 for ; Mon, 19 Aug 2002 10:29:52 -0700 (PDT) (envelope-from rizzo@iguana.icir.org) Received: from iguana.icir.org (localhost [127.0.0.1]) by iguana.icir.org (8.12.3/8.11.3) with ESMTP id g7JHTpIb038906; Mon, 19 Aug 2002 10:29:51 -0700 (PDT) (envelope-from rizzo@iguana.icir.org) Received: (from rizzo@localhost) by iguana.icir.org (8.12.3/8.12.3/Submit) id g7JHTpJ4038905; Mon, 19 Aug 2002 10:29:51 -0700 (PDT) (envelope-from rizzo) Date: Mon, 19 Aug 2002 10:29:51 -0700 From: Luigi Rizzo To: Lars Eggert Cc: net@FreeBSD.ORG Subject: Re: Bridging when one interface has no carrier Message-ID: <20020819102951.A38869@iguana.icir.org> References: <3D61224B.2020902@isi.edu> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.2.5.1i In-Reply-To: <3D61224B.2020902@isi.edu>; from larse@ISI.EDU on Mon, Aug 19, 2002 at 09:52:27AM -0700 Sender: owner-freebsd-net@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.org Hi, I guess the responsible of the problem is this part of code in sys/net/if_ethersubr.c:ether_demux(): /* Discard packet if interface is not up */ if ((ifp->if_flags & IFF_UP) == 0) { m_freem(m); return; } which is somewhat funny, because once we have the packet, we might as well process it. Now, one could bypass the test for the bridging case, or remove it altogether... I am not sure which one is the best approach. cheers luigi On Mon, Aug 19, 2002 at 09:52:27AM -0700, Lars Eggert wrote: > Hi, > > I've filed a PR (kern/41632, > http://www.freebsd.org/cgi/query-pr.cgi?pr=kern/41632) on the following > problem: > > FreeBSD box with two Ethernet NICs, e.g. if0 with IP address A and if1 > with IP address B, bridged together: > > net.link.ether.bridge_cfg: if0 if1 > net.link.ether.bridge: 1 > > Interface if0 is plugged in (has carrier), if1 isn't (no carrier). > Packets arriving on if0 for IP address B (or the broadcast address) are > not received by processes running on the bridging machine. > > Any ideas? > > Thanks, > Lars > -- > Lars Eggert USC Information Sciences Institute To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-net" in the body of the message