ns-3
ns3::SubscriberStationNetDevice Class Reference
Inheritance diagram for ns3::SubscriberStationNetDevice:
Collaboration diagram for ns3::SubscriberStationNetDevice:

List of all members.

Public Types

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
}
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
}

Public Member Functions

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

Static Public Member Functions

static TypeId GetTypeId (void)
 This method returns the TypeId associated to ns3::SubscriberStationNetDevice.

Public Attributes

Ptr< SSLinkManagerm_linkManager

Member Function Documentation

bool ns3::SubscriberStationNetDevice::Enqueue ( Ptr< Packet packet,
const MacHeaderType hdrType,
Ptr< WimaxConnection connection 
) [virtual]

Enqueue a packet into a connection queue.

Parameters:
packetthe packet to be enqueued
hdrTypethe mac header type to be appended to the packet
connectionthe connection to be used

Implements ns3::WimaxNetDevice.

References ns3::Packet::AddHeader(), ns3::WimaxConnection::Enqueue(), ns3::WimaxConnection::GetSchedulingType(), ns3::Packet::GetSize(), NS_ASSERT_MSG, and NS_LOG_INFO.

Returns:
true if the management connections are allocated, false otherwise
Returns:
true if the service flows are allocated, false otherwise
Returns:
the basic CID
Returns:
the basic connection currently in use

returns the wait for DCD timeout

Referenced by GetTypeId().

returns the wait for UCD descriptor timeout

Referenced by GetTypeId().

returns the wait for broadcast ranging timeout, i.e., wait for initial ranging opportunity

Referenced by GetTypeId().

returns the Time the SS searches for preambles on a given channel

Referenced by GetTypeId().

returns the time the SS searches for (decodable) DL-MAP on a given channel

Referenced by GetTypeId().

returns the ranging Response reception timeout following the transmission of a ranging request

Referenced by GetTypeId().

returns the wait for DSA/DSC/DSD Response timeout

Referenced by GetTypeId().

Returns:
a pointer to the CS packet classifier

Referenced by GetTypeId().

Returns:
a pointer to the link manger currently used

Referenced by GetTypeId().

returns the time since last received UL-MAP before uplink synchronization is considered lost

Referenced by GetTypeId().

Returns:
the Number of retries on contention Ranging Requests

Referenced by GetTypeId().

returns the maximum time between transmission of DCD messages

Referenced by GetTypeId().

returns the maximum time between transmission of UCD messages

Referenced by GetTypeId().

WimaxPhy::ModulationType ns3::SubscriberStationNetDevice::GetModulationType ( void  ) const

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

Returns:
the primary CID

returns the primary connection currently usde

Returns:
the scheduler installed on the device

Referenced by GetTypeId().

Returns:
a pointer to the service flow manager installed on the device

Referenced by AddServiceFlow(), and HasServiceFlows().

This method returns the TypeId associated to ns3::SubscriberStationNetDevice.

This object is accessible through the following paths with Config::Set and Config::Connect:

  • /NodeList/[i]/DeviceList/[i]/$ns3::AlohaNoackNetDevice/Phy/$ns3::SubscriberStationNetDevice
  • /NodeList/[i]/DeviceList/[i]/$ns3::AlohaNoackNetDevice/Phy/$ns3::WimaxNetDevice/$ns3::SubscriberStationNetDevice
  • /NodeList/[i]/DeviceList/[i]/$ns3::NonCommunicatingNetDevice/Phy/$ns3::SubscriberStationNetDevice
  • /NodeList/[i]/DeviceList/[i]/$ns3::NonCommunicatingNetDevice/Phy/$ns3::WimaxNetDevice/$ns3::SubscriberStationNetDevice
  • /NodeList/[i]/DeviceList/[i]/$ns3::SubscriberStationNetDevice
  • /NodeList/[i]/DeviceList/[i]/$ns3::WimaxNetDevice/$ns3::SubscriberStationNetDevice

Attributes defined for this type:

  • BasicConnection: Basic connection
  • PrimaryConnection: Primary connection
  • LostDlMapInterval: Time since last received DL-MAP message before downlink synchronization is considered lost. Maximum is 600ms
    • Set with class: TimeValue
    • Underlying type: Time
    • Initial value: +500000000.0ns
    • Flags: construct write read
  • LostUlMapInterval: Time since last received UL-MAP before uplink synchronization is considered lost, maximum is 600.
    • Set with class: TimeValue
    • Underlying type: Time
    • Initial value: +500000000.0ns
    • Flags: construct write read
  • MaxDcdInterval: Maximum time between transmission of DCD messages. Maximum is 10s
    • Set with class: TimeValue
    • Underlying type: Time
    • Initial value: +10000000000.0ns
    • Flags: construct write read
  • MaxUcdInterval: Maximum time between transmission of UCD messages. Maximum is 10s
    • Set with class: TimeValue
    • Underlying type: Time
    • Initial value: +10000000000.0ns
    • Flags: construct write read
  • IntervalT1: Wait for DCD timeout. Maximum is 5*maxDcdInterval
    • Set with class: TimeValue
    • Underlying type: Time
    • Initial value: +50000000000.0ns
    • Flags: construct write read
  • IntervalT2: Wait for broadcast ranging timeout, i.e., wait for initial ranging opportunity. Maximum is 5*Ranging interval
    • Set with class: TimeValue
    • Underlying type: Time
    • Initial value: +10000000000.0ns
    • Flags: construct write read
  • IntervalT3: ranging Response reception timeout following the transmission of a ranging request. Maximum is 200ms
    • Set with class: TimeValue
    • Underlying type: Time
    • Initial value: +200000000.0ns
    • Flags: construct write read
  • IntervalT7: wait for DSA/DSC/DSD Response timeout. Maximum is 1s
    • Set with class: TimeValue
    • Underlying type: Time
    • Initial value: +100000000.0ns
    • Flags: construct write read
  • IntervalT12: Wait for UCD descriptor.Maximum is 5*MaxUcdInterval
    • Set with class: TimeValue
    • Underlying type: Time
    • Initial value: +10000000000.0ns
    • Flags: construct write read
  • IntervalT20: Time the SS searches for preambles on a given channel. Minimum is 2 MAC frames
    • Set with class: TimeValue
    • Underlying type: Time
    • Initial value: +500000000.0ns
    • Flags: construct write read
  • IntervalT21: time the SS searches for (decodable) DL-MAP on a given channel
    • Set with class: TimeValue
    • Underlying type: Time
    • Initial value: +10000000000.0ns
    • Flags: construct write read
  • MaxContentionRangingRetries: Number of retries on contention Ranging Requests
  • SSScheduler: The ss scheduler attached to this device.
  • LinkManager: The ss link manager attached to this device.
  • Classifier: The ss classifier attached to this device.

