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
mac-low-transmission-parameters.cc
Go to the documentation of this file.
1
/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
2
/*
3
* Copyright (c) 2005,2006 INRIA
4
* Copyright (c) 2009 MIRKO BANCHI
5
*
6
* This program is free software; you can redistribute it and/or modify
7
* it under the terms of the GNU General Public License version 2 as
8
* published by the Free Software Foundation;
9
*
10
* This program is distributed in the hope that it will be useful,
11
* but WITHOUT ANY WARRANTY; without even the implied warranty of
12
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
* GNU General Public License for more details.
14
*
15
* You should have received a copy of the GNU General Public License
16
* along with this program; if not, write to the Free Software
17
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18
*
19
* Authors: Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
20
* Mirko Banchi <mk.banchi@gmail.com>
21
*/
22
23
#include "
mac-low-transmission-parameters.h
"
24
25
namespace
ns3
{
26
27
MacLowTransmissionParameters::MacLowTransmissionParameters
()
28
: m_nextSize (0),
29
m_waitAck (ACK_NONE),
30
m_sendRts (false)
31
{
32
}
33
34
void
35
MacLowTransmissionParameters::EnableNextData
(uint32_t size)
36
{
37
m_nextSize
= size;
38
}
39
40
void
41
MacLowTransmissionParameters::DisableNextData
(
void
)
42
{
43
m_nextSize
= 0;
44
}
45
46
void
47
MacLowTransmissionParameters::EnableSuperFastAck
(
void
)
48
{
49
m_waitAck
=
ACK_SUPER_FAST
;
50
}
51
52
void
53
MacLowTransmissionParameters::EnableBasicBlockAck
(
void
)
54
{
55
m_waitAck
=
BLOCK_ACK_BASIC
;
56
}
57
58
void
59
MacLowTransmissionParameters::EnableCompressedBlockAck
(
void
)
60
{
61
m_waitAck
=
BLOCK_ACK_COMPRESSED
;
62
}
63
64
void
65
MacLowTransmissionParameters::EnableMultiTidBlockAck
(
void
)
66
{
67
m_waitAck
=
BLOCK_ACK_MULTI_TID
;
68
}
69
70
void
71
MacLowTransmissionParameters::EnableFastAck
(
void
)
72
{
73
m_waitAck
=
ACK_FAST
;
74
}
75
76
void
77
MacLowTransmissionParameters::EnableAck
(
void
)
78
{
79
m_waitAck
=
ACK_NORMAL
;
80
}
81
82
void
83
MacLowTransmissionParameters::DisableAck
(
void
)
84
{
85
m_waitAck
=
ACK_NONE
;
86
}
87
88
void
89
MacLowTransmissionParameters::EnableRts
(
void
)
90
{
91
m_sendRts
=
true
;
92
}
93
94
void
95
MacLowTransmissionParameters::DisableRts
(
void
)
96
{
97
m_sendRts
=
false
;
98
}
99
100
bool
101
MacLowTransmissionParameters::MustWaitAck
(
void
)
const
102
{
103
return
(
m_waitAck
!=
ACK_NONE
);
104
}
105
106
bool
107
MacLowTransmissionParameters::MustWaitNormalAck
(
void
)
const
108
{
109
return
(
m_waitAck
==
ACK_NORMAL
);
110
}
111
112
bool
113
MacLowTransmissionParameters::MustWaitFastAck
(
void
)
const
114
{
115
return
(
m_waitAck
==
ACK_FAST
);
116
}
117
118
bool
119
MacLowTransmissionParameters::MustWaitSuperFastAck
(
void
)
const
120
{
121
return
(
m_waitAck
==
ACK_SUPER_FAST
);
122
}
123
124
bool
125
MacLowTransmissionParameters::MustWaitBasicBlockAck
(
void
)
const
126
{
127
return
(
m_waitAck
==
BLOCK_ACK_BASIC
) ?
true
:
false
;
128
}
129
130
bool
131
MacLowTransmissionParameters::MustWaitCompressedBlockAck
(
void
)
const
132
{
133
return
(
m_waitAck
==
BLOCK_ACK_COMPRESSED
) ?
true
:
false
;
134
}
135
136
bool
137
MacLowTransmissionParameters::MustWaitMultiTidBlockAck
(
void
)
const
138
{
139
return
(
m_waitAck
==
BLOCK_ACK_MULTI_TID
) ?
true
:
false
;
140
}
141
142
bool
143
MacLowTransmissionParameters::MustSendRts
(
void
)
const
144
{
145
return
m_sendRts
;
146
}
147
148
bool
149
MacLowTransmissionParameters::HasNextPacket
(
void
)
const
150
{
151
return
(
m_nextSize
!= 0);
152
}
153
154
uint32_t
155
MacLowTransmissionParameters::GetNextPacketSize
(
void
)
const
156
{
157
NS_ASSERT
(
HasNextPacket
());
158
return
m_nextSize
;
159
}
160
161
std::ostream &
operator <<
(std::ostream &os,
const
MacLowTransmissionParameters
¶ms)
162
{
163
os <<
"["
164
<<
"send rts="
<< params.
m_sendRts
<<
", "
165
<<
"next size="
<< params.
m_nextSize
<<
", "
166
<<
"ack="
;
167
switch
(params.
m_waitAck
)
168
{
169
case
MacLowTransmissionParameters::ACK_NONE
:
170
os <<
"none"
;
171
break
;
172
case
MacLowTransmissionParameters::ACK_NORMAL
:
173
os <<
"normal"
;
174
break
;
175
case
MacLowTransmissionParameters::ACK_FAST
:
176
os <<
"fast"
;
177
break
;
178
case
MacLowTransmissionParameters::ACK_SUPER_FAST
:
179
os <<
"super-fast"
;
180
break
;
181
case
MacLowTransmissionParameters::BLOCK_ACK_BASIC
:
182
os <<
"basic-block-ack"
;
183
break
;
184
case
MacLowTransmissionParameters::BLOCK_ACK_COMPRESSED
:
185
os <<
"compressed-block-ack"
;
186
break
;
187
case
MacLowTransmissionParameters::BLOCK_ACK_MULTI_TID
:
188
os <<
"multi-tid-block-ack"
;
189
break
;
190
}
191
os <<
"]"
;
192
return
os;
193
}
194
195
}
//namespace ns3
ns3::MacLowTransmissionParameters::MustSendRts
bool MustSendRts(void) const
Definition:
mac-low-transmission-parameters.cc:143
ns3::MacLowTransmissionParameters::EnableBasicBlockAck
void EnableBasicBlockAck(void)
Wait BASICBLOCKACKTimeout for a Basic Block Ack Response frame.
Definition:
mac-low-transmission-parameters.cc:53
ns3::MacLowTransmissionParameters::m_nextSize
uint32_t m_nextSize
the next size
Definition:
mac-low-transmission-parameters.h:176
NS_ASSERT
#define NS_ASSERT(condition)
At runtime, in debugging builds, if this condition is not true, the program prints the source file...
Definition:
assert.h:67
ns3::MacLowTransmissionParameters::BLOCK_ACK_MULTI_TID
Definition:
mac-low-transmission-parameters.h:186
ns3::MacLowTransmissionParameters::BLOCK_ACK_COMPRESSED
Definition:
mac-low-transmission-parameters.h:185
ns3::MacLowTransmissionParameters::MustWaitFastAck
bool MustWaitFastAck(void) const
Definition:
mac-low-transmission-parameters.cc:113
ns3::MacLowTransmissionParameters
control how a packet is transmitted.
Definition:
mac-low-transmission-parameters.h:39
ns3::MacLowTransmissionParameters::MacLowTransmissionParameters
MacLowTransmissionParameters()
Definition:
mac-low-transmission-parameters.cc:27
mac-low-transmission-parameters.h
ns3::MacLowTransmissionParameters::ACK_SUPER_FAST
Definition:
mac-low-transmission-parameters.h:183
ns3::MacLowTransmissionParameters::ACK_NONE
Definition:
mac-low-transmission-parameters.h:180
ns3::MacLowTransmissionParameters::EnableSuperFastAck
void EnableSuperFastAck(void)
Definition:
mac-low-transmission-parameters.cc:47
ns3::MacLowTransmissionParameters::MustWaitMultiTidBlockAck
bool MustWaitMultiTidBlockAck(void) const
Definition:
mac-low-transmission-parameters.cc:137
ns3::MacLowTransmissionParameters::GetNextPacketSize
uint32_t GetNextPacketSize(void) const
Definition:
mac-low-transmission-parameters.cc:155
ns3::MacLowTransmissionParameters::HasNextPacket
bool HasNextPacket(void) const
Definition:
mac-low-transmission-parameters.cc:149
ns3::operator<<
std::ostream & operator<<(std::ostream &os, const Angles &a)
print a struct Angles to output
Definition:
angles.cc:42
ns3::MacLowTransmissionParameters::EnableCompressedBlockAck
void EnableCompressedBlockAck(void)
Wait COMPRESSEDBLOCKACKTimeout for a Compressed Block Ack Response frame.
Definition:
mac-low-transmission-parameters.cc:59
ns3
Every class exported by the ns3 library is enclosed in the ns3 namespace.
ns3::MacLowTransmissionParameters::EnableAck
void EnableAck(void)
Wait ACKTimeout for an ACK.
Definition:
mac-low-transmission-parameters.cc:77
ns3::MacLowTransmissionParameters::m_sendRts
bool m_sendRts
send an RTS?
Definition:
mac-low-transmission-parameters.h:188
ns3::MacLowTransmissionParameters::MustWaitBasicBlockAck
bool MustWaitBasicBlockAck(void) const
Definition:
mac-low-transmission-parameters.cc:125
ns3::MacLowTransmissionParameters::MustWaitCompressedBlockAck
bool MustWaitCompressedBlockAck(void) const
Definition:
mac-low-transmission-parameters.cc:131
ns3::MacLowTransmissionParameters::EnableFastAck
void EnableFastAck(void)
Definition:
mac-low-transmission-parameters.cc:71
ns3::MacLowTransmissionParameters::DisableRts
void DisableRts(void)
Do not send rts and wait for cts before sending data.
Definition:
mac-low-transmission-parameters.cc:95
ns3::MacLowTransmissionParameters::EnableMultiTidBlockAck
void EnableMultiTidBlockAck(void)
NOT IMPLEMENTED FOR NOW.
Definition:
mac-low-transmission-parameters.cc:65
ns3::MacLowTransmissionParameters::m_waitAck
enum ns3::MacLowTransmissionParameters::@73 m_waitAck
wait ack enumerated type
ns3::MacLowTransmissionParameters::MustWaitSuperFastAck
bool MustWaitSuperFastAck(void) const
Definition:
mac-low-transmission-parameters.cc:119
ns3::MacLowTransmissionParameters::EnableRts
void EnableRts(void)
Send a RTS, and wait CTSTimeout for a CTS.
Definition:
mac-low-transmission-parameters.cc:89
ns3::MacLowTransmissionParameters::EnableNextData
void EnableNextData(uint32_t size)
Definition:
mac-low-transmission-parameters.cc:35
ns3::MacLowTransmissionParameters::BLOCK_ACK_BASIC
Definition:
mac-low-transmission-parameters.h:184
ns3::MacLowTransmissionParameters::DisableNextData
void DisableNextData(void)
Do not attempt to send data burst after current transmission.
Definition:
mac-low-transmission-parameters.cc:41
ns3::MacLowTransmissionParameters::ACK_FAST
Definition:
mac-low-transmission-parameters.h:182
ns3::MacLowTransmissionParameters::ACK_NORMAL
Definition:
mac-low-transmission-parameters.h:181
ns3::MacLowTransmissionParameters::MustWaitAck
bool MustWaitAck(void) const
Definition:
mac-low-transmission-parameters.cc:101
ns3::MacLowTransmissionParameters::DisableAck
void DisableAck(void)
Do not wait for Ack after data transmission.
Definition:
mac-low-transmission-parameters.cc:83
ns3::MacLowTransmissionParameters::MustWaitNormalAck
bool MustWaitNormalAck(void) const
Definition:
mac-low-transmission-parameters.cc:107
src
wifi
model
mac-low-transmission-parameters.cc
Generated on Wed Mar 21 2018 14:24:32 for ns-3 by
1.8.9.1