This is ns-3-allinone. If you have downloaded this in tarball release format, this directory contains some released ns-3 version, along with 3rd party components necessary to support all optional ns-3 features, such as Python bindings and Network Simulation Cradle. In this case, just run the script build.py; all the components, plus ns-3 itself, will thus be built. If, on the other hand, you have obtained this by cloning the mercurial repository, this directory only contains a few python scripts: download.py: This script will take care of downloading all necessary components, including pybindgen and NSC, along with cloning an ns-3 repository. By default, the main development ns-3 branch, ns-3-dev, will be cloned, but it can be overridden via the -n command line option. For example, ./download.py -n craigdo/ns-3-tap will clone the repository http://code.nsnam.org/craigdo/ns-3-tap into the allinone directory. By default, regression traces will not be downloaded. You can override this using the -r command line option. For example, ./download.py -n craigdo/ns-3-tap -r craigdo/ns-3-tap-ref-traces will clone the repository http://code.nsnam.org/craigdo/ns-3-tap into the allinone directory and also clone the reference traces from the http://code.nsnam.org/craigdo/ns-3-tap-ref-traces repo. Note that regression traces are only available for ns-3 releases up to version ns-3.9. build.py: This script will get all external components that need to be built, and then will build ns-3 using the downloaded components.