1444 } |
1444 } |
1445 else if (m_txParams.MustWaitBasicBlockAck ()) |
1445 else if (m_txParams.MustWaitBasicBlockAck ()) |
1446 { |
1446 { |
1447 Time timerDelay = txDuration + GetBasicBlockAckTimeout (); |
1447 Time timerDelay = txDuration + GetBasicBlockAckTimeout (); |
1448 NS_ASSERT (m_blockAckTimeoutEvent.IsExpired ()); |
1448 NS_ASSERT (m_blockAckTimeoutEvent.IsExpired ()); |
|
1449 NotifyAckTimeoutStartNow (timerDelay); |
1449 m_blockAckTimeoutEvent = Simulator::Schedule (timerDelay, &MacLow::BlockAckTimeout, this); |
1450 m_blockAckTimeoutEvent = Simulator::Schedule (timerDelay, &MacLow::BlockAckTimeout, this); |
1450 } |
1451 } |
1451 else if (m_txParams.MustWaitCompressedBlockAck ()) |
1452 else if (m_txParams.MustWaitCompressedBlockAck ()) |
1452 { |
1453 { |
1453 Time timerDelay = txDuration + GetCompressedBlockAckTimeout (); |
1454 Time timerDelay = txDuration + GetCompressedBlockAckTimeout (); |
1454 NS_ASSERT (m_blockAckTimeoutEvent.IsExpired ()); |
1455 NS_ASSERT (m_blockAckTimeoutEvent.IsExpired ()); |
|
1456 NotifyAckTimeoutStartNow (timerDelay); |
1455 m_blockAckTimeoutEvent = Simulator::Schedule (timerDelay, &MacLow::BlockAckTimeout, this); |
1457 m_blockAckTimeoutEvent = Simulator::Schedule (timerDelay, &MacLow::BlockAckTimeout, this); |
1456 } |
1458 } |
1457 else if (m_txParams.HasNextPacket ()) |
1459 else if (m_txParams.HasNextPacket ()) |
1458 { |
1460 { |
1459 if (m_stationManager->HasHtSupported()) |
1461 if (m_stationManager->HasHtSupported()) |