Commit Graph

15866 Commits

Author SHA1 Message Date
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
97c888cd55 wifi: Add a RegularWifiMac method to return a specified MAC queue 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
c0b2eb808f Update RELEASE_NOTES and CHANGES.html 2021-09-26 17:06:27 +00:00
Stefano Avallone
382a2aa3f6 wifi: Trace dropped QoS old packets 2021-09-26 17:06:27 +00:00
Stefano Avallone
d9c1111ef1 wifi: Cleanup unused code 2021-09-26 17:06:27 +00:00
Stefano Avallone
8b354fe29c wifi: Keep MPDUs in the queue until acknowledged (with BA agreement) 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
1259d04200 wifi: Add in-flight attribute to MPDUs 2021-09-26 17:06:27 +00:00
Stefano Avallone
da4c36ef9a wifi: Keep MPDUs in the queue until acknowledged (if no BA agreement) 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
Alexander Krotov
d8fe6bac00 core: (merges !623) Print available values on EnumChecker::GetValue () error 2021-09-25 12:42:23 -07:00
Philip Hönnecke
52fa7235b2 energy: (fixes #423) SimpleDeviceEnergyModel calculation of consumed energy 2021-09-25 12:28:58 -07:00
Ameya Deshpande
cab3d4b9f5 nix-vector-routing: Rescan the Python Bindings
Signed-off-by: Ameya Deshpande <ameyanrd@outlook.com>
2021-09-24 10:15:33 +00:00
Ameya Deshpande
3eb345b325 nix-vector-routing: Remove template specialization functions, use if constexpr instead
The specialized functions were kept for better code readability
and only had a few code differences (Otherwise the prior `RunIf`
would have worked but the code would have looked complex).

Using `if constexpr` makes code less redundant and easier to
read as the common code is grouped now.

Signed-off-by: Ameya Deshpande <ameyanrd@outlook.com>
2021-09-24 10:15:33 +00:00
Ameya Deshpande
9d74ef5a11 nix-vector-routing: Add check for remote link-local address in subnet-matching
Signed-off-by: Ameya Deshpande <ameyanrd@outlook.com>
2021-09-24 10:15:33 +00:00
Ameya Deshpande
9876391c6d nix-vector-routing: Use if constexpr () instead of RunIf
Since ns-3 supports C++17 constructs now, we can make use
of `if constexpr` as it evaluates the condition inside it
only for that instantiation (distinction happens at compile
time itself).

Signed-off-by: Ameya Deshpande <ameyanrd@outlook.com>
2021-09-24 10:15:33 +00:00
Ameya Deshpande
5f4063d133 nix-vector-routing: Add unorderd_map Ptr<NetDevice> to Ptr<IpInterface>
This change improves the performance of Nix in bigger topologies as
it uses the `unordered_map` which has better performance than
`GetObject<Ip> ()` as it reads through the list.

This `unordered_map` will be created along with `IpAddress` to `Ptr<Node>`
`unordered_map`. Since it is a static member, it will be only time over
all the `NixVectorRouting` instances.

Signed-off-by: Ameya Deshpande <ameyanrd@outlook.com>
2021-09-24 10:15:33 +00:00
Gabriel Ferreira
00d79868c1 lte: (merges !703) Fix global-buffer-overflow when nprb is equal to zero 2021-09-23 11:52:31 -07:00
Tom Henderson
ab476ddcde documentation: Add quick start section to ns-3 tutorial 2021-09-22 13:45:39 -07:00
Sébastien Deronne
ccf15ffa4a wifi: Fix typo 2021-09-22 19:21:29 +02:00
Tom Henderson
66314e991d buildings: Add script to animate the random walk 2021-09-18 13:53:38 -07:00
Tom Henderson
8620df1da7 applications: Allow InetSocketAddress types to be logged 2021-09-18 11:26:26 -07:00
Tom Henderson
d8ed317f2d network: Fix Doxygen error 2021-09-18 11:21:15 -07:00
Tom Henderson
2301cdfc09 buildings: Update documentation for group mobility changes 2021-09-18 11:19:51 -07:00
Tom Henderson
997f6969ac buildings: Instrument tests to run group mobility examples 2021-09-18 11:18:48 -07:00
Tom Henderson
8fcf79b3ae buildings: Add group mobility example and animation script 2021-09-18 11:18:48 -07:00
Tom Henderson
ccb37f7717 mobility: Update documentation for group mobility changes 2021-09-18 11:18:48 -07:00
Tom Henderson
0fc72ad7ad mobility: Instrument tests to run group mobility examples 2021-09-18 11:17:50 -07:00
Tom Henderson
571d8aab16 mobility: Update reference-point-group-mobility-example.cc for helper 2021-09-18 11:17:50 -07:00
Tom Henderson
736e5950fc mobility: Add GroupMobilityHelper class 2021-09-18 11:17:50 -07:00
Tom Henderson
4fb672de9f mobility: Add Reference Point Group Mobility (RPGM) example and script 2021-09-18 11:17:50 -07:00
Tom Henderson
2422b35238 mobility: Add logging and stream assignment to HierarchicalMobilityModel 2021-09-18 11:17:50 -07:00
Tom Henderson
a2cddc8da0 mobility: Expose child mobility model to parent position 2021-09-18 11:17:50 -07:00
Tom Henderson
4ca947a477 mobility: Initialize HierarchicalMobilityModel 2021-09-18 11:17:50 -07:00
Tom Henderson
53de766827 mobility: Fix Doxygen on MobilityHelper 2021-09-18 11:17:50 -07:00
Tom Henderson
9b3b23f4f0 mobility: Avoid course change stream corruption
For hierarchical mobility models, calling GetPosition () can trigger
another course change, causing it to be written into the course change
currently being written.  This can be avoided by calling GetPosition() first.
2021-09-18 11:17:50 -07:00
Gabriel Ferreira
70b0e87c69 Include missing header and forward declaration 2021-09-18 14:30:49 +00:00
Stefano Avallone
7cf16bf162 wifi: Update documentation 2021-09-17 10:35:21 +02:00
Stefano Avallone
3805195c08 wifi: Extend MAC OFDMA test to check MU EDCA operations 2021-09-17 10:35:14 +02:00
Stefano Avallone
015719dfcd wifi: Use access parameters from MU EDCA Parameter Set when needed 2021-09-16 23:20:41 +02:00
Stefano Avallone
25dc12a8e4 wifi: Add support for exchanging MU EDCA Parameter Set elements 2021-09-16 23:20:41 +02:00
Stefano Avallone
dbf4160e1a wifi: Add attributes to HeConfiguration to set MU EDCA Parameter Set elements 2021-09-16 23:20:41 +02:00
Stefano Avallone
4e8684c480 wifi: Implement the MU EDCA Parameter Set element 2021-09-16 23:20:35 +02:00
Peter D. Barnes, Jr
7c48447ffa core: Add hashing functor for creating hash of a Ptr 2021-09-15 22:01:48 +02:00
Stefano Avallone
8cfe1b5e2e wifi: Make use of std::optional in HT FEM 2021-09-14 16:43:29 +02:00
Stefano Avallone
289e5aa4ed Switch to C++17 standard by default 2021-09-14 16:43:01 +02:00
Stefano Avallone
40b1edc404 wifi: Fix issue introduced by dba025fe 2021-09-14 14:18:02 +02:00
Stefano Avallone
dba025fe6f wifi: Do not fire PHY trace sources if no callback is connected
Preparing the parameters to pass to the operator() of such trace sources
is quite expensive because it normally involves the creation of packets.
2021-09-14 12:06:28 +00:00