forked from nsnam/ns-3-dev-git
-
Notifications
You must be signed in to change notification settings - Fork 51
/
RELEASE_NOTES
3782 lines (3354 loc) · 181 KB
/
RELEASE_NOTES
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
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:
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.35
============
Availability
------------
This release is available from:
https://www.nsnam.org/release/ns-allinone-3.35.tar.bz2
Supported platforms
-------------------
This release is intended to work on systems with the following minimal
requirements (Note: not all ns-3 features are available on all systems):
- g++-7 or later, or LLVM/clang++-8 or later
- Python 3.6 or later
- (macOS only) Xcode 11 or later
Python API scanning only works for Python versions 3.6 through 3.8, due to
an upstream toolchain limitation.
This release has been tested on the following systems:
- Fedora 34 with g++-11.2.1 and clang++-12.0.1; Python 3.9.7
- Fedora 33 with g++-10.3.1 and clang++-11.0.0; Python 3.9.6
- Ubuntu 21.04 with g++-11.1.and clang++-12.0.0; Python 3.9.5
- Ubuntu 20.04 with g++-9.3.0 and clang++-10.0.0; Python 3.8.10
- Ubuntu 18.04 with g++-7.5.0 and clang++-6.0.0; Python 3.6.9
- macOS 10.15.7 (Catalina) with Xcode 12.4 (Apple clang-1200.0.32.29, Python 3.9.1)
This release has discontinued support for g++-5 and g++-6 compilers, and
for macOS Xcode 10.
New user-visible features
-------------------------
ns-3 has switched to the C++17 standard by default, although the more
advanced constructs (beyond C++11) are generally avoided in the header files,
to stay compatible with the Python API scanning framework.
- (antenna) Extend UniformPlanarArray to have a configurable polarization slant angle
- (buildings) Add example program demonstrating group mobility with the buildings-aware random walk mobility model, and a script to animate the group motion.
- (config-store) OBSOLETE Attributes are not anymore saved.
- (config-store) New ConfigStore::SaveDeprecated Attribute (default false) to avoid to save DEPRECATED attributes.
- (core) Add TracedCallback::IsEmpty to know if a TracedCallback has any callback associated.
- (core) Add std::hash<ns3::Ptr<T>> to allow seamless use of Ptr as key in unordered_maps.
- (core) Print available values on EnumChecker::GetValue () error
- (internet) Added getters and setters for source and destination in Ipv6Header consistent with Ipv4Header naming.
- (internet) New functions SetAddress () and GetAddress () are added, corresponding to SetLocal () and GetLocal () respectively in Ipv4InterfaceAddress to keep consistency with Ipv6InterfaceAddress.
- (nix-vector-routing) Support for IPv6 Nix-Vector routing. Existing nix-simple and nms-p2p-nix examples are available in IPv6 as well.
- (nix-vector-routing) ipv4-nix-vector-helper.h has been deprecated in favour of nix-vector-helper.h.
- (nix-vector-routing) ipv4-nix-vector-routing.h has been deprecated in favour of nix-vector-routing.h.
- (internet) Added new function IsInSameSubnet () in Ipv4InterfaceAddress similar to Ipv6InterfaceAddress::IsInSameSubnet (). It checks if the two Ipv4Address are in the same subnet.
- (nix-vector-routing) Nix-Vector routing supports topologies with multiple WiFi networks using the same WiFi channel object.
- (mobility) Add GroupMobilityHelper and demonstrate its use with a new program that configures the Reference Point Group Mobility model for a number of nodes.
- (wifi) Add support for 11ax MU EDCA Parameter Set.
- (wifi) MPDUs discarded because they became "old" (from the Block Ack agreement point of view) are now traced using the DroppedMpdu trace source of RegularWifiMac and with the WIFI_MAC_DROP_QOS_OLD_PACKET reason.
Bugs fixed
----------
- (applications) #449, #453 - add correct receiving address to PacketSink traces for UDP.
- (config-store) #443 - do not save obsolete attributes
- (energy) #423 - SimpleDeviceEnergyModel calculation of consumed energy
- (fd-net-device) #441 - Fix double dequeue on device stop
- (internet) - Ipv4L3Protocol duplicate detection now accounts for sent packets, not just forwards.
- (lte) !703 - Fix global-buffer-overflow when nprb is equal to zero
- (mobility) - Initialize HierarchicalMobilityModel and avoid course change stream corruption
- (nix-vector-routing) #450 - Avoid recalculation if path doesn't exist
- (tcp) #407 - Align TcpCubic::GetSsThresh() with Linux
- (tcp) #410 - Fix TcpWestwood bandwidth estimation bug
- (traffic-control) #258 - Avoid overflow, divide-by-zero in TbfQueueDisc
- (traffic-control) !706 - Fix FqPIE qdisc not using attributes
- (wifi) - Always track interference when not locking on PPDU
Release 3.34
=============
Availability
------------
This release is available from:
https://www.nsnam.org/release/ns-allinone-3.34.tar.bz2
Supported platforms
-------------------
This release is intended to work on systems with the following minimal
requirements (Note: not all ns-3 features are available on all systems):
- g++-7 or later, or LLVM/clang++-8 or later
- Python 3.6 or later
- (macOS only) Xcode 10.1 or later
This release has been tested on the following systems:
- Fedora 33 with g++-10.2.1 and clang++-11.0.0; Python 3.9.2
- Ubuntu 21.04 with g++-11.1.0 and clang++-12.0.0; Python 3.9.5
- Ubuntu 20.04 with g++-9.3.0 and Python 3.8.5
- Ubuntu 18.04 with g++-7.5.0 and Python 3.6.9
- macOS 10.15.7 (Catalina) with Xcode 12.4 (Apple clang-1200.0.32.29, Python 3.9.1)
- macOS 10.13.6 (High Sierra) with Xcode 10.1 (Apple clang-1000.11.45.5, Python 3.7.1)
New user-visible features
-------------------------
- (antenna) Added PhasedArrayModel, providing a flexible interface for modeling a number of Phase Antenna Array (PAA) models
- (antenna) Replaced the ThreeGppAntennaArrayModel with a UniformPlanarArray model, extending the new PhaseAdrrayModel
- (antenna) Improved the Angles class to be more robust and user-friendly.
- (antenna) AntennaModel child classes have been extended to produce 3D radiation patterns
- (internet) Support for IPv6 stateless address auto-configuration (SLAAC).
- (network) Improved support for bit fields in header serialization/deserialization.
- (network) Added support for DLT_LORATAP DataLinkType to PCAP files
- (network) More arithmetic operators are provided for DataRate objects
- (nix-vector) Nix-Vector routing supports multiple interface addresse and can print out routing paths.
- (olsr) Add support for printing OLSR headers
- (sixlowpan) Added support for stateful (i.e., context-based) RFC6282 compression.
- (tcp) TCP CUBIC is now the default TCP congestion control, replacing NewReno.
- (tcp) A BBRv1 congestion control model has been added.
- (traffic-control) Added FqCobalt queue disc with L4S features and set associative hash.
- (traffic-control) Added FqPIE queue disc with L4S mode.
- (wifi) Add support for 802.11ax DL and UL OFDMA, and a round-robin multi-user scheduler
- (wifi) Added 802.11ax support to MinstrelHt rate control algorithm.
- (wifi) The PHY layer has been refactored: the amendment-specific logic has been ported to PhyEntity classes and WifiPpdu classes
- (wifi) The MAC layer has been refactored. The MacLow class has been replaced by a hierarchy of FrameExchangeManager classes, each adding support for the frame exchange sequences introduced by a given amendment.
- (wifi) Add ThompsonSamplingWifiManager rate control algorithm.
- (wifi) Holland PHY configuration has been removed from the model
- (wifi) HT Greenfield (HT_GF) preamble support has been removed from the model
- (wifi) Added the ability to configure the primary 20 MHz channel for 802.11 devices operating on channels of width greater than 20 MHz
- (wifi) Some wifi/src/model files were moved to the relevant subfolders (non-ht, ht, vht, he, and rate-control)
- (wifi) Stations perform TXOP recovery if the transmission of a non-initial MPDU in a TXOP fails
- (wifi) Stations keep track of the TXOP holder and ignore the NAV when they receive an RTS frame from the TXOP holder
- (wifi) The TxOkHeader and TxErrHeader trace sources of RegularWifiMac have been obsoleted and replaced by trace sources that better capture the result of a transmission (AckedMpdu, NAckedMpdu, DroppedMpdu, MpduResponseTimeout and PsduResponseTimeout)
- (wifi) Bianchi example program extended to support 802.11n/ac/ax rates
- (wifi) ErrorRateModel API extended to support link-to-system models
Bugs fixed
----------
- (antenna) Fix random angle generation for the 3gpp channel model.
- (build) #52 - Fix and standardize Boost detection
- (build) #352 - Handle multiple attempts to configure C++ standard
- (core) #349 - Warn about Config::SetDefault() of deprecated attribute
- (internet) #385 - IPv6 NA are now sent directly by the NetDevice
- (lr-wpan) #382 - Fix Tx power calculation from PIB attribute
- (lte) #285 - Check the RandomAccess status of an RNTI to whom the preamble was assigned
- (lte) #322 - Add Channel pointer value type attribute to REM helper
- (lte) #354 - Use uint16_t for srsIndex instead of uint8_t
- (lte) #395 - Add transmission buffer size for RLC Acknowledged Mode
- (lte) !555 - Remove assert upon RAR timeout in RLF example and..
- (lte) !605 - Make sure RNTI exists before removing UE context
- (lte) - Set UeRrcSapProvider only if RNTI exists at the eNB
- (nix-vector) #393 - Avoid changing routing-dependent members
- (sixlowpan) #358 - Use correct fragment size when using mesh routing.
- (tcp) #374 - Assume TCP RTT is one microseconds if it measures as zero
- (uan) #129 - EndTx moved to PhyListener
- (uan) #293 - Fixed integer truncation in window computation
- (wave) Fix compilation and runtime issues with vanet-routing-compare.cc
- (wifi) #418 - Fix HE A-MPDU Max Size Upper Bound
- (wifi) - Compare received power per MHz to normalized RX sensitivity
Release 3.33
============
Availability
------------
This release is available from:
https://www.nsnam.org/release/ns-allinone-3.33.tar.bz2
Supported platforms
-------------------
This release is intended to work on systems with the following minimal
requirements (Note: not all ns-3 features are available on all systems):
- g++-5.4 or later, or clang++-8 or later
- Python 3.5 or later
- (macOS only) Xcode 10.1 or later
This release has been tested on the following systems:
- Arch Linux with g++-10.2.0 and clang++ versions 8-11, Python 3.9.1
- Fedora 33 with g++-10.2.1 and clang++-11.0.0; Python 3.9.1
- Ubuntu 20.04 with g++-9.3.0 and Python 3.8.5
- Ubuntu 18.04 with g++-7.5.0 and Python 3.6.9
- Ubuntu 16.04.6 with g++-5.4.0 and Python 3.5.2
- Linux Mint 20 Ulyana with g++-9.3.0 and Python 3.8.5
- macOS 11.1 (Big Sur) with Xcode 12.3 (Apple clang-1200.0.32.28), Python 3.8.2 (system) and Python 3.9.1 (Homebrew)
- macOS 10.15.7 (Catalina) with Xcode 12 (Apple clang-1200.0.31.1, Python 3.9.1)
- macOS 10.13.6 (High Sierra) with Xcode 10.1 (Apple clang-1000.11.45.5, Python 3.7.1)
New user-visible features
-------------------------
- (core) A new Length class has been added to represent lengths with an explicit unit, rather than the use of raw numbers (ints, doubles) with implicit length.
- (core) A flexible CsvReader class has been introduced to allow users to read in csv- or tab-delimited data.
- (lr-wpan) Added support for handling differences between RFC4944- and RFC6282-style IPv6 address expansion
- (mobility) The ListPositionAllocator can now input positions from a csv file.
- (mpi) A new Enable call was added that takes a user supplied MPI_Communicator, which enables (optional) partitioning of the MPI processes. See !389.
- (propagation) A channel condition model for vehicular scenarios was added. See !435
- (tcp) A model for TCP CUBIC congestion control has been added.
- (tcp) TCP handling of ECN has been improved with the addition of a Congestion Window Reduced state
- (tcp) TCP DCTCP includes a trace source for tracing the alpha value
- (wifi) A new table-based error model based on link simulations has been
added (TableBasedErrorRateModel) and made the default for 802.11n/ac/ax simulations.
- (wifi) Add error table support for LDPC FEC encoding (BCC or LDPC may now be selected)
- (wifi) Add PHY layer support for High Efficiency Multi Users [HE-MU] access, including High Efficiency Resource Units (HE RU) and PCAP support
- (wifi) Add option to configure the OFDM transmit spectrum mask
Bugs fixed
----------
- (applications) #444 - Report Tx bytes from UdpClient
- (core) #265 - Time is not rounded when created from an int64x64_t
- (core) #277 - Make Time::As() print with autoscaled unit
- (core) #302 - Time is not rounded when created from an int64x64_t
- (internet) #272 - Add missing data to Ipv[4,6]PacketInfoTag
- (internet) !440 - Loopback IPv4 address should have HOST scope
- (lte) #273 - When removing LC, remove also its BSR
- (lr-wpan) #314 - Multicast/broadcast must not generate ACKs
- (mobility) #276 - Make EnableAsciiAll connect in a failsafe way
- (tcp) TcpCongestionOps objects can now be accessed by config paths
- (tcp) #783 - Update previousLost and priorInFlight on reception of ACK
- (wifi) #284 - Fix memory consumption issue for saturated devices
- (wifi) Fix Minstrel HT statistics update window duration
- (wifi) Fix incorrect calculations for 1024-QAM when using NistErrorRateModel
- (wifi) Fix maximum channel number that can be selected for the PHY
- (wifi) Set BER threshold for Ideal rate manager to 1e-6 to avoid high PER for high MCS values
- (wifi) Reduce precision to fix infinite loop when Ideal rate manager as used with Yans error rate model
- (wifi) Report reception of BAR to WifiRemoteStationManager
- (wifi) TXOP durations were not always being traced
Release 3.32
============
Availability
------------
This release is available from:
https://www.nsnam.org/release/ns-allinone-3.32.tar.bz2
Supported platforms
-------------------
This release is intended to work on systems with the following minimal
requirements (Note: not all ns-3 features available on all systems):
- g++-4.9 or later
- Xcode 10.1 or later
- Python 3.5 or later
Starting with ns-3.30, Python 3 has been the only supported Python version,
and scripts default to Python 3 usage.
This release has been tested on the following systems:
- Fedora 32 with g++-10.2.1 and Python 3.8.5
- Fedora 32 with clang-10.0.0 and Python 3.8.5
- Ubuntu 20.04 with g++-9.3.0 and Python 3.8.2
- Ubuntu 18.04 with g++-7.5.0 and Python 3.6.9
- Ubuntu 16.04.6 with g++-5.4.0 and Python 3.5.2
- macOS 10.15.7 (Catalina) with Xcode 12
- macOS 10.13.6 (High Sierra) with Xcode 10.1
New user-visible features
-------------------------
- (build system) Added "--enable-asserts" and "--enable-logs" to waf configure,
to selectively enable asserts and/or logs in release and optimized builds.
- (build system) The "--enable-build-version" option has been added to waf
configure, allowing users to embed version information in the libraries
- (build system) Added support for EditorConfig
- (config-store) Improved the RawTextConfig output (see !93)
- (core) Added capability to configure STL pair and containers as attributes
- (core) The default timestamp print format for logging statements has been
changed to use the As() method that prepends +/- and appends the time unit
- (fd-net-device) Added two enhanced emulation devices based on netmap and DPDK
- (mobility) Add CartesianToGeographic coordinate conversion capability
- (network) Packet tags are now serialized and deserialized for distributed
simulations
- (network) Added LollipopCounter, a sequence number counter type
- (olsr) Some internal OLSR API has been opened up to enable cross-layer access
- (tcp) Support for dynamic pacing in TCP.
- (tcp) Added TcpLinuxReno congestion control (aligns with Linux 'reno'
- (tests) test.py text output now distinguishes between TestSuites and TestCases
congestion control).
- (traffic-control) Added, to PIE queue disc, queue delay calculation using
timestamp feature (Linux default behavior), cap drop adjustment feature
(Section 5.5 of RFC 8033), ECN (Section 5.1 of RFC 8033) and derandomization
feature (Section 5.4 of RFC 8033).
- (traffic-control) Add support for L4S mode to CoDel and FqCoDel queue discs
- (traffic-control) Add Active/Inactive feature to PIE queue disc.
- (traffic-control) Add ECN and L4S support for CoDel, FqCoDel, Cobalt queues
- (wifi) Add 6 GHz band support for 802.11ax
- (wifi) RIFS support has been removed from the model
Bugs fixed
----------
- (applications) Handle possible partial socket sends (during emulation)
- (applications) Remove stray exit call from OnOffApplication
- (internet-apps) Fixes DHCP behaviour when interface goes down and back up
- (lte) #224 - The scheduled SendMeasurementReport() event doesn't cancel after link failure detection
- (mesh) - Enable possible use with SpectrumWifiPhy
- (network) #264 - Rounding is more accurate for DataRate transmission times
- (network) !424 - Fixed instantaneous send behavior in SimpleNetDevice when queue is empty
- (tcp) !368 - Fix assert in tx-buffer when loss rate high and w/o SACK
- (tcp) !367 - Stop to merge items whose m_lost values are different
- (tcp) - Fix TcpRateOps to update m_ackElapsed like Linux
- (traffic-control) #225 - Do not ECN mark packet twice within a CoDel queue
- (wifi) - Fix radiotap header for received 802.11ax PPDUs
- (wifi) - Do not send VHT capabilities when operating in 2.4 GHz band
- (wifi) #252 - Correctly handle multicast frames
Release 3.31
============
Availability
------------
This release is available from:
https://www.nsnam.org/release/ns-allinone-3.31.tar.bz2
Supported platforms
-------------------
This release is intended to work on systems with the following minimal
requirements (Note: not all ns-3 features available on all systems):
- g++-4.9 or later
- Xcode 10.1 or later
- Python 3.5 or later
Starting with ns-3.30, Python 3 has been the only supported Python version,
and scripts default to Python 3 usage.
This release has been tested on the following systems:
- Fedora 32 with g++-10.1.1 and Python 3.8.3
- Fedora 32 with clang-10.0.0 and Python 3.8.3
- Fedora 29 with g++-8.3.1 and Python 3.7.5
- Ubuntu 20.04 with g++-9.3.0 and Python 3.8.2
- Ubuntu 18.04 with g++-7.5.0 and Python 3.6.9
- Ubuntu 16.04.6 with g++-5.4.0 and Python 3.5.2
- macOS 10.15.3 (Catalina) with Xcode 11.3
- macOS 10.13.6 (High Sierra) with Xcode 10.1
New user-visible features
-------------------------
- (antenna) Model for antenna arrays based on 3GPP model (part of Integration of the 3GPP TR 38.901 fast fading model)
- (buildings) Random walk mobility model that does not allow nodes to enter buildings
- (core) The CommandLine facility can now add the Usage message to the Doxygen for the program
- (internet) TCP DCTCP model
- (internet) An option to enable IPv4 hash-based multicast duplicate packet
detection (DPD) based on RFC 6621
- (lte) Trace sources for uplink PSD and RBs
- (propagation) 3GPP TR 38.901 pathloss and channel condition models
- (spectrum) Matrix-based channel model base class to support antenna arrays
- (spectrum) 3GPP pathloss, channel and fast fading models
- (stats) A new interface to SQLite
- (tests) Capability to run an example program as a regression test
- (traffic-control) Support for the Cake set-associative hash to the FqCoDel queue disc
- (traffic-control) Support for ECN marking to CoDel and FqCoDel queue discs
- (wifi) A Bianchi (saturation) example with a comparable MATLAB model
- (wifi) The idealized wifi rate control includes better support for different MIMO modes and channel widths
Bugs fixed
----------
If available, the numbers below make reference to a Bugzilla bug number, GitLab
issue number (prefixed by '#'), or GitLab merge request number (prefixed by '!')
- (build system) #119 - Waf --lcov-report option was broken
- (buildings) #80 - Update indoor/outdoor status of a moving node
- (core) Bug 2725 - EmpiricalRandomVariable should not interpolate
- (documentation) Bug 2636 - Add to doxygen a list of all registered TypeIds
- (internet) - Fix Ipv6Prefix length calc and add explicit prefix length constructors
- (internet) - IPv6 Duplicate Address Detection (DAD) must use Solicited-Node multicast address
- (internet) #111 - Rip and RipNg don't receive unicast packets
- (internet:tcp) - call NotifyConnectionFailed on SYN timeout
- (internet:tcp) #179 - Avoid incorrect exit of LAST-ACK state
- (internet:tcp) #182 - Fix SACK list cleaning in TcpOptionSack::Deserialize()
- (internet:tcp) !156 - Enable entering CA_RECOVERY despite large sequence number increase
- (internet:tcp) !157 - Prevent sending outside receiver window
- (lr-wpan) #212 - Rx callback must have both source mac and pan id
- (lr-wpan) !283 - Beacon collisions and timings
- (lr-wpan) !326 - Inactive Periods Queue fix
- (lte) #106 - Inconsistent imsi representation in LTE module
- (lte) #196 - Remove LteSecondaryCellSelectionTestSuite from LTE module
- (lte) #221 - Stop T310 upon receving handover command
- (network) #216 - Correct the return value for PacketSocket::SendTo()
- (network) !239 - Refactor DelayJitterEstimation to more closely follow RFC 1889 and RFC 3550
- (propagation) !269 - Fix Okumura-Hata propagation loss model for frequency > 1.5 Ghz and medium or small city
- (wifi) - Keep the medium busy if reception is aborted ahead of scheduled time
- (wifi) - Fix frame capture when signals arrive at the exact same time and add additional tests to verify these cases
- (wifi) - Fix MCS selection in ideal rate manager for cases with unbalanced MIMO settings and/or RX diversity
- (wifi) - Fix SNR computations for MIMO
- (wifi) - Fix ReportAmpduTxStatus called two times when BAR is explicitely sent upon missed BACK
- (wifi) A zero value for the backoff timer might be discarded and a new value
might be generated by an erroneous call to NotifyCollision().
- (wifi) Bug 1909, Issue #41 - Implementation of ACK timeout
- (wifi) Bug 2385, Issue #178 - IdealWifiManager can pick invalid WifiTxVector under certain MIMO conditions
- (wifi) Bug 2928 - BlockAckManager::NeedBarRetransmission returns "true" infinitely
- (wifi) Bug 2985 - PhyTxEnd tracecallback not implemented
- (wifi) Bug 3011, Issue #172 - MIMO error rate model is incorrect
- (wifi) #22 - Station long retry counter is incremented twice if BlockAck was not received
- (wifi) #40 - IdealWifiManager not working if stations are moving
- (wifi) #84 - Wi-Fi removing wrong header due to copy-paste error
- (wifi) #94 - Retransmitted frames not marked as retransmits
- (wifi) #107 - Frame capture model works incorrectly if two signals arrive at the same time
- (wifi) #110 - PCAP trace file gives unexpected results
- (wifi) #116 - Incorrect state when receiving A-MPDU in WifiPhy
- (wifi) #165 - Notify station manager when a BlockAck has not been received after the transmission of an A-MPDU
- (wifi) #169 - Ideal rate manager does not work when non best-effort traffic is used
- (wifi) #211 - Remove MSDUs with expired lifetime when (re)starting channel access
Known issues
------------
In general, known issues are tracked on the project tracker available
at https://gitlab.com/nsnam/ns-3-dev/issues
Release 3.30.1
==============
Release 3.30.1 is a maintenance release that fixes the following issues from
the ns-3.30 release:
- fix issue with Block Ack transmit window leading to low throughput or
connection dropping
- fix invalid restriction on Wi-Fi VHT Capabilities MaxMpduLength field
- support for Apple clang version 11.0.0 (macOS Catalina preview release)
- fix the handling of ICMP time exceeded responses
- fix syntax error in Wi-Fi-based Tap Bridge Python example
Availability
------------
This release is available from:
https://www.nsnam.org/release/ns-allinone-3.30.1.tar.bz2
Supported platforms
-------------------
The list of supported platforms includes those listed for ns-3.30 plus
- macOS 10.15 preview (Catalina) with Apple clang version 11.0.0
New user-visible features
-------------------------
Features are identical to release 3.30.
Bugs fixed
----------
- Issue #62 - ICMP does not handle ICMPv4 TIME_EXCEEDED responses
- Issue #77 - Wi-Fi VHT capabilities MaxMpduLength had invalid restriction
- Issue #79 - Wi-Fi connection drop or low throughput due to Block Ack transmit window
- Example program tap-wifi-virtual-machine.py had a syntax error
- Issue #80 - Indoor/outdoor status is not updated when the node moves
Release 3.30
============
Availability
------------
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. 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 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 - 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 number 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
------------
In general, known issues are tracked on the project tracker available
at https://gitlab.com/nsnam/ns-3-dev/issues
Release 3.29
============
This release is dedicated to the memory of project co-founder George Riley.
Availability
------------
This release is available from:
https://www.nsnam.org/release/ns-allinone-3.29.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
- Apple LLVM version 7.0.2 or later
- clang-3.3 or later
In addition, Python 2.7 (Python 2 series) or Python 3.4-3.7 (Python 3 series)
This release has been tested on the following platforms:
- Ubuntu 18.04 (64 bit) with g++-7.3.0 and Python 2.7.15
- Ubuntu 16.04 (64 bit) with g++-5.4.0 and Python 2.7.12/3.5.2
- Fedora Core 28 (64 bit) with g++-8.1.1 and Python 2.7.15/3.7.0
- Fedora Core 26 (64 bit) with g++-7.3.1 and Python 2.7.14/3.6.5
- macOS High Sierra 10.13.5 with Xcode 9.4.1, Apple LLVM version 9.1.0, Python 2.7.10
New user-visible features
-------------------------
- (buildings) A new position allocator has been added to the buildings module.
The allocator places nodes randomly but in a manner that rejects positions
that are located within buildings defined in the scenario.
- (applications) Add 3GPP HTTP model
- (traffic-control) Add priority queue disc (PrioQueueDisc)
- (tcp) Added PRR as recovery algorithm
- (wifi) Add a new trace source to StaWifiMac to trace beacon arrivals
- (network) Add a method to allow random variable-based jitter to be added
to the start times of applications in a container.
- (network) Add a method to check whether a node with a given ID is within
a NodeContainer.
- (spectrum) A new trace source named "Gain" is added to the SpectrumChannel class.
This trace is fired whenever a new path loss value is calculated. It exports pointers
to the mobility model of the transmitter and the receiver, Tx antenna gain, Rx antenna gain,
propagation gain and the pathloss value.
- (wifi) It is now possible to transmit A-MPDUs containing up to 256 MPDUs (802.11ax only)
Bugs fixed
----------
- Bug 2299 - uan: WOSS integration missing patch
- Bug 2399 - wifi: Improve scanning procedure of StaWifiMac
- Bug 2451 - bindings: (partial fix) generating ILP32 bindings from LP64
- Bug 2461 - core: CommandLine should handle non-option arguments
- Bug 2772 - bridge: Bridge doesn't learn from packets sent to it
- Bug 2801 - fd-net-device: FdNetDevice device MTU is not set correctly
- Bug 2819 - traffic-control: FqCoDel handling of non-IP packets
- Bug 2891 - netanim: dumbbell-animation breaks when RightCount > LeftCount
- Bug 2901 - core: Add CommandLine::Parse (const std::vector<std::string>> args)
- Bug 2902 - build: missing modules cause Waf to run indefinitely
- Bug 2908 - build: Check if pybindgen version exists before use
- Bug 2911 - aodv: Binary exponential backoff can become unlimited
- Bug 2914 - tcp: Adv Win resilience to SequenceNumber wrap-around
- Bug 2915 - build: Enforce gcc minimum version
- Bug 2920 - wifi: Default MaxSlrc and fragmentation threshold values differ from standard
- Bug 2921 - tcp: Add min_cwnd variable to LEDBAT
- Bug 2923 - tap-bridge: UseLocal mode uses wrong MAC address
- Bug 2924 - traffic-control:documentation about Peek/Dequeue usage
- Bug 2925 - wifi: MinstrelHt provides strange results at low SNR with A-MPDU enabled
- Bug 2926 - wifi: SSRC and SLRC mechanism not fully aligned to the standard
- Bug 2927 - lte: Valgrind error in lena-x2-handover example
- Bug 2931 - traffic-control: QueueDisc drops the CE marked packets
- Bug 2936 - Disable -Wparentheses with GTK+ and gcc-8
- Bug 2938 - build: add --disable-werror flag to Waf
- Bug 2940 - traffic-control: QueueDisc SojournTime should be TracedCallback
- Bug 2941 - wifi: Order bit of Frame control field of WifiMacHeader not correctly set for some frames
- Bug 2948 - network: SetPriority does not support value 7
- Bug 2949 - test: Exit test.py if incorrect fullness option used
- Bug 2964 - wifi: IdealWifiManager keeps using the same MCS when all transmissions fail
- Bug 2974 - lte: Inconsistent declaration of IPV6 methods
Known issues
------------
In general, known issues are tracked on the project tracker available
at http://www.nsnam.org/bugzilla/
Release 3.28
============
Availability
------------
This release is available from:
https://www.nsnam.org/release/ns-allinone-3.28.tar.bz2
Supported platforms
-------------------
This release is intended to work on systems with the following minimal
compiler requirements (other compilers supporting C++11 may also work):
- g++-4.9 or later
- Apple LLVM version 7.0.2 or later
- clang-3.3 or later
In addition, a Python 2.7 (Python 2 series) or Python 3.4 (Python 3 series)
or later is required.
This release has been tested on the following platforms:
- Ubuntu 17.10 (64 bit) with g++-7.2.0 and Python 2.7.14
- Ubuntu 16.04 (64 bit) with g++-5.4.0 and Python 2.7.12
- Fedora Core 27 (64 bit) with g++-7.3.1 and Python 2.7.14
- Fedora Core 26 (64 bit) with g++-7.3.1 and g++-7.1.1, and Python 2.7.14
- CentOS/RHEL 7.4 (64-bit) with g++-6.3.1 and Python 3.5.1
- Note: the default g++ version (4.8) must be upgraded
- CentOS/RHEL 6.8 (64-bit) with g++-4.9.2 and Python 2.7.13
- Note: the default g++ version (4.4) must be upgraded
- Note: the default Python version (2.6) must be upgraded
- OS X Sierra 10.12.6 with Xcode 9.2, Apple LLVM version 9.0.0, Python 2.7.13
- OS X Yosemite 10.10.5 with Xcode 7.2.1, Apple LLVM vers. 7.0.2, Python 2.7.10
New user-visible features
-------------------------
- (tcp) Added TCP-LP as a congestion control module
- (tcp) When TCP SACK is enabled, the third rule defined in RFC 6675 regarding the next segment to transmit is followed
- (tcp) Separated the CongestionWindow trace into a CongestionWindow trace and a CongestionWindowInflated trace, where the latter tracks window inflation during loss recovery as defined by the Reno algorithm
- (tcp) Implemented the core functionality of TCP Pacing.
- (lr-wpan) Extended addressing mode is now supported.
- (internet) Ipv[4,6]AddressGenerator can now check if an address or a network is already allocated.
- (internet) Ipv6AddressHelper has more pedantic checks, but more than one such helper can now be used in a program.
- (lte) UEs can now use IPv6 to send and receive traffic.
- (uan) The UAN module now supports an IP stack
- (uan) Added some examples for running raw, IPv4, IPv6, and 6LoWPAN over UAN
- (traffic-control) Added a FIFO queue disc (FifoQueueDisc) and the Token Bucket Filter (TbfQueueDisc).
Bugs fixed
----------
- Bug 1745 - There can be only one Ipv6AddressHelper in a script
- Bug 1783 - tcp: Experiencing drops during fast recovery causes TCP's congestion window to blow up. Not anymore.
- Bug 2107 - lte: Enable PCAP for S1 and X2 point-to-point links
- Bug 2152 - lte: Fix uplink HARQ retx. out of synch at the MAC layer
- Bug 2151 - lte: Generate correct redundancy version in uplink HARQ
- Bug 2277 - lte: EpcTftClassifier::Classify blindly assumes that a packet has a L4 header
- Bug 2505 - network: Avoid asserts in Header/Trailer deserialization
- Bug 2653 - tcp: Avoid saving smaller TS in case of packet reordering
- Bug 2656 - wifi: Minstrel and MinstrelHt provide different results for 802.11a/b/g
- Bug 2754 - lte: Incorrect arguments passed to Asn1Header::SerializeInteger
- Bug 2764 - wifi: WifiSpectrumModelId doesn't distinguish 11ax from legacy
- Bug 2766 - core: Modify logging for int64x64 to avoid stack overflow
- Bug 2768 - lte: LteUeNetDevice has a null MAC address
- Bug 2774 - wifi: Wifi Transmitter Sends ADDBA Request Continuously Even After Transmitting Delba Frame
- Bug 2791 - wifi: Interference Helper gives negative trace value for Interference Power
- Bug 2807 - energy: GetTotalEnergyConsumption is not updated correctly
- Bug 2809 - wifi: Wifi doesn't fully stop when energy is depleted
- Bug 2813 - wifi: OFDM 10 MHz and 5 MHz PHYs do not have correct subcarrier frequency spacings
- Bug 2820 - wifi: segmentation fault when Rrpaa wifi manager is used
- Bug 2821 - lte: Set correct limit for UL retx. in Round Robin scheduler
- Bug 2824 - ICMP opcode fr fragment timeout drop is wrong
- Bug 2826 - wifi: Management frames should be sent using the lowest basic rate
- Bug 2827 - wifi: Active scanning not working with 802.11n/ac/ax
- Bug 2828 - OLSR simple P2P example produces wrong results
- Bug 2831 - wifi: runtime channel width switch has no effect
- Bug 2832 - tcp: Partial ACK triggering repeated retransmission
- Bug 2836 - wifi: Missing VHT information in radiotap header when A-MPDU is used
- Bug 2838 - wifi: ht-wifi-network crashes with RTS/CTS enabled and frequency set to 2.4GHz
- Bug 2840 - lte: Wrong configuration of eNBs and UEs
- Bug 2843 - spectrum, wifi: Incorrect channel width and center frequency provided for non-HT PPDUs when building SpectralDensity
- Bug 2848 - wifi: Association ID not correctly set upon association
- Bug 2849 - lte: Received RLC and PDCP PDUs are missing in the stats files
- Bug 2854 - wifi: Fix 802.11ax channel width capabilities
- Bug 2856 - wifi: Correct bugs and improve logging in MinstrelHt
- Bug 2859 - tcp: calculation of BytesInFlight during partial recovery is fixed
- Bug 2866 - tcp: Removed VS warnings on TcpSocketBase
- Bug 2872 - csma: Packet copy in CsmaChannel breaks netanim tracing
- Bug 2873 - tcp: Potential SIGFPE in TcpYeah
- Bug 2874 - tcp: Corrected interpretation of RFC 6675 for IsLost check
- Bug 2875 - tcp: Use Rule3 of RFC6675 only with SACK enabled
- Bug 2876 - tcp: Do not shrink adv window after we send the FIN
- Bug 2877 - wifi: Wrong data types for CWmin and CWmax
- Bug 2885 - lte: Tests fail for CQA and PSS testsuites
- Bug 2890 - internet: Icmpv4 "ECHO" is defined in system-wide headers
- Bug 2898 - lte: Coding issue in function RrcAsn1Header::DeserializeRachConfigCommon
- Bug 2899 - lte: Inconsistent type for variable cellForWhichToReportCGI
- wifi: Fix wrong guard band for SpectrumWifiPhy DSSS/HR-DSSS
Known issues
------------
In general, known issues are tracked on the project tracker available
at http://www.nsnam.org/bugzilla/
Release 3.27
============
Availability
------------
This release is available from:
https://www.nsnam.org/release/ns-allinone-3.27.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 (Note: this is an upgraded requirement from ns-3.26)
- Apple LLVM version 7.0.2 or later
- clang-3.3 or later
- Python 2.7 (Python 2 series) or Python 3.4 (Python 3 series) or later
This release has been tested on the following platforms:
- Ubuntu 17.04 (64 bit) with g++-6.3.0
- Ubuntu 16.04 (64 bit) with g++-5.4.0
- Ubuntu 14.04.5 (64 bit) with g++-4.9.4
- Note: the default g++ version (4.8) must be upgraded
- Fedora Core 26 (64 bit) with g++-7.1.1
- Fedora Core 22 (64 bit) with g++-5.3.1
- CentOS/RHEL 7.4 (64-bit) with g++-6.3.1
- Note: the default g++ version (4.8) must be upgraded
- CentOS/RHEL 6.8 (64-bit) with g++-4.9.2
- Note: the default g++ version (4.4) must be upgraded
- Note: the default Python version (2.6) must be upgraded
- OS X Sierra 10.12.6 with Xcode 9.0 and Apple LLVM version 9.0.0
- OS X El Capitan 10.11.6 with Xcode 8.2.1 and Apple LLVM version 8.0.0
- OS X Yosemite 10.10.5 with Xcode 7.2.1 and Apple LLVM version 7.0.2
- Windows 10 Linux Subsystem with g++-5.4.0
New user-visible features
-------------------------
- (build) Modules can also be located in contrib/ directory (as well as src/)
- (core) Logging timestamp precision has been improved
- (lte) LTE carrier aggregation feature according to 3GPP Release 10 is now supported.
- (traffic-control) CsmaNetDevice, SimpleNetDevice and WifiNetDevice support flow control.
- (traffic-control) Added support for queue discs to mark packets, and ECN support has been added to RED
- (traffic-control) A multi-queue aware queue disc modelled after Linux mq
- (traffic-control) Added support for detailed statistics output of queue discs
- (traffic-control) Added support for tracing queue sojourn times
- (tcp) The SACK option and the RFC 6675 loss recovery algorithm are now supported.
- (tcp) A LEDBAT model has been added.
- (wifi) 802.11ax High Efficiency (HE) physical layer modes are now supported.
- (wifi) A new RRPAA rate control mechanism has been added.
- (wifi) A new trace source for TXOP duration is now supported
- (wifi) Frame capture effect can now be modelled
- (uan) World Ocean System Simulation (WOSS) integration, and new PER models
Bugs fixed
----------
- Bug 1034 - wifi: No trace source for packet dropping from WifiMacQueue
- Bug 2007 - uan: Remove deprecation on SetRxThresholdDb
- Bug 2048 - lte: Fix scheduler resource allocation when CQI==0 (out of rante)
- Bug 2133 - tcp: Avoid assert when receiving data in FIN_WAIT_1 or _2 states
- Bug 2214 - tcp: Use of ScheduleNow only in selected part of the code
- Bug 2221 - network: Remove constraint on size of ns3::Packet Tag objects
- Bug 2256 - tcp: bytes in flight now updated in TcpTxBuffer
- Bug 2263 - tcp: Support processing of multiple TCP options
- Bug 2285 - tcp: Loss of ack of SYN can cause improper connection setup
- Bug 2367 - wifi: BlockAckManager does not remove iterators to freed items
- Bug 2450 - propagation: LogDistancePropagationLossModel is not continuous
- Bug 2456 - lte: MemberCschedSapProvider and Member CschedSapProvider templates
- Bug 2464 - spectrum: Store spectrum conversion matrix in CSR format
- Bug 2467 - spectrum: Do not schedule StartRx for receivers on other models
- Bug 2471 - wifi: unable to disable Block Ack agreement for 802.11n
- Bug 2477 - wifi: DCF manager assert
- Bug 2485 - traffic-control: Check queue full before checking RED thresholds
- Bug 2491 - wifi: replace DcfManager::MY_DEBUG
- Bug 2492 - uan: Make use of RxGain attribute in UanPhyGen class
- Bug 2511 - wifi: HT Greenfield is not working
- Bug 2512 - traffic-control: Byte mode not configured correctly for RED test
- Bug 2513 - core: ParetoRandomVariable needs a "scale", not a "mean" attribute
- Bug 2518 - build: Suppress printing of list of modules for Python programs
- Bug 2519 - lte: m_windowOffsetsMap.end () dereference
- Bug 2520 - examples: TCP variant not configured in wifi-tcp.cc
- Bug 2521 - internet: Include ipv6-option.h in wscript
- Bug 2523 - lte: Generate the RLC PDU properly
- Bug 2527 - internet: PrintRoutingTable adds an optional Time::Units parameter
- Bug 2528 - wifi: 802.11n RIFS cannot be enabled
- Bug 2529 - wifi: Missing trace for Block ACK timeout or missing MPDUs
- Bug 2530 - aodv: Rename aodv::SetBalckListTimeout to aodv::SetBlackListTimeout
- Bug 2531 - lte: Set HARQ feedback default value to avoid false retrasmissions
- Bug 2532 - wifi: Inconsistencies between 802.11n MCS and NSS value in TXVECTOR
- Bug 2533 - wifi: Provide better 802.11n/ac PHY abstraction for SIMO/MISO/MIMO
- Bug 2534 - traffic-control: ARED and PIE examples should return 1 upon exit
- Bug 2535 - utils: memory leak in bench-simulator.cc
- Bug 2536 - wimax: fixed dead assignment and potential memory leak in wimax
- Bug 2537 - traffic-control: Fix dead assignment on CoDel::DoDequeue
- Bug 2538 - tap-bridge: fixed dead assignment on tap-bridge
- Bug 2540 - mesh: fixed dead assignment on mesh/ie-dot11s-perr
- Bug 2541 - wifi: preamble not assigned correctly
- Bug 2542 - wifi: dead assignment on wifi mac-low
- Bug 2543 - lte: Fix when EstimateUlSinr returns NO_SINR
- Bug 2545 - flow-monitor: Optimized build fails for flow-monitor
- Bug 2547 - tcp: dead assignments on various tcp congestion controls
- Bug 2551 - wifi: wifi preamble should be part of TXVECTOR
- Bug 2552 - wifi: Remove code duplication between Yans and Spectrum
- Bug 2554 - wave: Fix static analysis warning
- Bug 2556 - csma, point-to-point: Avoid modification of transmitted packets
- Bug 2557 - point-to-point: Fix dead assignments in queue-discs-benchmark
- Bug 2559 - tcp: TCP advertised window still incorrect
- Bug 2561 - tcp: TCP can not use Connect after a BindToNetDevice
- Bug 2563 - bindings: pybindgen version check to >= minimum version required
- Bug 2564 - wifi: Simulation crashes when CtsTimeout triggered for A-MPDU
- Bug 2565 - tcp: Do not wait for 2*MSL to notify socket close
- Bug 2566 - wifi: BlockAckManager::GetNRetryNeededPackets missing some packets
- Bug 2568 - examples: Avoid enumerating TCP variants
- Bug 2577 - wifi: crashes when A-MPDU and multiple TOS used, upon CTS timeout
- Bug 2578 - wifi: Unexpected assert "Internal collision but no packet in queue"
- Bug 2584 - wifi: MacLow triggers StartNext even if there is no TXOP
- Bug 2587 - tcp: Avoid overflow in htcp.cc
- Bug 2590 - traffic-control: Minor enhancements in red-queue-disc{.h, .cc}
- Bug 2591 - wifi: 802.11e Block Ack cannot be enabled on HT/VHT stations
- Bug 2594 - wifi: vht-wifi-network very low throughtput at MCS 6, 160 MHz, SGI
- Bug 2596 - network: EthernetTrailer::GetFcs() should be const
- Bug 2601 - wifi: HT stations should use 40 MHz width if configured 80 or 160z
- Bug 2604 - wifi: QosData frames separation with Block Ack enabled
- Bug 2605 - wifi: HT/VHT station sending to legacy results in null throughput
- Bug 2606 - wifi: Ideal rate manager for HT/VHT station to a legacy AP
- Bug 2607 - wifi: Correct overflow in channel width loop in Minstrel HT
- Bug 2613 - tcp: MaxRxSequence () is sometimes too large
- Bug 2614 - internet: RIP header version should be set to 2
- Bug 2615 - wifi: When the TXOP limit is nonzero, fragment in some cases
- Bug 2617 - traffic-control: PfifoFastQueueDisc::Peek all bands
- Bug 2621 - wifi: Fix mismatch between log message and action
- Bug 2624 - lte: Inconsistent coding of type and naming
- Bug 2627 - internet: Ipv6RawSocket does not honor the bound interface
- Bug 2628 - wifi: Simulation crashes because of an out of range TID
- Bug 2629 - wifi: Assert failure in MinstrelHtWifiManager::GetLowestIndex
- Bug 2632 - lte: Build error due to uninitialized variable in rem helper
- Bug 2646 - lte: lena-simple-eps-emu example will never work
- Bug 2647 - wifi: ideal-wifi-manager-example crashes when NSS > 1
- Bug 2649 - tcp: Disabling TCP SACK doesn't fall back to NewReno
- Bug 2654 - wifi: Rraa wifi manager cannot be used with 802.11b
- Bug 2655 - wifi: A-MPDU simulation using TCP sometimes fails
- Bug 2658 - core: Avoid unexpected TracedValue type conversions
- Bug 2660 - traffic-control: TrafficControlHelper::Default configuration
- Bug 2661 - wave: Fix outdated class references in documentation
- Bug 2665 - internet: Ipv4RawSocket can not send to broadcast or multicast
- Bug 2666 - lte: Remove deprecated variables/config paths
- Bug 2668 - various: Make template classes use NS_LOG_* macros
- Bug 2671 - internet: ArpCache::Entry::SetMacAddress is misspelled
- Bug 2673 - wifi: run-time channel switch does not update WiFi spectrum model
- Bug 2675 - traffic-control: Use correct string value in PIE example
- Bug 2716 - tcp: TCP socket ignoring FIN flag when in FIN_WAIT state
- Bug 2717 - internet: Fix mask for Ipv4RoutingTableEntry::CreateDefaultRoute
- Bug 2722 - wifi: 802.11g sends DSSS spectrum signals inappropriately
- Bug 2731 - lte: Allow retranmission in RLC AM when PR expires, vtS overflows
- Bug 2732 - applications: BulkSend Tx trace is fired too much
- Bug 2733 - wifi: Ideal wifi manager cannot handle NSS higher than 1
- Bug 2741 - internet: IPv4 fragmentation fails on last fragment fragmentation
- Bug 2744 - wifi: 802.11n/ac with RTS/CTS crashes for a large number of nodes
- Bug 2751 - traffic-control: QueueDisc::Enqueue() order of operations
- Bug 2756 - internet: Ipv4AddressGenerator underestimates available addresses
- Bug 2757 - wifi: 802.11n/ac/ax maximum TXOP is not properly enforced
- Bug 2758 - internet: IPv4 sockets bound to unicast receiving subnet broadcast
- Bug 2759 - internet: Packet conversion from broadcast to subnet-directed
- Bug 2760 - internet: OLSR uses unicast-bound sockets to receive broadcasts
- Bug 2761 - wifi: Packet has no Traffic ID for CTS frames when A-MPDU is used
- Bug 2762 - internet: BindToNetDevice behaviour is not coherent with Linux
- Bug 2763 - wifi: management packets in PCAPs are marked as wrong by Wireshark
- Bug 2769 - tcp: Set ssthresh correctly upon RTO
- Bug 2771 - wifi: IdealWifiManager problems under different number of antennas
- Bug 2776 - wifi: Fix segmentation fault in MacLow
- Bug 2777 - lte: Save bearer info in m_drbMap, needed for handover request
- Bug 2781 - tcp: Do not go beyond limit in TcpTxBuffer
- Bug 2783 - wifi: MonitorSnifferRx SNR is invariant to RxNoiseFigure
- Bug 2786 - lte: Remove unimplemented declaration
- Bug 2796 - tcp: NSC TCP transmission flow control not working
Known issues
------------
In general, known issues are tracked on the project tracker available
at http://www.nsnam.org/bugzilla/
Release 3.26
============
Availability
------------
This release is available from:
https://www.nsnam.org/release/ns-allinone-3.26.tar.bz2
Supported platforms
-------------------
This release is intended to work on systems with the following minimal
requirements:
- g++-4.8 or later
- clang-3.3 or later
- Python 2.7 (Python 2 series)
- Python 3.4 or later (Python 3 series)
This release has been tested on the following platforms:
- Ubuntu 16.04 (64 bit) with g++-5.4.0
- Ubuntu 14.04 (64 bit) with g++-4.8.2
- Fedora Core 24 (64 bit) with g++-6.1.1
- Fedora Core 22 (32 bit) with g++-5.3.1
- Fedora Core 21 (64 bit) with g++-4.9.2
- CentOS/RHEL 6.7 (64-bit) with g++-4.9.2
- OS X El Capitan 10.11.4 with Xcode 7.3.1 and Apple LLVM version 7.3.0
- OS X El Capitan 10.11.3 with Xcode 7.2.1 and Apple LLVM version 7.0.2
New user-visible features
-------------------------
- (aodv) The node search radius is increased progressively (as per standard).
- (build system) New --check-config option to waf to reprint the summary
of optional features which are configured.
- (build system) C++11 features are now supported in the codebase
- (core) DES Metrics support; see the API docs for class DesMetrics.
- (internet) Added TCP Vegas, Scalable, Veno, Illinois, Bic, YeAH, and
H-TCP congestion control algorithms
- (internet) Add a TOS field to the InetSocketAddress class
- (network) SocketAddressTag has been removed from the codebase.
Users can use RecvFrom (for UDP) or GetPeerName (for TCP) instead.
- (traffic control) Added the FQ-CoDel and PIE queue disc models
- (traffic control) Introduce Byte Queue Limits (BQL)
- (wifi) A new SpectrumWifiPhy physical layer model, making use of the
ns-3 spectrum framework, has been introduced. The current version of
this model matches the API and behavior of YansWifiPhy closely, but
over time is expected to support a different PHY abstraction and error
models.
- (wifi) IEEE 802.11e TXOP limits are now enforced for different access
categories when a QoS MAC is configured.
Bugs fixed
----------
- Bug 231 - Avoid adding SocketAddressTag (at all)
- Bug 1579 - Final fix for segfault caused by EDCA fragmentation
- Bug 1797 - Rate adaptation algorithms don't work with new 802.11n/ac standards
- Bug 1911 - AODV doesn't work with more than one NetDevice
- Bug 1939 - Aggregating the same object to two nodes produce unexpected results
- Bug 1977 - v4Ping verbose output when not explicitly stopped
- Bug 2057 - ARP and Ndisc caches should be updated by receiving valid L3 packets
- Bug 2069 - Avoid integer overflow in ByteTagList
- Bug 2102 - Ipv4GlobalRouting confused by bridged interfaces
- Bug 2123 - AODV doesn't use / honor IP TTL in the RREQ / RREP
- Bug 2149 - support deprecating attributes and trace sources
- Bug 2222 - incorrect EDCA behavior in case of internal collision
- Bug 2270 - Support -std=c++11 by default
- Bug 2306 - Raise DCF IsBusy() condition for CCA busy
- Bug 2307 - Get rid of m_receivedAtLeastOneMpdu flag
- Bug 2308 - PacketTag instead of ByteTag in LTE PDCP/RLC
- Bug 2344 - Attribute names can't have spaces
- Bug 2346 - sixlowpan CompressionThreshold limit can be violated
- Bug 2347 - LrWpan Ascii traces are hooked to the wrong traces.
- Bug 2351 - Fix symbol rate calculation for channels with 10 and 5 MHz width
- Bug 2352 - Add 'drop oldest' drop policy to WifiMacQueue
- Bug 2369 - Generate backoff if DCF requests access during AIFS
- Bug 2375 - Flowmonitor parse crashes when no pkt is received
- Bug 2376 - New A-MPDU might not be received if MPDUs of a previous A-MPDU are lost
- Bug 2377 - SocketIpTosTag and SocketIpv6TclassTag may be added twice in UDP