[Ns-developers] ns-3 wifi TODO

Mathieu Lacage mathieu.lacage at sophia.inria.fr
Mon Mar 31 22:05:58 PDT 2008


hi,

If you are interested in using wifi models for ns-3, and if you have
spare free time to help with it, here is a small list of things I think
could be of some use to a lot of people. I will most likely work on some
of these items as time permits but none of these are very high priority
in my personal list so, feel free to beat me to any of the below if you
feel inspired.

In no particular order:

1) make the PHY layer abstract: move public methods from WifiPhy to a
base class, make them virtual. Make WifiChannel use this new base class

2) Split the PHY layer in a bunch of utility classes:
  - a class to handle state management
  - a class to handle interference calculations: i.e., calculation of
the SNIR function.
  - a class to handle SNR -> PER calculations

3) Add table-based BER/PER calculations from the dei80211 PHY models

4) Add WifiRemoteStation::GetTxLevel, provide a default implementation
in WifiRemoteStation base class which takes its return value from an
attribute in WifiRemoteStationManager, and use it from MacLow to set the
tx level of outgoing packets.

5) get rid of active probing in NqstaWifiMac: this code seems to just
introduce complexity and bugs in the STA state machine without any real
useful functionality.

6) Copy QapWifiMac and QstaWifiMac from the NQXX versions. Add one tx
queue per qos category (make sure you keep an extra one for beacon
generation in qap-wifi-mac). For each downward packet, lookup a special
tag which contains the packet's qos category and queue it in the
relevant queue. If there is no tag, queue packet in AC_BE.

7) Add support for handling rxtxturnaround delay in MAC: make PHY layer
actually introduce this delay. Requires changes to PHY layer state
machine and requires careful changes to DCF code to perform timely
accesses. This will have a big impact on the collision probability.

8) Add new rate control algorithms. SampleRate is most likely a good
candidate. See J. C. Bicket, “Bit-rate Selection in Wireless Networks”,
M.S Thesis, MIT, February 2005.

9) add channel interference modelization to the PHY layer: add a
frequency argument to WifiChannel::Send, and use this frequency when
receiving a packet to decide whether or not to receive the packet.
Simple first solution is to make this a boolean choice whether you are
on the same frequency band. Better model will use a multiplication
factor on the signal power based on the difference between the sending
frequency band and the rx PHY listening frequency band.

1, 2, 3, 4, 5, 8, and 9 are easy. 6 and 7 are harder. 7 is hardest.

Mathieu



More information about the Ns-developers mailing list