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

this class implements the link manager of subscriber station net device. More...

#include "ss-link-manager.h"

+ Inheritance diagram for ns3::SSLinkManager:
+ Collaboration diagram for ns3::SSLinkManager:

Public Member Functions

 SSLinkManager (Ptr< SubscriberStationNetDevice > ss)
 Constructor. More...
 
 ~SSLinkManager (void)
 
void DoDispose (void)
 Destructor implementation. More...
 
EventId GetDlMapSyncTimeoutEvent (void)
 Get DL map sync timeput event. More...
 
bool GetRangingIntervalFound (void) const
 Get ranging interval found. More...
 
void IncrementNrInvitedPollsRecvd (void)
 Increment NR invited polls received. More...
 
bool IsUlChannelUsable (void)
 Is UL channel usable. More...
 
void PerformBackoff (void)
 Perform backoff. More...
 
void PerformRanging (Cid cid, RngRsp rngrsp)
 Perform ranging. More...
 
void ScheduleScanningRestart (Time interval, SubscriberStationNetDevice::EventType eventType, bool deleteUlParameters, EventId &eventId)
 Schedule scanning request. More...
 
void SendRangingRequest (uint8_t uiuc, uint16_t allocationSize)
 Send ranging request. More...
 
void SetBsEirp (uint16_t bs_eirp)
 Set BS EIRP. More...
 
void SetEirXPIrMax (uint16_t eir_x_p_ir_max)
 Set EIRX IR maximum. More...
 
void SetNrRangingTransOpps (uint8_t nrRangingTransOpps)
 Ser NR ranging trans opps. More...
 
void SetRangingCW (uint8_t rangingCW)
 Set ranging CW. More...
 
void SetRangingIntervalFound (bool rangingIntervalFound)
 Set ranging interval found. More...
 
void StartContentionResolution (void)
 Start contention resolution. More...
 
void StartScanning (SubscriberStationNetDevice::EventType type, bool deleteParameters)
 Start scanning. More...
 
- Public Member Functions inherited from ns3::Object
 Object ()
 Constructor. More...
 
virtual ~Object ()
 Destructor. More...
 
void AggregateObject (Ptr< Object > other)
 Aggregate two Objects together. More...
 
void Dispose (void)
 Dispose of this Object. More...
 
AggregateIterator GetAggregateIterator (void) const
 Get an iterator to the Objects aggregated to this one. More...
 
virtual TypeId GetInstanceTypeId (void) const
 Get the most derived TypeId for this Object. More...
 
template<>
Ptr< ObjectGetObject () const
 Specialization of () for objects of type ns3::Object. More...
 
template<typename T >
Ptr< T > GetObject (TypeId tid) const
 Get a pointer to the requested aggregated Object by TypeId. More...
 
template<>
Ptr< ObjectGetObject (TypeId tid) const
 Specialization of (TypeId tid) for objects of type ns3::Object. More...
 
template<typename T >
Ptr< T > GetObject (void) const
 Get a pointer to the requested aggregated Object. More...
 
void Initialize (void)
 Invoke DoInitialize on all Objects aggregated to this one. More...
 
bool IsInitialized (void) const
 Check if the object has been initialized. More...
 
- Public Member Functions inherited from ns3::SimpleRefCount< Object, ObjectBase, ObjectDeleter >
 SimpleRefCount ()
 Default constructor. More...
 
 SimpleRefCount (const SimpleRefCount &o[[maybe_unused]])
 Copy constructor. More...
 
uint32_t GetReferenceCount (void) const
 Get the reference count of the object. More...
 
SimpleRefCountoperator= ([[maybe_unused]] const SimpleRefCount &o)
 Assignment operator. More...
 
void Ref (void) const
 Increment the reference count. More...
 
void Unref (void) const
 Decrement the reference count. 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 erros. 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 (void)
 Get the type ID. More...
 
