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

SubscriberStationNetDevice subclass of WimaxNetDevice. More...

#include "ss-net-device.h"

+ Inheritance diagram for ns3::SubscriberStationNetDevice:
+ Collaboration diagram for ns3::SubscriberStationNetDevice:

Public Types

typedef Callback< void, std::string, Ptr< const Packet > > AsciiTraceCallback
 Callback for logging packets on ASCII traces.
 
enum  EventType {
  EVENT_NONE , EVENT_WAIT_FOR_RNG_RSP , EVENT_DL_MAP_SYNC_TIMEOUT , EVENT_LOST_DL_MAP ,
  EVENT_LOST_UL_MAP , EVENT_DCD_WAIT_TIMEOUT , EVENT_UCD_WAIT_TIMEOUT , EVENT_RANG_OPP_WAIT_TIMEOUT
}
 EventType enumeration. More...
 
enum  State {
  SS_STATE_IDLE , SS_STATE_SCANNING , SS_STATE_SYNCHRONIZING , SS_STATE_ACQUIRING_PARAMETERS ,
  SS_STATE_WAITING_REG_RANG_INTRVL , SS_STATE_WAITING_INV_RANG_INTRVL , SS_STATE_WAITING_RNG_RSP , SS_STATE_ADJUSTING_PARAMETERS ,
  SS_STATE_REGISTERED , SS_STATE_TRANSMITTING , SS_STATE_STOPPED
}
 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

 SubscriberStationNetDevice ()
 
 SubscriberStationNetDevice (Ptr< Node > node, Ptr< WimaxPhy > phy)
 Constructor.
 
 ~SubscriberStationNetDevice () override
 
void AddServiceFlow (ServiceFlow *sf) const
 adds a new service flow
 
void AddServiceFlow (ServiceFlow sf) const
 adds a new service flow
 
bool Enqueue (Ptr< Packet > packet, const MacHeaderType &hdrType, Ptr< WimaxConnection > connection) override
 Enqueue a packet into a connection queue.
 
bool GetAreManagementConnectionsAllocated () const
 
bool GetAreServiceFlowsAllocated () const
 
Cid GetBasicCid () const
 
Ptr< WimaxConnectionGetBasicConnection () const
 
Time GetIntervalT1 () const
 
Time GetIntervalT12 () const
 
Time GetIntervalT2 () const
 
Time GetIntervalT20 () const
 
Time GetIntervalT21 () const
 
Time GetIntervalT3 () const
 
Time GetIntervalT7 () const
 
Ptr< IpcsClassifierGetIpcsClassifier () const
 
Ptr< SSLinkManagerGetLinkManager () const
 
Time GetLostDlMapInterval () const
 
Time GetLostUlMapInterval () const
 
uint8_t GetMaxContentionRangingRetries () const
 
Time GetMaxDcdInterval () const
 
Time GetMaxUcdInterval () const
 
WimaxPhy::ModulationType GetModulationType () const
 
Cid GetPrimaryCid () const
 
Ptr< WimaxConnectionGetPrimaryConnection () const
 
Ptr< SSSchedulerGetScheduler () const
 
Ptr< SsServiceFlowManagerGetServiceFlowManager () const
 
Time GetTimeToAllocation (Time deferTime)
 Get time to allocation.
 
bool HasServiceFlows () const
 
void InitSubscriberStationNetDevice ()
 initializes the net device and sets the parameters to the default values
 
bool IsRegistered () const
 
void SendBurst (uint8_t uiuc, uint16_t nrSymbols, Ptr< WimaxConnection > connection, MacHeaderType::HeaderType packetType=MacHeaderType::HEADER_TYPE_GENERIC)
 Sends a burst on the uplink frame.
 
void SetAreManagementConnectionsAllocated (bool areManagementConnectionsAllocated)
 
void SetAreServiceFlowsAllocated (bool areServiceFlowsAllocated)
 
void SetAsciiTxQueueDequeueCallback (AsciiTraceCallback cb)
 Set the Dequeue callback for ASCII tracing.
 
void SetAsciiTxQueueDropCallback (AsciiTraceCallback cb)
 Set the Drop callback for ASCII tracing.
 
void SetAsciiTxQueueEnqueueCallback (AsciiTraceCallback cb)
 Set the Enqueue callback for ASCII tracing.
 
void SetBasicConnection (Ptr< WimaxConnection > basicConnection)
 
void SetIntervalT1 (Time interval1)
 
void SetIntervalT12 (Time interval12)
 
void SetIntervalT2 (Time interval2)
 
void SetIntervalT20 (Time interval20)
 
void SetIntervalT21 (Time interval21)
 
void SetIntervalT3 (Time interval3)
 
void SetIntervalT7 (Time interval7)
 
void SetIpcsPacketClassifier (Ptr< IpcsClassifier > classifier)
 Sets the packet classifier to be used.
 
void SetLinkManager (Ptr< SSLinkManager > linkManager)
 sets the link manager to be used
 
void SetLostDlMapInterval (Time lostDlMapInterval)
 
void SetLostUlMapInterval (Time lostUlMapInterval)
 
void SetMaxContentionRangingRetries (uint8_t maxContentionRangingRetries)
 
void SetMaxDcdInterval (Time maxDcdInterval)
 
void SetMaxUcdInterval (Time maxUcdInterval)
 
void SetModulationType (WimaxPhy::ModulationType modulationType)
 Set the most efficient modulation and coding scheme (MCS) supported by the device.
 
void SetPrimaryConnection (Ptr< WimaxConnection > primaryConnection)
 
void SetScheduler (Ptr< SSScheduler > ssScheduler)
 
void SetServiceFlowManager (Ptr< SsServiceFlowManager > sfm)
 Sets the service flow manager to be installed on the device.
 
void SetTimer (EventId eventId, EventId &event)
 Set timer.
 
void Start () override
 Start the device.
 
void Stop () override
 Stop the 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.
 

Public Attributes

Ptr< SSLinkManagerm_linkManager
 link manager
 
- Public Attributes inherited from ns3::WimaxNetDevice
TracedCallback< Ptr< const Packet >, const Mac48Address & > m_traceRx
 
TracedCallback< Ptr< const Packet >, const Mac48Address & > m_traceTx
 

Private Member Functions

void DoDispose () override
 Destructor implementation.
 
void DoReceive (Ptr< Packet > packet) override
 Receive a packet.
 
bool DoSend (Ptr< Packet > packet, const Mac48Address &source, const Mac48Address &dest, uint16_t protocolNumber) override
 Send a packet.
 
void ProcessDcd (const Dcd &dcd)
 Process DCD.
 
void ProcessDlMap (const DlMap &dlmap)
 Process DL map.
 
void ProcessUcd (const Ucd &ucd)
 Process UCD.
 
