A Discrete-Event Network Simulator
API
Loading...
Searching...
No Matches
ns3::BaseStationNetDevice Class Reference

BaseStation NetDevice. More...

#include "bs-net-device.h"

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

Public Types

enum  MacPreamble { SHORT_PREAMBLE = 1 , LONG_PREAMBLE }
 MacPreamble enumeration. More...
 
enum  State { BS_STATE_DL_SUB_FRAME , BS_STATE_UL_SUB_FRAME , BS_STATE_TTG , BS_STATE_RTG }
 State enumeration. More...
 
- Public Types inherited from ns3::WimaxNetDevice
enum  Direction { DIRECTION_DOWNLINK , DIRECTION_UPLINK }
 Direction enumeration. More...
 
enum  RangingStatus { RANGING_STATUS_EXPIRED , RANGING_STATUS_CONTINUE , RANGING_STATUS_ABORT , RANGING_STATUS_SUCCESS }
 RangingStatus enumeration. More...
 
typedef void(* TxRxTracedCallback) (Ptr< const Packet > packet, const Mac48Address &mac)
 TracedCallback signature for packet and Mac48Address.
 
- Public Types inherited from ns3::NetDevice
typedef void(* LinkChangeTracedCallback) ()
 TracedCallback signature for link changed event.
 
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 &, PacketTypePromiscReceiveCallback
 
typedef Callback< bool, Ptr< NetDevice >, Ptr< const Packet >, uint16_t, const Address & > ReceiveCallback
 

Public Member Functions

 BaseStationNetDevice ()
 
 BaseStationNetDevice (Ptr< Node > node, Ptr< WimaxPhy > phy)
 Constructor.
 
 BaseStationNetDevice (Ptr< Node > node, Ptr< WimaxPhy > phy, Ptr< UplinkScheduler > uplinkScheduler, Ptr< BSScheduler > bsScheduler)
 Constructor.
 
 ~BaseStationNetDevice () override
 
bool Enqueue (Ptr< Packet > packet, const MacHeaderType &hdrType, Ptr< WimaxConnection > connection) override
 Enqueue a packet into a connection queue.
 
Ptr< IpcsClassifierGetBsClassifier () const
 
Ptr< BSSchedulerGetBSScheduler () const
 
uint8_t GetBwReqOppSize () const
 
Ptr< WimaxConnectionGetConnection (Cid cid)
 
Time GetDcdInterval () const
 
Time GetDlSubframeStartTime () const
 
Time GetInitialRangingInterval () const
 
Time GetIntervalT8 () const
 
Ptr< BSLinkManagerGetLinkManager () const
 
uint8_t GetMaxInvitedRangRetries () const
 
uint8_t GetMaxRangingCorrectionRetries () const
 
uint32_t GetNrDcdSent () const
 
uint32_t GetNrDlSymbols () const
 
uint32_t GetNrUcdSent () const
 
uint32_t GetNrUlSymbols () const
 
Time GetPsDuration () const
 
uint8_t GetRangingOppNumber () const
 
uint8_t GetRangReqOppSize () const
 
Ptr< BsServiceFlowManagerGetServiceFlowManager () const
 
Ptr< SSManagerGetSSManager () const
 
Time GetSymbolDuration () const
 
Time GetUcdInterval () const
 
Time GetUlSubframeStartTime () const
 
Ptr< UplinkSchedulerGetUplinkScheduler () const
 
void InitBaseStationNetDevice ()
 initializes the BS net device and sets its parameters to the default values
 
void MarkRangingOppStart (Time rangingOppStartTime)
 Mark ranging opp start.
 
void MarkUplinkAllocations ()
 Mark uplink allocations.
 
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 > sfm)
 Set service flow manager.
 
void SetSSManager (Ptr< SSManager > ssManager)
 
void SetUcdInterval (Time ucdInterval)
 
void SetUplinkScheduler (Ptr< UplinkScheduler > ulScheduler)
 
void Start () override
 Start device.
 
void Stop () override
 Stop device.
 
- Public Member Functions inherited from ns3::WimaxNetDevice
 WimaxNetDevice ()
 
 ~WimaxNetDevice () override
 
void AddLinkChangeCallback (Callback< void > callback) override
 Add link change callback function.
 
void Attach (Ptr< WimaxChannel > channel)
 Attach device to channel.
 
void CreateDefaultConnections ()
 Creates the initial ranging and broadcast connections.
 
void DoDispose () override
 Destructor implementation.
 
void ForwardDown (Ptr< PacketBurst > burst, WimaxPhy::ModulationType modulationType)
 Forward a packet down the stack.
 
void ForwardUp (Ptr< Packet > packet, const Mac48Address &source, const Mac48Address &dest)
 Forward a packet to the next layer above the device.
 
Address GetAddress () const override
 Get address of the device.
 
Ptr< BandwidthManagerGetBandwidthManager () const
 Get the bandwidth manager on the device.
 
Address GetBroadcast () const override
 Get broadcast address.
 
Ptr< WimaxConnectionGetBroadcastConnection () const
 Get the broadcast connection.
 
Ptr< BurstProfileManagerGetBurstProfileManager () const
 Get the burst profile manager.
 
Ptr< ChannelGetChannel () const override
 Get the channel.
 
uint64_t GetChannel (uint8_t index) const
 Get the channel object by index.
 
Ptr< ConnectionManagerGetConnectionManager () const
 Get the connection manager of the device.
 
Dcd GetCurrentDcd () const
 Get the current DCD.
 
Ucd GetCurrentUcd () const
 Get the current UCD.
 
uint32_t GetIfIndex () const override
 Get interface index.
 
Ptr< WimaxConnectionGetInitialRangingConnection () const
 Get the initial ranging connection.
 
Mac48Address GetMacAddress () const
 Get the MAC address.
 
uint16_t GetMtu () const override
 Get MTU of the device.
 
virtual Address GetMulticast () const
 Get multicast address.
 
Address GetMulticast (Ipv4Address multicastGroup) const override
 Make and return a MAC multicast address using the provided multicast group.
 
