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 <stdint.h>
25 #include <ostream>
26 #include "ns3/buffer.h"
27 #include "ns3/wifi-information-element.h"
28 
29 namespace ns3 {
30 
38 {
39 public:
40  ErpInformation ();
41  void SetErpSupported (uint8_t erpSupported);
42 
48  void SetBarkerPreambleMode (uint8_t barkerPreambleMode);
54  void SetUseProtection (uint8_t useProtection);
60  void SetNonErpPresent (uint8_t nonErpPresent);
61 
62  /*
63  * Return the Barker_Preamble_Mode field in the ErpInformation information element.
64  *
65  * \return the Barker_Preamble_Mode field in the ErpInformation information element
66  */
67  uint8_t GetBarkerPreambleMode (void) const;
68  /*
69  * Return the Use_Protection field in the ErpInformation information element.
70  *
71  * \return the Use_Protection field in the ErpInformation information element
72  */
73  uint8_t GetUseProtection (void) const;
74  /*
75  * Return the Non_Erp_Present field in the ErpInformation information element.
76  *
77  * \return the Non_Erp_Present field in the ErpInformation information element
78  */
79  uint8_t GetNonErpPresent (void) const;
80 
82  uint8_t GetInformationFieldSize () const;
85  uint8_t length);
86 
103  uint16_t GetSerializedSize () const;
104 
105 private:
107 
108  //This is used to decide whether this element should be added to the frame or not
110 };
111 
112 std::ostream &operator << (std::ostream &os, const ErpInformation &erpinformation);
113 std::istream &operator >> (std::istream &is, ErpInformation &erpinformation);
114 
116 
117 } //namespace ns3
118 
119 #endif /* ERP_INFORMATION_H */
std::istream & operator>>(std::istream &is, Angles &a)
initialize a struct Angles from input
Definition: angles.cc:48
Buffer::Iterator Serialize(Buffer::Iterator start) const
This information element is a bit special in that it is only included if the STA is an ERP STA...
void SetErpSupported(uint8_t erpSupported)
uint8_t GetInformationFieldSize() const
Length of serialized information (i.e., the length of the body of the IE, not including the Element I...
def start()
Definition: core.py:1482
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
Information element, as defined in 802.11-2007 standardThe IEEE 802.11 standard includes the notion o...
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) ...
uint8_t GetBarkerPreambleMode(void) const
void SerializeInformationField(Buffer::Iterator start) const
Serialize information (i.e., the body of the IE, not including the Element ID and length octets) ...
std::ostream & operator<<(std::ostream &os, const Angles &a)
print a struct Angles to output
Definition: angles.cc:42
Every class exported by the ns3 library is enclosed in the ns3 namespace.
void SetUseProtection(uint8_t useProtection)
Set the Use_Protection field in the ErpInformation information element.
uint8_t GetNonErpPresent(void) const
WifiInformationElementId ElementId() const
Own unique Element ID.
The ErpInformation Information ElementThis class knows how to serialise and deserialise the ErpInform...
uint8_t WifiInformationElementId
This type is used to represent an Information Element ID.
uint8_t GetUseProtection(void) const
void SetNonErpPresent(uint8_t nonErpPresent)
Set the Non_Erp_Present field in the ErpInformation information element.
uint16_t GetSerializedSize() const
Return the serialized size of this ErpInformation information element.
#define ATTRIBUTE_HELPER_HEADER(type)
Declare the attribute value, accessor and checkers for class type.