A Discrete-Event Network Simulator
API
edca-parameter-set.h
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2016 Sébastien Deronne
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: Sébastien Deronne <sebastien.deronne@gmail.com>
18  */
19 
20 #ifndef EDCA_PARAMETER_SET_H
21 #define EDCA_PARAMETER_SET_H
22 
24 
25 namespace ns3
26 {
27 
35 {
36  public:
38 
39  // Implementations of pure virtual methods of WifiInformationElement
40  WifiInformationElementId ElementId() const override;
41 
47  void SetQosInfo(uint8_t qosInfo);
53  void SetBeAifsn(uint8_t aifsn);
59  void SetBeAci(uint8_t aci);
65  void SetBeCWmin(uint32_t cwMin);
71  void SetBeCWmax(uint32_t cwMax);
77  void SetBeTxopLimit(uint16_t txop);
83  void SetBkAifsn(uint8_t aifsn);
89  void SetBkAci(uint8_t aci);
95  void SetBkCWmin(uint32_t cwMin);
101  void SetBkCWmax(uint32_t cwMax);
107  void SetBkTxopLimit(uint16_t txop);
113  void SetViAifsn(uint8_t aifsn);
119  void SetViAci(uint8_t aci);
125  void SetViCWmin(uint32_t cwMin);
131  void SetViCWmax(uint32_t cwMax);
137  void SetViTxopLimit(uint16_t txop);
143  void SetVoAifsn(uint8_t aifsn);
149  void SetVoAci(uint8_t aci);
155  void SetVoCWmin(uint32_t cwMin);
161  void SetVoCWmax(uint32_t cwMax);
167  void SetVoTxopLimit(uint16_t txop);
168 
174  uint8_t GetQosInfo() const;
180  uint8_t GetBeAifsn() const;
186  uint32_t GetBeCWmin() const;
192  uint32_t GetBeCWmax() const;
198  uint16_t GetBeTxopLimit() const;
204  uint8_t GetBkAifsn() const;
210  uint32_t GetBkCWmin() const;
216  uint32_t GetBkCWmax() const;
222  uint16_t GetBkTxopLimit() const;
228  uint8_t GetViAifsn() const;
234  uint32_t GetViCWmin() const;
240  uint32_t GetViCWmax() const;
246  uint16_t GetViTxopLimit() const;
252  uint8_t GetVoAifsn() const;
258  uint32_t GetVoCWmin() const;
264  uint32_t GetVoCWmax() const;
270  uint16_t GetVoTxopLimit() const;
271 
272  private:
273  uint16_t GetInformationFieldSize() const override;
274  void SerializeInformationField(Buffer::Iterator start) const override;
275  uint16_t DeserializeInformationField(Buffer::Iterator start, uint16_t length) override;
276 
277  uint8_t m_qosInfo;
278  uint8_t m_reserved;
279  uint32_t m_acBE;
280  uint32_t m_acBK;
281  uint32_t m_acVI;
282  uint32_t m_acVO;
283 };
284 
285 } // namespace ns3
286 
287 #endif /* EDCA_PARAMETER_SET_H */
iterator in a Buffer instance
Definition: buffer.h:100
The EDCA Parameter Set.
void SetViTxopLimit(uint16_t txop)
Set the AC_VI TXOP Limit field in the EdcaParameterSet information element.
void SetViAifsn(uint8_t aifsn)
Set the AC_VI AIFSN field in the EdcaParameterSet information element.
uint8_t GetBeAifsn() const
Return the AC_BE AIFSN field in the EdcaParameterSet information element.
uint16_t GetViTxopLimit() const
Return the AC_VI TXOP Limit field in the EdcaParameterSet information element.
void SerializeInformationField(Buffer::Iterator start) const override
Serialize information (i.e., the body of the IE, not including the Element ID and length octets)
uint16_t GetBkTxopLimit() const
Return the AC_BK TXOP Limit field in the EdcaParameterSet information element.
uint16_t GetVoTxopLimit() const
Return the AC_VO TXOP Limit field in the EdcaParameterSet information element.
void SetVoAci(uint8_t aci)
Set the AC_VO ACI field in the EdcaParameterSet information element.
uint8_t GetViAifsn() const
Return the AC_VI AIFSN field in the EdcaParameterSet information element.
uint8_t m_reserved
reserved
uint16_t GetBeTxopLimit() const
Return the AC_BE TXOP Limit field in the EdcaParameterSet information element.
uint32_t GetBeCWmax() const
Return the AC_BE CWmax field in the EdcaParameterSet information element.
uint32_t GetBeCWmin() const
Return the AC_BE CWmin field in the EdcaParameterSet information element.
uint32_t GetVoCWmax() const
Return the AC_VO CWmax field in the EdcaParameterSet information element.
void SetVoCWmax(uint32_t cwMax)
Set the AC_VO CWmax field in the EdcaParameterSet information element.
void SetViCWmin(uint32_t cwMin)
Set the AC_VI CWmin field in the EdcaParameterSet information element.
void SetVoTxopLimit(uint16_t txop)
Set the AC_VO TXOP Limit field in the EdcaParameterSet information element.
void SetVoAifsn(uint8_t aifsn)
Set the AC_VO AIFSN field in the EdcaParameterSet information element.
uint8_t GetQosInfo() const
Return the QoS Info field in the EdcaParameterSet information element.
uint8_t GetVoAifsn() const
Return the AC_VO AIFSN field in the EdcaParameterSet information element.
void SetQosInfo(uint8_t qosInfo)
Set the QoS Info field in the EdcaParameterSet information element.
void SetBkCWmin(uint32_t cwMin)
Set the AC_BK CWmin field in the EdcaParameterSet information element.
uint32_t GetVoCWmin() const
Return the AC_VO CWmin field in the EdcaParameterSet information element.
void SetViAci(uint8_t aci)
Set the AC_VI ACI field in the EdcaParameterSet information element.
void SetViCWmax(uint32_t cwMax)
Set the AC_VI CWmax field in the EdcaParameterSet information element.
void SetVoCWmin(uint32_t cwMin)
Set the AC_VO CWmin field in the EdcaParameterSet information element.
void SetBeTxopLimit(uint16_t txop)
Set the AC_BE TXOP Limit field in the EdcaParameterSet information element.
void SetBeCWmax(uint32_t cwMax)
Set the AC_BE CWmax field in the EdcaParameterSet information element.
void SetBeAci(uint8_t aci)
Set the AC_BE ACI field in the EdcaParameterSet information element.
void SetBkCWmax(uint32_t cwMax)
Set the AC_BK CWmax field in the EdcaParameterSet information element.
void SetBkTxopLimit(uint16_t txop)
Set the AC_BK TXOP Limit field in the EdcaParameterSet information element.
void SetBkAifsn(uint8_t aifsn)
Set the AC_BK AIFSN field in the EdcaParameterSet information element.
uint8_t m_qosInfo
QOS info.
uint8_t GetBkAifsn() const
Return the AC_BK AIFSN field in the EdcaParameterSet information element.
void SetBeCWmin(uint32_t cwMin)
Set the AC_BE CWmin field in the EdcaParameterSet information element.
void SetBkAci(uint8_t aci)
Set the AC_BK ACI field in the EdcaParameterSet information element.
uint32_t GetBkCWmin() const
Return the AC_BK CWmin field in the EdcaParameterSet information element.
uint32_t GetViCWmin() const
Return the AC_VI CWmin field in the EdcaParameterSet information element.
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)
uint32_t GetViCWmax() const
Return the AC_VI CWmax field in the EdcaParameterSet information element.
uint16_t GetInformationFieldSize() const override
Length of serialized information (i.e., the length of the body of the IE, not including the Element I...
WifiInformationElementId ElementId() const override
Get the wifi information element ID.
uint32_t GetBkCWmax() const
Return the AC_BK CWmax field in the EdcaParameterSet information element.
void SetBeAifsn(uint8_t aifsn)
Set the AC_BE AIFSN field in the EdcaParameterSet information element.
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.