|
|
| 535 |
} |
535 |
} |
| 536 |
if (m_qosSupported) |
536 |
if (m_qosSupported) |
| 537 |
{ |
537 |
{ |
|
|
538 |
bool qosSupported = false; |
| 538 |
EdcaParameterSet edcaParameters = beacon.GetEdcaParameterSet (); |
539 |
EdcaParameterSet edcaParameters = beacon.GetEdcaParameterSet (); |
| 539 |
//The value of the TXOP Limit field is specified as an unsigned integer, with the least significant octet transmitted first, in units of 32 μs. |
540 |
if (edcaParameters.IsQosSupported ()) |
| 540 |
SetEdcaParameters (AC_BE, edcaParameters.GetBeCWmin(), edcaParameters.GetBeCWmax(), edcaParameters.GetBeAifsn(), 32 * MicroSeconds (edcaParameters.GetBeTXOPLimit())); |
541 |
{ |
| 541 |
SetEdcaParameters (AC_BK, edcaParameters.GetBkCWmin(), edcaParameters.GetBkCWmax(), edcaParameters.GetBkAifsn(), 32 * MicroSeconds (edcaParameters.GetBkTXOPLimit())); |
542 |
qosSupported = true; |
| 542 |
SetEdcaParameters (AC_VI, edcaParameters.GetViCWmin(), edcaParameters.GetViCWmax(), edcaParameters.GetViAifsn(), 32 * MicroSeconds (edcaParameters.GetViTXOPLimit())); |
543 |
//The value of the TXOP Limit field is specified as an unsigned integer, with the least significant octet transmitted first, in units of 32 μs. |
| 543 |
SetEdcaParameters (AC_VO, edcaParameters.GetVoCWmin(), edcaParameters.GetVoCWmax(), edcaParameters.GetVoAifsn(), 32 * MicroSeconds (edcaParameters.GetVoTXOPLimit())); |
544 |
SetEdcaParameters (AC_BE, edcaParameters.GetBeCWmin(), edcaParameters.GetBeCWmax(), edcaParameters.GetBeAifsn(), 32 * MicroSeconds (edcaParameters.GetBeTXOPLimit())); |
|
|
545 |
SetEdcaParameters (AC_BK, edcaParameters.GetBkCWmin(), edcaParameters.GetBkCWmax(), edcaParameters.GetBkAifsn(), 32 * MicroSeconds (edcaParameters.GetBkTXOPLimit())); |
| 546 |
SetEdcaParameters (AC_VI, edcaParameters.GetViCWmin(), edcaParameters.GetViCWmax(), edcaParameters.GetViAifsn(), 32 * MicroSeconds (edcaParameters.GetViTXOPLimit())); |
| 547 |
SetEdcaParameters (AC_VO, edcaParameters.GetVoCWmin(), edcaParameters.GetVoCWmax(), edcaParameters.GetVoAifsn(), 32 * MicroSeconds (edcaParameters.GetVoTXOPLimit())); |
| 548 |
} |
| 549 |
m_stationManager->SetQosSupport (hdr->GetAddr2 (), qosSupported); |
| 544 |
} |
550 |
} |
| 545 |
if (m_htSupported) |
551 |
if (m_htSupported) |
| 546 |
{ |
552 |
{ |
| 547 |
HtCapabilities htcapabilities = beacon.GetHtCapabilities (); |
553 |
HtCapabilities htcapabilities = beacon.GetHtCapabilities (); |
| 548 |
m_stationManager->AddStationHtCapabilities (hdr->GetAddr2 (), htcapabilities); |
554 |
if (!htcapabilities.IsSupportedMcs (0)) |
|
|
555 |
{ |
| 556 |
m_stationManager->RemoveAllSupportedMcs (hdr->GetAddr2 ()); |
| 557 |
} |
| 558 |
else |
| 559 |
{ |
| 560 |
m_stationManager->AddStationHtCapabilities (hdr->GetAddr2 (), htcapabilities); |
| 561 |
} |
| 549 |
} |
562 |
} |
| 550 |
if (m_vhtSupported) |
563 |
if (m_vhtSupported) |
| 551 |
{ |
564 |
{ |
|
|
| 702 |
m_stationManager->SetShortSlotTimeEnabled (capabilities.IsShortSlotTime ()); |
715 |
m_stationManager->SetShortSlotTimeEnabled (capabilities.IsShortSlotTime ()); |
| 703 |
if (m_qosSupported) |
716 |
if (m_qosSupported) |
| 704 |
{ |
717 |
{ |
|
|
718 |
bool qosSupported = false; |
| 705 |
EdcaParameterSet edcaParameters = assocResp.GetEdcaParameterSet (); |
719 |
EdcaParameterSet edcaParameters = assocResp.GetEdcaParameterSet (); |
| 706 |
//The value of the TXOP Limit field is specified as an unsigned integer, with the least significant octet transmitted first, in units of 32 μs. |
720 |
if (edcaParameters.IsQosSupported ()) |
| 707 |
SetEdcaParameters (AC_BE, edcaParameters.GetBeCWmin(), edcaParameters.GetBeCWmax(), edcaParameters.GetBeAifsn(), 32 * MicroSeconds (edcaParameters.GetBeTXOPLimit())); |
721 |
{ |
| 708 |
SetEdcaParameters (AC_BK, edcaParameters.GetBkCWmin(), edcaParameters.GetBkCWmax(), edcaParameters.GetBkAifsn(), 32 * MicroSeconds (edcaParameters.GetBkTXOPLimit())); |
722 |
qosSupported = true; |
| 709 |
SetEdcaParameters (AC_VI, edcaParameters.GetViCWmin(), edcaParameters.GetViCWmax(), edcaParameters.GetViAifsn(), 32 * MicroSeconds (edcaParameters.GetViTXOPLimit())); |
723 |
//The value of the TXOP Limit field is specified as an unsigned integer, with the least significant octet transmitted first, in units of 32 μs. |
| 710 |
SetEdcaParameters (AC_VO, edcaParameters.GetVoCWmin(), edcaParameters.GetVoCWmax(), edcaParameters.GetVoAifsn(), 32 * MicroSeconds (edcaParameters.GetVoTXOPLimit())); |
724 |
SetEdcaParameters (AC_BE, edcaParameters.GetBeCWmin(), edcaParameters.GetBeCWmax(), edcaParameters.GetBeAifsn(), 32 * MicroSeconds (edcaParameters.GetBeTXOPLimit())); |
|
|
725 |
SetEdcaParameters (AC_BK, edcaParameters.GetBkCWmin(), edcaParameters.GetBkCWmax(), edcaParameters.GetBkAifsn(), 32 * MicroSeconds (edcaParameters.GetBkTXOPLimit())); |
| 726 |
SetEdcaParameters (AC_VI, edcaParameters.GetViCWmin(), edcaParameters.GetViCWmax(), edcaParameters.GetViAifsn(), 32 * MicroSeconds (edcaParameters.GetViTXOPLimit())); |
| 727 |
SetEdcaParameters (AC_VO, edcaParameters.GetVoCWmin(), edcaParameters.GetVoCWmax(), edcaParameters.GetVoAifsn(), 32 * MicroSeconds (edcaParameters.GetVoTXOPLimit())); |
| 728 |
} |
| 729 |
m_stationManager->SetQosSupport (hdr->GetAddr2 (), qosSupported); |
| 711 |
} |
730 |
} |
| 712 |
if (m_htSupported) |
731 |
if (m_htSupported) |
| 713 |
{ |
732 |
{ |
| 714 |
HtCapabilities htcapabilities = assocResp.GetHtCapabilities (); |
733 |
HtCapabilities htcapabilities = assocResp.GetHtCapabilities (); |
| 715 |
HtOperation htOperation = assocResp.GetHtOperation (); |
734 |
if (!htcapabilities.IsSupportedMcs (0)) |
| 716 |
m_stationManager->AddStationHtCapabilities (hdr->GetAddr2 (), htcapabilities); |
735 |
{ |
|
|
736 |
m_stationManager->RemoveAllSupportedMcs (hdr->GetAddr2 ()); |
| 737 |
} |
| 738 |
else |
| 739 |
{ |
| 740 |
HtOperation htOperation = assocResp.GetHtOperation (); |
| 741 |
m_stationManager->AddStationHtCapabilities (hdr->GetAddr2 (), htcapabilities); |
| 742 |
} |
| 717 |
} |
743 |
} |
| 718 |
if (m_vhtSupported) |
744 |
if (m_vhtSupported) |
| 719 |
{ |
745 |
{ |