This is the official repository for the development of the WiGig module network simulator ns-3. The WiGig module introduces a wireless network interface controller based on the WLAN IEEE 802.11ad/ay standards. IEEE 802.11ad/ay 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.
We provide a high-fidelity and open-source simulation framework for evaluating the IEEE 802.11ad/ay standards. Our framework consists of four software tools as depicted in the below figure:
- ns-3 IEEE 802.11ad/ay model: This is the core of our framework. The model is based on the WiFi module in ns-3. It provides a highly accurate implementation of the IEEE 802.11ad/ay MAC layer with an abstracted PHY layer implementation. Additionally, we provide a realistic millimeter-wave channel model based on channel profiles generated by 60 GHz ray-tracing software.
- Codebook/Beambook Generator: This is a MATLAB-based application to design codebook instances that define the beam patterns of the phased antenna array(s) within an IEEE 802.11ad/ay enabled device.
- NIST Q-D Channel Realization Software: It is a ray-tracing software developed in MATLAB for accurate indoor and outdoor millimeter-wave channel modeling.
- Q-D Interpreter: It is a Python-based application to visualize the beamforming results obtained through the ns-3 IEEE 802.11ad/ay model together with the simulated scenario generated by the Q-D Realization Software.
- Provides a high-fidelity research tool for studying, modeling, and analyzing 60 GHz WLAN standards.
- Allows researchers from academia and industry to design innovative solutions to improve wireless networking in the 60 GHz band. As the IEEE 802.11ad/ay standards leave many points implementation-dependent, users can utilize our framework to propose ideas and evaluate their performance ahead of an actual implementation.
- Serves as a network planning tool for wireless network operators. The model allows simulating large dense 60 GHz wireless networks before deployment.
We list the supported features based on the standard.
- DMG Channel Access Periods (BTI/A-BFT/ATI/DTI with both CBAP and Service Periods).
- Beamforming Training (BT) in both BHI and DTI access periods.
- DMG PLCP Model for 802.11ad frame transmission and reception.
- Abstract DMG PHY layer implementation for DMG CTRL/SC/OFDM.
- Beamforming Codebook design for beamforming training and beam steering.
- Fast Session Transfer (FST) mechanism.
- Dynamic allocation of service period (Polling).
- Service period allocation.
- DMG Relay support (Full-duplex and half-duplex modes).
- Beamformedlink maintenance for service period allocation.
- Decentralized clustering support.
- Spatial sharing and interference assessment mechanism.
- Quasi-deterministic channel model to simulate real propagation environments.
- Multi-antenna beamforming training support.
- Accurate BER vs. SNR lookup tables for all DMG PHY modes.
- Beam refinement for both transmit and receive beam patterns.
- Multi-AP support without the need for decentralized clustering.
- A comprehensive set of examples and tutorials for each feature.
The IEEE 802.11ay implementation is an extension to our IEEE 802.11ad model, and it supports the following list of features:
- IEEE 802.11ay PHY frame structure, new MAC frame formats, and new Information Elements.
- Advanced beamforming techniques (EDMG BRP PPDU and short SSW frame).
- Channel bonding up to four channels.
- Channel transmit masks for all channel configurations in IEEE 802.11ay.
- SU-MIMO beamforming training and channel access procedures.
- MU-MIMO beamforming training procedure.
- MIMO Q-D channel interface.
- A comprehensive set of examples for MIMO communication and 11ay throughput validation.
Before using our WiGig module, please do the following:
- Familiarize yourself with ns-3 and how to install and run simulations in ns-3. Have a look at the official tutorial page of the simulator.
- 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.
- Understand the existing Wifi Model in ns-3 which implements WLAN IEEE 802.11a/b/g/n/ac/ax/be.
- Read our publications below to understand our implementation.
- Consult our Wiki page for more detailed information regarding our implementation.
Once you have completed all these steps, you can proceed with cloning and building the project.
Clone the project to your local system using the following command:
git clone https://github.com/wigig-tools/wigig-module.git
To build the project in debug mode, type the following commands:
./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 commands:
./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. Make sure you have enough free space in your system.
Our WiGig module includes an extensive set of tutorial scripts located in the scratch folder. A user can explore these examples to test and validate the performance of our framework. At the beginning of each simulation script, we added a detailed description regarding the tested functionality, network topology, expected output, and usage method.
The following papers include background on IEEE 802.11ad/ay, implementation details, and evaluation for the WiGig model. If you use our framework in your research, please cite the following papers:
- Hany Assasa, Nina Grosheva, Tanguy Ropitault, Steve Blandino, Nada Golmie, and Joerg Widmer Implementation and Evaluation of a WLAN IEEE 802.11 ay Model in Network Simulator ns-3 The Workshop on ns-3 (WNS3), 23-24 June 2021, Virtual Event.
- Hany Assasa, Joerg Widmer, Jian Wang, Tanguy Ropitault, and Nada Golmie. An Implementation Proposal for IEEE 802.11ay SU/MU-MIMO Communication in ns-3 Proceedings of the 2019 Workshop on Next-Generation Wireless with ns-3 (WNGW 2019), 21 June 2019, Florence, Italy.
- Hany Assasa, Joerg Widmer, Tanguy Ropitault, Anuraag Bodi, and Nada Golmie. High Fidelity Simulation of IEEE 802.11ad in ns-3 Using a Quasi-deterministic Channel Model. Proceedings of the 2019 Workshop on Next-Generation Wireless with ns-3 (WNGW 2019), 21 June 2019, Florence, Italy.
- Hany Assasa, Joerg Widmer, Tanguy Ropitault, and Nada Golmie. Enhancing the ns-3 IEEE 802.11ad Model Fidelity: Beam Codebooks, Multi-antenna Beamforming Training, and Quasi-deterministic mmWave Channel. The Workshop on ns-3 (WNS3), 19-20 June 2019, Florence, Italy.
- Hany Assasa, and Joerg Widmer. Extending the IEEE 802.11ad Model: Scheduled Access, Spatial Reuse, Clustering, and Relaying. The Workshop on ns-3 (WNS3), 13-14 June 2017, Porto, Portugal.
- Hany Assasa, and Joerg Widmer. Implementation and Evaluation of a WLAN IEEE 802.11ad Model in ns-3. The Workshop on ns-3 (WNS3), 15-16 June 2016, Seattle, WA, USA.
We are working on the following set of IEEE 802.11ay features for our next release:
- Multi-channel scheduling.
- Accurate modeling for non-duplicate frame transmission and reception.
- Extending SU-MIMO implementation to support beamforming training and data communication in dense network deployment.
- MU-MIMO channel access procedure.
- Hybrid beamforming protocol (Analog and digital beamforming).
- Time-division duplexing (TDD) protocol for mmWave distribution networks/fixed wireless access (FWA).
The WiGig module and Codebook Generator Application is developed and maintained by:
- Hany Assasa (Project leader).
- Nina Grosheva
When you come across a bug during the usage of the original model, please report the problem to the following email address (hany.assasa@gmail.com). In the email, please include the following:
- Simulation file with a brief description of the simulated scenario and the expected output.
- 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.