Address GetMulticast (Ipv6Address addr) const override
 Get the MAC multicast address corresponding to the IPv6 address provided.
 
virtual std::string GetName () const
 Get device name.
 
Ptr< NodeGetNode () const override
 Get node pointer.
 
uint32_t GetNrFrames () const
 Get the number of frames.
 
Ptr< WimaxPhyGetPhy () const
 Get the physical layer object.
 
virtual Ptr< ChannelGetPhyChannel () const
 Get the channel (this method is redundant with GetChannel())
 
NetDevice::PromiscReceiveCallback GetPromiscReceiveCallback ()
 Get promiscuous receive callback function.
 
uint16_t GetRtg () const
 Get receive/transmit transition gap.
 
uint8_t GetState () const
 Get the device state.
 
uint16_t GetTtg () const
 Get transmission/receive transition gap.
 
bool IsBridge () const override
 Return true if the net device is acting as a bridge.
 
bool IsBroadcast () const override
 Check if broadcast enabled.
 
bool IsLinkUp () const override
 Check if link is up.
 
bool IsMulticast () const override
 Check if multicast enabled.
 
bool IsPointToPoint () const override
 Check if device is a point-to-point device.
 
bool IsPromisc ()
 Check if device is promiscuous.
 
virtual Address MakeMulticastAddress (Ipv4Address multicastGroup) const
 Make multicast address.
 
bool NeedsArp () const override
 Check if device needs ARP.
 
void NotifyPromiscTrace (Ptr< Packet > p)
 Notify promiscuous trace of a packet arrival.
 
bool Send (Ptr< Packet > packet, const Address &dest, uint16_t protocolNumber) override
 Send function.
 
bool SendFrom (Ptr< Packet > packet, const Address &source, const Address &dest, uint16_t protocolNumber) override
 Send a packet.
 
void SetAddress (Address address) override
 Set address of the device.
 
void SetBandwidthManager (Ptr< BandwidthManager > bandwidthManager)
 Set the bandwidth manager on the device.
 
void SetBurstProfileManager (Ptr< BurstProfileManager > burstProfileManager)
 Set the burst profile manager.
 
void SetChannel (Ptr< WimaxChannel > wimaxChannel)
 Set the channel object.
 
virtual void SetConnectionManager (Ptr< ConnectionManager > connectionManager)
 Set the connection manager of the device.
 
void SetCurrentDcd (Dcd dcd)
 Set the current DCD.
 
void SetCurrentUcd (Ucd ucd)
 Set the current UCD.
 
void SetIfIndex (const uint32_t index) override
 Set interface index.
 
virtual void SetLinkChangeCallback (Callback< void > callback)
 Set link change callback function.
 
void SetMacAddress (Mac48Address address)
 Set the MAC address.
 
bool SetMtu (const uint16_t mtu) override
 Set MTU value for the device.
 
virtual void SetName (const std::string name)
 Set device name.
 
void SetNode (Ptr< Node > node) override
 Set node pointer.
 
void SetNrFrames (uint32_t nrFrames)
 Set the number of frames.
 
void SetPhy (Ptr< WimaxPhy > phy)
 Set the physical layer object.
 
void SetPromiscReceiveCallback (PromiscReceiveCallback cb) override
 Set promiscuous receive callback function.
 
void SetReceiveCallback ()
 Set receive callback function.
 
void SetReceiveCallback (NetDevice::ReceiveCallback cb) override
 Set receive callback function.
 
void SetRtg (uint16_t rtg)
 Set receive/transmit transition gap.
 
void SetState (uint8_t state)
 Set the device state.
 
void SetTtg (uint16_t ttg)
 Set transmission/receive transition gap.
 
bool SupportsSendFrom () const override
 Check if device supports the SendFrom method.
 
- Public Member Functions inherited from ns3::NetDevice
 ~NetDevice () override
 
- Public Member Functions inherited from ns3::Object
 Object ()
 Constructor.
 
 ~Object () override
 Destructor.
 
void AggregateObject (Ptr< Object > other)
 Aggregate two Objects together.
 
void Dispose ()
 Dispose of this Object.
 
AggregateIterator GetAggregateIterator () const
 Get an iterator to the Objects aggregated to this one.
 
TypeId GetInstanceTypeId () const override
 Get the most derived TypeId for this Object.
 
template<typename T >
Ptr< T > GetObject () const
 Get a pointer to the requested aggregated Object.
 
template<>
Ptr< ObjectGetObject () const
 Specialization of () for objects of type ns3::Object.
 
template<typename T >
Ptr< T > GetObject (TypeId tid) const
 Get a pointer to the requested aggregated Object by TypeId.
 
template<>
Ptr< ObjectGetObject (TypeId tid) const
 Specialization of (TypeId tid) for objects of type ns3::Object.
 
void Initialize ()
 Invoke DoInitialize on all Objects aggregated to this one.
 
bool IsInitialized () const
 Check if the object has been initialized.
 
void UnidirectionalAggregateObject (Ptr< Object > other)
 Aggregate an Object to another Object.
 
- Public Member Functions inherited from ns3::SimpleRefCount< Object, ObjectBase, ObjectDeleter >
 SimpleRefCount ()
 Default constructor.
 
 SimpleRefCount (const SimpleRefCount &o)
 Copy constructor.
 
uint32_t GetReferenceCount () const
 Get the reference count of the object.
 
SimpleRefCountoperator= (const SimpleRefCount &o)
 Assignment operator.
 
void Ref () const
 Increment the reference count.
 
void Unref () const
 Decrement the reference count.
 
- Public Member Functions inherited from ns3::ObjectBase
virtual ~ObjectBase ()
 Virtual destructor.
 
void GetAttribute (std::string name, AttributeValue &value, bool permissive=false) const
 Get the value of an attribute, raising fatal errors if unsuccessful.
 
bool GetAttributeFailSafe (std::string name, AttributeValue &value) const
 Get the value of an attribute without raising errors.
 
void SetAttribute (std::string name, const AttributeValue &value)
 Set a single attribute, raising fatal errors if unsuccessful.
 
bool SetAttributeFailSafe (std::string name, const AttributeValue &value)
 Set a single attribute without raising errors.
 
