You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 21 Next »

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. It was patched against web100 2.5.11 and web100 userland 1.6.

The machine booted fine after the necessary modifications to grub and shows up as

Linux nettest5 2.6.17.10-web100 #2 SMP Thu Aug 24 10:55:58 PDT 2006 i686 i686 i386 GNU/Linux

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

Client/Server Applications

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.

Web Server

A web server to house to the java applet for ndt testing is supplied. It defaults to run on port 7123/tcp It can be run with

sudo /opt/ndt/sbin/fakewww -l /opt/ndt/current/log/fakewww.log

however, opening a broswer results in a page which says:

"The requested file could not be found"

the log says:

[ytl@nettest5:/opt/ndt/current/log]$ cat fakewww.log 
Aug 25 17:08:38 server started, listening on port 7123
Aug 25 17:08:41 [134.79.25.58] requested file '/' - sent to client
 not found
Aug 25 17:08:42 [134.79.25.58] requested file '/favicon.ico' - access denied

Rich Carlson suggested to run the create-html.sh script - initially it complained that it could not find the tcpbw100.template file. it can be found in the package distro - so copied it to /opt/ndt/current/conf and ran the create-html.sh file again. It creates the file: /opt/ndt/current/conf/tcpbw100.html:

[ytl@nettest5:/opt/ndt/current/conf]$ ./create-html.sh 
Welcome to the NDT server configuration program.  This
program will create a custom tcpbw100.html file for your site.

Enter your site name [Internet2]  : SLAC
Enter your site's location [Ann Arbor - MI]  : Menlo Park - CA
Server connection info, enter 1 for 100 Mbps, 2 for 1 Gbps [2]  : 2

Information for email trouble reporting
Enter email userid [rcarlson]  : ytl
Enter email domain name [internet2.edu]  : slac.stanford.edu
Enter default subject line [Trouble report from nettest5]  : [NDT] Trouble Report
The base web page 'tcpbw100.html' has now been created.  You
must move this file into the ndt_DATA directory [/usr/local/ndt]
created during the 'make' process.
Do you want to install this file now? [yes]  :  
Enter location [/usr/local/ndt]  : /opt/ndt/current/

Now the NDT page is set up and a server and the fakewww server are both running: going to http://nettest5:7123 gives...

something has gone wrong?

Script Install

System init scripts can be installed automatically. Under the distribution package (ie tar'd file), there are numerous files in the conf directory which are not copied over during the system install.

The system init script was edited a little to incorporate environment variables from the non-default path installation:

/opt/ndt/current/conf/ndt
...
base=/opt/ndt/current/
path=$base/sbin

web100=/opt/web100/current/

[ -f $path/web100srv ] || exit 0
[ -f $path/fakewww ] || exit 0

export PATH=$PATH:$base/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$base/lib:$web100/lib

# Specify some default options.
WEB100SRV_OPTIONS="-a"
FAKEWWW_OPTIONS="-l /opt/ndt/current/log/fakewww.log"
RETVAL=0
...

Also noticed that there is a library in the ndt lib directory; so added to /etc/ld.so.conf:

/opt/web100/current/lib/
/opt/ndt/current/lib/

and ran /sbin/ldconfig to update dynamic library paths.

The init.d services can be installed with the conf/autostart.sh script:

[ytl@nettest5:/opt/ndt/current/conf]$ sudo ./autostart.sh 
This script will configure your system to automatically
start the NDT processes at boot time.

ndt             0:off   1:off   2:on    3:on    4:on    5:on    6:off

Moved the html file to the conf directory and put a symlink to it in the ndt directory:

[ytl@nettest5:/opt/ndt/current/]$ mv tcpbw100.html conf/
[ytl@nettest5:/opt/ndt/current/]$ ln -s conf/tcpbw100.html ndt/tcpbw100.html
  • No labels