diff --git a/src/spectrum/model/half-duplex-ideal-phy.cc b/src/spectrum/model/half-duplex-ideal-phy.cc index dda656455..6d8ec7442 100644 --- a/src/spectrum/model/half-duplex-ideal-phy.cc +++ b/src/spectrum/model/half-duplex-ideal-phy.cc @@ -380,6 +380,7 @@ HalfDuplexIdealPhy::AbortRx () NS_LOG_LOGIC (this << "state: " << m_state); NS_ASSERT (m_state == RX); + m_interference.AbortRx (); m_phyRxAbortTrace (m_rxPacket); m_endRxEventId.Cancel (); m_rxPacket = 0; diff --git a/src/spectrum/model/spectrum-interference.cc b/src/spectrum/model/spectrum-interference.cc index 2af5738f2..3a87e4f2d 100644 --- a/src/spectrum/model/spectrum-interference.cc +++ b/src/spectrum/model/spectrum-interference.cc @@ -67,6 +67,11 @@ SpectrumInterference::StartRx (Ptr p, Ptr rxP m_errorModel->StartRx (p); } +void +SpectrumInterference::AbortRx () +{ + m_receiving = false; +} bool SpectrumInterference::EndRx () diff --git a/src/spectrum/model/spectrum-interference.h b/src/spectrum/model/spectrum-interference.h index b2dd177e3..b5a5eb3b1 100644 --- a/src/spectrum/model/spectrum-interference.h +++ b/src/spectrum/model/spectrum-interference.h @@ -64,6 +64,10 @@ public: */ void StartRx (Ptr p, Ptr rxPsd); + /** + * notify that the PHY has aborted RX + */ + void AbortRx (); /** * notify that the RX attempt has ended. The receiving PHY must call