bool TraceConnect (std::string name, std::string context, const CallbackBase &cb)
 Connect a TraceSource to a Callback with a context.
 
bool TraceConnectWithoutContext (std::string name, const CallbackBase &cb)
 Connect a TraceSource to a Callback without a context.
 
bool TraceDisconnect (std::string name, std::string context, const CallbackBase &cb)
 Disconnect from a TraceSource a Callback previously connected with a context.
 
bool TraceDisconnectWithoutContext (std::string name, const CallbackBase &cb)
 Disconnect from a TraceSource a Callback previously connected without a context.
 

Static Public Member Functions

static TypeId GetTypeId ()
 Get the type ID.
 
- Static Public Member Functions inherited from ns3::WimaxNetDevice
static TypeId GetTypeId ()
 Get the type ID.
 
- Static Public Member Functions inherited from ns3::NetDevice
static TypeId GetTypeId ()
 Get the type ID.
 
- Static Public Member Functions inherited from ns3::Object
static TypeId GetTypeId ()
 Register this type.
 
- Static Public Member Functions inherited from ns3::ObjectBase
static TypeId GetTypeId ()
 Get the type ID.
 

Private Member Functions

Ptr< PacketCreateDcd ()
 Create DCD.
 
void CreateDescriptorMessages (bool sendDcd, bool sendUcd)
 creates the channel descriptor MAC management messages DCD and UCD
 
Ptr< PacketCreateDlMap ()
 Create DL map.
 
void CreateMapMessages ()
 creates the MAC management messages DL-MAP and UL-MAP
 
Ptr< PacketCreateUcd ()
 Create UCD.
 
Ptr< PacketCreateUlMap ()
 Create UL map.
 
void DoDispose () override
 Destructor implementation.
 
void DoReceive (Ptr< Packet > packet) override
 Receive packet.
 
bool DoSend (Ptr< Packet > packet, const Mac48Address &source, const Mac48Address &dest, uint16_t protocolNumber) override
 Send packet.
 
void EndDlSubFrame ()
 End DL subframe function.
 
void EndFrame ()
 End frame function.
 
void EndUlSubFrame ()
 End UL subframe function.
 
void MarkUplinkAllocationEnd (Time allocationEndTime, Cid cid, uint8_t uiuc)
 Mark uplink allocation end.
 
void MarkUplinkAllocationStart (Time allocationStartTime)
 Mark uplink allocation start.
 
void RangingOppStart ()
 Ranging opp start.
 
void SendBursts ()
 Send burst function.
 
void SetDlBurstProfiles (Dcd *dcd)
 Send DL burst profiles.
 
void SetUlBurstProfiles (Ucd *ucd)
 Send UL burst profiles.
 
void StartDlSubFrame ()
 Start DL subframe function.
 
void StartFrame ()
 Start frame function.
 
void StartUlSubFrame ()
 Start UL subframe function.
 
void UplinkAllocationEnd (Cid cid, uint8_t uiuc)
 Uplink allocation end.
 
void UplinkAllocationStart ()
 Uplink allocation start.
 

Private Attributes

uint32_t m_allocationStartTime
 allocation start time
 
Ptr< IpcsClassifierm_bsClassifier
 the base station classifier
 
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).
 
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.
 
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).
 
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.
 
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.
 
uint8_t m_bwReqOppSize
 in symbols
 
CidFactorym_cidFactory
 the CID factory
 
uint32_t m_dcdConfigChangeCount
 DCD config change count.
 
Time m_dcdInterval
 in seconds
 
Time m_dlSubframeStartTime
 DL subframe start time.
 
uint32_t m_framesSinceLastDcd
 frames since last DCD
 
uint32_t m_framesSinceLastUcd
 frames since last UCD
 
Time m_initialRangInterval
 in seconds
 
Time m_intervalT8
 in milliseconds, wait for DSA/DSC Acknowledge timeout
 
Ptr< BSLinkManagerm_linkManager
 the link manager
 
uint8_t m_maxInvitedRangRetries
 maximum invited range retries
 
uint8_t m_maxRangCorrectionRetries
 maximum range correction retries
 
uint32_t m_nrDcdSent
 number DCD sent
 
uint16_t m_nrDlAllocations
 number DL allocations
 
uint32_t m_nrDlFrames
 number DL frames
 
uint32_t m_nrDlMapSent
 number DL map sent
 
uint32_t m_nrDlSymbols
 number of DL symbols
 
uint16_t m_nrSsRegistered
 number SS registered
 
uint32_t m_nrUcdSent
 number UCD sent
 
uint16_t m_nrUlAllocations
 number UL allocations
 
uint32_t m_nrUlFrames
 number UL frames
 
uint32_t m_nrUlMapSent
 number UL map sent
 
uint32_t m_nrUlSymbols
 number of UL symbols
 
Time m_psDuration
 ps duration
 
uint8_t m_rangingOppNumber
 current ranging TO number
 
uint8_t m_rangReqOppSize
 in symbols
 
Ptr< BSSchedulerm_scheduler
 the base station scheduler
 
Ptr< BsServiceFlowManagerm_serviceFlowManager
 the service flow manager
 
Ptr< SSManagerm_ssManager
 the SS manager
 
Time m_symbolDuration
 symbol duration
 
TracedCallback< Ptr< const Packet >, Mac48Address, Cidm_traceBSRx
 the base station receive trace callback
 
uint32_t m_ucdConfigChangeCount
 UCD config change count.
 
Time m_ucdInterval
 in seconds
 
uint8_t m_ulAllocationNumber
 to see UL burst number
 
Time m_ulSubframeStartTime
 UL subframe start time.
 
Ptr< UplinkSchedulerm_uplinkScheduler
 the uplink scheduler
 

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
 downlink or uplink
 
static Time m_frameStartTime = Seconds(0)
 temp, to determine the frame start time at SS side, shall actually be determined by frame start preamble
 
- Protected Member Functions inherited from ns3::Object
 Object (const Object &o)
 Copy an Object.
 
virtual void DoInitialize ()
 Initialize() implementation.
 
