A Discrete-Event Network Simulator
API
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
ns3::BaseStationNetDevice Class Reference

#include <bs-net-device.h>

+ Inheritance diagram for ns3::BaseStationNetDevice:
+ Collaboration diagram for ns3::BaseStationNetDevice:

Public Types

enum  MacPreamble { SHORT_PREAMBLE = 1, LONG_PREAMBLE }
enum  State { BS_STATE_DL_SUB_FRAME, BS_STATE_UL_SUB_FRAME, BS_STATE_TTG, BS_STATE_RTG }
- Public Types inherited from ns3::WimaxNetDevice
enum  Direction { DIRECTION_DOWNLINK, DIRECTION_UPLINK }
enum  RangingStatus { RANGING_STATUS_EXPIRED, RANGING_STATUS_CONTINUE, RANGING_STATUS_ABORT, RANGING_STATUS_SUCCESS }
- Public Types inherited from ns3::NetDevice
enum  PacketType {
  PACKET_HOST = 1, NS3_PACKET_HOST = PACKET_HOST, PACKET_BROADCAST, NS3_PACKET_BROADCAST = PACKET_BROADCAST,
  PACKET_MULTICAST, NS3_PACKET_MULTICAST = PACKET_MULTICAST, PACKET_OTHERHOST, NS3_PACKET_OTHERHOST = PACKET_OTHERHOST
}
typedef Callback< bool, Ptr
< NetDevice >, Ptr< const
Packet >, uint16_t, const
Address &, const Address
&, enum PacketType
PromiscReceiveCallback
typedef Callback< bool, Ptr
< NetDevice >, Ptr< const
Packet >, uint16_t, const
Address & > 
ReceiveCallback

Public Member Functions

 BaseStationNetDevice (void)
 BaseStationNetDevice (Ptr< Node > node, Ptr< WimaxPhy > phy)
 BaseStationNetDevice (Ptr< Node > node, Ptr< WimaxPhy > phy, Ptr< UplinkScheduler > uplinkScheduler, Ptr< BSScheduler > bsScheduler)
 ~BaseStationNetDevice (void)
bool Enqueue (Ptr< Packet > packet, const MacHeaderType &hdrType, Ptr< WimaxConnection > connection)
 Enqueue a packet into a connection queue.
Ptr< IpcsClassifierGetBsClassifier (void) const
Ptr< BSSchedulerGetBSScheduler (void) const
uint8_t GetBwReqOppSize (void) const
Ptr< WimaxConnectionGetConnection (Cid cid)
Time GetDcdInterval (void) const
Time GetDlSubframeStartTime (void) const
Time GetInitialRangingInterval (void) const
Time GetIntervalT8 (void) const
Ptr< BSLinkManagerGetLinkManager (void) const
uint8_t GetMaxInvitedRangRetries (void) const
uint8_t GetMaxRangingCorrectionRetries (void) const
uint32_t GetNrDcdSent (void) const
uint32_t GetNrDlSymbols (void) const
uint32_t GetNrUcdSent (void) const
uint32_t GetNrUlSymbols (void) const
Time GetPsDuration (void) const
uint8_t GetRangingOppNumber (void) const
uint8_t GetRangReqOppSize (void) const
Ptr< BsServiceFlowManagerGetServiceFlowManager (void) const
Ptr< SSManagerGetSSManager (void) const
Time GetSymbolDuration (void) const
Time GetUcdInterval (void) const
Time GetUlSubframeStartTime (void) const
Ptr< UplinkSchedulerGetUplinkScheduler (void) const
void InitBaseStationNetDevice (void)
 initializes the BS net device and sets its parameters to the default values
void MarkRangingOppStart (Time rangingOppStartTime)
void MarkUplinkAllocations (void)
void SetBsClassifier (Ptr< IpcsClassifier > classifier)
void SetBSScheduler (Ptr< BSScheduler > bsSchedule)
void SetBwReqOppSize (uint8_t bwReqOppSize)
void SetDcdInterval (Time dcdInterval)
void SetInitialRangingInterval (Time initialRangInterval)
void SetIntervalT8 (Time interval)
void SetLinkManager (Ptr< BSLinkManager > linkManager)
void SetMaxInvitedRangRetries (uint8_t maxInvitedRangRetries)
void SetMaxRangingCorrectionRetries (uint8_t maxRangCorrectionRetries)
void SetNrDlSymbols (uint32_t dlSymbols)
void SetNrUlSymbols (uint32_t ulSymbols)
void SetRangReqOppSize (uint8_t rangReqOppSize)
void SetServiceFlowManager (Ptr< BsServiceFlowManager >)
void SetSSManager (Ptr< SSManager > ssManager)
void SetUcdInterval (Time ucdInterval)
void SetUplinkScheduler (Ptr< UplinkScheduler > ulScheduler)
void Start (void)
void Stop (void)
- Public Member Functions inherited from ns3::WimaxNetDevice
 WimaxNetDevice (void)
