/ns3-802.11ad

IEEE 802.11ad/ay MAC/PHY Implementation in Network Simulator ns-3

Primary LanguagePythonGNU General Public License v2.0GPL-2.0

Introduction:

This is a repository for the development of the WLAN IEEE 802.11ad/ay standards in network simulator ns-3. Both 11ad and 11ay standards support wireless networking in the unlicensed 60 GHz band. Our implementation paves the way to perform high fidelity simulations for large dense wireless networks consisting of devices with heterogeneous capabilities and constraints. For more information on the project, please refer to our publications below.

New Release:

We are happy to share the first pre-release of our IEEE 802.11ay module in network simulator ns-3. We list here some of the new features:

  1. IEEE 802.11ay PHY frame structure, new MAC frame formats, and new Information Elements.
  2. Advanced beamforming techniques (EDMG BRP PPDU and short SSW frame).
  3. Channel bonding up-to four channels.
  4. Channel transmit masks for all channel configurations in IEEE 802.11ay.
  5. SU-MIMO beamforming training and channel access procedures.
  6. MU-MIMO beamforming training procedure.
  7. MIMO Q-D channel interface.
  8. A comprehensive set of examples for MIMO communication and 11ay throughput validation.
  9. Re-based the current implementation to ns-3.31.

IEEE 802.11ad Features:

  1. DMG Channel Access Periods (BTI/A-BFT/ATI/DTI with both CBAP and Service Periods).
  2. Beamforming Training (BT) in both BHI and DTI access periods.
  3. DMG PLCP Model for 802.11ad frame transmission and reception.
  4. Abstract DMG PHY layer implementation for DMG CTRL/SC/OFDM.
  5. Beamforming Codebook design for beamforming training and beam steering.
  6. Fast Session Transfer (FST) mechanism.
  7. Dynamic Allocation of Service Period (Polling).
  8. Service Period Allocation.
  9. DMG Relay Support (Full Duplex and Half Duplex Modes).
  10. Beamformed Link Maintenance for service Period Allocation.
  11. Decentralized clustering support.
  12. Spatial sharing and interference assessment mechanism.
  13. Quasi-deterministic channel model to simulate real propagation environments.
  14. Codebook Generator Application in MATLAB to generate beams codebook.
  15. Multi-antenna beamforming training support.
  16. Accurate BER vs. SNR lookup tables for all DMG PHY layers.
  17. Beam refinement for both transmit and receive beam patterns.
  18. Multi-AP support without the need for decentralized clustering.
  19. A comprehensive set of examples and tutorials for each feature.

Project Road-map:

We are working on the following set of features for our next release:

  1. Multi-channel scheduling.
  2. Accurate modeling for non-duplicate frame transmission and reception.
  3. Extending SU-MIMO implementation to support beamforming training and data communication in dense network deployment.
  4. MU-MIMO channel access procedure.
  5. Hybrid beamforming protocol.
  6. mmWave distribution protocol (TDD).

Limitation:

Below is a list of the limitation in the code:

  1. SU-MIMO is limited to two devices at the moment in the network.
  2. MU-MIMO data communication is not implemented yet.
  3. Data communication in SP allocation does not support A-MPDU aggregation and only A-MSDU aggregation. The reason is A-MPDU aggregation requires establishing a Block Acknowledgement agreement between the initiator and the responder, which requires a bi-directional transmission in the SP allocation. However, communication in SP is only allowed in a uni-directional way. To solve the previous problem, Reverse Directional Protocol is required.
  4. Not all the features have been tested in complex scenarios. In case, you run into a bug, feel free to report it.

Prerequisites:

Before start using our 11ad/ay module, please keep the following in mind:

  1. Understand WLAN IEEE 802.11 MAC/PHY operations. There are plenty of references on the Internet describing the CSMA/CA protocol and the evolution of the 802.11 protocol.
  2. Get familiar with ns-3 and how to run simulations in ns-3. Have a look at the tutorial page of the simulator.
  3. Understand the existing Wifi Model in ns-3 which implements WLAN IEEE 802.11a/b/g/n/ac/ax.
  4. Finally, do not contact us asking how to use the model or provide you with some documentation on how to use ns-3. We will ignore your email :)

Once you have completed all these steps, you can proceed with building the project.

Building the Project:

The current implementation is based on ns3-31. To build the project in debug mode, type the following command:

./waf configure --disable-examples --disable-tests --disable-python --enable-modules='core','applications','wifi','spectrum','flow-monitor','point-to-point','buildings'
./waf build

To build the project in optimized mode for fast execution type the following command:

./waf configure --disable-examples --disable-tests --disable-python --enable-modules='applications','core','internet','point-to-point','wifi','flow-monitor','spectrum' --enable-static -d optimized
./waf build

Warning: The previous command will generate large executable files.

Tutorial Scripts:

The project includes different scripts located in the scratch folder to test the previously listed features and mechanisms. At the beginning of each script, we added a detailed description regarding the tested functionality, network topology, expected output, and usage method.

Publications:

The implementation is based on the existing model of the WLAN IEEE 802.11 in ns-3. The following papers include background on IEEE 802.11ad, implementation details, and evaluation section for this model. If you use our model in your research, please cite the following papers:

Reporting:

In case you come across a bug during the usage of our implementation, please report the problem to the following email address (hany.assasa@gmail.com). In the email, please include the following:

  1. Simulation file with a small description of the simulated scenario and the expected output.
  2. The set of input parameters that caused the simulation to crash.

Please do not report any problem related to your modification of the original code.

Author Information:

The project is developed and maintained by:

  1. Hany Assasa (Project leader)
  2. Nina Grosheva