virtual void NotifyNewAggregate ()
 Notify all Objects aggregated to this one of a new Object being aggregated.
 
- Protected Member Functions inherited from ns3::ObjectBase
void ConstructSelf (const AttributeConstructionList &attributes)
 Complete construction of ObjectBase; invoked by derived classes.
 
virtual void NotifyConstructionCompleted ()
 Notifier called once the ObjectBase is fully constructed.
 

Detailed Description

BaseStation NetDevice.

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
  • BsIpcsPacketClassifier: The uplink IP packet classifier attached to this device.
  • BwReqOppSize: The bandwidth request opportunity size in symbols
    • Set with class: ns3::UintegerValue
    • Underlying type: uint8_t 1:256
    • Initial value: 2
    • Flags: constructwriteread
    • Support level: SUPPORTED
  • DcdInterval: Time between transmission of DCD messages. Maximum value is 10s.
    • Set with class: ns3::TimeValue
    • Underlying type: Time -9.22337e+18ns:+9.22337e+18ns
    • Initial value: +3e+09ns
    • Flags: constructwriteread
    • Support level: SUPPORTED
  • InitialRangInterval: Time between Initial Ranging regions assigned by the BS. Maximum is 2s
    • Set with class: ns3::TimeValue
    • Underlying type: Time -9.22337e+18ns:+9.22337e+18ns
    • Initial value: +5e+07ns
    • Flags: constructwriteread
    • Support level: SUPPORTED
  • IntervalT8: Wait for DSA/DSC Acknowledge timeout. Maximum 300ms.
    • Set with class: ns3::TimeValue
    • Underlying type: Time -9.22337e+18ns:+9.22337e+18ns
    • Initial value: +5e+07ns
    • Flags: constructwriteread
    • Support level: SUPPORTED
  • LinkManager: The link manager attached to this device.
  • MaxRangCorrectionRetries: Number of retries on contention Ranging Requests
    • Set with class: ns3::UintegerValue
    • Underlying type: uint8_t 1:16
    • Initial value: 16
    • Flags: constructwriteread
    • Support level: SUPPORTED
  • RangReqOppSize: The ranging opportunity size in symbols
    • Set with class: ns3::UintegerValue
    • Underlying type: uint8_t 1:256
    • Initial value: 8
    • Flags: constructwriteread
    • Support level: SUPPORTED
  • SSManager: The ss manager attached to this device.
  • Scheduler: The BS scheduler attached to this device.
  • ServiceFlowManager: The service flow manager attached to this device.
  • UcdInterval: Time between transmission of UCD messages. Maximum value is 10s.
    • Set with class: ns3::TimeValue
    • Underlying type: Time -9.22337e+18ns:+9.22337e+18ns
    • Initial value: +3e+09ns
    • Flags: constructwriteread
    • Support level: SUPPORTED
  • UplinkScheduler: The uplink scheduler attached to this device.

Attributes defined in parent class ns3::WimaxNetDevice

TraceSources

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

TraceSources defined in parent class ns3::WimaxNetDevice

Group: Wimax

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

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

Member Enumeration Documentation

◆ MacPreamble

MacPreamble enumeration.

Enumerator
SHORT_PREAMBLE 
LONG_PREAMBLE 

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

◆ State

State enumeration.

Enumerator
BS_STATE_DL_SUB_FRAME 
BS_STATE_UL_SUB_FRAME 
BS_STATE_TTG 
BS_STATE_RTG 

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

Constructor & Destructor Documentation

◆ BaseStationNetDevice() [1/3]

ns3::BaseStationNetDevice::BaseStationNetDevice ( )

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

References InitBaseStationNetDevice().

+ Here is the call graph for this function:

◆ BaseStationNetDevice() [2/3]

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

Constructor.

Parameters
nodethe node
phythe wimax 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:

◆ BaseStationNetDevice() [3/3]

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

Constructor.

Parameters
nodethe node
phythe wimax phy
uplinkScheduleruplink scheduler
bsSchedulerbs scheduler

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:

◆ ~BaseStationNetDevice()

ns3::BaseStationNetDevice::~BaseStationNetDevice ( )
override

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

Member Function Documentation

◆ CreateDcd()

◆ CreateDescriptorMessages()

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

creates the channel descriptor MAC management messages DCD and UCD

Parameters
sendDcdtrue if send DCD
sendUcdtrue if send UCD

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

◆ CreateDlMap()

Ptr< Packet > ns3::BaseStationNetDevice::CreateDlMap ( )
private

Create DL map.

Returns
packet

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

References ns3::DlMap::AddDlMapElement(), ns3::Create(), ns3::OfdmDlBurstProfile::DIUC_END_OF_MAP, ns3::WimaxNetDevice::GetMacAddress(), ns3::Cid::InitialRanging(), m_dcdConfigChangeCount, m_nrDlAllocations, m_scheduler, ns3::ManagementMessageType::MESSAGE_TYPE_DL_MAP, ns3::DlMap::SetBaseStationId(), ns3::OfdmDlMapIe::SetCid(), ns3::DlMap::SetDcdCount(), ns3::OfdmDlMapIe::SetDiuc(), ns3::OfdmDlMapIe::SetPreamblePresent(), and ns3::OfdmDlMapIe::SetStartTime().

Referenced by CreateMapMessages().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ CreateMapMessages()

void ns3::BaseStationNetDevice::CreateMapMessages ( )
private

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

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

◆ CreateUcd()

Ptr< Packet > ns3::BaseStationNetDevice::CreateUcd ( )
private

◆ CreateUlMap()

Ptr< Packet > ns3::BaseStationNetDevice::CreateUlMap ( )
private

Create UL map.

Returns
packet

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

References ns3::UlMap::AddUlMapElement(), ns3::Create(), m_nrUlAllocations, m_rangingOppNumber, m_ucdConfigChangeCount, m_ulAllocationNumber, m_uplinkScheduler, ns3::ManagementMessageType::MESSAGE_TYPE_UL_MAP, ns3::UlMap::SetAllocationStartTime(), and ns3::UlMap::SetUcdCount().

