Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 22 Nov 2002 12:47:48 +0200
From:      Petri Helenius <pete@he.iki.fi>
To:        Luigi Rizzo <rizzo@icir.org>
Cc:        net@FreeBSD.ORG
Subject:   Re: broken IFF_ALLMULTI handling in many drivers
Message-ID:  <3DDE0B54.70207@he.iki.fi>
References:  <20021117093656.A17547@xorpc.icir.org>

next in thread | previous in thread | raw e-mail | index | archive | help
I think the same applies for promiscuous mode, if the interface undergoes
configuration changes while it's in promiscuous mode and the hardware
gets reinitialized it "forgets" about being in that mode. This happens
at least with em.

Pete

Luigi Rizzo wrote:

>[Bcc to re@ because it would be good to have it fixed before 5.0]
>
>Hi,
>Pavlin Radoslavov recently discovered a problem that affects several
>network drivers and tends to show up when running multicast routing.
>
>The problem is that the multicast routing code calls iff_allmulti()
>on the interfaces, which should enable them to receive all multicast
>packets. The device independent code sets the IFF_ALLMULTI flag in
>the ifp, and then calls the device-specific ioctl handler for
>SIOCSIFFLAGS.
> 
>Individual drivers handle this call in the most various ways. Some
>unconditionally reinitialize the hardware; some try to be smart and
>only check which IFF_* flags have changed and perform appropriate
>actions. And here is the problem -- several drivers forget to check
>for a change in IFF_ALLMULTI, thus causing the change to be ignored
>until some future action on the interface causes it (or its multicast
>filter) to be reinitialized.
>
>A list of broken which are broken and good is below.  The 'broken'
>list is worrysome as it includes a lot of new/high performance/wireless
>cards.
>
>	Broken: dc mn sf sk ste ti tl xl an bge em gem gx ie lge sr
>		aue cue kue wi xe
>
>	Correct: de rl sis vr wb ar(?) cnw cs ed ep ex fe fxp
>		hme lnc my nge ray sbni sn tx txp vx wl
>
>I believe the best way to fix this bug (in the *_ioctl handler,
>for the SIOCSIFFLAGS case) is to follow the approach used by the
>cs, ed, fe and vx drivers -- but if others have better suggestions
>please let me know.
> 
>So, provided re@ approves, expect to see some commits to the drivers
>in the 'broken' list related to this problem.
>
>	cheers
>	luigi
>----------------------------------+-----------------------------------------
> Luigi RIZZO, luigi@iet.unipi.it  . ICSI (on leave from Univ. di Pisa)
> http://www.iet.unipi.it/~luigi/  . 1947 Center St, Berkeley CA 94704
> Phone: (510) 666 2988
>----------------------------------+-----------------------------------------
>
>
>To Unsubscribe: send mail to majordomo@FreeBSD.org
>with "unsubscribe freebsd-net" in the body of the message
>  
>




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?3DDE0B54.70207>