Completely disabling RTS/CTS

Raj Joshi rajjoshi at
Thu Jul 21 07:15:06 PDT 2016

Hi all,

I am trying to "completely" disable RTS/CTS.

* Case 1: Using iw/iwconfig when I set the sender's RTS threshold to a
very high value (RTS thr=10000 B), I expect that no RTS should be
sent. However, it seems that this threshold is not being honored and I
can sniff large number of RTS/CTS frames. I verified that no A-MSDU is
exceeding 10000 B.
* Case 2: Interestingly, when I set the sender's RTS threshold to off
(RTS thr:off), compared to case #1 much less number of RTS/CTS frames
are seen and throughput is seen to improve. But I can still see
RTS/CTS frames being sent.
* Since the channel is clear and much isolated, and there is just one
AP and one STA, there is negligible chance of other factors playing
any role.
* There is one change though that I have disabled dynamic bandwidth
i.e. ar->wmi.pdev_param->dynamic_bw set zero in mac.c. I believe this
is likely not an issue as similar RTS/CTS behavior is seen even with
dynamic_bw set to 1 (there are no heterogeneous channel widths in the
network in any case).
* Another thing I noticed is that the RTS/CTS protection mode if set,
it is set to CTS-to-self, rather than "RTS/CTS" i.e.
ar->wmi.vdev_param->protection_mode in mac.c is either set to 1 or 0
(depending upon use_cts_prot), but not 2. This probably seems not
helpful in hidden node scenarios as the CTS frame is unicasted instead

I would appreciate any pointers on completely disabling RTS/CTS as
well as the ability to choose between complete RTS/CTS versus
CTS-to-self whenever RTS/CTS is enabled.

Raj Joshi

More info on setup
- QCA9880 (Compex wle900vx)
- Ubuntu 16.04 x64 running kernel 4.7.0-rc4-wt-ath-201606202115 from ath.git
- firmware-version:

More information about the ath10k mailing list