Referenced by CreateMapMessages().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ DoDispose()

void ns3::BaseStationNetDevice::DoDispose ( )
overrideprivatevirtual

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

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:

◆ DoReceive()

void ns3::BaseStationNetDevice::DoReceive ( Ptr< Packet > packet)
overrideprivatevirtual

Receive packet.

Parameters
packetto send

Implements ns3::WimaxNetDevice.

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

References ns3::Simulator::Cancel(), ns3::BandwidthRequestHeader::check_hcs(), ns3::GenericMacHeader::check_hcs(), ns3::Create(), ns3::WimaxNetDevice::ForwardUp(), ns3::WimaxNetDevice::GetBandwidthManager(), ns3::Mac48Address::GetBroadcast(), ns3::BandwidthRequestHeader::GetCid(), ns3::GenericMacHeader::GetCid(), ns3::WimaxNetDevice::GetConnectionManager(), ns3::FragmentationSubheader::GetFc(), ns3::BandwidthRequestHeader::GetHt(), ns3::GenericMacHeader::GetHt(), GetServiceFlowManager(), ns3::GenericMacHeader::GetType(), ns3::ManagementMessageType::GetType(), ns3::MacHeaderType::HEADER_TYPE_BANDWIDTH, ns3::MacHeaderType::HEADER_TYPE_GENERIC, ns3::CidFactory::IsBasic(), ns3::Cid::IsBroadcast(), ns3::Cid::IsInitialRanging(), ns3::CidFactory::IsPrimary(), 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, and NS_LOG_INFO.

+ Here is the call graph for this function:

◆ DoSend()

bool ns3::BaseStationNetDevice::DoSend ( Ptr< Packet > packet,
const Mac48Address & source,
const Mac48Address & dest,
uint16_t protocolNumber )
overrideprivatevirtual

Send packet.

Parameters
packetto send
sourceMAC address
destdestination MAC address
protocolNumberprotocol number
Returns
true if successful

Implements ns3::WimaxNetDevice.

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

References ns3::Create(), Enqueue(), ns3::ServiceFlow::GetConnection(), ns3::ServiceFlow::GetIsEnabled(), GetServiceFlowManager(), m_bsClassifier, m_bsTxDropTrace, m_bsTxTrace, NS_LOG_INFO, ns3::ServiceFlow::SF_DIRECTION_DOWN, and ns3::ServiceFlow::SF_TYPE_ALL.

+ Here is the call graph for this function:

◆ EndDlSubFrame()

void ns3::BaseStationNetDevice::EndDlSubFrame ( )
private

End DL subframe function.

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

◆ EndFrame()

void ns3::BaseStationNetDevice::EndFrame ( )
private

End frame function.

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

◆ EndUlSubFrame()

void ns3::BaseStationNetDevice::EndUlSubFrame ( )
private

End UL subframe function.

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

◆ Enqueue()

bool ns3::BaseStationNetDevice::Enqueue ( Ptr< Packet > packet,
const MacHeaderType & hdrType,
Ptr< WimaxConnection > connection )
overridevirtual

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
Returns
true if successful

Implements ns3::WimaxNetDevice.

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

References ns3::GenericMacHeader::GetSerializedSize(), 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:

◆ GetBsClassifier()

Ptr< IpcsClassifier > ns3::BaseStationNetDevice::GetBsClassifier ( ) 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:

◆ GetBSScheduler()

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

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

References m_scheduler.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

◆ GetBwReqOppSize()

uint8_t ns3::BaseStationNetDevice::GetBwReqOppSize ( ) 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:

◆ GetConnection()

Ptr< WimaxConnection > ns3::BaseStationNetDevice::GetConnection ( Cid cid)
Parameters
cidconnection ID
Returns
a pointer to the connection

Definition at line 1156 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.

+ Here is the call graph for this function:

◆ GetDcdInterval()

Time ns3::BaseStationNetDevice::GetDcdInterval ( ) 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:

◆ GetDlSubframeStartTime()

Time ns3::BaseStationNetDevice::GetDlSubframeStartTime ( ) const
Returns
the DL subframe start time

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

References m_dlSubframeStartTime.

◆ GetInitialRangingInterval()

Time ns3::BaseStationNetDevice::GetInitialRangingInterval ( ) 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:

◆ GetIntervalT8()

Time ns3::BaseStationNetDevice::GetIntervalT8 ( ) 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:

◆ GetLinkManager()

Ptr< BSLinkManager > ns3::BaseStationNetDevice::GetLinkManager ( ) 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:

◆ GetMaxInvitedRangRetries()

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

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

References m_maxInvitedRangRetries.

◆ GetMaxRangingCorrectionRetries()

uint8_t ns3::BaseStationNetDevice::GetMaxRangingCorrectionRetries ( ) 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:

◆ GetNrDcdSent()

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

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

References m_nrDcdSent.

◆ GetNrDlSymbols()

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

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

References m_nrDlSymbols.

◆ GetNrUcdSent()

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

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

References m_nrUcdSent.

◆ GetNrUlSymbols()

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

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

References m_nrUlSymbols.

◆ GetPsDuration()

Time ns3::BaseStationNetDevice::GetPsDuration ( ) const
Returns
PS duration

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

References m_psDuration.

◆ GetRangingOppNumber()

uint8_t ns3::BaseStationNetDevice::GetRangingOppNumber ( ) const
Returns
the ranging opp number

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

References m_rangingOppNumber.

◆ GetRangReqOppSize()

uint8_t ns3::BaseStationNetDevice::GetRangReqOppSize ( ) 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:

◆ GetServiceFlowManager()

Ptr< BsServiceFlowManager > ns3::BaseStationNetDevice::GetServiceFlowManager ( ) const
Returns
service flow manager

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:

◆ GetSSManager()

Ptr< SSManager > ns3::BaseStationNetDevice::GetSSManager ( ) 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:

◆ GetSymbolDuration()

Time ns3::BaseStationNetDevice::GetSymbolDuration ( ) const
Returns
symbol duration

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

References m_symbolDuration.

◆ GetTypeId()

◆ GetUcdInterval()

