You are not logged in.
Pages: 1
Hi,
Can some one tell me, how to tell whether a packet failure is due to a collision or due to a bad channel quality in the reference design?
I found that in the CSMA.C file, whenever there is a failure, the contention window will be increased. Does that mean, for the reference design, all failures are regarded as the result of collision?
Thanks
Offline
My understanding is that CSMA/CA behaves exactly the way you describe: all failures are regarded as the result of collision. Obviously this isn't the case, but as far as I'm aware there is nothing in the 802.11 standards to directly address this.
For my own research, I wanted a way to distinguish channel-induced failures from collisions. It's not perfect, but my proxy for a channel error was a (good header, bad payload) event, since our PHY on WARP has two checksums. The idea was that packets that collide tend to start at the same time thanks to carrier sense (note: this doesn't cover the hidden node case). If they start at the same time, the headers of each packet are very likely to be corrupt. If, however, the header is successfully decoded but the higher-rate (and therefore less reliable) payload fails, then that's indicative of a collision. It worked well for my purposes. One advantage of this is that its really easy to make the call on the source of the error in real-time... it's just C-code in the proper (good header) and (bad header) callbacks.
The better way to do it is to dig deeper into the PHY to perform collision detection. I talked a little about this in my thesis (Appendix A, Page 109). I ran some proof-of-concept experiments with WARPLab, but didn't get around to building it into the real-time design. The idea here is that the hidden node case (where a collision occurs partway through a packet reception) can be identified by using EVM to detect a sudden worsening of the packet's SNR.
Offline
Thank you , Chris
Offline
Pages: 1