A Discrete-Event Network Simulator
Home
Tutorials ▼
English
Portuguese
Docs ▼
Wiki
Manual
Models
Develop ▼
API
Bugs
API
src
wifi
model
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::EnableBasicBlockAck
(
void
)
48
{
49
m_waitAck
=
BLOCK_ACK_BASIC
;
50
}
51
52
void
53
MacLowTransmissionParameters::EnableCompressedBlockAck
(
void
)
54
{
55
m_waitAck
=
BLOCK_ACK_COMPRESSED
;
56
}
57
58
void
59
MacLowTransmissionParameters::EnableMultiTidBlockAck
(
void
)
60
{
61
m_waitAck
=
BLOCK_ACK_MULTI_TID
;
62
}
63
64
void
65
MacLowTransmissionParameters::EnableAck
(
void
)
66
{
67
m_waitAck
=
ACK_NORMAL
;
68
}
69
70
void
71
MacLowTransmissionParameters::DisableAck
(
void
)
72
{
73
m_waitAck
=
ACK_NONE
;
74
}
75
76
void
77
MacLowTransmissionParameters::EnableRts
(
void
)
78
{
79
m_sendRts
=
true
;
80
}
81
82
void
83
MacLowTransmissionParameters::DisableRts
(
void
)
84
{
85
m_sendRts
=
false
;
86
}
87
88
bool
89
MacLowTransmissionParameters::MustWaitNormalAck
(
void
)
const
90
{
91
return
(
m_waitAck
==
ACK_NORMAL
);
92
}
93
94
bool
95
MacLowTransmissionParameters::MustWaitBasicBlockAck
(
void
)
const
96
{
97
return
(
m_waitAck
==
BLOCK_ACK_BASIC
) ? true :
false
;
98
}
99
100
bool
101
MacLowTransmissionParameters::MustWaitCompressedBlockAck
(
void
)
const
102
{
103
return
(
m_waitAck
==
BLOCK_ACK_COMPRESSED
) ? true :
false
;
104
}
105
106
bool
107
MacLowTransmissionParameters::MustWaitMultiTidBlockAck
(
void
)
const
108
{
109
return
(
m_waitAck
==
BLOCK_ACK_MULTI_TID
) ? true :
false
;
110
}
111
112
bool
113
MacLowTransmissionParameters::MustSendRts
(
void
)
const
114
{
115
return
m_sendRts
;
116
}
117
118
bool
119
MacLowTransmissionParameters::HasNextPacket
(
void
)
const
120
{
121
return
(
m_nextSize
!= 0);
122
}
123
124
uint32_t
125
MacLowTransmissionParameters::GetNextPacketSize
(
void
)
const
126
{
127
NS_ASSERT
(
HasNextPacket
());
128
return
m_nextSize
;
129
}
130
131
std::ostream &
operator <<
(std::ostream &os,
const
MacLowTransmissionParameters
¶ms)
132
{
133
os <<
"["
134
<<
"send rts="
<< params.
m_sendRts
<<
", "
135
<<
"next size="
<< params.
m_nextSize
<<
", "
136
<<
"ack="
;
137
switch
(params.
m_waitAck
)
138
{
139
case
MacLowTransmissionParameters::ACK_NONE
:
140
os <<
"none"
;
141
break
;
142
case
MacLowTransmissionParameters::ACK_NORMAL
:
143
os <<
"normal"
;
144
break
;
145
case
MacLowTransmissionParameters::BLOCK_ACK_BASIC
:
146
os <<
"basic-block-ack"
;
147
break
;
148
case
MacLowTransmissionParameters::BLOCK_ACK_COMPRESSED
:
149
os <<
"compressed-block-ack"
;
150
break
;
151
case
MacLowTransmissionParameters::BLOCK_ACK_MULTI_TID
:
152
os <<
"multi-tid-block-ack"
;
153
break
;
154
}
155
os <<
"]"
;
156
return
os;
157
}
158
159
}
//namespace ns3
ns3::MacLowTransmissionParameters::MustWaitCompressedBlockAck
bool MustWaitCompressedBlockAck(void) const
Definition:
mac-low-transmission-parameters.cc:101
ns3::MacLowTransmissionParameters::BLOCK_ACK_BASIC
Definition:
mac-low-transmission-parameters.h:138
ns3::MacLowTransmissionParameters::EnableBasicBlockAck
void EnableBasicBlockAck(void)
Wait BASICBLOCKACKTimeout for a Basic Block Ack Response frame.
Definition:
mac-low-transmission-parameters.cc:47
ns3::MacLowTransmissionParameters::m_nextSize
uint32_t m_nextSize
the next size
Definition:
mac-low-transmission-parameters.h:132
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::MustSendRts
bool MustSendRts(void) const
Definition:
mac-low-transmission-parameters.cc:113
ns3::MacLowTransmissionParameters
control how a packet is transmitted.
Definition:
mac-low-transmission-parameters.h:38
ns3::MacLowTransmissionParameters::MacLowTransmissionParameters
MacLowTransmissionParameters()
Definition:
mac-low-transmission-parameters.cc:27
mac-low-transmission-parameters.h
ns3::MacLowTransmissionParameters::GetNextPacketSize
uint32_t GetNextPacketSize(void) const
Definition:
mac-low-transmission-parameters.cc:125
ns3::MacLowTransmissionParameters::MustWaitNormalAck
bool MustWaitNormalAck(void) const
Definition:
mac-low-transmission-parameters.cc:89
ns3::MacLowTransmissionParameters::HasNextPacket
bool HasNextPacket(void) const
Definition:
mac-low-transmission-parameters.cc:119
ns3::MacLowTransmissionParameters::BLOCK_ACK_COMPRESSED
Definition:
mac-low-transmission-parameters.h:139
ns3::operator<<
std::ostream & operator<<(std::ostream &os, const Angles &a)
print a struct Angles to output
Definition:
angles.cc:42
ns3::MacLowTransmissionParameters::MustWaitMultiTidBlockAck
bool MustWaitMultiTidBlockAck(void) const
Definition:
mac-low-transmission-parameters.cc:107
ns3::MacLowTransmissionParameters::EnableCompressedBlockAck
void EnableCompressedBlockAck(void)
Wait COMPRESSEDBLOCKACKTimeout for a Compressed Block Ack Response frame.
Definition:
mac-low-transmission-parameters.cc:53
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:65
ns3::MacLowTransmissionParameters::BLOCK_ACK_MULTI_TID
Definition:
mac-low-transmission-parameters.h:140
ns3::MacLowTransmissionParameters::m_sendRts
bool m_sendRts
send an RTS?
Definition:
mac-low-transmission-parameters.h:142
ns3::MacLowTransmissionParameters::DisableRts
void DisableRts(void)
Do not send rts and wait for cts before sending data.
Definition:
mac-low-transmission-parameters.cc:83
ns3::MacLowTransmissionParameters::EnableMultiTidBlockAck
void EnableMultiTidBlockAck(void)
NOT IMPLEMENTED FOR NOW.
Definition:
mac-low-transmission-parameters.cc:59
ns3::MacLowTransmissionParameters::ACK_NORMAL
Definition:
mac-low-transmission-parameters.h:137
ns3::MacLowTransmissionParameters::m_waitAck
enum ns3::MacLowTransmissionParameters::@73 m_waitAck
wait ack enumerated type
ns3::MacLowTransmissionParameters::EnableRts
void EnableRts(void)
Send a RTS, and wait CTSTimeout for a CTS.
Definition:
mac-low-transmission-parameters.cc:77
ns3::MacLowTransmissionParameters::EnableNextData
void EnableNextData(uint32_t size)
Definition:
mac-low-transmission-parameters.cc:35
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::MustWaitBasicBlockAck
bool MustWaitBasicBlockAck(void) const
Definition:
mac-low-transmission-parameters.cc:95
ns3::MacLowTransmissionParameters::ACK_NONE
Definition:
mac-low-transmission-parameters.h:136
ns3::MacLowTransmissionParameters::DisableAck
void DisableAck(void)
Do not wait for Ack after data transmission.
Definition:
mac-low-transmission-parameters.cc:71
Generated on Wed Nov 7 2018 10:02:14 for ns-3 by
1.8.14