init-by-file.pl 1.64 KB
Newer Older
1
#
2
# Copyright (c) 2007 University of Utah and the Flux Group.
3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
# 
# {{{EMULAB-LICENSE
# 
# This file is part of the Emulab network testbed software.
# 
# This file is free software: you can redistribute it and/or modify it
# under the terms of the GNU Affero General Public License as published by
# the Free Software Foundation, either version 3 of the License, or (at
# your option) any later version.
# 
# This file is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Affero General Public
# License for more details.
# 
# You should have received a copy of the GNU Affero General Public License
# along with this file.  If not, see <http://www.gnu.org/licenses/>.
# 
# }}}
22
#
23 24 25 26 27 28 29 30 31

#usage: init-by-file.pl proj exp input-file
#
# Input file is generated by init-elabnodes.pl using the -o option.

$proj = $ARGV[0];
$exp = $ARGV[1];
$filename = $ARGV[2];

32 33 34 35 36 37 38
sub psystem(@) {
  print join(' ', @_);
  print "\n";
  system(@_);
  die unless $? == 0;
}

39 40
open(FILE, "<".$filename) or die("Cannot open $filename\n");

41 42 43 44 45 46
# reset the links
# wait only on the reset event
psystem("/usr/testbed/bin/tevc -e $proj/$exp now elabc clear");
psystem("/usr/testbed/bin/tevc -w -e $proj/$exp now elabc reset");
psystem("/usr/testbed/bin/tevc -e $proj/$exp now elabc create");

47 48 49
while ($line = <FILE>)
{
    $line =~ /^10.0.0.([0-9]+) ([0-9.]+) ([0-9.]+) ([0-9.]+) [0-9.]+$/;
50 51
    psystem("/usr/testbed/bin/tevc -e $proj/$exp now elabc-elab-$1 modify dest=$2 bandwidth=$3");
    psystem("/usr/testbed/bin/tevc -e $proj/$exp now elabc-elab-$1 modify dest=$2 delay=$4");
52
}
53 54