--- a/src/wifi/model/mac-low.cc Fri Dec 07 10:12:40 2012 -0800
+++ b/src/wifi/model/mac-low.cc Fri Dec 07 14:36:01 2012 -0500
@@ -360,6 +360,7 @@
m_sendAckEvent (),
m_sendDataEvent (),
m_waitSifsEvent (),
+ m_endTxNoAckEvent (),
m_currentPacket (0),
m_listener (0)
{
@@ -396,6 +397,7 @@
m_sendAckEvent.Cancel ();
m_sendDataEvent.Cancel ();
m_waitSifsEvent.Cancel ();
+ m_endTxNoAckEvent.Cancel ();
m_phy = 0;
m_stationManager = 0;
delete m_phyMacLowListener;
@@ -457,6 +459,11 @@
m_waitSifsEvent.Cancel ();
oneRunning = true;
}
+ if (m_endTxNoAckEvent.IsRunning ())
+ {
+ m_endTxNoAckEvent.Cancel ();
+ oneRunning = true;
+ }
if (oneRunning && m_listener != 0)
{
m_listener->Cancel ();
@@ -1352,7 +1359,7 @@
else
{
// since we do not expect any timer to be triggered.
- m_listener = 0;
+ Simulator::Schedule(txDuration, &MacLow::EndTxNoAck, this);
}
}
@@ -1490,6 +1497,14 @@
m_listener->StartNext ();
}
+void
+MacLow::EndTxNoAck (void)
+{
+ MacLowTransmissionListener *listener = m_listener;
+ m_listener = 0;
+ listener->EndTxNoAck ();
+}
+
void
MacLow::FastAckFailedTimeout (void)
{