A Discrete-Event Network Simulator
API
mu-edca-parameter-set.h
Go to the documentation of this file.
1 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
2 /*
3  * Copyright (c) 2021 Universita' degli Studi di Napoli Federico II
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: Stefano Avallone <stavallo@unina.it>
19  */
20 
21 #ifndef MU_EDCA_PARAMETER_SET_H
22 #define MU_EDCA_PARAMETER_SET_H
23 
24 #include "ns3/wifi-information-element.h"
25 #include "ns3/nstime.h"
26 #include <array>
27 
28 namespace ns3 {
29 
37 {
38 public:
44  bool IsPresent (void) const;
45 
51  void SetQosInfo (uint8_t qosInfo);
60  void SetMuAifsn (uint8_t aci, uint8_t aifsn);
69  void SetMuCwMin (uint8_t aci, uint16_t cwMin);
78  void SetMuCwMax (uint8_t aci, uint16_t cwMax);
90  void SetMuEdcaTimer (uint8_t aci, Time timer);
91 
97  uint8_t GetQosInfo (void) const;
105  uint8_t GetMuAifsn (uint8_t aci) const;
113  uint16_t GetMuCwMin (uint8_t aci) const;
121  uint16_t GetMuCwMax (uint8_t aci) const;
129  Time GetMuEdcaTimer (uint8_t aci) const;
130 
145  uint8_t GetInformationFieldSize () const;
157  uint8_t DeserializeInformationField (Buffer::Iterator start, uint8_t length);
158 
175  uint16_t GetSerializedSize () const;
176 
177 
178 private:
183  {
184  uint8_t aifsnField;
185  uint8_t cwMinMax;
186  uint8_t muEdcaTimer;
187  };
188 
189  uint8_t m_qosInfo;
190  std::array<ParameterRecord, 4> m_records;
191 };
192 
193 } //namespace ns3
194 
195 #endif /* MU_EDCA_PARAMETER_SET_H */
ns3::MuEdcaParameterSet::SetMuCwMax
void SetMuCwMax(uint8_t aci, uint16_t cwMax)
Set the ECWmax subfield of the ECWmin/ECWmax field in the MU AC Parameter Record field corresponding ...
Definition: mu-edca-parameter-set.cc:89
ns3
Every class exported by the ns3 library is enclosed in the ns3 namespace.
ns3::MuEdcaParameterSet::ElementId
WifiInformationElementId ElementId() const
Get the wifi information element ID.
Definition: mu-edca-parameter-set.cc:34
ns3::MuEdcaParameterSet::ParameterRecord::cwMinMax
uint8_t cwMinMax
the ECWmin/ECWmax field
Definition: mu-edca-parameter-set.h:185
ns3::WifiInformationElement
Information element, as defined in 802.11-2007 standard.
Definition: wifi-information-element.h:234
ns3::MuEdcaParameterSet::IsPresent
bool IsPresent(void) const
Return true if a valid MU EDCA Parameter Set is present in this object.
Definition: mu-edca-parameter-set.cc:46
ns3::WifiInformationElementId
uint8_t WifiInformationElementId
This type is used to represent an Information Element ID.
Definition: wifi-information-element.h:40
visualizer.core.start
def start()
Definition: core.py:1855
ns3::MuEdcaParameterSet::GetMuEdcaTimer
Time GetMuEdcaTimer(uint8_t aci) const
Get the MU EDCA Timer value encoded in the MU AC Parameter Record field corresponding to the given AC...
Definition: mu-edca-parameter-set.cc:144
ns3::MuEdcaParameterSet::DeserializeInformationField
uint8_t DeserializeInformationField(Buffer::Iterator start, uint8_t length)
Deserialize information field function.
Definition: mu-edca-parameter-set.cc:194
ns3::MuEdcaParameterSet::ParameterRecord::aifsnField
uint8_t aifsnField
the ACI/AIFSN field
Definition: mu-edca-parameter-set.h:184
ns3::MuEdcaParameterSet::GetMuAifsn
uint8_t GetMuAifsn(uint8_t aci) const
Get the AIFSN subfield of the ACI/AIFSN field in the MU AC Parameter Record field corresponding to th...
Definition: mu-edca-parameter-set.cc:121
ns3::MuEdcaParameterSet::ElementIdExt
WifiInformationElementId ElementIdExt() const
Get the wifi information element ID extension.
Definition: mu-edca-parameter-set.cc:40
ns3::MuEdcaParameterSet::m_qosInfo
uint8_t m_qosInfo
QoS info field.
Definition: mu-edca-parameter-set.h:189
ns3::Time
Simulation virtual time values and global simulation resolution.
Definition: nstime.h:104
ns3::MuEdcaParameterSet::MuEdcaParameterSet
MuEdcaParameterSet()
Definition: mu-edca-parameter-set.cc:27
ns3::MuEdcaParameterSet::SetMuAifsn
void SetMuAifsn(uint8_t aci, uint8_t aifsn)
Set the AIFSN subfield of the ACI/AIFSN field in the MU AC Parameter Record field corresponding to th...
Definition: mu-edca-parameter-set.cc:67
ns3::MuEdcaParameterSet::Serialize
Buffer::Iterator Serialize(Buffer::Iterator start) const
This information element is a bit special in that it is only included if the STA is an HE STA.
Definition: mu-edca-parameter-set.cc:159
ns3::MuEdcaParameterSet::ParameterRecord
MU AC Parameter Record type.
Definition: mu-edca-parameter-set.h:183
ns3::MuEdcaParameterSet::GetMuCwMax
uint16_t GetMuCwMax(uint8_t aci) const
Get the CWmax value encoded by the ECWmax subfield of the ECWmin/ECWmax field in the MU AC Parameter ...
Definition: mu-edca-parameter-set.cc:136
ns3::MuEdcaParameterSet::m_records
std::array< ParameterRecord, 4 > m_records
MU AC Parameter Record fields.
Definition: mu-edca-parameter-set.h:190
ns3::Buffer::Iterator
iterator in a Buffer instance
Definition: buffer.h:99
ns3::MuEdcaParameterSet::SetQosInfo
void SetQosInfo(uint8_t qosInfo)
Set the QoS Info field in the MuEdcaParameterSet information element.
Definition: mu-edca-parameter-set.cc:61
ns3::MuEdcaParameterSet::ParameterRecord::muEdcaTimer
uint8_t muEdcaTimer
the MU EDCA Timer field
Definition: mu-edca-parameter-set.h:186
ns3::MuEdcaParameterSet::GetQosInfo
uint8_t GetQosInfo(void) const
Return the QoS Info field in the MuEdcaParameterSet information element.
Definition: mu-edca-parameter-set.cc:115
ns3::MuEdcaParameterSet::SetMuCwMin
void SetMuCwMin(uint8_t aci, uint16_t cwMin)
Set the ECWmin subfield of the ECWmin/ECWmax field in the MU AC Parameter Record field corresponding ...
Definition: mu-edca-parameter-set.cc:77
ns3::MuEdcaParameterSet::SetMuEdcaTimer
void SetMuEdcaTimer(uint8_t aci, Time timer)
Set the MU EDCA Timer field in the MU AC Parameter Record field corresponding to the given AC Index (...
Definition: mu-edca-parameter-set.cc:101
ns3::MuEdcaParameterSet::GetMuCwMin
uint16_t GetMuCwMin(uint8_t aci) const
Get the CWmin value encoded by the ECWmin subfield of the ECWmin/ECWmax field in the MU AC Parameter ...
Definition: mu-edca-parameter-set.cc:128
ns3::MuEdcaParameterSet::GetSerializedSize
uint16_t GetSerializedSize() const
Return the serialized size of this EDCA Parameter Set.
Definition: mu-edca-parameter-set.cc:169
ns3::MuEdcaParameterSet::SerializeInformationField
void SerializeInformationField(Buffer::Iterator start) const
Serialize information field function.
Definition: mu-edca-parameter-set.cc:179
ns3::MuEdcaParameterSet::GetInformationFieldSize
uint8_t GetInformationFieldSize() const
Get information field size function.
Definition: mu-edca-parameter-set.cc:151
ns3::MuEdcaParameterSet
The MU EDCA Parameter Set.
Definition: mu-edca-parameter-set.h:37