virtual ~WimaxNetDevice (void)
virtual void AddLinkChangeCallback (Callback< void > callback)
void Attach (Ptr< WimaxChannel > channel)
void CreateDefaultConnections (void)
virtual void DoDispose (void)
void ForwardDown (Ptr< PacketBurst > burst, WimaxPhy::ModulationType modulationType)
void ForwardUp (Ptr< Packet > packet, const Mac48Address &source, const Mac48Address &dest)
virtual Address GetAddress (void) const
Ptr< BandwidthManagerGetBandwidthManager (void) const
virtual Address GetBroadcast (void) const
Ptr< WimaxConnectionGetBroadcastConnection (void) const
Ptr< BurstProfileManagerGetBurstProfileManager (void) const
uint64_t GetChannel (uint8_t index) const
virtual Ptr< ChannelGetChannel (void) const
Ptr< ConnectionManagerGetConnectionManager (void) const
Dcd GetCurrentDcd (void) const
Ucd GetCurrentUcd (void) const
virtual uint32_t GetIfIndex (void) const
Ptr< WimaxConnectionGetInitialRangingConnection (void) const
Mac48Address GetMacAddress (void) const
virtual uint16_t GetMtu (void) const
virtual Address GetMulticast (void) const
virtual Address GetMulticast (Ipv6Address addr) const
 Get the MAC multicast address corresponding to the IPv6 address provided.
virtual Address GetMulticast (Ipv4Address multicastGroup) const
 Make and return a MAC multicast address using the provided multicast group.
virtual std::string GetName (void) const
virtual Ptr< NodeGetNode (void) const
uint32_t GetNrFrames (void) const
Ptr< WimaxPhyGetPhy (void) const
virtual Ptr< ChannelGetPhyChannel (void) const
NetDevice::PromiscReceiveCallback GetPromiscReceiveCallback (void)
uint16_t GetRtg (void) const
uint8_t GetState (void) const
uint16_t GetTtg (void) const
virtual bool IsBridge (void) const
 Return true if the net device is acting as a bridge.
virtual bool IsBroadcast (void) const
virtual bool IsLinkUp (void) const
virtual bool IsMulticast (void) const
virtual bool IsPointToPoint (void) const
 Return true if the net device is on a point-to-point link.
bool IsPromisc (void)
virtual Address MakeMulticastAddress (Ipv4Address multicastGroup) const
virtual bool NeedsArp (void) const
void NotifyPromiscTrace (Ptr< Packet > p)
virtual bool Send (Ptr< Packet > packet, const Address &dest, uint16_t protocolNumber)
virtual bool SendFrom (Ptr< Packet > packet, const Address &source, const Address &dest, uint16_t protocolNumber)
virtual void SetAddress (Address address)
void SetBandwidthManager (Ptr< BandwidthManager > bandwidthManager)
void SetBurstProfileManager (Ptr< BurstProfileManager > burstProfileManager)
void SetChannel (Ptr< WimaxChannel > wimaxChannel)
virtual void SetConnectionManager (Ptr< ConnectionManager > connectionManager)
void SetCurrentDcd (Dcd dcd)
void SetCurrentUcd (Ucd ucd)
virtual void SetIfIndex (const uint32_t index)
virtual void SetLinkChangeCallback (Callback< void > callback)
void SetMacAddress (Mac48Address address)
virtual bool SetMtu (const uint16_t mtu)
virtual void SetName (const std::string name)
virtual void SetNode (Ptr< Node > node)
void SetNrFrames (uint32_t nrFrames)
void SetPhy (Ptr< WimaxPhy > phy)
virtual void SetPromiscReceiveCallback (PromiscReceiveCallback cb)
void SetReceiveCallback (void)
virtual void SetReceiveCallback (NetDevice::ReceiveCallback cb)
void SetRtg (uint16_t rtg)
void SetState (uint8_t state)
void SetTtg (uint16_t ttg)
virtual bool SupportsSendFrom (void) const
- Public Member Functions inherited from ns3::NetDevice
virtual ~NetDevice ()
- Public Member Functions inherited from ns3::Object
 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
- Public Member Functions inherited from ns3::SimpleRefCount< Object, ObjectBase, ObjectDeleter >
 SimpleRefCount ()
 SimpleRefCount (const SimpleRefCount &o)
uint32_t GetReferenceCount (void) const
SimpleRefCountoperator= (const SimpleRefCount &o)
void Ref (void) const
void Unref (void) const
- Public Member Functions inherited from ns3::ObjectBase
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)
 This method returns the TypeId associated to ns3::BaseStationNetDevice.

Private Member Functions

Ptr< PacketCreateDcd (void)
void CreateDescriptorMessages (bool sendDcd, bool senUcd)
 creates the channel descriptor MAC management messages DCD and UCD
Ptr< PacketCreateDlMap (void)
void CreateMapMessages (void)
 creates the MAC management messages DL-MAP and UL-MAP
