A Discrete-Event Network Simulator
Home
Tutorials ▼
English
Documentation ▼
Installation
Manual
Models
Contributing
Wiki
Development ▼
API Docs
Issue Tracker
Merge Requests
API
erp-information.cc
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2015 Sébastien Deronne
3
*
4
* This program is free software; you can redistribute it and/or modify
5
* it under the terms of the GNU General Public License version 2 as
6
* published by the Free Software Foundation;
7
*
8
* This program is distributed in the hope that it will be useful,
9
* but WITHOUT ANY WARRANTY; without even the implied warranty of
10
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11
* GNU General Public License for more details.
12
*
13
* You should have received a copy of the GNU General Public License
14
* along with this program; if not, write to the Free Software
15
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
16
*
17
* Author: Sébastien Deronne <sebastien.deronne@gmail.com>
18
*/
19
20
#include "
erp-information.h
"
21
22
namespace
ns3
23
{
24
25
ErpInformation::ErpInformation
()
26
: m_erpInformation(0)
27
{
28
}
29
30
WifiInformationElementId
31
ErpInformation::ElementId
()
const
32
{
33
return
IE_ERP_INFORMATION
;
34
}
35
36
void
37
ErpInformation::SetBarkerPreambleMode
(uint8_t barkerPreambleMode)
38
{
39
m_erpInformation
|= (barkerPreambleMode & 0x01) << 2;
40
}
41
42
void
43
ErpInformation::SetUseProtection
(uint8_t useProtection)
44
{
45
m_erpInformation
|= (useProtection & 0x01) << 1;
46
}
47
48
void
49
ErpInformation::SetNonErpPresent
(uint8_t nonErpPresent)
50
{
51
m_erpInformation
|= nonErpPresent & 0x01;
52
}
53
54
uint8_t
55
ErpInformation::GetBarkerPreambleMode
()
const
56
{
57
return
((
m_erpInformation
>> 2) & 0x01);
58
}
59
60
uint8_t
61
ErpInformation::GetUseProtection
()
const
62
{
63
return
((
m_erpInformation
>> 1) & 0x01);
64
}
65
66
uint8_t
67
ErpInformation::GetNonErpPresent
()
const
68
{
69
return
(
m_erpInformation
& 0x01);
70
}
71
72
uint16_t
73
ErpInformation::GetInformationFieldSize
()
const
74
{
75
return
1;
76
}
77
78
void
79
ErpInformation::SerializeInformationField
(
Buffer::Iterator
start
)
const
80
{
81
start
.WriteU8(
m_erpInformation
);
82
}
83
84
uint16_t
85
ErpInformation::DeserializeInformationField
(
Buffer::Iterator
start
, uint16_t length)
86
{
87
Buffer::Iterator
i =
start
;
88
m_erpInformation
= i.
ReadU8
();
89
return
length;
90
}
91
92
std::ostream&
93
operator<<
(std::ostream& os,
const
ErpInformation
& erpInformation)
94
{
95
os << bool(erpInformation.
GetBarkerPreambleMode
()) <<
"|"
96
<< bool(erpInformation.
GetUseProtection
()) <<
"|"
<< bool(erpInformation.
GetNonErpPresent
());
97
98
return
os;
99
}
100
101
}
// namespace ns3
ns3::Buffer::Iterator
iterator in a Buffer instance
Definition:
buffer.h:100
ns3::Buffer::Iterator::ReadU8
uint8_t ReadU8()
Definition:
buffer.h:1027
ns3::ErpInformation
The ErpInformation Information Element.
Definition:
erp-information.h:35
ns3::ErpInformation::m_erpInformation
uint8_t m_erpInformation
ERP information.
Definition:
erp-information.h:85
ns3::ErpInformation::SetBarkerPreambleMode
void SetBarkerPreambleMode(uint8_t barkerPreambleMode)
Set the Barker_Preamble_Mode field in the ErpInformation information element.
Definition:
erp-information.cc:37
ns3::ErpInformation::ElementId
WifiInformationElementId ElementId() const override
Get the wifi information element ID.
Definition:
erp-information.cc:31
ns3::ErpInformation::GetNonErpPresent
uint8_t GetNonErpPresent() const
Return the Non_Erp_Present field in the ErpInformation information element.
Definition:
erp-information.cc:67
ns3::ErpInformation::DeserializeInformationField
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)
Definition:
erp-information.cc:85
ns3::ErpInformation::GetBarkerPreambleMode
uint8_t GetBarkerPreambleMode() const
Return the Barker_Preamble_Mode field in the ErpInformation information element.
Definition:
erp-information.cc:55
ns3::ErpInformation::SetUseProtection
void SetUseProtection(uint8_t useProtection)
Set the Use_Protection field in the ErpInformation information element.
Definition:
erp-information.cc:43
ns3::ErpInformation::SerializeInformationField
void SerializeInformationField(Buffer::Iterator start) const override
Serialize information (i.e., the body of the IE, not including the Element ID and length octets)
Definition:
erp-information.cc:79
ns3::ErpInformation::ErpInformation
ErpInformation()
Definition:
erp-information.cc:25
ns3::ErpInformation::GetUseProtection
uint8_t GetUseProtection() const
Return the Use_Protection field in the ErpInformation information element.
Definition:
erp-information.cc:61
ns3::ErpInformation::SetNonErpPresent
void SetNonErpPresent(uint8_t nonErpPresent)
Set the Non_Erp_Present field in the ErpInformation information element.
Definition:
erp-information.cc:49
ns3::ErpInformation::GetInformationFieldSize
uint16_t GetInformationFieldSize() const override
Length of serialized information (i.e., the length of the body of the IE, not including the Element I...
Definition:
erp-information.cc:73
erp-information.h
ns3
Every class exported by the ns3 library is enclosed in the ns3 namespace.
ns3::operator<<
std::ostream & operator<<(std::ostream &os, const Angles &a)
Definition:
angles.cc:159
ns3::WifiInformationElementId
uint8_t WifiInformationElementId
This type is used to represent an Information Element ID.
Definition:
wifi-information-element.h:45
two-ray-to-three-gpp-ch-calibration.start
start
Definition:
two-ray-to-three-gpp-ch-calibration.py:520
IE_ERP_INFORMATION
#define IE_ERP_INFORMATION
Definition:
wifi-information-element.h:80
src
wifi
model
non-ht
erp-information.cc
Generated on Sun Mar 3 2024 17:11:11 for ns-3 by
1.9.1