Bug 2296 - remove hardcoded arguments for number of spatial streams
remove hardcoded arguments for number of spatial streams
Status: RESOLVED FIXED
Product: ns-3
Classification: Unclassified
Component: wifi
pre-release
All All
: P5 enhancement
Assigned To: sebastien.deronne
:
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2016-02-13 21:55 UTC by Tom Henderson
Modified: 2016-02-26 00:48 UTC (History)
1 user (show)

See Also:


Attachments
patch for number of spatial streams (48.52 KB, patch)
2016-02-13 21:55 UTC, Tom Henderson
Details | Diff
additional patch to enable MIMO functionality (16.77 KB, patch)
2016-02-18 18:07 UTC, sebastien.deronne
Details | Diff
802.11n MIMO validation example and documentation update (15.40 KB, patch)
2016-02-23 16:30 UTC, sebastien.deronne
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Tom Henderson 2016-02-13 21:55:39 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).
Comment 1 sebastien.deronne 2016-02-14 15:37:39 UTC
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.
Comment 2 sebastien.deronne 2016-02-18 15:08:21 UTC
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.
Comment 3 sebastien.deronne 2016-02-18 18:07:33 UTC
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.
Comment 4 Tom Henderson 2016-02-18 18:12:24 UTC
Is 1x2 supported?  Also, we probably need a reference example program to plot all of the combinations.
Comment 5 sebastien.deronne 2016-02-19 03:46:21 UTC
(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.
Comment 6 sebastien.deronne 2016-02-23 16:30:50 UTC
Created attachment 2292 [details]
802.11n MIMO validation example and documentation update

I made a validation example and I updated user documentation.
Comment 7 Tom Henderson 2016-02-26 00:48:03 UTC
merged in changesets 11922-11924