mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/
synced 2025-04-19 20:58:31 +09:00
wifi: cfg80211: expose update timestamp to drivers
This information is exposed to userspace but not drivers. Make this field public so that drivers are also able to access it. The information is for example useful for link selection to determine whether the BSS corresponding to an MLO link has been seen in a recent scan. Signed-off-by: Benjamin Berg <benjamin.berg@intel.com> Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com> Link: https://patch.msgid.link/20250212082137.b682ee7aebc8.I0f7cca9effa2b1cee79f4f2eb8b549c99b4e0571@changeid Signed-off-by: Johannes Berg <johannes.berg@intel.com>
This commit is contained in:
parent
ebba23e077
commit
ceaad3c435
@ -2947,6 +2947,7 @@ struct cfg80211_bss_ies {
|
||||
* @nontrans_list: list of non-transmitted BSS, if this is a transmitted one
|
||||
* (multi-BSSID support)
|
||||
* @signal: signal strength value (type depends on the wiphy's signal_type)
|
||||
* @ts_boottime: timestamp of the last BSS update in nanoseconds since boot
|
||||
* @chains: bitmask for filled values in @chain_signal.
|
||||
* @chain_signal: per-chain signal strength of last received BSS in dBm.
|
||||
* @bssid_index: index in the multiple BSS set
|
||||
@ -2971,6 +2972,8 @@ struct cfg80211_bss {
|
||||
|
||||
s32 signal;
|
||||
|
||||
u64 ts_boottime;
|
||||
|
||||
u16 beacon_interval;
|
||||
u16 capability;
|
||||
|
||||
|
@ -180,7 +180,6 @@ struct cfg80211_internal_bss {
|
||||
struct list_head list;
|
||||
struct list_head hidden_list;
|
||||
struct rb_node rbn;
|
||||
u64 ts_boottime;
|
||||
unsigned long ts;
|
||||
unsigned long refcount;
|
||||
atomic_t hold;
|
||||
|
@ -10519,9 +10519,9 @@ static int nl80211_send_bss(struct sk_buff *msg, struct netlink_callback *cb,
|
||||
intbss->parent_bssid)))
|
||||
goto nla_put_failure;
|
||||
|
||||
if (intbss->ts_boottime &&
|
||||
if (res->ts_boottime &&
|
||||
nla_put_u64_64bit(msg, NL80211_BSS_LAST_SEEN_BOOTTIME,
|
||||
intbss->ts_boottime, NL80211_BSS_PAD))
|
||||
res->ts_boottime, NL80211_BSS_PAD))
|
||||
goto nla_put_failure;
|
||||
|
||||
if (!nl80211_put_signal(msg, intbss->pub.chains,
|
||||
|
@ -5,7 +5,7 @@
|
||||
* Copyright 2008 Johannes Berg <johannes@sipsolutions.net>
|
||||
* Copyright 2013-2014 Intel Mobile Communications GmbH
|
||||
* Copyright 2016 Intel Deutschland GmbH
|
||||
* Copyright (C) 2018-2024 Intel Corporation
|
||||
* Copyright (C) 2018-2025 Intel Corporation
|
||||
*/
|
||||
#include <linux/kernel.h>
|
||||
#include <linux/slab.h>
|
||||
@ -1934,7 +1934,7 @@ cfg80211_update_known_bss(struct cfg80211_registered_device *rdev,
|
||||
known->pub.signal = new->pub.signal;
|
||||
known->pub.capability = new->pub.capability;
|
||||
known->ts = new->ts;
|
||||
known->ts_boottime = new->ts_boottime;
|
||||
known->pub.ts_boottime = new->pub.ts_boottime;
|
||||
known->parent_tsf = new->parent_tsf;
|
||||
known->pub.chains = new->pub.chains;
|
||||
memcpy(known->pub.chain_signal, new->pub.chain_signal,
|
||||
@ -2291,7 +2291,7 @@ cfg80211_inform_single_bss_data(struct wiphy *wiphy,
|
||||
tmp.pub.signal = 0;
|
||||
tmp.pub.beacon_interval = data->beacon_interval;
|
||||
tmp.pub.capability = data->capability;
|
||||
tmp.ts_boottime = drv_data->boottime_ns;
|
||||
tmp.pub.ts_boottime = drv_data->boottime_ns;
|
||||
tmp.parent_tsf = drv_data->parent_tsf;
|
||||
ether_addr_copy(tmp.parent_bssid, drv_data->parent_bssid);
|
||||
tmp.pub.chains = drv_data->chains;
|
||||
|
Loading…
x
Reference in New Issue
Block a user