diff --git a/CHANGES.html b/CHANGES.html
index 788a1104f..147acfb9f 100644
--- a/CHANGES.html
+++ b/CHANGES.html
@@ -62,43 +62,44 @@ us a note on ns-developers mailing list.
New attributes QosTxop::AddBaResponseTimeout and QosTxop::FailedAddBaTimeout have been added to set the timeout to wait for an ADDBA response after the ACK to the ADDBA request is received and to set the timeout after a failed BA agreement, respectively.
A new attribute QosTxop::UseExpliciteBarAfterMissedBlockAck has been added to specify whether explicit Block Ack Request should be sent upon missed Block Ack Response.
Added a new trace source EndOfHePreamble in WifiPhy for tracing end of preamble (after training fields) for received 802.11ax packets.
-Added a new helper method to SpectrumWifiPhyHelper and YansWifiPhyHelper to set the frame capture model.
-Added a new helper method to SpectrumWifiPhyHelper and YansWifiPhyHelper to set the preamble detection model.
+Added a new helper method to SpectrumWifiPhyHelper and YansWifiPhyHelper to set the frame capture model.
+Added a new helper method to SpectrumWifiPhyHelper and YansWifiPhyHelper to set the preamble detection model.
Added a new helper method to WifiPhyHelper to disable the preamble detection model.
Added a method to ObjectFactory to check whether a TypeId has been configured on the factory.
-Added a new helper method to WifiHelper to set the 802.11ax OBSS PD spatial reuse algorithm.
-Added the Cobalt queuing discipline.
-
+Added a new helper method to WifiHelper to set the 802.11ax OBSS PD spatial reuse algorithm.
+Added the Cobalt queuing discipline.
+Added Simulator::GetEventCount () to return the number of events executed.
+Added ShowProgress object to display simulation progress statistics.
+Add option to disable explicit Block Ack Request when a Block Ack Response is missed.
+Add API to be able to tag a subset of bytes in an ns3::Packet.
+New LTE helper API has been added to allow users to configure LTE backhaul links with any link technology, not just point-to-point links.
Changes to existing API:
-
- Added the possibility of setting the z coordinate for many
- position-allocation classes: GridPositionAllocator,
- RandomRectanglePositionAllocator, RandomDiscPositionAllocator,
- UniformDiscPositionAllocator.
+ Added the possibility of setting the z coordinate for many position-allocation classes: GridPositionAllocator, RandomRectanglePositionAllocator, RandomDiscPositionAllocator, UniformDiscPositionAllocator.
-
- The WifiPhy attribute "CcaMode1Threshold" has been renamed to "CcaEdThreshold",
- and the WifiPhy attribute "EnergyDetectionThreshold" has been replaced by a new attribute called "RxSensitivity"
+ The WifiPhy attribute CcaMode1Threshold has been renamed to CcaEdThreshold,
+ and the WifiPhy attribute EnergyDetectionThreshold has been replaced by a new attribute called RxSensitivity.
-
It is now possible to know the size of the SpectrumValue underlying std::vector, as well as
accessing read-only every element of it.
-
- The GetClosestSide method of the Rectangle class returns the correct closest side also for positions outside the rectangle.
+ The GetClosestSide method of the Rectangle class returns the correct closest side also for positions outside the rectangle.
- - The trace sources BackoffTrace and CwTrace were moved from class QosTxop to base class Txop, allowing these values to be traced for DCF operation. In addition, the trace signature for BackoffTrace was changed from TracedValue to TracedCallback (callback taking one argument instead of two). Most users of CwTrace for QosTxop configurations will not need to change existing programs, but users of BackoffTrace will need to adjust the callback signature to match.
+
- The trace sources BackoffTrace and CwTrace were moved from class QosTxop to base class Txop, allowing these values to be traced for DCF operation. In addition, the trace signature for BackoffTrace was changed from TracedValue to TracedCallback (callback taking one argument instead of two). Most users of CwTrace for QosTxop configurations will not need to change existing programs, but users of BackoffTrace will need to adjust the callback signature to match.
- - A new buffer has been introduced in the LteEnbRrc class. This buffer will be used by a target eNB during handover to buffer the packets comming from a source eNB on X2 inteface. The target eNB will buffer this data until it receives RRC Connection Reconfiguration Complete from a UE.
+
- New trace sources, namely DrbCreated, Srb1Created and DrbCreated have beed implemented in LteEnbRrc and LteUeRrc classes repectively. These new traces are used to improve the connection of the RLC and PDCP stats in the RadioBearerStatsConnector API.
- - New trace sources, namely DrbCreated, Srb1Created and DrbCreated have beed implemented in LteEnbRrc and LteUeRrc classes repectively. These new traces are used to improve the connection of the RLC and PDCP stats in the RadioBearerStatsConnector API.
+
- TraceFadingLossModel has been moved from lte to spectrum module.
Changes to build system:
- - ns-3 now only supports Python 3. Use of Python 2 can be forced using the --with-python option provided to './waf configure', and may still work for many cases, but is no longer supported. Waf does not default to Python 3 but the ns-3 wscript will default the build to Python 3.
+
- ns-3 now only supports Python 3. Use of Python 2 can be forced using the --with-python option provided to './waf configure', and may still work for many cases, but is no longer supported. Waf does not default to Python 3 but the ns-3 wscript will default the build to Python 3.
- Waf upgraded from 2.0.9 to 2.0.18.
@@ -108,9 +109,10 @@ us a note on ns-developers mailing list.
Changed behavior:
- The wifi ADDBA handshake process is now protected with the use of two timeouts who makes sure we do not end up in a blocked situation. If the handshake process is not established, packets that are in the queue are sent as normal MPDUs. Once handshake is successfully established, A-MPDUs can be transmitted.
- - In the wifi module, the default value of the Margin attribute in SimpleFrameCaptureModel was changed from 10 to 5.
- - A ThresholdPreambleDetectionModel is added by default to the WifiPhy. Using default values, this model will discard frames that fall below either -82 dBm RSSI or below 4 dB SNR. Users may notice that weak wifi signals that were successfully received based on the error model alone (in previous ns-3 releases) are no longer received. Previous behavior can be obtained by lowering both threshold values or by removing the preamble detection model (via WifiPhyHelper::DisablePreambleDetectionModel()).
- - LTE/EPC model has been enhanced with the new features. These new features allow the simulation user to test more realistic simulations related to the core network. These features are:
+ - In the wifi module, the default value of the Margin attribute in SimpleFrameCaptureModel was changed from 10 to 5 dB.
+ - A ThresholdPreambleDetectionModel is added by default to the WifiPhy. Using default values, this model will discard frames that fall below either -82 dBm RSSI or below 4 dB SNR. Users may notice that weak wifi signals that were successfully received based on the error model alone (in previous ns-3 releases) are no longer received. Previous behavior can be obtained by lowering both threshold values or by removing the preamble detection model (via WifiPhyHelper::DisablePreambleDetectionModel()).
+ - The PHY model for Wi-Fi has been extended to handle reception of L-SIG and reception of non-legacy header differently.
+ - LTE/EPC model has been enhanced to allow the simulation user to test more realistic topologies related to the core network:
- SGW, PGW and MME are full nodes.
- There are P2P links between core network nodes.
@@ -125,11 +127,13 @@ us a note on ns-developers mailing list.
- New InitialContextSetupRequest primitive of the S1 SAP that is received by the eNB RRC when the S1 signalling from the core network is finished.
- - The default qdisc installed on single-queue devices (such as PointToPoint, Csma and Simple) is now FqCodel (instead of PfifoFast). On multi-queue devices (such as Wifi), the default root qdisc is now Mq with as many FqCoDel child qdiscs as the number of device queues. The new defaults are motivated by the willingness to align with the behavior of major Linux distributions and by the need to preserve the effectiveness of Wifi EDCA Functions in differentiating Access Categories (see issue #35).
+ - A new buffer has been introduced in the LteEnbRrc class. This buffer will be used by a target eNB during handover to buffer the packets comming from a source eNB on X2 inteface. The target eNB will buffer this data until it receives RRC Connection Reconfiguration Complete from a UE.
+
+ - The default qdisc installed on single-queue devices (such as PointToPoint, Csma and Simple) is now FqCoDel (instead of PfifoFast). On multi-queue devices (such as Wifi), the default root qdisc is now Mq with as many FqCoDel child qdiscs as the number of device queues. The new defaults are motivated by the willingness to align with the behavior of major Linux distributions and by the need to preserve the effectiveness of Wifi EDCA Functions in differentiating Access Categories (see issue #35).
- LTE RLC TM mode does not report anymore the layer-to-layer delay, as it misses (by standard) an header to which attach the timestamp tag. Users can switch to the PDCP layer delay measurements, which must be the same.
- Token Bank Fair Queue Scheduler (ns3::FdTbfqFfMacScheduler) will not anymore schedule a UE, which does not have any RBG left after removng the RBG from its allocation map if the computed TB size is greater than the "budget" computed in the scheduler.
- - LTE module now supports the Radio Link Failure (RLF) functionality. This implementation introduced following key behavioral changes:
+
- LTE module now supports the Radio Link Failure (RLF) functionality. This implementation introduced following key behavioral changes:
- The UE RRC state will not remain in "CONNECTED_NORMALLY" state if the DL control channel SINR is below a set threshold.
- The LTE RRC protocol APIs of UE i.e., LteUeRrcProtocolIdeal, LteUeRrcProtocolReal have been extended to send an ideal (i.e., using SAPs instead to transmitting over the air) UE context remove request to the eNB. Similarly, the eNB RRC protocol APIs, i.e, LteEnbRrcProtocolIdeal and LteEnbRrcProtocolReal have been extended to receive this ideal UE context remove request.
diff --git a/RELEASE_NOTES b/RELEASE_NOTES
index 71dd712e9..583fa5c95 100644
--- a/RELEASE_NOTES
+++ b/RELEASE_NOTES
@@ -9,47 +9,123 @@ http://www.nsnam.org including tutorials: http://www.nsnam.org/tutorials.html
Consult the file CHANGES.html for more detailed information about changed
API and behavior across ns-3 releases.
-Release 3-dev
-=============
+Release 3.30
+============
Availability
------------
-This release is not yet available.
+This release is available from:
+https://www.nsnam.org/release/ns-allinone-3.30.tar.bz2
Supported platforms
-------------------
This release is intended to work on systems with the following minimal
requirements (Note: not all features available on all platforms):
+- g++-4.9 or later
+- Xcode 10.1 or later
+- Python 3.5 or later
Starting with ns-3.30, Python 3 will be the only supported Python version,
-and scripts will default to Python 3 usage.
+and scripts will default to Python 3 usage. Python 2.7 may continue to work
+in the near term.
+
+This release has been tested on the following systems:
+- Fedora 30 with g++-9.1.1
+- Ubuntu 19.04 with g++-8.3.0
+- Ubuntu 18.04 with g++-7.4.0
+- Ubuntu 16.04.6 with g++-5.4.0
+- Linux Mint 19 Tara with g++-7.3.0
+- macOS 10.14.6 (Mojave) with Xcode 10.3
+- macOS 10.13.6 (High Sierra) with Xcode 10.1
New user-visible features
-------------------------
+- (core) ShowProgress object can be used to report on simulation execution
- (wifi) Preamble detection can now be modelled and is enabled by default.
- (wifi) 802.11ax spatial reuse is now supported.
- (lte) Radio Link Failure (RLF) functionality is now supported.
+- (lte) LTE/EPC model enhanced with new features: SGW, PGW, MME are full nodes; new S5 interface between SGW and PGW, allows simulations with multiple SGW/PGW
+- (lte) LTE eNB RRC extended to support improved S1 signalling model
+- (lte) Backhaul links can now use any link technology, not just point-to-point
+- (traffic-control) Cobalt queue disc model has been added.
Bugs fixed
----------
+During this release cycle, the project transitioned from a Bugzilla issue
+tracker to a GitLab.com issue tracker. Bugs fixed from the Bugzilla tracker
+include:
+- Bug 2339 - lte: Use only the active RBs for uplink PSD computation
- Bug 2460 - wifi: Refactor detection thresholds in WifiPhy and add a new sensitivity threshold to throw away weak signals
- Bug 2470 - wifi: Handshake to setup the Block Ack Agreement is not protected
-- Bug 2992 - lte: Send method of the LteUeNetDevice doesn't use protocolNumber parameter
-- Bug 2997 - lte: EpcTft::PacketFilter::Matches does not use ipv6 address to match an IP packet
+- Bug 2637 - build: macOS SDK headers in non-standard place
- Bug 2860 - mobility: Set Z coordinate for position-allocation classes
+- Bug 2861 - lte: Forward TXOPs to the RLCs of SCCs
- Bug 2893 - lte: GetPgw in helper should be const
+- Bug 2979 - lte: Remove unused code from UE RRC and UE CCM
+- Bug 2980 - lte: Reset MAC and PHY of secondary carriers upon handover
+- Bug 2982 - lte: Configure UE MAC SAP LteMacSapUser properly
+- Bug 2988 - lte: Correction in L3 filtering formula used for UL power control
+- Bug 2990 - internet: IPv6 packet shouldn't be marked with SocketIpTtlTag
+- Bug 2992 - lte: Send method of the LteUeNetDevice doesn't use protocolNumber parameter
+- Bug 2993 - build: Waf --enable-sudo option broken
+- Bug 2997 - lte: EpcTft::PacketFilter::Matches does not use ipv6 address to match an IP packet
+- Bug 3007 - build: Boost library configuration in contrib
- Bug 3027 - lte: S1 signalling is done before RRC connection establishment is finished
+
+Bugs fixed from the GitLab.com issue tracker include:
+
- Issue #11 - mobility: Rectangle::GetClosestSide returns the correct side also for positions outside the rectangle
+- Issue #14 - build: Check file timestamps instead of hashes for changes
+- Issue #15 - build: Fix build erroneous order constraint warnings
- Issue #27 - wifi: Re-compute the A-MPDU after an RTS/CTS exchange fails
- Issue #28 - wifi: wifi error model: coded bits vs. data bits
+- Issue #30 - wifi: Sequence number wrap around in MacLow::ReceiveMpdu
- Issue #32 - wifi: Example "rate-adaptation-distance.cc" fails.
- Issue #33 - wifi: Issues with QosTxop::StartNextPacket
- Issue #35 - wifi: Unexpected EDCA performance under virtual collisions for 802.11n
+- Issue #42 - wifi: Check configured capture window for capture
+- Issue #43 - core: Check if ObjectFactory has been configured
- Issue #45 - wifi: Wi-Fi transmits frames outside BlockAck window
+- Issue #46 - internet: Export headers for transport protocol modularity
+- Issue #47 - core: Return non-const reference when a const Ptr is dereferenced
- Issue #48 - wifi: Incorrect sequence comparison in BlockAckManager::NeedBarRetransmission
-- Issue #53 - Token Bank Fair Queue Scheduler is creating a transmit opportunity of 0 bytes
-- Issue #54 - RadioBearerStats are not correctly connected
+- Issue #53 - lte: Token Bank Fair Queue Scheduler is creating a transmit opportunity of 0 bytes
+- Issue #54 - lte: RadioBearerStats are not correctly connected
+- Issue #70 - visualizer: Update configuration of GooCanvas.CanvasEllipse
+- Merge request !19 - wifi: Rework MSDU and MPDU aggregation code
+- Merge request !22 - spectrum: Fix order of PHYs stored in MultiModelSpectrumChannel
+- Merge request !30 - lte: Fix PDU delivering at the edge of reordering window
+- Merge request !43 - traffic-control: Install FqCoDelQueueDisc by default
+- Merge request !55 - lte: Reset preamble transmission count before starting NC based RACH
+- Merge request !65 - tcp: Call BytesInFlight method before processing ack
+- Merge request !67 - wifi: Pass numbe of data bits instead of coded bits to error models
+- Merge request !85 - uan: Fix MAC address variable shadowing in subclasses
+
+Other issues fixed:
+- core: Replace int64_t operator/(Time,Time) with exact int64x64_t version, add int64x64_t scaling.
+- core: Refactor LogTimePrinter, LogNodePrinter
+- energy: Update remaining energy even if simulation has finished
+- flow-monitor: Fix FlowMonitor::Stop () method
+- mobility: Allow AssignStreams after construction for SteadyStateRandomWaypointMobilityModel
+- lte: Add attribute to configure the periodicity of DL CQI reports
+- lte: Fix type of them_rapIdRntiMap key
+- lte: Various updates of the ComponentCarrier subclasses to accommodate NR
+- lte: Fix issue with use of packet tag in LTE PDCP and RLC by using byte tag
+- visualizer: Fix various issues with Python 3 and X server compatibility
+- wifi: Fix A-MPDU reception logic
+- wifi: Fix noise interference calculation
+- wifi: Do not allow S-MPDU transmission as long as ADDBA handshake not established
+- wifi: Fix frequencies for channels 54 and 126
+- wifi: Fix rate used to send Block Ack Request frames
+- wifi: Check that SSID in probe requests is either broadcast or corresponds to AP SSID
+- wifi: Do not call ReportDataFailed if retransmission not needed
+- wifi: Fix duplicate MPDUs sent in an A-MPDU when explicit BARs are disabled
+- wifi: Fix issues when MSDU lifetime is expired
+- wifi: Enforce capture window duration in frame capture model, and fix capture model for A-MPDU
+- wifi: Correct handling of timeout situations during block ack agreement setup
+- wifi: Return correct serialized size for AmpduTag
+- wifi: Fix incorrect channel width when HT, VHT, or HE STA received legacy PPDU
Known issues
------------