A Discrete-Event Network Simulator
API
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
ns3::Asn1Header Class Referenceabstract

#include <lte-asn1-header.h>

+ Inheritance diagram for ns3::Asn1Header:

Public Member Functions

virtual uint32_t Deserialize (Buffer::Iterator bIterator)=0
 
virtual TypeId GetInstanceTypeId (void) const
 
uint32_t GetSerializedSize (void) const
 
virtual void PreSerialize (void) const =0
 
virtual void Print (std::ostream &os) const =0
 
void Serialize (Buffer::Iterator bIterator) const
 
- Public Member Functions inherited from ns3::ObjectBase
void GetAttribute (std::string name, AttributeValue &value) const
 
bool GetAttributeFailSafe (std::string name, AttributeValue &attribute) const
 
void SetAttribute (std::string name, const AttributeValue &value)
 
bool SetAttributeFailSafe (std::string name, const AttributeValue &value)
 
bool TraceConnect (std::string name, std::string context, const CallbackBase &cb)
 
bool TraceConnectWithoutContext (std::string name, const CallbackBase &cb)
 
bool TraceDisconnect (std::string name, std::string context, const CallbackBase &cb)
 
bool TraceDisconnectWithoutContext (std::string name, const CallbackBase &cb)
 

Static Public Member Functions

static TypeId GetTypeId (void)
 
- Static Public Member Functions inherited from ns3::Header
static TypeId GetTypeId (void)
 
- Static Public Member Functions inherited from ns3::Chunk
static TypeId GetTypeId (void)
 
- Static Public Member Functions inherited from ns3::ObjectBase
static TypeId GetTypeId (void)
 

Protected Member Functions

template<int N>
Buffer::Iterator DeserializeBitset (std::bitset< N > *data, Buffer::Iterator bIterator)
 
Buffer::Iterator DeserializeBitset (std::bitset< 8 > *data, Buffer::Iterator bIterator)
 
template<int N>
Buffer::Iterator DeserializeBitstring (std::bitset< N > *bitstring, Buffer::Iterator bIterator)
 
Buffer::Iterator DeserializeBitstring (std::bitset< 1 > *bitstring, Buffer::Iterator bIterator)
 
Buffer::Iterator DeserializeBitstring (std::bitset< 2 > *bitstring, Buffer::Iterator bIterator)
 
Buffer::Iterator DeserializeBitstring (std::bitset< 8 > *bitstring, Buffer::Iterator bIterator)
 
Buffer::Iterator DeserializeBitstring (std::bitset< 10 > *bitstring, Buffer::Iterator bIterator)
 
Buffer::Iterator DeserializeBitstring (std::bitset< 16 > *bitstring, Buffer::Iterator bIterator)
 
Buffer::Iterator DeserializeBitstring (std::bitset< 27 > *bitstring, Buffer::Iterator bIterator)
 
Buffer::Iterator DeserializeBitstring (std::bitset< 28 > *bitstring, Buffer::Iterator bIterator)
 
Buffer::Iterator DeserializeBitstring (std::bitset< 32 > *bitstring, Buffer::Iterator bIterator)
 
Buffer::Iterator DeserializeBoolean (bool *value, Buffer::Iterator bIterator)
 
Buffer::Iterator DeserializeChoice (int numOptions, bool isExtensionMarkerPresent, int *selectedOption, Buffer::Iterator bIterator)
 
Buffer::Iterator DeserializeEnum (int numElems, int *selectedElem, Buffer::Iterator bIterator)
 
Buffer::Iterator DeserializeInteger (int *n, int nmin, int nmax, Buffer::Iterator bIterator)
 
Buffer::Iterator DeserializeNull (Buffer::Iterator bIterator)
 
template<int N>
Buffer::Iterator DeserializeSequence (std::bitset< N > *optionalOrDefaultMask, bool isExtensionMarkerPresent, Buffer::Iterator bIterator)
 
Buffer::Iterator DeserializeSequence (std::bitset< 0 > *optionalOrDefaultMask, bool isExtensionMarkerPresent, Buffer::Iterator bIterator)
 
Buffer::Iterator DeserializeSequence (std::bitset< 1 > *optionalOrDefaultMask, bool isExtensionMarkerPresent, Buffer::Iterator bIterator)
 
Buffer::Iterator DeserializeSequence (std::bitset< 2 > *optionalOrDefaultMask, bool isExtensionMarkerPresent, Buffer::Iterator bIterator)
 
