diff --git a/src/lte/model/lte-pdcp.cc b/src/lte/model/lte-pdcp.cc index 3f7acd32f..07b652bd7 100644 --- a/src/lte/model/lte-pdcp.cc +++ b/src/lte/model/lte-pdcp.cc @@ -178,6 +178,9 @@ LtePdcp::DoTransmitPdcpSdu (Ptr p) { NS_LOG_FUNCTION (this << m_rnti << (uint32_t) m_lcid << p->GetSize ()); + // Sender timestamp + PdcpTag pdcpTag (Simulator::Now ()); + LtePdcpHeader pdcpHeader; pdcpHeader.SetSequenceNumber (m_txSequenceNumber); @@ -191,10 +194,8 @@ LtePdcp::DoTransmitPdcpSdu (Ptr p) NS_LOG_LOGIC ("PDCP header: " << pdcpHeader); p->AddHeader (pdcpHeader); + p->AddByteTag (pdcpTag, 1, pdcpHeader.GetSerializedSize ()); - // Sender timestamp - PdcpTag pdcpTag (Simulator::Now ()); - p->AddPacketTag (pdcpTag); m_txPdu (m_rnti, m_lcid, p->GetSize ()); LteRlcSapProvider::TransmitPdcpPduParameters params; @@ -213,8 +214,7 @@ LtePdcp::DoReceivePdu (Ptr p) // Receiver timestamp PdcpTag pdcpTag; Time delay; - NS_ASSERT_MSG (p->PeekPacketTag (pdcpTag), "PdcpTag is missing"); - p->RemovePacketTag (pdcpTag); + p->FindFirstMatchingByteTag (pdcpTag); delay = Simulator::Now() - pdcpTag.GetSenderTimestamp (); m_rxPdu(m_rnti, m_lcid, p->GetSize (), delay.GetNanoSeconds ());