aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/net/mac80211
diff options
context:
space:
mode:
authorMathy Vanhoef <Mathy.Vanhoef@kuleuven.be>2020-07-23 14:01:50 +0400
committerJohannes Berg <johannes.berg@intel.com>2020-07-31 09:27:01 +0200
commit29c3e95f79adcef9d7999ec643639033585dba08 (patch)
tree204e72dd1f8697a0306c61be2fe8ff305146c230 /net/mac80211
parentmac80211: add radiotap flag to prevent sequence number overwrite (diff)
downloadwireguard-linux-29c3e95f79adcef9d7999ec643639033585dba08.tar.xz
wireguard-linux-29c3e95f79adcef9d7999ec643639033585dba08.zip
mac80211: do not overwrite the sequence number if requested
Check if the Tx control flag is set to prevent sequence number overwrites, and if so, do not assign a new sequence number to the transmitted frame. Signed-off-by: Mathy Vanhoef <Mathy.Vanhoef@kuleuven.be> Link: https://lore.kernel.org/r/20200723100153.31631-3-Mathy.Vanhoef@kuleuven.be Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'net/mac80211')
-rw-r--r--net/mac80211/tx.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/net/mac80211/tx.c b/net/mac80211/tx.c
index 413345056445..e1e915e7cc8e 100644
--- a/net/mac80211/tx.c
+++ b/net/mac80211/tx.c
@@ -825,6 +825,9 @@ ieee80211_tx_h_sequence(struct ieee80211_tx_data *tx)
if (ieee80211_is_qos_nullfunc(hdr->frame_control))
return TX_CONTINUE;
+ if (info->control.flags & IEEE80211_TX_CTRL_NO_SEQNO)
+ return TX_CONTINUE;
+
/*
* Anything but QoS data that has a sequence number field
* (is long enough) gets a sequence number from the global