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
28namespace ns3 {
29
37{
38public:
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
178private:
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