From: Ramasamy Kaliappan <rkaliapp@xxxxxxxxxxxxxxxx> Preamble puncturing(“Punctured 242-tone RU") refers to the transmission of a PPDU in which no signal is present in at least one of the 20 MHz subchannels within the PPDU bandwidth. Puncturing might be the result of the unavailability of 20 MHz subchannel(s) within the PPDU bandwidth, such as a busy channel indicated by the CCA or the setting of the disable subchannel bitmap field (16 bit field) in the EHT Operations element. EHT disable sub channel bitmap is a 16 bit field where each bit corresponds to a 20 MHz channel in the given bandwidth. Bit 0 corresponding to the channel with lowest frequency. Bit set to 1 indicates that the channel is punctured, otherwise active. Userspace can send the EHT disable sub channel bitmap via attribute NL80211_ATTR_PUNCT_BITMAP in frequency param as a part of join mesh (NL80211_CMD_JOIN_MESH) command. The received puncturing bitmap is validated and copied to chandef's punctured bitmap of mesh interface data. Build the mesh beacon’s EHT Operation element including disable_subchannel_bitmap based on chandef's punctured bitmap. Validate and update peer mesh station's puncturing bitmap in local structures while adding new mesh station (parsed from peer mesh station's EHT Operation element) Add changes to allow mesh peering with peer's that advertise different puncturing pattern than self. Rameshkumar Sundaram (3): wifi: cfg80211: add mesh peer with puncturing bitmap wifi: mac80211: Add preamble puncturing support for mesh wifi: ath12k: Send Puncturing pattern of mesh peer during assoc drivers/net/wireless/ath/ath12k/mac.c | 3 +++ include/net/cfg80211.h | 4 +++ include/net/mac80211.h | 5 +++- net/mac80211/cfg.c | 19 +++++++++++++- net/mac80211/mesh.c | 9 +++++++ net/mac80211/mesh_plink.c | 38 +++++++++++++++++++++++++++ net/mac80211/util.c | 15 +++++++++-- net/wireless/nl80211.c | 11 ++++++++ 8 files changed, 100 insertions(+), 4 deletions(-) base-commit: ea15e046263b19e91ffd827645ae5dfa44ebd044 -- 2.34.1