ns-3
ns3::BaseStationNetDevice Class Reference
Inheritance diagram for ns3::BaseStationNetDevice:
Collaboration diagram for ns3::BaseStationNetDevice:

List of all members.

Public Types

enum  State { BS_STATE_DL_SUB_FRAME, BS_STATE_UL_SUB_FRAME, BS_STATE_TTG, BS_STATE_RTG }
enum  MacPreamble { SHORT_PREAMBLE = 1, LONG_PREAMBLE }

Public Member Functions

 BaseStationNetDevice (Ptr< Node > node, Ptr< WimaxPhy > phy)
 BaseStationNetDevice (Ptr< Node > node, Ptr< WimaxPhy > phy, Ptr< UplinkScheduler > uplinkScheduler, Ptr< BSScheduler > bsScheduler)
void SetInitialRangingInterval (Time initialRangInterval)
void InitBaseStationNetDevice (void)
 initializes the BS net device and sets its parameters to the default values
Time GetInitialRangingInterval (void) const
void SetDcdInterval (Time dcdInterval)
Time GetDcdInterval (void) const
void SetUcdInterval (Time ucdInterval)
Time GetUcdInterval (void) const
void SetIntervalT8 (Time interval)
Time GetIntervalT8 (void) const
void SetMaxRangingCorrectionRetries (uint8_t maxRangCorrectionRetries)
uint8_t GetMaxRangingCorrectionRetries (void) const
void SetMaxInvitedRangRetries (uint8_t maxInvitedRangRetries)
uint8_t GetMaxInvitedRangRetries (void) const
void SetRangReqOppSize (uint8_t rangReqOppSize)
uint8_t GetRangReqOppSize (void) const
void SetBwReqOppSize (uint8_t bwReqOppSize)
uint8_t GetBwReqOppSize (void) const
void SetNrDlSymbols (uint32_t dlSymbols)
uint32_t GetNrDlSymbols (void) const
void SetNrUlSymbols (uint32_t ulSymbols)
uint32_t GetNrUlSymbols (void) const
uint32_t GetNrDcdSent (void) const
uint32_t GetNrUcdSent (void) const
Time GetDlSubframeStartTime (void) const
Time GetUlSubframeStartTime (void) const
uint8_t GetRangingOppNumber (void) const
Ptr< SSManagerGetSSManager (void) const
void SetSSManager (Ptr< SSManager > ssManager)
Ptr< UplinkSchedulerGetUplinkScheduler (void) const
void SetUplinkScheduler (Ptr< UplinkScheduler > ulScheduler)
Ptr< BSLinkManagerGetLinkManager (void) const
void SetBSScheduler (Ptr< BSScheduler > bsSchedule)
Ptr< BSSchedulerGetBSScheduler (void) const
void SetLinkManager (Ptr< BSLinkManager > linkManager)
Ptr< IpcsClassifierGetBsClassifier (void) const
void SetBsClassifier (Ptr< IpcsClassifier > classifier)
Time GetPsDuration (void) const
Time GetSymbolDuration (void) const
void Start (void)
void Stop (void)
bool Enqueue (Ptr< Packet > packet, const MacHeaderType &hdrType, Ptr< WimaxConnection > connection)
 Enqueue a packet into a connection queue.
Ptr< WimaxConnectionGetConnection (Cid cid)
void MarkUplinkAllocations (void)
void MarkRangingOppStart (Time rangingOppStartTime)
Ptr< BsServiceFlowManagerGetServiceFlowManager (void) const
void SetServiceFlowManager (Ptr< BsServiceFlowManager >)

Static Public Member Functions

static TypeId GetTypeId (void)
 This method returns the TypeId associated to ns3::BaseStationNetDevice.

Member Function Documentation

bool ns3::BaseStationNetDevice::Enqueue ( Ptr< Packet packet,
const MacHeaderType hdrType,
Ptr< WimaxConnection connection 
) [virtual]

Enqueue a packet into a connection queue.

Parameters:
packetthe packet to be enqueued
hdrTypethe mac header type to be appended to the packet
connectionthe connection to be used

Implements ns3::WimaxNetDevice.

References ns3::WimaxConnection::Enqueue(), ns3::Packet::GetSize(), and NS_ASSERT_MSG.

Returns:
a pointer to the classifier installed on the BS

Referenced by GetTypeId().

Returns:
The BS scheduler installed on the BS

Referenced by GetTypeId().

Returns:
The bandwidth request opportunity size in symbols

Referenced by ns3::UplinkSchedulerMBQoS::CountSymbolsJobs(), and GetTypeId().

Returns:
the Time between transmission of DCD messages

Referenced by GetTypeId().

Returns:
Time between Initial Ranging regions assigned by the BS