Ptr< PacketCreateUcd (void)
Ptr< PacketCreateUlMap (void)
void DoDispose (void)
void DoReceive (Ptr< Packet > packet)
bool DoSend (Ptr< Packet > packet, const Mac48Address &source, const Mac48Address &dest, uint16_t protocolNumber)
void EndDlSubFrame (void)
void EndFrame (void)
void EndUlSubFrame (void)
void MarkUplinkAllocationEnd (Time allocationEndTime, Cid cid, uint8_t uiuc)
void MarkUplinkAllocationStart (Time allocationStartTime)
void RangingOppStart (void)
void SendBursts (void)
void SetDlBurstProfiles (Dcd *dcd)
void SetUlBurstProfiles (Ucd *ucd)
void StartDlSubFrame (void)
void StartFrame (void)
void StartUlSubFrame (void)
void UplinkAllocationEnd (Cid cid, uint8_t uiuc)
void UplinkAllocationStart (void)

Private Attributes

uint32_t m_allocationStartTime
Ptr< IpcsClassifierm_bsClassifier
TracedCallback< Ptr< const
Packet > > 
m_bsPromiscRxTrace
TracedCallback< Ptr< const
Packet > > 
m_bsRxDropTrace
TracedCallback< Ptr< const
Packet > > 
m_bsRxTrace
TracedCallback< Ptr< const
Packet > > 
m_bsTxDropTrace
TracedCallback< Ptr< const
Packet > > 
m_bsTxTrace
uint8_t m_bwReqOppSize
CidFactorym_cidFactory
uint32_t m_dcdConfigChangeCount
Time m_dcdInterval
Time m_dlSubframeStartTime
uint32_t m_framesSinceLastDcd
uint32_t m_framesSinceLastUcd
Time m_initialRangInterval
Time m_intervalT8
Ptr< BSLinkManagerm_linkManager
uint8_t m_maxInvitedRangRetries
uint8_t m_maxRangCorrectionRetries
uint32_t m_nrDcdSent
uint16_t m_nrDlAllocations
uint32_t m_nrDlFrames
uint32_t m_nrDlMapSent
uint32_t m_nrDlSymbols
uint16_t m_nrSsRegistered
uint32_t m_nrUcdSent
uint16_t m_nrUlAllocations
uint32_t m_nrUlFrames
uint32_t m_nrUlMapSent
uint32_t m_nrUlSymbols
Time m_psDuration
uint8_t m_rangingOppNumber
uint8_t m_rangReqOppSize
Ptr< BSSchedulerm_scheduler
Ptr< BsServiceFlowManagerm_serviceFlowManager
Ptr< SSManagerm_ssManager
Time m_symbolDuration
TracedCallback< Ptr< const
Packet >, Mac48Address, Cid
m_traceBSRx
uint32_t m_ucdConfigChangeCount
Time m_ucdInterval
uint8_t m_ulAllocationNumber
Time m_ulSubframeStartTime
Ptr< UplinkSchedulerm_uplinkScheduler

Additional Inherited Members

- Public Attributes inherited from ns3::WimaxNetDevice
TracedCallback< Ptr< const
Packet >, const Mac48Address & > 
m_traceRx
TracedCallback< Ptr< const
Packet >, const Mac48Address & > 
m_traceTx
- Static Public Attributes inherited from ns3::WimaxNetDevice
static uint8_t m_direction = ~0
static Time m_frameStartTime = Seconds (0)
- Protected Member Functions inherited from ns3::Object
 Object (const Object &o)
virtual void DoStart (void)
virtual void NotifyNewAggregate (void)

Detailed Description

Definition at line 50 of file bs-net-device.h.

Member Enumeration Documentation

Enumerator:
SHORT_PREAMBLE 
LONG_PREAMBLE 

Definition at line 58 of file bs-net-device.h.

Enumerator:
BS_STATE_DL_SUB_FRAME 
BS_STATE_UL_SUB_FRAME 
BS_STATE_TTG 
BS_STATE_RTG 

Definition at line 53 of file bs-net-device.h.

Constructor & Destructor Documentation

ns3::BaseStationNetDevice::BaseStationNetDevice ( void  )

Definition at line 174 of file bs-net-device.cc.

References InitBaseStationNetDevice().

+ Here is the call graph for this function:

ns3::BaseStationNetDevice::BaseStationNetDevice ( Ptr< Node node,
Ptr< WimaxPhy phy 
)

Definition at line 221 of file bs-net-device.cc.

References InitBaseStationNetDevice(), ns3::WimaxNetDevice::SetNode(), and ns3::WimaxNetDevice::SetPhy().

+ Here is the call graph for this function:

ns3::BaseStationNetDevice::BaseStationNetDevice ( Ptr< Node node,
Ptr< WimaxPhy phy,
Ptr< UplinkScheduler uplinkScheduler,
Ptr< BSScheduler bsScheduler 
)

Definition at line 228 of file bs-net-device.cc.

References InitBaseStationNetDevice(), m_scheduler, m_uplinkScheduler, ns3::WimaxNetDevice::SetNode(), and ns3::WimaxNetDevice::SetPhy().

+ Here is the call graph for this function:

ns3::BaseStationNetDevice::~BaseStationNetDevice ( void  )

Definition at line 240 of file bs-net-device.cc.

Member Function Documentation

void ns3::BaseStationNetDevice::CreateDescriptorMessages ( bool  sendDcd,
bool  senUcd 
)
private

