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
olsr-header.h
Go to the documentation of this file.
1
/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
2
/*
3
* Copyright (c) 2007 INESC Porto
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
* Author: Gustavo J. A. M. Carneiro <gjc@inescporto.pt>
19
*/
20
21
#ifndef OLSR_HEADER_H
22
#define OLSR_HEADER_H
23
24
#include <stdint.h>
25
#include <vector>
26
#include "ns3/header.h"
27
#include "ns3/ipv4-address.h"
28
#include "ns3/nstime.h"
29
30
31
namespace
ns3 {
32
namespace
olsr {
33
34
double
EmfToSeconds
(uint8_t emf);
35
uint8_t
SecondsToEmf
(
double
seconds);
36
37
// 3.3. Packet Format
38
//
39
// The basic layout of any packet in OLSR is as follows (omitting IP and
40
// UDP headers):
41
//
42
// 0 1 2 3
43
// 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
44
// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
45
// | Packet Length | Packet Sequence Number |
46
// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
47
// | Message Type | Vtime | Message Size |
48
// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
49
// | Originator Address |
50
// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
51
// | Time To Live | Hop Count | Message Sequence Number |
52
// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
53
// | |
54
// : MESSAGE :
55
// | |
56
// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
57
// | Message Type | Vtime | Message Size |
58
// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
59
// | Originator Address |
60
// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
61
// | Time To Live | Hop Count | Message Sequence Number |
62
// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
63
// | |
64
// : MESSAGE :
65
// | |
66
// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
67
// : :
68
// (etc.)
69
class
PacketHeader
:
public
Header
70
{
71
public
:
72
PacketHeader
();
73
virtual
~PacketHeader
();
74
75
void
SetPacketLength
(uint16_t length)
76
{
77
m_packetLength
= length;
78
}
79
uint16_t
GetPacketLength
()
const
80
{
81
return
m_packetLength
;
82
}
83
84
void
SetPacketSequenceNumber
(uint16_t seqnum)
85
{
86
m_packetSequenceNumber
= seqnum;
87
}
88
uint16_t
GetPacketSequenceNumber
()
const
89
{
90
return
m_packetSequenceNumber
;
91
}
92
93
private
:
94
uint16_t
m_packetLength
;
95
uint16_t
m_packetSequenceNumber
;
96
97
public
:
98
static
TypeId
GetTypeId
(
void
);
99
virtual
TypeId
GetInstanceTypeId
(
void
)
const
;
100
virtual
void
Print
(std::ostream &os)
const
;
101
virtual
uint32_t
GetSerializedSize
(
void
)
const
;
102
virtual
void
Serialize
(
Buffer::Iterator
start
)
const
;
103
virtual
uint32_t
Deserialize
(
Buffer::Iterator
start
);
104
};
105
106
107
// 0 1 2 3
108
// 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
109
// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
110
// | Message Type | Vtime | Message Size |
111
// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
112
// | Originator Address |
113
// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
114
// | Time To Live | Hop Count | Message Sequence Number |
115
// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
116
class
MessageHeader
:
public
Header
117
{
118
public
:
119
120
enum
MessageType
{
121
HELLO_MESSAGE
= 1,
122
TC_MESSAGE
= 2,
123
MID_MESSAGE
= 3,
124
HNA_MESSAGE
= 4,
125
};
126
127
MessageHeader
();
128
virtual
~MessageHeader
();
129
130
void
SetMessageType
(
MessageType
messageType)
131
{
132
m_messageType
= messageType;
133
}
134
MessageType
GetMessageType
()
const
135
{
136
return
m_messageType
;
137
}
138
139
void
SetVTime
(
Time
time)
140
{
141
m_vTime
=
SecondsToEmf
(time.
GetSeconds
());
142
}
143
Time
GetVTime
()
const
144
{
145
return
Seconds (
EmfToSeconds
(
m_vTime
));
146
}
147
148
void
SetOriginatorAddress
(
Ipv4Address
originatorAddress)
149
{
150
m_originatorAddress
= originatorAddress;
151
}
152
Ipv4Address
GetOriginatorAddress
()
const
153
{
154
return
m_originatorAddress
;
155
}
156
157
void
SetTimeToLive
(uint8_t timeToLive)
158
{
159
m_timeToLive
= timeToLive;
160
}
161
uint8_t
GetTimeToLive
()
const
162
{
163
return
m_timeToLive
;
164
}
165
166
void
SetHopCount
(uint8_t hopCount)
167
{
168
m_hopCount
= hopCount;
169
}
170
uint8_t
GetHopCount
()
const
171
{
172
return
m_hopCount
;
173
}
174
175
void
SetMessageSequenceNumber
(uint16_t messageSequenceNumber)
176
{
177
m_messageSequenceNumber
= messageSequenceNumber;
178
}
179
uint16_t
GetMessageSequenceNumber
()
const
180
{
181
return
m_messageSequenceNumber
;
182
}
183
184
// void SetMessageSize (uint16_t messageSize)
185
// {
186
// m_messageSize = messageSize;
187
// }
188
// uint16_t GetMessageSize () const
189
// {
190
// return m_messageSize;
191
// }
192
193
private
:
194
MessageType
m_messageType
;
195
uint8_t
m_vTime
;
196
Ipv4Address
m_originatorAddress
;
197
uint8_t
m_timeToLive
;
198
uint8_t
m_hopCount
;
199
uint16_t
m_messageSequenceNumber
;
200
uint16_t
m_messageSize
;
201
202
public
:
203
static
TypeId
GetTypeId
(
void
);
204
virtual
TypeId
GetInstanceTypeId
(
void
)
const
;
205
virtual
void
Print
(std::ostream &os)
const
;
206
virtual
uint32_t
GetSerializedSize
(
void
)
const
;
207
virtual
void
Serialize
(
Buffer::Iterator
start
)
const
;
208
virtual
uint32_t
Deserialize
(
Buffer::Iterator
start
);
209
210
// 5.1. MID Message Format
211
//
212
// The proposed format of a MID message is as follows:
213
//
214
// 0 1 2 3
215
// 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
216
// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
217
// | OLSR Interface Address |
218
// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
219
// | OLSR Interface Address |
220
// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
221
// | ... |
222
// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
223
struct
Mid
224
{
225
std::vector<Ipv4Address>
interfaceAddresses
;
226
void
Print
(std::ostream &os)
const
;
227
uint32_t
GetSerializedSize
(
void
)
const
;
228
void
Serialize
(
Buffer::Iterator
start
)
const
;
229
uint32_t
Deserialize
(
Buffer::Iterator
start
, uint32_t messageSize);
230
};
231
232
// 6.1. HELLO Message Format
233
//
234
// 0 1 2 3
235
// 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
236
//
237
// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
238
// | Reserved | Htime | Willingness |
239
// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
240
// | Link Code | Reserved | Link Message Size |
241
// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
242
// | Neighbor Interface Address |
243
// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
244
// | Neighbor Interface Address |
245
// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
246
// : . . . :
247
// : :
248
// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
249
// | Link Code | Reserved | Link Message Size |
250
// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
251
// | Neighbor Interface Address |
252
// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
253
// | Neighbor Interface Address |
254
// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
255
// : :
256
// : :
257
// (etc.)
258
struct
Hello
259
{
260
struct
LinkMessage
{
261
uint8_t
linkCode
;
262
std::vector<Ipv4Address>
neighborInterfaceAddresses
;
263
};
264
265
uint8_t
hTime
;
266
void
SetHTime
(
Time
time)
267
{
268
this->
hTime
=
SecondsToEmf
(time.
GetSeconds
());
269
}
270
Time
GetHTime
()
const
271
{
272
return
Seconds (
EmfToSeconds
(this->
hTime
));
273
}
274
275
uint8_t
willingness
;
276
std::vector<LinkMessage>
linkMessages
;
277
278
void
Print
(std::ostream &os)
const
;
279
uint32_t
GetSerializedSize
(
void
)
const
;
280
void
Serialize
(
Buffer::Iterator
start
)
const
;
281
uint32_t
Deserialize
(
Buffer::Iterator
start
, uint32_t messageSize);
282
};
283
284
// 9.1. TC Message Format
285
//
286
// The proposed format of a TC message is as follows:
287
//
288
// 0 1 2 3
289
// 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
290
// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
291
// | ANSN | Reserved |
292
// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
293
// | Advertised Neighbor Main Address |
294
// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
295
// | Advertised Neighbor Main Address |
296
// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
297
// | ... |
298
// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
299
300
struct
Tc
301
{
302
std::vector<Ipv4Address>
neighborAddresses
;
303
uint16_t
ansn
;
304
305
void
Print
(std::ostream &os)
const
;
306
uint32_t
GetSerializedSize
(
void
)
const
;
307
void
Serialize
(
Buffer::Iterator
start
)
const
;
308
uint32_t
Deserialize
(
Buffer::Iterator
start
, uint32_t messageSize);
309
};
310
311
312
// 12.1. HNA Message Format
313
//
314
// The proposed format of an HNA-message is:
315
//
316
// 0 1 2 3
317
// 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
318
// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
319
// | Network Address |
320
// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
321
// | Netmask |
322
// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
323
// | Network Address |
324
// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
325
// | Netmask |
326
// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
327
// | ... |
328
// +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
329
330
// Note: HNA stands for Host Network Association
331
struct
Hna
332
{
333
struct
Association
334
{
335
Ipv4Address
address
;
336
Ipv4Mask
mask
;
337
};
338
std::vector<Association>
associations
;
339
340
void
Print
(std::ostream &os)
const
;
341
uint32_t
GetSerializedSize
(
void
)
const
;
342
void
Serialize
(
Buffer::Iterator
start
)
const
;
343
uint32_t
Deserialize
(
Buffer::Iterator
start
, uint32_t messageSize);
344
};
345
346
private
:
347
struct
348
{
349
Mid
mid
;
350
Hello
hello
;
351
Tc
tc
;
352
Hna
hna
;
353
}
m_message
;
// union not allowed
354
355
public
:
356
357
Mid
&
GetMid
()
358
{
359
if
(
m_messageType
== 0)
360
{
361
m_messageType
=
MID_MESSAGE
;
362
}
363
else
364
{
365
NS_ASSERT
(
m_messageType
==
MID_MESSAGE
);
366
}
367
return
m_message
.mid;
368
}
369
370
Hello
&
GetHello
()
371
{
372
if
(
m_messageType
== 0)
373
{
374
m_messageType
=
HELLO_MESSAGE
;
375
}
376
else
377
{
378
NS_ASSERT
(
m_messageType
==
HELLO_MESSAGE
);
379
}
380
return
m_message
.hello;
381
}
382
383
Tc
&
GetTc
()
384
{
385
if
(
m_messageType
== 0)
386
{
387
m_messageType
=
TC_MESSAGE
;
388
}
389
else
390
{
391
NS_ASSERT
(
m_messageType
==
TC_MESSAGE
);
392
}
393
return
m_message
.tc;
394
}
395
396
Hna
&
GetHna
()
397
{
398
if
(
m_messageType
== 0)
399
{
400
m_messageType
=
HNA_MESSAGE
;
401
}
402
else
403
{
404
NS_ASSERT
(
m_messageType
==
HNA_MESSAGE
);
405
}
406
return
m_message
.hna;
407
}
408
409
410
const
Mid
&
GetMid
()
const
411
{
412
NS_ASSERT
(
m_messageType
==
MID_MESSAGE
);
413
return
m_message
.mid;
414
}
415
416
const
Hello
&
GetHello
()
const
417
{
418
NS_ASSERT
(
m_messageType
==
HELLO_MESSAGE
);
419
return
m_message
.hello;
420
}
421
422
const
Tc
&
GetTc
()
const
423
{
424
NS_ASSERT
(
m_messageType
==
TC_MESSAGE
);
425
return
m_message
.tc;
426
}
427
428
const
Hna
&
GetHna
()
const
429
{
430
NS_ASSERT
(
m_messageType
==
HNA_MESSAGE
);
431
return
m_message
.hna;
432
}
433
434
435
};
436
437
438
static
inline
std::ostream&
operator<<
(std::ostream& os,
const
PacketHeader
& packet)
439
{
440
packet.
Print
(os);
441
return
os;
442
}
443
444
static
inline
std::ostream&
operator<<
(std::ostream& os,
const
MessageHeader
& message)
445
{
446
message.
Print
(os);
447
return
os;
448
}
449
450
typedef
std::vector<MessageHeader>
MessageList
;
451
452
static
inline
std::ostream&
operator<<
(std::ostream& os,
const
MessageList
& messages)
453
{
454
os <<
"["
;
455
for
(std::vector<MessageHeader>::const_iterator messageIter = messages.begin ();
456
messageIter != messages.end (); messageIter++)
457
{
458
messageIter->Print (os);
459
if
(messageIter+1 != messages.end ())
460
os <<
", "
;
461
}
462
os <<
"]"
;
463
return
os;
464
}
465
466
467
}
468
}
// namespace olsr, ns3
469
470
#endif
/* OLSR_HEADER_H */
471
ns3::Header
Protocol header serialization and deserialization.
Definition:
header.h:42
ns3::olsr::MessageHeader::Tc::Print
void Print(std::ostream &os) const
Definition:
olsr-header.cc:426
ns3::olsr::MessageHeader::m_messageSequenceNumber
uint16_t m_messageSequenceNumber
Definition:
olsr-header.h:199
ns3::Time
keep track of time values and allow control of global simulation resolution
Definition:
nstime.h:81
ns3::olsr::MessageHeader::Mid::Serialize
void Serialize(Buffer::Iterator start) const
Definition:
olsr-header.cc:297
ns3::olsr::MessageHeader::GetOriginatorAddress
Ipv4Address GetOriginatorAddress() const
Definition:
olsr-header.h:152
ns3::olsr::PacketHeader::m_packetLength
uint16_t m_packetLength
Definition:
olsr-header.h:94
ns3::olsr::MessageHeader::TC_MESSAGE
Definition:
olsr-header.h:122
ns3::olsr::MessageHeader::Hello::LinkMessage
Definition:
olsr-header.h:260
ns3::olsr::MessageHeader
Doxygen introspection did not find any typical Config paths.
Definition:
olsr-header.h:116
ns3::olsr::PacketHeader::GetSerializedSize
virtual uint32_t GetSerializedSize(void) const
Definition:
olsr-header.cc:126
ns3::olsr::MessageHeader::Tc
Definition:
olsr-header.h:300
ns3::olsr::MessageHeader::GetMid
Mid & GetMid()
Definition:
olsr-header.h:357
ns3::Ipv4Mask
a class to represent an Ipv4 address mask
Definition:
ipv4-address.h:210
ns3::olsr::MessageHeader::Mid::GetSerializedSize
uint32_t GetSerializedSize(void) const
Definition:
olsr-header.cc:285
ns3::olsr::MessageHeader::GetHna
const Hna & GetHna() const
Definition:
olsr-header.h:428
ns3::olsr::operator<<
static std::ostream & operator<<(std::ostream &os, const PacketHeader &packet)
Definition:
olsr-header.h:438
ns3::olsr::PacketHeader::SetPacketSequenceNumber
void SetPacketSequenceNumber(uint16_t seqnum)
Definition:
olsr-header.h:84
ns3::olsr::MessageHeader::HELLO_MESSAGE
Definition:
olsr-header.h:121
ns3::olsr::MessageHeader::mid
Mid mid
Definition:
olsr-header.h:349
ns3::olsr::MessageHeader::Hello::Deserialize
uint32_t Deserialize(Buffer::Iterator start, uint32_t messageSize)
Definition:
olsr-header.cc:380
NS_ASSERT
#define NS_ASSERT(condition)
Definition:
assert.h:64
ns3::olsr::MessageHeader::Hna::Association::mask
Ipv4Mask mask
Definition:
olsr-header.h:336
ns3::olsr::MessageHeader::GetTc
const Tc & GetTc() const
Definition:
olsr-header.h:422
ns3::olsr::MessageHeader::Hello::SetHTime
void SetHTime(Time time)
Definition:
olsr-header.h:266
ns3::olsr::MessageHeader::m_hopCount
uint8_t m_hopCount
Definition:
olsr-header.h:198
ns3::olsr::PacketHeader::PacketHeader
PacketHeader()
Definition:
olsr-header.cc:102
ns3::olsr::MessageHeader::GetTc
Tc & GetTc()
Definition:
olsr-header.h:383
visualizer.core.start
def start
Definition:
core.py:1482
ns3::olsr::MessageHeader::Hello::linkMessages
std::vector< LinkMessage > linkMessages
Definition:
olsr-header.h:276
ns3::olsr::MessageHeader::GetMessageSequenceNumber
uint16_t GetMessageSequenceNumber() const
Definition:
olsr-header.h:179
ns3::olsr::MessageHeader::Hello::hTime
uint8_t hTime
Definition:
olsr-header.h:265
ns3::olsr::PacketHeader::Deserialize
virtual uint32_t Deserialize(Buffer::Iterator start)
Definition:
olsr-header.cc:146
ns3::olsr::MessageHeader::Tc::ansn
uint16_t ansn
Definition:
olsr-header.h:303
ns3::olsr::PacketHeader::Serialize
virtual void Serialize(Buffer::Iterator start) const
Definition:
olsr-header.cc:138
ns3::olsr::MessageHeader::m_messageType
MessageType m_messageType
Definition:
olsr-header.h:194
ns3::olsr::MessageHeader::SetHopCount
void SetHopCount(uint8_t hopCount)
Definition:
olsr-header.h:166
ns3::olsr::MessageHeader::GetMessageType
MessageType GetMessageType() const
Definition:
olsr-header.h:134
ns3::olsr::MessageHeader::hello
Hello hello
Definition:
olsr-header.h:350
ns3::olsr::MessageHeader::GetVTime
Time GetVTime() const
Definition:
olsr-header.h:143
ns3::olsr::MessageHeader::SetMessageType
void SetMessageType(MessageType messageType)
Definition:
olsr-header.h:130
ns3::Buffer::Iterator
iterator in a Buffer instance
Definition:
buffer.h:98
ns3::olsr::MessageHeader::tc
Tc tc
Definition:
olsr-header.h:351
ns3::olsr::MessageHeader::SetVTime
void SetVTime(Time time)
Definition:
olsr-header.h:139
ns3::olsr::PacketHeader::Print
virtual void Print(std::ostream &os) const
Definition:
olsr-header.cc:132
ns3::olsr::MessageHeader::Mid::interfaceAddresses
std::vector< Ipv4Address > interfaceAddresses
Definition:
olsr-header.h:225
ns3::olsr::MessageHeader::Tc::neighborAddresses
std::vector< Ipv4Address > neighborAddresses
Definition:
olsr-header.h:302
ns3::olsr::MessageHeader::SetTimeToLive
void SetTimeToLive(uint8_t timeToLive)
Definition:
olsr-header.h:157
ns3::olsr::PacketHeader::m_packetSequenceNumber
uint16_t m_packetSequenceNumber
Definition:
olsr-header.h:95
ns3::Time::GetSeconds
double GetSeconds(void) const
Definition:
nstime.h:274
ns3::olsr::MessageHeader::Deserialize
virtual uint32_t Deserialize(Buffer::Iterator start)
Definition:
olsr-header.cc:248
ns3::olsr::MessageHeader::Mid::Deserialize
uint32_t Deserialize(Buffer::Iterator start, uint32_t messageSize)
Definition:
olsr-header.cc:309
ns3::olsr::MessageHeader::Hna::Association
Definition:
olsr-header.h:333
ns3::olsr::MessageHeader::MessageType
MessageType
Definition:
olsr-header.h:120
ns3::olsr::MessageHeader::Hello::Serialize
void Serialize(Buffer::Iterator start) const
Definition:
olsr-header.cc:349
ns3::olsr::MessageHeader::GetInstanceTypeId
virtual TypeId GetInstanceTypeId(void) const
Definition:
olsr-header.cc:179
ns3::olsr::MessageHeader::GetHello
const Hello & GetHello() const
Definition:
olsr-header.h:416
ns3::olsr::MessageHeader::m_originatorAddress
Ipv4Address m_originatorAddress
Definition:
olsr-header.h:196
ns3::olsr::PacketHeader::SetPacketLength
void SetPacketLength(uint16_t length)
Definition:
olsr-header.h:75
ns3::olsr::MessageHeader::GetHna
Hna & GetHna()
Definition:
olsr-header.h:396
ns3::olsr::MessageHeader::m_vTime
uint8_t m_vTime
Definition:
olsr-header.h:195
ns3::olsr::MessageHeader::MessageHeader
MessageHeader()
Definition:
olsr-header.cc:160
ns3::olsr::MessageHeader::Hna::Serialize
void Serialize(Buffer::Iterator start) const
Definition:
olsr-header.cc:482
ns3::olsr::MessageHeader::GetHopCount
uint8_t GetHopCount() const
Definition:
olsr-header.h:170
ns3::olsr::MessageHeader::MID_MESSAGE
Definition:
olsr-header.h:123
ns3::olsr::MessageHeader::GetTimeToLive
uint8_t GetTimeToLive() const
Definition:
olsr-header.h:161
ns3::olsr::MessageHeader::Hello::LinkMessage::linkCode
uint8_t linkCode
Definition:
olsr-header.h:261
ns3::olsr::MessageHeader::Hna::Print
void Print(std::ostream &os) const
Definition:
olsr-header.cc:476
ns3::olsr::MessageHeader::Hello::GetHTime
Time GetHTime() const
Definition:
olsr-header.h:270
ns3::olsr::MessageHeader::Hna::GetSerializedSize
uint32_t GetSerializedSize(void) const
Definition:
olsr-header.cc:470
ns3::olsr::MessageHeader::Print
virtual void Print(std::ostream &os) const
Definition:
olsr-header.cc:210
ns3::olsr::MessageHeader::~MessageHeader
virtual ~MessageHeader()
Definition:
olsr-header.cc:165
ns3::olsr::MessageHeader::Hello::LinkMessage::neighborInterfaceAddresses
std::vector< Ipv4Address > neighborInterfaceAddresses
Definition:
olsr-header.h:262
ns3::olsr::MessageHeader::SetOriginatorAddress
void SetOriginatorAddress(Ipv4Address originatorAddress)
Definition:
olsr-header.h:148
ns3::olsr::MessageHeader::GetTypeId
static TypeId GetTypeId(void)
Definition:
olsr-header.cc:170
ns3::olsr::MessageHeader::Hello::willingness
uint8_t willingness
Definition:
olsr-header.h:275
ns3::olsr::MessageHeader::Hna::associations
std::vector< Association > associations
Definition:
olsr-header.h:338
ns3::olsr::MessageHeader::Hna::Association::address
Ipv4Address address
Definition:
olsr-header.h:335
ns3::olsr::MessageHeader::m_timeToLive
uint8_t m_timeToLive
Definition:
olsr-header.h:197
ns3::olsr::MessageHeader::Mid::Print
void Print(std::ostream &os) const
Definition:
olsr-header.cc:291
ns3::olsr::MessageHeader::Hello::GetSerializedSize
uint32_t GetSerializedSize(void) const
Definition:
olsr-header.cc:329
ns3::olsr::MessageList
std::vector< MessageHeader > MessageList
Definition:
olsr-header.h:450
ns3::olsr::MessageHeader::m_message
struct ns3::olsr::MessageHeader::@84 m_message
ns3::olsr::PacketHeader
Doxygen introspection did not find any typical Config paths.
Definition:
olsr-header.h:69
ns3::olsr::MessageHeader::Tc::Serialize
void Serialize(Buffer::Iterator start) const
Definition:
olsr-header.cc:432
ns3::olsr::PacketHeader::GetInstanceTypeId
virtual TypeId GetInstanceTypeId(void) const
Definition:
olsr-header.cc:120
ns3::olsr::MessageHeader::Hna
Definition:
olsr-header.h:331
ns3::olsr::MessageHeader::hna
Hna hna
Definition:
olsr-header.h:352
ns3::olsr::MessageHeader::GetHello
Hello & GetHello()
Definition:
olsr-header.h:370
ns3::Ipv4Address
Ipv4 addresses are stored in host order in this class.
Definition:
ipv4-address.h:38
ns3::olsr::MessageHeader::GetMid
const Mid & GetMid() const
Definition:
olsr-header.h:410
ns3::olsr::MessageHeader::Tc::GetSerializedSize
uint32_t GetSerializedSize(void) const
Definition:
olsr-header.cc:420
ns3::olsr::MessageHeader::Hello
Definition:
olsr-header.h:258
ns3::olsr::MessageHeader::Hello::Print
void Print(std::ostream &os) const
Definition:
olsr-header.cc:343
ns3::olsr::MessageHeader::Tc::Deserialize
uint32_t Deserialize(Buffer::Iterator start, uint32_t messageSize)
Definition:
olsr-header.cc:447
ns3::olsr::MessageHeader::Mid
Definition:
olsr-header.h:223
ns3::olsr::MessageHeader::m_messageSize
uint16_t m_messageSize
Definition:
olsr-header.h:200
ns3::olsr::PacketHeader::~PacketHeader
virtual ~PacketHeader()
Definition:
olsr-header.cc:106
ns3::olsr::SecondsToEmf
uint8_t SecondsToEmf(double seconds)
Converts a decimal number of seconds to the mantissa/exponent format.
Definition:
olsr-header.cc:48
ns3::olsr::MessageHeader::HNA_MESSAGE
Definition:
olsr-header.h:124
ns3::olsr::PacketHeader::GetPacketSequenceNumber
uint16_t GetPacketSequenceNumber() const
Definition:
olsr-header.h:88
ns3::olsr::PacketHeader::GetTypeId
static TypeId GetTypeId(void)
Definition:
olsr-header.cc:111
ns3::olsr::MessageHeader::SetMessageSequenceNumber
void SetMessageSequenceNumber(uint16_t messageSequenceNumber)
Definition:
olsr-header.h:175
ns3::olsr::EmfToSeconds
double EmfToSeconds(uint8_t olsrFormat)
Converts a number of seconds in the mantissa/exponent format to a decimal number. ...
Definition:
olsr-header.cc:87
ns3::olsr::MessageHeader::GetSerializedSize
virtual uint32_t GetSerializedSize(void) const
Definition:
olsr-header.cc:185
ns3::TypeId
a unique identifier for an interface.
Definition:
type-id.h:49
ns3::olsr::MessageHeader::Hna::Deserialize
uint32_t Deserialize(Buffer::Iterator start, uint32_t messageSize)
Definition:
olsr-header.cc:494
ns3::olsr::PacketHeader::GetPacketLength
uint16_t GetPacketLength() const
Definition:
olsr-header.h:79
ns3::olsr::MessageHeader::Serialize
virtual void Serialize(Buffer::Iterator start) const
Definition:
olsr-header.cc:216
src
olsr
model
olsr-header.h
Generated on Sat Apr 19 2014 14:07:06 for ns-3 by
1.8.6