Buffer::Iterator DeserializeSequence (std::bitset< 3 > *optionalOrDefaultMask, bool isExtensionMarkerPresent, Buffer::Iterator bIterator)
 
Buffer::Iterator DeserializeSequence (std::bitset< 4 > *optionalOrDefaultMask, bool isExtensionMarkerPresent, Buffer::Iterator bIterator)
 
Buffer::Iterator DeserializeSequence (std::bitset< 5 > *optionalOrDefaultMask, bool isExtensionMarkerPresent, Buffer::Iterator bIterator)
 
Buffer::Iterator DeserializeSequence (std::bitset< 6 > *optionalOrDefaultMask, bool isExtensionMarkerPresent, Buffer::Iterator bIterator)
 
Buffer::Iterator DeserializeSequence (std::bitset< 9 > *optionalOrDefaultMask, bool isExtensionMarkerPresent, Buffer::Iterator bIterator)
 
Buffer::Iterator DeserializeSequence (std::bitset< 10 > *optionalOrDefaultMask, bool isExtensionMarkerPresent, Buffer::Iterator bIterator)
 
Buffer::Iterator DeserializeSequence (std::bitset< 11 > *optionalOrDefaultMask, bool isExtensionMarkerPresent, Buffer::Iterator bIterator)
 
Buffer::Iterator DeserializeSequenceOf (int *numElems, int nMax, int nMin, Buffer::Iterator bIterator)
 
void FinalizeSerialization () const
 
template<int N>
void SerializeBitset (std::bitset< N > data) const
 
template<int N>
void SerializeBitstring (std::bitset< N > bitstring) const
 
void SerializeBitstring (std::bitset< 1 > bitstring) const
 
void SerializeBitstring (std::bitset< 2 > bitstring) const
 
void SerializeBitstring (std::bitset< 8 > bitstring) const
 
void SerializeBitstring (std::bitset< 10 > bitstring) const
 
void SerializeBitstring (std::bitset< 16 > bitstring) const
 
void SerializeBitstring (std::bitset< 27 > bitstring) const
 
void SerializeBitstring (std::bitset< 28 > bitstring) const
 
void SerializeBitstring (std::bitset< 32 > bitstring) const
 
void SerializeBoolean (bool value) const
 
void SerializeChoice (int numOptions, int selectedOption, bool isExtensionMarkerPresent) const
 
void SerializeEnum (int numElems, int selectedElem) const
 
void SerializeInteger (int n, int nmin, int nmax) const
 
void SerializeNull () const
 
void SerializeOctetstring (std::string s) const
 
template<int N>
void SerializeSequence (std::bitset< N > optionalOrDefaultMask, bool isExtensionMarkerPresent) const
 
void SerializeSequence (std::bitset< 0 > optionalOrDefaultMask, bool isExtensionMarkerPresent) const
 
void SerializeSequence (std::bitset< 1 > optionalOrDefaultMask, bool isExtensionMarkerPresent) const
 
void SerializeSequence (std::bitset< 2 > optionalOrDefaultMask, bool isExtensionMarkerPresent) const
 
void SerializeSequence (std::bitset< 3 > optionalOrDefaultMask, bool isExtensionMarkerPresent) const
 
void SerializeSequence (std::bitset< 4 > optionalOrDefaultMask, bool isExtensionMarkerPresent) const
 
void SerializeSequence (std::bitset< 5 > optionalOrDefaultMask, bool isExtensionMarkerPresent) const
 
void SerializeSequence (std::bitset< 6 > optionalOrDefaultMask, bool isExtensionMarkerPresent) const
 
void SerializeSequence (std::bitset< 9 > optionalOrDefaultMask, bool isExtensionMarkerPresent) const
 
void SerializeSequence (std::bitset< 10 > optionalOrDefaultMask, bool isExtensionMarkerPresent) const
 
void SerializeSequence (std::bitset< 11 > optionalOrDefaultMask, bool isExtensionMarkerPresent) const
 
void SerializeSequenceOf (int numElems, int nMax, int nMin) const
 
void WriteOctet (uint8_t octet) const
 
- Protected Member Functions inherited from ns3::ObjectBase
void ConstructSelf (const AttributeConstructionList &attributes)
 
virtual void NotifyConstructionCompleted (void)
 

Protected Attributes

bool m_isDataSerialized
 
