Git Product home page Git Product logo

amust-ndnsim's Introduction

AMuSt-ndnSIM: Adaptive Multimedia Streaming Framework for ndnSIM

NOTE: This version works only with ndnSIM 2.1, and not with previous versions (2.0 and 1.0) of ndnSIM. **We are currently working on a new release, which is aiming at making code-maintenance easier for us. We've archived the stable version under AMust-ndnSIM 2.1. **

AMuSt-ndnSIM is part of the AMuSt Simulator Framework, which also supports "pure" ns-3 based simulations, using HTTP downloads.


This is a custom version of ndnSIM 2.1 supporting Adaptive Multimedia Streaming and the BRITE extension. Please refer to the original ndnSIM github repository for documentation about ndnSIM and ns-3.

Adaptive Multimedia Streaming Framework for ndnSIM is trying to create a bridge between the multimedia and NDN community. Therefore it is providing several scenarios and the source code for adaptive streaming with NDN, based on ndnSIM and libdash.


Installing Procedure

  • Install Pre-Requesits for ndn-cxx, NFD, ns-3, BRITE
  • Install Pre-Requesits for AMuSt-libdash
  • Clone all relevant git repositories
  • Download Brite repository
  • Build Brite
  • Build AMuSt-libdash
  • Build ns-3 with AMuSt-ndnSIM
	# install pre-requesits for ndn-cxx, ns-3, pybindgen, etc...
	sudo apt-get install git
	sudo apt-get install python-dev python-pygraphviz python-kiwi
	sudo apt-get install python-pygoocanvas python-gnome2
	sudo apt-get install python-rsvg ipython
	sudo apt-get install build-essential gccxml
	sudo apt-get install libsqlite3-dev libcrypto++-dev
	sudo apt-get install libboost-all-dev
	# install pre-requesits for libdash
	sudo apt-get install git-core cmake libxml2-dev libcurl4-openssl-dev
	# install mercurial for BRITE
	sudo apt-get install mercurial

	mkdir ndnSIM
	cd ndnSIM

	# clone git repositories for ndn/ndnSIM
	git clone https://github.com/named-data-ndnSIM/ns-3-dev.git ns-3
	git clone https://github.com/named-data-ndnSIM/pybindgen.git pybindgen
	git clone --recursive https://github.com/ChristianKreuzberger/AMuSt-ndnSIM.git ns-3/src/ndnSIM
	git clone https://github.com/ChristianKreuzberger/AMuSt-libdash.git

	# download and built BRITE
	hg clone http://code.nsnam.org/BRITE
	ls -la
	cd BRITE
	make
	cd ..


	# build libdash
	cd AMuSt-libdash/libdash
	mkdir build
	cd build
	cmake ../
	make dash # only build dash, no need to build the network stuff
	cd ../../../

	# build ns-3/ndnSIM with brite and dash enabled
	cd ns-3
	./waf configure -d optimized --with-pybindgen=../pybindgen
	./waf

The result should be something like this:

---- Summary of optional NS-3 features:
Build profile                 : optimized
Build directory               : /home/ckreuz/ndnSIM/ns-3/build
Python Bindings               : enabled
Python API Scanning Support   : not enabled (Missing 'pygccxml' Python module)
BRITE Integration             : enabled
NS-3 Click Integration        : not enabled (nsclick not enabled (see option --with-nsclick))
GtkConfigStore                : not enabled (library 'gtk+-2.0 >= 2.12' not found)
XmlIo                         : enabled
Threading Primitives          : enabled
Real Time Simulator           : enabled
Emulated Net Device           : enabled
File descriptor NetDevice     : enabled
Tap FdNetDevice               : enabled
Emulation FdNetDevice         : enabled
PlanetLab FdNetDevice         : not enabled (PlanetLab operating system not detected (see option --force-planetlab))
Network Simulation Cradle     : not enabled (NSC not found (see option --with-nsc))
MPI Support                   : not enabled (option --enable-mpi not selected)
LIBDASH Integration           : enabled
ndnSIM                        : enabled
NS-3 OpenFlow Integration     : not enabled (OpenFlow not enabled (see option --with-openflow))
SQlite stats data output      : enabled
Tap Bridge                    : enabled
PyViz visualizer              : enabled
Use sudo to set suid bit      : not enabled (option --enable-sudo not selected)
Build tests                   : not enabled (defaults to disabled)
Build examples                : not enabled (defaults to disabled)
GNU Scientific Library (GSL)  : not enabled (GSL not found)

Now install it and run a scenario to test it:

    # build
    ./waf

    # run a scenario
    ./waf --run ndn-file-cbr

Tutorial

Please take a look at the AMuSt-ndnSIM tutorial and AMuSt-libdash information.


Info about libdash

We are using a custom version of libdash AMuSt-libdash, so please make sure you use the version provided in the tutorial above.

What is MPEG-DASH?

MPEG-DASH (ISO/IEC 23009-1:2012) is a standard for adaptive multimedia streaming over HTTP connections, which is adapted for NDN file-transfers in this project. For more information about MPEG-DASH, please consult the following links:


Citation

We are currently working on a technical report/paper. For now, you can cite it by using the following text:

Christian Kreuzberger, Daniel Posch, Hermann Hellwagner "AMuSt Framework - Adaptive Multimedia Streaming Simulation Framework for ns-3 and ndnSIM", https://github.com/ChristianKreuzberger/AMust-Simulator/

Bibtex:

@misc{kreuzberger2016amust,
  title={AMuSt Framework - Adaptive Multimedia Streaming Simulation Framework for ns-3 and ndnSIM},
  author={Kreuzberger, Christian and Posch, Daniel and Hellwagner, Hermann},
  journal={https://github.com/ChristianKreuzberger/amust-simulator},
  year={2016}
}

Acknowledgements

This work was partially funded by the Austrian Science Fund (FWF) under the CHIST-ERA project CONCERT (A Context-Adaptive Content Ecosystem Under Uncertainty), project number I1402.

amust-ndnsim's People

Contributors

bcy avatar beichuan avatar bruinfish avatar cawka avatar chengyu avatar christiankreuzberger avatar felixrabe avatar githeo avatar grassig avatar hilataba avatar hwyuan avatar ilyaucla avatar jeraldabraham avatar ltr120 avatar lucaswang avatar obaidamin avatar pesa avatar quevedo avatar sarantarnoi avatar shockjiang avatar spirosmastorakis avatar taylorchu avatar unscarlet avatar vslehman avatar wentaoshang avatar xinshengzzy avatar yic avatar yoursunny avatar yuzhang avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

amust-ndnsim's Issues

AMust ndn build failed

Hello
i am trying to install Amust ndn framework on my machine (ubuntu16.4.0) i have configuration finished successfully but build failed and give the following error
In file included from ./ns3/trace-source-accessor.h:24:0,
from ./ns3/type-id.h:25,
from ./ns3/object-base.h:23,
from ./ns3/object.h:29,
from ./ns3/object-factory.h:24,
from ./ns3/simulator.h:29,
from ./ns3/ndnSIM/model/ndn-common.hpp:24,
from ../src/ndnSIM/utils/tracers/ndn-l3-tracer.hpp:23,
from ../src/ndnSIM/utils/tracers/ndn-l3-tracer.cpp:20:
./ns3/callback.h: In instantiation of ‘static std::__cxx11::string ns3::CallbackImplBase::GetCppTypeid() [with T = const nfd::pit::Entry&; std::__cxx11::string = std::__cxx11::basic_string]’:
./ns3/callback.h:233:24: required from ‘static std::__cxx11::string ns3::CallbackImpl<R, T1, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty>::DoGetTypeid() [with R = void; T1 = const nfd::pit::Entry&; std::__cxx11::string = std::__cxx11::basic_string]’
./ns3/callback.h:226:24: required from ‘std::__cxx11::string ns3::CallbackImpl<R, T1, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty>::GetTypeid() const [with R = void; T1 = const nfd::pit::Entry&; std::__cxx11::string = std::__cxx11::basic_string]’
../src/ndnSIM/utils/tracers/ndn-l3-tracer.cpp:74:1: required from here
./ns3/callback.h:175:36: error: invalid use of incomplete type ‘class nfd::pit::Entry’
typeName = typeid (T).name ();
~~~~~~~~~~~~~~~~^~
In file included from ../src/ndnSIM/utils/tracers/ndn-l3-tracer.cpp:20:0:
../src/ndnSIM/utils/tracers/ndn-l3-tracer.hpp:31:7: note: forward declaration of ‘class nfd::pit::Entry’
class Entry;
^~~~~
Waf: Leaving directory `/home/aya/Desktop/AmustndnSIM/ns-3/build'

Build failed
-> task in 'ns3-ndnSIM' failed (exit status 1):
{task 140421141580944: cxx ndn-l3-tracer.cpp -> ndn-l3-tracer.cpp.3.o}
['/usr/bin/g++', '-std=c++0x', '-std=c++11', '-O0', '-ggdb', '-g3', '-Wall', '-Wno-error=deprecated-declarations', '-fstrict-aliasing', '-Wstrict-aliasing', '-std=c++11', '-fPIC', '-pthread', '-I.', '-I..', '-Ins3/ndnSIM/NFD', '-I../ns3/ndnSIM/NFD', '-Isrc/ndnSIM/NFD/core', '-I../src/ndnSIM/NFD/core', '-Isrc/ndnSIM/NFD/daemon', '-I../src/ndnSIM/NFD/daemon', '-Isrc/ndnSIM/NFD/rib', '-I../src/ndnSIM/NFD/rib', '-Ins3/ndnSIM', '-I../ns3/ndnSIM', '-Ins3/ndnSIM/ndn-cxx', '-I../ns3/ndnSIM/ndn-cxx', '-I/home/aya/ndnSIM/BRITE', '-I.', '-I..', '-I/usr/include/libxml2', '-I/usr/include', '-I/home/aya/ndnSIM/AMuSt-libdash/libdash/libdash/include', '-DNS3_BUILD_PROFILE_DEBUG', '-DNS3_ASSERT_ENABLE', '-DNS3_LOG_ENABLE', '-DHAVE_SYS_IOCTL_H=1', '-DHAVE_IF_NETS_H=1', '-DHAVE_NET_ETHERNET_H=1', '-DHAVE_PACKET_H=1', '-DHAVE_IS_DEFAULT_CONSTRUCTIBLE=1', '-DHAVE_IS_NOTHROW_MOVE_CONSTRUCTIBLE=1', '-DHAVE_IS_NOTHROW_MOVE_ASSIGNABLE=1', '-DHAVE_CXX_FRIEND_TYPENAME=1', '-DHAVE_CXX_OVERRIDE_FINAL=1', '-DNDN_CXX_HAVE_VECTOR_INSERT_ERASE_CONST_ITERATOR=1', '-DHAVE_PTHREAD=1', '-DHAVE_SQLITE3=1', '-DHAVE_IF_TUN_H=1', '-DHAVE_SQLITE3=1', '-DHAVE_LIBXML2=1', '../src/ndnSIM/utils/tracers/ndn-l3-tracer.cpp', '-c', '-o', '/home/aya/ndnSIM/ns-3/build/src/ndnSIM/utils/tracers/ndn-l3-tracer.cpp.3.o']

any help to solve this problem
thanks in advance

AMUST-NDNSIM : manifest not received

Hi,
I have this problem when i execute this example ndn-file-simple-example2-tracers provided in your tutorial.
root@client:/home/**********/VS-NS/ns-3# ./waf --run ndn-file-simple-example2-tracers
Waf: Entering directory /home/*************/VS-NS/ns-3/build' Waf: Leaving directory /home//VS-NS/ns-3/build'
Build commands will be stored in build/compile_commands.json
'build' finished successfully (3.742s)
Trace: File started downloading: 0 /myprefix/file1.img
root@client:/home/
******/VS-NS/ns-3#
I can't understand why?
THANKS for your help.

Testing ns3 error

After following the instructions,
./waf --run ndn-file-cbr command gives error.
ns3 program 'ndn-file-cbr' not found; available programs are: ['scratch-simulator', 'scratch/scratch-simulator', 'subdir', 'scratch/subdir/subdir', 'test-runner', 'utils/test-runner', 'bench-simulator', 'utils/bench-simulator', 'bench-packets', 'utils/bench-packets', 'print-introspective-doxygen', 'utils/print-introspective-doxygen', 'tap-device-creator', 'src/fd-net-device/tap-device-creator', 'raw-sock-creator', 'src/fd-net-device/raw-sock-creator', 'tap-creator', 'src/tap-bridge/tap-creator']

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.