ns3::SatGseHeader Class Reference

SatGseHeader implementation. More...

#include "satellite-gse-header.h"

+ Inheritance diagram for ns3::SatGseHeader:
+ Collaboration diagram for ns3::SatGseHeader:

Public Member Functions

 SatGseHeader ()
 Constructor. More...
 
 ~SatGseHeader ()
 Destructor for SatGseHeader. More...
 
virtual uint32_t Deserialize (Buffer::Iterator start)
 Deserializes information from buffer to this instance of SatGseHeader. More...
 
uint8_t GetEndIndicator () const
 Get end indicator of GSE header. More...
 
uint32_t GetFragmentId () const
 Get GSE fragment id. More...
 
uint32_t GetGseHeaderSizeInBytes (uint8_t type) const
 Get the maximum GSE header size. More...
 
uint32_t GetGsePduLength () const
 Get GSE fragment length in bytes. More...
 
virtual TypeId GetInstanceTypeId (void) const
 Get the type ID of instance. More...
 
uint32_t GetMaxGseHeaderSizeInBytes () const
 Get the maximum GSE header size. More...
 
virtual uint32_t GetSerializedSize (void) const
 Get serialized size of SatGseHeader. More...
 
uint8_t GetStartIndicator () const
 Get start indicator of GSE header. More...
 
uint32_t GetTotalLength () const
 Get total length of higher layer PDU. More...
 
virtual void Print (std::ostream &os) const
 Print time stamp of this instance of SatGseHeader. More...
 
virtual void Serialize (Buffer::Iterator start) const
 Serializes information to buffer from this instance of SatGseHeader. More...
 
void SetEndIndicator ()
 Set end indicator to GSE header. More...
 
void SetFragmentId (uint32_t id)
 Set fragment id to GSE header. More...
 
void SetGsePduLength (uint32_t bytes)
 Set GSE fragment length to PPDU header. More...
 
void SetStartIndicator ()
 Set start indicator to GSE header. More...
 
void SetTotalLength (uint32_t bytes)
 Set total length of higher layer PDU. More...
 

Static Public Member Functions

static TypeId GetTypeId (void)
 Get the type ID. More...
 

Private Attributes

const uint32_t m_continuationGseHeaderSize
 
uint32_t m_crc
 
const uint32_t m_endGseHeaderSize
 
uint8_t m_endIndicator
 
uint8_t m_fragmentId
 
const uint32_t m_fullGseHeaderSize
 Constant variables for determining the header sizes of different GSE fragments. More...
 
uint16_t m_gsePduLengthInBytes
 
uint8_t m_labelByte
 
uint16_t m_protocolType
 
const uint32_t m_startGseHeaderSize
 
uint8_t m_startIndicator
 GSE header content. More...
 
uint16_t m_totalLengthInBytes
 

Static Private Attributes

static const uint32_t m_labelFieldLengthInBytes = 3
 

Detailed Description

SatGseHeader implementation.

GSE header is added to each of the transmitted GSE packets at the GW in FWD link direction. The header is detached and interpreted at the GSE receiver at the UT. Based on the content the receiver can do the defragmentation of the higher layer packet. The size of the GSE header is determined by the Serialize and GetSerializedSize methods. The GSE header has the proper content and size according to specification.

See also
ETSI TS 102 606 V1.1.1 Digital Video Broadcasting (DVB); Generic Stream Encapsulation (GSE) Protocol

Definition at line 45 of file satellite-gse-header.h.

Constructor & Destructor Documentation

◆ SatGseHeader()

ns3::SatGseHeader::SatGseHeader ( )

Constructor.

Definition at line 35 of file satellite-gse-header.cc.

◆ ~SatGseHeader()

ns3::SatGseHeader::~SatGseHeader ( )

Destructor for SatGseHeader.

Definition at line 51 of file satellite-gse-header.cc.

Member Function Documentation

◆ Deserialize()

uint32_t ns3::SatGseHeader::Deserialize ( Buffer::Iterator  start)
virtual

Deserializes information from buffer to this instance of SatGseHeader.

Parameters
startBuffer from which the information is deserialized
Returns
Serialized size of the buffer

The GSE header includes also other fields, but currently they are not deserialized because they are not used. They are just serialized so that the header size is correct.

Definition at line 140 of file satellite-gse-header.cc.

References GetSerializedSize(), m_endIndicator, m_fragmentId, m_gsePduLengthInBytes, m_startIndicator, and m_totalLengthInBytes.

+ Here is the call graph for this function:

◆ GetEndIndicator()

