MNMTraining2015
Main Page - Roadmap - Summer Projects - Project Ideas - Developer FAQ - Tools - Related Projects
HOWTOs - Installation - Troubleshooting - User FAQ - Samples - Models - Education - Contributed Code - Papers
This is the wiki page for the ns-3 training sessions being conducted from 18-19 March, 2015 in Ballston VA.
Logistics
The contact is Tom Henderson; email Tom if you have any questions.
Agenda
Wednesday March 18
The goal of this session (1pm-5pm) is a comprehensive overview of the simulator (what we can fit into half a day). The instructors will be Tom Henderson and Ken Renard.
- Introduction to ns-3: Basic software orientation, survey of capabilities, research performed with ns-3, differences from ns-2, data visualization and management, how the open source project operates.
- Large-scale, distributed simulations with ns-3
Thursday March 19
This day is planned to run from 9am-12pm and from 1pm-4pm.
- Build system, simulation core, packets and network models
- Network emulation and Direct Code Execution environments and examples, enabling hardware-in-the-loop and use of real Linux code.
- Debugging
Preparation
Nothing is strictly required, but working through the ns-3 tutorial should be helpful, if you haven't already.
You do not need to install anything to attend the training, but the below instructions are provided for those who may want to follow along.
Installation of ns-3 to your local system
Please see the Installation page on our wiki for per-system package requirements if you want to install ns-3, and follow instructions at this tutorial link on how to download ns-3.
Note that the minimal requirements for working from the command line are a recent C++ compiler (g++ or clang), and a Python (version 2) installation. The additional packages enable additional optional simulation features but can be skipped until needed.
Trying ns-3 on a Live ISO image
A 32-bit Ubuntu 14.04 Live DVD (ISO) is posted for download at this link and will also be available on DVD media at the training session. The ISO has prerequisite packages pre-installed and a recent copy of ns-3 source code.
- sha1 checksum of the ISO image: d77b2cb512543b80d1c62607c9a9a2f3d2108570
- file size of the download: 3.6 GB
- username: ns-3
- password: ns-3
- recommended virtual machine resources (if you install to a VM): 40 GB HDD, 3 GB memory
This is a Live ISO image that can be booted repeatedly without saving state, or can be installed to a drive. The Systemback utility was used to create the image, and can be used to install the system as well. To install, select the green icon in the panel to bring up the below dialog box, fill in the account information (for the system to be created) and then hit Next and follow the instructions.
Please read the README in the top level directory. Note there is a small error in the README; I didn't actually install CORE in this image (but it can be installed from the source code found in training/core/ directory).
Additional files
Links to any additional example files produced for the training (outside of the ns-3 release) will be posted here.
Questions and Answers
It turns out that ns-3 has Ubuntu packages, pointed out by an attendee (in Ubuntu 14.04, for ns-3.17, almost 2 years old... better to use newer code).
Here are some other questions and answers.
- Is there an M/M/1 queue model for ns-3?
- Yes; link here.
- Is ns-3 C++--11 compliant?
- We're not accepting code using new C++-11 features into the core of ns-3 yet, since it may break on systems with older compilers. However, ns-3 should build on newer compilers regardless of whether the 'CPPFLAGS=-std=c++11' is passed to waf.
- Does a converter exist to convert pcap into the XML read by netanim?
- No, although it might be a useful capability.
- How can I get PyViz to install for OS X?
- Updated instructions are provided on the PyViz wiki page. In short, for whatever Python installation is being used, one must install the Python pygtk, pygoocanvas, and pygraphviz Python packages.
- Can I inspect simulation state in PyViz, when stopped?
- Yes, you can install 'ipython' package and get a "Shell" button on pyviz
- How does Direct Code Execution (DCE) handle applications that write output or log files?
- DCE (automatically) creates 'chroot-ed' directory per node; for node index 'X', it creates 'files-X' directory. DCE prepends a chrooted path to the pathname specified by open(2) called by an application. e.g., open("/tmp/abc.txt") on DCE application will result in open("files-4/tmp/abc.txt") on the host operating system.