wifi: cfg80211: add hardware timestamps to frame RX info

Add hardware timestamps to management frame RX info.
This shall be used by drivers that support hardware timestamping for
Timing measurement and Fine timing measurement action frames RX.

Signed-off-by: Avraham Stern <avraham.stern@intel.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
This commit is contained in:
Avraham Stern 2022-01-27 13:56:29 +02:00 committed by Johannes Berg
parent 00b3d84010
commit 1ff715ffa0
2 changed files with 13 additions and 1 deletions

View File

@ -7800,6 +7800,8 @@ void cfg80211_conn_failed(struct net_device *dev, const u8 *mac_addr,
* @buf: Management frame (header + body)
* @len: length of the frame data
* @flags: flags, as defined in enum nl80211_rxmgmt_flags
* @rx_tstamp: Hardware timestamp of frame RX in nanoseconds
* @ack_tstamp: Hardware timestamp of ack TX in nanoseconds
*/
struct cfg80211_rx_info {
int freq;
@ -7807,6 +7809,8 @@ struct cfg80211_rx_info {
const u8 *buf;
size_t len;
u32 flags;
u64 rx_tstamp;
u64 ack_tstamp;
};
/**

View File

@ -18383,7 +18383,15 @@ int nl80211_send_mgmt(struct cfg80211_registered_device *rdev,
nla_put_u32(msg, NL80211_ATTR_RX_SIGNAL_DBM, info->sig_dbm)) ||
nla_put(msg, NL80211_ATTR_FRAME, info->len, info->buf) ||
(info->flags &&
nla_put_u32(msg, NL80211_ATTR_RXMGMT_FLAGS, info->flags)))
nla_put_u32(msg, NL80211_ATTR_RXMGMT_FLAGS, info->flags)) ||
(info->rx_tstamp && nla_put_u64_64bit(msg,
NL80211_ATTR_RX_HW_TIMESTAMP,
info->rx_tstamp,
NL80211_ATTR_PAD)) ||
(info->ack_tstamp && nla_put_u64_64bit(msg,
NL80211_ATTR_TX_HW_TIMESTAMP,
info->ack_tstamp,
NL80211_ATTR_PAD)))
goto nla_put_failure;
genlmsg_end(msg, hdr);