wifi: nl80211/cfg80211: add new FTM capabilities
Add new capabilities to the PMSR FTM capabilities list. The new capabilities include 6 GHz support, supported number of spatial streams and supported number of LTF repetitions. Signed-off-by: Avraham Stern <avraham.stern@intel.com> Tested-by: Miriam Rachel Korenblit <miriam.rachel.korenblit@intel.com> Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com> Link: https://patch.msgid.link/20260111190221.bf43785c18f6.Ic98cf9790ddee84bf88e5720b93c46c23af3c96c@changeid Signed-off-by: Johannes Berg <johannes.berg@intel.com>
This commit is contained in:
parent
1e1dd9eeaa
commit
86c6b6e4d1
|
|
@ -5643,6 +5643,17 @@ cfg80211_get_iftype_ext_capa(struct wiphy *wiphy, enum nl80211_iftype type);
|
|||
* not limited)
|
||||
* @ftm.trigger_based: trigger based ranging measurement is supported
|
||||
* @ftm.non_trigger_based: non trigger based ranging measurement is supported
|
||||
* @ftm.support_6ghz: supports ranging in 6 GHz band
|
||||
* @ftm.max_tx_ltf_rep: maximum number of TX LTF repetitions supported (0 means
|
||||
* only one LTF, no repetitions)
|
||||
* @ftm.max_rx_ltf_rep: maximum number of RX LTF repetitions supported (0 means
|
||||
* only one LTF, no repetitions)
|
||||
* @ftm.max_tx_sts: maximum number of TX STS supported (zero based)
|
||||
* @ftm.max_rx_sts: maximum number of RX STS supported (zero based)
|
||||
* @ftm.max_total_ltf_tx: maximum total number of LTFs that can be transmitted
|
||||
* (0 means unknown)
|
||||
* @ftm.max_total_ltf_rx: maximum total number of LTFs that can be received
|
||||
* (0 means unknown)
|
||||
*/
|
||||
struct cfg80211_pmsr_capabilities {
|
||||
unsigned int max_peers;
|
||||
|
|
@ -5660,7 +5671,14 @@ struct cfg80211_pmsr_capabilities {
|
|||
request_lci:1,
|
||||
request_civicloc:1,
|
||||
trigger_based:1,
|
||||
non_trigger_based:1;
|
||||
non_trigger_based:1,
|
||||
support_6ghz:1;
|
||||
u8 max_tx_ltf_rep;
|
||||
u8 max_rx_ltf_rep;
|
||||
u8 max_tx_sts;
|
||||
u8 max_rx_sts;
|
||||
u8 max_total_ltf_tx;
|
||||
u8 max_total_ltf_rx;
|
||||
} ftm;
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -7790,6 +7790,28 @@ enum nl80211_peer_measurement_attrs {
|
|||
* trigger based ranging measurement is supported
|
||||
* @NL80211_PMSR_FTM_CAPA_ATTR_NON_TRIGGER_BASED: flag attribute indicating
|
||||
* if non-trigger-based ranging measurement is supported
|
||||
* @NL80211_PMSR_FTM_CAPA_ATTR_6GHZ_SUPPORT: flag attribute indicating if
|
||||
* ranging on the 6 GHz band is supported
|
||||
* @NL80211_PMSR_FTM_CAPA_ATTR_MAX_TX_LTF_REP: u32 attribute indicating
|
||||
* the maximum number of LTF repetitions the device can transmit in the
|
||||
* preamble of the ranging NDP (zero means only one LTF, no repetitions)
|
||||
* @NL80211_PMSR_FTM_CAPA_ATTR_MAX_RX_LTF_REP: u32 attribute indicating
|
||||
* the maximum number of LTF repetitions the device can receive in the
|
||||
* preamble of the ranging NDP (zero means only one LTF, no repetitions)
|
||||
* @NL80211_PMSR_FTM_CAPA_ATTR_MAX_TX_STS: u32 attribute indicating
|
||||
* the maximum number of space-time streams supported for ranging NDP TX
|
||||
* (zero-based)
|
||||
* @NL80211_PMSR_FTM_CAPA_ATTR_MAX_RX_STS: u32 attribute indicating
|
||||
* the maximum number of space-time streams supported for ranging NDP RX
|
||||
* (zero-based)
|
||||
* @NL80211_PMSR_FTM_CAPA_ATTR_MAX_TOTAL_LTF_TX: u32 attribute indicating the
|
||||
* maximum total number of LTFs the device can transmit. The total number
|
||||
* of LTFs is (number of LTF repetitions) * (number of space-time streams).
|
||||
* This limits the allowed combinations of LTF repetitions and STS.
|
||||
* @NL80211_PMSR_FTM_CAPA_ATTR_MAX_TOTAL_LTF_RX: u32 attribute indicating the
|
||||
* maximum total number of LTFs the device can receive. The total number
|
||||
* of LTFs is (number of LTF repetitions) * (number of space-time streams).
|
||||
* This limits the allowed combinations of LTF repetitions and STS.
|
||||
*
|
||||
* @NUM_NL80211_PMSR_FTM_CAPA_ATTR: internal
|
||||
* @NL80211_PMSR_FTM_CAPA_ATTR_MAX: highest attribute number
|
||||
|
|
@ -7807,6 +7829,13 @@ enum nl80211_peer_measurement_ftm_capa {
|
|||
NL80211_PMSR_FTM_CAPA_ATTR_MAX_FTMS_PER_BURST,
|
||||
NL80211_PMSR_FTM_CAPA_ATTR_TRIGGER_BASED,
|
||||
NL80211_PMSR_FTM_CAPA_ATTR_NON_TRIGGER_BASED,
|
||||
NL80211_PMSR_FTM_CAPA_ATTR_6GHZ_SUPPORT,
|
||||
NL80211_PMSR_FTM_CAPA_ATTR_MAX_TX_LTF_REP,
|
||||
NL80211_PMSR_FTM_CAPA_ATTR_MAX_RX_LTF_REP,
|
||||
NL80211_PMSR_FTM_CAPA_ATTR_MAX_TX_STS,
|
||||
NL80211_PMSR_FTM_CAPA_ATTR_MAX_RX_STS,
|
||||
NL80211_PMSR_FTM_CAPA_ATTR_MAX_TOTAL_LTF_TX,
|
||||
NL80211_PMSR_FTM_CAPA_ATTR_MAX_TOTAL_LTF_RX,
|
||||
|
||||
/* keep last */
|
||||
NUM_NL80211_PMSR_FTM_CAPA_ATTR,
|
||||
|
|
|
|||
|
|
@ -2313,6 +2313,29 @@ nl80211_send_pmsr_ftm_capa(const struct cfg80211_pmsr_capabilities *cap,
|
|||
if (cap->ftm.non_trigger_based &&
|
||||
nla_put_flag(msg, NL80211_PMSR_FTM_CAPA_ATTR_NON_TRIGGER_BASED))
|
||||
return -ENOBUFS;
|
||||
if (cap->ftm.support_6ghz &&
|
||||
nla_put_flag(msg, NL80211_PMSR_FTM_CAPA_ATTR_6GHZ_SUPPORT))
|
||||
return -ENOBUFS;
|
||||
if (nla_put_u32(msg, NL80211_PMSR_FTM_CAPA_ATTR_MAX_TX_LTF_REP,
|
||||
cap->ftm.max_tx_ltf_rep))
|
||||
return -ENOBUFS;
|
||||
if (nla_put_u32(msg, NL80211_PMSR_FTM_CAPA_ATTR_MAX_RX_LTF_REP,
|
||||
cap->ftm.max_rx_ltf_rep))
|
||||
return -ENOBUFS;
|
||||
if (nla_put_u32(msg, NL80211_PMSR_FTM_CAPA_ATTR_MAX_TX_STS,
|
||||
cap->ftm.max_tx_sts))
|
||||
return -ENOBUFS;
|
||||
if (nla_put_u32(msg, NL80211_PMSR_FTM_CAPA_ATTR_MAX_RX_STS,
|
||||
cap->ftm.max_rx_sts))
|
||||
return -ENOBUFS;
|
||||
if (cap->ftm.max_total_ltf_tx > 0 &&
|
||||
nla_put_u32(msg, NL80211_PMSR_FTM_CAPA_ATTR_MAX_TOTAL_LTF_TX,
|
||||
cap->ftm.max_total_ltf_tx))
|
||||
return -ENOBUFS;
|
||||
if (cap->ftm.max_total_ltf_rx > 0 &&
|
||||
nla_put_u32(msg, NL80211_PMSR_FTM_CAPA_ATTR_MAX_TOTAL_LTF_RX,
|
||||
cap->ftm.max_total_ltf_rx))
|
||||
return -ENOBUFS;
|
||||
|
||||
nla_nest_end(msg, ftm);
|
||||
return 0;
|
||||
|
|
|
|||
Loading…
Reference in New Issue