OBAMP
Overlay Borůvka Based Ad-hoc Multicast Protocol
Project home page: http://netgroup.uniroma2.it/Andrea_Detti/obamp/
The source code of OBAMP cross-layer version for OLSR (named OBAMPxP) is on our SVN server https://svn.ninux.org/svn/ninuxdeveloping/
You can use the nice Trac interface https://svn.ninux.org/ninuxdeveloping/browser/OBAMPxP/trunk
Download Binary Distribution
Here is a zip file with the binary distribution: OBAMPxP.zip Please read the README file inside the archive!
Or you can grab it directly from the SVN
Download the folder with the OBAMPxP.jar file, and just use it! Please read the README file!
svn co http://svn.ninux.org/svn/ninuxdeveloping/OBAMPxP/trunk/dist OBAMPxP
Compile the sources with Apache Ant
Checkout the code
svn co http://svn.ninux.org/svn/ninuxdeveloping/OBAMPxP/trunk
Download the last version of Ant at the following URL: http://ant.apache.org/bindownload.cgi Untar the file somewhere in your file system. Export the ANT_HOME variable and update your PATH variable. We assume you have already installed a JDK and correctly exported the JAVA_HOME variable
For example, if ant_home is the directory where you untarred Apache Ant and java_home is the directory where is your Java JDK:
1) On a Linux Box:
export ANT_HOME=/usr/local/ant_home export JAVA_HOME=/usr/local/jdk_home export PATH=${PATH}:${ANT_HOME}/bin:${JAVA_HOME}/bin
2) On a Windows PC:
set ANT_HOME=C:\ant_home set JAVA_HOME=C:\jdk_home set PATH=%PATH%;%ANT_HOME%\bin;%JAVA_HOME%\bin
At this point go with your shell into the trunk directory of the source code OBAMPxP\trunk and execute
ant dist
to compile automatically all the sources
When the compiling process is finished you will find a bin directory with all the compiled classes and a dist directory with the binary distribution OBAMPxP.jar and the needed configuration files.
Compile on Gentoo Quick Guide
As root emerge the Apache Ant ebuild
emerge dev-java/ant
Now with your normal user you can compile and execute!
cd svn co http://svn.ninux.org/svn/ninuxdeveloping/OBAMPxP/trunk/ obamp cd obamp ant dist cd dist chmod 755 obamp.sh ./obamp.sh
Gentoo specific guidelines are over... follow the rest of the documentation!
Using OBAMPxP proxy
Before starting the proxy, you must edit the following files:
obamp.cfg obamp_nodes.txt
In the first file insert the IP address of your machine, and the operating system you are using. Currently only ipv4 is supported Currently only Windows and Linux are supported. Mac OS X and BSD support is coming soon.
<local_address> <Operative_System>
In the second file we have to write the list of the IP addresses that are running OBAMP on the network This file must be exactly the same on every PC partecipating to the multicast session, so it could be a good idea to place it on a web server on a RSS feed stuff.
I know this sounds stupid, but a patch is on the way to avoid this step.
Once parameters are set correcty you can execute the OBAMPxP.jar . Click on it with the mouse or open a shell and type
java -jar OBAMPxP.jar
on Unix/Linux. Are just use the shellscript wrapper:
chmod 755 obamp.sh ./obamp.sh
On Windows double click the OBAMPxP.jar or run:
java -jar OBAMPxP.jar
or just start the script wrapper by executing:
obamp.bat
To start the OBAMP session click on the Join button on the GUI.
Sending and receiving multicast data
Local ports for sending and receiving on the multicast overlay tree are
sending 9000
receiving 9002
For example if you want to trasmit data with VLC to the multicast group you have to set VLC so that it trasmits to current IP address on port 9000
To receive data we have to set VLC to listen on current IP address on port 9002
Of course ALL ports mentioned are UDP
OBAMPxP and log4j
The current svn version of OBAMPxP uses log4j for logging. log4j init is done the following way:
- read log4j settings from $PWD/log4j.properties
- if the above fails, then read log4j setting from inside the OBAMPxP.jar
if the above fails, then init log4j using calling BasicConfigurator.configure()
The code to do this, is in Log4Init.java and is called by CollabTool.main(String[]) .
Quick Howto for Eclipse Users
Just a few notes on using Eclipse IDE to edit the OBAMPxP source code:
use the subclipse svn plugin to check out the source code from the SVN:
Set the svn repository to https://svn.ninux.org/svn/ninuxdeveloping/ (http is availible, too)
- check out OBAMPxP/trunk
- Tell eclipse to use java 1.5 for code and source
- Close eclipse
- In your project directory do the following:
- Copy eclipse.classpath to .classpath
- Create a directory called eclipse-bin (to prevent eclipse from messing around with the ant build)
- Start eclipse
- Delete any output folders created by eclipse
- You can use ant / build.xml to build the project
If you just want to run OBAMPxP from inside eclipse, select CollabTool.java (it is in the it.radiolabs.obampxp package) and choose "Run as Java Application"
- Set to working directory to "dist" or create a seperate directory containing the obamp.cfg etc.
- If you want to do some debuging you should set "-ea" to enable assertions (currently there are not many assertions, but that's going to change soon...)