Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 11 Feb 2008 13:10:28 GMT
From:      Olafur Osvaldsson <oli@rhnet.is>
To:        FreeBSD-gnats-submit@FreeBSD.org
Cc:        scottl@samsco.org
Subject:   kern/120533: Multicast not accepted on bce devices
Message-ID:  <200802111310.m1BDAS7k016873@virvir.rhnet.is>
Resent-Message-ID: <200802111320.m1BDK1ZT021647@freefall.freebsd.org>

next in thread | raw e-mail | index | archive | help


>Number:         120533
>Category:       kern
>Synopsis:       Multicast not accepted on bce devices
>Confidential:   no
>Severity:       serious
>Priority:       high
>Responsible:    freebsd-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Mon Feb 11 13:20:01 UTC 2008
>Closed-Date:
>Last-Modified:
>Originator:     Olafur Osvaldsson
>Release:        FreeBSD 6.2-RELEASE-p10 i386
>Organization:
RHnet
>Environment:
System: FreeBSD virvir.rhnet.is 6.2-RELEASE-p10 FreeBSD 6.2-RELEASE-p10 #2: Sun Feb 10 23:19:45 GMT 2008 root@virvir.rhnet.is:/usr/obj/usr/src/sys/RHNET i386

>Description:
It seems that the bce network device does not accept multicast packets
by default and therefor rendering things like OSPF unusable.

It on the other hand seems to send multicast packets just fine.

The problem by what I have seen was seen as early as 2006 and
discussed on freebsd-current:
http://lists.freebsd.org/pipermail/freebsd-current/2006-November/067220.html
Where Scott Long (Cc'd) reported that he had added this to his TODO list.

It even looks to be the same problem as kern/117456 wich is marked as resolved

>How-To-Repeat:
Try receiving any multicast traffic on a bce interface.

Like installing quagga and set up ospf.

>Fix:
Putting the interface in Promisc mode makes the problem vanish, the attached
patch is another workaround.

--- sys/dev/bce/if_bce.c.orig	Mon Feb 11 12:41:34 2008
+++ sys/dev/bce/if_bce.c	Sun Feb 10 22:25:06 2008
@@ -714,6 +714,7 @@
 	ifp->if_softc        = sc;
 	if_initname(ifp, device_get_name(dev), device_get_unit(dev));
 	ifp->if_flags        = IFF_BROADCAST | IFF_SIMPLEX | IFF_MULTICAST;
+	ifp->if_flags       |= IFF_ALLMULTI; /* Multicast bug workaround */
 	ifp->if_ioctl        = bce_ioctl;
 	ifp->if_start        = bce_start;
 	ifp->if_timer        = 0;

>Release-Note:
>Audit-Trail:
>Unformatted:



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