A Discrete-Event Network Simulator
API
Loading...
Searching...
No Matches
ns3::BandwidthRequestHeader Class Reference

This class implements the bandwidth-request mac Header as described by IEEE Standard for Local and metropolitan area networks Part 16: Air Interface for Fixed Broadband Wireless Access Systems 6.3.2.1.2 Bandwidth request header, page 38. More...

#include "wimax-mac-header.h"

+ Inheritance diagram for ns3::BandwidthRequestHeader:
+ Collaboration diagram for ns3::BandwidthRequestHeader:

Public Types

enum  HeaderType { HEADER_TYPE_INCREMENTAL , HEADER_TYPE_AGGREGATE }
 Header type enumeration. More...
 

Public Member Functions

 BandwidthRequestHeader ()
 
 ~BandwidthRequestHeader () override
 
bool check_hcs () const
 Check HCS.
 
uint32_t Deserialize (Buffer::Iterator start) override
 
uint32_t GetBr () const
 Get BR field.
 
Cid GetCid () const
 Get CID field.
 
uint8_t GetEc () const
 Get EC field.
 
uint8_t GetHcs () const
 Get HCS field.
 
uint8_t GetHt () const
 Get HT field.
 
TypeId GetInstanceTypeId () const override
 Get the most derived TypeId for this Object.
 
std::string GetName () const
 Get name field.
 
uint32_t GetSerializedSize () const override
 
uint8_t GetType () const
 Get type field.
 
void Print (std::ostream &os) const override
 
void Serialize (Buffer::Iterator start) const override
 
void SetBr (uint32_t br)
 Set BR field.
 
void SetCid (Cid cid)
 Set CID field.
 
void SetEc (uint8_t ec)
 Set EC field.
 
void SetHcs (uint8_t hcs)
 Set HCS field.
 
void SetHt (uint8_t ht)
 Set HT field.
 
void SetType (uint8_t type)
 Set type field.
 
- Public Member Functions inherited from ns3::Header
 ~Header () override
 
uint32_t Deserialize (Buffer::Iterator start) override=0
 
virtual uint32_t Deserialize (Buffer::Iterator start)=0
 Deserialize the object from a buffer iterator.
 
virtual uint32_t Deserialize (Buffer::Iterator start, Buffer::Iterator end)
 Deserialize the object from a buffer iterator.
 
virtual uint32_t GetSerializedSize () const =0
 
void Print (std::ostream &os) const override=0
 
virtual void Serialize (Buffer::Iterator start) const =0
 
virtual uint32_t Deserialize (Buffer::Iterator start)=0
 Deserialize the object from a buffer iterator.
 
virtual uint32_t Deserialize (Buffer::Iterator start, Buffer::Iterator end)
 Deserialize the object from a buffer iterator.
 
virtual void Print (std::ostream &os) const =0
 Print the object contents.
 
- Public Member Functions inherited from ns3::ObjectBase
virtual ~ObjectBase ()
 Virtual destructor.
 
void GetAttribute (std::string name, AttributeValue &value) const
 Get the value of an attribute, raising fatal errors if unsuccessful.
 
bool GetAttributeFailSafe (std::string name, AttributeValue &value) const
 Get the value of an attribute without raising errors.
 
virtual TypeId GetInstanceTypeId () const =0
 Get the most derived TypeId for this Object.
 
void SetAttribute (std::string name, const AttributeValue &value)
 Set a single attribute, raising fatal errors if unsuccessful.
 
bool SetAttributeFailSafe (std::string name, const AttributeValue &value)
 Set a single attribute without raising errors.
 
bool TraceConnect (std::string name, std::string context, const CallbackBase &cb)
 Connect a TraceSource to a Callback with a context.
 
bool TraceConnectWithoutContext (std::string name, const CallbackBase &cb)
 Connect a TraceSource to a Callback without a context.
 
bool TraceDisconnect (std::string name, std::string context, const CallbackBase &cb)
 Disconnect from a TraceSource a Callback previously connected with a context.
 
bool TraceDisconnectWithoutContext (std::string name, const CallbackBase &cb)
 Disconnect from a TraceSource a Callback previously connected without a context.
 

Static Public Member Functions

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

Private Attributes

uint8_t c_hcs
 calculated header check sequence; this is used to check if the received header is correct or not
 
