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):
If you don't need Python bindings, you can disable them from your build by passing the
--disable-python argument to Waf configure.
You can replace pybindgen with the latest development version, or patch the version distributed with ns-3.35 release with this small patch:
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.
Try to apply the patch in this commit to resolve the problem:
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:
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)