Attributes defined in parent class ns3::WimaxNetDevice:

TraceSources defined for this type:

  • SSTxDrop: A packet has been dropped in the MAC layer before being queued for transmission.
  • SSPromiscRx: 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,
  • SSRx: 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,
  • SSRxDrop: A packet has been dropped in the MAC layer after it has been passed up from the physical layer.

TraceSources defined in parent class ns3::WimaxNetDevice:

  • Rx: Receive trace
  • Tx: Transmit trace

Reimplemented from ns3::WimaxNetDevice.

References GetIntervalT1(), GetIntervalT12(), GetIntervalT2(), GetIntervalT20(), GetIntervalT21(), GetIntervalT3(), GetIntervalT7(), GetIpcsClassifier(), GetLinkManager(), GetLostUlMapInterval(), GetMaxContentionRangingRetries(), GetMaxDcdInterval(), GetMaxUcdInterval(), GetScheduler(), ns3::MakeTraceSourceAccessor(), ns3::MilliSeconds(), ns3::Seconds(), SetIntervalT1(), SetIntervalT12(), SetIntervalT2(), SetIntervalT20(), SetIntervalT21(), SetIntervalT3(), SetIntervalT7(), SetIpcsPacketClassifier(), SetLinkManager(), SetLostDlMapInterval(), SetLostUlMapInterval(), SetMaxContentionRangingRetries(), SetMaxDcdInterval(), SetMaxUcdInterval(), ns3::TypeId::SetParent(), and SetScheduler().

Returns:
true if the device has at least one active service flow, false otherwise

References GetServiceFlowManager().

Returns:
true if the SS is registered to a BS, false otherwise

Referenced by SendBurst().

void ns3::SubscriberStationNetDevice::SetAreManagementConnectionsAllocated ( bool  areManagementConnectionsAllocated)
Parameters:
areManagementConnectionsAllocatedtrue if the management connections are allocated, false otherwise
void ns3::SubscriberStationNetDevice::SetAreServiceFlowsAllocated ( bool  areServiceFlowsAllocated)
Parameters:
areServiceFlowsAllocatedtrue if the service flows are allocated, false otherwise
Parameters:
basicConnectionthe basic connection to be used
Parameters:
interval1Wait for DCD timeout

Referenced by GetTypeId().

Parameters:
interval12the Wait for UCD descriptor timeout

Referenced by GetTypeId().

Parameters:
interval2the wait for broadcast ranging timeout, i.e., wait for initial ranging opportunity

Referenced by GetTypeId().

Parameters:
interval20the Time the SS searches for preambles on a given channel

Referenced by GetTypeId().

Parameters:
interval21the time the SS searches for (decodable) DL-MAP on a given channel

Referenced by GetTypeId().

Parameters:
interval3the ranging Response reception timeout following the transmission of a ranging request

Referenced by GetTypeId().

Parameters:
interval7the wait for DSA/DSC/DSD Response timeout

Referenced by GetTypeId().

Parameters:
lostDlMapIntervaltime since last received DL-MAP message before downlink synchronization is considered lost

Referenced by GetTypeId().

Parameters:
lostUlMapIntervalTime since last received UL-MAP before uplink synchronization is considered lost

Referenced by GetTypeId().

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

Referenced by GetTypeId().

Parameters:
maxDcdIntervalMaximum time between transmission of DCD messages

Referenced by GetTypeId().

Parameters:
maxUcdIntervalMaximum time between transmission of UCD messages

Referenced by GetTypeId().

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
Parameters:
primaryConnectionthe primary connection to be used
Parameters:
ssSchedulerthe scheduler to be installed on the device

Referenced by GetTypeId().

void ns3::SubscriberStationNetDevice::Start ( void  ) [virtual]

This method calls the virtual DoStart method on all the objects aggregated to this object. DoStart will be called only once over the lifetime of an object, just like DoDispose is called only once.

See also:
DoStart

Note: the code here is a bit tricky because we need to protect ourselves from modifications in the aggregate array while DoStart is called. The user's implementation of the DoStart method could call GetObject (which could reorder the array) and it could call AggregateObject which would add an object at the end of the array. To be safe, we restart iteration over the array whenever we call some user code, just in case.

Implements ns3::WimaxNetDevice.

References ns3::WimaxNetDevice::GetPhy(), ns3::Simulator::ScheduleNow(), ns3::Seconds(), ns3::WimaxPhy::SetDataRates(), and ns3::WimaxPhy::SetPhyParameters().


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