creates the channel descriptor MAC management messages DCD and UCD

Definition at line 909 of file bs-net-device.cc.

References CreateDcd(), CreateUcd(), Enqueue(), ns3::WimaxNetDevice::GetBroadcastConnection(), m_framesSinceLastDcd, m_framesSinceLastUcd, m_nrDcdSent, and m_nrUcdSent.

Referenced by CreateMapMessages().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::BaseStationNetDevice::CreateMapMessages ( void  )
private

creates the MAC management messages DL-MAP and UL-MAP

Definition at line 865 of file bs-net-device.cc.

References CreateDescriptorMessages(), CreateDlMap(), CreateUlMap(), Enqueue(), ns3::WimaxNetDevice::GetBroadcastConnection(), ns3::UplinkScheduler::GetChannelDescriptorsToUpdate(), ns3::SSManager::GetNRegisteredSSs(), m_dcdConfigChangeCount, m_nrDlMapSent, m_nrSsRegistered, m_nrUlMapSent, m_ssManager, m_ucdConfigChangeCount, and m_uplinkScheduler.

Referenced by StartDlSubFrame().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::BaseStationNetDevice::DoDispose ( void  )
private
void ns3::BaseStationNetDevice::DoReceive ( Ptr< Packet packet)
private

Definition at line 660 of file bs-net-device.cc.

References ns3::Packet::AddAtEnd(), ns3::Packet::AddHeader(), ns3::BsServiceFlowManager::AllocateServiceFlows(), ns3::Simulator::Cancel(), ns3::GenericMacHeader::check_hcs(), ns3::BandwidthRequestHeader::check_hcs(), ns3::WimaxConnection::ClearFragmentsQueue(), ns3::Packet::Copy(), ns3::WimaxNetDevice::ForwardUp(), ns3::WimaxConnection::FragmentEnqueue(), ns3::WimaxNetDevice::GetBandwidthManager(), ns3::GenericMacHeader::GetCid(), ns3::BandwidthRequestHeader::GetCid(), ns3::ConnectionManager::GetConnection(), GetConnection(), ns3::WimaxNetDevice::GetConnectionManager(), ns3::FragmentationSubheader::GetFc(), ns3::WimaxConnection::GetFragmentsQueue(), ns3::GenericMacHeader::GetHt(), ns3::BandwidthRequestHeader::GetHt(), ns3::SSManager::GetMacAddress(), GetServiceFlowManager(), ns3::Packet::GetSize(), ns3::ManagementMessageType::GetType(), ns3::GenericMacHeader::GetType(), ns3::MacHeaderType::HEADER_TYPE_BANDWIDTH, ns3::MacHeaderType::HEADER_TYPE_GENERIC, ns3::CidFactory::IsBasic(), ns3::Cid::IsBroadcast(), ns3::Cid::IsInitialRanging(), ns3::CidFactory::IsPrimary(), list, m_bsRxDropTrace, m_bsRxTrace, m_cidFactory, m_linkManager, m_ssManager, m_traceBSRx, ns3::ManagementMessageType::MESSAGE_TYPE_DSA_ACK, ns3::ManagementMessageType::MESSAGE_TYPE_DSA_REQ, ns3::ManagementMessageType::MESSAGE_TYPE_DSA_RSP, ns3::ManagementMessageType::MESSAGE_TYPE_REG_REQ, ns3::ManagementMessageType::MESSAGE_TYPE_REG_RSP, ns3::ManagementMessageType::MESSAGE_TYPE_RNG_REQ, ns3::ManagementMessageType::MESSAGE_TYPE_RNG_RSP, NS_ASSERT_MSG, NS_FATAL_ERROR, NS_LOG_INFO, ns3::BandwidthManager::ProcessBandwidthRequest(), ns3::BsServiceFlowManager::ProcessDsaAck(), ns3::BSLinkManager::ProcessRangingRequest(), and ns3::Packet::RemoveHeader().

+ Here is the call graph for this function:

bool ns3::BaseStationNetDevice::DoSend ( Ptr< Packet packet,
const Mac48Address source,
const Mac48Address dest,
uint16_t  protocolNumber 
)
private
void ns3::BaseStationNetDevice::EndDlSubFrame ( void  )
private

Definition at line 557 of file bs-net-device.cc.

References BS_STATE_TTG, ns3::Time::GetSeconds(), ns3::WimaxNetDevice::GetTtg(), m_nrDlFrames, m_psDuration, ns3::Simulator::Schedule(), ns3::Seconds(), ns3::WimaxNetDevice::SetState(), and StartUlSubFrame().

Referenced by StartDlSubFrame().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::BaseStationNetDevice::EndFrame ( void  )
private

Definition at line 588 of file bs-net-device.cc.

References StartFrame().

Referenced by EndUlSubFrame().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::BaseStationNetDevice::EndUlSubFrame ( void  )
private

Definition at line 580 of file bs-net-device.cc.

References BS_STATE_RTG, EndFrame(), ns3::WimaxNetDevice::GetRtg(), ns3::Time::GetSeconds(), m_nrUlFrames, m_psDuration, ns3::Simulator::Schedule(), ns3::Seconds(), and ns3::WimaxNetDevice::SetState().

