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
}
 Packet types are used as they are in Linux. More...
 
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. More...
 
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 More...
 
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)
 
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. More...
 
virtual Address GetMulticast (Ipv4Address multicastGroup) const
 Make and return a MAC multicast address using the provided multicast group. More...
 
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. More...
 
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. More...
 
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)
 Set the address of this interface. More...
 
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)
 Run the DoDispose methods of this object and all the objects aggregated to it. More...
 
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 Initialize (void)
 This method calls the virtual DoInitialize method on all the objects aggregated to this object. More...
 
- Public Member Functions inherited from ns3::SimpleRefCount< Object, ObjectBase, ObjectDeleter >
 SimpleRefCount ()
 Constructor. More...
 
 SimpleRefCount (const SimpleRefCount &o)
 Copy constructor. More...
 
uint32_t GetReferenceCount (void) const
 Get the reference count of the object. More...
 
SimpleRefCountoperator= (const SimpleRefCount &o)
 Assignment. 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
 
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)
 
- Static Public Member Functions inherited from ns3::WimaxNetDevice
static TypeId GetTypeId (void)
 
- Static Public Member Functions inherited from ns3::NetDevice
static TypeId GetTypeId (void)
 
- Static Public Member Functions inherited from ns3::Object
static TypeId GetTypeId (void)
 Register this type. More...
 
- Static Public Member Functions inherited from ns3::SimpleRefCount< Object, ObjectBase, ObjectDeleter >
static void Cleanup (void)
 Noop. More...
 
- Static Public Member Functions inherited from ns3::ObjectBase
static TypeId GetTypeId (void)
 Get the type ID. More...
 

Private Member Functions

Ptr< PacketCreateDcd (void)
 
void CreateDescriptorMessages (bool sendDcd, bool senUcd)
 creates the channel descriptor MAC management messages DCD and UCD More...
 
Ptr< PacketCreateDlMap (void)
 
void CreateMapMessages (void)
 creates the MAC management messages DL-MAP and UL-MAP More...
 
Ptr< PacketCreateUcd (void)
 
Ptr< PacketCreateUlMap (void)
 
void DoDispose (void)
 This method is called by Object::Dispose or by the object's destructor, whichever comes first. More...
 
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
 The trace source fired for packets successfully received by the device immediately before being forwarded up to higher layers (at the L2/L3 transition). More...
 
TracedCallback< Ptr< const
Packet > > 
m_bsRxDropTrace
 The trace source fired when packets coming into the "top" of the device are dropped at the MAC layer during reception. More...
 
TracedCallback< Ptr< const
Packet > > 
m_bsRxTrace
 The trace source fired for packets successfully received by the device immediately before being forwarded up to higher layers (at the L2/L3 transition). More...
 
TracedCallback< Ptr< const
Packet > > 
m_bsTxDropTrace
 The trace source fired when packets coming into the "top" of the device are dropped at the MAC layer during transmission. More...
 
TracedCallback< Ptr< const
Packet > > 
m_bsTxTrace
 The trace source fired when packets come into the "top" of the device at the L3/L2 transition, before being queued for transmission. More...
 
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 DoInitialize (void)
 This method is called only once by Object::Initialize. More...
 
virtual void NotifyNewAggregate (void)
 This method is invoked whenever two sets of objects are aggregated together. More...
 
- Protected Member Functions inherited from ns3::ObjectBase
void ConstructSelf (const AttributeConstructionList &attributes)
 
virtual void NotifyConstructionCompleted (void)
 This method is invoked once all member attributes have been initialized. More...
 

Detailed Description

Config Paths

