A Discrete-Event Network Simulator
Home
Tutorials ▼
English
Documentation ▼
Installation
Manual
Models
Contributing
Wiki
Development ▼
API Docs
Issue Tracker
Merge Requests
API
Loading...
Searching...
No Matches
ie-dot11s-id.h
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2008,2009 IITP RAS
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: Kirill Andreev <andreev@iitp.ru>
18
*/
19
20
#ifndef MESH_ID_H
21
#define MESH_ID_H
22
23
#include "ns3/buffer.h"
24
#include "ns3/mesh-information-element-vector.h"
25
26
#include <stdint.h>
27
28
namespace
ns3
29
{
30
namespace
dot11s
31
{
32
33
/**
34
* \brief a IEEE 802.11 Mesh ID element (Section 8.4.2.101 of IEEE 802.11-2012)
35
*/
36
class
IeMeshId
:
public
WifiInformationElement
37
{
38
public
:
39
// broadcast meshId
40
IeMeshId
();
41
/**
42
* Constructor
43
*
44
* \param s reference id
45
*/
46
IeMeshId
(std::string s);
47
48
/**
49
* Equality test
50
* \param o another IeMeshId
51
* \returns true if equal
52
*/
53
bool
IsEqual
(
const
IeMeshId
& o)
const
;
54
/**
55
* Return true if broadcast (if first octet of Mesh ID is zero)
56
* \returns true if broadcast
57
*/
58
bool
IsBroadcast
()
const
;
59
// uint32_t GetLength () const;
60
/**
61
* Peek the IeMeshId as a string value
62
* \returns the mesh ID as a string
63
*/
64
char
*
PeekString
()
const
;
65
66
// Inherited from WifiInformationElement
67
WifiInformationElementId
ElementId
()
const override
;
68
void
SerializeInformationField
(
Buffer::Iterator
i)
const override
;
69
uint16_t
DeserializeInformationField
(
Buffer::Iterator
start, uint16_t length)
override
;
70
void
Print
(std::ostream& os)
const override
;
71
uint16_t
GetInformationFieldSize
()
const override
;
72
73
private
:
74
uint8_t
m_meshId
[33];
///< mesh ID
75
/**
76
* equality operator
77
*
78
* \param a lhs
79
* \param b lhs
80
* \returns true if equal
81
*/
82
friend
bool
operator==
(
const
IeMeshId
& a,
const
IeMeshId
& b);
83
};
84
85
/**
86
* \brief Stream insertion operator.
87
*
88
* \param [in] os The reference to the output stream.
89
* \param [in] meshId The IeMeshId object.
90
* \returns The reference to the output stream.
91
*/
92
std::ostream&
operator<<
(std::ostream& os,
const
IeMeshId
& meshId);
93
94
}
// namespace dot11s
95
}
// namespace ns3
96
#endif
/* MESH_ID_H */
ns3::Buffer::Iterator
iterator in a Buffer instance
Definition:
buffer.h:100
ns3::WifiInformationElement
Information element, as defined in 802.11-2007 standard.
Definition:
wifi-information-element.h:289
ns3::dot11s::IeMeshId
a IEEE 802.11 Mesh ID element (Section 8.4.2.101 of IEEE 802.11-2012)
Definition:
ie-dot11s-id.h:37
ns3::dot11s::IeMeshId::ElementId
WifiInformationElementId ElementId() const override
Get the wifi information element ID.
Definition:
ie-dot11s-id.cc:57
ns3::dot11s::IeMeshId::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:
ie-dot11s-id.cc:86
ns3::dot11s::IeMeshId::IeMeshId
IeMeshId()
Definition:
ie-dot11s-id.cc:29
ns3::dot11s::IeMeshId::IsBroadcast
bool IsBroadcast() const
Return true if broadcast (if first octet of Mesh ID is zero)
Definition:
ie-dot11s-id.cc:74
ns3::dot11s::IeMeshId::Print
void Print(std::ostream &os) const override
Generate human-readable form of IE.
Definition:
ie-dot11s-id.cc:119
ns3::dot11s::IeMeshId::IsEqual
bool IsEqual(const IeMeshId &o) const
Equality test.
Definition:
ie-dot11s-id.cc:63
ns3::dot11s::IeMeshId::operator==
friend bool operator==(const IeMeshId &a, const IeMeshId &b)
equality operator
Definition:
ie-dot11s-id.cc:125
ns3::dot11s::IeMeshId::m_meshId
uint8_t m_meshId[33]
mesh ID
Definition:
ie-dot11s-id.h:74
ns3::dot11s::IeMeshId::SerializeInformationField
void SerializeInformationField(Buffer::Iterator i) const override
Serialize information (i.e., the body of the IE, not including the Element ID and length octets)
Definition:
ie-dot11s-id.cc:98
ns3::dot11s::IeMeshId::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:
ie-dot11s-id.cc:109
ns3::dot11s::IeMeshId::PeekString
char * PeekString() const
Peek the IeMeshId as a string value.
Definition:
ie-dot11s-id.cc:80
ns3::dot11s::operator<<
std::ostream & operator<<(std::ostream &os, const IeBeaconTiming &a)
Definition:
ie-dot11s-beacon-timing.cc:242
ns3
Every class exported by the ns3 library is enclosed in the ns3 namespace.
ns3::WifiInformationElementId
uint8_t WifiInformationElementId
This type is used to represent an Information Element ID.
Definition:
wifi-information-element.h:45
src
mesh
model
dot11s
ie-dot11s-id.h
Generated on Tue May 28 2024 23:38:07 for ns-3 by
1.9.6