View | Details | Raw Unified | Return to bug 2328
Collapse All | Expand All

(-)a/src/wifi/model/yans-wifi-phy.cc (-43 / +71 lines)
 Lines 968-973   YansWifiPhy::ConfigureHolland (void) Link Here 
968
}
968
}
969
969
970
void
970
void
971
YansWifiPhy::ConfigureHtDeviceMcsSet (void)
972
{
973
  NS_LOG_FUNCTION (this);
974
975
  bool htFound = false;
976
  for (std::vector<uint32_t>::size_type i = 0; i < m_bssMembershipSelectorSet.size (); i++)
977
    {
978
      if (m_bssMembershipSelectorSet[i] == HT_PHY)
979
        {
980
          htFound = true;
981
          break;
982
        }
983
    }
984
  if (htFound)
985
    {
986
      // erase all HtMcs modes from deviceMcsSet
987
      size_t index = m_deviceMcsSet.size () - 1;
988
      for (std::vector<WifiMode>::reverse_iterator rit = m_deviceMcsSet.rbegin (); rit != m_deviceMcsSet.rend(); ++rit, --index)
989
        {
990
          if (m_deviceMcsSet[index].GetModulationClass ()== WIFI_MOD_CLASS_HT)
991
            {
992
              m_deviceMcsSet.erase (m_deviceMcsSet.begin () + index);
993
            }
994
        }
995
      m_deviceMcsSet.push_back (WifiPhy::GetHtMcs0 ());
996
      m_deviceMcsSet.push_back (WifiPhy::GetHtMcs1 ());
997
      m_deviceMcsSet.push_back (WifiPhy::GetHtMcs2 ());
998
      m_deviceMcsSet.push_back (WifiPhy::GetHtMcs3 ());
999
      m_deviceMcsSet.push_back (WifiPhy::GetHtMcs4 ());
1000
      m_deviceMcsSet.push_back (WifiPhy::GetHtMcs5 ());
1001
      m_deviceMcsSet.push_back (WifiPhy::GetHtMcs6 ());
1002
      m_deviceMcsSet.push_back (WifiPhy::GetHtMcs7 ());
1003
      if (GetSupportedTxSpatialStreams () > 1)
1004
        {
1005
          m_deviceMcsSet.push_back (WifiPhy::GetHtMcs8 ());
1006
          m_deviceMcsSet.push_back (WifiPhy::GetHtMcs9 ());
1007
          m_deviceMcsSet.push_back (WifiPhy::GetHtMcs10 ());
1008
          m_deviceMcsSet.push_back (WifiPhy::GetHtMcs11 ());
1009
          m_deviceMcsSet.push_back (WifiPhy::GetHtMcs12 ());
1010
          m_deviceMcsSet.push_back (WifiPhy::GetHtMcs13 ());
1011
          m_deviceMcsSet.push_back (WifiPhy::GetHtMcs14 ());
1012
          m_deviceMcsSet.push_back (WifiPhy::GetHtMcs15 ());
1013
        }
1014
      if (GetSupportedTxSpatialStreams () > 2)
1015
        {
1016
          m_deviceMcsSet.push_back (WifiPhy::GetHtMcs16 ());
1017
          m_deviceMcsSet.push_back (WifiPhy::GetHtMcs17 ());
1018
          m_deviceMcsSet.push_back (WifiPhy::GetHtMcs18 ());
1019
          m_deviceMcsSet.push_back (WifiPhy::GetHtMcs19 ());
1020
          m_deviceMcsSet.push_back (WifiPhy::GetHtMcs20 ());
1021
          m_deviceMcsSet.push_back (WifiPhy::GetHtMcs21 ());
1022
          m_deviceMcsSet.push_back (WifiPhy::GetHtMcs22 ());
1023
          m_deviceMcsSet.push_back (WifiPhy::GetHtMcs23 ());
1024
        }
1025
      if (GetSupportedTxSpatialStreams () > 3)
1026
        {
1027
          m_deviceMcsSet.push_back (WifiPhy::GetHtMcs24 ());
1028
          m_deviceMcsSet.push_back (WifiPhy::GetHtMcs25 ());
1029
          m_deviceMcsSet.push_back (WifiPhy::GetHtMcs26 ());
1030
          m_deviceMcsSet.push_back (WifiPhy::GetHtMcs27 ());
1031
          m_deviceMcsSet.push_back (WifiPhy::GetHtMcs28 ());
1032
          m_deviceMcsSet.push_back (WifiPhy::GetHtMcs29 ());
1033
          m_deviceMcsSet.push_back (WifiPhy::GetHtMcs30 ());
1034
          m_deviceMcsSet.push_back (WifiPhy::GetHtMcs31 ());
1035
        }
1036
    }
1037
}
1038
1039
void
971
YansWifiPhy::Configure80211n (void)
1040
YansWifiPhy::Configure80211n (void)
972
{
1041
{
973
  NS_LOG_FUNCTION (this);
1042
  NS_LOG_FUNCTION (this);
 Lines 981-1030   YansWifiPhy::Configure80211n (void) Link Here 
981
      Configure80211a ();
1050
      Configure80211a ();
982
    }
1051
    }
