> >> + * @IEEE80211_TX_STAT_AMPDU_NO_BACK: no block ack was returned, > >> + * so consider using block ack request (BAR). > > > > This flag I don't understand. When does the driver set this? And what > > does mac80211 do to "consider", it seems to always just try to set up a > > block-ack session. > > This is required during BA session. BAR solicited Block ACK for the SN > and on specified in BAR. Driver will send it if it doesn't hear BACK. > Iwlwifi uses this BAR just says to the recipient that we were not able > to transmit the frame and we won't retransmit. This immediately shifts > recipient reordering buffer not waiting for high SN numbers of the > next traffic otherwise there will be visible deep in the throughput as > packets are not released to upper layer till all are received. Hm, ok, I don't think I understand the subtleties of the protocol. So when you have a BA session you have to send a BAR if you can't transmit a frame for some reason? When would that happen? > >> + bar_control |= (u16)IEEE80211_BAR_CTRL_ACK_POLICY_NORMAL; > > > > ?? > > > >> + bar_control |= (u16)IEEE80211_BAR_CTRL_CBMTID_COMPRESSED_BA; > >> + bar_control |= (u16)(tid << 12); > >> + bar->control = cpu_to_le16(bar_control); > >> + bar->start_seq_num = cpu_to_le16(ssn); > >> + > >> + /* must be sent through voice AC */ > >> + skb->priority = 3; > > > > Does that actually work? The current wme.c code will still call > > classify_1d() and that will use the IP TOS unless you set the priority > > to 256..263. > > Good point. Have to look at this again we might missed this point when > moving this out from the driver to the mac8011. > Not sure this is classified at all as this is a control frame. Oh, hmm, yeah those work differently, non-data frames aren't classified at all and always go out on AC_VO regardless of what you set there so you can just remove that. johannes
Attachment:
signature.asc
Description: This is a digitally signed message part