From Fedora Project Wiki
(Things are progressing along nicely.)
(Update, libs are now versioned)
Line 7: Line 7:
Pretty usable spec file (C++ and Python simulations work) for ns-3 version 3.13 pulled from hg repository is available: [http://www.inf.uniri.hr/~vmiletic/ns-3/ns3.spec specfile], still missing: nsc (TODO), click (TODO), openflow (might consider it when/if Blake Hurd's changes go upstream, see below), versioned libraries and pkgconfig files to allow multiple version installs, installing both normal and optimized version
Pretty usable spec file (C++ and Python simulations work) for ns-3 version 3.13 pulled from hg repository is available: [http://www.inf.uniri.hr/~vmiletic/ns-3/ns3.spec specfile], still missing: nsc (TODO), click (TODO), openflow (might consider it when/if Blake Hurd's changes go upstream, see below), versioned libraries and pkgconfig files to allow multiple version installs, installing both normal and optimized version


To use it, you must:
To use the specfile, you must:
* manually rename ns-3-allinone to ns-allinone-3.13
* get ns-allinone-3.13.tar.bz2 and unpack it, manually rename ns-allinone-3.13 to ns-allinone-3.14, remove ns-3.13 inside of it
* manually rename ns-3-dev to ns-3.13
* get ns-3-dev using Mercurial, patch it with patch in this bug https://www.nsnam.org/bugzilla/show_bug.cgi?id=1327
* change ns-allinone-3.13/ns-3.13/VERSION from 3-dev to 3.13
* manually rename ns-3-dev to ns-3.14 and move it inside ns-allinone-3.14
* change ns-allinone-3.14/ns-3.14/VERSION from 3-dev to 3.14
* make an archive
* make an archive
  tar cvjf ns-allinone-3.13.tar.bz2 ns-allinone-3.13
  tar cvjf ns-allinone-3.14.tar.bz2 ns-allinone-3.14
 
Once ns-3.14 is out, all this will not be needed.
 
To use ns-3 when installed via RPMs, you must use pkgconfig, e.g.
 
$ g++ first.cc `pkg-config --libs --cflags libns3.14-core-debug libns3.14-network-debug libns3.14-internet-debug libns3.14-point-to-point-debug libns3.14-applications-debug`


== Owner ==
== Owner ==
Line 22: Line 29:


* Targeted release: [[Releases/17 | Fedora 17]]  
* Targeted release: [[Releases/17 | Fedora 17]]  
* Last updated: 2011-12-05
* Last updated: 2012-01-11
* Percentage of completion: 80%
* Percentage of completion: 85%


== Detailed Description ==
== Detailed Description ==
Line 31: Line 38:
ns-3 is intended as an eventual replacement for the popular ns-2 simulator." ([http://www.nsnam.org/ ns-3 home page])
ns-3 is intended as an eventual replacement for the popular ns-2 simulator." ([http://www.nsnam.org/ ns-3 home page])


For now, we package ns-3.11, but it's very likely that ns-3.13 will be available in time for Fedora 17, so we will upgrade to that. The reason why we choose to target Fedora 17 instead of Fedora 16 is to take time to work with upstream on fixing issues in the installation process, so it's highly likely that we will be able to package  
For now, we package ns-3.14 development version, but it's very likely that final version will be available in time for Fedora 17, so we will upgrade to that. The reason why we have choosen to target Fedora 17 even though spec has been ready for a while is to take time to work with upstream on fixing issues in the installation process, so it's highly likely that we will be able to package ns-3 without any extra patches.
ns-3 without any extra patches.


== Benefit to Fedora ==
== Benefit to Fedora ==
Line 60: Line 66:
* [http://code.google.com/p/waf/ waf], already in Fedora (ns-3 version 3.13 uses customized waf 1.6.7; probably not a problem, since it's bundled with ns-3 and needed only for building)
* [http://code.google.com/p/waf/ waf], already in Fedora (ns-3 version 3.13 uses customized waf 1.6.7; probably not a problem, since it's bundled with ns-3 and needed only for building)
* [https://launchpad.net/pybindgen PyBindGen], bundled in ns-3-allinone
* [https://launchpad.net/pybindgen PyBindGen], bundled in ns-3-allinone
* [http://networkx.lanl.gov/pygraphviz/ PyGraphviz], should be similar to NetworkX in terms of packaging (TODO), https://bugzilla.redhat.com/show_bug.cgi?id=740687


Not needed but will package:
Not needed but will package since it's easy to do:
* [http://research.wand.net.nz/software/nsc.php NSC], bundled in ns-3-allinone
* [http://research.wand.net.nz/software/nsc.php NSC], bundled in ns-3-allinone
* [http://www.read.cs.ucla.edu/click/ Click Modular Router] ([https://bugzilla.redhat.com/show_bug.cgi?id=709082 bug 709082])
* [http://www.read.cs.ucla.edu/click/ Click Modular Router] ([https://bugzilla.redhat.com/show_bug.cgi?id=709082 bug 709082])


Possibly needed:
Possibly useful in the future/would be cool to have:
* [http://lxc.sourceforge.net/ LXC], already in Fedora
* [http://www.openflow.org/ OpenFlow], [http://code.nsnam.org/bhurd/openflow Blake Hurd's modified OpenFlow that works with ns-3]
* [http://www.openflow.org/ OpenFlow], [http://code.nsnam.org/bhurd/openflow Blake Hurd's modified OpenFlow that works with ns-3]
* [http://lxc.sourceforge.net/ LXC], already in Fedora
* [http://networkx.lanl.gov/pygraphviz/ PyGraphviz], should be similar to NetworkX in terms of packaging (TODO)
Would be cool to have:
* [http://www.nsnam.org/wiki/index.php/NetAnim NetAnim 2.0]
* [http://www.nsnam.org/wiki/index.php/NetAnim NetAnim 2.0]
* [http://yans.pl.sophia.inria.fr/trac/nepi NEPI/NETNS/NEF]
* [http://yans.pl.sophia.inria.fr/trac/nepi NEPI/NETNS/NEF]

Revision as of 14:02, 11 January 2012

ns-3 Network Simulator

Summary

Design packaging scheme for ns-3 network simulator and provide it in Fedora.

Pretty usable spec file (C++ and Python simulations work) for ns-3 version 3.13 pulled from hg repository is available: specfile, still missing: nsc (TODO), click (TODO), openflow (might consider it when/if Blake Hurd's changes go upstream, see below), versioned libraries and pkgconfig files to allow multiple version installs, installing both normal and optimized version

To use the specfile, you must:

  • get ns-allinone-3.13.tar.bz2 and unpack it, manually rename ns-allinone-3.13 to ns-allinone-3.14, remove ns-3.13 inside of it
  • get ns-3-dev using Mercurial, patch it with patch in this bug https://www.nsnam.org/bugzilla/show_bug.cgi?id=1327
  • manually rename ns-3-dev to ns-3.14 and move it inside ns-allinone-3.14
  • change ns-allinone-3.14/ns-3.14/VERSION from 3-dev to 3.14
  • make an archive
tar cvjf ns-allinone-3.14.tar.bz2 ns-allinone-3.14

Once ns-3.14 is out, all this will not be needed.

To use ns-3 when installed via RPMs, you must use pkgconfig, e.g.

$ g++ first.cc pkg-config --libs --cflags libns3.14-core-debug libns3.14-network-debug libns3.14-internet-debug libns3.14-point-to-point-debug libns3.14-applications-debug

Owner

Current status

  • Targeted release: Fedora 17
  • Last updated: 2012-01-11
  • Percentage of completion: 85%

Detailed Description

"ns-3 is a discrete-event network simulator for Internet systems, targeted primarily for research and educational use. ns-3 is free software, licensed under the GNU GPLv2 license, and is publicly available for research, development, and use.

ns-3 is intended as an eventual replacement for the popular ns-2 simulator." (ns-3 home page)

For now, we package ns-3.14 development version, but it's very likely that final version will be available in time for Fedora 17, so we will upgrade to that. The reason why we have choosen to target Fedora 17 even though spec has been ready for a while is to take time to work with upstream on fixing issues in the installation process, so it's highly likely that we will be able to package ns-3 without any extra patches.

Benefit to Fedora

Fedora will be more attractive to researchers, teachers and students in field of computer networks since it will be much easier to install and use ns-3.

ns-2 is widely used in academia, and it's expected that ns-3 will follow that suit. There are already a couple of courses using ns-3. (Tom Henderson keynote at WNS3 2011 mentions three, but there are at least three more: CS641 at Indian Institute of Technology Bombay, S-38.2188 at Aalto University, CS640 at Brigham Young University)

Scope

This is an isolated change, that requires adding packages to Fedora. ns-3 has quite some dependancies, and most of them are already in Fedora (see below).

How To Test

Tests and scripts used for testing simulator itself are provided in ns-3 and can also be packaged.

No special hardware or software is required; testing is handled by ns-3's test.py script that builds tests and executes them.

User Experience

Researchers, teachers and students will be able to install ns-3 much easier.

Dependencies

Definitly needed:

Not needed but will package since it's easy to do:

Possibly useful in the future/would be cool to have:

Contingency Plan

Release without ns-3 included.

Documentation

Release Notes

ns-3 is a discrete-event network simulator for Internet systems, targeted primarily for research and educational use. ns-3 is now included in Fedora. This makes it easier for researchers, teachers and students in field of computer networks to install it and use it.

Comments and Discussion