wifi: mac80211: export ieee80211_calculate_rx_timestamp
The function is quite useful when handling beacon timestamps. Export it so that it can be used by mac80211_hwsim and others. Signed-off-by: Benjamin Berg <benjamin.berg@intel.com> Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com> Link: https://patch.msgid.link/20260326121156.a1abc9c52f37.Ieabfe66768b1bf64c3076d62e73c50794faeacdc@changeid Signed-off-by: Johannes Berg <johannes.berg@intel.com>
This commit is contained in:
parent
8ea6b92fae
commit
b16df0dacb
7 changed files with 25 additions and 23 deletions
|
|
@ -7393,6 +7393,24 @@ void ieee80211_disable_rssi_reports(struct ieee80211_vif *vif);
|
|||
*/
|
||||
int ieee80211_ave_rssi(struct ieee80211_vif *vif, int link_id);
|
||||
|
||||
/**
|
||||
* ieee80211_calculate_rx_timestamp - calculate timestamp in frame
|
||||
* @hw: pointer as obtained from ieee80211_alloc_hw()
|
||||
* @status: RX status
|
||||
* @mpdu_len: total MPDU length (including FCS)
|
||||
* @mpdu_offset: offset into MPDU to calculate timestamp at
|
||||
*
|
||||
* This function calculates the RX timestamp at the given MPDU offset, taking
|
||||
* into account what the RX timestamp was. An offset of 0 will just normalize
|
||||
* the timestamp to TSF at beginning of MPDU reception.
|
||||
*
|
||||
* Returns: the calculated timestamp
|
||||
*/
|
||||
u64 ieee80211_calculate_rx_timestamp(struct ieee80211_hw *hw,
|
||||
struct ieee80211_rx_status *status,
|
||||
unsigned int mpdu_len,
|
||||
unsigned int mpdu_offset);
|
||||
|
||||
/**
|
||||
* ieee80211_report_wowlan_wakeup - report WoWLAN wakeup
|
||||
* @vif: virtual interface
|
||||
|
|
|
|||
|
|
@ -1127,7 +1127,7 @@ static void ieee80211_rx_bss_info(struct ieee80211_sub_if_data *sdata,
|
|||
if (ieee80211_have_rx_timestamp(rx_status)) {
|
||||
/* time when timestamp field was received */
|
||||
rx_timestamp =
|
||||
ieee80211_calculate_rx_timestamp(local, rx_status,
|
||||
ieee80211_calculate_rx_timestamp(&local->hw, rx_status,
|
||||
len + FCS_LEN, 24);
|
||||
} else {
|
||||
/*
|
||||
|
|
|
|||
|
|
@ -1922,10 +1922,6 @@ ieee80211_vif_get_num_mcast_if(struct ieee80211_sub_if_data *sdata)
|
|||
return -1;
|
||||
}
|
||||
|
||||
u64 ieee80211_calculate_rx_timestamp(struct ieee80211_local *local,
|
||||
struct ieee80211_rx_status *status,
|
||||
unsigned int mpdu_len,
|
||||
unsigned int mpdu_offset);
|
||||
int ieee80211_hw_config(struct ieee80211_local *local, int radio_idx,
|
||||
u32 changed);
|
||||
int ieee80211_hw_conf_chan(struct ieee80211_local *local);
|
||||
|
|
|
|||
|
|
@ -103,7 +103,7 @@ mesh_sync_offset_rx_bcn_presp(struct ieee80211_sub_if_data *sdata, u16 stype,
|
|||
* section.
|
||||
*/
|
||||
if (ieee80211_have_rx_timestamp(rx_status))
|
||||
t_r = ieee80211_calculate_rx_timestamp(local, rx_status,
|
||||
t_r = ieee80211_calculate_rx_timestamp(&local->hw, rx_status,
|
||||
len + FCS_LEN, 24);
|
||||
else
|
||||
t_r = drv_get_tsf(local, sdata);
|
||||
|
|
|
|||
|
|
@ -404,7 +404,7 @@ ieee80211_add_rx_radiotap_header(struct ieee80211_local *local,
|
|||
while ((pos - (u8 *)rthdr) & 7)
|
||||
*pos++ = 0;
|
||||
put_unaligned_le64(
|
||||
ieee80211_calculate_rx_timestamp(local, status,
|
||||
ieee80211_calculate_rx_timestamp(&local->hw, status,
|
||||
mpdulen, 0),
|
||||
pos);
|
||||
rthdr->it_present |= cpu_to_le32(BIT(IEEE80211_RADIOTAP_TSFT));
|
||||
|
|
|
|||
|
|
@ -216,7 +216,7 @@ ieee80211_bss_info_update(struct ieee80211_local *local,
|
|||
|
||||
if (link_conf) {
|
||||
bss_meta.parent_tsf =
|
||||
ieee80211_calculate_rx_timestamp(local,
|
||||
ieee80211_calculate_rx_timestamp(&local->hw,
|
||||
rx_status,
|
||||
len + FCS_LEN,
|
||||
24);
|
||||
|
|
|
|||
|
|
@ -3423,20 +3423,7 @@ u8 ieee80211_mcs_to_chains(const struct ieee80211_mcs_info *mcs)
|
|||
return 1;
|
||||
}
|
||||
|
||||
/**
|
||||
* ieee80211_calculate_rx_timestamp - calculate timestamp in frame
|
||||
* @local: mac80211 hw info struct
|
||||
* @status: RX status
|
||||
* @mpdu_len: total MPDU length (including FCS)
|
||||
* @mpdu_offset: offset into MPDU to calculate timestamp at
|
||||
*
|
||||
* This function calculates the RX timestamp at the given MPDU offset, taking
|
||||
* into account what the RX timestamp was. An offset of 0 will just normalize
|
||||
* the timestamp to TSF at beginning of MPDU reception.
|
||||
*
|
||||
* Returns: the calculated timestamp
|
||||
*/
|
||||
u64 ieee80211_calculate_rx_timestamp(struct ieee80211_local *local,
|
||||
u64 ieee80211_calculate_rx_timestamp(struct ieee80211_hw *hw,
|
||||
struct ieee80211_rx_status *status,
|
||||
unsigned int mpdu_len,
|
||||
unsigned int mpdu_offset)
|
||||
|
|
@ -3555,7 +3542,7 @@ u64 ieee80211_calculate_rx_timestamp(struct ieee80211_local *local,
|
|||
case RX_ENC_LEGACY: {
|
||||
struct ieee80211_supported_band *sband;
|
||||
|
||||
sband = local->hw.wiphy->bands[status->band];
|
||||
sband = hw->wiphy->bands[status->band];
|
||||
ri.legacy = sband->bitrates[status->rate_idx].bitrate;
|
||||
|
||||
if (mactime_plcp_start) {
|
||||
|
|
@ -3587,6 +3574,7 @@ u64 ieee80211_calculate_rx_timestamp(struct ieee80211_local *local,
|
|||
|
||||
return ts;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(ieee80211_calculate_rx_timestamp);
|
||||
|
||||
/* Cancel CAC for the interfaces under the specified @local. If @ctx is
|
||||
* also provided, only the interfaces using that ctx will be canceled.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue