From dd8763657d5c358e2db484ba99301c09d09baf6f Mon Sep 17 00:00:00 2001 From: Tom Henderson Date: Thu, 27 Oct 2022 13:22:02 -0700 Subject: [PATCH] Update AUTHORS, CHANGES, and RELEASE_NOTES --- AUTHORS | 6 +++++ CHANGES.md | 62 +++++++++++++++++++++---------------------- RELEASE_NOTES.md | 69 ++++++++++++++++++++++++++---------------------- 3 files changed, 74 insertions(+), 63 deletions(-) diff --git a/AUTHORS b/AUTHORS index 2c68370b5..7c29fbcb7 100644 --- a/AUTHORS +++ b/AUTHORS @@ -68,6 +68,7 @@ Ankit Deepak (adadeepak8@gmail.com) Christophe Delahaye (christophe.delahaye@orange.com) Sébastien Deronne (sebastien.deronne@gmail.com) Ameya Deshpande (ameyanrd@outlook.com) +Zhiheng Dong (dzh2077@gmail.com) Christoph Döpmann (doepmanc@informatik.hu-berlin.de) Jordan Dorham (dorham1@llnl.gov) Craig Dowell (craigdo@ee.washington.edu) @@ -109,6 +110,7 @@ Frank Helbert (frank@ime.usp.br) Tom Henderson (tomhend@u.washington.edu) Christopher Hepner (hepner@hs-ulm.de) Budiarto Herman (budiarto.herman@magister.fi) +Heun (git-gmb.hpmta@simplelogin.com) Tom Hewer (tomhewer@mac.com) Kristian A. Hiorth (kristahi@ifi.uio.no) Hrishikesh Hiraskar (hrishihirakar@gmail.com) @@ -137,6 +139,7 @@ Ouassim Karrakchou (okarr102@uottawa.ca) Tanmay Kathpalia (tanmay.kathpalia@landisgyr.com) Konstantinos Katsaros (dinos.katsaros@gmail.com) Bhaskar Kataria (www.bhaskar.com7@gmail.com) +Nils Kattenbeck (nils.kattenbeck@rwth-aachen.de) Morteza Kheirkhah (m.kheirkhah@sussex.ac.uk) Jörg Christian Kirchhof (christian.kirchhof@rwth-aachen.de) Ohad Klausner @@ -187,6 +190,7 @@ Faker Moatamri (faker.moatamri@inria.fr) Edvin Močibob (edvin.mocibob@gmail.com) Amir Modarresi (amodarresi@ittc.ku.edu) Akash Mondal (a98mondal@gmail.com) +Lars Moons (lars.moons@student.uantwerpen.be) Mike Moreton (mjvm_ns@hotmail.com) Michele Muccio (michelemuccio@virgilio.it) Esteban Municio (esteban.municio@urjc.es) @@ -214,6 +218,7 @@ Jendaipou Palmei (jendaipoupalmei@gmail.com) Parth Pandya (parthpandyappp@gmail.com) Harsh Patel (thadodaharsh10@gmail.com) Natale Patriciello (natale.patriciello@gmail.com) +Pavinberg (pavin0702@gmail.com) Tommaso Pecorella (tommaso.pecorella@unifi.it) Guangyu Pei (guangyu.pei@boeing.com) Josh Pelkey (jpelkey@gatech.edu) @@ -293,6 +298,7 @@ Adrian S. W. Tam (adrian.sw.tam@gmail.com) Cristiano Tapparello (cristiano.tapparello@rochester.edu) Hajime Tazaki (tazaki@sfc.wide.ad.jp) Wilson Thong (wilsonwk@ee.cityu.edu.hk) +Lars Toenning (lars.toenning@gmail.com) Omer Topal (omer.topal@airties.com) Mauro Tortonesi (mauro.tortonesi@unife.it) Quincy Tse (quincy.tse@gmail.com) diff --git a/CHANGES.md b/CHANGES.md index 751dea018..044b398d0 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -18,39 +18,36 @@ Changes from ns-3.36 to ns-3.37 ### New API -* Added a new attribute **MaxTbPpduDelay** in HeConfiguration for configuring the maximum delay with which a TB PPDU can arrive at the AP after the first TB PPDU in order to be decoded properly. If the delay is higher than **MaxTbPpduDelay**, the TB PPDU is discarded and treated as interference. -* Added new methods (**ConfigHtOptions**, **ConfigVhtOptions**, **ConfigHeOptions** and **ConfigEhtOptions**) to `WifiHelper` to configure HT/VHT/HE/EHT options listed as attributes of the respective Configuration classes through the wifi helper. -* Added new attributes (**AccessReqInterval**, **AccessReqAc** and **DelayAccessReqUponAccess**) to the MultiUserScheduler to allow a wifi AP to coordinate UL MU transmissions even without DL traffic. -* `WifiNetDevice` has a new **Phys** attribute, which is primarily intended to select a specific PHY object of an 11be multi-link device when using path names. -* `Txop` class (wifi module) has new attributes (**MinCws**, **MaxCws**, **Aifsns** and **TxopLimits**) to set minimum CW, maximum CW, AIFSN and TXOP limit for all the links of a multi-link device. -* `WifiPhyListener::NotifyMaybeCcaBusyStart` has been renamed to `WifiPhyListener::NotifyCcaBusyStart` and has two additional parameters: the channel type that indicates for which subchannel the CCA-BUSY is reported and a vector of CCA-BUSY durations for each 20 MHz subchannel. A duration of zero indicates CCA is IDLE, and the vector of CCA-BUSY durations is not empty if the PHY supports 802.11ax and the operational channel width is larger than 20 MHz. -* Added a new attribute **CcaSensitivity** in WifiPhy for configuring the threshold that corresponds to the minimum received power of a PPDU, that occupies the primary channel, should have to report a CCA-BUSY indication. -* Added a new attribute **SecondaryCcaSensitivityThresholds** in VhtConfiguration for configuring the thresholds that corresponds to the minimum received power of a PPDU, that does not occupy the primary 20 MHz channel, should have to report a CCA-BUSY indication. This is made of a tuple, where the first threshold is used for 20 MHz PPDUs, the second one is used for 40 MHz PPDUs and the third one is used for 80 MHz PPDUs. -* In `src/internet`, several changes were made to enable auto-generated neighbor cache: +* (internet) In `src/internet`, several changes were made to enable auto-generated neighbor caches: * A new helper (NeighborCacheHelper) was added to set up auto-generated neighbor cache. * New NUD_STATE `STATIC_AUTOGENERATED` was added to help the user manage auto-generated entries in Arp cache and Ndisc cache. * Add new callbacks RemoveAddressCallback and AddAddressCallback to dynamically update neighbor cache during addresses are removed/added. * Add NeighborCacheTestSuite to test auto-generated neighbor cache. -* Added two new trace sources to `StaWifiMac`: **LinkSetupCompleted**, which is fired when a link is setup in the context of an 11be ML setup, and **LinkSetupCanceled**, which is fired when the setup of a link is terminated. Both sources provide the ID of the setup link and the MAC address of the corresponding AP. +* (lr-wpan) Adds support for **LrWpanMac** devices association. +* (lr-wpan) Adds support for **LrWpanMac** energy detection (ED) scan. +* (lr-wpan) Adds support for **LrWpanMac** active and passive scan. +* (lr-wpan) Adds support for channel paging to the **LrWpanPhy** (only placeholder, a single modulation/band is currently supported). +* (lr-wpan) Add **LrWpanMac** packet traces and queue limits to Tx queue and Ind Tx queue. +* (propagation) Add O2I Low/High Building Penetration Losses in 3GPP propagation loss model (`ThreeGppPropagationLossModel`) according to **3GPP TR 38.901 7.4.3.1**. Currently, UMa, UMi and RMa scenarios are supported. +* (wifi) Added a new attribute **MaxTbPpduDelay** in HeConfiguration for configuring the maximum delay with which a TB PPDU can arrive at the AP after the first TB PPDU in order to be decoded properly. If the delay is higher than **MaxTbPpduDelay**, the TB PPDU is discarded and treated as interference. +* (wifi) Added new methods (**ConfigHtOptions**, **ConfigVhtOptions**, **ConfigHeOptions** and **ConfigEhtOptions**) to `WifiHelper` to configure HT/VHT/HE/EHT options listed as attributes of the respective Configuration classes through the wifi helper. +* (wifi) Added new attributes (**AccessReqInterval**, **AccessReqAc** and **DelayAccessReqUponAccess**) to the MultiUserScheduler to allow a wifi AP to coordinate UL MU transmissions even without DL traffic. +* `(wifi) WifiNetDevice` has a new **Phys** attribute, which is primarily intended to select a specific PHY object of an 11be multi-link device when using path names. +* (wifi) `Txop` class has new attributes (**MinCws**, **MaxCws**, **Aifsns** and **TxopLimits**) to set minimum CW, maximum CW, AIFSN and TXOP limit for all the links of a multi-link device. +* (wifi) `WifiPhyListener::NotifyMaybeCcaBusyStart` has been renamed to `WifiPhyListener::NotifyCcaBusyStart` and has two additional parameters: the channel type that indicates for which subchannel the CCA-BUSY is reported and a vector of CCA-BUSY durations for each 20 MHz subchannel. A duration of zero indicates CCA is IDLE, and the vector of CCA-BUSY durations is not empty if the PHY supports 802.11ax and the operational channel width is larger than 20 MHz. +* (wifi) Added a new attribute **CcaSensitivity** in WifiPhy for configuring the threshold that corresponds to the minimum received power of a PPDU, that occupies the primary channel, should have to report a CCA-BUSY indication. +* (wifi) Added a new attribute **SecondaryCcaSensitivityThresholds** in VhtConfiguration for configuring the thresholds that corresponds to the minimum received power of a PPDU, that does not occupy the primary 20 MHz channel, should have to report a CCA-BUSY indication. This is made of a tuple, where the first threshold is used for 20 MHz PPDUs, the second one is used for 40 MHz PPDUs and the third one is used for 80 MHz PPDUs. +* (wifi) Added two new trace sources to `StaWifiMac`: **LinkSetupCompleted**, which is fired when a link is setup in the context of an 11be ML setup, and **LinkSetupCanceled**, which is fired when the setup of a link is terminated. Both sources provide the ID of the setup link and the MAC address of the corresponding AP. ### Changes to existing API -* Adds support for channel paging to the **LrWpanPhy** (only placeholder, a single modulation/band is currently supported). -* Adds supporting structures used by **LrWpanMac** (PAN descriptor, Command Payload Header, Capability Field). -* Mac(8|16|48|64)Address address allocation pool is now reset between consecutive runs. -* Adds support for **LrWpanMac** energy detection (ED) scan. -* IPv6 Router Solicitations (RS) are now retransmitted up to 4 times, following RFC 5779. -* Adds support for **LrWpanMac** active and passive scan. -* Add supporting association structures: parameters, callbacks and the pending transaction list to **LrWpanMac**. -* The **TxopTrace** trace source of wifi `QosTxop` now has an additional argument (the third one) indicating the ID of the link the TXOP refers to (for non-MLDs, this value is zero). -* The maximum allowed channel width (in MHz) for a data transmission is passed to the **GetDataTxVector** method of the `WifiRemoteStationManager`. -* The **WifiMacQueueItem** class has been renamed as **WifiMpdu**. -* The **Assoc** and **DeAssoc** trace sources of `StaWifiMac` provide the AP MLD address in case (de)association takes place between a non-AP MLD and an AP MLD. -* Adds support for **LrWpanMac** devices association. -* Pan Id compression is now possible in **LrWpanMac** when transmitting data frames. i.e. When src and dst pan ID are the same, only one PanId is used, making the MAC header 2 bytes smaller. See IEEE 802.15.4-2006 (7.5.6.1). -* Add O2I Low/High Building Penetration Losses in 3GPP propagation loss model (`ThreeGppPropagationLossModel`) according to **3GPP TR 38.901 7.4.3.1**. Currently, UMa, UMi and RMa scenarios are supported. -* Replace **LrWpanMac** Tx Queue and Ind Tx Queue pointers for smart pointers. -* Add **LrWpanMac** packet traces and queue limits to Tx queue and Ind Tx queue. +* (lr-wpan) Replace **LrWpanMac** Tx Queue and Ind Tx Queue pointers for smart pointers. +* (lr-wpan) Adds supporting structures used by **LrWpanMac** (PAN descriptor, Command Payload Header, Capability Field). +* (lr-wpan) Add supporting association structures: parameters, callbacks and the pending transaction list to **LrWpanMac**. +* (wifi) The **TxopTrace** trace source of wifi `QosTxop` now has an additional argument (the third one) indicating the ID of the link the TXOP refers to (for non-MLDs, this value is zero). +* (wifi) The maximum allowed channel width (in MHz) for a data transmission is passed to the **GetDataTxVector** method of the `WifiRemoteStationManager`. +* (wifi) The **WifiMacQueueItem** class has been renamed as **WifiMpdu**. +* (wifi) The **Assoc** and **DeAssoc** trace sources of `StaWifiMac` provide the AP MLD address in case (de)association takes place between a non-AP MLD and an AP MLD. ### Changes to build system @@ -65,21 +62,24 @@ Changes from ns-3.36 to ns-3.37 * Replaced Python-based .ns3rc with a CMake-based version. * Deprecated .ns3rc files will be updated to the new CMake-based format and a backup will be placed alongside it. * Added the `./ns3 configure --filter-module-examples-and-tests='module1;module2'` option, which can be used to filter out examples and tests that do not use the listed modules. -* Deprecated symlinks in favor of stub headers. +* Deprecated symlinks in the build/ directory in favor of stub headers. * Added support for faster linkers `lld` and `mold`. These will be used if found. The order of priority is: `mold` > `lld` > default linker. * Added support for Windows using the Msys2/MinGW64 toolchain (supports both Unix-like Bash shell shipped with Msys2 and native shells such as CMD and PowerShell). * Added new `./ns3 run` options for profilers: `--memray` and `--heaptrack` for memory profiling of Python scripts and C++ programs, respectively, and `--perf` for performance profiling on Linux. ### Changed behavior -* Lr-wpan: **LrWpanPhy** now change to TRX_OFF after a CSMA-CA failure when the RxOnWhenIdle flag is set to false in the **LrWpanMac**. -* The **Channel** attribute of `WifiNetDevice` is deprecated because it became ambiguous with the introduction of multiple links per device. The **Channel** attribute of `WifiPhy` can be used instead. -* The O2I Low/High Building Penetration Losses will add losses in the pathloss calculation when buildings are present and a UE results to be in O2I state. In order to not consider these losses, they can be disabled by setting BuildingPenetrationLossesEnabled to false. -* Support for four types of UE handover failure are now modeled: +* (internet) IPv6 Router Solicitations (RS) are now retransmitted up to 4 times, following RFC 5779. +* (lr-wpan) **LrWpanPhy** now change to TRX_OFF after a CSMA-CA failure when the RxOnWhenIdle flag is set to false in the **LrWpanMac**. +* (lr-wpan) Pan Id compression is now possible in **LrWpanMac** when transmitting data frames. i.e. When src and dst pan ID are the same, only one PanId is used, making the MAC header 2 bytes smaller. See IEEE 802.15.4-2006 (7.5.6.1). +* (lte) Support for four types of UE handover failure are now modeled: * A HO failure is triggered if eNB cannot allocate non-contention-based preamble. * Handover joining timeout is now handled. * Handover leaving timeout is now handled. * Upon RACH failure during HO, the UE will perform cell selection again. +* (network) Mac(8|16|48|64)Address address allocation pool is now reset between consecutive runs. +* (propagation) The O2I Low/High Building Penetration Losses will add losses in the pathloss calculation when buildings are present and a UE results to be in O2I state. In order to not consider these losses, they can be disabled by setting BuildingPenetrationLossesEnabled to false. +* (wifi) The **Channel** attribute of `WifiNetDevice` is deprecated because it became ambiguous with the introduction of multiple links per device. The **Channel** attribute of `WifiPhy` can be used instead. Changes from ns-3.36 to ns-3.36.1 --------------------------------- diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md index 3ec4e1f4b..97bbc16ed 100644 --- a/RELEASE_NOTES.md +++ b/RELEASE_NOTES.md @@ -3,12 +3,16 @@ ns-3 RELEASE NOTES This file contains ns-3 release notes (most recent releases first). -All of the ns-3 documentation is accessible from the ns-3 website: - including tutorials: +ns-3 documentation is accessible from the [ns-3 website](https://www.nsnam.org). Consult the file [CHANGES.md](CHANGES.md) for more detailed information about changed API and behavior across ns-3 releases. +In the following, numeric references prefixed by '#' refer to +a [GitLab.com issue tracker](https://gitlab.com/nsnam/ns-3-dev/-/issues) number, +and references prefixed by '!' refer to a +[GitLab.com merge request](https://gitlab.com/nsnam/ns-3-dev/-/merge_requests) number. + Release 3-dev ------------- @@ -19,50 +23,35 @@ requirements (Note: not all ns-3 features are available on all systems): - g++-8 or later, or LLVM/clang++-6 or later - Python 3.6 or later +- CMake 3.10 or later - (macOS only) Xcode 11 or later - (Windows only) Msys2/MinGW64 toolchain -Python API requires Cppyy (https://cppyy.readthedocs.io/en/latest/installation.html). +Python API requires [Cppyy](https://cppyy.readthedocs.io/en/latest/installation.html). ### New user-visible features -- (lr-wpan) !959 - Add PHY channel page support -- (lr-wpan) Adds PAN descriptor, CommandPayload Header and Capability Field -- (wifi) !984 - MultiUserScheduler can request channel access periodically -- (lr-wpan) !991 - Adds MAC ED scan support - (internet) !996 - IPv6 Router Solicitations (RS) are now retransmitted up to 4 times, following RFC 5779. -- (lr-wpan) !997 - Adds MAC ACTIVE and PASSIVE scan support -- (wifi) CCA has been reworked to report the channel type in the CCA-BUSY indication and the per-20 MHz CCA bitmap for 802.11ax. -- (wifi) PPDUs are transmitted on the largest primary channel that is found to be idle (according to the CCA-BUSY indication provided by the PHY) when gaining a TXOP. - (internet) Add auto-generate ARP/NDISC cache, as the outcome of GSoC 2022 project. -- (wifi) Add support for fragmentation of Information Elements. -- (wifi) Implement 802.11be Multi-link discovery and setup -- (lr-wpan) !1072 - Adds support for association (network bootstrap) -- (lr-wpan) Adds support for PAN Id compression (IEEE 802.15.4-2006 (7.5.6.1)) -- (utils) `utils/bench-simulator` has been moved to `utils/bench-scheduler` to better reflect what it actually tests -- (utils) `utils/bench-scheduler` has been enhanced to test multiple schedulers. - (lte) LTE handover failure is now handled for joining and leaving timeouts, RACH failure, and preamble allocation failure. +- (lr-wpan) !991 - Adds MAC ED scan support +- (lr-wpan) !959 - Add PHY channel page support +- (lr-wpan) !997 - Adds MAC ACTIVE and PASSIVE scan support +- (lr-wpan) !1072 - Adds support for association (network bootstrap) - (lr-wpan) !1131 - Add support for configurable tx queue and ind tx queue limits. - (lr-wpan) !1133 - Add a post-rx error model. +- (lr-wpan) Adds support for PAN Id compression (IEEE 802.15.4-2006 (7.5.6.1)) +- (lr-wpan) Adds PAN descriptor, CommandPayload Header and Capability Field +- (utils) `utils/bench-simulator` has been moved to `utils/bench-scheduler` to better reflect what it actually tests +- (utils) `utils/bench-scheduler` has been enhanced to test multiple schedulers. +- (wifi) !984 - MultiUserScheduler can request channel access periodically +- (wifi) CCA has been reworked to report the channel type in the CCA-BUSY indication and the per-20 MHz CCA bitmap for 802.11ax. +- (wifi) PPDUs are transmitted on the largest primary channel that is found to be idle (according to the CCA-BUSY indication provided by the PHY) when gaining a TXOP. +- (wifi) Add support for fragmentation of Information Elements. +- (wifi) Implement 802.11be Multi-link discovery and setup ### Bugs fixed -- (wifi) Fix setting of stations' max supported channel width -- (wifi) Fix setting TX power for HE TB PPDUs in case AP requested using the max TX power -- (wifi) #521 - UL OFDMA support -- (lr-wpan) #536 - Fixes PHY not going to TRX_OFF after CSMA-CA failure (RxOnWhenIdle(false)) -- (wifi) Only include QoS Null frames for TIDs for which a BA agreement exists in responses to BSRP TFs -- (wifi) Notify RX end only for the last received HE TB PPDU -- (wifi) Correctly compute the time to RX end to be passed to WifiPhyStateHelper::SwitchToRx() -- (wifi) #709 Adjust WifiPhy::RxSensitivity with channel width for YansWifiChannel -- (wifi) Align default TXOP limit for VI and VO to 802.11-2020 -- (wifi) #696 - 802.11ax assert failed. cond="seqNumber < SEQNO_SPACE_SIZE && startingSeqNumber < SEQNO_SPACE_SIZE" -- (wifi) Fix acknowledgment in SU format for DL MU PPDUs including PSDUs of different TIDs -- (wifi) Fix the TID of QoS Null frames in response to BSRP TF -- (core) #756 - Fix `CsvReader::GetValueAs()` functions for `char` arguments -- #758 - Fix warnings about `for` loops with variables that are "too small" to fully represent the data being looped -- (lr-wpan) #692 - Replace raw pointers for smart pointers in Tx queue and Ind Tx queue. -- (core) Fix int64x64-cairo.h bool operator - (build) #676 Fix missing version defines - (build) #684 Fix prevents hidden source files from being processed as scratches - (build) #687 Display how to forward arguments to programs with the ns3 script @@ -75,6 +64,22 @@ Python API requires Cppyy (https://cppyy.readthedocs.io/en/latest/installation.h - (build) #733 Fix installation to optionally include python bindings and uninstallation to remove pkg-config files - (build) #734 Fix installation to include tap-creator and raw-sock-creator - (build) Widen the search scope of headers and libraries to better support Bake +- (core) #756 - Fix `CsvReader::GetValueAs()` functions for `char` arguments +- (core) Fix int64x64-cairo.h bool operator +- (general) #758 - Fix warnings about `for` loops with variables that are "too small" to fully represent the data being looped +- (lr-wpan) #536 - Fixes PHY not going to TRX_OFF after CSMA-CA failure (RxOnWhenIdle(false)) +- (lr-wpan) #692 - Replace raw pointers for smart pointers in Tx queue and Ind Tx queue. +- (wifi) #521 - UL OFDMA support +- (wifi) #696 - 802.11ax assert failed. cond="seqNumber < SEQNO_SPACE_SIZE && startingSeqNumber < SEQNO_SPACE_SIZE" +- (wifi) #709 Adjust WifiPhy::RxSensitivity with channel width for YansWifiChannel +- (wifi) Fix setting of stations' maximum supported channel width +- (wifi) Fix setting TX power for HE TB PPDUs in case AP requested using the max TX power +- (wifi) Only include QoS Null frames for TIDs for which a BA agreement exists in responses to BSRP TFs +- (wifi) Notify RX end only for the last received HE TB PPDU +- (wifi) Correctly compute the time to RX end to be passed to WifiPhyStateHelper::SwitchToRx() +- (wifi) Align default TXOP limit for VI and VO to 802.11-2020 +- (wifi) Fix acknowledgment in SU format for DL MU PPDUs including PSDUs of different TIDs +- (wifi) Fix the TID of QoS Null frames in response to BSRP TF Release 3.36.1 --------------