- Static Public Member Functions inherited from ns3::Object
static TypeId GetTypeId (void)
 Register this type. More...
 
- Static Public Member Functions inherited from ns3::ObjectBase
static TypeId GetTypeId (void)
 Get the type ID. More...
 

Private Member Functions

 SSLinkManager (const SSLinkManager &)
 type conversion operator More...
 
void AdjustRangingParameters (const RngRsp &rngrsp)
 Adjust ranging parameters. More...
 
uint16_t CalculateMaxIRSignalStrength (void)
 Calculate maximum IR signal strength. More...
 
void DeleteUplinkParameters (void)
 Delete uplink parameters. More...
 
void EndScanning (bool status, uint64_t frequency)
 End scanning. More...
 
uint16_t GetMinTransmitPowerLevel (void)
 Get minimum transmit power level. More...
 
void IncreaseRangingRequestCW (void)
 Increase rnaging request CW. More...
 
void NegotiateBasicCapabilities (void)
 Negotiate basic capabilities. More...
 
SSLinkManageroperator= (const SSLinkManager &)
 assignment operator More...
 
void ResetRangingRequestCW (void)
 Reset ranging request CW. More...
 
bool SearchForDlChannel (uint8_t channel)
 Search for DL channel. More...
 
void SelectRandomBackoff (void)
 Select random backoff. More...
 
void StartSynchronizing (void)
 Start synchronizing. More...
 

Private Attributes

uint16_t m_bsEirp
 BS EIRP. More...
 
uint8_t m_contentionRangingRetries
 contention ranging retries More...
 
uint8_t m_dlChnlNr
 indicates the channel/frequency currently the SS is scanning More...
 
EventId m_dlMapSyncTimeoutEvent
 DL map sync timeout event. More...
 
uint16_t m_eirXPIrMax
 initial ranging maximum equivalent isotropic received power at BS More...
 
uint64_t m_frequency
 frequency on which it is currently operating, i.e., where scanning was successful More...
 
uint8_t m_initRangOppNumber
 Initial Ranging opportunity (1–255) in which SS transmitted the RNG_REQ. More...
 
bool m_isBackoffSet
 is backoff set More...
 
uint16_t m_nrInvitedPollsRecvd
 number invited polls received More...
 
uint8_t m_nrRangingTransOpps
 number ranging trans opps More...
 
uint16_t m_nrRngReqsSent
 number rang requests sent More...
 
uint16_t m_nrRngRspsRecvd
 number rang responses received More...
 
uint16_t m_pTxIrMax
 maximum transmit signal strength for initial ranging calculated by SS More...
 
uint8_t m_rangingAnomalies
 ranging anomalies More...
 
uint8_t m_rangingBO
 ranging BO More...
 
uint8_t m_rangingCW
 ranging CW More...
 
bool m_rangingIntervalFound
 ranging interval found More...
 
WimaxNetDevice::RangingStatus m_rangingStatus
 ranging status More...
 
RngReq m_rngreq
 rng request More...
 
uint32_t m_rngReqFrameNumber
 frame number in which SS sent RNG_REQ message More...
 
Ptr< SubscriberStationNetDevicem_ss
 subscriber station device More...
 
EventId m_waitForRngRspEvent
 wait for rang response event More...
 

Additional Inherited Members

- Protected Member Functions inherited from ns3::Object
 Object (const Object &o)
 Copy an Object. More...
 
virtual void DoInitialize (void)
 Initialize() implementation. More...
 
virtual void NotifyNewAggregate (void)
 Notify all Objects aggregated to this one of a new Object being aggregated. More...
 
- Protected Member Functions inherited from ns3::ObjectBase
void ConstructSelf (const AttributeConstructionList &attributes)
 Complete construction of ObjectBase; invoked by derived classes. More...
 
virtual void NotifyConstructionCompleted (void)
 Notifier called once the ObjectBase is fully constructed. More...
 

Detailed Description

this class implements the link manager of subscriber station net device.

