A Discrete-Event Network Simulator
API
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 }
 
typedef void(* TxRxTracedCallback) (Ptr< const Packet > packet, const Mac48Address &mac)
 TracedCallback signature for packet and Mac48Address. More...
 
- Public Types inherited from ns3::NetDevice
typedef void(* LinkChangeTracedCallback) (void)
 TracedCallback signature for link changed event. More...
 
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 PacketTypePromiscReceiveCallback
 
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)
 Creates the initial ranging and broadcast connections. More...
 
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 ()
 Constructor. More...
 
virtual ~Object ()
 Destructor. More...
 
void AggregateObject (Ptr< Object > other)
 Aggregate two Objects together. More...
 
void Dispose (void)
 Dispose of this Object. More...
 
AggregateIterator GetAggregateIterator (void) const
 Get an iterator to the Objects aggregated to this one. More...
 
virtual TypeId GetInstanceTypeId (void) const
 Implement the GetInstanceTypeId method defined in ObjectBase. More...
 
template<typename T >
Ptr< T > GetObject (void) const
 Get a pointer to the requested aggregated Object. More...
 
template<typename T >
Ptr< T > GetObject (TypeId tid) const
 Get a pointer to the requested aggregated Object by TypeId. More...
 
void Initialize (void)
 Invoke DoInitialize on all Objects aggregated to this one. More...
 
bool IsInitialized (void) const
 Check if the object has been initialized. 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
 Get the value of an attribute, raising fatal errors if unsuccessful. More...
 
bool GetAttributeFailSafe (std::string name, AttributeValue &value) const
 Get the value of an attribute without raising erros. More...
 
void SetAttribute (std::string name, const AttributeValue &value)
 Set a single attribute, raising fatal errors if unsuccessful. More...
 
bool SetAttributeFailSafe (std::string name, const AttributeValue &value)
 Set a single attribute without raising errors. More...
 
bool TraceConnect (std::string name, std::string context, const CallbackBase &cb)
 Connect a TraceSource to a Callback with a context. More...
 
bool TraceConnectWithoutContext (std::string name, const CallbackBase &cb)
 Connect a TraceSource to a Callback without a context. More...
 
bool TraceDisconnect (std::string name, std::string context, const CallbackBase &cb)
 Disconnect from a TraceSource a Callback previously connected with a context. More...
 
bool TraceDisconnectWithoutContext (std::string name, const CallbackBase &cb)
 Disconnect from a TraceSource a Callback previously connected without a context. More...
 

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)
 Get the type ID. More...
 
- 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)
 Destructor implementation. 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, Cidm_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)
 Copy an Object. More...
 
virtual void DoInitialize (void)
 Initialize() implementation. More...
 
virtual void NotifyNewAggregate (void)
 Notify all Objects aggregated to this one of a new Object being aggregated. More...
 
- Protected Member Functions inherited from ns3::ObjectBase
void ConstructSelf (const AttributeConstructionList &attributes)
 Complete construction of ObjectBase; invoked by derived classes. More...
 
virtual void NotifyConstructionCompleted (void)
 Notifier called once the ObjectBase is fully constructed. More...
 

Detailed Description

Config Paths

ns3::BaseStationNetDevice is accessible through the following paths with Config::Set and Config::Connect:

  • "/NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/$ns3::BaseStationNetDevice"
  • "/NodeList/[i]/DeviceList/[i]/$ns3::BaseStationNetDevice"

Attributes

  • BSScheduler: Downlink Scheduler for BS
  • 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
    • Set with class: ns3::UintegerValue
    • Underlying type: uint8_t 1:256
    • Initial value: 8
    • Flags: construct write read
  • BwReqOppSize: The bandwidth request opportunity size in symbols
    • Set with class: ns3::UintegerValue
    • Underlying type: uint8_t 1:256
    • Initial value: 2
    • Flags: construct write read
  • MaxRangCorrectionRetries: Number of retries on contention Ranging Requests
    • Set with class: ns3::UintegerValue
    • Underlying type: uint8_t 1:16
    • Initial value: 16
    • Flags: construct write read
  • 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

  • BSTx: A packet has been received from higher layers and is being processed in preparation for queueing for transmission.
    Callback signature: ns3::Packet::TracedCallback
  • BSTxDrop: A packet has been dropped in the MAC layer before being queued for transmission.
    Callback signature: ns3::Packet::TracedCallback
  • 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,
    Callback signature: ns3::Packet::TracedCallback
  • 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,
    Callback signature: ns3::Packet::TracedCallback
  • BSRxDrop: A packet has been dropped in the MAC layer after it has been passed up from the physical layer.
    Callback signature: ns3::Packet::TracedCallback

TraceSources defined in parent class ns3::WimaxNetDevice

Size of this type is 680 bytes (on a 64-bit architecture).

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

Constructor & Destructor Documentation

ns3::BaseStationNetDevice::BaseStationNetDevice ( void  )

Definition at line 191 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 238 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 245 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 257 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 926 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 882 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

Destructor implementation.

This method is called by 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 262 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 574 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 605 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 597 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 663 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 286 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 495 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 382 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 1151 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 310 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 424 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 298 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 334 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 478 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 358 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 346 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 412 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 394 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 418 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 406 of file bs-net-device.cc.

References m_nrUlSymbols.

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

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

References m_psDuration.

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

Definition at line 436 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 370 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 454 of file bs-net-device.cc.

References m_serviceFlowManager.

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

+ 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 442 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 507 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 322 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 430 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 466 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 1226 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 1199 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 1193 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 1232 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 280 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 490 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 376 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 304 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 292 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 328 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 484 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 352 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 340 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 388 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 400 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 364 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 460 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 448 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 316 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 472 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 535 of file bs-net-device.cc.

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

Definition at line 1215 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 1205 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: