All of lore.kernel.org
 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 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.