Referenced by GetTypeId().

Returns:
the Wait for DSA/DSC Acknowledge timeout

Referenced by GetTypeId().

Returns:
a pointer to the link manager installed on the BS

Referenced by GetTypeId().

Returns:
the number of retries on contention Ranging

Referenced by ns3::BSLinkManager::VerifyInvitedRanging().

Returns:
the number of retries on contention Ranging Requests

Referenced by GetTypeId().

uint32_t ns3::BaseStationNetDevice::GetNrDcdSent ( void  ) const
Returns:
the number dcd messages already sent
uint32_t ns3::BaseStationNetDevice::GetNrDlSymbols ( void  ) const
Returns:
the number of symbols in the downlink sub-frame

Referenced by ns3::BSSchedulerRtps::Schedule().

uint32_t ns3::BaseStationNetDevice::GetNrUcdSent ( void  ) const
Returns:
the number ucd messages already sent
uint32_t ns3::BaseStationNetDevice::GetNrUlSymbols ( void  ) const
Returns:
the number of symbols in the uplink sub-frame

Referenced by ns3::UplinkSchedulerRtps::Schedule().

Returns:
The ranging opportunity size in symbols

Referenced by GetTypeId(), ns3::BSLinkManager::ProcessRangingRequest(), and ns3::UplinkSchedulerRtps::Schedule().

This method returns the TypeId associated to ns3::BaseStationNetDevice.

This object is accessible through the following paths with Config::Set and Config::Connect:

  • /NodeList/[i]/DeviceList/[i]/$ns3::AlohaNoackNetDevice/Phy/$ns3::BaseStationNetDevice
  • /NodeList/[i]/DeviceList/[i]/$ns3::AlohaNoackNetDevice/Phy/$ns3::WimaxNetDevice/$ns3::BaseStationNetDevice
  • /NodeList/[i]/DeviceList/[i]/$ns3::BaseStationNetDevice
  • /NodeList/[i]/DeviceList/[i]/$ns3::NonCommunicatingNetDevice/Phy/$ns3::BaseStationNetDevice
  • /NodeList/[i]/DeviceList/[i]/$ns3::NonCommunicatingNetDevice/Phy/$ns3::WimaxNetDevice/$ns3::BaseStationNetDevice
  • /NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/$ns3::BaseStationNetDevice

Attributes defined for this type:

  • BSScheduler: Downlink Scheduler for BS
  • InitialRangInterval: Time between Initial Ranging regions assigned by the BS. Maximum is 2s
    • Set with class: TimeValue
    • Underlying type: Time
    • Initial value: +50000000.0ns
    • Flags: construct write read
  • DcdInterval: Time between transmission of DCD messages. Maximum value is 10s.
    • Set with class: TimeValue
    • Underlying type: Time
    • Initial value: +3000000000.0ns
    • Flags: construct write read
  • UcdInterval: Time between transmission of UCD messages. Maximum value is 10s.
    • Set with class: TimeValue
    • Underlying type: Time
    • Initial value: +3000000000.0ns
    • Flags: construct write read
  • IntervalT8: Wait for DSA/DSC Acknowledge timeout. Maximum 300ms.
    • Set with class: TimeValue
    • Underlying type: Time
    • Initial value: +50000000.0ns
    • Flags: construct write read
  • RangReqOppSize: The ranging opportunity size in symbols
  • BwReqOppSize: The bandwidth request opportunity size in symbols
  • MaxRangCorrectionRetries: Number of retries on contention Ranging Requests
  • SSManager: The ss manager attached to this device.
  • Scheduler: The BS scheduler attached to this device.
  • LinkManager: The link manager attached to this device.
  • UplinkScheduler: The uplink scheduler attached to this device.
  • BsIpcsPacketClassifier: The uplink IP packet classifier attached to this device.
  • ServiceFlowManager: The service flow manager attached to this device.

Attributes defined in parent class ns3::WimaxNetDevice:

TraceSources defined for this type:

  • BSTx: A packet has been received from higher layers and is being processed in preparation for queueing for transmission.
  • BSTxDrop: A packet has been dropped in the MAC layer before being queued for transmission.
  • BSPromiscRx: A packet has been received by this device, has been passed up from the physical layer and is being forwarded up the local protocol stack. This is a promiscuous trace,
  • BSRx: A packet has been received by this device, has been passed up from the physical layer and is being forwarded up the local protocol stack. This is a non-promiscuous trace,
  • BSRxDrop: A packet has been dropped in the MAC layer after it has been passed up from the physical layer.

TraceSources defined in parent class ns3::WimaxNetDevice:

  • Rx: Receive trace
  • Tx: Transmit trace

