]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
wifi: mac80211_hwsim: handle TID to link mapping neg request
authorAyala Beker <ayala.beker@intel.com>
Tue, 2 Jan 2024 19:35:35 +0000 (21:35 +0200)
committerJohannes Berg <johannes.berg@intel.com>
Fri, 26 Jan 2024 08:39:48 +0000 (09:39 +0100)
Accept the request if all TIDs are mapped to the same link set,
otherwise reject it.

Signed-off-by: Ayala Beker <ayala.beker@intel.com>
Reviewed-by: Gregory Greenman <gregory.greenman@intel.com>
Reviewed-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Link: https://msgid.link/20240102213313.dfa8e132d0cd.I5fbec1fef933980819ea39c1227f37d307ab1145@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
drivers/net/wireless/virtual/mac80211_hwsim.c

index a84340c2075ff76c535e8bd4627c3854b251aa44..e144cd30ae3f085fea80330129c2309f2e66cef0 100644 (file)
@@ -2738,6 +2738,24 @@ static int mac80211_hwsim_get_survey(struct ieee80211_hw *hw, int idx,
        return 0;
 }
 
+static enum ieee80211_neg_ttlm_res
+mac80211_hwsim_can_neg_ttlm(struct ieee80211_hw *hw, struct ieee80211_vif *vif,
+                           struct ieee80211_neg_ttlm *neg_ttlm)
+{
+       u32 i;
+
+       /* For testing purposes, accept if all TIDs are mapped to the same links
+        * set, otherwise reject.
+        */
+       for (i = 0; i < IEEE80211_TTLM_NUM_TIDS; i++) {
+               if (neg_ttlm->downlink[i] != neg_ttlm->uplink[i] ||
+                   neg_ttlm->downlink[i] != neg_ttlm->downlink[0])
+                       return NEG_TTLM_RES_REJECT;
+       }
+
+       return NEG_TTLM_RES_ACCEPT;
+}
+
 #ifdef CONFIG_NL80211_TESTMODE
 /*
  * This section contains example code for using netlink
@@ -3903,6 +3921,7 @@ static const struct ieee80211_ops mac80211_hwsim_mlo_ops = {
        .change_vif_links = mac80211_hwsim_change_vif_links,
        .change_sta_links = mac80211_hwsim_change_sta_links,
        .sta_state = mac80211_hwsim_sta_state,
+       .can_neg_ttlm = mac80211_hwsim_can_neg_ttlm,
 };
 
 struct hwsim_new_radio_params {