Commit Graph

12841 Commits

Author SHA1 Message Date
Stefano Avallone
dae6bbca5b wifi: Iterators to queued items are not exposed by WifiMacQueueItem 2021-10-19 20:10:25 +02:00
Stefano Avallone
b8bc106706 wifi: Remove unused global empty wifi MAC queue 2021-10-19 20:10:25 +02:00
Stefano Avallone
882a746500 wifi: Replace iterators with pointers to queued items in public APIs 2021-10-19 20:10:22 +02:00
Stefano Avallone
cf2ccdc041 wifi: Add WifiMacQueue methods to manipulate queued items
Also, remove unused Remove overload.
2021-10-19 20:07:27 +02:00
Stefano Avallone
c35945ebf2 wifi: Install (Qos)Txop objects appropriately 2021-10-13 17:40:31 +02:00
Stefano Avallone
8e1c5525ab wifi: RegularWifiMac::QosSupported attribute must be properly set
We don't override it later (when setting the standard) anymore
2021-10-13 16:07:56 +02:00
Ameya Deshpande
f25866e922 nix-vector-routing: (fixes #466) Handle loopback IPv4/6 addresses
- Add the condition for handling loopback addresses in `RouteOutput ()`.
- Add about this change in "Scope and Limitations" of Nix documentation.

Signed-off-by: Ameya Deshpande <ameyanrd@outlook.com>
2021-10-12 15:13:13 +00:00
Stefano Avallone
dcf022ad8b wifi: (fixes #468) Compute correct size of MU-BAR Trigger Frames 2021-10-12 09:56:50 +02:00
Stefano Avallone
dba8375e18 wifi: (fixes #467) AP only records association failed when AssocResp is discarded 2021-10-11 17:44:53 +02:00
Ameya Deshpande
1f894ae7eb nix-vector-routing: Remove the unused BuildNixVectorLocal () function
This commit removes the dead function `BuildNixVectorLocal ()`.
This issue is discussed in #466.

Signed-off-by: Ameya Deshpande <ameyanrd@outlook.com>
2021-10-11 09:32:02 +00:00
Tommaso Pecorella
b7ddd9d3f5 internet: Align RIPng and RIP implementations 2021-10-10 00:54:21 +02:00
Tommaso Pecorella
db1fa07947 internet: Fix RIPng address selection for intermediate nodes 2021-10-10 00:09:49 +02:00
Tommaso Pecorella
ed8d74879a internet: Fix src address selection for localhost 2021-10-10 00:09:00 +02:00
Tommaso Pecorella
24f73cc470 internet: fix icmpv6 test 2021-10-06 23:04:57 +00:00
Stefano Avallone
96fdc81c68 wifi: Mark an MPDU as acknowledged before removing it from the in-flight queue
This avoids a crash in the event that an MPDU sent in an S-MPDU under
a Block Ack agreement is acknowledged after its lifetime expired.
2021-10-06 17:16:22 +02:00
Sébastien Deronne
a34c01091c wifi: Fix includes in YansErrorRateModel 2021-10-04 21:43:02 +02:00
Aditya Chirania
b5dee14b24 tcp: Update ns3-tcp-loss test artifacts for previous commit 2021-09-29 14:09:01 -07:00
Gauri Prasad
235732f6af tcp: (fixes #410) Fix TCP Westwood bandwidth estimation bug 2021-09-29 14:06:47 -07:00
Bhaskar Kataria
9844819d88 traffic-control: (from !706) Fix FqPIE qdisc not using attributes 2021-09-29 13:58:29 -07:00
Tom Henderson
28886a3a25 traffic-control: (fixes #258) Avoid overflow, divide-by-zero in TbfQueueDisc
Thanks to Tianfan Zhang for finding the bug and starting a patch to fix.
2021-09-27 14:35:16 -07:00
Tom Henderson
4e9afa965d bindings: Rescan all APIs 2021-09-27 11:18:37 -07:00
Sébastien Deronne
017a08c44f wifi: Cleanup some remaining references to MacLow 2021-09-26 21:42:24 +00:00
Gabriel Ferreira
5c13e6014e wifi: remove unnecessary GetSifs calls 2021-09-26 20:46:44 +00:00
Sébastien Deronne
946472f0ca wifi: Add support for 4096-QAM in YansErrorRateModel 2021-09-26 17:26:09 +00:00
Sébastien Deronne
924860e9e3 wifi: Some more PHY rework to support amendments beyond 802.11ax 2021-09-26 17:26:09 +00:00
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
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
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