A Discrete-Event Network Simulator
Home
Tutorials ▼
English
Portuguese
Docs ▼
Wiki
Manual
Models
Develop ▼
API
Bugs
API
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Properties
Friends
Macros
Groups
Pages
ul-mac-messages.h
Go to the documentation of this file.
1
/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
2
/*
3
* Copyright (c) 2007,2008,2009 INRIA, UDcast
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
* Authors: Jahanzeb Farooq <jahanzeb.farooq@sophia.inria.fr>
19
* Mohamed Amine Ismail <amine.ismail@sophia.inria.fr>
20
* <amine.ismail@UDcast.com>
21
*/
22
23
24
#ifndef UCD_CHANNEL_ENCODINGS_H
25
#define UCD_CHANNEL_ENCODINGS_H
26
27
#include <stdint.h>
28
#include "ns3/buffer.h"
29
#include <list>
30
31
namespace
ns3 {
32
40
class
UcdChannelEncodings
41
{
42
public
:
43
UcdChannelEncodings
(
void
);
44
virtual
~UcdChannelEncodings
(
void
);
45
46
void
SetBwReqOppSize
(uint16_t bwReqOppSize);
47
void
SetRangReqOppSize
(uint16_t rangReqOppSize);
48
void
SetFrequency
(uint32_t frequency);
49
50
uint16_t
GetBwReqOppSize
(
void
)
const
;
51
uint16_t
GetRangReqOppSize
(
void
)
const
;
52
uint32_t
GetFrequency
(
void
)
const
;
53
54
uint16_t
GetSize
(
void
)
const
;
55
56
Buffer::Iterator
Write
(
Buffer::Iterator
start
)
const
;
57
Buffer::Iterator
Read
(
Buffer::Iterator
start);
58
private
:
59
virtual
Buffer::Iterator
DoWrite
(
Buffer::Iterator
start)
const
= 0;
60
virtual
Buffer::Iterator
DoRead
(
Buffer::Iterator
start) = 0;
61
62
63
uint16_t
m_bwReqOppSize
;
64
uint16_t
m_rangReqOppSize
;
65
uint32_t
m_frequency
;
66
};
67
68
}
// namespace ns3
69
70
#endif
/* UCD_CHANNEL_ENCODINGS_H */
71
72
// ----------------------------------------------------------------------------------------------------------
73
74
#ifndef OFDM_UCD_CHANNEL_ENCODINGS_H
75
#define OFDM_UCD_CHANNEL_ENCODINGS_H
76
77
#include <stdint.h>
78
79
namespace
ns3 {
80
81
class
OfdmUcdChannelEncodings
:
public
UcdChannelEncodings
82
{
89
public
:
90
OfdmUcdChannelEncodings
(
void
);
91
~OfdmUcdChannelEncodings
(
void
);
92
93
void
SetSbchnlReqRegionFullParams
(uint8_t sbchnlReqRegionFullParams);
94
void
SetSbchnlFocContCodes
(uint8_t sbchnlFocContCodes);
95
96
uint8_t
GetSbchnlReqRegionFullParams
(
void
)
const
;
97
uint8_t
GetSbchnlFocContCodes
(
void
)
const
;
98
99
uint16_t
GetSize
(
void
)
const
;
100
private
:
101
virtual
Buffer::Iterator
DoWrite
(
Buffer::Iterator
start
)
const
;
102
virtual
Buffer::Iterator
DoRead
(
Buffer::Iterator
start);
103
104
uint8_t
m_sbchnlReqRegionFullParams
;
105
uint8_t
m_sbchnlFocContCodes
;
106
};
107
108
}
// namespace ns3
109
110
#endif
/* OFDM_UCD_CHANNEL_ENCODINGS_H */
111
112
// ----------------------------------------------------------------------------------------------------------
113
114
#ifndef OFDM_UL_BURST_PROFILE_H
115
#define OFDM_UL_BURST_PROFILE_H
116
117
#include <stdint.h>
118
#include "ns3/buffer.h"
119
120
namespace
ns3 {
121
122
class
OfdmUlBurstProfile
123
{
130
public
:
131
enum
Uiuc
132
{
133
UIUC_INITIAL_RANGING
= 1,
134
UIUC_REQ_REGION_FULL
,
135
UIUC_REQ_REGION_FOCUSED
,
136
UIUC_FOCUSED_CONTENTION_IE
,
137
UIUC_BURST_PROFILE_5
,
138
UIUC_BURST_PROFILE_6
,
139
UIUC_BURST_PROFILE_7
,
140
UIUC_BURST_PROFILE_8
,
141
UIUC_BURST_PROFILE_9
,
142
UIUC_BURST_PROFILE_10
,
143
UIUC_BURST_PROFILE_11
,
144
UIUC_BURST_PROFILE_12
,
145
UIUC_SUBCH_NETWORK_ENTRY
,
146
UIUC_END_OF_MAP
147
};
148
149
OfdmUlBurstProfile
(
void
);
150
~OfdmUlBurstProfile
(
void
);
151
152
void
SetType
(uint8_t type);
153
void
SetLength
(uint8_t length);
154
void
SetUiuc
(uint8_t uiuc);
155
void
SetFecCodeType
(uint8_t fecCodeType);
156
157
uint8_t
GetType
(
void
)
const
;
158
uint8_t
GetLength
(
void
)
const
;
159
uint8_t
GetUiuc
(
void
)
const
;
160
uint8_t
GetFecCodeType
(
void
)
const
;
161
162
uint16_t
GetSize
(
void
)
const
;
163
164
Buffer::Iterator
Write
(
Buffer::Iterator
start
)
const
;
165
Buffer::Iterator
Read
(
Buffer::Iterator
start
);
166
private
:
167
uint8_t
m_type
;
168
uint8_t
m_length
;
169
uint8_t
m_uiuc
;
170
171
// TLV Encoded information
172
uint8_t
m_fecCodeType
;
173
};
174
175
}
// namespace ns3
176
177
#endif
/* OFDM_UL_BURST_PROFILE_H */
178
179
// ----------------------------------------------------------------------------------------------------------
180
181
#ifndef UCD_H
182
#define UCD_H
183
184
#include <stdint.h>
185
#include "ns3/header.h"
186
#include <vector>
187
188
namespace
ns3 {
189
190
class
Ucd
:
public
Header
191
{
198
public
:
199
Ucd
(
void
);
200
virtual
~Ucd
(
void
);
201
202
void
SetConfigurationChangeCount
(uint8_t ucdCount);
203
void
SetRangingBackoffStart
(uint8_t rangingBackoffStart);
204
void
SetRangingBackoffEnd
(uint8_t rangingBackoffEnd);
205
void
SetRequestBackoffStart
(uint8_t requestBackoffStart);
206
void
SetRequestBackoffEnd
(uint8_t requestBackoffEnd);
207
void
SetChannelEncodings
(
OfdmUcdChannelEncodings
channelEncodings);
208
void
AddUlBurstProfile
(
OfdmUlBurstProfile
ulBurstProfile);
209
void
SetNrUlBurstProfiles
(uint8_t nrUlBurstProfiles);
210
211
uint8_t
GetConfigurationChangeCount
(
void
)
const
;
212
uint8_t
GetRangingBackoffStart
(
void
)
const
;
213
uint8_t
GetRangingBackoffEnd
(
void
)
const
;
214
uint8_t
GetRequestBackoffStart
(
void
)
const
;
215
uint8_t
GetRequestBackoffEnd
(
void
)
const
;
216
OfdmUcdChannelEncodings
GetChannelEncodings
(
void
)
const
;
217
std::vector<OfdmUlBurstProfile>
GetUlBurstProfiles
(
void
)
const
;
218
uint8_t
GetNrUlBurstProfiles
(
void
)
const
;
219
220
std::string
GetName
(
void
)
const
;
221
static
TypeId
GetTypeId
(
void
);
222
virtual
TypeId
GetInstanceTypeId
(
void
)
const
;
223
void
Print
(std::ostream &os)
const
;
224
uint32_t
GetSerializedSize
(
void
)
const
;
225
void
Serialize
(
Buffer::Iterator
start
)
const
;
226
uint32_t
Deserialize
(
Buffer::Iterator
start);
227
private
:
228
uint8_t
m_configurationChangeCount
;
229
uint8_t
m_rangingBackoffStart
;
230
uint8_t
m_rangingBackoffEnd
;
231
uint8_t
m_requestBackoffStart
;
232
uint8_t
m_requestBackoffEnd
;
233
OfdmUcdChannelEncodings
m_channelEncodings
;
// TLV Encoded information for the overall channel
234
std::vector<OfdmUlBurstProfile>
m_ulBurstProfiles
;
235
236
uint8_t
m_nrUlBurstProfiles
;
237
};
238
239
}
// namespace ns3
240
241
#endif
/* UCD_H */
242
243
// ----------------------------------------------------------------------------------------------------------
244
245
#ifndef OFDM_UL_MAP_IE_H
246
#define OFDM_UL_MAP_IE_H
247
248
#include <stdint.h>
249
#include "ns3/header.h"
250
#include "
cid.h
"
251
252
namespace
ns3 {
253
254
class
OfdmUlMapIe
255
{
263
public
:
264
OfdmUlMapIe
(
void
);
265
~OfdmUlMapIe
(
void
);
266
267
void
SetCid
(
Cid
cid);
268
void
SetStartTime
(uint16_t startTime);
269
void
SetSubchannelIndex
(uint8_t subchannelIndex);
270
void
SetUiuc
(uint8_t uiuc);
271
void
SetDuration
(uint16_t duration);
272
void
SetMidambleRepetitionInterval
(uint8_t midambleRepetitionInterval);
273
274
Cid
GetCid
(
void
)
const
;
275
uint16_t
GetStartTime
(
void
)
const
;
276
uint8_t
GetSubchannelIndex
(
void
)
const
;
277
uint8_t
GetUiuc
(
void
)
const
;
278
uint16_t
GetDuration
(
void
)
const
;
279
uint8_t
GetMidambleRepetitionInterval
(
void
)
const
;
280
281
uint16_t
GetSize
(
void
)
const
;
282
283
Buffer::Iterator
Write
(
Buffer::Iterator
start
)
const
;
284
Buffer::Iterator
Read
(
Buffer::Iterator
start);
285
private
:
286
Cid
m_cid
;
287
uint16_t
m_startTime
;
288
uint8_t
m_subchannelIndex
;
289
uint8_t
m_uiuc
;
290
uint16_t
m_duration
;
291
uint8_t
m_midambleRepetitionInterval
;
292
293
// fields to be implemented later on:
294
// m_focusedContentionIe()
295
// m_subchannelizedNetworkEntryIe()
296
// m_ulExtendedIe()
297
// m_paddingNibble;
298
};
299
300
}
// namespace ns3
301
302
#endif
/* OFDM_UL_MAP_IE_H */
303
304
// ----------------------------------------------------------------------------------------------------------
305
306
#ifndef UL_MAP_H
307
#define UL_MAP_H
308
309
#include <stdint.h>
310
#include "ns3/header.h"
311
#include <vector>
312
313
namespace
ns3 {
314
315
class
UlMap
:
public
Header
316
{
323
public
:
324
UlMap
(
void
);
325
virtual
~UlMap
(
void
);
326
327
void
SetUcdCount
(uint8_t ucdCount);
328
void
SetAllocationStartTime
(uint32_t allocationStartTime);
329
void
AddUlMapElement
(
OfdmUlMapIe
ulMapElement);
330
331
uint8_t
GetUcdCount
(
void
)
const
;
332
uint32_t
GetAllocationStartTime
(
void
)
const
;
333
std::list<OfdmUlMapIe>
GetUlMapElements
(
void
)
const
;
334
335
std::string
GetName
(
void
)
const
;
336
static
TypeId
GetTypeId
(
void
);
337
virtual
TypeId
GetInstanceTypeId
(
void
)
const
;
338
void
Print
(std::ostream &os)
const
;
339
uint32_t
GetSerializedSize
(
void
)
const
;
340
void
Serialize
(
Buffer::Iterator
start
)
const
;
341
uint32_t
Deserialize
(
Buffer::Iterator
start);
342
private
:
343
uint8_t
m_reserved
;
// changed as per the amendment 802.16e-2005
344
345
uint8_t
m_ucdCount
;
346
uint32_t
m_allocationStartTime
;
347
std::list<OfdmUlMapIe>
m_ulMapElements
;
348
};
349
350
}
// namespace ns3
351
352
#endif
/* UL_MAP_H */
353
src
wimax
model
ul-mac-messages.h
Generated on Tue Oct 9 2012 16:45:50 for ns-3 by
1.8.1.2