Commit Graph

15856 Commits

Author SHA1 Message Date
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
Alexander Krotov
ae87cd35f9 network: Move empty zero area to the end of buffer if needed
If the first buffer has empty zero area, it can
be moved to the end of the buffer and concatenated to the
zero area of the added buffer instead of falling back
to the slow path.
2021-09-13 10:29:49 -07:00
Tom Henderson
310052adab tcp: Add logging to tcp-validation example 2021-09-13 09:23:57 -07:00
Aditya Chirania
3eecf5162c tcp: (fixes #407) Align TcpCubic::GetSsThresh() with Linux 2021-09-13 09:12:52 +05:30
Tommaso Pecorella
7cd03652e1 flow-monitor: Fix time parsing in flowmon-parse-results.py 2021-09-12 16:19:14 +00:00
Tom Henderson
4b2f77e114 wifi: Fix trace source documentation strings 2021-09-10 17:26:07 -07:00
Tommaso Pecorella
65b1e59ccf applications: (fixes #449, #453) add correct receiving address to PacketSink traces for UDP. 2021-09-10 18:09:50 +00:00
Tom Henderson
11e5476566 bindings: Remove stale file
This file predates the modular Python bindings code and is no longer used.
2021-09-09 17:44:26 -07:00
Gabriel Ferreira
bc42c61530 network: simplify CheckNoZero 2021-09-09 16:46:34 -07:00
Tom Henderson
9b1d79dc51 nix-vector-routing: Update copyright information 2021-09-09 14:39:40 -07:00
Szymon Szott
f9cb9342ce Update wifi-spectrum-saturation-example.cc -- fix description of default distance value (from 50 to 1 m) to conform to the code 2021-09-08 15:03:40 +00:00