From: Ivo van Doorn <ivdoorn@gmail.com>
To: Johannes Berg <johannes@sipsolutions.net>
Cc: Michael Buesch <mb@bu3sch.de>,
"John W. Linville" <linville@tuxdriver.com>,
linux-wireless@vger.kernel.org,
rt2400-devel@lists.sourceforge.net
Subject: Re: [PATCH 1/3] mac80211: Include sequence number in IBSS and Mesh beacons
Date: Wed, 9 Jul 2008 16:37:01 +0200 [thread overview]
Message-ID: <200807091637.02090.IvDoorn@gmail.com> (raw)
In-Reply-To: <1215612322.3246.12.camel@johannes.berg>
On Wednesday 09 July 2008, Johannes Berg wrote:
> On Wed, 2008-07-09 at 16:00 +0200, Michael Buesch wrote:
> > On Wednesday 09 July 2008 16:04:50 Ivo van Doorn wrote:
> > > 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
> >
> > Well, another CPU could be in progress of walking down the mac80211 TX code
> > and aquire a sequence number in the meantime before you requested the beacon.
> > However that frame will be blocked by your driver locks, so the two seq
> > numbers of the beacon and the other frame will be swapped, as the driver
> > will queue the beacon first.
If rt2x00 would use a global lock to block all TX and beacons, then yes.
But rt2x00 uses per-queue locking. When a beacon is being updated rt2x00
will still allow regular frames to be queued.
But we can't halt the TX queues for the beacon update either, because
ieee80211_stop_queues() should only be called from within the TX path.
> Indeed, I was wrong.
>
> I wonder if we should remove the hwseq support completely. It's much
> easier for the driver to do this, especially since we pass a vif pointer
> with driver-private data to all relevant functions and the driver could
> keep the current sequence number in there. Or, just like hwseq would,
> keep a global sequence number?
I think that would be moving the same problem to the driver side,
and I am not really a big fan of the idea to put all queue handling under
1 big lock instead of the per-queue locking which is currently the case.
> How does that affect multi-bss support btw? Do we have to use sw seqno
> for that?
As far as rt2x00 is concerned, all hardware that supports multi-bss also
support HW sequence counters. rt2400pci and rt2500pci are the only ones
requiring SW sequence counters, and they can't do multi-bss.
Ivo
next prev parent reply other threads:[~2008-07-09 14:28 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-07-09 13:11 [PATCH 0/3] rt2x00 update Ivo van Doorn
2008-07-09 13:11 ` [PATCH 1/3] mac80211: Include sequence number in IBSS and Mesh beacons Ivo van Doorn
2008-07-09 13:12 ` [PATCH 2/3] rt2x00: Add support for CTS protection in rt2x00lib Ivo van Doorn
2008-07-09 13:12 ` [PATCH 3/3] rt2x00: Reorganize beacon handling Ivo van Doorn
2008-07-09 13:14 ` [PATCH 1/3] mac80211: Include sequence number in IBSS and Mesh beacons Johannes Berg
2008-07-09 13:38 ` Michael Buesch
2008-07-09 13:41 ` Johannes Berg
2008-07-09 14:04 ` Ivo van Doorn
2008-07-09 13:58 ` Johannes Berg
2008-07-09 14:57 ` Ivo van Doorn
2008-07-09 14:49 ` Johannes Berg
2008-07-09 14:00 ` Michael Buesch
2008-07-09 14:05 ` Johannes Berg
2008-07-09 14:37 ` Ivo van Doorn [this message]
2008-07-09 14:48 ` Johannes Berg
2008-07-09 15:08 ` Ivo van Doorn
2008-07-09 15:15 ` Michael Buesch
2008-07-09 15:36 ` Ivo van Doorn
2008-07-09 15:33 ` Johannes Berg
2008-07-09 15:48 ` Ivo van Doorn
2008-07-09 15:49 ` Johannes Berg
2008-07-09 15:55 ` Johannes Berg
2008-07-09 16:12 ` Ivo van Doorn
2008-07-09 17:42 ` Johannes Berg
2008-07-09 18:12 ` Ivo van Doorn
2008-07-09 18:07 ` Johannes Berg
2008-07-09 16:08 ` Ivo van Doorn
2008-07-09 16:07 ` Johannes Berg
2008-07-09 15:16 ` Johannes Berg
2008-07-09 15:12 ` Michael Buesch
2008-07-14 18:49 ` John W. Linville
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=200807091637.02090.IvDoorn@gmail.com \
--to=ivdoorn@gmail.com \
--cc=johannes@sipsolutions.net \
--cc=linux-wireless@vger.kernel.org \
--cc=linville@tuxdriver.com \
--cc=mb@bu3sch.de \
--cc=rt2400-devel@lists.sourceforge.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.