linux-wireless.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
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

  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).