ns3::BaseStationNetDevice 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

  • BSScheduler: Downlink Scheduler for BS
    • Set with class: ns3::PointerValue
    • Underlying type: ns3::Ptr< ns3::BSScheduler >
    • Initial value: 0
    • Flags: construct write read
  • InitialRangInterval: Time between Initial Ranging regions assigned by the BS. Maximum is 2s
    • Set with class: ns3::TimeValue
    • Underlying type: Time -9223372036854775808.0ns:+9223372036854775807.0ns
    • Initial value: +50000000.0ns
    • Flags: construct write read
  • DcdInterval: Time between transmission of DCD messages. Maximum value is 10s.
    • Set with class: ns3::TimeValue
    • Underlying type: Time -9223372036854775808.0ns:+9223372036854775807.0ns
    • Initial value: +3000000000.0ns
    • Flags: construct write read
  • UcdInterval: Time between transmission of UCD messages. Maximum value is 10s.
    • Set with class: ns3::TimeValue
    • Underlying type: Time -9223372036854775808.0ns:+9223372036854775807.0ns
    • Initial value: +3000000000.0ns
    • Flags: construct write read
  • IntervalT8: Wait for DSA/DSC Acknowledge timeout. Maximum 300ms.
    • Set with class: ns3::TimeValue
    • Underlying type: Time -9223372036854775808.0ns:+9223372036854775807.0ns
    • 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.
    • Set with class: ns3::PointerValue
    • Underlying type: ns3::Ptr< ns3::SSManager >
    • Initial value: 0
    • Flags: construct write read
  • Scheduler: The BS scheduler attached to this device.
    • Set with class: ns3::PointerValue
    • Underlying type: ns3::Ptr< ns3::BSScheduler >
    • Initial value: 0
    • Flags: construct write read
  • LinkManager: The link manager attached to this device.
    • Set with class: ns3::PointerValue
    • Underlying type: ns3::Ptr< ns3::BSLinkManager >
    • Initial value: 0
    • Flags: construct write read
  • UplinkScheduler: The uplink scheduler attached to this device.
    • Set with class: ns3::PointerValue
    • Underlying type: ns3::Ptr< ns3::UplinkScheduler >
    • Initial value: 0
    • Flags: construct write read
  • BsIpcsPacketClassifier: The uplink IP packet classifier attached to this device.
    • Set with class: ns3::PointerValue
    • Underlying type: ns3::Ptr< ns3::IpcsClassifier >
    • Initial value: 0
    • Flags: construct write read
  • ServiceFlowManager: The service flow manager attached to this device.
    • Set with class: ns3::PointerValue
    • Underlying type: ns3::Ptr< ns3::ServiceFlowManager >
    • Initial value: 0
    • Flags: construct write read

Attributes defined in parent class ns3::WimaxNetDevice

  • Mtu: The MAC-level Maximum Transmission Unit
  • Phy: The PHY layer attached to this device.
    • Set with class: ns3::PointerValue
    • Underlying type: ns3::Ptr< ns3::WimaxPhy >
    • Initial value: 0
    • Flags: construct write read
  • Channel: The channel attached to this device.
    • Set with class: ns3::PointerValue
    • Underlying type: ns3::Ptr< ns3::WimaxChannel >
    • Initial value: 0
    • Flags: construct write read
  • RTG: receive/transmit transition gap.
  • TTG: transmit/receive transition gap.
  • ConnectionManager: The connection manager attached to this device.
    • Set with class: ns3::PointerValue
    • Underlying type: ns3::Ptr< ns3::ConnectionManager >
    • Initial value: 0
    • Flags: construct write read
  • BurstProfileManager: The burst profile manager attached to this device.
    • Set with class: ns3::PointerValue
    • Underlying type: ns3::Ptr< ns3::BurstProfileManager >
    • Initial value: 0
    • Flags: construct write read
  • BandwidthManager: The bandwidth manager attached to this device.
    • Set with class: ns3::PointerValue
    • Underlying type: ns3::Ptr< ns3::BandwidthManager >
    • Initial value: 0
    • Flags: construct write read
  • InitialRangingConnection: Initial ranging connection
    • Set with class: ns3::PointerValue
    • Underlying type: ns3::Ptr< ns3::WimaxConnection >
    • Initial value: 0
    • Flags: construct write read
  • BroadcastConnection: Broadcast connection
    • Set with class: ns3::PointerValue
    • Underlying type: ns3::Ptr< ns3::WimaxConnection >
    • Initial value: 0
    • Flags: construct write read

TraceSources

  • 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

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 177 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 224 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 231 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 243 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 912 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 868 of file bs-net-device.cc.