Referenced by StartUlSubFrame().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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.

Definition at line 646 of file bs-net-device.cc.

References ns3::WimaxConnection::Enqueue(), ns3::WimaxConnection::GetCid(), ns3::GenericMacHeader::GetSerializedSize(), ns3::Packet::GetSize(), NS_ASSERT_MSG, ns3::GenericMacHeader::SetCid(), and ns3::GenericMacHeader::SetLen().

Referenced by CreateDescriptorMessages(), CreateMapMessages(), DoSend(), and ns3::BSLinkManager::ScheduleRngRspMessage().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Ptr< IpcsClassifier > ns3::BaseStationNetDevice::GetBsClassifier ( void  ) const
Returns
a pointer to the classifier installed on the BS

Definition at line 269 of file bs-net-device.cc.

References m_bsClassifier.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

Ptr< BSScheduler > ns3::BaseStationNetDevice::GetBSScheduler ( void  ) const
Returns
The BS scheduler installed on the BS

Definition at line 478 of file bs-net-device.cc.

References m_scheduler.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

uint8_t ns3::BaseStationNetDevice::GetBwReqOppSize ( void  ) const
Returns
The bandwidth request opportunity size in symbols

Definition at line 365 of file bs-net-device.cc.

References m_bwReqOppSize.

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

+ Here is the caller graph for this function:

Time ns3::BaseStationNetDevice::GetDcdInterval ( void  ) const
Returns
the Time between transmission of DCD messages

Definition at line 293 of file bs-net-device.cc.

References m_dcdInterval.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

Time ns3::BaseStationNetDevice::GetDlSubframeStartTime ( void  ) const

Definition at line 407 of file bs-net-device.cc.

References m_dlSubframeStartTime.

Time ns3::BaseStationNetDevice::GetInitialRangingInterval ( void  ) const
Returns
Time between Initial Ranging regions assigned by the BS

Definition at line 281 of file bs-net-device.cc.

References m_initialRangInterval.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

Time ns3::BaseStationNetDevice::GetIntervalT8 ( void  ) const
Returns
the Wait for DSA/DSC Acknowledge timeout

Definition at line 317 of file bs-net-device.cc.

References m_intervalT8.

Referenced by GetTypeId(), and ns3::BsServiceFlowManager::ScheduleDsaRsp().

+ Here is the caller graph for this function:

Ptr< BSLinkManager > ns3::BaseStationNetDevice::GetLinkManager ( void  ) const
Returns
a pointer to the link manager installed on the BS

Definition at line 461 of file bs-net-device.cc.

References m_linkManager.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

uint8_t ns3::BaseStationNetDevice::GetMaxInvitedRangRetries ( void  ) const
Returns
the number of retries on contention Ranging

Definition at line 341 of file bs-net-device.cc.

References m_maxInvitedRangRetries.

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

+ Here is the caller graph for this function:

uint8_t ns3::BaseStationNetDevice::GetMaxRangingCorrectionRetries ( void  ) const
Returns
the number of retries on contention Ranging Requests

Definition at line 329 of file bs-net-device.cc.

References m_maxRangCorrectionRetries.

Referenced by GetTypeId(), and ns3::BSLinkManager::PerformInvitedRanging().

+ Here is the caller graph for this function:

uint32_t ns3::BaseStationNetDevice::GetNrDcdSent ( void  ) const
Returns
the number dcd messages already sent

Definition at line 395 of file bs-net-device.cc.

References m_nrDcdSent.

uint32_t ns3::BaseStationNetDevice::GetNrDlSymbols ( void  ) const
uint32_t ns3::BaseStationNetDevice::GetNrUcdSent ( void  ) const
Returns
the number ucd messages already sent

Definition at line 401 of file bs-net-device.cc.

References m_nrUcdSent.

uint32_t ns3::BaseStationNetDevice::GetNrUlSymbols ( void  ) const
Returns
the number of symbols in the uplink sub-frame

Definition at line 389 of file bs-net-device.cc.

References m_nrUlSymbols.

Referenced by ns3::UplinkSchedulerSimple::Schedule(), ns3::UplinkSchedulerRtps::Schedule(), and ns3::UplinkSchedulerMBQoS::Schedule().

+ Here is the caller graph for this function:

Time ns3::BaseStationNetDevice::GetPsDuration ( void  ) const

Definition at line 484 of file bs-net-device.cc.

References m_psDuration.

uint8_t ns3::BaseStationNetDevice::GetRangingOppNumber ( void  ) const

Definition at line 419 of file bs-net-device.cc.

References m_rangingOppNumber.

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

+ Here is the caller graph for this function:

Time ns3::BaseStationNetDevice::GetSymbolDuration ( void  ) const

Definition at line 490 of file bs-net-device.cc.

References m_symbolDuration.

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

+ Here is the caller graph for this function:

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

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::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.

Definition at line 53 of file bs-net-device.cc.

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

+ Here is the call graph for this function:

