|
Lines 55-60
RegularWifiMac::RegularWifiMac ()
|
Link Here
|
|---|
|
| 55 |
|
55 |
|
| 56 |
m_low = CreateObject<MacLow> (); |
56 |
m_low = CreateObject<MacLow> (); |
| 57 |
m_low->SetRxCallback (MakeCallback (&MacRxMiddle::Receive, m_rxMiddle)); |
57 |
m_low->SetRxCallback (MakeCallback (&MacRxMiddle::Receive, m_rxMiddle)); |
|
|
58 |
m_low->SetMac (this); |
| 58 |
|
59 |
|
| 59 |
m_channelAccessManager = CreateObject<ChannelAccessManager> (); |
60 |
m_channelAccessManager = CreateObject<ChannelAccessManager> (); |
| 60 |
m_channelAccessManager->SetupLow (m_low); |
61 |
m_channelAccessManager->SetupLow (m_low); |
|
Lines 159-166
RegularWifiMac::GetHtCapabilities (void) const
|
Link Here
|
|---|
|
| 159 |
HtCapabilities capabilities; |
160 |
HtCapabilities capabilities; |
| 160 |
if (GetHtSupported ()) |
161 |
if (GetHtSupported ()) |
| 161 |
{ |
162 |
{ |
| 162 |
Ptr<WifiNetDevice> device = DynamicCast<WifiNetDevice> (GetDevice ()); |
163 |
Ptr<HtConfiguration> htConfiguration = GetHtConfiguration (); |
| 163 |
Ptr<HtConfiguration> htConfiguration = device->GetHtConfiguration (); |
|
|
| 164 |
bool greenfieldSupported = htConfiguration->GetGreenfieldSupported (); |
164 |
bool greenfieldSupported = htConfiguration->GetGreenfieldSupported (); |
| 165 |
bool sgiSupported = htConfiguration->GetShortGuardIntervalSupported (); |
165 |
bool sgiSupported = htConfiguration->GetShortGuardIntervalSupported (); |
| 166 |
capabilities.SetHtSupported (1); |
166 |
capabilities.SetHtSupported (1); |
|
Lines 172-178
RegularWifiMac::GetHtCapabilities (void) const
|
Link Here
|
|---|
|
| 172 |
uint32_t maxAmsduLength = std::max (std::max (m_beMaxAmsduSize, m_bkMaxAmsduSize), std::max (m_voMaxAmsduSize, m_viMaxAmsduSize)); |
172 |
uint32_t maxAmsduLength = std::max (std::max (m_beMaxAmsduSize, m_bkMaxAmsduSize), std::max (m_voMaxAmsduSize, m_viMaxAmsduSize)); |
| 173 |
capabilities.SetMaxAmsduLength (maxAmsduLength > 3839); //0 if 3839 and 1 if 7935 |
173 |
capabilities.SetMaxAmsduLength (maxAmsduLength > 3839); //0 if 3839 and 1 if 7935 |
| 174 |
capabilities.SetLSigProtectionSupport (!greenfieldSupported); |
174 |
capabilities.SetLSigProtectionSupport (!greenfieldSupported); |
| 175 |
double maxAmpduLengthExponent = std::max (std::ceil ((std::log (std::max (std::max (m_beMaxAmpduSize, m_bkMaxAmpduSize), std::max (m_voMaxAmpduSize, m_viMaxAmpduSize)) |
175 |
double maxAmpduLengthExponent = std::max (std::ceil ((std::log (std::max (std::max (htConfiguration->GetBeMaxAmpduSize (), htConfiguration->GetBkMaxAmpduSize ()), std::max (htConfiguration->GetVoMaxAmpduSize (), htConfiguration->GetViMaxAmpduSize ())) |
| 176 |
+ 1.0) |
176 |
+ 1.0) |
| 177 |
/ std::log (2.0)) |
177 |
/ std::log (2.0)) |
| 178 |
- 13.0), |
178 |
- 13.0), |
|
Lines 214-221
RegularWifiMac::GetVhtCapabilities (void) const
|
Link Here
|
|---|
|
| 214 |
VhtCapabilities capabilities; |
214 |
VhtCapabilities capabilities; |
| 215 |
if (GetVhtSupported ()) |
215 |
if (GetVhtSupported ()) |
| 216 |
{ |
216 |
{ |
| 217 |
Ptr<WifiNetDevice> device = DynamicCast<WifiNetDevice> (GetDevice ()); |
217 |
Ptr<HtConfiguration> htConfiguration = GetHtConfiguration (); |
| 218 |
Ptr<HtConfiguration> htConfiguration = device->GetHtConfiguration (); |
218 |
Ptr<VhtConfiguration> vhtConfiguration = GetVhtConfiguration (); |
| 219 |
bool sgiSupported = htConfiguration->GetShortGuardIntervalSupported (); |
219 |
bool sgiSupported = htConfiguration->GetShortGuardIntervalSupported (); |
| 220 |
capabilities.SetVhtSupported (1); |
220 |
capabilities.SetVhtSupported (1); |
| 221 |
if (m_phy->GetChannelWidth () == 160) |
221 |
if (m_phy->GetChannelWidth () == 160) |
|
Lines 231-237
RegularWifiMac::GetVhtCapabilities (void) const
|
Link Here
|
|---|
|
| 231 |
capabilities.SetRxLdpc (0); |
231 |
capabilities.SetRxLdpc (0); |
| 232 |
capabilities.SetShortGuardIntervalFor80Mhz ((m_phy->GetChannelWidth () == 80) && sgiSupported); |
232 |
capabilities.SetShortGuardIntervalFor80Mhz ((m_phy->GetChannelWidth () == 80) && sgiSupported); |
| 233 |
capabilities.SetShortGuardIntervalFor160Mhz ((m_phy->GetChannelWidth () == 160) && sgiSupported); |
233 |
capabilities.SetShortGuardIntervalFor160Mhz ((m_phy->GetChannelWidth () == 160) && sgiSupported); |
| 234 |
double maxAmpduLengthExponent = std::max (std::ceil ((std::log (std::max (std::max (m_beMaxAmpduSize, m_bkMaxAmpduSize), std::max (m_voMaxAmpduSize, m_viMaxAmpduSize)) + 1.0) / std::log (2.0)) - 13.0), 0.0); |
234 |
double maxAmpduLengthExponent = std::max (std::ceil ((std::log (std::max (std::max (vhtConfiguration->GetBeMaxAmpduSize (), vhtConfiguration->GetBkMaxAmpduSize ()), std::max (vhtConfiguration->GetVoMaxAmpduSize (), vhtConfiguration->GetViMaxAmpduSize ())) + 1.0) / std::log (2.0)) - 13.0), 0.0); |
| 235 |
NS_ASSERT (maxAmpduLengthExponent >= 0 && maxAmpduLengthExponent <= 255); |
235 |
NS_ASSERT (maxAmpduLengthExponent >= 0 && maxAmpduLengthExponent <= 255); |
| 236 |
capabilities.SetMaxAmpduLengthExponent (std::max<uint8_t> (7, static_cast<uint8_t> (maxAmpduLengthExponent))); //0 to 7 for VHT |
236 |
capabilities.SetMaxAmpduLengthExponent (std::max<uint8_t> (7, static_cast<uint8_t> (maxAmpduLengthExponent))); //0 to 7 for VHT |
| 237 |
uint8_t maxMcs = 0; |
237 |
uint8_t maxMcs = 0; |
|
Lines 283-290
RegularWifiMac::GetHeCapabilities (void) const
|
Link Here
|
|---|
|
| 283 |
HeCapabilities capabilities; |
283 |
HeCapabilities capabilities; |
| 284 |
if (GetHeSupported ()) |
284 |
if (GetHeSupported ()) |
| 285 |
{ |
285 |
{ |
| 286 |
Ptr<WifiNetDevice> device = DynamicCast<WifiNetDevice> (GetDevice ()); |
286 |
Ptr<HeConfiguration> heConfiguration = GetHeConfiguration (); |
| 287 |
Ptr<HeConfiguration> heConfiguration = device->GetHeConfiguration (); |
|
|
| 288 |
capabilities.SetHeSupported (1); |
287 |
capabilities.SetHeSupported (1); |
| 289 |
uint8_t channelWidthSet = 0; |
288 |
uint8_t channelWidthSet = 0; |
| 290 |
if (m_phy->GetChannelWidth () >= 40 && Is2_4Ghz (m_phy->GetFrequency ())) |
289 |
if (m_phy->GetChannelWidth () >= 40 && Is2_4Ghz (m_phy->GetFrequency ())) |
|
Lines 311-320
RegularWifiMac::GetHeCapabilities (void) const
|
Link Here
|
|---|
|
| 311 |
gi |= 0x02; |
310 |
gi |= 0x02; |
| 312 |
} |
311 |
} |
| 313 |
capabilities.SetHeLtfAndGiForHePpdus (gi); |
312 |
capabilities.SetHeLtfAndGiForHePpdus (gi); |
| 314 |
double maxAmpduLengthExponent = std::max (std::ceil ((std::log (std::max (std::max (m_beMaxAmpduSize, m_bkMaxAmpduSize), std::max (m_voMaxAmpduSize, m_viMaxAmpduSize)) |
313 |
double maxAmpduLengthExponent = std::max (std::ceil ((std::log (std::max (std::max (heConfiguration->GetBeMaxAmpduSize (), heConfiguration->GetBkMaxAmpduSize ()), std::max (heConfiguration->GetVoMaxAmpduSize (), heConfiguration->GetViMaxAmpduSize ())) |
| 315 |
+ 1.0) |
314 |
+ 1.0) |
| 316 |
/ std::log (2.0)) |
315 |
/ std::log (2.0)) |
| 317 |
- 13.0), |
316 |
- 20.0), |
| 318 |
0.0); |
317 |
0.0); |
| 319 |
NS_ASSERT (maxAmpduLengthExponent >= 0 && maxAmpduLengthExponent <= 255); |
318 |
NS_ASSERT (maxAmpduLengthExponent >= 0 && maxAmpduLengthExponent <= 255); |
| 320 |
capabilities.SetMaxAmpduLengthExponent (std::max<uint8_t> (7, static_cast<uint8_t> (maxAmpduLengthExponent))); //assume 0 to 7 for HE |
319 |
capabilities.SetMaxAmpduLengthExponent (std::max<uint8_t> (7, static_cast<uint8_t> (maxAmpduLengthExponent))); //assume 0 to 7 for HE |
|
|
| 338 |
RegularWifiMac::SetVoMaxAmsduSize (uint16_t size) |
337 |
RegularWifiMac::SetVoMaxAmsduSize (uint16_t size) |
| 339 |
{ |
338 |
{ |
| 340 |
NS_LOG_FUNCTION (this << size); |
339 |
NS_LOG_FUNCTION (this << size); |
|
|
340 |
Ptr<WifiNetDevice> device = DynamicCast<WifiNetDevice> (GetDevice ()); |
| 341 |
if (device) |
| 342 |
{ |
| 343 |
Ptr<HtConfiguration> htConfiguration = device->GetHtConfiguration (); |
| 344 |
if (htConfiguration) |
| 345 |
{ |
| 346 |
htConfiguration->SetVoMaxAmsduSize (size); |
| 347 |
} |
| 348 |
} |
| 341 |
m_voMaxAmsduSize = size; |
349 |
m_voMaxAmsduSize = size; |
| 342 |
ConfigureAggregation (); |
|
|
| 343 |
} |
350 |
} |
| 344 |
|
351 |
|
| 345 |
void |
352 |
void |
| 346 |
RegularWifiMac::SetViMaxAmsduSize (uint16_t size) |
353 |
RegularWifiMac::SetViMaxAmsduSize (uint16_t size) |
| 347 |
{ |
354 |
{ |
| 348 |
NS_LOG_FUNCTION (this << size); |
355 |
NS_LOG_FUNCTION (this << size); |
|
|
356 |
Ptr<WifiNetDevice> device = DynamicCast<WifiNetDevice> (GetDevice ()); |
| 357 |
if (device) |
| 358 |
{ |
| 359 |
Ptr<HtConfiguration> htConfiguration = device->GetHtConfiguration (); |
| 360 |
if (htConfiguration) |
| 361 |
{ |
| 362 |
htConfiguration->SetViMaxAmsduSize (size); |
| 363 |
} |
| 364 |
} |
| 349 |
m_viMaxAmsduSize = size; |
365 |
m_viMaxAmsduSize = size; |
| 350 |
ConfigureAggregation (); |
|
|
| 351 |
} |
366 |
} |
| 352 |
|
367 |
|
| 353 |
void |
368 |
void |
| 354 |
RegularWifiMac::SetBeMaxAmsduSize (uint16_t size) |
369 |
RegularWifiMac::SetBeMaxAmsduSize (uint16_t size) |
| 355 |
{ |
370 |
{ |
| 356 |
NS_LOG_FUNCTION (this << size); |
371 |
NS_LOG_FUNCTION (this << size); |
|
|
372 |
Ptr<WifiNetDevice> device = DynamicCast<WifiNetDevice> (GetDevice ()); |
| 373 |
if (device) |
| 374 |
{ |
| 375 |
Ptr<HtConfiguration> htConfiguration = device->GetHtConfiguration (); |
| 376 |
if (htConfiguration) |
| 377 |
{ |
| 378 |
htConfiguration->SetBeMaxAmsduSize (size); |
| 379 |
} |
| 380 |
} |
| 357 |
m_beMaxAmsduSize = size; |
381 |
m_beMaxAmsduSize = size; |
| 358 |
ConfigureAggregation (); |
|
|
| 359 |
} |
382 |
} |
| 360 |
|
383 |
|
| 361 |
void |
384 |
void |
| 362 |
RegularWifiMac::SetBkMaxAmsduSize (uint16_t size) |
385 |
RegularWifiMac::SetBkMaxAmsduSize (uint16_t size) |
| 363 |
{ |
386 |
{ |
| 364 |
NS_LOG_FUNCTION (this << size); |
387 |
NS_LOG_FUNCTION (this << size); |
|
|
388 |
Ptr<WifiNetDevice> device = DynamicCast<WifiNetDevice> (GetDevice ()); |
| 389 |
if (device) |
| 390 |
{ |
| 391 |
Ptr<HtConfiguration> htConfiguration = device->GetHtConfiguration (); |
| 392 |
if (htConfiguration) |
| 393 |
{ |
| 394 |
htConfiguration->SetBkMaxAmsduSize (size); |
| 395 |
} |
| 396 |
} |
| 365 |
m_bkMaxAmsduSize = size; |
397 |
m_bkMaxAmsduSize = size; |
| 366 |
ConfigureAggregation (); |
|
|
| 367 |
} |
398 |
} |
| 368 |
|
399 |
|
| 369 |
void |
400 |
void |
| 370 |
RegularWifiMac::SetVoMaxAmpduSize (uint32_t size) |
401 |
RegularWifiMac::SetVoMaxAmpduSize (uint32_t size) |
| 371 |
{ |
402 |
{ |
| 372 |
NS_LOG_FUNCTION (this << size); |
403 |
NS_LOG_FUNCTION (this << size); |
|
|
404 |
Ptr<WifiNetDevice> device = DynamicCast<WifiNetDevice> (GetDevice ()); |
| 405 |
if (device) |
| 406 |
{ |
| 407 |
Ptr<HtConfiguration> htConfiguration = device->GetHtConfiguration (); |
| 408 |
if (htConfiguration) |
| 409 |
{ |
| 410 |
htConfiguration->SetVoMaxAmpduSize (size); |
| 411 |
} |
| 412 |
} |
| 373 |
m_voMaxAmpduSize = size; |
413 |
m_voMaxAmpduSize = size; |
| 374 |
ConfigureAggregation (); |
|
|
| 375 |
} |
414 |
} |
| 376 |
|
415 |
|
| 377 |
void |
416 |
void |
| 378 |
RegularWifiMac::SetViMaxAmpduSize (uint32_t size) |
417 |
RegularWifiMac::SetViMaxAmpduSize (uint32_t size) |
| 379 |
{ |
418 |
{ |
| 380 |
NS_LOG_FUNCTION (this << size); |
419 |
NS_LOG_FUNCTION (this << size); |
|
|
420 |
Ptr<WifiNetDevice> device = DynamicCast<WifiNetDevice> (GetDevice ()); |
| 421 |
if (device) |
| 422 |
{ |
| 423 |
Ptr<HtConfiguration> htConfiguration = device->GetHtConfiguration (); |
| 424 |
if (htConfiguration) |
| 425 |
{ |
| 426 |
htConfiguration->SetViMaxAmpduSize (size); |
| 427 |
} |
| 428 |
} |
| 381 |
m_viMaxAmpduSize = size; |
429 |
m_viMaxAmpduSize = size; |
| 382 |
ConfigureAggregation (); |
|
|
| 383 |
} |
430 |
} |
| 384 |
|
431 |
|
| 385 |
void |
432 |
void |
| 386 |
RegularWifiMac::SetBeMaxAmpduSize (uint32_t size) |
433 |
RegularWifiMac::SetBeMaxAmpduSize (uint32_t size) |
| 387 |
{ |
434 |
{ |
| 388 |
NS_LOG_FUNCTION (this << size); |
435 |
NS_LOG_FUNCTION (this << size); |
|
|
436 |
Ptr<WifiNetDevice> device = DynamicCast<WifiNetDevice> (GetDevice ()); |
| 437 |
if (device) |
| 438 |
{ |
| 439 |
Ptr<HtConfiguration> htConfiguration = device->GetHtConfiguration (); |
| 440 |
if (htConfiguration) |
| 441 |
{ |
| 442 |
htConfiguration->SetBeMaxAmpduSize (size); |
| 443 |
} |
| 444 |
} |
| 389 |
m_beMaxAmpduSize = size; |
445 |
m_beMaxAmpduSize = size; |
| 390 |
ConfigureAggregation (); |
|
|
| 391 |
} |
446 |
} |
| 392 |
|
447 |
|
| 393 |
void |
448 |
void |
| 394 |
RegularWifiMac::SetBkMaxAmpduSize (uint32_t size) |
449 |
RegularWifiMac::SetBkMaxAmpduSize (uint32_t size) |
| 395 |
{ |
450 |
{ |
| 396 |
NS_LOG_FUNCTION (this << size); |
451 |
NS_LOG_FUNCTION (this << size); |
|
|
452 |
Ptr<WifiNetDevice> device = DynamicCast<WifiNetDevice> (GetDevice ()); |
| 453 |
if (device) |
| 454 |
{ |
| 455 |
Ptr<HtConfiguration> htConfiguration = device->GetHtConfiguration (); |
| 456 |
if (htConfiguration) |
| 457 |
{ |
| 458 |
htConfiguration->SetBkMaxAmpduSize (size); |
| 459 |
} |
| 460 |
} |
| 397 |
m_bkMaxAmpduSize = size; |
461 |
m_bkMaxAmpduSize = size; |
| 398 |
ConfigureAggregation (); |
|
|
| 399 |
} |
462 |
} |
| 400 |
|
463 |
|
| 401 |
void |
464 |
void |
|
Lines 596-603
RegularWifiMac::SetHeSupported (bool enable)
|
Link Here
|
|---|
|
| 596 |
bool |
659 |
bool |
| 597 |
RegularWifiMac::GetHtSupported () const |
660 |
RegularWifiMac::GetHtSupported () const |
| 598 |
{ |
661 |
{ |
| 599 |
Ptr<WifiNetDevice> device = DynamicCast<WifiNetDevice> (GetDevice ()); |
662 |
if (GetHtConfiguration ()) |
| 600 |
if (device->GetHtConfiguration ()) |
|
|
| 601 |
{ |
663 |
{ |
| 602 |
return true; |
664 |
return true; |
| 603 |
} |
665 |
} |
|
Lines 607-614
RegularWifiMac::GetHtSupported () const
|
Link Here
|
|---|
|
| 607 |
bool |
669 |
bool |
| 608 |
RegularWifiMac::GetVhtSupported () const |
670 |
RegularWifiMac::GetVhtSupported () const |
| 609 |
{ |
671 |
{ |
| 610 |
Ptr<WifiNetDevice> device = DynamicCast<WifiNetDevice> (GetDevice ()); |
672 |
if (GetVhtConfiguration ()) |
| 611 |
if (device->GetVhtConfiguration ()) |
|
|
| 612 |
{ |
673 |
{ |
| 613 |
return true; |
674 |
return true; |
| 614 |
} |
675 |
} |
|
Lines 618-625
RegularWifiMac::GetVhtSupported () const
|
Link Here
|
|---|
|
| 618 |
bool |
679 |
bool |
| 619 |
RegularWifiMac::GetHeSupported () const |
680 |
RegularWifiMac::GetHeSupported () const |
| 620 |
{ |
681 |
{ |
| 621 |
Ptr<WifiNetDevice> device = DynamicCast<WifiNetDevice> (GetDevice ()); |
682 |
if (GetHeConfiguration ()) |
| 622 |
if (device->GetHeConfiguration ()) |
|
|
| 623 |
{ |
683 |
{ |
| 624 |
return true; |
684 |
return true; |
| 625 |
} |
685 |
} |
|
Lines 1037-1044
RegularWifiMac::SendAddBaResponse (const MgtAddBaRequestHeader *reqHdr,
|
Link Here
|
|---|
|
| 1037 |
} |
1097 |
} |
| 1038 |
respHdr.SetTid (reqHdr->GetTid ()); |
1098 |
respHdr.SetTid (reqHdr->GetTid ()); |
| 1039 |
|
1099 |
|
| 1040 |
Ptr<WifiNetDevice> device = DynamicCast<WifiNetDevice> (GetDevice ()); |
1100 |
Ptr<HeConfiguration> heConfiguration = GetHeConfiguration (); |
| 1041 |
Ptr<HeConfiguration> heConfiguration = device->GetHeConfiguration (); |
|
|
| 1042 |
if (heConfiguration && heConfiguration->GetMpduBufferSize () > 64) |
1101 |
if (heConfiguration && heConfiguration->GetMpduBufferSize () > 64) |
| 1043 |
{ |
1102 |
{ |
| 1044 |
respHdr.SetBufferSize (255); |
1103 |
respHdr.SetBufferSize (255); |
|
Lines 1278-1288
RegularWifiMac::FinishConfigureStandard (WifiPhyStandard standard)
|
Link Here
|
|---|
|
| 1278 |
case WIFI_PHY_STANDARD_80211n_5GHZ: |
1337 |
case WIFI_PHY_STANDARD_80211n_5GHZ: |
| 1279 |
{ |
1338 |
{ |
| 1280 |
EnableAggregation (); |
1339 |
EnableAggregation (); |
| 1281 |
//To be removed once deprecated RifsSupported attribute is removed |
1340 |
//To be removed once deprecated attributes are removed |
| 1282 |
Ptr<WifiNetDevice> device = DynamicCast<WifiNetDevice> (GetDevice ()); |
1341 |
Ptr<HtConfiguration> htConfiguration = GetHtConfiguration (); |
| 1283 |
Ptr<HtConfiguration> htConfiguration = device->GetHtConfiguration (); |
|
|
| 1284 |
NS_ASSERT (htConfiguration); |
1342 |
NS_ASSERT (htConfiguration); |
| 1285 |
htConfiguration->SetRifsSupported (m_rifsSupported); |
1343 |
htConfiguration->SetRifsSupported (m_rifsSupported); |
|
|
1344 |
htConfiguration->SetBeMaxAmpduSize (m_beMaxAmpduSize); |
| 1345 |
htConfiguration->SetBkMaxAmpduSize (m_bkMaxAmpduSize); |
| 1346 |
htConfiguration->SetViMaxAmpduSize (m_viMaxAmpduSize); |
| 1347 |
htConfiguration->SetVoMaxAmpduSize (m_voMaxAmpduSize); |
| 1348 |
htConfiguration->SetBeMaxAmsduSize (m_beMaxAmsduSize); |
| 1349 |
htConfiguration->SetBkMaxAmsduSize (m_bkMaxAmsduSize); |
| 1350 |
htConfiguration->SetViMaxAmsduSize (m_viMaxAmsduSize); |
| 1351 |
htConfiguration->SetVoMaxAmsduSize (m_voMaxAmsduSize); |
| 1286 |
SetQosSupported (true); |
1352 |
SetQosSupported (true); |
| 1287 |
cwmin = 15; |
1353 |
cwmin = 15; |
| 1288 |
cwmax = 1023; |
1354 |
cwmax = 1023; |
|
Lines 1293-1302
RegularWifiMac::FinishConfigureStandard (WifiPhyStandard standard)
|
Link Here
|
|---|
|
| 1293 |
{ |
1359 |
{ |
| 1294 |
EnableAggregation (); |
1360 |
EnableAggregation (); |
| 1295 |
//To be removed once deprecated RifsSupported attribute is removed |
1361 |
//To be removed once deprecated RifsSupported attribute is removed |
| 1296 |
Ptr<WifiNetDevice> device = DynamicCast<WifiNetDevice> (GetDevice ()); |
1362 |
Ptr<HtConfiguration> htConfiguration = GetHtConfiguration (); |
| 1297 |
Ptr<HtConfiguration> htConfiguration = device->GetHtConfiguration (); |
|
|
| 1298 |
NS_ASSERT (htConfiguration); |
1363 |
NS_ASSERT (htConfiguration); |
| 1299 |
htConfiguration->SetRifsSupported (m_rifsSupported); |
1364 |
htConfiguration->SetRifsSupported (m_rifsSupported); |
|
|
1365 |
htConfiguration->SetBeMaxAmpduSize (m_beMaxAmpduSize); |
| 1366 |
htConfiguration->SetViMaxAmpduSize (m_viMaxAmpduSize); |
| 1367 |
htConfiguration->SetVoMaxAmpduSize (m_voMaxAmpduSize); |
| 1368 |
htConfiguration->SetBeMaxAmsduSize (m_beMaxAmsduSize); |
| 1369 |
htConfiguration->SetBkMaxAmsduSize (m_bkMaxAmsduSize); |
| 1370 |
htConfiguration->SetViMaxAmsduSize (m_viMaxAmsduSize); |
| 1371 |
htConfiguration->SetVoMaxAmsduSize (m_voMaxAmsduSize); |
| 1300 |
SetQosSupported (true); |
1372 |
SetQosSupported (true); |
| 1301 |
} |
1373 |
} |
| 1302 |
case WIFI_PHY_STANDARD_80211g: |
1374 |
case WIFI_PHY_STANDARD_80211g: |
|
Lines 1350-1393
RegularWifiMac::TxFailed (const WifiMacHeader &hdr)
|
Link Here
|
|---|
|
| 1350 |
} |
1422 |
} |
| 1351 |
|
1423 |
|
| 1352 |
void |
1424 |
void |
| 1353 |
RegularWifiMac::ConfigureAggregation (void) |
|
|
| 1354 |
{ |
| 1355 |
NS_LOG_FUNCTION (this); |
| 1356 |
if (GetVOQueue ()->GetMsduAggregator () != 0) |
| 1357 |
{ |
| 1358 |
GetVOQueue ()->GetMsduAggregator ()->SetMaxAmsduSize (m_voMaxAmsduSize); |
| 1359 |
} |
| 1360 |
if (GetVIQueue ()->GetMsduAggregator () != 0) |
| 1361 |
{ |
| 1362 |
GetVIQueue ()->GetMsduAggregator ()->SetMaxAmsduSize (m_viMaxAmsduSize); |
| 1363 |
} |
| 1364 |
if (GetBEQueue ()->GetMsduAggregator () != 0) |
| 1365 |
{ |
| 1366 |
GetBEQueue ()->GetMsduAggregator ()->SetMaxAmsduSize (m_beMaxAmsduSize); |
| 1367 |
} |
| 1368 |
if (GetBKQueue ()->GetMsduAggregator () != 0) |
| 1369 |
{ |
| 1370 |
GetBKQueue ()->GetMsduAggregator ()->SetMaxAmsduSize (m_bkMaxAmsduSize); |
| 1371 |
} |
| 1372 |
if (GetVOQueue ()->GetMpduAggregator () != 0) |
| 1373 |
{ |
| 1374 |
GetVOQueue ()->GetMpduAggregator ()->SetMaxAmpduSize (m_voMaxAmpduSize); |
| 1375 |
} |
| 1376 |
if (GetVIQueue ()->GetMpduAggregator () != 0) |
| 1377 |
{ |
| 1378 |
GetVIQueue ()->GetMpduAggregator ()->SetMaxAmpduSize (m_viMaxAmpduSize); |
| 1379 |
} |
| 1380 |
if (GetBEQueue ()->GetMpduAggregator () != 0) |
| 1381 |
{ |
| 1382 |
GetBEQueue ()->GetMpduAggregator ()->SetMaxAmpduSize (m_beMaxAmpduSize); |
| 1383 |
} |
| 1384 |
if (GetBKQueue ()->GetMpduAggregator () != 0) |
| 1385 |
{ |
| 1386 |
GetBKQueue ()->GetMpduAggregator ()->SetMaxAmpduSize (m_bkMaxAmpduSize); |
| 1387 |
} |
| 1388 |
} |
| 1389 |
|
| 1390 |
void |
| 1391 |
RegularWifiMac::EnableAggregation (void) |
1425 |
RegularWifiMac::EnableAggregation (void) |
| 1392 |
{ |
1426 |
{ |
| 1393 |
NS_LOG_FUNCTION (this); |
1427 |
NS_LOG_FUNCTION (this); |
|
Lines 1404-1410
RegularWifiMac::EnableAggregation (void)
|
Link Here
|
|---|
|
| 1404 |
i->second->SetMpduAggregator (mpduAggregator); |
1438 |
i->second->SetMpduAggregator (mpduAggregator); |
| 1405 |
} |
1439 |
} |
| 1406 |
} |
1440 |
} |
| 1407 |
ConfigureAggregation (); |
|
|
| 1408 |
} |
1441 |
} |
| 1409 |
|
1442 |
|
| 1410 |
void |
1443 |
void |