A Discrete-Event Network Simulator
API
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) 2016 Sébastien Deronne
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: Sébastien Deronne <sebastien.deronne@gmail.com>
19 */
20
21#ifndef EDCA_PARAMETER_SET_H
22#define EDCA_PARAMETER_SET_H
23
25
26namespace ns3 {
27
35{
36public:
38
39 // Implementations of pure virtual methods of WifiInformationElement
40 WifiInformationElementId ElementId () const override;
41 uint8_t GetInformationFieldSize () const override;
43 uint8_t DeserializeInformationField (Buffer::Iterator start, uint8_t length) override;
44 /* This information element is a bit special in that it is only
45 included if the STA is a QoS STA. To support this we
46 override the Serialize and GetSerializedSize methods of
47 WifiInformationElement. */
49 uint16_t GetSerializedSize () const override;
50
55 void SetQosSupported (uint8_t qosSupported);
60 uint8_t IsQosSupported (void) const;
61
67 void SetQosInfo (uint8_t qosInfo);
73 void SetBeAifsn (uint8_t aifsn);
79 void SetBeAci (uint8_t aci);
85 void SetBeCWmin (uint32_t cwMin);
91 void SetBeCWmax (uint32_t cwMax);
97 void SetBeTxopLimit (uint16_t txop);
103 void SetBkAifsn (uint8_t aifsn);
109 void SetBkAci (uint8_t aci);
115 void SetBkCWmin (uint32_t cwMin);
121 void SetBkCWmax (uint32_t cwMax);
127 void SetBkTxopLimit (uint16_t txop);
133 void SetViAifsn (uint8_t aifsn);
139 void SetViAci (uint8_t aci);
145 void SetViCWmin (uint32_t cwMin);
151 void SetViCWmax (uint32_t cwMax);
157 void SetViTxopLimit (uint16_t txop);
163 void SetVoAifsn (uint8_t aifsn);
169 void SetVoAci (uint8_t aci);
175 void SetVoCWmin (uint32_t cwMin);
181 void SetVoCWmax (uint32_t cwMax);
187 void SetVoTxopLimit (uint16_t txop);
188
194 uint8_t GetQosInfo (void) const;
200 uint8_t GetBeAifsn (void) const;
206 uint32_t GetBeCWmin (void) const;
212 uint32_t GetBeCWmax (void) const;
218 uint16_t GetBeTxopLimit (void) const;
224 uint8_t GetBkAifsn (void) const;
230 uint32_t GetBkCWmin (void) const;
236 uint32_t GetBkCWmax (void) const;
242 uint16_t GetBkTxopLimit (void) const;
248 uint8_t GetViAifsn (void) const;
254 uint32_t GetViCWmin (void) const;
260 uint32_t GetViCWmax (void) const;
266 uint16_t GetViTxopLimit (void) const;
272 uint8_t GetVoAifsn (void) const;
278 uint32_t GetVoCWmin (void) const;
284 uint32_t GetVoCWmax (void) const;
290 uint16_t GetVoTxopLimit (void) const;
291
292
293private:
294 uint8_t m_qosInfo;
295 uint8_t m_reserved;
300
303};
304
305} //namespace ns3
306
307#endif /* EDCA_PARAMETER_SET_H */
iterator in a Buffer instance
Definition: buffer.h:99
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.
uint16_t GetBeTxopLimit(void) const
Return the AC_BE 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)
uint32_t GetBeCWmin(void) const
Return the AC_BE CWmin field in the EdcaParameterSet information element.
void SetVoAci(uint8_t aci)
Set the AC_VO ACI field in the EdcaParameterSet information element.
uint8_t GetVoAifsn(void) const
Return the AC_VO AIFSN field in the EdcaParameterSet information element.
uint8_t m_reserved
reserved
uint8_t GetQosInfo(void) const
Return the QoS Info field in the EdcaParameterSet information element.
uint8_t GetInformationFieldSize() const override
Length of serialized information (i.e., the length of the body of the IE, not including the Element I...
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 GetBeAifsn(void) const
Return the AC_BE AIFSN field in the EdcaParameterSet information element.
uint16_t GetVoTxopLimit(void) const
Return the AC_VO TXOP Limit field in the EdcaParameterSet information element.
uint32_t GetVoCWmax(void) const
Return the AC_VO CWmax field in the EdcaParameterSet information element.
void SetQosInfo(uint8_t qosInfo)
Set the QoS Info field in the EdcaParameterSet information element.
uint32_t GetViCWmin(void) const
Return the AC_VI CWmin field in the EdcaParameterSet information element.
uint8_t GetBkAifsn(void) const
Return the AC_BK AIFSN field in the EdcaParameterSet information element.
void SetBkCWmin(uint32_t cwMin)
Set the AC_BK CWmin field in the EdcaParameterSet information element.
bool m_qosSupported
This is used to decide whether this element should be added to the frame or not.
Buffer::Iterator Serialize(Buffer::Iterator start) const override
Serialize entire IE including Element ID and length fields.
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.
uint8_t IsQosSupported(void) const
Is QOS supported function.
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.
uint32_t GetViCWmax(void) const
Return the AC_VI CWmax 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.
uint8_t GetViAifsn(void) const
Return the AC_VI AIFSN field in the EdcaParameterSet information element.
void SetBkAifsn(uint8_t aifsn)
Set the AC_BK AIFSN field in the EdcaParameterSet information element.
uint32_t GetBeCWmax(void) const
Return the AC_BE CWmax field in the EdcaParameterSet information element.
uint32_t GetBkCWmax(void) const
Return the AC_BK CWmax field in the EdcaParameterSet information element.
uint8_t m_qosInfo
QOS info.
uint16_t GetViTxopLimit(void) const
Return the AC_VI TXOP Limit field in the EdcaParameterSet information element.
void SetBeCWmin(uint32_t cwMin)
Set the AC_BE CWmin field in the EdcaParameterSet information element.
uint32_t GetBkCWmin(void) const
Return the AC_BK CWmin field in the EdcaParameterSet information element.
void SetBkAci(uint8_t aci)
Set the AC_BK ACI field in the EdcaParameterSet information element.
uint8_t DeserializeInformationField(Buffer::Iterator start, uint8_t length) override
Deserialize information (i.e., the body of the IE, not including the Element ID and length octets)
uint32_t GetVoCWmin(void) const
Return the AC_VO CWmin field in the EdcaParameterSet information element.
void SetQosSupported(uint8_t qosSupported)
Set QOS supported function.
WifiInformationElementId ElementId() const override
uint16_t GetBkTxopLimit(void) const
Return the AC_BK TXOP Limit field in the EdcaParameterSet information element.
void SetBeAifsn(uint8_t aifsn)
Set the AC_BE AIFSN field in the EdcaParameterSet information element.
uint16_t GetSerializedSize() const override
Get the size of the serialized IE including Element ID and length fields.
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