mac80211: assign seqnums for group QoS frames
According to 802.11-2012 9.3.2.10, paragraph 4, QoS data frames with a group address in the Address 1 field have sequence numbers allocated from the same counter as non-QoS data and management frames. Without this flag, some drivers may not assign sequence numbers, and in rare cases frames might get dropped. Set the control flag accordingly. Signed-off-by: Bob Copeland <bob@cozybit.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
This commit is contained in:
parent
a4ef66a915
commit
c4c205f3cd
|
@ -781,9 +781,11 @@ ieee80211_tx_h_sequence(struct ieee80211_tx_data *tx)
|
|||
/*
|
||||
* Anything but QoS data that has a sequence number field
|
||||
* (is long enough) gets a sequence number from the global
|
||||
* counter.
|
||||
* counter. QoS data frames with a multicast destination
|
||||
* also use the global counter (802.11-2012 9.3.2.10).
|
||||
*/
|
||||
if (!ieee80211_is_data_qos(hdr->frame_control)) {
|
||||
if (!ieee80211_is_data_qos(hdr->frame_control) ||
|
||||
is_multicast_ether_addr(hdr->addr1)) {
|
||||
/* driver should assign sequence number */
|
||||
info->flags |= IEEE80211_TX_CTL_ASSIGN_SEQ;
|
||||
/* for pure STA mode without beacons, we can do it */
|
||||
|
|
Loading…
Reference in New Issue