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:
- Measurement of the Bandwidth used by the VLBI data.
- Estimation of the "on-the-wire" Bandwidth.
- Measurement of the packet loss, and out of order packets.
- Estimation of the relative 1-way delay between the two nodes.
At the end of the transfer the following may be recorded:
- Histograms of the packet jitter between the two nodes.
- Histograms of the packet processing times
- Measurement of the user mode and kernel mode load on all CPUs for both sending and receiving hosts.
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