void ProcessUlMap (const UlMap &ulmap)
 Process UL map.
 

Static Private Member Functions

static Time GetDefaultLostDlMapInterval ()
 Get default lost DL map interval.
 

Private Attributes

double m_allocationStartTime
 allocation start time
 
bool m_areManagementConnectionsAllocated
 are management connections allocated
 
bool m_areServiceFlowsAllocated
 are service flows allocated
 
AsciiTraceCallback m_asciiTxQueueDequeueCb
 Bound callback to perform ASCII logging for Dequeue events.
 
AsciiTraceCallback m_asciiTxQueueDropCb
 Bound callback to perform ASCII logging for Drop events.
 
AsciiTraceCallback m_asciiTxQueueEnqueueCb
 Bound callback to perform ASCII logging for Enqueue events.
 
Mac48Address m_baseStationId
 base station ID
 
Ptr< WimaxConnectionm_basicConnection
 basic connection
 
Ptr< IpcsClassifierm_classifier
 the classifier
 
uint8_t m_dcdCount
 DCD count.
 
EventId m_dcdWaitTimeoutEvent
 DCD wait timeout event.
 
OfdmDlBurstProfilem_dlBurstProfile
 DL burst profile.
 
Time m_intervalT1
 in seconds, wait for DCD timeout
 
Time m_intervalT12
 in seconds, wait for UCD descriptor
 
Time m_intervalT2
 in seconds, wait for broadcast ranging timeout, i.e., wait for initial ranging opportunity
 
Time m_intervalT20
 in seconds, time the SS searches for preambles on a given channel
 
Time m_intervalT21
 in seconds, time the SS searches for (decodable) DL-MAP on a given channel
 
Time m_intervalT3
 in milliseconds, ranging Response reception timeout following the transmission of a ranging request
 
Time m_intervalT7
 in seconds, wait for DSA/DSC/DSD Response timeout
 
EventId m_lostDlMapEvent
 lost DL map event
 
Time m_lostDlMapInterval
 in milliseconds, time since last received DL-MAP before downlink synchronization is considered lost, maximum is 600
 
EventId m_lostUlMapEvent
 lost UL map event
 
Time m_lostUlMapInterval
 in milliseconds, time since last received UL-MAP before uplink synchronization is considered lost, maximum is 600
 
uint8_t m_maxContentionRangingRetries
 maximum contention ranging retries
 
Time m_maxDcdInterval
 in seconds, maximum time between transmission of DCD messages
 
Time m_maxUcdInterval
 in seconds, maximum time between transmission of UCD messages
 
WimaxPhy::ModulationType m_modulationType
 modulation type
 
uint32_t m_nrDcdRecvd
 number DCD received
 
uint16_t m_nrDlMapElements
 number DL Map elements
 
uint32_t m_nrDlMapRecvd
 number DL map received
 
uint32_t m_nrUcdRecvd
 number UCD received
 
uint16_t m_nrUlMapElements
 number UL Map elements
 
uint32_t m_nrUlMapRecvd
 number UL map received
 
Ptr< WimaxConnectionm_primaryConnection
 primary connection
 
EventId m_rangOppWaitTimeoutEvent
 range opp wait timeout event
 
Ptr< SSSchedulerm_scheduler
 the scheduler
 
Ptr< SsServiceFlowManagerm_serviceFlowManager
 the service flow manager
 
TracedCallback< Ptr< const Packet > > m_ssPromiscRxTrace
 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_ssRxDropTrace
 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_ssRxTrace
 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_ssTxDropTrace
 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_ssTxTrace
 The trace source fired when packets come into the "top" of the device at the L3/L2 transition, before being queued for transmission.
 
TracedCallback< Ptr< const Packet >, Mac48Address, const Cid & > m_traceSSRx
 trace SS receive callback
 
uint8_t m_ucdCount
 UCD count.
 
EventId m_ucdWaitTimeoutEvent
 UCD wait timeout event.
 
OfdmUlBurstProfilem_ulBurstProfile
 UL burst profile.
 

Additional Inherited Members

- 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

SubscriberStationNetDevice subclass of WimaxNetDevice.

Definition at line 38 of file ss-net-device.h.

Member Typedef Documentation

◆ AsciiTraceCallback

Callback for logging packets on ASCII traces.

Definition at line 345 of file ss-net-device.h.

Member Enumeration Documentation

◆ EventType

EventType enumeration.

Enumerator
EVENT_NONE 
EVENT_WAIT_FOR_RNG_RSP 
EVENT_DL_MAP_SYNC_TIMEOUT 
EVENT_LOST_DL_MAP 
EVENT_LOST_UL_MAP 
EVENT_DCD_WAIT_TIMEOUT 
EVENT_UCD_WAIT_TIMEOUT 
EVENT_RANG_OPP_WAIT_TIMEOUT 

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

◆ State

State enumeration.

Enumerator
SS_STATE_IDLE 
SS_STATE_SCANNING 
SS_STATE_SYNCHRONIZING 
SS_STATE_ACQUIRING_PARAMETERS 
SS_STATE_WAITING_REG_RANG_INTRVL 
SS_STATE_WAITING_INV_RANG_INTRVL 
SS_STATE_WAITING_RNG_RSP 
SS_STATE_ADJUSTING_PARAMETERS 
SS_STATE_REGISTERED 
SS_STATE_TRANSMITTING 
SS_STATE_STOPPED 

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

Constructor & Destructor Documentation

◆ SubscriberStationNetDevice() [1/2]

ns3::SubscriberStationNetDevice::SubscriberStationNetDevice ( )

Definition at line 214 of file ss-net-device.cc.

References InitSubscriberStationNetDevice().

+ Here is the call graph for this function:

◆ SubscriberStationNetDevice() [2/2]

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

Constructor.

Parameters
nodethe node
phythe wimax phy

Definition at line 259 of file ss-net-device.cc.

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

+ Here is the call graph for this function:

◆ ~SubscriberStationNetDevice()

ns3::SubscriberStationNetDevice::~SubscriberStationNetDevice ( )
override

Definition at line 266 of file ss-net-device.cc.

Member Function Documentation

◆ AddServiceFlow() [1/2]

void ns3::SubscriberStationNetDevice::AddServiceFlow ( ServiceFlow * sf) const

adds a new service flow

Parameters
sfpointer to service flow to add

Definition at line 638 of file ss-net-device.cc.

References GetServiceFlowManager().

+ Here is the call graph for this function:

◆ AddServiceFlow() [2/2]

void ns3::SubscriberStationNetDevice::AddServiceFlow ( ServiceFlow sf) const

adds a new service flow

Parameters
sfservice flow to add

Definition at line 632 of file ss-net-device.cc.

References GetServiceFlowManager().

+ Here is the call graph for this function:

◆ DoDispose()