uint32_t m_br
 Bandwidth Request.
 
Cid m_cid
 Connection identifier.
 
uint8_t m_ec
 Encryption Control.
 
uint8_t m_hcs
 Header Check Sequence.
 
uint8_t m_ht
 Header type.
 
uint8_t m_type
 type
 

Additional Inherited Members

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

Detailed Description

This class implements the bandwidth-request mac Header as described by IEEE Standard for Local and metropolitan area networks Part 16: Air Interface for Fixed Broadband Wireless Access Systems 6.3.2.1.2 Bandwidth request header, page 38.

Definition at line 259 of file wimax-mac-header.h.

Member Enumeration Documentation

◆ HeaderType

Header type enumeration.

Enumerator
HEADER_TYPE_INCREMENTAL 
HEADER_TYPE_AGGREGATE 

Definition at line 263 of file wimax-mac-header.h.

Constructor & Destructor Documentation

◆ BandwidthRequestHeader()

ns3::BandwidthRequestHeader::BandwidthRequestHeader ( )

Definition at line 335 of file wimax-mac-header.cc.

◆ ~BandwidthRequestHeader()

ns3::BandwidthRequestHeader::~BandwidthRequestHeader ( )
override

Definition at line 345 of file wimax-mac-header.cc.

Member Function Documentation

◆ check_hcs()

bool ns3::BandwidthRequestHeader::check_hcs ( ) const

Check HCS.

Returns
true if HCS is validated

Definition at line 528 of file wimax-mac-header.cc.

References c_hcs, and m_hcs.

Referenced by ns3::BaseStationNetDevice::DoReceive().

+ Here is the caller graph for this function:

◆ Deserialize()

uint32_t ns3::BandwidthRequestHeader::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 492 of file wimax-mac-header.cc.

References c_hcs, ns3::CRC8Calculate(), ns3::Buffer::Iterator::GetDistanceFrom(), m_br, m_cid, m_ec, m_hcs, m_ht, m_type, and ns3::Buffer::Iterator::ReadU8().

+ Here is the call graph for this function:

◆ GetBr()

uint32_t ns3::BandwidthRequestHeader::GetBr ( ) const

Get BR field.

Returns
the BR

Definition at line 404 of file wimax-mac-header.cc.

References m_br.

Referenced by ns3::BandwidthManager::ProcessBandwidthRequest(), and ns3::UplinkSchedulerMBQoS::ProcessBandwidthRequest().

+ Here is the caller graph for this function:

◆ GetCid()

Cid ns3::BandwidthRequestHeader::GetCid ( ) const

Get CID field.

Returns
the CID

Definition at line 410 of file wimax-mac-header.cc.

References m_cid.

Referenced by ns3::BaseStationNetDevice::DoReceive(), ns3::BandwidthManager::ProcessBandwidthRequest(), and ns3::UplinkSchedulerMBQoS::ProcessBandwidthRequest().

+ Here is the caller graph for this function:

◆ GetEc()

uint8_t ns3::BandwidthRequestHeader::GetEc ( ) const

Get EC field.

Returns
the EC

Definition at line 392 of file wimax-mac-header.cc.

References m_ec.

◆ GetHcs()

uint8_t ns3::BandwidthRequestHeader::GetHcs ( ) const

Get HCS field.

Returns
the HCS

Definition at line 416 of file wimax-mac-header.cc.

References m_hcs.

◆ GetHt()

uint8_t ns3::BandwidthRequestHeader::GetHt ( ) const

Get HT field.

Returns
the HT

Definition at line 386 of file wimax-mac-header.cc.

References m_ht.

Referenced by ns3::BaseStationNetDevice::DoReceive().

+ Here is the caller graph for this function:

◆ GetInstanceTypeId()

TypeId ns3::BandwidthRequestHeader::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 438 of file wimax-mac-header.cc.

References GetTypeId().

+ Here is the call graph for this function:

◆ GetName()

std::string ns3::BandwidthRequestHeader::GetName ( ) const

Get name field.

Returns
the name

Definition at line 422 of file wimax-mac-header.cc.

◆ GetSerializedSize()

uint32_t ns3::BandwidthRequestHeader::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 453 of file wimax-mac-header.cc.

◆ GetType()

uint8_t ns3::BandwidthRequestHeader::GetType ( ) const

Get type field.

