This code uses chirp packet trains (UDP) to estimate available
bandwidth (unused capacity) in the network. The code must be run at
both ends of a path. The receiver performs available bandwidth computation
and stores the results in a file.

CORRESPONDENCE
==============

Please do send your comments about the performance of this available
bandwidth estimation tool, and any changes you feel would make the
tool more convenient or user friendly. Please let us know what
applications you need available bandwidth tools for so that we can meet
your needs best. The current tool is designed to be a low bit rate 
tool for monitoring available bandwidth over long durations of time. 

Contact: Vinay Ribeiro, vinay@rice.edu


COMPILE INSTRUCTIONS
====================
Run the following:
1) configure   
2) make                                                                             
The following will be generated:

Bin/<host_cpu>/pathchirp_rcv
Bin/<host_cpu>/pathchirp_snd

For example on certain Linux boxes <host_cpu>=i686.


RUNNING EXPERIMENTS
===================

1) RECEIVER (before running the sender program)

Bin/<host_cpu>/pathchirp_rcv 

The options are:
	 -w <write interval (min), default=0.3min> 
 	 -n <number of estimates to smooth over, default=11>
 	 -d <decrease factor, default=2>
 	 -b <busy period length (>3), default=5>
	 -T <receiver port (TCP setup), default=8167>
 	 -U <receiver port (chirp UDP), default=8165>
	 -h Help: produces this output


2) SENDER 

Bin/<host_cpu>/pathchirp_snd -d <receiver name>

The options are: 
	 -l 	 lowest rate (Mbps) to probe at within chirp, default=1Mbps
	 -u 	 highest rate (Mbps) to probe at within chirp, default=120Mbps
	 -d 	 destination host
	 -p 	 packet size,default=1000 bytes
	 -t 	 duration of experiment(sec), default=600 sec 
	 -s 	 spread factor: ratio of consecutive inter-arrivals within a chirp, default = 1.2 
	 -a 	 average probing rate (Mbps), default=0.3 Mbps
	 -T 	 <receiver port (TCP setup), default=8167>
	 -U 	 <receiver port (chirp UDP), default=8165>
	 -h 	 Help: produces this output

NOTE ON PORT NUMBERS: In case the default port numbers are already in
use at the receiver, try out port numbers larger than 1024 using the
-T and -U options.  The sender must then use the same port numbers.

Future versions of pathchirp will automatically choose appropriate
port numbers.

OUTPUT FILES
============

At the RECEIVER the files

	 <sender_name>_<receiver_name>_<time stamp>.instbw
	 <sender_name>_<receiver_name>_<time stamp>.par

will be generated in the directory from which the code is run.


FORMAT of the files: 

".instbw"

 <time_stamp> <avail-bw estimate (Mbps)>


".par" (Has the following information)

number of packets per chirp=
probe packet size=
minimum instantaneous rate within chirp (Mbps)=
maximum instantaneous rate within chirp (Mbps)=
spread factor=
number of minutes between writes to file=
queuing delay moving average filter length=
number of chirp estimates to smooth over=
decrease factor=
busy period threshold=






