author | Alexander Krotov <krotov@iitp.ru> |
Sat, 04 Aug 2018 20:02:47 +0300 | |
changeset 13716 | 0b3abcc6f68f |
parent 13690 | 6d1d3c5bb74c |
child 13807 | 497681985a58 |
permissions | -rw-r--r-- |
7385
10beb0e53130
standardize emacs c++ mode comments
Vedran Miletić <rivanvx@gmail.com>
parents:
7333
diff
changeset
|
1 |
/* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */ |
1922
dd18bc29fc3c
add MacLow to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
2 |
/* |
dd18bc29fc3c
add MacLow to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
3 |
* Copyright (c) 2005, 2006 INRIA |
5956
e9918be47f78
MacLow now buffers QoS MPDUs under Block Ack
Mirko Banchi <mk.banchi@gmail.com>
parents:
5955
diff
changeset
|
4 |
* Copyright (c) 2009 MIRKO BANCHI |
1922
dd18bc29fc3c
add MacLow to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
5 |
* |
dd18bc29fc3c
add MacLow to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
6 |
* This program is free software; you can redistribute it and/or modify |
7141
072fb225b714
run check-style.py on src/wifi
Nicola Baldo <nicola@baldo.biz>
parents:
7139
diff
changeset
|
7 |
* it under the terms of the GNU General Public License version 2 as |
1922
dd18bc29fc3c
add MacLow to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
8 |
* published by the Free Software Foundation; |
dd18bc29fc3c
add MacLow to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
9 |
* |
dd18bc29fc3c
add MacLow to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
10 |
* This program is distributed in the hope that it will be useful, |
dd18bc29fc3c
add MacLow to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
11 |
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
dd18bc29fc3c
add MacLow to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
12 |
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
dd18bc29fc3c
add MacLow to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
13 |
* GNU General Public License for more details. |
dd18bc29fc3c
add MacLow to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
14 |
* |
dd18bc29fc3c
add MacLow to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
15 |
* You should have received a copy of the GNU General Public License |
dd18bc29fc3c
add MacLow to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
16 |
* along with this program; if not, write to the Free Software |
dd18bc29fc3c
add MacLow to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
17 |
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
dd18bc29fc3c
add MacLow to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
18 |
* |
12431
0086c2441ab8
wifi: Remove unnecessary includes
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
12429
diff
changeset
|
19 |
* Authors: Mathieu Lacage <mathieu.lacage@sophia.inria.fr> |
0086c2441ab8
wifi: Remove unnecessary includes
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
12429
diff
changeset
|
20 |
* Mirko Banchi <mk.banchi@gmail.com> |
1922
dd18bc29fc3c
add MacLow to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
21 |
*/ |
12431
0086c2441ab8
wifi: Remove unnecessary includes
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
12429
diff
changeset
|
22 |
|
1922
dd18bc29fc3c
add MacLow to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
23 |
#ifndef MAC_LOW_H |
dd18bc29fc3c
add MacLow to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
24 |
#define MAC_LOW_H |
dd18bc29fc3c
add MacLow to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
25 |
|
13557
1d9389d67836
wifi: Add support for 802.11 PCF
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
13532
diff
changeset
|
26 |
#include <map> |
13486
322626b344d3
wifi: Use forward declaration as often as possible (part 10)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
13476
diff
changeset
|
27 |
#include "ns3/object.h" |
322626b344d3
wifi: Use forward declaration as often as possible (part 10)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
13476
diff
changeset
|
28 |
#include "ns3/nstime.h" |
13557
1d9389d67836
wifi: Add support for 802.11 PCF
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
13532
diff
changeset
|
29 |
#include "channel-access-manager.h" |
6606
2f2b67218332
Bug 981: use a cache to keep track of received MPDUs under block ack
Mirko Banchi <mk.banchi@gmail.com>
parents:
6599
diff
changeset
|
30 |
#include "block-ack-cache.h" |
13147
6b2bc94cfa4b
wifi: move MacLowTransmissionParameters class to a separate file
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
13146
diff
changeset
|
31 |
#include "mac-low-transmission-parameters.h" |
13468
64f744da5cfe
wifi: Use forward declaration as often as possible (part 1)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
13432
diff
changeset
|
32 |
#include "qos-utils.h" |
64f744da5cfe
wifi: Use forward declaration as often as possible (part 1)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
13432
diff
changeset
|
33 |
#include "wifi-mac-header.h" |
13486
322626b344d3
wifi: Use forward declaration as often as possible (part 10)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
13476
diff
changeset
|
34 |
#include "wifi-tx-vector.h" |
322626b344d3
wifi: Use forward declaration as often as possible (part 10)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
13476
diff
changeset
|
35 |
#include "block-ack-type.h" |
322626b344d3
wifi: Use forward declaration as often as possible (part 10)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
13476
diff
changeset
|
36 |
#include "wifi-mpdu-type.h" |
11352
a1f6f647d516
add two-level aggregation
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
11174
diff
changeset
|
37 |
|
a1f6f647d516
add two-level aggregation
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
11174
diff
changeset
|
38 |
class TwoLevelAggregationTest; |
11891
d159bca0ffb4
wifi: Adds tests for MPDU aggregation
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
11854
diff
changeset
|
39 |
class AmpduAggregationTest; |
1922
dd18bc29fc3c
add MacLow to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
40 |
|
dd18bc29fc3c
add MacLow to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
41 |
namespace ns3 { |
dd18bc29fc3c
add MacLow to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
42 |
|
13475
f4c06d289015
wifi: Use forward declaration as often as possible (part 6)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
13468
diff
changeset
|
43 |
class WifiPhy; |
13557
1d9389d67836
wifi: Add support for 802.11 PCF
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
13532
diff
changeset
|
44 |
class Txop; |
1d9389d67836
wifi: Add support for 802.11 PCF
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
13532
diff
changeset
|
45 |
class QosTxop; |
12743
507e46482e8c
wifi: Make WifiMacQueue a subclass of Queue
Stefano Avallone <stavallo@unina.it>
parents:
12691
diff
changeset
|
46 |
class WifiMacQueueItem; |
12949
2ee6854cf29c
wifi: Define WifiMacQueue as a subclass of Queue<WifiMacQueueItem>
Stefano Avallone <stavallo@unina.it>
parents:
12942
diff
changeset
|
47 |
class WifiMacQueue; |
13475
f4c06d289015
wifi: Use forward declaration as often as possible (part 6)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
13468
diff
changeset
|
48 |
class BlockAckAgreement; |
13468
64f744da5cfe
wifi: Use forward declaration as often as possible (part 1)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
13432
diff
changeset
|
49 |
class MgtAddBaResponseHeader; |
13475
f4c06d289015
wifi: Use forward declaration as often as possible (part 6)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
13468
diff
changeset
|
50 |
class WifiRemoteStationManager; |
13486
322626b344d3
wifi: Use forward declaration as often as possible (part 10)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
13476
diff
changeset
|
51 |
class CtrlBAckRequestHeader; |
322626b344d3
wifi: Use forward declaration as often as possible (part 10)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
13476
diff
changeset
|
52 |
class CtrlBAckResponseHeader; |
1922
dd18bc29fc3c
add MacLow to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
53 |
|
2059 | 54 |
/** |
7139
79dd02ed46ec
doxygen wifi module grouping all wifi classes
Nicola Baldo <nbaldo@cttc.es>
parents:
6852
diff
changeset
|
55 |
* \ingroup wifi |
2059 | 56 |
* \brief handle RTS/CTS/DATA/ACK transactions. |
57 |
*/ |
|
7141
072fb225b714
run check-style.py on src/wifi
Nicola Baldo <nicola@baldo.biz>
parents:
7139
diff
changeset
|
58 |
class MacLow : public Object |
072fb225b714
run check-style.py on src/wifi
Nicola Baldo <nicola@baldo.biz>
parents:
7139
diff
changeset
|
59 |
{ |
1922
dd18bc29fc3c
add MacLow to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
60 |
public: |
13048
c00059ef50e4
wifi: Additional Doxygen fixes
Robert Ammon <ammo6818@vandals.uidaho.edu>
parents:
12949
diff
changeset
|
61 |
/// Allow test cases to access private members |
11352
a1f6f647d516
add two-level aggregation
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
11174
diff
changeset
|
62 |
friend class ::TwoLevelAggregationTest; |
13048
c00059ef50e4
wifi: Additional Doxygen fixes
Robert Ammon <ammo6818@vandals.uidaho.edu>
parents:
12949
diff
changeset
|
63 |
/// Allow test cases to access private members |
11891
d159bca0ffb4
wifi: Adds tests for MPDU aggregation
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
11854
diff
changeset
|
64 |
friend class ::AmpduAggregationTest; |
10483
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
65 |
/** |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
66 |
* typedef for a callback for MacLowRx |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
67 |
*/ |
5819
514ec98954ab
Wifi code cleanup: Correcting various const keyword ordering and removing superfluous (boolean)?true:false.
Timo Bingmann <tbns@idlebox.net>
parents:
5192
diff
changeset
|
68 |
typedef Callback<void, Ptr<Packet>, const WifiMacHeader*> MacLowRxCallback; |
1922
dd18bc29fc3c
add MacLow to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
69 |
|
dd18bc29fc3c
add MacLow to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
70 |
MacLow (); |
2350
0b54480c4fd1
Hook trace sources into the trace system. Add WifiTrace to give a 'simple' API to tracing wifi-specific sources.
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
2290
diff
changeset
|
71 |
virtual ~MacLow (); |
1922
dd18bc29fc3c
add MacLow to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
72 |
|
10483
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
73 |
/** |
11432
d2656819dd54
Fix parents, group names, and missing constructors in GetTypeId definitions.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents:
11384
diff
changeset
|
74 |
* Register this type. |
d2656819dd54
Fix parents, group names, and missing constructors in GetTypeId definitions.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents:
11384
diff
changeset
|
75 |
* \return The TypeId. |
d2656819dd54
Fix parents, group names, and missing constructors in GetTypeId definitions.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents:
11384
diff
changeset
|
76 |
*/ |
d2656819dd54
Fix parents, group names, and missing constructors in GetTypeId definitions.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents:
11384
diff
changeset
|
77 |
static TypeId GetTypeId (void); |
d2656819dd54
Fix parents, group names, and missing constructors in GetTypeId definitions.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents:
11384
diff
changeset
|
78 |
|
d2656819dd54
Fix parents, group names, and missing constructors in GetTypeId definitions.
Peter D. Barnes, Jr. <barnes26@llnl.gov>
parents:
11384
diff
changeset
|
79 |
/** |
10483
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
80 |
* Set up WifiPhy associated with this MacLow. |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
81 |
* |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
82 |
* \param phy WifiPhy associated with this MacLow |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
83 |
*/ |
12940
9b6857031ad4
wifi: Use const in setters
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
12743
diff
changeset
|
84 |
void SetPhy (const Ptr<WifiPhy> phy); |
12691
e33cd795e21a
wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
12676
diff
changeset
|
85 |
/** |
11159
b744c32b69bc
patch to support IEEE 1609.4 MAC extension in wave module
Junling Bu <linlinjavaer@gmail.com>
parents:
11083
diff
changeset
|
86 |
* \return current attached PHY device |
b744c32b69bc
patch to support IEEE 1609.4 MAC extension in wave module
Junling Bu <linlinjavaer@gmail.com>
parents:
11083
diff
changeset
|
87 |
*/ |
b744c32b69bc
patch to support IEEE 1609.4 MAC extension in wave module
Junling Bu <linlinjavaer@gmail.com>
parents:
11083
diff
changeset
|
88 |
Ptr<WifiPhy> GetPhy (void) const; |
b744c32b69bc
patch to support IEEE 1609.4 MAC extension in wave module
Junling Bu <linlinjavaer@gmail.com>
parents:
11083
diff
changeset
|
89 |
/** |
b744c32b69bc
patch to support IEEE 1609.4 MAC extension in wave module
Junling Bu <linlinjavaer@gmail.com>
parents:
11083
diff
changeset
|
90 |
* Remove WifiPhy associated with this MacLow. |
b744c32b69bc
patch to support IEEE 1609.4 MAC extension in wave module
Junling Bu <linlinjavaer@gmail.com>
parents:
11083
diff
changeset
|
91 |
*/ |
b744c32b69bc
patch to support IEEE 1609.4 MAC extension in wave module
Junling Bu <linlinjavaer@gmail.com>
parents:
11083
diff
changeset
|
92 |
void ResetPhy (void); |
10483
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
93 |
/** |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
94 |
* Set up WifiRemoteStationManager associated with this MacLow. |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
95 |
* |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
96 |
* \param manager WifiRemoteStationManager associated with this MacLow |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
97 |
*/ |
12940
9b6857031ad4
wifi: Use const in setters
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
12743
diff
changeset
|
98 |
void SetWifiRemoteStationManager (const Ptr<WifiRemoteStationManager> manager); |
11174
780a43e4980c
add MPDU aggregation (with contributions from Sebastien Deronne and Ioannis Selinis)
Ghada Badawy <gbadawy@gmail.com>
parents:
11159
diff
changeset
|
99 |
/** |
10483
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
100 |
* Set MAC address of this MacLow. |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
101 |
* |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
102 |
* \param ad Mac48Address of this MacLow |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
103 |
*/ |
3596
6c39b712a535
move Address and ack timeout down to MacLow
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
2985
diff
changeset
|
104 |
void SetAddress (Mac48Address ad); |
10483
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
105 |
/** |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
106 |
* Set ACK timeout of this MacLow. |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
107 |
* |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
108 |
* \param ackTimeout ACK timeout of this MacLow |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
109 |
*/ |
3596
6c39b712a535
move Address and ack timeout down to MacLow
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
2985
diff
changeset
|
110 |
void SetAckTimeout (Time ackTimeout); |
10483
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
111 |
/** |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
112 |
* Set Basic Block ACK timeout of this MacLow. |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
113 |
* |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
114 |
* \param blockAckTimeout Basic Block ACK timeout of this MacLow |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
115 |
*/ |
5958 | 116 |
void SetBasicBlockAckTimeout (Time blockAckTimeout); |
10483
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
117 |
/** |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
118 |
* Set Compressed Block ACK timeout of this MacLow. |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
119 |
* |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
120 |
* \param blockAckTimeout Compressed Block ACK timeout of this MacLow |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
121 |
*/ |
5958 | 122 |
void SetCompressedBlockAckTimeout (Time blockAckTimeout); |
10483
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
123 |
/** |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
124 |
* Enable or disable CTS-to-self capability. |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
125 |
* |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
126 |
* \param enable Enable or disable CTS-to-self capability |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
127 |
*/ |
10139 | 128 |
void SetCtsToSelfSupported (bool enable); |
10483
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
129 |
/** |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
130 |
* Set CTS timeout of this MacLow. |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
131 |
* |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
132 |
* \param ctsTimeout CTS timeout of this MacLow |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
133 |
*/ |
3597
fe35e5be4b78
move cts timeout down to MacLow
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
3596
diff
changeset
|
134 |
void SetCtsTimeout (Time ctsTimeout); |
10483
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
135 |
/** |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
136 |
* Set Short Interframe Space (SIFS) of this MacLow. |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
137 |
* |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
138 |
* \param sifs SIFS of this MacLow |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
139 |
*/ |
3598
7b209b3b6af2
move sifs down to MacLow
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
3597
diff
changeset
|
140 |
void SetSifs (Time sifs); |
10483
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
141 |
/** |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
142 |
* Set Reduced Interframe Space (RIFS) of this MacLow. |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
143 |
* |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
144 |
* \param rifs RIFS of this MacLow |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
145 |
*/ |
10139 | 146 |
void SetRifs (Time rifs); |
10483
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
147 |
/** |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
148 |
* Set slot duration of this MacLow. |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
149 |
* |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
150 |
* \param slotTime slot duration of this MacLow |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
151 |
*/ |
3599
721bd46c15f8
move slot and pifs down to MacLow
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
3598
diff
changeset
|
152 |
void SetSlotTime (Time slotTime); |
10483
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
153 |
/** |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
154 |
* Set PCF Interframe Space (PIFS) of this MacLow. |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
155 |
* |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
156 |
* \param pifs PIFS of this MacLow |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
157 |
*/ |
3599
721bd46c15f8
move slot and pifs down to MacLow
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
3598
diff
changeset
|
158 |
void SetPifs (Time pifs); |
10483
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
159 |
/** |
13557
1d9389d67836
wifi: Add support for 802.11 PCF
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
13532
diff
changeset
|
160 |
* \param interval the expected interval between two beacon transmissions. |
1d9389d67836
wifi: Add support for 802.11 PCF
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
13532
diff
changeset
|
161 |
*/ |
1d9389d67836
wifi: Add support for 802.11 PCF
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
13532
diff
changeset
|
162 |
void SetBeaconInterval (Time interval); |
1d9389d67836
wifi: Add support for 802.11 PCF
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
13532
diff
changeset
|
163 |
/** |
1d9389d67836
wifi: Add support for 802.11 PCF
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
13532
diff
changeset
|
164 |
* \param duration the maximum duration for the CF period. |
1d9389d67836
wifi: Add support for 802.11 PCF
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
13532
diff
changeset
|
165 |
*/ |
1d9389d67836
wifi: Add support for 802.11 PCF
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
13532
diff
changeset
|
166 |
void SetCfpMaxDuration (Time duration); |
1d9389d67836
wifi: Add support for 802.11 PCF
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
13532
diff
changeset
|
167 |
/** |
10483
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
168 |
* Set the Basic Service Set Identification. |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
169 |
* |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
170 |
* \param ad the BSSID |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
171 |
*/ |
3600
5888dfe3f245
move GetBssid down to MacLow
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
3599
diff
changeset
|
172 |
void SetBssid (Mac48Address ad); |
10483
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
173 |
/** |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
174 |
* Enable promiscuous mode. |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
175 |
*/ |
7333
17b50c5b062c
[Bug 827] promiscuous mode for wifi
Ruben Merz <ruben@net.t-labs.tu-berlin.de>
parents:
7141
diff
changeset
|
176 |
void SetPromisc (void); |
10483
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
177 |
/** |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
178 |
* Return whether CTS-to-self capability is supported. |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
179 |
* |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
180 |
* \return true if CTS-to-self is supported, false otherwise |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
181 |
*/ |
10139 | 182 |
bool GetCtsToSelfSupported () const; |
10483
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
183 |
/** |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
184 |
* Return the MAC address of this MacLow. |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
185 |
* |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
186 |
* \return Mac48Address of this MacLow |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
187 |
*/ |
3596
6c39b712a535
move Address and ack timeout down to MacLow
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
2985
diff
changeset
|
188 |
Mac48Address GetAddress (void) const; |
10483
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
189 |
/** |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
190 |
* Return ACK timeout of this MacLow. |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
191 |
* |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
192 |
* \return ACK timeout |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
193 |
*/ |
3596
6c39b712a535
move Address and ack timeout down to MacLow
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
2985
diff
changeset
|
194 |
Time GetAckTimeout (void) const; |
10483
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
195 |
/** |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
196 |
* Return Basic Block ACK timeout of this MacLow. |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
197 |
* |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
198 |
* \return Basic Block ACK timeout |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
199 |
*/ |
5958 | 200 |
Time GetBasicBlockAckTimeout () const; |
10483
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
201 |
/** |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
202 |
* Return Compressed Block ACK timeout of this MacLow. |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
203 |
* |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
204 |
* \return Compressed Block ACK timeout |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
205 |
*/ |
5958 | 206 |
Time GetCompressedBlockAckTimeout () const; |
10483
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
207 |
/** |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
208 |
* Return CTS timeout of this MacLow. |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
209 |
* |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
210 |
* \return CTS timeout |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
211 |
*/ |
3597
fe35e5be4b78
move cts timeout down to MacLow
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
3596
diff
changeset
|
212 |
Time GetCtsTimeout (void) const; |
10483
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
213 |
/** |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
214 |
* Return Short Interframe Space (SIFS) of this MacLow. |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
215 |
* |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
216 |
* \return SIFS |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
217 |
*/ |
3598
7b209b3b6af2
move sifs down to MacLow
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
3597
diff
changeset
|
218 |
Time GetSifs (void) const; |
10483
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
219 |
/** |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
220 |
* Return slot duration of this MacLow. |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
221 |
* |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
222 |
* \return slot duration |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
223 |
*/ |
3599
721bd46c15f8
move slot and pifs down to MacLow
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
3598
diff
changeset
|
224 |
Time GetSlotTime (void) const; |
10483
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
225 |
/** |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
226 |
* Return PCF Interframe Space (PIFS) of this MacLow. |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
227 |
* |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
228 |
* \return PIFS |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
229 |
*/ |
3599
721bd46c15f8
move slot and pifs down to MacLow
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
3598
diff
changeset
|
230 |
Time GetPifs (void) const; |
10483
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
231 |
/** |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
232 |
* Return Reduced Interframe Space (RIFS) of this MacLow. |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
233 |
* |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
234 |
* \return RIFS |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
235 |
*/ |
10139 | 236 |
Time GetRifs (void) const; |
10483
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
237 |
/** |
13557
1d9389d67836
wifi: Add support for 802.11 PCF
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
13532
diff
changeset
|
238 |
* \return the expected interval between two beacon transmissions. |
1d9389d67836
wifi: Add support for 802.11 PCF
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
13532
diff
changeset
|
239 |
*/ |
1d9389d67836
wifi: Add support for 802.11 PCF
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
13532
diff
changeset
|
240 |
Time GetBeaconInterval (void) const; |
1d9389d67836
wifi: Add support for 802.11 PCF
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
13532
diff
changeset
|
241 |
/** |
1d9389d67836
wifi: Add support for 802.11 PCF
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
13532
diff
changeset
|
242 |
* \return the maximum duration for the CF period. |
1d9389d67836
wifi: Add support for 802.11 PCF
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
13532
diff
changeset
|
243 |
*/ |
1d9389d67836
wifi: Add support for 802.11 PCF
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
13532
diff
changeset
|
244 |
Time GetCfpMaxDuration (void) const; |
1d9389d67836
wifi: Add support for 802.11 PCF
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
13532
diff
changeset
|
245 |
/** |
1d9389d67836
wifi: Add support for 802.11 PCF
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
13532
diff
changeset
|
246 |
* \return the remaining duration for the CF period. |
1d9389d67836
wifi: Add support for 802.11 PCF
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
13532
diff
changeset
|
247 |
*/ |
1d9389d67836
wifi: Add support for 802.11 PCF
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
13532
diff
changeset
|
248 |
Time GetRemainingCfpDuration (void) const; |
1d9389d67836
wifi: Add support for 802.11 PCF
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
13532
diff
changeset
|
249 |
/** |
10483
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
250 |
* Return the Basic Service Set Identification. |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
251 |
* |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
252 |
* \return BSSID |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
253 |
*/ |
3600
5888dfe3f245
move GetBssid down to MacLow
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
3599
diff
changeset
|
254 |
Mac48Address GetBssid (void) const; |
10483
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
255 |
/** |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
256 |
* Check if MacLow is operating in promiscuous mode. |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
257 |
* |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
258 |
* \return true if MacLow is operating in promiscuous mode, |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
259 |
* false otherwise |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
260 |
*/ |
10459
f2e90c12a44f
base implementation of the IEEE 802.11p standard
Junling Bu <linlinjavaer@gmail.com>
parents:
10202
diff
changeset
|
261 |
bool IsPromisc (void) const; |
3596
6c39b712a535
move Address and ack timeout down to MacLow
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
2985
diff
changeset
|
262 |
|
2059 | 263 |
/** |
264 |
* \param callback the callback which receives every incoming packet. |
|
265 |
* |
|
266 |
* This callback typically forwards incoming packets to |
|
267 |
* an instance of ns3::MacRxMiddle. |
|
268 |
*/ |
|
2524
db72c0e7743e
port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
2508
diff
changeset
|
269 |
void SetRxCallback (Callback<void,Ptr<Packet>,const WifiMacHeader *> callback); |
2059 | 270 |
/** |
12571
80142e260133
wifi: code refactoring phase 1
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
12512
diff
changeset
|
271 |
* \param dcf listen to NAV events for every incoming and outgoing packet. |
2059 | 272 |
*/ |
13557
1d9389d67836
wifi: Add support for 802.11 PCF
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
13532
diff
changeset
|
273 |
void RegisterDcf (Ptr<ChannelAccessManager> dcf); |
1922
dd18bc29fc3c
add MacLow to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
274 |
|
2059 | 275 |
/** |
2290
081b4efd800c
fix doxygen warnings
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
2289
diff
changeset
|
276 |
* \param packet to send (does not include the 802.11 MAC header and checksum) |
081b4efd800c
fix doxygen warnings
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
2289
diff
changeset
|
277 |
* \param hdr header associated to the packet to send. |
2059 | 278 |
* \param parameters transmission parameters of packet. |
10483
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
279 |
* \return the transmission time that includes the time for the next packet transmission |
2059 | 280 |
* |
281 |
* This transmission time includes the time required for |
|
1922
dd18bc29fc3c
add MacLow to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
282 |
* the next packet transmission if one was selected. |
dd18bc29fc3c
add MacLow to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
283 |
*/ |
2268
0e57ac711220
introduce a low latency parameter for rate control algorithms
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
2159
diff
changeset
|
284 |
Time CalculateTransmissionTime (Ptr<const Packet> packet, |
7141
072fb225b714
run check-style.py on src/wifi
Nicola Baldo <nicola@baldo.biz>
parents:
7139
diff
changeset
|
285 |
const WifiMacHeader* hdr, |
5819
514ec98954ab
Wifi code cleanup: Correcting various const keyword ordering and removing superfluous (boolean)?true:false.
Timo Bingmann <tbns@idlebox.net>
parents:
5192
diff
changeset
|
286 |
const MacLowTransmissionParameters& parameters) const; |
1922
dd18bc29fc3c
add MacLow to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
287 |
|
12691
e33cd795e21a
wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
12676
diff
changeset
|
288 |
/** |
e33cd795e21a
wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
12676
diff
changeset
|
289 |
* \param packet to send (does not include the 802.11 MAC header and checksum) |
e33cd795e21a
wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
12676
diff
changeset
|
290 |
* \param hdr header associated to the packet to send. |
e33cd795e21a
wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
12676
diff
changeset
|
291 |
* \param params transmission parameters of packet. |
13146
117997e8281b
wifi: merge CalculateOverallTxTime and CalculateOverallTxFragmentTime in MacLow
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
13144
diff
changeset
|
292 |
* \param fragmentSize the packet fragment size (if fragmentation is used) |
12691
e33cd795e21a
wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
12676
diff
changeset
|
293 |
* \return the transmission time that includes the time for the next packet transmission |
e33cd795e21a
wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
12676
diff
changeset
|
294 |
* |
e33cd795e21a
wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
12676
diff
changeset
|
295 |
* This transmission time includes the time required for |
e33cd795e21a
wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
12676
diff
changeset
|
296 |
* the next packet transmission if one was selected. |
e33cd795e21a
wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
12676
diff
changeset
|
297 |
*/ |
12202
cbe65eebe10b
wifi: support 802.11e TXOP
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
12112
diff
changeset
|
298 |
Time CalculateOverallTxTime (Ptr<const Packet> packet, |
cbe65eebe10b
wifi: support 802.11e TXOP
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
12112
diff
changeset
|
299 |
const WifiMacHeader* hdr, |
13146
117997e8281b
wifi: merge CalculateOverallTxTime and CalculateOverallTxFragmentTime in MacLow
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
13144
diff
changeset
|
300 |
const MacLowTransmissionParameters& params, |
117997e8281b
wifi: merge CalculateOverallTxTime and CalculateOverallTxFragmentTime in MacLow
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
13144
diff
changeset
|
301 |
uint32_t fragmentSize = 0) const; |
12202
cbe65eebe10b
wifi: support 802.11e TXOP
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
12112
diff
changeset
|
302 |
|
2059 | 303 |
/** |
304 |
* \param packet packet to send |
|
305 |
* \param hdr 802.11 header for packet to send |
|
306 |
* \param parameters the transmission parameters to use for this packet. |
|
13557
1d9389d67836
wifi: Add support for 802.11 PCF
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
13532
diff
changeset
|
307 |
* \param txop pointer to the calling Txop. |
2059 | 308 |
* |
309 |
* Start the transmission of the input packet and notify the listener |
|
310 |
* of transmission events. |
|
311 |
*/ |
|
11159
b744c32b69bc
patch to support IEEE 1609.4 MAC extension in wave module
Junling Bu <linlinjavaer@gmail.com>
parents:
11083
diff
changeset
|
312 |
virtual void StartTransmission (Ptr<const Packet> packet, |
11450
9f4ae69f12b7
cleanup wifi module
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
11432
diff
changeset
|
313 |
const WifiMacHeader* hdr, |
9f4ae69f12b7
cleanup wifi module
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
11432
diff
changeset
|
314 |
MacLowTransmissionParameters parameters, |
13557
1d9389d67836
wifi: Add support for 802.11 PCF
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
13532
diff
changeset
|
315 |
Ptr<Txop> txop); |
1922
dd18bc29fc3c
add MacLow to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
316 |
|
2059 | 317 |
/** |
318 |
* \param packet packet received |
|
319 |
* \param rxSnr snr of packet received |
|
11384
935dc1cc08a4
Bug 2097 [wifi] - ACKs should be sent using legacy rates and preambles in 802.11n
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
11353
diff
changeset
|
320 |
* \param txVector TXVECTOR of packet received |
11174
780a43e4980c
add MPDU aggregation (with contributions from Sebastien Deronne and Ioannis Selinis)
Ghada Badawy <gbadawy@gmail.com>
parents:
11159
diff
changeset
|
321 |
* \param ampduSubframe true if this MPDU is part of an A-MPDU |
2059 | 322 |
* |
323 |
* This method is typically invoked by the lower PHY layer to notify |
|
324 |
* the MAC layer that a packet was successfully received. |
|
325 |
*/ |
|
12429
d12f1640acca
wifi: (fixes #2551) Move preamble to TXVECTOR
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
12423
diff
changeset
|
326 |
void ReceiveOk (Ptr<Packet> packet, double rxSnr, WifiTxVector txVector, bool ampduSubframe); |
2059 | 327 |
/** |
328 |
* \param packet packet received. |
|
329 |
* \param rxSnr snr of packet received. |
|
330 |
* |
|
331 |
* This method is typically invoked by the lower PHY layer to notify |
|
332 |
* the MAC layer that a packet was unsuccessfully received. |
|
333 |
*/ |
|
12112
ad2fe4acfeea
wifi: (fixes #2307) Get rid of m_receivedAtLeastOneMpdu flag
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
12007
diff
changeset
|
334 |
void ReceiveError (Ptr<Packet> packet, double rxSnr); |
5189 | 335 |
/** |
336 |
* \param duration switching delay duration. |
|
337 |
* |
|
338 |
* This method is typically invoked by the PhyMacLowListener to notify |
|
13665 | 339 |
* the MAC layer that a channel switching occurred. When a channel switching |
5192 | 340 |
* occurs, pending MAC transmissions (RTS, CTS, DATA and ACK) are cancelled. |
5189 | 341 |
*/ |
7141
072fb225b714
run check-style.py on src/wifi
Nicola Baldo <nicola@baldo.biz>
parents:
7139
diff
changeset
|
342 |
void NotifySwitchingStartNow (Time duration); |
5956
e9918be47f78
MacLow now buffers QoS MPDUs under Block Ack
Mirko Banchi <mk.banchi@gmail.com>
parents:
5955
diff
changeset
|
343 |
/** |
10883
d919e7194e23
add support for a Wifi sleep mode
Stefano Avallone <stefano.avallone@unina.it>
parents:
10507
diff
changeset
|
344 |
* This method is typically invoked by the PhyMacLowListener to notify |
d919e7194e23
add support for a Wifi sleep mode
Stefano Avallone <stefano.avallone@unina.it>
parents:
10507
diff
changeset
|
345 |
* the MAC layer that the device has been put into sleep mode. When the device is put |
d919e7194e23
add support for a Wifi sleep mode
Stefano Avallone <stefano.avallone@unina.it>
parents:
10507
diff
changeset
|
346 |
* into sleep mode, pending MAC transmissions (RTS, CTS, DATA and ACK) are cancelled. |
d919e7194e23
add support for a Wifi sleep mode
Stefano Avallone <stefano.avallone@unina.it>
parents:
10507
diff
changeset
|
347 |
*/ |
d919e7194e23
add support for a Wifi sleep mode
Stefano Avallone <stefano.avallone@unina.it>
parents:
10507
diff
changeset
|
348 |
void NotifySleepNow (void); |
d919e7194e23
add support for a Wifi sleep mode
Stefano Avallone <stefano.avallone@unina.it>
parents:
10507
diff
changeset
|
349 |
/** |
13220
725c0c581b31
wifi: add NotifyOff
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
13207
diff
changeset
|
350 |
* This method is typically invoked by the PhyMacLowListener to notify |
725c0c581b31
wifi: add NotifyOff
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
13207
diff
changeset
|
351 |
* the MAC layer that the device has been put into off mode. When the device is put |
725c0c581b31
wifi: add NotifyOff
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
13207
diff
changeset
|
352 |
* into off mode, pending MAC transmissions (RTS, CTS, DATA and ACK) are cancelled. |
725c0c581b31
wifi: add NotifyOff
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
13207
diff
changeset
|
353 |
*/ |
725c0c581b31
wifi: add NotifyOff
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
13207
diff
changeset
|
354 |
void NotifyOffNow (void); |
725c0c581b31
wifi: add NotifyOff
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
13207
diff
changeset
|
355 |
/** |
6673
ec22aa763e2d
Bug 978: Consolidate Wi-Fi MAC high functionality
Dean Armstrong <deanarm@gmail.com>
parents:
6606
diff
changeset
|
356 |
* \param respHdr Add block ack response from originator (action |
ec22aa763e2d
Bug 978: Consolidate Wi-Fi MAC high functionality
Dean Armstrong <deanarm@gmail.com>
parents:
6606
diff
changeset
|
357 |
* frame). |
ec22aa763e2d
Bug 978: Consolidate Wi-Fi MAC high functionality
Dean Armstrong <deanarm@gmail.com>
parents:
6606
diff
changeset
|
358 |
* \param originator Address of peer station involved in block ack |
ec22aa763e2d
Bug 978: Consolidate Wi-Fi MAC high functionality
Dean Armstrong <deanarm@gmail.com>
parents:
6606
diff
changeset
|
359 |
* mechanism. |
ec22aa763e2d
Bug 978: Consolidate Wi-Fi MAC high functionality
Dean Armstrong <deanarm@gmail.com>
parents:
6606
diff
changeset
|
360 |
* \param startingSeq Sequence number of the first MPDU of all |
ec22aa763e2d
Bug 978: Consolidate Wi-Fi MAC high functionality
Dean Armstrong <deanarm@gmail.com>
parents:
6606
diff
changeset
|
361 |
* packets for which block ack was negotiated. |
ec22aa763e2d
Bug 978: Consolidate Wi-Fi MAC high functionality
Dean Armstrong <deanarm@gmail.com>
parents:
6606
diff
changeset
|
362 |
* |
ec22aa763e2d
Bug 978: Consolidate Wi-Fi MAC high functionality
Dean Armstrong <deanarm@gmail.com>
parents:
6606
diff
changeset
|
363 |
* This function is typically invoked only by ns3::RegularWifiMac |
ec22aa763e2d
Bug 978: Consolidate Wi-Fi MAC high functionality
Dean Armstrong <deanarm@gmail.com>
parents:
6606
diff
changeset
|
364 |
* when the STA (which may be non-AP in ESS, or in an IBSS) has |
ec22aa763e2d
Bug 978: Consolidate Wi-Fi MAC high functionality
Dean Armstrong <deanarm@gmail.com>
parents:
6606
diff
changeset
|
365 |
* received an ADDBA Request frame and is transmitting an ADDBA |
ec22aa763e2d
Bug 978: Consolidate Wi-Fi MAC high functionality
Dean Armstrong <deanarm@gmail.com>
parents:
6606
diff
changeset
|
366 |
* Response frame. At this point MacLow must allocate buffers to |
ec22aa763e2d
Bug 978: Consolidate Wi-Fi MAC high functionality
Dean Armstrong <deanarm@gmail.com>
parents:
6606
diff
changeset
|
367 |
* collect all correctly received packets belonging to the category |
ec22aa763e2d
Bug 978: Consolidate Wi-Fi MAC high functionality
Dean Armstrong <deanarm@gmail.com>
parents:
6606
diff
changeset
|
368 |
* for which Block Ack was negotiated. |
5956
e9918be47f78
MacLow now buffers QoS MPDUs under Block Ack
Mirko Banchi <mk.banchi@gmail.com>
parents:
5955
diff
changeset
|
369 |
*/ |
6673
ec22aa763e2d
Bug 978: Consolidate Wi-Fi MAC high functionality
Dean Armstrong <deanarm@gmail.com>
parents:
6606
diff
changeset
|
370 |
void CreateBlockAckAgreement (const MgtAddBaResponseHeader *respHdr, |
ec22aa763e2d
Bug 978: Consolidate Wi-Fi MAC high functionality
Dean Armstrong <deanarm@gmail.com>
parents:
6606
diff
changeset
|
371 |
Mac48Address originator, |
5956
e9918be47f78
MacLow now buffers QoS MPDUs under Block Ack
Mirko Banchi <mk.banchi@gmail.com>
parents:
5955
diff
changeset
|
372 |
uint16_t startingSeq); |
e9918be47f78
MacLow now buffers QoS MPDUs under Block Ack
Mirko Banchi <mk.banchi@gmail.com>
parents:
5955
diff
changeset
|
373 |
/** |
6273
8d70de29d514
spell check, mostly in comments.
Andrey Mazo <mazo@iitp.ru>
parents:
6068
diff
changeset
|
374 |
* \param originator Address of peer participating in Block Ack mechanism. |
5956
e9918be47f78
MacLow now buffers QoS MPDUs under Block Ack
Mirko Banchi <mk.banchi@gmail.com>
parents:
5955
diff
changeset
|
375 |
* \param tid TID for which Block Ack was created. |
e9918be47f78
MacLow now buffers QoS MPDUs under Block Ack
Mirko Banchi <mk.banchi@gmail.com>
parents:
5955
diff
changeset
|
376 |
* |
e9918be47f78
MacLow now buffers QoS MPDUs under Block Ack
Mirko Banchi <mk.banchi@gmail.com>
parents:
5955
diff
changeset
|
377 |
* Checks if exists an established block ack agreement with <i>originator</i> |
e9918be47f78
MacLow now buffers QoS MPDUs under Block Ack
Mirko Banchi <mk.banchi@gmail.com>
parents:
5955
diff
changeset
|
378 |
* for tid <i>tid</i>. If the agreement exists, tears down it. This function is typically |
e9918be47f78
MacLow now buffers QoS MPDUs under Block Ack
Mirko Banchi <mk.banchi@gmail.com>
parents:
5955
diff
changeset
|
379 |
* invoked when a DELBA frame is received from <i>originator</i>. |
e9918be47f78
MacLow now buffers QoS MPDUs under Block Ack
Mirko Banchi <mk.banchi@gmail.com>
parents:
5955
diff
changeset
|
380 |
*/ |
e9918be47f78
MacLow now buffers QoS MPDUs under Block Ack
Mirko Banchi <mk.banchi@gmail.com>
parents:
5955
diff
changeset
|
381 |
void DestroyBlockAckAgreement (Mac48Address originator, uint8_t tid); |
5964
8a59a619c30e
add support to block ack tear down in MacLow
Mirko Banchi <mk.banchi@gmail.com>
parents:
5958
diff
changeset
|
382 |
/** |
8a59a619c30e
add support to block ack tear down in MacLow
Mirko Banchi <mk.banchi@gmail.com>
parents:
5958
diff
changeset
|
383 |
* \param ac Access class managed by the queue. |
13557
1d9389d67836
wifi: Add support for 802.11 PCF
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
13532
diff
changeset
|
384 |
* \param edca the QosTxop for the queue. |
5964
8a59a619c30e
add support to block ack tear down in MacLow
Mirko Banchi <mk.banchi@gmail.com>
parents:
5958
diff
changeset
|
385 |
* |
13557
1d9389d67836
wifi: Add support for 802.11 PCF
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
13532
diff
changeset
|
386 |
* The lifetime of the registered QosTxop is typically equal to the lifetime of the queue |
5964
8a59a619c30e
add support to block ack tear down in MacLow
Mirko Banchi <mk.banchi@gmail.com>
parents:
5958
diff
changeset
|
387 |
* associated to this AC. |
8a59a619c30e
add support to block ack tear down in MacLow
Mirko Banchi <mk.banchi@gmail.com>
parents:
5958
diff
changeset
|
388 |
*/ |
13557
1d9389d67836
wifi: Add support for 802.11 PCF
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
13532
diff
changeset
|
389 |
void RegisterEdcaForAc (AcIndex ac, Ptr<QosTxop> edca); |
11174
780a43e4980c
add MPDU aggregation (with contributions from Sebastien Deronne and Ioannis Selinis)
Ghada Badawy <gbadawy@gmail.com>
parents:
11159
diff
changeset
|
390 |
/** |
13665 | 391 |
* \param packet the packet to be aggregated. If the aggregation is successful, it corresponds either to the first data packet that will be aggregated or to the BAR that will be piggybacked at the end of the A-MPDU. |
11174
780a43e4980c
add MPDU aggregation (with contributions from Sebastien Deronne and Ioannis Selinis)
Ghada Badawy <gbadawy@gmail.com>
parents:
11159
diff
changeset
|
392 |
* \param hdr the WifiMacHeader for the packet. |
13665 | 393 |
* \return the A-MPDU packet if aggregation is successful, the input packet otherwise |
11174
780a43e4980c
add MPDU aggregation (with contributions from Sebastien Deronne and Ioannis Selinis)
Ghada Badawy <gbadawy@gmail.com>
parents:
11159
diff
changeset
|
394 |
* |
780a43e4980c
add MPDU aggregation (with contributions from Sebastien Deronne and Ioannis Selinis)
Ghada Badawy <gbadawy@gmail.com>
parents:
11159
diff
changeset
|
395 |
* This function adds the packets that will be added to an A-MPDU to an aggregate queue |
11450
9f4ae69f12b7
cleanup wifi module
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
11432
diff
changeset
|
396 |
* |
11174
780a43e4980c
add MPDU aggregation (with contributions from Sebastien Deronne and Ioannis Selinis)
Ghada Badawy <gbadawy@gmail.com>
parents:
11159
diff
changeset
|
397 |
*/ |
780a43e4980c
add MPDU aggregation (with contributions from Sebastien Deronne and Ioannis Selinis)
Ghada Badawy <gbadawy@gmail.com>
parents:
11159
diff
changeset
|
398 |
Ptr<Packet> AggregateToAmpdu (Ptr<const Packet> packet, const WifiMacHeader hdr); |
780a43e4980c
add MPDU aggregation (with contributions from Sebastien Deronne and Ioannis Selinis)
Ghada Badawy <gbadawy@gmail.com>
parents:
11159
diff
changeset
|
399 |
/** |
780a43e4980c
add MPDU aggregation (with contributions from Sebastien Deronne and Ioannis Selinis)
Ghada Badawy <gbadawy@gmail.com>
parents:
11159
diff
changeset
|
400 |
* \param aggregatedPacket which is the current A-MPDU |
780a43e4980c
add MPDU aggregation (with contributions from Sebastien Deronne and Ioannis Selinis)
Ghada Badawy <gbadawy@gmail.com>
parents:
11159
diff
changeset
|
401 |
* \param rxSnr snr of packet received |
11384
935dc1cc08a4
Bug 2097 [wifi] - ACKs should be sent using legacy rates and preambles in 802.11n
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
11353
diff
changeset
|
402 |
* \param txVector TXVECTOR of packet received |
11174
780a43e4980c
add MPDU aggregation (with contributions from Sebastien Deronne and Ioannis Selinis)
Ghada Badawy <gbadawy@gmail.com>
parents:
11159
diff
changeset
|
403 |
* |
780a43e4980c
add MPDU aggregation (with contributions from Sebastien Deronne and Ioannis Selinis)
Ghada Badawy <gbadawy@gmail.com>
parents:
11159
diff
changeset
|
404 |
* This function de-aggregates an A-MPDU and decide if each MPDU is received correctly or not |
11450
9f4ae69f12b7
cleanup wifi module
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
11432
diff
changeset
|
405 |
* |
11174
780a43e4980c
add MPDU aggregation (with contributions from Sebastien Deronne and Ioannis Selinis)
Ghada Badawy <gbadawy@gmail.com>
parents:
11159
diff
changeset
|
406 |
*/ |
12429
d12f1640acca
wifi: (fixes #2551) Move preamble to TXVECTOR
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
12423
diff
changeset
|
407 |
void DeaggregateAmpduAndReceive (Ptr<Packet> aggregatedPacket, double rxSnr, WifiTxVector txVector); |
11174
780a43e4980c
add MPDU aggregation (with contributions from Sebastien Deronne and Ioannis Selinis)
Ghada Badawy <gbadawy@gmail.com>
parents:
11159
diff
changeset
|
408 |
/** |
780a43e4980c
add MPDU aggregation (with contributions from Sebastien Deronne and Ioannis Selinis)
Ghada Badawy <gbadawy@gmail.com>
parents:
11159
diff
changeset
|
409 |
* \param peekedPacket the packet to be aggregated |
780a43e4980c
add MPDU aggregation (with contributions from Sebastien Deronne and Ioannis Selinis)
Ghada Badawy <gbadawy@gmail.com>
parents:
11159
diff
changeset
|
410 |
* \param peekedHdr the WifiMacHeader for the packet. |
780a43e4980c
add MPDU aggregation (with contributions from Sebastien Deronne and Ioannis Selinis)
Ghada Badawy <gbadawy@gmail.com>
parents:
11159
diff
changeset
|
411 |
* \param aggregatedPacket the current A-MPDU |
13532
f165109053bc
wifi: Fix some types in MacLow
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
13486
diff
changeset
|
412 |
* \param blockAckSize the size of a piggybacked block ack request |
11174
780a43e4980c
add MPDU aggregation (with contributions from Sebastien Deronne and Ioannis Selinis)
Ghada Badawy <gbadawy@gmail.com>
parents:
11159
diff
changeset
|
413 |
* \return false if the given packet can be added to an A-MPDU, true otherwise |
780a43e4980c
add MPDU aggregation (with contributions from Sebastien Deronne and Ioannis Selinis)
Ghada Badawy <gbadawy@gmail.com>
parents:
11159
diff
changeset
|
414 |
* |
780a43e4980c
add MPDU aggregation (with contributions from Sebastien Deronne and Ioannis Selinis)
Ghada Badawy <gbadawy@gmail.com>
parents:
11159
diff
changeset
|
415 |
* This function decides if a given packet can be added to an A-MPDU or not |
11450
9f4ae69f12b7
cleanup wifi module
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
11432
diff
changeset
|
416 |
* |
11174
780a43e4980c
add MPDU aggregation (with contributions from Sebastien Deronne and Ioannis Selinis)
Ghada Badawy <gbadawy@gmail.com>
parents:
11159
diff
changeset
|
417 |
*/ |
13532
f165109053bc
wifi: Fix some types in MacLow
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
13486
diff
changeset
|
418 |
bool StopMpduAggregation (Ptr<const Packet> peekedPacket, WifiMacHeader peekedHdr, Ptr<Packet> aggregatedPacket, uint8_t blockAckSize) const; |
11174
780a43e4980c
add MPDU aggregation (with contributions from Sebastien Deronne and Ioannis Selinis)
Ghada Badawy <gbadawy@gmail.com>
parents:
11159
diff
changeset
|
419 |
/** |
780a43e4980c
add MPDU aggregation (with contributions from Sebastien Deronne and Ioannis Selinis)
Ghada Badawy <gbadawy@gmail.com>
parents:
11159
diff
changeset
|
420 |
* |
780a43e4980c
add MPDU aggregation (with contributions from Sebastien Deronne and Ioannis Selinis)
Ghada Badawy <gbadawy@gmail.com>
parents:
11159
diff
changeset
|
421 |
* This function is called to flush the aggregate queue, which is used for A-MPDU |
12691
e33cd795e21a
wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
12676
diff
changeset
|
422 |
* \param tid the Traffic ID |
11174
780a43e4980c
add MPDU aggregation (with contributions from Sebastien Deronne and Ioannis Selinis)
Ghada Badawy <gbadawy@gmail.com>
parents:
11159
diff
changeset
|
423 |
* |
780a43e4980c
add MPDU aggregation (with contributions from Sebastien Deronne and Ioannis Selinis)
Ghada Badawy <gbadawy@gmail.com>
parents:
11159
diff
changeset
|
424 |
*/ |
12512
844a94b3ee97
wifi: (fixes #2577) Handle A-MPDU with RTS enabled when multiple TOS are used
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
12509
diff
changeset
|
425 |
void FlushAggregateQueue (uint8_t tid); |
11174
780a43e4980c
add MPDU aggregation (with contributions from Sebastien Deronne and Ioannis Selinis)
Ghada Badawy <gbadawy@gmail.com>
parents:
11159
diff
changeset
|
426 |
|
10483
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
427 |
/** |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
428 |
* Return a TXVECTOR for the DATA frame given the destination. |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
429 |
* The function consults WifiRemoteStationManager, which controls the rate |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
430 |
* to different destinations. |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
431 |
* |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
432 |
* \param packet the packet being asked for TXVECTOR |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
433 |
* \param hdr the WifiMacHeader |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
434 |
* \return TXVECTOR for the given packet |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
435 |
*/ |
10459
f2e90c12a44f
base implementation of the IEEE 802.11p standard
Junling Bu <linlinjavaer@gmail.com>
parents:
10202
diff
changeset
|
436 |
virtual WifiTxVector GetDataTxVector (Ptr<const Packet> packet, const WifiMacHeader *hdr) const; |
13557
1d9389d67836
wifi: Add support for 802.11 PCF
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
13532
diff
changeset
|
437 |
/** |
1d9389d67836
wifi: Add support for 802.11 PCF
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
13532
diff
changeset
|
438 |
* Start NAV with the given duration. |
1d9389d67836
wifi: Add support for 802.11 PCF
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
13532
diff
changeset
|
439 |
* |
1d9389d67836
wifi: Add support for 802.11 PCF
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
13532
diff
changeset
|
440 |
* \param duration the duration |
13665 | 441 |
* \return true if NAV is reset |
13557
1d9389d67836
wifi: Add support for 802.11 PCF
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
13532
diff
changeset
|
442 |
*/ |
1d9389d67836
wifi: Add support for 802.11 PCF
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
13532
diff
changeset
|
443 |
bool DoNavStartNow (Time duration); |
1d9389d67836
wifi: Add support for 802.11 PCF
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
13532
diff
changeset
|
444 |
/** |
1d9389d67836
wifi: Add support for 802.11 PCF
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
13532
diff
changeset
|
445 |
* This function indicates whether it is the CF period. |
1d9389d67836
wifi: Add support for 802.11 PCF
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
13532
diff
changeset
|
446 |
*/ |
1d9389d67836
wifi: Add support for 802.11 PCF
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
13532
diff
changeset
|
447 |
virtual bool IsCfPeriod (void) const; |
1d9389d67836
wifi: Add support for 802.11 PCF
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
13532
diff
changeset
|
448 |
/** |
1d9389d67836
wifi: Add support for 802.11 PCF
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
13532
diff
changeset
|
449 |
* This function decides if a CF frame can be transmitted in the current CFP. |
1d9389d67836
wifi: Add support for 802.11 PCF
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
13532
diff
changeset
|
450 |
*/ |
1d9389d67836
wifi: Add support for 802.11 PCF
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
13532
diff
changeset
|
451 |
bool CanTransmitNextCfFrame (void) const; |
12241
ddaf3c4a8e4e
wifi: (fixes #2222) Handle internal collisions
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
12202
diff
changeset
|
452 |
|
12691
e33cd795e21a
wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
12676
diff
changeset
|
453 |
|
1922
dd18bc29fc3c
add MacLow to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
454 |
private: |
10483
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
455 |
/** |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
456 |
* Cancel all scheduled events. Called before beginning a transmission |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
457 |
* or switching channel. |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
458 |
*/ |
1922
dd18bc29fc3c
add MacLow to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
459 |
void CancelAllEvents (void); |
10483
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
460 |
/** |
13557
1d9389d67836
wifi: Add support for 802.11 PCF
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
13532
diff
changeset
|
461 |
* Return the total CF-END size (including FCS trailer). |
1d9389d67836
wifi: Add support for 802.11 PCF
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
13532
diff
changeset
|
462 |
* |
1d9389d67836
wifi: Add support for 802.11 PCF
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
13532
diff
changeset
|
463 |
* \return the total CF-END size |
1d9389d67836
wifi: Add support for 802.11 PCF
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
13532
diff
changeset
|
464 |
*/ |
1d9389d67836
wifi: Add support for 802.11 PCF
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
13532
diff
changeset
|
465 |
uint32_t GetCfEndSize (void) const; |
1d9389d67836
wifi: Add support for 802.11 PCF
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
13532
diff
changeset
|
466 |
/** |
11174
780a43e4980c
add MPDU aggregation (with contributions from Sebastien Deronne and Ioannis Selinis)
Ghada Badawy <gbadawy@gmail.com>
parents:
11159
diff
changeset
|
467 |
* Forward the packet down to WifiPhy for transmission. This is called for the entire A-MPDu when MPDU aggregation is used. |
10483
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
468 |
* |
12691
e33cd795e21a
wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
12676
diff
changeset
|
469 |
* \param packet the packet |
e33cd795e21a
wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
12676
diff
changeset
|
470 |
* \param hdr the header |
e33cd795e21a
wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
12676
diff
changeset
|
471 |
* \param txVector the transmit vector |
10483
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
472 |
*/ |
12429
d12f1640acca
wifi: (fixes #2551) Move preamble to TXVECTOR
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
12423
diff
changeset
|
473 |
void ForwardDown (Ptr<const Packet> packet, const WifiMacHeader *hdr, WifiTxVector txVector); |
10483
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
474 |
/** |
11773
f5b20a1c6eb3
Bug 2193: Simulation fails when transmitting very small MPDU subframes
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
11732
diff
changeset
|
475 |
* Forward the MPDU down to WifiPhy for transmission. This is called for each MPDU when MPDU aggregation is used. |
11174
780a43e4980c
add MPDU aggregation (with contributions from Sebastien Deronne and Ioannis Selinis)
Ghada Badawy <gbadawy@gmail.com>
parents:
11159
diff
changeset
|
476 |
* |
12691
e33cd795e21a
wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
12676
diff
changeset
|
477 |
* \param packet the packet |
e33cd795e21a
wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
12676
diff
changeset
|
478 |
* \param txVector the transmit vector |
e33cd795e21a
wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
12676
diff
changeset
|
479 |
* \param mpdutype the MPDU type |
11174
780a43e4980c
add MPDU aggregation (with contributions from Sebastien Deronne and Ioannis Selinis)
Ghada Badawy <gbadawy@gmail.com>
parents:
11159
diff
changeset
|
480 |
*/ |
12429
d12f1640acca
wifi: (fixes #2551) Move preamble to TXVECTOR
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
12423
diff
changeset
|
481 |
void SendMpdu (Ptr<const Packet> packet, WifiTxVector txVector, MpduType mpdutype); |
11174
780a43e4980c
add MPDU aggregation (with contributions from Sebastien Deronne and Ioannis Selinis)
Ghada Badawy <gbadawy@gmail.com>
parents:
11159
diff
changeset
|
482 |
/** |
10483
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
483 |
* Return a TXVECTOR for the RTS frame given the destination. |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
484 |
* The function consults WifiRemoteStationManager, which controls the rate |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
485 |
* to different destinations. |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
486 |
* |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
487 |
* \param packet the packet being asked for RTS TXVECTOR |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
488 |
* \param hdr the WifiMacHeader |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
489 |
* \return TXVECTOR for the RTS of the given packet |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
490 |
*/ |
10139 | 491 |
WifiTxVector GetRtsTxVector (Ptr<const Packet> packet, const WifiMacHeader *hdr) const; |
10483
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
492 |
/** |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
493 |
* Return a TXVECTOR for the CTS frame given the destination and the mode of the RTS |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
494 |
* used by the sender. |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
495 |
* The function consults WifiRemoteStationManager, which controls the rate |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
496 |
* to different destinations. |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
497 |
* |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
498 |
* \param to the MAC address of the CTS receiver |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
499 |
* \param rtsTxMode the mode of the RTS used by the sender |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
500 |
* \return TXVECTOR for the CTS |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
501 |
*/ |
10139 | 502 |
WifiTxVector GetCtsTxVector (Mac48Address to, WifiMode rtsTxMode) const; |
10483
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
503 |
/** |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
504 |
* Return a TXVECTOR for the ACK frame given the destination and the mode of the DATA |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
505 |
* used by the sender. |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
506 |
* The function consults WifiRemoteStationManager, which controls the rate |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
507 |
* to different destinations. |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
508 |
* |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
509 |
* \param to the MAC address of the ACK receiver |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
510 |
* \param dataTxMode the mode of the DATA used by the sender |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
511 |
* \return TXVECTOR for the ACK |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
512 |
*/ |
10139 | 513 |
WifiTxVector GetAckTxVector (Mac48Address to, WifiMode dataTxMode) const; |
10483
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
514 |
/** |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
515 |
* Return a TXVECTOR for the Block ACK frame given the destination and the mode of the DATA |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
516 |
* used by the sender. |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
517 |
* The function consults WifiRemoteStationManager, which controls the rate |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
518 |
* to different destinations. |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
519 |
* |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
520 |
* \param to the MAC address of the Block ACK receiver |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
521 |
* \param dataTxMode the mode of the DATA used by the sender |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
522 |
* \return TXVECTOR for the Block ACK |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
523 |
*/ |
10139 | 524 |
WifiTxVector GetBlockAckTxVector (Mac48Address to, WifiMode dataTxMode) const; |
10483
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
525 |
/** |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
526 |
* Return a TXVECTOR for the CTS frame given the destination and the mode of the RTS |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
527 |
* used by the sender. |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
528 |
* The function consults WifiRemoteStationManager, which controls the rate |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
529 |
* to different destinations. |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
530 |
* |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
531 |
* \param to the MAC address of the CTS receiver |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
532 |
* \param rtsTxMode the mode of the RTS used by the sender |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
533 |
* \return TXVECTOR for the CTS |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
534 |
*/ |
10139 | 535 |
WifiTxVector GetCtsTxVectorForRts (Mac48Address to, WifiMode rtsTxMode) const; |
10483
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
536 |
/** |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
537 |
* Return a TXVECTOR for the Block ACK frame given the destination and the mode of the DATA |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
538 |
* used by the sender. |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
539 |
* The function consults WifiRemoteStationManager, which controls the rate |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
540 |
* to different destinations. |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
541 |
* |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
542 |
* \param to the MAC address of the Block ACK receiver |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
543 |
* \param dataTxMode the mode of the DATA used by the sender |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
544 |
* \return TXVECTOR for the Block ACK |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
545 |
*/ |
10139 | 546 |
WifiTxVector GetAckTxVectorForData (Mac48Address to, WifiMode dataTxMode) const; |
10483
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
547 |
/** |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
548 |
* Return the time required to transmit the CTS (including preamble and FCS). |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
549 |
* |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
550 |
* \param ctsTxVector |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
551 |
* \return the time required to transmit the CTS (including preamble and FCS) |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
552 |
*/ |
10139 | 553 |
Time GetCtsDuration (WifiTxVector ctsTxVector) const; |
10483
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
554 |
/** |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
555 |
* Return the time required to transmit the CTS to the specified address |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
556 |
* given the TXVECTOR of the RTS (including preamble and FCS). |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
557 |
* |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
558 |
* \param to |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
559 |
* \param rtsTxVector |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
560 |
* \return the time required to transmit the CTS (including preamble and FCS) |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
561 |
*/ |
10139 | 562 |
Time GetCtsDuration (Mac48Address to, WifiTxVector rtsTxVector) const; |
10483
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
563 |
/** |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
564 |
* Return the time required to transmit the ACK (including preamble and FCS). |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
565 |
* |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
566 |
* \param ackTxVector |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
567 |
* \return the time required to transmit the ACK (including preamble and FCS) |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
568 |
*/ |
10139 | 569 |
Time GetAckDuration (WifiTxVector ackTxVector) const; |
10483
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
570 |
/** |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
571 |
* Return the time required to transmit the ACK to the specified address |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
572 |
* given the TXVECTOR of the DATA (including preamble and FCS). |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
573 |
* |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
574 |
* \param to |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
575 |
* \param dataTxVector |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
576 |
* \return the time required to transmit the ACK (including preamble and FCS) |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
577 |
*/ |
10139 | 578 |
Time GetAckDuration (Mac48Address to, WifiTxVector dataTxVector) const; |
11174
780a43e4980c
add MPDU aggregation (with contributions from Sebastien Deronne and Ioannis Selinis)
Ghada Badawy <gbadawy@gmail.com>
parents:
11159
diff
changeset
|
579 |
/** |
780a43e4980c
add MPDU aggregation (with contributions from Sebastien Deronne and Ioannis Selinis)
Ghada Badawy <gbadawy@gmail.com>
parents:
11159
diff
changeset
|
580 |
* Return the time required to transmit the Block ACK to the specified address |
780a43e4980c
add MPDU aggregation (with contributions from Sebastien Deronne and Ioannis Selinis)
Ghada Badawy <gbadawy@gmail.com>
parents:
11159
diff
changeset
|
581 |
* given the TXVECTOR of the BAR (including preamble and FCS). |
780a43e4980c
add MPDU aggregation (with contributions from Sebastien Deronne and Ioannis Selinis)
Ghada Badawy <gbadawy@gmail.com>
parents:
11159
diff
changeset
|
582 |
* |
12691
e33cd795e21a
wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
12676
diff
changeset
|
583 |
* \param blockAckReqTxVector |
11174
780a43e4980c
add MPDU aggregation (with contributions from Sebastien Deronne and Ioannis Selinis)
Ghada Badawy <gbadawy@gmail.com>
parents:
11159
diff
changeset
|
584 |
* \param type the Block ACK type |
780a43e4980c
add MPDU aggregation (with contributions from Sebastien Deronne and Ioannis Selinis)
Ghada Badawy <gbadawy@gmail.com>
parents:
11159
diff
changeset
|
585 |
* \return the time required to transmit the Block ACK (including preamble and FCS) |
780a43e4980c
add MPDU aggregation (with contributions from Sebastien Deronne and Ioannis Selinis)
Ghada Badawy <gbadawy@gmail.com>
parents:
11159
diff
changeset
|
586 |
*/ |
13226
7df3dd047fd3
wifi: remove unused input parameters
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
13220
diff
changeset
|
587 |
Time GetBlockAckDuration (WifiTxVector blockAckReqTxVector, BlockAckType type) const; |
10483
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
588 |
/** |
11853
dfae11557a03
wifi: (fixes #2271) Compare RtsCtsThreshold against the total A-MPDU size
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
11773
diff
changeset
|
589 |
* Check if the current packet should be sent with a RTS protection. |
dfae11557a03
wifi: (fixes #2271) Compare RtsCtsThreshold against the total A-MPDU size
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
11773
diff
changeset
|
590 |
* |
dfae11557a03
wifi: (fixes #2271) Compare RtsCtsThreshold against the total A-MPDU size
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
11773
diff
changeset
|
591 |
* \return true if RTS protection should be used, |
dfae11557a03
wifi: (fixes #2271) Compare RtsCtsThreshold against the total A-MPDU size
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
11773
diff
changeset
|
592 |
* false otherwise |
dfae11557a03
wifi: (fixes #2271) Compare RtsCtsThreshold against the total A-MPDU size
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
11773
diff
changeset
|
593 |
*/ |
12436
5661e19df213
wifi: Add missing const
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
12431
diff
changeset
|
594 |
bool NeedRts (void) const; |
11853
dfae11557a03
wifi: (fixes #2271) Compare RtsCtsThreshold against the total A-MPDU size
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
11773
diff
changeset
|
595 |
/** |
10483
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
596 |
* Check if CTS-to-self mechanism should be used for the current packet. |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
597 |
* |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
598 |
* \return true if CTS-to-self mechanism should be used for the current packet, |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
599 |
* false otherwise |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
600 |
*/ |
12436
5661e19df213
wifi: Add missing const
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
12431
diff
changeset
|
601 |
bool NeedCtsToSelf (void) const; |
11450
9f4ae69f12b7
cleanup wifi module
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
11432
diff
changeset
|
602 |
|
12691
e33cd795e21a
wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
12676
diff
changeset
|
603 |
/** |
e33cd795e21a
wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
12676
diff
changeset
|
604 |
* Notify NAV function. |
e33cd795e21a
wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
12676
diff
changeset
|
605 |
* |
e33cd795e21a
wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
12676
diff
changeset
|
606 |
* \param packet the packet |
e33cd795e21a
wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
12676
diff
changeset
|
607 |
* \param hdr the header |
e33cd795e21a
wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
12676
diff
changeset
|
608 |
*/ |
13226
7df3dd047fd3
wifi: remove unused input parameters
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
13220
diff
changeset
|
609 |
void NotifyNav (Ptr<const Packet> packet,const WifiMacHeader &hdr); |
10483
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
610 |
/** |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
611 |
* Reset NAV with the given duration. |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
612 |
* |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
613 |
* \param duration |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
614 |
*/ |
2146
40ad60ac9912
replace Dcf with DcfManager
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
2059
diff
changeset
|
615 |
void DoNavResetNow (Time duration); |
10483
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
616 |
/** |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
617 |
* Check if NAV is zero. |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
618 |
* |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
619 |
* \return true if NAV is zero, |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
620 |
* false otherwise |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
621 |
*/ |
2146
40ad60ac9912
replace Dcf with DcfManager
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
2059
diff
changeset
|
622 |
bool IsNavZero (void) const; |
10483
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
623 |
/** |
13557
1d9389d67836
wifi: Add support for 802.11 PCF
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
13532
diff
changeset
|
624 |
* Notify ChannelAccessManager that ACK timer should be started for the given duration. |
10483
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
625 |
* |
12691
e33cd795e21a
wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
12676
diff
changeset
|
626 |
* \param duration the duration |
10483
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
627 |
*/ |
4509
b2654e0f071d
bug 556: DcfManager does not handle AckTimeout properly when there are multiple queues
Kirill V. Andreev <kirillano@yandex.ru>
parents:
3906
diff
changeset
|
628 |
void NotifyAckTimeoutStartNow (Time duration); |
10483
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
629 |
/** |
13665 | 630 |
* Notify ChannelAccessManager that ACK timer should be reset. |
10483
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
631 |
*/ |
4509
b2654e0f071d
bug 556: DcfManager does not handle AckTimeout properly when there are multiple queues
Kirill V. Andreev <kirillano@yandex.ru>
parents:
3906
diff
changeset
|
632 |
void NotifyAckTimeoutResetNow (); |
10483
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
633 |
/** |
13557
1d9389d67836
wifi: Add support for 802.11 PCF
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
13532
diff
changeset
|
634 |
* Notify ChannelAccessManager that CTS timer should be started for the given duration. |
10483
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
635 |
* |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
636 |
* \param duration |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
637 |
*/ |
4509
b2654e0f071d
bug 556: DcfManager does not handle AckTimeout properly when there are multiple queues
Kirill V. Andreev <kirillano@yandex.ru>
parents:
3906
diff
changeset
|
638 |
void NotifyCtsTimeoutStartNow (Time duration); |
10483
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
639 |
/** |
13665 | 640 |
* Notify ChannelAccessManager that CTS timer should be reset. |
10483
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
641 |
*/ |
4509
b2654e0f071d
bug 556: DcfManager does not handle AckTimeout properly when there are multiple queues
Kirill V. Andreev <kirillano@yandex.ru>
parents:
3906
diff
changeset
|
642 |
void NotifyCtsTimeoutResetNow (); |
10483
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
643 |
/** |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
644 |
* Reset NAV after CTS was missed when the NAV was |
13665 | 645 |
* set with RTS. |
10483
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
646 |
* |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
647 |
* \param rtsEndRxTime |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
648 |
*/ |
2146
40ad60ac9912
replace Dcf with DcfManager
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
2059
diff
changeset
|
649 |
void NavCounterResetCtsMissed (Time rtsEndRxTime); |
10483
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
650 |
/* Event handlers */ |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
651 |
/** |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
652 |
* Event handler when normal ACK timeout occurs. |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
653 |
*/ |
1922
dd18bc29fc3c
add MacLow to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
654 |
void NormalAckTimeout (void); |
10483
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
655 |
/** |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
656 |
* Event handler when block ACK timeout occurs. |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
657 |
*/ |
5958 | 658 |
void BlockAckTimeout (void); |
10483
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
659 |
/** |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
660 |
* Event handler when CTS timeout occurs. |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
661 |
*/ |
1922
dd18bc29fc3c
add MacLow to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
662 |
void CtsTimeout (void); |
10483
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
663 |
/** |
13557
1d9389d67836
wifi: Add support for 802.11 PCF
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
13532
diff
changeset
|
664 |
* Event handler when CF-POLL timeout occurs. |
1d9389d67836
wifi: Add support for 802.11 PCF
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
13532
diff
changeset
|
665 |
*/ |
1d9389d67836
wifi: Add support for 802.11 PCF
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
13532
diff
changeset
|
666 |
void CfPollTimeout (void); |
1d9389d67836
wifi: Add support for 802.11 PCF
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
13532
diff
changeset
|
667 |
/** |
10483
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
668 |
* Send CTS for a CTS-to-self mechanism. |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
669 |
*/ |
10139 | 670 |
void SendCtsToSelf (void); |
10483
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
671 |
/** |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
672 |
* Send CTS after receiving RTS. |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
673 |
* |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
674 |
* \param source |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
675 |
* \param duration |
11384
935dc1cc08a4
Bug 2097 [wifi] - ACKs should be sent using legacy rates and preambles in 802.11n
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
11353
diff
changeset
|
676 |
* \param rtsTxVector |
10483
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
677 |
* \param rtsSnr |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
678 |
*/ |
11384
935dc1cc08a4
Bug 2097 [wifi] - ACKs should be sent using legacy rates and preambles in 802.11n
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
11353
diff
changeset
|
679 |
void SendCtsAfterRts (Mac48Address source, Time duration, WifiTxVector rtsTxVector, double rtsSnr); |
10483
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
680 |
/** |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
681 |
* Send ACK after receiving DATA. |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
682 |
* |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
683 |
* \param source |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
684 |
* \param duration |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
685 |
* \param dataTxMode |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
686 |
* \param dataSnr |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
687 |
*/ |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
688 |
void SendAckAfterData (Mac48Address source, Time duration, WifiMode dataTxMode, double dataSnr); |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
689 |
/** |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
690 |
* Send DATA after receiving CTS. |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
691 |
* |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
692 |
* \param duration |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
693 |
*/ |
13297
37621a9c2a66
wifi: Eliminate some Visual Studio compiler warnings
Robert Ammon <ammo6818@vandals.uidaho.edu>
parents:
13226
diff
changeset
|
694 |
void SendDataAfterCts (Time duration); |
12202
cbe65eebe10b
wifi: support 802.11e TXOP
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
12112
diff
changeset
|
695 |
|
10483
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
696 |
/** |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
697 |
* Event handler that is usually scheduled to fired at the appropriate time |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
698 |
* after completing transmissions. |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
699 |
*/ |
12611
9e27334426d2
wifi: (fixes #2528) Improve 802.11n RIFS support
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
12590
diff
changeset
|
700 |
void WaitIfsAfterEndTxFragment (void); |
12691
e33cd795e21a
wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
12676
diff
changeset
|
701 |
/** |
e33cd795e21a
wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
12676
diff
changeset
|
702 |
* Event handler that is usually scheduled to fired at the appropriate time |
e33cd795e21a
wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
12676
diff
changeset
|
703 |
* after sending a packet. |
e33cd795e21a
wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
12676
diff
changeset
|
704 |
*/ |
12611
9e27334426d2
wifi: (fixes #2528) Improve 802.11n RIFS support
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
12590
diff
changeset
|
705 |
void WaitIfsAfterEndTxPacket (void); |
12202
cbe65eebe10b
wifi: support 802.11e TXOP
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
12112
diff
changeset
|
706 |
|
10483
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
707 |
/** |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
708 |
* A transmission that does not require an ACK has completed. |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
709 |
*/ |
9176
41ab1e874804
Bug 555 - DCF immediate access fix
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
7385
diff
changeset
|
710 |
void EndTxNoAck (void); |
10483
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
711 |
/** |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
712 |
* Send RTS to begin RTS-CTS-DATA-ACK transaction. |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
713 |
*/ |
1922
dd18bc29fc3c
add MacLow to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
714 |
void SendRtsForPacket (void); |
10483
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
715 |
/** |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
716 |
* Send DATA packet, which can be DATA-ACK or |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
717 |
* RTS-CTS-DATA-ACK transaction. |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
718 |
*/ |
1922
dd18bc29fc3c
add MacLow to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
719 |
void SendDataPacket (void); |
10483
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
720 |
/** |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
721 |
* Start a DATA timer by scheduling appropriate |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
722 |
* ACK timeout. |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
723 |
* |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
724 |
* \param dataTxVector |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
725 |
*/ |
10139 | 726 |
void StartDataTxTimers (WifiTxVector dataTxVector); |
11450
9f4ae69f12b7
cleanup wifi module
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
11432
diff
changeset
|
727 |
|
12691
e33cd795e21a
wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
12676
diff
changeset
|
728 |
void DoDispose (void); |
11450
9f4ae69f12b7
cleanup wifi module
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
11432
diff
changeset
|
729 |
|
11174
780a43e4980c
add MPDU aggregation (with contributions from Sebastien Deronne and Ioannis Selinis)
Ghada Badawy <gbadawy@gmail.com>
parents:
11159
diff
changeset
|
730 |
/** |
6273
8d70de29d514
spell check, mostly in comments.
Andrey Mazo <mazo@iitp.ru>
parents:
6068
diff
changeset
|
731 |
* \param originator Address of peer participating in Block Ack mechanism. |
5956
e9918be47f78
MacLow now buffers QoS MPDUs under Block Ack
Mirko Banchi <mk.banchi@gmail.com>
parents:
5955
diff
changeset
|
732 |
* \param tid TID for which Block Ack was created. |
11622
d0da0aa55bda
Bug 2104 [wifi] - Sequence Number passed to QosUtilsMapSeqControlToUniqueInteger instead of Sequence Control (initial fix from Steven Sultana)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
11621
diff
changeset
|
733 |
* \param seq Starting sequence control |
5956
e9918be47f78
MacLow now buffers QoS MPDUs under Block Ack
Mirko Banchi <mk.banchi@gmail.com>
parents:
5955
diff
changeset
|
734 |
* |
e9918be47f78
MacLow now buffers QoS MPDUs under Block Ack
Mirko Banchi <mk.banchi@gmail.com>
parents:
5955
diff
changeset
|
735 |
* This function forward up all completed "old" packets with sequence number |
e9918be47f78
MacLow now buffers QoS MPDUs under Block Ack
Mirko Banchi <mk.banchi@gmail.com>
parents:
5955
diff
changeset
|
736 |
* smaller than <i>seq</i>. All comparison are performed circularly mod 4096. |
e9918be47f78
MacLow now buffers QoS MPDUs under Block Ack
Mirko Banchi <mk.banchi@gmail.com>
parents:
5955
diff
changeset
|
737 |
*/ |
e9918be47f78
MacLow now buffers QoS MPDUs under Block Ack
Mirko Banchi <mk.banchi@gmail.com>
parents:
5955
diff
changeset
|
738 |
void RxCompleteBufferedPacketsWithSmallerSequence (uint16_t seq, Mac48Address originator, uint8_t tid); |
e9918be47f78
MacLow now buffers QoS MPDUs under Block Ack
Mirko Banchi <mk.banchi@gmail.com>
parents:
5955
diff
changeset
|
739 |
/** |
6273
8d70de29d514
spell check, mostly in comments.
Andrey Mazo <mazo@iitp.ru>
parents:
6068
diff
changeset
|
740 |
* \param originator Address of peer participating in Block Ack mechanism. |
5956
e9918be47f78
MacLow now buffers QoS MPDUs under Block Ack
Mirko Banchi <mk.banchi@gmail.com>
parents:
5955
diff
changeset
|
741 |
* \param tid TID for which Block Ack was created. |
e9918be47f78
MacLow now buffers QoS MPDUs under Block Ack
Mirko Banchi <mk.banchi@gmail.com>
parents:
5955
diff
changeset
|
742 |
* |
e9918be47f78
MacLow now buffers QoS MPDUs under Block Ack
Mirko Banchi <mk.banchi@gmail.com>
parents:
5955
diff
changeset
|
743 |
* This method is typically invoked when a MPDU with ack policy |
e9918be47f78
MacLow now buffers QoS MPDUs under Block Ack
Mirko Banchi <mk.banchi@gmail.com>
parents:
5955
diff
changeset
|
744 |
* subfield set to Normal Ack is received and a block ack agreement |
e9918be47f78
MacLow now buffers QoS MPDUs under Block Ack
Mirko Banchi <mk.banchi@gmail.com>
parents:
5955
diff
changeset
|
745 |
* for that packet exists. |
e9918be47f78
MacLow now buffers QoS MPDUs under Block Ack
Mirko Banchi <mk.banchi@gmail.com>
parents:
5955
diff
changeset
|
746 |
* This happens when the originator of block ack has only few MPDUs to send. |
e9918be47f78
MacLow now buffers QoS MPDUs under Block Ack
Mirko Banchi <mk.banchi@gmail.com>
parents:
5955
diff
changeset
|
747 |
* All completed MSDUs starting with starting sequence number of block ack |
6606
2f2b67218332
Bug 981: use a cache to keep track of received MPDUs under block ack
Mirko Banchi <mk.banchi@gmail.com>
parents:
6599
diff
changeset
|
748 |
* agreement are forward up to WifiMac until there is an incomplete or missing MSDU. |
11083
96e983e7cd5d
fix typos in wifi module
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
10883
diff
changeset
|
749 |
* See section 9.10.4 in IEEE 802.11 standard for more details. |
5956
e9918be47f78
MacLow now buffers QoS MPDUs under Block Ack
Mirko Banchi <mk.banchi@gmail.com>
parents:
5955
diff
changeset
|
750 |
*/ |
6599
8c1a255c05a3
Rename MacLow::RxCompleteBufferedPacket to a more appropriate name
Mirko Banchi <mk.banchi@gmail.com>
parents:
6595
diff
changeset
|
751 |
void RxCompleteBufferedPacketsUntilFirstLost (Mac48Address originator, uint8_t tid); |
11174
780a43e4980c
add MPDU aggregation (with contributions from Sebastien Deronne and Ioannis Selinis)
Ghada Badawy <gbadawy@gmail.com>
parents:
11159
diff
changeset
|
752 |
/** |
12691
e33cd795e21a
wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
12676
diff
changeset
|
753 |
* \param packet the packet |
e33cd795e21a
wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
12676
diff
changeset
|
754 |
* \param hdr the header |
e33cd795e21a
wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
12676
diff
changeset
|
755 |
* \returns true if MPDU received |
e33cd795e21a
wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
12676
diff
changeset
|
756 |
* |
11174
780a43e4980c
add MPDU aggregation (with contributions from Sebastien Deronne and Ioannis Selinis)
Ghada Badawy <gbadawy@gmail.com>
parents:
11159
diff
changeset
|
757 |
* This method updates the reorder buffer and the scoreboard when an MPDU is received in an HT station |
12691
e33cd795e21a
wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
12676
diff
changeset
|
758 |
* and stores the MPDU if needed when an MPDU is received in an non-HT Station (implements HT |
11174
780a43e4980c
add MPDU aggregation (with contributions from Sebastien Deronne and Ioannis Selinis)
Ghada Badawy <gbadawy@gmail.com>
parents:
11159
diff
changeset
|
759 |
* immediate block Ack) |
780a43e4980c
add MPDU aggregation (with contributions from Sebastien Deronne and Ioannis Selinis)
Ghada Badawy <gbadawy@gmail.com>
parents:
11159
diff
changeset
|
760 |
*/ |
780a43e4980c
add MPDU aggregation (with contributions from Sebastien Deronne and Ioannis Selinis)
Ghada Badawy <gbadawy@gmail.com>
parents:
11159
diff
changeset
|
761 |
bool ReceiveMpdu (Ptr<Packet> packet, WifiMacHeader hdr); |
780a43e4980c
add MPDU aggregation (with contributions from Sebastien Deronne and Ioannis Selinis)
Ghada Badawy <gbadawy@gmail.com>
parents:
11159
diff
changeset
|
762 |
/** |
12691
e33cd795e21a
wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
12676
diff
changeset
|
763 |
* \param packet the packet |
e33cd795e21a
wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
12676
diff
changeset
|
764 |
* \param hdr the header |
e33cd795e21a
wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
12676
diff
changeset
|
765 |
* \returns true if the MPDU stored |
e33cd795e21a
wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
12676
diff
changeset
|
766 |
* |
7141
072fb225b714
run check-style.py on src/wifi
Nicola Baldo <nicola@baldo.biz>
parents:
7139
diff
changeset
|
767 |
* This method checks if exists a valid established block ack agreement. |
5956
e9918be47f78
MacLow now buffers QoS MPDUs under Block Ack
Mirko Banchi <mk.banchi@gmail.com>
parents:
5955
diff
changeset
|
768 |
* If there is, store the packet without pass it up to WifiMac. The packet is buffered |
e9918be47f78
MacLow now buffers QoS MPDUs under Block Ack
Mirko Banchi <mk.banchi@gmail.com>
parents:
5955
diff
changeset
|
769 |
* in order of increasing sequence control field. All comparison are performed |
e9918be47f78
MacLow now buffers QoS MPDUs under Block Ack
Mirko Banchi <mk.banchi@gmail.com>
parents:
5955
diff
changeset
|
770 |
* circularly modulo 2^12. |
e9918be47f78
MacLow now buffers QoS MPDUs under Block Ack
Mirko Banchi <mk.banchi@gmail.com>
parents:
5955
diff
changeset
|
771 |
*/ |
e9918be47f78
MacLow now buffers QoS MPDUs under Block Ack
Mirko Banchi <mk.banchi@gmail.com>
parents:
5955
diff
changeset
|
772 |
bool StoreMpduIfNeeded (Ptr<Packet> packet, WifiMacHeader hdr); |
10483
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
773 |
/** |
5957
dd5ece55acb9
handle block ack and block ack request frames in MacLow
Mirko Banchi <mk.banchi@gmail.com>
parents:
5956
diff
changeset
|
774 |
* Invoked after that a block ack request has been received. Looks for corresponding |
dd5ece55acb9
handle block ack and block ack request frames in MacLow
Mirko Banchi <mk.banchi@gmail.com>
parents:
5956
diff
changeset
|
775 |
* block ack agreement and creates block ack bitmap on a received packets basis. |
10483
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
776 |
* |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
777 |
* \param reqHdr |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
778 |
* \param originator |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
779 |
* \param duration |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
780 |
* \param blockAckReqTxMode |
12007
b1aec364f2c7
wifi: (partial fix #1797) Carry SnrTag info back to IdealWifiManager
Tom Henderson <tomh@tomh.org>
parents:
11996
diff
changeset
|
781 |
* \param rxSnr |
5957
dd5ece55acb9
handle block ack and block ack request frames in MacLow
Mirko Banchi <mk.banchi@gmail.com>
parents:
5956
diff
changeset
|
782 |
*/ |
dd5ece55acb9
handle block ack and block ack request frames in MacLow
Mirko Banchi <mk.banchi@gmail.com>
parents:
5956
diff
changeset
|
783 |
void SendBlockAckAfterBlockAckRequest (const CtrlBAckRequestHeader reqHdr, Mac48Address originator, |
12007
b1aec364f2c7
wifi: (partial fix #1797) Carry SnrTag info back to IdealWifiManager
Tom Henderson <tomh@tomh.org>
parents:
11996
diff
changeset
|
784 |
Time duration, WifiMode blockAckReqTxMode, double rxSnr); |
10483
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
785 |
/** |
11174
780a43e4980c
add MPDU aggregation (with contributions from Sebastien Deronne and Ioannis Selinis)
Ghada Badawy <gbadawy@gmail.com>
parents:
11159
diff
changeset
|
786 |
* Invoked after an A-MPDU has been received. Looks for corresponding |
780a43e4980c
add MPDU aggregation (with contributions from Sebastien Deronne and Ioannis Selinis)
Ghada Badawy <gbadawy@gmail.com>
parents:
11159
diff
changeset
|
787 |
* block ack agreement and creates block ack bitmap on a received packets basis. |
12691
e33cd795e21a
wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
12676
diff
changeset
|
788 |
* |
e33cd795e21a
wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
12676
diff
changeset
|
789 |
* \param tid the Traffic ID |
e33cd795e21a
wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
12676
diff
changeset
|
790 |
* \param originator the originator MAC address |
e33cd795e21a
wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
12676
diff
changeset
|
791 |
* \param duration the remaining NAV duration |
e33cd795e21a
wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
12676
diff
changeset
|
792 |
* \param blockAckReqTxVector the transmit vector |
e33cd795e21a
wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
12676
diff
changeset
|
793 |
* \param rxSnr the receive SNR |
11174
780a43e4980c
add MPDU aggregation (with contributions from Sebastien Deronne and Ioannis Selinis)
Ghada Badawy <gbadawy@gmail.com>
parents:
11159
diff
changeset
|
794 |
*/ |
780a43e4980c
add MPDU aggregation (with contributions from Sebastien Deronne and Ioannis Selinis)
Ghada Badawy <gbadawy@gmail.com>
parents:
11159
diff
changeset
|
795 |
void SendBlockAckAfterAmpdu (uint8_t tid, Mac48Address originator, |
12007
b1aec364f2c7
wifi: (partial fix #1797) Carry SnrTag info back to IdealWifiManager
Tom Henderson <tomh@tomh.org>
parents:
11996
diff
changeset
|
796 |
Time duration, WifiTxVector blockAckReqTxVector, double rxSnr); |
11174
780a43e4980c
add MPDU aggregation (with contributions from Sebastien Deronne and Ioannis Selinis)
Ghada Badawy <gbadawy@gmail.com>
parents:
11159
diff
changeset
|
797 |
/** |
5957
dd5ece55acb9
handle block ack and block ack request frames in MacLow
Mirko Banchi <mk.banchi@gmail.com>
parents:
5956
diff
changeset
|
798 |
* This method creates block ack frame with header equals to <i>blockAck</i> and start its transmission. |
10483
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
799 |
* |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
800 |
* \param blockAck |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
801 |
* \param originator |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
802 |
* \param immediate |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
803 |
* \param duration |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
804 |
* \param blockAckReqTxMode |
12007
b1aec364f2c7
wifi: (partial fix #1797) Carry SnrTag info back to IdealWifiManager
Tom Henderson <tomh@tomh.org>
parents:
11996
diff
changeset
|
805 |
* \param rxSnr |
5957
dd5ece55acb9
handle block ack and block ack request frames in MacLow
Mirko Banchi <mk.banchi@gmail.com>
parents:
5956
diff
changeset
|
806 |
*/ |
dd5ece55acb9
handle block ack and block ack request frames in MacLow
Mirko Banchi <mk.banchi@gmail.com>
parents:
5956
diff
changeset
|
807 |
void SendBlockAckResponse (const CtrlBAckResponseHeader* blockAck, Mac48Address originator, bool immediate, |
12007
b1aec364f2c7
wifi: (partial fix #1797) Carry SnrTag info back to IdealWifiManager
Tom Henderson <tomh@tomh.org>
parents:
11996
diff
changeset
|
808 |
Time duration, WifiMode blockAckReqTxMode, double rxSnr); |
10483
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
809 |
/** |
5964
8a59a619c30e
add support to block ack tear down in MacLow
Mirko Banchi <mk.banchi@gmail.com>
parents:
5958
diff
changeset
|
810 |
* Every time that a block ack request or a packet with ack policy equals to <i>block ack</i> |
8a59a619c30e
add support to block ack tear down in MacLow
Mirko Banchi <mk.banchi@gmail.com>
parents:
5958
diff
changeset
|
811 |
* are received, if a relative block ack agreement exists and the value of inactivity timeout |
8a59a619c30e
add support to block ack tear down in MacLow
Mirko Banchi <mk.banchi@gmail.com>
parents:
5958
diff
changeset
|
812 |
* is not 0, the timer is reset. |
11083
96e983e7cd5d
fix typos in wifi module
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
10883
diff
changeset
|
813 |
* see section 11.5.3 in IEEE 802.11e for more details. |
10483
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
814 |
* |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
815 |
* \param agreement |
5964
8a59a619c30e
add support to block ack tear down in MacLow
Mirko Banchi <mk.banchi@gmail.com>
parents:
5958
diff
changeset
|
816 |
*/ |
8a59a619c30e
add support to block ack tear down in MacLow
Mirko Banchi <mk.banchi@gmail.com>
parents:
5958
diff
changeset
|
817 |
void ResetBlockAckInactivityTimerIfNeeded (BlockAckAgreement &agreement); |
1922
dd18bc29fc3c
add MacLow to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
818 |
|
10483
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
819 |
/** |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
820 |
* Set up WifiPhy listener for this MacLow. |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
821 |
* |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
822 |
* \param phy the WifiPhy this MacLow is connected to |
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
823 |
*/ |
12940
9b6857031ad4
wifi: Use const in setters
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
12743
diff
changeset
|
824 |
void SetupPhyMacLowListener (const Ptr<WifiPhy> phy); |
11159
b744c32b69bc
patch to support IEEE 1609.4 MAC extension in wave module
Junling Bu <linlinjavaer@gmail.com>
parents:
11083
diff
changeset
|
825 |
/** |
b744c32b69bc
patch to support IEEE 1609.4 MAC extension in wave module
Junling Bu <linlinjavaer@gmail.com>
parents:
11083
diff
changeset
|
826 |
* Remove current WifiPhy listener for this MacLow. |
b744c32b69bc
patch to support IEEE 1609.4 MAC extension in wave module
Junling Bu <linlinjavaer@gmail.com>
parents:
11083
diff
changeset
|
827 |
* |
b744c32b69bc
patch to support IEEE 1609.4 MAC extension in wave module
Junling Bu <linlinjavaer@gmail.com>
parents:
11083
diff
changeset
|
828 |
* \param phy the WifiPhy this MacLow is connected to |
b744c32b69bc
patch to support IEEE 1609.4 MAC extension in wave module
Junling Bu <linlinjavaer@gmail.com>
parents:
11083
diff
changeset
|
829 |
*/ |
b744c32b69bc
patch to support IEEE 1609.4 MAC extension in wave module
Junling Bu <linlinjavaer@gmail.com>
parents:
11083
diff
changeset
|
830 |
void RemovePhyMacLowListener (Ptr<WifiPhy> phy); |
11174
780a43e4980c
add MPDU aggregation (with contributions from Sebastien Deronne and Ioannis Selinis)
Ghada Badawy <gbadawy@gmail.com>
parents:
11159
diff
changeset
|
831 |
/** |
780a43e4980c
add MPDU aggregation (with contributions from Sebastien Deronne and Ioannis Selinis)
Ghada Badawy <gbadawy@gmail.com>
parents:
11159
diff
changeset
|
832 |
* Checks if the given packet will be aggregated to an A-MPDU or not |
780a43e4980c
add MPDU aggregation (with contributions from Sebastien Deronne and Ioannis Selinis)
Ghada Badawy <gbadawy@gmail.com>
parents:
11159
diff
changeset
|
833 |
* |
780a43e4980c
add MPDU aggregation (with contributions from Sebastien Deronne and Ioannis Selinis)
Ghada Badawy <gbadawy@gmail.com>
parents:
11159
diff
changeset
|
834 |
* \param packet packet to check whether it can be aggregated in an A-MPDU |
780a43e4980c
add MPDU aggregation (with contributions from Sebastien Deronne and Ioannis Selinis)
Ghada Badawy <gbadawy@gmail.com>
parents:
11159
diff
changeset
|
835 |
* \param hdr 802.11 header for packet to check whether it can be aggregated in an A-MPDU |
12691
e33cd795e21a
wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
12676
diff
changeset
|
836 |
* \returns true if is A-MPDU |
11174
780a43e4980c
add MPDU aggregation (with contributions from Sebastien Deronne and Ioannis Selinis)
Ghada Badawy <gbadawy@gmail.com>
parents:
11159
diff
changeset
|
837 |
*/ |
780a43e4980c
add MPDU aggregation (with contributions from Sebastien Deronne and Ioannis Selinis)
Ghada Badawy <gbadawy@gmail.com>
parents:
11159
diff
changeset
|
838 |
bool IsAmpdu (Ptr<const Packet> packet, const WifiMacHeader hdr); |
11352
a1f6f647d516
add two-level aggregation
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
11174
diff
changeset
|
839 |
/** |
11353
b03d1c0ada03
Bug 2075 [wifi] - A-MPDU using RTS/CTS behaves wrongly when MaxSsrc is reached
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
11352
diff
changeset
|
840 |
* Insert in a temporary queue. |
b03d1c0ada03
Bug 2075 [wifi] - A-MPDU using RTS/CTS behaves wrongly when MaxSsrc is reached
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
11352
diff
changeset
|
841 |
* It is only used with a RTS/CTS exchange for an A-MPDU transmission. |
12691
e33cd795e21a
wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
12676
diff
changeset
|
842 |
* |
e33cd795e21a
wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
12676
diff
changeset
|
843 |
* \param packet packet to be inserted in the A-MPDU tx queue |
e33cd795e21a
wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
12676
diff
changeset
|
844 |
* \param hdr 802.11 header for the packet to be inserted in the A-MPDU tx queue |
e33cd795e21a
wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
12676
diff
changeset
|
845 |
* \param tStamp timestamp of the packet to be inserted in the A-MPDU tx queue |
e33cd795e21a
wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
12676
diff
changeset
|
846 |
* \param tid the Traffic ID of the packet to be inserted in the A-MPDU tx queue |
11353
b03d1c0ada03
Bug 2075 [wifi] - A-MPDU using RTS/CTS behaves wrongly when MaxSsrc is reached
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
11352
diff
changeset
|
847 |
*/ |
12512
844a94b3ee97
wifi: (fixes #2577) Handle A-MPDU with RTS enabled when multiple TOS are used
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
12509
diff
changeset
|
848 |
void InsertInTxQueue (Ptr<const Packet> packet, const WifiMacHeader &hdr, Time tStamp, uint8_t tid); |
11353
b03d1c0ada03
Bug 2075 [wifi] - A-MPDU using RTS/CTS behaves wrongly when MaxSsrc is reached
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
11352
diff
changeset
|
849 |
/** |
11352
a1f6f647d516
add two-level aggregation
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
11174
diff
changeset
|
850 |
* Perform MSDU aggregation for a given MPDU in an A-MPDU |
a1f6f647d516
add two-level aggregation
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
11174
diff
changeset
|
851 |
* |
a1f6f647d516
add two-level aggregation
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
11174
diff
changeset
|
852 |
* \param packet packet picked for aggregation |
a1f6f647d516
add two-level aggregation
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
11174
diff
changeset
|
853 |
* \param hdr 802.11 header for packet picked for aggregation |
a1f6f647d516
add two-level aggregation
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
11174
diff
changeset
|
854 |
* \param tstamp timestamp |
a1f6f647d516
add two-level aggregation
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
11174
diff
changeset
|
855 |
* \param currentAmpduPacket current A-MPDU packet |
a1f6f647d516
add two-level aggregation
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
11174
diff
changeset
|
856 |
* \param blockAckSize size of the piggybacked block ack request |
a1f6f647d516
add two-level aggregation
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
11174
diff
changeset
|
857 |
* |
a1f6f647d516
add two-level aggregation
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
11174
diff
changeset
|
858 |
* \return the aggregate if MSDU aggregation succeeded, 0 otherwise |
a1f6f647d516
add two-level aggregation
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
11174
diff
changeset
|
859 |
*/ |
13532
f165109053bc
wifi: Fix some types in MacLow
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
13486
diff
changeset
|
860 |
Ptr<Packet> PerformMsduAggregation (Ptr<const Packet> packet, WifiMacHeader *hdr, Time *tstamp, Ptr<Packet> currentAmpduPacket, uint8_t blockAckSize); |
11352
a1f6f647d516
add two-level aggregation
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
11174
diff
changeset
|
861 |
|
10507
2081aa152526
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10483
diff
changeset
|
862 |
Ptr<WifiPhy> m_phy; //!< Pointer to WifiPhy (actually send/receives frames) |
2081aa152526
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10483
diff
changeset
|
863 |
Ptr<WifiRemoteStationManager> m_stationManager; //!< Pointer to WifiRemoteStationManager (rate control) |
2081aa152526
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10483
diff
changeset
|
864 |
MacLowRxCallback m_rxCallback; //!< Callback to pass packet up |
11450
9f4ae69f12b7
cleanup wifi module
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
11432
diff
changeset
|
865 |
|
11353
b03d1c0ada03
Bug 2075 [wifi] - A-MPDU using RTS/CTS behaves wrongly when MaxSsrc is reached
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
11352
diff
changeset
|
866 |
/** |
b03d1c0ada03
Bug 2075 [wifi] - A-MPDU using RTS/CTS behaves wrongly when MaxSsrc is reached
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
11352
diff
changeset
|
867 |
* A struct for packet, Wifi header, and timestamp. |
b03d1c0ada03
Bug 2075 [wifi] - A-MPDU using RTS/CTS behaves wrongly when MaxSsrc is reached
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
11352
diff
changeset
|
868 |
*/ |
13101
708b2c89cb9d
wifi, mesh: (partial fix #2451) Avoid anonymous typedefs (for bindings)
Tom Henderson <tomh@tomh.org>
parents:
13048
diff
changeset
|
869 |
struct Item |
11353
b03d1c0ada03
Bug 2075 [wifi] - A-MPDU using RTS/CTS behaves wrongly when MaxSsrc is reached
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
11352
diff
changeset
|
870 |
{ |
12691
e33cd795e21a
wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
12676
diff
changeset
|
871 |
Ptr<const Packet> packet; //!< the packet |
e33cd795e21a
wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
12676
diff
changeset
|
872 |
WifiMacHeader hdr; //!< the header |
e33cd795e21a
wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
12676
diff
changeset
|
873 |
Time timestamp; //!< the timestamp |
13101
708b2c89cb9d
wifi, mesh: (partial fix #2451) Avoid anonymous typedefs (for bindings)
Tom Henderson <tomh@tomh.org>
parents:
13048
diff
changeset
|
874 |
}; //!< item structure |
708b2c89cb9d
wifi, mesh: (partial fix #2451) Avoid anonymous typedefs (for bindings)
Tom Henderson <tomh@tomh.org>
parents:
13048
diff
changeset
|
875 |
|
10483
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
876 |
/** |
13557
1d9389d67836
wifi: Add support for 802.11 PCF
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
13532
diff
changeset
|
877 |
* A struct that holds information about ACK piggybacking (CF-ACK). |
10483
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
878 |
*/ |
13557
1d9389d67836
wifi: Add support for 802.11 PCF
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
13532
diff
changeset
|
879 |
struct CfAckInfo |
1d9389d67836
wifi: Add support for 802.11 PCF
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
13532
diff
changeset
|
880 |
{ |
1d9389d67836
wifi: Add support for 802.11 PCF
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
13532
diff
changeset
|
881 |
bool appendCfAck; //!< Flag used for PCF to indicate whether a CF-ACK should be appended |
1d9389d67836
wifi: Add support for 802.11 PCF
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
13532
diff
changeset
|
882 |
bool expectCfAck; //!< Flag used for PCF to indicate whether a CF-ACK should be expected |
1d9389d67836
wifi: Add support for 802.11 PCF
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
13532
diff
changeset
|
883 |
Mac48Address address; //!< Address of the station to be acknowledged |
1d9389d67836
wifi: Add support for 802.11 PCF
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
13532
diff
changeset
|
884 |
}; |
1d9389d67836
wifi: Add support for 802.11 PCF
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
13532
diff
changeset
|
885 |
|
10483
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
886 |
/** |
13557
1d9389d67836
wifi: Add support for 802.11 PCF
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
13532
diff
changeset
|
887 |
* typedef for an iterator for a list of ChannelAccessManager. |
10483
e3a02ed14587
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10459
diff
changeset
|
888 |
*/ |
13557
1d9389d67836
wifi: Add support for 802.11 PCF
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
13532
diff
changeset
|
889 |
typedef std::vector<Ptr<ChannelAccessManager> >::const_iterator ChannelAccessManagersCI; |
1d9389d67836
wifi: Add support for 802.11 PCF
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
13532
diff
changeset
|
890 |
/** |
1d9389d67836
wifi: Add support for 802.11 PCF
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
13532
diff
changeset
|
891 |
* typedef for a list of ChannelAccessManager. |
1d9389d67836
wifi: Add support for 802.11 PCF
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
13532
diff
changeset
|
892 |
*/ |
1d9389d67836
wifi: Add support for 802.11 PCF
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
13532
diff
changeset
|
893 |
typedef std::vector<Ptr<ChannelAccessManager> > ChannelAccessManagers; |
1d9389d67836
wifi: Add support for 802.11 PCF
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
13532
diff
changeset
|
894 |
ChannelAccessManagers m_channelAccessManagers; //!< List of ChannelAccessManager |
1922
dd18bc29fc3c
add MacLow to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
895 |
|
10507
2081aa152526
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10483
diff
changeset
|
896 |
EventId m_normalAckTimeoutEvent; //!< Normal ACK timeout event |
2081aa152526
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10483
diff
changeset
|
897 |
EventId m_blockAckTimeoutEvent; //!< Block ACK timeout event |
2081aa152526
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10483
diff
changeset
|
898 |
EventId m_ctsTimeoutEvent; //!< CTS timeout event |
2081aa152526
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10483
diff
changeset
|
899 |
EventId m_sendCtsEvent; //!< Event to send CTS |
2081aa152526
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10483
diff
changeset
|
900 |
EventId m_sendAckEvent; //!< Event to send ACK |
2081aa152526
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10483
diff
changeset
|
901 |
EventId m_sendDataEvent; //!< Event to send DATA |
12611
9e27334426d2
wifi: (fixes #2528) Improve 802.11n RIFS support
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
12590
diff
changeset
|
902 |
EventId m_waitIfsEvent; //!< Wait for IFS event |
10507
2081aa152526
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10483
diff
changeset
|
903 |
EventId m_endTxNoAckEvent; //!< Event for finishing transmission that does not require ACK |
2081aa152526
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10483
diff
changeset
|
904 |
EventId m_navCounterResetCtsMissed; //!< Event to reset NAV when CTS is not received |
1922
dd18bc29fc3c
add MacLow to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
905 |
|
10507
2081aa152526
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10483
diff
changeset
|
906 |
Ptr<Packet> m_currentPacket; //!< Current packet transmitted/to be transmitted |
11732
5438504862ac
Bug 2185 [wifi] - WiFi MacLow may respond to errored frames that it should ignore
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
11684
diff
changeset
|
907 |
WifiMacHeader m_currentHdr; //!< Header of the current transmitted packet |
13557
1d9389d67836
wifi: Add support for 802.11 PCF
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
13532
diff
changeset
|
908 |
Ptr<Txop> m_currentTxop; //!< Current TXOP |
10507
2081aa152526
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10483
diff
changeset
|
909 |
MacLowTransmissionParameters m_txParams; //!< Transmission parameters of the current packet |
2081aa152526
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10483
diff
changeset
|
910 |
Mac48Address m_self; //!< Address of this MacLow (Mac48Address) |
2081aa152526
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10483
diff
changeset
|
911 |
Mac48Address m_bssid; //!< BSSID address (Mac48Address) |
2081aa152526
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10483
diff
changeset
|
912 |
Time m_ackTimeout; //!< ACK timeout duration |
2081aa152526
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10483
diff
changeset
|
913 |
Time m_basicBlockAckTimeout; //!< Basic block ACK timeout duration |
2081aa152526
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10483
diff
changeset
|
914 |
Time m_compressedBlockAckTimeout; //!< Compressed block ACK timeout duration |
2081aa152526
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10483
diff
changeset
|
915 |
Time m_ctsTimeout; //!< CTS timeout duration |
2081aa152526
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10483
diff
changeset
|
916 |
Time m_sifs; //!< Short Interframe Space (SIFS) duration |
2081aa152526
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10483
diff
changeset
|
917 |
Time m_slotTime; //!< Slot duration |
2081aa152526
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10483
diff
changeset
|
918 |
Time m_pifs; //!< PCF Interframe Space (PIFS) duration |
2081aa152526
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10483
diff
changeset
|
919 |
Time m_rifs; //!< Reduced Interframe Space (RIFS) duration |
1922
dd18bc29fc3c
add MacLow to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
920 |
|
13557
1d9389d67836
wifi: Add support for 802.11 PCF
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
13532
diff
changeset
|
921 |
Time m_beaconInterval; //!< Expected interval between two beacon transmissions |
1d9389d67836
wifi: Add support for 802.11 PCF
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
13532
diff
changeset
|
922 |
Time m_cfpMaxDuration; //!< CFP max duration |
1d9389d67836
wifi: Add support for 802.11 PCF
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
13532
diff
changeset
|
923 |
|
10507
2081aa152526
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10483
diff
changeset
|
924 |
Time m_lastNavStart; //!< The time when the latest NAV started |
2081aa152526
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10483
diff
changeset
|
925 |
Time m_lastNavDuration; //!< The duration of the latest NAV |
5189 | 926 |
|
13557
1d9389d67836
wifi: Add support for 802.11 PCF
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
13532
diff
changeset
|
927 |
Time m_cfpStart; //!< The time when the latest CF period started |
1d9389d67836
wifi: Add support for 802.11 PCF
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
13532
diff
changeset
|
928 |
Time m_lastBeacon; //!< The time when the last beacon frame transmission started |
1d9389d67836
wifi: Add support for 802.11 PCF
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
13532
diff
changeset
|
929 |
Time m_cfpForeshortening; //!< The delay the current CF period should be foreshortened |
1d9389d67836
wifi: Add support for 802.11 PCF
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
13532
diff
changeset
|
930 |
|
10507
2081aa152526
[doxygen] wifi module
Daniel Lertpratchya <nikkipui@gmail.com>
parents:
10483
diff
changeset
|
931 |
bool m_promisc; //!< Flag if the device is operating in promiscuous mode |
11174
780a43e4980c
add MPDU aggregation (with contributions from Sebastien Deronne and Ioannis Selinis)
Ghada Badawy <gbadawy@gmail.com>
parents:
11159
diff
changeset
|
932 |
bool m_ampdu; //!< Flag if the current transmission involves an A-MPDU |
7333
17b50c5b062c
[Bug 827] promiscuous mode for wifi
Ruben Merz <ruben@net.t-labs.tu-berlin.de>
parents:
7141
diff
changeset
|
933 |
|
11083
96e983e7cd5d
fix typos in wifi module
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
10883
diff
changeset
|
934 |
class PhyMacLowListener * m_phyMacLowListener; //!< Listener needed to monitor when a channel switching occurs. |
5956
e9918be47f78
MacLow now buffers QoS MPDUs under Block Ack
Mirko Banchi <mk.banchi@gmail.com>
parents:
5955
diff
changeset
|
935 |
|
e9918be47f78
MacLow now buffers QoS MPDUs under Block Ack
Mirko Banchi <mk.banchi@gmail.com>
parents:
5955
diff
changeset
|
936 |
/* |
e9918be47f78
MacLow now buffers QoS MPDUs under Block Ack
Mirko Banchi <mk.banchi@gmail.com>
parents:
5955
diff
changeset
|
937 |
* BlockAck data structures. |
e9918be47f78
MacLow now buffers QoS MPDUs under Block Ack
Mirko Banchi <mk.banchi@gmail.com>
parents:
5955
diff
changeset
|
938 |
*/ |
12691
e33cd795e21a
wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
12676
diff
changeset
|
939 |
typedef std::pair<Ptr<Packet>, WifiMacHeader> BufferedPacket; //!< buffered packet typedef |
e33cd795e21a
wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
12676
diff
changeset
|
940 |
typedef std::list<BufferedPacket>::iterator BufferedPacketI; //!< buffered packet iterator typedef |
5956
e9918be47f78
MacLow now buffers QoS MPDUs under Block Ack
Mirko Banchi <mk.banchi@gmail.com>
parents:
5955
diff
changeset
|
941 |
|
12691
e33cd795e21a
wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
12676
diff
changeset
|
942 |
typedef std::pair<Mac48Address, uint8_t> AgreementKey; //!< agreement key typedef |
e33cd795e21a
wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
12676
diff
changeset
|
943 |
typedef std::pair<BlockAckAgreement, std::list<BufferedPacket> > AgreementValue; //!< agreement value typedef |
5956
e9918be47f78
MacLow now buffers QoS MPDUs under Block Ack
Mirko Banchi <mk.banchi@gmail.com>
parents:
5955
diff
changeset
|
944 |
|
12691
e33cd795e21a
wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
12676
diff
changeset
|
945 |
typedef std::map<AgreementKey, AgreementValue> Agreements; //!< agreements |
e33cd795e21a
wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
12676
diff
changeset
|
946 |
typedef std::map<AgreementKey, AgreementValue>::iterator AgreementsI; //!< agreements iterator |
5956
e9918be47f78
MacLow now buffers QoS MPDUs under Block Ack
Mirko Banchi <mk.banchi@gmail.com>
parents:
5955
diff
changeset
|
947 |
|
12691
e33cd795e21a
wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
12676
diff
changeset
|
948 |
typedef std::map<AgreementKey, BlockAckCache> BlockAckCaches; //!< block ack caches typedef |
e33cd795e21a
wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
12676
diff
changeset
|
949 |
typedef std::map<AgreementKey, BlockAckCache>::iterator BlockAckCachesI; //!< block ack caches iterator typedef |
6674
52f8688d6d01
Bug 978: Run check-style.py on files touched in the reorganisation
Dean Armstrong <deanarm@gmail.com>
parents:
6673
diff
changeset
|
950 |
|
12691
e33cd795e21a
wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
12676
diff
changeset
|
951 |
Agreements m_bAckAgreements; //!< block ack agreements |
e33cd795e21a
wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
12676
diff
changeset
|
952 |
BlockAckCaches m_bAckCaches; //!< block ack caches |
6595
3289a9d91620
run check-style on mac-low.h/cc
Mirko Banchi <mk.banchi@gmail.com>
parents:
6331
diff
changeset
|
953 |
|
13557
1d9389d67836
wifi: Add support for 802.11 PCF
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
13532
diff
changeset
|
954 |
typedef std::map<AcIndex, Ptr<QosTxop> > QueueEdcas; //!< EDCA queues typedef |
12691
e33cd795e21a
wifi: Doxygen updates for model files (thanks to Robert Ammon)
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
12676
diff
changeset
|
955 |
QueueEdcas m_edca; //!< EDCA queues |
12512
844a94b3ee97
wifi: (fixes #2577) Handle A-MPDU with RTS enabled when multiple TOS are used
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
12509
diff
changeset
|
956 |
|
844a94b3ee97
wifi: (fixes #2577) Handle A-MPDU with RTS enabled when multiple TOS are used
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
12509
diff
changeset
|
957 |
bool m_ctsToSelfSupported; //!< Flag whether CTS-to-self is supported |
844a94b3ee97
wifi: (fixes #2577) Handle A-MPDU with RTS enabled when multiple TOS are used
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
12509
diff
changeset
|
958 |
Ptr<WifiMacQueue> m_aggregateQueue[8]; //!< Queues per TID used for MPDU aggregation |
844a94b3ee97
wifi: (fixes #2577) Handle A-MPDU with RTS enabled when multiple TOS are used
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
12509
diff
changeset
|
959 |
std::vector<Item> m_txPackets[8]; //!< Contain temporary items to be sent with the next A-MPDU transmission for a given TID, once RTS/CTS exchange has succeeded. |
844a94b3ee97
wifi: (fixes #2577) Handle A-MPDU with RTS enabled when multiple TOS are used
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
12509
diff
changeset
|
960 |
WifiTxVector m_currentTxVector; //!< TXVECTOR used for the current packet transmission |
13557
1d9389d67836
wifi: Add support for 802.11 PCF
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
13532
diff
changeset
|
961 |
|
1d9389d67836
wifi: Add support for 802.11 PCF
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
13532
diff
changeset
|
962 |
CfAckInfo m_cfAckInfo; //!< Info about piggyback ACKs used in PCF |
1922
dd18bc29fc3c
add MacLow to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
963 |
}; |
dd18bc29fc3c
add MacLow to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
964 |
|
11450
9f4ae69f12b7
cleanup wifi module
Sébastien Deronne <sebastien.deronne@gmail.com>
parents:
11432
diff
changeset
|
965 |
} //namespace ns3 |
1922
dd18bc29fc3c
add MacLow to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
966 |
|
dd18bc29fc3c
add MacLow to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
967 |
#endif /* MAC_LOW_H */ |