void ns3::SubscriberStationNetDevice::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 271 of file ss-net-device.cc.

References ns3::WimaxNetDevice::DoDispose(), m_asciiTxQueueDequeueCb, m_asciiTxQueueDropCb, m_asciiTxQueueEnqueueCb, m_basicConnection, m_classifier, m_dlBurstProfile, m_linkManager, m_primaryConnection, m_scheduler, m_serviceFlowManager, m_ulBurstProfile, and ns3::Callback< R, UArgs >::Nullify().

+ Here is the call graph for this function:

◆ DoReceive()

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

Receive a packet.

Parameters
packetthe packet received

Implements ns3::WimaxNetDevice.

Definition at line 798 of file ss-net-device.cc.

References ns3::Simulator::Cancel(), ns3::GenericMacHeader::check_hcs(), ns3::Create(), EVENT_DCD_WAIT_TIMEOUT, EVENT_LOST_DL_MAP, EVENT_LOST_UL_MAP, EVENT_RANG_OPP_WAIT_TIMEOUT, EVENT_UCD_WAIT_TIMEOUT, ns3::WimaxNetDevice::ForwardUp(), ns3::WimaxNetDevice::GetBroadcastConnection(), ns3::GenericMacHeader::GetCid(), ns3::ServiceFlow::GetConnection(), ns3::WimaxNetDevice::GetConnectionManager(), ns3::FragmentationSubheader::GetFc(), ns3::GenericMacHeader::GetHt(), ns3::WimaxNetDevice::GetInitialRangingConnection(), ns3::WimaxNetDevice::GetMacAddress(), ns3::ServiceFlow::GetRecord(), GetServiceFlowManager(), ns3::WimaxNetDevice::GetState(), ns3::GenericMacHeader::GetType(), ns3::ManagementMessageType::GetType(), ns3::MacHeaderType::HEADER_TYPE_GENERIC, ns3::Cid::IsMulticast(), ns3::EventId::IsPending(), ns3::WimaxNetDevice::IsPromisc(), m_baseStationId, m_basicConnection, m_dcdWaitTimeoutEvent, m_intervalT1, m_intervalT12, m_intervalT2, m_linkManager, m_lostDlMapEvent, m_lostDlMapInterval, m_lostUlMapEvent, m_lostUlMapInterval, m_primaryConnection, m_rangOppWaitTimeoutEvent, m_ssPromiscRxTrace, m_ssRxDropTrace, m_ssRxTrace, m_traceSSRx, m_ucdWaitTimeoutEvent, ns3::ManagementMessageType::MESSAGE_TYPE_DCD, ns3::ManagementMessageType::MESSAGE_TYPE_DL_MAP, 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, ns3::ManagementMessageType::MESSAGE_TYPE_UCD, ns3::ManagementMessageType::MESSAGE_TYPE_UL_MAP, ns3::WimaxNetDevice::NotifyPromiscTrace(), NS_ASSERT_MSG, NS_FATAL_ERROR, NS_LOG_ERROR, NS_LOG_INFO, pktSize, ProcessDcd(), ProcessDlMap(), ProcessUcd(), ProcessUlMap(), ns3::Dcd::SetNrDlBurstProfiles(), ns3::Ucd::SetNrUlBurstProfiles(), ns3::WimaxNetDevice::SetState(), SS_STATE_ACQUIRING_PARAMETERS, SS_STATE_SYNCHRONIZING, SS_STATE_WAITING_REG_RANG_INTRVL, SS_STATE_WAITING_RNG_RSP, ns3::ServiceFlowRecord::UpdateBytesRcvd(), and ns3::ServiceFlowRecord::UpdatePktsRcvd().

+ Here is the call graph for this function:

◆ DoSend()

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

Send a packet.

Parameters
packetthe packet to send
sourcethe source MAC address
destthe destination MAC address
protocolNumberthe protocol number
Returns
true if successful

Implements ns3::WimaxNetDevice.

Definition at line 644 of file ss-net-device.cc.

References Enqueue(), ns3::ServiceFlow::GetCid(), ns3::ServiceFlow::GetConnection(), ns3::ServiceFlow::GetIsEnabled(), ns3::WimaxNetDevice::GetMacAddress(), GetServiceFlowManager(), ns3::ServiceFlow::GetSfid(), IsRegistered(), m_basicConnection, m_classifier, m_ssTxDropTrace, m_ssTxTrace, NS_LOG_DEBUG, NS_LOG_INFO, ns3::ServiceFlow::SF_DIRECTION_UP, and ns3::ServiceFlow::SF_TYPE_ALL.

+ Here is the call graph for this function:

◆ Enqueue()

bool ns3::SubscriberStationNetDevice::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 714 of file ss-net-device.cc.

References ns3::GenericMacHeader::GetSerializedSize(), ns3::MacHeaderType::GetType(), ns3::MacHeaderType::HEADER_TYPE_BANDWIDTH, ns3::MacHeaderType::HEADER_TYPE_GENERIC, m_scheduler, NS_ASSERT_MSG, NS_LOG_INFO, ns3::GenericMacHeader::SetCid(), ns3::GenericMacHeader::SetLen(), ns3::GrantManagementSubheader::SetPm(), ns3::ServiceFlow::SF_TYPE_UGS, and ns3::Cid::TRANSPORT.

Referenced by DoSend().

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

◆ GetAreManagementConnectionsAllocated()

bool ns3::SubscriberStationNetDevice::GetAreManagementConnectionsAllocated ( ) const
Returns
true if the management connections are allocated, false otherwise

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

References m_areManagementConnectionsAllocated.

Referenced by Ns3WimaxManagementConnectionsTestCase::DoRun().

+ Here is the caller graph for this function:

◆ GetAreServiceFlowsAllocated()

bool ns3::SubscriberStationNetDevice::GetAreServiceFlowsAllocated ( ) const
Returns
true if the service flows are allocated, false otherwise

Definition at line 553 of file ss-net-device.cc.

References m_areServiceFlowsAllocated.

◆ GetBasicCid()

Cid ns3::SubscriberStationNetDevice::GetBasicCid ( ) const
Returns
the basic CID

Definition at line 510 of file ss-net-device.cc.

References m_basicConnection.

◆ GetBasicConnection()

Ptr< WimaxConnection > ns3::SubscriberStationNetDevice::GetBasicConnection ( ) const
Returns
the basic connection currently in use

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

References m_basicConnection.

◆ GetDefaultLostDlMapInterval()

Time ns3::SubscriberStationNetDevice::GetDefaultLostDlMapInterval ( )
staticprivate

Get default lost DL map interval.

Returns
the default lost DL map interval

Definition at line 44 of file ss-net-device.cc.

References ns3::MicroSeconds().

+ Here is the call graph for this function:

◆ GetIntervalT1()