Time ns3::BaseStationNetDevice::GetUcdInterval ( void  ) const
Returns
Time between transmission of UCD messages

Definition at line 305 of file bs-net-device.cc.

References m_ucdInterval.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

Time ns3::BaseStationNetDevice::GetUlSubframeStartTime ( void  ) const

Definition at line 413 of file bs-net-device.cc.

References m_ulSubframeStartTime.

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

+ Here is the caller graph for this function:

Ptr< UplinkScheduler > ns3::BaseStationNetDevice::GetUplinkScheduler ( void  ) const
Returns
a pointer to the uplink scheduler installed on the device

Definition at line 449 of file bs-net-device.cc.

References m_uplinkScheduler.

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

+ Here is the caller graph for this function:

void ns3::BaseStationNetDevice::MarkRangingOppStart ( Time  rangingOppStartTime)

Definition at line 1209 of file bs-net-device.cc.

References RangingOppStart(), and ns3::Simulator::Schedule().

Referenced by ns3::UplinkSchedulerSimple::AllocateInitialRangingInterval(), ns3::UplinkSchedulerMBQoS::AllocateInitialRangingInterval(), and ns3::UplinkSchedulerRtps::AllocateInitialRangingInterval().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::BaseStationNetDevice::MarkUplinkAllocationEnd ( Time  allocationEndTime,
Cid  cid,
uint8_t  uiuc 
)
private

Definition at line 1182 of file bs-net-device.cc.

References ns3::Simulator::Schedule(), and UplinkAllocationEnd().

Referenced by MarkUplinkAllocations().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::BaseStationNetDevice::MarkUplinkAllocationStart ( Time  allocationStartTime)
private

Definition at line 1176 of file bs-net-device.cc.

References ns3::Simulator::Schedule(), and UplinkAllocationStart().

Referenced by MarkUplinkAllocations().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::BaseStationNetDevice::RangingOppStart ( void  )
private

Definition at line 1215 of file bs-net-device.cc.

References m_rangingOppNumber, ns3::Simulator::Now(), and NS_LOG_DEBUG.

Referenced by MarkRangingOppStart().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::BaseStationNetDevice::SetBsClassifier ( Ptr< IpcsClassifier classifier)
Parameters
classifiera classifier to be installed on the BS

Definition at line 263 of file bs-net-device.cc.

References m_bsClassifier.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

void ns3::BaseStationNetDevice::SetBSScheduler ( Ptr< BSScheduler bsSchedule)
Parameters
bsSchedulethe downlink scheduler to be installed on the BS

Definition at line 473 of file bs-net-device.cc.

References m_scheduler.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

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

Definition at line 359 of file bs-net-device.cc.

References m_bwReqOppSize.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

void ns3::BaseStationNetDevice::SetDcdInterval ( Time  dcdInterval)
Parameters
dcdIntervalTime between transmission of DCD messages

Definition at line 287 of file bs-net-device.cc.

References m_dcdInterval.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

void ns3::BaseStationNetDevice::SetDlBurstProfiles ( Dcd dcd)
private
void ns3::BaseStationNetDevice::SetInitialRangingInterval ( Time  initialRangInterval)
Parameters
initialRangIntervalTime between Initial Ranging regions assigned by the BS

Definition at line 275 of file bs-net-device.cc.

References m_initialRangInterval.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

void ns3::BaseStationNetDevice::SetIntervalT8 ( Time  interval)
Parameters
intervalthe Wait for DSA/DSC Acknowledge timeout

Definition at line 311 of file bs-net-device.cc.

References m_intervalT8.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

void ns3::BaseStationNetDevice::SetLinkManager ( Ptr< BSLinkManager linkManager)
Parameters
linkManagerThe link manager installed on the BS

Definition at line 467 of file bs-net-device.cc.

References m_linkManager.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

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

Definition at line 335 of file bs-net-device.cc.

References m_maxInvitedRangRetries.

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

Definition at line 323 of file bs-net-device.cc.

References m_maxRangCorrectionRetries.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

void ns3::BaseStationNetDevice::SetNrDlSymbols ( uint32_t  dlSymbols)
Parameters
dlSymbolsthe number of symbols in the downlink sub-frame

Definition at line 371 of file bs-net-device.cc.

References m_nrDlSymbols.

Referenced by ns3::BandwidthManager::SetSubframeRatio(), and StartFrame().

+ Here is the caller graph for this function:

void ns3::BaseStationNetDevice::SetNrUlSymbols ( uint32_t  ulSymbols)
Parameters
ulSymbolsthe number of symbols in the uplink sub-frame

Definition at line 383 of file bs-net-device.cc.

References m_nrUlSymbols.

Referenced by ns3::BandwidthManager::SetSubframeRatio(), and StartFrame().

+ Here is the caller graph for this function:

void ns3::BaseStationNetDevice::SetRangReqOppSize ( uint8_t  rangReqOppSize)
Parameters
rangReqOppSizeThe ranging opportunity size in symbols

Definition at line 347 of file bs-net-device.cc.

References m_rangReqOppSize.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

