Stefano Avallone
62542e5fb9
wifi: WifiMacQueueItem does not keep a pointer to the queue it is stored into
...
Instead, it keeps the AC index associated with the queue it is stored into
2021-09-26 17:06:27 +00:00
Stefano Avallone
39947f3cac
wifi: Propagate AC index down to WifiMacQueue through Txop
2021-09-26 17:06:27 +00:00
Stefano Avallone
d04a17af6f
wifi: Make WifiMacQueue::TtlExceeded public
...
so that other components can easily remove MPDUs with expired
lifetime and fire the Expired trace source.
2021-09-26 17:06:27 +00:00
Stefano Avallone
edcd9a6909
wifi: Cleanup WifiMacQueue
...
1. MPDUs with expired lifetime are already discarded:
- when a QosTxop releases/requests the channel
- when we check if there are pending BlockAckReq frames
hence, it is useless (and sometimes troublesome) to check
for MPDUs with expired lifetime at every packet dequeue
2. Dequeue{ByTid, ByAddress, ...} were not used and hence
removed (one can use a Peek* method and then Dequeue())
3. Given that a WifiMacQueueItem stores an iterator, add a
Dequeue method (the only one in addition to the default one)
that receives a WifiMacQueueItem and dequeues it in constant time
2021-09-26 17:06:27 +00:00
Stefano Avallone
6bce3d9916
wifi: Replace aggregated MSDUs with the A-MSDU upon aggregation
...
So far, when A-MSDU aggregation is performed, MPDUs containing the
constituent MSDUs are kept in the queue until the MPDU containing
the A-MSDU (which is kept out of the queue) is transmitted.
Now, as soon as A-MSDU aggregation is performed, MPDUs containing
the constituent MSDUs are dequeued and the MPDU containing the
A-MSDU is enqueued in their place.
2021-09-26 17:06:27 +00:00
Gabriel Ferreira
9617bd2e4d
wifi: reuse Simulator::Now in WifiMacQueue
2021-08-18 14:39:45 +00:00
Sébastien Deronne
c5a0f35503
wifi: Do not log each time WifiMacQueue::TtlExceeded is entered
2021-07-05 21:02:59 +02:00
Rediet
2cd288b24d
wifi: fix other doxygen warnings in src/wifi/model
...
3 warnings remaining with templated WifiTxTimer::FeedTraceSource
2021-05-25 17:11:06 +02:00
Stefano Avallone
597b78aaee
wifi: Add per-(address,tid) statistics to WifiMacQueue
...
that can be retrieved in constant time in the average case
2021-01-26 22:32:24 +01:00
Stefano Avallone
2bcf750347
wifi: A queued WifiMacQueueItem stores an iterator to itself
...
This allows us to dequeue packets only when they are actually
transmitted. For instance, a packet protected by RTS is dequeued
only if the CTS is received. This saves us from reinserting the
packets in the queue if CTS is missed (think of A-MPDUs, multi-TID
A-MPDUs, MU PPDUs, ...)
2021-01-20 12:27:16 +01:00
Alexander Krotov
fe561a82ca
wifi: fix iterator invalidation in WifiMacQueue::Insert
...
If pos == begin(), it may be invalidated before inserting if DROP_OLDEST
policy is used and queue is full.
Add fix for this case and a test for it.
2021-01-18 18:53:27 +03:00
Stefano Avallone
5a2dc723b6
wifi: Fix build with clang 10
2020-06-08 16:50:41 -07:00
Stefano Avallone
5fc00356cf
network: Move MaxSize attribute from QueueBase to derived classes
2020-03-02 16:34:44 +01:00
Stefano Avallone
99feb162fb
wifi: Add more methods to WifiMacQueue
...
- Insert/Dequeue/Remove from specific positions in the queue
- Peek methods are const and return a ConstIterator
- Added a trace for expired MPDUs
2019-05-11 18:47:14 +02:00
Stefano Avallone
dc074293d5
network: Rename Queue methods to allow range based for loops
2019-05-11 18:47:14 +02:00
Stefano Avallone
94cc4b70dd
wifi: Add methods to WifiMacQueue to peek and dequeue by TID
2019-05-11 18:47:14 +02:00
Stefano Avallone
b3e470c64f
traffic-control: Make NetDeviceQueueInterface independent of Queue
2018-12-03 11:04:49 +01:00
Sébastien Deronne
c0ce243760
wifi: Extend support of up to 256 MPDUs in A-MPDUs for 802.11ax
2018-11-27 20:44:41 +01:00
Alexander Krotov
ecfb37187b
wifi: Remove unused arguments from WifiMacQueue members
2018-07-26 12:06:36 +03:00
Alexander Krotov
7e1f2d3612
wifi: Remove unused ns3::WifiMacHeader::AddressType arguments
...
from WifiMacQueue::GetNPacketsByAddress and WifiMacQueue::GetNPacketsByTidAndAddress
2018-05-29 18:24:35 +03:00
Stefano Avallone
23c7939435
network: Remove deprecated Queue attributes
2018-05-24 23:35:46 +02:00
Sébastien Deronne
29ea252284
wifi: Add support for 802.11 PCF
2018-05-21 15:06:50 +02:00
Sébastien Deronne
5c09ddf105
wifi: Use forward declaration as often as possible (part 9)
2018-04-11 20:22:36 +02:00
Sébastien Deronne
48119eba2a
wifi: Cleanup WifiMacQueue
2018-04-01 11:10:39 +02:00
Sébastien Deronne
a91bad4d6a
wifi: Rework GetAddress to GetDestinationAddress in WifiMacQueueItem
2018-03-28 12:29:54 +02:00
Sébastien Deronne
fbd00cb4b5
wifi: Refactor WifiPhy and WifiPhyStateHelper to eliminate circular declaration of classes (based on Robert Ammon's patch)
2018-03-02 21:24:48 +01:00
Robert Ammon
ddd5d35908
wifi: Eliminate some Visual Studio compiler warnings
2018-02-18 17:44:16 +01:00
Sébastien Deronne
cd389fdf04
wifi: Cleanup enums
2018-02-17 00:10:33 +01:00
Stefano Avallone
524685f5df
wifi: Define WifiMacQueue as a subclass of Queue<WifiMacQueueItem>
2017-07-04 18:19:06 +02:00
Sébastien Deronne
a6574f3ce5
wifi: Make more use of smart pointers instead of normal pointers
2017-06-26 22:47:13 +02:00
Stefano Avallone
543da6092a
various: ( fixes #2668 ) Make template classes use NS_LOG_* macros
2017-06-06 11:18:07 +02:00
Stefano Avallone
3cab87c732
wifi: Avoid calling WifiMacQueue::GetNPackets whenever possible
2017-06-05 23:24:03 +02:00
Stefano Avallone
6dffcbb2fa
wifi: WifiMacQueue needs to override some QueueBase methods
2017-06-05 11:23:19 +02:00
Stefano Avallone
7644e59752
wifi: Prevent Peek() from returning a stale item
2017-05-07 20:07:56 +02:00
Stefano Avallone
d71e02e25b
wifi: Fix another valgrind issue
2017-04-04 10:33:50 +02:00
Stefano Avallone
bdc94e40b1
wifi: Make WifiMacQueue a subclass of Queue
2017-03-08 18:02:03 +01:00
Sébastien Deronne
241e80ca6d
wifi: Remove unnecessary includes
2016-11-27 20:59:04 +01:00
Sébastien Deronne
e71851491d
wifi: ( fixes #2551 ) Move preamble to TXVECTOR
2016-11-27 19:26:13 +01:00
Ali Rostami
3e34eb965a
wifi: ( fixes #2352 ) Add 'drop oldest' drop policy to WifiMacQueue (patch from Ali Rostami)
2016-03-31 10:08:49 -07:00
Alexander Krotov
1adf40e98f
wifi: ( fixes #2303 ) Cleanup wifi mac queue before returning its size
2016-02-23 00:28:42 +01:00
Sébastien Deronne
34ca3a8c0b
cleanup wifi module
2015-06-21 00:23:45 +02:00
Junling Bu
823d1b1642
Bug 1736 [wifi] - default dot11EDCATableMSDULifetime
2015-06-05 23:49:09 +02:00
Tom Henderson
3eebe47911
SetGroupName for wifi module
2015-03-27 11:28:59 -07:00
Ghada Badawy
3eaf58a12b
add MPDU aggregation (with contributions from Sebastien Deronne and Ioannis Selinis)
2015-01-28 10:11:32 -08:00
Peter D. Barnes, Jr.
cd3da7143d
[doxygen] Revert r10410, r10411, r10412
2014-03-05 17:06:59 -08:00
Peter D. Barnes, Jr.
d75ff3559e
doxygen] Suppress "warning: Member NS_OBJECT_ENSURE_REGISTERED is not documented"
2013-11-14 16:58:28 -08:00
Vedran Miletić
f781366d2e
Fix compilation with Clang 3.2 and newer versions, including Apple Clang 5.0
...
Clang 3.2 requires all class members to be used in the code; this patch either removes class members that are not used or adds NS_UNUSED/NS_UNUSED_GLOBAL around them. Thanks to Andrey Mazo and Tommaso Pecorella for review.
2013-10-20 12:46:27 +02:00
Vedran Miletić
71e380b55e
Bug 1237 - code cleanups related to includes
2012-09-01 20:57:21 +02:00
Vedran Miletić
fe0667def8
standardize emacs c++ mode comments
2011-08-02 17:42:33 -04:00
Nicola Baldo
d2165cf81a
run check-style.py on src/wifi
2011-05-07 21:49:46 +02:00