Bugzilla – Bug 2296
remove hardcoded arguments for number of spatial streams
Last modified: 2016-02-26 00:48:03 UTC
Created attachment 2268 [details] patch for number of spatial streams Existing wifi module hardcodes the number of spatial streams in many places to the value "1", making it difficult to move later to MIMO models. The attached patch removes this constraint; it does not actually enable MIMO, and there are still a couple of places in the code that will preclude use of MIMO (e.g. the error models must first support multiple spatial streams), but it will generally remove most of the unnecessary assumptions throughout the module that the number of spatial streams is fixed to 1. In particular, when there is a WifiTxVector available, the Nss in the TxVector should be used. There are also a few syntax simplifications related to this also included in the patch. New API is provided in WifiPhy to explicitly get the number of Tx and Rx spatial streams supported, and to get a vector of the available channel widths (e.g. 20, 40, 80, 160 MHz). Again, our wifi model does not yet use multiple channel width options but we will need this API in the near future. The per-remote-station API of GetNumberOfTransmitAntennas () and GetNumberOfReceiveAntennas () has been removed; there doesn't appear to be a way to actually learn these values on a per-remote-station basis. This kind of information should be instead derived from the SupportedRates and Ht/VhtCapabilities IEs. The full set of eight incremental changesets can be browsed here starting with 7ae4f0b: https://github.com/tomhenderson/ns-3-dev-git/commits/mimo These patches did not change any of the regression test output (i.e., should be no behavioral changes).
Tom, thanks for the patch. I posted some comments in the repository. Also, I suggest to rename "Transmitters" and "Receivers" attributes. For example, they could become "TxAntennas" and "RxAntennas". I would also go a bit further. The current patch does not yet allow to transmit frames with multiple spatial streams. I would add support for MIMO transmissions, while keeping the current error rate models for the moment.
Tom, Just to let you know that I am busy on a patch that will allow to make MIMO work (but still use the SISO error rate model, as this will be changed in a future release). The patch will have to be applied on top of yours.
Created attachment 2280 [details] additional patch to enable MIMO functionality This patch needs to be applied on top of Tom's patch. It enable MIMO with up to 4 antennas for constant rate only (expected to be extended to HT Ideal and HT Minstrel asap), but keeping the SISO error rate models. There is still place for a lot of improvements, but the purpose here is not to cover every possible case.
Is 1x2 supported? Also, we probably need a reference example program to plot all of the combinations.
(In reply to Tom Henderson from comment #4) > Is 1x2 supported? Also, we probably need a reference example program to > plot all of the combinations. Since the keep existing error models, there is not 1x2 or any other antenna diversity supported. We could go for a rough 3dB improvement, but I think we can skip this to another release. I will add a MIMO example and update documentation.
Created attachment 2292 [details] 802.11n MIMO validation example and documentation update I made a validation example and I updated user documentation.
merged in changesets 11922-11924