[insert project logo here (125x200px max)]



Please report any errors or omissions you find to our `Help' mailing-list, or post a message in the Forums.

Copyright and Licensing Information

Snap is (c) Jonathan T. Moore, 1999-2002 and licensed under the GNU General Public License (GPL).

All other parts of Splash are (c) Willem de Bruijn, 2002-2003 and licensed under the BSD Open Source License.

All sourcecode is made publicly available.


Splash and the Splash website are hosted by SourceForge.net

SourceForge.net Logo

Valid XHTML 1.0!

osi-open source certified logo

prerequisites - building and installing Splash - testing your installation - special situations

Splash - Installation Guide

SNMP Plus a Lightweight API for SNAP Handling


To run splash you need to have the following software installed on your system:

  • Linux kernel; tested with 2.4.7 and 2.4.20.
  • gcc; tested with version 2.96 and 3.2.2
  • libc; tested with glibc 2.2.4 and 2.3.2
  • GNU make; tested with v 3.79.1 and 3.80
  • GNU patch; tested with v 2.5.4

We were able to install Splash on both RedHat 7.1 and Gentoo 1.4_rc4 distros. Installation should pose no problem on any relatively recent distribution.

We are very interested in build experiences on other software platforms. Please post a message in the forum if you get it to work on for instance a system running a v2.2 or 2.5 kernel.

Building and Installing Splash


Starting with version 1.0.1 it is possible to install Splash using the install.sh script bundled with the package. This will install Splash using the standard options into /usr/local.


The Splash package consists of three separate modules. It is imperative that these are compiled in the right order! To successfully install the system you should build the individual modules in the following order:

  1. net-snmp vanilla
  2. snap_svc
  3. snap-wjdb
  4. net-snmp patched

First of all, download net-snmp v 5.0.6 from the net-snmp project's website. Detailed installation instructions for net-snmp can be found on their website. However, if you do not need any special settings, you can simply install the module by executing the following commands:

	tar xvzf [packagename].tgz
	cd [packagename]
	./configure && make && make install

Follow the same procedure for building the next two modules (snap_svc, snap-wjdb). The last module, net-snmp patched, can be built in the same fashion after having been patched. There's a small introduction into patching below if you don't know how to do this.

Patching net-snmp v 5.0.6

After having succesfully executed the first three build steps, we can patch the SNMP daemon to include support for SNAP packets. You can accomplish this by going to the net-snmp directory and executing the following statement:

	patch -p1 < [locationofpatchfile]/net-snmp-5.0.6-snap.diff

When the patch has succesfully been applied, clean up the stale objects from the previous installation of net-snmp (step 1) and rebuild the package using

	./configure && make && make install

Testing your installation

Testing net-snmp

If all modules installed without errors you should now have a bunch of new applications in /usr/local/bin. To test pure net-snmp functionality, start up the daemon as you normally would. We recommend using solely the -f and -L options. These options disallow snmpd to redirect output and detach itself from the running process.

Test the running daemon by executing a simple snmpget instruction, for instance:

	snmpget -v 2c -c public localhost sysName.0

The program should return the name of the current host. Consult the net-snmp documentation if snmpd failed to return the right information.

Testing SNAP

To test SNAP, fire up the stand alone daemon, snapd, in one console. In another console, send a simple packet using snap_exec. For this, you need to have an assembled SNAP packet. For this purpose you can use the snap_proto_surveyor.sas packet found in snap_packets.tgz. Optionally, you can download the file here. Assemble this file by issuing the following command:

	snapas snap_proto_surveyor.sas

Then, you can send the bytecode version of this packet to the local daemon

	snap_exec localhost localhost snap_proto_surveyor.sbc

If all went well the client should respond with the following output

	DEMUX output = [ok]

Testing Splash enabled snmpd

If the previous tests went fine, test the augmented daemon by restarting snmpd with the following options: -f -L -S. The last option tells the daemon to listen for SNAP packets. Now you should be able to both send SNAP pakcets and snmp requests. The previous two examples are prime candidates to test this functionality. Finally, you can test the back-end connection between SNAP and the MIB by issuing a SNAP request that utilizes the snmp backend. For this purpose you can select the file 1get.sas from snap_packets.tgz (or download it directly here.

Special Situations

Building Vanilla Snap

Bundled with Splash is an altered version of the SNAP interpreter v1.1. If you do not need SNMP access, but only SNAP, the installation process will involve some hacking. The interpreter, packed in the file snap-wjdb-X.X.tgz, only needs one file from snap_svc-X.X.tgz, namely snap_svc.h.

If you want to use services, both packages need to be built in the order given above. However, if the service infrastructure is of no concern, simply copy the mentioned headerfile into the interpreter's source directory (under [snap sourcedir]/lib.

Regardless whether the service infrastructure is used or not, the Makefile.am files need to be altered. In these files, remove all references to net-snmp libraries, i.e. change all occurrences of

		[object]_LDFLAGS = -version-info 1:1:0 -lpthread -ldl -lcrypto \
		-lnetsnmp -lnetsnmpagent -lnetsnmphelpers -lnetsnmpmibs	


		[object]_LDFLAGS = -version-info 1:1:0 -lpthread -ldl -lcrypto

in the various files before you start the build process.


Reinstalling a newer version of the software can be troublesome. If you upgrade the system and receive an error, execute a make distclean before doing a make. This is of no concern to new users, of course.

Patching non 5.0.6 net-snmp versions

Patching another (newer) version of the net-snmp package will probably have to be carried out by hand. There is a chance that the only files we want to patch, agent/snmpd.c and agent/Makefile.am, are identical to their 5.0.6 counterparts. In this case the automated patch will work. Otherwise you can simply copy-paste the few necessary changes from the diff file.