A Discrete-Event Network Simulator
API
wifi-mac-header.h
Go to the documentation of this file.
1 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
2 /*
3  * Copyright (c) 2006, 2009 INRIA
4  * Copyright (c) 2009 MIRKO BANCHI
5  *
6  * This program is free software; you can redistribute it and/or modify
7  * it under the terms of the GNU General Public License version 2 as
8  * published by the Free Software Foundation;
9  *
10  * This program is distributed in the hope that it will be useful,
11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  * GNU General Public License for more details.
14  *
15  * You should have received a copy of the GNU General Public License
16  * along with this program; if not, write to the Free Software
17  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18  *
19  * Author: Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
20  * Author: Mirko Banchi <mk.banchi@gmail.com>
21  */
22 
23 #ifndef WIFI_MAC_HEADER_H
24 #define WIFI_MAC_HEADER_H
25 
26 #include "ns3/header.h"
27 #include "ns3/mac48-address.h"
28 
29 namespace ns3 {
30 
31 class Time;
32 
37 {
47 
61 
77 };
78 
84 class WifiMacHeader : public Header
85 {
86 public:
91  {
93  NO_ACK = 1,
95  BLOCK_ACK = 3,
96  };
97 
102  {
106  ADDR4
107  };
108 
109  WifiMacHeader ();
115  WifiMacHeader (WifiMacType type);
116  virtual ~WifiMacHeader ();
117 
122  static TypeId GetTypeId (void);
123 
124  TypeId GetInstanceTypeId (void) const override;
125  void Print (std::ostream &os) const override;
126  uint32_t GetSerializedSize (void) const override;
127  void Serialize (Buffer::Iterator start) const override;
128  uint32_t Deserialize (Buffer::Iterator start) override;
129 
133  void SetDsFrom (void);
137  void SetDsNotFrom (void);
141  void SetDsTo (void);
145  void SetDsNotTo (void);
178  void SetType (WifiMacType type, bool resetToDsFromDs = true);
184  void SetRawDuration (uint16_t duration);
191  void SetDuration (Time duration);
197  void SetId (uint16_t id);
203  void SetSequenceNumber (uint16_t seq);
209  void SetFragmentNumber (uint8_t frag);
213  void SetNoMoreFragments (void);
217  void SetMoreFragments (void);
221  void SetRetry (void);
225  void SetNoRetry (void);
231  void SetQosTid (uint8_t tid);
235  void SetQosEosp ();
239  void SetQosNoEosp ();
245  void SetQosAckPolicy (QosAckPolicy policy);
249  void SetQosAmsdu (void);
253  void SetQosNoAmsdu (void);
259  void SetQosTxopLimit (uint8_t txop);
265  void SetQosQueueSize (uint8_t size);
269  void SetQosMeshControlPresent ();
277  void SetOrder (void);
281  void SetNoOrder (void);
282 
288  Mac48Address GetAddr1 (void) const;
294  Mac48Address GetAddr2 (void) const;
300  Mac48Address GetAddr3 (void) const;
306  Mac48Address GetAddr4 (void) const;
312  WifiMacType GetType (void) const;
316  bool IsFromDs (void) const;
320  bool IsToDs (void) const;
328  bool IsData (void) const;
335  bool IsQosData (void) const;
342  bool HasData (void) const;
348  bool IsCtl (void) const;
354  bool IsMgt (void) const;
360  bool IsCfPoll (void) const;
366  bool IsCfAck (void) const;
372  bool IsCfEnd (void) const;
378  bool IsRts (void) const;
384  bool IsCts (void) const;
390  bool IsAck (void) const;
396  bool IsBlockAckReq (void) const;
402  bool IsBlockAck (void) const;
408  bool IsTrigger (void) const;
414  bool IsAssocReq (void) const;
420  bool IsAssocResp (void) const;
426  bool IsReassocReq (void) const;
432  bool IsReassocResp (void) const;
438  bool IsProbeReq (void) const;
444  bool IsProbeResp (void) const;
450  bool IsBeacon (void) const;
456  bool IsDisassociation (void) const;
462  bool IsAuthentication (void) const;
468  bool IsDeauthentication (void) const;
474  bool IsAction (void) const;
481  bool IsMultihopAction (void) const;
487  uint16_t GetRawDuration (void) const;
493  Time GetDuration (void) const;
499  uint16_t GetSequenceControl (void) const;
505  uint16_t GetSequenceNumber (void) const;
511  uint8_t GetFragmentNumber (void) const;
517  bool IsRetry (void) const;
523  bool IsMoreFragments (void) const;
529  bool IsQosBlockAck (void) const;
535  bool IsQosNoAck (void) const;
541  bool IsQosAck (void) const;
547  bool IsQosEosp (void) const;
554  bool IsQosAmsdu (void) const;
560  uint8_t GetQosTid (void) const;
566  QosAckPolicy GetQosAckPolicy (void) const;
572  uint8_t GetQosQueueSize (void) const;
579  uint32_t GetSize (void) const;
585  const char * GetTypeString (void) const;
586 
592  typedef void (* TracedCallback)(const WifiMacHeader &header);
593 
594 
595 private:
601  uint16_t GetFrameControl (void) const;
607  uint16_t GetQosControl (void) const;
613  void SetFrameControl (uint16_t control);
619  void SetSequenceControl (uint16_t seq);
625  void SetQosControl (uint16_t qos);
631  void PrintFrameControl (std::ostream &os) const;
632 
633  uint8_t m_ctrlType;
634  uint8_t m_ctrlSubtype;
635  uint8_t m_ctrlToDs;
636  uint8_t m_ctrlFromDs;
637  uint8_t m_ctrlMoreFrag;
638  uint8_t m_ctrlRetry;
639  uint8_t m_ctrlMoreData;
640  uint8_t m_ctrlWep;
641  uint8_t m_ctrlOrder;
642  uint16_t m_duration;
646  uint8_t m_seqFrag;
647  uint16_t m_seqSeq;
649  uint8_t m_qosTid;
650  uint8_t m_qosEosp;
651  uint8_t m_qosAckPolicy;
652  uint8_t m_amsduPresent;
653  uint8_t m_qosStuff;
654 };
655 
656 } //namespace ns3
657 
658 #endif /* WIFI_MAC_HEADER_H */
ns3::TypeId
a unique identifier for an interface.
Definition: type-id.h:59
ns3::WifiMacHeader::SetQosNoEosp
void SetQosNoEosp()
Un-set the end of service period (EOSP) bit in the QoS control field.
Definition: wifi-mac-header.cc:362
ns3::WIFI_MAC_QOSDATA_NULL
@ WIFI_MAC_QOSDATA_NULL
Definition: wifi-mac-header.h:74
ns3::WifiMacHeader::m_ctrlMoreData
uint8_t m_ctrlMoreData
control more data
Definition: wifi-mac-header.h:639
ns3::WifiMacHeader::IsRts
bool IsRts(void) const
Return true if the header is a RTS header.
Definition: wifi-mac-header.cc:651
ns3::WifiMacHeader::~WifiMacHeader
virtual ~WifiMacHeader()
Definition: wifi-mac-header.cc:79
ns3::WifiMacHeader::SetNoMoreFragments
void SetNoMoreFragments(void)
Un-set the More Fragment bit in the Frame Control Field.
Definition: wifi-mac-header.cc:322
ns3::WifiMacHeader::SetDuration
void SetDuration(Time duration)
Set the Duration/ID field with the given duration (Time object).
Definition: wifi-mac-header.cc:300
ns3::WifiMacHeader::SetMoreFragments
void SetMoreFragments(void)
Set the More Fragment bit in the Frame Control field.
Definition: wifi-mac-header.cc:327
ns3::WifiMacHeader::IsAck
bool IsAck(void) const
Return true if the header is an Ack header.
Definition: wifi-mac-header.cc:663
ns3::WifiMacHeader::IsToDs
bool IsToDs(void) const
Definition: wifi-mac-header.cc:552
ns3::WifiMacHeader::GetSize
uint32_t GetSize(void) const
Return the size of the WifiMacHeader in octets.
Definition: wifi-mac-header.cc:933
ns3::WifiMacHeader::IsMultihopAction
bool IsMultihopAction(void) const
Check if the header is a Multihop action header.
Definition: wifi-mac-header.cc:735
ns3::WifiMacHeader::m_ctrlType
uint8_t m_ctrlType
control type
Definition: wifi-mac-header.h:633
ns3::WifiMacHeader::IsQosEosp
bool IsQosEosp(void) const
Return if the end of service period (EOSP) is set.
Definition: wifi-mac-header.cc:822
ns3::WifiMacHeader::GetQosQueueSize
uint8_t GetQosQueueSize(void) const
Get the Queue Size subfield in the QoS control field.
Definition: wifi-mac-header.cc:869
ns3::WifiMacHeader::IsBeacon
bool IsBeacon(void) const
Return true if the header is a Beacon header.
Definition: wifi-mac-header.cc:705
ns3::WifiMacHeader::IsData
bool IsData(void) const
Return true if the Type is DATA.
Definition: wifi-mac-header.cc:558
ns3::WifiMacHeader::m_addr4
Mac48Address m_addr4
address 4
Definition: wifi-mac-header.h:648
ns3::WifiMacHeader::SetFragmentNumber
void SetFragmentNumber(uint8_t frag)
Set the fragment number of the header.
Definition: wifi-mac-header.cc:317
ns3::WifiMacHeader::IsRetry
bool IsRetry(void) const
Return if the Retry bit is set.
Definition: wifi-mac-header.cc:789
ns3
Every class exported by the ns3 library is enclosed in the ns3 namespace.
ns3::WifiMacHeader::GetSerializedSize
uint32_t GetSerializedSize(void) const override
Definition: wifi-mac-header.cc:1155
ns3::WifiMacHeader::SetRetry
void SetRetry(void)
Set the Retry bit in the Frame Control field.
Definition: wifi-mac-header.cc:342
ns3::WifiMacHeader::GetFrameControl
uint16_t GetFrameControl(void) const
Return the raw Frame Control field.
Definition: wifi-mac-header.cc:876
ns3::WifiMacHeader::SetDsTo
void SetDsTo(void)
Set the To DS bit in the Frame Control field.
Definition: wifi-mac-header.cc:96
ns3::WifiMacHeader::IsDisassociation
bool IsDisassociation(void) const
Return true if the header is a Disassociation header.
Definition: wifi-mac-header.cc:711
ns3::WifiMacHeader::SetSequenceNumber
void SetSequenceNumber(uint16_t seq)
Set the sequence number of the header.
Definition: wifi-mac-header.cc:312
ns3::WifiMacHeader::IsProbeResp
bool IsProbeResp(void) const
Return true if the header is a Probe Response header.
Definition: wifi-mac-header.cc:699
ns3::WIFI_MAC_DATA_CFACK_CFPOLL
@ WIFI_MAC_DATA_CFACK_CFPOLL
Definition: wifi-mac-header.h:65
ns3::WIFI_MAC_MGT_ASSOCIATION_REQUEST
@ WIFI_MAC_MGT_ASSOCIATION_REQUEST
Definition: wifi-mac-header.h:49
ns3::WifiMacHeader::SetSequenceControl
void SetSequenceControl(uint16_t seq)
Set the Sequence Control field with the given raw value.
Definition: wifi-mac-header.cc:917
ns3::WifiMacHeader::BLOCK_ACK
@ BLOCK_ACK
Definition: wifi-mac-header.h:95
ns3::WifiMacHeader::PrintFrameControl
void PrintFrameControl(std::ostream &os) const
Print the Frame Control field to the output stream.
Definition: wifi-mac-header.cc:1052
ns3::WifiMacHeader::IsTrigger
bool IsTrigger(void) const
Return true if the header is a Trigger header.
Definition: wifi-mac-header.cc:753
ns3::WIFI_MAC_MGT_REASSOCIATION_RESPONSE
@ WIFI_MAC_MGT_REASSOCIATION_RESPONSE
Definition: wifi-mac-header.h:53
ns3::WIFI_MAC_CTL_END
@ WIFI_MAC_CTL_END
Definition: wifi-mac-header.h:45
ns3::WifiMacHeader::SetFrameControl
void SetFrameControl(uint16_t control)
Set the Frame Control field with the given raw value.
Definition: wifi-mac-header.cc:904
ns3::WifiMacHeader::IsQosNoAck
bool IsQosNoAck(void) const
Return if the QoS Ack policy is No Ack.
Definition: wifi-mac-header.cc:808
ns3::WifiMacHeader::m_qosTid
uint8_t m_qosTid
QoS TID.
Definition: wifi-mac-header.h:649
ns3::WifiMacHeader::SetDsNotFrom
void SetDsNotFrom(void)
Un-set the From DS bit in the Frame Control field.
Definition: wifi-mac-header.cc:90
ns3::WifiMacHeader::NO_ACK
@ NO_ACK
Definition: wifi-mac-header.h:93
ns3::WifiMacHeader::WifiMacHeader
WifiMacHeader()
Definition: wifi-mac-header.cc:58
ns3::WifiMacHeader::m_seqSeq
uint16_t m_seqSeq
sequence sequence
Definition: wifi-mac-header.h:647
ns3::WIFI_MAC_MGT_REASSOCIATION_REQUEST
@ WIFI_MAC_MGT_REASSOCIATION_REQUEST
Definition: wifi-mac-header.h:52
ns3::WIFI_MAC_CTL_END_ACK
@ WIFI_MAC_CTL_END_ACK
Definition: wifi-mac-header.h:46
ns3::WIFI_MAC_MGT_ASSOCIATION_RESPONSE
@ WIFI_MAC_MGT_ASSOCIATION_RESPONSE
Definition: wifi-mac-header.h:50
ns3::WifiMacHeader::SetOrder
void SetOrder(void)
Set order bit in the frame control field.
Definition: wifi-mac-header.cc:332
ns3::WifiMacHeader::IsCfEnd
bool IsCfEnd(void) const
Return true if the header is a CF-End header.
Definition: wifi-mac-header.cc:602
ns3::WifiMacHeader::IsQosBlockAck
bool IsQosBlockAck(void) const
Return if the QoS Ack policy is Block Ack.
Definition: wifi-mac-header.cc:801
ns3::WifiMacHeader::IsCts
bool IsCts(void) const
Return true if the header is a CTS header.
Definition: wifi-mac-header.cc:657
ns3::Mac48Address
an EUI-48 address
Definition: mac48-address.h:44
ns3::WifiMacHeader::GetAddr3
Mac48Address GetAddr3(void) const
Return the address in the Address 3 field.
Definition: wifi-mac-header.cc:436
ns3::WifiMacHeader::SetQosAmsdu
void SetQosAmsdu(void)
Set that A-MSDU is present.
Definition: wifi-mac-header.cc:386
ns3::WifiMacHeader::SetNoRetry
void SetNoRetry(void)
Un-set the Retry bit in the Frame Control field.
Definition: wifi-mac-header.cc:347
ns3::WIFI_MAC_MGT_AUTHENTICATION
@ WIFI_MAC_MGT_AUTHENTICATION
Definition: wifi-mac-header.h:56
ns3::WifiMacHeader::m_addr3
Mac48Address m_addr3
address 3
Definition: wifi-mac-header.h:645
ns3::WifiMacHeader::m_qosAckPolicy
uint8_t m_qosAckPolicy
QoS Ack policy.
Definition: wifi-mac-header.h:651
ns3::WifiMacHeader::m_amsduPresent
uint8_t m_amsduPresent
A-MSDU present.
Definition: wifi-mac-header.h:652
ns3::WifiMacHeader::GetAddr1
Mac48Address GetAddr1(void) const
Return the address in the Address 1 field.
Definition: wifi-mac-header.cc:424
ns3::WifiMacHeader::SetQosQueueSize
void SetQosQueueSize(uint8_t size)
Set the Queue Size subfield in the QoS control field.
Definition: wifi-mac-header.cc:402
ns3::WIFI_MAC_CTL_CTS
@ WIFI_MAC_CTL_CTS
Definition: wifi-mac-header.h:41
ns3::WifiMacHeader::SetAddr3
void SetAddr3(Mac48Address address)
Fill the Address 3 field with the given address.
Definition: wifi-mac-header.cc:120
ns3::WifiMacHeader::m_ctrlMoreFrag
uint8_t m_ctrlMoreFrag
control more fragments
Definition: wifi-mac-header.h:637
ns3::WIFI_MAC_QOSDATA_NULL_CFACK_CFPOLL
@ WIFI_MAC_QOSDATA_NULL_CFACK_CFPOLL
Definition: wifi-mac-header.h:76
ns3::WifiMacHeader::GetSequenceControl
uint16_t GetSequenceControl(void) const
Return the raw Sequence Control field.
Definition: wifi-mac-header.cc:771
ns3::WIFI_MAC_MGT_MULTIHOP_ACTION
@ WIFI_MAC_MGT_MULTIHOP_ACTION
Definition: wifi-mac-header.h:60
ns3::WifiMacHeader::m_ctrlFromDs
uint8_t m_ctrlFromDs
control from DS
Definition: wifi-mac-header.h:636
ns3::WifiMacHeader::m_ctrlToDs
uint8_t m_ctrlToDs
control to DS
Definition: wifi-mac-header.h:635
ns3::WifiMacHeader::SetAddr1
void SetAddr1(Mac48Address address)
Fill the Address 1 field with the given address.
Definition: wifi-mac-header.cc:108
ns3::WifiMacHeader::Serialize
void Serialize(Buffer::Iterator start) const override
Definition: wifi-mac-header.cc:1161
ns3::WifiMacHeader::GetTypeString
const char * GetTypeString(void) const
Return a string corresponds to the header type.
Definition: wifi-mac-header.cc:977
ns3::WifiMacHeader::m_seqFrag
uint8_t m_seqFrag
sequence fragment
Definition: wifi-mac-header.h:646
ns3::WifiMacHeader
Implements the IEEE 802.11 MAC header.
Definition: wifi-mac-header.h:85
ns3::WIFI_MAC_QOSDATA_CFPOLL
@ WIFI_MAC_QOSDATA_CFPOLL
Definition: wifi-mac-header.h:72
visualizer.core.start
def start()
Definition: core.py:1855
ns3::WifiMacHeader::SetQosAckPolicy
void SetQosAckPolicy(QosAckPolicy policy)
Set the QoS Ack policy in the QoS control field.
Definition: wifi-mac-header.cc:367
ns3::WifiMacHeader::IsBlockAckReq
bool IsBlockAckReq(void) const
Return true if the header is a BlockAckRequest header.
Definition: wifi-mac-header.cc:741
ns3::WifiMacHeader::GetType
WifiMacType GetType(void) const
Return the type (enum WifiMacType)
Definition: wifi-mac-header.cc:448
ns3::WifiMacHeader::GetQosControl
uint16_t GetQosControl(void) const
Return the raw QoS Control field.
Definition: wifi-mac-header.cc:892
ns3::WIFI_MAC_DATA_NULL
@ WIFI_MAC_DATA_NULL
Definition: wifi-mac-header.h:66
ns3::WifiMacHeader::IsFromDs
bool IsFromDs(void) const
Definition: wifi-mac-header.cc:546
ns3::WifiMacHeader::IsQosAmsdu
bool IsQosAmsdu(void) const
Check if the A-MSDU present bit is set in the QoS control field.
Definition: wifi-mac-header.cc:855
ns3::WIFI_MAC_QOSDATA_NULL_CFPOLL
@ WIFI_MAC_QOSDATA_NULL_CFPOLL
Definition: wifi-mac-header.h:75
ns3::WifiMacHeader::m_ctrlOrder
uint8_t m_ctrlOrder
control order (set to 1 for QoS Data and Management frames to signify that HT/VHT/HE control field is...
Definition: wifi-mac-header.h:641
ns3::WifiMacHeader::QosAckPolicy
QosAckPolicy
Ack policy for QoS frames.
Definition: wifi-mac-header.h:91
ns3::WifiMacHeader::SetId
void SetId(uint16_t id)
Set the Duration/ID field with the given ID.
Definition: wifi-mac-header.cc:307
ns3::WifiMacHeader::m_duration
uint16_t m_duration
duration
Definition: wifi-mac-header.h:642
ns3::WifiMacHeader::HasData
bool HasData(void) const
Return true if the header type is DATA and is not DATA_NULL.
Definition: wifi-mac-header.cc:632
ns3::WifiMacHeader::IsBlockAck
bool IsBlockAck(void) const
Return true if the header is a BlockAck header.
Definition: wifi-mac-header.cc:747
ns3::WifiMacHeader::NORMAL_ACK
@ NORMAL_ACK
Definition: wifi-mac-header.h:92
ns3::WifiMacHeader::m_ctrlRetry
uint8_t m_ctrlRetry
control retry
Definition: wifi-mac-header.h:638
ns3::WIFI_MAC_CTL_TRIGGER
@ WIFI_MAC_CTL_TRIGGER
Definition: wifi-mac-header.h:38
ns3::WifiMacHeader::IsQosData
bool IsQosData(void) const
Return true if the Type is DATA and Subtype is one of the possible values for QoS Data.
Definition: wifi-mac-header.cc:565
first.address
address
Definition: first.py:44
ns3::WifiMacHeader::SetNoOrder
void SetNoOrder(void)
Unset order bit in the frame control field.
Definition: wifi-mac-header.cc:337
ns3::Time
Simulation virtual time values and global simulation resolution.
Definition: nstime.h:104
ns3::WifiMacHeader::GetSequenceNumber
uint16_t GetSequenceNumber(void) const
Return the sequence number of the header.
Definition: wifi-mac-header.cc:777
ns3::Header
Protocol header serialization and deserialization.
Definition: header.h:43
ns3::WifiMacHeader::IsAssocReq
bool IsAssocReq(void) const
Return true if the header is an Association Request header.
Definition: wifi-mac-header.cc:669
ns3::WIFI_MAC_DATA_CFACK
@ WIFI_MAC_DATA_CFACK
Definition: wifi-mac-header.h:63
ns3::WIFI_MAC_MGT_DISASSOCIATION
@ WIFI_MAC_MGT_DISASSOCIATION
Definition: wifi-mac-header.h:51
ns3::WifiMacHeader::ADDR2
@ ADDR2
Definition: wifi-mac-header.h:104
ns3::WifiMacHeader::SetQosMeshControlPresent
void SetQosMeshControlPresent()
Set the Mesh Control Present flag for the QoS header.
Definition: wifi-mac-header.cc:408
ns3::WifiMacHeader::GetQosAckPolicy
QosAckPolicy GetQosAckPolicy(void) const
Return the QoS Ack policy in the QoS control field.
Definition: wifi-mac-header.cc:829
ns3::WifiMacHeader::GetFragmentNumber
uint8_t GetFragmentNumber(void) const
Return the fragment number of the header.
Definition: wifi-mac-header.cc:783
ns3::WifiMacHeader::SetAddr4
void SetAddr4(Mac48Address address)
Fill the Address 4 field with the given address.
Definition: wifi-mac-header.cc:126
ns3::WIFI_MAC_CTL_ACK
@ WIFI_MAC_CTL_ACK
Definition: wifi-mac-header.h:42
ns3::WifiMacHeader::SetQosControl
void SetQosControl(uint16_t qos)
Set the QoS Control field with the given raw value.
Definition: wifi-mac-header.cc:923
ns3::WifiMacHeader::IsMgt
bool IsMgt(void) const
Return true if the Type is Management.
Definition: wifi-mac-header.cc:577
ns3::Header::Deserialize
virtual uint32_t Deserialize(Buffer::Iterator start)=0
Deserialize the object from a buffer iterator.
ns3::WIFI_MAC_DATA_NULL_CFACK_CFPOLL
@ WIFI_MAC_DATA_NULL_CFACK_CFPOLL
Definition: wifi-mac-header.h:69
ns3::WifiMacHeader::m_addr2
Mac48Address m_addr2
address 2
Definition: wifi-mac-header.h:644
ns3::WIFI_MAC_DATA_NULL_CFPOLL
@ WIFI_MAC_DATA_NULL_CFPOLL
Definition: wifi-mac-header.h:68
ns3::WIFI_MAC_MGT_ACTION
@ WIFI_MAC_MGT_ACTION
Definition: wifi-mac-header.h:58
ns3::WifiMacHeader::IsDeauthentication
bool IsDeauthentication(void) const
Return true if the header is a Deauthentication header.
Definition: wifi-mac-header.cc:723
ns3::Buffer::Iterator
iterator in a Buffer instance
Definition: buffer.h:99
ns3::WifiMacHeader::SetAddr2
void SetAddr2(Mac48Address address)
Fill the Address 2 field with the given address.
Definition: wifi-mac-header.cc:114
ns3::WifiMacHeader::GetQosTid
uint8_t GetQosTid(void) const
Return the Traffic ID of a QoS header.
Definition: wifi-mac-header.cc:862
ns3::WifiMacHeader::m_qosEosp
uint8_t m_qosEosp
QoS EOSP.
Definition: wifi-mac-header.h:650
ns3::WIFI_MAC_CTL_BACKREQ
@ WIFI_MAC_CTL_BACKREQ
Definition: wifi-mac-header.h:43
ns3::WIFI_MAC_CTL_CTLWRAPPER
@ WIFI_MAC_CTL_CTLWRAPPER
Definition: wifi-mac-header.h:39
ns3::WifiMacHeader::IsReassocResp
bool IsReassocResp(void) const
Return true if the header is a Reassociation Response header.
Definition: wifi-mac-header.cc:687
ns3::WifiMacHeader::NO_EXPLICIT_ACK
@ NO_EXPLICIT_ACK
Definition: wifi-mac-header.h:94
ns3::WifiMacHeader::ADDR1
@ ADDR1
Definition: wifi-mac-header.h:103
ns3::WIFI_MAC_MGT_PROBE_REQUEST
@ WIFI_MAC_MGT_PROBE_REQUEST
Definition: wifi-mac-header.h:54
ns3::WifiMacHeader::GetTypeId
static TypeId GetTypeId(void)
Get the type ID.
Definition: wifi-mac-header.cc:1035
ns3::WifiMacHeader::IsAuthentication
bool IsAuthentication(void) const
Return true if the header is an Authentication header.
Definition: wifi-mac-header.cc:717
ns3::WifiMacType
WifiMacType
Combination of valid MAC header type/subtype.
Definition: wifi-mac-header.h:37
ns3::WifiMacHeader::IsProbeReq
bool IsProbeReq(void) const
Return true if the header is a Probe Request header.
Definition: wifi-mac-header.cc:693
ns3::WifiMacHeader::ADDR3
@ ADDR3
Definition: wifi-mac-header.h:105
ns3::WIFI_MAC_DATA
@ WIFI_MAC_DATA
Definition: wifi-mac-header.h:62
ns3::WIFI_MAC_QOSDATA
@ WIFI_MAC_QOSDATA
Definition: wifi-mac-header.h:70
ns3::WifiMacHeader::IsCfAck
bool IsCfAck(void) const
Return true if the header is a CF-Ack header.
Definition: wifi-mac-header.cc:615
ns3::WifiMacHeader::SetQosTxopLimit
void SetQosTxopLimit(uint8_t txop)
Set TXOP limit in the QoS control field.
Definition: wifi-mac-header.cc:396
ns3::WifiMacHeader::m_qosStuff
uint8_t m_qosStuff
QoS stuff.
Definition: wifi-mac-header.h:653
ns3::WifiMacHeader::GetRawDuration
uint16_t GetRawDuration(void) const
Return the raw duration from the Duration/ID field.
Definition: wifi-mac-header.cc:759
ns3::WifiMacHeader::IsMoreFragments
bool IsMoreFragments(void) const
Return if the More Fragment bit is set.
Definition: wifi-mac-header.cc:795
ns3::WifiMacHeader::GetDuration
Time GetDuration(void) const
Return the duration from the Duration/ID field (Time object).
Definition: wifi-mac-header.cc:765
ns3::WifiMacHeader::SetQosEosp
void SetQosEosp()
Set the end of service period (EOSP) bit in the QoS control field.
Definition: wifi-mac-header.cc:357
ns3::WifiMacHeader::ADDR4
@ ADDR4
Definition: wifi-mac-header.h:106
ns3::WifiMacHeader::IsCtl
bool IsCtl(void) const
Return true if the Type is Control.
Definition: wifi-mac-header.cc:571
ns3::WifiMacHeader::AddressType
AddressType
Address types.
Definition: wifi-mac-header.h:102
ns3::WIFI_MAC_MGT_ACTION_NO_ACK
@ WIFI_MAC_MGT_ACTION_NO_ACK
Definition: wifi-mac-header.h:59
ns3::WifiMacHeader::SetType
void SetType(WifiMacType type, bool resetToDsFromDs=true)
Set Type/Subtype values with the correct values depending on the given type.
Definition: wifi-mac-header.cc:132
ns3::TracedValueCallback::Time
void(* Time)(Time oldValue, Time newValue)
TracedValue callback signature for Time.
Definition: nstime.h:813
ns3::TracedCallback
Forward calls to a chain of Callback.
Definition: traced-callback.h:53
ns3::WIFI_MAC_MGT_PROBE_RESPONSE
@ WIFI_MAC_MGT_PROBE_RESPONSE
Definition: wifi-mac-header.h:55
ns3::WifiMacHeader::SetRawDuration
void SetRawDuration(uint16_t duration)
Set the Duration/ID field with the given raw uint16_t value.
Definition: wifi-mac-header.cc:293
ns3::WifiMacHeader::SetDsNotTo
void SetDsNotTo(void)
Un-set the To DS bit in the Frame Control field.
Definition: wifi-mac-header.cc:102
ns3::WifiMacHeader::Print
void Print(std::ostream &os) const override
Definition: wifi-mac-header.cc:1061
ns3::WifiMacHeader::IsReassocReq
bool IsReassocReq(void) const
Return true if the header is a Reassociation Request header.
Definition: wifi-mac-header.cc:681
ns3::WifiMacHeader::IsCfPoll
bool IsCfPoll(void) const
Return true if the Type/Subtype is one of the possible CF-Poll headers.
Definition: wifi-mac-header.cc:583
ns3::WifiMacHeader::m_ctrlSubtype
uint8_t m_ctrlSubtype
control subtype
Definition: wifi-mac-header.h:634
ns3::WIFI_MAC_CTL_BACKRESP
@ WIFI_MAC_CTL_BACKRESP
Definition: wifi-mac-header.h:44
ns3::WIFI_MAC_QOSDATA_CFACK_CFPOLL
@ WIFI_MAC_QOSDATA_CFACK_CFPOLL
Definition: wifi-mac-header.h:73
ns3::WifiMacHeader::GetInstanceTypeId
TypeId GetInstanceTypeId(void) const override
Get the most derived TypeId for this Object.
Definition: wifi-mac-header.cc:1046
ns3::WIFI_MAC_CTL_RTS
@ WIFI_MAC_CTL_RTS
Definition: wifi-mac-header.h:40
ns3::WifiMacHeader::SetQosTid
void SetQosTid(uint8_t tid)
Set the TID for the QoS header.
Definition: wifi-mac-header.cc:352
ns3::WifiMacHeader::GetAddr2
Mac48Address GetAddr2(void) const
Return the address in the Address 2 field.
Definition: wifi-mac-header.cc:430
ns3::WifiMacHeader::SetQosNoMeshControlPresent
void SetQosNoMeshControlPresent()
Clear the Mesh Control Present flag for the QoS header.
Definition: wifi-mac-header.cc:415
ns3::WIFI_MAC_MGT_BEACON
@ WIFI_MAC_MGT_BEACON
Definition: wifi-mac-header.h:48
ns3::WifiMacHeader::GetAddr4
Mac48Address GetAddr4(void) const
Return the address in the Address 4 field.
Definition: wifi-mac-header.cc:442
ns3::WIFI_MAC_DATA_NULL_CFACK
@ WIFI_MAC_DATA_NULL_CFACK
Definition: wifi-mac-header.h:67
ns3::WifiMacHeader::SetDsFrom
void SetDsFrom(void)
Set the From DS bit in the Frame Control field.
Definition: wifi-mac-header.cc:84
ns3::WIFI_MAC_DATA_CFPOLL
@ WIFI_MAC_DATA_CFPOLL
Definition: wifi-mac-header.h:64
ns3::WifiMacHeader::IsAction
bool IsAction(void) const
Return true if the header is an Action header.
Definition: wifi-mac-header.cc:729
ns3::WifiMacHeader::m_addr1
Mac48Address m_addr1
address 1
Definition: wifi-mac-header.h:643
ns3::WIFI_MAC_QOSDATA_CFACK
@ WIFI_MAC_QOSDATA_CFACK
Definition: wifi-mac-header.h:71
ns3::WifiMacHeader::SetQosNoAmsdu
void SetQosNoAmsdu(void)
Set that A-MSDU is not present.
Definition: wifi-mac-header.cc:391
ns3::WIFI_MAC_MGT_DEAUTHENTICATION
@ WIFI_MAC_MGT_DEAUTHENTICATION
Definition: wifi-mac-header.h:57
ns3::WifiMacHeader::IsAssocResp
bool IsAssocResp(void) const
Return true if the header is an Association Response header.
Definition: wifi-mac-header.cc:675
ns3::WifiMacHeader::IsQosAck
bool IsQosAck(void) const
Return if the QoS Ack policy is Normal Ack.
Definition: wifi-mac-header.cc:815
ns3::WifiMacHeader::m_ctrlWep
uint8_t m_ctrlWep
control WEP
Definition: wifi-mac-header.h:640