Commit e4753550 authored by Johannes Berg's avatar Johannes Berg
Browse files

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@changeid


Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
parent c121514d
Loading
Loading
Loading
Loading
+11 −8
Original line number Diff line number Diff line
@@ -216,7 +216,7 @@ static const struct ieee80211_regdomain *hwsim_world_regdom_custom[] = {

struct hwsim_vif_priv {
	u32 magic;
	u32 skip_beacons;
	u32 skip_beacons[IEEE80211_MLD_MAX_NUM_LINKS];
	u8 bssid[ETH_ALEN];
	bool assoc;
	bool bcn_en;
@@ -2136,13 +2136,16 @@ static int mac80211_hwsim_add_interface(struct ieee80211_hw *hw,
}

#ifdef CONFIG_MAC80211_DEBUGFS
static void mac80211_hwsim_vif_add_debugfs(struct ieee80211_hw *hw,
					   struct ieee80211_vif *vif)
static void
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;

	debugfs_create_u32("skip_beacons", 0600, vif->debugfs_dir,
			   &vp->skip_beacons);
	debugfs_create_u32("skip_beacons", 0600, dir,
			   &vp->skip_beacons[link_conf->link_id]);
}
#endif

@@ -2217,8 +2220,8 @@ static void __mac80211_hwsim_beacon_tx(struct ieee80211_bss_conf *link_conf,
	/* TODO: get MCS */
	int bitrate = 100;

	if (vp->skip_beacons) {
		vp->skip_beacons--;
	if (vp->skip_beacons[link_conf->link_id]) {
		vp->skip_beacons[link_conf->link_id]--;
		dev_kfree_skb(skb);
		return;
	}
@@ -3925,7 +3928,7 @@ static int hwsim_pmsr_report_nl(struct sk_buff *msg, struct genl_info *info)

#ifdef CONFIG_MAC80211_DEBUGFS
#define HWSIM_DEBUGFS_OPS					\
	.vif_add_debugfs = mac80211_hwsim_vif_add_debugfs,
	.link_add_debugfs = mac80211_hwsim_link_add_debugfs,
#else
#define HWSIM_DEBUGFS_OPS
#endif