From: Ivo van Doorn <ivdoorn@gmail.com>
To: Mattias Nissler <mattias.nissler@gmx.de>
Cc: "Mikko Virkkilä" <mikko.virkkila@bluegiga.com>,
"Johannes Berg" <johannes@sipsolutions.net>,
rt2400-devel@lists.sourceforge.net,
"John W. Linville" <linville@tuxdriver.com>,
linux-wireless <linux-wireless@vger.kernel.org>,
dsd@gentoo.org, kune@deine-taler.de
Subject: Re: ACK matching [was: TX status reporting with help of an ack queue]
Date: Fri, 19 Sep 2008 20:30:58 +0200 [thread overview]
Message-ID: <200809192030.58550.IvDoorn@gmail.com> (raw)
In-Reply-To: <1221817584.4491.29.camel@localhost>
On Friday 19 September 2008, Mattias Nissler wrote:
> On Fri, 2008-09-19 at 12:08 +0300, Mikko Virkkil=E4 wrote:
> > On Thu, 2008-09-18 at 22:29 +0000, Mattias Nissler wrote:
> > > [I've added the zd1211rw maintainers to the CC, I hope they can s=
hed
> > > some light on the question whether the ack queue mechanism that d=
river
> > > has is actually correct]
> > >=20
> > > I've had a closer look at the idea of deciding whether a frame ha=
s
> > > been
> > > transmitted succesfully by monitoring incoming ACK frames and I'v=
e hit
> > > a
> > > fundamental problem: How do you correlate incoming ACK frames to =
the
> > > frames that were actually transmitted? The ACK frame only carries=
the
> > > address of the station that transmitted the frame being acked, no
> > > further information. Now this means if you have the hardware TX t=
wo
> > > frames and receive one ACK frame in the RX path, you cannot know =
which
> > > TX frame the ACK belongs to, because they will be identical, righ=
t?
> > >=20
> > > The hardware, however, knows, because the ACKs are required to be
> > > transmitted directly after the corresponding frame is received, b=
ut we
> > > don't know in the driver about this timing information, at least =
not for
> > > rt2x00.
> > >=20
> > > I wonder whether the ack queue idea Mikko found in the zd1211rw d=
river
> > > is actually working correctly for that driver? I've only had a sh=
ort
> > > look, but found that incoming ACKs are only matched against trans=
mitted
> > > frames by means of the address carried within the ACK. So I'd thi=
nk in
> > > the situation I outlined above, the zd1211rw driver will also be =
unable
> > > to match the ACK to the correct frame. Any comments on this?
> > >=20
> > > Mattiass
> > >=20
> >=20
> > AFAIK your analysis is correct and I think this is somewhat of a kn=
own
> > problem with the implementation in zd1211rw driver. I haven't come
> > across a way of getting around the problem. I read some suggestions
> > about stopping all transmission to a certain address until we get a
> > status update for the previous packet sent to that address, but iir=
c
> > this was deemed impractical. On the other hand the current
> > implementation in zd1211rw (and hopefully soon in rt2x00) doesn't r=
eally
> > break anything that works without it and on rt2x00 it gets AP-mode =
in a
> > somewhat more usable state.=20
>=20
> Well, as long as nothing vitally depends on the transmissions status
> (i.e. MAC layer acknowledgements in 802.11 lingo), you are right that=
it
> won't break anything. Nevertheless, it is code that is known to be
> working incorrectly and non-fixable, so I'd vote against it (I'd rath=
er
> live with the approach of always reporting successful tx status as yo=
u
> have proposed earlier if I had to choose from the two of them). Maybe=
we
> just have to accept that there is hardware that cannot report MAC lay=
er
> acknowledgements back to the driver. Unless somebody comes up with a
> feasible idea how to do it. Ivo, do we have a contact at Ralink to as=
k
> about this?
The Legacy USB drivers don't care about the TX status, if it wants to k=
now
the TX statistics it reads the register which contains the ACK/RTS coun=
ters
and determine with those values if the link is good or not.
Seeing that the PCI drivers also don't really care about the TX status =
(other
then setting some statistics) I think we can assume the TX status isn't=
important
for the Ralink people.
But I'll send a mail to Ralink to see if they actually do have some ide=
as about it.
> This brings up the question whether we can do without tx status
> reporting. Does anyone know why hostapd requires the tx status? As fa=
r
> as I understand, mac80211 only uses the tx status reporting only for =
the
> tx rate control. Rate control algos that don't use tx status are
> definitely feasible (and in fact we'll need one for rt73).
>=20
> I'll look into hostapd to figure out whether the tx status reporting =
is
> really required when I find some time. However, I've just received
> rt2800 hardware, so getting the rt2800 driver going is my top priorit=
y
> for the next weeks.
Ivo
--
To unsubscribe from this list: send the line "unsubscribe linux-wireles=
s" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
next prev parent reply other threads:[~2008-09-19 18:31 UTC|newest]
Thread overview: 35+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <1221494693.14102.22.camel@virkkmi-linux>
2008-09-15 17:11 ` [RFC][PATCH] TX status reporting with help of an ack queue Ivo van Doorn
2008-09-15 17:56 ` Mattias Nissler
2008-09-15 18:03 ` Johannes Berg
2008-09-15 19:00 ` Mattias Nissler
2008-09-15 19:21 ` Johannes Berg
2008-09-15 19:39 ` Mattias Nissler
2008-09-15 19:46 ` Johannes Berg
2008-09-15 20:20 ` Mattias Nissler
2008-09-15 20:33 ` Johannes Berg
2008-09-15 21:01 ` Mattias Nissler
2008-09-24 0:59 ` John W. Linville
2008-09-24 7:40 ` Mattias Nissler
2008-09-24 8:34 ` Johannes Berg
2008-09-15 21:28 ` Ivo van Doorn
2008-09-15 21:41 ` Mattias Nissler
2008-09-16 18:17 ` Ivo van Doorn
2008-09-17 23:08 ` Mattias Nissler
2008-09-16 6:24 ` Mikko Virkkilä
2008-09-16 4:58 ` Mikko Virkkilä
2008-09-16 18:18 ` Ivo van Doorn
2008-09-18 20:37 ` Mattias Nissler
2008-09-18 22:29 ` ACK matching [was: TX status reporting with help of an ack queue] Mattias Nissler
2008-09-19 9:08 ` Mikko Virkkilä
2008-09-19 9:46 ` Mattias Nissler
2008-09-19 9:54 ` Johannes Berg
2008-09-19 10:19 ` Mattias Nissler
2008-09-19 10:31 ` Johannes Berg
2008-09-19 13:51 ` Mattias Nissler
2008-09-19 13:55 ` Johannes Berg
2008-09-19 14:20 ` Mikko Virkkilä
2008-09-19 17:50 ` Jouni Malinen
2008-09-23 6:09 ` Mikko Virkkilä
2008-09-23 7:05 ` Mattias Nissler
2008-09-19 18:30 ` Ivo van Doorn [this message]
2008-10-19 5:49 ` Daniel Drake
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=200809192030.58550.IvDoorn@gmail.com \
--to=ivdoorn@gmail.com \
--cc=dsd@gentoo.org \
--cc=johannes@sipsolutions.net \
--cc=kune@deine-taler.de \
--cc=linux-wireless@vger.kernel.org \
--cc=linville@tuxdriver.com \
--cc=mattias.nissler@gmx.de \
--cc=mikko.virkkila@bluegiga.com \
--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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).