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
ctrl-headers.h
Go to the documentation of this file.
1
/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
2
/*
3
* Copyright (c) 2009 MIRKO BANCHI
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: Mirko Banchi <mk.banchi@gmail.com>
19
*/
20
21
#ifndef CTRL_HEADERS_H
22
#define CTRL_HEADERS_H
23
24
#include "ns3/header.h"
25
26
namespace
ns3
{
27
31
enum
BlockAckType
32
{
33
BASIC_BLOCK_ACK
,
34
COMPRESSED_BLOCK_ACK
,
35
MULTI_TID_BLOCK_ACK
36
};
37
50
class
CtrlBAckRequestHeader
:
public
Header
51
{
52
public
:
53
CtrlBAckRequestHeader
();
54
~CtrlBAckRequestHeader
();
55
static
TypeId
GetTypeId
(
void
);
56
virtual
TypeId
GetInstanceTypeId
(
void
)
const
;
57
virtual
void
Print
(std::ostream &os)
const
;
58
virtual
uint32_t
GetSerializedSize
(
void
)
const
;
59
virtual
void
Serialize
(
Buffer::Iterator
start
)
const
;
60
virtual
uint32_t
Deserialize
(
Buffer::Iterator
start);
61
67
void
SetHtImmediateAck
(
bool
immediateAck);
73
void
SetType
(
enum
BlockAckType
type);
79
void
SetTidInfo
(uint8_t tid);
86
void
SetStartingSequence
(uint16_t seq);
87
94
bool
MustSendHtImmediateAck
(
void
)
const
;
100
uint8_t
GetTidInfo
(
void
)
const
;
106
uint16_t
GetStartingSequence
(
void
)
const
;
114
bool
IsBasic
(
void
)
const
;
122
bool
IsCompressed
(
void
)
const
;
129
bool
IsMultiTid
(
void
)
const
;
130
136
uint16_t
GetStartingSequenceControl
(
void
)
const
;
137
138
139
private
:
146
void
SetStartingSequenceControl
(uint16_t seqControl);
152
uint16_t
GetBarControl
(
void
)
const
;
158
void
SetBarControl
(uint16_t bar);
159
166
bool
m_barAckPolicy
;
167
bool
m_multiTid
;
168
bool
m_compressed
;
169
uint16_t
m_tidInfo
;
170
uint16_t
m_startingSeq
;
171
};
172
173
186
class
CtrlBAckResponseHeader
:
public
Header
187
{
188
public
:
189
CtrlBAckResponseHeader
();
190
~CtrlBAckResponseHeader
();
191
static
TypeId
GetTypeId
(
void
);
192
virtual
TypeId
GetInstanceTypeId
(
void
)
const
;
193
virtual
void
Print
(std::ostream &os)
const
;
194
virtual
uint32_t
GetSerializedSize
(
void
)
const
;
195
virtual
void
Serialize
(
Buffer::Iterator
start
)
const
;
196
virtual
uint32_t
Deserialize
(
Buffer::Iterator
start);
197
203
void
SetHtImmediateAck
(
bool
immediateAck);
209
void
SetType
(
enum
BlockAckType
type);
215
void
SetTidInfo
(uint8_t tid);
222
void
SetStartingSequence
(uint16_t seq);
223
230
bool
MustSendHtImmediateAck
(
void
)
const
;
236
uint8_t
GetTidInfo
(
void
)
const
;
242
uint16_t
GetStartingSequence
(
void
)
const
;
250
bool
IsBasic
(
void
)
const
;
258
bool
IsCompressed
(
void
)
const
;
265
bool
IsMultiTid
(
void
)
const
;
266
273
void
SetReceivedPacket
(uint16_t seq);
281
void
SetReceivedFragment
(uint16_t seq, uint8_t frag);
290
bool
IsPacketReceived
(uint16_t seq)
const
;
301
bool
IsFragmentReceived
(uint16_t seq, uint8_t frag)
const
;
302
308
uint16_t
GetStartingSequenceControl
(
void
)
const
;
315
void
SetStartingSequenceControl
(uint16_t seqControl);
321
const
uint16_t*
GetBitmap
(
void
)
const
;
327
uint64_t
GetCompressedBitmap
(
void
)
const
;
328
332
void
ResetBitmap
(
void
);
333
334
335
private
:
341
uint16_t
GetBaControl
(
void
)
const
;
347
void
SetBaControl
(uint16_t bar);
348
355
Buffer::Iterator
SerializeBitmap
(
Buffer::Iterator
start)
const
;
362
Buffer::Iterator
DeserializeBitmap
(
Buffer::Iterator
start);
363
378
uint8_t
IndexInBitmap
(uint16_t seq)
const
;
379
387
bool
IsInBitmap
(uint16_t seq)
const
;
388
395
bool
m_baAckPolicy
;
396
bool
m_multiTid
;
397
bool
m_compressed
;
398
uint16_t
m_tidInfo
;
399
uint16_t
m_startingSeq
;
400
401
union
402
{
403
uint16_t
m_bitmap
[64];
404
uint64_t
m_compressedBitmap
;
405
}
bitmap
;
406
};
407
408
}
//namespace ns3
409
410
#endif
/* CTRL_HEADERS_H */
ns3::Header
Protocol header serialization and deserialization.
Definition:
header.h:42
ns3::CtrlBAckRequestHeader::SetType
void SetType(enum BlockAckType type)
Set the block ACK type.
Definition:
ctrl-headers.cc:198
ns3::CtrlBAckRequestHeader::GetInstanceTypeId
virtual TypeId GetInstanceTypeId(void) const
Get the most derived TypeId for this Object.
Definition:
ctrl-headers.cc:61
ns3::CtrlBAckRequestHeader::m_compressed
bool m_compressed
Definition:
ctrl-headers.h:168
ns3::CtrlBAckRequestHeader::IsBasic
bool IsBasic(void) const
Check if the current ACK policy is basic (i.e.
Definition:
ctrl-headers.cc:258
ns3::CtrlBAckResponseHeader::GetStartingSequence
uint16_t GetStartingSequence(void) const
Return the starting sequence number.
Definition:
ctrl-headers.cc:464
ns3::CtrlBAckRequestHeader::CtrlBAckRequestHeader
CtrlBAckRequestHeader()
Definition:
ctrl-headers.cc:35
visualizer.core.start
def start()
Definition:
core.py:1482
ns3::CtrlBAckResponseHeader::SetStartingSequenceControl
void SetStartingSequenceControl(uint16_t seqControl)
Set the starting sequence control with the given sequence control value.
Definition:
ctrl-headers.cc:530
ns3::CtrlBAckRequestHeader::IsMultiTid
bool IsMultiTid(void) const
Check if the current ACK policy has multiple TID.
Definition:
ctrl-headers.cc:272
ns3::CtrlBAckRequestHeader::SetBarControl
void SetBarControl(uint16_t bar)
Set the Block ACK control.
Definition:
ctrl-headers.cc:167
ns3::CtrlBAckResponseHeader::IsPacketReceived
bool IsPacketReceived(uint16_t seq) const
Check if the packet with the given sequence number was ACKed in this Block ACK response.
Definition:
ctrl-headers.cc:671
ns3::MULTI_TID_BLOCK_ACK
Definition:
ctrl-headers.h:35
ns3::CtrlBAckResponseHeader::IsCompressed
bool IsCompressed(void) const
Check if the current ACK policy is compressed ACK and not multiple TID.
Definition:
ctrl-headers.cc:478
ns3::CtrlBAckRequestHeader::SetHtImmediateAck
void SetHtImmediateAck(bool immediateAck)
Enable or disable HT immediate ACK.
Definition:
ctrl-headers.cc:191
ns3::BlockAckType
BlockAckType
Enumeration for different block ACK policies.
Definition:
ctrl-headers.h:31
ns3::CtrlBAckResponseHeader::m_baAckPolicy
bool m_baAckPolicy
The lsb bit of the BA control field is used only for the HT (High Throughput) delayed block ack confi...
Definition:
ctrl-headers.h:395
ns3::CtrlBAckResponseHeader::SetStartingSequence
void SetStartingSequence(uint16_t seq)
Set the starting sequence number from the given raw sequence control field.
Definition:
ctrl-headers.cc:442
ns3::CtrlBAckResponseHeader::SetTidInfo
void SetTidInfo(uint8_t tid)
Set Traffic ID (TID).
Definition:
ctrl-headers.cc:435
ns3::Buffer::Iterator
iterator in a Buffer instance
Definition:
buffer.h:98
ns3::CtrlBAckResponseHeader::bitmap
union ns3::CtrlBAckResponseHeader::@91 bitmap
ns3::CtrlBAckResponseHeader::GetTidInfo
uint8_t GetTidInfo(void) const
Return the Traffic ID (TID).
Definition:
ctrl-headers.cc:456
ns3::CtrlBAckRequestHeader::Print
virtual void Print(std::ostream &os) const
Definition:
ctrl-headers.cc:68
ns3::CtrlBAckResponseHeader::~CtrlBAckResponseHeader
~CtrlBAckResponseHeader()
Definition:
ctrl-headers.cc:294
ns3::CtrlBAckResponseHeader::SetBaControl
void SetBaControl(uint16_t bar)
Set the block ACK control.
Definition:
ctrl-headers.cc:513
ns3::CtrlBAckRequestHeader::m_multiTid
bool m_multiTid
Definition:
ctrl-headers.h:167
ns3::CtrlBAckResponseHeader::GetBaControl
uint16_t GetBaControl(void) const
Return the block ACK control.
Definition:
ctrl-headers.cc:492
ns3::CtrlBAckRequestHeader::m_barAckPolicy
bool m_barAckPolicy
The lsb bit of the BAR control field is used only for the HT (High Throughput) delayed block ack conf...
Definition:
ctrl-headers.h:166
ns3::CtrlBAckRequestHeader::GetSerializedSize
virtual uint32_t GetSerializedSize(void) const
Definition:
ctrl-headers.cc:75
ns3::CtrlBAckRequestHeader::m_startingSeq
uint16_t m_startingSeq
Definition:
ctrl-headers.h:170
ns3::CtrlBAckResponseHeader::IndexInBitmap
uint8_t IndexInBitmap(uint16_t seq) const
This function is used to correctly index in both bitmap and compressed bitmap, one bit or one block o...
Definition:
ctrl-headers.cc:744
ns3::CtrlBAckResponseHeader
Headers for Block ack response.
Definition:
ctrl-headers.h:186
ns3::CtrlBAckRequestHeader::GetTypeId
static TypeId GetTypeId(void)
Definition:
ctrl-headers.cc:49
ns3::CtrlBAckRequestHeader::GetStartingSequenceControl
uint16_t GetStartingSequenceControl(void) const
Return the starting sequence control.
Definition:
ctrl-headers.cc:177
ns3::CtrlBAckResponseHeader::m_tidInfo
uint16_t m_tidInfo
Definition:
ctrl-headers.h:398
ns3::CtrlBAckResponseHeader::IsFragmentReceived
bool IsFragmentReceived(uint16_t seq, uint8_t frag) const
Check if the packet with the given sequence number and fragment number was ACKed in this Block ACK re...
Definition:
ctrl-headers.cc:706
ns3::CtrlBAckResponseHeader::GetSerializedSize
virtual uint32_t GetSerializedSize(void) const
Definition:
ctrl-headers.cc:324
ns3::CtrlBAckResponseHeader::CtrlBAckResponseHeader
CtrlBAckResponseHeader()
Definition:
ctrl-headers.cc:285
ns3::CtrlBAckResponseHeader::SerializeBitmap
Buffer::Iterator SerializeBitmap(Buffer::Iterator start) const
Serialize bitmap to the given buffer.
Definition:
ctrl-headers.cc:537
ns3::CtrlBAckRequestHeader::Deserialize
virtual uint32_t Deserialize(Buffer::Iterator start)
Definition:
ctrl-headers.cc:122
ns3::CtrlBAckRequestHeader::SetTidInfo
void SetTidInfo(uint8_t tid)
Set Traffic ID (TID).
Definition:
ctrl-headers.cc:222
ns3::CtrlBAckRequestHeader::GetStartingSequence
uint16_t GetStartingSequence(void) const
Return the starting sequence number.
Definition:
ctrl-headers.cc:251
ns3
Every class exported by the ns3 library is enclosed in the ns3 namespace.
ns3::CtrlBAckResponseHeader::DeserializeBitmap
Buffer::Iterator DeserializeBitmap(Buffer::Iterator start)
Deserialize bitmap from the given buffer.
Definition:
ctrl-headers.cc:570
ns3::CtrlBAckResponseHeader::m_multiTid
bool m_multiTid
Definition:
ctrl-headers.h:396
ns3::CtrlBAckResponseHeader::GetTypeId
static TypeId GetTypeId(void)
Definition:
ctrl-headers.cc:300
ns3::CtrlBAckResponseHeader::SetType
void SetType(enum BlockAckType type)
Set the block ACK type.
Definition:
ctrl-headers.cc:411
ns3::CtrlBAckResponseHeader::IsBasic
bool IsBasic(void) const
Check if the current ACK policy is basic (i.e.
Definition:
ctrl-headers.cc:471
ns3::CtrlBAckResponseHeader::GetStartingSequenceControl
uint16_t GetStartingSequenceControl(void) const
Return the starting sequence control.
Definition:
ctrl-headers.cc:523
ns3::CtrlBAckResponseHeader::Serialize
virtual void Serialize(Buffer::Iterator start) const
Definition:
ctrl-headers.cc:355
ns3::CtrlBAckResponseHeader::ResetBitmap
void ResetBitmap(void)
Reset the bitmap to 0.
Definition:
ctrl-headers.cc:782
ns3::CtrlBAckResponseHeader::IsInBitmap
bool IsInBitmap(uint16_t seq) const
Checks if sequence number seq can be acknowledged in the bitmap.
Definition:
ctrl-headers.cc:761
ns3::CtrlBAckResponseHeader::m_compressed
bool m_compressed
Definition:
ctrl-headers.h:397
ns3::CtrlBAckRequestHeader::GetTidInfo
uint8_t GetTidInfo(void) const
Return the Traffic ID (TID).
Definition:
ctrl-headers.cc:243
ns3::CtrlBAckRequestHeader::~CtrlBAckRequestHeader
~CtrlBAckRequestHeader()
Definition:
ctrl-headers.cc:43
ns3::CtrlBAckResponseHeader::m_startingSeq
uint16_t m_startingSeq
Definition:
ctrl-headers.h:399
ns3::CtrlBAckResponseHeader::SetReceivedFragment
void SetReceivedFragment(uint16_t seq, uint8_t frag)
Set the bitmap that the packet with the given sequence number and fragment number was received...
Definition:
ctrl-headers.cc:637
ns3::CtrlBAckResponseHeader::m_bitmap
uint16_t m_bitmap[64]
Definition:
ctrl-headers.h:403
ns3::CtrlBAckResponseHeader::m_compressedBitmap
uint64_t m_compressedBitmap
Definition:
ctrl-headers.h:404
ns3::CtrlBAckRequestHeader::Serialize
virtual void Serialize(Buffer::Iterator start) const
Definition:
ctrl-headers.cc:99
ns3::CtrlBAckRequestHeader::SetStartingSequenceControl
void SetStartingSequenceControl(uint16_t seqControl)
Set the starting sequence control with the given sequence control value.
Definition:
ctrl-headers.cc:184
ns3::CtrlBAckResponseHeader::SetReceivedPacket
void SetReceivedPacket(uint16_t seq)
Set the bitmap that the packet with the given sequence number was received.
Definition:
ctrl-headers.cc:603
ns3::CtrlBAckRequestHeader::GetBarControl
uint16_t GetBarControl(void) const
Return the Block ACK control.
Definition:
ctrl-headers.cc:146
ns3::CtrlBAckRequestHeader::MustSendHtImmediateAck
bool MustSendHtImmediateAck(void) const
Check if the current ACK policy is immediate.
Definition:
ctrl-headers.cc:236
ns3::COMPRESSED_BLOCK_ACK
Definition:
ctrl-headers.h:34
ns3::CtrlBAckResponseHeader::GetBitmap
const uint16_t * GetBitmap(void) const
Return the bitmap from the block ACK response header.
Definition:
ctrl-headers.cc:768
ns3::CtrlBAckResponseHeader::Deserialize
virtual uint32_t Deserialize(Buffer::Iterator start)
Definition:
ctrl-headers.cc:379
ns3::CtrlBAckRequestHeader::m_tidInfo
uint16_t m_tidInfo
Definition:
ctrl-headers.h:169
ns3::CtrlBAckResponseHeader::SetHtImmediateAck
void SetHtImmediateAck(bool immediateAck)
Enable or disable HT immediate ACK.
Definition:
ctrl-headers.cc:404
ns3::CtrlBAckResponseHeader::Print
virtual void Print(std::ostream &os) const
Definition:
ctrl-headers.cc:317
ns3::CtrlBAckRequestHeader::IsCompressed
bool IsCompressed(void) const
Check if the current ACK policy is compressed ACK and not multiple TID.
Definition:
ctrl-headers.cc:265
ns3::CtrlBAckResponseHeader::MustSendHtImmediateAck
bool MustSendHtImmediateAck(void) const
Check if the current ACK policy is immediate.
Definition:
ctrl-headers.cc:449
ns3::CtrlBAckRequestHeader
Headers for Block ack request.
Definition:
ctrl-headers.h:50
ns3::TypeId
a unique identifier for an interface.
Definition:
type-id.h:58
ns3::CtrlBAckRequestHeader::SetStartingSequence
void SetStartingSequence(uint16_t seq)
Set the starting sequence number from the given raw sequence control field.
Definition:
ctrl-headers.cc:229
ns3::CtrlBAckResponseHeader::IsMultiTid
bool IsMultiTid(void) const
Check if the current ACK policy has multiple TID.
Definition:
ctrl-headers.cc:485
ns3::BASIC_BLOCK_ACK
Definition:
ctrl-headers.h:33
ns3::CtrlBAckResponseHeader::GetInstanceTypeId
virtual TypeId GetInstanceTypeId(void) const
Get the most derived TypeId for this Object.
Definition:
ctrl-headers.cc:311
ns3::CtrlBAckResponseHeader::GetCompressedBitmap
uint64_t GetCompressedBitmap(void) const
Return the compressed bitmap from the block ACK response header.
Definition:
ctrl-headers.cc:775
src
wifi
model
ctrl-headers.h
Generated on Thu Jan 28 2016 11:05:39 for ns-3 by
1.8.9.1