Search Linux Wireless

Re: [PATCH 1/3] mac80211: Include sequence number in IBSS and Mesh beacons

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wednesday 09 July 2008, Michael Buesch wrote:
> On Wednesday 09 July 2008 15:11:45 Ivo van Doorn wrote:
> > Currently only beacons generated in AP mode have the software
> > sequence number inserted. This means IBSS and Mesh mode are broken
> > for all hardware that require software sequence numbers.
> 
> Does software seq numbering even work at all?
> What about packets that get sent between the driver requested the
> beacon and the driver does actually queue it?

For rt2x00 the beacon is requested and queued within interrupt context
or during resume when it doesn't allow mac80211 to send any frames yet.

The problem would be when the config_interface() is called, if during that
call mac80211 also sends out TX frames, then you get problems in the
sequence counting.

Ivo

> > Signed-off-by: Ivo van Doorn <IvDoorn@xxxxxxxxx>
> > ---
> >  net/mac80211/tx.c |    5 +++++
> >  1 files changed, 5 insertions(+), 0 deletions(-)
> > 
> > diff --git a/net/mac80211/tx.c b/net/mac80211/tx.c
> > index 359cb36..0e7e1f3 100644
> > --- a/net/mac80211/tx.c
> > +++ b/net/mac80211/tx.c
> > @@ -1876,6 +1876,8 @@ struct sk_buff *ieee80211_beacon_get(struct ieee80211_hw *hw,
> >  		hdr->frame_control = IEEE80211_FC(IEEE80211_FTYPE_MGMT,
> >  						  IEEE80211_STYPE_BEACON);
> >  
> > +		ieee80211_include_sequence(sdata, hdr);
> > +
> >  		num_beacons = &ifsta->num_beacons;
> >  	} else if (ieee80211_vif_is_mesh(&sdata->vif)) {
> >  		/* headroom, head length, tail length and maximum TIM length */
> > @@ -1896,6 +1898,9 @@ struct sk_buff *ieee80211_beacon_get(struct ieee80211_hw *hw,
> >  			cpu_to_le16(local->hw.conf.beacon_int);
> >  		mgmt->u.beacon.capab_info = 0x0; /* 0x0 for MPs */
> >  
> > +		ieee80211_include_sequence(sdata,
> > +					   (struct ieee80211_hdr *)skb->data);
> > +
> >  		pos = skb_put(skb, 2);
> >  		*pos++ = WLAN_EID_SSID;
> >  		*pos++ = 0x0;
> 
> 
> 


--
To unsubscribe from this list: send the line "unsubscribe linux-wireless" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Host AP]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Linux Kernel]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Device Mapper]
  Powered by Linux