Time ns3::BaseStationNetDevice::GetUcdInterval ( ) 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:

◆ GetUlSubframeStartTime()

Time ns3::BaseStationNetDevice::GetUlSubframeStartTime ( ) const
Returns
the UL subframe start time

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

References m_ulSubframeStartTime.

◆ GetUplinkScheduler()

Ptr< UplinkScheduler > ns3::BaseStationNetDevice::GetUplinkScheduler ( ) 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:

◆ InitBaseStationNetDevice()

void ns3::BaseStationNetDevice::InitBaseStationNetDevice ( )

initializes the BS net device and sets its parameters to the default values

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

References ns3::CreateObject(), m_allocationStartTime, m_bsClassifier, m_bwReqOppSize, m_cidFactory, m_dcdConfigChangeCount, m_dcdInterval, m_dlSubframeStartTime, m_framesSinceLastDcd, m_framesSinceLastUcd, m_initialRangInterval, m_intervalT8, m_linkManager, m_maxInvitedRangRetries, m_maxRangCorrectionRetries, m_nrDcdSent, m_nrDlAllocations, m_nrDlFrames, m_nrDlMapSent, m_nrDlSymbols, m_nrSsRegistered, m_nrUcdSent, m_nrUlAllocations, m_nrUlFrames, m_nrUlMapSent, m_nrUlSymbols, m_psDuration, m_rangingOppNumber, m_rangReqOppSize, m_serviceFlowManager, m_ssManager, m_symbolDuration, m_ucdConfigChangeCount, m_ucdInterval, m_ulAllocationNumber, m_ulSubframeStartTime, ns3::MilliSeconds(), and ns3::Seconds().

Referenced by BaseStationNetDevice(), BaseStationNetDevice(), and BaseStationNetDevice().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ MarkRangingOppStart()

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

Mark ranging opp start.

Parameters
rangingOppStartTimestart time

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

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

+ Here is the call graph for this function:

◆ MarkUplinkAllocationEnd()

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

Mark uplink allocation end.

Parameters
allocationEndTimeallocation end time
cidconnection ID
uiuc

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

◆ MarkUplinkAllocations()

void ns3::BaseStationNetDevice::MarkUplinkAllocations ( )

Mark uplink allocations.

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

References ns3::OfdmUlMapIe::GetCid(), ns3::OfdmUlMapIe::GetDuration(), ns3::OfdmUlMapIe::GetStartTime(), ns3::OfdmUlMapIe::GetUiuc(), m_symbolDuration, m_uplinkScheduler, MarkUplinkAllocationEnd(), MarkUplinkAllocationStart(), and ns3::OfdmUlBurstProfile::UIUC_END_OF_MAP.

Referenced by StartUlSubFrame().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ MarkUplinkAllocationStart()

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

Mark uplink allocation start.

Parameters
allocationStartTimeallocation start time

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

◆ RangingOppStart()

void ns3::BaseStationNetDevice::RangingOppStart ( )
private

Ranging opp start.

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

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

Referenced by MarkRangingOppStart().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ SendBursts()

void ns3::BaseStationNetDevice::SendBursts ( )
private

Send burst function.

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

References ns3::WimaxNetDevice::DIRECTION_DOWNLINK, ns3::WimaxNetDevice::ForwardDown(), ns3::WimaxNetDevice::GetBroadcastConnection(), ns3::WimaxNetDevice::GetBurstProfileManager(), ns3::OfdmDlMapIe::GetCid(), ns3::OfdmDlMapIe::GetDiuc(), ns3::WimaxNetDevice::GetInitialRangingConnection(), ns3::WimaxNetDevice::GetPhy(), m_scheduler, ns3::WimaxPhy::MODULATION_TYPE_BPSK_12, ns3::Simulator::Schedule(), and ns3::Seconds().

Referenced by StartDlSubFrame().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ SetBsClassifier()

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:

◆ SetBSScheduler()

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:

◆ SetBwReqOppSize()

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:

◆ SetDcdInterval()

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:

◆ SetDlBurstProfiles()

void ns3::BaseStationNetDevice::SetDlBurstProfiles ( Dcd * dcd)
private

Send DL burst profiles.

Parameters
dcdburst profile

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

References ns3::Dcd::AddDlBurstProfile(), ns3::WimaxNetDevice::GetBurstProfileManager(), ns3::OfdmDlBurstProfile::SetDiuc(), ns3::OfdmDlBurstProfile::SetFecCodeType(), ns3::OfdmDlBurstProfile::SetLength(), and ns3::OfdmDlBurstProfile::SetType().

Referenced by CreateDcd().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ SetInitialRangingInterval()

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:

◆ SetIntervalT8()

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:

◆ SetLinkManager()

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:

◆ SetMaxInvitedRangRetries()

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.

◆ SetMaxRangingCorrectionRetries()

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:

◆ SetNrDlSymbols()

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:

◆ SetNrUlSymbols()

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:

◆ SetRangReqOppSize()

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:

◆ SetServiceFlowManager()

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

Set service flow manager.

Parameters
sfmthe service flow manager

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

References m_serviceFlowManager.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

◆ SetSSManager()

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:

◆ SetUcdInterval()

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:

◆ SetUlBurstProfiles()

void ns3::BaseStationNetDevice::SetUlBurstProfiles ( Ucd * ucd)
private

Send UL burst profiles.

Parameters
ucdburst profile

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

References ns3::Ucd::AddUlBurstProfile(), ns3::WimaxNetDevice::GetBurstProfileManager(), ns3::OfdmUlBurstProfile::SetFecCodeType(), ns3::OfdmUlBurstProfile::SetLength(), ns3::OfdmUlBurstProfile::SetType(), and ns3::OfdmUlBurstProfile::SetUiuc().

Referenced by CreateUcd().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ SetUplinkScheduler()

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:

◆ Start()

◆ StartDlSubFrame()

void ns3::BaseStationNetDevice::StartDlSubFrame ( )
private

Start DL subframe function.

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

