A Discrete-Event Network Simulator
API
wifi-mac.cc
Go to the documentation of this file.
1 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
2 /*
3  * Copyright (c) 2008 INRIA
4  *
5  * This program is free software; you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License version 2 as
7  * published by the Free Software Foundation;
8  *
9  * This program is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12  * GNU General Public License for more details.
13  *
14  * You should have received a copy of the GNU General Public License
15  * along with this program; if not, write to the Free Software
16  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17  *
18  * Author: Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
19  */
20 
21 #include "ns3/log.h"
22 #include "ns3/packet.h"
23 #include "wifi-mac.h"
24 #include "txop.h"
25 #include "ssid.h"
26 #include "wifi-net-device.h"
27 #include "ht-configuration.h"
28 #include "vht-configuration.h"
29 #include "he-configuration.h"
30 
31 namespace ns3 {
32 
33 NS_LOG_COMPONENT_DEFINE ("WifiMac");
34 
36 
37 Time
39 {
40  //1000m
41  return Seconds (1000.0 / 300000000.0);
42 }
43 
44 Time
46 {
47  //802.11-a specific
48  return MicroSeconds (9);
49 }
50 
51 Time
53 {
54  //802.11-a specific
55  return MicroSeconds (16);
56 }
57 
58 Time
60 {
61  //802.11n specific
62  return MicroSeconds (2);
63 }
64 
65 Time
67 {
69 }
70 
71 Time
73 {
74  //802.11-a specific: at 6 Mbit/s
75  return MicroSeconds (44);
76 }
77 
78 Time
80 {
81  /* Cts_Timeout and Ack_Timeout are specified in the Annex C
82  (Formal description of MAC operation, see details on the
83  Trsp timer setting at page 346)
84  */
85  Time ctsTimeout = GetDefaultSifs ();
86  ctsTimeout += GetDefaultCtsAckDelay ();
87  ctsTimeout += MicroSeconds (GetDefaultMaxPropagationDelay ().GetMicroSeconds () * 2);
88  ctsTimeout += GetDefaultSlot ();
89  return ctsTimeout;
90 }
91 
92 Time
94 {
95  //This value must be revisited
96  return MicroSeconds (250);
97 }
98 
99 Time
101 {
102  //This value must be revisited
103  //CompressedBlockAckSize 32 * 8 * time it takes to transfer at the lowest rate (at 6 Mbit/s) + aPhy-StartDelay (33)
104  return MicroSeconds (76);
105 }
106 
107 Time
109 {
110  Time blockAckTimeout = GetDefaultSifs ();
111  blockAckTimeout += GetDefaultBasicBlockAckDelay ();
112  blockAckTimeout += MicroSeconds (GetDefaultMaxPropagationDelay ().GetMicroSeconds () * 2);
113  blockAckTimeout += GetDefaultSlot ();
114  return blockAckTimeout;
115 }
116 
117 Time
119 {
120  Time blockAckTimeout = GetDefaultSifs ();
121  blockAckTimeout += GetDefaultCompressedBlockAckDelay ();
122  blockAckTimeout += MicroSeconds (GetDefaultMaxPropagationDelay ().GetMicroSeconds () * 2);
123  blockAckTimeout += GetDefaultSlot ();
124  return blockAckTimeout;
125 }
126 
127 TypeId
129 {
130  static TypeId tid = TypeId ("ns3::WifiMac")
131  .SetParent<Object> ()
132  .SetGroupName ("Wifi")
133  .AddAttribute ("CtsTimeout", "When this timeout expires, the RTS/CTS handshake has failed.",
137  MakeTimeChecker ())
138  .AddAttribute ("AckTimeout", "When this timeout expires, the DATA/ACK handshake has failed.",
142  MakeTimeChecker ())
143  .AddAttribute ("BasicBlockAckTimeout", "When this timeout expires, the BASIC_BLOCK_ACK_REQ/BASIC_BLOCK_ACK handshake has failed.",
147  MakeTimeChecker ())
148  .AddAttribute ("CompressedBlockAckTimeout", "When this timeout expires, the COMPRESSED_BLOCK_ACK_REQ/COMPRESSED_BLOCK_ACK handshake has failed.",
152  MakeTimeChecker ())
153  .AddAttribute ("Sifs", "The value of the SIFS constant.",
157  MakeTimeChecker ())
158  .AddAttribute ("EifsNoDifs", "The value of EIFS-DIFS.",
162  MakeTimeChecker ())
163  .AddAttribute ("Slot", "The duration of a Slot.",
167  MakeTimeChecker ())
168  .AddAttribute ("Pifs", "The value of the PIFS constant.",
172  MakeTimeChecker ())
173  .AddAttribute ("Rifs", "The value of the RIFS constant.",
177  MakeTimeChecker ())
178  .AddAttribute ("MaxPropagationDelay", "The maximum propagation delay. Unused for now.",
181  MakeTimeChecker ())
182  .AddAttribute ("Ssid", "The ssid we want to belong to.",
183  SsidValue (Ssid ("default")),
186  MakeSsidChecker ())
187  .AddTraceSource ("MacTx",
188  "A packet has been received from higher layers and is being processed in preparation for "
189  "queueing for transmission.",
191  "ns3::Packet::TracedCallback")
192  .AddTraceSource ("MacTxDrop",
193  "A packet has been dropped in the MAC layer before transmission.",
195  "ns3::Packet::TracedCallback")
196  .AddTraceSource ("MacPromiscRx",
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 promiscuous trace.",
200  "ns3::Packet::TracedCallback")
201  .AddTraceSource ("MacRx",
202  "A packet has been received by this device, has been passed up from the physical layer "
203  "and is being forwarded up the local protocol stack. This is a non-promiscuous trace.",
205  "ns3::Packet::TracedCallback")
206  .AddTraceSource ("MacRxDrop",
207  "A packet has been dropped in the MAC layer after it has been passed up from the physical layer.",
209  "ns3::Packet::TracedCallback")
210  ;
211  return tid;
212 }
213 
214 void
216 {
217  m_device = 0;
218 }
219 
220 void
222 {
223  m_device = device;
224 }
225 
227 WifiMac::GetDevice (void) const
228 {
229  return m_device;
230 }
231 
232 void
234 {
235  NS_LOG_FUNCTION (this << delay);
236  m_maxPropagationDelay = delay;
237 }
238 
239 void
241 {
242  m_macTxTrace (packet);
243 }
244 
245 void
247 {
248  m_macTxDropTrace (packet);
249 }
250 
251 void
253 {
254  m_macRxTrace (packet);
255 }
256 
257 void
259 {
260  m_macPromiscRxTrace (packet);
261 }
262 
263 void
265 {
266  m_macRxDropTrace (packet);
267 }
268 
269 void
271 {
272  NS_LOG_FUNCTION (this << standard);
273  switch (standard)
274  {
276  Configure80211a ();
277  break;
279  Configure80211b ();
280  break;
282  Configure80211g ();
283  break;
286  break;
289  break;
291  Configure80211a ();
292  break;
295  break;
298  break;
300  Configure80211ac ();
301  break;
304  break;
307  break;
309  default:
310  NS_FATAL_ERROR ("Wifi standard not found");
311  break;
312  }
313  FinishConfigureStandard (standard);
314 }
315 
316 void
318 {
319  NS_LOG_FUNCTION (this);
320  SetSifs (MicroSeconds (16));
321  SetSlot (MicroSeconds (9));
322  SetEifsNoDifs (MicroSeconds (16 + 44));
323  SetPifs (MicroSeconds (16 + 9));
324  SetCtsTimeout (MicroSeconds (16 + 44 + 9 + GetDefaultMaxPropagationDelay ().GetMicroSeconds () * 2));
325  SetAckTimeout (MicroSeconds (16 + 44 + 9 + GetDefaultMaxPropagationDelay ().GetMicroSeconds () * 2));
326 }
327 
328 void
330 {
331  NS_LOG_FUNCTION (this);
332  SetSifs (MicroSeconds (10));
333  SetSlot (MicroSeconds (20));
334  SetEifsNoDifs (MicroSeconds (10 + 304));
335  SetPifs (MicroSeconds (10 + 20));
336  SetCtsTimeout (MicroSeconds (10 + 304 + 20 + GetDefaultMaxPropagationDelay ().GetMicroSeconds () * 2));
337  SetAckTimeout (MicroSeconds (10 + 304 + 20 + GetDefaultMaxPropagationDelay ().GetMicroSeconds () * 2));
338 }
339 
340 void
342 {
343  NS_LOG_FUNCTION (this);
344  SetSifs (MicroSeconds (10));
345  // Slot time defaults to the "long slot time" of 20 us in the standard
346  // according to mixed 802.11b/g deployments. Short slot time is enabled
347  // if the user sets the ShortSlotTimeSupported flag to true and when the BSS
348  // consists of only ERP STAs capable of supporting this option.
349  SetSlot (MicroSeconds (20));
350  SetEifsNoDifs (MicroSeconds (10 + 304));
351  SetPifs (MicroSeconds (10 + 20));
352  SetCtsTimeout (MicroSeconds (10 + 304 + 20 + GetDefaultMaxPropagationDelay ().GetMicroSeconds () * 2));
353  SetAckTimeout (MicroSeconds (10 + 304 + 20 + GetDefaultMaxPropagationDelay ().GetMicroSeconds () * 2));
354 }
355 
356 void
358 {
359  NS_LOG_FUNCTION (this);
360  SetSifs (MicroSeconds (32));
361  SetSlot (MicroSeconds (13));
362  SetEifsNoDifs (MicroSeconds (32 + 88));
363  SetPifs (MicroSeconds (32 + 13));
364  SetCtsTimeout (MicroSeconds (32 + 88 + 13 + GetDefaultMaxPropagationDelay ().GetMicroSeconds () * 2));
365  SetAckTimeout (MicroSeconds (32 + 88 + 13 + GetDefaultMaxPropagationDelay ().GetMicroSeconds () * 2));
366 }
367 
368 void
370 {
371  NS_LOG_FUNCTION (this);
372  SetSifs (MicroSeconds (64));
373  SetSlot (MicroSeconds (21));
374  SetEifsNoDifs (MicroSeconds (64 + 176));
375  SetPifs (MicroSeconds (64 + 21));
376  SetCtsTimeout (MicroSeconds (64 + 176 + 21 + GetDefaultMaxPropagationDelay ().GetMicroSeconds () * 2));
377  SetAckTimeout (MicroSeconds (64 + 176 + 21 + GetDefaultMaxPropagationDelay ().GetMicroSeconds () * 2));
378 }
379 
380 void
382 {
383  NS_LOG_FUNCTION (this);
384  Configure80211g ();
385  SetRifs (MicroSeconds (2));
388 }
389 void
391 {
392  NS_LOG_FUNCTION (this);
393  Configure80211a ();
394  SetRifs (MicroSeconds (2));
397 }
398 
399 void
401 {
402  NS_LOG_FUNCTION (this);
404 }
405 
406 void
408 {
409  NS_LOG_FUNCTION (this);
411 }
412 
413 void
415 {
416  NS_LOG_FUNCTION (this);
417  Configure80211ac ();
419 }
420 
421 void
422 WifiMac::ConfigureDcf (Ptr<Txop> dcf, uint32_t cwmin, uint32_t cwmax, bool isDsss, AcIndex ac)
423 {
424  NS_LOG_FUNCTION (this << dcf << cwmin << cwmax << isDsss << ac);
425  /* see IEEE 802.11 section 7.3.2.29 */
426  switch (ac)
427  {
428  case AC_VO:
429  dcf->SetMinCw ((cwmin + 1) / 4 - 1);
430  dcf->SetMaxCw ((cwmin + 1) / 2 - 1);
431  dcf->SetAifsn (2);
432  if (isDsss)
433  {
434  dcf->SetTxopLimit (MicroSeconds (3264));
435  }
436  else
437  {
438  dcf->SetTxopLimit (MicroSeconds (1504));
439  }
440  break;
441  case AC_VI:
442  dcf->SetMinCw ((cwmin + 1) / 2 - 1);
443  dcf->SetMaxCw (cwmin);
444  dcf->SetAifsn (2);
445  if (isDsss)
446  {
447  dcf->SetTxopLimit (MicroSeconds (6016));
448  }
449  else
450  {
451  dcf->SetTxopLimit (MicroSeconds (3008));
452  }
453  break;
454  case AC_BE:
455  dcf->SetMinCw (cwmin);
456  dcf->SetMaxCw (cwmax);
457  dcf->SetAifsn (3);
458  dcf->SetTxopLimit (MicroSeconds (0));
459  break;
460  case AC_BK:
461  dcf->SetMinCw (cwmin);
462  dcf->SetMaxCw (cwmax);
463  dcf->SetAifsn (7);
464  dcf->SetTxopLimit (MicroSeconds (0));
465  break;
466  case AC_BE_NQOS:
467  dcf->SetMinCw (cwmin);
468  dcf->SetMaxCw (cwmax);
469  dcf->SetAifsn (2);
470  dcf->SetTxopLimit (MicroSeconds (0));
471  break;
472  case AC_UNDEF:
473  NS_FATAL_ERROR ("I don't know what to do with this");
474  break;
475  }
476 }
477 
480 {
481  Ptr<WifiNetDevice> device = DynamicCast<WifiNetDevice> (GetDevice ());
482  return device->GetHtConfiguration ();
483 }
484 
487 {
488  Ptr<WifiNetDevice> device = DynamicCast<WifiNetDevice> (GetDevice ());
489  return device->GetVhtConfiguration ();
490 }
491 
494 {
495  Ptr<WifiNetDevice> device = DynamicCast<WifiNetDevice> (GetDevice ());
496  return device->GetHeConfiguration ();
497 }
498 
499 } //namespace ns3
500 
ERP-OFDM PHY (Clause 19, Section 19.5)
virtual Time GetPifs(void) const =0
Ptr< HeConfiguration > GetHeConfiguration(void) const
Definition: wifi-mac.cc:493
Simulation virtual time values and global simulation resolution.
Definition: nstime.h:102
Smart pointer class similar to boost::intrusive_ptr.
Definition: ptr.h:73
#define NS_LOG_FUNCTION(parameters)
If log level LOG_FUNCTION is enabled, this macro will output all input parameters separated by "...
OFDM PHY for the 5 GHz band (Clause 17 with 5 MHz channel bandwidth)
virtual Time GetRifs(void) const =0
virtual void SetCompressedBlockAckTimeout(Time blockAckTimeout)=0
Ptr< HeConfiguration > GetHeConfiguration(void) const
void Configure80211b(void)
This method sets 802.11b standards-compliant defaults for following attributes: Sifs, Slot, EifsNoDifs, Pifs, CtsTimeout, and AckTimeout.
Definition: wifi-mac.cc:329
HT PHY for the 5 GHz band (clause 20)
virtual void SetPifs(Time pifs)=0
#define NS_OBJECT_ENSURE_REGISTERED(type)
Register an Object subclass with the TypeId system.
Definition: object-base.h:45
virtual void FinishConfigureStandard(WifiPhyStandard standard)=0
virtual void SetAckTimeout(Time ackTimeout)=0
static Time GetDefaultMaxPropagationDelay(void)
Definition: wifi-mac.cc:38
TracedCallback< Ptr< const Packet > > m_macRxDropTrace
The trace source fired when packets coming into the "top" of the device are dropped at the MAC layer ...
Definition: wifi-mac.h:521
#define NS_LOG_COMPONENT_DEFINE(name)
Define a Log component with a specific name.
Definition: log.h:205
HE PHY for the 2.4 GHz band (clause 26)
virtual Time GetAckTimeout(void) const =0
static Time GetDefaultCtsAckDelay(void)
Definition: wifi-mac.cc:72
void Configure80211ac(void)
This method sets 802.11ac standards-compliant defaults for following attributes: Sifs, Slot, EifsNoDifs, Pifs, CtsTimeout, and AckTimeout.
Definition: wifi-mac.cc:400
TracedCallback< Ptr< const Packet > > m_macTxDropTrace
The trace source fired when packets coming into the "top" of the device are dropped at the MAC layer ...
Definition: wifi-mac.h:498
OFDM PHY for the 5 GHz band (Clause 17 with 10 MHz channel bandwidth)
void ConfigureStandard(WifiPhyStandard standard)
Definition: wifi-mac.cc:270
void NotifyRxDrop(Ptr< const Packet > packet)
Definition: wifi-mac.cc:264
#define NS_FATAL_ERROR(msg)
Report a fatal error with a message and terminate.
Definition: fatal-error.h:162
void(* Time)(Time oldValue, Time newValue)
TracedValue callback signature for Time.
Definition: nstime.h:745
virtual Time GetBasicBlockAckTimeout(void) const =0
TracedCallback< Ptr< const Packet > > m_macPromiscRxTrace
The trace source fired for packets successfully received by the device immediately before being forwa...
Definition: wifi-mac.h:506
HT PHY for the 2.4 GHz band (clause 20)
static Time GetDefaultSifs(void)
Definition: wifi-mac.cc:52
Video.
Definition: qos-utils.h:45
Voice.
Definition: qos-utils.h:47
Best Effort.
Definition: qos-utils.h:41
void ConfigureDcf(Ptr< Txop > dcf, uint32_t cwmin, uint32_t cwmax, bool isDsss, AcIndex ac)
Definition: wifi-mac.cc:422
virtual void SetSsid(Ssid ssid)=0
Ptr< NetDevice > GetDevice(void) const
Return the device this PHY is associated with.
Definition: wifi-mac.cc:227
Ptr< const TraceSourceAccessor > MakeTraceSourceAccessor(T a)
Create a TraceSourceAccessor which will control access to the underlying trace source.
void Configure80211ax_5Ghz(void)
This method sets 802.11ax 5 GHz standards-compliant defaults for following attributes: Sifs...
Definition: wifi-mac.cc:414
Ptr< const AttributeChecker > MakeTimeChecker(const Time min, const Time max)
Helper to make a Time checker with bounded range.
Definition: time.cc:449
virtual Ssid GetSsid(void) const =0
Background.
Definition: qos-utils.h:43
WifiPhyStandard
Identifies the PHY specification that a Wifi device is configured to use.
Ptr< HtConfiguration > GetHtConfiguration(void) const
Definition: wifi-mac.cc:479
HE PHY for the 5 GHz band (clause 26)
void SetDevice(const Ptr< NetDevice > device)
Sets the device this PHY is associated with.
Definition: wifi-mac.cc:221
AttributeValue implementation for Time.
Definition: nstime.h:1126
TracedCallback< Ptr< const Packet > > m_macTxTrace
The trace source fired when packets come into the "top" of the device at the L3/L2 transition...
Definition: wifi-mac.h:491
void NotifyTxDrop(Ptr< const Packet > packet)
Definition: wifi-mac.cc:246
virtual Time GetSlot(void) const =0
void NotifyPromiscRx(Ptr< const Packet > packet)
Definition: wifi-mac.cc:258
virtual void DoDispose()
Destructor implementation.
Definition: wifi-mac.cc:215
void Configure80211n_5Ghz(void)
This method sets 802.11n 5 GHz standards-compliant defaults for following attributes: Sifs...
Definition: wifi-mac.cc:390
void Configure80211_10Mhz(void)
This method sets 802.11 with 10Mhz channel spacing standards-compliant defaults for following attribu...
Definition: wifi-mac.cc:357
virtual void SetBasicBlockAckTimeout(Time blockAckTimeout)=0
void NotifyTx(Ptr< const Packet > packet)
Definition: wifi-mac.cc:240
virtual void SetRifs(Time rifs)=0
This is intended to be the configuration used in this paper: Gavin Holland, Nitin Vaidya and Paramvir...
void Configure80211n_2_4Ghz(void)
This method sets 802.11n 2.4 GHz standards-compliant defaults for following attributes: Sifs...
Definition: wifi-mac.cc:381
OFDM PHY for the 5 GHz band (Clause 17)
Every class exported by the ns3 library is enclosed in the ns3 namespace.
DSSS PHY (Clause 15) and HR/DSSS PHY (Clause 18)
static Time GetDefaultSlot(void)
Definition: wifi-mac.cc:45
Ptr< const AttributeAccessor > MakeSsidAccessor(T1 a1)
Create an AttributeAccessor for a class data member, or a lone class get functor or set method...
Definition: ssid.h:110
virtual void SetEifsNoDifs(Time eifsNoDifs)=0
void Configure80211g(void)
This method sets 802.11g standards-compliant defaults for following attributes: Sifs, Slot, EifsNoDifs, Pifs, CtsTimeout, and AckTimeout.
Definition: wifi-mac.cc:341
Ptr< const AttributeAccessor > MakeTimeAccessor(T1 a1)
Create an AttributeAccessor for a class data member, or a lone class get functor or set method...
Definition: nstime.h:1127
virtual void SetCtsTimeout(Time ctsTimeout)=0
The IEEE 802.11 SSID Information Element.
Definition: ssid.h:35
virtual Time GetCompressedBlockAckTimeout(void) const =0
void NotifyRx(Ptr< const Packet > packet)
Definition: wifi-mac.cc:252
static Time GetDefaultBasicBlockAckDelay(void)
Return the default basic block ACK delay.
Definition: wifi-mac.cc:93
static Time GetDefaultCompressedBlockAckDelay(void)
Return the default compressed block ACK delay.
Definition: wifi-mac.cc:100
TracedCallback< Ptr< const Packet > > m_macRxTrace
The trace source fired for packets successfully received by the device immediately before being forwa...
Definition: wifi-mac.h:514
void SetMinCw(uint32_t minCw)
Set the minimum contention window size.
Definition: txop.cc:185
void SetMaxPropagationDelay(Time delay)
Definition: wifi-mac.cc:233
void SetMaxCw(uint32_t maxCw)
Set the maximum contention window size.
Definition: txop.cc:198
Ptr< VhtConfiguration > GetVhtConfiguration(void) const
Definition: wifi-mac.cc:486
void Configure80211a(void)
This method sets 802.11a standards-compliant defaults for following attributes: Sifs, Slot, EifsNoDifs, Pifs, CtsTimeout, and AckTimeout.
Definition: wifi-mac.cc:317
Ptr< const AttributeChecker > MakeSsidChecker(void)
Definition: ssid.cc:118
void SetTxopLimit(Time txopLimit)
Set the TXOP limit.
Definition: txop.cc:276
void Configure80211_5Mhz()
This method sets 802.11 with 5Mhz channel spacing standards-compliant defaults for following attribut...
Definition: wifi-mac.cc:369
virtual void SetSifs(Time sifs)=0
Time Seconds(double value)
Construct a Time in the indicated unit.
Definition: nstime.h:1064
AttributeValue implementation for Ssid.
Definition: ssid.h:110
Total number of ACs.
Definition: qos-utils.h:49
virtual Time GetSifs(void) const =0
Time MicroSeconds(uint64_t value)
Construct a Time in the indicated unit.
Definition: nstime.h:1080
static Time GetDefaultCompressedBlockAckTimeout(void)
Return the default compressed block ACK timeout.
Definition: wifi-mac.cc:118
static Time GetDefaultCtsAckTimeout(void)
Definition: wifi-mac.cc:79
void SetAifsn(uint8_t aifsn)
Set the number of slots that make up an AIFS.
Definition: txop.cc:269
Ptr< NetDevice > m_device
Pointer to the device.
Definition: wifi-mac.h:429
Time m_maxPropagationDelay
maximum propagation delay
Definition: wifi-mac.h:428
A base class which provides memory management and object aggregation.
Definition: object.h:87
static Time GetDefaultEifsNoDifs(void)
Definition: wifi-mac.cc:66
static Time GetDefaultRifs(void)
Definition: wifi-mac.cc:59
static Time GetDefaultBasicBlockAckTimeout(void)
Return the default basic block ACK timeout.
Definition: wifi-mac.cc:108
Ptr< VhtConfiguration > GetVhtConfiguration(void) const
virtual Time GetCtsTimeout(void) const =0
void Configure80211ax_2_4Ghz(void)
This method sets 802.11ax 2.4 GHz standards-compliant defaults for following attributes: Sifs...
Definition: wifi-mac.cc:407
Ptr< HtConfiguration > GetHtConfiguration(void) const
a unique identifier for an interface.
Definition: type-id.h:58
static TypeId GetTypeId(void)
Get the type ID.
Definition: wifi-mac.cc:128
TypeId SetParent(TypeId tid)
Set the parent TypeId.
Definition: type-id.cc:922
AcIndex
This enumeration defines the Access Categories as an enumeration with values corresponding to the AC ...
Definition: qos-utils.h:38
virtual Time GetEifsNoDifs(void) const =0
virtual void SetSlot(Time slotTime)=0