In this page you will find a detailed example of running a directed diffusion sample application on our testbed. We assume that the user already has an ISI account and has nodes 22 and 36 assigned to him, as briefly stated in our guideline page.
Check out the diffusion source code from scadds cvs repository.
>$ mkdir cvs
>$ cd cvs
>$ cvs co
microteers/diffusion3
After reading the README file accompanying the source code files, you can build the binaries as simple as
>$ cd microteers/diffusion3
>$ make
In this example, there are 4 executable files to be installed on pc104 nodes:
· “diffusion”: main diffusion routing module.
· “apps/gradient”: routing module using gradient
· “apps/agent1”: sample sink application
· “apps/agent2”: sample source application
Check out your own copy of linux distribution on testbed.
>$ mkdir ~/pc104
>$ cd ~/pc104
>$ rsync-pc104
co
After these steps, there should be an image of the default PC-104 file
system that looks like:
~/pc104/{bin, boot,
etc, lib, sbin, usr}
Copy all the binaries to the appropriate places in the distribution.
>$ cp
~/cvs/microteers/diffusion3/diffusion ~/pc104/bin
>$ ……
>$ cp
~/cvs/mictoeers/diffusion3/apps/agent{1,2} ~/pc104/bin
Once you copy all the binaries you want, you commit your personalized
distribution by doing:
>$ cd /pc104
>$ rsync-pc104
ci
You can reboot node 22 and node 36 remotely from scadds.isi.edu
>$ rsh –l root
scadds22 /sbin/reboot
>$ rsh –l root scadds36
/sbin/reboot
You can telnet to node 22 and node 36 to interactively running the applications
>$ telnet
scadds22
login: root
scadds22>$
diffusion&; gradient&; agent2;
Alternatively, you can also start the applications unsing rsh
>$ rsh –l root
scadds36 /bin/diffusion
>$ rsh –l root
scadds36 /bin/gradient
>$ rsh –l root scadds36 /bin/agent1
You may see that the source node 36 periodically sending out simulated sensor data, and the sink application at node 22 receive those data in this single hop network. You can also start diffusion/gradient/agent{1,2} in different terminals to see the interactions between diffusion routing modules.
As an example, you can put the following in /usr/bin/userapp.sh
diffusion&
gradient&
if [ $ID == “22”
]; then
agent1 &
fi
if [ $ID == “36”
]; then
agent2 &
fi
Last modified by Jerry Zhao: 1/2/2002