A Discrete-Event Network Simulator
Home
Tutorials ▼
English
Docs ▼
Wiki
Manual
Models
Develop ▼
API
Bugs
API
mac-low-transmission-parameters.h
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
#ifndef MAC_LOW_TRANSMISSION_PARAMETERS_H
24
#define MAC_LOW_TRANSMISSION_PARAMETERS_H
25
26
#include "ns3/uinteger.h"
27
#include "
block-ack-type.h
"
28
29
namespace
ns3
{
30
39
class
MacLowTransmissionParameters
40
{
41
public
:
42
MacLowTransmissionParameters
();
43
49
void
EnableAck
(
void
);
55
void
EnableBlockAck
(
BlockAckType
type);
61
void
EnableBlockAckRequest
(
BlockAckType
type);
68
void
EnableRts
(
void
);
78
void
EnableNextData
(uint32_t size);
83
void
DisableAck
(
void
);
87
void
DisableBlockAckRequest
(
void
);
91
void
DisableRts
(
void
);
95
void
DisableNextData
(
void
);
102
bool
MustWaitNormalAck
(
void
)
const
;
108
bool
MustWaitBlockAck
(
void
)
const
;
114
BlockAckType
GetBlockAckType
(
void
)
const
;
120
bool
MustSendBlockAckRequest
(
void
)
const
;
126
BlockAckType
GetBlockAckRequestType
(
void
)
const
;
131
bool
MustSendRts
(
void
)
const
;
135
bool
HasNextPacket
(
void
)
const
;
139
uint32_t
GetNextPacketSize
(
void
)
const
;
140
141
private
:
142
friend
std::ostream &
operator <<
(std::ostream &os,
const
MacLowTransmissionParameters
¶ms);
143
uint32_t
m_nextSize
;
144
enum
146
{
147
ACK_NONE
,
148
ACK_NORMAL
,
149
BLOCK_ACK_BASIC
,
150
BLOCK_ACK_COMPRESSED
,
151
BLOCK_ACK_EXTENDED_COMPRESSED
,
152
BLOCK_ACK_MULTI_TID
153
}
m_waitAck
;
154
enum
156
{
157
BLOCK_ACK_REQUEST_NONE
,
158
BLOCK_ACK_REQUEST_BASIC
,
159
BLOCK_ACK_REQUEST_COMPRESSED
,
160
BLOCK_ACK_REQUEST_EXTENDED_COMPRESSED
,
161
BLOCK_ACK_REQUEST_MULTI_TID
162
}
m_sendBar
;
163
bool
m_sendRts
;
164
};
165
173
std::ostream &
operator <<
(std::ostream &os,
const
MacLowTransmissionParameters
¶ms);
174
175
}
//namespace ns3
176
177
#endif
/* MAC_LOW_TRANSMISSION_PARAMETERS_H */
ns3::MacLowTransmissionParameters::BLOCK_ACK_BASIC
Definition:
mac-low-transmission-parameters.h:149
ns3::MacLowTransmissionParameters::m_nextSize
uint32_t m_nextSize
the next size
Definition:
mac-low-transmission-parameters.h:143
ns3::MacLowTransmissionParameters::operator<<
friend std::ostream & operator<<(std::ostream &os, const MacLowTransmissionParameters ¶ms)
Serialize MacLowTransmissionParameters to ostream in a human-readable form.
Definition:
mac-low-transmission-parameters.cc:244
ns3::MacLowTransmissionParameters::MustWaitBlockAck
bool MustWaitBlockAck(void) const
Definition:
mac-low-transmission-parameters.cc:138
block-ack-type.h
ns3::MacLowTransmissionParameters::MustSendRts
bool MustSendRts(void) const
Definition:
mac-low-transmission-parameters.cc:226
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
ns3::MacLowTransmissionParameters::GetNextPacketSize
uint32_t GetNextPacketSize(void) const
Definition:
mac-low-transmission-parameters.cc:238
ns3::MacLowTransmissionParameters::BLOCK_ACK_EXTENDED_COMPRESSED
Definition:
mac-low-transmission-parameters.h:151
ns3::MacLowTransmissionParameters::BLOCK_ACK_REQUEST_COMPRESSED
Definition:
mac-low-transmission-parameters.h:159
ns3::MacLowTransmissionParameters::MustWaitNormalAck
bool MustWaitNormalAck(void) const
Definition:
mac-low-transmission-parameters.cc:132
ns3::MacLowTransmissionParameters::HasNextPacket
bool HasNextPacket(void) const
Definition:
mac-low-transmission-parameters.cc:232
ns3::MacLowTransmissionParameters::BLOCK_ACK_COMPRESSED
Definition:
mac-low-transmission-parameters.h:150
ns3::MacLowTransmissionParameters::GetBlockAckRequestType
BlockAckType GetBlockAckRequestType(void) const
Definition:
mac-low-transmission-parameters.cc:201
ns3::operator<<
std::ostream & operator<<(std::ostream &os, const Angles &a)
print a struct Angles to output
Definition:
angles.cc:42
ns3::MacLowTransmissionParameters::BLOCK_ACK_REQUEST_EXTENDED_COMPRESSED
Definition:
mac-low-transmission-parameters.h:160
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:100
ns3::MacLowTransmissionParameters::BLOCK_ACK_MULTI_TID
Definition:
mac-low-transmission-parameters.h:152
ns3::MacLowTransmissionParameters::m_sendRts
bool m_sendRts
send an RTS?
Definition:
mac-low-transmission-parameters.h:163
ns3::MacLowTransmissionParameters::MustSendBlockAckRequest
bool MustSendBlockAckRequest(void) const
Definition:
mac-low-transmission-parameters.cc:182
ns3::MacLowTransmissionParameters::BLOCK_ACK_REQUEST_NONE
Definition:
mac-low-transmission-parameters.h:157
ns3::MacLowTransmissionParameters::DisableRts
void DisableRts(void)
Do not send RTS and wait for CTS before sending data.
Definition:
mac-low-transmission-parameters.cc:126
ns3::MacLowTransmissionParameters::ACK_NORMAL
Definition:
mac-low-transmission-parameters.h:148
ns3::MacLowTransmissionParameters::m_waitAck
enum ns3::MacLowTransmissionParameters::@73 m_waitAck
wait Ack enumerated type
ns3::MacLowTransmissionParameters::m_sendBar
enum ns3::MacLowTransmissionParameters::@74 m_sendBar
send BAR enumerated type
ns3::MacLowTransmissionParameters::BLOCK_ACK_REQUEST_BASIC
Definition:
mac-low-transmission-parameters.h:158
ns3::MacLowTransmissionParameters::BLOCK_ACK_REQUEST_MULTI_TID
Definition:
mac-low-transmission-parameters.h:161
ns3::MacLowTransmissionParameters::EnableRts
void EnableRts(void)
Send a RTS, and wait CTSTimeout for a CTS.
Definition:
mac-low-transmission-parameters.cc:120
ns3::MacLowTransmissionParameters::EnableNextData
void EnableNextData(uint32_t size)
Definition:
mac-low-transmission-parameters.cc:36
ns3::MacLowTransmissionParameters::DisableNextData
void DisableNextData(void)
Do not attempt to send data burst after current transmission.
Definition:
mac-low-transmission-parameters.cc:42
ns3::MacLowTransmissionParameters::DisableBlockAckRequest
void DisableBlockAckRequest(void)
Do not send BlockAckRequest after data transmission.
Definition:
mac-low-transmission-parameters.cc:114
ns3::MacLowTransmissionParameters::ACK_NONE
Definition:
mac-low-transmission-parameters.h:147
ns3::MacLowTransmissionParameters::EnableBlockAck
void EnableBlockAck(BlockAckType type)
Wait the timeout corresponding to the given BlockAck response type.
Definition:
mac-low-transmission-parameters.cc:48
ns3::MacLowTransmissionParameters::EnableBlockAckRequest
void EnableBlockAckRequest(BlockAckType type)
Schedule the transmission of a BlockAckRequest of the given type.
Definition:
mac-low-transmission-parameters.cc:74
ns3::MacLowTransmissionParameters::GetBlockAckType
BlockAckType GetBlockAckType(void) const
Definition:
mac-low-transmission-parameters.cc:157
ns3::MacLowTransmissionParameters::DisableAck
void DisableAck(void)
Do not wait for Ack after data transmission.
Definition:
mac-low-transmission-parameters.cc:108
ns3::BlockAckType
BlockAckType
The different block ack policies.
Definition:
block-ack-type.h:30
src
wifi
model
mac-low-transmission-parameters.h
Generated on Wed Oct 7 2020 01:18:56 for ns-3 by
1.8.14