A Discrete-Event Network Simulator
Home
Tutorials ▼
English
Documentation ▼
Installation
Manual
Models
Contributing
Wiki
Development ▼
API Docs
Issue Tracker
Merge Requests
API
uan-header-rc.h
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2009 University of Washington
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: Leonard Tracy <lentracy@gmail.com>
18
*/
19
20
#ifndef UAN_HEADER_RC_H
21
#define UAN_HEADER_RC_H
22
23
#include "ns3/header.h"
24
#include "ns3/mac8-address.h"
25
#include "ns3/nstime.h"
26
27
#include <set>
28
29
namespace
ns3
30
{
31
40
class
UanHeaderRcData
:
public
Header
41
{
42
public
:
44
UanHeaderRcData
();
52
UanHeaderRcData
(uint8_t frameNum,
Time
propDelay);
54
~UanHeaderRcData
()
override
;
55
60
static
TypeId
GetTypeId
();
61
67
void
SetFrameNo
(uint8_t frameNum);
74
void
SetPropDelay
(
Time
propDelay);
80
uint8_t
GetFrameNo
()
const
;
87
Time
GetPropDelay
()
const
;
94
void
Print
(std::ostream& os,
Time::Unit
unit)
const
;
95
96
// Inherited methods
97
uint32_t
GetSerializedSize
()
const override
;
98
void
Serialize
(
Buffer::Iterator
start
)
const override
;
99
uint32_t
Deserialize
(
Buffer::Iterator
start
)
override
;
100
void
Print
(std::ostream& os)
const override
;
101
TypeId
GetInstanceTypeId
()
const override
;
102
103
private
:
104
uint8_t
m_frameNo
;
105
Time
m_propDelay
;
106
107
};
// class UanHeaderRcData
108
116
class
UanHeaderRcRts
:
public
Header
117
{
118
public
:
120
UanHeaderRcRts
();
131
UanHeaderRcRts
(uint8_t frameNo, uint8_t retryNo, uint8_t noFrames, uint16_t length,
Time
ts);
133
~UanHeaderRcRts
()
override
;
134
139
static
TypeId
GetTypeId
();
140
146
void
SetFrameNo
(uint8_t fno);
152
void
SetNoFrames
(uint8_t no);
158
void
SetTimeStamp
(
Time
timeStamp);
165
void
SetLength
(uint16_t length);
173
void
SetRetryNo
(uint8_t no);
174
180
uint8_t
GetFrameNo
()
const
;
186
uint8_t
GetNoFrames
()
const
;
193
Time
GetTimeStamp
()
const
;
199
uint16_t
GetLength
()
const
;
205
uint8_t
GetRetryNo
()
const
;
212
void
Print
(std::ostream& os,
Time::Unit
unit)
const
;
213
214
// Inherited methods
215
uint32_t
GetSerializedSize
()
const override
;
216
void
Serialize
(
Buffer::Iterator
start
)
const override
;
217
uint32_t
Deserialize
(
Buffer::Iterator
start
)
override
;
218
void
Print
(std::ostream& os)
const override
;
219
TypeId
GetInstanceTypeId
()
const override
;
220
221
private
:
222
uint8_t
m_frameNo
;
223
uint8_t
m_noFrames
;
224
uint16_t
m_length
;
225
Time
m_timeStamp
;
226
uint8_t
m_retryNo
;
227
228
};
// class UanHeaderRcRts
229
237
class
UanHeaderRcCtsGlobal
:
public
Header
238
{
239
public
:
241
UanHeaderRcCtsGlobal
();
250
UanHeaderRcCtsGlobal
(
Time
wt,
Time
ts, uint16_t rate, uint16_t retryRate);
252
~UanHeaderRcCtsGlobal
()
override
;
253
258
static
TypeId
GetTypeId
();
259
264
void
SetRateNum
(uint16_t rate);
269
void
SetRetryRate
(uint16_t rate);
276
void
SetWindowTime
(
Time
t);
277
283
void
SetTxTimeStamp
(
Time
timeStamp);
284
290
uint16_t
GetRateNum
()
const
;
296
uint16_t
GetRetryRate
()
const
;
303
Time
GetWindowTime
()
const
;
309
Time
GetTxTimeStamp
()
const
;
316
void
Print
(std::ostream& os,
Time::Unit
unit)
const
;
317
318
// Inherited methods
319
uint32_t
GetSerializedSize
()
const override
;
320
void
Serialize
(
Buffer::Iterator
start
)
const override
;
321
uint32_t
Deserialize
(
Buffer::Iterator
start
)
override
;
322
void
Print
(std::ostream& os)
const override
;
323
TypeId
GetInstanceTypeId
()
const override
;
324
325
private
:
326
Time
m_timeStampTx
;
327
Time
m_winTime
;
328
uint16_t
m_retryRate
;
329
uint16_t
m_rateNum
;
330
331
};
// class UanHeaderRcCtsGlobal
332
341
class
UanHeaderRcCts
:
public
Header
342
{
343
public
:
345
UanHeaderRcCts
();
356
UanHeaderRcCts
(uint8_t frameNo, uint8_t retryNo,
Time
rtsTs,
Time
delay,
Mac8Address
addr);
358
~UanHeaderRcCts
()
override
;
359
364
static
TypeId
GetTypeId
();
365
371
void
SetFrameNo
(uint8_t frameNo);
377
void
SetRtsTimeStamp
(
Time
timeStamp);
383
void
SetDelayToTx
(
Time
delay);
389
void
SetRetryNo
(uint8_t no);
395
void
SetAddress
(
Mac8Address
addr);
396
402
uint8_t
GetFrameNo
()
const
;
408
Time
GetRtsTimeStamp
()
const
;
415
Time
GetDelayToTx
()
const
;
421
uint8_t
GetRetryNo
()
const
;
427
Mac8Address
GetAddress
()
const
;
434
void
Print
(std::ostream& os,
Time::Unit
unit)
const
;
435
436
// Inherited methods
437
uint32_t
GetSerializedSize
()
const override
;
438
void
Serialize
(
Buffer::Iterator
start
)
const override
;
439
uint32_t
Deserialize
(
Buffer::Iterator
start
)
override
;
440
void
Print
(std::ostream& os)
const override
;
441
TypeId
GetInstanceTypeId
()
const override
;
442
443
private
:
444
uint8_t
m_frameNo
;
445
Time
m_timeStampRts
;
446
uint8_t
m_retryNo
;
447
Time
m_delay
;
448
Mac8Address
m_address
;
449
450
};
// class UanHeaderRcCts
451
457
class
UanHeaderRcAck
:
public
Header
458
{
459
public
:
461
UanHeaderRcAck
();
463
~UanHeaderRcAck
()
override
;
464
469
static
TypeId
GetTypeId
();
470
476
void
SetFrameNo
(uint8_t frameNo);
482
void
AddNackedFrame
(uint8_t frame);
483
489
const
std::set<uint8_t>&
GetNackedFrames
()
const
;
495
uint8_t
GetFrameNo
()
const
;
501
uint8_t
GetNoNacks
()
const
;
502
503
// Inherited methods
504
uint32_t
GetSerializedSize
()
const override
;
505
void
Serialize
(
Buffer::Iterator
start
)
const override
;
506
uint32_t
Deserialize
(
Buffer::Iterator
start
)
override
;
507
void
Print
(std::ostream& os)
const override
;
508
TypeId
GetInstanceTypeId
()
const override
;
509
510
private
:
511
uint8_t
m_frameNo
;
512
std::set<uint8_t>
m_nackedFrames
;
513
514
};
// class UanHeaderRcAck
515
516
}
// namespace ns3
517
518
#endif
/* UAN_HEADER_RC_H */
ns3::Buffer::Iterator
iterator in a Buffer instance
Definition:
buffer.h:100
ns3::Header
Protocol header serialization and deserialization.
Definition:
header.h:44
ns3::Header::Deserialize
virtual uint32_t Deserialize(Buffer::Iterator start)=0
Deserialize the object from a buffer iterator.
ns3::Mac8Address
A class used for addressing MAC8 MAC's.
Definition:
mac8-address.h:44
ns3::Time
Simulation virtual time values and global simulation resolution.
Definition:
nstime.h:105
ns3::Time::Unit
Unit
The unit to use to interpret a number representing time.
Definition:
nstime.h:111
ns3::TypeId
a unique identifier for an interface.
Definition:
type-id.h:59
ns3::UanHeaderRcAck
Header used for ACK packets by protocol UanMacRc.
Definition:
uan-header-rc.h:458
ns3::UanHeaderRcAck::GetTypeId
static TypeId GetTypeId()
Register this type.
Definition:
uan-header-rc.cc:560
ns3::UanHeaderRcAck::m_frameNo
uint8_t m_frameNo
Next frame number.
Definition:
uan-header-rc.h:511
ns3::UanHeaderRcAck::GetSerializedSize
uint32_t GetSerializedSize() const override
Definition:
uan-header-rc.cc:600
ns3::UanHeaderRcAck::m_nackedFrames
std::set< uint8_t > m_nackedFrames
Marker for nacked frames.
Definition:
uan-header-rc.h:512
ns3::UanHeaderRcAck::GetNackedFrames
const std::set< uint8_t > & GetNackedFrames() const
Get the set of NACK'ed frames.
Definition:
uan-header-rc.cc:582
ns3::UanHeaderRcAck::~UanHeaderRcAck
~UanHeaderRcAck() override
Destructor.
Definition:
uan-header-rc.cc:554
ns3::UanHeaderRcAck::Serialize
void Serialize(Buffer::Iterator start) const override
Definition:
uan-header-rc.cc:606
ns3::UanHeaderRcAck::UanHeaderRcAck
UanHeaderRcAck()
Default constructor.
Definition:
uan-header-rc.cc:549
ns3::UanHeaderRcAck::GetInstanceTypeId
TypeId GetInstanceTypeId() const override
Get the most derived TypeId for this Object.
Definition:
uan-header-rc.cc:649
ns3::UanHeaderRcAck::GetFrameNo
uint8_t GetFrameNo() const
Get the reservation frame number being ACKed.
Definition:
uan-header-rc.cc:588
ns3::UanHeaderRcAck::AddNackedFrame
void AddNackedFrame(uint8_t frame)
NACK a frame.
Definition:
uan-header-rc.cc:576
ns3::UanHeaderRcAck::Print
void Print(std::ostream &os) const override
Definition:
uan-header-rc.cc:632
ns3::UanHeaderRcAck::GetNoNacks
uint8_t GetNoNacks() const
Get the number of data frames being NACKed.
Definition:
uan-header-rc.cc:594
ns3::UanHeaderRcAck::SetFrameNo
void SetFrameNo(uint8_t frameNo)
Set the frame number of the reservation being acknowledged.
Definition:
uan-header-rc.cc:570
ns3::UanHeaderRcCtsGlobal
Cycle broadcast information.
Definition:
uan-header-rc.h:238
ns3::UanHeaderRcCtsGlobal::Print
void Print(std::ostream &os, Time::Unit unit) const
Specialized Print with Time::Unit declared.
Definition:
uan-header-rc.cc:381
ns3::UanHeaderRcCtsGlobal::UanHeaderRcCtsGlobal
UanHeaderRcCtsGlobal()
Default constructor.
Definition:
uan-header-rc.cc:276
ns3::UanHeaderRcCtsGlobal::GetTypeId
static TypeId GetTypeId()
Register this type.
Definition:
uan-header-rc.cc:297
ns3::UanHeaderRcCtsGlobal::Serialize
void Serialize(Buffer::Iterator start) const override
Definition:
uan-header-rc.cc:361
ns3::UanHeaderRcCtsGlobal::SetRateNum
void SetRateNum(uint16_t rate)
Set the rate number corresponding to data rate of current cycle.
Definition:
uan-header-rc.cc:307
ns3::UanHeaderRcCtsGlobal::GetInstanceTypeId
TypeId GetInstanceTypeId() const override
Get the most derived TypeId for this Object.
Definition:
uan-header-rc.cc:395
ns3::UanHeaderRcCtsGlobal::~UanHeaderRcCtsGlobal
~UanHeaderRcCtsGlobal() override
Destructor.
Definition:
uan-header-rc.cc:292
ns3::UanHeaderRcCtsGlobal::SetRetryRate
void SetRetryRate(uint16_t rate)
Set the retry rate number for the current cycle.
Definition:
uan-header-rc.cc:313
ns3::UanHeaderRcCtsGlobal::m_timeStampTx
Time m_timeStampTx
Timestamp.
Definition:
uan-header-rc.h:326
ns3::UanHeaderRcCtsGlobal::SetTxTimeStamp
void SetTxTimeStamp(Time timeStamp)
Set the CTS timestamp.
Definition:
uan-header-rc.cc:325
ns3::UanHeaderRcCtsGlobal::m_winTime
Time m_winTime
Window time.
Definition:
uan-header-rc.h:327
ns3::UanHeaderRcCtsGlobal::GetRetryRate
uint16_t GetRetryRate() const
Get the retry rate number.
Definition:
uan-header-rc.cc:343
ns3::UanHeaderRcCtsGlobal::m_retryRate
uint16_t m_retryRate
Retry rate.
Definition:
uan-header-rc.h:328
ns3::UanHeaderRcCtsGlobal::GetTxTimeStamp
Time GetTxTimeStamp() const
Get the CTS transmit timestamp.
Definition:
uan-header-rc.cc:337
ns3::UanHeaderRcCtsGlobal::m_rateNum
uint16_t m_rateNum
Rate number.
Definition:
uan-header-rc.h:329
ns3::UanHeaderRcCtsGlobal::GetWindowTime
Time GetWindowTime() const
Get the window time (time duration following blocking time to allow RTS transmissions).
Definition:
uan-header-rc.cc:331
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:319
ns3::UanHeaderRcCtsGlobal::GetRateNum
uint16_t GetRateNum() const
Get the data rate number.
Definition:
uan-header-rc.cc:349
ns3::UanHeaderRcCtsGlobal::GetSerializedSize
uint32_t GetSerializedSize() const override
Definition:
uan-header-rc.cc:355
ns3::UanHeaderRcCts
CTS header.
Definition:
uan-header-rc.h:342
ns3::UanHeaderRcCts::GetDelayToTx
Time GetDelayToTx() const
Get the time delay from TX time of CTS packet until arrival of first data frame.
Definition:
uan-header-rc.cc:481
ns3::UanHeaderRcCts::GetFrameNo
uint8_t GetFrameNo() const
Get the frame number of the RTS being cleared.
Definition:
uan-header-rc.cc:469
ns3::UanHeaderRcCts::SetRtsTimeStamp
void SetRtsTimeStamp(Time timeStamp)
Set the timestamp for RTS reception.
Definition:
uan-header-rc.cc:445
ns3::UanHeaderRcCts::UanHeaderRcCts
UanHeaderRcCts()
Default constructor.
Definition:
uan-header-rc.cc:400
ns3::UanHeaderRcCts::SetFrameNo
void SetFrameNo(uint8_t frameNo)
Set the RTS frame number being cleared.
Definition:
uan-header-rc.cc:439
ns3::UanHeaderRcCts::GetSerializedSize
uint32_t GetSerializedSize() const override
Definition:
uan-header-rc.cc:499
ns3::UanHeaderRcCts::~UanHeaderRcCts
~UanHeaderRcCts() override
Destructor.
Definition:
uan-header-rc.cc:424
ns3::UanHeaderRcCts::SetDelayToTx
void SetDelayToTx(Time delay)
Set the time delay from CTS transmission to first data frame arrival.
Definition:
uan-header-rc.cc:451
ns3::UanHeaderRcCts::Serialize
void Serialize(Buffer::Iterator start) const override
Definition:
uan-header-rc.cc:505
ns3::UanHeaderRcCts::m_address
Mac8Address m_address
Destination of CTS packet.
Definition:
uan-header-rc.h:448
ns3::UanHeaderRcCts::GetRetryNo
uint8_t GetRetryNo() const
Get the retry number of the RTS packet being cleared.
Definition:
uan-header-rc.cc:487
ns3::UanHeaderRcCts::GetAddress
Mac8Address GetAddress() const
Get the destination address, for scheduling info.
Definition:
uan-header-rc.cc:493
ns3::UanHeaderRcCts::m_delay
Time m_delay
Delay until transmission.
Definition:
uan-header-rc.h:447
ns3::UanHeaderRcCts::m_timeStampRts
Time m_timeStampRts
RX time of RTS packet at gateway.
Definition:
uan-header-rc.h:445
ns3::UanHeaderRcCts::Print
void Print(std::ostream &os, Time::Unit unit) const
Specialized Print with Time::Unit declared.
Definition:
uan-header-rc.cc:530
ns3::UanHeaderRcCts::m_frameNo
uint8_t m_frameNo
Reservation frame number being cleared.
Definition:
uan-header-rc.h:444
ns3::UanHeaderRcCts::GetInstanceTypeId
TypeId GetInstanceTypeId() const override
Get the most derived TypeId for this Object.
Definition:
uan-header-rc.cc:544
ns3::UanHeaderRcCts::SetRetryNo
void SetRetryNo(uint8_t no)
Set the retry number of the RTS frame being cleared.
Definition:
uan-header-rc.cc:457
ns3::UanHeaderRcCts::GetTypeId
static TypeId GetTypeId()
Register this type.
Definition:
uan-header-rc.cc:429
ns3::UanHeaderRcCts::GetRtsTimeStamp
Time GetRtsTimeStamp() const
Get the receive time of the RTS being cleared.
Definition:
uan-header-rc.cc:475
ns3::UanHeaderRcCts::SetAddress
void SetAddress(Mac8Address addr)
Set the destination address, for scheduling info.
Definition:
uan-header-rc.cc:463
ns3::UanHeaderRcCts::m_retryNo
uint8_t m_retryNo
Retry number of received RTS packet.
Definition:
uan-header-rc.h:446
ns3::UanHeaderRcData
Extra data header information.
Definition:
uan-header-rc.h:41
ns3::UanHeaderRcData::m_propDelay
Time m_propDelay
Propagation delay.
Definition:
uan-header-rc.h:105
ns3::UanHeaderRcData::~UanHeaderRcData
~UanHeaderRcData() override
Destructor.
Definition:
uan-header-rc.cc:49
ns3::UanHeaderRcData::m_frameNo
uint8_t m_frameNo
Data frame number.
Definition:
uan-header-rc.h:104
ns3::UanHeaderRcData::SetFrameNo
void SetFrameNo(uint8_t frameNum)
Set the frame number of the reservation being transmitted.
Definition:
uan-header-rc.cc:64
ns3::UanHeaderRcData::UanHeaderRcData
UanHeaderRcData()
Default constructor.
Definition:
uan-header-rc.cc:35
ns3::UanHeaderRcData::GetInstanceTypeId
TypeId GetInstanceTypeId() const override
Get the most derived TypeId for this Object.
Definition:
uan-header-rc.cc:124
ns3::UanHeaderRcData::GetFrameNo
uint8_t GetFrameNo() const
Get the frame number of the reservation being transmitted.
Definition:
uan-header-rc.cc:76
ns3::UanHeaderRcData::GetTypeId
static TypeId GetTypeId()
Register this type.
Definition:
uan-header-rc.cc:54
ns3::UanHeaderRcData::GetSerializedSize
uint32_t GetSerializedSize() const override
Definition:
uan-header-rc.cc:88
ns3::UanHeaderRcData::Serialize
void Serialize(Buffer::Iterator start) const override
Definition:
uan-header-rc.cc:94
ns3::UanHeaderRcData::SetPropDelay
void SetPropDelay(Time propDelay)
Set the propagation delay as found in handshaking.
Definition:
uan-header-rc.cc:70
ns3::UanHeaderRcData::GetPropDelay
Time GetPropDelay() const
Get the propagation delay found in handshaking.
Definition:
uan-header-rc.cc:82
ns3::UanHeaderRcData::Print
void Print(std::ostream &os, Time::Unit unit) const
Specialized Print with Time::Unit declared.
Definition:
uan-header-rc.cc:112
ns3::UanHeaderRcRts
RTS header.
Definition:
uan-header-rc.h:117
ns3::UanHeaderRcRts::m_length
uint16_t m_length
Number of bytes (including headers) in data.
Definition:
uan-header-rc.h:224
ns3::UanHeaderRcRts::Print
void Print(std::ostream &os, Time::Unit unit) const
Specialized Print with Time::Unit declared.
Definition:
uan-header-rc.cc:257
ns3::UanHeaderRcRts::UanHeaderRcRts
UanHeaderRcRts()
Default constructor.
Definition:
uan-header-rc.cc:129
ns3::UanHeaderRcRts::GetFrameNo
uint8_t GetFrameNo() const
Get the frame number.
Definition:
uan-header-rc.cc:222
ns3::UanHeaderRcRts::GetLength
uint16_t GetLength() const
Get the total number of bytes in the reservation, including headers.
Definition:
uan-header-rc.cc:204
ns3::UanHeaderRcRts::m_retryNo
uint8_t m_retryNo
Retry number of RTS packet.
Definition:
uan-header-rc.h:226
ns3::UanHeaderRcRts::GetNoFrames
uint8_t GetNoFrames() const
Get the number of data frames in the reservation.
Definition:
uan-header-rc.cc:198
ns3::UanHeaderRcRts::SetFrameNo
void SetFrameNo(uint8_t fno)
Set the frame number.
Definition:
uan-header-rc.cc:168
ns3::UanHeaderRcRts::SetTimeStamp
void SetTimeStamp(Time timeStamp)
Set RTS transmission time.
Definition:
uan-header-rc.cc:186
ns3::UanHeaderRcRts::GetTypeId
static TypeId GetTypeId()
Register this type.
Definition:
uan-header-rc.cc:158
ns3::UanHeaderRcRts::m_noFrames
uint8_t m_noFrames
Number of data frames in reservation.
Definition:
uan-header-rc.h:223
ns3::UanHeaderRcRts::GetTimeStamp
Time GetTimeStamp() const
Get the transmit timestamp of this RTS packet.
Definition:
uan-header-rc.cc:210
ns3::UanHeaderRcRts::~UanHeaderRcRts
~UanHeaderRcRts() override
Destructor.
Definition:
uan-header-rc.cc:153
ns3::UanHeaderRcRts::GetInstanceTypeId
TypeId GetInstanceTypeId() const override
Get the most derived TypeId for this Object.
Definition:
uan-header-rc.cc:271
ns3::UanHeaderRcRts::SetRetryNo
void SetRetryNo(uint8_t no)
Set the retry number of this RTS packet.
Definition:
uan-header-rc.cc:192
ns3::UanHeaderRcRts::GetSerializedSize
uint32_t GetSerializedSize() const override
Definition:
uan-header-rc.cc:228
ns3::UanHeaderRcRts::m_frameNo
uint8_t m_frameNo
Reservation frame number.
Definition:
uan-header-rc.h:222
ns3::UanHeaderRcRts::Serialize
void Serialize(Buffer::Iterator start) const override
Definition:
uan-header-rc.cc:234
ns3::UanHeaderRcRts::GetRetryNo
uint8_t GetRetryNo() const
Get the retry number of this RTS packet.
Definition:
uan-header-rc.cc:216
ns3::UanHeaderRcRts::SetNoFrames
void SetNoFrames(uint8_t no)
Set the number of data frames included in this reservation request.
Definition:
uan-header-rc.cc:174
ns3::UanHeaderRcRts::SetLength
void SetLength(uint16_t length)
Set the number of data bytes in the reservation.
Definition:
uan-header-rc.cc:180
ns3::UanHeaderRcRts::m_timeStamp
Time m_timeStamp
RTS TX timestamp.
Definition:
uan-header-rc.h:225
ns3
Every class exported by the ns3 library is enclosed in the ns3 namespace.
two-ray-to-three-gpp-ch-calibration.start
start
Definition:
two-ray-to-three-gpp-ch-calibration.py:520
src
uan
model
uan-header-rc.h
Generated on Sun Mar 3 2024 17:11:09 for ns-3 by
1.9.1