Brn.Sim
The Berlin RoofNet Simulator (Brn.Sim) is wireless mesh network simulator based on JiST/SWANS.
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 within the context 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).
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]