A Discrete-Event Network Simulator
Home
Tutorials ▼
English
Portuguese
Docs ▼
Wiki
Manual
Models
Develop ▼
API
Bugs
API
src
uan
model
uan-header-rc.cc
Go to the documentation of this file.
1
/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
2
/*
3
* Copyright (c) 2009 University of Washington
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: Leonard Tracy <lentracy@gmail.com>
19
*/
20
21
22
#include "
uan-header-rc.h
"
23
#include "ns3/mac8-address.h"
24
25
#include <set>
26
27
namespace
ns3
{
28
29
NS_OBJECT_ENSURE_REGISTERED
(UanHeaderRcData);
30
NS_OBJECT_ENSURE_REGISTERED
(UanHeaderRcRts);
31
NS_OBJECT_ENSURE_REGISTERED
(UanHeaderRcCtsGlobal);
32
NS_OBJECT_ENSURE_REGISTERED
(UanHeaderRcCts);
33
NS_OBJECT_ENSURE_REGISTERED
(UanHeaderRcAck);
34
35
UanHeaderRcData::UanHeaderRcData
()
36
:
Header
(),
37
m_frameNo (0),
38
m_propDelay (
Seconds
(0))
39
{
40
}
41
42
UanHeaderRcData::UanHeaderRcData
(uint8_t frameNo,
Time
propDelay)
43
:
Header
(),
44
m_frameNo (frameNo),
45
m_propDelay (propDelay)
46
{
47
48
}
49
50
UanHeaderRcData::~UanHeaderRcData
()
51
{
52
}
53
54
TypeId
55
UanHeaderRcData::GetTypeId
()
56
{
57
static
TypeId
tid =
TypeId
(
"ns3::UanHeaderRcData"
)
58
.
SetParent
<
Header
> ()
59
.SetGroupName (
"Uan"
)
60
.AddConstructor<
UanHeaderRcData
> ()
61
;
62
return
tid;
63
}
64
65
void
66
UanHeaderRcData::SetFrameNo
(uint8_t no)
67
{
68
m_frameNo
= no;
69
}
70
71
void
72
UanHeaderRcData::SetPropDelay
(
Time
propDelay)
73
{
74
m_propDelay
= propDelay;
75
}
76
77
uint8_t
78
UanHeaderRcData::GetFrameNo
(
void
)
const
79
{
80
return
m_frameNo
;
81
}
82
83
Time
84
UanHeaderRcData::GetPropDelay
(
void
)
const
85
{
86
return
m_propDelay
;
87
}
88
89
uint32_t
90
UanHeaderRcData::GetSerializedSize
(
void
)
const
91
{
92
return
1 + 2;
93
}
94
95
void
96
UanHeaderRcData::Serialize
(
Buffer::Iterator
start
)
const
97
{
98
start
.WriteU8 (
m_frameNo
);
99
start
.WriteU16 ( (uint16_t)(1000.0 *
m_propDelay
.
GetSeconds
() + 0.5));
100
}
101
uint32_t
102
UanHeaderRcData::Deserialize
(
Buffer::Iterator
start
)
103
{
104
Buffer::Iterator
rbuf =
start
;
105
106
m_frameNo
=
start
.ReadU8 ();
107
m_propDelay
=
Seconds
( ((
double
)
start
.ReadU16 ()) / 1000.0 );
108
109
return
rbuf.
GetDistanceFrom
(
start
);
110
}
111
112
void
113
UanHeaderRcData::Print
(std::ostream &os)
const
114
{
115
os <<
"Frame No="
<< (uint32_t)
m_frameNo
<<
" Prop Delay="
<<
m_propDelay
.
GetSeconds
();
116
}
117
118
TypeId
119
UanHeaderRcData::GetInstanceTypeId
(
void
)
const
120
{
121
return
GetTypeId
();
122
}
123
124
125
UanHeaderRcRts::UanHeaderRcRts
()
126
:
Header
(),
127
m_frameNo (0),
128
m_noFrames (0),
129
m_length (0),
130
m_timeStamp (
Seconds
(0)),
131
m_retryNo (0)
132
{
133
134
}
135
136
UanHeaderRcRts::UanHeaderRcRts
(uint8_t frameNo, uint8_t retryNo, uint8_t noFrames, uint16_t length,
Time
timeStamp)
137
:
Header
(),
138
m_frameNo (frameNo),
139
m_noFrames (noFrames),
140
m_length (length),
141
m_timeStamp (timeStamp),
142
m_retryNo (retryNo)
143
{
144
145
}
146
147
UanHeaderRcRts::~UanHeaderRcRts
()
148
{
149
150
}
151
152
TypeId
153
UanHeaderRcRts::GetTypeId
()
154
{
155
static
TypeId
tid =
TypeId
(
"ns3::UanHeaderRcRts"
)
156
.
SetParent
<
Header
> ()
157
.SetGroupName (
"Uan"
)
158
.AddConstructor<
UanHeaderRcRts
> ()
159
;
160
return
tid;
161
162
}
163
164
void
165
UanHeaderRcRts::SetFrameNo
(uint8_t no)
166
{
167
m_frameNo
= no;
168
}
169
170
void
171
UanHeaderRcRts::SetNoFrames
(uint8_t no)
172
{
173
m_noFrames
= no;
174
}
175
176
void
177
UanHeaderRcRts::SetLength
(uint16_t length)
178
{
179
m_length
= length;
180
}
181
void
182
UanHeaderRcRts::SetTimeStamp
(
Time
timeStamp)
183
{
184
m_timeStamp
= timeStamp;
185
}
186
187
void
188
UanHeaderRcRts::SetRetryNo
(uint8_t no)
189
{
190
m_retryNo
= no;
191
}
192
uint8_t
193
UanHeaderRcRts::GetNoFrames
()
const
194
{
195
return
m_noFrames
;
196
}
197
198
uint16_t
199
UanHeaderRcRts::GetLength
()
const
200
{
201
return
m_length
;
202
}
203
204
Time
205
UanHeaderRcRts::GetTimeStamp
(
void
)
const
206
{
207
return
m_timeStamp
;
208
}
209
210
uint8_t
211
UanHeaderRcRts::GetRetryNo
(
void
)
const
212
{
213
return
m_retryNo
;
214
}
215
216
uint8_t
217
UanHeaderRcRts::GetFrameNo
(
void
)
const
218
{
219
return
m_frameNo
;
220
}
221
222
uint32_t
223
UanHeaderRcRts::GetSerializedSize
(
void
)
const
224
{
225
return
1 + 1 + 1 + 4 + 2;
226
}
227
228
void
229
UanHeaderRcRts::Serialize
(
Buffer::Iterator
start
)
const
230
{
231
start
.WriteU8 (
m_frameNo
);
232
start
.WriteU8 (
m_retryNo
);
233
start
.WriteU8 (
m_noFrames
);
234
start
.WriteU16 (
m_length
);
235
start
.WriteU32 ((uint32_t)(
m_timeStamp
.
GetSeconds
() * 1000.0 + 0.5));
236
// start.WriteU16(uint16_t (m_timeStamp.GetSeconds ()*1000));
237
}
238
239
uint32_t
240
UanHeaderRcRts::Deserialize
(
Buffer::Iterator
start
)
241
{
242
Buffer::Iterator
rbuf =
start
;
243
m_frameNo
= rbuf.
ReadU8
();
244
m_retryNo
= rbuf.
ReadU8
();
245
m_noFrames
= rbuf.
ReadU8
();
246
m_length
= rbuf.
ReadU16
();
247
m_timeStamp
=
Seconds
( ((
double
) rbuf.
ReadU32
()) / 1000.0 );
248
// m_timeStamp = Seconds ( rbuf.ReadU16 ()/1000 );
249
return
rbuf.
GetDistanceFrom
(
start
);
250
}
251
252
void
253
UanHeaderRcRts::Print
(std::ostream &os)
const
254
{
255
os <<
"Frame #="
<< (uint32_t)
m_frameNo
<<
" Retry #="
<< (uint32_t)
m_retryNo
<<
" Num Frames="
<< (uint32_t)
m_noFrames
<<
"Length="
<<
m_length
<<
" Time Stamp="
<<
m_timeStamp
.
GetSeconds
();
256
}
257
258
TypeId
259
UanHeaderRcRts::GetInstanceTypeId
(
void
)
const
260
{
261
return
GetTypeId
();
262
}
263
264
265
266
267
UanHeaderRcCtsGlobal::UanHeaderRcCtsGlobal
()
268
:
Header
(),
269
m_retryRate (0),
270
m_rateNum (0)
271
{
272
273
}
274
275
UanHeaderRcCtsGlobal::UanHeaderRcCtsGlobal
(
Time
wt,
Time
ts, uint16_t rate, uint16_t retryRate)
276
:
Header
(),
277
m_timeStampTx (ts),
278
m_winTime (wt),
279
m_retryRate (retryRate),
280
m_rateNum (rate)
281
{
282
283
}
284
285
UanHeaderRcCtsGlobal::~UanHeaderRcCtsGlobal
()
286
{
287
288
}
289
290
TypeId
291
UanHeaderRcCtsGlobal::GetTypeId
()
292
{
293
static
TypeId
tid =
TypeId
(
"ns3::UanHeaderRcCtsGlobal"
)
294
.
SetParent
<
Header
> ()
295
.SetGroupName (
"Uan"
)
296
.AddConstructor<
UanHeaderRcCtsGlobal
> ()
297
;
298
return
tid;
299
300
}
301
302
303
void
304
UanHeaderRcCtsGlobal::SetRateNum
(uint16_t rate)
305
{
306
m_rateNum
= rate;
307
}
308
309
void
310
UanHeaderRcCtsGlobal::SetRetryRate
(uint16_t rate)
311
{
312
m_retryRate
= rate;
313
}
314
315
void
316
UanHeaderRcCtsGlobal::SetWindowTime
(
Time
t)
317
{
318
m_winTime
= t;
319
}
320
321
void
322
UanHeaderRcCtsGlobal::SetTxTimeStamp
(
Time
t)
323
{
324
m_timeStampTx
= t;
325
}
326
327
Time
328
UanHeaderRcCtsGlobal::GetWindowTime
(
void
)
const
329
{
330
return
m_winTime
;
331
}
332
333
Time
334
UanHeaderRcCtsGlobal::GetTxTimeStamp
(
void
)
const
335
{
336
return
m_timeStampTx
;
337
}
338
339
uint16_t
340
UanHeaderRcCtsGlobal::GetRetryRate
(
void
)
const
341
{
342
return
m_retryRate
;
343
}
344
345
uint16_t
346
UanHeaderRcCtsGlobal::GetRateNum
(
void
)
const
347
{
348
return
m_rateNum
;
349
}
350
uint32_t
351
UanHeaderRcCtsGlobal::GetSerializedSize
(
void
)
const
352
{
353
return
4 + 4 + 2 + 2;
354
}
355
356
void
357
UanHeaderRcCtsGlobal::Serialize
(
Buffer::Iterator
start
)
const
358
{
359
start
.WriteU16 (
m_rateNum
);
360
start
.WriteU16 (
m_retryRate
);
361
start
.WriteU32 ( (uint32_t)(
m_timeStampTx
.
GetSeconds
() * 1000.0 + 0.5));
362
start
.WriteU32 ( (uint32_t)(
m_winTime
.
GetSeconds
() * 1000.0 + 0.5));
363
}
364
365
uint32_t
366
UanHeaderRcCtsGlobal::Deserialize
(
Buffer::Iterator
start
)
367
{
368
Buffer::Iterator
rbuf =
start
;
369
m_rateNum
= rbuf.
ReadU16
();
370
m_retryRate
= rbuf.
ReadU16
();
371
m_timeStampTx
=
Seconds
( ( (
double
) rbuf.
ReadU32
()) / 1000.0 );
372
m_winTime
=
Seconds
( ( (
double
) rbuf.
ReadU32
()) / 1000.0 );
373
return
rbuf.
GetDistanceFrom
(
start
);
374
375
}
376
377
void
378
UanHeaderRcCtsGlobal::Print
(std::ostream &os)
const
379
{
380
os <<
"CTS Global (Rate #="
<<
m_rateNum
<<
", Retry Rate="
<<
m_retryRate
<<
", TX Time="
<<
m_timeStampTx
.
GetSeconds
() <<
", Win Time="
<<
m_winTime
.
GetSeconds
() <<
")"
;
381
}
382
383
TypeId
384
UanHeaderRcCtsGlobal::GetInstanceTypeId
(
void
)
const
385
{
386
return
GetTypeId
();
387
}
388
389
UanHeaderRcCts::UanHeaderRcCts
()
390
:
Header
(),
391
m_frameNo (0),
392
m_timeStampRts (
Seconds
(0)),
393
m_retryNo (0),
394
m_delay (
Seconds
(0)),
395
m_address (
Mac8Address
::GetBroadcast ())
396
{
397
398
}
399
400
UanHeaderRcCts::UanHeaderRcCts
(uint8_t frameNo, uint8_t retryNo,
Time
ts,
Time
delay,
Mac8Address
addr)
401
:
Header
(),
402
m_frameNo (frameNo),
403
m_timeStampRts (ts),
404
m_retryNo (retryNo),
405
m_delay (delay),
406
m_address (addr)
407
{
408
409
}
410
411
UanHeaderRcCts::~UanHeaderRcCts
()
412
{
413
414
}
415
416
TypeId
417
UanHeaderRcCts::GetTypeId
()
418
{
419
static
TypeId
tid =
TypeId
(
"ns3::UanHeaderRcCts"
)
420
.
SetParent
<
Header
> ()
421
.SetGroupName (
"Uan"
)
422
.AddConstructor<
UanHeaderRcCts
> ()
423
;
424
return
tid;
425
426
}
427
428
void
429
UanHeaderRcCts::SetFrameNo
(uint8_t frameNo)
430
{
431
m_frameNo
= frameNo;
432
}
433
434
void
435
UanHeaderRcCts::SetRtsTimeStamp
(
Time
timeStamp)
436
{
437
m_timeStampRts
= timeStamp;
438
}
439
440
441
void
442
UanHeaderRcCts::SetDelayToTx
(
Time
delay)
443
{
444
m_delay
= delay;
445
}
446
447
void
448
UanHeaderRcCts::SetRetryNo
(uint8_t no)
449
{
450
m_retryNo
= no;
451
}
452
453
void
454
UanHeaderRcCts::SetAddress
(
Mac8Address
addr)
455
{
456
m_address
= addr;
457
}
458
uint8_t
459
UanHeaderRcCts::GetFrameNo
()
const
460
{
461
return
m_frameNo
;
462
}
463
464
Time
465
UanHeaderRcCts::GetRtsTimeStamp
(
void
)
const
466
{
467
return
m_timeStampRts
;
468
}
469
470
Time
471
UanHeaderRcCts::GetDelayToTx
(
void
)
const
472
{
473
return
m_delay
;
474
}
475
476
uint8_t
477
UanHeaderRcCts::GetRetryNo
()
const
478
{
479
return
m_retryNo
;
480
}
481
482
Mac8Address
483
UanHeaderRcCts::GetAddress
()
const
484
{
485
return
m_address
;
486
}
487
488
uint32_t
489
UanHeaderRcCts::GetSerializedSize
(
void
)
const
490
{
491
return
1 + 1 + 1 + 4 + 4;
492
}
493
494
495
void
496
UanHeaderRcCts::Serialize
(
Buffer::Iterator
start
)
const
497
{
498
uint8_t
address
= 0;
499
m_address
.
CopyTo
(&
address
);
500
start
.WriteU8 (
address
);
501
start
.WriteU8 (
m_frameNo
);
502
start
.WriteU8 (
m_retryNo
);
503
start
.WriteU32 ((uint32_t)(
m_timeStampRts
.
GetSeconds
() * 1000.0 + 0.5));
504
start
.WriteU32 ((uint32_t)(
m_delay
.
GetSeconds
() * 1000.0 + 0.5));
505
}
506
507
uint32_t
508
UanHeaderRcCts::Deserialize
(
Buffer::Iterator
start
)
509
{
510
Buffer::Iterator
rbuf =
start
;
511
m_address
=
Mac8Address
(rbuf.
ReadU8
());
512
m_frameNo
= rbuf.
ReadU8
();
513
m_retryNo
= rbuf.
ReadU8
();
514
m_timeStampRts
=
Seconds
( ( (
double
) rbuf.
ReadU32
()) / 1000.0 );
515
m_delay
=
Seconds
( ( (
double
) rbuf.
ReadU32
()) / 1000.0 );
516
517
return
rbuf.
GetDistanceFrom
(
start
);
518
}
519
520
void
521
UanHeaderRcCts::Print
(std::ostream &os)
const
522
{
523
os <<
"CTS (Addr="
<<
m_address
<<
" Frame #="
<< (uint32_t)
m_frameNo
<<
" Retry #="
<< (uint32_t)
m_retryNo
<<
" RTS Rx Timestamp="
<<
m_timeStampRts
.
GetSeconds
() <<
" Delay until TX="
<<
m_delay
.
GetSeconds
() <<
")"
;
524
}
525
526
TypeId
527
UanHeaderRcCts::GetInstanceTypeId
(
void
)
const
528
{
529
return
GetTypeId
();
530
}
531
532
UanHeaderRcAck::UanHeaderRcAck
()
533
: m_frameNo (0)
534
{
535
}
536
537
UanHeaderRcAck::~UanHeaderRcAck
()
538
{
539
m_nackedFrames
.clear ();
540
}
541
542
TypeId
543
UanHeaderRcAck::GetTypeId
()
544
{
545
static
TypeId
tid =
TypeId
(
"ns3::UanHeaderRcAck"
)
546
.
SetParent
<
Header
> ()
547
.SetGroupName (
"Uan"
)
548
.AddConstructor<
UanHeaderRcAck
> ()
549
;
550
return
tid;
551
}
552
553
void
554
UanHeaderRcAck::SetFrameNo
(uint8_t noFrames)
555
{
556
m_frameNo
= noFrames;
557
}
558
559
void
560
UanHeaderRcAck::AddNackedFrame
(uint8_t frame)
561
{
562
m_nackedFrames
.insert (frame);
563
}
564
565
const
std::set<uint8_t> &
566
UanHeaderRcAck::GetNackedFrames
(
void
)
const
567
{
568
return
m_nackedFrames
;
569
}
570
571
uint8_t
572
UanHeaderRcAck::GetFrameNo
(
void
)
const
573
{
574
return
m_frameNo
;
575
}
576
577
uint8_t
578
UanHeaderRcAck::GetNoNacks
(
void
)
const
579
{
580
return
static_cast<
uint8_t
>
(
m_nackedFrames
.size ());
581
}
582
583
uint32_t
584
UanHeaderRcAck::GetSerializedSize
(
void
)
const
585
{
586
return
1 + 1 +
GetNoNacks
();
587
}
588
589
void
590
UanHeaderRcAck::Serialize
(
Buffer::Iterator
start
)
const
591
{
592
start
.WriteU8 (
m_frameNo
);
593
start
.WriteU8 (
GetNoNacks
());
594
std::set<uint8_t>::iterator it =
m_nackedFrames
.begin ();
595
for
(; it !=
m_nackedFrames
.end (); it++)
596
{
597
start
.WriteU8 (*it);
598
}
599
}
600
601
uint32_t
602
UanHeaderRcAck::Deserialize
(
Buffer::Iterator
start
)
603
{
604
Buffer::Iterator
rbuf =
start
;
605
m_frameNo
= rbuf.
ReadU8
();
606
uint8_t noAcks = rbuf.
ReadU8
();
607
m_nackedFrames
.clear ();
608
for
(uint32_t i = 0; i < noAcks; i++)
609
{
610
m_nackedFrames
.insert (rbuf.
ReadU8
());
611
}
612
return
rbuf.
GetDistanceFrom
(
start
);
613
}
614
615
void
616
UanHeaderRcAck::Print
(std::ostream &os)
const
617
{
618
os <<
"# Frames="
<< (uint32_t)
m_frameNo
<<
" # nacked="
<< (uint32_t)
GetNoNacks
() <<
" Nacked: "
;
619
if
(
GetNoNacks
() > 0)
620
{
621
std::set<uint8_t>::iterator it =
m_nackedFrames
.begin ();
622
os << (uint32_t) *it;
623
it++;
624
for
(; it !=
m_nackedFrames
.end (); it++)
625
{
626
os <<
", "
<< (uint32_t) *it;
627
}
628
}
629
}
630
631
TypeId
632
UanHeaderRcAck::GetInstanceTypeId
(
void
)
const
633
{
634
return
GetTypeId
();
635
}
636
637
}
// namespace ns3
ns3::Buffer::Iterator::ReadU16
uint16_t ReadU16(void)
Definition:
buffer.h:1029
ns3::Header
Protocol header serialization and deserialization.
Definition:
header.h:42
ns3::UanHeaderRcRts::Deserialize
virtual uint32_t Deserialize(Buffer::Iterator start)
Definition:
uan-header-rc.cc:240
ns3::UanHeaderRcRts::SetNoFrames
void SetNoFrames(uint8_t no)
Set the number of data frames included in this reservation request.
Definition:
uan-header-rc.cc:171
ns3::Time
Simulation virtual time values and global simulation resolution.
Definition:
nstime.h:102
ns3::UanHeaderRcCts::GetRetryNo
uint8_t GetRetryNo(void) const
Get the retry number of the RTS packet being cleared.
Definition:
uan-header-rc.cc:477
ns3::Buffer::Iterator::ReadU32
uint32_t ReadU32(void)
Definition:
buffer.cc:972
ns3::UanHeaderRcRts::GetTypeId
static TypeId GetTypeId(void)
Register this type.
Definition:
uan-header-rc.cc:153
ns3::UanHeaderRcData::SetPropDelay
void SetPropDelay(Time propDelay)
Set the propagation delay as found in handshaking.
Definition:
uan-header-rc.cc:72
ns3::UanHeaderRcCtsGlobal
Cycle broadcast information.
Definition:
uan-header-rc.h:224
ns3::UanHeaderRcCtsGlobal::Print
virtual void Print(std::ostream &os) const
Definition:
uan-header-rc.cc:378
ns3::UanHeaderRcCtsGlobal::SetRateNum
void SetRateNum(uint16_t rate)
Set the rate number corresponding to data rate of current cycle.
Definition:
uan-header-rc.cc:304
ns3::UanHeaderRcCtsGlobal::UanHeaderRcCtsGlobal
UanHeaderRcCtsGlobal()
Default constructor.
Definition:
uan-header-rc.cc:267
ns3::UanHeaderRcCts::SetRetryNo
void SetRetryNo(uint8_t no)
Set the retry number of the RTS frame being cleared.
Definition:
uan-header-rc.cc:448
ns3::UanHeaderRcData::SetFrameNo
void SetFrameNo(uint8_t frameNum)
Set the frame number of the reservation being transmitted.
Definition:
uan-header-rc.cc:66
NS_OBJECT_ENSURE_REGISTERED
#define NS_OBJECT_ENSURE_REGISTERED(type)
Register an Object subclass with the TypeId system.
Definition:
object-base.h:45
ns3::UanHeaderRcCtsGlobal::Serialize
virtual void Serialize(Buffer::Iterator start) const
Definition:
uan-header-rc.cc:357
ns3::UanHeaderRcAck::GetFrameNo
uint8_t GetFrameNo(void) const
Get the reservation frame number being ACKed.
Definition:
uan-header-rc.cc:572
ns3::UanHeaderRcAck
Header used for ACK packets by protocol UanMacRc.
Definition:
uan-header-rc.h:430
ns3::UanHeaderRcRts
RTS header.
Definition:
uan-header-rc.h:110
ns3::UanHeaderRcCts::Deserialize
virtual uint32_t Deserialize(Buffer::Iterator start)
Definition:
uan-header-rc.cc:508
ns3::UanHeaderRcRts::m_frameNo
uint8_t m_frameNo
Reservation frame number.
Definition:
uan-header-rc.h:209
visualizer.core.start
def start()
Definition:
core.py:1844
ns3::Time::GetSeconds
double GetSeconds(void) const
Get an approximation of the time stored in this instance in the indicated unit.
Definition:
nstime.h:355
ns3::UanHeaderRcData::GetSerializedSize
virtual uint32_t GetSerializedSize(void) const
Definition:
uan-header-rc.cc:90
ns3::UanHeaderRcCts::GetSerializedSize
virtual uint32_t GetSerializedSize(void) const
Definition:
uan-header-rc.cc:489
ns3::UanHeaderRcCts
CTS header.
Definition:
uan-header-rc.h:321
ns3::UanHeaderRcCtsGlobal::m_rateNum
uint16_t m_rateNum
Rate number.
Definition:
uan-header-rc.h:309
ns3::UanHeaderRcCtsGlobal::m_winTime
Time m_winTime
Window time.
Definition:
uan-header-rc.h:307
ns3::UanHeaderRcAck::m_frameNo
uint8_t m_frameNo
Next frame number.
Definition:
uan-header-rc.h:484
ns3::UanHeaderRcCtsGlobal::GetWindowTime
Time GetWindowTime(void) const
Get the window time (time duration following blocking time to allow RTS transmissions).
Definition:
uan-header-rc.cc:328
ns3::UanHeaderRcData::GetPropDelay
Time GetPropDelay(void) const
Get the propagation delay found in handshaking.
Definition:
uan-header-rc.cc:84
ns3::UanHeaderRcRts::m_length
uint16_t m_length
Number of bytes (including headers) in data.
Definition:
uan-header-rc.h:211
ns3::UanHeaderRcCtsGlobal::SetWindowTime
void SetWindowTime(Time t)
Set the window time (time duration following blocking time to allow RTS transmissions).
Definition:
uan-header-rc.cc:316
ns3::Buffer::Iterator
iterator in a Buffer instance
Definition:
buffer.h:98
ns3::Buffer::Iterator::GetDistanceFrom
uint32_t GetDistanceFrom(Iterator const &o) const
Definition:
buffer.cc:783
ns3::UanHeaderRcData::Print
virtual void Print(std::ostream &os) const
Definition:
uan-header-rc.cc:113
ns3::UanHeaderRcRts::GetSerializedSize
virtual uint32_t GetSerializedSize(void) const
Definition:
uan-header-rc.cc:223
ns3::UanHeaderRcRts::GetTimeStamp
Time GetTimeStamp(void) const
Get the transmit timestamp of this RTS packet.
Definition:
uan-header-rc.cc:205
ns3::UanHeaderRcCtsGlobal::GetRetryRate
uint16_t GetRetryRate(void) const
Get the retry rate number.
Definition:
uan-header-rc.cc:340
ns3::UanHeaderRcAck::Print
virtual void Print(std::ostream &os) const
Definition:
uan-header-rc.cc:616
ns3::UanHeaderRcAck::m_nackedFrames
std::set< uint8_t > m_nackedFrames
Marker for nacked frames.
Definition:
uan-header-rc.h:485
ns3::UanHeaderRcCts::m_retryNo
uint8_t m_retryNo
Retry number of received RTS packet.
Definition:
uan-header-rc.h:419
ns3::UanHeaderRcCts::SetAddress
void SetAddress(Mac8Address addr)
Set the destination address, for scheduling info.
Definition:
uan-header-rc.cc:454
ns3::UanHeaderRcData::GetFrameNo
uint8_t GetFrameNo(void) const
Get the frame number of the reservation being transmitted.
Definition:
uan-header-rc.cc:78
ns3::Mac8Address
A class used for addressing MAC8 MAC's.
Definition:
mac8-address.h:42
ns3::UanHeaderRcCtsGlobal::Deserialize
virtual uint32_t Deserialize(Buffer::Iterator start)
Definition:
uan-header-rc.cc:366
ns3::UanHeaderRcAck::AddNackedFrame
void AddNackedFrame(uint8_t frame)
NACK a frame.
Definition:
uan-header-rc.cc:560
ns3::UanHeaderRcData::Serialize
virtual void Serialize(Buffer::Iterator start) const
Definition:
uan-header-rc.cc:96
ns3::UanHeaderRcAck::Deserialize
virtual uint32_t Deserialize(Buffer::Iterator start)
Definition:
uan-header-rc.cc:602
ns3::UanHeaderRcCts::m_delay
Time m_delay
Delay until transmission.
Definition:
uan-header-rc.h:420
ns3::UanHeaderRcRts::GetNoFrames
uint8_t GetNoFrames(void) const
Get the number of data frames in the reservation.
Definition:
uan-header-rc.cc:193
ns3::UanHeaderRcRts::GetFrameNo
uint8_t GetFrameNo(void) const
Get the frame number.
Definition:
uan-header-rc.cc:217
uan-header-rc.h
ns3::UanHeaderRcRts::SetLength
void SetLength(uint16_t length)
Set the number of data bytes in the reservation.
Definition:
uan-header-rc.cc:177
ns3::UanHeaderRcData::GetInstanceTypeId
virtual TypeId GetInstanceTypeId(void) const
Get the most derived TypeId for this Object.
Definition:
uan-header-rc.cc:119
ns3::UanHeaderRcRts::SetTimeStamp
void SetTimeStamp(Time timeStamp)
Set RTS transmission time.
Definition:
uan-header-rc.cc:182
ns3::UanHeaderRcCts::m_timeStampRts
Time m_timeStampRts
RX time of RTS packet at gateway.
Definition:
uan-header-rc.h:418
ns3
Every class exported by the ns3 library is enclosed in the ns3 namespace.
ns3::UanHeaderRcCtsGlobal::GetTypeId
static TypeId GetTypeId(void)
Register this type.
Definition:
uan-header-rc.cc:291
first.address
address
Definition:
first.py:37
ns3::UanHeaderRcCts::SetDelayToTx
void SetDelayToTx(Time delay)
Set the time delay from CTS transmission to first data frame arrival.
Definition:
uan-header-rc.cc:442
ns3::UanHeaderRcAck::~UanHeaderRcAck
virtual ~UanHeaderRcAck()
Destructor.
Definition:
uan-header-rc.cc:537
ns3::UanHeaderRcCts::SetFrameNo
void SetFrameNo(uint8_t frameNo)
Set the RTS frame number being cleared.
Definition:
uan-header-rc.cc:429
ns3::UanHeaderRcCtsGlobal::m_timeStampTx
Time m_timeStampTx
Timestamp.
Definition:
uan-header-rc.h:306
ns3::UanHeaderRcCtsGlobal::GetTxTimeStamp
Time GetTxTimeStamp(void) const
Get the CTS transmit timestamp.
Definition:
uan-header-rc.cc:334
ns3::UanHeaderRcCts::~UanHeaderRcCts
virtual ~UanHeaderRcCts()
Destructor.
Definition:
uan-header-rc.cc:411
ns3::UanHeaderRcAck::Serialize
virtual void Serialize(Buffer::Iterator start) const
Definition:
uan-header-rc.cc:590
ns3::UanHeaderRcCtsGlobal::SetTxTimeStamp
void SetTxTimeStamp(Time timeStamp)
Set the CTS timestamp.
Definition:
uan-header-rc.cc:322
ns3::UanHeaderRcCtsGlobal::GetInstanceTypeId
virtual TypeId GetInstanceTypeId(void) const
Get the most derived TypeId for this Object.
Definition:
uan-header-rc.cc:384
ns3::UanHeaderRcCts::SetRtsTimeStamp
void SetRtsTimeStamp(Time timeStamp)
Set the timestamp for RTS reception.
Definition:
uan-header-rc.cc:435
ns3::UanHeaderRcAck::GetNackedFrames
const std::set< uint8_t > & GetNackedFrames(void) const
Get the set of NACK'ed frames.
Definition:
uan-header-rc.cc:566
ns3::UanHeaderRcData::GetTypeId
static TypeId GetTypeId(void)
Register this type.
Definition:
uan-header-rc.cc:55
ns3::UanHeaderRcData::m_frameNo
uint8_t m_frameNo
Data frame number.
Definition:
uan-header-rc.h:98
ns3::UanHeaderRcData::UanHeaderRcData
UanHeaderRcData()
Default constructor.
Definition:
uan-header-rc.cc:35
ns3::UanHeaderRcRts::GetRetryNo
uint8_t GetRetryNo(void) const
Get the retry number of this RTS packet.
Definition:
uan-header-rc.cc:211
ns3::UanHeaderRcCtsGlobal::m_retryRate
uint16_t m_retryRate
Retry rate.
Definition:
uan-header-rc.h:308
ns3::UanHeaderRcData::Deserialize
virtual uint32_t Deserialize(Buffer::Iterator start)
Definition:
uan-header-rc.cc:102
ns3::UanHeaderRcData::m_propDelay
Time m_propDelay
Propagation delay.
Definition:
uan-header-rc.h:99
ns3::UanHeaderRcRts::Print
virtual void Print(std::ostream &os) const
Definition:
uan-header-rc.cc:253
ns3::UanHeaderRcRts::~UanHeaderRcRts
virtual ~UanHeaderRcRts()
Destructor.
Definition:
uan-header-rc.cc:147
ns3::Seconds
Time Seconds(double value)
Construct a Time in the indicated unit.
Definition:
nstime.h:1014
ns3::UanHeaderRcAck::SetFrameNo
void SetFrameNo(uint8_t frameNo)
Set the frame number of the reservation being acknowledged.
Definition:
uan-header-rc.cc:554
ns3::UanHeaderRcCts::Print
virtual void Print(std::ostream &os) const
Definition:
uan-header-rc.cc:521
ns3::UanHeaderRcCts::Serialize
virtual void Serialize(Buffer::Iterator start) const
Definition:
uan-header-rc.cc:496
ns3::UanHeaderRcAck::GetInstanceTypeId
virtual TypeId GetInstanceTypeId(void) const
Get the most derived TypeId for this Object.
Definition:
uan-header-rc.cc:632
ns3::UanHeaderRcCts::UanHeaderRcCts
UanHeaderRcCts()
Default constructor.
Definition:
uan-header-rc.cc:389
ns3::Buffer::Iterator::ReadU8
uint8_t ReadU8(void)
Definition:
buffer.h:1021
ns3::UanHeaderRcCts::m_address
Mac8Address m_address
Destination of CTS packet.
Definition:
uan-header-rc.h:421
ns3::UanHeaderRcRts::GetLength
uint16_t GetLength(void) const
Get the total number of bytes in the reservation, including headers.
Definition:
uan-header-rc.cc:199
ns3::UanHeaderRcAck::GetTypeId
static TypeId GetTypeId(void)
Register this type.
Definition:
uan-header-rc.cc:543
ns3::UanHeaderRcCts::GetInstanceTypeId
virtual TypeId GetInstanceTypeId(void) const
Get the most derived TypeId for this Object.
Definition:
uan-header-rc.cc:527
ns3::UanHeaderRcCtsGlobal::SetRetryRate
void SetRetryRate(uint16_t rate)
Set the retry rate number for the current cycle.
Definition:
uan-header-rc.cc:310
ns3::UanHeaderRcRts::UanHeaderRcRts
UanHeaderRcRts()
Default constructor.
Definition:
uan-header-rc.cc:125
ns3::UanHeaderRcRts::m_retryNo
uint8_t m_retryNo
Retry number of RTS packet.
Definition:
uan-header-rc.h:213
ns3::UanHeaderRcCtsGlobal::~UanHeaderRcCtsGlobal
~UanHeaderRcCtsGlobal()
Destructor.
Definition:
uan-header-rc.cc:285
ns3::UanHeaderRcRts::Serialize
virtual void Serialize(Buffer::Iterator start) const
Definition:
uan-header-rc.cc:229
ns3::UanHeaderRcCtsGlobal::GetSerializedSize
virtual uint32_t GetSerializedSize(void) const
Definition:
uan-header-rc.cc:351
ns3::UanHeaderRcCts::m_frameNo
uint8_t m_frameNo
Reservation frame number being cleared.
Definition:
uan-header-rc.h:417
ns3::UanHeaderRcCtsGlobal::GetRateNum
uint16_t GetRateNum(void) const
Get the data rate number.
Definition:
uan-header-rc.cc:346
ns3::TypeId
a unique identifier for an interface.
Definition:
type-id.h:58
ns3::UanHeaderRcAck::GetNoNacks
uint8_t GetNoNacks(void) const
Get the number of data frames being NACKed.
Definition:
uan-header-rc.cc:578
ns3::UanHeaderRcRts::m_timeStamp
Time m_timeStamp
RTS TX timestamp.
Definition:
uan-header-rc.h:212
ns3::UanHeaderRcCts::GetTypeId
static TypeId GetTypeId(void)
Register this type.
Definition:
uan-header-rc.cc:417
ns3::UanHeaderRcCts::GetFrameNo
uint8_t GetFrameNo(void) const
Get the frame number of the RTS being cleared.
Definition:
uan-header-rc.cc:459
ns3::TypeId::SetParent
TypeId SetParent(TypeId tid)
Set the parent TypeId.
Definition:
type-id.cc:915
ns3::UanHeaderRcRts::SetRetryNo
void SetRetryNo(uint8_t no)
Set the retry number of this RTS packet.
Definition:
uan-header-rc.cc:188
ns3::UanHeaderRcRts::GetInstanceTypeId
virtual TypeId GetInstanceTypeId(void) const
Get the most derived TypeId for this Object.
Definition:
uan-header-rc.cc:259
ns3::UanHeaderRcCts::GetAddress
Mac8Address GetAddress(void) const
Get the destination address, for scheduling info.
Definition:
uan-header-rc.cc:483
ns3::UanHeaderRcCts::GetDelayToTx
Time GetDelayToTx(void) const
Get the time delay from TX time of CTS packet until arrival of first data frame.
Definition:
uan-header-rc.cc:471
ns3::UanHeaderRcAck::GetSerializedSize
virtual uint32_t GetSerializedSize(void) const
Definition:
uan-header-rc.cc:584
ns3::Mac8Address::CopyTo
void CopyTo(uint8_t *pBuffer) const
Writes address to buffer parameter.
Definition:
mac8-address.cc:80
ns3::UanHeaderRcRts::m_noFrames
uint8_t m_noFrames
Number of data frames in reservation.
Definition:
uan-header-rc.h:210
ns3::UanHeaderRcData
Extra data header information.
Definition:
uan-header-rc.h:41
ns3::UanHeaderRcAck::UanHeaderRcAck
UanHeaderRcAck()
Default constructor.
Definition:
uan-header-rc.cc:532
ns3::UanHeaderRcCts::GetRtsTimeStamp
Time GetRtsTimeStamp(void) const
Get the receive time of the RTS being cleared.
Definition:
uan-header-rc.cc:465
ns3::UanHeaderRcRts::SetFrameNo
void SetFrameNo(uint8_t fno)
Set the frame number.
Definition:
uan-header-rc.cc:165
ns3::UanHeaderRcData::~UanHeaderRcData
virtual ~UanHeaderRcData()
Destructor.
Definition:
uan-header-rc.cc:50
Generated on Wed Nov 7 2018 10:02:11 for ns-3 by
1.8.14