An ss link manager is responsible for link scanning and ranging

Config Paths

ns3::SSLinkManager is accessible through the following paths with Config::Set and Config::Connect:

  • "/NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/$ns3::SubscriberStationNetDevice/LinkManager"
  • "/NodeList/[i]/DeviceList/[i]/$ns3::SubscriberStationNetDevice/LinkManager"

No Attributes are defined for this type.
No TraceSources are defined for this type.
Size of this type is 160 bytes (on a 64-bit architecture).

Definition at line 41 of file ss-link-manager.h.

Constructor & Destructor Documentation

◆ SSLinkManager() [1/2]

ns3::SSLinkManager::SSLinkManager ( Ptr< SubscriberStationNetDevice ss)

Constructor.

Parameters
sssubscriber station device

Definition at line 48 of file ss-link-manager.cc.

◆ ~SSLinkManager()

ns3::SSLinkManager::~SSLinkManager ( void  )

Definition at line 72 of file ss-link-manager.cc.

References m_ss.

◆ SSLinkManager() [2/2]

ns3::SSLinkManager::SSLinkManager ( const SSLinkManager )
private

type conversion operator

Member Function Documentation

◆ AdjustRangingParameters()

void ns3::SSLinkManager::AdjustRangingParameters ( const RngRsp rngrsp)
private

Adjust ranging parameters.

Parameters
rngrspthe ranging response

Definition at line 449 of file ss-link-manager.cc.

References ns3::RngRsp::GetOffsetFreqAdjust(), ns3::RngRsp::GetPowerLevelAdjust(), and ns3::RngRsp::GetTimingAdjust().

Referenced by PerformRanging().

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

◆ CalculateMaxIRSignalStrength()

uint16_t ns3::SSLinkManager::CalculateMaxIRSignalStrength ( void  )
private

Calculate maximum IR signal strength.

Returns
the maximum IR signal strength

Definition at line 473 of file ss-link-manager.cc.

References GetMinTransmitPowerLevel(), m_bsEirp, and m_eirXPIrMax.

Referenced by SendRangingRequest().

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

◆ DeleteUplinkParameters()

void ns3::SSLinkManager::DeleteUplinkParameters ( void  )
private

Delete uplink parameters.

Definition at line 436 of file ss-link-manager.cc.

References m_ss.

Referenced by StartScanning().

+ Here is the caller graph for this function:

◆ DoDispose()

void ns3::SSLinkManager::DoDispose ( void  )
virtual

Destructor implementation.

This method is called by Dispose() or by the Object's destructor, whichever comes first.

Subclasses are expected to implement their real destruction code in an overridden version of this method and chain up to their parent's implementation once they are done. i.e, for simplicity, the destructor of every subclass should be empty and its content should be moved to the associated DoDispose() method.

It is safe to call GetObject() from within this method.

Reimplemented from ns3::Object.

Definition at line 79 of file ss-link-manager.cc.

References m_ss.

◆ EndScanning()

void ns3::SSLinkManager::EndScanning ( bool  status,
uint64_t  frequency 
)
private

End scanning.

Parameters
statusthe end status
frequencythe frequency

Definition at line 165 of file ss-link-manager.cc.

References ns3::SubscriberStationNetDevice::EVENT_NONE, m_frequency, StartScanning(), and StartSynchronizing().

Referenced by StartScanning().

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

◆ GetDlMapSyncTimeoutEvent()

EventId ns3::SSLinkManager::GetDlMapSyncTimeoutEvent ( void  )

Get DL map sync timeput event.

Returns
the event ID

Definition at line 127 of file ss-link-manager.cc.

References m_dlMapSyncTimeoutEvent.

◆ GetMinTransmitPowerLevel()

uint16_t ns3::SSLinkManager::GetMinTransmitPowerLevel ( void  )
private

Get minimum transmit power level.

Returns
the minimum transmit power level