uint8_t ns3::SatGseHeader::GetEndIndicator ( ) const

Get end indicator of GSE header.

Returns
End indicator

Definition at line 202 of file satellite-gse-header.cc.

References m_endIndicator.

Referenced by ns3::SatGenericStreamEncapsulator::ProcessPdu().

+ Here is the caller graph for this function:

◆ GetFragmentId()

uint32_t ns3::SatGseHeader::GetFragmentId ( ) const

Get GSE fragment id.

Returns
Fragment id

Definition at line 216 of file satellite-gse-header.cc.

References m_fragmentId.

Referenced by ns3::SatGenericStreamEncapsulator::ProcessPdu().

+ Here is the caller graph for this function:

◆ GetGseHeaderSizeInBytes()

uint32_t ns3::SatGseHeader::GetGseHeaderSizeInBytes ( uint8_t  type) const

◆ GetGsePduLength()

uint32_t ns3::SatGseHeader::GetGsePduLength ( ) const

Get GSE fragment length in bytes.

Returns
GSE PDU length

Definition at line 209 of file satellite-gse-header.cc.

References m_gsePduLengthInBytes.

Referenced by ns3::SatGenericStreamEncapsulator::ProcessPdu().

+ Here is the caller graph for this function:

◆ GetInstanceTypeId()

TypeId ns3::SatGseHeader::GetInstanceTypeId ( void  ) const
virtual

Get the type ID of instance.

Returns
the object TypeId

Definition at line 189 of file satellite-gse-header.cc.

References GetTypeId().

+ Here is the call graph for this function:

◆ GetMaxGseHeaderSizeInBytes()

uint32_t ns3::SatGseHeader::GetMaxGseHeaderSizeInBytes ( ) const

Get the maximum GSE header size.

Returns
uint32_t header size

Definition at line 297 of file satellite-gse-header.cc.

References m_continuationGseHeaderSize, m_endGseHeaderSize, m_fullGseHeaderSize, m_labelFieldLengthInBytes, and m_startGseHeaderSize.

Referenced by ns3::SatGenericStreamEncapsulator::SatGenericStreamEncapsulator().

+ Here is the caller graph for this function:

◆ GetSerializedSize()

uint32_t ns3::SatGseHeader::GetSerializedSize ( void  ) const
virtual

Get serialized size of SatGseHeader.

Returns
Serialized size in bytes

Definition at line 64 of file satellite-gse-header.cc.

References m_continuationGseHeaderSize, m_endGseHeaderSize, m_endIndicator, m_fullGseHeaderSize, m_labelFieldLengthInBytes, m_startGseHeaderSize, and m_startIndicator.

Referenced by Deserialize().

+ Here is the caller graph for this function:

◆ GetStartIndicator()

uint8_t ns3::SatGseHeader::GetStartIndicator ( ) const

Get start indicator of GSE header.

Returns
Start indicator

Definition at line 195 of file satellite-gse-header.cc.

References m_startIndicator.

Referenced by ns3::SatGenericStreamEncapsulator::ProcessPdu().

+ Here is the caller graph for this function:

◆ GetTotalLength()

uint32_t ns3::SatGseHeader::GetTotalLength ( ) const

Get total length of higher layer PDU.

Returns
Total length of HL PDU

Definition at line 223 of file satellite-gse-header.cc.

References m_totalLengthInBytes.

Referenced by ns3::SatGenericStreamEncapsulator::ProcessPdu().

+ Here is the caller graph for this function:

◆ GetTypeId()

TypeId ns3::SatGseHeader::GetTypeId ( void  )
static

Get the type ID.

Returns
the object TypeId

Definition at line 56 of file satellite-gse-header.cc.

Referenced by GetInstanceTypeId().

+ Here is the caller graph for this function:

◆ Print()

void ns3::SatGseHeader::Print ( std::ostream &  os) const
virtual

Print time stamp of this instance of SatGseHeader.

Parameters
&osOutput stream to which tag timestamp is printed.

Definition at line 179 of file satellite-gse-header.cc.

References m_crc, m_endIndicator, m_fragmentId, m_gsePduLengthInBytes, m_labelByte, m_protocolType, m_startIndicator, and m_totalLengthInBytes.

◆ Serialize()

void ns3::SatGseHeader::Serialize ( Buffer::Iterator  start) const
virtual

Serializes information to buffer from this instance of SatGseHeader.

Parameters
startBuffer in which the information is serialized

Definition at line 98 of file satellite-gse-header.cc.

