From: greearb@candelatech.com
To: linux-wireless@vger.kernel.org
Cc: Ben Greear <greearb@candelatech.com>
Subject: [PATCH v3 1/2] wifi: iwlwifi: Report link-id for transmitted frames.
Date: Wed, 9 Oct 2024 09:49:03 -0700 [thread overview]
Message-ID: <20241009164904.3906438-1-greearb@candelatech.com> (raw)
From: Ben Greear <greearb@candelatech.com>
This will let upper stack properly record stats per link.
Signed-off-by: Ben Greear <greearb@candelatech.com>
---
v2: Fix rcu locking
v3: Fix missing v2 change text
Fix long lines
Fix |= that should have been '=' assignment in replace_bits logic.
drivers/net/wireless/intel/iwlwifi/mvm/tx.c | 20 ++++++++++++++++++++
1 file changed, 20 insertions(+)
diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/tx.c b/drivers/net/wireless/intel/iwlwifi/mvm/tx.c
index ca026b5256ce..f5b469647a35 100644
--- a/drivers/net/wireless/intel/iwlwifi/mvm/tx.c
+++ b/drivers/net/wireless/intel/iwlwifi/mvm/tx.c
@@ -1709,6 +1709,14 @@ static void iwl_mvm_rx_tx_cmd_single(struct iwl_mvm *mvm,
u8 lq_color;
u16 next_reclaimed, seq_ctl;
bool is_ndp = false;
+ struct ieee80211_link_sta *link_sta;
+ int link_sta_id = -1;
+
+ rcu_read_lock();
+ link_sta = rcu_dereference(mvm->fw_id_to_link_sta[sta_id]);
+ if (link_sta)
+ link_sta_id = link_sta->link_id;
+ rcu_read_unlock();
__skb_queue_head_init(&skbs);
@@ -1732,6 +1740,10 @@ static void iwl_mvm_rx_tx_cmd_single(struct iwl_mvm *mvm,
memset(&info->status, 0, sizeof(info->status));
info->flags &= ~(IEEE80211_TX_STAT_ACK | IEEE80211_TX_STAT_TX_FILTERED);
+ if (link_sta_id != -1)
+ info->control.flags = u32_replace_bits(info->control.flags,
+ link_sta_id,
+ IEEE80211_TX_CTRL_MLO_LINK);
/* inform mac80211 about what happened with the frame */
switch (status & TX_STATUS_MSK) {
@@ -2048,6 +2060,7 @@ static void iwl_mvm_tx_reclaim(struct iwl_mvm *mvm, int sta_id, int tid,
struct iwl_mvm_sta *mvmsta = NULL;
struct sk_buff *skb;
int freed;
+ struct ieee80211_link_sta *link_sta;
if (WARN_ONCE(sta_id >= mvm->fw->ucode_capa.num_stations ||
tid > IWL_MAX_TID_COUNT,
@@ -2064,6 +2077,8 @@ static void iwl_mvm_tx_reclaim(struct iwl_mvm *mvm, int sta_id, int tid,
return;
}
+ link_sta = rcu_dereference(mvm->fw_id_to_link_sta[sta_id]);
+
__skb_queue_head_init(&reclaimed_skbs);
/*
@@ -2087,6 +2102,11 @@ static void iwl_mvm_tx_reclaim(struct iwl_mvm *mvm, int sta_id, int tid,
info->flags |= IEEE80211_TX_STAT_ACK;
else
info->flags &= ~IEEE80211_TX_STAT_ACK;
+
+ if (link_sta)
+ info->control.flags = u32_replace_bits(info->control.flags,
+ link_sta->link_id,
+ IEEE80211_TX_CTRL_MLO_LINK);
}
/*
--
2.42.0
next reply other threads:[~2024-10-09 16:49 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-10-09 16:49 greearb [this message]
2024-10-09 16:49 ` [PATCH v3 2/2] wifi: mac80211: Assign tx-stats to the proper link greearb
2024-11-07 14:43 ` Johannes Berg
2024-11-07 15:51 ` Ben Greear
2024-11-07 16:03 ` Johannes Berg
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=20241009164904.3906438-1-greearb@candelatech.com \
--to=greearb@candelatech.com \
--cc=linux-wireless@vger.kernel.org \
/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.