Definition at line 491 of file ss-link-manager.cc.

Referenced by CalculateMaxIRSignalStrength().

+ Here is the caller graph for this function:

◆ GetRangingIntervalFound()

bool ns3::SSLinkManager::GetRangingIntervalFound ( void  ) const

Get ranging interval found.

Returns
the ranging interval found

Definition at line 103 of file ss-link-manager.cc.

References m_rangingIntervalFound.

◆ GetTypeId()

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

Get the type ID.

Returns
the object TypeId

Definition at line 40 of file ss-link-manager.cc.

References ns3::TypeId::SetParent().

+ Here is the call graph for this function:

◆ IncreaseRangingRequestCW()

void ns3::SSLinkManager::IncreaseRangingRequestCW ( void  )
private

Increase rnaging request CW.

Definition at line 332 of file ss-link-manager.cc.

References m_rangingCW, m_ss, and min.

Referenced by StartContentionResolution().

+ Here is the caller graph for this function:

◆ IncrementNrInvitedPollsRecvd()

void ns3::SSLinkManager::IncrementNrInvitedPollsRecvd ( void  )

Increment NR invited polls received.

Definition at line 121 of file ss-link-manager.cc.

References m_nrInvitedPollsRecvd.

◆ IsUlChannelUsable()

bool ns3::SSLinkManager::IsUlChannelUsable ( void  )

Is UL channel usable.

Returns
the UL channel usable flag

Definition at line 442 of file ss-link-manager.cc.

◆ NegotiateBasicCapabilities()

void ns3::SSLinkManager::NegotiateBasicCapabilities ( void  )
private

Negotiate basic capabilities.

Definition at line 467 of file ss-link-manager.cc.

Referenced by PerformRanging().

+ Here is the caller graph for this function:

◆ operator=()

SSLinkManager& ns3::SSLinkManager::operator= ( const SSLinkManager )
private

assignment operator

Returns
SS link manager

◆ PerformBackoff()

void ns3::SSLinkManager::PerformBackoff ( void  )

◆ PerformRanging()

◆ ResetRangingRequestCW()

void ns3::SSLinkManager::ResetRangingRequestCW ( void  )
private

Reset ranging request CW.

Definition at line 339 of file ss-link-manager.cc.

References m_rangingCW, and m_ss.

Referenced by PerformRanging().

+ Here is the caller graph for this function:

◆ ScheduleScanningRestart()

void ns3::SSLinkManager::ScheduleScanningRestart ( Time  interval,
SubscriberStationNetDevice::EventType  eventType,
bool  deleteUlParameters,
EventId eventId 
)

Schedule scanning request.

Parameters
intervalthe scanning request interval
eventTypeevent type
deleteUlParametersthe delete UL parameters
eventIdthe event ID

Definition at line 498 of file ss-link-manager.cc.

References m_ss, ns3::Simulator::Schedule(), and StartScanning().

+ Here is the call graph for this function:

◆ SearchForDlChannel()

bool ns3::SSLinkManager::SearchForDlChannel ( uint8_t  channel)
private

Search for DL channel.

Parameters
channelthe DL channel
Returns
true if found

◆ SelectRandomBackoff()

void ns3::SSLinkManager::SelectRandomBackoff ( void  )
private

Select random backoff.

Definition at line 322 of file ss-link-manager.cc.

References m_isBackoffSet, m_rangingBO, m_rangingCW, and NS_ASSERT_MSG.

Referenced by StartContentionResolution().

+ Here is the caller graph for this function:

◆ SendRangingRequest()

◆ SetBsEirp()

void ns3::SSLinkManager::SetBsEirp ( uint16_t  bs_eirp)

Set BS EIRP.

Parameters
bs_eirpthe BS EIRP

Definition at line 85 of file ss-link-manager.cc.

References m_bsEirp.

◆ SetEirXPIrMax()

void ns3::SSLinkManager::SetEirXPIrMax ( uint16_t  eir_x_p_ir_max)

