Setupnet was written to setup and test the network configuration before running a set of experiments.
# # Author: Mark Parris (MAP) # Created: Sometime before Feb. 14, 1999 # # Change Log: # # 2/17/99 - MAP - Added support for bandwidth checking # 2/21/99 - MAP - Fixed a syntax bug in uname. # 2/21/99 - MAP - Added support for specification of a default jitter # 4/29/99 - MAP - changed the error message on a uname mismatch # 5/19/99 - MAP - added an interface command which is used to test for the # existence and configuration of an interface # # This is a program to both set up and/or test network configurations. # # Run with -h to see information on usage.
# -*- perl -*- # ^-- to activate "perl mode" in emacs, not because this is perl # Configuration file for the network # This file is input both to the set up and configuration script # # Allow blank lines and # comments # configuration parameters for a given host: # rcv_win - set (or verify) the receive window # snd_win - set (or verify) the sender window # NOTE: testing delays should be the sum of delays at the sender # and receiver and any problems with the host # default - default delay # uname - a string to match in the output of uname -a (make sure # you're running the kernel you want) # HOST - use the current settings and configure/test this host. Using # this, you should be able to set parameters that cover a # group of machines and then just list the machines. # independent of the HOST sections # route_vrfy - verify the route from the first host to the last passes # through the specified hosts # route - do a "route" command for the specified host with this # arguments - often advisable to delete, then add WINSIZE=16384 # define the var WINSIZE rcv_win=%{WINSIZE} # receiver window set using the WINSIZE # variable snd_win=%{WINSIZE} # sender window uname=DIRT HOST=thelmalou134 # configure thelmalou HOST=roadrunner134 # like thelmalou, HOST=floyd134 # like thelmalou, HOST=goober134 # like thelmalou HOST=goddard134 # like thelmalou HOST=yako134 # like thelmalou HOST=howard138 # All of these machines are the same HOST=lovey138 HOST=speedy138 HOST=petunia138 HOST=brain138 HOST=bollella138 # # set up a machine that has a specific route # HOST=yosemite134 uname=CBT.1000 HOST=daffy139 uname=DPM # make sure the uname output includes the text # ALTQ-DELAY HOST=elmer139 # # These are not host specific # # list all machines you are going to contact # took lovey out - lovey138, machines=floyd134, goober134, thelmalou134, roadrunner134, yosemite134, daffy134, daffy139, yosemite139, topsecret139, elmer139, elmer138, brain138, howard138, speedy138, petunia138, goddard134, bollella138, yako134 # delay_grid is how we test the expected roundtrip delay between hosts # this is necessary because delay box at a routers can introduce delays more # complicated than I want to derive from the information above. This should # usually be a sparse matrix I imagine. # jitter defaults to +-5 ms but you can append a different number to # any value as shown for floyd-floyd below with +-# # XXX - don't test this value. Each test takes ~5 seconds. If you test every # pair it's going to be a long time ( 16*16*5 ) = 1250s = 20 minutes! # # These are one way tests and setups. That is, the machine listed on the line # is the dst host and the machine in the column is the src host. # # Listing a delay in both column X, row Y and column Y, row X will result in # combining those delays for pings between host X and Y. # # (Perhaps one would want to do this for some reason but if so, the ping test # code will have to change). # jitter=1 # delay_grid # encoded machine names # flo goo the rr y4 d4 d9 y9 top e9 e8 b8 h8 s8 p8 god bol yak w8 l8 { floyd134, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, 000, 60, 98, XXX, 30, XXX } # 000, 14, { goober134, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, 15, 112, 42, XXX, 50, XXX } # 000, 28, { thelmalou134, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, 45, 84, 154, XXX, 60, XXX } # 000, 80, { roadrunner134, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, 126, 70, 56, XXX, 70, XXX } # 000, 30, { yosemite134, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX } # XXX, XXX, { daffy134, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX } # XXX, XXX, { daffy139, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX } # XXX, XXX, { yosemite139, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX } # XXX, XXX, { topsecret139, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX } # XXX, XXX, { elmer139, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX } # XXX, XXX, { elmer138, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX } # XXX, XXX, { brain138, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX } # XXX, XXX, { howard138, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX } # XXX, XXX, { speedy138, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX } # XXX, XXX, { petunia138, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX } # XXX, XXX, { goddard134, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, 5, 15, 49, XXX, 110, XXX } # XXX, XXX, { bollella138, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX } # XXX, XXX, { yako134, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX } # XXX, XXX, # { wilee138, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX } # XXX, XXX, # { lovey138, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX, XXX } # XXX, XXX, end_delay_grid # do a route command with these arguments - route={daffy139,"delete -net 152.2.136.0 152.2.139.99"} route={daffy139,"delete -net 152.2.135.0 152.2.139.4"} route={daffy139,"delete -net 152.2.138.0 192.168.137.4"} route={daffy139,"add -net 152.2.136.0 152.2.139.99"} route={daffy139,"add -net 152.2.135.0 152.2.139.4"} # Now in the 2.2.8 setting (using daffy as the experimental router) route={daffy139,"add -net 152.2.138.0 152.2.139.4"} #route={daffy139,"add -net 152.2.138.0 192.168.137.4"} # do a route command with these arguments route={yosemite134,"delete -host yosemite138 daffy134"} route={yosemite134,"add -host yosemite138 daffy134"} route={yosemite134,"delete -host yosemite134 elmer138"} route={yosemite134,"add -host yosemite134 elmer138"} # # Don't do anything about delays - it may not even have delaybox # do a route command with these arguments - route={elmer139,"delete -net 152.2.136.0 152.2.139.99"} route={elmer139,"delete -net 152.2.135.0 152.2.138.107"} route={elmer139,"delete -net 152.2.134.0 152.2.139.5"} route={elmer139,"add -net 152.2.136.0 152.2.139.99"} route={elmer139,"add -net 152.2.135.0 152.2.138.107"} # Now in the 2.2.8 configuration (using daffy as the main router) route={elmer139,"add -net 152.2.134.0 192.168.137.5"} #route={elmer139,"add -net 152.2.134.0 152.2.139.5"} # bandwidth between machine2 and machine2, lower bound, upper bound (Kbps) bandwidth={elmer139,daffy139,5000,10000} bandwidth={elmer139,yosemite138,50000,100000} # test to be sure these machines have these interfaces configured with these # addresses interface={daffy139,fxp0,192.168.137.5} interface={daffy139,fxp1,152.2.134.5} interface={daffy139,xl0,152.2.139.5} interface={bollella139,fxp0,192.168.137.52} interface={bollella139,fxp1,152.2.138.52} interface={daffy139,fxp1,152.2.134.5} interface={daffy139,xl0,152.2.139.5} interface={bollella139,fxp0,192.168.137.52} interface={bollella139,fxp1,152.2.138.52} interface={bollella139,fxp2,152.2.139.52} # This would fail in our network as it's configured now - just an example. #route={yosemite134,"add host topsecret139 -interface vx0"} # route to # topsecret by sending out this interface - # This is now in the 2.2.8 configuration (using daffy as the experimental # router) route_vrfy="yosemite138 152.2.138.4 192.168.137.5 yosemite134" route_vrfy="yosemite134 152.2.134.5 152.2.139.4 yosemite138" route_vrfy="thelmalou134 152.2.134.5 152.2.139.4 howard138" route_vrfy="howard138 152.2.138.4 192.168.137.5 thelmalou134" #route_vrfy="yosemite138 152.2.138.4 152.2.139.5 yosemite134" #route_vrfy="yosemite134 152.2.134.5 192.168.137.4 yosemite138" #route_vrfy="thelmalou134 152.2.134.5 192.168.137.4 howard138" #route_vrfy="howard138 152.2.138.4 152.2.139.5 thelmalou134"