• Leigh B. Stoller's avatar
    Support for vnodes, plus some other changes: · 386c2778
    Leigh B. Stoller authored
    1) Merge in the accounts code that I did for ron. Instead of resetting
       the password file on each reboot, look at the node status to
       determine if the password/group file should be reset. If the
       node is free, reset it. Otherwise, we track changes to the password
       and group file now, so that users can change it and not have their
       changes wiped out at each reboot. I had to do this for the ron
       nodes so that the testbed software would not alter or delete
       already existing accounts; I keep a couple of little dbm files
       listing all the accounts/groups added. The only downside right now
       is if a node is reallocated before it is wiped clean; I plan to add
       an os_teardown phase to experiment termination asap.
    2) Add tunnels support. New DB table (tunnels) provides information
       for running vtund to link up to remote nodes. Creates a vtund.conf
       file on the fly, and fires them off. The complication is that you
       cannot do the ifconfigs or the routes until the tunnels are
       connected, so that stuff has to be configured within the vtund.conf
       file on a per tunnel basis. vtund.conf has some sections for
       running commands when tunnels are brought up or down.
    3) Damage the routing configuration code that Mike did. To support
       tunnels, as noted above, rc,route is no longer a simple list of
       commands, but a program that adds/dels routes based on the netmask,
       with a special "enable" section for the other stuff. This allows me
       to call it from vtund.conf for up/down on each tunnel'ed
       interfaces, as needed. Quite gross, but no way around it.
    4) For remote nodes, add a vnodesetup script, invoked from boss when
       experiments are setup/torndown. This gets the tunnel/route/trafgen
       configuration and runs them. It then goes into the background
       waiting for a death signal, at which time it brings them down and
       cleans out the vnode state.