diff --git a/src/lte/model/lte-rrc-header.cc b/src/lte/model/lte-rrc-header.cc index b5ebfda72..0c7443749 100644 --- a/src/lte/model/lte-rrc-header.cc +++ b/src/lte/model/lte-rrc-header.cc @@ -46,6 +46,21 @@ RrcAsn1Header::RrcAsn1Header () { } +TypeId +RrcAsn1Header::GetTypeId (void) +{ + static TypeId tid = TypeId ("ns3::RrcAsn1Header") + .SetParent
() + ; + return tid; +} + +TypeId +RrcAsn1Header::GetInstanceTypeId (void) const +{ + return GetTypeId (); +} + int RrcAsn1Header::GetMessageType () { @@ -1698,7 +1713,7 @@ RrcAsn1Header::DeserializePlmnIdentity (uint32_t *plmnId, Buffer::Iterator bIter //////////////////// RrcConnectionRequest class //////////////////////// // Constructor -RrcConnectionRequestHeader::RrcConnectionRequestHeader () +RrcConnectionRequestHeader::RrcConnectionRequestHeader () : RrcUlCcchMessage() { m_mmec = std::bitset<8> (0ul); m_mTmsi = std::bitset<32> (0ul); @@ -1706,6 +1721,20 @@ RrcConnectionRequestHeader::RrcConnectionRequestHeader () m_spare = std::bitset<1> (0ul); } +// Destructor +RrcConnectionRequestHeader::~RrcConnectionRequestHeader () +{ +} + +TypeId +RrcConnectionRequestHeader::GetTypeId (void) +{ + static TypeId tid = TypeId ("ns3::RrcConnectionRequestHeader") + .SetParent
() + ; + return tid; +} + void RrcConnectionRequestHeader::Print (std::ostream &os) const { @@ -1798,7 +1827,7 @@ RrcConnectionRequestHeader::Deserialize (Buffer::Iterator bIterator) } void -RrcConnectionRequestHeader::SetMessage (RrcConnectionRequest msg) +RrcConnectionRequestHeader::SetMessage (LteRrcSap::RrcConnectionRequest msg) { m_mTmsi = std::bitset<32> ((uint32_t)msg.ueIdentity); m_mmec = std::bitset<8> ((uint32_t)(msg.ueIdentity >> 32)); @@ -1808,7 +1837,7 @@ RrcConnectionRequestHeader::SetMessage (RrcConnectionRequest msg) LteRrcSap::RrcConnectionRequest RrcConnectionRequestHeader::GetMessage () const { - RrcConnectionRequest msg; + LteRrcSap::RrcConnectionRequest msg; msg.ueIdentity = (((uint64_t) m_mmec.to_ulong ()) << 32) | (m_mTmsi.to_ulong ()); return msg; @@ -3872,6 +3901,14 @@ MeasurementReportHeader::GetMessage () const } /////////////////// RrcUlDcchMessage ////////////////////////////////// +RrcUlDcchMessage::RrcUlDcchMessage() : RrcAsn1Header() +{ +} + +RrcUlDcchMessage::~RrcUlDcchMessage() +{ +} + uint32_t RrcUlDcchMessage::Deserialize (Buffer::Iterator bIterator) { @@ -3925,6 +3962,14 @@ RrcUlDcchMessage::SerializeUlDcchMessage (int messageType) const } /////////////////// RrcDlDcchMessage ////////////////////////////////// +RrcDlDcchMessage::RrcDlDcchMessage() : RrcAsn1Header() +{ +} + +RrcDlDcchMessage::~RrcDlDcchMessage() +{ +} + uint32_t RrcDlDcchMessage::Deserialize (Buffer::Iterator bIterator) { @@ -3978,6 +4023,14 @@ RrcDlDcchMessage::SerializeDlDcchMessage (int messageType) const } /////////////////// RrcUlCcchMessage ////////////////////////////////// +RrcUlCcchMessage::RrcUlCcchMessage() : RrcAsn1Header() +{ +} + +RrcUlCcchMessage::~RrcUlCcchMessage() +{ +} + uint32_t RrcUlCcchMessage::Deserialize (Buffer::Iterator bIterator) { @@ -4031,6 +4084,14 @@ RrcUlCcchMessage::SerializeUlCcchMessage (int messageType) const } /////////////////// RrcDlCcchMessage ////////////////////////////////// +RrcDlCcchMessage::RrcDlCcchMessage() : RrcAsn1Header() +{ +} + +RrcDlCcchMessage::~RrcDlCcchMessage() +{ +} + uint32_t RrcDlCcchMessage::Deserialize (Buffer::Iterator bIterator) { diff --git a/src/lte/model/lte-rrc-header.h b/src/lte/model/lte-rrc-header.h index 81360f7bf..2469b425e 100644 --- a/src/lte/model/lte-rrc-header.h +++ b/src/lte/model/lte-rrc-header.h @@ -43,6 +43,8 @@ public: protected: // Serialization functions + static TypeId GetTypeId (void); + virtual TypeId GetInstanceTypeId (void) const; void SerializeSrbToAddModList (std::list srbToAddModList) const; void SerializeDrbToAddModList (std::list drbToAddModList) const; void SerializeLogicalChannelConfig (LteRrcSap::LogicalChannelConfig logicalChannelConfig) const; @@ -80,6 +82,8 @@ protected: class RrcUlDcchMessage : public RrcAsn1Header { public: + RrcUlDcchMessage(); + ~RrcUlDcchMessage(); uint32_t Deserialize (Buffer::Iterator bIterator); void Print (std::ostream &os) const; void PreSerialize () const; @@ -94,6 +98,8 @@ public: class RrcDlDcchMessage : public RrcAsn1Header { public: + RrcDlDcchMessage(); + ~RrcDlDcchMessage(); uint32_t Deserialize (Buffer::Iterator bIterator); void Print (std::ostream &os) const; void PreSerialize () const; @@ -108,6 +114,8 @@ public: class RrcUlCcchMessage : public RrcAsn1Header { public: + RrcUlCcchMessage (); + ~RrcUlCcchMessage (); uint32_t Deserialize (Buffer::Iterator bIterator); void Print (std::ostream &os) const; void PreSerialize () const; @@ -122,6 +130,8 @@ public: class RrcDlCcchMessage : public RrcAsn1Header { public: + RrcDlCcchMessage(); + ~RrcDlCcchMessage(); uint32_t Deserialize (Buffer::Iterator bIterator); void Print (std::ostream &os) const; void PreSerialize () const; @@ -132,16 +142,17 @@ public: /** * This class manages the serialization/deserialization of RrcConnectionRequest IE */ -class RrcConnectionRequestHeader : public RrcUlCcchMessage, - LteRrcSap +class RrcConnectionRequestHeader : public RrcUlCcchMessage { public: + static TypeId GetTypeId (void); RrcConnectionRequestHeader (); + ~RrcConnectionRequestHeader (); void PreSerialize () const; uint32_t Deserialize (Buffer::Iterator bIterator); void Print (std::ostream &os) const; - void SetMessage (RrcConnectionRequest msg); - RrcConnectionRequest GetMessage () const; + void SetMessage (LteRrcSap::RrcConnectionRequest msg); + LteRrcSap::RrcConnectionRequest GetMessage () const; std::bitset<8> getMmec () const; std::bitset<32> getMtmsi () const; diff --git a/src/lte/test/test-asn1-encoding.cc b/src/lte/test/test-asn1-encoding.cc index 7bc2411da..15a3ffe4d 100644 --- a/src/lte/test/test-asn1-encoding.cc +++ b/src/lte/test/test-asn1-encoding.cc @@ -38,7 +38,7 @@ class TestUtils { public: // Function to convert packet contents in hex format - static std::string sprintPacketContentsHex (Packet *pkt) + static std::string sprintPacketContentsHex (Ptr pkt) { uint32_t psize = pkt->GetSize (); uint8_t buffer[psize]; @@ -52,7 +52,7 @@ public: } // Function to convert packet contents in binary format - static std::string sprintPacketContentsBin (Packet *pkt) + static std::string sprintPacketContentsBin (Ptr pkt) { uint32_t psize = pkt->GetSize (); uint8_t buffer[psize]; @@ -66,7 +66,7 @@ public: } // Function to log packet contents - static void LogPacketContents (Packet *pkt) + static void LogPacketContents (Ptr pkt) { NS_LOG_DEBUG ("---- SERIALIZED PACKET CONTENTS (HEX): -------"); NS_LOG_DEBUG ("Hex: " << TestUtils::sprintPacketContentsHex (pkt)); @@ -97,7 +97,7 @@ public: void AssertEqualRadioResourceConfigDedicated (LteRrcSap::RadioResourceConfigDedicated rrcd1, LteRrcSap::RadioResourceConfigDedicated rrcd2); protected: - Packet * packet; + Ptr packet; }; RrcHeaderTestCase :: RrcHeaderTestCase(std::string s) : TestCase(s) @@ -254,7 +254,7 @@ RrcConnectionRequestTestCase::RrcConnectionRequestTestCase () : RrcHeaderTestCas void RrcConnectionRequestTestCase::DoRun (void) { - packet = new Packet(); + packet = Create(); NS_LOG_DEBUG ("============= RrcConnectionRequestTestCase ==========="); LteRrcSap::RrcConnectionRequest msg; @@ -283,7 +283,7 @@ RrcConnectionRequestTestCase::DoRun (void) NS_TEST_ASSERT_MSG_EQ (source.getMmec (),destination.getMmec (), "Different m_mmec!"); NS_TEST_ASSERT_MSG_EQ (source.getMtmsi (),destination.getMtmsi (), "Different m_mTmsi!"); - delete (packet); + packet = 0; } // --------------------------- CLASS RrcConnectionSetupTestCase ----------------------------- @@ -301,7 +301,7 @@ RrcConnectionSetupTestCase::RrcConnectionSetupTestCase () : RrcHeaderTestCase (" void RrcConnectionSetupTestCase::DoRun (void) { - packet = new Packet(); + packet = Create(); NS_LOG_DEBUG ("============= RrcConnectionSetupTestCase ==========="); LteRrcSap::RrcConnectionSetup msg; @@ -332,7 +332,7 @@ RrcConnectionSetupTestCase::DoRun (void) AssertEqualRadioResourceConfigDedicated (source.GetRadioResourceConfigDedicated (),destination.GetRadioResourceConfigDedicated ()); - delete (packet); + packet = 0; } // --------------------------- CLASS RrcConnectionSetupCompleteTestCase ----------------------------- @@ -350,7 +350,7 @@ RrcConnectionSetupCompleteTestCase::RrcConnectionSetupCompleteTestCase () : RrcH void RrcConnectionSetupCompleteTestCase::DoRun (void) { - packet = new Packet(); + packet = Create(); NS_LOG_DEBUG ("============= RrcConnectionSetupCompleteTestCase ==========="); LteRrcSap::RrcConnectionSetupCompleted msg; @@ -378,7 +378,7 @@ RrcConnectionSetupCompleteTestCase::DoRun (void) // Check that the destination and source headers contain the same values NS_TEST_ASSERT_MSG_EQ (source.GetRrcTransactionIdentifier (),destination.GetRrcTransactionIdentifier (), "RrcTransactionIdentifier"); - delete (packet); + packet = 0; } // --------------------------- CLASS RrcConnectionReconfigurationCompleteTestCase ----------------------------- @@ -397,7 +397,7 @@ RrcConnectionReconfigurationCompleteTestCase::RrcConnectionReconfigurationComple void RrcConnectionReconfigurationCompleteTestCase::DoRun (void) { - packet = new Packet(); + packet = Create(); NS_LOG_DEBUG ("============= RrcConnectionReconfigurationCompleteTestCase ==========="); LteRrcSap::RrcConnectionReconfigurationCompleted msg; @@ -425,7 +425,7 @@ RrcConnectionReconfigurationCompleteTestCase::DoRun (void) // Check that the destination and source headers contain the same values NS_TEST_ASSERT_MSG_EQ (source.GetRrcTransactionIdentifier (),destination.GetRrcTransactionIdentifier (), "RrcTransactionIdentifier"); - delete (packet); + packet = 0; } // --------------------------- CLASS RrcConnectionReconfigurationTestCase ----------------------------- @@ -444,7 +444,7 @@ RrcConnectionReconfigurationTestCase::RrcConnectionReconfigurationTestCase () void RrcConnectionReconfigurationTestCase::DoRun (void) { - packet = new Packet(); + packet = Create(); NS_LOG_DEBUG ("============= RrcConnectionReconfigurationTestCase ==========="); LteRrcSap::RrcConnectionReconfiguration msg; @@ -537,7 +537,7 @@ RrcConnectionReconfigurationTestCase::DoRun (void) AssertEqualRadioResourceConfigDedicated (source.GetRadioResourceConfigDedicated (), destination.GetRadioResourceConfigDedicated ()); } - delete (packet); + packet = 0; } // --------------------------- CLASS HandoverPreparationInfoTestCase ----------------------------- @@ -555,7 +555,7 @@ HandoverPreparationInfoTestCase::HandoverPreparationInfoTestCase () : RrcHeaderT void HandoverPreparationInfoTestCase::DoRun (void) { - packet = new Packet(); + packet = Create(); NS_LOG_DEBUG ("============= HandoverPreparationInfoTestCase ==========="); LteRrcSap::HandoverPreparationInfo msg; @@ -600,7 +600,7 @@ HandoverPreparationInfoTestCase::DoRun (void) NS_TEST_ASSERT_MSG_EQ (source.GetAsConfig ().sourceSystemInformationBlockType1.cellAccessRelatedInfo.csgIdentity, destination.GetAsConfig ().sourceSystemInformationBlockType1.cellAccessRelatedInfo.csgIdentity, "csgIdentity"); NS_TEST_ASSERT_MSG_EQ (source.GetAsConfig ().sourceDlCarrierFreq, destination.GetAsConfig ().sourceDlCarrierFreq, "sourceDlCarrierFreq"); - delete (packet); + packet = 0; } // --------------------------- CLASS RrcConnectionReestablishmentRequestTestCase ----------------------------- @@ -618,7 +618,7 @@ RrcConnectionReestablishmentRequestTestCase::RrcConnectionReestablishmentRequest void RrcConnectionReestablishmentRequestTestCase::DoRun (void) { - packet = new Packet(); + packet = Create(); NS_LOG_DEBUG ("============= RrcConnectionReestablishmentRequestTestCase ==========="); LteRrcSap::RrcConnectionReestablishmentRequest msg; @@ -650,7 +650,7 @@ RrcConnectionReestablishmentRequestTestCase::DoRun (void) NS_TEST_ASSERT_MSG_EQ (source.GetUeIdentity ().physCellId, destination.GetUeIdentity ().physCellId, "physCellId"); NS_TEST_ASSERT_MSG_EQ (source.GetReestablishmentCause (),destination.GetReestablishmentCause (), "ReestablishmentCause"); - delete (packet); + packet = 0; } // --------------------------- CLASS RrcConnectionReestablishmentTestCase ----------------------------- @@ -668,7 +668,7 @@ RrcConnectionReestablishmentTestCase::RrcConnectionReestablishmentTestCase () : void RrcConnectionReestablishmentTestCase::DoRun (void) { - packet = new Packet(); + packet = Create(); NS_LOG_DEBUG ("============= RrcConnectionReestablishmentTestCase ==========="); LteRrcSap::RrcConnectionReestablishment msg; @@ -698,7 +698,7 @@ RrcConnectionReestablishmentTestCase::DoRun (void) NS_TEST_ASSERT_MSG_EQ (source.GetRrcTransactionIdentifier (), destination.GetRrcTransactionIdentifier (), "rrcTransactionIdentifier"); AssertEqualRadioResourceConfigDedicated (source.GetRadioResourceConfigDedicated (),destination.GetRadioResourceConfigDedicated ()); - delete (packet); + packet = 0; } // --------------------------- CLASS RrcConnectionReestablishmentCompleteTestCase ----------------------------- @@ -716,7 +716,7 @@ RrcConnectionReestablishmentCompleteTestCase::RrcConnectionReestablishmentComple void RrcConnectionReestablishmentCompleteTestCase::DoRun (void) { - packet = new Packet(); + packet = Create(); NS_LOG_DEBUG ("============= RrcConnectionReestablishmentCompleteTestCase ==========="); LteRrcSap::RrcConnectionReestablishmentComplete msg; @@ -744,7 +744,7 @@ RrcConnectionReestablishmentCompleteTestCase::DoRun (void) // Check that the destination and source headers contain the same values NS_TEST_ASSERT_MSG_EQ (source.GetRrcTransactionIdentifier (), destination.GetRrcTransactionIdentifier (), "rrcTransactionIdentifier"); - delete (packet); + packet = 0; } // --------------------------- CLASS RrcConnectionRejectTestCase ----------------------------- @@ -762,7 +762,7 @@ RrcConnectionRejectTestCase::RrcConnectionRejectTestCase () : RrcHeaderTestCase void RrcConnectionRejectTestCase::DoRun (void) { - packet = new Packet(); + packet = Create(); NS_LOG_DEBUG ("============= RrcConnectionRejectTestCase ==========="); LteRrcSap::RrcConnectionReject msg; @@ -790,7 +790,7 @@ RrcConnectionRejectTestCase::DoRun (void) // Check that the destination and source headers contain the same values NS_TEST_ASSERT_MSG_EQ (source.GetMessage ().waitTime, destination.GetMessage ().waitTime, "Different waitTime!"); - delete (packet); + packet = 0; } // --------------------------- CLASS MeasurementReportTestCase ----------------------------- @@ -808,7 +808,7 @@ MeasurementReportTestCase::MeasurementReportTestCase () : RrcHeaderTestCase ("Te void MeasurementReportTestCase::DoRun (void) { - packet = new Packet(); + packet = Create(); NS_LOG_DEBUG ("============= MeasurementReportTestCase ==========="); LteRrcSap::MeasurementReport msg; @@ -900,7 +900,7 @@ MeasurementReportTestCase::DoRun (void) } } - delete (packet); + packet = 0; } // --------------------------- CLASS Asn1EncodingSuite ----------------------------- @@ -913,8 +913,6 @@ public: Asn1EncodingSuite::Asn1EncodingSuite () : TestSuite ("test-asn1-encoding", UNIT) { - Packet::EnablePrinting (); - NS_LOG_FUNCTION (this); AddTestCase (new RrcConnectionRequestTestCase()); AddTestCase (new RrcConnectionSetupTestCase());