References ns3::Time::As(), BS_STATE_DL_SUB_FRAME, CreateMapMessages(), ns3::WimaxNetDevice::DIRECTION_DOWNLINK, EndDlSubFrame(), ns3::WimaxNetDevice::GetNrFrames(), ns3::Time::GetSeconds(), ns3::WimaxNetDevice::m_direction, m_dlSubframeStartTime, ns3::WimaxNetDevice::m_frameStartTime, m_nrDlSymbols, m_scheduler, m_symbolDuration, m_uplinkScheduler, ns3::Simulator::Now(), NS_LOG_DEBUG, ns3::Time::S, ns3::Simulator::Schedule(), ns3::Seconds(), SendBursts(), ns3::WimaxNetDevice::SetNrFrames(), and ns3::WimaxNetDevice::SetState().

Referenced by StartFrame().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ StartFrame()

void ns3::BaseStationNetDevice::StartFrame ( )
private

Start frame function.

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

References ns3::WimaxNetDevice::GetNrFrames(), ns3::WimaxNetDevice::GetPhy(), ns3::WimaxNetDevice::GetRtg(), ns3::Time::GetSeconds(), ns3::WimaxNetDevice::GetTtg(), ns3::WimaxNetDevice::m_frameStartTime, m_psDuration, m_symbolDuration, ns3::Simulator::Now(), NS_LOG_INFO, SetNrDlSymbols(), SetNrUlSymbols(), and StartDlSubFrame().

Referenced by EndFrame(), and Start().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ StartUlSubFrame()

void ns3::BaseStationNetDevice::StartUlSubFrame ( )
private

Start UL subframe function.

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

References ns3::Time::As(), BS_STATE_UL_SUB_FRAME, ns3::WimaxNetDevice::DIRECTION_UPLINK, EndUlSubFrame(), ns3::Time::GetSeconds(), ns3::WimaxNetDevice::m_direction, m_nrUlSymbols, m_symbolDuration, m_ulSubframeStartTime, MarkUplinkAllocations(), ns3::Simulator::Now(), NS_LOG_INFO, ns3::Time::S, ns3::Simulator::Schedule(), ns3::Seconds(), and ns3::WimaxNetDevice::SetState().

Referenced by EndDlSubFrame().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ Stop()

void ns3::BaseStationNetDevice::Stop ( )
overridevirtual

Stop device.

Implements ns3::WimaxNetDevice.

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

◆ UplinkAllocationEnd()

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

Uplink allocation end.

Parameters
cidconnection ID
uiuc

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

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

Referenced by MarkUplinkAllocationEnd().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ UplinkAllocationStart()

void ns3::BaseStationNetDevice::UplinkAllocationStart ( )
private

Uplink allocation start.

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

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

Referenced by MarkUplinkAllocationStart().

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

Member Data Documentation

◆ m_allocationStartTime

uint32_t ns3::BaseStationNetDevice::m_allocationStartTime
private

allocation start time

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

Referenced by InitBaseStationNetDevice().

◆ m_bsClassifier

Ptr<IpcsClassifier> ns3::BaseStationNetDevice::m_bsClassifier
private

the base station classifier

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

Referenced by DoDispose(), DoSend(), GetBsClassifier(), InitBaseStationNetDevice(), and SetBsClassifier().

◆ m_bsPromiscRxTrace

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 base station promiscuous receive trace Callbacks

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

Referenced by GetTypeId().

◆ m_bsRxDropTrace

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 base station receive drop trace Callbacks

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

Referenced by DoReceive(), and GetTypeId().

◆ m_bsRxTrace

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 base station receive trace Callbacks

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

Referenced by DoReceive(), and GetTypeId().

◆ m_bsTxDropTrace

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 base station transmit drop trace Callbacks

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

Referenced by DoSend(), and GetTypeId().

◆ m_bsTxTrace

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 the base station transmit trace Callbacks

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

Referenced by DoSend(), and GetTypeId().

◆ m_bwReqOppSize

uint8_t ns3::BaseStationNetDevice::m_bwReqOppSize
private

in symbols

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

Referenced by CreateUcd(), GetBwReqOppSize(), InitBaseStationNetDevice(), SetBwReqOppSize(), and Start().

◆ m_cidFactory

CidFactory* ns3::BaseStationNetDevice::m_cidFactory
private

the CID factory

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

Referenced by DoDispose(), DoReceive(), InitBaseStationNetDevice(), Start(), and UplinkAllocationEnd().

◆ m_dcdConfigChangeCount

uint32_t ns3::BaseStationNetDevice::m_dcdConfigChangeCount
private

DCD config change count.

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

Referenced by CreateDcd(), CreateDlMap(), CreateMapMessages(), and InitBaseStationNetDevice().

◆ m_dcdInterval

Time ns3::BaseStationNetDevice::m_dcdInterval
private

in seconds

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

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

◆ m_dlSubframeStartTime

Time ns3::BaseStationNetDevice::m_dlSubframeStartTime
private

DL subframe start time.

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

Referenced by GetDlSubframeStartTime(), InitBaseStationNetDevice(), and StartDlSubFrame().

◆ m_framesSinceLastDcd

uint32_t ns3::BaseStationNetDevice::m_framesSinceLastDcd
private

frames since last DCD

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

Referenced by CreateDescriptorMessages(), and InitBaseStationNetDevice().

◆ m_framesSinceLastUcd

uint32_t ns3::BaseStationNetDevice::m_framesSinceLastUcd
private

frames since last UCD

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

Referenced by CreateDescriptorMessages(), and InitBaseStationNetDevice().

◆ m_initialRangInterval

Time ns3::BaseStationNetDevice::m_initialRangInterval
private

in seconds

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

Referenced by GetInitialRangingInterval(), InitBaseStationNetDevice(), and SetInitialRangingInterval().

◆ m_intervalT8

Time ns3::BaseStationNetDevice::m_intervalT8
private

in milliseconds, wait for DSA/DSC Acknowledge timeout

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

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

◆ m_linkManager

Ptr<BSLinkManager> ns3::BaseStationNetDevice::m_linkManager
private

◆ m_maxInvitedRangRetries

uint8_t ns3::BaseStationNetDevice::m_maxInvitedRangRetries
private

maximum invited range retries

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

