#format wiki
#language en
= 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: [[attachment: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.
{{{
}}}
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 [[http://logging.apache.org/log4j/docs/|log4j]] for logging.
log4j init is done the following way:
1. read log4j settings from $PWD/log4j.properties
1. if the above fails, then read log4j setting from inside the OBAMPxP.jar
1. 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 [[http://www.eclipse.org/|Eclipse]] IDE
to edit the OBAMPxP source code:
* use the [[http://subclipse.tigris.org/install.html|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...)