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
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
/*
25
*This file does not contain all MAC messages, the rest of MAC messages have
26
*This been categorized as DL and UL messages and are placed in
27
*This dl-mac-messages.h and ul-mac-messages.h files.
28
*/
29
30
#ifndef MANAGEMENT_MESSAGE_TYPE_H
31
#define MANAGEMENT_MESSAGE_TYPE_H
32
33
#include <stdint.h>
34
#include "ns3/header.h"
35
36
namespace
ns3 {
37
41
class
ManagementMessageType
:
public
Header
42
{
43
public
:
44
/*
45
* Section 6.3.2.3 MAC Management messages page 42, Table 14 page 43
46
*/
47
enum
MessageType
48
{
49
MESSAGE_TYPE_UCD
= 0,
50
MESSAGE_TYPE_DCD
= 1,
51
MESSAGE_TYPE_DL_MAP
= 2,
52
MESSAGE_TYPE_UL_MAP
= 3,
53
MESSAGE_TYPE_RNG_REQ
= 4,
54
MESSAGE_TYPE_RNG_RSP
= 5,
55
MESSAGE_TYPE_REG_REQ
= 6,
56
MESSAGE_TYPE_REG_RSP
= 7,
57
MESSAGE_TYPE_DSA_REQ
= 11,
58
MESSAGE_TYPE_DSA_RSP
= 12,
59
MESSAGE_TYPE_DSA_ACK
= 13
60
};
61
62
ManagementMessageType
(
void
);
63
ManagementMessageType
(uint8_t type);
64
virtual
~ManagementMessageType
(
void
);
65
void
SetType
(uint8_t type);
66
uint8_t
GetType
(
void
)
const
;
67
68
std::string
GetName
(
void
)
const
;
69
static
TypeId
GetTypeId
(
void
);
70
virtual
TypeId
GetInstanceTypeId
(
void
)
const
;
71
void
Print
(std::ostream &os)
const
;
72
uint32_t
GetSerializedSize
(
void
)
const
;
73
void
Serialize
(
Buffer::Iterator
start
)
const
;
74
uint32_t
Deserialize
(
Buffer::Iterator
start
);
75
private
:
76
uint8_t
m_type
;
77
};
78
79
}
// namespace ns3
80
81
#endif
/* MANAGEMENT_MESSAGE_TYPE_H */
82
83
84
// ----------------------------------------------------------------------------------------------------------
85
86
#ifndef RNG_RSP_H
87
#define RNG_RSP_H
88
89
#include <stdint.h>
90
#include "ns3/header.h"
91
#include "ns3/mac48-address.h"
92
#include "
service-flow.h
"
93
#include "
cid.h
"
94
95
namespace
ns3 {
96
97
class
RngRsp
:
public
Header
98
{
106
public
:
107
RngRsp
(
void
);
108
virtual
~RngRsp
(
void
);
114
void
SetTimingAdjust
(uint32_t timingAdjust);
122
void
SetPowerLevelAdjust
(uint8_t powerLevelAdjust);
128
void
SetOffsetFreqAdjust
(uint32_t offsetFreqAdjust);
129
void
SetRangStatus
(uint8_t rangStatus);
134
void
SetDlFreqOverride
(uint32_t dlFreqOverride);
139
void
SetUlChnlIdOverride
(uint8_t ulChnlIdOverride);
140
void
SetDlOperBurstProfile
(uint16_t dlOperBurstProfile);
141
void
SetMacAddress
(
Mac48Address
macAddress);
142
143
void
SetBasicCid
(
Cid
basicCid);
144
void
SetPrimaryCid
(
Cid
primaryCid);
145
146
void
SetAasBdcastPermission
(uint8_t aasBdcastPermission);
147
void
SetFrameNumber
(uint32_t frameNumber);
148
void
SetInitRangOppNumber
(uint8_t initRangOppNumber);
149
void
SetRangSubchnl
(uint8_t rangSubchnl);
154
uint32_t
GetTimingAdjust
(
void
)
const
;
161
uint8_t
GetPowerLevelAdjust
(
void
)
const
;
166
uint32_t
GetOffsetFreqAdjust
(
void
)
const
;
167
uint8_t
GetRangStatus
(
void
)
const
;
171
uint32_t
GetDlFreqOverride
(
void
)
const
;
175
uint8_t
GetUlChnlIdOverride
(
void
)
const
;
179
uint16_t
GetDlOperBurstProfile
(
void
)
const
;
180
Mac48Address
GetMacAddress
(
void
)
const
;
181
Cid
GetBasicCid
(
void
)
const
;
182
Cid
GetPrimaryCid
(
void
)
const
;
183
uint8_t
GetAasBdcastPermission
(
void
)
const
;
184
uint32_t
GetFrameNumber
(
void
)
const
;
185
uint8_t
GetInitRangOppNumber
(
void
)
const
;
186
uint8_t
GetRangSubchnl
(
void
)
const
;
187
188
std::string
GetName
(
void
)
const
;
189
static
TypeId
GetTypeId
(
void
);
190
virtual
TypeId
GetInstanceTypeId
(
void
)
const
;
191
void
Print
(std::ostream &os)
const
;
192
uint32_t
GetSerializedSize
(
void
)
const
;
193
void
Serialize
(
Buffer::Iterator
start
)
const
;
194
uint32_t
Deserialize
(
Buffer::Iterator
start);
195
private
:
196
uint8_t
m_reserved
;
// changed as per the amendment 802.16e-2005
197
198
// TLV Encoded Information
199
200
// Tx timing offset adjustment (signed 32-bit). The time required to advance SS transmission so frames
201
// arrive at the expected time instance at the BS.
202
uint32_t
m_timingAdjust
;
203
204
// Specifies the relative change in transmission power level that the SS is to make in order that
205
// transmissions arrive at the BS at the desired power. When subchannelization is employed, the
206
// subscriber shall interpret the power offset adjustment as a required change to the transmitted power
207
// density.
208
uint8_t
m_powerLevelAdjust
;
209
210
// Specifies the relative change in transmission frequency that the SS is to make in order to better match
211
// the BS. This is fine-frequency adjustment within a channel, not reassignment to a different channel.
212
uint32_t
m_offsetFreqAdjust
;
213
uint8_t
m_rangStatus
;
214
215
// Center frequency, in kHz, of new downlink channel where the SS should redo initial ranging.
216
uint32_t
m_dlFreqOverride
;
217
218
// Licensed bands: The identifier of the uplink channel with which the SS is to redo initial ranging (not
219
// used with PHYs without channelized uplinks).
220
uint8_t
m_ulChnlIdOverride
;
221
222
// This parameter is sent in response to the RNG-REQ Requested Downlink Burst Profile parameter.
223
// Byte 0: Specifies the least robust DIUC that may be used by the BS for transmissions to the SS.
224
// Byte 1: Configuration Change Count value of DCD defining the burst profile associated with DIUC.
225
uint16_t
m_dlOperBurstProfile
;
226
227
Mac48Address
m_macAddress
;
228
Cid
m_basicCid
;
229
Cid
m_primaryCid
;
230
uint8_t
m_aasBdcastPermission
;
231
232
// Frame number where the associated RNG_REQ message was detected by the BS. Usage is mutually
233
// exclusive with SS MAC Address
234
uint32_t
m_frameNumber
;
235
236
// Initial Ranging opportunity (1–255) in which the associated RNG_REQ message was detected by the BS.
237
// Usage is mutually exclusive with SS MAC Address
238
uint8_t
m_initRangOppNumber
;
239
240
// Used to indicate the OFDM subchannel reference that was used to transmit the initial ranging message
241
// (OFDM with subchannelization).
242
uint8_t
m_rangSubchnl
;
243
};
244
245
}
// namespace ns3
246
247
#endif
/* RNG_RSP_H */
248
249
// ----------------------------------------------------------------------------------------------------------
250
251
#ifndef DSA_REQ_H
252
#define DSA_REQ_H
253
254
#include <stdint.h>
255
#include "ns3/header.h"
256
#include "ns3/buffer.h"
257
#include "
cid.h
"
258
#include "
service-flow.h
"
259
260
namespace
ns3 {
261
class
serviceFlow;
262
class
DsaReq
:
public
Header
263
{
270
public
:
271
DsaReq
();
272
~DsaReq
();
273
DsaReq
(
ServiceFlow
sf);
274
void
SetTransactionId
(uint16_t transactionId);
279
void
SetSfid
(uint32_t sfid);
284
void
SetCid
(
Cid
cid);
289
void
SetServiceFlow
(
ServiceFlow
sf);
293
ServiceFlow
GetServiceFlow
(
void
)
const
;
294
uint16_t
GetTransactionId
(
void
)
const
;
298
uint32_t
GetSfid
(
void
)
const
;
302
Cid
GetCid
(
void
)
const
;
303
std::string
GetName
(
void
)
const
;
304
static
TypeId
GetTypeId
(
void
);
305
virtual
TypeId
GetInstanceTypeId
(
void
)
const
;
306
void
Print
(std::ostream &os)
const
;
307
uint32_t
GetSerializedSize
(
void
)
const
;
308
void
Serialize
(
Buffer::Iterator
start
)
const
;
309
uint32_t
Deserialize
(
Buffer::Iterator
start);
310
311
private
:
312
uint16_t
m_transactionId
;
313
// TLV Encoded Information
314
uint32_t
m_sfid
;
315
Cid
m_cid
;
316
ServiceFlow
m_serviceFlow
;
317
};
318
319
}
// namespace ns3
320
321
#endif
/* DSA_REQ_H */
322
323
// ----------------------------------------------------------------------------------------------------------
324
325
#ifndef DSA_RSP_H
326
#define DSA_RSP_H
327
328
#include <stdint.h>
329
#include "ns3/header.h"
330
#include "ns3/buffer.h"
331
#include "
cid.h
"
332
333
namespace
ns3 {
334
335
class
DsaRsp
:
public
Header
336
{
343
public
:
344
DsaRsp
(
void
);
345
~DsaRsp
(
void
);
346
347
void
SetTransactionId
(uint16_t transactionId);
348
uint16_t
GetTransactionId
(
void
)
const
;
349
350
void
SetConfirmationCode
(uint16_t confirmationCode);
351
uint16_t
GetConfirmationCode
(
void
)
const
;
356
void
SetSfid
(uint32_t sfid);
360
uint32_t
GetSfid
(
void
)
const
;
365
void
SetCid
(
Cid
cid);
369
Cid
GetCid
(
void
)
const
;
374
void
SetServiceFlow
(
ServiceFlow
sf);
378
ServiceFlow
GetServiceFlow
(
void
)
const
;
379
380
std::string
GetName
(
void
)
const
;
381
static
TypeId
GetTypeId
(
void
);
382
virtual
TypeId
GetInstanceTypeId
(
void
)
const
;
383
void
Print
(std::ostream &os)
const
;
384
uint32_t
GetSerializedSize
(
void
)
const
;
385
void
Serialize
(
Buffer::Iterator
start
)
const
;
386
uint32_t
Deserialize
(
Buffer::Iterator
start);
387
private
:
388
uint16_t
m_transactionId
;
389
uint8_t
m_confirmationCode
;
390
// TLV Encoded Information
391
ServiceFlow
m_serviceFlow
;
392
uint32_t
m_sfid
;
393
Cid
m_cid
;
394
395
};
396
397
}
// namespace ns3
398
399
#endif
/* DSA_RSP_H */
400
401
// ----------------------------------------------------------------------------------------------------------
402
403
#ifndef DSA_ACK_H
404
#define DSA_ACK_H
405
406
#include <stdint.h>
407
#include "ns3/header.h"
408
#include "ns3/buffer.h"
409
410
namespace
ns3 {
411
412
class
DsaAck
:
public
Header
413
{
414
420
public
:
421
DsaAck
(
void
);
422
~DsaAck
(
void
);
423
424
void
SetTransactionId
(uint16_t transactionId);
425
uint16_t
GetTransactionId
(
void
)
const
;
426
427
void
SetConfirmationCode
(uint16_t confirmationCode);
428
uint16_t
GetConfirmationCode
(
void
)
const
;
429
430
std::string
GetName
(
void
)
const
;
431
static
TypeId
GetTypeId
(
void
);
432
virtual
TypeId
GetInstanceTypeId
(
void
)
const
;
433
void
Print
(std::ostream &os)
const
;
434
uint32_t
GetSerializedSize
(
void
)
const
;
435
void
Serialize
(
Buffer::Iterator
start
)
const
;
436
uint32_t
Deserialize
(
Buffer::Iterator
start);
437
private
:
438
uint16_t
m_transactionId
;
439
uint8_t
m_confirmationCode
;
440
};
441
442
}
// namespace ns3
443
444
#endif
/* DSA_ACK_H */
445
446
// ----------------------------------------------------------------------------------------------------------
447
448
#ifndef RNG_REQ_H
449
#define RNG_REQ_H
450
451
#include <stdint.h>
452
#include "ns3/header.h"
453
#include "ns3/mac48-address.h"
454
#include "
service-flow.h
"
455
456
namespace
ns3 {
457
458
class
RngReq
:
public
Header
459
{
466
public
:
467
RngReq
(
void
);
468
virtual
~RngReq
(
void
);
469
470
void
SetReqDlBurstProfile
(uint8_t reqDlBurstProfile);
471
void
SetMacAddress
(
Mac48Address
macAddress);
472
void
SetRangingAnomalies
(uint8_t rangingAnomalies);
473
474
uint8_t
GetReqDlBurstProfile
(
void
)
const
;
475
Mac48Address
GetMacAddress
(
void
)
const
;
476
uint8_t
GetRangingAnomalies
(
void
)
const
;
477
478
std::string
GetName
(
void
)
const
;
479
static
TypeId
GetTypeId
(
void
);
480
virtual
TypeId
GetInstanceTypeId
(
void
)
const
;
481
void
Print
(std::ostream &os)
const
;
482
void
PrintDebug
(
void
)
const
;
483
uint32_t
GetSerializedSize
(
void
)
const
;
484
void
Serialize
(
Buffer::Iterator
start
)
const
;
485
uint32_t
Deserialize
(
Buffer::Iterator
start);
486
private
:
487
uint8_t
m_reserved
;
// changed as per the amendment 802.16e-2005
488
489
// TLV Encoded Information
490
uint8_t
m_reqDlBurstProfile
;
491
Mac48Address
m_macAddress
;
492
uint8_t
m_rangingAnomalies
;
493
};
494
495
}
// namespace ns3
496
497
#endif
/* RNG_REQ_H */
498
src
wimax
model
mac-messages.h
Generated on Tue Nov 13 2012 10:32:26 for ns-3 by
1.8.1.2