Referenced by GetMaxInvitedRangRetries(), InitBaseStationNetDevice(), and SetMaxInvitedRangRetries().

◆ m_maxRangCorrectionRetries

uint8_t ns3::BaseStationNetDevice::m_maxRangCorrectionRetries
private

maximum range correction retries

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

Referenced by GetMaxRangingCorrectionRetries(), InitBaseStationNetDevice(), and SetMaxRangingCorrectionRetries().

◆ m_nrDcdSent

uint32_t ns3::BaseStationNetDevice::m_nrDcdSent
private

number DCD sent

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

Referenced by CreateDescriptorMessages(), GetNrDcdSent(), and InitBaseStationNetDevice().

◆ m_nrDlAllocations

uint16_t ns3::BaseStationNetDevice::m_nrDlAllocations
private

number DL allocations

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

Referenced by CreateDlMap(), and InitBaseStationNetDevice().

◆ m_nrDlFrames

uint32_t ns3::BaseStationNetDevice::m_nrDlFrames
private

number DL frames

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

Referenced by EndDlSubFrame(), and InitBaseStationNetDevice().

◆ m_nrDlMapSent

uint32_t ns3::BaseStationNetDevice::m_nrDlMapSent
private

number DL map sent

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

Referenced by CreateMapMessages(), and InitBaseStationNetDevice().

◆ m_nrDlSymbols

uint32_t ns3::BaseStationNetDevice::m_nrDlSymbols
private

number of DL symbols

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

Referenced by GetNrDlSymbols(), InitBaseStationNetDevice(), SetNrDlSymbols(), and StartDlSubFrame().

◆ m_nrSsRegistered

uint16_t ns3::BaseStationNetDevice::m_nrSsRegistered
private

number SS registered

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

Referenced by CreateMapMessages(), and InitBaseStationNetDevice().

◆ m_nrUcdSent

uint32_t ns3::BaseStationNetDevice::m_nrUcdSent
private

number UCD sent

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

Referenced by CreateDescriptorMessages(), GetNrUcdSent(), and InitBaseStationNetDevice().

◆ m_nrUlAllocations

uint16_t ns3::BaseStationNetDevice::m_nrUlAllocations
private

number UL allocations

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

Referenced by CreateUlMap(), and InitBaseStationNetDevice().

◆ m_nrUlFrames

uint32_t ns3::BaseStationNetDevice::m_nrUlFrames
private

number UL frames

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

Referenced by EndUlSubFrame(), and InitBaseStationNetDevice().

◆ m_nrUlMapSent

uint32_t ns3::BaseStationNetDevice::m_nrUlMapSent
private

number UL map sent

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

Referenced by CreateMapMessages(), and InitBaseStationNetDevice().

◆ m_nrUlSymbols

uint32_t ns3::BaseStationNetDevice::m_nrUlSymbols
private

number of UL symbols

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

Referenced by GetNrUlSymbols(), InitBaseStationNetDevice(), SetNrUlSymbols(), and StartUlSubFrame().

◆ m_psDuration

Time ns3::BaseStationNetDevice::m_psDuration
private

ps duration

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

Referenced by EndDlSubFrame(), EndUlSubFrame(), GetPsDuration(), InitBaseStationNetDevice(), Start(), and StartFrame().

◆ m_rangingOppNumber

uint8_t ns3::BaseStationNetDevice::m_rangingOppNumber
private

current ranging TO number

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

Referenced by CreateUlMap(), GetRangingOppNumber(), InitBaseStationNetDevice(), and RangingOppStart().

◆ m_rangReqOppSize

uint8_t ns3::BaseStationNetDevice::m_rangReqOppSize
private

in symbols

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

Referenced by CreateUcd(), GetRangReqOppSize(), InitBaseStationNetDevice(), and SetRangReqOppSize().

◆ m_scheduler

Ptr<BSScheduler> ns3::BaseStationNetDevice::m_scheduler
private

the base station scheduler

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

Referenced by BaseStationNetDevice(), CreateDlMap(), DoDispose(), GetBSScheduler(), GetTypeId(), SendBursts(), SetBSScheduler(), and StartDlSubFrame().

◆ m_serviceFlowManager

Ptr<BsServiceFlowManager> ns3::BaseStationNetDevice::m_serviceFlowManager
private

the service flow manager

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

Referenced by DoDispose(), GetServiceFlowManager(), InitBaseStationNetDevice(), and SetServiceFlowManager().

◆ m_ssManager

Ptr<SSManager> ns3::BaseStationNetDevice::m_ssManager
private

the SS manager

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

Referenced by CreateMapMessages(), DoDispose(), DoReceive(), GetSSManager(), InitBaseStationNetDevice(), and SetSSManager().

◆ m_symbolDuration

Time ns3::BaseStationNetDevice::m_symbolDuration
private

◆ m_traceBSRx

TracedCallback<Ptr<const Packet>, Mac48Address, Cid> ns3::BaseStationNetDevice::m_traceBSRx
private

the base station receive trace callback

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

Referenced by DoReceive().

◆ m_ucdConfigChangeCount

uint32_t ns3::BaseStationNetDevice::m_ucdConfigChangeCount
private

UCD config change count.

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

Referenced by CreateMapMessages(), CreateUcd(), CreateUlMap(), and InitBaseStationNetDevice().

◆ m_ucdInterval

Time ns3::BaseStationNetDevice::m_ucdInterval
private

in seconds

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

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

◆ m_ulAllocationNumber

uint8_t ns3::BaseStationNetDevice::m_ulAllocationNumber
private

to see UL burst number

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

Referenced by CreateUlMap(), InitBaseStationNetDevice(), UplinkAllocationEnd(), and UplinkAllocationStart().

◆ m_ulSubframeStartTime

Time ns3::BaseStationNetDevice::m_ulSubframeStartTime
private

UL subframe start time.

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

Referenced by GetUlSubframeStartTime(), InitBaseStationNetDevice(), and StartUlSubFrame().

◆ m_uplinkScheduler

Ptr<UplinkScheduler> ns3::BaseStationNetDevice::m_uplinkScheduler
private

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