1. 08 Feb, 2002 1 commit
    • Leigh B. Stoller's avatar
      Big round of image/osid changes. This is the first cut (final cut?) at · a73e627e
      Leigh B. Stoller authored
      supporting autocreating and autoloading images. The imageid form now
      sports a field to specify a nodeid to create the image from; If set,
      the backend create_image script is invoked. Thats the easy part.
      Slightly harder is autoloading images based on the osid specified in
      the NS file. To support this, I have added a new DB table called
      osidtoimageid, which holds the mapping from osid/pctype to imageid.
      When users create images, they must specify what node types that image
      is good for. Obviously, the mappings have to be unique or it would be
      impossible to figure it out! Anyway, once that image mapping is
      in place and the image created, the user can specify that ID in the NS
      file. I've changed os_setup to to look for IDs that are not loaded,
      and to try and find one in the osidtoimageid. If found, it invokes
      os_load. To keep things running in parallel as much as possible,
      os_setup issues all the loads/reboots (could be more than a single set
      of loads is multiple IDs are in the NS file) at once, and waits for
      all the children to exit. I've hacked up os_load a bit to try and be
      more robust in the face of PXE failures, which still happen and are
      rather troublsesome. Need an event system!
      
      Contained in this revision are unrelated changed to make the OS and
      Image IDs per-project unique instead of globally unique, since thats a
      pain for the users. This turns out to be very messy, since underneath
      we do not want to pass around pid/ID in all the various places its
      used. Rather, I create a globally unique name and extened the OS and
      Image tables to include pid/name/ID. The user selects pid/name, and I
      create the globally unique ID. For the most part this is invisible
      throughout the system, except where we interface with the user, say in
      the web pages; the user should see his chosen name where possible, and
      the should invoke scripts (os_load, create_image, etc) using his/her
      name not the internal ID. Also, in the front end the NS file should
      use the user name not the ID. All in all, this accounted for a number
      of annoying changes and some special cases that are unavoidable.
      a73e627e
  2. 11 Jan, 2002 1 commit
  3. 08 Jan, 2002 1 commit
  4. 03 Jan, 2002 1 commit
  5. 20 Dec, 2001 1 commit
  6. 13 Dec, 2001 1 commit
  7. 19 Sep, 2001 1 commit
  8. 05 Sep, 2001 1 commit
  9. 31 Jul, 2001 1 commit
  10. 23 Jul, 2001 1 commit
  11. 13 Jul, 2001 1 commit
  12. 09 Jul, 2001 1 commit
  13. 20 Jun, 2001 1 commit
  14. 16 May, 2001 1 commit
  15. 07 May, 2001 1 commit
  16. 11 Apr, 2001 1 commit
    • Christopher Alfeld's avatar
      Serious restructuring of parsing. · e9b8c412
      Christopher Alfeld authored
      This makes variable dereferencing work as expected.  So:
      
              for {set i 1} {$i <= 8} {incr i} {
                  set c($i) [$ns node]
                  tb-set-node-cmdline $c($i) "BATCH=1 DST_NAME=$c($i)"
              }
      
      will now expand $c($i) to correctly to c-$i.  Similarly:
      
      set node1 [$ns node]
      puts "First node is $node1"
      
      will output:
      
      First node is node1.
      
      Caveat: It assumes that every node and lan will be stored in a
      variable.  So doing something like:
      
      $ns duplex-link [$ns node] [$ns node] 100Mb 150ms DroPTail
      
      while in theory valid and sensible, won't work.
      
      A clean rewrite of the parsing stuff is probably something I should do
      soon.  It needs it to do all the variable munging correctly.
      e9b8c412
  17. 09 Apr, 2001 1 commit
  18. 20 Mar, 2001 1 commit
    • Christopher Alfeld's avatar
      Added: · 0510282c
      Christopher Alfeld authored
      tb-set-node-rpms
      tb-set-node-startup
      tb-set-node-cmdline
      
      Also fixed bug with LAN loss in handle_os
      0510282c
  19. 15 Mar, 2001 1 commit
  20. 14 Mar, 2001 2 commits
    • Christopher Alfeld's avatar
      This is the multiple links update. · 4b07b9df
      Christopher Alfeld authored
      Links can now be named:
      
      set link1 [$ns duplex-link $node0 $node1 100Mb 100ms DropTail]
      
      tb-set-link-loss can now either be
      
      tb-set-link-loss $node0 $node1 0.05
      
      OR
      
      tb-set-link-loss $node0 $link1 0.05
      
      There is a new command, tb-set-ip-link:
      
      tb-set-ip-link $node0 $link0 192.0.0.4
      
      and tb-set-ip-lan:
      
      tb-set-ip-lan $node $mylan 192.0.1.2
      
      --
      
      WARNING: We are no longer backwards compatible with the old tb command
      syntax.  The old syntax does not support any of the new changes and will
      break when #TB set-lan-loss or #TB set-ip-interface is used.
      4b07b9df
    • Christopher Alfeld's avatar
      Fixed bug in tb-set-lan-loss. · 2b7e2a47
      Christopher Alfeld authored
      Added code for user naming links.  This will be used later for the
      multiple link support.
      2b7e2a47
  21. 14 Feb, 2001 1 commit
    • Christopher Alfeld's avatar
      parse.tcl has a few minor fixes and copies in the tb_compat.tcl file now. · 8b418535
      Christopher Alfeld authored
      postparse now uses tbcmds
      sim.tcl is updated to close (and flush) the tbcmds output stream if it
      exists.
      tb_compat.tcl is the TB version that should be included by newstyle ns scripts.
      tb_compat_nop.tcl is the NS version that should be renamed to tb_compat.tcl
      and included by scripts when they are run under ns.  I.e. scripts
      	source tb_compat.tcl
      as the first line and then use either the TB or the NS (nop) version depending
      on what they are doing.
      8b418535