A Discrete-Event Network Simulator
API
ns3::UanHeaderCommon Class Reference

Common packet header fields. More...

#include "uan-header-common.h"

+ Inheritance diagram for ns3::UanHeaderCommon:
+ Collaboration diagram for ns3::UanHeaderCommon:

Public Member Functions

 UanHeaderCommon ()
 Default constructor. More...
 
 UanHeaderCommon (const Mac8Address src, const Mac8Address dest, uint8_t type, uint8_t protocolNumber)
 Create UanHeaderCommon object with given source and destination address and header type. More...
 
 ~UanHeaderCommon () override
 Destructor. More...
 
uint32_t Deserialize (Buffer::Iterator start) override
 
Mac8Address GetDest () const
 Get the destination address. More...
 
TypeId GetInstanceTypeId () const override
 Get the most derived TypeId for this Object. More...
 
uint16_t GetProtocolNumber () const
 Get the packet type value. More...
 
uint32_t GetSerializedSize () const override
 
Mac8Address GetSrc () const
 Get the source address. More...
 
uint8_t GetType () const
 Get the header type value. More...
 
void Print (std::ostream &os) const override
 
void Serialize (Buffer::Iterator start) const override
 
void SetDest (Mac8Address dest)
 Set the destination address. More...
 
void SetProtocolNumber (uint16_t protocolNumber)
 Set the packet type. More...
 
void SetSrc (Mac8Address src)
 Set the source address. More...
 
void SetType (uint8_t type)
 Set the header type. More...
 
- Public Member Functions inherited from ns3::Header
 ~Header () override
 
virtual uint32_t Deserialize (Buffer::Iterator start)=0
 Deserialize the object from a buffer iterator. More...
 
virtual uint32_t Deserialize (Buffer::Iterator start, Buffer::Iterator end)
 Deserialize the object from a buffer iterator. More...
 
- Public Member Functions inherited from ns3::Chunk
virtual uint32_t Deserialize (Buffer::Iterator start, Buffer::Iterator end)
 Deserialize the object from a buffer iterator. More...
 
- Public Member Functions inherited from ns3::ObjectBase
virtual ~ObjectBase ()
 Virtual destructor. More...
 
void GetAttribute (std::string name, AttributeValue &value) const
 Get the value of an attribute, raising fatal errors if unsuccessful. More...
 
bool GetAttributeFailSafe (std::string name, AttributeValue &value) const
 Get the value of an attribute without raising errors. More...
 
void SetAttribute (std::string name, const AttributeValue &value)
 Set a single attribute, raising fatal errors if unsuccessful. More...
 
bool SetAttributeFailSafe (std::string name, const AttributeValue &value)
 Set a single attribute without raising errors. More...
 
bool TraceConnect (std::string name, std::string context, const CallbackBase &cb)
 Connect a TraceSource to a Callback with a context. More...
 
bool TraceConnectWithoutContext (std::string name, const CallbackBase &cb)
 Connect a TraceSource to a Callback without a context. More...
 
bool TraceDisconnect (std::string name, std::string context, const CallbackBase &cb)
 Disconnect from a TraceSource a Callback previously connected with a context. More...
 
bool TraceDisconnectWithoutContext (std::string name, const CallbackBase &cb)
 Disconnect from a TraceSource a Callback previously connected without a context. More...
 

Static Public Member Functions

static TypeId GetTypeId ()
 Register this type. More...
 
- Static Public Member Functions inherited from ns3::Header
static TypeId GetTypeId ()
 Get the type ID. More...
 
- Static Public Member Functions inherited from ns3::Chunk
static TypeId GetTypeId ()
 Get the type ID. More...
 
- Static Public Member Functions inherited from ns3::ObjectBase
static TypeId GetTypeId ()
 Get the type ID. More...
 

Private Attributes

Mac8Address m_dest
 The destination address. More...
 
Mac8Address m_src
 The source address. More...
 
UanProtocolBits m_uanProtocolBits {0}
 The type and protocol bits. More...
 

Additional Inherited Members

- Protected Member Functions inherited from ns3::ObjectBase
void ConstructSelf (const AttributeConstructionList &attributes)
 Complete construction of ObjectBase; invoked by derived classes. More...
 
virtual void NotifyConstructionCompleted ()
 Notifier called once the ObjectBase is fully constructed. More...
 

Detailed Description

Common packet header fields.

1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | src addr | dst addr | prtcl | type | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+

src addr: The MAC8 source address

dst addr: The MAC8 destination address

prtcl: The layer 3 protocol prtcl=1 (IPv4) prtcl=2 (ARP) prtcl=3 (IPv6)

type: The type field is MAC protocol specific

Definition at line 64 of file uan-header-common.h.

Constructor & Destructor Documentation

◆ UanHeaderCommon() [1/2]

ns3::UanHeaderCommon::UanHeaderCommon ( )

Default constructor.

Definition at line 33 of file uan-header-common.cc.

◆ UanHeaderCommon() [2/2]

