From eabb826db004f5518b1e50282d52dd1c0d9f36fe Mon Sep 17 00:00:00 2001 From: Kirill Andreev Date: Wed, 23 Nov 2011 19:08:31 +0300 Subject: [PATCH] Bug 1300: fixed --- src/spectrum/model/half-duplex-ideal-phy.cc | 1 + src/spectrum/model/spectrum-interference.cc | 5 +++++ src/spectrum/model/spectrum-interference.h | 4 ++++ 3 files changed, 10 insertions(+) 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