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:
40
41 WifiInformationElementId ElementId () const override;
42 WifiInformationElementId ElementIdExt () const override;
43
49 void SetQosInfo (uint8_t qosInfo);
58 void SetMuAifsn (uint8_t aci, uint8_t aifsn);
67 void SetMuCwMin (uint8_t aci, uint16_t cwMin);
76 void SetMuCwMax (uint8_t aci, uint16_t cwMax);
88 void SetMuEdcaTimer (uint8_t aci, Time timer);
89
95 uint8_t GetQosInfo (void) const;
103 uint8_t GetMuAifsn (uint8_t aci) const;
111 uint16_t GetMuCwMin (uint8_t aci) const;
119 uint16_t GetMuCwMax (uint8_t aci) const;
127 Time GetMuEdcaTimer (uint8_t aci) const;
128
129private:
130 uint16_t GetInformationFieldSize () const override;
132 uint16_t DeserializeInformationField (Buffer::Iterator start, uint16_t length) override;
133
138 {
139 uint8_t aifsnField;
140 uint8_t cwMinMax;
141 uint8_t muEdcaTimer;
142 };
143
144 uint8_t m_qosInfo;
145 std::array<ParameterRecord, 4> m_records;
146};
147
148} //namespace ns3
149
150#endif /* MU_EDCA_PARAMETER_SET_H */
iterator in a Buffer instance
Definition: buffer.h:99
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...
uint8_t GetQosInfo(void) const
Return the QoS Info field in the MuEdcaParameterSet information element.
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.
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:104
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:1852
uint8_t muEdcaTimer
the MU EDCA Timer field