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 */
iterator in a Buffer instance
Definition: buffer.h:99
The MU EDCA Parameter Set.
WifiInformationElementId ElementId() const
Get the wifi information element ID.
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 ...
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 ...
uint8_t GetInformationFieldSize() const
Get information field size function.
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 (...
uint16_t GetSerializedSize() const
Return the serialized size of this EDCA Parameter Set.
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...
void SetQosInfo(uint8_t qosInfo)
Set the QoS Info field in the MuEdcaParameterSet information element.
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...
bool IsPresent(void) const
Return true if a valid MU EDCA Parameter Set is present in this object.
uint8_t GetQosInfo(void) const
Return the QoS Info field in the MuEdcaParameterSet information element.
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.
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 ...
WifiInformationElementId ElementIdExt() const
Get the wifi information element ID extension.
std::array< ParameterRecord, 4 > m_records
MU AC Parameter Record fields.
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...
uint8_t m_qosInfo
QoS info field.
void SerializeInformationField(Buffer::Iterator start) const
Serialize information field function.
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 ...
uint8_t DeserializeInformationField(Buffer::Iterator start, uint8_t length)
Deserialize information field function.
Simulation virtual time values and global simulation resolution.
Definition: nstime.h:103
Information element, as defined in 802.11-2007 standard.
Every class exported by the ns3 library is enclosed in the ns3 namespace.
uint8_t WifiInformationElementId
This type is used to represent an Information Element ID.
def start()
Definition: core.py:1853
uint8_t muEdcaTimer
the MU EDCA Timer field