Support 80+80 MHz channels for 802.11ac and 802.11ax

Some 802.11ac chipsets support 80+80 MHz channel operation in addition to 160 MHz channel operation, e.g. QCA9886, QCA9888.

OpenWrt currently only let users choose a contiguous 160 MHz channel.
By setting hostapd parameters like vht_oper_chwidth, he_oper_chwidth, vht_oper_centr_freq_seg1_idx, he_oper_centr_freq_seg1_idx, it should be possible to achieve 80+80 MHz channel operation.

https://www.qnap.com/en/how-to/faq/article/how-are-the-160-mhz-and-80-mhz80mhz-channels-different-from-ieee802-11ac-or-wi-fi-5 has more information on 80+80 MHz, including why one may want to use 80+80 MHz.

1 Like

Search the forum for “VHT80P80” for relevant patches you can apply yourself.
I’ve not submitted these to the project (maybe I will…) but they work fine.

2 Likes

Please create a PR with the necessary changes :slight_smile:

3 Likes

Is it AC-specific or does it work for AX and above as well?

You can plant 80+80 parameter with ACS, but not uci or luci precise channel setup.

It has 2 extra lines needed for AX which I didn’t realise until I looked again last night.
It needs to set he_oper_chwidth and he_center_seg1

1 Like

he_center_seg1

From hostapd.conf, apparently it should be he_oper_centr_freq_seg1_idx?

Thank you - it would be great if you can submit the patch to OpenWrt, since it will gain higher visibility (other users may not know that there is a patch in a forum topic), and if it gets accepted (merged), users will be able to enjoy the feature without having to manually patch their scripts / repos.

From https://documentation.meraki.com/MR/Wi-Fi_Basics_and_Best_Practices/Wi-Fi_6_(802.11ax)_Technical_Guide, 80+80 channel width also applies to 802.11ax.

I have therefore edited my original post to reflect this.

That’s right, the patch translates it out (in the VHT case). I would do the same for HE.

I will submit it when I find time. We have carried this patch over in Gargoyle for quite some time.
I don’t know if “channel2” is an appropriate config name for this, but I can’t think of anything better.

5 Likes

Is mac80211.sh the only thing that needs patching?

Besides luci, yes

1 Like

imho note that these scripts are in the process to be migrated to ucode ... so one will need to update these as well besides mac80211.sh

*instead of?
Yes I was aware thank you

Edit: just went and looked. Which uc script do you think needs modding? It still looks like sh to me in 24.10

@lantis1008 Any progress with making 80+80 MHz upstream?

I’ve been tied up rewriting iptables kmods.
I should be finished the current one this week, I’ll take a break and look at this issue instead.

Can’t jump halfway though, my brain doesn’t jump tasks like it used to :slight_smile:

3 Likes

Great. When the changes are complete I plan to test the non-contiguous channels in the channel analyzer :smiley:

I’ve made a start on patches for 24.10 which I will post soonish.
I’ll need someone who has an AX capable device which supports 80+80 to test. Turns out my device doesn’t support it and I’ll have to go dig out my netgear 7800 to test VHT80P80.

1 Like

Patch for OpenWrt 24.10

Patch for OpenWrt Snapshot

Please test and provide feedback, particularly if you have a HE80P80 capable device.

Note that your device must support 80+80 mode. Not all devices capable of 160MHz also support this split configuration.

Example config:

config wifi-device 'radio0'
	option type 'mac80211'
	option path 'soc/1b500000.pci/pci0000:00/0000:00:00.0/0000:01:00.0'
	option band '5g'
	option channel '36'
	option channel2 '149'
	option htmode 'VHT80P80'
	option disabled '0'
	option country 'AU'

iwinfo:

root@OpenWrt:~# iwinfo
phy0-ap0  ESSID: "testing"
          Access Point: 8C:3B:AD:34:AC:83
          Mode: Master  Channel: 40 (5.200 GHz)  HT Mode: VHT80+80
          Center Channel 1: 42 2: 155
          Tx-Power: 23 dBm  Link Quality: unknown/70
          Signal: unknown  Noise: -101 dBm
          Bit Rate: unknown
          Encryption: WPA2 PSK (CCMP)
          Type: nl80211  HW Mode(s): 802.11ac/n
          Hardware: 168C:0046 168C:CAFE [Qualcomm Atheros QCA9984]
          TX power offset: none
          Frequency offset: none
          Supports VAPs: yes  PHY name: phy0

Scan from an adjacent AP:

Cell 01 - Address: 8C:3B:AD:34:AC:83
          ESSID: testing
          Mode: Master  Frequency: 5.200 GHz  Band: 5 GHz  Channel: 40
          Signal: -10 dBm  Quality: 70/70
          Encryption: WPA2 PSK (CCMP)
          HT Operation:
                    Primary Channel: 40
                    Secondary Channel Offset: below
                    Channel Width: 20 MHz
          VHT Operation:
                    Center Frequency 1: 42
                    Center Frequency 2: 155
                    Channel Width: 80 MHz

Gargoyle Spectrum Analyzer:

9 Likes

Great idea! I always thought it was odd that the R7800 supported 80+80 with the factory firmware but lost this functionality when upgrading to OpenWRT. Will this also work with auto channel selection? I typically leave it on auto channel 160Mhz.

I have a lot of devices with Mediatek chipset. They should support VHT80P80, HE80P80 and EHT80P80. Maybe even the EHT160P160 and EHT160P80. Which driver is broken, anyway?