|
|
| 533 |
MacLow::ResetPhy (void) |
533 |
MacLow::ResetPhy (void) |
| 534 |
{ |
534 |
{ |
| 535 |
m_phy->SetReceiveOkCallback (MakeNullCallback<void, Ptr<Packet>, double, WifiTxVector, enum WifiPreamble> ()); |
535 |
m_phy->SetReceiveOkCallback (MakeNullCallback<void, Ptr<Packet>, double, WifiTxVector, enum WifiPreamble> ()); |
| 536 |
m_phy->SetReceiveErrorCallback (MakeNullCallback<void, Ptr<const Packet>, double, bool> ()); |
536 |
m_phy->SetReceiveErrorCallback (MakeNullCallback<void, Ptr<Packet>, double, bool> ()); |
| 537 |
RemovePhyMacLowListener (m_phy); |
537 |
RemovePhyMacLowListener (m_phy); |
| 538 |
m_phy = 0; |
538 |
m_phy = 0; |
| 539 |
} |
539 |
} |
|
|
| 837 |
} |
837 |
} |
| 838 |
|
838 |
|
| 839 |
void |
839 |
void |
| 840 |
MacLow::ReceiveError (Ptr<const Packet> packet, double rxSnr, bool isEndOfFrame) |
840 |
MacLow::ReceiveError (Ptr<Packet> packet, double rxSnr, bool isEndOfFrame) |
| 841 |
{ |
841 |
{ |
| 842 |
NS_LOG_FUNCTION (this << packet << rxSnr << isEndOfFrame); |
842 |
NS_LOG_FUNCTION (this << packet << rxSnr << isEndOfFrame); |
| 843 |
NS_LOG_DEBUG ("rx failed "); |
843 |
NS_LOG_DEBUG ("rx failed "); |
| 844 |
if (isEndOfFrame == true && m_receivedAtLeastOneMpdu == true) |
844 |
if (isEndOfFrame == true && m_receivedAtLeastOneMpdu == true) |
| 845 |
{ |
845 |
{ |
| 846 |
WifiMacHeader hdr; |
846 |
WifiMacHeader hdr; |
| 847 |
packet->PeekHeader (hdr); |
847 |
MpduAggregator::DeaggregatedMpdus mpdu = MpduAggregator::Deaggregate (packet); |
|
|
848 |
mpdu.begin ()->first->PeekHeader (hdr); |
| 848 |
if (hdr.GetAddr1 () != m_self) |
849 |
if (hdr.GetAddr1 () != m_self) |
| 849 |
{ |
850 |
{ |
| 850 |
NS_LOG_DEBUG ("hdr addr1 " << hdr.GetAddr1 () << "not for me (" << m_self << "); returning"); |
851 |
NS_LOG_DEBUG ("hdr addr1 " << hdr.GetAddr1 () << "not for me (" << m_self << "); returning"); |
|
|
| 1691 |
ampdutag.SetNoOfMpdus (queueSize); |
1692 |
ampdutag.SetNoOfMpdus (queueSize); |
| 1692 |
} |
1693 |
} |
| 1693 |
newPacket->AddPacketTag (ampdutag); |
1694 |
newPacket->AddPacketTag (ampdutag); |
| 1694 |
|
1695 |
|
| 1695 |
if (delay == Seconds (0)) |
1696 |
if (delay == Seconds (0)) |
| 1696 |
{ |
1697 |
{ |
| 1697 |
if (!vhtSingleMpdu) |
1698 |
if (!vhtSingleMpdu) |