diff --git a/src/csma/model/csma-channel.cc b/src/csma/model/csma-channel.cc index 7f96b4673..0ba64b537 100644 --- a/src/csma/model/csma-channel.cc +++ b/src/csma/model/csma-channel.cc @@ -170,7 +170,7 @@ CsmaChannel::Detach (Ptr device) } bool -CsmaChannel::TransmitStart (Ptr p, uint32_t srcId) +CsmaChannel::TransmitStart (Ptr p, uint32_t srcId) { NS_LOG_FUNCTION (this << p << srcId); NS_LOG_INFO ("UID is " << p->GetUid () << ")"); @@ -188,7 +188,7 @@ CsmaChannel::TransmitStart (Ptr p, uint32_t srcId) } NS_LOG_LOGIC ("switch to TRANSMITTING"); - m_currentPkt = p; + m_currentPkt = p->Copy (); m_currentSrc = srcId; m_state = TRANSMITTING; return true; diff --git a/src/csma/model/csma-channel.h b/src/csma/model/csma-channel.h index ae4859941..4bbcfd873 100644 --- a/src/csma/model/csma-channel.h +++ b/src/csma/model/csma-channel.h @@ -184,7 +184,7 @@ public: * \return True if the channel is not busy and the transmitting net * device is currently active. */ - bool TransmitStart (Ptr p, uint32_t srcId); + bool TransmitStart (Ptr p, uint32_t srcId); /** * \brief Indicates that the net device has finished transmitting