Set EIRX IR maximum.

Parameters
eir_x_p_ir_maxthe EIRX IR maximum

Definition at line 91 of file ss-link-manager.cc.

References m_eirXPIrMax.

◆ SetNrRangingTransOpps()

void ns3::SSLinkManager::SetNrRangingTransOpps ( uint8_t  nrRangingTransOpps)

Ser NR ranging trans opps.

Parameters
nrRangingTransOppsthe NR ranging trans opps

Definition at line 109 of file ss-link-manager.cc.

References m_nrRangingTransOpps.

◆ SetRangingCW()

void ns3::SSLinkManager::SetRangingCW ( uint8_t  rangingCW)

Set ranging CW.

Parameters
rangingCWthe ranging CW

Definition at line 115 of file ss-link-manager.cc.

References m_rangingCW.

◆ SetRangingIntervalFound()

void ns3::SSLinkManager::SetRangingIntervalFound ( bool  rangingIntervalFound)

Set ranging interval found.

Parameters
rangingIntervalFoundthe ranging interval found

Definition at line 97 of file ss-link-manager.cc.

References m_rangingIntervalFound.

◆ StartContentionResolution()

void ns3::SSLinkManager::StartContentionResolution ( void  )

◆ StartScanning()

void ns3::SSLinkManager::StartScanning ( SubscriberStationNetDevice::EventType  type,
bool  deleteParameters 
)

Start scanning.

Parameters
typethe event type
deleteParametersthe delete parameters

Definition at line 133 of file ss-link-manager.cc.

References DeleteUplinkParameters(), EndScanning(), m_dlChnlNr, m_ss, ns3::MakeCallback(), NS_ASSERT_MSG, ns3::SubscriberStationNetDevice::SS_STATE_IDLE, and ns3::SubscriberStationNetDevice::SS_STATE_SCANNING.

Referenced by EndScanning(), ScheduleScanningRestart(), ns3::SubscriberStationNetDevice::Start(), StartContentionResolution(), and StartSynchronizing().

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

◆ StartSynchronizing()

void ns3::SSLinkManager::StartSynchronizing ( void  )
private

Start synchronizing.

Definition at line 179 of file ss-link-manager.cc.

References ns3::SubscriberStationNetDevice::EVENT_DL_MAP_SYNC_TIMEOUT, m_dlMapSyncTimeoutEvent, m_ss, ns3::Simulator::Schedule(), ns3::SubscriberStationNetDevice::SS_STATE_SYNCHRONIZING, and StartScanning().

Referenced by EndScanning().

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

Member Data Documentation

◆ m_bsEirp

uint16_t ns3::SSLinkManager::m_bsEirp
private

BS EIRP.

Definition at line 187 of file ss-link-manager.h.

Referenced by CalculateMaxIRSignalStrength(), and SetBsEirp().

◆ m_contentionRangingRetries

uint8_t ns3::SSLinkManager::m_contentionRangingRetries
private

contention ranging retries

Definition at line 192 of file ss-link-manager.h.

Referenced by StartContentionResolution().

◆ m_dlChnlNr

uint8_t ns3::SSLinkManager::m_dlChnlNr
private

indicates the channel/frequency currently the SS is scanning

Definition at line 196 of file ss-link-manager.h.

Referenced by StartScanning().

◆ m_dlMapSyncTimeoutEvent

EventId ns3::SSLinkManager::m_dlMapSyncTimeoutEvent
private

DL map sync timeout event.

Definition at line 212 of file ss-link-manager.h.

Referenced by GetDlMapSyncTimeoutEvent(), and StartSynchronizing().

◆ m_eirXPIrMax

uint16_t ns3::SSLinkManager::m_eirXPIrMax
private

initial ranging maximum equivalent isotropic received power at BS

Definition at line 188 of file ss-link-manager.h.

Referenced by CalculateMaxIRSignalStrength(), and SetEirXPIrMax().