References CreateDescriptorMessages(), CreateDlMap(), CreateUlMap(), Enqueue(), ns3::WimaxNetDevice::GetBroadcastConnection(), 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:

Ptr< Packet > ns3::BaseStationNetDevice::CreateUlMap ( void  )
private
void ns3::BaseStationNetDevice::DoDispose ( void  )
privatevirtual

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

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

References ns3::WimaxNetDevice::DoDispose(), m_bsClassifier, m_cidFactory, m_linkManager, m_scheduler, m_serviceFlowManager, m_ssManager, and m_uplinkScheduler.

+ Here is the call graph for this function:

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

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

References BS_STATE_TTG, ns3::Time::GetSeconds(), ns3::WimaxNetDevice::GetTtg(), m_nrDlFrames, m_psDuration, ns3::Simulator::Schedule(), 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 591 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 583 of file bs-net-device.cc.

References BS_STATE_RTG, EndFrame(), ns3::WimaxNetDevice::GetRtg(), ns3::Time::GetSeconds(), m_nrUlFrames, m_psDuration, ns3::Simulator::Schedule(), 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 649 of file bs-net-device.cc.

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

Referenced by CreateDescriptorMessages(), CreateMapMessages(), and DoSend().

+ 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 272 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 481 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 368 of file bs-net-device.cc.

References m_bwReqOppSize.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

Ptr< WimaxConnection > ns3::BaseStationNetDevice::GetConnection ( Cid  cid)

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

References ns3::WimaxNetDevice::GetBroadcastConnection(), ns3::WimaxNetDevice::GetConnectionManager(), ns3::WimaxNetDevice::GetInitialRangingConnection(), ns3::Cid::IsBroadcast(), ns3::Cid::IsInitialRanging(), and NS_ASSERT_MSG.

Referenced by DoReceive().

+ Here is the call graph for this function:

+ 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 296 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 410 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 284 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 320 of file bs-net-device.cc.

References m_intervalT8.

Referenced by GetTypeId().

+ 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 464 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 344 of file bs-net-device.cc.

References m_maxInvitedRangRetries.

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

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

References m_maxRangCorrectionRetries.

Referenced by GetTypeId().

+ 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 398 of file bs-net-device.cc.

References m_nrDcdSent.

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

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

References m_nrDlSymbols.

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

Definition at line 404 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 392 of file bs-net-device.cc.

References m_nrUlSymbols.

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

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

References m_psDuration.

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

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

References m_rangingOppNumber.

uint8_t ns3::BaseStationNetDevice::GetRangReqOppSize ( void  ) const
Returns
The ranging opportunity size in symbols

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

References m_rangReqOppSize.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

Ptr< BsServiceFlowManager > ns3::BaseStationNetDevice::GetServiceFlowManager ( void  ) const

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

References m_serviceFlowManager.

Referenced by DoReceive(), DoSend(), GetTypeId(), and main().

+ Here is the caller graph for this function:

Ptr< SSManager > ns3::BaseStationNetDevice::GetSSManager ( void  ) const
Returns
a pointer to the SS manager

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

References m_ssManager.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

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

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

References m_symbolDuration.

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

Definition at line 308 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 416 of file bs-net-device.cc.

References m_ulSubframeStartTime.

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

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

References m_uplinkScheduler.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

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

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

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

+ Here is the call graph for this function:

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

Definition at line 1185 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::MarkUplinkAllocations ( void  )
void ns3::BaseStationNetDevice::MarkUplinkAllocationStart ( Time  allocationStartTime)
private

Definition at line 1179 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 1218 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 266 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 476 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 362 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 290 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 278 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 314 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 470 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 338 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 326 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 374 of file bs-net-device.cc.

References m_nrDlSymbols.

Referenced by 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 386 of file bs-net-device.cc.

References m_nrUlSymbols.

Referenced by 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 350 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 446 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 434 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 302 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 458 of file bs-net-device.cc.

References m_uplinkScheduler.

Referenced by GetTypeId().

+ Here is the caller 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 521 of file bs-net-device.cc.

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

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

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

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