1. 25 Aug, 2004 1 commit
  2. 23 Aug, 2004 1 commit
  3. 11 Aug, 2004 1 commit
    • Leigh B. Stoller's avatar
      Add new per-lan table, which currently is just for Mike: · d09d9696
      Leigh B. Stoller authored
      1.269: Add new table to generate a per virt_lan index for use with
             veth vlan tags. This would be so much easier if the virt_lans
             table had been split into virt_lans and virt_lan_members.
             Anyway, this table might someday become the per-lan table, with a
             table of member settings. This would reduce the incredible amount of
             duplicate info in virt_lans!
      
      	CREATE TABLE virt_lan_lans (
      	  pid varchar(12) NOT NULL default '',
      	  eid varchar(32) NOT NULL default '',
      	  idx int(11) NOT NULL auto_increment,
      	  vname varchar(32) NOT NULL default '',
      	  PRIMARY KEY  (pid,eid,idx),
      	  UNIQUE KEY vname (pid,eid,vname)
      	) TYPE=MyISAM;
      
             This arrangement will provide a unique index per virt_lan, within
             each pid,eid. That is, it starts from 1 for each pid,eid. That is
             necessary since the limit is 16 bits, so a global index would
             quickly overflow. The above table is populated with:
      
      	insert into virt_lan_lans (pid, eid, vname)
                  select distinct pid,eid,vname from virt_lans;
      d09d9696
  4. 15 Jul, 2004 1 commit
    • Leigh B. Stoller's avatar
      Overview: Add Event Groups: · ed964507
      Leigh B. Stoller authored
      	set g1 [new EventGroup $ns]
      	$g1 add  $link0 $link1
      	$ns at 60.0 "$g1 down"
      
      See the new advanced tutorial section on event groups for a better
      example.
      
      Changed tbreport to dump the event groups table when in summary mode.
      At the same time, I changed tbreport to use the recently added
      virt_lans:vnode and ip slots, decprecating virt_nodes:ips in one more
      place. I also changed the web interface to always dump the event and
      event group summaries.
      
      The parser gets a new file (event.tcl), and the "at" method deals with
      event group events by expanding them inline into individual events
      sent to each member. For some agents, this is unavoidable; traffic
      generators get the initial params in the event, so it is not possible
      to send a single event to all members of the group. Same goes for
      program objects, although program objects do default to the initial
      command now, at least on new images.
      
      Changed the event scheduler to load the event groups table. The
      current operation is that the scheduler expands events sent to a
      group, into a set of distinct events sent to each member of the
      group. At some point we proably want to optimize this by telling the
      agents (running on the nodes) what groups they are members of.
      
      Other News: Added a "mustdelay" slot to the virt_lans table so the
      parser can tell assign_wrapper that a link needs to be delayed, say if
      there are events or if the link is red/gred. Previously,
      assign_wrapper tried to figure this out by looking at the event list,
      etc. I have removed that code; see database-migrate for instructions
      on how to initialize this slot in existing experiments. assign_wrapper
      is free to ignore or insert delays anyway, but having the parser do
      this makes more sense.
      
      I also made some "rename" changes to the parser wrt queues and lans
      and links. Not really necessary, but I got sidetracked (for several
      hours!) trying to understand that rename stuff a little better, and
      now I do.
      ed964507
  5. 13 Jul, 2004 1 commit
  6. 12 Jul, 2004 2 commits
  7. 07 Jul, 2004 1 commit
  8. 28 Jun, 2004 1 commit
  9. 25 Jun, 2004 1 commit
  10. 24 Jun, 2004 1 commit
  11. 23 Jun, 2004 2 commits
  12. 21 Jun, 2004 1 commit
  13. 18 Jun, 2004 1 commit
  14. 17 Jun, 2004 1 commit
    • Leigh B. Stoller's avatar
      Add a usemodelnet slot to the experiments table to indicate · b6707a07
      Leigh B. Stoller authored
             that an experiment prefers to use modelnet for traffic shaping.
             At some future time maybe we can mix modelnet with delay nodes,
             but please do not hold your breath waiting.
      
      	alter table experiments add usemodelnet tinyint(1) NOT NULL \
      		default '0' after useprepass;
      
             Add modelnet_cores and modelnet_edges variables to hold user
             tunable number of physical core nodes and edge nodes to throw
             at a virtual topology.
      
      	alter table experiments add modelnet_cores tinyint(4) unsigned \
      		NOT NULL default '0' after usemodelnet;
              alter table experiments add modelnet_edges tinyint(4) unsigned \
      		NOT NULL default '0' after modelnet_cores;
      
             Add ismodelnet and isphantom slots to node_types table. ismodelnet
             is set for modelnet nodes (which are also going to be isvirt).  Add
             isphantom to mark nodes that do no get underlying physical nodes;
             there will be an entry in the reserved table but no entries in the
             nodes table. Initially, modelnet virtual nodes will all be phantoms.
             Will possibly change later.
      
      	alter table node_types add ismodelnet tinyint(1) NOT NULL \
      		default '0' after isvirtnode;
      	alter table node_types add isphantom tinyint(1) NOT NULL \
      		default '0' after ismodelnet;
      
             Not sure that isphantom is going to work cause of the number of
             queries that join reserved with the nodes table. I might end up
             making nodes dynamic instead, creating and detroying them on the
             fly. I would prefer that isphantom works, but I am willing to live
             with isdynamic since we can use that for all of our virtual nodes.
      
      	alter table node_types add isdynamic tinyint(1) NOT NULL \
      		default '0' after isphantom;
      b6707a07
  15. 16 Jun, 2004 1 commit
  16. 15 Jun, 2004 1 commit
  17. 09 Jun, 2004 3 commits
    • Robert Ricci's avatar
      Add duplicate fields from the location_info table into the new_nodes · b6341a4e
      Robert Ricci authored
      table - this will allow us to place them on the map while they are still
      in limbo.
      
       ALTER TABLE new_nodes ADD COLUMN (floor varchar(32) default NULL,
          building varchar(32) default NULL,
          loc_x int(10) unsigned NOT NULL default '0',
          loc_y int(10) unsigned NOT NULL default '0',
          contact tinytext,
          phone tinytext,
          room varchar(32) default NULL);
      b6341a4e
    • 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
      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
  18. 08 Jun, 2004 2 commits
    • Leigh B. Stoller's avatar
      Add another index to virt_lans. · d1998932
      Leigh B. Stoller authored
      d1998932
    • 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
  19. 04 Jun, 2004 1 commit
  20. 01 Jun, 2004 1 commit
  21. 25 May, 2004 2 commits
  22. 21 May, 2004 1 commit
  23. 18 May, 2004 1 commit
  24. 07 May, 2004 1 commit
  25. 03 May, 2004 1 commit
    • Leigh B. Stoller's avatar
      Change to eventlist table; bump size of vname from 20 to 64. I do not · d5c51dd2
      Leigh B. Stoller authored
      see (or remember) any reason for this slot to be 20 chars, when the
      name of every other vname slot is 32. I looked in the event scheduler
      and there do not appear to be any problems there with bumping it. Note
      that I choose 64 cause we tend to construct agent names that might be
      longer then 32 since they are based on real vnames (lan0, node0, etc).
      d5c51dd2
  26. 19 Apr, 2004 1 commit
  27. 15 Apr, 2004 1 commit
  28. 09 Apr, 2004 1 commit
  29. 08 Apr, 2004 1 commit
  30. 07 Apr, 2004 2 commits
    • Leigh B. Stoller's avatar
      Add linktest_level to experiments table. Value is 0-4, where 0 means · 10cef776
      Leigh B. Stoller authored
      not to run linktest.
      10cef776
    • Leigh B. Stoller's avatar
      Initial DB support for wireless nodes. Added a "protocol" text field and · 90a6e82b
      Leigh B. Stoller authored
      an "is_accesspoint" boolean to virt_lans. The former defaults to
      "ethernet" but can be set to anything (80211a, 80211b, etc) in the NS
      file. The is_accesspoint is temporary, and simply allows you to set
      which node is the accesspoint in the NS file. This slot will probably
      move to another table at some point.
      
      Added interface_capabilities table, which is intended to list the
      capabilities and the default values, for interfaces listed in the
      interface_types table. This allows a more flexible description of
      interfaces, expecially wireless devices. Initially, I have seeded the
      table with just the default protocol (ethernet) and the speed. For
      example, the fxp:
      
      	fxp              | protocols         | ethernet |
      	fxp              | ethernet_defspeed | 100000   |
      
      As you can see, protocols is plural, and is intended to be a comma
      separated list. So, for the atheros wireless card:
      
      	ath              | protocols         | 80211a,80211b,80211g |
      	ath              | 80211a_defspeed   | 54000                |
      	ath              | 80211b_defspeed   | 11000                |
      	ath              | 80211g_defspeed   | 54000                |
      
      I gave up on using the entire row as a primary key; this is just too
      painful from perl/php/python where hashes are the most popular data
      structure, and duplicate columns get overwritten.
      90a6e82b
  31. 25 Mar, 2004 2 commits
  32. 23 Mar, 2004 1 commit