Time ns3::SubscriberStationNetDevice::GetIntervalT1 ( ) const
Returns
the wait for DCD timeout

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

References m_intervalT1.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

◆ GetIntervalT12()

Time ns3::SubscriberStationNetDevice::GetIntervalT12 ( ) const
Returns
the wait for UCD descriptor timeout

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

References m_intervalT12.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

◆ GetIntervalT2()

Time ns3::SubscriberStationNetDevice::GetIntervalT2 ( ) const
Returns
the wait for broadcast ranging timeout, i.e., wait for initial ranging opportunity

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

References m_intervalT2.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

◆ GetIntervalT20()

Time ns3::SubscriberStationNetDevice::GetIntervalT20 ( ) const
Returns
the Time the SS searches for preambles on a given channel

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

References m_intervalT20.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

◆ GetIntervalT21()

Time ns3::SubscriberStationNetDevice::GetIntervalT21 ( ) const
Returns
the time the SS searches for (decodable) DL-MAP on a given channel

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

References m_intervalT21.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

◆ GetIntervalT3()

Time ns3::SubscriberStationNetDevice::GetIntervalT3 ( ) const
Returns
the ranging Response reception timeout following the transmission of a ranging request

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

References m_intervalT3.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

◆ GetIntervalT7()

Time ns3::SubscriberStationNetDevice::GetIntervalT7 ( ) const
Returns
the wait for DSA/DSC/DSD Response timeout

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

References m_intervalT7.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

◆ GetIpcsClassifier()

Ptr< IpcsClassifier > ns3::SubscriberStationNetDevice::GetIpcsClassifier ( ) const
Returns
a pointer to the CS packet classifier

Definition at line 577 of file ss-net-device.cc.

References m_classifier.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

◆ GetLinkManager()

Ptr< SSLinkManager > ns3::SubscriberStationNetDevice::GetLinkManager ( ) const
Returns
a pointer to the link manager currently used

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

References m_linkManager.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

◆ GetLostDlMapInterval()

Time ns3::SubscriberStationNetDevice::GetLostDlMapInterval ( ) const
Returns
the time since last received DL-MAP message before downlink synchronization is considered lost

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

References m_lostDlMapInterval.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

◆ GetLostUlMapInterval()

Time ns3::SubscriberStationNetDevice::GetLostUlMapInterval ( ) const
Returns
the time since last received UL-MAP before uplink synchronization is considered lost

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

References m_lostUlMapInterval.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

◆ GetMaxContentionRangingRetries()

uint8_t ns3::SubscriberStationNetDevice::GetMaxContentionRangingRetries ( ) const
Returns
the Number of retries on contention Ranging Requests

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

References m_maxContentionRangingRetries.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

◆ GetMaxDcdInterval()

Time ns3::SubscriberStationNetDevice::GetMaxDcdInterval ( ) const
Returns
the maximum time between transmission of DCD messages

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

References m_maxDcdInterval.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

◆ GetMaxUcdInterval()

Time ns3::SubscriberStationNetDevice::GetMaxUcdInterval ( ) const
Returns
the maximum time between transmission of UCD messages

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

References m_maxUcdInterval.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

◆ GetModulationType()

WimaxPhy::ModulationType ns3::SubscriberStationNetDevice::GetModulationType ( ) const
Returns
the most efficient modulation and coding scheme (MCS) supported by the device

Definition at line 528 of file ss-net-device.cc.

References m_modulationType.

Referenced by ns3::BurstProfileManager::GetBurstProfileToRequest().

+ Here is the caller graph for this function:

◆ GetPrimaryCid()

Cid ns3::SubscriberStationNetDevice::GetPrimaryCid ( ) const
Returns
the primary CID

Definition at line 516 of file ss-net-device.cc.

References m_primaryConnection.

◆ GetPrimaryConnection()

Ptr< WimaxConnection > ns3::SubscriberStationNetDevice::GetPrimaryConnection ( ) const
Returns
the primary connection currently used

Definition at line 504 of file ss-net-device.cc.

References m_primaryConnection.

◆ GetScheduler()

Ptr< SSScheduler > ns3::SubscriberStationNetDevice::GetScheduler ( ) const
Returns
the scheduler installed on the device

Definition at line 559 of file ss-net-device.cc.

References m_scheduler.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

◆ GetServiceFlowManager()

Ptr< SsServiceFlowManager > ns3::SubscriberStationNetDevice::GetServiceFlowManager ( ) const
Returns
a pointer to the service flow manager installed on the device

Definition at line 601 of file ss-net-device.cc.

References m_serviceFlowManager.

Referenced by AddServiceFlow(), AddServiceFlow(), DoReceive(), DoSend(), and HasServiceFlows().

+ Here is the caller graph for this function:

◆ GetTimeToAllocation()

Time ns3::SubscriberStationNetDevice::GetTimeToAllocation ( Time deferTime)

Get time to allocation.

Parameters
deferTimedefer time
Returns
the time to allocation

Definition at line 1326 of file ss-net-device.cc.

References ns3::WimaxNetDevice::GetPhy(), m_allocationStartTime, ns3::WimaxNetDevice::m_frameStartTime, ns3::Simulator::Now(), and ns3::Seconds().

Referenced by ProcessUlMap().

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

◆ GetTypeId()

◆ HasServiceFlows()

bool ns3::SubscriberStationNetDevice::HasServiceFlows ( ) const
Returns
true if the device has at least one active service flow, false otherwise

Definition at line 571 of file ss-net-device.cc.

References GetServiceFlowManager(), and ns3::ServiceFlow::SF_TYPE_ALL.

+ Here is the call graph for this function:

◆ InitSubscriberStationNetDevice()

void ns3::SubscriberStationNetDevice::InitSubscriberStationNetDevice ( )

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

Definition at line 220 of file ss-net-device.cc.

References ns3::CreateObject(), ns3::Time::GetSeconds(), m_allocationStartTime, m_areManagementConnectionsAllocated, m_areServiceFlowsAllocated, m_baseStationId, m_basicConnection, m_classifier, m_dcdCount, m_dlBurstProfile, m_intervalT1, m_intervalT12, m_intervalT2, m_intervalT21, m_intervalT3, m_intervalT7, m_linkManager, m_lostDlMapInterval, m_lostUlMapInterval, m_maxContentionRangingRetries, m_maxDcdInterval, m_maxUcdInterval, m_modulationType, m_nrDcdRecvd, m_nrDlMapElements, m_nrDlMapRecvd, m_nrUcdRecvd, m_nrUlMapElements, m_nrUlMapRecvd, m_primaryConnection, m_scheduler, m_serviceFlowManager, m_ucdCount, m_ulBurstProfile, ns3::MilliSeconds(), ns3::WimaxPhy::MODULATION_TYPE_BPSK_12, and ns3::Seconds().

