A Discrete-Event Network Simulator
API
mu-edca-parameter-set.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2021 Universita' degli Studi di Napoli Federico II
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  * Author: Stefano Avallone <stavallo@unina.it>
18  */
19 
20 #ifndef MU_EDCA_PARAMETER_SET_H
21 #define MU_EDCA_PARAMETER_SET_H
22 
23 #include "ns3/nstime.h"
24 #include "ns3/wifi-information-element.h"
25 
26 #include <array>
27 
28 namespace ns3
29 {
30 
38 {
39  public:
41 
42  WifiInformationElementId ElementId() const override;
43  WifiInformationElementId ElementIdExt() const override;
44 
50  void SetQosInfo(uint8_t qosInfo);
59  void SetMuAifsn(uint8_t aci, uint8_t aifsn);
68  void SetMuCwMin(uint8_t aci, uint16_t cwMin);
77  void SetMuCwMax(uint8_t aci, uint16_t cwMax);
89  void SetMuEdcaTimer(uint8_t aci, Time timer);
90 
96  uint8_t GetQosInfo() const;
104  uint8_t GetMuAifsn(uint8_t aci) const;
112  uint16_t GetMuCwMin(uint8_t aci) const;
120  uint16_t GetMuCwMax(uint8_t aci) const;
128  Time GetMuEdcaTimer(uint8_t aci) const;
129 
130  private:
131  uint16_t GetInformationFieldSize() const override;
132  void SerializeInformationField(Buffer::Iterator start) const override;
133  uint16_t DeserializeInformationField(Buffer::Iterator start, uint16_t length) override;
134 
139  {
140  uint8_t aifsnField;
141  uint8_t cwMinMax;
142  uint8_t muEdcaTimer;
143  };
144 
145  uint8_t m_qosInfo;
146  std::array<ParameterRecord, 4> m_records;
147 };
148 
149 } // namespace ns3
150 
151 #endif /* MU_EDCA_PARAMETER_SET_H */
iterator in a Buffer instance
Definition: buffer.h:100
The MU EDCA Parameter Set.
WifiInformationElementId ElementIdExt() const override
Get the wifi information element ID extension.
uint16_t DeserializeInformationField(Buffer::Iterator start, uint16_t length) override
Deserialize information (i.e., the body of the IE, not including the Element ID and length octets)
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 ...
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 (...
void SerializeInformationField(Buffer::Iterator start) const override
Serialize information (i.e., the body of the IE, not including the Element ID and length octets)
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...
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 ElementId() const override
Get the wifi information element ID.
uint8_t GetQosInfo() const
Return the QoS Info field in the MuEdcaParameterSet information element.
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 SetMuCwMax(uint8_t aci, uint16_t cwMax)
Set the ECWmax subfield of the ECWmin/ECWmax field in the MU AC Parameter Record field corresponding ...
uint16_t GetInformationFieldSize() const override
Length of serialized information (i.e., the length of the body of the IE, not including the Element I...
Simulation virtual time values and global simulation resolution.
Definition: nstime.h:105
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.
uint8_t muEdcaTimer
the MU EDCA Timer field