Commit 6f08c442 authored by Leigh Stoller's avatar Leigh Stoller

The Emulab Knowledge Base!

Okay, I implemented a primitive Knowledge Base! The current contents are
*all* the existing FAQ entries, which I entered manually. Here are the
details.

* My reason for doing this is that we need something very simple. The wiki
  is too much of a barrier, and its search capabilities are pathetic.

* The search page for the Knowledge Base is:

	https://www.emulab.net/kb-search.php3

  Fairly primitive keyword search. Turns out that mysql 4.0 has a bunch for
  really good text searching functions built in, but we run 3.23 ... so I
  had to roll it myself. So, its a simple keyword (space or comma
  separated) search, no regular expressions.

* Each DB record has a "faq_entry" flag, so creating the current FAQ on the
  fly from the DB is easy. See:

	https://www.emulab.net/kb-faq.php3

* In reddot mode, you can add new KB entries:

	https://www.emulab.net/kb-manage.php3

  The form is fairly obvious but here are details anyway:

    Section Name: Choose an existing title, or make up a new one.
    Title:        The title of the KB (or FAQ) entry.
    Faq Entry:    Check this box if the new entry should show up in the FAQ.
    X Ref Tag:    A token so you can refer to other KB entries by name,
                  instead of by its index. Within the KB entry you would
                  write: <a href=kb-show.php3?xref_tag=sometag>
    Body:         Whatever you like. I took the existing FAQ entries and
                  stuck them with no changes except for the xref_tag
                  mentioned about (since some entries referenced other
                  entries).

* Once you click on sumbit, you will see the entry as it will appear to
  users, along with a submenu to Modify/Delete/Add entries. You can modify
  the current entry from that menu. Mere users do not see this menu, only
  when in reddot mode.

* The intent here is that we can generate new entries really easy, right
  from email if you like (with appropriate <pre> or <xmp> tags around it).

* I have added sql/knowlbase-create.sql and a makefile target to
  generate that file when creating a distribution. I also added a section
  to install/boss-install to insert the entries into the new DB.

* I hooked the search function into the existing Search Documentation link.
  We know search both the Knowledge Base *and* the Documentation on doc
  searches. This probably needs a little more work to get right.

