2008-04-01 01:02:40

by Luis Carlos Cobo

[permalink] [raw]
Subject: [PATCH] mac80211: use recent multicast table for all mesh multicast frames, not only broadcast


Signed-off-by: Luis Carlos Cobo <[email protected]>
---
net/mac80211/rx.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/net/mac80211/rx.c b/net/mac80211/rx.c
index d9c6ed5..0ac6db5 100644
--- a/net/mac80211/rx.c
+++ b/net/mac80211/rx.c
@@ -433,7 +433,7 @@ ieee80211_rx_mesh_check(struct ieee80211_rx_data *rx)
}

} else if ((rx->fc & IEEE80211_FCTL_FTYPE) == IEEE80211_FTYPE_DATA &&
- is_broadcast_ether_addr(hdr->addr1) &&
+ is_multicast_ether_addr(hdr->addr1) &&
mesh_rmc_check(hdr->addr4, msh_h_get(hdr, hdrlen), rx->dev))
return RX_DROP_MONITOR;
#undef msh_h_get
--
1.5.4.3





2008-04-01 12:00:26

by Johannes Berg

[permalink] [raw]
Subject: Re: [PATCH] mac80211: use recent multicast table for all mesh multicast frames, not only broadcast

Seems appropriate but I haven't checked the spec.

On Mon, 2008-03-31 at 15:33 -0700, Luis Carlos Cobo wrote:
> Signed-off-by: Luis Carlos Cobo <[email protected]>
> ---
> net/mac80211/rx.c | 2 +-
> 1 files changed, 1 insertions(+), 1 deletions(-)
>
> diff --git a/net/mac80211/rx.c b/net/mac80211/rx.c
> index d9c6ed5..0ac6db5 100644
> --- a/net/mac80211/rx.c
> +++ b/net/mac80211/rx.c
> @@ -433,7 +433,7 @@ ieee80211_rx_mesh_check(struct ieee80211_rx_data *rx)
> }
>
> } else if ((rx->fc & IEEE80211_FCTL_FTYPE) == IEEE80211_FTYPE_DATA &&
> - is_broadcast_ether_addr(hdr->addr1) &&
> + is_multicast_ether_addr(hdr->addr1) &&
> mesh_rmc_check(hdr->addr4, msh_h_get(hdr, hdrlen), rx->dev))
> return RX_DROP_MONITOR;
> #undef msh_h_get


Attachments:
signature.asc (828.00 B)
This is a digitally signed message part

2008-04-01 16:41:19

by Luis Carlos Cobo

[permalink] [raw]
Subject: Re: [PATCH] mac80211: use recent multicast table for all mesh multicast frames, not only broadcast

On Tue, 2008-04-01 at 14:00 +0200, Johannes Berg wrote:
> Seems appropriate but I haven't checked the spec.

=EF=BB=BFThis was a bug, it was meant to be multicast from the begginin=
g.
Otherwise if a mesh node transmits a multicast (non-broadcast) frame an=
d
there are N mesh peers around it, it is going to be retransmitted
N^MESH_TTL times.


> On Mon, 2008-03-31 at 15:33 -0700, Luis Carlos Cobo wrote:
> > Signed-off-by: Luis Carlos Cobo <[email protected]>
> > ---
> > net/mac80211/rx.c | 2 +-
> > 1 files changed, 1 insertions(+), 1 deletions(-)
> >=20
> > diff --git a/net/mac80211/rx.c b/net/mac80211/rx.c
> > index d9c6ed5..0ac6db5 100644
> > --- a/net/mac80211/rx.c
> > +++ b/net/mac80211/rx.c
> > @@ -433,7 +433,7 @@ ieee80211_rx_mesh_check(struct ieee80211_rx_dat=
a *rx)
> > }
> > =20
> > } else if ((rx->fc & IEEE80211_FCTL_FTYPE) =3D=3D IEEE80211_FTYP=
E_DATA &&
> > - is_broadcast_ether_addr(hdr->addr1) &&
> > + is_multicast_ether_addr(hdr->addr1) &&
> > mesh_rmc_check(hdr->addr4, msh_h_get(hdr, hdrlen), rx->dev))
> > return RX_DROP_MONITOR;
> > #undef msh_h_get

--=20
Luis Carlos Cobo Rus GnuPG ID: 44019B60
cozybit Inc.