From: ming li <mingli@cs...> - 2009-01-08 17:37:21
We have been observing some weird behavior when we enable Txop and disable
Cca. We are writing to know more about what is causing this interaction
and possible work-arounds.
Here is the experiment setup. Three nodes A, B and C set up as follows: C <-- A
--> B. A sends unicast UDP pkts back to back to node B. And C sniffs them
promiscuously. We are using 11b (rate locked to 11M) in ah-demo mode. Nodes C
and B have comparable (very good) links to A. All the nodes are intel mac minis
with the 5414 mini-pci card in them. We are using a slightly hacked madwifi
0.9.3.2 version with the Atheros closed-source Hal.
We try the experiment with four possible configurations: with-txop/with-cca;
with-txop/without-cca; without-txop/with-cca; without-txop/without-cca.
There was a decent amount of external interference in the form of
We enable txop by the command:
iwpriv ath0 txoplimit 1 0 8000
We use a no-cca patch to disable cca. The patch basically does three things:
1) raising the noise floor 2) raising the rssi 3) setting the diag_sw
register. Only the diag_sw register setting has real effect. We tested this
by measuring the number of pkts that can be pushed out in a minute. So we
believe only this line (in the patch) is really doing the no-cca job:
OS_REG_WRITE(ah, AR5K_AR5212_DIAG_SW, OS_REG_READ(ah,
AR5K_AR5212_DIAG_SW) | AR5K_AR5212_DIAG_SW_IGNOREPHYCS |
We measure the number of bytes received at B and the "Loss-Dependence" b/w
nodes C and B. Where loss dependence is the average likelihood of a packet
being lost at node C, given it is lost at B also. In other words it is P(C
doesn't see pkt | B doesn't see pkt). A high "Loss-Dependence" indicates losses
happening at the sender side -- ie drops happening at the sender side.
In all expts we verified that no Linux side queue drops etc were happening by
reading the various statistics from the /proc/net/dev,
/proc/net/dev/softnet_stat and by "tc -s qdisc". As far as madwifi can tell us,
we don't see any frame drops reported by it.
Further we verified that the card/hal does not reset itself by counting the
number of times ath_reset is called.
We see these two phenomena:
i. Disabling CCA (with or without the present of Txop) invariably increases the
Loss-Dependence from close to 0 to something in the range of 0.4 - 0.8.
ii. with-txop/without-cca suffers a loss of around 25%, whereas all the other
schemes hardly see any loss (< 1%). This behavior is absent in the case of
a. Can someone shed light on what the above reg_write command actually does.
Would it cause the card to drop packets? Reset and do other crazy things ?
b. We are not using a true 5212 card, but we heard that the 5414 one has the
same chipset so the registers numbers for both should be identical. Is that
c. How much of this is because we are using a rather old madwifi version and
not something newer like ath5k etc ?
d. Can someone shed light on what causes such a high loss rate in the present
of txop and no-cca ?. We verified that this also happens when we conduct this
experiment in an interference-free location like an empty parking lot.
Thanks a lot. We hope that you would be able to offer us some pointers.