◆ m_frequency

uint64_t ns3::SSLinkManager::m_frequency
private

frequency on which it is currently operating, i.e., where scanning was successful

Definition at line 197 of file ss-link-manager.h.

Referenced by EndScanning().

◆ m_initRangOppNumber

uint8_t ns3::SSLinkManager::m_initRangOppNumber
private

Initial Ranging opportunity (1–255) in which SS transmitted the RNG_REQ.

Definition at line 191 of file ss-link-manager.h.

Referenced by PerformBackoff(), and PerformRanging().

◆ m_isBackoffSet

bool ns3::SSLinkManager::m_isBackoffSet
private

is backoff set

Definition at line 208 of file ss-link-manager.h.

Referenced by PerformBackoff(), SelectRandomBackoff(), and StartContentionResolution().

◆ m_nrInvitedPollsRecvd

uint16_t ns3::SSLinkManager::m_nrInvitedPollsRecvd
private

number invited polls received

Definition at line 203 of file ss-link-manager.h.

Referenced by IncrementNrInvitedPollsRecvd().

◆ m_nrRangingTransOpps

uint8_t ns3::SSLinkManager::m_nrRangingTransOpps
private

number ranging trans opps

Definition at line 207 of file ss-link-manager.h.

Referenced by PerformBackoff(), and SetNrRangingTransOpps().

◆ m_nrRngReqsSent

uint16_t ns3::SSLinkManager::m_nrRngReqsSent
private

number rang requests sent

Definition at line 201 of file ss-link-manager.h.

Referenced by SendRangingRequest().

◆ m_nrRngRspsRecvd

uint16_t ns3::SSLinkManager::m_nrRngRspsRecvd
private

number rang responses received

Definition at line 202 of file ss-link-manager.h.

Referenced by PerformRanging(), and SendRangingRequest().

◆ m_pTxIrMax

uint16_t ns3::SSLinkManager::m_pTxIrMax
private

maximum transmit signal strength for initial ranging calculated by SS

Definition at line 189 of file ss-link-manager.h.

Referenced by SendRangingRequest().

◆ m_rangingAnomalies

uint8_t ns3::SSLinkManager::m_rangingAnomalies
private

ranging anomalies

Definition at line 209 of file ss-link-manager.h.

Referenced by SendRangingRequest().

◆ m_rangingBO

uint8_t ns3::SSLinkManager::m_rangingBO
private

ranging BO

Definition at line 206 of file ss-link-manager.h.

Referenced by PerformBackoff(), and SelectRandomBackoff().

◆ m_rangingCW

uint8_t ns3::SSLinkManager::m_rangingCW
private

◆ m_rangingIntervalFound

bool ns3::SSLinkManager::m_rangingIntervalFound
private

ranging interval found

Definition at line 198 of file ss-link-manager.h.

Referenced by GetRangingIntervalFound(), and SetRangingIntervalFound().

◆ m_rangingStatus

WimaxNetDevice::RangingStatus ns3::SSLinkManager::m_rangingStatus
private

ranging status

Definition at line 185 of file ss-link-manager.h.

Referenced by PerformRanging(), and SendRangingRequest().

◆ m_rngreq

RngReq ns3::SSLinkManager::m_rngreq
private

rng request

Definition at line 194 of file ss-link-manager.h.

Referenced by SendRangingRequest().

◆ m_rngReqFrameNumber

uint32_t ns3::SSLinkManager::m_rngReqFrameNumber
private

frame number in which SS sent RNG_REQ message

Definition at line 193 of file ss-link-manager.h.

Referenced by PerformBackoff(), and PerformRanging().

◆ m_ss

◆ m_waitForRngRspEvent

EventId ns3::SSLinkManager::m_waitForRngRspEvent
private

wait for rang response event

Definition at line 211 of file ss-link-manager.h.

Referenced by PerformRanging(), and SendRangingRequest().


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