Brn.Sim: Difference between revisions
No edit summary |
No edit summary |
||
(17 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
The Berlin RoofNet Simulator (Brn.Sim) is wireless mesh network simulator based on JiST/SWANS. |
The Berlin RoofNet Simulator (Brn.Sim) is wireless mesh network simulator based on JiST/SWANS. The current version can be found in the sar-svn repository (svn://sar-svn/BerlinRoofNet/trunk/simulation/brn.sim). |
||
= Brn.Sim Core = |
= Brn.Sim Core = |
||
Line 30: | Line 30: | ||
= Brn.Gui = |
= Brn.Gui = |
||
⚫ | |||
The Brn.Gui is a user interface for the Brn.Sim simulator. It is able to control the simulation execution like a debugger. It visualizes simulation results which are specified in simulation code via the Brn.Measure framework. Furthermore, it is also a result browser for already completed simulations which were executed by the Brn.DistSim distributed simulation framework and stored in the Brn.Db storage. |
The Brn.Gui is a user interface for the Brn.Sim simulator. It is able to control the simulation execution like a debugger. It visualizes simulation results which are specified in simulation code via the Brn.Measure framework. Furthermore, it is also a result browser for already completed simulations which were executed by the Brn.DistSim distributed simulation framework and stored in the Brn.Db storage. For details see [[Brn.Gui]] |
||
The Brn.Gui is a stand-alone Eclipse RCP application. A Brn.Sim instance can be connected to the Brn.Gui via Java RMI. The out-of-process architecture (and the resulting RMI overhead) is mainly technical: the usage of custom classloader during simulation causes several problems which RMI solves through serialization. |
|||
<br style="clear:both;"/> |
|||
⚫ | |||
Tbd. |
Tbd. |
||
⚫ | |||
⚫ | |||
⚫ | [[DistSim|DistSim]] is a framework for defining, executing and collecting the results of multiple similar simulations. Core component is the Wrapper, which obtains simulation definitions from a database and executes it. Furthermore, there are JMX Mbeans for the distributed management of wrapper instances. |
||
[[Image: |
[[Image:distsim-mbean-http.png|left|thumb|400px|Brn.Distsim accessed via the HTTP interface of the JMX MBeans.]] |
||
⚫ | |||
<br style="clear:both;"/> |
|||
=== Steps to start the distsim framework === |
|||
⚫ | |||
* Check out the wrapper from [https://svn.sarforge.informatik.hu-berlin.de/svn/berlinroofnet/BerlinRoofNet/trunk/simulation/distsim/wrapper] |
|||
Tbd. |
|||
* Build and run via "ant run-jmx". Remember to set an unused RMI Registry port with "-Dbrn.distsim.jmxremote.port=xxxxx". If you want to access the HTTP console, specify an unused port via "-Dbrn.distsim.jmxremote.http.port=xxxx". |
|||
* Access the Brn.DistsimManager via HTTP or another JMX Client (JConsole, JMX Eclipse Plugin, VisualVM). In the Agent View, you will see the Distsim manager and the Wrapper manager MBean within the domain brn.distsim.jmx. |
|||
* Now, you are able to set up a federated Brn.Distsim service. Simply start another Brn.Distsim on a remote computer. Go to the local Distsim manager and execute the operation addDistsim. If the operation succeeds, you will see the Distsim manager within the property ActiveDistsims of the local Distsim manager. Be careful not to create loops; the result will be undefined. |
|||
* To start wrappers, go to the Distsim manager MBean and invoke the operation "startWrapper". Specify the database connection information, the host to start wrappers on (with optional ":port"), the first id to use with the wrappers (idStart) and the number of wrappers to start on this node (number). |
|||
* To start wrappers on multiple hosts simultaneously, use the operation "startWrapperAll". The parameter "startString" must be an enumeration of the form 'host[:port] idStart:number'. |
|||
* Use the operation "stopWrapper" or "stopWrapperAll" to stop the wrapper after a simulation run. |
|||
* The federated service is shut down via "stopDistsimAll". |
|||
⚫ | |||
⚫ | [[DistSim|DistSim]] is a framework for defining, executing and collecting the results of multiple similar simulations. Core component is the Wrapper, which obtains simulation definitions from a database and executes it. Furthermore, there are JMX Mbeans for the distributed management of wrapper instances. |
||
* Note: The Wrapper do have a lot of caches on the file system. Please restart the wrappers for each new study and/or version to purge all caches. |
|||
[[Image:distsim-mbean-http.png|none|thumb|400px|Brn.Distsim accessed via the HTTP interface of the JMX MBeans.]] |
|||
⚫ | |||
=== Starting the Brn.DistsimReports Viewer === |
|||
[[Image:distsim-reports.png|left|thumb|500px|Brn.DistsimReports at work]] |
|||
* Brn.DistsimReports is a basic viewer for simulation reports. You can find it in [https://svn.sarforge.informatik.hu-berlin.de/svn/berlinroofnet/BerlinRoofNet/trunk/simulation/distsim/wrapper/res/reports/]. |
|||
* To use it, download and install JBoss [http://www.jboss.org]. Furthermore, you need the Eclipse BIRT Runtime [http://download.eclipse.org/birt/downloads/]. Details about installing the BIRT runtime can be found [http://www.eclipse.org/birt/phoenix/deploy/viewerSetup.php here]. |
|||
* The report engine tries to connect to a local mysql data source. A mysql jdbc driver must be available and placed under |
|||
${JBOSS_DEPLOY}/birt.war/WEB-INF/platform/plugins/org.eclipse.birt.report.data.oda.jdbc_xxx (see [http://download.eclipse.org/birt/downloads/examples/reports/MySQLDataSource/MySQLDataSource.html here] for details). |
|||
* When starting JBoss, do not forget to specify "-Djboss.bind.address=x.x.x.x" in order to access the JBoss from outer space. |
|||
* The Report Viewer is accessibile via http://hostname:8080/birt. |
|||
<br style="clear:both;"/> |
|||
= Scenario Creation via Brn.Builders = |
= Scenario Creation via Brn.Builders = |
||
Line 58: | Line 78: | ||
= Wishlist = |
= Wishlist = |
||
* TCP from ns-3 or yans (http://yans.inria.fr/code/tcp-bsd/?file/08a99283d359/tcp-bsd-foo/) |
|||
⚫ | |||
* IP Stack from [https://projekte.tm.uka.de/trac/OppBSD/wiki/OppBSDFeatures OppBSD] |
|||
* Channel simulation via [http://www.cs.uni-paderborn.de/en/research-group/research-group-computer-networks/projects/chsim.html chsim] |
|||
* Integration of [http://ns2trana.googlepages.com/| JTrana Trace Analyzer] |
* Integration of [http://ns2trana.googlepages.com/| JTrana Trace Analyzer] |
||
⚫ | |||
* Energy contour plot with SGT |
|||
* Energy contour plot from [http://www.ece.northwestern.edu/~ocg474/SNSim.html SNSim] |
|||
* Hierarchical Spatial for Shadowing/Fading (see SWANS++?) |
|||
* TCP from ns-3 |
|||
* Antenna/Beamforming patterns [http://www.ifp.uiuc.edu/~clam/index1.html] |
* Antenna/Beamforming patterns [http://www.ifp.uiuc.edu/~clam/index1.html] |
||
* [http://yavista.sourceforge.net/index.php/User_Section yavista] integration |
* [http://yavista.sourceforge.net/index.php/User_Section yavista] integration |
||
Line 78: | Line 99: | ||
* [http://www.ece.gatech.edu/research/labs/MANIACS/GTNetS/ GTNetS] |
* [http://www.ece.gatech.edu/research/labs/MANIACS/GTNetS/ GTNetS] |
||
* [http://pcl.cs.ucla.edu/projects/glomosim/ GloMoSim] |
* [http://pcl.cs.ucla.edu/projects/glomosim/ GloMoSim] |
||
* [http://www.ece.northwestern.edu/~ocg474/SNSim.html SNSim] |
|||
* [http://osa.inria.fr/wiki/ Open Simulation Architecture] ([http://osa.gforge.inria.fr/]) |
* [http://osa.inria.fr/wiki/ Open Simulation Architecture] ([http://osa.gforge.inria.fr/]) |
||
* ... |
* ... |
Latest revision as of 12:36, 23 August 2008
The Berlin RoofNet Simulator (Brn.Sim) is wireless mesh network simulator based on JiST/SWANS. The current version can be found in the sar-svn repository (svn://sar-svn/BerlinRoofNet/trunk/simulation/brn.sim).
Brn.Sim Core
Simulator Core
Physical Layers
IEEE 802.11abg Physical Layer
- Models for IEEE 802.11b (DSSS) and a/g (OFDM)
- BER Model from yans, ns-3
- Shadowing and Fading (both correlated/uncorrelated in time) from ns-2/SWAN/GloMoSim
- TODO spatially correlated shadowing
- Propagation Delay Model
- Transmit Diversity Model
- Brn.Phy
IEEE 802.11abg Multi-Channel Support
Tbd.
IEEE 802.11abg Multi-Bit-Rate Support and Bit-Rate Selection
Tbd.
IEEE 802.11e
Tbd.
Brn.Click: Integration of the Click Modular Router API
Tbd.
Brn.Gui
The Brn.Gui is a user interface for the Brn.Sim simulator. It is able to control the simulation execution like a debugger. It visualizes simulation results which are specified in simulation code via the Brn.Measure framework. Furthermore, it is also a result browser for already completed simulations which were executed by the Brn.DistSim distributed simulation framework and stored in the Brn.Db storage. For details see Brn.Gui
Brn.Measure
Tbd.
Brn.Db and Brn.DistSim
DistSim is a framework for defining, executing and collecting the results of multiple similar simulations. Core component is the Wrapper, which obtains simulation definitions from a database and executes it. Furthermore, there are JMX Mbeans for the distributed management of wrapper instances.
Steps to start the distsim framework
- Check out the wrapper from [1]
- Build and run via "ant run-jmx". Remember to set an unused RMI Registry port with "-Dbrn.distsim.jmxremote.port=xxxxx". If you want to access the HTTP console, specify an unused port via "-Dbrn.distsim.jmxremote.http.port=xxxx".
- Access the Brn.DistsimManager via HTTP or another JMX Client (JConsole, JMX Eclipse Plugin, VisualVM). In the Agent View, you will see the Distsim manager and the Wrapper manager MBean within the domain brn.distsim.jmx.
- Now, you are able to set up a federated Brn.Distsim service. Simply start another Brn.Distsim on a remote computer. Go to the local Distsim manager and execute the operation addDistsim. If the operation succeeds, you will see the Distsim manager within the property ActiveDistsims of the local Distsim manager. Be careful not to create loops; the result will be undefined.
- To start wrappers, go to the Distsim manager MBean and invoke the operation "startWrapper". Specify the database connection information, the host to start wrappers on (with optional ":port"), the first id to use with the wrappers (idStart) and the number of wrappers to start on this node (number).
- To start wrappers on multiple hosts simultaneously, use the operation "startWrapperAll". The parameter "startString" must be an enumeration of the form 'host[:port] idStart:number'.
- Use the operation "stopWrapper" or "stopWrapperAll" to stop the wrapper after a simulation run.
- The federated service is shut down via "stopDistsimAll".
- Note: The Wrapper do have a lot of caches on the file system. Please restart the wrappers for each new study and/or version to purge all caches.
Starting the Brn.DistsimReports Viewer
- Brn.DistsimReports is a basic viewer for simulation reports. You can find it in [2].
- To use it, download and install JBoss [3]. Furthermore, you need the Eclipse BIRT Runtime [4]. Details about installing the BIRT runtime can be found here.
- The report engine tries to connect to a local mysql data source. A mysql jdbc driver must be available and placed under
${JBOSS_DEPLOY}/birt.war/WEB-INF/platform/plugins/org.eclipse.birt.report.data.oda.jdbc_xxx (see here for details).
- When starting JBoss, do not forget to specify "-Djboss.bind.address=x.x.x.x" in order to access the JBoss from outer space.
- The Report Viewer is accessibile via http://hostname:8080/birt.
Scenario Creation via Brn.Builders
Tbd.
Do not forget to define Getter/Setter for each Member of the Parameter Class!
Wishlist
- TCP from ns-3 or yans (http://yans.inria.fr/code/tcp-bsd/?file/08a99283d359/tcp-bsd-foo/)
- IP Stack from OppBSD
- Channel simulation via chsim
- Integration of JTrana Trace Analyzer
- Shadowing correlation according to Integration of physical phenomena into an experiment-based propagation model
- Energy contour plot from SNSim
- Antenna/Beamforming patterns [5]
- yavista integration
- Mobility traces support [6]