wifi: iwlwifi: mvm: add debugfs for forcing unprotected ranging request
authorAvraham Stern <avraham.stern@intel.com>
Tue, 19 Mar 2024 08:10:15 +0000 (10:10 +0200)
committerJohannes Berg <johannes.berg@intel.com>
Mon, 25 Mar 2024 14:39:09 +0000 (15:39 +0100)
Add an option to force sending unprotected ranging request even if the
station is associated to the responder or a PASN keys are configured.
This is used for testing.

Signed-off-by: Avraham Stern <avraham.stern@intel.com>
Reviewed-by: Miriam Rachel Korenblit <miriam.rachel.korenblit@intel.com>
Link: https://msgid.link/20240319100755.8523150148ec.I7ab6c547513717e69ec385f72a8f43ea00bd9e0a@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
drivers/net/wireless/intel/iwlwifi/mvm/debugfs-vif.c
drivers/net/wireless/intel/iwlwifi/mvm/ftm-initiator.c
drivers/net/wireless/intel/iwlwifi/mvm/mvm.h

index 3d272b3bed4e274852cf8ff0bffc3a3a43846ee4..5485e8bf613e03755fa22fc67e5c4a5acae672cc 100644 (file)
@@ -793,6 +793,8 @@ void iwl_mvm_vif_add_debugfs(struct ieee80211_hw *hw, struct ieee80211_vif *vif)
        MVM_DEBUGFS_ADD_FILE_VIF(rx_phyinfo, mvmvif->dbgfs_dir, 0600);
        MVM_DEBUGFS_ADD_FILE_VIF(quota_min, mvmvif->dbgfs_dir, 0600);
        MVM_DEBUGFS_ADD_FILE_VIF(os_device_timediff, mvmvif->dbgfs_dir, 0400);
+       debugfs_create_bool("ftm_unprotected", 0200, mvmvif->dbgfs_dir,
+                           &mvmvif->ftm_unprotected);
        MVM_DEBUGFS_ADD_FILE_VIF(int_mlo_scan, mvmvif->dbgfs_dir, 0200);
 
        if (vif->type == NL80211_IFTYPE_STATION && !vif->p2p &&
index 4863a3c746406ed70a398d8939e080e72636fa0b..c9000c878005e465f0920a08cb82be4ab00f30e1 100644 (file)
@@ -1,7 +1,7 @@
 // SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause
 /*
  * Copyright (C) 2015-2017 Intel Deutschland GmbH
- * Copyright (C) 2018-2023 Intel Corporation
+ * Copyright (C) 2018-2024 Intel Corporation
  */
 #include <linux/etherdevice.h>
 #include <linux/math64.h>
@@ -551,6 +551,15 @@ iwl_mvm_ftm_put_target(struct iwl_mvm *mvm, struct ieee80211_vif *vif,
                        break;
                }
                rcu_read_unlock();
+
+#ifdef CONFIG_IWLWIFI_DEBUGFS
+               if (mvmvif->ftm_unprotected) {
+                       target->sta_id = IWL_MVM_INVALID_STA;
+                       target->initiator_ap_flags &=
+                               ~cpu_to_le32(IWL_INITIATOR_AP_FLAGS_PMF);
+               }
+
+#endif
        } else {
                target->sta_id = IWL_MVM_INVALID_STA;
        }
@@ -713,6 +722,12 @@ iwl_mvm_ftm_set_secured_ranging(struct iwl_mvm *mvm, struct ieee80211_vif *vif,
 {
        struct iwl_mvm_ftm_pasn_entry *entry;
        u32 flags = le32_to_cpu(target->initiator_ap_flags);
+#ifdef CONFIG_IWLWIFI_DEBUGFS
+       struct iwl_mvm_vif *mvmvif = iwl_mvm_vif_from_mac80211(vif);
+
+       if (mvmvif->ftm_unprotected)
+               return;
+#endif
 
        if (!(flags & (IWL_INITIATOR_AP_FLAGS_NON_TB |
                       IWL_INITIATOR_AP_FLAGS_TB)))
index 4c441d2bbce3da6ccceb64876fcae6d66b60aa5a..bf965b445692575db621115f0f8742737a354248 100644 (file)
@@ -437,6 +437,7 @@ struct iwl_mvm_vif {
        struct iwl_dbgfs_bf dbgfs_bf;
        struct iwl_mac_power_cmd mac_pwr_cmd;
        int dbgfs_quota_min;
+       bool ftm_unprotected;
 #endif
 
        /* FW identified misbehaving AP */