wifi: Notify RX packet is dropped if its transmission is aborted due to a TX event

This commit is contained in:
Sébastien Deronne
2020-04-04 12:38:56 +02:00
committed by Sebastien Deronne
parent 34c87e4f94
commit da289b170b
2 changed files with 5 additions and 14 deletions

View File

@@ -2571,21 +2571,9 @@ WifiPhy::Send (Ptr<const WifiPsdu> psdu, WifiTxVector txVector)
MaybeCcaBusyDuration ();
}
if (m_endPreambleDetectionEvent.IsRunning ())
if (m_currentEvent != 0)
{
m_endPreambleDetectionEvent.Cancel ();
}
if (m_endPhyRxEvent.IsRunning ())
{
m_endPhyRxEvent.Cancel ();
}
if (m_endRxEvent.IsRunning ())
{
m_endRxEvent.Cancel ();
}
if (m_state->IsStateRx ())
{
m_interference.NotifyRxEnd ();
AbortCurrentReception (RECEPTION_ABORTED_BY_TX);
}
if (m_powerRestricted)

View File

@@ -60,6 +60,7 @@ enum WifiPhyRxfailureReason
SLEEPING,
BUSY_DECODING_PREAMBLE,
PREAMBLE_DETECT_FAILURE,
RECEPTION_ABORTED_BY_TX,
L_SIG_FAILURE,
SIG_A_FAILURE,
PREAMBLE_DETECTION_PACKET_SWITCH,
@@ -92,6 +93,8 @@ inline std::ostream& operator<< (std::ostream& os, WifiPhyRxfailureReason reason
return (os << "BUSY_DECODING_PREAMBLE");
case PREAMBLE_DETECT_FAILURE:
return (os << "PREAMBLE_DETECT_FAILURE");
case RECEPTION_ABORTED_BY_TX:
return (os << "RECEPTION_ABORTED_BY_TX");
case L_SIG_FAILURE:
return (os << "L_SIG_FAILURE");
case SIG_A_FAILURE: