A Discrete-Event Network Simulator
API
Loading...
Searching...
No Matches
ss-net-device.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2007,2008,2009 INRIA, UDcast
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License version 2 as
6 * published by the Free Software Foundation;
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program; if not, write to the Free Software
15 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
16 *
17 * Authors: Jahanzeb Farooq <jahanzeb.farooq@sophia.inria.fr>
18 * Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
19 * <amine.ismail@UDcast.com>
20 */
21
22#ifndef WIMAX_SS_NET_DEVICE_H
23#define WIMAX_SS_NET_DEVICE_H
24
25#include "ipcs-classifier.h"
27#include "wimax-mac-header.h"
28#include "wimax-net-device.h"
29
30#include "ns3/event-id.h"
31#include "ns3/nstime.h"
32#include "ns3/uinteger.h"
33
34namespace ns3
35{
36
37class Node;
38class OfdmDlBurstProfile;
39class OfdmUlBurstProfile;
40class SSScheduler;
41class SSLinkManager;
42class SsServiceFlowManager;
43class IpcsClassifier;
44
45/**
46 * \ingroup wimax
47 * SubscriberStationNetDevice subclass of WimaxNetDevice
48 */
50{
51 public:
52 /// State enumeration
53 enum State
54 {
59 SS_STATE_WAITING_REG_RANG_INTRVL, // regular ranging interval
60 SS_STATE_WAITING_INV_RANG_INTRVL, // invited ranging interval
64 SS_STATE_TRANSMITTING, // currently not being used anywhere
66 };
67
68 /// EventType enumeration
70 {
79 };
80
81 /**
82 * \brief Get the type ID.
83 * \return the object TypeId
84 */
85 static TypeId GetTypeId();
87 /**
88 * Constructor
89 *
90 * \param node the node
91 * \param phy the wimax phy
92 */
95
96 /**
97 * \brief initializes the net device and sets the parameters to the default values
98 */
100 /**
101 * \param lostDlMapInterval time since last received DL-MAP message before downlink
102 * synchronization is considered lost
103 */
104 void SetLostDlMapInterval(Time lostDlMapInterval);
105 /**
106 * \returns the time since last received DL-MAP message before downlink synchronization is
107 * considered lost
108 */
110 /**
111 * \param lostUlMapInterval Time since last received UL-MAP before uplink synchronization is
112 * considered lost
113 */
114 void SetLostUlMapInterval(Time lostUlMapInterval);
115 /**
116 * \returns the time since last received UL-MAP before uplink synchronization is considered lost
117 */
119 /**
120 * \param maxDcdInterval Maximum time between transmission of DCD messages
121 */
122 void SetMaxDcdInterval(Time maxDcdInterval);
123 /**
124 * \returns the maximum time between transmission of DCD messages
125 */
126 Time GetMaxDcdInterval() const;
127 /**
128 * \param maxUcdInterval Maximum time between transmission of UCD messages
129 */
130 void SetMaxUcdInterval(Time maxUcdInterval);
131 /**
132 * \returns the maximum time between transmission of UCD messages
133 */
134 Time GetMaxUcdInterval() const;
135 /**
136 * \param interval1 Wait for DCD timeout value
137 */
138 void SetIntervalT1(Time interval1);
139 /**
140 * \returns the wait for DCD timeout
141 */
142 Time GetIntervalT1() const;
143 /**
144 * \param interval2 the wait for broadcast ranging timeout, i.e., wait for initial ranging
145 * opportunity
146 */
147 void SetIntervalT2(Time interval2);
148 /**
149 * \returns the wait for broadcast ranging timeout, i.e., wait for initial ranging opportunity
150 */
151 Time GetIntervalT2() const;
152 /**
153 * \param interval3 the ranging Response reception timeout following the transmission of a
154 * ranging request
155 */
156 void SetIntervalT3(Time interval3);
157 /**
158 * \returns the ranging Response reception timeout following the transmission of a ranging
159 * request
160 */
161 Time GetIntervalT3() const;
162 /**
163 * \param interval7 the wait for DSA/DSC/DSD Response timeout
164 */
165 void SetIntervalT7(Time interval7);
166 /**
167 * \returns the wait for DSA/DSC/DSD Response timeout
168 */
169 Time GetIntervalT7() const;
170 /**
171 * \param interval12 the Wait for UCD descriptor timeout
172 */
173 void SetIntervalT12(Time interval12);
174 /**
175 * \returns the wait for UCD descriptor timeout
176 */
177 Time GetIntervalT12() const;
178 /**
179 * \param interval20 the Time the SS searches for preambles on a given channel
180 */
181 void SetIntervalT20(Time interval20);
182 /**
183 * \returns the Time the SS searches for preambles on a given channel
184 */
185 Time GetIntervalT20() const;
186 /**
187 * \param interval21 the time the SS searches for (decodable) DL-MAP on a given channel
188 */
189 void SetIntervalT21(Time interval21);
190 /**
191 * \returns the time the SS searches for (decodable) DL-MAP on a given channel
192 */
193 Time GetIntervalT21() const;
194 /**
195 * \param maxContentionRangingRetries the Number of retries on contention Ranging Requests
196 */
197 void SetMaxContentionRangingRetries(uint8_t maxContentionRangingRetries);
198 /**
199 * \returns the Number of retries on contention Ranging Requests
200 */
201 uint8_t GetMaxContentionRangingRetries() const;
202 /**
203 * \param basicConnection the basic connection to be used
204 */
205 void SetBasicConnection(Ptr<WimaxConnection> basicConnection);
206 /**
207 * \return the basic connection currently in use
208 */
210 /**
211 * \param primaryConnection the primary connection to be used
212 */
213 void SetPrimaryConnection(Ptr<WimaxConnection> primaryConnection);
214 /**
215 * \returns the primary connection currently used
216 */
218 /**
219 * \returns the basic CID
220 */
221 Cid GetBasicCid() const;
222 /**
223 * \returns the primary CID
224 */
225 Cid GetPrimaryCid() const;
226
227 /**
228 * \brief Set the most efficient modulation and coding scheme (MCS) supported by the device
229 * \param modulationType the most robust MCS supported
230 */
231 void SetModulationType(WimaxPhy::ModulationType modulationType);
232 /**
233 * \returns the most efficient modulation and coding scheme (MCS) supported by the device
234 */
236 /**
237 * \param areManagementConnectionsAllocated true if the management connections are allocated,
238 * false otherwise
239 */
240 void SetAreManagementConnectionsAllocated(bool areManagementConnectionsAllocated);
241 /**
242 * \returns true if the management connections are allocated, false otherwise
243 */
245 /**
246 * \param areServiceFlowsAllocated true if the service flows are allocated, false otherwise
247 */
248 void SetAreServiceFlowsAllocated(bool areServiceFlowsAllocated);
249 /**
250 * \returns true if the service flows are allocated, false otherwise
251 */
252 bool GetAreServiceFlowsAllocated() const;
253 /**
254 * \return the scheduler installed on the device
255 */
257 /**
258 * \param ssScheduler the scheduler to be installed on the device
259 */
260 void SetScheduler(Ptr<SSScheduler> ssScheduler);
261 /**
262 * \returns true if the device has at least one active service flow, false otherwise
263 */
264 bool HasServiceFlows() const;
265 /**
266 * \brief Enqueue a packet into a connection queue
267 * \param packet the packet to be enqueued
268 * \param hdrType the mac header type to be appended to the packet
269 * \param connection the connection to be used
270 * \returns true if successful
271 */
272 bool Enqueue(Ptr<Packet> packet,
273 const MacHeaderType& hdrType,
274 Ptr<WimaxConnection> connection) override;
275 /**
276 * \brief Sends a burst on the uplink frame
277 * \param uiuc theOfdmUlBurstProfile
278 * \param nrSymbols number of symbols
279 * \param connection connection to use
280 * \param packetType optional HeaderType (default HEADER_TYPE_GENERIC)
281 */
282 void SendBurst(uint8_t uiuc,
283 uint16_t nrSymbols,
284 Ptr<WimaxConnection> connection,
286
287 /**
288 * \brief Start the device
289 */
290 void Start() override;
291 /**
292 * \brief Stop the device
293 */
294 void Stop() override;
295
296 /**
297 * \brief adds a new service flow
298 * \param sf pointer to service flow to add
299 */
300 void AddServiceFlow(ServiceFlow* sf) const;
301 /**
302 * \brief adds a new service flow
303 * \param sf service flow to add
304 */
305 void AddServiceFlow(ServiceFlow sf) const;
306 /**
307 * \brief Set timer. If in stopped state, the EventId passed in the first
308 * argument will be cancelled. If not, the second parameter will be set
309 * to the value of the first parameter.
310 *
311 * \param eventId EventId to cancel or to map to the second argument
312 * \param event EventId is set to first argument if not in stopped state
313 */
314 void SetTimer(EventId eventId, EventId& event);
315 /**
316 * \returns true if the SS is registered to a BS, false otherwise
317 */
318 bool IsRegistered() const;
319 /**
320 * \brief Get time to allocation
321 * \param deferTime defer time
322 * \returns the time to allocation
323 */
324 Time GetTimeToAllocation(Time deferTime);
325
327 /**
328 * \returns a pointer to the CS packet classifier
329 */
331 /**
332 * \brief Sets the packet classifier to be used
333 * \param classifier the classifier to use
334 */
336 /**
337 * \returns a pointer to the link manager currently used
338 */
340 /**
341 * \brief sets the link manager to be used
342 * \param linkManager link manager to use
343 */
344 void SetLinkManager(Ptr<SSLinkManager> linkManager);
345 /**
346 * \returns a pointer to the service flow manager installed on the device
347 */
349 /**
350 * \brief Sets the service flow manager to be installed on the device
351 * \param sfm service flow manager to be used
352 */
354
355 /// Callback for logging packets on ASCII traces
357
358 /**
359 * Set the Enqueue callback for ASCII tracing
360 * \param cb callback for ASCII tracing
361 */
363
364 /**
365 * Set the Dequeue callback for ASCII tracing
366 * \param cb callback for ASCII tracing
367 */
369
370 /**
371 * Set the Drop callback for ASCII tracing
372 * \param cb callback for ASCII tracing
373 */
375
376 private:
377 /**
378 * Get default lost DL map interval
379 * \returns the default lost DL map interval
380 */
382
383 void DoDispose() override;
384 /**
385 * Send a packet
386 * \param packet the packet to send
387 * \param source the source MAC address
388 * \param dest the destination MAC address
389 * \param protocolNumber the protocol number
390 * \returns true if successful
391 */
392 bool DoSend(Ptr<Packet> packet,
393 const Mac48Address& source,
394 const Mac48Address& dest,
395 uint16_t protocolNumber) override;
396 /**
397 * Receive a packet
398 * \param packet the packet received
399 */
400 void DoReceive(Ptr<Packet> packet) override;
401
402 /**
403 * Process DL map
404 * \param dlmap the DL map
405 */
406 void ProcessDlMap(const DlMap& dlmap);
407 /**
408 * Process UL map
409 * \param ulmap the UL map
410 */
411 void ProcessUlMap(const UlMap& ulmap);
412 /**
413 * Process DCD
414 * \param dcd the DCD
415 */
416 void ProcessDcd(const Dcd& dcd);
417 /**
418 * Process UCD
419 * \param ucd the UCD
420 */
421 void ProcessUcd(const Ucd& ucd);
422
423 // parameters defined in Table 342
424 Time m_lostDlMapInterval; ///< in milliseconds, time since last received DL-MAP before downlink
425 ///< synchronization is considered lost, maximum is 600
426 Time m_lostUlMapInterval; ///< in milliseconds, time since last received UL-MAP before uplink
427 ///< synchronization is considered lost, maximum is 600
428 Time m_maxDcdInterval; ///< in seconds, maximum time between transmission of DCD messages
429 Time m_maxUcdInterval; ///< in seconds, maximum time between transmission of UCD messages
430 Time m_intervalT1; ///< in seconds, wait for DCD timeout
431 Time m_intervalT2; ///< in seconds, wait for broadcast ranging timeout, i.e., wait for initial
432 ///< ranging opportunity
433 Time m_intervalT3; ///< in milliseconds, ranging Response reception timeout following the
434 ///< transmission of a ranging request
435 Time m_intervalT7; ///< in seconds, wait for DSA/DSC/DSD Response timeout
436 Time m_intervalT12; ///< in seconds, wait for UCD descriptor
437 Time m_intervalT20; ///< in seconds, time the SS searches for preambles on a given channel
438 Time m_intervalT21; ///< in seconds, time the SS searches for (decodable) DL-MAP on a given
439 ///< channel
440 uint8_t m_maxContentionRangingRetries; ///< maximum contention ranging retries
441
442 // parameters obtained from DL-MAP
443 uint8_t m_dcdCount; ///< DCD count
444 Mac48Address m_baseStationId; ///< base station ID
445
446 // parameters obtained from UL-MAP
447 uint8_t m_ucdCount; ///< UCD count
448 double m_allocationStartTime; ///< allocation start time
449
450 // to keep the number of DL-MAP/UL-MAP IEs found in the last DL-MAP/U-MAP messages
451 uint16_t m_nrDlMapElements; ///< number DL Map elements
452 uint16_t m_nrUlMapElements; ///< number UL Map elements
453
456
457 EventId m_lostDlMapEvent; ///< lost DL map event
458 EventId m_lostUlMapEvent; ///< lost UL map event
459 EventId m_dcdWaitTimeoutEvent; ///< DCD wait timeout event
460 EventId m_ucdWaitTimeoutEvent; ///< UCD wait timeout event
461 EventId m_rangOppWaitTimeoutEvent; ///< range opp wait timeout event
462
463 uint32_t m_nrDlMapRecvd; ///< number DL map received
464 uint32_t m_nrUlMapRecvd; ///< number UL map received
465 uint32_t m_nrDcdRecvd; ///< number DCD received
466 uint32_t m_nrUcdRecvd; ///< number UCD received
467
468 OfdmDlBurstProfile* m_dlBurstProfile; ///< DL burst profile
469 OfdmUlBurstProfile* m_ulBurstProfile; ///< UL burst profile
470
471 /*represents the (least robust) modulation type of the SS which it then requests in RNG-REQ and
472 if accepted by BS uses it for receiving and transmitting. currently it is set by user in
473 simulation script, shall actually be determined based on SS's distance, power, signal etc*/
475
476 bool m_areManagementConnectionsAllocated; ///< are management connections allocated
477 bool m_areServiceFlowsAllocated; ///< are service flows allocated
478
479 Ptr<SSScheduler> m_scheduler; ///< the scheduler
480 Ptr<SsServiceFlowManager> m_serviceFlowManager; ///< the service flow manager
482
484 m_traceSSRx; ///< trace SS receive callback
485
486 /**
487 * The trace source fired when packets come into the "top" of the device
488 * at the L3/L2 transition, before being queued for transmission.
489 *
490 * \see class CallBackTraceSource
491 */
493
494 /**
495 * The trace source fired when packets coming into the "top" of the device
496 * are dropped at the MAC layer during transmission.
497 *
498 * \see class CallBackTraceSource
499 */
501
502 /**
503 * The trace source fired for packets successfully received by the device
504 * immediately before being forwarded up to higher layers (at the L2/L3
505 * transition). This is a promiscuous trace.
506 *
507 * \see class CallBackTraceSource
508 */
510
511 /**
512 * The trace source fired for packets successfully received by the device
513 * immediately before being forwarded up to higher layers (at the L2/L3
514 * transition). This is a non- promiscuous trace.
515 *
516 * \see class CallBackTraceSource
517 */
519
520 /**
521 * The trace source fired when packets coming into the "top" of the device
522 * are dropped at the MAC layer during reception.
523 *
524 * \see class CallBackTraceSource
525 */
527
528 /// Bound callback to perform ASCII logging for Enqueue events
530 /// Bound callback to perform ASCII logging for Dequeue events
532 /// Bound callback to perform ASCII logging for Drop events
534};
535
536} // namespace ns3
537
538#endif /* WIMAX_SS_NET_DEVICE_H */
Callback template class.
Definition: callback.h:438
Cid class.
Definition: cid.h:37
This class implements Downlink channel descriptor as described by "IEEE Standard for Local and metrop...
This class implements DL-MAP as described by "IEEE Standard for Local and metropolitan area networks ...
An identifier for simulation events.
Definition: event-id.h:55
an EUI-48 address
Definition: mac48-address.h:46
This class Represents the HT (Header Type) field of generic MAC and bandwidth request headers.
HeaderType
Header type enumeration.
This class implements the OFDM Downlink burst profile descriptor as described by "IEEE Standard for L...
This class implements the UL burst profile as described by "IEEE Standard for Local and metropolitan ...
Smart pointer class similar to boost::intrusive_ptr.
Definition: ptr.h:77
This class implements service flows as described by the IEEE-802.16 standard.
Definition: service-flow.h:43
SubscriberStationNetDevice subclass of WimaxNetDevice.
Definition: ss-net-device.h:50
void Start() override
Start the device.
Time m_intervalT2
in seconds, wait for broadcast ranging timeout, i.e., wait for initial ranging opportunity
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,...
void DoReceive(Ptr< Packet > packet) override
Receive a packet.
Ptr< SSLinkManager > m_linkManager
link manager
Ptr< WimaxConnection > m_primaryConnection
primary connection
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
EventId m_dcdWaitTimeoutEvent
DCD wait timeout event.
void SetIntervalT21(Time interval21)
OfdmUlBurstProfile * m_ulBurstProfile
UL burst profile.
void SetIntervalT20(Time interval20)
Ptr< SSScheduler > m_scheduler
the scheduler
void SetIpcsPacketClassifier(Ptr< IpcsClassifier > classifier)
Sets the packet classifier to be used.
void SetIntervalT1(Time interval1)
void AddServiceFlow(ServiceFlow *sf) const
adds a new service flow
Time m_intervalT21
in seconds, time the SS searches for (decodable) DL-MAP on a given channel
void SetMaxDcdInterval(Time maxDcdInterval)
void SetAreManagementConnectionsAllocated(bool areManagementConnectionsAllocated)
Ptr< IpcsClassifier > m_classifier
the classifier
Callback< void, std::string, Ptr< const Packet > > AsciiTraceCallback
Callback for logging packets on ASCII traces.
uint32_t m_nrUlMapRecvd
number UL map received
AsciiTraceCallback m_asciiTxQueueDropCb
Bound callback to perform ASCII logging for Drop events.
WimaxPhy::ModulationType m_modulationType
modulation type
uint8_t GetMaxContentionRangingRetries() const
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.
bool DoSend(Ptr< Packet > packet, const Mac48Address &source, const Mac48Address &dest, uint16_t protocolNumber) override
Send a packet.
Ptr< SSScheduler > GetScheduler() const
void SetBasicConnection(Ptr< WimaxConnection > basicConnection)
AsciiTraceCallback m_asciiTxQueueDequeueCb
Bound callback to perform ASCII logging for Dequeue events.
bool m_areManagementConnectionsAllocated
are management connections allocated
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
void SetPrimaryConnection(Ptr< WimaxConnection > primaryConnection)
void ProcessUcd(const Ucd &ucd)
Process UCD.
void SetTimer(EventId eventId, EventId &event)
Set timer.
Ptr< WimaxConnection > GetBasicConnection() const
uint8_t m_maxContentionRangingRetries
maximum contention ranging retries
static TypeId GetTypeId()
Get the type ID.
EventId m_ucdWaitTimeoutEvent
UCD wait timeout event.
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
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 ...
Mac48Address m_baseStationId
base station ID
void SetMaxContentionRangingRetries(uint8_t maxContentionRangingRetries)
void ProcessDlMap(const DlMap &dlmap)
Process DL map.
void ProcessDcd(const Dcd &dcd)
Process DCD.
void SetIntervalT2(Time interval2)
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.
bool GetAreManagementConnectionsAllocated() const
bool Enqueue(Ptr< Packet > packet, const MacHeaderType &hdrType, Ptr< WimaxConnection > connection) override
Enqueue a packet into a connection queue.
EventId m_lostDlMapEvent
lost DL map event
void SetLostDlMapInterval(Time lostDlMapInterval)
Ptr< SsServiceFlowManager > m_serviceFlowManager
the service flow manager
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
TracedCallback< Ptr< const Packet >, Mac48Address, const Cid & > m_traceSSRx
trace SS receive callback
Time m_intervalT3
in milliseconds, ranging Response reception timeout following the transmission of a ranging request
Ptr< SSLinkManager > GetLinkManager() const
void Stop() override
Stop the device.
WimaxPhy::ModulationType GetModulationType() const
EventType
EventType enumeration.
Definition: ss-net-device.h:70
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
Ptr< SsServiceFlowManager > GetServiceFlowManager() const
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
void InitSubscriberStationNetDevice()
initializes the net device and sets the parameters to the default values
Ptr< WimaxConnection > GetPrimaryConnection() const
void SetModulationType(WimaxPhy::ModulationType modulationType)
Set the most efficient modulation and coding scheme (MCS) supported by the device.
void DoDispose() override
Destructor implementation.
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.
uint16_t m_nrUlMapElements
number UL Map elements
Time m_intervalT7
in seconds, wait for DSA/DSC/DSD Response timeout
void SetMaxUcdInterval(Time maxUcdInterval)
EventId m_lostUlMapEvent
lost UL map event
Simulation virtual time values and global simulation resolution.
Definition: nstime.h:105
Forward calls to a chain of Callback.
a unique identifier for an interface.
Definition: type-id.h:59
This class implements the UCD message as described by "IEEE Standard for Local and metropolitan area ...
This class implements the UL-MAP_IE message as described by "IEEE Standard for Local and metropolitan...
Hold together all WiMAX-related objects in a NetDevice.
ModulationType
ModulationType enumeration.
Definition: wimax-phy.h:54
Every class exported by the ns3 library is enclosed in the ns3 namespace.