Two real changes:
1) Add support for local jailed nodes. This support overlaps in a nasty way with remote jailed nodes, but I added this for testing purposes, and as it turns out its pretty handy. A second pass is needed to unify remote and local jails, but for now this is how it goes: tb-set-hardware $node3 pc600 tb-set-hardware $nodev1 pcvm600 tb-fix-node $nodev1 $node3 So, "fix" $nodev1 to $node3. The intent is that once $node3 is allocated by assign to a real testbed node, we can then allocate a virtual node on pcXX to $nodev1. I did this primarily to allow for easy testing of jails via my NS file, without having to hack assign wrapper too deeply. So, after assign runs, I use avail to get the available vnodes on the assigned pcXX, allocate those for the virtual nodes. At present, we still depend on pre-exsiting pcvm nodes for each real node. 2) Add code to assign non-overlapping port ranges to each experiment. This could be moved to an external script, but is fine right here. There is an ipport_ranges table for determining a testbed wide range (currently 256 ports). This is of course only meaningful when using jailed nodes, so do not bother to set a range (and use up the port space) if no jailed (virtual) nodes.
Showing with 227 additions and 29 deletions