]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
wifi: nl80211/cfg80211: add negotiated burst period to FTM result
authorAvraham Stern <avraham.stern@intel.com>
Sun, 11 Jan 2026 17:03:50 +0000 (19:03 +0200)
committerJohannes Berg <johannes.berg@intel.com>
Tue, 27 Jan 2026 12:40:36 +0000 (13:40 +0100)
The FTM result includes some of the periodic measurement negotiated
parameters (like the burst duration and number of bursts), but it
doesn't include the burst period. Add it to the FTM result
notification.

Signed-off-by: Avraham Stern <avraham.stern@intel.com>
Reviewed-by: Johannes Berg <johannes.berg@intel.com>
Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Link: https://patch.msgid.link/20260111190221.e0778f86edef.I3c98c1933eb639963bc3ffdef81a8788b59f2188@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
include/net/cfg80211.h
include/uapi/linux/nl80211.h
net/wireless/pmsr.c

index 8a81adbf37235a8d14104686d60f8d426e889430..535fd95b0d83ac9b920cab53d4647ad8f48ec7ee 100644 (file)
@@ -4192,6 +4192,7 @@ struct cfg80211_ftm_responder_stats {
  * @num_bursts_exp: actual number of bursts exponent negotiated
  * @burst_duration: actual burst duration negotiated
  * @ftms_per_burst: actual FTMs per burst negotiated
+ * @burst_period: actual burst period negotiated in units of 100ms
  * @lci_len: length of LCI information (if present)
  * @civicloc_len: length of civic location information (if present)
  * @lci: LCI data (may be %NULL)
@@ -4233,6 +4234,7 @@ struct cfg80211_pmsr_ftm_result {
        u8 num_bursts_exp;
        u8 burst_duration;
        u8 ftms_per_burst;
+       u16 burst_period;
        s32 rssi_avg;
        s32 rssi_spread;
        struct rate_info tx_rate, rx_rate;
index 71219445f5c71e757570a3c93e40dd7a73618524..8910b709bfb188a1378e53ae1bf7a5fc6322a086 100644 (file)
@@ -7992,6 +7992,8 @@ enum nl80211_peer_measurement_ftm_failure_reasons {
  *     9.4.2.22.1) starting with the Measurement Token, with Measurement
  *     Type 11.
  * @NL80211_PMSR_FTM_RESP_ATTR_PAD: ignore, for u64/s64 padding only
+ * @NL80211_PMSR_FTM_RESP_ATTR_BURST_PERIOD: actual burst period used by
+ *     the responder (similar to request, u16)
  *
  * @NUM_NL80211_PMSR_FTM_RESP_ATTR: internal
  * @NL80211_PMSR_FTM_RESP_ATTR_MAX: highest attribute number
@@ -8020,6 +8022,7 @@ enum nl80211_peer_measurement_ftm_resp {
        NL80211_PMSR_FTM_RESP_ATTR_LCI,
        NL80211_PMSR_FTM_RESP_ATTR_CIVICLOC,
        NL80211_PMSR_FTM_RESP_ATTR_PAD,
+       NL80211_PMSR_FTM_RESP_ATTR_BURST_PERIOD,
 
        /* keep last */
        NUM_NL80211_PMSR_FTM_RESP_ATTR,
index 795683a8130391eb3327be2f6182932e2cf50184..d5077d32009808585e2264c96c7de62c85b971f4 100644 (file)
@@ -454,6 +454,7 @@ static int nl80211_pmsr_send_ftm_res(struct sk_buff *msg,
        PUT(u8, NUM_BURSTS_EXP, num_bursts_exp);
        PUT(u8, BURST_DURATION, burst_duration);
        PUT(u8, FTMS_PER_BURST, ftms_per_burst);
+       PUT(u16, BURST_PERIOD, burst_period);
        PUTOPT(s32, RSSI_AVG, rssi_avg);
        PUTOPT(s32, RSSI_SPREAD, rssi_spread);
        if (res->ftm.tx_rate_valid &&