void ns3::BaseStationNetDevice::SetServiceFlowManager ( Ptr< BsServiceFlowManager sfm)

Definition at line 443 of file bs-net-device.cc.

References m_serviceFlowManager.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

void ns3::BaseStationNetDevice::SetSSManager ( Ptr< SSManager ssManager)
Parameters
ssManagerthe SS manager to be installed on the BS

Definition at line 431 of file bs-net-device.cc.

References m_ssManager.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

void ns3::BaseStationNetDevice::SetUcdInterval ( Time  ucdInterval)
Parameters
ucdIntervalthe Time between transmission of UCD messages

Definition at line 299 of file bs-net-device.cc.

References m_ucdInterval.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

void ns3::BaseStationNetDevice::SetUlBurstProfiles ( Ucd ucd)
private
void ns3::BaseStationNetDevice::SetUplinkScheduler ( Ptr< UplinkScheduler ulScheduler)
Parameters
ulSchedulerthe ulScheduler to be isnstalled on the BS

Definition at line 455 of file bs-net-device.cc.

References m_uplinkScheduler.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

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.

Definition at line 496 of file bs-net-device.cc.

References ns3::WimaxNetDevice::CreateDefaultConnections(), ns3::WimaxNetDevice::GetBandwidthManager(), ns3::WimaxNetDevice::GetConnectionManager(), ns3::WimaxNetDevice::GetPhy(), ns3::WimaxPhy::GetPsDuration(), ns3::WimaxNetDevice::GetRtg(), ns3::WimaxPhy::GetSymbolDuration(), ns3::WimaxNetDevice::GetTtg(), ns3::UplinkScheduler::InitOnce(), m_bwReqOppSize, m_cidFactory, m_linkManager, m_psDuration, m_symbolDuration, m_uplinkScheduler, ns3::Simulator::ScheduleNow(), ns3::BSLinkManager::SelectDlChannel(), ns3::ConnectionManager::SetCidFactory(), ns3::WimaxPhy::SetDataRates(), ns3::WimaxPhy::SetPhyParameters(), ns3::WimaxNetDevice::SetReceiveCallback(), ns3::WimaxNetDevice::SetRtg(), ns3::WimaxPhy::SetSimplex(), ns3::BandwidthManager::SetSubframeRatio(), ns3::WimaxNetDevice::SetTtg(), and StartFrame().

+ Here is the call graph for this function:

void ns3::BaseStationNetDevice::StartFrame ( void  )
private
void ns3::BaseStationNetDevice::StartUlSubFrame ( void  )
private
void ns3::BaseStationNetDevice::Stop ( void  )
virtual

Implements ns3::WimaxNetDevice.

Definition at line 518 of file bs-net-device.cc.

void ns3::BaseStationNetDevice::UplinkAllocationEnd ( Cid  cid,
uint8_t  uiuc 
)
private

Definition at line 1198 of file bs-net-device.cc.

References ns3::CidFactory::IsBasic(), m_cidFactory, m_linkManager, m_ulAllocationNumber, ns3::Simulator::Now(), NS_LOG_DEBUG, and ns3::BSLinkManager::VerifyInvitedRanging().

Referenced by MarkUplinkAllocationEnd().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ns3::BaseStationNetDevice::UplinkAllocationStart ( void  )
private

Definition at line 1188 of file bs-net-device.cc.

References m_ulAllocationNumber, ns3::Simulator::Now(), and NS_LOG_DEBUG.

Referenced by MarkUplinkAllocationStart().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Member Data Documentation

uint32_t ns3::BaseStationNetDevice::m_allocationStartTime
private

Definition at line 307 of file bs-net-device.h.

Referenced by InitBaseStationNetDevice().

Ptr<IpcsClassifier> ns3::BaseStationNetDevice::m_bsClassifier
private
TracedCallback<Ptr<const Packet> > ns3::BaseStationNetDevice::m_bsPromiscRxTrace
private

The trace source fired for packets successfully received by the device immediately before being forwarded up to higher layers (at the L2/L3 transition). This is a promiscuous trace.

See Also
class CallBackTraceSource

Definition at line 344 of file bs-net-device.h.

Referenced by GetTypeId().

TracedCallback<Ptr<const Packet> > ns3::BaseStationNetDevice::m_bsRxDropTrace
private

The trace source fired when packets coming into the "top" of the device are dropped at the MAC layer during reception.

See Also
class CallBackTraceSource

Definition at line 361 of file bs-net-device.h.

Referenced by DoReceive(), and GetTypeId().

TracedCallback<Ptr<const Packet> > ns3::BaseStationNetDevice::m_bsRxTrace
private

The trace source fired for packets successfully received by the device immediately before being forwarded up to higher layers (at the L2/L3 transition). This is a non- promiscuous trace.

See Also
class CallBackTraceSource

Definition at line 353 of file bs-net-device.h.

Referenced by DoReceive(), and GetTypeId().

TracedCallback<Ptr<const Packet> > ns3::BaseStationNetDevice::m_bsTxDropTrace
private

The trace source fired when packets coming into the "top" of the device are dropped at the MAC layer during transmission.

See Also
class CallBackTraceSource