Returns
the type

Definition at line 398 of file wimax-mac-header.cc.

References m_type.

Referenced by ns3::BandwidthManager::ProcessBandwidthRequest().

+ Here is the caller graph for this function:

◆ GetTypeId()

TypeId ns3::BandwidthRequestHeader::GetTypeId ( )
static

Get the type ID.

Returns
the object TypeId

Definition at line 428 of file wimax-mac-header.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::BandwidthRequestHeader::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 444 of file wimax-mac-header.cc.

References ns3::Cid::GetIdentifier(), m_br, m_cid, m_ec, m_hcs, and m_type.

+ Here is the call graph for this function:

◆ Serialize()

void ns3::BandwidthRequestHeader::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 462 of file wimax-mac-header.cc.

References ns3::CRC8Calculate(), ns3::Cid::GetIdentifier(), m_br, m_cid, m_ec, m_ht, m_type, and ns3::Buffer::Iterator::WriteU8().

+ Here is the call graph for this function:

◆ SetBr()

void ns3::BandwidthRequestHeader::SetBr ( uint32_t  br)

Set BR field.

Parameters
brthe BR

Definition at line 368 of file wimax-mac-header.cc.

References m_br.

Referenced by ns3::BandwidthManager::SendBandwidthRequest().

+ Here is the caller graph for this function:

◆ SetCid()

void ns3::BandwidthRequestHeader::SetCid ( Cid  cid)

Set CID field.

Parameters
cidthe CID

Definition at line 374 of file wimax-mac-header.cc.

References m_cid.

Referenced by ns3::BandwidthManager::SendBandwidthRequest().

+ Here is the caller graph for this function:

◆ SetEc()

void ns3::BandwidthRequestHeader::SetEc ( uint8_t  ec)

Set EC field.

Parameters
ecthe EC

Definition at line 356 of file wimax-mac-header.cc.

References m_ec.

◆ SetHcs()

void ns3::BandwidthRequestHeader::SetHcs ( uint8_t  hcs)

Set HCS field.

Parameters
hcsthe HCS

Definition at line 380 of file wimax-mac-header.cc.

References m_hcs.

◆ SetHt()

void ns3::BandwidthRequestHeader::SetHt ( uint8_t  ht)

Set HT field.

Parameters
htthe HT

Definition at line 350 of file wimax-mac-header.cc.

References m_ht.

◆ SetType()

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

Set type field.

Parameters
typethe type

Definition at line 362 of file wimax-mac-header.cc.

References m_type.

Referenced by ns3::BandwidthManager::SendBandwidthRequest().

+ Here is the caller graph for this function:

Member Data Documentation

◆ c_hcs

uint8_t ns3::BandwidthRequestHeader::c_hcs
private

calculated header check sequence; this is used to check if the received header is correct or not

Definition at line 362 of file wimax-mac-header.h.

Referenced by check_hcs(), and Deserialize().

◆ m_br

uint32_t ns3::BandwidthRequestHeader::m_br
private

Bandwidth Request.

Definition at line 359 of file wimax-mac-header.h.

Referenced by Deserialize(), GetBr(), Print(), Serialize(), and SetBr().

◆ m_cid

Cid ns3::BandwidthRequestHeader::m_cid
private

Connection identifier.

Definition at line 360 of file wimax-mac-header.h.

Referenced by Deserialize(), GetCid(), Print(), Serialize(), and SetCid().

◆ m_ec

uint8_t ns3::BandwidthRequestHeader::m_ec
private

Encryption Control.

Definition at line 357 of file wimax-mac-header.h.

Referenced by Deserialize(), GetEc(), Print(), Serialize(), and SetEc().

◆ m_hcs

uint8_t ns3::BandwidthRequestHeader::m_hcs
private

Header Check Sequence.

Definition at line 361 of file wimax-mac-header.h.

Referenced by check_hcs(), Deserialize(), GetHcs(), Print(), and SetHcs().

◆ m_ht

uint8_t ns3::BandwidthRequestHeader::m_ht
private

Header type.

Definition at line 356 of file wimax-mac-header.h.

Referenced by Deserialize(), GetHt(), Serialize(), and SetHt().

◆ m_type

uint8_t ns3::BandwidthRequestHeader::m_type
private

type

Definition at line 358 of file wimax-mac-header.h.

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


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