Richard HJ's Web Site

vlbi_udp Home Page

Tools for Sending and Measuring Transfer Performance if VLBI data using UDP

The vlbi_send and vlbi_recv programs use UDP packets to send VLBI data between two end systems. These programs are used in pairs to make the transfer and are controlled by the vlbi_control program. Commands are send from vlbi_control to vlbi_recv and then on to vlbi_send using TCP/IP links. The vlbi_control program can manage up to 8 vlbi_send - vlbi_recv pairs.

During the data flow, the following measurements can be made as a function of time:

At the end of the transfer the following may be recorded:

Installation of vlbi_udp

The distribution of vlbi_udp is split into two tarballs: the vlbi_udp tools and the supporting library libhj. The vlbi_udp-a.b.c tarball creates directory vlbi_udp-a.b.c and libhj-l.m.n creates directory libhj-l.m.n. For installation and compilation in your home directory having downloaded the corresponding vlbi_udp and library files, start by cd to the library directory then:

./configure --prefix=$HOME
make install

$HOME/include and $HOME/lib are created. Then cd to the directory containing vlbi_udp and do:

./configure --prefix=$HOME --with-hj-location=$HOME
make install

$HOME/sbin is created with the vlbi_udp programs.

Versions of vlbi_udp

Version

Download
vlbi_udp

Download
libhj library

Write-up

Excel plots example

Notes

vlbi_udp-1.1.2devel

tar file-1.1. 2 libhj-4.1.4    

Development Feb07

vlbi_udp-1.1.0

tar file-1.1.0 libhj-4.1.4    

For testing ONLY


Brief help

The control path is:
vlbi_control ------- TCP -------> vlbi_recv ------- TCP -------> vlbi_send

The data path is
vlbi_recv <------- UDP ------- vlbi_send

 

vlbi_udp_send

Usage: vlbi_send -option<parameter> [...]
options:

-P = <precedence bits set - in hex - will be shifted left by 9>
-Q = <QoS difserve code point - in hex>
-S = <size of send and receive socket buffers in bytes>
-T = <tos bits set - in hex - will be shifted left by 1>
-p = <length in bytes of mock data packet>
-d = <the destination IP name or IP address a.b.c.d>
-t = <tcp listen port no - default 0x3799 ie 14233 decimal (For control from vlbi_recv)>
-u = <udp port no - default 0x3799 ie 14233 decimal>
-v = turn on debug printout

vlbi_udp_recv

Usage: vlbi_recv -option<parameter> [...]
options:

-P = <precedence bits set - in hex - will be shifted left by 9>
-Q = <QoS difserve code point - in hex>
-S = <size of send and receive socket buffers in bytes>
-T = <tos bits set - in hex - will be shifted left by 1>
-d = <the destination IP name or IP address a.b.c.d of vlbi_send >
-q = quiet - only print results
-t = <tcp listen port no - default 0x3799 ie 14233 decimal (For control from vlbi_control)>
-D = <tcp destination port no - default 0x3799 ie 14233 decimal (TCP port on vlbi_send) >
-u = <udp port no - default 0x3799 ie 14233 decimal>
-v = turn on debug printout
-n = <boost priority of recv thread>
-w = <wait time in us>

vlbi_udp_control

Usage: vlbi_recv -option<parameter> [...]
options:

-F = file to transfer - if any
-I = timer interval (sec) to gather statistics
-P = <precedence bits set - in hex - will be shifted left by 9>
-S = <size of send and receive socket buffers in bytes>
-T = <tos bits set - in hex - will be shifted left by 1>
-f = stats file name
-h = print help
-q = quiet - only print results
-v = turn on debug printout
-t = <tcp port no - default 0x3799 ie 14233 decimal (TCP port on vlbi_recv)>
-w = <wait time in us for sending packets from vlbi_send>

Example of vlbi_control_init.dat

num remote nodes
ip_address tcp_port_no {wait_time (in us) before start tsync} {wait_time (in us) before start test}


Example of vlbi_control_init.dat

1
192.168.123.1 14233 1000 1000000

Example - and order of starting

vlbi_send node on IP 192.168.123.100

./vlbi_send

vlbi_send node on IP 192.168.123.1

./vlbi_recv -d 192.168.123.100

vlbi_control node

./vlbi_control -w 13 -I10 -q

Will instruct vlbi_send to transmit packets at a spacing of 13 us and sample the statistics from vlbi_recv at 10s intervals


Enjoy, but the usual disclaimers apply!

Feedback and bug-reports are welcome and I will do my best to fix things!

© 2006 Richard Hughes-Jones (R.Hughes-Jones@manchester.ac.uk)
5 Nov 2006.

Copyright notice | Disclaimer | Privacy Policy |