A Discrete-Event Network Simulator
API
Loading...
Searching...
No Matches
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
28namespace ns3
29{
30
38{
39 public:
41
42 WifiInformationElementId ElementId() 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