A Discrete-Event Network Simulator
qkdnetsim_etsi_014 @ (+)
Home
Tutorials ▼
English
Documentation ▼
Manual
Models
Contributing
Wiki
Development ▼
API Docs
Issue Tracker
Merge Requests
API
Main Page
Related Pages
Modules
Namespaces
Namespace List
Namespace Members
All
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
Functions
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
y
Variables
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
r
s
t
u
v
w
x
Typedefs
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
r
s
t
u
v
w
Enumerations
a
c
d
e
f
h
i
l
m
n
o
p
q
r
s
t
v
w
Enumerator
a
b
c
d
e
f
g
h
i
l
m
n
o
p
q
r
s
t
u
v
w
Classes
Class List
Class Index
Class Hierarchy
Class Members
All
:
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
~
Functions
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
~
Variables
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Typedefs
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
y
Enumerations
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
Enumerator
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Properties
Related Functions
:
a
b
c
d
e
g
h
i
j
l
m
n
o
p
q
r
s
t
u
w
Files
File List
File Members
All
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Functions
_
a
b
c
d
e
f
g
h
i
l
m
n
o
p
q
r
s
t
u
v
w
Variables
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Typedefs
Enumerations
Enumerator
c
e
i
l
o
r
s
t
v
Macros
_
a
b
c
d
e
f
g
h
i
j
l
m
n
o
p
r
s
t
u
v
w
Examples
•
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Properties
Friends
Macros
Modules
Pages
originator-block-ack-agreement.h
Go to the documentation of this file.
1
/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
2
/*
3
* Copyright (c) 2009, 2010 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
* Author: Tommaso Pecorella <tommaso.pecorella@unifi.it>
20
*/
21
#ifndef ORIGINATOR_BLOCK_ACK_AGREEMENT_H
22
#define ORIGINATOR_BLOCK_ACK_AGREEMENT_H
23
24
#include "
block-ack-agreement.h
"
25
#include "
block-ack-window.h
"
26
27
class
OriginatorBlockAckWindowTest
;
28
29
namespace
ns3
{
30
31
class
WifiMacQueueItem;
32
58
class
OriginatorBlockAckAgreement
:
public
BlockAckAgreement
59
{
61
friend
class
BlockAckManager
;
63
friend
class ::OriginatorBlockAckWindowTest;
64
65
66
public
:
73
OriginatorBlockAckAgreement
(
Mac48Address
recipient, uint8_t tid);
74
~OriginatorBlockAckAgreement
();
101
enum
State
102
{
103
PENDING
,
104
ESTABLISHED
,
105
NO_REPLY
,
106
RESET
,
107
REJECTED
108
};
114
void
SetState
(
State
state);
121
bool
IsPending
(
void
)
const
;
128
bool
IsEstablished
(
void
)
const
;
135
bool
IsNoReply
(
void
)
const
;
142
bool
IsReset
(
void
)
const
;
149
bool
IsRejected
(
void
)
const
;
150
158
uint16_t
GetStartingSequence
(
void
)
const override
;
159
167
std::size_t
GetDistance
(uint16_t seqNumber)
const
;
168
173
void
InitTxWindow
(
void
);
174
181
void
NotifyTransmittedMpdu
(
Ptr<const WifiMacQueueItem>
mpdu);
188
void
NotifyAckedMpdu
(
Ptr<const WifiMacQueueItem>
mpdu);
195
void
NotifyDiscardedMpdu
(
Ptr<const WifiMacQueueItem>
mpdu);
196
197
198
private
:
203
void
AdvanceTxWindow
(
void
);
204
205
State
m_state
;
206
BlockAckWindow
m_txWindow
;
207
};
208
209
}
//namespace ns3
210
211
#endif
/* ORIGINATOR_BLOCK_ACK_AGREEMENT_H */
block-ack-agreement.h
block-ack-window.h
OriginatorBlockAckWindowTest
Test for the originator block ack window.
Definition:
block-ack-test-suite.cc:269
ns3::BlockAckAgreement
Maintains information for a block ack agreement.
Definition:
block-ack-agreement.h:34
ns3::BlockAckManager
Manages all block ack agreements for an originator station.
Definition:
block-ack-manager.h:70
ns3::BlockAckWindow
Block ack window.
Definition:
block-ack-window.h:57
ns3::Mac48Address
an EUI-48 address
Definition:
mac48-address.h:44
ns3::OriginatorBlockAckAgreement
Maintains the state and information about transmitted MPDUs with Ack Policy set to Block Ack for an o...
Definition:
originator-block-ack-agreement.h:59
ns3::OriginatorBlockAckAgreement::IsRejected
bool IsRejected(void) const
Check if the current state of this agreement is REJECTED.
Definition:
originator-block-ack-agreement.cc:60
ns3::OriginatorBlockAckAgreement::IsPending
bool IsPending(void) const
Check if the current state of this agreement is PENDING.
Definition:
originator-block-ack-agreement.cc:48
ns3::OriginatorBlockAckAgreement::InitTxWindow
void InitTxWindow(void)
Initialize the originator's transmit window by setting its size and starting sequence number equal to...
Definition:
originator-block-ack-agreement.cc:95
ns3::OriginatorBlockAckAgreement::m_state
State m_state
state
Definition:
originator-block-ack-agreement.h:205
ns3::OriginatorBlockAckAgreement::IsEstablished
bool IsEstablished(void) const
Check if the current state of this agreement is ESTABLISHED.
Definition:
originator-block-ack-agreement.cc:54
ns3::OriginatorBlockAckAgreement::AdvanceTxWindow
void AdvanceTxWindow(void)
Advance the transmit window so that the starting sequence number is the nearest unacknowledged MPDU.
Definition:
originator-block-ack-agreement.cc:101
ns3::OriginatorBlockAckAgreement::NotifyAckedMpdu
void NotifyAckedMpdu(Ptr< const WifiMacQueueItem > mpdu)
Record that the given MPDU has been acknowledged and advance the transmit window if possible.
Definition:
originator-block-ack-agreement.cc:135
ns3::OriginatorBlockAckAgreement::NotifyTransmittedMpdu
void NotifyTransmittedMpdu(Ptr< const WifiMacQueueItem > mpdu)
Advance the transmit window so as to include the transmitted MPDU, if the latter is not an old packet...
Definition:
originator-block-ack-agreement.cc:110
ns3::OriginatorBlockAckAgreement::m_txWindow
BlockAckWindow m_txWindow
originator's transmit window
Definition:
originator-block-ack-agreement.h:206
ns3::OriginatorBlockAckAgreement::~OriginatorBlockAckAgreement
~OriginatorBlockAckAgreement()
Definition:
originator-block-ack-agreement.cc:37
ns3::OriginatorBlockAckAgreement::GetStartingSequence
uint16_t GetStartingSequence(void) const override
Return the starting sequence number of the transmit window, if a transmit window has been initialized...
Definition:
originator-block-ack-agreement.cc:78
ns3::OriginatorBlockAckAgreement::OriginatorBlockAckAgreement
OriginatorBlockAckAgreement(Mac48Address recipient, uint8_t tid)
Constructor.
Definition:
originator-block-ack-agreement.cc:31
ns3::OriginatorBlockAckAgreement::SetState
void SetState(State state)
Set the current state.
Definition:
originator-block-ack-agreement.cc:42
ns3::OriginatorBlockAckAgreement::IsReset
bool IsReset(void) const
Check if the current state of this agreement is RESET.
Definition:
originator-block-ack-agreement.cc:72
ns3::OriginatorBlockAckAgreement::NotifyDiscardedMpdu
void NotifyDiscardedMpdu(Ptr< const WifiMacQueueItem > mpdu)
Advance the transmit window beyond the MPDU that has been reported to be discarded.
Definition:
originator-block-ack-agreement.cc:158
ns3::OriginatorBlockAckAgreement::State
State
Represents the state for this agreement.
Definition:
originator-block-ack-agreement.h:102
ns3::OriginatorBlockAckAgreement::NO_REPLY
@ NO_REPLY
Definition:
originator-block-ack-agreement.h:105
ns3::OriginatorBlockAckAgreement::PENDING
@ PENDING
Definition:
originator-block-ack-agreement.h:103
ns3::OriginatorBlockAckAgreement::ESTABLISHED
@ ESTABLISHED
Definition:
originator-block-ack-agreement.h:104
ns3::OriginatorBlockAckAgreement::RESET
@ RESET
Definition:
originator-block-ack-agreement.h:106
ns3::OriginatorBlockAckAgreement::REJECTED
@ REJECTED
Definition:
originator-block-ack-agreement.h:107
ns3::OriginatorBlockAckAgreement::GetDistance
std::size_t GetDistance(uint16_t seqNumber) const
Get the distance between the current starting sequence number and the given sequence number.
Definition:
originator-block-ack-agreement.cc:89
ns3::OriginatorBlockAckAgreement::IsNoReply
bool IsNoReply(void) const
Check if the current state of this agreement is NO_REPLY.
Definition:
originator-block-ack-agreement.cc:66
ns3::Ptr
Smart pointer class similar to boost::intrusive_ptr.
Definition:
ptr.h:74
ns3
Every class exported by the ns3 library is enclosed in the ns3 namespace.
src
wifi
model
originator-block-ack-agreement.h
Generated on Tue Feb 6 2024 19:21:29 for ns-3 by
1.9.1