References m_crc, m_endIndicator, m_fragmentId, m_gsePduLengthInBytes, m_labelByte, m_labelFieldLengthInBytes, m_protocolType, m_startIndicator, and m_totalLengthInBytes.

◆ SetEndIndicator()

void ns3::SatGseHeader::SetEndIndicator ( )

Set end indicator to GSE header.

Definition at line 237 of file satellite-gse-header.cc.

References m_endIndicator.

Referenced by ns3::SatGenericStreamEncapsulator::GetNewGsePdu().

+ Here is the caller graph for this function:

◆ SetFragmentId()

void ns3::SatGseHeader::SetFragmentId ( uint32_t  id)

Set fragment id to GSE header.

Parameters
idFragment id

Definition at line 251 of file satellite-gse-header.cc.

References m_fragmentId.

Referenced by ns3::SatGenericStreamEncapsulator::GetNewGsePdu().

+ Here is the caller graph for this function:

◆ SetGsePduLength()

void ns3::SatGseHeader::SetGsePduLength ( uint32_t  bytes)

Set GSE fragment length to PPDU header.

Parameters
bytesGSE length in bytes

Definition at line 244 of file satellite-gse-header.cc.

References m_gsePduLengthInBytes.

Referenced by ns3::SatGenericStreamEncapsulator::GetNewGsePdu().

+ Here is the caller graph for this function:

◆ SetStartIndicator()

void ns3::SatGseHeader::SetStartIndicator ( )

Set start indicator to GSE header.

Definition at line 230 of file satellite-gse-header.cc.

References m_startIndicator.

Referenced by ns3::SatGenericStreamEncapsulator::GetNewGsePdu().

+ Here is the caller graph for this function:

◆ SetTotalLength()

void ns3::SatGseHeader::SetTotalLength ( uint32_t  bytes)

Set total length of higher layer PDU.

Set in START_PPDU status type.

Parameters
bytesSize of the full HL packet

Definition at line 258 of file satellite-gse-header.cc.

References m_totalLengthInBytes.

Referenced by ns3::SatGenericStreamEncapsulator::GetNewGsePdu().

+ Here is the caller graph for this function:

Member Data Documentation

◆ m_continuationGseHeaderSize

const uint32_t ns3::SatGseHeader::m_continuationGseHeaderSize
private

◆ m_crc

uint32_t ns3::SatGseHeader::m_crc
private

Definition at line 177 of file satellite-gse-header.h.

Referenced by Print(), and Serialize().

◆ m_endGseHeaderSize

const uint32_t ns3::SatGseHeader::m_endGseHeaderSize
private

◆ m_endIndicator

uint8_t ns3::SatGseHeader::m_endIndicator
private

◆ m_fragmentId

uint8_t ns3::SatGseHeader::m_fragmentId
private

Definition at line 173 of file satellite-gse-header.h.

Referenced by Deserialize(), GetFragmentId(), Print(), Serialize(), and SetFragmentId().

◆ m_fullGseHeaderSize

const uint32_t ns3::SatGseHeader::m_fullGseHeaderSize
private

Constant variables for determining the header sizes of different GSE fragments.

Definition at line 183 of file satellite-gse-header.h.

Referenced by GetGseHeaderSizeInBytes(), GetMaxGseHeaderSizeInBytes(), and GetSerializedSize().

◆ m_gsePduLengthInBytes

uint16_t ns3::SatGseHeader::m_gsePduLengthInBytes
private

◆ m_labelByte

uint8_t ns3::SatGseHeader::m_labelByte
private

Definition at line 176 of file satellite-gse-header.h.

Referenced by Print(), and Serialize().

◆ m_labelFieldLengthInBytes

const uint32_t ns3::SatGseHeader::m_labelFieldLengthInBytes = 3
staticprivate

◆ m_protocolType

uint16_t ns3::SatGseHeader::m_protocolType
private

Definition at line 175 of file satellite-gse-header.h.

Referenced by Print(), and Serialize().

◆ m_startGseHeaderSize

const uint32_t ns3::SatGseHeader::m_startGseHeaderSize
private

◆ m_startIndicator

uint8_t ns3::SatGseHeader::m_startIndicator
private

GSE header content.

Definition at line 170 of file satellite-gse-header.h.

Referenced by Deserialize(), GetSerializedSize(), GetStartIndicator(), Print(), Serialize(), and SetStartIndicator().

◆ m_totalLengthInBytes

uint16_t ns3::SatGseHeader::m_totalLengthInBytes
private

Definition at line 174 of file satellite-gse-header.h.

Referenced by Deserialize(), GetTotalLength(), Print(), Serialize(), and SetTotalLength().


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