ns3::UanHeaderCommon::UanHeaderCommon ( const Mac8Address  src,
const Mac8Address  dest,
uint8_t  type,
uint8_t  protocolNumber 
)

Create UanHeaderCommon object with given source and destination address and header type.

Parameters
srcSource address defined in header.
destDestination address defined in header.
typeHeader type.
protocolNumberthe layer 3 protocol number

Definition at line 37 of file uan-header-common.cc.

References ns3::UanProtocolBits::m_type, m_uanProtocolBits, SetProtocolNumber(), and check-style-clang-format::type.

+ Here is the call graph for this function:

◆ ~UanHeaderCommon()

ns3::UanHeaderCommon::~UanHeaderCommon ( )
override

Destructor.

Definition at line 65 of file uan-header-common.cc.

Member Function Documentation

◆ Deserialize()

uint32_t ns3::UanHeaderCommon::Deserialize ( Buffer::Iterator  start)
overridevirtual
Parameters
startan iterator which points to where the header should read from.
Returns
the number of bytes read.

This method is used by Packet::RemoveHeader to re-create a header from the byte buffer of a packet. The data read is expected to match bit-for-bit the representation of this header in real networks.

Note that data is not actually removed from the buffer to which the iterator points. Both Packet::RemoveHeader() and Packet::PeekHeader() call Deserialize(), but only the RemoveHeader() has additional statements to remove the header bytes from the underlying buffer and associated metadata.

Implements ns3::Header.

Definition at line 171 of file uan-header-common.cc.

References ns3::Buffer::Iterator::GetDistanceFrom(), m_dest, ns3::UanProtocolBits::m_protocolNumber, m_src, ns3::UanProtocolBits::m_type, m_uanProtocolBits, ns3::Buffer::Iterator::ReadU8(), and two-ray-to-three-gpp-ch-calibration::start.

+ Here is the call graph for this function:

◆ GetDest()

Mac8Address ns3::UanHeaderCommon::GetDest ( ) const

Get the destination address.

Returns
Mac8Address in destination field.

Definition at line 113 of file uan-header-common.cc.

References m_dest.

Referenced by ns3::UanMacRc::IsPhy1Ok(), ns3::UanMacCw::PhyRxPacketGood(), ns3::UanMacRc::ReceiveOkFromPhy(), ns3::UanMacRcGw::ReceivePacket(), ns3::UanMacAloha::RxPacketGood(), ns3::UanMacRcGw::SendPacket(), and ns3::UanMacRc::SendPacket().

+ Here is the caller graph for this function:

◆ GetInstanceTypeId()

TypeId ns3::UanHeaderCommon::GetInstanceTypeId ( ) const
overridevirtual

Get the most derived TypeId for this Object.

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

Returns
The TypeId associated to the most-derived type of this instance.

Implements ns3::ObjectBase.

Definition at line 60 of file uan-header-common.cc.

References GetTypeId().

+ Here is the call graph for this function:

◆ GetProtocolNumber()

uint16_t ns3::UanHeaderCommon::GetProtocolNumber ( ) const

Get the packet type value.

Returns
value of protocolNumber field.

Definition at line 131 of file uan-header-common.cc.

References ARP_PROT_NUMBER, IPV4_PROT_NUMBER, IPV6_PROT_NUMBER, ns3::UanProtocolBits::m_protocolNumber, and m_uanProtocolBits.

Referenced by ns3::UanMacCw::PhyRxPacketGood(), ns3::UanMacRc::ReceiveOkFromPhy(), ns3::UanMacRcGw::ReceivePacket(), and ns3::UanMacAloha::RxPacketGood().

+ Here is the caller graph for this function:

◆ GetSerializedSize()

uint32_t ns3::UanHeaderCommon::GetSerializedSize ( ) const
overridevirtual
Returns
the expected size of the header.

This method is used by Packet::AddHeader to store a header into the byte buffer of a packet. This method should return the number of bytes which are needed to store the full header data by Serialize.

Implements ns3::Header.

Definition at line 151 of file uan-header-common.cc.

Referenced by ns3::Reservation::Reservation(), ns3::UanMacRc::UanMacRc(), ns3::UanMacRcGw::UanMacRcGw(), ns3::UanMacRcGw::ComputeExpS(), AcousticModemEnergyTestCase::DoRun(), and ns3::UanMacRc::ReceiveOkFromPhy().

+ Here is the caller graph for this function:

◆ GetSrc()

Mac8Address ns3::UanHeaderCommon::GetSrc ( ) const

Get the source address.

Returns
Mac8Address in source field.

Definition at line 119 of file uan-header-common.cc.

References m_src.

Referenced by ns3::UanPhyCalcSinrDual::CalcSinrDb(), ns3::UanMacCw::PhyRxPacketGood(), ns3::UanMacRc::ReceiveOkFromPhy(), ns3::UanMacRcGw::ReceivePacket(), and ns3::UanMacAloha::RxPacketGood().

+ Here is the caller graph for this function:

◆ GetType()

uint8_t ns3::UanHeaderCommon::GetType ( ) const