Referenced by SubscriberStationNetDevice(), and SubscriberStationNetDevice().

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

◆ IsRegistered()

bool ns3::SubscriberStationNetDevice::IsRegistered ( ) const
Returns
true if the SS is registered to a BS, false otherwise

Definition at line 1320 of file ss-net-device.cc.

References ns3::WimaxNetDevice::GetState(), and SS_STATE_REGISTERED.

Referenced by Ns3WimaxNetworkEntryTestCase::DoRun(), Ns3WimaxSimpleOFDMTestCase::DoRunOnce(), DoSend(), and SendBurst().

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

◆ ProcessDcd()

void ns3::SubscriberStationNetDevice::ProcessDcd ( const Dcd & dcd)
private

Process DCD.

Parameters
dcdthe DCD

Definition at line 1250 of file ss-net-device.cc.

References ns3::DcdChannelEncodings::GetBsEirp(), ns3::Dcd::GetChannelEncodings(), ns3::Dcd::GetConfigurationChangeCount(), ns3::WimaxNetDevice::GetCurrentDcd(), ns3::OfdmDlBurstProfile::GetDiuc(), ns3::Dcd::GetDlBurstProfiles(), ns3::DcdChannelEncodings::GetEirxPIrMax(), ns3::OfdmDlBurstProfile::GetFecCodeType(), ns3::OfdmDcdChannelEncodings::GetFrameDurationCode(), ns3::WimaxNetDevice::GetPhy(), m_dlBurstProfile, m_linkManager, m_modulationType, m_nrDcdRecvd, ns3::DcdChannelEncodings::SetBsEirp(), ns3::WimaxNetDevice::SetCurrentDcd(), ns3::OfdmDlBurstProfile::SetDiuc(), and ns3::OfdmDlBurstProfile::SetFecCodeType().

Referenced by DoReceive().

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

◆ ProcessDlMap()

void ns3::SubscriberStationNetDevice::ProcessDlMap ( const DlMap & dlmap)
private

Process DL map.

Parameters
dlmapthe DL map

Definition at line 1127 of file ss-net-device.cc.

References ns3::OfdmDlBurstProfile::DIUC_END_OF_MAP, ns3::DlMap::GetBaseStationId(), ns3::DlMap::GetDcdCount(), ns3::DlMap::GetDlMapElements(), m_baseStationId, m_basicConnection, m_dcdCount, and m_nrDlMapRecvd.

Referenced by DoReceive().

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

◆ ProcessUcd()

void ns3::SubscriberStationNetDevice::ProcessUcd ( const Ucd & ucd)
private

Process UCD.

Parameters
ucdthe UCD

Definition at line 1283 of file ss-net-device.cc.

References EVENT_NONE, ns3::Ucd::GetChannelEncodings(), ns3::Ucd::GetConfigurationChangeCount(), ns3::WimaxNetDevice::GetCurrentUcd(), ns3::OfdmUlBurstProfile::GetFecCodeType(), ns3::Ucd::GetRangingBackoffStart(), ns3::OfdmUlBurstProfile::GetUiuc(), ns3::Ucd::GetUlBurstProfiles(), m_linkManager, m_modulationType, m_nrUcdRecvd, m_ulBurstProfile, ns3::WimaxNetDevice::SetCurrentUcd(), ns3::OfdmUlBurstProfile::SetFecCodeType(), and ns3::OfdmUlBurstProfile::SetUiuc().

Referenced by DoReceive().

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

◆ ProcessUlMap()

◆ SendBurst()

void ns3::SubscriberStationNetDevice::SendBurst ( uint8_t uiuc,
uint16_t nrSymbols,
Ptr< WimaxConnection > connection,
MacHeaderType::HeaderType packetType = MacHeaderType::HEADER_TYPE_GENERIC )

Sends a burst on the uplink frame.

Parameters
uiuctheOfdmUlBurstProfile
nrSymbolsnumber of symbols
connectionconnection to use
packetTypeoptional HeaderType (default HEADER_TYPE_GENERIC)

Definition at line 746 of file ss-net-device.cc.

References ns3::WimaxNetDevice::DIRECTION_UPLINK, ns3::WimaxNetDevice::ForwardDown(), ns3::WimaxNetDevice::GetBurstProfileManager(), ns3::ServiceFlowRecord::GetBytesRcvd(), ns3::ServiceFlowRecord::GetBytesSent(), ns3::WimaxNetDevice::GetMacAddress(), ns3::ServiceFlowRecord::GetPktsRcvd(), ns3::ServiceFlowRecord::GetPktsSent(), IsRegistered(), m_basicConnection, m_scheduler, ns3::WimaxPhy::MODULATION_TYPE_BPSK_12, NS_LOG_DEBUG, ns3::Cid::TRANSPORT, ns3::OfdmUlBurstProfile::UIUC_INITIAL_RANGING, ns3::OfdmUlBurstProfile::UIUC_REQ_REGION_FULL, ns3::ServiceFlowRecord::UpdateBytesSent(), and ns3::ServiceFlowRecord::UpdatePktsSent().

Referenced by ProcessUlMap().

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

◆ SetAreManagementConnectionsAllocated()

void ns3::SubscriberStationNetDevice::SetAreManagementConnectionsAllocated ( bool areManagementConnectionsAllocated)
Parameters
areManagementConnectionsAllocatedtrue if the management connections are allocated, false otherwise

Definition at line 534 of file ss-net-device.cc.

References m_areManagementConnectionsAllocated.

◆ SetAreServiceFlowsAllocated()

void ns3::SubscriberStationNetDevice::SetAreServiceFlowsAllocated ( bool areServiceFlowsAllocated)
Parameters
areServiceFlowsAllocatedtrue if the service flows are allocated, false otherwise

Definition at line 547 of file ss-net-device.cc.

References m_areServiceFlowsAllocated.

◆ SetAsciiTxQueueDequeueCallback()

void ns3::SubscriberStationNetDevice::SetAsciiTxQueueDequeueCallback ( AsciiTraceCallback cb)

Set the Dequeue callback for ASCII tracing.

Parameters
cbcallback for ASCII tracing

Definition at line 1354 of file ss-net-device.cc.

References m_asciiTxQueueDequeueCb.

◆ SetAsciiTxQueueDropCallback()

void ns3::SubscriberStationNetDevice::SetAsciiTxQueueDropCallback ( AsciiTraceCallback cb)

Set the Drop callback for ASCII tracing.

Parameters
cbcallback for ASCII tracing

Definition at line 1360 of file ss-net-device.cc.

References m_asciiTxQueueDropCb.

◆ SetAsciiTxQueueEnqueueCallback()

void ns3::SubscriberStationNetDevice::SetAsciiTxQueueEnqueueCallback ( AsciiTraceCallback cb)

Set the Enqueue callback for ASCII tracing.

