On Wed, 2008-08-06 at 13:17 +0200, Luis Carlos Cobo wrote: > Currently a mesh node will not forward a multicast frame if it is not subscribed > to the specific multicast address. This patch addresses the issue and fixes mesh > multicast forwarding. > > Signed-off-by: Luis Carlos Cobo <luisca@xxxxxxxxxxx> Acked-by: Johannes Berg <johannes@xxxxxxxxxxxxxxxx> > --- > net/mac80211/main.c | 8 +++++++- > 1 files changed, 7 insertions(+), 1 deletions(-) > > diff --git a/net/mac80211/main.c b/net/mac80211/main.c > index 0c02c47..aa5a191 100644 > --- a/net/mac80211/main.c > +++ b/net/mac80211/main.c > @@ -245,10 +245,13 @@ static int ieee80211_open(struct net_device *dev) > case IEEE80211_IF_TYPE_AP: > sdata->bss = &sdata->u.ap; > break; > + case IEEE80211_IF_TYPE_MESH_POINT: > + /* mesh ifaces must set allmulti to forward mcast traffic */ > + atomic_inc(&local->iff_allmultis); > + break; > case IEEE80211_IF_TYPE_STA: > case IEEE80211_IF_TYPE_MNTR: > case IEEE80211_IF_TYPE_IBSS: > - case IEEE80211_IF_TYPE_MESH_POINT: > /* no special treatment */ > break; > case IEEE80211_IF_TYPE_INVALID: > @@ -495,6 +498,9 @@ static int ieee80211_stop(struct net_device *dev) > netif_addr_unlock_bh(local->mdev); > break; > case IEEE80211_IF_TYPE_MESH_POINT: > + /* allmulti is always set on mesh ifaces */ > + atomic_dec(&local->iff_allmultis); > + /* fall through */ > case IEEE80211_IF_TYPE_STA: > case IEEE80211_IF_TYPE_IBSS: > sdata->u.sta.state = IEEE80211_DISABLED;
Attachment:
signature.asc
Description: This is a digitally signed message part