1.1 --- a/src/devices/wifi/interference-helper.cc Mon Jul 13 09:57:32 2009 +0200
1.2 +++ b/src/devices/wifi/interference-helper.cc Mon Jul 13 14:30:12 2009 +0200
1.3 @@ -241,6 +241,18 @@
1.4 delay += m_plcpLongPreambleDelayUs;
1.5 delay += lrint (ceil ((size * 8.0 + 48.0) / payloadMode.GetDataRate () / 4e-6) * 4);
1.6 break;
1.7 + case WIFI_PHY_STANDARD_80211_10Mhz:
1.8 + delay += m_plcpLongPreambleDelayUs;
1.9 + // symbol duration is 8us
1.10 + delay += 8;
1.11 + delay += lrint (ceil ((size * 8.0 + 16.0 + 6.0) / payloadMode.GetDataRate () / 8e-6) * 8);
1.12 + break;
1.13 + case WIFI_PHY_STANDARD_80211_5Mhz:
1.14 + delay += m_plcpLongPreambleDelayUs;
1.15 + // symbol duration is 16us
1.16 + delay += 16;
1.17 + delay += lrint (ceil ((size * 8.0 + 16.0 + 6.0) / payloadMode.GetDataRate () / 1.6e-5) * 16);
1.18 + break;
1.19 default:
1.20 NS_ASSERT (false);
1.21 break;
1.22 @@ -277,6 +289,34 @@
1.23 m_maxPacketDuration = CalculateTxDuration (4095, WifiPhy::Get1mbb (), WIFI_PREAMBLE_LONG);
1.24 }
1.25
1.26 +void
1.27 +InterferenceHelper::Configure80211_10MhzParameters (void)
1.28 +{
1.29 + NS_LOG_FUNCTION (this);
1.30 + m_80211_standard = WIFI_PHY_STANDARD_80211_10Mhz;
1.31 + m_plcpLongPreambleDelayUs = 32;
1.32 + m_plcpShortPreambleDelayUs = 32;
1.33 + m_longPlcpHeaderMode = WifiPhy::Get3mb10Mhz ();
1.34 + m_shortPlcpHeaderMode = WifiPhy::Get3mb10Mhz ();
1.35 + m_plcpHeaderLength = 4 + 1 + 12 + 1 + 6;
1.36 + /* 4095 bytes at a 3Mb/s rate with a 1/2 coding rate. */
1.37 + m_maxPacketDuration = CalculateTxDuration (4095, WifiPhy::Get3mb10Mhz (), WIFI_PREAMBLE_LONG);
1.38 +}
1.39 +
1.40 +void
1.41 +InterferenceHelper::Configure80211_5MhzParameters (void)
1.42 +{
1.43 + NS_LOG_FUNCTION (this);
1.44 + m_80211_standard = WIFI_PHY_STANDARD_80211_5Mhz;
1.45 + m_plcpLongPreambleDelayUs = 64;
1.46 + m_plcpShortPreambleDelayUs = 64;
1.47 + m_longPlcpHeaderMode = WifiPhy::Get1_5mb5Mhz ();
1.48 + m_shortPlcpHeaderMode = WifiPhy::Get1_5mb5Mhz ();
1.49 + m_plcpHeaderLength = 4 + 1 + 12 + 1 + 6;
1.50 + /* 4095 bytes at a 1.5Mb/s rate with a 1/2 coding rate. */
1.51 + m_maxPacketDuration = CalculateTxDuration (4095, WifiPhy::Get1_5mb5Mhz (), WIFI_PREAMBLE_LONG);
1.52 +}
1.53 +
1.54 void
1.55 InterferenceHelper::AppendEvent (Ptr<InterferenceHelper::Event> event)
1.56 {
2.1 --- a/src/devices/wifi/interference-helper.h Mon Jul 13 09:57:32 2009 +0200
2.2 +++ b/src/devices/wifi/interference-helper.h Mon Jul 13 14:30:12 2009 +0200
2.3 @@ -71,6 +71,8 @@
2.4
2.5 void Configure80211aParameters (void);
2.6 void Configure80211bParameters (void);
2.7 + void Configure80211_10MhzParameters (void);
2.8 + void Configure80211_5MhzParameters (void);
2.9 void SetNoiseFigure (double value);
2.10 void SetErrorRateModel (Ptr<ErrorRateModel> rate);
2.11
3.1 --- a/src/devices/wifi/wifi-mac.cc Mon Jul 13 09:57:32 2009 +0200
3.2 +++ b/src/devices/wifi/wifi-mac.cc Mon Jul 13 14:30:12 2009 +0200
3.3 @@ -117,6 +117,14 @@
3.4 MakeSsidAccessor (&WifiMac::GetSsid,
3.5 &WifiMac::SetSsid),
3.6 MakeSsidChecker ())
3.7 + .AddAttribute ("Standard", "The standard chosen configures some MAC-specific constants",
3.8 + EnumValue (WIFI_PHY_STANDARD_80211a),
3.9 + MakeEnumAccessor (&WifiMac::SetStandard),
3.10 + MakeEnumChecker (WIFI_PHY_STANDARD_80211a, "802.11a",
3.11 + WIFI_PHY_STANDARD_80211b, "802.11b",
3.12 + WIFI_PHY_STANDARD_80211_10Mhz,"802.11_10Mhz",
3.13 + WIFI_PHY_STANDARD_80211_5Mhz,"802-11_5Mhz",
3.14 + WIFI_PHY_STANDARD_holland, "holland"))
3.15 .AddTraceSource ("MacTx",
3.16 "A packet has been received from higher layers and is being processed in preparation for "
3.17 "queueing for transmission.",
3.18 @@ -200,4 +208,74 @@
3.19 m_macRxDropTrace (packet);
3.20 }
3.21
3.22 +void
3.23 +WifiMac::SetStandard (enum WifiPhyStandard standard)
3.24 +{
3.25 + m_standard = standard;
3.26 + switch (standard) {
3.27 + case WIFI_PHY_STANDARD_80211a:
3.28 + Configure80211a ();
3.29 + break;
3.30 + case WIFI_PHY_STANDARD_80211b:
3.31 + Configure80211b ();
3.32 + break;
3.33 + case WIFI_PHY_STANDARD_80211_10Mhz:
3.34 + Configure80211_10Mhz ();
3.35 + break;
3.36 + case WIFI_PHY_STANDARD_80211_5Mhz:
3.37 + Configure80211_5Mhz ();
3.38 + break;
3.39 + case WIFI_PHY_STANDARD_holland:
3.40 + Configure80211a ();
3.41 + break;
3.42 + default:
3.43 + NS_ASSERT (false);
3.44 + break;
3.45 + }
3.46 +}
3.47 +
3.48 +void
3.49 +WifiMac::Configure80211a (void)
3.50 +{
3.51 + SetSifs(MicroSeconds(16));
3.52 + SetSlot(MicroSeconds(9));
3.53 + SetEifsNoDifs(MicroSeconds(16+44));
3.54 + SetPifs(MicroSeconds(16+9));
3.55 + SetCtsTimeout(MicroSeconds(16+44+9+GetDefaultMaxPropagationDelay().GetMicroSeconds ()*2));
3.56 + SetAckTimeout(MicroSeconds(16+44+9+GetDefaultMaxPropagationDelay().GetMicroSeconds ()*2));
3.57 +}
3.58 +
3.59 +void
3.60 +WifiMac::Configure80211b (void)
3.61 +{
3.62 + SetSifs(MicroSeconds(10));
3.63 + SetSlot(MicroSeconds(20));
3.64 + SetEifsNoDifs(MicroSeconds(10+304));
3.65 + SetPifs(MicroSeconds(10+20));
3.66 + SetCtsTimeout(MicroSeconds(10+304+20+GetDefaultMaxPropagationDelay().GetMicroSeconds ()*2));
3.67 + SetAckTimeout(MicroSeconds(10+304+20+GetDefaultMaxPropagationDelay().GetMicroSeconds ()*2));
3.68 +}
3.69 +
3.70 +void
3.71 +WifiMac::Configure80211_10Mhz (void)
3.72 +{
3.73 + SetSifs(MicroSeconds(32));
3.74 + SetSlot(MicroSeconds(13));
3.75 + SetEifsNoDifs(MicroSeconds(32+88));
3.76 + SetPifs(MicroSeconds(32+13));
3.77 + SetCtsTimeout(MicroSeconds(32+88+13+GetDefaultMaxPropagationDelay().GetMicroSeconds ()*2));
3.78 + SetAckTimeout(MicroSeconds(32+88+13+GetDefaultMaxPropagationDelay().GetMicroSeconds ()*2));
3.79 +}
3.80 +
3.81 +void
3.82 +WifiMac::Configure80211_5Mhz (void)
3.83 +{
3.84 + SetSifs(MicroSeconds(64));
3.85 + SetSlot(MicroSeconds(21));
3.86 + SetEifsNoDifs(MicroSeconds(64+176));
3.87 + SetPifs(MicroSeconds(64+21));
3.88 + SetCtsTimeout(MicroSeconds(64+176+21+GetDefaultMaxPropagationDelay().GetMicroSeconds ()*2));
3.89 + SetAckTimeout(MicroSeconds(64+176+21+GetDefaultMaxPropagationDelay().GetMicroSeconds ()*2));
3.90 +}
3.91 +
3.92 } // namespace ns3
4.1 --- a/src/devices/wifi/wifi-mac.h Mon Jul 13 09:57:32 2009 +0200
4.2 +++ b/src/devices/wifi/wifi-mac.h Mon Jul 13 14:30:12 2009 +0200
4.3 @@ -206,6 +206,10 @@
4.4 * purposes.
4.5 */
4.6 void NotifyRxDrop (Ptr<const Packet> packet);
4.7 + /**
4.8 + * \param standard the wifi standard to be configured
4.9 + */
4.10 + void SetStandard (enum WifiPhyStandard standard);
4.11
4.12 private:
4.13 static Time GetDefaultMaxPropagationDelay (void);
4.14 @@ -217,6 +221,12 @@
4.15
4.16 Time m_maxPropagationDelay;
4.17 uint32_t m_maxMsduSize;
4.18 + WifiPhyStandard m_standard;
4.19 +
4.20 + void Configure80211a (void);
4.21 + void Configure80211b (void);
4.22 + void Configure80211_10Mhz (void);
4.23 + void Configure80211_5Mhz ();
4.24
4.25 /**
4.26 * The trace source fired when packets come into the "top" of the device
5.1 --- a/src/devices/wifi/wifi-phy-standard.h Mon Jul 13 09:57:32 2009 +0200
5.2 +++ b/src/devices/wifi/wifi-phy-standard.h Mon Jul 13 14:30:12 2009 +0200
5.3 @@ -25,6 +25,8 @@
5.4 enum WifiPhyStandard {
5.5 WIFI_PHY_STANDARD_80211a,
5.6 WIFI_PHY_STANDARD_80211b,
5.7 + WIFI_PHY_STANDARD_80211_10Mhz,
5.8 + WIFI_PHY_STANDARD_80211_5Mhz,
5.9 WIFI_PHY_STANDARD_holland
5.10 };
5.11
6.1 --- a/src/devices/wifi/wifi-phy.cc Mon Jul 13 09:57:32 2009 +0200
6.2 +++ b/src/devices/wifi/wifi-phy.cc Mon Jul 13 14:30:12 2009 +0200
6.3 @@ -244,6 +244,150 @@
6.4 return mode;
6.5 }
6.6
6.7 +WifiMode
6.8 +WifiPhy::Get3mb10Mhz (void)
6.9 +{
6.10 + static WifiMode mode = WifiModeFactory::CreateBpsk ("wifi-3mbs-10Mhz",
6.11 + true,
6.12 + 10000000, 3000000, 6000000);
6.13 + return mode;
6.14 +}
6.15 +
6.16 +WifiMode
6.17 +WifiPhy::Get4_5mb10Mhz (void)
6.18 +{
6.19 + static WifiMode mode = WifiModeFactory::CreateBpsk ("wifi-4.5mbs-10Mhz",
6.20 + false,
6.21 + 10000000, 4500000, 6000000);
6.22 + return mode;
6.23 +}
6.24 +
6.25 +WifiMode
6.26 +WifiPhy::Get6mb10Mhz (void)
6.27 +{
6.28 + static WifiMode mode = WifiModeFactory::CreateBpsk ("wifi-6mbs-10Mhz",
6.29 + true,
6.30 + 10000000, 6000000, 12000000);
6.31 + return mode;
6.32 +}
6.33 +
6.34 +WifiMode
6.35 +WifiPhy::Get9mb10Mhz (void)
6.36 +{
6.37 + static WifiMode mode = WifiModeFactory::CreateBpsk ("wifi-9mbs-10Mhz",
6.38 + false,
6.39 + 10000000, 9000000, 12000000);
6.40 + return mode;
6.41 +}
6.42 +
6.43 +WifiMode
6.44 +WifiPhy::Get12mb10Mhz (void)
6.45 +{
6.46 + static WifiMode mode = WifiModeFactory::CreateBpsk ("wifi-12mbs-10Mhz",
6.47 + true,
6.48 + 10000000, 12000000, 24000000);
6.49 + return mode;
6.50 +}
6.51 +
6.52 +WifiMode
6.53 +WifiPhy::Get18mb10Mhz (void)
6.54 +{
6.55 + static WifiMode mode = WifiModeFactory::CreateBpsk ("wifi-18mbs-10Mhz",
6.56 + false,
6.57 + 10000000, 18000000, 24000000);
6.58 + return mode;
6.59 +}
6.60 +
6.61 +WifiMode
6.62 +WifiPhy::Get24mb10Mhz (void)
6.63 +{
6.64 + static WifiMode mode = WifiModeFactory::CreateBpsk ("wifi-24mbs-10Mhz",
6.65 + false,
6.66 + 10000000, 24000000, 36000000);
6.67 + return mode;
6.68 +}
6.69 +
6.70 +WifiMode
6.71 +WifiPhy::Get27mb10Mhz (void)
6.72 +{
6.73 + static WifiMode mode = WifiModeFactory::CreateBpsk ("wifi-27mbs-10Mhz",
6.74 + false,
6.75 + 10000000, 27000000, 36000000);
6.76 + return mode;
6.77 +}
6.78 +
6.79 +WifiMode
6.80 +WifiPhy::Get1_5mb5Mhz (void)
6.81 +{
6.82 + static WifiMode mode = WifiModeFactory::CreateBpsk ("wifi-1_5mbs-5Mhz",
6.83 + true,
6.84 + 5000000, 1500000, 3000000);
6.85 + return mode;
6.86 +}
6.87 +
6.88 +WifiMode
6.89 +WifiPhy::Get2_25mb5Mhz (void)
6.90 +{
6.91 + static WifiMode mode = WifiModeFactory::CreateBpsk ("wifi-2.25mbs-5Mhz",
6.92 + false,
6.93 + 5000000, 2250000, 3000000);
6.94 + return mode;
6.95 +}
6.96 +
6.97 +WifiMode
6.98 +WifiPhy::Get3mb5Mhz (void)
6.99 +{
6.100 + static WifiMode mode = WifiModeFactory::CreateBpsk ("wifi-3mbs-5Mhz",
6.101 + true,
6.102 + 5000000, 3000000, 6000000);
6.103 + return mode;
6.104 +}
6.105 +
6.106 +WifiMode
6.107 +WifiPhy::Get4_5mb5Mhz (void)
6.108 +{
6.109 + static WifiMode mode = WifiModeFactory::CreateBpsk ("wifi-4.5mbs-5Mhz",
6.110 + false,
6.111 + 5000000, 4500000, 6000000);
6.112 + return mode;
6.113 +}
6.114 +
6.115 +WifiMode
6.116 +WifiPhy::Get6mb5Mhz (void)
6.117 +{
6.118 + static WifiMode mode = WifiModeFactory::CreateBpsk ("wifi-6mbs-5Mhz",
6.119 + true,
6.120 + 5000000, 6000000, 12000000);
6.121 + return mode;
6.122 +}
6.123 +
6.124 +WifiMode
6.125 +WifiPhy::Get9mb5Mhz (void)
6.126 +{
6.127 + static WifiMode mode = WifiModeFactory::CreateBpsk ("wifi-9mbs-5Mhz",
6.128 + false,
6.129 + 10000000, 9000000, 12000000);
6.130 + return mode;
6.131 +}
6.132 +
6.133 +WifiMode
6.134 +WifiPhy::Get12mb5Mhz (void)
6.135 +{
6.136 + static WifiMode mode = WifiModeFactory::CreateBpsk ("wifi-12mbs-5Mhz",
6.137 + false,
6.138 + 10000000, 12000000, 18000000);
6.139 + return mode;
6.140 +}
6.141 +
6.142 +WifiMode
6.143 +WifiPhy::Get13_5mb5Mhz (void)
6.144 +{
6.145 + static WifiMode mode = WifiModeFactory::CreateBpsk ("wifi-13.5mbs-5Mhz",
6.146 + false,
6.147 + 10000000, 13500000, 18000000);
6.148 + return mode;
6.149 +}
6.150 +
6.151
6.152 } // namespace ns3
6.153
6.154 @@ -265,6 +409,22 @@
6.155 ns3::WifiPhy::Get2mbb ();
6.156 ns3::WifiPhy::Get5_5mbb ();
6.157 ns3::WifiPhy::Get11mbb ();
6.158 + ns3::WifiPhy::Get3mb10Mhz ();
6.159 + ns3::WifiPhy::Get4_5mb10Mhz ();
6.160 + ns3::WifiPhy::Get6mb10Mhz ();
6.161 + ns3::WifiPhy::Get9mb10Mhz ();
6.162 + ns3::WifiPhy::Get12mb10Mhz ();
6.163 + ns3::WifiPhy::Get18mb10Mhz ();
6.164 + ns3::WifiPhy::Get24mb10Mhz ();
6.165 + ns3::WifiPhy::Get27mb10Mhz ();
6.166 + ns3::WifiPhy::Get1_5mb5Mhz ();
6.167 + ns3::WifiPhy::Get2_25mb5Mhz ();
6.168 + ns3::WifiPhy::Get3mb5Mhz ();
6.169 + ns3::WifiPhy::Get4_5mb5Mhz ();
6.170 + ns3::WifiPhy::Get6mb5Mhz ();
6.171 + ns3::WifiPhy::Get9mb5Mhz ();
6.172 + ns3::WifiPhy::Get12mb5Mhz ();
6.173 + ns3::WifiPhy::Get13_5mb5Mhz ();
6.174 }
6.175 } g_constructor;
6.176 }
7.1 --- a/src/devices/wifi/wifi-phy.h Mon Jul 13 09:57:32 2009 +0200
7.2 +++ b/src/devices/wifi/wifi-phy.h Mon Jul 13 14:30:12 2009 +0200
7.3 @@ -256,6 +256,22 @@
7.4 static WifiMode Get2mbb (void);
7.5 static WifiMode Get5_5mbb (void);
7.6 static WifiMode Get11mbb (void);
7.7 + static WifiMode Get3mb10Mhz (void);
7.8 + static WifiMode Get4_5mb10Mhz (void);
7.9 + static WifiMode Get6mb10Mhz (void);
7.10 + static WifiMode Get9mb10Mhz (void);
7.11 + static WifiMode Get12mb10Mhz (void);
7.12 + static WifiMode Get18mb10Mhz (void);
7.13 + static WifiMode Get24mb10Mhz (void);
7.14 + static WifiMode Get27mb10Mhz (void);
7.15 + static WifiMode Get1_5mb5Mhz (void);
7.16 + static WifiMode Get2_25mb5Mhz (void);
7.17 + static WifiMode Get3mb5Mhz (void);
7.18 + static WifiMode Get4_5mb5Mhz (void);
7.19 + static WifiMode Get6mb5Mhz (void);
7.20 + static WifiMode Get9mb5Mhz (void);
7.21 + static WifiMode Get12mb5Mhz (void);
7.22 + static WifiMode Get13_5mb5Mhz (void);
7.23
7.24
7.25 /**
8.1 --- a/src/devices/wifi/yans-error-rate-model.cc Mon Jul 13 09:57:32 2009 +0200
8.2 +++ b/src/devices/wifi/yans-error-rate-model.cc Mon Jul 13 14:30:12 2009 +0200
8.3 @@ -176,7 +176,7 @@
8.4 double
8.5 YansErrorRateModel::GetChunkSuccessRate (WifiMode mode, double snr, uint32_t nbits) const
8.6 {
8.7 - if (mode == WifiPhy::Get6mba ())
8.8 + if (mode == WifiPhy::Get6mba () || mode == WifiPhy::Get3mb10Mhz () || mode == WifiPhy::Get1_5mb5Mhz ())
8.9 {
8.10 return GetFecBpskBer (snr,
8.11 nbits,
8.12 @@ -186,7 +186,7 @@
8.13 11 // adFree
8.14 );
8.15 }
8.16 - else if (mode == WifiPhy::Get9mba ())
8.17 + else if (mode == WifiPhy::Get9mba () || mode == WifiPhy::Get4_5mb10Mhz () || mode == WifiPhy::Get2_25mb5Mhz ())
8.18 {
8.19 return GetFecBpskBer (snr,
8.20 nbits,
8.21 @@ -196,7 +196,7 @@
8.22 8 // adFree
8.23 );
8.24 }
8.25 - else if (mode == WifiPhy::Get12mba ())
8.26 + else if (mode == WifiPhy::Get12mba () || mode == WifiPhy::Get6mb10Mhz () || mode == WifiPhy::Get3mb5Mhz ())
8.27 {
8.28 return GetFecQamBer (snr,
8.29 nbits,
8.30 @@ -208,7 +208,7 @@
8.31 0 // adFreePlusOne
8.32 );
8.33 }
8.34 - else if (mode == WifiPhy::Get18mba ())
8.35 + else if (mode == WifiPhy::Get18mba () || mode == WifiPhy::Get9mb10Mhz () || mode == WifiPhy::Get4_5mb5Mhz ())
8.36 {
8.37 return GetFecQamBer (snr,
8.38 nbits,
8.39 @@ -220,7 +220,7 @@
8.40 31 // adFreePlusOne
8.41 );
8.42 }
8.43 - else if (mode == WifiPhy::Get24mba ())
8.44 + else if (mode == WifiPhy::Get24mba () || mode == WifiPhy::Get12mb10Mhz () || mode == WifiPhy::Get6mb5Mhz ())
8.45 {
8.46 return GetFecQamBer (snr,
8.47 nbits,
8.48 @@ -232,7 +232,7 @@
8.49 0 // adFreePlusOne
8.50 );
8.51 }
8.52 - else if (mode == WifiPhy::Get36mba ())
8.53 + else if (mode == WifiPhy::Get36mba () || mode == WifiPhy::Get18mb10Mhz () || mode == WifiPhy::Get9mb5Mhz ())
8.54 {
8.55 return GetFecQamBer (snr,
8.56 nbits,
8.57 @@ -244,7 +244,7 @@
8.58 31 // adFreePlusOne
8.59 );
8.60 }
8.61 - else if (mode == WifiPhy::Get48mba ())
8.62 + else if (mode == WifiPhy::Get48mba () || mode == WifiPhy::Get24mb10Mhz () || mode == WifiPhy::Get12mb5Mhz ())
8.63 {
8.64 return GetFecQamBer (snr,
8.65 nbits,
8.66 @@ -256,7 +256,7 @@
8.67 16 // adFreePlusOne
8.68 );
8.69 }
8.70 - else if (mode == WifiPhy::Get54mba ())
8.71 + else if (mode == WifiPhy::Get54mba () || mode == WifiPhy::Get27mb10Mhz () || mode == WifiPhy::Get13_5mb5Mhz ())
8.72 {
8.73 return GetFecQamBer (snr,
8.74 nbits,
9.1 --- a/src/devices/wifi/yans-wifi-phy.cc Mon Jul 13 09:57:32 2009 +0200
9.2 +++ b/src/devices/wifi/yans-wifi-phy.cc Mon Jul 13 14:30:12 2009 +0200
9.3 @@ -111,6 +111,8 @@
9.4 MakeEnumAccessor (&YansWifiPhy::SetStandard),
9.5 MakeEnumChecker (WIFI_PHY_STANDARD_80211a, "802.11a",
9.6 WIFI_PHY_STANDARD_80211b, "802.11b",
9.7 + WIFI_PHY_STANDARD_80211_10Mhz,"802.11_10Mhz",
9.8 + WIFI_PHY_STANDARD_80211_5Mhz,"802-11_5Mhz",
9.9 WIFI_PHY_STANDARD_holland, "holland"))
9.10 .AddAttribute ("State", "The state of the PHY layer",
9.11 PointerValue (),
9.12 @@ -156,6 +158,12 @@
9.13 case WIFI_PHY_STANDARD_80211b:
9.14 Configure80211b ();
9.15 break;
9.16 + case WIFI_PHY_STANDARD_80211_10Mhz:
9.17 + Configure80211_10Mhz ();
9.18 + break;
9.19 + case WIFI_PHY_STANDARD_80211_5Mhz:
9.20 + Configure80211_5Mhz ();
9.21 + break;
9.22 case WIFI_PHY_STANDARD_holland:
9.23 ConfigureHolland ();
9.24 break;
9.25 @@ -461,6 +469,36 @@
9.26 }
9.27
9.28 void
9.29 +YansWifiPhy::Configure80211_10Mhz (void)
9.30 +{
9.31 + NS_LOG_FUNCTION (this);
9.32 + m_interference.Configure80211_10MhzParameters ();
9.33 + m_modes.push_back (WifiPhy::Get3mb10Mhz ());
9.34 + m_modes.push_back (WifiPhy::Get4_5mb10Mhz ());
9.35 + m_modes.push_back (WifiPhy::Get6mb10Mhz ());
9.36 + m_modes.push_back (WifiPhy::Get9mb10Mhz ());
9.37 + m_modes.push_back (WifiPhy::Get12mb10Mhz ());
9.38 + m_modes.push_back (WifiPhy::Get18mb10Mhz ());
9.39 + m_modes.push_back (WifiPhy::Get24mb10Mhz ());
9.40 + m_modes.push_back (WifiPhy::Get27mb10Mhz ());
9.41 +}
9.42 +
9.43 +void
9.44 +YansWifiPhy::Configure80211_5Mhz (void)
9.45 +{
9.46 + NS_LOG_FUNCTION (this);
9.47 + m_interference.Configure80211_5MhzParameters ();
9.48 + m_modes.push_back (WifiPhy::Get1_5mb5Mhz ());
9.49 + m_modes.push_back (WifiPhy::Get2_25mb5Mhz ());
9.50 + m_modes.push_back (WifiPhy::Get3mb5Mhz ());
9.51 + m_modes.push_back (WifiPhy::Get4_5mb5Mhz ());
9.52 + m_modes.push_back (WifiPhy::Get6mb5Mhz ());
9.53 + m_modes.push_back (WifiPhy::Get9mb5Mhz ());
9.54 + m_modes.push_back (WifiPhy::Get12mb5Mhz ());
9.55 + m_modes.push_back (WifiPhy::Get13_5mb5Mhz ());
9.56 +}
9.57 +
9.58 +void
9.59 YansWifiPhy::ConfigureHolland (void)
9.60 {
9.61 NS_LOG_FUNCTION (this);
10.1 --- a/src/devices/wifi/yans-wifi-phy.h Mon Jul 13 09:57:32 2009 +0200
10.2 +++ b/src/devices/wifi/yans-wifi-phy.h Mon Jul 13 14:30:12 2009 +0200
10.3 @@ -125,6 +125,8 @@
10.4 virtual void DoDispose (void);
10.5 void Configure80211a (void);
10.6 void Configure80211b (void);
10.7 + void Configure80211_10Mhz (void);
10.8 + void Configure80211_5Mhz ();
10.9 void ConfigureHolland (void);
10.10 double GetEdThresholdW (void) const;
10.11 double DbmToW (double dbm) const;