* I changed a lot of faq links to be more consistent and to reference
  the proper xref_tags (#swapping instead of #UTT-34).
parent 95fe00b4
......@@ -620,6 +620,18 @@ Phase "database", "Setting up database", sub {
}
ExecQuietFatal("$MYSQL $DBNAME < $TOP_SRCDIR/sql/sitevars-create.sql");
};
Phase "knowlbase", "Filling knowledge_base_entries table", sub {
my ($exitval, @rows) = ExecQuiet("echo 'select * from " .
"knowledge_base_entries' | $MYSQL -s $DBNAME");
if ($exitval) {
PhaseFail("Error running query");
}
if (scalar @rows) {
PhaseSkip("Already done");
}
ExecQuietFatal("$MYSQL $DBNAME < ".
"$TOP_SRCDIR/sql/knowlbase-create.sql");
};
};
Phase "rc.conf", "Adding testbed content to $RCCONF", sub {
......
......@@ -32,13 +32,16 @@ db-fill:
@/usr/testbed/sbin/wap /usr/testbed/sbin/export_tables \
> database-fill.sql
db-fill-dist:
db-fill-dist: knowlbase
@/usr/testbed/sbin/wap /usr/testbed/sbin/export_tables -i \
> database-fill.sql
sitevars:
@mysqldump -t tbdb sitevariables > sitevars-create.sql
knowlbase:
@mysqldump -c -t tbdb knowledge_base_entries | sed -e 's,^INSERT,REPLACE,' > knowlbase-create.sql
fwrules:
@echo "*** Use 'gmake insertrules' in the firewall subdir to do this"
......
......@@ -717,6 +717,28 @@ CREATE TABLE ipsubnets (
PRIMARY KEY (idx)
) TYPE=MyISAM;
--
-- Table structure for table `knowledge_base_entries`
--
CREATE TABLE knowledge_base_entries (
idx int(11) NOT NULL auto_increment,
creator_uid varchar(8) NOT NULL default '',
date_created datetime default NULL,
section tinytext,
title tinytext,
body text,
xref_tag tinytext,
faq_entry tinyint(1) NOT NULL default '0',
date_modified datetime default NULL,
modifier_uid varchar(8) default NULL,
archived tinyint(1) NOT NULL default '0',
date_archived datetime default NULL,
archiver_uid varchar(8) default NULL,
PRIMARY KEY (idx),
UNIQUE KEY (xref_tag)
) TYPE=MyISAM;
--
-- Table structure for table `last_reservation`
--
......
......@@ -2765,4 +2765,22 @@ last_net_act,last_cpu_act,last_ext_act);
UNIX_TIMESTAMP(exptswapout_last),
UNIX_TIMESTAMP(exptswapmod_last)));
4.5:
4.5: Add knowledge_base_entries table.
CREATE TABLE knowledge_base_entries (
idx int(11) NOT NULL auto_increment,
creator_uid varchar(8) NOT NULL default '',
date_created datetime default NULL,
section tinytext,
title tinytext,
body text,
xref_tag tinytext,
faq_entry tinyint(1) NOT NULL default '0',
date_modified datetime default NULL,
modifier_uid varchar(8) default NULL,
archived tinyint(1) NOT NULL default '0',
date_archived datetime default NULL,
archiver_uid varchar(8) default NULL,
PRIMARY KEY (idx),
UNIQUE KEY (xref_tag)
) TYPE=MyISAM;
-- MySQL dump 8.23
--
-- Host: localhost Database: tbdb
---------------------------------------------------------
-- Server version 3.23.58-log
--
-- Dumping data for table `knowledge_base_entries`
--
REPLACE INTO knowledge_base_entries (idx, creator_uid, date_created, section, title, body, xref_tag, faq_entry, date_modified, modifier_uid, archived, date_archived, archiver_uid) VALUES (3,'stoller','2005-08-16 10:06:07','Getting Started','Who is Eligible to use Emulab.Net?','In principle, almost any research or educational use\r\nby those that have a need for it is appropriate and encouraged.\r\nThis includes use by universities, industrial research labs, and both\r\nUS and non-US institutions. With some provisos, use for development\r\nand evaluation is also acceptable, even by companies.\r\nSee our <a href =\"docwrapper.php3?docname=policies.html\">posted policies</a>\r\nfor more detail. If you are unsure about your eligibility to use\r\nNetbed/Emulab, please just send us an email inquiry.\r\n',NULL,1,'2005-08-16 12:10:16','stoller',0,NULL,NULL);
REPLACE INTO knowledge_base_entries (idx, creator_uid, date_created, section, title, body, xref_tag, faq_entry, date_modified, modifier_uid, archived, date_archived, archiver_uid) VALUES (5,'stoller','2005-08-16 10:50:44','Getting Started','How do I start a project?','<p>\r\nIf you are new to the Testbed, simply click on the \"Start Project\"\r\nlink on the Emulab <a href=\"http://www.emulab.net\">Home\r\nPage</a>. You will need to fill in the forms with your personal\r\ninformation and information about the project. Then click on the\r\n\"Submit\" button. Within a few days you will be contacted via email\r\nwith an approval message. More information about starting projects\r\ncan be found in <a href=\"docwrapper.php3?docname=auth.html\">\r\nAuthorization Page</a>.\r\n</p>\r\n<p>\r\nIf you already have an Emulab account, and wish to start a second\r\nproject, first log into the Web Interface. Then select the \"Start\r\nProject\" link; all of the personal information will already be\r\nfilled in. You will need to complete just the project information\r\nsection. \r\n</p>\r\n','start-project',1,'2005-08-16 12:10:32','stoller',0,NULL,NULL);
REPLACE INTO knowledge_base_entries (idx, creator_uid, date_created, section, title, body, xref_tag, faq_entry, date_modified, modifier_uid, archived, date_archived, archiver_uid) VALUES (6,'stoller','2005-08-16 11:00:05','Getting Started','I\'m a project leader and someone applied to join my project, but they are not on the list to be approved','<p>\r\nJoining a project has 3 stages. The first two are done by\r\nthe person trying to join, and they both must be completed\r\nbefore you can approve their application. The first two are\r\noutlined <a href=\"kb-show?xref_tag=join-project\">here</a>, where the\r\nuser fills out the \"Join Project\" form, and performs account\r\nverification. After these two steps are both complete, the\r\nproject leader and any group leaders in the group \r\n(<a href=\"#GS-6\">More info here</a>) will get an email saying\r\nthe account is ready to be approved, and it will appear on the\r\nlist of new users waiting to be approved.\r\n<p>\r\nIf someone says they\'ve applied, but you haven\'t received an\r\nemail from Emulab about it, and they don\'t show up on your\r\nlist, the most likely cause is that they haven\'t finished the\r\nverification step.\r\n</p>\r\n',NULL,1,'2005-08-16 12:12:12','stoller',0,NULL,NULL);
REPLACE INTO knowledge_base_entries (idx, creator_uid, date_created, section, title, body, xref_tag, faq_entry, date_modified, modifier_uid, archived, date_archived, archiver_uid) VALUES (7,'stoller','2005-08-16 12:14:39','Getting Started','How do I join a project?','<p>\r\nIf you are new to the Testbed, simply click on the \"Join Project\"\r\nlink on the Emulab <a href=\"http://www.emulab.net\">Home\r\nPage</a>. You will need to fill in the form with your personal\r\ninformation, and provide the name of the project you are trying to\r\njoin (typically, the <i>Project Leader</i> will have told you the\r\nname of the project). Then click on the \"Submit\" button, and wait\r\nfor an email with your new user key. When that email arrives, use\r\nthe link in it (or the key itself), and use it with your password \r\nto log into the web site and verify your account. Then just wait\r\nfor the project leader to approve you. When approved you will\r\nreceive an email message saying so, and you can then log into the\r\nTestbed.\r\n</p>\r\n','join-project',1,NULL,NULL,0,NULL,NULL);
REPLACE INTO knowledge_base_entries (idx, creator_uid, date_created, section, title, body, xref_tag, faq_entry, date_modified, modifier_uid, archived, date_archived, archiver_uid) VALUES (8,'stoller','2005-08-16 12:15:51','Getting Started','Will Emulab send me email messages?',' <p>\r\n Yes! Emulab uses email notifications to you in several different\r\n ways. Often it will send you a copy of information regarding\r\n experiments you set up, applications to projects, and other\r\n things you do at Emulab. Sometimes (like with account\r\n verification) the email is a critical part of being able to use\r\n Emulab.\r\n <p>\r\n For those reasons it is <b>critical</b> that any spam filtering\r\n software you have accept email from Emulab itself (anything\r\n coming from the emulab.net domain) and from Emulab staff (from\r\n the cs.utah.edu or flux.utah.edu domains). In many cases, it may\r\n also say that is from a specific machine in those domains. Our\r\n messages usually do not get flagged as spam by most filters, but\r\n in certain cases it can be a problem. It is also important that\r\n it not require manual intervention or confirmation to get emails\r\n through to you, so programs like SpamKiller can cause problems.\r\n <p>\r\n It is also important to read your email often while you are\r\n using Emulab, especially while you have machines reserved in \r\n an experiment. A few emails may be the only notification you\'ll\r\n get before we swap out an experiment that appears to be idle,\r\n and if you don\'t respond, you may lose important work. Email is\r\n also our method for informing you about problems we may be\r\n experiencing, downtimes, or other important announcements. Your\r\n experience with Emulab (and ours with you) will be much more\r\n pleasant if everyone is responsive to email.\r\n </p>\r\n',NULL,1,NULL,NULL,0,NULL,NULL);
REPLACE INTO knowledge_base_entries (idx, creator_uid, date_created, section, title, body, xref_tag, faq_entry, date_modified, modifier_uid, archived, date_archived, archiver_uid) VALUES (9,'stoller','2005-08-16 13:15:09','Getting Started','I have an Emulab account. Now what?',' <p>\r\n Once you have been approved to start (or join) your first project,\r\n you will be able to log into Emulab\'s user machine,\r\n <b>users.emulab.net</b>. We require that all Emulab users use ssh. For\r\n example, if your Emulab account name is \"joe\", then you would do:\r\n <pre>\r\n ssh users.emulab.net -l joe </pre>\r\n </p>\r\n <p>\r\n Your password is the same as the password you supplied to the\r\n Start (or Join) Project web page.\r\n',NULL,1,NULL,NULL,0,NULL,NULL);
REPLACE INTO knowledge_base_entries (idx, creator_uid, date_created, section, title, body, xref_tag, faq_entry, date_modified, modifier_uid, archived, date_archived, archiver_uid) VALUES (10,'stoller','2005-08-16 13:17:35','Getting Started','Can I be in more than one project?',' <p>\r\n Yes. You may join (and/or start) as many projects as you like,\r\n subject to Emulab <a href=\"docwrapper.php3?docname=policies.html\">\r\n administrative policies</a>.\r\n </p>\r\n',NULL,1,NULL,NULL,0,NULL,NULL);
REPLACE INTO knowledge_base_entries (idx, creator_uid, date_created, section, title, body, xref_tag, faq_entry, date_modified, modifier_uid, archived, date_archived, archiver_uid) VALUES (11,'stoller','2005-08-16 13:18:51','Getting Started','Can I change my Emulab password?',' <p>\r\n Yes. You can change your Emulab Web password and your Emulab login\r\n password (the password you use to log into <b>users.emulab.net</b>, as\r\n well as nodes in your experiments). To change your password,\r\n simply click on the \"Update User Information\" in the menu to your\r\n left, and then enter your new password in the location provided.\r\n Your new password will be installed on <b>users.emulab.net</b>\r\n immediately. Your experimental nodes will get the new password\r\n when they reboot.\r\n </p>\r\n',NULL,1,NULL,NULL,0,NULL,NULL);
REPLACE INTO knowledge_base_entries (idx, creator_uid, date_created, section, title, body, xref_tag, faq_entry, date_modified, modifier_uid, archived, date_archived, archiver_uid) VALUES (12,'stoller','2005-08-16 13:19:34','Getting Started','I\'m a project leader. Can I designate TAs?',' Yes. To designate a TA, you must first create a project\r\n <em>group</em>. A project group is a lot like a unix group, and\r\n in fact unix groups is the mechanism used to protect members of\r\n one group from members of another group. When you create a group,\r\n you designate a <em>group leader</em> who is responsible for\r\n approving users who apply to join the group. Group leaders may\r\n also terminate experiments that have been created by members of\r\n the group. As Project Leader, you may also shift members of your\r\n project in and out of your project\'s groups as you like, and you\r\n are automatically a member of all groups within your project. As a\r\n convenience, all new projects are created with one new group,\r\n termed the <em>default group</em>. As its name implies, whenever\r\n the group is left unspecified in a form, it defaults to the\r\n project group (this allows you to create a project without any sub\r\n groups at all; new members join the default group, new experiments\r\n are created in the default group, etc.).\r\n </p>\r\n\r\n <p>\r\n Project groups are created via the Project Information link at\r\n your left. Simply go to the project page in which you want to\r\n create a group, and look for the \"Create New Group\" link. More\r\n information on project groups is available via the <a\r\n href=\"doc.php3\">Emulab Documentation</a> page in the\r\n <a href=\"docwrapper.php3?docname=groups.html\">Groups Tutorial</a>.\r\n </p>\r\n',NULL,1,'2005-08-16 13:19:46','stoller',0,NULL,NULL);
REPLACE INTO knowledge_base_entries (idx, creator_uid, date_created, section, title, body, xref_tag, faq_entry, date_modified, modifier_uid, archived, date_archived, archiver_uid) VALUES (13,'stoller','2005-08-16 13:21:17','Getting Started','How do I report a specific problem?',' <p>\r\n Don\'t hesitate to send us <a href=\"emailus.php3\">email</a>!\r\n <p>\r\n Ok, hesitate just a little and read the rest of this entry first.\r\n Before sending email, be sure to check out the\r\n <a href=\"kb-show.php3?xref_tag=troubleshooting\">Troubleshooting</a>\r\n entry which describes several common problems and possible causes.\r\n If you do send email, there are several pieces of information you\r\n should include to make our job easier.\r\n <ul>\r\n <li> The affected <b>project and experiment name</b> is pretty obvious,\r\n but some people forget.\r\n <li> The particular <b>nodes, OSes, and programs</b>\r\n involved will help us zero in on the problem more quickly.\r\n <li> The <b>time</b> at which the problem occurred.\r\n We need this to correlate with our various log files.\r\n <li> Any <b>relevant observations and actions</b> you have attempted.\r\n Did the problem only happen once? Is it reproducible? Did restarting\r\n a program or rebooting a node help?\r\n </ul>\r\n After sending email,\r\n <em>please do not swap or terminate the experiment</em>, if possible.\r\n It can be a lot harder to track down a problem after the experiment\r\n is gone. Sometime you may need to terminate it, for example it is\r\n in the middle of the night our time and you really need the nodes\r\n that are tied up in the experiment. But at least give us 15 minutes\r\n to respond to your message before acting, and then let us know that\r\n you did swap/terminate it.\r\n </p>\r\n','problem-reporting',1,'2005-08-16 13:26:07','stoller',0,NULL,NULL);
REPLACE INTO knowledge_base_entries (idx, creator_uid, date_created, section, title, body, xref_tag, faq_entry, date_modified, modifier_uid, archived, date_archived, archiver_uid) VALUES (14,'stoller','2005-08-16 13:30:54','Troubleshooting','My experiment setup failed, what did I do wrong?',' <p>\r\n Experiments can fail in many, many ways, but before you send the above\r\n vague question off to us, consider a couple of things.\r\n First, look carefully at the \"experiment failed\"\r\n e-mail that you received. It includes a log of the setup process which,\r\n while not a model of clarity, often contains an obvious indication of what\r\n happened.\r\n <p>\r\n One potential point of failure is the mapping phase where Emulab\r\n attempts to map your topology to the available resources. Look\r\n in the log for where it runs <code>assign</code>. Common errors\r\n here include:\r\n <ul>\r\n <li> Your topology that requires more physical nodes than\r\n are currently available. There should be a message of the form:\r\n <pre>\r\n *** NN nodes of type XX requested, but only MM found\r\n </pre>\r\n in the log. You should always check the free node count on the left\r\n menu before trying an experiment swapin. Keep in mind that shaped\r\n links might require additional traffic-shaping nodes above and beyond\r\n nodes that are explicit in your topology.\r\n <p>\r\n <li> Your topology requires too many links on one node.\r\n Currently you can have no more than four links per node unless\r\n you use\r\n <a href=/doc/docwrapper.php3?docname=linkdelays.html#EMULINKS>\r\n multiplexed links</a>.\r\n </ul>\r\n <p>\r\n If the setup log shows <code>assign</code> failing repeatedly and\r\n eventually giving up, \r\n <a href=\"kb-show.php3?xref_tag=problem-reporting\">contact us</a>.\r\n <p>\r\n The next potential failure point is the setup of the physical\r\n nodes. If you are explicitly setting the OS image to use with\r\n <code>tb-set-node-os</code>, then make sure you have specified\r\n a valid image (e.g., did you spell the OS identifier correctly?)\r\n Again, the log output should include an error if the OSID was\r\n invalid.\r\n <p>\r\n Click <a href=\"https://www.emulab.net/showosid_list.php3\">List ImageIDs and\r\n OSIDs</a> in the Emulab web interface \"Interaction\" pane to see the\r\n current list of Emulab-supplied OSs.\r\n <p>\r\n If the OSID is correct, but the log contains messages of the form:\r\n <pre>\r\n *** Giving up on pcXXX - it\'s been NN minute(s).\r\n *** WARNING: pcXXX may be down.\r\n This has been reported to testbed-ops.\r\n </pre>\r\n then a node failed to reach the point where it would report a successful\r\n setup to Emulab.\r\n <p>\r\n Near the end of the experiment setup, Emulab\'s event system can fail to\r\n startup with a message like this:\r\n <pre>\r\n Starting the event system.\r\n *** ~/.ssh/identity is not a passphrase-less key\r\n You will need to regenerate the key manually\r\n *** /usr/testbed/devel/stack/sbin/eventsys.proxy:\r\n Failed to start event system for foo/bar\r\n </pre>\r\n Or, like this:\r\n <pre>\r\n Starting the event system.\r\n Permission denied, please try again.\r\n Permission denied, please try again.\r\n Permission denied.\r\n *** /usr/testbed/devel/stack/sbin/eventsys.proxy:\r\n Failed to start event system for foo/bar </pre>\r\n This failure occurs because you have manually changed your default SSH\r\n identity (~/.ssh/identity) or edited your authorized_keys file in your\r\n Emulab home directory without going through the \"Edit SSH Keys\" web form on\r\n your user page. The easiest way to fix this is to make sure the passphrase\r\n is empty using ssh-keygen(1) on the user\'s machine:\r\n <pre>\r\n users$ ssh-keygen -p -P \"<old-passphrase>\" -N \"\" -f ~/.ssh/identity\r\n </pre>\r\n Then, make sure the corresponding public key in your Emulab home directory\r\n (\"~/.ssh/identity.pub\") is listed in the \"Edit SSH Keys\" form.\r\n <p>\r\n Such failures can be caused by many things. Sometimes\r\n a transient load on an Emulab server can push a node over its\r\n timeout, though this is happening less and less as we\r\n improve our infrastructure. Most often, these failures are caused\r\n by the use of custom images which either do not boot or do not\r\n self-configure properly. These are harder to dianose because you\r\n often need access to the console logs to see what happened,\r\n and these logs aren\'t available after an experiment fails.\r\n However, it is possible to interactively monitor\r\n the console while the experiment is setting up since console access\r\n is granted early in setup process. You can either use the\r\n <code>console</code> command on users, use the\r\n <a href=\"#UTT-TUNNEL\">tiptunnel</a> client application,\r\n or just run \"tail -f\" on the <code>/var/log/tiplogs/pcXXX.run</code>\r\n file.\r\n </p>\r\n','troubleshooting',1,'2005-08-16 13:46:10','stoller',0,NULL,NULL);
REPLACE INTO knowledge_base_entries (idx, creator_uid, date_created, section, title, body, xref_tag, faq_entry, date_modified, modifier_uid, archived, date_archived, archiver_uid) VALUES (15,'stoller','2005-08-16 13:47:30','Getting Started','Where do I get more help?',' <p>\r\n If you cannot find an answer to your question in the\r\n <a href=\"doc.php3\">Emulab Documentation</a>, then you can\r\n send us an <a href=\"emailus.php3\">email message</a>. We will try\r\n to answer your question as quickly as we can.\r\n </p>\r\n',NULL,1,NULL,NULL,0,NULL,NULL);
REPLACE INTO knowledge_base_entries (idx, creator_uid, date_created, section, title, body, xref_tag, faq_entry, date_modified, modifier_uid, archived, date_archived, archiver_uid) VALUES (16,'stoller','2005-08-16 13:48:22','Using the Testbed','Is there a tutorial?',' <p>\r\n Yes, we have an extensive <a href=\"tutorial/tutorial.php3\">tutorial</a>\r\n on using the Testbed.\r\n',NULL,1,NULL,NULL,0,NULL,NULL);
REPLACE INTO knowledge_base_entries (idx, creator_uid, date_created, section, title, body, xref_tag, faq_entry, date_modified, modifier_uid, archived, date_archived, archiver_uid) VALUES (17,'stoller','2005-08-16 13:49:09','Using the Testbed','Do you have a GUI to help me create experiments?',' <p>\r\n Yes, we provide a GUI that gives you an easy to use drawing\r\n palette on which you can place nodes, lans, and links. Testbed\r\n specific attributes such as operating system, hardware type, and\r\n link/lan characteristics, may be attached to each object. With a\r\n single click, you can instantiate your new topology on the Testbed\r\n as an experiment in one of your projects. Alternatively, you can\r\n save the auto-generated NS file on your machine, edit as required,\r\n and then submit it later when creating an experiment.\r\n </p>\r\n \r\n <p>\r\n To access the GUI, please log in and go to the Begin Experiment page.\r\n <em>Note: you need a Java compliant browser.</em>\r\n </p>\r\n',NULL,1,NULL,NULL,0,NULL,NULL);
REPLACE INTO knowledge_base_entries (idx, creator_uid, date_created, section, title, body, xref_tag, faq_entry, date_modified, modifier_uid, archived, date_archived, archiver_uid) VALUES (18,'stoller','2005-08-16 13:49:48','Using the Testbed','Are there any constraints on my topology?',' <p>\r\n Yes, but only those imposed by the physical hardware that is\r\n currently available in our testbed. The constraints that people\r\n most commonly run into are the maximum speed of our links\r\n (100Mbps) and the maximum number of network interface cards (NICs)\r\n in our machines. You can\'t get any links faster than 100Mbps,\r\n since we don\'t yet have gigabit links for experimenters to\r\n use. Our nodes each have 4 experimental network interfaces, so\r\n each node can be a member of up to 4 links or LANs. A good\r\n strategy for making your topology fit within those limits is to\r\n replace multiple links to a node with a LAN or with a router\r\n node. \r\n </p>\r\n <p>\r\n Another approach is to use\r\n <a href=doc/docwrapper.php3?docname=linkdelays.html#EMULINKS>\r\n <em>emulated</em> network links.</a> Emulated links are multiplexed\r\n over the actual physical links, up to the physical bandwidth that\r\n the physical link can support. In other words, five 20Mb links can\r\n be multiplexed over a 100Mb physical link. More information on\r\n emulated links can be found <a\r\n href=doc/docwrapper.php3?docname=linkdelays.html>here.</a> Ask\r\n Testbed Operations if you need further assistance.\r\n </p>\r\n\r\n',NULL,1,NULL,NULL,0,NULL,NULL);
REPLACE INTO knowledge_base_entries (idx, creator_uid, date_created, section, title, body, xref_tag, faq_entry, date_modified, modifier_uid, archived, date_archived, archiver_uid) VALUES (19,'stoller','2005-08-16 13:50:22','Using the Testbed','How many nodes can I ask for?',' <p>\r\n You can ask for as many nodes as are currently available! You can\r\n click on the \"Node Reservation Status\" link at your left to see\r\n how many nodes are currently free. If you ask for more than are\r\n currently available, your experiment will be rejected (you\r\n will receive email notification shortly after you submit your NS\r\n file to the web interface).\r\n </p>\r\n\r\n <p>\r\n <em>We urge all new Emulab users to begin with a small 3-4 node\r\n experiment so that you will become familiar with NS syntax and the\r\n practical aspects of Emulab operation.</em>\r\n </p>\r\n',NULL,1,NULL,NULL,0,NULL,NULL);
REPLACE INTO knowledge_base_entries (idx, creator_uid, date_created, section, title, body, xref_tag, faq_entry, date_modified, modifier_uid, archived, date_archived, archiver_uid) VALUES (20,'stoller','2005-08-16 13:52:08','Using the Testbed','How long can I keep using my nodes?',' <p>\r\n You can keep them as long as you need them, subject to our <a\r\n href=\"docwrapper.php3?docname=swapping.html\">Node Usage\r\n Policies</a>. In general, you should do your work, and then\r\n terminate your experiment as soon as you\'re done with it. If\r\n you\'re not done with it, but are through for a while, you should\r\n probably \"swap out\" your experiment (See the question <a\r\n href=\"kb-show.php3?xref_tag=swapping\">What is Swapping</a> in this FAQ). It is\r\n especially important to swap out your experiment if you\'re through\r\n with it for the weekend. Emulab usually gets heavy use on the\r\n weekends by users who need to make very large experiments, so it\r\n is important to leave as many nodes available as possible.\r\n </p>\r\n',NULL,1,NULL,NULL,0,NULL,NULL);
REPLACE INTO knowledge_base_entries (idx, creator_uid, date_created, section, title, body, xref_tag, faq_entry, date_modified, modifier_uid, archived, date_archived, archiver_uid) VALUES (21,'stoller','2005-08-16 13:53:39','Using the Testbed','I only need a couple of nodes but none are free, should I just keep trying?',' <p>\r\n It is better for you and us if you don\'t just keep hitting the\r\n submit button every few minutes. It wastes your time and floods\r\n us with email (we get every failure message you do!)\r\n Instead, you can now use the\r\n <a href=\"tutorial/tutorial.php3#BatchMode\">Batch System</a>\r\n to queue an interactive job. By submitting your experiment as\r\n a batch job, but without any\r\n <a href=\"tutorial/tutorial.php3#Startupcmd\"><tt>tb-set-node-startcmd</tt></a>\r\n directives in your NS file, the job will be queued until nodes are\r\n available. For most experiments, this means just using your regular\r\n NS file, and checking the Batch Mode Experiment box when you create\r\n the experiment.\r\n </p><p>\r\n When your queued job is swapped in, you will be sent email to\r\n inform you, and you can start working!\r\n <b>Please note</b> that the\r\n experiment will be idle when it is swapped in, and will be\r\n <a href=\"swapping.html#idleswap\">idle swapped</a> if you do not\r\n get things running on the nodes in a short period of time. If your\r\n experiment does get swapped out before you can get to it, you can\r\n always visit the experiment\'s information page and try again by\r\n using the Queue Batch Experiment menu item.\r\n </p>\r\n',NULL,1,NULL,NULL,0,NULL,NULL);
REPLACE INTO knowledge_base_entries (idx, creator_uid, date_created, section, title, body, xref_tag, faq_entry, date_modified, modifier_uid, archived, date_archived, archiver_uid) VALUES (22,'stoller','2005-08-16 13:54:19','Using the Testbed','What if I need more nodes than are free?',' <p>\r\n For example, say you need 50 nodes but there are only 40 free. In\r\n general, getting this many nodes is going to require intervention\r\n from Testbed Operations, if only so we can ask other experimenters\r\n to free up nodes, if possible. Please send us email if you are not\r\n able to able to get the number of nodes you need for your experiment.\r\n </p>\r\n\r\n <p>\r\n Another alternative is to use the\r\n <a href=\"tutorial/tutorial.php3#BatchMode\">Batch System.</a> \r\n If your experiment is amenable to being batched (does not require\r\n human intervention to start and stop), then you can submit a batch\r\n request, which will be serviced when enough nodes become\r\n available. Typically, you would start out with a few nodes,\r\n getting used to the batch system and creating whatever scripts are\r\n needed to make the experiment batchable. Then scale up to larger\r\n numbers of nodes. Thats the easiest way of getting a lot of nodes!\r\n </p> \r\n',NULL,1,NULL,NULL,0,NULL,NULL);
REPLACE INTO knowledge_base_entries (idx, creator_uid, date_created, section, title, body, xref_tag, faq_entry, date_modified, modifier_uid, archived, date_archived, archiver_uid) VALUES (23,'stoller','2005-08-16 13:56:33','Using the Testbed','Do I get root access on my nodes?',' <p>\r\n Yes. Project leaders get root access to all of the nodes in all of\r\n the experiments that are running in their project. Project members\r\n get root if their project leader grants them root access, when the\r\n leader approves the group <a href=\"kb-show.php3?xref_tag=start-project\">membership request</a>.\r\n Root privileges are granted via the <code>sudo</code> command. The\r\n <a href=\"tutorial/tutorial.php3#RootAccess\">tutorial</a> describes\r\n this in more detail.\r\n </p>\r\n','root-access',1,'2005-08-16 14:45:45','stoller',0,NULL,NULL);
REPLACE INTO knowledge_base_entries (idx, creator_uid, date_created, section, title, body, xref_tag, faq_entry, date_modified, modifier_uid, archived, date_archived, archiver_uid) VALUES (24,'stoller','2005-08-16 13:58:57','Using the Testbed','Do my nodes have consoles I can look at?',' <p>\r\n Yes. Each of the PCs has its own serial console line with which you can\r\n interact, either directly from your desktop \r\n (see <a href=\"kb-show.php3?xref_tag=tiptunnel\">tiptunnel</a> entry),\r\n or by hopping through the \"users\" machine,\r\n using our <tt>console</tt> program. To connect over serial line to\r\n \"pc1\" in your experiment, ssh into <b>users.emulab.net</b>, and\r\n then type <tt>console pc1</tt> at the Unix prompt. You may then\r\n interact with the serial console (hit \"enter\" to elicit output from\r\n the target machine).\r\n </p><p>\r\n In any case, all console output from each node is saved\r\n so that you may look at it it later. For each node,\r\n the console log is stored as <tt>/var/log/tiplogs/pcXXX.run</tt>.\r\n This <em>run</em> file is created when nodes are first allocated\r\n to an experiment, and the Unix permissions of the run files permit\r\n only members of the project to view them. When the nodes are\r\n deallocated, the run files are cleared, so if you want to save\r\n them, you must do so before terminating the experiment. \r\n </p>\r\n',NULL,1,NULL,NULL,0,NULL,NULL);
REPLACE INTO knowledge_base_entries (idx, creator_uid, date_created, section, title, body, xref_tag, faq_entry, date_modified, modifier_uid, archived, date_archived, archiver_uid) VALUES (25,'stoller','2005-08-16 14:00:05','Using the Testbed','How do I connect directly to node consoles, without going through <b>users</b>?',' <p>\r\n Clicking \"Connect to Serial Line\"\r\n in the Node Options page will send your browser a \"text/x-testbed-acl\"\r\n \".tbacl\" file. \r\n In windows, if you have installed <code>tiptunnel</code>, available\r\n below, you can save this file in a folder and double-click it\r\n to launch a tunneled connection to your node.\r\n In FreeBSD or Linux, you can save the file and pass it as an argument\r\n to <code>tiptunnel</code>, or associate it with\r\n <code>tiptunnel</code> in your web browser.\r\n Upon connection you typically first have to hit \"enter\" to\r\n elicit output from the target machine.\r\n\r\n<!--\r\n If you have downloaded <code>tiptunnel</code> and set it as the \r\n handler for that MIME type, <code>tiptunnel</code> will launch a new \r\n telnet running in a new xterm (this may take a few seconds.) \r\n That telnet will be connected to a local port, \r\n which is tunneled through SSL to your node\'s console. \r\n Closing the xterm, exiting telnet, or killing <code>tiptunnel</code>\r\n itself will end the connection. -->\r\n \r\n </p>\r\n <ul>\r\n <li>\r\n You can download the <code>tiptunnel</code>\r\n <a href=\"downloads/tiptunnel-win32.exe\">installer for Windows here</a>.\r\n </li>\r\n <li>\r\n You can download the <code>tiptunnel</code> statically-linked x86\r\n <a href=\"downloads/tiptunnel-freebsd.tar.gz\">binary for FreeBSD here</a>.\r\n </li>\r\n <li>\r\n You can download the <code>tiptunnel</code> statically-linked x86\r\n <a href=\"downloads/tiptunnel-linux.tar.gz\">binary for Linux here</a>.\r\n </li> \r\n <li>\r\n A source distribution will be available soon.\r\n </li>\r\n </ul>\r\n\r\n <font size=\'+1\'><b>Instructions for Windows:</b></font>\r\n <ul>\r\n <li>Run the installer executable, and successfully complete the installation.</li>\r\n <li>In the Web Interface Node view, \r\n click on the \"Connect to serial line\" link.</li>\r\n <li><b>Save</b> the resulting .tbacl file in an appropriate place.\r\n (for instance a folder off the desktop.)</li>\r\n <li>For the lifetime of your experiment, you can simply double-click\r\n these .tbacl files to connect.</li>\r\n </ul> \r\n\r\n <font size=\'+1\'><b>Instructions for Linux/FreeBSD:</b></font>\r\n <ul>\r\n <li>Use <code>gunzip</code>, \r\n then <code>tar xvf</code> on the downloaded file.</li>\r\n <li>Move the resulting <code>tiptunnel</code> binary into \r\n a directory of your choice (<code>/usr/local/bin</code>, \r\n or <code>~/bin</code> are two good places.)</li>\r\n <li>Set up your browser to handle MIME type \"text/x-testbed-acl\"\r\n as outlined below.</li>\r\n <li>In the Web Interface Node view, \r\n click on the \"Connect to serial line\" link.</li>\r\n <li>If your browser is properly configured to use <code>tiptunnel</code>,\r\n a new xterm window with a telnet session open to your node\r\n should emerge.</li>\r\n <li>(Alternately, you can tell your browser to save \"text/x-testbed-acl\"\r\n files in a directory and you can run them with \r\n <code>tiptunnel</code> directly;\r\n this may be more convenient than using the \r\n web interface every time you wish\r\n to connect to a node in your experiment.\r\n Note that these files are valid for the \r\n lifetime of your experiment.)</li>\r\n </ul>\r\n\r\n <font size=\'+1\'><b>Linux/FreeBSD and Netscape 4.7:</b></font>\r\n <ul>\r\n <li>Choose <code>preferences</code> from the <code>edit</code> menu.</li>\r\n <li>Select <code>Navigator</code>, then <code>Applications</code> under\r\n it.</li>\r\n <li>Click the <code>New...</code> button.</li>\r\n <li>In the <code>MIMEType</code> box, type <code>text/x-testbed-acl</code>\r\n </li>\r\n <li>In the <code>Suffixes</code> box, type <code>tbacl</code></li>\r\n <li>Choose <code>Application</code> in the <code>Handled by</code>\r\n box</li>\r\n <li>Next to <code>Application</code>, either type the path to the\r\n <code>tiptunnel</code> binary, or use <code>Choose...</code> to find\r\n it.</li>\r\n <li>Now, <b>be sure to</b> put a space, then <code>%s</code> after the\r\n path to the application in the box. This tells netscape to actually\r\n pass the aclfile into tiptunnel (Mozilla does not require this;\r\n see below.)</li>\r\n <li>Click <code>OK</code>, then <code>OK</code> again.</li>\r\n <li>Clicking a \"connect to serial line\" link should now\r\n bring up a connection in an xterm window.</li>\r\n </ul> \r\n\r\n <font size=\'+1\'><b>Linux/FreeBSD and Mozilla:</b></font>\r\n <ul>\r\n <li>Choose <code>preferences</code> from the <code>edit</code> menu.</li>\r\n <li>Select <code>Navigator</code>, then <code>Helper Applications</code> \r\n under it.</li>\r\n <li>Click the <code>New Type...</code> button.</li>\r\n <li>In the <code>MIMEType</code> box, \r\n type <code>text/x-testbed-acl</code></li>\r\n <li>In the <code>File extension</code> box, type <code>tbacl</code></li>\r\n <li>For <code>Application to use</code>, either type the path to the\r\n <code>tiptunnel</code> binary, or use <code>Choose...</code> to find\r\n it.</li>\r\n <li>In Mozilla do <b>not</b> add a <code>%s</code>.</li>\r\n <li>Click <code>OK</code>, then <code>OK</code> again.</li>\r\n <li>Clicking a \"connect to serial line\" link should now\r\n bring up a connection in an xterm window.</li>\r\n </ul> \r\n </p>\r\n\r\n','tiptunnel',1,NULL,NULL,0,NULL,NULL);
REPLACE INTO knowledge_base_entries (idx, creator_uid, date_created, section, title, body, xref_tag, faq_entry, date_modified, modifier_uid, archived, date_archived, archiver_uid) VALUES (26,'stoller','2005-08-16 14:01:24','Using the Testbed','Can I reboot (power cycle) my nodes?',' <p>\r\n Yes. Each of the PCs is independently power controlled. If your\r\n node hangs, or is otherwise unresponsive, you can use the\r\n <tt>node_reboot</tt> command, as discussed in the\r\n <a href=\"tutorial/tutorial.php3#Wedged\">Emulab Tutorial.</a>\r\n </p>\r\n',NULL,1,NULL,NULL,0,NULL,NULL);
REPLACE INTO knowledge_base_entries (idx, creator_uid, date_created, section, title, body, xref_tag, faq_entry, date_modified, modifier_uid, archived, date_archived, archiver_uid) VALUES (27,'stoller','2005-08-16 14:01:43','Using the Testbed','I\'ve clobbered my disk! Now what?',' <p>\r\n If you manage to corrupt a disk (or slice), no worries. You can easily\r\n repair the damage yourself by reloading a fresh copy of the default\r\n disk image. You will of course lose anything you have stored on that\r\n disk; it is a good idea to store only data that can be easily recreated, \r\n or else store it in your project directory in <tt>/proj</tt>. Disk\r\n reloading is covered in more detail in the\r\n <a href=\"tutorial/tutorial.php3#Scrogged\">Emulab Tutorial</a>.\r\n </p>\r\n',NULL,1,NULL,NULL,0,NULL,NULL);
REPLACE INTO knowledge_base_entries (idx, creator_uid, date_created, section, title, body, xref_tag, faq_entry, date_modified, modifier_uid, archived, date_archived, archiver_uid) VALUES (28,'stoller','2005-08-16 14:02:23','Using the Testbed','Where do I store files needed by my experiment?',' <p>\r\n Each project has its own directory, rooted at <tt>/proj</tt>,\r\n which is available via NFS to all of the nodes in experiments\r\n running in that project. For example, when the \"RON\" project was\r\n created, a directory called <tt>/proj/RON</tt> was also created. This\r\n directory is owned by the project creator, and is in the unix\r\n group \"RON.\" Its permission (mode) is 770; read/write/execute\r\n permitted by the project creator and by all of the members of the\r\n project RON, but protected against all access by people outside\r\n the RON project.\r\n </p>\r\n <p>\r\n Sub-groups within a project likewise have a directory in the\r\n <tt>/groups</tt> tree. A group named \"group1\" in the RON project\r\n would thus have a group directory in <tt>/groups/RON/group1</tt>.\r\n </p>\r\n <p>\r\n Project members are encouraged to store any files needed by their\r\n experiments in the corresponding /proj or /groups directory.\r\n ',NULL,1,NULL,NULL,0,NULL,NULL);
REPLACE INTO knowledge_base_entries (idx, creator_uid, date_created, section, title, body, xref_tag, faq_entry, date_modified, modifier_uid, archived, date_archived, archiver_uid) VALUES (29,'stoller','2005-08-16 14:03:01','Using the Testbed','Are my files on <b>users</b> backed up (filesaved)?',' <p>\r\n Yes. All of the files in your home directory on /users, all of\r\n the files in your project directory in /proj, and all of the files\r\n in your groups directory in /groups are filesaved. While\r\n we can restore lost files in an emergency, we encourage you to\r\n back up critical data on your own to avoid (possibly long) delays\r\n in conducting your experiments.\r\n </p>\r\n ',NULL,1,NULL,NULL,0,NULL,NULL);
REPLACE INTO knowledge_base_entries (idx, creator_uid, date_created, section, title, body, xref_tag, faq_entry, date_modified, modifier_uid, archived, date_archived, archiver_uid) VALUES (30,'stoller','2005-08-16 14:03:54','Using the Testbed','Are the nodes in my experiment backed up (filesaved)?',' <p>\r\n No! The nodes in your experiment are not filesaved. Any changes\r\n you make to the local filesystems will be lost if the event of a\r\n disk failure. We plan to provide a mechanism for experimenters to\r\n create snapshots of their node state, but that is not done yet. In\r\n the meantime, any files that must not be lost should be stored in\r\n the project directory (/proj/<project_name>), which is available\r\n via NFS to all of the nodes in your experiment. You may also store\r\n files in your home directory (/users/<login>), also available via\r\n NFS to all of your nodes, but that is not the preferred location\r\n since quotas on /users are relatively small.\r\n </p>\r\n',NULL,1,NULL,NULL,0,NULL,NULL);
REPLACE INTO knowledge_base_entries (idx, creator_uid, date_created, section, title, body, xref_tag, faq_entry, date_modified, modifier_uid, archived, date_archived, archiver_uid) VALUES (31,'stoller','2005-08-16 14:05:41','Using the Testbed','What is Swapping?',' <p>\r\n Swapping is when you (or we, or the Emulab system) temporarily swaps\r\n out your experiment,\r\n releasing all of the nodes in the experiment. Your experiment is\r\n still resident in the Emulab database, and you can see its status\r\n in the web interface, but no nodes are allocated. Once an\r\n experiment is swapped out, you can swap it back in via the web\r\n interface by going to the Experiment Information page for your\r\n experiment, and clicking on the swapin option. \r\n You can also <a href=\"kb-show.php3?xref_tag=swapmod\">modify it</a>.\r\n </p>\r\n\r\n <p>\r\n The <tt>idle-swap</tt> checkbox in the Begin Experiment web page\r\n is used to determine what experiments can be <em>automatically</em>\r\n swapped by the testbed scheduling system. Note that all experiments are\r\n capable of being swapped; even if you do not check the idle-swap box,\r\n you are free to swap your own experiments as you like. The only\r\n difference is that the testbed scheduling system will not consider your\r\n experiment when looking for experiments to swap out. You will sometimes\r\n notice that the Experiment Information page does not contain the swap\r\n link. That is because experiments cannot be swapped when they are in\r\n transition. For example, when the experiment is being swapped in (say,\r\n after first being created) the link will disappear until the experiment\r\n is fully swapped in, and it is capable of being swapped out. You will\r\n need to occasionally reload the page so that the updated state is\r\n recognized and the swap link appears. \r\n </p>\r\n \r\n <p>\r\n Be aware that we do not currently save any files that you may have\r\n placed on your nodes. When your experiment is swapped back in, you\r\n will likely get different nodes, with fresh copies of the disk\r\n images. For that reason, you should not swap your experiment out\r\n unless you make arrangements to save and restore any state you need.\r\n </p>\r\n\r\n <p>\r\n <em>Please be sure to read our \r\n <a href=\"docwrapper.php3?docname=swapping.html\"> Node Usage Policies</a></em>,\r\n which contain detailed information on swapping.\r\n </p>\r\n\r\n','swapping',1,NULL,NULL,0,NULL,NULL);
REPLACE INTO knowledge_base_entries (idx, creator_uid, date_created, section, title, body, xref_tag, faq_entry, date_modified, modifier_uid, archived, date_archived, archiver_uid) VALUES (32,'stoller','2005-08-16 14:08:52','Using the Testbed','How can I get switch statistics (such as packet counts) for my experiment?',' <p>\r\n We have a command called <code>portstats</code> that allows you access\r\n to some of the port counters on our switches. To use it, you\'ll need\r\n to ssh to <b>users.emulab.net</b>. \'<code>portstats &lt;proj&gt; \r\n &lt;exp&gt;</code>\' will get you stats for all experimental interfaces in\r\n your experiment. Run \'<code>portstats -h</code>\' to get a list of other\r\n options, such as different sets of stats.\r\n </p>\r\n\r\n <p>\r\n Note that the numbers returned by <code>portstats</code> do not get\r\n reset between experiments.\r\n </p>\r\n',NULL,1,NULL,NULL,0,NULL,NULL);
REPLACE INTO knowledge_base_entries (idx, creator_uid, date_created, section, title, body, xref_tag, faq_entry, date_modified, modifier_uid, archived, date_archived, archiver_uid) VALUES (33,'stoller','2005-08-16 14:10:07','Using the Testbed','What names should I use to refer to the nodes in my experiment?',' <p>We set up names for your nodes in DNS, for use from outside,\r\n and <code>/etc/hosts</code> files for use on the nodes in the experiment.\r\n Since our nodes have multiple interfaces (the control network, and,\r\n depending on the experiment, possibly several experimental interfaces,)\r\n determining which name refers to which interface can be somewhat\r\n confusing. The rules below should help you figure this out.\r\n </p>\r\n\r\n <ul>\r\n <li><b>From the outside world</b> - \r\n We set up names in the form\r\n <code><i>node</i>.<i>expt</i>.<i>proj</i>.emulab.net</code> in DNS,\r\n so that they visible anywhere on the Internet. This name always refers\r\n to the node\'s control network interface, which is the only one\r\n reachable from the outside world.\r\n </li>\r\n\r\n <li><b>On the nodes themselves</b> -\r\n There are three basic ways to refer to the interfaces of a node. The\r\n first is stored in DNS, and the second two are stored on the node in\r\n the <code>/etc/hosts</code> file.\r\n <ol>\r\n <li><i>Fully-qualified hostnames</i> - These names the same ones\r\n visible from the outside world, and referred to by attaching the\r\n full domain name: ie.\r\n <code><i>node</i>.<i>expt</i>.<i>proj</i>.emulab.net</code>. (note\r\n that, since we put <code>.emulab.net</code> in nodes\' domain\r\n search paths, you can use\r\n <code><i>node</i>.<i>expt</i>.<i>proj</i></code> as a shorthand.)\r\n This name always refers to the control network\r\n </li>\r\n\r\n <li><i><code>node-link</code> form</i> - You can refer to an\r\n individual experimental interface by suffixing it with the name of\r\n the link or LAN (as defined in your NS file) that it is a member\r\n of. For example, <code>nodeA-link0</code> or\r\n <code>server-serverLAN</code>. This is the preferred way to refer\r\n to experimental interfaces, since it uniquely and unambiguously\r\n identifies an interface.\r\n </li>\r\n\r\n <li><i>Short form</i> - If a node is directly connected to the\r\n node you\'re on, you can refer to that node simply with its name\r\n (eg. <code>nodeA</code>.) Note that this differs from the fully-\r\n qualified name in that no domain is given. We also create short\r\n names for nodes you are not directly connected to.\r\n However, if two nodes are\r\n connected with more than one interface, or there is more than\r\n one route between them, there is no guarantee that the short name\r\n has been associated with the one is on the \'best\' (ie. shortest or\r\n highest bandwidth) path - so, if there is ambiguity, we strongly\r\n suggest that you use the <code><i>node-link</i></code> form.\r\n </li>\r\n </li>\r\n </ul>\r\n','node-naming',1,'2005-08-16 14:10:22','stoller',0,NULL,NULL);
REPLACE INTO knowledge_base_entries (idx, creator_uid, date_created, section, title, body, xref_tag, faq_entry, date_modified, modifier_uid, archived, date_archived, archiver_uid) VALUES (34,'stoller','2005-08-16 14:11:29','Using the Testbed','Can I modify my experiment after creating it?',' <p>Yes. On the experiment view page, choose \"Modify this Experiment\".\r\n This will allow you to modify an experiment, either swapped-out or in,\r\n by editing its NS file.</p>\r\n <p>If the experiment is swapped-out, \r\n Experiment Modify will simply replace its topology with the\r\n newly specified one;\r\n this new topology will be mapped when the experiment is swapped in.</p>\r\n <p>If the experiment is already swapped-in, Modify will change the topology\r\n and map in the portions which have been changed. This allows dynamic\r\n addition, subtraction, and replacement of an experiment\'s nodes and links.\r\n However, when modifying swapped-in experiments, there are a couple\r\n things to keep in mind:\r\n <ul>\r\n <li>Any node with the same name in the old and new topology will remain\r\n on the same physical machine, unaffected-- its disk will not be reloaded.\r\n If you want to, for example, change the hardware on a machine, you will\r\n have to call the machine something different in the new topology.\r\n </li>\r\n <br>\r\n <li>\r\n It is highly recommended that you leave the\r\n \"Reboot nodes in experiment\" box checked in the Experiment Modify form.\r\n This is especially important if changing your experiment topology \r\n (adding or removing nodes, links, and LANs).\r\n If adding/removing a delay to/from an existing link, or replacing \r\n a lost node <i>without modifying the experiment topology</i>,\r\n this won\'t be necessary.\r\n </li>\r\n <li>\r\n The event system is not automatically restarted for your\r\n experiment, so you will not be able to modify the traffic\r\n shaping for new links. In addition, if you add program\r\n agents or traffic generators, these will not activate unless\r\n you restart the event system by hand. Unfortunately, all\r\n events will be replayed, so be careful: On\r\n <tt>users.emulab.net</tt>, you may do the following:\r\n <blockquote>\r\n <code>\r\n eventsys_control [-f] replay proj expt\r\n </code>\r\n </blockquote>\r\n </li>\r\n </ul>\r\n </p>\r\n\r\n','swapmod',1,'2005-08-16 14:11:49','stoller',0,NULL,NULL);
REPLACE INTO knowledge_base_entries (idx, creator_uid, date_created, section, title, body, xref_tag, faq_entry, date_modified, modifier_uid, archived, date_archived, archiver_uid) VALUES (35,'stoller','2005-08-16 14:12:55','Using the Testbed','Are there Linux and/or FreeBSD sources and packages available locally?',' <p>\r\n Yes. We provide sources and packages for a few versions of\r\n FreeBSD and RedHat Linux. The place to look for available\r\n software is under <b>/share</b> on either <b>users.emulab.net</b>\r\n or your experimental nodes. This path is readonly (and NFS\r\n mounted on the nodes), so you\'ll need to make a copy of the\r\n contents found there if you need to do more than reference them\r\n for information or installation.\r\n </p>\r\n\r\n <ul>\r\n <li><b>FreeBSD Paths:</b>\r\n The FreeBSD kernel, and userland sources are available under\r\n <b>/share/freebsd</b>. Look there to see if the version you are\r\n seeking is available. You can also find Emulab additions and\r\n modifications to FreeBSD here. Emulab kernel configurations are\r\n called TESTBED and located in <b>sys/i386/conf</b> relative to the\r\n FreeBSD source trees. The README file in this directory has more\r\n information on the contents.\r\n </li>\r\n\r\n <br>\r\n <li><b>Linux Paths:</b>\r\n Linux kernel sources and RPMs for various versions of Redhat can\r\n be found under <b>/share/redhat</b>. Look there to see if the\r\n version you are seeking is available. You can also find Emulab\r\n additions and modifications to Linux here. Emulab kernel\r\n configurations are called <b>config-emulab</b> and exist in the\r\n root of the kernel source trees. The README file in this\r\n directory has more information on the contents.\r\n </li>\r\n \r\n <br>\r\n <li><b>Other Software:</b>\r\n We provide a few other generally useful software packages and\r\n sources under <b>/share</b> as well. Have a look around.\r\n </li>\r\n\r\n <br>\r\n <li><b>Something Missing?</b> \r\n If you think something should be added to <b>/share</b>, feel\r\n free to send your suggestion(s) to us via \r\n <a href=\"emailus.php3\">email</a>. Note that we may retire some\r\n offerings if we determine them to be of little value.\r\n </li>\r\n </ul>\r\n',NULL,1,NULL,NULL,0,NULL,NULL);
REPLACE INTO knowledge_base_entries (idx, creator_uid, date_created, section, title, body, xref_tag, faq_entry, date_modified, modifier_uid, archived, date_archived, archiver_uid) VALUES (36,'stoller','2005-08-16 14:14:52','Hardware Setup','What kind of computers are used for my nodes?',' Please see the <a href=\"docwrapper.php3?docname=hardware.html\">\r\n Hardware Overview</a> page for a description and count of the\r\n computers that comprise the Testbed.\r\n',NULL,1,NULL,NULL,0,NULL,NULL);
REPLACE INTO knowledge_base_entries (idx, creator_uid, date_created, section, title, body, xref_tag, faq_entry, date_modified, modifier_uid, archived, date_archived, archiver_uid) VALUES (37,'stoller','2005-08-16 14:15:21','Hardware Setup','How many nodes are there?',' Please see the <a href=\"docwrapper.php3?docname=hardware.html\">\r\n Hardware Overview</a> page for a description and count of the\r\n computers that comprise the Testbed.\r\n',NULL,1,NULL,NULL,0,NULL,NULL);
REPLACE INTO knowledge_base_entries (idx, creator_uid, date_created, section, title, body, xref_tag, faq_entry, date_modified, modifier_uid, archived, date_archived, archiver_uid) VALUES (38,'stoller','2005-08-16 14:15:53','Hardware Setup','How many ethernet cards are on each node? ',' <p>\r\n Please see the <a href=\"docwrapper.php3?docname=hardware.html\">\r\n Hardware Overview</a> page for a description and count of the\r\n computers that comprise the Testbed.\r\n </p>\r\n',NULL,1,NULL,NULL,0,NULL,NULL);
REPLACE INTO knowledge_base_entries (idx, creator_uid, date_created, section, title, body, xref_tag, faq_entry, date_modified, modifier_uid, archived, date_archived, archiver_uid) VALUES (39,'stoller','2005-08-16 14:16:54','Hardware Setup','How do I ask for specific hardware?',' If you would like to ask for a specific type of hardware, such as a\r\n <code>pc850</code>, see the\r\n <a href=\"tutorial/docwrapper.php3?docname=nscommands.html#HARD\">\r\n <code>tb-set-hardware</code></a>\r\n command in our <a href=\"tutorial/docwrapper.php3?docname=nscommands.html\">NS\r\n extensions document</a>. You can also define classes of nodes which should\r\n be given the same hardware using\r\n <a href=\"tutorial/docwrapper.php3?docname=nscommands.html#VTYPE\">virtual\r\n type commands</a>.\r\n </p>\r\n',NULL,1,NULL,NULL,0,NULL,NULL);
REPLACE INTO knowledge_base_entries (idx, creator_uid, date_created, section, title, body, xref_tag, faq_entry, date_modified, modifier_uid, archived, date_archived, archiver_uid) VALUES (40,'stoller','2005-08-16 14:17:25','Hardware Setup','How many nodes are currently available (free)?',' <p>\r\n If you click on the \"Node Reservation Status\" link in the menu to\r\n your left, you will see a summary of the number of nodes (by type)\r\n that are currently available, followed by a listing of the\r\n reservation status of each individual node.\r\n </p>\r\n',NULL,1,NULL,NULL,0,NULL,NULL);
REPLACE INTO knowledge_base_entries (idx, creator_uid, date_created, section, title, body, xref_tag, faq_entry, date_modified, modifier_uid, archived, date_archived, archiver_uid) VALUES (41,'stoller','2005-08-16 14:17:54','Hardware Setup','Can I do traffic shaping on my links?',' <p>\r\n Yes! You can specify the delay, bandwidth, and packet loss rate\r\n between any two nodes in your topology. Bandwidth and delay are\r\n specified in the NS <tt>duplex-link</tt> statement, while packet\r\n loss rate is specified with the Emulab <tt>tb-set-link-loss</tt>\r\n extension to NS. You may also specify delay, bandwidth, and packet\r\n loss rate between nodes in a regular LAN.\r\n </p>\r\n <p>\r\n Please see the\r\n <a href=\"tutorial/docwrapper.php3?docname=nscommands.html\">Extensions</a>\r\n page for a summary of all Emulab NS extensions, and the\r\n <a href = \"tutorial/tutorial.php3\">Emulab Tutorial</a> for an\r\n example. \r\n </p>\r\n\r\n',NULL,1,'2005-08-16 14:18:14','stoller',0,NULL,NULL);
REPLACE INTO knowledge_base_entries (idx, creator_uid, date_created, section, title, body, xref_tag, faq_entry, date_modified, modifier_uid, archived, date_archived, archiver_uid) VALUES (42,'stoller','2005-08-16 14:19:01','Hardware Setup','Can I modify the traffic shaping parameters on my links?',' <p>\r\n Yes! If your NS file specified traffic shaping on a link, then you\r\n can subsequently modify those parameters after the experiment has\r\n been swapped in. Note that you cannot <em>convert</em> a non shaped\r\n link into a shaped link; you can only modify the traffic shaping\r\n parameters of a link that is already being shaped. To modify the\r\n parameters, go to the Experiment Information page of your\r\n experiment, and click on the \"Control Traffic Shaping\" menu\r\n option. Follow the instructions at the top of the page.\r\n </p>\r\n <p>\r\n An alternative method is to log into <b>users.emulab.net</b> and use the\r\n <tt>delay_config</tt> program. This program requires that you know\r\n the symbolic names of the individual links. This information is\r\n available via the web interface on the Experiment Information\r\n page. The command line syntax for <tt>delay_config</tt> will be\r\n displayed when the <tt>-h</tt> option is given.\r\n </p>\r\n\r\n',NULL,1,NULL,NULL,0,NULL,NULL);
REPLACE INTO knowledge_base_entries (idx, creator_uid, date_created, section, title, body, xref_tag, faq_entry, date_modified, modifier_uid, archived, date_archived, archiver_uid) VALUES (43,'stoller','2005-08-16 14:20:36','Hardware Setup','Are there other traffic shaping parameters besides latency,bandwidth, and packet loss rate? ',' <p>\r\n Yes! Please see the\r\n <a href=\"tutorial/docwrapper.php3?docname=advanced.html\">\r\n advanced tutorial</a>. Note though, that these other parameters\r\n can be specified for duplex links only (not lans), and that they\r\n are not configurable with <tt>delay_config</tt>, but with a\r\n different testbed utility call <tt>tevc</tt> (also described in\r\n the advanced tutorial).\r\n </p> \r\n\r\n',NULL,1,NULL,NULL,0,NULL,NULL);
REPLACE INTO knowledge_base_entries (idx, creator_uid, date_created, section, title, body, xref_tag, faq_entry, date_modified, modifier_uid, archived, date_archived, archiver_uid) VALUES (44,'stoller','2005-08-16 14:21:27','Hardware Setup','Do any Emulab nodes have wifi (802.11) interfaces?',' <p>\r\n Yes! We currently have several Pentium IV, 3GHz nodes scattered around \r\n our building with two wifi interfaces each. There are also a handful of\r\n older Pentium III, 850MHz systems with wifi interfaces. Please refer\r\n to the <a href=\"tutorial/docwrapper.php3?docname=wireless.html\">\r\n wireless tutorial</a> for more info.\r\n </p>\r\n',NULL,1,NULL,NULL,0,NULL,NULL);
REPLACE INTO knowledge_base_entries (idx, creator_uid, date_created, section, title, body, xref_tag, faq_entry, date_modified, modifier_uid, archived, date_archived, archiver_uid) VALUES (45,'stoller','2005-08-16 14:21:48','Hardware Setup','What kind of wifi cards are used in Emulab?',' <p>\r\n We use Netgear WAG311 cards which contain the Atheros 5212\r\n chipset. The Madwifi driver and its branches provide support in Linux or\r\n FreeBSD. The default RHL90-WIRELESS image utilizes the unstripped\r\n madwifi driver (second link below) by default.\r\n </p>\r\n <a href=\"http://netgear.com/products/details/WAG311.php\">\r\n WAG311 product info</a>\r\n <br>\r\n <a href=\"http://madwifi.sourceforge.net\">Madwifi Atheros driver</a>\r\n <br>\r\n <a href=\"http://pdos.csail.mit.edu/~jbicket/madwifi.stripped/\">\r\n Stripped madwifi driver</a> - <i>Primarily for use with\r\n <a href=\"http://pdos.csail.mit.edu/click/\">click</a></i>\r\n \r\n',NULL,1,NULL,NULL,0,NULL,NULL);
REPLACE INTO knowledge_base_entries (idx, creator_uid, date_created, section, title, body, xref_tag, faq_entry, date_modified, modifier_uid, archived, date_archived, archiver_uid) VALUES (46,'stoller','2005-08-16 14:36:58','Software Setup','What OS do the nodes run?',' <p>\r\n Please see the <a href=\"docwrapper.php3?docname=software.html\">\r\n Software Overview</a> page for a description of the Operating\r\n Systems that can be run on each of the Testbed nodes.\r\n </p>\r\n',NULL,1,NULL,NULL,0,NULL,NULL);
REPLACE INTO knowledge_base_entries (idx, creator_uid, date_created, section, title, body, xref_tag, faq_entry, date_modified, modifier_uid, archived, date_archived, archiver_uid) VALUES (47,'stoller','2005-08-16 14:37:28','Software Setup','How do I select which OS to run on each node?',' <p>\r\n When a choice of OS is available, you may specify which one you\r\n prefer for each node in the NS file using the Emulab\r\n <tt>tb-set-node-os</tt> extension to NS. When your experiment is\r\n configured, the appropriate disk image will be loaded on your\r\n nodes, and the selected operating system will boot up on each.\r\n </p>\r\n <p>\r\n Please see the\r\n <a href=\"tutorial/docwrapper.php3?docname=nscommands.html#OS\">Extensions</a>\r\n page for a summary of all Emulab NS extensions, and the\r\n <a href = \"tutorial/tutorial.php3#OsChoices\">Emulab Tutorial</a> for an\r\n example. \r\n </p> \r\n \r\n',NULL,1,NULL,NULL,0,NULL,NULL);
REPLACE INTO knowledge_base_entries (idx, creator_uid, date_created, section, title, body, xref_tag, faq_entry, date_modified, modifier_uid, archived, date_archived, archiver_uid) VALUES (48,'stoller','2005-08-16 14:37:58','Software Setup','Is Windows 2000 supported as well as Windows XP?',' <p>\r\n We have no existing support for Win2k. Given our experience in bringing\r\n Windows XP into the Emulab fold, it could easily be an enormous\r\n undertaking to get Win2k going.\r\n </p>\r\n <p>\r\n We suggest switching to XP if at all possible.\r\n </p>\r\n <p>\r\n Please see the <a href=\"doc/docwrapper.php3?docname=windows.html\">\r\n Windows&nbsp;XP</a> page for more information.\r\n </p>\r\n \r\n',NULL,1,NULL,NULL,0,NULL,NULL);
REPLACE INTO knowledge_base_entries (idx, creator_uid, date_created, section, title, body, xref_tag, faq_entry, date_modified, modifier_uid, archived, date_archived, archiver_uid) VALUES (49,'stoller','2005-08-16 14:38:53','Software Setup','Can I load my own software (RPMs/Tarballs) on my nodes?',' <p>\r\n Yes! If you have an RPM or Tarball (or more than one) that is appropriate for\r\n loading on the OS you have selected, you can arrange to have them\r\n loaded automatically when your experiment is configured. The\r\n Emulab NS extension, <a href=\"tutorial/docwrapper.php3?docname=nscommands.html#tb-set-node-rpms\"><tt>tb-set-node-rpms</tt></a>, is used in the NS\r\n file to specify a list of RPMS to install.\r\n The <a\r\n href=\"tutorial/docwrapper.php3?docname=nscommands.html#tb-set-node-tarfiles\"><tt>tb-set-node-tarfiles</tt></a>\r\n command is used to specify a list of Tar\r\n files to install, as well as the directories in which the tars\r\n should be unpacked. You may specify a\r\n different list for each node in the experiment. The RPMs/Tarballs\r\n will be installed when the nodes first boot after the experiment is\r\n swapped in or if the nodes detect a changed RPM/Tarball during a reboot.\r\n </p>\r\n <p>\r\n Please see the\r\n <a href=\"tutorial/docwrapper.php3?docname=nscommands.html\">Extensions</a>\r\n page for a summary of all Emulab NS extensions, and the\r\n <a href = \"tutorial/tutorial.php3#RPMS\">Emulab Tutorial</a> for an\r\n example. \r\n </p> \r\n \r\n',NULL,1,NULL,NULL,0,NULL,NULL);
REPLACE INTO knowledge_base_entries (idx, creator_uid, date_created, section, title, body, xref_tag, faq_entry, date_modified, modifier_uid, archived, date_archived, archiver_uid) VALUES (50,'stoller','2005-08-16 14:40:10','Software Setup','Can I schedule programs to run automatically when a node boots?',' <p>\r\n Yes! You can arrange to run a single program or script when your\r\n node boots. The script is run as the UID of the experiment\r\n creator, and is run after all other node configuration (including\r\n RPM installation) has completed. The exit status of the script (or\r\n program) is reported back and is made available for you to view in\r\n Experiment Information link in the menu at your left. The Emulab\r\n NS extension <tt>tb-set-node-startcmd</tt> is used in the NS file\r\n to specify the path of the script (or program) to run. You may\r\n specify a different program for each node in the experiment.\r\n </p>\r\n <p>\r\n Please see the\r\n <a href=\"tutorial/docwrapper.php3?docname=nscommands.html\">Extensions</a>\r\n page for a summary of all Emulab NS extensions, and the\r\n <a href = \"tutorial/tutorial.php3\">Emulab Tutorial</a> for an\r\n example.\r\n </p> \r\n\r\n',NULL,1,NULL,NULL,0,NULL,NULL);
REPLACE INTO knowledge_base_entries (idx, creator_uid, date_created, section, title, body, xref_tag, faq_entry, date_modified, modifier_uid, archived, date_archived, archiver_uid) VALUES (51,'stoller','2005-08-16 14:41:12','Software Setup','How can I turn on routing or set up routes automatically on my nodes? ',' <p>\r\n By default, we do not setup any static routes or run any routing daemon\r\n on nodes in an experiment. However, we do provide several options for\r\n experimenters, which are described in the\r\n <a href=\"tutorial/tutorial.php3#Routing\">\"Setting up IP routing\r\n between nodes\"</a> section of the\r\n <a href=\"tutorial/tutorial.php3\">Emulab Tutorial.</a>\r\n </p>\r\n \r\n','routing',1,'2005-08-16 14:53:25','stoller',0,NULL,NULL);
REPLACE INTO knowledge_base_entries (idx, creator_uid, date_created, section, title, body, xref_tag, faq_entry, date_modified, modifier_uid, archived, date_archived, archiver_uid) VALUES (52,'stoller','2005-08-16 14:42:03','Software Setup','How does my software determine when other nodes in my experiment are ready?',' <p>\r\n If your application requires synchronization amongst your nodes,\r\n you may use the Emulab provided synchronization server, which\r\n provides a very simple form of barrier synchronization. Use of the\r\n synchronization server is described in more detail in the <a href =\r\n \"tutorial/tutorial.php3#SyncServer\">Emulab Tutorial</a>.\r\n </p>\r\n',NULL,1,NULL,NULL,0,NULL,NULL);
REPLACE INTO knowledge_base_entries (idx, creator_uid, date_created, section, title, body, xref_tag, faq_entry, date_modified, modifier_uid, archived, date_archived, archiver_uid) VALUES (53,'stoller','2005-08-16 14:42:30','Software Setup','Can I run my own Operating System?',' <p>\r\n Yes! You can run your own OS (or a customized version of an Emulab\r\n supported OS) on any of the PCs. You can also run <a href =\r\n \"http://www.cs.utah.edu/flux/oskit/\">OSKit</a> kernels on the\r\n PCs. Each of the PCs is partitioned with two DOS partitions large\r\n enough to hold the typical OS installation. The 1st and 2nd\r\n partitions are each 3GB. The 3rd partition is 500MB, and is\r\n labeled as Linux Swap. The 4th partition is the remainder of the\r\n disk, and varies in size depending on the pc type. We recommend\r\n that you use the 1st or 2nd partition; using the 4th partition\r\n will restrict the number of machines that you can run your OS on\r\n since it varies in size. Note that you must leave the MBR (Master\r\n Boot Record) in sector 0 alone, and that your custom partition\r\n must contain a proper DOS boot record in the first sector.\r\n </p>\r\n\r\n <p>\r\n Please note that while users are free to customize their disks and\r\n install their own operating systems, Emulab staff will not be able\r\n to offer more than encouragement and advice! We cannot install the\r\n OS for you, and we cannot load CDROMS, floppy disks, or tape drives!\r\n We <em>do</em> provide an easy way for you to boot FreeBSD from a\r\n memory based filesystem (MFS) so that you can more easily work\r\n with the disk (in case it is not possible to install your OS on a\r\n live disk). Beyond that, you are pretty much on your own!\r\n </p>\r\n\r\n <p>\r\n Many users had great success with customizing an Emulab supported\r\n OS (FreeBSD or Linux), and then creating a disk image that is\r\n autoloaded when the experiment is swapped in. We strongly\r\n encourage people to use this approach whenever possible! There is\r\n more information available in the <a\r\n href=\"tutorial/tutorial.php3#CustomOS\">Custom OS</a> section of\r\n the <a href = \"tutorial/tutorial.php3\">Emulab Tutorial.</a>\r\n </p>\r\n\r\n\r\n',NULL,1,NULL,NULL,0,NULL,NULL);
REPLACE INTO knowledge_base_entries (idx, creator_uid, date_created, section, title, body, xref_tag, faq_entry, date_modified, modifier_uid, archived, date_archived, archiver_uid) VALUES (54,'stoller','2005-08-16 14:43:45','Software Setup','Can I share a disk image between two projects?',' <p>\r\n No. At this time you cannot share OS images between projects. We\r\n are thinking of adding project collaboration support, but that is\r\n a future project.\r\n </p>\r\n <p>\r\n In the meantime, you will need to create an\r\n <a href=\"https://www.emulab.net/newimageid_ez.php3\">image\r\n descriptor</a> in the project that wants to use your image. Fill out\r\n the form, but leave out the \"Node to Obtain Snapshot from\". Then\r\n just copy the image over to the default path it picked for you in\r\n the form. There is more information available in the <a\r\n href=\"tutorial/tutorial.php3#CustomOS\">Custom OS</a> section of\r\n the <a href = \"tutorial/tutorial.php3\">Emulab Tutorial.</a>\r\n </p>\r\n',NULL,1,NULL,NULL,0,NULL,NULL);
REPLACE INTO knowledge_base_entries (idx, creator_uid, date_created, section, title, body, xref_tag, faq_entry, date_modified, modifier_uid, archived, date_archived, archiver_uid) VALUES (55,'stoller','2005-08-16 14:47:09','Software Setup','What if I need more disk space on my nodes?',' <p>\r\n Each node has a partition at the end of the disk that you can use if\r\n you wish. In Linux, the partition is <code>/dev/hda4</code> ; in FreeBSD,\r\n it\'s </code>/dev/ad0s4</code> . There is no filesystem on this partition,\r\n so you\'ll need to create it yourself. Before going any further, there\r\n is one very important point: <b>anything you put in this disk space will\r\n be lost when your experiment swaps out!</b> That is, unless you create\r\n a <a href=\"tutorial/tutorial.php3#CustomOS\">Custom disk image</a>\r\n before it gets swapped.\r\n </p><p>\r\n Recent versions of our standard FreeBSD and Linux images include a\r\n script, <code>/usr/testbed/bin/mkextrafs</code> for this purpose.\r\n Just do the following <a href=\"kb-show.php3?xref_tag=root-access\">\r\n as root</a>:\r\n <blockquote>\r\n <code>/usr/testbed/bin/mkextrafs /mnt</code>\r\n </blockquote>\r\n and it will create the filesystem, mount it on <code>/mnt</code>\r\n and make an entry in <code>/etc/fstab</code> so that the filesystem\r\n will be mounted on future reboots.\r\n </p><p>\r\n If that script does not exist, you can perform the steps by hand.\r\n For example, in Linux do the following\r\n <a href=\"kb-show.php3?xref_tag=root-access\">as root</a>:\r\n <ul>\r\n <p>\r\n <li>Set the correct partition type (type 83 - ext2fs):</li>\r\n <blockquote>\r\n <code>fdisk /dev/hda</code>\r\n </blockquote>\r\n <ul>\r\n <li>Press \'t\' to change partition sysid.</li>\r\n <li>Enter \'4\' as the partition to change.</li>\r\n <li>Enter \'83\' to specify ext2fs.</li>\r\n <li>Type \'w\' to save and exit.</li>\r\n </ul>\r\n </p><p>\r\n <li>Create the filesystem:</li>\r\n <blockquote>\r\n <code>mkfs /dev/hda4</code>\r\n </blockquote>\r\n </p><p>\r\n <li>Mount the filesystem:</li>\r\n <blockquote>\r\n <code>mount /dev/hda4 /mnt</code>\r\n </blockquote>\r\n </p>\r\n <p>\r\n You may want to add the filesystem to <code>/etc/fstab</code>\r\n so that it will be automatically mounted on future reboots.\r\n </p>\r\n </ul>\r\n In FreeBSD, do the following\r\n <a href=\"kb-show.php3?xref_tag=root-access\">as root</a>:\r\n <ul>\r\n <p>\r\n <li>First, you need to set the correct partition type:</li>\r\n <blockquote>\r\n <code>fdisk -i4 /dev/ad0</code>\r\n </blockquote>\r\n <ul>\r\n <li>Do <em>not</em> change what the BIOS thinks.</li>\r\n <li>Edit the partition info, setting the sysid to 165; leave other\r\n metrics alone.</li>\r\n <li>Do <em>not</em> change the active partition</li>\r\n <li>Write out the new partition table</li>\r\n </ul>\r\n </p>\r\n <p>\r\n <li>Next, you have to create a BSD disklabel on the partition:</li>\r\n <blockquote>\r\n <code>disklabel -w ad0s4 auto</code>\r\n </blockquote>\r\n </p>\r\n <p>\r\n <li>Create the filesystem:</li>\r\n <blockquote>\r\n <code>newfs /dev/ad0s4c</code>\r\n </blockquote>\r\n </p>\r\n <p>\r\n <li>Finally, mount it:</li>\r\n <blockquote>\r\n <code>mount /dev/ad0s4c /some/where</code>\r\n </blockquote>\r\n </p>\r\n <p>\r\n You may want to add the filesystem to <code>/etc/fstab</code>\r\n so that it will be automatically mounted on future reboots.\r\n </p>\r\n </ul>\r\n <p>\r\n The available space ranges from 6-33GB depending on the disk type.\r\n </p>\r\n\r\n',NULL,1,NULL,NULL,0,NULL,NULL);
REPLACE INTO knowledge_base_entries (idx, creator_uid, date_created, section, title, body, xref_tag, faq_entry, date_modified, modifier_uid, archived, date_archived, archiver_uid) VALUES (56,'stoller','2005-08-16 14:49:48','Software Setup','Are there testbed-specific daemons that could interfere with my experiment?',' <p>\r\n Probably not.\r\n By default, the testbed startup scripts currently start two daemons in \r\n addition to the OS\'s standard set. Other daemons may be started depending\r\n on the network services you ask for in your ns file (see below).\r\n </p>\r\n\r\n <p>\r\n <b>Unconditionally started daemons:</b>\r\n </p>\r\n\r\n <p>\r\n <blockquote>\r\n <li><code>healthd</code> - A low overhead hardware health monitor.</li>\r\n </blockquote>\r\n </p>\r\n\r\n <p> \r\n This deamon periodically polls the machine\'s health monitoring\r\n hardware and sends this information back to our <code>boss</code>\r\n node for analysis. The hardware is polled once per second, and a\r\n status datagram is sent out once every five minutes.\r\n <code>Healthd</code>\'s overhead is quite low, but it can be safely\r\n killed and disabled from startup if you\'re worried about possible\r\n side effects. It is started by\r\n <code>/etc/testbed/rc.healthd</code>.\r\n </p>\r\n\r\n <p>\r\n <blockquote>\r\n <li><code>slothd</code> - A low overhead usage analysis tool.</li>\r\n </blockquote>\r\n </p>\r\n\r\n <p>\r\n <code>Slothd</code> is important to efficient testbed utilization\r\n and should run on every node whenever possible. Its overhead is\r\n almost negligible (essentially less than running <code>\'ls -l\r\n /dev\'</code> once every five minutes), and should not interfere with your\r\n work. However if your experiment is exceptionally sensitive, then\r\n you may arrange with us to disable <code>slothd</code>. Please\r\n note that we will restart this daemon if it is not running unless\r\n prior arrangements have been made.\r\n </p>\r\n\r\n <p>\r\n <b>Conditionally started daemons:</b>\r\n </p>\r\n\r\n <p>\r\n <blockquote>\r\n <li><code>gated</code> - A network routing daemon.</li>\r\n </blockquote>\r\n </p>\r\n\r\n <p>\r\n If you have requested automatic routing on your nodes with \r\n <code>$ns&nbsp;rtproto&nbsp;Session</code> in your NS file, this will\r\n start <code>gated</code> on all of your nodes.\r\n </p>\r\n\r\n <p>\r\n We have left all daemons started by the operating systems\' default\r\n configurations (such as <code>cron</code>) enabled, so you should also\r\n look at them if you are concered about running processes affecting\r\n your experiment.\r\n </p>\r\n\r\n',NULL,1,NULL,NULL,0,NULL,NULL);
REPLACE INTO knowledge_base_entries (idx, creator_uid, date_created, section, title, body, xref_tag, faq_entry, date_modified, modifier_uid, archived, date_archived, archiver_uid) VALUES (57,'stoller','2005-08-16 14:50:32','Software Setup','Does Emulab support IP Multicast?',' <p>\r\n In short, yes, the local nodes in Emulab (but not all remote\r\n Netbed nodes) support IP Multicast on the experimental\r\n network. In order to use it, you must have a kernel that\r\n supports it, and if you want multicast routing, you\'ll need to\r\n enable <code>mrouted</code>. (You can do it manually, or\r\n automatically via program objects or startup commands, but the\r\n rtproto commands will not do it.)\r\n </p>\r\n\r\n <p>\r\n When using multicast, there are a few issues you need to be aware\r\n of. The first is the fact that multicast traffic will often find\r\n the control network, rather than the experimental network, which\r\n you don\'t want. See <a href = \"tutorial/tutorial.php3#ControlNet\">this\r\n section</a> of the tutorial for information about the control net.\r\n There are two ways to work around the control net. The first is to\r\n set a route for all multicast addresses (224.0.0.0/4) to go out the\r\n experimental interface of your node. The second is to have your program\r\n use the IP_MULTICAST_IF sockopt to bind to a particular interface.\r\n </p>\r\n\r\n <p>\r\n You should also stay away from multicast addresses that have special\r\n meanings, such as 224.0.0.1 . You can get a list of these addresses\r\n from IANA <a href=\"http://www.iana.org/assignments/multicast-addresses\">\r\n here</a>.\r\n </p>\r\n',NULL,1,NULL,NULL,0,NULL,NULL);
REPLACE INTO knowledge_base_entries (idx, creator_uid, date_created, section, title, body, xref_tag, faq_entry, date_modified, modifier_uid, archived, date_archived, archiver_uid) VALUES (58,'stoller','2005-08-16 14:51:11','Security Issues','Is Emulab Firewalled?',' <p>\r\n Yes. Emulab blocks all of the <i>low numbered</i> ports (ports below 1024),\r\n with the exception of ports 20 and 21 (FTP), 22 (Secure Shell), and 80\r\n (HTTP). This is for the protection of experimenters, as well as to ensure\r\n that an errant application cannot become the source of a Denial of Service\r\n attack to sites outside of Emulab. If your application requires external\r\n access to other low numbered ports, please contact us to make special\r\n arrangements.\r\n </p>\r\n',NULL,1,NULL,NULL,0,NULL,NULL);
REPLACE INTO knowledge_base_entries (idx, creator_uid, date_created, section, title, body, xref_tag, faq_entry, date_modified, modifier_uid, archived, date_archived, archiver_uid) VALUES (59,'stoller','2005-08-16 14:56:40','Troubleshooting','My experiment is set up, but I cannot send packets between some of the nodes. Why?',' <p>\r\n The most common reason is that your topology\r\n includes nodes which are not directly connected, and you have\r\n not setup any routing. Refer to\r\n \"<a href=\"kb-show.php3?xref_tag=routing\">How can I turn on routing or set up routes\r\n automatically in my nodes?</a>\" for details. If you cannot\r\n send packets between two machines which are directly connected\r\n (via a link or a lan), then there are two possibilities:\r\n either the nodes did not properly negotiate their speed and\r\n duplex with the Cisco switch, or the physical wire is loose\r\n or bad. In these cases, <a href=\"kb-show.php3?xref_tag=problem-reporting\">you should contact us</a>\r\n for help.\r\n </p>\r\n',NULL,1,NULL,NULL,0,NULL,NULL);
REPLACE INTO knowledge_base_entries (idx, creator_uid, date_created, section, title, body, xref_tag, faq_entry, date_modified, modifier_uid, archived, date_archived, archiver_uid) VALUES (60,'stoller','2005-08-16 14:59:30','Troubleshooting','I asked for traffic shaping, but everything seems to be going at full LAN speeds',' <p>\r\n The most likely problem is that it is using the unshaped control\r\n network for the traffic you\'re looking at. This occurs when it\r\n tries to contact a node using a \"pcXXX\" address, like pc76 or\r\n pc76.emulab.net, or when it tries to ping a fully-qualified name,\r\n like NodeA.myexpt.myproj.emulab.net, which also resolves to a\r\n control network address. On one of your nodes, take a look at the\r\n file /etc/hosts. It shows the IP addresses and aliases that refer\r\n to the different experimental interfaces. These are the names/IPs\r\n you can use to see the delays.\r\n </p><p>\r\n See <a href = \"tutorial/tutorial.php3#ControlNet\">this section</a>\r\n of the tutorial for more details on the control network.\r\n For a discussion of the way to \'name\' interfaces on the control\r\n and experimental networks, see the the \r\n <a href=\"kb-show.php3?xref_tag=node-naming\">naming section</a> of this document.\r\n </p>\r\n\r\n','no-traffic-shaping',1,'2005-08-16 15:00:24','stoller',0,NULL,NULL);
REPLACE INTO knowledge_base_entries (idx, creator_uid, date_created, section, title, body, xref_tag, faq_entry, date_modified, modifier_uid, archived, date_archived, archiver_uid) VALUES (61,'stoller','2005-08-16 15:05:12','Troubleshooting','I set a non-zero packet-loss (or delay) but \'ping\' shows no packet-loss (or delay)',' <p>\r\n You are probably pinging through the control net interface. See this\r\n <a href=\"kb-show.php3?xref_tag=no-traffic-shaping\">\r\n Troubleshooting entry</a> and\r\n the <a href = \"tutorial/tutorial.php3#ControlNet\">control net section</a>\r\n of the tutorial.\r\n </p>\r\n ',NULL,1,NULL,NULL,0,NULL,NULL);
REPLACE INTO knowledge_base_entries (idx, creator_uid, date_created, section, title, body, xref_tag, faq_entry, date_modified, modifier_uid, archived, date_archived, archiver_uid) VALUES (62,'stoller','2005-08-16 15:07:07','Troubleshooting','I set a non-zero packet-loss (or delay) but \'ping\' shows a different packet-loss (or delay)',' <p>\r\n Short answer: Ping is round trip, PLR and delay are \"one way\".\r\n </p>\r\n\r\n <p>\r\n Long Answer: If you\'re not seeing any traffic shaping at all\r\n (100Mbps, 0ms, 0plr), see \r\n <a href=\"kb-show.php3?xref_tag=no-traffic-shaping\">this Troubleshooting entry</a>. If\r\n you are seeing shaping, but something different than you\r\n expected, it is probably because link characteristics are one\r\n way, and you\'re measuring them over the round trip.\r\n </p>\r\n\r\n <p>\r\n For instance, if you asked for a link that was 100Mbps, 30ms,\r\n with 5% (0.05) packet loss rate (plr), you may expect ping to\r\n show 30ms ping times and 5% loss rate. But what you should see\r\n is 60ms latency for the round trip, and a loss rate of\r\n 9.75%. Latencies can be added, therefore 30ms + 30ms gives\r\n 60ms. However, loss rates are probabilities, and must be\r\n multiplied. The chance of a packet making it across a 5% lossy\r\n link is 95%, so with a 95% chance of arriving at the\r\n destination, and a 95% chance of returning if it made it there,\r\n and the total chance of making a round trip is .95 * .95 = .9025 or\r\n 90.25%, or a round trip loss rate of 9.75% on a 5% lossy link.\r\n </p>\r\n\r\n',NULL,1,NULL,NULL,0,NULL,NULL);
REPLACE INTO knowledge_base_entries (idx, creator_uid, date_created, section, title, body, xref_tag, faq_entry, date_modified, modifier_uid, archived, date_archived, archiver_uid) VALUES (63,'stoller','2005-08-16 15:07:56','Troubleshooting','I decreased the bandwidth on a link and now the ping time between the nodes has increased',' <p>\r\n Short answer: Decreasing the bandwidth of a link means that your\r\n bytes take longer to get where they are going! \r\n </p>\r\n\r\n <p>\r\n Long Answer: A ping packet is 98 bytes of data; 56 bytes of data\r\n plus 8 bytes of ICMP header plus 20 bytes of IP header plus 14\r\n bytes of ethernet header. At 100Mbs those 98 bytes takes .0078ms\r\n to traverse the wire, which is hardly noticeable! If you have set\r\n the delay of your link to 10ms, then your ping packets will incur\r\n 10ms+0.0078ms of delay in each direction, for a 20ms roundtrip time.\r\n </p>\r\n\r\n <p>\r\n Say you set the bandwith of your link to 250Kbs. The wire time for\r\n those same 98 bytes is now 3ms. If your delay is 10ms like above,\r\n then your ping packets will incur 10ms+3ms of delay in each\r\n direction, for a 26ms roundtrip time! If you set the bandwith to\r\n 100Kbs, the wire time is now 7.8ms and your ping packets will\r\n incur 10ms+7.8ms of delay in each direction, for a 35.6ms roundtrip\r\n time!\r\n </p>\r\n\r\n <p>\r\n Note: If you have a router connecting two nodes, then <em>each of\r\n the two links</em> will incur the same wire time (and delay of\r\n course). In the above 250Kbs example, each ping packet will incur\r\n 3ms of wire time to the router and <em>another</em> 3ms from the\r\n router to the destination. The ping reply packet will see the same\r\n 6ms of wire time. If your delay is again 10ms, then the ping\r\n roundtrip is 52ms. \r\n </p>\r\n\r\n',NULL,1,NULL,NULL,0,NULL,NULL);
REPLACE INTO knowledge_base_entries (idx, creator_uid, date_created, section, title, body, xref_tag, faq_entry, date_modified, modifier_uid, archived, date_archived, archiver_uid) VALUES (64,'stoller','2005-08-16 15:09:33','Troubleshooting','I wrote a small TCP application to test the bandwidth of a link/LAN, but I do not observe the bandwidth that I asked for. ',' <p>\r\n \r\n Short answer: TCP needs large send and receive socket buffers in\r\n order for its throughput to approach the capacity of long fat\r\n networks (LFN) i.e. link/LANs with a large bandwidth-delay product\r\n (BDP). Use UDP instead, if your intention is just to test the\r\n bandwidth. If you need to tune the throughput of your TCP\r\n application, refer to <a\r\n href=\"http://www.psc.edu/networking/perf_tune.html\">\"Enabling High\r\n Performance Data Transfers\"</a>.\r\n </p>\r\n\r\n <p>\r\n \r\n Long Answer: In order to observe the bandwidth that you specify,\r\n it is necessary to keep the data pipe between the sender and the\r\n receiver full. For a reliable window based protocol such as TCP,\r\n the window size represents the number of unacknowledged bytes. TCP\r\n needs to keep the unacknowledged bytes around until the acks for\r\n them are received. These bytes are retained in socket buffers. On\r\n a link/LAN with bandwidth B and round-trip-time (RTT) D, the\r\n sender TCP needs to be able to transmit B times D bytes before\r\n expecting any acknowledgement, if the data pipe has to be kept\r\n full. The effective sending window is dependent on receiver\r\n advertised window besides other things. It is necessary to have\r\n sender and receiver socket buffers at least as high as BxD. If you\r\n only care about optimal end-to-end TCP throughput, then the socket\r\n buffers need to be BxD where B is the bandwidth of the bottleneck\r\n link and D is the end-to-end RTT. Refer to the following <a\r\n href=\"http://www.ssfnet.org/Exchange/tcp/tcpTutorialNotes.html\">\"TCP\r\n mini-tutorial\"</a> or a basic TCP/IP book for the gory details.\r\n \r\n </p>\r\n',NULL,1,'2005-08-16 15:09:49','stoller',0,NULL,NULL);
REPLACE INTO knowledge_base_entries (idx, creator_uid, date_created, section, title, body, xref_tag, faq_entry, date_modified, modifier_uid, archived, date_archived, archiver_uid) VALUES (65,'stoller','2005-08-16 15:10:49','Troubleshooting','I wrote a small UDP application to test the bandwidth of a link/LAN, but I do not observe the bandwidth that I asked for. ',' <p>\r\n Since UDP is unreliable and not flow controlled, you may just be\r\n trying to push packets out on the wire too fast. In this case\r\n packets will be dropped before even getting to the wire. You\r\n may also be dropping packets at the receiver side if the consumer\r\n cannot keep up.\r\n <p>\r\n If you are trying to saturate a 100Mb link and can\'t do it, it\r\n may be due to using too small a packet size.\r\n For small packet sizes, the limitation on a 100Mb link will be\r\n the packet rate, not the raw bandwidth. The eepro100\r\n ethernet NICs in most of our machines can only generate a little\r\n over 100,000 packets per second (pps). With 64-byte packets,\r\n you will thus only see about 51.2Mb/sec of raw data or about\r\n 14.4Mb/sec of UDP payload (a 64 byte ethernet packet can hold\r\n only 18 bytes of UDP payload). Note that the theoretical max\r\n is less than 150,000 pps for 64-byte packets, so even better NICs\r\n would not change this.\r\n </p><p>\r\n Considering that stock FreeBSD and Linux can generate even fewer\r\n packets per second due to interrupt and scheduling overheads, you\r\n probably need to use at least 200-byte packets to saturate a 100Mb\r\n link.\r\n </p>\r\n',NULL,1,NULL,NULL,0,NULL,NULL);
REPLACE INTO knowledge_base_entries (idx, creator_uid, date_created, section, title, body, xref_tag, faq_entry, date_modified, modifier_uid, archived, date_archived, archiver_uid) VALUES (66,'stoller','2005-08-16 15:11:34','Troubleshooting','I am running a routing daemon in my topology but the daemon claims that all my nodes are directly connected!',' <p>\r\n The routing daemons are probably talking to each other via the control\r\n net and routing traffic through it since it is the shortest path.\r\n You will need to configure your daemon to ignore the control net interface.\r\n See the\r\n <a href = \"tutorial/tutorial.php3#ControlNet\">control net section</a>\r\n of the tutorial.\r\n\r\n </p>\r\n',NULL,1,NULL,NULL,0,NULL,NULL);
<!--
EMULAB-COPYRIGHT
Copyright (c) 2000-2003 University of Utah and the Flux Group.
Copyright (c) 2000-2003, 2005 University of Utah and the Flux Group.
All rights reserved.
-->
<center>
......@@ -66,7 +66,7 @@ reserve and configure nodes, etc.
<p>
More detailed information on this
process can be found in the
<a href="docwrapper.php3?docname=faq.html">Emulab FAQ</a>.
<a href="faq.php3">Emulab FAQ</a>.
<h3>Another way of saying the same thing</h3>
......
<?php
#
# EMULAB-COPYRIGHT
# Copyright (c) 2000-2004 University of Utah and the Flux Group.
# Copyright (c) 2000-2005 University of Utah and the Flux Group.
# All rights reserved.
#
......@@ -197,7 +197,7 @@ function SPITFORM($formfields, $errors)
<li><b>If you do not have an NS file:</b><br> You may want to
<b><a href='buildui/bui.php3'>go to the NetBuild GUI</a></b>
to graphically create one online<font size=-2>
(<a href='$TBDOCBASE/faq.php3#UTT-NETBUILD'>Additional
(<a href='$TBDOCBASE/faq.php3#netbuild'>Additional
information</a>)</font>.<br>
Or, you can download the Emulab
<a href='netlab/client.php3'><b>client</b></a> and graphically
......
<?php
#
# EMULAB-COPYRIGHT
# Copyright (c) 2000-2002, 2004 University of Utah and the Flux Group.
# Copyright (c) 2000-2002, 2004, 2005 University of Utah and the Flux Group.
# All rights reserved.
#
require("defs.php3");
......@@ -32,7 +32,7 @@ PAGEHEADER("Documentation");
</dl><br>
<li><dl>
<dt><b><a href="docwrapper.php3?docname=faq.html">
<dt><b><a href="faq.php3">
Frequently Asked Questions (FAQ)</a></b></dt>
<dd>Probably our most important reference document. Check here before
asking for help. Includes sections on "Getting Started" on Emulab,
......
......@@ -8,7 +8,7 @@
<body>
<!--
EMULAB-COPYRIGHT
Copyright (c) 2000-2004 University of Utah and the Flux Group.
Copyright (c) 2000-2005 University of Utah and the Flux Group.
All rights reserved.
-->
<h2>Windows XP in Emulab</h2>
......@@ -218,7 +218,7 @@ buttons work, from FreeBSD, Linux, and Windows workstations:
node in a /sshkeys subdirectory, you have to type your password to SSH
logins to enable remote directory mounts through SMB. </li>
<li> <a href="https://www.emulab.net/faq.php3#UTT-TUNNEL"> <b>Console</b>
<li> <a href="https://www.emulab.net/faq.php3#tiptunnel"> <b>Console</b>
</a> - The <b>Console</b> button won't do much good now, because
Windows doesn't normally provide logins on the com serial device.
(This will be remedied with <i>agetty</i> eventually.) An exception is
......
<!--
EMULAB-COPYRIGHT
Copyright (c) 2000-2004 University of Utah and the Flux Group.
Copyright (c) 2000-2005 University of Utah and the Flux Group.
All rights reserved.
-->
<center>
<h2>Frequently Asked Questions</h2>
</center>
<h2>Contents</h2>
<ul>
<li> <a href="#GS">Getting Started</a>
<ul>
<li> <a href="#GS-Eligible">Who is Eligible to use Emulab.Net?</a>
<li> <a href="#GS-1">How do I start a project?</a>
<li> <a href="#GS-2">How do I join a project?</a>
<li> <a href="#GS-2b">I'm a project leader, and someone applied
to join my project, but they're not on the
list to be approved.</a>
<li> <a href="#GS-2c">Will Emulab send me email messages?</a>
<li> <a href="#GS-3">I have an Emulab account. Now what?</a>
<li> <a href="#GS-PATH">Do I need to change my PATH variable?</a>
<li> <a href="#GS-4">Can I be in more than one project?</a>
<li> <a href="#GS-5">Can I change my Emulab password?</a>
<li> <a href="#GS-6">I'm a project leader. Can I designate TAs?</a>
<li> <a href="#GS-7a">How do I report a specific problem?</a>
<li> <a href="#GS-7">Where do I get more help?</a>
</ul>
<li> <a href="#UTT">Using the Testbed</a>
<ul>
<li> <a href="#UTT-1">Is there a tutorial?</a>
<li> <a href="#UTT-NETBUILD">Do you have a <b>GUI</b> to help me
create experiments?</a>
<li> <a href="#UTT-TOPO">Are there any constraints on my topology?</a>
<li> <a href="#UTT-NODES">How many nodes can I ask for?</a>
<li> <a href="#UTT-HOWLONG">How long can I keep using my nodes?</a>
<li> <a href="#UTT-QUEUE">I only need a couple of nodes but none are
free, should I just keep trying?</a>
<li> <a href="#UTT-TOOFEW">What if I need more nodes than are free?</a>
<li> <a href="#UTT-2">Do I get root access on my nodes?</a>
<li> <a href="#UTT-3">Do my nodes have consoles I can look at?</a>
<li> <a href="#UTT-TUNNEL">How do I connect directly to node consoles,
without going through <b>users</b>?</a>
<li> <a href="#UTT-4">Can I reboot (power cycle) my nodes?</a>
<li> <a href="#UTT-SCROGGED">I've clobbered my disk! Now what?</a>
<li> <a href="#UTT-5">Where do I store files needed by my experiment?</a>
<li> <a href="#UTT-6">Are my files on <b>users.emulab.net</b>
backed up (filesaved)?</a>
<li> <a href="#UTT-7">Are the nodes in my experiment backed up
(filesaved)?</a>
<li> <a href="#UTT-Swapping">What is Swapping?</a>
<li> <a href="#UTT-Restart">What is Experiment Restart?</a>
<li> <a href="#UTT-8">How can I get switch statistics (such as packet
counts) for my experiment?</a>
<li> <a href="#UTT-Naming">What names should I use to refer to the
nodes in my experiment?</a>
<li> <a href="#UTT-Modify">Can I modify my experiment
after creating it?</a>
<li> <a href="#UTT-SWPaths">Are there FreeBSD and/or Linux sources and
packages available locally?</a>
</ul>
<li> <a href="#HDS">Hardware setup</a>
<ul>
<li> <a href="#HDS-1">How many nodes are there?</a>
<li> <a href="#HDS-2">How many nodes are currently available?</a>
<li> <a href="#HDS-3">How many ethernet cards are on each node?</a>
<li> <a href="#HDS-8">How do I ask for specific hardware?</a>
<li> <a href="#HDS-4">How many nodes are currently available (free)?</a>
<li> <a href="#HDS-5">Can I do traffic shaping on my links?</a>
<li> <a href="#HDS-6">Can I modify the traffic shaping
parameters on my links?</a>
<li> <a href="#HDS-7">Are there other traffic shaping parameters
besides latency, bandwidth, and PLR?</a>
<li> <a href="#HDS-9">Do any Emulab nodes have wifi (802.11)
interfaces?</a>
<li> <a href="#HDS-10">What kind of wifi cards are used in Emulab?</a>
</ul>
<li> <a href="#SWS">Software setup</a>
<ul>
<li> <a href="#SWS-1">What OS do the nodes run?</a>
<li> <a href="#SWS-2">How do I select which OS to run on each node?</a>
<li> <a href="#SWS-WIN2K">Is Windows 2000 supported as well as Windows XP?</a>
<li> <a href="#SWS-3">Can I load my own software (RPMs/Tarballs)
on my nodes?</a>
<li> <a href="#SWS-4">Can I schedule programs to run
automatically when a node boots?</a>
<li> <a href="#SWS-5">How can I turn on routing or set up routes
automatically in my nodes?</a>
<li> <a href="#SWS-6">How does my software determine when other
nodes in my experiment are ready?</a>
<li> <a href="#SWS-7">Can I run my own Operating System?</a>
<li> <a href="#MovingImage">Can I share a disk image between two
projects?</a>
<li> <a href="#SWS-8">What if I need more disk space on my nodes?</a>
<li> <a href="#SWS-9">Are there testbed-specific daemons that could
interfere with my experiment?</a>
<li> <a href="#SWS-10">Does Emulab support IP Multicast?</a>
</ul>
<li> <a href="#SEC">Security Issues</a>
<ul>
<li> <a href="#SEC-1">Is Emulab Firewalled?</a>
</ul>
<li> <a href="#TR">Troubleshooting</a>
<ul>
<li> <a href="#TR-0">My experiment setup failed, what did I do wrong?</a>
<li> <a href="#TR-1">My experiment is set up, but I cannot
send packets between some of the nodes. Why?</a>
<li> <a href="#TR-2">I asked for traffic shaping, but everything
seems to be going at full LAN speeds.
What's wrong?</a>
<li> <a href="#TR-3">I set a non-zero packet-loss (or delay) but 'ping'
shows no packet-loss (or delay). Why?</a>
<li> <a href="#TR-4">I set a non-zero packet-loss (or delay) but 'ping'
shows a different packet-loss (or delay). Why?</a>
<li> <a href="#TR-5">I decreased the bandwidth on a link and now the
ping time between the nodes has increased. Why?</a>
<li> <a href="#TR-6">I wrote a small TCP application to test the
bandwidth of a link/LAN. I do not observe the bandwidth that I
asked for. Why?</a>
<li> <a href="#TR-6b">I wrote a small UDP application to test the
bandwidth of a link/LAN. I do not observe the bandwidth that I
asked for. Why?</a>
<li> <a href="#TR-7">I am running a routing daemon in my topology
but the daemon claims that all my nodes are directly connected! Why?</a>
</ul>
</ul>
<hr>
<a NAME="GS"></a>
<font size='+1'><b>Getting Started</b></font>
<ul>
<li><a NAME="GS-Eligible"></a>
<font size='+1'><b>Who is Eligible to use Emulab.Net?</b></font>
<p>
In principle, almost any research or educational use
by those that have a need for it is appropriate and encouraged.
This includes use by universities, industrial research labs, and both
US and non-US institutions. With some provisos, use for development
and evaluation is also acceptable, even by companies.
See our <a href ="docwrapper.php3?docname=policies.html">posted policies</a>
for more detail. If you are unsure about your eligibility to use
Netbed/Emulab, please just send us an email inquiry.
</p>
<li><a NAME="GS-1"></a>
<font size='+1'><b>How do I start a project?</b></font>
<p>
If you are new to the Testbed, simply click on the "Start Project"
link on the Emulab <a href="http://www.emulab.net">Home
Page</a>. You will need to fill in the forms with your personal
information and information about the project. Then click on the
"Submit" button. Within a few days you will be contacted via email
with an approval message. More information about starting projects
can be found in <a href="docwrapper.php3?docname=auth.html">
Authorization Page</a>.
</p>
<p>
If you already have an Emulab account, and wish to start a second
project, first log into the Web Interface. Then select the "Start
Project" link; all of the personal information will already be
filled in. You will need to complete just the project information
section.
</p>
<li><a NAME="GS-2"></a>
<font size='+1'><b>How do I join a project?</b></font>
<p>
If you are new to the Testbed, simply click on the "Join Project"
link on the Emulab <a href="http://www.emulab.net">Home
Page</a>. You will need to fill in the form with your personal
information, and provide the name of the project you are trying to
join (typically, the <i>Project Leader</i> will have told you the
name of the project). Then click on the "Submit" button, and wait
for an email with your new user key. When that email arrives, use
the link in it (or the key itself), and use it with your password
to log into the web site and verify your account. Then just wait
for the project leader to approve you. When approved you will
receive an email message saying so, and you can then log into the
Testbed.
</p>
<li><a NAME="GS-2b"></a>
<font size='+1'><b>I'm a project leader,
and someone applied to join my project,
but they're not on the list to be approved.</b></font>
<p>
Joining a project has 3 stages. The first two are done by
the person trying to join, and they both must be completed
before you can approve their application. The first two are
outlined <a href="#GS-2">in the previous question</a>, where the
user fills out the "Join Project" form, and performs account
verification. After these two steps are both complete, the
project leader and any group leaders in the group
(<a href="#GS-6">More info here</a>) will get an email saying
the account is ready to be approved, and it will appear on the
list of new users waiting to be approved.
<p>
If someone says they've applied, but you haven't received an
email from Emulab about it, and they don't show up on your
list, the most likely cause is that they haven't finished the
verification step.
</p>
<li><a NAME="GS-2c"></a>
<font size='+1'><b>Will Emulab send me email messages?</b></font>
<p>
Yes! Emulab uses email notifications to you in several different
ways. Often it will send you a copy of information regarding
experiments you set up, applications to projects, and other
things you do at Emulab. Sometimes (like with account
verification) the email is a critical part of being able to use
Emulab.
<p>
For those reasons it is <b>critical</b> that any spam filtering
software you have accept email from Emulab itself (anything
coming from the emulab.net domain) and from Emulab staff (from
the cs.utah.edu or flux.utah.edu domains). In many cases, it may
also say that is from a specific machine in those domains. Our
messages usually do not get flagged as spam by most filters, but
in certain cases it can be a problem. It is also important that
it not require manual intervention or confirmation to get emails
through to you, so programs like SpamKiller can cause problems.
<p>
It is also important to read your email often while you are
using Emulab, especially while you have machines reserved in
an experiment. A few emails may be the only notification you'll
get before we swap out an experiment that appears to be idle,
and if you don't respond, you may lose important work. Email is
also our method for informing you about problems we may be
experiencing, downtimes, or other important announcements. Your
experience with Emulab (and ours with you) will be much more
pleasant if everyone is responsive to email.
</p>
<li><a NAME="GS-3"></a>
<font size='+1'><b>I have an Emulab account. Now what?</b></font>
<p>
Once you have been approved to start (or join) your first project,
you will be able to log into Emulab's user machine,
<b>users.emulab.net</b>. We require that all Emulab users use ssh. For
example, if your Emulab account name is "joe", then you would do:
<pre>
ssh users.emulab.net -l joe </pre>
</p>
<p>
Your password is the same as the password you supplied to the
Start (or Join) Project web page.
<li><a NAME="GS-PATH"></a>
<font size='+1'><b>Do I need any
special directories in my PATH variable?</b></font>
<p>
There are several useful (although not required) programs installed on
<tt>users.emulab.net</tt> in <tt>/usr/testbed/bin</tt>. You should edit
your dot files to include that directory in your search path.
</p>
<li><a NAME="GS-4"></a>
<font size='+1'><b>Can I be in more than one project?</b></font>
<p>
Yes. You may join (and/or start) as many projects as you like,
subject to Emulab <a href="docwrapper.php3?docname=policies.html">
administrative policies</a>.
</p>
<li><a NAME="GS-5"></a>
<font size='+1'><b>Can I change my Emulab password?</b></font>
<p>
Yes. You can change your Emulab Web password and your Emulab login
password (the password you use to log into <b>users.emulab.net</b>, as
well as nodes in your experiments). To change your password,
simply click on the "Update User Information" in the menu to your
left, and then enter your new password in the location provided.
Your new password will be installed on <b>users.emulab.net</b>
immediately. Your experimental nodes will get the new password
when they reboot.
</p>
<li><a NAME="GS-6"></a>
<font size='+1'><b>I'm a project leader. Can I designate TAs?</b></font>
<p>
Yes. To designate a TA, you must first create a project
<em>group</em>. A project group is a lot like a unix group, and
in fact unix groups is the mechanism used to protect members of
one group from members of another group. When you create a group,
you designate a <em>group leader</em> who is responsible for
approving users who apply to join the group. Group leaders may
also terminate experiments that have been created by members of
the group. As Project Leader, you may also shift members of your
project in and out of your project's groups as you like, and you
are automatically a member of all groups within your project. As a
convenience, all new projects are created with one new group,
termed the <em>default group</em>. As its name implies, whenever
the group is left unspecified in a form, it defaults to the
project group (this allows you to create a project without any sub
groups at all; new members join the default group, new experiments
are created in the default group, etc.).
</p>
<p>
Project groups are created via the Project Information link at
your left. Simply go to the project page in which you want to
create a group, and look for the "Create New Group" link. More
information on project groups is available via the <a
href="doc.php3">Emulab Documentation</a> page in the
<a href="docwrapper.php3?docname=groups.html">Groups Tutorial</a>.
</p>
<li><a NAME="GS-7a"></a>
<font size='+1'><b>How do I report a specific problem?</b></font>
<p>
Don't hesitate to send us <a href="emailus.php3">email</a>!