NDT is installed on nettest5 at SLAC. This node is subject to change due to security policies etc.
Files
The installation files are in
/afs/slac.stanford.edu/u/sf/ytl/Work/TCP/Web100/slac-ndt-server/2006-08
Linux kernel linux-2.6.17.10 was downloaded and installed with this config file: nettest5.config.
The machine booted fine after the necessary modifications to grub.
AFS
However, as this is a Taylored machine, AFS needs to be installed.
Downloading the openafs-kernel-1.4.1
and configure'ing and compiling resulted in:
CC [M] /usr/src/kernels/openafs-kernel-1.4.1/src/src/libafs/MODLOAD-2.6.17.10-web100-MP/rx_kmutex.o /usr/src/kernels/openafs-kernel-1.4.1/src/src/libafs/MODLOAD-2.6.17.10-web100-MP/rx_kmutex.c: In function `afs_cv_wait': /usr/src/kernels/openafs-kernel-1.4.1/src/src/libafs/MODLOAD-2.6.17.10-web100-MP/rx_kmutex.c:126: error: too many arguments to function `refrigerator' make[3]: *** [/usr/src/kernels/openafs-kernel-1.4.1/src/src/libafs/MODLOAD-2.6.17.10-web100-MP/rx_kmutex.o] Error 1 make[2]: *** [_module_/usr/src/kernels/openafs-kernel-1.4.1/src/src/libafs/MODLOAD-2.6.17.10-web100-MP] Error 2 make[2]: Leaving directory `/usr/src/kernels/linux-2.6.17.10' make[1]: *** [openafs.ko] Error 2 make[1]: Leaving directory `/usr/src/kernels/openafs-kernel-1.4.1/src/src/libafs/MODLOAD-2.6.17.10-web100-MP' make: *** [linux_compdirs] Error 2
So downloaded full source of openafs openafs-1.4.1
; and compiled. Seems okay.
However, AFS init.d scripts aren't there! Poked around and found /usr/vice/etc/modload
which contains loads of .ko afs modules. copied over the compiled kernel module and rebooted;
sudo cp /usr/src/kernels/openafs-1.4.1/src/libafs/MODLOAD-2.6.17.10-web100-MP/libafs-2.6.17.10-web100.mp.ko /usr/vice/etc/modload/
and it worked! yippee!
NDT Install
Downloaded ndt-3.3.12 configured, and wham!
gcc -pedantic -Wall -O2 -DNDEBUG -L/usr/local/lib -Wl,-rpath,/usr/local/lib -o analyze analyze-analyze.o analyze-usage.o analyze-logging.o -lweb100 -lpcap -lm ../I2util/I2util/libI2util.a /usr/bin/ld: cannot find -lweb100 collect2: ld returned 1 exit status make[2]: *** [analyze] Error 1 make[2]: Leaving directory `/afs/slac.stanford.edu/g/scs/net/netmon/TCP/Web100/slac-ndt-server/2006-08/ndt-3.3.12/src' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/afs/slac.stanford.edu/g/scs/net/netmon/TCP/Web100/slac-ndt-server/2006-08/ndt-3.3.12' make: *** [all] Error 2
I haven't installed teh web100 libraries.
Downloaded web100_userland-1.6, configure'd, and make'd. however, the default installation path is /usr/local - which of course is a read-only AFS mount.
therefore, ran with ./configure --prefix=/opt/web100/current/
(symlinked to /opt/web100/web100_userland-1.6
, and installed there.
Added /opt/web100/current/lib/
to /etc/ld.so.conf
and ran ldconfig
to add to standard library path.
Ran ./configure --prefix=/opt/ndt/current/
on NDT;
make[2]: Entering directory `/afs/slac.stanford.edu/g/scs/net/netmon/TCP/Web100/slac-ndt-server/2006-08/ndt-3.3.12/src' gcc -pedantic -Wall -O2 -DNDEBUG -L/usr/local/lib -Wl,-rpath,/usr/local/lib -o analyze analyze-analyze.o analyze-usage.o analyze-logging.o -lweb100 -lpcap -lm ../I2util/I2util/libI2util.a /usr/bin/ld: cannot find -lweb100 collect2: ld returned 1 exit status make[2]: *** [analyze] Error 1 make[2]: Leaving directory `/afs/slac.stanford.edu/g/scs/net/netmon/TCP/Web100/slac-ndt-server/2006-08/ndt-3.3.12/src' make[1]: *** [all-recursive] Error 1 make[1]: Leaving directory `/afs/slac.stanford.edu/g/scs/net/netmon/TCP/Web100/slac-ndt-server/2006-08/ndt-3.3.12' make: *** [all] Error 2
It's not picking up the libs and includes.
Spent a bit of time editing the wrong makefile, finally changed the flags in ndt-3.3.12/src/Makefile
to:
CFLAGS = -pedantic -Wall -O2 -DNDEBUG -I/opt/web100/current/include/web100 -L/opt/web100/current/lib
make install seems to work fine. tree structure is:
[ytl@nettest5:/opt/ndt/current]$ tree . |-- bin | |-- aespasswd | |-- analyze | |-- tr-mkmap | |-- viewtrace | `-- web100clt |-- lib | `-- libI2util.a |-- man | |-- man1 | | |-- aespasswd.1 | | |-- analyze.1 | | |-- tr-mkmap.1 | | |-- viewtrace.1 | | `-- web100clt.1 | |-- man5 | | `-- ndt.conf.5 | `-- man8 | |-- fakewww.8 | `-- web100srv.8 |-- ndt | |-- Admin.class | |-- Tcpbw100$1.class | |-- Tcpbw100$2.class | |-- Tcpbw100$3.class | |-- Tcpbw100$4.class | |-- Tcpbw100$5.class | |-- Tcpbw100$6.class | |-- Tcpbw100$Message.class | |-- Tcpbw100$MyTextPane.class | |-- Tcpbw100$OsfwWorker.class | |-- Tcpbw100$Protocol.class | |-- Tcpbw100$TestWorker.class | |-- Tcpbw100$clsFrame.class | |-- Tcpbw100.class | |-- Tcpbw100.jar | |-- admin.html | |-- admin_description.html | |-- copyright.html | |-- web100_variables | `-- web100variables.html `-- sbin |-- fakewww `-- web100srv 8 directories, 36 files
NDT Testing
You can run a server with:
{{ytl@nettest5:/opt/ndt/current/sbin$ sudo ./web100srv -a }}
You can run a client with
[ytl@nettest5:/opt/ndt/current/bin]$ ./web100clt -n localhost Testing network path for configuration and performance problems -- Using IPv4 address Checking for Middleboxes . . . . . . . . . . . . . . . . . . Protocol error!
on the server, we get
!!!!!!!!!!! web100_middlebox() failed to get web100 connection data, rc=4
something's gone wrong! dunno what.
what happened to the web server for ndt??