this class implements the link manager of subscriber station net device. An ss link manager is responsible for link scanning and ranging More...
#include <ss-link-manager.h>
Public Member Functions | |
SSLinkManager (Ptr< SubscriberStationNetDevice > ss) | |
~SSLinkManager (void) | |
void | DoDispose (void) |
EventId | GetDlMapSyncTimeoutEvent (void) |
bool | GetRangingIntervalFound (void) const |
void | IncrementNrInvitedPollsRecvd (void) |
bool | IsUlChannelUsable (void) |
void | PerformBackoff (void) |
void | PerformRanging (Cid cid, RngRsp rngrsp) |
void | ScheduleScanningRestart (Time interval, SubscriberStationNetDevice::EventType eventType, bool deleteUlParameters, EventId &eventId) |
void | SendRangingRequest (uint8_t uiuc, uint16_t allocationSize) |
void | SetBsEirp (uint16_t bs_eirp) |
void | SetEirXPIrMax (uint16_t eir_x_p_ir_max) |
void | SetNrRangingTransOpps (uint8_t nrRangingTransOpps) |
void | SetRangingCW (uint8_t rangingCW) |
void | SetRangingIntervalFound (bool rangingIntervalFound) |
void | StartContentionResolution (void) |
void | StartScanning (SubscriberStationNetDevice::EventType type, bool deleteParameters) |
![]() | |
Object () | |
virtual | ~Object () |
void | AggregateObject (Ptr< Object > other) |
void | Dispose (void) |
AggregateIterator | GetAggregateIterator (void) const |
virtual TypeId | GetInstanceTypeId (void) const |
template<typename T > | |
Ptr< T > | GetObject (void) const |
template<typename T > | |
Ptr< T > | GetObject (TypeId tid) const |
void | Start (void) |
![]() | |
SimpleRefCount () | |
SimpleRefCount (const SimpleRefCount &o) | |
uint32_t | GetReferenceCount (void) const |
SimpleRefCount & | operator= (const SimpleRefCount &o) |
void | Ref (void) const |
void | Unref (void) const |
![]() | |
virtual | ~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) |
Private Member Functions | |
SSLinkManager (const SSLinkManager &) | |
void | AdjustRangingParameters (const RngRsp &rngrsp) |
uint16_t | CalculateMaxIRSignalStrength (void) |
void | DeleteUplinkParameters (void) |
void | EndScanning (bool status, uint64_t frequency) |
uint16_t | GetMinTransmitPowerLevel (void) |
void | IncreaseRangingRequestCW (void) |
void | NegotiateBasicCapabilities (void) |
SSLinkManager & | operator= (const SSLinkManager &) |
void | ResetRangingRequestCW (void) |
bool | SearchForDlChannel (uint8_t channel) |
void | SelectRandomBackoff (void) |
void | StartSynchronizing (void) |
Private Attributes | |
uint16_t | m_bsEirp |
uint8_t | m_contentionRangingRetries |
uint8_t | m_dlChnlNr |
EventId | m_dlMapSyncTimeoutEvent |
uint16_t | m_eirXPIrMax |
uint64_t | m_frequency |
uint8_t | m_initRangOppNumber |
bool | m_isBackoffSet |
uint16_t | m_nrInvitedPollsRecvd |
uint8_t | m_nrRangingTransOpps |
uint16_t | m_nrRngReqsSent |
uint16_t | m_nrRngRspsRecvd |
uint16_t | m_pTxIrMax |
uint8_t | m_rangingAnomalies |
uint8_t | m_rangingBO |
uint8_t | m_rangingCW |
bool | m_rangingIntervalFound |
WimaxNetDevice::RangingStatus | m_rangingStatus |
RngReq | m_rngreq |
uint32_t | m_rngReqFrameNumber |
Ptr< SubscriberStationNetDevice > | m_ss |
EventId | m_waitForRngRspEvent |
Additional Inherited Members | |
![]() | |
Object (const Object &o) | |
virtual void | DoStart (void) |
virtual void | NotifyNewAggregate (void) |
this class implements the link manager of subscriber station net device. An ss link manager is responsible for link scanning and ranging
ns3::SSLinkManager is accessible through the following paths with Config::Set and Config::Connect:
No Attributes are defined for this type.
No TraceSources are defined for this type.
Definition at line 41 of file ss-link-manager.h.
ns3::SSLinkManager::SSLinkManager | ( | Ptr< SubscriberStationNetDevice > | ss | ) |
Definition at line 47 of file ss-link-manager.cc.
ns3::SSLinkManager::~SSLinkManager | ( | void | ) |
Definition at line 71 of file ss-link-manager.cc.
References m_ss.
|
private |
|
private |
Definition at line 448 of file ss-link-manager.cc.
References ns3::RngRsp::GetOffsetFreqAdjust(), ns3::RngRsp::GetPowerLevelAdjust(), and ns3::RngRsp::GetTimingAdjust().
Referenced by PerformRanging().
|
private |
Definition at line 472 of file ss-link-manager.cc.
References GetMinTransmitPowerLevel(), m_bsEirp, and m_eirXPIrMax.
Referenced by SendRangingRequest().
|
private |
Definition at line 435 of file ss-link-manager.cc.
References m_ss, and ns3::WimaxNetDevice::SetCurrentUcd().
Referenced by StartScanning().
|
virtual |
This method is called by Object::Dispose or by the object's destructor, whichever comes first.
Subclasses are expected to implement their real destruction code in an overriden 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 78 of file ss-link-manager.cc.
References m_ss.
|
private |
Definition at line 164 of file ss-link-manager.cc.
References ns3::SubscriberStationNetDevice::EVENT_NONE, m_frequency, StartScanning(), and StartSynchronizing().
Referenced by StartScanning().
EventId ns3::SSLinkManager::GetDlMapSyncTimeoutEvent | ( | void | ) |
Definition at line 126 of file ss-link-manager.cc.
References m_dlMapSyncTimeoutEvent.
Referenced by ns3::SubscriberStationNetDevice::DoReceive().
|
private |
Definition at line 490 of file ss-link-manager.cc.
Referenced by CalculateMaxIRSignalStrength().
bool ns3::SSLinkManager::GetRangingIntervalFound | ( | void | ) | const |
Definition at line 102 of file ss-link-manager.cc.
References m_rangingIntervalFound.
Referenced by ns3::SubscriberStationNetDevice::DoReceive().
|
static |
Reimplemented from ns3::Object.
Definition at line 40 of file ss-link-manager.cc.
References ns3::TypeId::SetParent().
|
private |
Definition at line 331 of file ss-link-manager.cc.
References ns3::WimaxNetDevice::GetCurrentUcd(), ns3::Ucd::GetRangingBackoffEnd(), m_rangingCW, and m_ss.
Referenced by StartContentionResolution().
void ns3::SSLinkManager::IncrementNrInvitedPollsRecvd | ( | void | ) |
Definition at line 120 of file ss-link-manager.cc.
References m_nrInvitedPollsRecvd.
Referenced by ns3::SubscriberStationNetDevice::ProcessUlMap().
bool ns3::SSLinkManager::IsUlChannelUsable | ( | void | ) |
Definition at line 441 of file ss-link-manager.cc.
Referenced by ns3::SubscriberStationNetDevice::ProcessUcd().
|
private |
Definition at line 466 of file ss-link-manager.cc.
Referenced by PerformRanging().
|
private |
void ns3::SSLinkManager::PerformBackoff | ( | void | ) |
Definition at line 288 of file ss-link-manager.cc.
References ns3::Ucd::GetChannelEncodings(), ns3::WimaxNetDevice::GetCurrentUcd(), ns3::WimaxNetDevice::GetNrFrames(), ns3::WimaxNetDevice::GetPhy(), ns3::WimaxPhy::GetPsDuration(), ns3::WimaxPhy::GetPsPerSymbol(), ns3::UcdChannelEncodings::GetRangReqOppSize(), ns3::Time::GetSeconds(), ns3::SubscriberStationNetDevice::GetTimeToAllocation(), m_initRangOppNumber, m_isBackoffSet, m_nrRangingTransOpps, m_rangingBO, m_rngReqFrameNumber, m_ss, ns3::Simulator::Schedule(), ns3::Seconds(), SendRangingRequest(), and ns3::OfdmUlBurstProfile::UIUC_INITIAL_RANGING.
Referenced by ns3::SubscriberStationNetDevice::DoReceive().
Definition at line 345 of file ss-link-manager.cc.
References AdjustRangingParameters(), ns3::Cid::BASIC, ns3::Simulator::Cancel(), ns3::WimaxNetDevice::GetAddress(), ns3::SubscriberStationNetDevice::GetAreServiceFlowsAllocated(), ns3::RngRsp::GetBasicCid(), ns3::WimaxConnection::GetCid(), ns3::RngRsp::GetDlFreqOverride(), ns3::RngRsp::GetFrameNumber(), ns3::WimaxNetDevice::GetInitialRangingConnection(), ns3::RngRsp::GetInitRangOppNumber(), ns3::RngRsp::GetMacAddress(), ns3::RngRsp::GetPrimaryCid(), ns3::RngRsp::GetRangStatus(), ns3::SubscriberStationNetDevice::GetServiceFlowManager(), ns3::SubscriberStationNetDevice::HasServiceFlows(), ns3::SsServiceFlowManager::InitiateServiceFlows(), ns3::EventId::IsRunning(), m_initRangOppNumber, m_nrRngRspsRecvd, m_rangingStatus, m_rngReqFrameNumber, m_ss, m_waitForRngRspEvent, NegotiateBasicCapabilities(), NS_ASSERT_MSG, ns3::Cid::PRIMARY, ns3::WimaxNetDevice::RANGING_STATUS_ABORT, ns3::WimaxNetDevice::RANGING_STATUS_CONTINUE, ns3::WimaxNetDevice::RANGING_STATUS_SUCCESS, ResetRangingRequestCW(), ns3::SubscriberStationNetDevice::SetAreManagementConnectionsAllocated(), ns3::SubscriberStationNetDevice::SetBasicConnection(), ns3::SubscriberStationNetDevice::SetPrimaryConnection(), ns3::WimaxNetDevice::SetState(), ns3::SubscriberStationNetDevice::SS_STATE_ADJUSTING_PARAMETERS, ns3::SubscriberStationNetDevice::SS_STATE_REGISTERED, and ns3::SubscriberStationNetDevice::SS_STATE_WAITING_INV_RANG_INTRVL.
Referenced by ns3::SubscriberStationNetDevice::DoReceive().
|
private |
Definition at line 338 of file ss-link-manager.cc.
References ns3::WimaxNetDevice::GetCurrentUcd(), ns3::Ucd::GetRangingBackoffStart(), m_rangingCW, and m_ss.
Referenced by PerformRanging().
void ns3::SSLinkManager::ScheduleScanningRestart | ( | Time | interval, |
SubscriberStationNetDevice::EventType | eventType, | ||
bool | deleteUlParameters, | ||
EventId & | eventId | ||
) |
Definition at line 497 of file ss-link-manager.cc.
References m_ss, ns3::Simulator::Schedule(), ns3::SubscriberStationNetDevice::SetTimer(), and StartScanning().
Referenced by ns3::SubscriberStationNetDevice::DoReceive().
|
private |
|
private |
Definition at line 321 of file ss-link-manager.cc.
References m_isBackoffSet, m_rangingBO, m_rangingCW, and NS_ASSERT_MSG.
Referenced by StartContentionResolution().
void ns3::SSLinkManager::SendRangingRequest | ( | uint8_t | uiuc, |
uint16_t | allocationSize | ||
) |
Definition at line 188 of file ss-link-manager.cc.
References ns3::Packet::AddHeader(), CalculateMaxIRSignalStrength(), ns3::SubscriberStationNetDevice::Enqueue(), ns3::SubscriberStationNetDevice::GetBasicConnection(), ns3::WimaxNetDevice::GetBurstProfileManager(), ns3::BurstProfileManager::GetBurstProfileToRequest(), ns3::Ucd::GetChannelEncodings(), ns3::WimaxNetDevice::GetCurrentUcd(), ns3::WimaxNetDevice::GetInitialRangingConnection(), ns3::SubscriberStationNetDevice::GetIntervalT3(), ns3::WimaxNetDevice::GetMacAddress(), ns3::WimaxNetDevice::GetPhy(), ns3::WimaxPhy::GetPsPerSymbol(), ns3::UcdChannelEncodings::GetRangReqOppSize(), ns3::WimaxNetDevice::GetState(), m_nrRngReqsSent, m_nrRngRspsRecvd, m_pTxIrMax, m_rangingAnomalies, m_rangingStatus, m_rngreq, m_ss, m_waitForRngRspEvent, ns3::ManagementMessageType::MESSAGE_TYPE_RNG_REQ, NS_ASSERT_MSG, ns3::WimaxNetDevice::RANGING_STATUS_CONTINUE, ns3::Simulator::Schedule(), ns3::SubscriberStationNetDevice::SendBurst(), ns3::RngReq::SetMacAddress(), ns3::RngReq::SetRangingAnomalies(), ns3::RngReq::SetReqDlBurstProfile(), ns3::WimaxNetDevice::SetState(), ns3::SubscriberStationNetDevice::SetTimer(), ns3::SubscriberStationNetDevice::SS_STATE_WAITING_INV_RANG_INTRVL, ns3::SubscriberStationNetDevice::SS_STATE_WAITING_REG_RANG_INTRVL, ns3::SubscriberStationNetDevice::SS_STATE_WAITING_RNG_RSP, and StartContentionResolution().
Referenced by PerformBackoff(), and ns3::SubscriberStationNetDevice::ProcessUlMap().
void ns3::SSLinkManager::SetBsEirp | ( | uint16_t | bs_eirp | ) |
Definition at line 84 of file ss-link-manager.cc.
References m_bsEirp.
Referenced by ns3::SubscriberStationNetDevice::ProcessDcd().
void ns3::SSLinkManager::SetEirXPIrMax | ( | uint16_t | eir_x_p_ir_max | ) |
Definition at line 90 of file ss-link-manager.cc.
References m_eirXPIrMax.
Referenced by ns3::SubscriberStationNetDevice::ProcessDcd().
void ns3::SSLinkManager::SetNrRangingTransOpps | ( | uint8_t | nrRangingTransOpps | ) |
Definition at line 108 of file ss-link-manager.cc.
References m_nrRangingTransOpps.
Referenced by ns3::SubscriberStationNetDevice::ProcessUlMap().
void ns3::SSLinkManager::SetRangingCW | ( | uint8_t | rangingCW | ) |
Definition at line 114 of file ss-link-manager.cc.
References m_rangingCW.
Referenced by ns3::SubscriberStationNetDevice::ProcessUcd().
void ns3::SSLinkManager::SetRangingIntervalFound | ( | bool | rangingIntervalFound | ) |
Definition at line 96 of file ss-link-manager.cc.
References m_rangingIntervalFound.
Referenced by ns3::SubscriberStationNetDevice::ProcessUlMap().
void ns3::SSLinkManager::StartContentionResolution | ( | void | ) |
Definition at line 248 of file ss-link-manager.cc.
References ns3::SubscriberStationNetDevice::EVENT_NONE, ns3::SubscriberStationNetDevice::GetMaxContentionRangingRetries(), ns3::WimaxNetDevice::GetState(), IncreaseRangingRequestCW(), m_contentionRangingRetries, m_isBackoffSet, m_ss, NS_ASSERT_MSG, SelectRandomBackoff(), ns3::WimaxNetDevice::SetState(), ns3::SubscriberStationNetDevice::SS_STATE_ADJUSTING_PARAMETERS, ns3::SubscriberStationNetDevice::SS_STATE_WAITING_REG_RANG_INTRVL, ns3::SubscriberStationNetDevice::SS_STATE_WAITING_RNG_RSP, and StartScanning().
Referenced by ns3::SubscriberStationNetDevice::ProcessUlMap(), and SendRangingRequest().
void ns3::SSLinkManager::StartScanning | ( | SubscriberStationNetDevice::EventType | type, |
bool | deleteParameters | ||
) |
Definition at line 132 of file ss-link-manager.cc.
References DeleteUplinkParameters(), EndScanning(), ns3::WimaxNetDevice::GetChannel(), ns3::SubscriberStationNetDevice::GetIntervalT20(), ns3::WimaxNetDevice::GetPhy(), ns3::WimaxNetDevice::GetState(), ns3::SubscriberStationNetDevice::IsRegistered(), m_dlChnlNr, m_ss, ns3::MakeCallback(), NS_ASSERT_MSG, ns3::WimaxNetDevice::SetState(), ns3::SubscriberStationNetDevice::SS_STATE_IDLE, ns3::SubscriberStationNetDevice::SS_STATE_SCANNING, and ns3::WimaxPhy::StartScanning().
Referenced by EndScanning(), ns3::SubscriberStationNetDevice::ProcessUcd(), ScheduleScanningRestart(), ns3::SubscriberStationNetDevice::Start(), StartContentionResolution(), and StartSynchronizing().
|
private |
Definition at line 178 of file ss-link-manager.cc.
References ns3::SubscriberStationNetDevice::EVENT_DL_MAP_SYNC_TIMEOUT, ns3::SubscriberStationNetDevice::GetIntervalT21(), m_dlMapSyncTimeoutEvent, m_ss, ns3::Simulator::Schedule(), ns3::WimaxNetDevice::SetState(), ns3::SubscriberStationNetDevice::SetTimer(), ns3::SubscriberStationNetDevice::SS_STATE_SYNCHRONIZING, and StartScanning().
Referenced by EndScanning().
|
private |
Definition at line 88 of file ss-link-manager.h.
Referenced by CalculateMaxIRSignalStrength(), and SetBsEirp().
|
private |
Definition at line 93 of file ss-link-manager.h.
Referenced by StartContentionResolution().
|
private |
Definition at line 97 of file ss-link-manager.h.
Referenced by StartScanning().
|
private |
Definition at line 112 of file ss-link-manager.h.
Referenced by GetDlMapSyncTimeoutEvent(), and StartSynchronizing().
|
private |
Definition at line 89 of file ss-link-manager.h.
Referenced by CalculateMaxIRSignalStrength(), and SetEirXPIrMax().
|
private |
Definition at line 98 of file ss-link-manager.h.
Referenced by EndScanning().
|
private |
Definition at line 92 of file ss-link-manager.h.
Referenced by PerformBackoff(), and PerformRanging().
|
private |
Definition at line 109 of file ss-link-manager.h.
Referenced by PerformBackoff(), SelectRandomBackoff(), and StartContentionResolution().
|
private |
Definition at line 104 of file ss-link-manager.h.
Referenced by IncrementNrInvitedPollsRecvd().
|
private |
Definition at line 108 of file ss-link-manager.h.
Referenced by PerformBackoff(), and SetNrRangingTransOpps().
|
private |
Definition at line 102 of file ss-link-manager.h.
Referenced by SendRangingRequest().
|
private |
Definition at line 103 of file ss-link-manager.h.
Referenced by PerformRanging(), and SendRangingRequest().
|
private |
Definition at line 90 of file ss-link-manager.h.
Referenced by SendRangingRequest().
|
private |
Definition at line 110 of file ss-link-manager.h.
Referenced by SendRangingRequest().
|
private |
Definition at line 107 of file ss-link-manager.h.
Referenced by PerformBackoff(), and SelectRandomBackoff().
|
private |
Definition at line 106 of file ss-link-manager.h.
Referenced by IncreaseRangingRequestCW(), ResetRangingRequestCW(), SelectRandomBackoff(), and SetRangingCW().
|
private |
Definition at line 99 of file ss-link-manager.h.
Referenced by GetRangingIntervalFound(), and SetRangingIntervalFound().
|
private |
Definition at line 86 of file ss-link-manager.h.
Referenced by PerformRanging(), and SendRangingRequest().
|
private |
Definition at line 95 of file ss-link-manager.h.
Referenced by SendRangingRequest().
|
private |
Definition at line 94 of file ss-link-manager.h.
Referenced by PerformBackoff(), and PerformRanging().
|
private |
Definition at line 84 of file ss-link-manager.h.
Referenced by DeleteUplinkParameters(), DoDispose(), IncreaseRangingRequestCW(), PerformBackoff(), PerformRanging(), ResetRangingRequestCW(), ScheduleScanningRestart(), SendRangingRequest(), StartContentionResolution(), StartScanning(), StartSynchronizing(), and ~SSLinkManager().
|
private |
Definition at line 112 of file ss-link-manager.h.
Referenced by PerformRanging(), and SendRangingRequest().