What is Preamble Puncturing?
Preamble puncturing allows Wi-Fi 7 access points (APs) to exclude specific subchannels affected by interference or noise, while efficiently utilizing the remainder spectrum. This ensures that maximum channel width is utilized and interference on a small chunk of channel width does not result in under utilization of the remainder large chunk of usable channel width.
Legacy channel width adjustment
Prior to Preamble Puncturing, channel width was primarily adjusted through DBS (Dynamic bandwidth selection) which would drive the decision for assigning the best channel width for the AP radio based on RF environment parameters. Lets assume a legacy Wi-Fi scenario, wherein the AP/client are operating in 80 MHz channel width and interference is introduced on channel 40 20 MHz channel width. After the next RRM cycle, DBS will likely reduce the channel width at which the radio is operating and AP radio starts operating in channel 36 with 20 MHz channel width.

As seen in the above picture, interference on channel 40 will result in wastage of valuable bandwidth on channels 44 and 48. Now the AP and client both are operating with 20 MHz channel width on channel 36.
Preamble Puncturing in Wireshark
When Preamble puncturing is enabled, it is advertised in the Beacon frame under EHT Operations parameters- Disabled Subchannel Bitmap Present.

In the Radiotap Header of the QoS Data frame, we can find the punctured channel information in EHT MU PPDU in the U-SIG field.
Punctured channel information in the U-SIG field will be defined based on the following table-
| PPDU Bandwidth | Scenario | Puncture Pattern | Field Value |
| 20 MHz | No puncturing allowed | (1) | 0 |
| 40 MHz | No puncturing allowed | (1,1) | 0 |
| 80 MHz | No puncturing allowed | (1,1,1,1) | 0 |
| 80 MHz | 20 MHz puncturing | (*,1,1,1) | 1 |
| 80 MHz | 20 MHz puncturing | (1,*,1,1) | 2 |
| 80 MHz | 20 MHz puncturing | (1,1,*,1) | 3 |
| 80 MHz | 20 MHz puncturing | (1,1,1,*) | 4 |
Puncturing fields for 20/40/80 MHz channel width
| PPDU Bandwidth | Scenario | Puncture Pattern | Field Value |
| 160 MHz | No Puncturing allowed | (1,1,1,1,1,1,1,1) | 0 |
| 160 MHz | 20 MHz puncturing | (*,1,1,1,1,1,1,1) | 1 |
| 160 MHz | 20 MHz puncturing | (1,*,1,1,1,1,1,1) | 2 |
| 160 MHz | 20 MHz puncturing | (1,1,*,1,1,1,1,1) | 3 |
| 160 MHz | 20 MHz puncturing | (1,1,1,*,1,1,1,1) | 4 |
| 160 MHz | 20 MHz puncturing | (1,1,1,1,*,1,1,1) | 5 |
| 160 MHz | 20 MHz puncturing | (1,1,1,1,1,*,1,1) | 6 |
| 160 MHz | 20 MHz puncturing | (1,1,1,1,1,1,*,1) | 7 |
| 160 MHz | 20 MHz puncturing | (1,1,1,1,1,1,1*) | 8 |
| 160 MHz | 40 MHz puncturing | (*,*,1,1,1,1,1,1) | 9 |
| 160 MHz | 40 MHz puncturing | (1,1,*,*,1,1,1,1) | 10 |
| 160 MHz | 40 MHz puncturing | (1,1,1,1,*,*,1,1) | 11 |
| 160 MHz | 40 MHz puncturing | (1,1,1,1,1,1,*,*) | 12 |
Puncturing fields for 160 MHz channel width
How to configure Preamble Puncturing in 9800 WLC?
Preamble Puncturing can be enabled in RF profile associated to the AP radio under- Configuration>Tags and Profiles>RF/Radio>RF>Add Profile>802.11 be>Enable Preamble Puncturing

Assign this RF profile to the RF site tag mapped to the AP under test-
Configuration>Tags and Profiles>Tags>(2.4G/5G/6G) Band RF Profile

Related Blogs–
Wireless Concepts
Dynamic Frequency Selection (DFS)
Dynamic Channel Assignment (DCA)
Dynamic Bandwidth Selection (DBS)
Cisco Configuration Guides
How to configure 9800 WLC for max throughput and max spatial streams?