Wireless Phy in ns-3
The goal of this project is to define a common interface to a set of PHY-level models for wireless transmission mediums spanning a large range of wireless transmission systems:
The following sections try to define:
- the characteristics of each wireless transmission system we want to capture
- various models to capture these characteristics
- carrier frequency: b/g: 2.4GHz, a: 5GHz
- signal spread: 22MHz for 802.11b (DSSS)
- 802.11b transmission modes:
- 1Mb/s: DBPSK + barker PN sequence
- 2Mb/s: DQPSK + barker PN sequence
- 5.5Mb/s: CCK + code spread
- 11Mb/s: CCK + code spread
- 802.11a transmission modes:
- 6Mb/s: BPSK + FEC 1/2
- 9Mb/s: BPSK + FEC 3/4
- 12Mb/s: DBPSK + FEC 1/2
- 18Mb/s: DBPSK + FEC 3/4
- 24Mb/s: QAM16 + FEC 1/2
- 36Mb/s: QAM16 + FEC 3/4
- 48Mb/s: QAM64 + FEC 2/3
- 54Mb/s: QAM64 + FEC 3/4
The MAC layer needs realistic models for the following features:
- interference among multiple stations transmitting at the same time
- resistance of different transmission modes to interference: the 54Mbs mode should resits less than the 6Mbs mode
- signal propagation: attenuation and delay
- so-called "capturing": if a high-energy signal is received during the preamble/header reception of another signal, the high-energy signal crushes the low-energy signal
So, a typical PHY would be characterized by one of 5 states:
- TX: transmitting some bits
- SYNC: receiving some bits
- IDLE: not doing anything, medium is not busy
- BUSY: not doing anything, medium is busy
- SLEEP: sleeping, not listening to the medium for status
The condition for BUSY state is precisely defined for 802.11: it is called CCA state detection. There are multiple CCA modes but mode 1 is based on the total energy measured at the antenna. Support for Mode 2 might be needed.
- some people might need multiple SLEEP states: some SLEEP states are deeper than others, take longer to recover from, etc.
- some people want to model antenna directionality. I have zero idea on how to model this.
Models which might fulfill these needs:
- yans: is based on an energy threshold on the energy of the first bit of the preamble to switch to SYNC state, and implements a BER-based probability calculation to decide whether or not to receive a packet. It also implements CCA mode 1.
- A potentially better model would use a threshold on the min SNIR over the preamble and header reception to decide whther or not to sync on a packet. This would allow us to implement "capturing".
- Another variation would use a SER-based model to decide whether or not a packet can be received
- Yet another variation would use a threshold on the min SNIR over the whole packet reception to decide whther or not a packet can be received.