A Discrete-Event Network Simulator
API
he-operation.h
Go to the documentation of this file.
1 /* -*- Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
2 /*
3  * Copyright (c) 2017 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 HE_OPERATION_H
22 #define HE_OPERATION_H
23 
24 #include "ns3/wifi-information-element.h"
25 
26 namespace ns3 {
27 
36 {
37 public:
38  HeOperation ();
39 
40  // Implementations of pure virtual methods of WifiInformationElement
43  uint8_t GetInformationFieldSize () const;
45  uint8_t DeserializeInformationField (Buffer::Iterator start, uint8_t length);
46  /* This information element is a bit special in that it is only
47  included if the STA is a HE STA. To support this we
48  override the Serialize and GetSerializedSize methods of
49  WifiInformationElement. */
51  uint16_t GetSerializedSize () const;
52 
58  void SetHeSupported (uint8_t heSupported);
59 
65  void SetHeOperationParameters (uint32_t ctrl);
73  void SetMaxHeMcsPerNss (uint8_t nss, uint8_t maxHeMcs);
74 
80  uint32_t GetHeOperationParameters (void) const;
86  uint16_t GetBasicHeMcsAndNssSet (void) const;
91  void SetBssColor (uint8_t bssColor);
96  uint8_t GetBssColor (void) const;
97 
98 
99 private:
100  //HE Operation Parameters fields
101  uint8_t m_bssColor;
103  uint8_t m_twtRequired;
109  uint8_t m_dualBeacon;
110 
111  //Basic HE-MCS and NSS Set
113 
114  //TODO: VHT Operation Information subfields not defined in the standard yet.
115 
117  uint8_t m_heSupported;
118 };
119 
128 std::ostream &operator << (std::ostream &os, const HeOperation &HeOperation);
129 
130 } //namespace ns3
131 
132 #endif /* HE_OPERATION_H */
uint8_t GetInformationFieldSize() const
Length of serialized information (i.e., the length of the body of the IE, not including the Element I...
Definition: he-operation.cc:59
uint16_t GetSerializedSize() const
uint8_t m_txBssidIndicator
TX BSSID indicator.
Definition: he-operation.h:107
uint8_t m_heSupported
This is used to decide whether this element should be added to the frame or not.
Definition: he-operation.h:117
def start()
Definition: core.py:1855
Buffer::Iterator Serialize(Buffer::Iterator start) const
void SetHeSupported(uint8_t heSupported)
Set the HE supported information element.
Definition: he-operation.cc:53
uint8_t m_maxBssidIndicator
max BSSID indicator
Definition: he-operation.h:106
uint8_t m_twtRequired
TWT required.
Definition: he-operation.h:103
iterator in a Buffer instance
Definition: buffer.h:98
uint16_t GetBasicHeMcsAndNssSet(void) const
Return the Basic HE-MCS And Nss field in the HE Operation information element.
std::ostream & operator<<(std::ostream &os, const Angles &a)
Definition: angles.cc:137
void SetMaxHeMcsPerNss(uint8_t nss, uint8_t maxHeMcs)
Set the Basic HE-MCS and NSS field in the HE Operation information element by specifying the tuple (n...
Definition: he-operation.cc:97
Information element, as defined in 802.11-2007 standardThe IEEE 802.11 standard includes the notion o...
uint16_t m_basicHeMcsAndNssSet
basic HE MCS NSS set
Definition: he-operation.h:112
WifiInformationElementId ElementId() const
Definition: he-operation.cc:41
uint32_t GetHeOperationParameters(void) const
Return the HE Operation Parameters field in the HE Operation information element. ...
Definition: he-operation.cc:81
void SetHeOperationParameters(uint32_t ctrl)
Set the HE Operation Parameters field in the HE Operation information element.
Definition: he-operation.cc:67
uint8_t DeserializeInformationField(Buffer::Iterator start, uint8_t length)
Deserialize information (i.e., the body of the IE, not including the Element ID and length octets) ...
Every class exported by the ns3 library is enclosed in the ns3 namespace.
uint8_t m_dualBeacon
Dual Beacon.
Definition: he-operation.h:109
uint8_t m_bssColorDisabled
BSS color disabled.
Definition: he-operation.h:108
WifiInformationElementId ElementIdExt() const
Definition: he-operation.cc:47
uint8_t m_defaultPEDuration
default PE duration
Definition: he-operation.h:102
void SetBssColor(uint8_t bssColor)
Set the BSS color.
void SerializeInformationField(Buffer::Iterator start) const
Serialize information (i.e., the body of the IE, not including the Element ID and length octets) ...
uint8_t GetBssColor(void) const
Get the BSS color.
uint8_t m_bssColor
BSS color.
Definition: he-operation.h:101
uint8_t WifiInformationElementId
This type is used to represent an Information Element ID.
The HE Operation Information ElementThis class knows how to serialise and deserialise the HE Operatio...
Definition: he-operation.h:35
uint8_t m_partialBssColor
partial BSS color
Definition: he-operation.h:105
uint16_t m_heDurationBasedRtsThreshold
HE duration based RTS threshold.
Definition: he-operation.h:104