|
A Discrete-Event Network Simulator
|
API
|
Go to the documentation of this file.
23 #include "ns3/simulator.h"
25 #include "ns3/config.h"
28 #include "ns3/packet-burst.h"
34 #include "ns3/trace-source-accessor.h"
35 #include "ns3/pointer.h"
61 TypeId (
"ns3::SubscriberStationNetDevice")
64 .SetGroupName (
"Wimax")
68 .AddAttribute (
"BasicConnection",
72 MakePointerChecker<WimaxConnection> ())
74 .AddAttribute (
"PrimaryConnection",
78 MakePointerChecker<WimaxConnection> ())
80 .AddAttribute (
"LostDlMapInterval",
81 "Time since last received DL-MAP message before downlink synchronization is considered lost. Maximum is 600ms",
87 .AddAttribute (
"LostUlMapInterval",
88 "Time since last received UL-MAP before uplink synchronization is considered lost, maximum is 600.",
94 .AddAttribute (
"MaxDcdInterval",
95 "Maximum time between transmission of DCD messages. Maximum is 10s",
101 .AddAttribute (
"MaxUcdInterval",
102 "Maximum time between transmission of UCD messages. Maximum is 10s",
108 .AddAttribute (
"IntervalT1",
109 "Wait for DCD timeout. Maximum is 5*maxDcdInterval",
115 .AddAttribute (
"IntervalT2",
116 "Wait for broadcast ranging timeout, i.e., wait for initial ranging opportunity. Maximum is 5*Ranging interval",
122 .AddAttribute (
"IntervalT3",
123 "ranging Response reception timeout following the transmission of a ranging request. Maximum is 200ms",
129 .AddAttribute (
"IntervalT7",
130 "wait for DSA/DSC/DSD Response timeout. Maximum is 1s",
136 .AddAttribute (
"IntervalT12",
137 "Wait for UCD descriptor.Maximum is 5*MaxUcdInterval",
143 .AddAttribute (
"IntervalT20",
144 "Time the SS searches for preambles on a given channel. Minimum is 2 MAC frames",
150 .AddAttribute (
"IntervalT21",
151 "time the SS searches for (decodable) DL-MAP on a given channel",
157 .AddAttribute (
"MaxContentionRangingRetries",
158 "Number of retries on contention Ranging Requests",
162 MakeUintegerChecker<uint8_t> (1, 16))
164 .AddAttribute (
"SSScheduler",
165 "The ss scheduler attached to this device.",
169 MakePointerChecker<SSScheduler> ())
171 .AddAttribute (
"LinkManager",
172 "The ss link manager attached to this device.",
176 MakePointerChecker<SSLinkManager> ())
178 .AddAttribute (
"Classifier",
179 "The ss classifier attached to this device.",
183 MakePointerChecker<IpcsClassifier> ())
185 .AddTraceSource (
"SSTxDrop",
186 "A packet has been dropped in the MAC layer before being queued for transmission.",
188 "ns3::Packet::TracedCallback")
190 .AddTraceSource (
"SSPromiscRx",
191 "A packet has been received by this device, has been passed up from the physical layer "
192 "and is being forwarded up the local protocol stack. This is a promiscuous trace,",
194 "ns3::Packet::TracedCallback")
196 .AddTraceSource (
"SSRx",
197 "A packet has been received by this device, has been passed up from the physical layer "
198 "and is being forwarded up the local protocol stack. This is a non-promiscuous trace,",
200 "ns3::Packet::TracedCallback")
202 .AddTraceSource (
"SSRxDrop",
203 "A packet has been dropped in the MAC layer after it has been passed up from the physical "
206 "ns3::Packet::TracedCallback")
443 std::ostringstream oss;
444 oss <<
"/NodeList/" << nodeId <<
"/DeviceList/" << ifaceId <<
"/$ns3::SubscriberStationNetDevice/BasicConnection/TxQueue/Enqueue";
449 std::ostringstream oss;
450 oss <<
"/NodeList/" << nodeId <<
"/DeviceList/" << ifaceId <<
"/$ns3::SubscriberStationNetDevice/BasicConnection/TxQueue/Dequeue";
455 std::ostringstream oss;
456 oss <<
"/NodeList/" << nodeId <<
"/DeviceList/" << ifaceId <<
"/$ns3::SubscriberStationNetDevice/BasicConnection/TxQueue/Drop";
477 std::ostringstream oss;
478 oss <<
"/NodeList/" << nodeId <<
"/DeviceList/" << ifaceId <<
"/$ns3::SubscriberStationNetDevice/PrimaryConnection/TxQueue/Enqueue";
483 std::ostringstream oss;
484 oss <<
"/NodeList/" << nodeId <<
"/DeviceList/" << ifaceId <<
"/$ns3::SubscriberStationNetDevice/PrimaryConnection/TxQueue/Dequeue";
489 std::ostringstream oss;
490 oss <<
"/NodeList/" << nodeId <<
"/DeviceList/" << ifaceId <<
"/$ns3::SubscriberStationNetDevice/PrimaryConnection/TxQueue/Drop";
609 GetPhy ()->SetPhyParameters ();
610 GetPhy ()->SetDataRates ();
639 uint16_t protocolNumber)
656 NS_LOG_INFO (
"\tCan't send packet! (NotRegitered with the network)");
660 NS_LOG_DEBUG (
"packet to send, size : " << packet->
GetSize () <<
", destination : " << dest);
664 NS_LOG_INFO (
"\tCan't send packet! (No service Flow)");
668 if (protocolNumber == 2048)
673 if ((protocolNumber != 2048) || (serviceFlow == NULL))
676 NS_LOG_INFO (
"\tNo service flows matches...using the default one.");
679 NS_LOG_INFO (
"\tPacket classified in the service flow SFID = " << serviceFlow->
GetSfid () <<
" CID = "
680 << serviceFlow->
GetCid ());
696 NS_LOG_INFO (
"Error!! The Service Flow is not enabled" );
709 NS_ASSERT_MSG (connection != 0,
"SS: Can not enqueue the packet: the selected connection is nor initialized");
716 hdr.
SetCid (connection->GetCid ());
726 "Error while equeuing packet: incorrect header type");
729 grantMgmntSubhdr.
SetPm (
true);
733 NS_LOG_INFO (
"ServiceFlowManager: enqueuing packet" );
734 return connection->Enqueue (packet, hdrType, hdr);
755 if (burst->GetNPackets () == 0)
775 NS_LOG_DEBUG (
" sending burst" <<
", SFID: " << connection->GetServiceFlow ()->GetSfid () <<
", pkts sent: "
797 bool fragmentation =
false;
809 cid = gnrcMacHdr.
GetCid ();
812 uint8_t type = gnrcMacHdr.
GetType ();
816 uint8_t tmpType = type;
817 if (((tmpType >> 2) & 1) == 1)
820 fragmentation =
true;
821 NS_LOG_INFO (
"SS DoReceive -> the packet is a fragment" << std::endl);
974 "SS: Error while receiving a ranging response message: SS state should be at least SS_STATE_WAITING_REG_RANG_INTRVL");
993 "SS: Error while receiving a ranging response message: SS state should be SS_STATE_WAITING_RNG_RSP");
1049 NS_LOG_INFO (
"FRAG_DEBUG: SS DoReceive, the Packet is a fragment" << std::endl);
1051 uint32_t fc = fragSubhdr.
GetFc ();
1058 NS_LOG_INFO (
"\t Received the latest fragment" << std::endl);
1060 ->FragmentEnqueue (packet);
1063 GetConnection (cid)->GetFragmentsQueue ();
1068 NS_LOG_INFO (
"\t SS PACKET DEFRAGMENTATION" << std::endl);
1070 iter != fragmentsQueue.end (); ++iter)
1076 ->ClearFragmentsQueue ();
1086 NS_LOG_INFO (
"\t Received the first or the middle fragment" << std::endl);
1122 for (std::list<OfdmDlMapIe>::iterator iter = dlMapElements.begin (); iter != dlMapElements.end (); ++iter)
1138 uint8_t temp = iter->GetDiuc ();
1139 temp = iter->GetPreamblePresent ();
1140 temp = iter->GetStartTime ();
1154 for (std::list<OfdmUlMapIe>::iterator iter = ulMapElements.begin (); iter != ulMapElements.end (); ++iter)
1174 *
GetPhy ()->GetSymbolDuration ().GetSeconds ()));
1182 "SS: Error while processing UL MAP: SS state should be SS_STATE_WAITING_INV_RANG_INTRVL");
1219 if (
GetCurrentUcd ().GetChannelEncodings ().GetRangReqOppSize () != 0)
1222 /
GetCurrentUcd ().GetChannelEncodings ().GetRangReqOppSize ());
1256 for (std::vector<OfdmDlBurstProfile>::iterator iter = dlBurstProfiles.begin (); iter != dlBurstProfiles.end (); ++iter)
1291 for (std::vector<OfdmUlBurstProfile>::iterator iter = ulBurstProfiles.begin (); iter != ulBurstProfiles.end (); ++iter)
1318 - timeAlreadyElapsed;
1319 return timeToUlSubframe + deferTime;
a unique identifier for an interface.
void SetAreManagementConnectionsAllocated(bool areManagementConnectionsAllocated)
uint32_t GetPktsSent(void) const
#define NS_LOG_COMPONENT_DEFINE(name)
Define a Log component with a specific name.
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 UpdateBytesRcvd(uint32_t bytesRcvd)
update the number of received bytes by adding bytesRcvd
#define NS_OBJECT_ENSURE_REGISTERED(type)
Register an Object subclass with the TypeId system.
void SetMaxDcdInterval(Time maxDcdInterval)
uint8_t m_maxContentionRangingRetries
maximum contention ranging retries
void SetMaxUcdInterval(Time maxUcdInterval)
Ptr< IpcsClassifier > GetIpcsClassifier() const
void SetLostDlMapInterval(Time lostDlMapInterval)
Ptr< const AttributeChecker > MakeTimeChecker(const Time min, const Time max)
Helper to make a Time checker with bounded range.
void ForwardUp(Ptr< Packet > packet, const Mac48Address &source, const Mac48Address &dest)
Forward a packet to the next layer above the device.
std::list< OfdmUlMapIe > GetUlMapElements(void) const
Get UL map elements.
void ProcessUcd(const Ucd &ucd)
Process UCD.
Ptr< ConnectionManager > GetConnectionManager(void) const
Get the connection manager of the device.
void Stop(void)
Stop the device.
void Start(void)
Start the device.
std::vector< OfdmDlBurstProfile > GetDlBurstProfiles(void) const
Get DL burst profile field.
An identifier for simulation events.
uint8_t GetRangingBackoffStart(void) const
Get ranging backoff start.
uint32_t GetSize(void) const
Returns the the size in bytes of the packet (including the zero-filled initial payload).
void ForwardDown(Ptr< PacketBurst > burst, WimaxPhy::ModulationType modulationType)
Forward a packet down the stack.
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.
uint32_t GetId(void) const
void AddHeader(const Header &header)
Add header to this packet.
Ptr< SSLinkManager > m_linkManager
link manager
void SetNrDlBurstProfiles(uint8_t nrDlBurstProfiles)
Set number DL burst profile field.
bool IsMulticast(void) const
static Time Now(void)
Return the current simulation virtual time.
Every class exported by the ns3 library is enclosed in the ns3 namespace.
Time GetMaxDcdInterval(void) const
void SendRangingRequest(uint8_t uiuc, uint16_t allocationSize)
Send ranging request.
Time m_maxUcdInterval
in seconds, maximum time between transmission of UCD messages
void SetState(uint8_t state)
Set the device state.
bool IsNull(void) const
Check for null implementation.
OfdmDlBurstProfile * m_dlBurstProfile
DL burst profile.
Ptr< BurstProfileManager > GetBurstProfileManager(void) const
Get the burst profile manager.
This class implements the OFDM UCD channel encodings as described by "IEEE Standard for Local and met...
uint32_t GetPktsRcvd(void) const
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
uint16_t GetCid(void) const
Get CID.
Time MicroSeconds(uint64_t value)
Construct a Time in the indicated unit.
uint8_t GetFecCodeType(void) const
Get FEC code type.
uint32_t GetBytesSent(void) const
Mac Management messages Section 6.3.2.3 MAC Management messages page 42, Table 14 page 43.
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 ...
Cid GetCid(void) const
Get CID.
uint8_t GetUiuc(void) const
Get UIUC.
Time m_intervalT3
in milliseconds, ranging Response reception timeout following the transmission of a ranging request
uint16_t m_nrDlMapElements
number DL Map elements
Hold objects of type Ptr<T>.
void SetMaxContentionRangingRetries(uint8_t maxContentionRangingRetries)
@ SS_STATE_WAITING_RNG_RSP
bool m_areManagementConnectionsAllocated
are management connections allocated
Mac48Address m_baseStationId
base station ID
this class implements a structure to manage some parameters and statistics related to a service flow
@ MODULATION_TYPE_BPSK_12
void SetIntervalT1(Time interval1)
OfdmUcdChannelEncodings GetChannelEncodings(void) const
Get channel encodings.
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
EventId m_lostDlMapEvent
lost DL map event
~SubscriberStationNetDevice(void)
bool GetIsEnabled(void) const
Get is enabled flag.
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...
static EventId Schedule(Time const &delay, FUNC f, Ts &&... args)
Schedule an event to expire after delay.
@ SS_STATE_WAITING_REG_RANG_INTRVL
void SetUiuc(uint8_t uiuc)
Set UIUC.
void SetLostUlMapInterval(Time lostUlMapInterval)
Mac48Address GetBaseStationId(void) const
Get base station ID field.
void CreateDefaultConnections(void)
Creates the initial ranging and broadcast connections.
TypeId SetParent(TypeId tid)
Set the parent TypeId.
std::list< Ptr< const Packet > > FragmentsQueue
Definition of Fragments Queue data type.
Ptr< WimaxConnection > m_primaryConnection
primary connection
Ptr< WimaxConnection > GetInitialRangingConnection(void) const
Get the initial ranging connection.
EventId m_dcdWaitTimeoutEvent
DCD wait timeout event.
Ptr< const TraceSourceAccessor > MakeTraceSourceAccessor(T a)
Create a TraceSourceAccessor which will control access to the underlying trace source.
std::list< OfdmDlMapIe > GetDlMapElements(void) const
Get DL Map elements field.
Time m_maxDcdInterval
in seconds, maximum time between transmission of DCD messages
uint8_t GetDiuc(void) const
@ SS_STATE_ADJUSTING_PARAMETERS
Ptr< SsServiceFlowManager > GetServiceFlowManager(void) const
void SetAsciiTxQueueDropCallback(AsciiTraceCallback cb)
Set the Drop callback for ASCII tracing.
ServiceFlowRecord * GetRecord(void) const
Get service flow record.
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
#define NS_FATAL_ERROR(msg)
Report a fatal error with a message and terminate.
void UpdatePktsRcvd(uint32_t pktsRcvd)
update the number of received packets by adding pktsRcvd
virtual uint32_t GetIfIndex(void) const
Get interface index.
Hold together all WiMAX-related objects in a NetDevice.
Time GetIntervalT7(void) const
bool IsRunning(void) const
This method is syntactic sugar for !IsExpired().
uint8_t GetConfigurationChangeCount(void) const
Get configuration change count field.
@ 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.
uint16_t GetStartTime(void) const
Get start time.
WimaxPhy::ModulationType m_modulationType
modulation type
Time m_intervalT1
in seconds, wait for DCD timeout
uint8_t GetConfigurationChangeCount(void) const
Get configuration change count.
std::vector< OfdmUlBurstProfile > GetUlBurstProfiles(void) const
Get UL burst profiles.
virtual Ptr< Node > GetNode(void) const
Get node pointer.
void SetIntervalT20(Time interval20)
This class implements the UL-MAP_IE message as described by "IEEE Standard for Local and metropolitan...
void SetPrimaryConnection(Ptr< WimaxConnection > primaryConnection)
uint8_t GetType(void) const
Get type field.
void UpdateBytesSent(uint32_t bytesSent)
update the number of sent bytes by adding bytesSent
static void Cancel(const EventId &id)
Set the cancel bit on this event: the event's associated function will not be invoked when it expires...
This class implements the OFDM DCD channel encodings as described by "IEEE Standard for Local and met...
This class implements the UL burst profile as described by "IEEE Standard for Local and metropolitan ...
#define NS_LOG_INFO(msg)
Use NS_LOG to output a message of level LOG_INFO.
Ucd GetCurrentUcd(void) const
Get the current UCD.
uint8_t GetState(void) const
Get the device state.
OfdmDcdChannelEncodings GetChannelEncodings(void) const
Get channel encodings field.
Time MilliSeconds(uint64_t value)
Construct a Time in the indicated unit.
uint32_t m_nrDlMapRecvd
number DL map received
uint32_t RemoveHeader(Header &header)
Deserialize and remove the header from the internal buffer.
uint32_t m_nrUcdRecvd
number UCD received
uint16_t GetDuration(void) const
Get duration.
Time GetLostDlMapInterval(void) const
This class implements the DSA-RSP message described by "IEEE Standard for Local and metropolitan ar...
void SetPhy(Ptr< WimaxPhy > phy)
Set the physical layer object.
void SetNrUlBurstProfiles(uint8_t nrUlBurstProfiles)
Set NR UL burst profiles.
uint16_t m_nrUlMapElements
number UL Map elements
bool IsPromisc(void)
Check if device is promiscious.
@ 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.
uint8_t GetFecCodeType(void) const
void DoDispose(void)
Destructor implementation.
bool HasServiceFlows(void) const
Time m_intervalT12
in seconds, wait for UCD descriptor
#define NS_ASSERT_MSG(condition, message)
At runtime, in debugging builds, if this condition is not true, the program prints the message to out...
This class implements DL-MAP as described by "IEEE Standard for Local and metropolitan area networks ...
Mac48Address GetMacAddress(void) const
Get the MAC address.
void SetAsciiTxQueueEnqueueCallback(AsciiTraceCallback cb)
Set the Enqueue callback for ASCII tracing.
SubscriberStationNetDevice subclass of WimaxNetDevice.
Dcd GetCurrentDcd(void) const
Get the current DCD.
SubscriberStationNetDevice(void)
Ptr< const AttributeAccessor > MakePointerAccessor(T1 a1)
Create an AttributeAccessor for a class data member, or a lone class get functor or set method.
#define NS_LOG_ERROR(msg)
Use NS_LOG to output a message of level LOG_ERROR.
Ptr< WimaxConnection > GetBroadcastConnection(void) const
Get the broadcast connection.
Time GetIntervalT12(void) const
Ptr< SSScheduler > m_scheduler
the scheduler
void SendBandwidthRequest(uint8_t uiuc, uint16_t allocationSize)
Send bandwidth request.
bool m_areServiceFlowsAllocated
are service flows allocated
void SetCurrentUcd(Ucd ucd)
Set the current UCD.
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 Connect(std::string path, const CallbackBase &cb)
void AddAtEnd(Ptr< const Packet > packet)
Concatenate the input packet at the end of the current packet.
Ptr< WimaxConnection > GetConnection(void) const
Can return a null connection is this service flow has not been associated yet to a connection.
#define NS_LOG_DEBUG(msg)
Use NS_LOG to output a message of level LOG_DEBUG.
uint8_t GetFrameDurationCode(void) const
Get frame duration code field.
void AddServiceFlow(ServiceFlow *sf)
adds a new service flow
virtual void SetNode(Ptr< Node > node)
Set node pointer.
uint8_t m_dcdCount
DCD count.
Ptr< BandwidthManager > GetBandwidthManager(void) const
Get the bandwidth manager on the device.
void ProcessUlMap(const UlMap &ulmap)
Process UL map.
bool IsRegistered(void) const
Time Seconds(double value)
Construct a Time in the indicated unit.
AsciiTraceCallback m_asciiTxQueueEnqueueCb
Bound callback to perform ASCII logging for Enqueue events.
Time GetMaxUcdInterval(void) const
uint8_t GetDcdCount(void) const
Get DCD count field.
void SetIntervalT12(Time interval12)
virtual void DoDispose(void)
Destructor implementation.
void SetReceiveCallback(void)
Set receive callback function.
uint32_t pktSize
packet size used for the simulation (in bytes)
void ProcessDcd(const Dcd &dcd)
Process DCD.
Cid GetPrimaryCid(void) const
bool GetAreServiceFlowsAllocated(void) const
AttributeValue implementation for Time.
uint8_t GetMaxContentionRangingRetries(void) const
void NotifyPromiscTrace(Ptr< Packet > p)
Notify promiscious trace of a packet arrival.
double m_allocationStartTime
allocation start time
uint16_t GetEirxPIrMax(void) const
Get EIRX IR MAX field.
uint32_t GetBytesRcvd(void) const
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 SetFecCodeType(uint8_t fecCodeType)
Set FEC code type.
void DoReceive(Ptr< Packet > packet)
Receive a packet.
static Time m_frameStartTime
temp, to determine the frame start time at SS side, shall actually be determined by frame start pream...
void SetIntervalT7(Time interval7)
void UpdatePktsSent(uint32_t pktsSent)
update the number of sent packets by adding pktsSent
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.
Hold an unsigned integer type.
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...
uint8_t GetUiuc(void) const
Get UIUC.
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
Ptr< const AttributeAccessor > MakeUintegerAccessor(T1 a1)
Create an AttributeAccessor for a class data member, or a lone class get functor or set method.
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,...
void StartScanning(SubscriberStationNetDevice::EventType type, bool deleteParameters)
Start scanning.
uint8_t m_ucdCount
UCD count.
void SetScheduler(Ptr< SSScheduler > ssScheduler)
uint32_t GetSfid(void) const
Get SFID.
OfdmUlBurstProfile * m_ulBurstProfile
UL burst profile.
void SetFecCodeType(uint8_t fecCodeType)
Set FEC code type.
This class implements the ranging response message described by "IEEE Standard for Local and metropol...
static EventId ScheduleNow(FUNC f, Ts &&... args)
Schedule an event to expire Now.
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.
uint16_t GetBsEirp(void) const
Get BS EIRP field.
double GetSeconds(void) const
Get an approximation of the time stored in this instance in the indicated unit.
This class implements Downlink channel descriptor as described by "IEEE Standard for Local and metrop...
uint32_t GetAllocationStartTime(void) const
Get allocation start time.
void SetDiuc(uint8_t diuc)
Set DIUC field.
Ptr< WimaxPhy > GetPhy(void) const
Get the physical layer object.
Ptr< const AttributeAccessor > MakeTimeAccessor(T1 a1)
Create an AttributeAccessor for a class data member, or a lone class get functor or set method.
void SetIpcsPacketClassifier(Ptr< IpcsClassifier > classifier)
Sets the packet classifier to be used.
@ EVENT_RANG_OPP_WAIT_TIMEOUT
Ptr< WimaxConnection > m_basicConnection
basic connection
void SetCurrentDcd(Dcd dcd)
Set the current DCD.
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
uint8_t GetUcdCount(void) const
Get UCD count.
void Nullify(void)
Discard the implementation, set it to null.
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