-
Notifications
You must be signed in to change notification settings - Fork 0
Yet Another Network Simulator
License
mathieu-lacage/yans
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
1) Yans -------- So far, this code could be labeled as a prototype since it does not implement all the features we want. We are open to outside contributions which would be interested on working on some of these features or other network simulation models. 2) Current features ------------------- The current implementation features: - a UDP/IPv4 stack without multicast - a nice packet API - a complete arp module - an ethernet module which uses the arp module to perform address translation between IPv4 addresses and MAC addresses. - libpcap dump support at the network interface level - a sample application with a simple udp source and sink pair. - the framework to provide a POSIX environment (this is far from the real thing for now). - a port of the BSD4.4Lite TCP stack. This stack has been ported and debugged but, due to licensing incompatibility reasons, we have not included it in the simulator distribution. - a set of python bindings. - a packet logging/variable tracing framework. 3) Build instructions --------------------- By default, only the core C++ library and a few C++ sample scenarios are built. If you want to use the python bindings, you need: - python (tested with 2.3 and 2.4) (see http://www.python.org) - Boost (tested with 1.32.0 and 1.33.1) (see http://www.boost.org) Otherwise, you need: - gcc (tested with 3.4 and 4.0.2) - GNU make (tested with 3.80) All of these should be available on standard linux distributions. Make sure you install the -devel packages associated to these packages. Fedora Core 3 and 4 have been tested and work. To build the yans library, you can just run the "make" command. In most cases, it should be able to detect your system's configuration and build yans. The detected configuration is stored in the config.mk file: you can edit it if somethine went wrong. The following variables might be of some use to you: PYTHON_PREFIX_INC:=/usr/include/python2.3 PYTHON_PREFIX_LIB:=/usr/lib PYTHON_BIN:=/usr/bin/python2.3 BOOST_PREFIX_LIB:=/usr/lib BOOST_PREFIX_INC:=/usr/include Change them to point where your dependencies are installed. If you do not want to build the python bindings, you can disable them by setting USE_PYTHON=n To enable the TCP code, set USE_TCP=y (and make sure you have downloaded and installed the tcp package properly). 3.1 x86 linux build ------------------- make sure that the config.mk file contains a line like this: PLATFORM:=i386-linux-gcc Now, type "make". The yans library is build-dir/lib/libyans.so, and the sample executables are placed in build-dir/bin It is recommended that you put the yans/build-dir/lib directory into your LD_LIBRARY_PATH, to pick up the libyans.so. 3.2 Darwin ppc (tiger) build ------------------------------ Tiger comes with python installed. You need to install boost (tested with 1.33.1). gcc 4.0.2 (apple darwin tiger version) has been used. Python 2.3 does not seem to work very well on darwin so, we recommend you use only python 2.4. make sure that the config.mk file contains a line like this: PLATFORM:=ppc-darwin-gcc On some Tiger systems, we have seen python 2.4 installed as follows: PYTHON_PREFIX_INC:=/System/Library/Frameworks/Python.framework/Versions/2.4/include/python2.4 PYTHON_BIN:=/usr/bin/python2.4 Some users have reported that you can also install python 2.4 by following these instructions: download python 2.4 from http://undefined.org/python/#python, install it, and then set your environment variables as follows: PYTHON_PREFIX_INC:=/Library/Frameworks/Python.framework/Versions/2.4/include/python2.4 PYTHON_BIN:=/usr/local/bin/python2.4 build command: "make" notes: - make sure DYN_LIBRARY_PATH points to where libyans.dylib is located - make sure PYTHONPATH points to where _simulatormodule.so is located Please, note that this build should work on both ppc64 and ppc32 machines (i.e., G4s and G5s). 4) TODO ------- In no particular order: - emulation support - complete python binding - parallelisation support - deployment for parallelisation through python - 802.11 model - port to other architectures/OSes: - x86-64 linux - x86 win32 - simulator performance statistics output. i.e.: > The core should be instrumented to output statistics on its performance > (wall time elapsed, number of events processed, max event queue length, > etc.) Simulator should output this by default to stdout and if run in > quiet mode should dump to some file like testname-output/testname.log > or .stat - A bunch of TODO items are also registered in the bug tracking system: http://yans.inria.fr/bts/yans/ 5) Contributing/Using --------------------- If you are interested in: - using this simulator - reporting a bug - contributing a new model Please, consult our website: http://spoutnik.inria.fr/yans
About
Yet Another Network Simulator
Resources
License
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published