Parameters
cbcallback for ASCII tracing

Definition at line 1348 of file ss-net-device.cc.

References m_asciiTxQueueEnqueueCb.

◆ SetBasicConnection()

void ns3::SubscriberStationNetDevice::SetBasicConnection ( Ptr< WimaxConnection > basicConnection)
Parameters
basicConnectionthe basic connection to be used

Definition at line 437 of file ss-net-device.cc.

References ns3::Config::Connect(), ns3::Node::GetId(), ns3::WimaxNetDevice::GetIfIndex(), ns3::WimaxNetDevice::GetNode(), ns3::Callback< R, UArgs >::IsNull(), m_asciiTxQueueDequeueCb, m_asciiTxQueueDropCb, m_asciiTxQueueEnqueueCb, and m_basicConnection.

+ Here is the call graph for this function:

◆ SetIntervalT1()

void ns3::SubscriberStationNetDevice::SetIntervalT1 ( Time interval1)
Parameters
interval1Wait for DCD timeout value

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

References m_intervalT1.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

◆ SetIntervalT12()

void ns3::SubscriberStationNetDevice::SetIntervalT12 ( Time interval12)
Parameters
interval12the Wait for UCD descriptor timeout

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

References m_intervalT12.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

◆ SetIntervalT2()

void ns3::SubscriberStationNetDevice::SetIntervalT2 ( Time interval2)
Parameters
interval2the wait for broadcast ranging timeout, i.e., wait for initial ranging opportunity

Definition at line 353 of file ss-net-device.cc.

References m_intervalT2.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

◆ SetIntervalT20()

void ns3::SubscriberStationNetDevice::SetIntervalT20 ( Time interval20)
Parameters
interval20the Time the SS searches for preambles on a given channel

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

References m_intervalT20.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

◆ SetIntervalT21()

void ns3::SubscriberStationNetDevice::SetIntervalT21 ( Time interval21)
Parameters
interval21the time the SS searches for (decodable) DL-MAP on a given channel

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

References m_intervalT21.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

◆ SetIntervalT3()

void ns3::SubscriberStationNetDevice::SetIntervalT3 ( Time interval3)
Parameters
interval3the ranging Response reception timeout following the transmission of a ranging request

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

References m_intervalT3.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

◆ SetIntervalT7()

void ns3::SubscriberStationNetDevice::SetIntervalT7 ( Time interval7)
Parameters
interval7the wait for DSA/DSC/DSD Response timeout

Definition at line 377 of file ss-net-device.cc.

References m_intervalT7.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

◆ SetIpcsPacketClassifier()

void ns3::SubscriberStationNetDevice::SetIpcsPacketClassifier ( Ptr< IpcsClassifier > classifier)

Sets the packet classifier to be used.

Parameters
classifierthe classifier to use

Definition at line 583 of file ss-net-device.cc.

References m_classifier.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

◆ SetLinkManager()

void ns3::SubscriberStationNetDevice::SetLinkManager ( Ptr< SSLinkManager > linkManager)

sets the link manager to be used

Parameters
linkManagerlink manager to use

Definition at line 595 of file ss-net-device.cc.

References m_linkManager.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

◆ SetLostDlMapInterval()

void ns3::SubscriberStationNetDevice::SetLostDlMapInterval ( Time lostDlMapInterval)
Parameters
lostDlMapIntervaltime since last received DL-MAP message before downlink synchronization is considered lost

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

References m_lostDlMapInterval.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

◆ SetLostUlMapInterval()

void ns3::SubscriberStationNetDevice::SetLostUlMapInterval ( Time lostUlMapInterval)
Parameters
lostUlMapIntervalTime since last received UL-MAP before uplink synchronization is considered lost

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

References m_lostUlMapInterval.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

◆ SetMaxContentionRangingRetries()

void ns3::SubscriberStationNetDevice::SetMaxContentionRangingRetries ( uint8_t maxContentionRangingRetries)
Parameters
maxContentionRangingRetriesthe Number of retries on contention Ranging Requests

Definition at line 425 of file ss-net-device.cc.

References m_maxContentionRangingRetries.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

◆ SetMaxDcdInterval()

void ns3::SubscriberStationNetDevice::SetMaxDcdInterval ( Time maxDcdInterval)
Parameters
maxDcdIntervalMaximum time between transmission of DCD messages

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

References m_maxDcdInterval.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

◆ SetMaxUcdInterval()

void ns3::SubscriberStationNetDevice::SetMaxUcdInterval ( Time maxUcdInterval)
Parameters
maxUcdIntervalMaximum time between transmission of UCD messages

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

References m_maxUcdInterval.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

◆ SetModulationType()

void ns3::SubscriberStationNetDevice::SetModulationType ( WimaxPhy::ModulationType modulationType)

Set the most efficient modulation and coding scheme (MCS) supported by the device.

Parameters
modulationTypethe most robust MCS supported

Definition at line 522 of file ss-net-device.cc.

References m_modulationType.

◆ SetPrimaryConnection()

void ns3::SubscriberStationNetDevice::SetPrimaryConnection ( Ptr< WimaxConnection > primaryConnection)
Parameters
primaryConnectionthe primary connection to be used

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

References ns3::Config::Connect(), ns3::Node::GetId(), ns3::WimaxNetDevice::GetIfIndex(), ns3::WimaxNetDevice::GetNode(), ns3::Callback< R, UArgs >::IsNull(), m_asciiTxQueueDequeueCb, m_asciiTxQueueDropCb, m_asciiTxQueueEnqueueCb, and m_primaryConnection.

+ Here is the call graph for this function:

◆ SetScheduler()

void ns3::SubscriberStationNetDevice::SetScheduler ( Ptr< SSScheduler > ssScheduler)
Parameters
ssSchedulerthe scheduler to be installed on the device

Definition at line 565 of file ss-net-device.cc.

References m_scheduler.

Referenced by GetTypeId().

+ Here is the caller graph for this function:

◆ SetServiceFlowManager()

void ns3::SubscriberStationNetDevice::SetServiceFlowManager ( Ptr< SsServiceFlowManager > sfm)

Sets the service flow manager to be installed on the device.

Parameters
sfmservice flow manager to be used

Definition at line 607 of file ss-net-device.cc.

References m_serviceFlowManager.

◆ SetTimer()

void ns3::SubscriberStationNetDevice::SetTimer ( EventId eventId,
EventId & event )

Set timer.

If in stopped state, the EventId passed in the first argument will be cancelled. If not, the second parameter will be set to the value of the first parameter.

Parameters
eventIdEventId to cancel or to map to the second argument
eventEventId is set to first argument if not in stopped state

Definition at line 1336 of file ss-net-device.cc.

References ns3::Simulator::Cancel(), ns3::WimaxNetDevice::GetState(), and SS_STATE_STOPPED.

