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< SSManager > | GetSSManager (void) const |
void | SetSSManager (Ptr< SSManager > ssManager) |
Ptr< UplinkScheduler > | GetUplinkScheduler (void) const |
void | SetUplinkScheduler (Ptr< UplinkScheduler > ulScheduler) |
Ptr< BSLinkManager > | GetLinkManager (void) const |
void | SetBSScheduler (Ptr< BSScheduler > bsSchedule) |
Ptr< BSScheduler > | GetBSScheduler (void) const |
void | SetLinkManager (Ptr< BSLinkManager > linkManager) |
Ptr< IpcsClassifier > | GetBsClassifier (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< WimaxConnection > | GetConnection (Cid cid) |
void | MarkUplinkAllocations (void) |
void | MarkRangingOppStart (Time rangingOppStartTime) |
Ptr< BsServiceFlowManager > | GetServiceFlowManager (void) const |
void | SetServiceFlowManager (Ptr< BsServiceFlowManager >) |
Static Public Member Functions |
static TypeId | GetTypeId (void) |
| This method returns the TypeId associated to ns3::BaseStationNetDevice.
|
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:
-
Mtu: The MAC-level Maximum Transmission Unit
-
Phy: The PHY layer attached to this device.
-
Channel: The channel attached to this device.
-
RTG: receive/transmit transition gap.
-
TTG: transmit/receive transition gap.
-
ConnectionManager: The connection manager attached to this device.
-
BurstProfileManager: The burst profile manager attached to this device.
-
BandwidthManager: The bandwidth manager attached to this device.
-
InitialRangingConnection: Initial ranging connection
-
BroadcastConnection: Broadcast connection
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().
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().