PWHM:
=====
Problem:
- static puncturing bitmap is always assumed as part of EhtOperIE even
if not punctbitmap is provided
- incomplete validation of puncturing channel list: only checking
the radio's possible channels but not bitmaps reference values from
IEEE P802.11be/D3.0, Table 36-30 - Definition of the Punctured
Channel Information field
- applying disabledSubChannels (punctChans) leads to global hostapd
restart for a cold applying
- however, punctBitmaps could be applied smoothly via ChannelSwitch or
at most level with single radio toggle (isof global hostapd restart)
- many existing unit tests are failing (not updated with recent pwhm
changes)
Fix:
- read current PUNCT_BITMAP from NL80211 and wpactrl events
CTRL-EVENT-STARTED-CHANNEL-SWITCH and CTRL-EVENT-CHANNEL-SWITCH
- rework wld_util_buildEhtOperationIE to provide in output the
effectively filled length
- add rad api build EhtOperationIE based on rad info
- validate puncturing channel list based on:
* reference punct bitmaps values from the standard
* supported radio std >= 11be
* possible channels
* whether applicable regarding radio's max possible channel bandwidth
- manage applying puncturing channels (when applicable) through target
chanspec
- build hostapd conf and CHAN_SWITCH args using punctBitmap in tgt
chanspec
- add punctChannels to channelChange notification
- build currentEhtOperIE data using current chanspec details (including
puncturing bitmap)
- fix existing unit tests and add new ones
libswlc:
========
New apis:
- add apis to validate puncturing bitmap against reference values from
IEEE P802.11be/D3.0, Table 36-30 - Definition of the Punctured Channel
Information field
- add apis to build puncturing bitmap from punctured channels list, and
the other way around
- add puncturing bitmap to channel specification, and dumping pattern
for proper display of current punct bitmap
- support parsing 80211 EHTOper IE conforming to old std 11be D1.0
- remove fall through for unknown bw values
- add relative unit tests
Integrates:
- 9410341ee: ("pwhm: test: adapt unit test_getEhtOperIe to build frame with current chanspec", 2026-03-11)
- 1f060e75b: ("pwhm: rad: apply puncturing channels via setChanspec isof global hostapd restart", 2026-03-10)
- d69923639: ("pwhm: test: add unit test to check puncturing channel list validity", 2026-03-10)
- 2775a7ccb: ("pwhm: rad: fix detection of invalid puncturing channel list", 2026-03-10)
- 8a5ff0a19: ("pwhm: radStd: add api to get Applicable Radio Standards", 2026-03-10)
- f759fe407: ("pwhm: scan: add puncturing bitmap to scan result neighbor info", 2026-03-09)
- 3ba4baadd: ("pwhm: test: adapt unit test_getEHTOperations to manage dynamic IE length", 2026-03-09)
- 98e47b293: ("pwhm: rad: manage dynamic length of EhtOperationInfo element", 2026-03-09)
- cdf798112: ("pwhm: wpactrl: parse puncturingBitmap from wpactrl event", 2026-03-09)
- 92c510d04: ("pwhm: nl80211: support parse/format puncturingBitmap from nl80211 chan info", 2026-03-09)
- 894cbad74: ("pwhm: chan: fix detecting invalid chanspec with null channels", 2026-03-09)
- 0221f655a: ("pwhm: apmld: fix build issue: missing retcode", 2026-03-09)
- 21664aa1e: ("pwhm: test: fix unit test test_apmld_create", 2026-03-08)
- 1d0b775ba: ("pwhm: test: fix unit test test_ep_freq_list", 2026-03-08)
- a05cb967c: ("pwhm: test: fix unit test test_wpa3_compatibility_mode", 2026-03-08)
- 6ec1b29b7: ("pwhm: test: fix invalid operClass values in unit test fullScan", 2026-03-08)
- 299326eeb: ("pwhm: scan: fix memLeak when building full scan results", 2026-03-08)
- 29dca9e29: ("pwhm: test: fix unit test testRadio11be", 2026-03-08)
- 2f251c919: ("pwhm: test: fix unit tests testStaStats and testStaStatsWiFi7", 2026-03-08)
- bdfa9de: ("libswlc: genFrmParser: add unit test to parse puncturing bitmap from EHTOperIE", 2026-02-21)
- c624f20: ("libswlc: chanspec: add unit tests for puncturing bitmaps check/build/parse", 2026-02-19)
- 93b40c2: ("libswlc: chanspec: add apis to build, parse and validate static puncturing bitmaps", 2026-02-19)
- f40b739: ("libswlc: genFrmParser: remove fall through for unknown bw values", 2026-02-21)
- 2ed3d01: ("libswlc: genFrmParser: add unit test to parse EHTOper IE conforming to old std 11be D1.0", 2026-02-21)
- fb48adc: ("libswlc: genFrmParser: support parsing 80211 EHTOper IE conforming to old std 11be D1.0", 2026-02-21)
- 670c2e0: ("libswlc: genFrmParser: add unit test to parse 80211 EHTOper IE and detect 320MHz extension High/Low", 2026-02-21)
- f62bca4: ("libswlc: unittest: fix unit tests build issue", 2026-02-22)
- 6ab4524: ("libswlc: unittest: fix unit tests cleanup", 2026-02-22)
- 0254645: ("libswlc: genFrmParser: fix unit test parsing Extended Supported Rates", 2026-02-22)
- 05ec34f: ("libswlc: hex: fix unit test of parsing odd number of hex digits", 2026-02-22)
- ef78577: ("libswlc: hex: fix occasional Issue with Sending MgmtActionFrameReceived Notification", 2026-02-22)
- d2cd134: ("libswlc: common: fix coverity warning with SWL_ARRAY_SIZE", 2026-03-11)
References: PPM-3836 PPM-3302
Signed-off-by: Houssem Dafdouf <houssem.dafdouf_ext@softathome.com>