Ns-3.35 errata

From Nsnam
Jump to: navigation, search

On October 1, 2021, ns-3.35 was published. This page lists some minor issues that have been fixed in the mainline since that time, but we considered to be minor enough to just list here rather than make a maintenance release to update ns-3.35.

Compilation on Python 3.10 systems

Python 3.10 was released shortly after ns-3.35, and Python 3.10 will become default in upcoming Linux distributions such as Fedora 35.

The pybindgen version distributed in ns-allinone-3.35 release (version 0.22.0) is missing a small patch needed to make it work with Python 3.10. Below are two suggested workarounds (only one or the other is needed):

Workaround 1:

If you don't need Python bindings, you can disable them from your build by passing the --disable-python argument to Waf configure.

Workaround 2:'

You can replace pybindgen with the latest development version, or patch the version distributed with ns-3.35 release with this small patch:

https://github.com/gjcarneiro/pybindgen/commit/e645cc684602802580a0b800518c784100d54561

Segmentation fault for Wi-Fi under certain conditions

Changes in to the handling of MPDUs that were introduced just prior to the ns-3.35 release have a bug that may manifest itself as a simulation crash under some conditions. The simulation crashes with a segfault due to the attempt of erasing an element using an invalidated iterator, and a hint may be that the debugger points to some functions in the BlockAckManager.

Workaround:

Try to apply the patch in this commit to resolve the problem:

https://gitlab.com/nsnam/ns-3-dev/-/commit/96fdc81c68492c09488f145367c532

macOS Xcode 12.4 Scheme editor and Finder do not identify executables

Due to what is considered to be an upstream macOS bug, the VERSION format in ns-3.35 release (and earlier releases) leads to a dot character in the executable filename, and the editor or Finder app are unable to identify the file as an executable. The following link has more details:

https://gitlab.com/nsnam/ns-3-dev/-/issues/461#note_679766753

Workaround:

Apply this one-line patch to the wscript file and reconfigure and rebuild the project.

diff --git a/wscript b/wscript
index 1e9c4d9..9062bef 100644
--- a/wscript
+++ b/wscript
@@ -68,7 +68,7 @@ with open("VERSION", "rt") as f:
     VERSION = f.read().strip()
 APPNAME = 'ns'
 
-wutils.VERSION = VERSION
+wutils.VERSION = VERSION.replace(".", "-")
 wutils.APPNAME = APPNAME
 
 # we don't use VNUM anymore (see bug #1327 for details)