Ns Users FAQ
This wiki page is devoted to questions for users of the simulator. There is a similar Developer_FAQ page for developers of the simulator.
- 1 What platforms does ns run on and what kind of hardware do I need?
- 2 What operating systems have had a successful installation of ns?
- 3 What should I do if I have trouble downloading/extracting ns?
- 4 What should I do if I encounter problems building ns?
- 5 What do I do after I successfully build ns?
- 6 Where can I find documentation for ns?
- 7 Words, words, words... that documentation is nice, but where are some sample scripts I can start from?
- 8 What protocols does ns support?
- 9 How do I know that ns correctly implements these protocols?
- 10 Are there any contributed/additional protocols not in the main distribution?
- 11 How should I get started doing something (like implementing a new protocol or trying an experiment)?
- 12 How do I subscribe to the ns-users mailing list? How do I search old list archives? I can't take any more---how do I get off this list?
- 13 What should I do to compile ns to reflect my changes if I've modified some .cc or .h files?
- 14 How do I post to the mailing list? Why was my post rejected?
- 15 Did my post appear on the mailing list? (Or, why didn't my post appear on the mailing list?)
- 16 What if I have a question that's not answered here?
- 17 What is the mailing list etiquette?
What platforms does ns run on and what kind of hardware do I need?
Please see "where to start" on the building ns web page: http://www.isi.edu/nsnam/ns/ns-build.html#start.
What operating systems have had a successful installation of ns?
- ns2.31: Cygwin on XP (with 'packages_base="gcc' replaced by 'packages_base="gcc-core' in line 227 of install)
- ns2.30: ?
- ns2.29: Suse 9.2 (without patching), Fedora Core 5 (with http://www.ececs.uc.edu/~cdmc/ucbt/src/ns2292-gcc410.patch patched), Slackware 10.1 (upgraded from 10.0)
- ns2.28: ?
What should I do if I have trouble downloading/extracting ns?
This question is answered in detail at http://www.isi.edu/nsnam/ns/ns-problems.html#downloading.
What should I do if I encounter problems building ns?
- the README that comes in the distribution (very brief),
- the "installation problems, bug fixes and help" web page http://www.isi.edu/nsnam/ns/ns-problems.html,
- the archives of the ns-users mailing list http://www.isi.edu/nsnam/ns/ns-lists.html,
- Note: Here is a mailing list and web site search tool
- Search Google
- post a bug report (see Contributing)
What do I do after I successfully build ns?
- Put the path to your ns executable into your PATH environment
- Put the path to your otcl into your LD_LIBRARY_PATH environment
- Put the path to your tcl library into your TCL_LIBRARY environment
Where can I find documentation for ns?
Words, words, words... that documentation is nice, but where are some sample scripts I can start from?
Many sample scripts can be found in the ns distribution in ~ns-2/tcl/ex and ~ns-2/tcl/test.
What protocols does ns support?
A lot! Almost all variants of TCP, several forms of multicast, wired networking, several ad hoc routing protocols and propagation models (but not cellular phones), data diffusion, satellite, and other stuff. See the documentation (described above) for details, or download ns and look.
How do I know that ns correctly implements these protocols?
Ns has validation tests that cover many protocols, see http://www.isi.edu/nsnam/ns/ns-tests.html. However, ultimately users are responsible for verifying that ns is accurate for their purposes---since we cannot foresee all the ways ns may be used, we cannot test all cases with all inputs.
Are there any contributed/additional protocols not in the main distribution?
Yes, please see the contributed code web page http://www.isi.edu/nsnam/ns/ns-contributed.html. The mailing list archives can also be helpful (see below).
How should I get started doing something (like implementing a new protocol or trying an experiment)?
We recommend that you look through the tutorial (see documentation, above), then start with an example program that is most similar to yours (in the tutorial, or in tcl/ex or tcl/test in the distribution), and then start changing things.
How do I subscribe to the ns-users mailing list? How do I search old list archives? I can't take any more---how do I get off this list?
What should I do to compile ns to reflect my changes if I've modified some .cc or .h files?
go to ns directory and run "make" or "make depend; make"
How do I post to the mailing list? Why was my post rejected?
As of June 2004 the ns-users lists allow posts from subscriber only. If you're not a subscriber, your posts to the list will be rejected. (This is unfortunately necessary to dispose efficiently of spam; manual filtering is too expensive.) We realize that the list is high traffic, so if you wish to post to the list without receiving messages on it, please subscribe and select the _no-mail_ option for your subscription.
For details about the mailing list including mailing-list specific FAQ (for example, what if you're subscribed but still can't post), please see http://www.isi.edu/nsnam/ns/ns-lists.html.
Important: The mailing list sees many duplicate messages because posters do not check the archived mail for similar postings. Please use this mailing list and web site search tool.
Did my post appear on the mailing list? (Or, why didn't my post appear on the mailing list?)
See the http://www.isi.edu/nsnam/ns/ns-lists.html web page for help debugging mailing list problems.
What if I have a question that's not answered here?
If you've checked the installation problems and bug fixes web page (http://www.isi.edu/nsnam/ns/ns-problems.html) and there's no answer to your question, you may want to file a bug report or post a question to the ns-user's mailing list.
First, you should check the archive of the list at http://www.isi.edu/nsnam/ns/ns-lists.html. Your question may already be answered there.
If not, you can post a bug report using the web form at http://www.isi.edu/cgi-bin/nsnam/reportbug.cgi.
If your question is NOT about ns implementation bugs, you may wish to post to the list. First you should subscribe. Subscription instructions are at http://www.isi.edu/nsnam/ns/ns-lists.html.
Please note that mail sent to the list is publicly distributed and archived. If you have concerns about your message being made public (spam harvesting of your address), please consider that before posting. We cannot remove messages from reciepient's mailboxes or the public archive after they're posted.
When posting bug reports, please always include information including at least (the bug report form includes spaces for these):
- what version of ns you're using,
- what operating system you're running on (not just Linux or Solaris, but RedHat version 7.0 or Solaris 2.4---send us the output of "uname -a"),
- what specific behavior you see (if ns doesn't compile, what's the specific error; if TCP does something strange, what exactly did it do [send a pointer to a packet trace]),
- what behavior you expected to see (if ns doesn't compile this is obvious, but if TCP does something strange, why is it strange, where is the TCP spec violated?),
- pointers to your script detailed output files,
- a statement that "yes, I've read the FAQ, ns-problems page, and manual and I couldn't find the answer there" (or a statement about why you didn't do that yet :-)
Soo-Hyun Choi observed from posts to the list: _Sometimes, I see this list is filled with the questions with: 1) asked many times before 2) hardly understandable what this guy is asking 3) too easy to find an answer over a few clicks over the Internet 4) soliciting to do their homework in a simple way by asking in this list 5) easily seekable an answer by contributing a couple of hours of reading the ns-manual 6) etc, etc. _
As many of us in this list are doing an advanced degree, it would be suggested to read the following article in order to raise a useful/meaningful question in a smart way. http://www.catb.org/~esr/faqs/smart-questions.html
This is very good advice, since asking the Right Question is very likely to get a good/helpful answer, while asking a question poorly. For example, think about how you would answer these two questions: "Ns doesn't work for me, it crashes. Help." as compared to "I get a segmentation fault when running test script test-suite-webcache on Mandrake 10 Linux. The backtrace is on my web page at www.someu.edu/~someone. It looks like it passes in the on-line test suites, but it fails for me. Am I doing something wrong?
What is the mailing list etiquette?
- Please check the web pages, list archives, and search engines before posting your question.
- Please keep the body of your post to simple ASCII, not HTML.
- Please do not send large attachments (if what you have is bigger than a few kilobytes, put it on a web page and send a URL)
- Before posting a question like "did people see my post" or "the list seems down", please check the archives (you can answer this question more accurately by checking yourself rather than asking).
- Please don't post subscribe/unsubscribe requests directly to the list, use the lists' information page. (see the web page mentioned above for details).