A Discrete-Event Network Simulator
API
Loading...
Searching...
No Matches
capability-information.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2006 INRIA
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: Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
18 */
19
20#ifndef CAPABILITY_INFORMATION_H
21#define CAPABILITY_INFORMATION_H
22
23#include "ns3/buffer.h"
24
25namespace ns3
26{
27
28/**
29 * \ingroup wifi
30 *
31 * Capability information
32 */
34{
35 public:
37
38 /**
39 * Set the Extended Service Set (ESS) bit
40 * in the capability information field.
41 */
42 void SetEss();
43 /**
44 * Set the Independent BSS (IBSS) bit
45 * in the capability information field.
46 */
47 void SetIbss();
48 /**
49 * Set the short preamble bit
50 * in the capability information field.
51 *
52 * \param shortPreamble the short preamble bit
53 *
54 */
55 void SetShortPreamble(bool shortPreamble);
56 /**
57 * Set the short slot time bit
58 * in the capability information field.
59 *
60 * \param shortSlotTime the short preamble bit
61 *
62 */
63 void SetShortSlotTime(bool shortSlotTime);
64 /**
65 * Set the CF-Pollable bit
66 * in the capability information field.
67 */
68 void SetCfPollable();
69
70 /**
71 * Check if the Extended Service Set (ESS) bit
72 * in the capability information field is set to 1.
73 *
74 * \return ESS bit in the capability information
75 * field is set to 1
76 */
77 bool IsEss() const;
78 /**
79 * Check if the Independent BSS (IBSS) bit
80 * in the capability information field is set to 1.
81 *
82 * \return IBSS bit in the capability information
83 * field is set to 1
84 */
85 bool IsIbss() const;
86 /**
87 * Check if the short preamble bit
88 * in the capability information field is set to 1.
89 *
90 * \return short preamble bit in the capability information
91 * field is set to 1
92 */
93 bool IsShortPreamble() const;
94 /**
95 * Check if the short slot time
96 * in the capability information field is set to 1.
97 *
98 * \return short slot time bit in the capability information
99 * field is set to 1
100 */
101 bool IsShortSlotTime() const;
102 /**
103 * Check if the CF-Pollable bit
104 * in the capability information field is set to 1.
105 *
106 * \return CF-Pollable bit in the capability information
107 * field is set to 1
108 */
109 bool IsCfPollable() const;
110
111 /**
112 * Return the serialized size of capability
113 * information.
114 *
115 * \return the serialized size
116 */
118 /**
119 * Serialize capability information to the given buffer.
120 *
121 * \param start an iterator to a buffer
122 * \return an iterator to a buffer after capability information
123 * was serialized
124 */
126 /**
127 * Deserialize capability information from the given buffer.
128 *
129 * \param start an iterator to a buffer
130 * \return an iterator to a buffer after capability information
131 * was deserialized
132 */
134
135 private:
136 /**
137 * Check if bit n is set to 1.
138 *
139 * \param n the bit position
140 *
141 * \return true if bit n is set to 1,
142 * false otherwise
143 */
144 bool Is(uint8_t n) const;
145 /**
146 * Set bit n to 1.
147 *
148 * \param n the bit position
149 */
150 void Set(uint8_t n);
151 /**
152 * Set bit n to 0.
153 *
154 * \param n the bit position
155 */
156 void Clear(uint8_t n);
157
158 uint16_t m_capability; ///< capability
159};
160
161} // namespace ns3
162
163#endif /* CAPABILITY_INFORMATION_H */
iterator in a Buffer instance
Definition: buffer.h:100
void SetEss()
Set the Extended Service Set (ESS) bit in the capability information field.
bool IsShortSlotTime() const
Check if the short slot time in the capability information field is set to 1.
uint32_t GetSerializedSize() const
Return the serialized size of capability information.
void SetCfPollable()
Set the CF-Pollable bit in the capability information field.
Buffer::Iterator Serialize(Buffer::Iterator start) const
Serialize capability information to the given buffer.
void Set(uint8_t n)
Set bit n to 1.
void SetShortSlotTime(bool shortSlotTime)
Set the short slot time bit in the capability information field.
bool IsEss() const
Check if the Extended Service Set (ESS) bit in the capability information field is set to 1.
bool IsIbss() const
Check if the Independent BSS (IBSS) bit in the capability information field is set to 1.
void Clear(uint8_t n)
Set bit n to 0.
void SetShortPreamble(bool shortPreamble)
Set the short preamble bit in the capability information field.
bool Is(uint8_t n) const
Check if bit n is set to 1.
void SetIbss()
Set the Independent BSS (IBSS) bit in the capability information field.
Buffer::Iterator Deserialize(Buffer::Iterator start)
Deserialize capability information from the given buffer.
bool IsCfPollable() const
Check if the CF-Pollable bit in the capability information field is set to 1.
bool IsShortPreamble() const
Check if the short preamble bit in the capability information field is set to 1.
Every class exported by the ns3 library is enclosed in the ns3 namespace.