Reimplemented from ns3::WimaxNetDevice.

References GetBsClassifier(), GetBSScheduler(), GetBwReqOppSize(), GetDcdInterval(), GetInitialRangingInterval(), GetIntervalT8(), GetLinkManager(), GetMaxRangingCorrectionRetries(), GetRangReqOppSize(), GetSSManager(), GetUcdInterval(), GetUplinkScheduler(), ns3::MakeTraceSourceAccessor(), ns3::Seconds(), SetBsClassifier(), SetBSScheduler(), SetBwReqOppSize(), SetDcdInterval(), SetInitialRangingInterval(), SetIntervalT8(), SetLinkManager(), SetMaxRangingCorrectionRetries(), ns3::TypeId::SetParent(), SetRangReqOppSize(), SetSSManager(), SetUcdInterval(), and SetUplinkScheduler().

Returns:
Time between transmission of UCD messages

Referenced by GetTypeId().

Returns:
a pointer to the uplink scheduler installed on the device

Referenced by ns3::BsServiceFlowManager::AddMulticastServiceFlow(), GetTypeId(), and ns3::BSLinkManager::ProcessRangingRequest().

Parameters:
classifiera classifier to be installed on the BS

Referenced by GetTypeId().

Parameters:
bsSchedulethe downlink scheduler to be installed on the BS

Referenced by GetTypeId().

void ns3::BaseStationNetDevice::SetBwReqOppSize ( uint8_t  bwReqOppSize)
Parameters:
bwReqOppSizeThe bandwidth request opportunity size in symbols

Referenced by GetTypeId().

Parameters:
dcdIntervalTime between transmission of DCD messages

Referenced by GetTypeId().

Parameters:
initialRangIntervalTime between Initial Ranging regions assigned by the BS

Referenced by GetTypeId().

Parameters:
intervalthe Wait for DSA/DSC Acknowledge timeout

Referenced by GetTypeId().

Parameters:
linkManagerThe link manager installed on the BS

Referenced by GetTypeId().

void ns3::BaseStationNetDevice::SetMaxInvitedRangRetries ( uint8_t  maxInvitedRangRetries)
Parameters:
maxInvitedRangRetriesthe number of retries on contention Ranging
void ns3::BaseStationNetDevice::SetMaxRangingCorrectionRetries ( uint8_t  maxRangCorrectionRetries)
Parameters:
maxRangCorrectionRetriesthe number of retries on contention Ranging Requests

Referenced by GetTypeId().

void ns3::BaseStationNetDevice::SetNrDlSymbols ( uint32_t  dlSymbols)
Parameters:
dlSymbolsthe number of symbols in the downlink sub-frame
void ns3::BaseStationNetDevice::SetNrUlSymbols ( uint32_t  ulSymbols)
Parameters:
ulSymbolsthe number of symbols in the uplink sub-frame
void ns3::BaseStationNetDevice::SetRangReqOppSize ( uint8_t  rangReqOppSize)
Parameters:
rangReqOppSizeThe ranging opportunity size in symbols

Referenced by GetTypeId().

Parameters:
ssManagerthe SS manager to be installed on the BS

Referenced by GetTypeId().

Parameters:
ucdIntervalthe Time between transmission of UCD messages

Referenced by GetTypeId().

Parameters:
ulSchedulerthe ulScheduler to be isnstalled on the BS

Referenced by GetTypeId().

void ns3::BaseStationNetDevice::Start ( void  ) [virtual]

This method calls the virtual DoStart method on all the objects aggregated to this object. DoStart will be called only once over the lifetime of an object, just like DoDispose is called only once.

See also:
DoStart

Note: the code here is a bit tricky because we need to protect ourselves from modifications in the aggregate array while DoStart is called. The user's implementation of the DoStart method could call GetObject (which could reorder the array) and it could call AggregateObject which would add an object at the end of the array. To be safe, we restart iteration over the array whenever we call some user code, just in case.

Implements ns3::WimaxNetDevice.

References ns3::WimaxNetDevice::GetBandwidthManager(), ns3::WimaxNetDevice::GetConnectionManager(), ns3::WimaxNetDevice::GetPhy(), ns3::WimaxPhy::GetPsDuration(), ns3::WimaxNetDevice::GetRtg(), ns3::WimaxPhy::GetSymbolDuration(), ns3::WimaxNetDevice::GetTtg(), ns3::Simulator::ScheduleNow(), ns3::BSLinkManager::SelectDlChannel(), ns3::WimaxPhy::SetDataRates(), ns3::WimaxPhy::SetPhyParameters(), ns3::WimaxNetDevice::SetRtg(), ns3::WimaxPhy::SetSimplex(), and ns3::WimaxNetDevice::SetTtg().


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