author | Mirko Banchi <mk.banchi@gmail.com> |
Wed, 03 Feb 2010 20:34:53 +0100 | |
changeset 5964 | 8a59a619c30e |
parent 5906 | 509b5089a081 |
child 6068 | a2127017ecb4 |
permissions | -rw-r--r-- |
1929
437bba482899
add DcaTxop to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
1 |
/* -*- Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */ |
437bba482899
add DcaTxop to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
2 |
/* |
437bba482899
add DcaTxop to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
3 |
* Copyright (c) 2005 INRIA |
437bba482899
add DcaTxop to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
4 |
* |
437bba482899
add DcaTxop to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
5 |
* This program is free software; you can redistribute it and/or modify |
437bba482899
add DcaTxop to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
6 |
* it under the terms of the GNU General Public License version 2 as |
437bba482899
add DcaTxop to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
7 |
* published by the Free Software Foundation; |
437bba482899
add DcaTxop to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
8 |
* |
437bba482899
add DcaTxop to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
9 |
* This program is distributed in the hope that it will be useful, |
437bba482899
add DcaTxop to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
10 |
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
437bba482899
add DcaTxop to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
11 |
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
437bba482899
add DcaTxop to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
12 |
* GNU General Public License for more details. |
437bba482899
add DcaTxop to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
13 |
* |
437bba482899
add DcaTxop to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
14 |
* You should have received a copy of the GNU General Public License |
437bba482899
add DcaTxop to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
15 |
* along with this program; if not, write to the Free Software |
437bba482899
add DcaTxop to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
16 |
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
437bba482899
add DcaTxop to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
17 |
* |
437bba482899
add DcaTxop to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
18 |
* Author: Mathieu Lacage <mathieu.lacage@sophia.inria.fr> |
437bba482899
add DcaTxop to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
19 |
*/ |
437bba482899
add DcaTxop to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
20 |
|
437bba482899
add DcaTxop to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
21 |
#ifndef DCA_TXOP_H |
437bba482899
add DcaTxop to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
22 |
#define DCA_TXOP_H |
437bba482899
add DcaTxop to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
23 |
|
437bba482899
add DcaTxop to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
24 |
#include <stdint.h> |
437bba482899
add DcaTxop to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
25 |
#include "ns3/callback.h" |
437bba482899
add DcaTxop to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
26 |
#include "ns3/packet.h" |
437bba482899
add DcaTxop to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
27 |
#include "ns3/nstime.h" |
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:
2349
diff
changeset
|
28 |
#include "ns3/object.h" |
1929
437bba482899
add DcaTxop to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
29 |
#include "wifi-mac-header.h" |
437bba482899
add DcaTxop to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
30 |
#include "wifi-mode.h" |
2524
db72c0e7743e
port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
2508
diff
changeset
|
31 |
#include "wifi-remote-station-manager.h" |
4720
15221757964f
bug 641: CwMin setting for 802.11b
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
4462
diff
changeset
|
32 |
#include "dcf.h" |
1929
437bba482899
add DcaTxop to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
33 |
|
437bba482899
add DcaTxop to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
34 |
namespace ns3 { |
437bba482899
add DcaTxop to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
35 |
|
2146
40ad60ac9912
replace Dcf with DcfManager
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
2091
diff
changeset
|
36 |
class DcfState; |
40ad60ac9912
replace Dcf with DcfManager
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
2091
diff
changeset
|
37 |
class DcfManager; |
1929
437bba482899
add DcaTxop to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
38 |
class WifiMacQueue; |
437bba482899
add DcaTxop to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
39 |
class MacLow; |
2508
18b690d1e74b
MacParameters -> WifiMacParameters
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
2350
diff
changeset
|
40 |
class WifiMacParameters; |
1929
437bba482899
add DcaTxop to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
41 |
class MacTxMiddle; |
2146
40ad60ac9912
replace Dcf with DcfManager
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
2091
diff
changeset
|
42 |
class RandomStream; |
2349
b1df486516a4
allow rate control algorithms to control more per-packet parameters.
Federico Maguolo <maguolof@dei.unipd.it>
parents:
2289
diff
changeset
|
43 |
class MacStation; |
2268
0e57ac711220
introduce a low latency parameter for rate control algorithms
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
2159
diff
changeset
|
44 |
class MacStations; |
1929
437bba482899
add DcaTxop to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
45 |
|
2059 | 46 |
/** |
47 |
* \brief handle packet fragmentation and retransmissions. |
|
48 |
* |
|
49 |
* This class implements the packet fragmentation and |
|
2146
40ad60ac9912
replace Dcf with DcfManager
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
2091
diff
changeset
|
50 |
* retransmission policy. It uses the ns3::MacLow and ns3::DcfManager |
2059 | 51 |
* helper classes to respectively send packets and decide when |
52 |
* to send them. Packets are stored in a ns3::WifiMacQueue until |
|
53 |
* they can be sent. |
|
54 |
* |
|
55 |
* The policy currently implemented uses a simple fragmentation |
|
56 |
* threshold: any packet bigger than this threshold is fragmented |
|
57 |
* in fragments whose size is smaller than the threshold. |
|
58 |
* |
|
59 |
* The retransmission policy is also very simple: every packet is |
|
60 |
* retransmitted until it is either successfully transmitted or |
|
61 |
* it has been retransmitted up until the ssrc or slrc thresholds. |
|
62 |
* |
|
63 |
* The rts/cts policy is similar to the fragmentation policy: when |
|
64 |
* a packet is bigger than a threshold, the rts/cts protocol is used. |
|
65 |
*/ |
|
4720
15221757964f
bug 641: CwMin setting for 802.11b
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
4462
diff
changeset
|
66 |
class DcaTxop : public Dcf |
1929
437bba482899
add DcaTxop to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
67 |
{ |
437bba482899
add DcaTxop to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
68 |
public: |
2524
db72c0e7743e
port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
2508
diff
changeset
|
69 |
static TypeId GetTypeId (void); |
db72c0e7743e
port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
2508
diff
changeset
|
70 |
|
4462
67b55159dd9e
const cleanup
Timo Bingmann <timo.bingmann@student.kit.edu>
parents:
4405
diff
changeset
|
71 |
typedef Callback <void, const WifiMacHeader&> TxOk; |
67b55159dd9e
const cleanup
Timo Bingmann <timo.bingmann@student.kit.edu>
parents:
4405
diff
changeset
|
72 |
typedef Callback <void, const WifiMacHeader&> TxFailed; |
1929
437bba482899
add DcaTxop to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
73 |
|
2524
db72c0e7743e
port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
2508
diff
changeset
|
74 |
DcaTxop (); |
1929
437bba482899
add DcaTxop to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
75 |
~DcaTxop (); |
437bba482899
add DcaTxop to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
76 |
|
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:
2349
diff
changeset
|
77 |
void SetLow (Ptr<MacLow> low); |
2524
db72c0e7743e
port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
2508
diff
changeset
|
78 |
void SetManager (DcfManager *manager); |
db72c0e7743e
port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
2508
diff
changeset
|
79 |
void SetWifiRemoteStationManager (Ptr<WifiRemoteStationManager> remoteManager); |
db72c0e7743e
port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
2508
diff
changeset
|
80 |
|
2059 | 81 |
/** |
82 |
* \param callback the callback to invoke when a |
|
83 |
* packet transmission was completed successfully. |
|
84 |
*/ |
|
1929
437bba482899
add DcaTxop to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
85 |
void SetTxOkCallback (TxOk callback); |
2059 | 86 |
/** |
87 |
* \param callback the callback to invoke when a |
|
88 |
* packet transmission was completed unsuccessfully. |
|
89 |
*/ |
|
1929
437bba482899
add DcaTxop to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
90 |
void SetTxFailedCallback (TxFailed callback); |
437bba482899
add DcaTxop to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
91 |
|
437bba482899
add DcaTxop to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
92 |
void SetMaxQueueSize (uint32_t size); |
437bba482899
add DcaTxop to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
93 |
void SetMaxQueueDelay (Time delay); |
4720
15221757964f
bug 641: CwMin setting for 802.11b
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
4462
diff
changeset
|
94 |
virtual void SetMinCw (uint32_t minCw); |
15221757964f
bug 641: CwMin setting for 802.11b
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
4462
diff
changeset
|
95 |
virtual void SetMaxCw (uint32_t maxCw); |
15221757964f
bug 641: CwMin setting for 802.11b
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
4462
diff
changeset
|
96 |
virtual void SetAifsn (uint32_t aifsn); |
15221757964f
bug 641: CwMin setting for 802.11b
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
4462
diff
changeset
|
97 |
virtual uint32_t GetMinCw (void) const; |
15221757964f
bug 641: CwMin setting for 802.11b
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
4462
diff
changeset
|
98 |
virtual uint32_t GetMaxCw (void) const; |
15221757964f
bug 641: CwMin setting for 802.11b
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
4462
diff
changeset
|
99 |
virtual uint32_t GetAifsn (void) const; |
1929
437bba482899
add DcaTxop to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
100 |
|
2059 | 101 |
/** |
102 |
* \param packet packet to send |
|
103 |
* \param hdr header of packet to send. |
|
104 |
* |
|
105 |
* Store the packet in the internal queue until it |
|
106 |
* can be sent safely. |
|
107 |
*/ |
|
4462
67b55159dd9e
const cleanup
Timo Bingmann <timo.bingmann@student.kit.edu>
parents:
4405
diff
changeset
|
108 |
void Queue (Ptr<const Packet> packet, const WifiMacHeader &hdr); |
2146
40ad60ac9912
replace Dcf with DcfManager
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
2091
diff
changeset
|
109 |
|
1929
437bba482899
add DcaTxop to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
110 |
private: |
437bba482899
add DcaTxop to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
111 |
class TransmissionListener; |
437bba482899
add DcaTxop to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
112 |
class NavListener; |
437bba482899
add DcaTxop to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
113 |
class PhyListener; |
2146
40ad60ac9912
replace Dcf with DcfManager
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
2091
diff
changeset
|
114 |
class Dcf; |
40ad60ac9912
replace Dcf with DcfManager
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
2091
diff
changeset
|
115 |
friend class Dcf; |
1929
437bba482899
add DcaTxop to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
116 |
friend class TransmissionListener; |
2784
49006cbbfac7
GetMaxSsrc -> NeedRtsTransmission and GetMaxSlrc -> NeedDataRetransmission
Federico Maguolo <maguolof@dei.unipd.it>
parents:
2530
diff
changeset
|
117 |
friend class WifiRemoteStation; |
1929
437bba482899
add DcaTxop to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
118 |
|
4405
938c96b15fa7
mark copy constructor and assignment operator as private to avoid exporting wifi-mac-queue.h for python bindings
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
3745
diff
changeset
|
119 |
DcaTxop &operator = (const DcaTxop &); |
938c96b15fa7
mark copy constructor and assignment operator as private to avoid exporting wifi-mac-queue.h for python bindings
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
3745
diff
changeset
|
120 |
DcaTxop (const DcaTxop &o); |
938c96b15fa7
mark copy constructor and assignment operator as private to avoid exporting wifi-mac-queue.h for python bindings
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
3745
diff
changeset
|
121 |
|
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:
2349
diff
changeset
|
122 |
// Inherited from ns3::Object |
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:
2349
diff
changeset
|
123 |
Ptr<MacLow> Low (void); |
5906
509b5089a081
Revert bug 706 fix because it breaks the regression testing
Faker Moatamri <faker.moatamri@sophia.inria.fr>
parents:
5903
diff
changeset
|
124 |
|
2146
40ad60ac9912
replace Dcf with DcfManager
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
2091
diff
changeset
|
125 |
/* dcf notifications forwarded here */ |
40ad60ac9912
replace Dcf with DcfManager
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
2091
diff
changeset
|
126 |
bool NeedsAccess (void) const; |
40ad60ac9912
replace Dcf with DcfManager
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
2091
diff
changeset
|
127 |
void NotifyAccessGranted (void); |
40ad60ac9912
replace Dcf with DcfManager
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
2091
diff
changeset
|
128 |
void NotifyInternalCollision (void); |
40ad60ac9912
replace Dcf with DcfManager
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
2091
diff
changeset
|
129 |
void NotifyCollision (void); |
5192 | 130 |
/** |
131 |
* When a channel switching occurs, enqueued packets are removed. |
|
132 |
*/ |
|
5189 | 133 |
void NotifyChannelSwitching (void); |
1929
437bba482899
add DcaTxop to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
134 |
/* event handlers */ |
437bba482899
add DcaTxop to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
135 |
void GotCts (double snr, WifiMode txMode); |
437bba482899
add DcaTxop to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
136 |
void MissedCts (void); |
437bba482899
add DcaTxop to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
137 |
void GotAck (double snr, WifiMode txMode); |
437bba482899
add DcaTxop to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
138 |
void MissedAck (void); |
437bba482899
add DcaTxop to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
139 |
void StartNext (void); |
2091
9ef23a8f0980
handle cancel events
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
2059
diff
changeset
|
140 |
void Cancel (void); |
1929
437bba482899
add DcaTxop to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
141 |
|
2146
40ad60ac9912
replace Dcf with DcfManager
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
2091
diff
changeset
|
142 |
void RestartAccessIfNeeded (void); |
40ad60ac9912
replace Dcf with DcfManager
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
2091
diff
changeset
|
143 |
void StartAccessIfNeeded (void); |
5900
c4b8a337fc29
bug 725: wifi fragmentation and RTS cannot be used at the same time
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
5192
diff
changeset
|
144 |
bool NeedRts (Ptr<const Packet> packet); |
2784
49006cbbfac7
GetMaxSsrc -> NeedRtsTransmission and GetMaxSlrc -> NeedDataRetransmission
Federico Maguolo <maguolof@dei.unipd.it>
parents:
2530
diff
changeset
|
145 |
bool NeedRtsRetransmission (void); |
49006cbbfac7
GetMaxSsrc -> NeedRtsTransmission and GetMaxSlrc -> NeedDataRetransmission
Federico Maguolo <maguolof@dei.unipd.it>
parents:
2530
diff
changeset
|
146 |
bool NeedDataRetransmission (void); |
1929
437bba482899
add DcaTxop to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
147 |
bool NeedFragmentation (void); |
437bba482899
add DcaTxop to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
148 |
uint32_t GetNextFragmentSize (void); |
437bba482899
add DcaTxop to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
149 |
uint32_t GetFragmentSize (void); |
3745
73e7bb607014
bug 372: fragmentation is broken
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
2784
diff
changeset
|
150 |
uint32_t GetFragmentOffset (void); |
2524
db72c0e7743e
port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
2508
diff
changeset
|
151 |
WifiRemoteStation *GetStation (Mac48Address to) const; |
1929
437bba482899
add DcaTxop to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
152 |
bool IsLastFragment (void); |
437bba482899
add DcaTxop to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
153 |
void NextFragment (void); |
2159
20f882e85b4a
port to Ptr<Packet> branch
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
2146
diff
changeset
|
154 |
Ptr<Packet> GetFragmentPacket (WifiMacHeader *hdr); |
2530
05f9cec44621
avoid memory leaks
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
2524
diff
changeset
|
155 |
virtual void DoDispose (void); |
1929
437bba482899
add DcaTxop to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
156 |
|
437bba482899
add DcaTxop to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
157 |
Dcf *m_dcf; |
2146
40ad60ac9912
replace Dcf with DcfManager
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
2091
diff
changeset
|
158 |
DcfManager *m_manager; |
1929
437bba482899
add DcaTxop to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
159 |
TxOk m_txOkCallback; |
437bba482899
add DcaTxop to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
160 |
TxFailed m_txFailedCallback; |
2524
db72c0e7743e
port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
2508
diff
changeset
|
161 |
Ptr<WifiMacQueue> m_queue; |
1929
437bba482899
add DcaTxop to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
162 |
MacTxMiddle *m_txMiddle; |
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:
2349
diff
changeset
|
163 |
Ptr <MacLow> m_low; |
2524
db72c0e7743e
port wifi model to Attributes
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
2508
diff
changeset
|
164 |
Ptr<WifiRemoteStationManager> m_stationManager; |
1929
437bba482899
add DcaTxop to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
165 |
TransmissionListener *m_transmissionListener; |
2146
40ad60ac9912
replace Dcf with DcfManager
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
2091
diff
changeset
|
166 |
RandomStream *m_rng; |
1929
437bba482899
add DcaTxop to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
167 |
|
437bba482899
add DcaTxop to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
168 |
|
2146
40ad60ac9912
replace Dcf with DcfManager
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
2091
diff
changeset
|
169 |
bool m_accessOngoing; |
2159
20f882e85b4a
port to Ptr<Packet> branch
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
2146
diff
changeset
|
170 |
Ptr<const Packet> m_currentPacket; |
1929
437bba482899
add DcaTxop to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
171 |
WifiMacHeader m_currentHdr; |
437bba482899
add DcaTxop to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
172 |
uint8_t m_fragmentNumber; |
437bba482899
add DcaTxop to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
173 |
}; |
437bba482899
add DcaTxop to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
174 |
|
437bba482899
add DcaTxop to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
175 |
} //namespace ns3 |
437bba482899
add DcaTxop to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
176 |
|
437bba482899
add DcaTxop to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
177 |
|
437bba482899
add DcaTxop to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
178 |
|
437bba482899
add DcaTxop to build
Mathieu Lacage <mathieu.lacage@sophia.inria.fr>
parents:
diff
changeset
|
179 |
#endif /* DCA_TXOP_H */ |