Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 19 Aug 2002 10:29:51 -0700
From:      Luigi Rizzo <rizzo@icir.org>
To:        Lars Eggert <larse@ISI.EDU>
Cc:        net@FreeBSD.ORG
Subject:   Re: Bridging when one interface has no carrier
Message-ID:  <20020819102951.A38869@iguana.icir.org>
In-Reply-To: <3D61224B.2020902@isi.edu>; from larse@ISI.EDU on Mon, Aug 19, 2002 at 09:52:27AM -0700
References:  <3D61224B.2020902@isi.edu>

next in thread | previous in thread | raw e-mail | index | archive | help
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 <larse@isi.edu>           USC Information Sciences Institute



To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-net" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20020819102951.A38869>