983
  SetChannelWidth (20); //20 MHz
1052
  SetChannelWidth (20); //20 MHz
984
985
  m_deviceMcsSet.push_back (WifiPhy::GetHtMcs0 ());
986
  m_deviceMcsSet.push_back (WifiPhy::GetHtMcs1 ());
987
  m_deviceMcsSet.push_back (WifiPhy::GetHtMcs2 ());
988
  m_deviceMcsSet.push_back (WifiPhy::GetHtMcs3 ());
989
  m_deviceMcsSet.push_back (WifiPhy::GetHtMcs4 ());
990
  m_deviceMcsSet.push_back (WifiPhy::GetHtMcs5 ());
991
  m_deviceMcsSet.push_back (WifiPhy::GetHtMcs6 ());
992
  m_deviceMcsSet.push_back (WifiPhy::GetHtMcs7 ());
993
  if (GetNumberOfTransmitAntennas () > 1)
994
  {
995
    m_deviceMcsSet.push_back (WifiPhy::GetHtMcs8 ());
996
    m_deviceMcsSet.push_back (WifiPhy::GetHtMcs9 ());
997
    m_deviceMcsSet.push_back (WifiPhy::GetHtMcs10 ());
998
    m_deviceMcsSet.push_back (WifiPhy::GetHtMcs11 ());
999
    m_deviceMcsSet.push_back (WifiPhy::GetHtMcs12 ());
1000
    m_deviceMcsSet.push_back (WifiPhy::GetHtMcs13 ());
1001
    m_deviceMcsSet.push_back (WifiPhy::GetHtMcs14 ());
1002
    m_deviceMcsSet.push_back (WifiPhy::GetHtMcs15 ());
1003
  }
1004
  if (GetNumberOfTransmitAntennas () > 2)
1005
  {
1006
    m_deviceMcsSet.push_back (WifiPhy::GetHtMcs16 ());
1007
    m_deviceMcsSet.push_back (WifiPhy::GetHtMcs17 ());
1008
    m_deviceMcsSet.push_back (WifiPhy::GetHtMcs18 ());
1009
    m_deviceMcsSet.push_back (WifiPhy::GetHtMcs19 ());
1010
    m_deviceMcsSet.push_back (WifiPhy::GetHtMcs20 ());
1011
    m_deviceMcsSet.push_back (WifiPhy::GetHtMcs21 ());
1012
    m_deviceMcsSet.push_back (WifiPhy::GetHtMcs22 ());
1013
    m_deviceMcsSet.push_back (WifiPhy::GetHtMcs23 ());
1014
  }
1015
  if (GetNumberOfTransmitAntennas () > 3)
1016
  {
1017
    m_deviceMcsSet.push_back (WifiPhy::GetHtMcs24 ());
1018
    m_deviceMcsSet.push_back (WifiPhy::GetHtMcs25 ());
1019
    m_deviceMcsSet.push_back (WifiPhy::GetHtMcs26 ());
1020
    m_deviceMcsSet.push_back (WifiPhy::GetHtMcs27 ());
1021
    m_deviceMcsSet.push_back (WifiPhy::GetHtMcs28 ());
1022
    m_deviceMcsSet.push_back (WifiPhy::GetHtMcs29 ());
1023
    m_deviceMcsSet.push_back (WifiPhy::GetHtMcs30 ());
1024
    m_deviceMcsSet.push_back (WifiPhy::GetHtMcs31 ());
1025
  }
1026
1027
  m_bssMembershipSelectorSet.push_back (HT_PHY);
1053
  m_bssMembershipSelectorSet.push_back (HT_PHY);
1054
  ConfigureHtDeviceMcsSet ();
1028
}
1055
}
1029
1056
1030
void
1057
void
 Lines 1246-1251   void Link Here 
1246
YansWifiPhy::SetNumberOfTransmitAntennas (uint32_t tx)
1273
YansWifiPhy::SetNumberOfTransmitAntennas (uint32_t tx)
1247
{
1274
{
1248
  m_numberOfTransmitters = tx;
1275
  m_numberOfTransmitters = tx;
1276
  ConfigureHtDeviceMcsSet ();
1249
}
1277
}
1250
1278
1251
void
1279
void
(-)a/src/wifi/model/yans-wifi-phy.h (-1 / +5 lines)
 Lines 465-470   private: Link Here 
465
   */
465
   */
466
  void Configure80211ac (void);
466
  void Configure80211ac (void);
467
  /**
467
  /**
468
   * Configure the device Mcs set with the appropriate HtMcs modes for
469
   * the number of available transmit spatial streams
470
   */
471
  void ConfigureHtDeviceMcsSet (void);
472
  /**
468
   * Return the energy detection threshold.
473
   * Return the energy detection threshold.
469
   *
474
   *
470
   * \return the energy detection threshold.
475
   * \return the energy detection threshold.
471
- 

Return to bug 2328