A Discrete-Event Network Simulator
API
erp-information.cc
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#include "erp-information.h"
22
23namespace ns3 {
24
26 : m_erpInformation (0)
27{
28}
29
32{
33 return IE_ERP_INFORMATION;
34}
35
36void
37ErpInformation::SetBarkerPreambleMode (uint8_t barkerPreambleMode)
38{
39 m_erpInformation |= (barkerPreambleMode & 0x01) << 2;
40}
41
42void
43ErpInformation::SetUseProtection (uint8_t useProtection)
44{
45 m_erpInformation |= (useProtection & 0x01) << 1;
46}
47
48void
49ErpInformation::SetNonErpPresent (uint8_t nonErpPresent)
50{
51 m_erpInformation |= nonErpPresent & 0x01;
52}
53
54uint8_t
56{
57 return ((m_erpInformation >> 2) & 0x01);
58}
59
60uint8_t
62{
63 return ((m_erpInformation >> 1) & 0x01);
64}
65
66uint8_t
68{
69 return (m_erpInformation & 0x01);
70}
71
72uint16_t
74{
75 return 1;
76}
77
78void
80{
81 start.WriteU8 (m_erpInformation);
82}
83
84uint16_t
86 uint16_t length)
87{
90 return length;
91}
92
93std::ostream &
94operator << (std::ostream &os, const ErpInformation &erpInformation)
95{
96 os << bool (erpInformation.GetBarkerPreambleMode ())
97 << "|" << bool (erpInformation.GetUseProtection ())
98 << "|" << bool (erpInformation.GetNonErpPresent ());
99
100 return os;
101}
102
103} //namespace ns3
iterator in a Buffer instance
Definition: buffer.h:99
uint8_t ReadU8(void)
Definition: buffer.h:1021
The ErpInformation Information Element.
uint8_t m_erpInformation
ERP information.
void SetBarkerPreambleMode(uint8_t barkerPreambleMode)
Set the Barker_Preamble_Mode field in the ErpInformation information element.
WifiInformationElementId ElementId() const override
Get the wifi information element ID.
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)
void SetUseProtection(uint8_t useProtection)
Set the Use_Protection field in the ErpInformation information element.
uint8_t GetNonErpPresent(void) const
Return the Non_Erp_Present field in the ErpInformation 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)
uint8_t GetBarkerPreambleMode(void) const
Return the Barker_Preamble_Mode field in the ErpInformation information element.
uint8_t GetUseProtection(void) const
Return the Use_Protection field in the ErpInformation information element.
void SetNonErpPresent(uint8_t nonErpPresent)
Set the Non_Erp_Present field in the ErpInformation 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...
Every class exported by the ns3 library is enclosed in the ns3 namespace.
std::ostream & operator<<(std::ostream &os, const Angles &a)
Definition: angles.cc:139
uint8_t WifiInformationElementId
This type is used to represent an Information Element ID.
def start()
Definition: core.py:1852
#define IE_ERP_INFORMATION