mbox series

[wireless-next,0/3] wifi: Preamble puncturing support for mesh

Message ID 20250609001048.2263586-1-ramasamy.kaliappan@oss.qualcomm.com
Headers show
Series wifi: Preamble puncturing support for mesh | expand

Message

Ramasamy Kaliappan June 9, 2025, 12:10 a.m. UTC
From: Ramasamy Kaliappan <rkaliapp@qti.qualcomm.com>

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