+ Here is the call graph for this function:

◆ Start()

void ns3::SubscriberStationNetDevice::Start ( )
overridevirtual

Start the device.

Implements ns3::WimaxNetDevice.

Definition at line 613 of file ss-net-device.cc.

References ns3::WimaxNetDevice::CreateDefaultConnections(), EVENT_NONE, ns3::WimaxNetDevice::GetPhy(), m_intervalT20, m_linkManager, ns3::Simulator::ScheduleNow(), ns3::Seconds(), ns3::WimaxNetDevice::SetReceiveCallback(), and ns3::SSLinkManager::StartScanning().

+ Here is the call graph for this function:

◆ Stop()

void ns3::SubscriberStationNetDevice::Stop ( )
overridevirtual

Stop the device.

Implements ns3::WimaxNetDevice.

Definition at line 626 of file ss-net-device.cc.

References ns3::WimaxNetDevice::SetState(), and SS_STATE_STOPPED.

+ Here is the call graph for this function:

Member Data Documentation

◆ m_allocationStartTime

double ns3::SubscriberStationNetDevice::m_allocationStartTime
private

allocation start time

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

Referenced by GetTimeToAllocation(), InitSubscriberStationNetDevice(), and ProcessUlMap().

◆ m_areManagementConnectionsAllocated

bool ns3::SubscriberStationNetDevice::m_areManagementConnectionsAllocated
private

are management connections allocated

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

Referenced by GetAreManagementConnectionsAllocated(), InitSubscriberStationNetDevice(), ProcessUlMap(), and SetAreManagementConnectionsAllocated().

◆ m_areServiceFlowsAllocated

bool ns3::SubscriberStationNetDevice::m_areServiceFlowsAllocated
private

are service flows allocated

Definition at line 466 of file ss-net-device.h.

Referenced by GetAreServiceFlowsAllocated(), InitSubscriberStationNetDevice(), and SetAreServiceFlowsAllocated().

◆ m_asciiTxQueueDequeueCb

AsciiTraceCallback ns3::SubscriberStationNetDevice::m_asciiTxQueueDequeueCb
private

Bound callback to perform ASCII logging for Dequeue events.

Definition at line 520 of file ss-net-device.h.

Referenced by DoDispose(), SetAsciiTxQueueDequeueCallback(), SetBasicConnection(), and SetPrimaryConnection().

◆ m_asciiTxQueueDropCb

AsciiTraceCallback ns3::SubscriberStationNetDevice::m_asciiTxQueueDropCb
private

Bound callback to perform ASCII logging for Drop events.

Definition at line 522 of file ss-net-device.h.

Referenced by DoDispose(), SetAsciiTxQueueDropCallback(), SetBasicConnection(), and SetPrimaryConnection().

◆ m_asciiTxQueueEnqueueCb

AsciiTraceCallback ns3::SubscriberStationNetDevice::m_asciiTxQueueEnqueueCb
private

Bound callback to perform ASCII logging for Enqueue events.

Definition at line 518 of file ss-net-device.h.

Referenced by DoDispose(), SetAsciiTxQueueEnqueueCallback(), SetBasicConnection(), and SetPrimaryConnection().

◆ m_baseStationId

Mac48Address ns3::SubscriberStationNetDevice::m_baseStationId
private

base station ID

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

Referenced by DoReceive(), InitSubscriberStationNetDevice(), and ProcessDlMap().

◆ m_basicConnection

Ptr<WimaxConnection> ns3::SubscriberStationNetDevice::m_basicConnection
private

◆ m_classifier

Ptr<IpcsClassifier> ns3::SubscriberStationNetDevice::m_classifier
private

◆ m_dcdCount

uint8_t ns3::SubscriberStationNetDevice::m_dcdCount
private

DCD count.

Definition at line 432 of file ss-net-device.h.

Referenced by InitSubscriberStationNetDevice(), and ProcessDlMap().

◆ m_dcdWaitTimeoutEvent

EventId ns3::SubscriberStationNetDevice::m_dcdWaitTimeoutEvent
private

DCD wait timeout event.

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

Referenced by DoReceive().

◆ m_dlBurstProfile

OfdmDlBurstProfile* ns3::SubscriberStationNetDevice::m_dlBurstProfile
private

DL burst profile.

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

Referenced by DoDispose(), InitSubscriberStationNetDevice(), and ProcessDcd().

◆ m_intervalT1

Time ns3::SubscriberStationNetDevice::m_intervalT1
private

in seconds, wait for DCD timeout

Definition at line 419 of file ss-net-device.h.

Referenced by DoReceive(), GetIntervalT1(), InitSubscriberStationNetDevice(), and SetIntervalT1().

◆ m_intervalT12

Time ns3::SubscriberStationNetDevice::m_intervalT12
private

in seconds, wait for UCD descriptor

Definition at line 425 of file ss-net-device.h.

Referenced by DoReceive(), GetIntervalT12(), InitSubscriberStationNetDevice(), and SetIntervalT12().

◆ m_intervalT2

Time ns3::SubscriberStationNetDevice::m_intervalT2
private

in seconds, wait for broadcast ranging timeout, i.e., wait for initial ranging opportunity

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

Referenced by DoReceive(), GetIntervalT2(), InitSubscriberStationNetDevice(), and SetIntervalT2().

◆ m_intervalT20

Time ns3::SubscriberStationNetDevice::m_intervalT20
private

in seconds, time the SS searches for preambles on a given channel

Definition at line 426 of file ss-net-device.h.

Referenced by GetIntervalT20(), SetIntervalT20(), and Start().

◆ m_intervalT21

Time ns3::SubscriberStationNetDevice::m_intervalT21
private

in seconds, time the SS searches for (decodable) DL-MAP on a given channel

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

Referenced by GetIntervalT21(), InitSubscriberStationNetDevice(), and SetIntervalT21().

◆ m_intervalT3

Time ns3::SubscriberStationNetDevice::m_intervalT3
private

in milliseconds, ranging Response reception timeout following the transmission of a ranging request

Definition at line 422 of file ss-net-device.h.

Referenced by GetIntervalT3(), InitSubscriberStationNetDevice(), and SetIntervalT3().

◆ m_intervalT7

Time ns3::SubscriberStationNetDevice::m_intervalT7
private

in seconds, wait for DSA/DSC/DSD Response timeout

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

Referenced by GetIntervalT7(), InitSubscriberStationNetDevice(), and SetIntervalT7().

◆ m_linkManager

Ptr<SSLinkManager> ns3::SubscriberStationNetDevice::m_linkManager

◆ m_lostDlMapEvent

EventId ns3::SubscriberStationNetDevice::m_lostDlMapEvent
private

lost DL map event

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

Referenced by DoReceive().

◆ m_lostDlMapInterval

Time ns3::SubscriberStationNetDevice::m_lostDlMapInterval
private