Get the header type value.

Returns
value of type field.

Definition at line 125 of file uan-header-common.cc.

References ns3::UanProtocolBits::m_type, and m_uanProtocolBits.

Referenced by ns3::UanPhyCalcSinrDual::CalcSinrDb(), ns3::UanMacRc::IsPhy1Ok(), ns3::UanMacRc::ReceiveOkFromPhy(), ns3::UanMacRcGw::ReceivePacket(), ns3::UanMacRcGw::SendPacket(), and ns3::UanMacRc::SendPacket().

+ Here is the caller graph for this function:

◆ GetTypeId()

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

Register this type.

Returns
The TypeId.

Definition at line 50 of file uan-header-common.cc.

References ns3::TypeId::SetParent().

Referenced by GetInstanceTypeId().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ Print()

void ns3::UanHeaderCommon::Print ( std::ostream &  os) const
overridevirtual
Parameters
osoutput stream This method is used by Packet::Print to print the content of a header as ascii data to a c++ output stream. Although the header 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.

Definition at line 185 of file uan-header-common.cc.

References m_dest, ns3::UanProtocolBits::m_protocolNumber, m_src, ns3::UanProtocolBits::m_type, and m_uanProtocolBits.

◆ Serialize()

void ns3::UanHeaderCommon::Serialize ( Buffer::Iterator  start) const
overridevirtual
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 157 of file uan-header-common.cc.

References first::address, ns3::Mac8Address::CopyTo(), m_dest, ns3::UanProtocolBits::m_protocolNumber, m_src, ns3::UanProtocolBits::m_type, m_uanProtocolBits, and two-ray-to-three-gpp-ch-calibration::start.

+ Here is the call graph for this function:

◆ SetDest()

void ns3::UanHeaderCommon::SetDest ( Mac8Address  dest)

Set the destination address.

Parameters
destAddress of destination node.

Definition at line 70 of file uan-header-common.cc.

References m_dest.

Referenced by ns3::UanMacRcGw::EndCycle(), ns3::UanMacAloha::Enqueue(), ns3::UanMacCw::Enqueue(), ns3::UanMacRc::ScheduleData(), and ns3::UanMacRcGw::StartCycle().

+ Here is the caller graph for this function:

◆ SetProtocolNumber()

void ns3::UanHeaderCommon::SetProtocolNumber ( uint16_t  protocolNumber)

Set the packet type.

Used to indicate the layer 3 protocol

Parameters
protocolNumberThe layer 3 protocol number value.

Definition at line 88 of file uan-header-common.cc.

References ARP_PROT_NUMBER, IPV4_PROT_NUMBER, IPV6_PROT_NUMBER, ns3::UanProtocolBits::m_protocolNumber, m_uanProtocolBits, and NS_ASSERT_MSG.

Referenced by UanHeaderCommon(), ns3::UanMacAloha::Enqueue(), ns3::UanMacCw::Enqueue(), and ns3::UanMacRcGw::StartCycle().

+ Here is the caller graph for this function:

◆ SetSrc()

void ns3::UanHeaderCommon::SetSrc ( Mac8Address  src)

Set the source address.

Parameters
srcAddress of packet source node.

Definition at line 76 of file uan-header-common.cc.

References m_src.

Referenced by ns3::UanMacRcGw::EndCycle(), ns3::UanMacAloha::Enqueue(), ns3::UanMacCw::Enqueue(), ns3::UanMacRc::ScheduleData(), and ns3::UanMacRcGw::StartCycle().

+ Here is the caller graph for this function:

◆ SetType()

void ns3::UanHeaderCommon::SetType ( uint8_t  type)

Set the header type.

Use of this value is protocol specific.

Parameters
typeThe type value.

Definition at line 82 of file uan-header-common.cc.

References ns3::UanProtocolBits::m_type, m_uanProtocolBits, and check-style-clang-format::type.

Referenced by ns3::UanMacRcGw::EndCycle(), ns3::UanMacAloha::Enqueue(), ns3::UanMacCw::Enqueue(), ns3::UanMacRc::ScheduleData(), and ns3::UanMacRcGw::StartCycle().

+ Here is the caller graph for this function:

Member Data Documentation

◆ m_dest

Mac8Address ns3::UanHeaderCommon::m_dest
private

The destination address.

Definition at line 151 of file uan-header-common.h.

Referenced by Deserialize(), GetDest(), Print(), Serialize(), and SetDest().

◆ m_src

Mac8Address ns3::UanHeaderCommon::m_src
private

The source address.

Definition at line 152 of file uan-header-common.h.

Referenced by Deserialize(), GetSrc(), Print(), Serialize(), and SetSrc().

◆ m_uanProtocolBits

UanProtocolBits ns3::UanHeaderCommon::m_uanProtocolBits {0}
private

The type and protocol bits.

Definition at line 153 of file uan-header-common.h.

Referenced by UanHeaderCommon(), Deserialize(), GetProtocolNumber(), GetType(), Print(), Serialize(), SetProtocolNumber(), and SetType().


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