Setting allowed mcs index for high density wifi deployment

Hi,

I am looking to disable certain lower mcs rate for some wifi experiments.

The broadcom proprietary driver for broadcom chipset provides a wl util to do this as following:

root@DD-WRT:~# wl -i eth2 rateset
[ 6(b) 9 12(b) 18 24(b) 36 48 54 ]
MCS SET : [ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 32 ]
root@DD-WRT:~# wl -i eth2 down
root@DD-WRT:~# wl -i eth2 rateset -m 0xf8 0xf8 0xf8
root@DD-WRT:~# wl -i eth2 up
root@DD-WRT:~# wl -i eth2 rateset
[ 6(b) 9 12(b) 18 24(b) 36 48 54 ]
MCS SET : [ 3 4 5 6 7 11 12 13 14 15 19 20 21 22 23 32 ]

As seen, mcs 0,1,2,8,9,10,16,17,18 are "disabled". The 802.11ac VHT mcs index can be disabled in similar manner but instead specifying bitmask for different number of spatial stream.

Question:
I don't see this option being supported by UCI in supported_rates or basic_rates option (I think those are only good for beacon transmit rate and 802.11g - please correct me)

iw documentation has the following sample usage:

iw dev wlan0 set bitrates mcs-5 4
iw dev wlan0 set bitrates mcs-2.4 10

But it's not clear to me what the distinction is between mcs-5 and mcs-2.4: I thought mcs index should only depend on the standard eg 802.11n vs 802.11ac and number of spatial streams. How could one set VHT mcs index in this case without specifying the number of spatial streams corresponding to the index being set?

is there a way to do the same for those with an atheros

Also wondering if there is a way to do with the Marvell drivers (mwlwifi). I'm using Linksys WRT32X