diff -r 55db96d61f2c -r b828554155ff src/lte/model/lte-rrc-header.h --- a/src/lte/model/lte-rrc-header.h Wed Dec 05 13:52:42 2012 +0100 +++ b/src/lte/model/lte-rrc-header.h Wed Dec 05 15:12:19 2012 +0100 @@ -51,10 +51,6 @@ void SerializeSystemInformationBlockType1 (LteRrcSap::SystemInformationBlockType1 systemInformationBlockType1) const; void SerializeSystemInformationBlockType2 () const; void SerializeRadioResourceConfigCommonSIB () const; - void SerializeUlDcchMessage(int msgType) const; - void SerializeUlCcchMessage(int msgType) const; - void SerializeDlDcchMessage(int msgType) const; - void SerializeDlCcchMessage(int msgType) const; // Deserialization functions Buffer::Iterator DeserializeDrbToAddModList (std::list *drbToAddModLis, Buffer::Iterator bIterator); @@ -66,20 +62,73 @@ Buffer::Iterator DeserializeSystemInformationBlockType2 (Buffer::Iterator bIterator); Buffer::Iterator DeserializeRadioResourceConfigCommon (Buffer::Iterator bIterator); Buffer::Iterator DeserializeRadioResourceConfigCommonSib (Buffer::Iterator bIterator); - Buffer::Iterator DeserializeUlDcchMessage (Buffer::Iterator bIterator); - Buffer::Iterator DeserializeUlCcchMessage (Buffer::Iterator bIterator); - Buffer::Iterator DeserializeDlDcchMessage (Buffer::Iterator bIterator); - Buffer::Iterator DeserializeDlCcchMessage (Buffer::Iterator bIterator); void Print (std::ostream &os, LteRrcSap::RadioResourceConfigDedicated radioResourceConfigDedicated) const; int m_messageType; }; + +/** + * This class only serves to discriminate which message type has been received + * in uplink (ue to eNb) for channel DCCH + */ +class RrcUlDcchMessage : public RrcAsn1Header +{ + public: + uint32_t Deserialize (Buffer::Iterator bIterator); + void Print (std::ostream &os) const; + void PreSerialize () const; + void SerializeUlDcchMessage(int msgType) const; + Buffer::Iterator DeserializeUlDcchMessage (Buffer::Iterator bIterator); +}; + +/** + * This class only serves to discriminate which message type has been received + * in downlink (eNb to ue) for channel DCCH + */ +class RrcDlDcchMessage : public RrcAsn1Header +{ + public: + uint32_t Deserialize (Buffer::Iterator bIterator); + void Print (std::ostream &os) const; + void PreSerialize () const; + void SerializeDlDcchMessage(int msgType) const; + Buffer::Iterator DeserializeDlDcchMessage (Buffer::Iterator bIterator); +}; + +/** + * This class only serves to discriminate which message type has been received + * in uplink (ue to eNb) for channel CCCH + */ +class RrcUlCcchMessage : public RrcAsn1Header +{ + public: + uint32_t Deserialize (Buffer::Iterator bIterator); + void Print (std::ostream &os) const; + void PreSerialize () const; + void SerializeUlCcchMessage(int msgType) const; + Buffer::Iterator DeserializeUlCcchMessage (Buffer::Iterator bIterator); +}; + +/** + * This class only serves to discriminate which message type has been received + * in downlink (eNb to ue) for channel CCCH + */ +class RrcDlCcchMessage : public RrcAsn1Header +{ + public: + uint32_t Deserialize (Buffer::Iterator bIterator); + void Print (std::ostream &os) const; + void PreSerialize () const; + void SerializeDlCcchMessage(int msgType) const; + Buffer::Iterator DeserializeDlCcchMessage (Buffer::Iterator bIterator); +}; + /** * This class manages the serialization/deserialization of RrcConnectionRequest IE */ -class RrcConnectionRequestHeader : public RrcAsn1Header, +class RrcConnectionRequestHeader : public RrcUlCcchMessage, LteRrcSap { public: @@ -88,7 +137,7 @@ uint32_t Deserialize (Buffer::Iterator bIterator); void Print (std::ostream &os) const; void SetMessage (RrcConnectionRequest msg); - + RrcConnectionRequest GetMessage() const; std::bitset<8> getMmec () const; std::bitset<32> getMtmsi () const; @@ -132,7 +181,7 @@ /** * This class manages the serialization/deserialization of RrcConnectionSetupComplete IE */ -class RrcConnectionSetupCompleteHeader : public RrcAsn1Header, +class RrcConnectionSetupCompleteHeader : public RrcUlDcchMessage, LteRrcSap { public: @@ -153,7 +202,7 @@ /** * This class manages the serialization/deserialization of RrcConnectionSetupComplete IE */ -class RrcConnectionReconfigurationCompleteHeader : public RrcAsn1Header, +class RrcConnectionReconfigurationCompleteHeader : public RrcUlDcchMessage, LteRrcSap { public: @@ -162,7 +211,7 @@ uint32_t Deserialize (Buffer::Iterator bIterator); void Print (std::ostream &os) const; void SetMessage (RrcConnectionReconfigurationCompleted msg); - + RrcConnectionReconfigurationCompleted GetMessage() const; uint8_t GetRrcTransactionIdentifier () const; private: @@ -173,7 +222,7 @@ /** * This class manages the serialization/deserialization of RrcConnectionReconfiguration IE */ -class RrcConnectionReconfigurationHeader : public RrcAsn1Header, +class RrcConnectionReconfigurationHeader : public RrcDlDcchMessage, LteRrcSap { public: @@ -183,6 +232,7 @@ void Print (std::ostream &os) const; void SetMessage (RrcConnectionReconfiguration msg); + RrcConnectionReconfiguration GetMessage () const; uint8_t GetRrcTransactionIdentifier () const; bool GetHaveMeasConfig (); MeasConfig GetMeasConfig (); @@ -230,7 +280,7 @@ /** * This class manages the serialization/deserialization of RRCConnectionReestablishmentRequest IE */ -class RrcConnectionReestablishmentRequestHeader : public RrcAsn1Header, +class RrcConnectionReestablishmentRequestHeader : public RrcUlCcchMessage, LteRrcSap { public: @@ -239,6 +289,7 @@ uint32_t Deserialize (Buffer::Iterator bIterator); void Print (std::ostream &os) const; void SetMessage (RrcConnectionReestablishmentRequest msg); + RrcConnectionReestablishmentRequest GetMessage () const; ReestabUeIdentity GetUeIdentity () const; ReestablishmentCause GetReestablishmentCause () const; @@ -272,7 +323,7 @@ /** * This class manages the serialization/deserialization of RrcConnectionReestablishmentComplete IE */ -class RrcConnectionReestablishmentCompleteHeader : public RrcAsn1Header, +class RrcConnectionReestablishmentCompleteHeader : public RrcUlDcchMessage, LteRrcSap { public: @@ -281,7 +332,7 @@ uint32_t Deserialize (Buffer::Iterator bIterator); void Print (std::ostream &os) const; void SetMessage (RrcConnectionReestablishmentComplete msg); - + RrcConnectionReestablishmentComplete GetMessage() const; uint8_t GetRrcTransactionIdentifier () const; private: