A Discrete-Event Network Simulator
API
erp-information.h
Go to the documentation of this file.
1 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
2 /*
3  * Copyright (c) 2015 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 ERP_INFORMATION_H
22 #define ERP_INFORMATION_H
23 
24 #include "ns3/wifi-information-element.h"
25 
26 namespace ns3 {
27 
35 {
36 public:
37  ErpInformation ();
38 
39  // Implementations of pure virtual methods of WifiInformationElement
40  WifiInformationElementId ElementId () const override;
41  uint8_t GetInformationFieldSize () const override;
42  void SerializeInformationField (Buffer::Iterator start) const override;
44  uint8_t length) override;
45 
46  /* This information element is a bit special in that it is only
47  included if the STA is an ERP STA. To support this we
48  override the Serialize and GetSerializedSize methods of
49  WifiInformationElement. */
51  uint16_t GetSerializedSize () const override;
52 
58  void SetErpSupported (uint8_t erpSupported);
59 
65  void SetBarkerPreambleMode (uint8_t barkerPreambleMode);
71  void SetUseProtection (uint8_t useProtection);
77  void SetNonErpPresent (uint8_t nonErpPresent);
78 
84  uint8_t GetBarkerPreambleMode (void) const;
90  uint8_t GetUseProtection (void) const;
96  uint8_t GetNonErpPresent (void) const;
97 
98 
99 private:
101 
104 };
105 
114 std::ostream &operator << (std::ostream &os, const ErpInformation &erpInformation);
115 
116 } //namespace ns3
117 
118 #endif /* ERP_INFORMATION_H */
void SetErpSupported(uint8_t erpSupported)
Set the ERP supported field.
void SerializeInformationField(Buffer::Iterator start) const override
Serialize information (i.e., the body of the IE, not including the Element ID and length octets) ...
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) ...
def start()
Definition: core.py:1855
uint16_t GetSerializedSize() const override
Get the size of the serialized IE including Element ID and length fields.
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 SetBarkerPreambleMode(uint8_t barkerPreambleMode)
Set the Barker_Preamble_Mode field in the ErpInformation information element.
iterator in a Buffer instance
Definition: buffer.h:98
std::ostream & operator<<(std::ostream &os, const Angles &a)
Definition: angles.cc:137
Information element, as defined in 802.11-2007 standardThe IEEE 802.11 standard includes the notion o...
uint8_t m_erpInformation
ERP information.
Every class exported by the ns3 library is enclosed in the ns3 namespace.
uint8_t GetNonErpPresent(void) const
Return the Non_Erp_Present field in the ErpInformation information element.
void SetUseProtection(uint8_t useProtection)
Set the Use_Protection field in the ErpInformation information element.
Buffer::Iterator Serialize(Buffer::Iterator start) const override
Serialize entire IE including Element ID and length fields.
The ErpInformation Information ElementThis class knows how to serialise and deserialise the ErpInform...
WifiInformationElementId ElementId() const override
uint8_t WifiInformationElementId
This type is used to represent an Information Element ID.
bool m_erpSupported
This is used to decide whether this element should be added to the frame or not.
uint8_t GetBarkerPreambleMode(void) const
Return the Barker_Preamble_Mode field in the ErpInformation information element.
void SetNonErpPresent(uint8_t nonErpPresent)
Set the Non_Erp_Present field in the ErpInformation information element.
uint8_t GetUseProtection(void) const
Return the Use_Protection field in the ErpInformation information element.