Commit e4753550 authored by Johannes Berg's avatar Johannes Berg

wifi: mac80211_hwsim: move skip_beacons to be per link

Initially, we were only using this for non-MLO, but it could
also be useful for MLO, and if we move it to per-link and the
vif isn't an MLD, it'll be put in the same place (by mac80211)
anyway. Move it to be per link.
Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
Signed-off-by: default avatarMiri Korenblit <miriam.rachel.korenblit@intel.com>
Link: https://msgid.link/20240318184907.8b6691bd70eb.If8a28b893d277254906601065e4aaefa704b6fcb@changeidSigned-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
parent c121514d
...@@ -216,7 +216,7 @@ static const struct ieee80211_regdomain *hwsim_world_regdom_custom[] = { ...@@ -216,7 +216,7 @@ static const struct ieee80211_regdomain *hwsim_world_regdom_custom[] = {
struct hwsim_vif_priv { struct hwsim_vif_priv {
u32 magic; u32 magic;
u32 skip_beacons; u32 skip_beacons[IEEE80211_MLD_MAX_NUM_LINKS];
u8 bssid[ETH_ALEN]; u8 bssid[ETH_ALEN];
bool assoc; bool assoc;
bool bcn_en; bool bcn_en;
...@@ -2136,13 +2136,16 @@ static int mac80211_hwsim_add_interface(struct ieee80211_hw *hw, ...@@ -2136,13 +2136,16 @@ static int mac80211_hwsim_add_interface(struct ieee80211_hw *hw,
} }
#ifdef CONFIG_MAC80211_DEBUGFS #ifdef CONFIG_MAC80211_DEBUGFS
static void mac80211_hwsim_vif_add_debugfs(struct ieee80211_hw *hw, static void
struct ieee80211_vif *vif) mac80211_hwsim_link_add_debugfs(struct ieee80211_hw *hw,
struct ieee80211_vif *vif,
struct ieee80211_bss_conf *link_conf,
struct dentry *dir)
{ {
struct hwsim_vif_priv *vp = (void *)vif->drv_priv; struct hwsim_vif_priv *vp = (void *)vif->drv_priv;
debugfs_create_u32("skip_beacons", 0600, vif->debugfs_dir, debugfs_create_u32("skip_beacons", 0600, dir,
&vp->skip_beacons); &vp->skip_beacons[link_conf->link_id]);
} }
#endif #endif
...@@ -2217,8 +2220,8 @@ static void __mac80211_hwsim_beacon_tx(struct ieee80211_bss_conf *link_conf, ...@@ -2217,8 +2220,8 @@ static void __mac80211_hwsim_beacon_tx(struct ieee80211_bss_conf *link_conf,
/* TODO: get MCS */ /* TODO: get MCS */
int bitrate = 100; int bitrate = 100;
if (vp->skip_beacons) { if (vp->skip_beacons[link_conf->link_id]) {
vp->skip_beacons--; vp->skip_beacons[link_conf->link_id]--;
dev_kfree_skb(skb); dev_kfree_skb(skb);
return; return;
} }
...@@ -3925,7 +3928,7 @@ static int hwsim_pmsr_report_nl(struct sk_buff *msg, struct genl_info *info) ...@@ -3925,7 +3928,7 @@ static int hwsim_pmsr_report_nl(struct sk_buff *msg, struct genl_info *info)
#ifdef CONFIG_MAC80211_DEBUGFS #ifdef CONFIG_MAC80211_DEBUGFS
#define HWSIM_DEBUGFS_OPS \ #define HWSIM_DEBUGFS_OPS \
.vif_add_debugfs = mac80211_hwsim_vif_add_debugfs, .link_add_debugfs = mac80211_hwsim_link_add_debugfs,
#else #else
#define HWSIM_DEBUGFS_OPS #define HWSIM_DEBUGFS_OPS
#endif #endif
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment