1. 09 Jun, 2004 4 commits
    • Leigh B. Stoller's avatar
      Add missing table from previous revision. Need to bump the revision · 1df5266f
      Leigh B. Stoller authored
      number in database-migrate.
      1df5266f
    • Leigh B. Stoller's avatar
      Switch everything over to using new buildings and floorimages tables · 315c5d9c
      Leigh B. Stoller authored
      that I added to the DB. See revision 1.251 of sql/database-create.sql.
      I have removed all of the hardwired names of buildings, images, files,
      etc. I have also added MEB floors 1 and 2, but they do not show up on
      the status page unlesss there are actually nodes assigned to them.
      When you go to set a node location, you do see the little thumbs of
      all existing buildings/floors, so you can add nodes to floors that do
      not currently have any.
      
      Still needs some work to cleanly display multiple buildings, but thats
      for another day.
      315c5d9c
    • Leigh B. Stoller's avatar
      Fill in new virt_lans slots, as described in revision 1.249 of · a2f84fa2
      Leigh B. Stoller authored
      sql/database-create.sql. The old ips slot of virt_nodes is left in
      place while we transition over.
      a2f84fa2
    • Leigh B. Stoller's avatar
      Add floorimages and buildings tables for wireless floormap support. · 632ef32b
      Leigh B. Stoller authored
      This is rather primitive still; We just need a place to define
      buildings and floors in buildings, so that we do not hardwire them
      into the code. This can get arbitrarily complicated, but not until we
      need it.
      
      	CREATE TABLE buildings (
      	  building varchar(32) NOT NULL default '',
      	  image_path tinytext,
      	  title tinytext NOT NULL,
      	  PRIMARY KEY  (building)
      	) TYPE=MyISAM;
      
      The image_path is optional for buildings. The title is a string to
      print along with the images (Merril Engineering Building).
      
      	CREATE TABLE floorimages (
      	  building varchar(32) NOT NULL default '',
      	  floor varchar(32) NOT NULL default '',
      	  image_path tinytext,
      	  thumb_path tinytext,
      	  x1 int(6) NOT NULL default '0',
      	  y1 int(6) NOT NULL default '0',
      	  x2 int(6) NOT NULL default '0',
      	  y2 int(6) NOT NULL default '0',
      	  PRIMARY KEY  (building, floor)
      	) TYPE=MyISAM;
      
      The image_path is not optional; it is either an absolute path or a
      filename in $TB/www. The thumb_path is for a tiny view of it. Floor is
      something like 1, 2, 3 but could also be basement, lobby, penthouse,
      etc. The x,y coordinates are intended to be bounding box coords of the
      "interesting" part of the image so that it is easier to scale specific
      entries from the location_info table. But, not really sure about this
      yet; needs more thought and some investigation about appropriate ways
      to store coordinate values like this.
      632ef32b
  2. 08 Jun, 2004 9 commits
    • Leigh B. Stoller's avatar
      af1130cb
    • Leigh B. Stoller's avatar
      A bunch of cleanup and improvement. · 7bc9596e
      Leigh B. Stoller authored
      * Redo all the MEB .png files, removing the existing titles from the
        images, and cropping down the images to the actual floors. Redid the
        thumbnail files at the same time. Note that the existing location_info
        entries need to be updated, which I will do.
      
      * Rework portions of floormap.in in preparation for using the DB to
        describe the image files (still hardwired into the floormap).
      
      * Draw a title in each image using a truetype font, based on what will
        eventually come out of the DB, plus a floor tag.
      
      * Add option (-t) to not draw any titles; just naked images.
      7bc9596e
    • Leigh B. Stoller's avatar
      Add another index to virt_lans. · d1998932
      Leigh B. Stoller authored
      d1998932
    • Robert Ricci's avatar
      Sigh, more 'porting'. In gcc 2.95, we have to use std::random() to · 063422d4
      Robert Ricci authored
      disambiguate from boost's random() function. But, for some reason,
      with 3.x, random() doesn't live in the std:: namespace. Macro-ize it.
      063422d4
    • Leigh B. Stoller's avatar
      Remove all uses of virt_nodes:ips and virt_lans:members; replace with refs · d7f45ef6
      Leigh B. Stoller authored
      to virt_lans table only; See revision 1.249 of sql/database-create.txt
      for all the gory details. This includes the awful queries in doifconfig
      that appeared to be O(N*N*N)!
      
      Shashi, my changes to hostnames might have broken NSE specfic stuff; I was
      not able to understand your comment about it, so maybe you better check to
      make sure I didn't mess something up. Eventually, we won't be returning
      hostnames from tmcd, but it should work during the transition phase.
      d7f45ef6
    • Leigh B. Stoller's avatar
      Add slots to virt_lans to rationalize the relationship between · 43a804e9
      Leigh B. Stoller authored
      virt_lans and virt_nodes. The intent is to migrate away from
      the convention we use in virt_nodes:ips and virt_lans:member
      to a more acceptable representation (one that does not rely
      on textual conventions like space separated lists of colon
      seperated entities. Instead:
      
      	virt_nodes
      		vname:	nodeA
              virt_lans
      		vname:  link0
      		vport:  0
      		ip:     1.1.1.2
      
      		vname:  link1
      		vport:  1
      		ip:     1.1.2.2
      
      	alter table virt_lans add vnode varchar(32) NOT NULL default '' \
      		after vname;
      	alter table virt_lans add vport tinyint(3) NOT NULL default '0' \
      		after vnode;
              alter table virt_lans add ip varchar(15) NOT NULL default '' \
      		after vport;
      
      Then run this script to update these new fields from the
      existing ips,member slots. This must be run after installing
      the parser changes, or you can just run it again.
      
      	./ipmember.pl
      
      This is a transitional phase; the old slots will be left in place
      until they are no longer used, at which time we will also add a
      unique key to the table (pid,eid,vname,vnode,vport). assign_wrapper
      will be the hardest to change, but other scripts should be easy.
      
      Whats vport about? Rather then rely on IP addresses to form a
      unique key, we use vport (a small integer) so that we can delay the
      IP assignment until later (after initial DB insertion).
      43a804e9
    • Leigh B. Stoller's avatar
      6d82dd53
    • Leigh B. Stoller's avatar
      ba8615cd
    • Jay Lepreau's avatar
      85303108
  3. 07 Jun, 2004 11 commits
  4. 05 Jun, 2004 1 commit
  5. 04 Jun, 2004 8 commits
    • Russ Fish's avatar
      hyperviewer application user document · 9d500cc3
      Russ Fish authored
      9d500cc3
    • Russ Fish's avatar
      hyperviewer application program · ff01ba54
      Russ Fish authored
      ff01ba54
    • Robert Ricci's avatar
      Add an 'identifier' to the new_nodes table, and add support for · d736629e
      Robert Ricci authored
      passing this to the newnode client, web page, and viewing and
      editing it.
      d736629e
    • Mike Hibler's avatar
      allows setting of bootfromdisk field to be from 0-255 (not 0/1) so that · 74ff641f
      Mike Hibler authored
      we can use it for a partition number
      74ff641f
    • Leigh B. Stoller's avatar
      Start more then 1 UDP server thread. I did this by slight improvement · 1a135678
      Leigh B. Stoller authored
      of my really icky code to start different kinds of servers; basically
      you can set the number of servers of each kind, and if a server of
      that type exits, another one of the same type is started. The code is
      a little easier to follow then it was before, but still quite yucky.
      
      So whats the "right" way? The problem is that if multiple children are
      selecting on a set of fd's and an fd comes ready, all of the children
      are woken up. This is called a "select storm" since they all wake up,
      try to read from the same fd, and all but one go right back to sleep.
      Lots of overhead, and programs like apache go to great lengths to
      avoid it. Takes a lot code, lots of bookkeeping, lots of goo that is
      hard to understand 6 months later. Not worth it for tmcd, at least not
      yet. If we start creating many 1000s node experiments, that could
      change in a hurry.
      1a135678
    • Leigh B. Stoller's avatar
      Back out previous revision that changed the XML output format to RPC · f8ed2e3b
      Leigh B. Stoller authored
      format instead of plain old well formed XML. Note this change does not
      affect the parser in any way; the parser continues to spit out its own
      brand of XML, and xmlconvert treats that special when it reads it.
      
      The XML I spit out now is better formed and makes more sense when you
      look at it. It also helps that its much faster to generate, and the
      resulting output is much smaller. For example:
      
      	time /usr/testbed/libexec/xmlconvert testbed jail-2440
      	real    2m54.229s
      	user    1m7.492s
      	sys     1m15.927s
      
      	time /usr/testbed/devel/stoller/libexec/xmlconvert testbed jail-2440
      	real    0m14.738s
      	user    0m5.755s
      	sys     0m5.156s
      
      	/tmp/bar*.xml
      	-rw-rw-r--  1 stoller  wheel  15595161 Jun  4 11:16 /tmp/rpc.xml
      	-rw-rw-r--  1 stoller  wheel   5285690 Jun  4 11:17 /tmp/plain.xml
      
      Thats for a big experiment. For a small experiment:
      
      	time /usr/testbed/libexec/xmlconvert testbed jail-416
      	real    0m9.346s
      	user    0m5.083s
      	sys     0m2.675s
      
      	time /usr/testbed/devel/stoller/libexec/xmlconvert testbed jail-416
      	real    0m2.751s
      	user    0m1.377s
      	sys     0m1.183s
      
      	ll /tmp/bar*.xml
      	-rw-rw-r--  1 stoller  wheel  3135518 Jun  4 11:19 /tmp/rpc.xml
      	-rw-rw-r--  1 stoller  wheel  1015745 Jun  4 11:19 /tmp/plain.xml
      
      As you can see, the RPC code is rather non-linear in its performance!
      
      Since this affects Tim and netlab-client, I have added an alternate
      XMLRPC routine called virtual_topology_xml() that returns the new format,
      since Tim will need to transition to this new format (parsing it into a
      Java data structure). The old format is left in the RPC server until that
      is done.
      f8ed2e3b
    • Robert Ricci's avatar
      d51614da
    • Robert Ricci's avatar
      A couple related improvements: · 5e5bea87
      Robert Ricci authored
      Parse the ptop file to get information like colocation factors, CPU
      speeds, trivial bandwidth, and the like, instead of hard coding them.
      
      Keep features and trivial bandwidth by type (ie. pcvm, pcvm850),
      instead of making them the same for all types. This should make
      much better conglomeration choices.
      5e5bea87
  6. 03 Jun, 2004 7 commits