[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[ns] port of Diffusion-3.06 (ISI implementation) into ns




Hi,
We are pleased to announce that the first-cut of porting 
diffusion 3.06 of ISI diffusion implementation into ns has been completed. 

You can download the diffusion code from a saved snapshot 
(ns-diffusion-snapshot-120400.tar.gz), 
from the webpage at http://www.isi.edu/nsnam/ns/ns-build.html

Being the first-cut, we shall continue to work on 
extending/debugging/improving the port and hence you'll need to download 
the daily ns snapshot from the same download page mentioned above to see 
the most recent updates.

This version of diffusion supercedes the prior version in ns. 
The newer version, ported from ISI diffusion reference implementation has 
several features not present in the older version. We outline the 
highlights of this port below:

* Directed Diffusion has been implemented by SCADDS group at USC/ISI.
Briefly it consists of 
(a) an application layer that generates interest (for sinks) and data (for
sources)
(b) a core Diffusion layer that serves as an input/output interface for
all diffusion communications
(c) filters that are used to manipulate data/messages that may have
several applications (in-network aggregration, logging , debugging etc)
(d) an elaborate data naming or attribute system.

* Application layer APIs are defined for subscribing (unsubscribing) to 
certain types of data, publishing (unpublish) certain set of data and for 
sending and receiving data into/from the network.

* Diffusion interests and data are represented by
attribute-value-operation tuplet. The operation field is used to match 
attributes by means of certain operation rules.

* The older version of diffusion already in ns has a very simple attribute
representation (single integer); and filters were not implemented. Also, 
it doesnot have the well-defined APIs for application.

* The port is under ~ns/diffusion3 dir and tcl methods for setting up 
core-diffusion and diffusion-application agents in a node can be found 
under ~ns/tcl/lib/{ns-lib,ns-diffusion}.tcl

* tcl/ex/diffusion3/(simple-diffusion.tcl, diffusion-100.tcl,
diffusion-500.tcl) are example scripts. The first scenario consists of a 
simple 3 node topology, whereas the second and third scripts use a 100 and 
500 node topology respectively.
tcl/test/test-suite-diffusion3.tcl is a test-suite for validating the port.

* Basic ns tracing can be turned on as shown in the examples.

* For the first-cut, we have a ping application defined as 
(Application/DiffApp/Ping{Source/Sink}). We plan to have other 
applications in the distribution.
Also note that we still don't have tcl APIs for setting up applications, 
attributes etc. we continue to work on them.

*  Note that ns does not currently have a MAC layer that is energy-aware 
(for example, a TDMA MAC). We expect to integrate an energy-aware MAC 
developed by Wei Ye shortly, but in the meantime diffusion users may wish 
to adjust the 802.11 MAC energy parameters to approximate a sensor-net specific MAC.

* This version of the port is based on diffusion3.05 and doesn't include 
changes from 29 Palms.

All comments, bug-reports and other feedback are welcome as usual.


--Padma Haldar
------------------------------------------------ 
Be true to your work, your word, and your friend. 
--Thoreau

Padmaparna Haldar