uint8_t m_numSerializationPendingBits
 
uint8_t m_serializationPendingBits
 
Buffer m_serializationResult
 

Detailed Description

This class has the purpose to encode Information Elements according to ASN.1 syntax, as defined in ITU-T X-691. IMPORTANT: The encoding is done following the UNALIGNED variant.

Doxygen introspection did not find any typical Config paths.
No Attributes are defined for this type.
No TraceSources are defined for this type.

Definition at line 38 of file lte-asn1-header.h.

Member Function Documentation

virtual uint32_t ns3::Asn1Header::Deserialize ( Buffer::Iterator  start)
pure virtual
TypeId ns3::Asn1Header::GetInstanceTypeId ( void  ) const
virtual
Returns
the TypeId associated to the most-derived type of this instance.

This method is typically implemented by ns3::Object::GetInstanceTypeId but some classes which derive from ns3::ObjectBase directly have to implement it themselves.

Implements ns3::ObjectBase.

Reimplemented in ns3::RrcAsn1Header.

Definition at line 44 of file lte-asn1-header.cc.

virtual void ns3::Asn1Header::PreSerialize ( void  ) const
pure virtual

This function serializes class attributes to m_serializationResult local Buffer. As ASN1 encoding produces a bitstream that does not have a fixed length, this function is needed to store the result, so its length can be retrieved with Header::GetSerializedSize() function. This method is pure virtual in this class (needs to be implemented in child classes) as the meningful information elements are in the subclasses.

Implemented in ns3::MeasurementReportHeader, ns3::RrcConnectionRejectHeader, ns3::RrcConnectionReleaseHeader, ns3::RrcConnectionReestablishmentRejectHeader, ns3::RrcConnectionReestablishmentCompleteHeader, ns3::RrcConnectionReestablishmentHeader, ns3::RrcConnectionReestablishmentRequestHeader, ns3::HandoverPreparationInfoHeader, ns3::RrcConnectionReconfigurationHeader, ns3::RrcConnectionReconfigurationCompleteHeader, ns3::RrcConnectionSetupCompleteHeader, ns3::RrcConnectionSetupHeader, ns3::RrcConnectionRequestHeader, ns3::RrcDlCcchMessage, ns3::RrcUlCcchMessage, ns3::RrcDlDcchMessage, ns3::RrcUlDcchMessage, and ns3::RrcAsn1Header.

Referenced by GetSerializedSize(), and Serialize().

virtual void ns3::Asn1Header::Print ( std::ostream &  os) const
pure virtual
Parameters
osoutput stream This method is used by Packet::Print to print the content of a trailer as ascii data to a c++ output stream. Although the trailer is free to format its output as it wishes, it is recommended to follow a few rules to integrate with the packet pretty printer: start with flags, small field values located between a pair of parens. Values should be separated by whitespace. Follow the parens with the important fields, separated by whitespace. i.e.: (field1 val1 field2 val2 field3 val3) field4 val4 field5 val5

Implements ns3::Header.

Implemented in ns3::MeasurementReportHeader, ns3::RrcConnectionRejectHeader, ns3::RrcConnectionReleaseHeader, ns3::RrcConnectionReestablishmentRejectHeader, ns3::RrcConnectionReestablishmentCompleteHeader, ns3::RrcConnectionReestablishmentHeader, ns3::RrcConnectionReestablishmentRequestHeader, ns3::HandoverPreparationInfoHeader, ns3::RrcConnectionReconfigurationHeader, ns3::RrcConnectionReconfigurationCompleteHeader, ns3::RrcConnectionSetupCompleteHeader, ns3::RrcConnectionSetupHeader, ns3::RrcConnectionRequestHeader, ns3::RrcDlCcchMessage, ns3::RrcUlCcchMessage, ns3::RrcDlDcchMessage, and ns3::RrcUlDcchMessage.

void ns3::Asn1Header::Serialize ( Buffer::Iterator  start) const
virtual
Parameters
startan iterator which points to where the header should be written.

This method is used by Packet::AddHeader to store a header into the byte buffer of a packet. The data written is expected to match bit-for-bit the representation of this header in a real network.

Implements ns3::Header.

Definition at line 70 of file lte-asn1-header.cc.

References ns3::Buffer::Begin(), ns3::Buffer::End(), PreSerialize(), and ns3::Buffer::Iterator::Write().


The documentation for this class was generated from the following files: