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;
void SendBandwidthRequest(uint8_t uiuc, uint16_t allocationSize)
Send bandwidth request.
bool IsNull(void) const
Check for null implementation.
void Nullify(void)
Discard the implementation, set it to null.
bool IsMulticast(void) const
uint16_t GetBsEirp(void) const
Get BS EIRP field.
uint16_t GetEirxPIrMax(void) const
Get EIRX IR MAX field.
This class implements Downlink channel descriptor as described by "IEEE Standard for Local and metrop...
void SetNrDlBurstProfiles(uint8_t nrDlBurstProfiles)
Set number DL burst profile field.
OfdmDcdChannelEncodings GetChannelEncodings(void) const
Get channel encodings field.
uint8_t GetConfigurationChangeCount(void) const
Get configuration change count field.
std::vector< OfdmDlBurstProfile > GetDlBurstProfiles(void) const
Get DL burst profile field.
This class implements DL-MAP as described by "IEEE Standard for Local and metropolitan area networks ...
Mac48Address GetBaseStationId(void) const
Get base station ID field.
std::list< OfdmDlMapIe > GetDlMapElements(void) const
Get DL Map elements field.
uint8_t GetDcdCount(void) const
Get DCD count field.
This class implements the DSA-RSP message described by "IEEE Standard for Local and metropolitan ar...
An identifier for simulation events.
bool IsRunning(void) const
This method is syntactic sugar for !IsExpired().
Mac Management messages Section 6.3.2.3 MAC Management messages page 42, Table 14 page 43.
uint8_t GetType(void) const
Get type field.
uint32_t GetId(void) const
This class implements the OFDM DCD channel encodings as described by "IEEE Standard for Local and met...
uint8_t GetFrameDurationCode(void) const
Get frame duration code field.
This class implements the OFDM Downlink burst profile descriptor as described by "IEEE Standard for L...
uint8_t GetFecCodeType(void) const
void SetFecCodeType(uint8_t fecCodeType)
Set FEC code type.
uint8_t GetDiuc(void) const
void SetDiuc(uint8_t diuc)
Set DIUC field.
This class implements the OFDM UCD 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 ...
void SetUiuc(uint8_t uiuc)
Set UIUC.
uint8_t GetFecCodeType(void) const
Get FEC code type.
void SetFecCodeType(uint8_t fecCodeType)
Set FEC code type.
uint8_t GetUiuc(void) const
Get UIUC.
This class implements the UL-MAP_IE message as described by "IEEE Standard for Local and metropolitan...
uint16_t GetDuration(void) const
Get duration.
uint8_t GetUiuc(void) const
Get UIUC.
uint16_t GetStartTime(void) const
Get start time.
Cid GetCid(void) const
Get CID.
uint32_t RemoveHeader(Header &header)
Deserialize and remove the header from the internal buffer.
void AddAtEnd(Ptr< const Packet > packet)
Concatenate the input packet at the end of the current packet.
void AddHeader(const Header &header)
Add header to this packet.
uint32_t GetSize(void) const
Returns the the size in bytes of the packet (including the zero-filled initial payload).
Hold objects of type Ptr<T>.
This class implements the ranging response message described by "IEEE Standard for Local and metropol...
void SendRangingRequest(uint8_t uiuc, uint16_t allocationSize)
Send ranging request.
void StartScanning(SubscriberStationNetDevice::EventType type, bool deleteParameters)
Start scanning.
This class implements service flows as described by the IEEE-802.16 standard.
ServiceFlowRecord * GetRecord(void) const
Get service flow record.
Ptr< WimaxConnection > GetConnection(void) const
Can return a null connection is this service flow has not been associated yet to a connection.
uint16_t GetCid(void) const
Get CID.
bool GetIsEnabled(void) const
Get is enabled flag.
uint32_t GetSfid(void) const
Get SFID.
this class implements a structure to manage some parameters and statistics related to a service flow
void UpdateBytesRcvd(uint32_t bytesRcvd)
update the number of received bytes by adding bytesRcvd
void UpdatePktsSent(uint32_t pktsSent)
update the number of sent packets by adding pktsSent
uint32_t GetBytesRcvd(void) const
void UpdateBytesSent(uint32_t bytesSent)
update the number of sent bytes by adding bytesSent
uint32_t GetPktsSent(void) const
uint32_t GetPktsRcvd(void) const
uint32_t GetBytesSent(void) const
void UpdatePktsRcvd(uint32_t pktsRcvd)
update the number of received packets by adding pktsRcvd
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...
static EventId Schedule(Time const &delay, FUNC f, Ts &&... args)
Schedule an event to expire after delay.
static EventId ScheduleNow(FUNC f, Ts &&... args)
Schedule an event to expire Now.
static Time Now(void)
Return the current simulation virtual time.
SubscriberStationNetDevice subclass of WimaxNetDevice.
Time GetMaxUcdInterval(void) const
void Start(void)
Start the device.
bool Enqueue(Ptr< Packet > packet, const MacHeaderType &hdrType, Ptr< WimaxConnection > connection)
Enqueue a packet into a connection queue.
uint8_t m_ucdCount
UCD count.
Time m_intervalT2
in seconds, wait for broadcast ranging timeout, i.e., wait for initial ranging opportunity
SubscriberStationNetDevice(void)
Time m_lostDlMapInterval
in milliseconds, time since last received DL-MAP before downlink synchronization is considered lost,...
Time m_lostUlMapInterval
in milliseconds, time since last received UL-MAP before uplink synchronization is considered lost,...
Ptr< SSLinkManager > m_linkManager
link manager
Ptr< WimaxConnection > m_primaryConnection
primary connection
bool GetAreServiceFlowsAllocated(void) const
void SetAsciiTxQueueDropCallback(AsciiTraceCallback cb)
Set the Drop callback for ASCII tracing.
TracedCallback< Ptr< const Packet > > m_ssPromiscRxTrace
The trace source fired for packets successfully received by the device immediately before being forwa...
double m_allocationStartTime
allocation start time
void DoReceive(Ptr< Packet > packet)
Receive a packet.
EventId m_dcdWaitTimeoutEvent
DCD wait timeout event.
bool DoSend(Ptr< Packet > packet, const Mac48Address &source, const Mac48Address &dest, uint16_t protocolNumber)
Send a packet.
void SetIntervalT21(Time interval21)
OfdmUlBurstProfile * m_ulBurstProfile
UL burst profile.
void SetIntervalT20(Time interval20)
Ptr< SSScheduler > m_scheduler
the scheduler
bool GetAreManagementConnectionsAllocated(void) const
void SetIpcsPacketClassifier(Ptr< IpcsClassifier > classifier)
Sets the packet classifier to be used.
void SetIntervalT1(Time interval1)
Time m_intervalT21
in seconds, time the SS searches for (decodable) DL-MAP on a given channel
Time GetIntervalT3(void) const
void InitSubscriberStationNetDevice(void)
initializes the net device and sets the parameters to the default values
void SetMaxDcdInterval(Time maxDcdInterval)
void SetAreManagementConnectionsAllocated(bool areManagementConnectionsAllocated)
Ptr< IpcsClassifier > m_classifier
the classifier
uint32_t m_nrUlMapRecvd
number UL map received
Time GetIntervalT7(void) const
AsciiTraceCallback m_asciiTxQueueDropCb
Bound callback to perform ASCII logging for Drop events.
WimaxPhy::ModulationType m_modulationType
modulation type
uint32_t m_nrDcdRecvd
number DCD received
void SetAsciiTxQueueDequeueCallback(AsciiTraceCallback cb)
Set the Dequeue callback for ASCII tracing.
void SetScheduler(Ptr< SSScheduler > ssScheduler)
AsciiTraceCallback m_asciiTxQueueEnqueueCb
Bound callback to perform ASCII logging for Enqueue events.
void SetBasicConnection(Ptr< WimaxConnection > basicConnection)
AsciiTraceCallback m_asciiTxQueueDequeueCb
Bound callback to perform ASCII logging for Dequeue events.
bool m_areManagementConnectionsAllocated
are management connections allocated
Ptr< SSLinkManager > GetLinkManager(void) const
Time m_intervalT20
in seconds, time the SS searches for preambles on a given channel
Ptr< IpcsClassifier > GetIpcsClassifier() const
void SetLostUlMapInterval(Time lostUlMapInterval)
Time m_intervalT1
in seconds, wait for DCD timeout
uint8_t GetMaxContentionRangingRetries(void) const
void SetPrimaryConnection(Ptr< WimaxConnection > primaryConnection)
Ptr< SsServiceFlowManager > GetServiceFlowManager(void) const
Time GetLostUlMapInterval(void) const
Time GetIntervalT12(void) const
void ProcessUcd(const Ucd &ucd)
Process UCD.
uint8_t m_dcdCount
DCD count.
void SetTimer(EventId eventId, EventId &event)
Set timer.
bool HasServiceFlows(void) const
void Stop(void)
Stop the device.
Ptr< SSScheduler > GetScheduler(void) const
uint8_t m_maxContentionRangingRetries
maximum contention ranging retries
EventId m_ucdWaitTimeoutEvent
UCD wait timeout event.
Time GetIntervalT1(void) const
Time GetIntervalT21(void) const
TracedCallback< Ptr< const Packet > > m_ssRxTrace
The trace source fired for packets successfully received by the device immediately before being forwa...
EventId m_rangOppWaitTimeoutEvent
range opp wait timeout event
Ptr< WimaxConnection > GetBasicConnection(void) const
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 GetMaxDcdInterval(void) const
Mac48Address m_baseStationId
base station ID
void SetMaxContentionRangingRetries(uint8_t maxContentionRangingRetries)
bool IsRegistered(void) const
Cid GetBasicCid(void) const
void ProcessDlMap(const DlMap &dlmap)
Process DL map.
void ProcessDcd(const Dcd &dcd)
Process DCD.
void SetIntervalT2(Time interval2)
TracedCallback< Ptr< const Packet >, Mac48Address, const Cid & > m_traceSSRx
trace SS receive callback
Time m_maxUcdInterval
in seconds, maximum time between transmission of UCD messages
Time GetTimeToAllocation(Time deferTime)
Get time to allocation.
static Time GetDefaultLostDlMapInterval()
Get default lost DL map interval.
void SetIntervalT12(Time interval12)
void SetIntervalT3(Time interval3)
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 ...
bool m_areServiceFlowsAllocated
are service flows allocated
void SetAsciiTxQueueEnqueueCallback(AsciiTraceCallback cb)
Set the Enqueue callback for ASCII tracing.
WimaxPhy::ModulationType GetModulationType(void) const
Time GetIntervalT20(void) const
EventId m_lostDlMapEvent
lost DL map event
void SetLostDlMapInterval(Time lostDlMapInterval)
Ptr< SsServiceFlowManager > m_serviceFlowManager
the service flow manager
void DoDispose(void)
Destructor implementation.
Time GetIntervalT2(void) const
static TypeId GetTypeId(void)
Get the type ID.
Time m_intervalT12
in seconds, wait for UCD descriptor
void SetLinkManager(Ptr< SSLinkManager > linkManager)
sets the link manager to be used
void SetIntervalT7(Time interval7)
Time m_maxDcdInterval
in seconds, maximum time between transmission of DCD messages
Time m_intervalT3
in milliseconds, ranging Response reception timeout following the transmission of a ranging request
@ EVENT_RANG_OPP_WAIT_TIMEOUT
void SetServiceFlowManager(Ptr< SsServiceFlowManager > sfm)
Sets the service flow manager to be installed on the device.
uint32_t m_nrDlMapRecvd
number DL map received
void SetAreServiceFlowsAllocated(bool areServiceFlowsAllocated)
void ProcessUlMap(const UlMap &ulmap)
Process UL map.
Ptr< WimaxConnection > m_basicConnection
basic connection
OfdmDlBurstProfile * m_dlBurstProfile
DL burst profile.
uint16_t m_nrDlMapElements
number DL Map elements
TracedCallback< Ptr< const Packet > > m_ssTxTrace
The trace source fired when packets come into the "top" of the device at the L3/L2 transition,...
uint32_t m_nrUcdRecvd
number UCD received
Time GetLostDlMapInterval(void) const
Cid GetPrimaryCid(void) const
void SetModulationType(WimaxPhy::ModulationType modulationType)
Set the most efficient modulation and coding scheme (MCS) supported by the device.
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 AddServiceFlow(ServiceFlow *sf)
adds a new service flow
@ SS_STATE_WAITING_REG_RANG_INTRVL
@ SS_STATE_ADJUSTING_PARAMETERS
@ SS_STATE_WAITING_INV_RANG_INTRVL
@ SS_STATE_WAITING_RNG_RSP
@ SS_STATE_ACQUIRING_PARAMETERS
uint16_t m_nrUlMapElements
number UL Map elements
Time m_intervalT7
in seconds, wait for DSA/DSC/DSD Response timeout
~SubscriberStationNetDevice(void)
void SetMaxUcdInterval(Time maxUcdInterval)
EventId m_lostUlMapEvent
lost UL map event
Ptr< WimaxConnection > GetPrimaryConnection(void) const
Simulation virtual time values and global simulation resolution.
double GetSeconds(void) const
Get an approximation of the time stored in this instance in the indicated unit.
AttributeValue implementation for Time.
a unique identifier for an interface.
TypeId SetParent(TypeId tid)
Set the parent TypeId.
This class implements the UCD message as described by "IEEE Standard for Local and metropolitan area ...
void SetNrUlBurstProfiles(uint8_t nrUlBurstProfiles)
Set NR UL burst profiles.
OfdmUcdChannelEncodings GetChannelEncodings(void) const
Get channel encodings.
uint8_t GetRangingBackoffStart(void) const
Get ranging backoff start.
uint8_t GetConfigurationChangeCount(void) const
Get configuration change count.
std::vector< OfdmUlBurstProfile > GetUlBurstProfiles(void) const
Get UL burst profiles.
Hold an unsigned integer type.
This class implements the UL-MAP_IE message as described by "IEEE Standard for Local and metropolitan...
uint32_t GetAllocationStartTime(void) const
Get allocation start time.
uint8_t GetUcdCount(void) const
Get UCD count.
std::list< OfdmUlMapIe > GetUlMapElements(void) const
Get UL map elements.
std::list< Ptr< const Packet > > FragmentsQueue
Definition of Fragments Queue data type.
Hold together all WiMAX-related objects in a NetDevice.
Mac48Address GetMacAddress(void) const
Get the MAC address.
Dcd GetCurrentDcd(void) const
Get the current DCD.
void CreateDefaultConnections(void)
Creates the initial ranging and broadcast connections.
void SetPhy(Ptr< WimaxPhy > phy)
Set the physical layer object.
Ptr< WimaxConnection > GetBroadcastConnection(void) const
Get the broadcast connection.
Ptr< BandwidthManager > GetBandwidthManager(void) const
Get the bandwidth manager on the device.
void SetCurrentUcd(Ucd ucd)
Set the current UCD.
Ptr< ConnectionManager > GetConnectionManager(void) const
Get the connection manager of the device.
void SetReceiveCallback(void)
Set receive callback function.
virtual void DoDispose(void)
Destructor implementation.
static Time m_frameStartTime
temp, to determine the frame start time at SS side, shall actually be determined by frame start pream...
Ucd GetCurrentUcd(void) const
Get the current UCD.
Ptr< WimaxPhy > GetPhy(void) const
Get the physical layer object.
void SetState(uint8_t state)
Set the device state.
bool IsPromisc(void)
Check if device is promiscious.
uint8_t GetState(void) const
Get the device state.
Ptr< WimaxConnection > GetInitialRangingConnection(void) const
Get the initial ranging connection.
virtual uint32_t GetIfIndex(void) const
Get interface index.
virtual Ptr< Node > GetNode(void) const
Get node pointer.
void SetCurrentDcd(Dcd dcd)
Set the current DCD.
Ptr< BurstProfileManager > GetBurstProfileManager(void) const
Get the burst profile manager.
virtual void SetNode(Ptr< Node > node)
Set node pointer.
void NotifyPromiscTrace(Ptr< Packet > p)
Notify promiscious trace of a packet arrival.
void ForwardUp(Ptr< Packet > packet, const Mac48Address &source, const Mac48Address &dest)
Forward a packet to the next layer above the device.
void ForwardDown(Ptr< PacketBurst > burst, WimaxPhy::ModulationType modulationType)
Forward a packet down the stack.
ModulationType
ModulationType enumeration.
@ MODULATION_TYPE_BPSK_12
#define NS_ASSERT_MSG(condition, message)
At runtime, in debugging builds, if this condition is not true, the program prints the message to out...
Ptr< const AttributeAccessor > MakePointerAccessor(T1 a1)
Create an AttributeAccessor for a class data member, or a lone class get functor or set method.
Ptr< const AttributeAccessor > MakeTimeAccessor(T1 a1)
Create an AttributeAccessor for a class data member, or a lone class get functor or set method.
Ptr< const AttributeAccessor > MakeUintegerAccessor(T1 a1)
Create an AttributeAccessor for a class data member, or a lone class get functor or set method.
void Connect(std::string path, const CallbackBase &cb)
#define NS_FATAL_ERROR(msg)
Report a fatal error with a message and terminate.
#define NS_LOG_ERROR(msg)
Use NS_LOG to output a message of level LOG_ERROR.
#define NS_LOG_COMPONENT_DEFINE(name)
Define a Log component with a specific name.
#define NS_LOG_DEBUG(msg)
Use NS_LOG to output a message of level LOG_DEBUG.
#define NS_LOG_INFO(msg)
Use NS_LOG to output a message of level LOG_INFO.
#define NS_OBJECT_ENSURE_REGISTERED(type)
Register an Object subclass with the TypeId system.
Time MicroSeconds(uint64_t value)
Construct a Time in the indicated unit.
Time Seconds(double value)
Construct a Time in the indicated unit.
Time MilliSeconds(uint64_t value)
Construct a Time in the indicated unit.
Ptr< const TraceSourceAccessor > MakeTraceSourceAccessor(T a)
Create a TraceSourceAccessor which will control access to the underlying trace source.
Every class exported by the ns3 library is enclosed in the ns3 namespace.
Ptr< const AttributeChecker > MakeTimeChecker(const Time min, const Time max)
Helper to make a Time checker with bounded range.
uint32_t pktSize
packet size used for the simulation (in bytes)