in milliseconds, time since last received DL-MAP before downlink synchronization is considered lost, maximum is 600

Definition at line 413 of file ss-net-device.h.

Referenced by DoReceive(), GetLostDlMapInterval(), InitSubscriberStationNetDevice(), and SetLostDlMapInterval().

◆ m_lostUlMapEvent

EventId ns3::SubscriberStationNetDevice::m_lostUlMapEvent
private

lost UL map event

Definition at line 447 of file ss-net-device.h.

Referenced by DoReceive().

◆ m_lostUlMapInterval

Time ns3::SubscriberStationNetDevice::m_lostUlMapInterval
private

in milliseconds, time since last received UL-MAP before uplink synchronization is considered lost, maximum is 600

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

Referenced by DoReceive(), GetLostUlMapInterval(), InitSubscriberStationNetDevice(), and SetLostUlMapInterval().

◆ m_maxContentionRangingRetries

uint8_t ns3::SubscriberStationNetDevice::m_maxContentionRangingRetries
private

maximum contention ranging retries

Definition at line 429 of file ss-net-device.h.

Referenced by GetMaxContentionRangingRetries(), InitSubscriberStationNetDevice(), and SetMaxContentionRangingRetries().

◆ m_maxDcdInterval

Time ns3::SubscriberStationNetDevice::m_maxDcdInterval
private

in seconds, maximum time between transmission of DCD messages

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

Referenced by GetMaxDcdInterval(), InitSubscriberStationNetDevice(), and SetMaxDcdInterval().

◆ m_maxUcdInterval

Time ns3::SubscriberStationNetDevice::m_maxUcdInterval
private

in seconds, maximum time between transmission of UCD messages

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

Referenced by GetMaxUcdInterval(), InitSubscriberStationNetDevice(), and SetMaxUcdInterval().

◆ m_modulationType

WimaxPhy::ModulationType ns3::SubscriberStationNetDevice::m_modulationType
private

modulation type

Definition at line 463 of file ss-net-device.h.

Referenced by GetModulationType(), InitSubscriberStationNetDevice(), ProcessDcd(), ProcessUcd(), and SetModulationType().

◆ m_nrDcdRecvd

uint32_t ns3::SubscriberStationNetDevice::m_nrDcdRecvd
private

number DCD received

Definition at line 454 of file ss-net-device.h.

Referenced by InitSubscriberStationNetDevice(), and ProcessDcd().

◆ m_nrDlMapElements

uint16_t ns3::SubscriberStationNetDevice::m_nrDlMapElements
private

number DL Map elements

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

Referenced by InitSubscriberStationNetDevice().

◆ m_nrDlMapRecvd

uint32_t ns3::SubscriberStationNetDevice::m_nrDlMapRecvd
private

number DL map received

Definition at line 452 of file ss-net-device.h.

Referenced by InitSubscriberStationNetDevice(), and ProcessDlMap().

◆ m_nrUcdRecvd

uint32_t ns3::SubscriberStationNetDevice::m_nrUcdRecvd
private

number UCD received

Definition at line 455 of file ss-net-device.h.

Referenced by InitSubscriberStationNetDevice(), and ProcessUcd().

◆ m_nrUlMapElements

uint16_t ns3::SubscriberStationNetDevice::m_nrUlMapElements
private

number UL Map elements

Definition at line 441 of file ss-net-device.h.

Referenced by InitSubscriberStationNetDevice().

◆ m_nrUlMapRecvd

uint32_t ns3::SubscriberStationNetDevice::m_nrUlMapRecvd
private

number UL map received

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

Referenced by InitSubscriberStationNetDevice(), and ProcessUlMap().

◆ m_primaryConnection

Ptr<WimaxConnection> ns3::SubscriberStationNetDevice::m_primaryConnection
private

◆ m_rangOppWaitTimeoutEvent

EventId ns3::SubscriberStationNetDevice::m_rangOppWaitTimeoutEvent
private

range opp wait timeout event

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

Referenced by DoReceive().

◆ m_scheduler

Ptr<SSScheduler> ns3::SubscriberStationNetDevice::m_scheduler
private

the scheduler

Definition at line 468 of file ss-net-device.h.

Referenced by DoDispose(), Enqueue(), GetScheduler(), InitSubscriberStationNetDevice(), SendBurst(), and SetScheduler().

◆ m_serviceFlowManager

Ptr<SsServiceFlowManager> ns3::SubscriberStationNetDevice::m_serviceFlowManager
private

the service flow manager

Definition at line 469 of file ss-net-device.h.

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

◆ m_ssPromiscRxTrace

TracedCallback<Ptr<const Packet> > ns3::SubscriberStationNetDevice::m_ssPromiscRxTrace
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 498 of file ss-net-device.h.

Referenced by DoReceive(), and GetTypeId().

◆ m_ssRxDropTrace

TracedCallback<Ptr<const Packet> > ns3::SubscriberStationNetDevice::m_ssRxDropTrace
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 515 of file ss-net-device.h.

Referenced by DoReceive(), and GetTypeId().

◆ m_ssRxTrace

TracedCallback<Ptr<const Packet> > ns3::SubscriberStationNetDevice::m_ssRxTrace
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 507 of file ss-net-device.h.

Referenced by DoReceive(), and GetTypeId().

◆ m_ssTxDropTrace

TracedCallback<Ptr<const Packet> > ns3::SubscriberStationNetDevice::m_ssTxDropTrace
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 489 of file ss-net-device.h.

Referenced by DoSend(), and GetTypeId().

◆ m_ssTxTrace

TracedCallback<Ptr<const Packet> > ns3::SubscriberStationNetDevice::m_ssTxTrace
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 481 of file ss-net-device.h.

Referenced by DoSend().

◆ m_traceSSRx

TracedCallback<Ptr<const Packet>, Mac48Address, const Cid&> ns3::SubscriberStationNetDevice::m_traceSSRx
private

trace SS receive callback

Definition at line 473 of file ss-net-device.h.

Referenced by DoReceive().

◆ m_ucdCount

uint8_t ns3::SubscriberStationNetDevice::m_ucdCount
private

UCD count.

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

Referenced by InitSubscriberStationNetDevice(), and ProcessUlMap().

◆ m_ucdWaitTimeoutEvent

EventId ns3::SubscriberStationNetDevice::m_ucdWaitTimeoutEvent
private

UCD wait timeout event.

Definition at line 449 of file ss-net-device.h.

Referenced by DoReceive().

◆ m_ulBurstProfile

OfdmUlBurstProfile* ns3::SubscriberStationNetDevice::m_ulBurstProfile
private

UL burst profile.

Definition at line 458 of file ss-net-device.h.

Referenced by DoDispose(), InitSubscriberStationNetDevice(), and ProcessUcd().


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