|
A Discrete-Event Network Simulator
|
API
|
Go to the documentation of this file.
23 #ifndef WIMAX_SS_NET_DEVICE_H
24 #define WIMAX_SS_NET_DEVICE_H
26 #include "ns3/event-id.h"
28 #include "ns3/nstime.h"
30 #include "ns3/uinteger.h"
31 #include "ns3/ss-service-flow-manager.h"
37 class OfdmDlBurstProfile;
38 class OfdmUlBurstProfile;
41 class SsServiceFlowManager;
a unique identifier for an interface.
void SetAreManagementConnectionsAllocated(bool areManagementConnectionsAllocated)
WimaxPhy::ModulationType GetModulationType(void) const
void SetIntervalT3(Time interval3)
void SetLinkManager(Ptr< SSLinkManager > linkManager)
sets the link manager to be used
Time GetIntervalT2(void) const
void SetMaxDcdInterval(Time maxDcdInterval)
uint8_t m_maxContentionRangingRetries
maximum contention ranging retries
void SetMaxUcdInterval(Time maxUcdInterval)
Ptr< IpcsClassifier > GetIpcsClassifier() const
void SetLostDlMapInterval(Time lostDlMapInterval)
void ProcessUcd(const Ucd &ucd)
Process UCD.
void Stop(void)
Stop the device.
void Start(void)
Start the device.
An identifier for simulation events.
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.
Ptr< SSLinkManager > m_linkManager
link manager
Every class exported by the ns3 library is enclosed in the ns3 namespace.
Time GetMaxDcdInterval(void) const
Time m_maxUcdInterval
in seconds, maximum time between transmission of UCD messages
OfdmDlBurstProfile * m_dlBurstProfile
DL burst profile.
TracedCallback< Ptr< const Packet > > m_ssRxTrace
The trace source fired for packets successfully received by the device immediately before being forwa...
bool GetAreManagementConnectionsAllocated(void) const
Time GetIntervalT1(void) const
void SetAsciiTxQueueDequeueCallback(AsciiTraceCallback cb)
Set the Dequeue callback for ASCII tracing.
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 ...
Time m_intervalT3
in milliseconds, ranging Response reception timeout following the transmission of a ranging request
Callback< void, std::string, Ptr< const Packet > > AsciiTraceCallback
Callback for logging packets on ASCII traces.
uint16_t m_nrDlMapElements
number DL Map elements
void SetMaxContentionRangingRetries(uint8_t maxContentionRangingRetries)
@ SS_STATE_WAITING_RNG_RSP
bool m_areManagementConnectionsAllocated
are management connections allocated
Mac48Address m_baseStationId
base station ID
void SetIntervalT1(Time interval1)
Ptr< SSScheduler > GetScheduler(void) const
void SetModulationType(WimaxPhy::ModulationType modulationType)
Set the most efficient modulation and coding scheme (MCS) supported by the device.
Time m_intervalT7
in seconds, wait for DSA/DSC/DSD Response timeout
Ptr< WimaxConnection > GetBasicConnection(void) const
EventType
EventType enumeration.
EventId m_lostDlMapEvent
lost DL map event
~SubscriberStationNetDevice(void)
AsciiTraceCallback m_asciiTxQueueDropCb
Bound callback to perform ASCII logging for Drop events.
This class implements the UL-MAP_IE message as described by "IEEE Standard for Local and metropolitan...
@ SS_STATE_WAITING_REG_RANG_INTRVL
void SetLostUlMapInterval(Time lostUlMapInterval)
Ptr< WimaxConnection > m_primaryConnection
primary connection
EventId m_dcdWaitTimeoutEvent
DCD wait timeout event.
Time m_maxDcdInterval
in seconds, maximum time between transmission of DCD messages
@ SS_STATE_ADJUSTING_PARAMETERS
Ptr< SsServiceFlowManager > GetServiceFlowManager(void) const
void SetAsciiTxQueueDropCallback(AsciiTraceCallback cb)
Set the Drop callback for ASCII tracing.
static TypeId GetTypeId(void)
Get the type ID.
Ptr< IpcsClassifier > m_classifier
the classifier
Time m_intervalT21
in seconds, time the SS searches for (decodable) DL-MAP on a given channel
Hold together all WiMAX-related objects in a NetDevice.
Time GetIntervalT7(void) const
@ SS_STATE_ACQUIRING_PARAMETERS
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 ...
Time GetIntervalT21(void) const
ModulationType
ModulationType enumeration.
WimaxPhy::ModulationType m_modulationType
modulation type
Time m_intervalT1
in seconds, wait for DCD timeout
void SetIntervalT20(Time interval20)
void SetPrimaryConnection(Ptr< WimaxConnection > primaryConnection)
This class implements the UL burst profile as described by "IEEE Standard for Local and metropolitan ...
uint32_t m_nrDlMapRecvd
number DL map received
uint32_t m_nrUcdRecvd
number UCD received
Time GetLostDlMapInterval(void) const
uint16_t m_nrUlMapElements
number UL Map elements
@ SS_STATE_WAITING_INV_RANG_INTRVL
bool Enqueue(Ptr< Packet > packet, const MacHeaderType &hdrType, Ptr< WimaxConnection > connection)
Enqueue a packet into a connection queue.
TracedCallback< Ptr< const Packet >, Mac48Address, const Cid & > m_traceSSRx
trace SS receive callback
Time GetTimeToAllocation(Time deferTime)
Get time to allocation.
Simulation virtual time values and global simulation resolution.
void DoDispose(void)
Destructor implementation.
bool HasServiceFlows(void) const
Time m_intervalT12
in seconds, wait for UCD descriptor
This class implements DL-MAP as described by "IEEE Standard for Local and metropolitan area networks ...
void SetAsciiTxQueueEnqueueCallback(AsciiTraceCallback cb)
Set the Enqueue callback for ASCII tracing.
SubscriberStationNetDevice subclass of WimaxNetDevice.
SubscriberStationNetDevice(void)
Time GetIntervalT12(void) const
Ptr< SSScheduler > m_scheduler
the scheduler
bool m_areServiceFlowsAllocated
are service flows allocated
void SetIntervalT2(Time interval2)
void SetTimer(EventId eventId, EventId &event)
Set timer.
EventId m_lostUlMapEvent
lost UL map event
void SetAreServiceFlowsAllocated(bool areServiceFlowsAllocated)
This class implements the OFDM Downlink burst profile descriptor as described by "IEEE Standard for L...
Ptr< SSLinkManager > GetLinkManager(void) const
void AddServiceFlow(ServiceFlow *sf)
adds a new service flow
uint8_t m_dcdCount
DCD count.
void ProcessUlMap(const UlMap &ulmap)
Process UL map.
bool IsRegistered(void) const
AsciiTraceCallback m_asciiTxQueueEnqueueCb
Bound callback to perform ASCII logging for Enqueue events.
Time GetMaxUcdInterval(void) const
void SetIntervalT12(Time interval12)
void ProcessDcd(const Dcd &dcd)
Process DCD.
Cid GetPrimaryCid(void) const
bool GetAreServiceFlowsAllocated(void) const
uint8_t GetMaxContentionRangingRetries(void) const
double m_allocationStartTime
allocation start time
Time GetIntervalT3(void) const
Time m_intervalT2
in seconds, wait for broadcast ranging timeout, i.e., wait for initial ranging opportunity
void SetServiceFlowManager(Ptr< SsServiceFlowManager > sfm)
Sets the service flow manager to be installed on the device.
void DoReceive(Ptr< Packet > packet)
Receive a packet.
void SetIntervalT7(Time interval7)
TracedCallback< Ptr< const Packet > > m_ssTxTrace
The trace source fired when packets come into the "top" of the device at the L3/L2 transition,...
This class implements service flows as described by the IEEE-802.16 standard.
Forward calls to a chain of Callback.
uint32_t m_nrUlMapRecvd
number UL map received
void SetIntervalT21(Time interval21)
TracedCallback< Ptr< const Packet > > m_ssPromiscRxTrace
The trace source fired for packets successfully received by the device immediately before being forwa...
bool DoSend(Ptr< Packet > packet, const Mac48Address &source, const Mac48Address &dest, uint16_t protocolNumber)
Send a packet.
Time GetLostUlMapInterval(void) const
uint32_t m_nrDcdRecvd
number DCD received
Cid GetBasicCid(void) const
Time GetIntervalT20(void) const
This class implements the UCD message as described by "IEEE Standard for Local and metropolitan area ...
Ptr< SsServiceFlowManager > m_serviceFlowManager
the service flow manager
Time m_lostDlMapInterval
in milliseconds, time since last received DL-MAP before downlink synchronization is considered lost,...
uint8_t m_ucdCount
UCD count.
void SetScheduler(Ptr< SSScheduler > ssScheduler)
OfdmUlBurstProfile * m_ulBurstProfile
UL burst profile.
void InitSubscriberStationNetDevice(void)
initializes the net device and sets the parameters to the default values
Time m_lostUlMapInterval
in milliseconds, time since last received UL-MAP before uplink synchronization is considered lost,...
static Time GetDefaultLostDlMapInterval()
Get default lost DL map interval.
This class implements Downlink channel descriptor as described by "IEEE Standard for Local and metrop...
void SetIpcsPacketClassifier(Ptr< IpcsClassifier > classifier)
Sets the packet classifier to be used.
@ EVENT_RANG_OPP_WAIT_TIMEOUT
Ptr< WimaxConnection > m_basicConnection
basic connection
EventId m_ucdWaitTimeoutEvent
UCD wait timeout event.
void ProcessDlMap(const DlMap &dlmap)
Process DL map.
AsciiTraceCallback m_asciiTxQueueDequeueCb
Bound callback to perform ASCII logging for Dequeue events.
EventId m_rangOppWaitTimeoutEvent
range opp wait timeout event
@ EVENT_DL_MAP_SYNC_TIMEOUT
void SetBasicConnection(Ptr< WimaxConnection > basicConnection)
Ptr< WimaxConnection > GetPrimaryConnection(void) const
Time m_intervalT20
in seconds, time the SS searches for preambles on a given channel