Definition at line 335 of file bs-net-device.h.

Referenced by DoSend(), and GetTypeId().

TracedCallback<Ptr<const Packet> > ns3::BaseStationNetDevice::m_bsTxTrace
private

The trace source fired when packets come into the "top" of the device at the L3/L2 transition, before being queued for transmission.

See Also
class CallBackTraceSource

Definition at line 327 of file bs-net-device.h.

Referenced by DoSend(), and GetTypeId().

uint8_t ns3::BaseStationNetDevice::m_bwReqOppSize
private
CidFactory* ns3::BaseStationNetDevice::m_cidFactory
private
uint32_t ns3::BaseStationNetDevice::m_dcdConfigChangeCount
private
Time ns3::BaseStationNetDevice::m_dcdInterval
private

Definition at line 264 of file bs-net-device.h.

Referenced by GetDcdInterval(), InitBaseStationNetDevice(), and SetDcdInterval().

Time ns3::BaseStationNetDevice::m_dlSubframeStartTime
private
uint32_t ns3::BaseStationNetDevice::m_framesSinceLastDcd
private

Definition at line 286 of file bs-net-device.h.

Referenced by CreateDescriptorMessages(), and InitBaseStationNetDevice().

uint32_t ns3::BaseStationNetDevice::m_framesSinceLastUcd
private

Definition at line 287 of file bs-net-device.h.

Referenced by CreateDescriptorMessages(), and InitBaseStationNetDevice().

Time ns3::BaseStationNetDevice::m_initialRangInterval
private
Time ns3::BaseStationNetDevice::m_intervalT8
private

Definition at line 266 of file bs-net-device.h.

Referenced by GetIntervalT8(), InitBaseStationNetDevice(), and SetIntervalT8().

Ptr<BSLinkManager> ns3::BaseStationNetDevice::m_linkManager
private
uint8_t ns3::BaseStationNetDevice::m_maxInvitedRangRetries
private
uint8_t ns3::BaseStationNetDevice::m_maxRangCorrectionRetries
private
uint32_t ns3::BaseStationNetDevice::m_nrDcdSent
private
uint16_t ns3::BaseStationNetDevice::m_nrDlAllocations
private

Definition at line 296 of file bs-net-device.h.

Referenced by CreateDlMap(), and InitBaseStationNetDevice().

uint32_t ns3::BaseStationNetDevice::m_nrDlFrames
private

Definition at line 290 of file bs-net-device.h.

Referenced by EndDlSubFrame(), and InitBaseStationNetDevice().

uint32_t ns3::BaseStationNetDevice::m_nrDlMapSent
private

Definition at line 277 of file bs-net-device.h.

Referenced by CreateMapMessages(), and InitBaseStationNetDevice().

uint32_t ns3::BaseStationNetDevice::m_nrDlSymbols
private
uint16_t ns3::BaseStationNetDevice::m_nrSsRegistered
private

Definition at line 294 of file bs-net-device.h.

Referenced by CreateMapMessages(), and InitBaseStationNetDevice().

uint32_t ns3::BaseStationNetDevice::m_nrUcdSent
private
uint16_t ns3::BaseStationNetDevice::m_nrUlAllocations
private

Definition at line 297 of file bs-net-device.h.

Referenced by CreateUlMap(), and InitBaseStationNetDevice().

uint32_t ns3::BaseStationNetDevice::m_nrUlFrames
private

Definition at line 291 of file bs-net-device.h.

Referenced by EndUlSubFrame(), and InitBaseStationNetDevice().

uint32_t ns3::BaseStationNetDevice::m_nrUlMapSent
private

Definition at line 278 of file bs-net-device.h.

Referenced by CreateMapMessages(), and InitBaseStationNetDevice().

uint32_t ns3::BaseStationNetDevice::m_nrUlSymbols
private
Time ns3::BaseStationNetDevice::m_psDuration
private
uint8_t ns3::BaseStationNetDevice::m_rangingOppNumber
private
uint8_t ns3::BaseStationNetDevice::m_rangReqOppSize
private
Ptr<BSScheduler> ns3::BaseStationNetDevice::m_scheduler
private
Ptr<BsServiceFlowManager> ns3::BaseStationNetDevice::m_serviceFlowManager
private
Ptr<SSManager> ns3::BaseStationNetDevice::m_ssManager
private
Time ns3::BaseStationNetDevice::m_symbolDuration
private
TracedCallback<Ptr<const Packet>, Mac48Address, Cid> ns3::BaseStationNetDevice::m_traceBSRx
private

Definition at line 319 of file bs-net-device.h.

Referenced by DoReceive().

uint32_t ns3::BaseStationNetDevice::m_ucdConfigChangeCount
private
Time ns3::BaseStationNetDevice::m_ucdInterval
private

Definition at line 265 of file bs-net-device.h.

Referenced by GetUcdInterval(), InitBaseStationNetDevice(), and SetUcdInterval().

uint8_t ns3::BaseStationNetDevice::m_ulAllocationNumber
private
Time ns3::BaseStationNetDevice::m_ulSubframeStartTime
private

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