You are not logged in.
I'm doing some experiments with a DIFS that's modifiable at runtime, and the first test is to simply show that loading bitstreams with drastically different DIFS onto a WARP in AP mode will result in an appreciable difference in downlink throughput. However, after running speedtests with the standard DIFS of (T_SIFS + (2 * T_SLOT)) and modified DIFS of (T_SIFS + (<10,20,50,100,200> * T_SLOT)), it appears as though the throughput remains consistent, regardless of the length of the DIFS. As I understand it, increasing the DIFS introduces more overhead to each DCF-based transmission, meaning that -- given a backlog of frames to send -- less frames are able to be sent out in the same period of time. Additionally, increasing the DIFS should make each transmission more susceptible to being pre-empted by a transmission from another device on the same channel, again resulting in a lower throughput. Am I missing something with how this is implemented in WARP?
Offline
I would expect you could observe a throughput difference as you increase the DIFS, but the values you list above are too large for the default hardware design.
The pre-Tx DIFS interval is configured in the MAC core's TxDIFS register field via the wlan_mac_set_TxDIFS() macro. The TxDIFS register field is a 10-bit field whose value is interpreted in hardware as an interval of 100nsec steps. The range of values you listed above give (10 * (10 + 9*[10,20,50,100,200]) = [1000, 1900, 4600, 9100, 18100]. The wlan_mac_set_TxDIFS() macro does not saturate the argument value to 10 bits, so in hardware those intervals are mod-1024 (i.e. [1000, 876, 504, 908, 692]).
Offline
I should have realized that when looking at the macro. Thanks. I'll do some further testing with values unaffected by a modulus operation.
Offline
Results from 30-second downlink iperfs between a machine in the network and a phone associated with the WARP over a channel with *some* traffic (<DIFS in ns>: <downlink throughput in Mbps>):
280: 10.8
460: 11.0
640: 11.0
820: 9.91
1000: 10.3
My assumption is that the change in DIFS *is* working, but the range of values just isn't large enough to generate a wide range of throughputs.
Offline