On Fri, 2008-08-15 at 19:58 +0200, Ivo van Doorn wrote: > On Friday 15 August 2008, Mikko Virkkilä wrote: > > I'm moving the conversation over from rt2400-devel to linux-wireless. > > The last message (as of this writing) from the earlier conversation at > > rt2400-devel can be found at http://tinyurl.com/6p9n7g with some more > > details. > > > > So to summarize the situation: > > > > - the rt73usb driver (in rt2x00) doesn't set IEEE80211_TX_STAT_ACK > > because "frames which are uploaded to the hardware are not guarenteed > > to be acked". > > rt2500usb suffers from the same issue. > > > - The mac80211 layer will set the IEEE80211_RADIOTAP_F_TX_FAIL if the > > IEEE80211_TX_STAT_ACK flag is missing. > > - hostapd will interpret the IEEE80211_RADIOTAP_F_TX_FAIL as a failure > > to send > > > > This all results in hostapd reporting "MGMT (TX callback) fail" and > > making rt73usb not work in AP mode. > > > > I'm hoping that some decision can be reached on how to fix this so that > > AP mode will work with the rt73. > > > > Just off the top of my head, one way of fixing this would be to make > > IEEE80211_TX_CTL_NO_ACK also work the other way around: Now it is used > > to tell the lower level not to wait for an ACK. Perhaps it could also be > > used by the lower level to tell higher levels that no ACK is ever going > > to come e.g. because the hardware is incapable of supplying TX ACKs. The > > mac80211 layer would be changed to check for IEEE80211_TX_CTL_NO_ACK. If > > the flag was set it would skip setting IEEE80211_RADIOTAP_F_TX_FAIL even > > when the IEEE80211_TX_STAT_ACK is missing. > > Actually this isn't the complete picture, what you might need is a new flag > IEEE80211_TX_CTL_UNKNOWN which then informs mac80211 that the > frame has an unknown status, and that is something that could be passed on to > userspace through radiotap later. > > This is better then setting a global "supports ACK reporting" flag, because in case > of rt61 one every x frames also has an unknown status because the txdone interrupt > isn't happening for that frame. So that means you definately need a per-frame flag > to tell if the frame was acked, not-acked or if the status was unknown. > > Ivo >From what I understand the IEEE80211_TX_CTL_NO_ACK which is in the flags of the ieee80211_tx_info struct, could be set from the driver for each frame just as currently (not) done with the IEEE80211_TX_STAT_ACK flag. - Mikko -- 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