diff --git a/configure b/configure
index 3a982decaf8626dc343f81d40e0955a0c358268f..bc58261c6ccb20580f1fd7f334e6db020d385804 100755
--- a/configure
+++ b/configure
@@ -1448,6 +1448,8 @@ done
 
 
 
+
+
 
 
 
@@ -1502,13 +1504,14 @@ OUTERBOSS_NODENAME=""
 OUTERBOSS_XMLRPCPORT=3069
 OUTERBOSS_SSLCERTNAME="/etc/outer_emulab.pem"
 PLABSUPPORT=0
+PUBSUPPORT=0
 WIKISUPPORT=0
-TRACSUPPORT=0
 BUGDBSUPPORT=0
 OPSDBSUPPORT=0
 MAILMANSUPPORT=0
 WINSUPPORT=0
 CVSSUPPORT=0
+TRACSUPPORT=0
 CHATSUPPORT=0
 STAMPS=0
 ARCHIVESUPPORT=0
@@ -1740,7 +1743,6 @@ if test $ISOLATEADMINS -eq 1; then
 EOF
 
 fi
-
 if test $DYNAMICROOTPASSWORDS -eq 1; then
     cat >> confdefs.h <<EOF
 #define DYNAMICROOTPASSWORDS 1
@@ -1866,6 +1868,8 @@ fi
 cat >> confdefs.h <<EOF
 #define TBBASE "$TBBASE"
 EOF
+
+
 if test -z "$THISHOMEBASE"; then
     THISHOMEBASE="Emulab.Net"
 fi
@@ -2122,17 +2126,17 @@ for ac_hdr in ulxmlrpcpp/ulxr_config.h
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:2114: checking for $ac_hdr" >&5
+echo "configure:2130: checking for $ac_hdr" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2119 "configure"
+#line 2135 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2124: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2140: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -2171,17 +2175,17 @@ for ac_hdr in linux/videodev.h
 do
 ac_safe=`echo "$ac_hdr" | sed 'y%./+-%__p_%'`
 echo $ac_n "checking for $ac_hdr""... $ac_c" 1>&6
-echo "configure:2163: checking for $ac_hdr" >&5
+echo "configure:2179: checking for $ac_hdr" >&5
 if eval "test \"`echo '$''{'ac_cv_header_$ac_safe'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
   cat > conftest.$ac_ext <<EOF
-#line 2168 "configure"
+#line 2184 "configure"
 #include "confdefs.h"
 #include <$ac_hdr>
 EOF
 ac_try="$ac_cpp conftest.$ac_ext >/dev/null 2>conftest.out"
-{ (eval echo configure:2173: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
+{ (eval echo configure:2189: \"$ac_try\") 1>&5; (eval $ac_try) 2>&5; }
 ac_err=`grep -v '^ *+' conftest.out | grep -v "^conftest.${ac_ext}\$"`
 if test -z "$ac_err"; then
   rm -rf conftest*
@@ -2214,7 +2218,7 @@ done
 # Extract the first word of "gtk-config", so it can be a program name with args.
 set dummy gtk-config; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2206: checking for $ac_word" >&5
+echo "configure:2222: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_prog_GTK_CONFIG'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2293,7 +2297,7 @@ fi
 # SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"
 # ./install, which can be erroneously created by make from ./install.sh.
 echo $ac_n "checking for a BSD compatible install""... $ac_c" 1>&6
-echo "configure:2285: checking for a BSD compatible install" >&5
+echo "configure:2301: checking for a BSD compatible install" >&5
 if test -z "$INSTALL"; then
 if eval "test \"`echo '$''{'ac_cv_path_install'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
@@ -2354,7 +2358,7 @@ esac
 # Extract the first word of "rsync", so it can be a program name with args.
 set dummy rsync; ac_word=$2
 echo $ac_n "checking for $ac_word""... $ac_c" 1>&6
-echo "configure:2346: checking for $ac_word" >&5
+echo "configure:2362: checking for $ac_word" >&5
 if eval "test \"`echo '$''{'ac_cv_path_RSYNC'+set}'`\" = set"; then
   echo $ac_n "(cached) $ac_c" 1>&6
 else
@@ -2811,8 +2815,8 @@ s%@OUTERBOSS_NODENAME@%$OUTERBOSS_NODENAME%g
 s%@OUTERBOSS_XMLRPCPORT@%$OUTERBOSS_XMLRPCPORT%g
 s%@OUTERBOSS_SSLCERTNAME@%$OUTERBOSS_SSLCERTNAME%g
 s%@PLABSUPPORT@%$PLABSUPPORT%g
+s%@PUBSUPPORT@%$PUBSUPPORT%g
 s%@WIKISUPPORT@%$WIKISUPPORT%g
-s%@TRACSUPPORT@%$TRACSUPPORT%g
 s%@MAILMANSUPPORT@%$MAILMANSUPPORT%g
 s%@BUGDBSUPPORT@%$BUGDBSUPPORT%g
 s%@OPSDBSUPPORT@%$OPSDBSUPPORT%g
@@ -2850,9 +2854,8 @@ s%@FRISEBEEMCASTADDR@%$FRISEBEEMCASTADDR%g
 s%@FRISEBEEMCASTPORT@%$FRISEBEEMCASTPORT%g
 s%@WINSUPPORT@%$WINSUPPORT%g
 s%@CVSSUPPORT@%$CVSSUPPORT%g
+s%@TRACSUPPORT@%$TRACSUPPORT%g
 s%@CHATSUPPORT@%$CHATSUPPORT%g
-s%@ISOLATEADMINS@%$ISOLATEADMINS%g
-s%@DYNAMICROOTPASSWORDS@%$DYNAMICROOTPASSWORDS%g
 s%@STAMPS@%$STAMPS%g
 s%@ARCHIVESUPPORT@%$ARCHIVESUPPORT%g
 s%@MIN_UNIX_UID@%$MIN_UNIX_UID%g
@@ -2860,6 +2863,8 @@ s%@MIN_UNIX_GID@%$MIN_UNIX_GID%g
 s%@DELAYTHRESH@%$DELAYTHRESH%g
 s%@PELABSUPPORT@%$PELABSUPPORT%g
 s%@ELVIN_COMPAT@%$ELVIN_COMPAT%g
+s%@ISOLATEADMINS@%$ISOLATEADMINS%g
+s%@DYNAMICROOTPASSWORDS@%$DYNAMICROOTPASSWORDS%g
 s%@TBOPSEMAIL@%$TBOPSEMAIL%g
 s%@TBOPSEMAIL_NOSLASH@%$TBOPSEMAIL_NOSLASH%g
 s%@TBROBOCOPSEMAIL@%$TBROBOCOPSEMAIL%g
diff --git a/configure.in b/configure.in
index ea64662f5adb56e27bd47bcd66ae6ef5faa1fa82..59ea3e06beaa652dae8bea20ef16117dbe37ba0b 100755
--- a/configure.in
+++ b/configure.in
@@ -155,6 +155,7 @@ AC_SUBST(OUTERBOSS_NODENAME)
 AC_SUBST(OUTERBOSS_XMLRPCPORT)
 AC_SUBST(OUTERBOSS_SSLCERTNAME)
 AC_SUBST(PLABSUPPORT)
+AC_SUBST(PUBSUPPORT)
 AC_SUBST(WIKISUPPORT)
 AC_SUBST(MAILMANSUPPORT)
 AC_SUBST(BUGDBSUPPORT)
@@ -256,6 +257,7 @@ OUTERBOSS_NODENAME=""
 OUTERBOSS_XMLRPCPORT=3069
 OUTERBOSS_SSLCERTNAME="/etc/outer_emulab.pem"
 PLABSUPPORT=0
+PUBSUPPORT=0
 WIKISUPPORT=0
 BUGDBSUPPORT=0
 OPSDBSUPPORT=0
diff --git a/defs-default b/defs-default
index 00d0f4012648c337a6811251ae37a657445ff81f..f3b929c16557bf474f8201ee994847095b299dd9 100644
--- a/defs-default
+++ b/defs-default
@@ -43,6 +43,7 @@ ELVIN_COMPAT=1
 #
 # This next group will not work outside of Utah (yet).
 #
+PUBSUPPORT=1
 WIKISUPPORT=1
 TRACSUPPORT=1
 BUGDBSUPPORT=1
diff --git a/sql/database-fill.sql b/sql/database-fill.sql
index 8138d9ad9124fef33ab13c04e5a726236271022c..af39995fd33c0f18eeb624773846b4257cbfdf9c 100644
--- a/sql/database-fill.sql
+++ b/sql/database-fill.sql
@@ -147,6 +147,8 @@ REPLACE INTO exported_tables VALUES ('state_triggers');
 REPLACE INTO exported_tables VALUES ('table_regex');
 REPLACE INTO exported_tables VALUES ('testsuite_preentables');
 REPLACE INTO exported_tables VALUES ('webdb_table_permissions');
+REPLACE INTO exported_tables VALUES ('emulab_pubs_month_map');
+
 
 --
 -- Dumping data for table `foreign_keys`
@@ -944,6 +946,10 @@ REPLACE INTO table_regex VALUES ('user_pubkeys','verify','text','redirect','defa
 REPLACE INTO table_regex VALUES ('user_pubkeys','user','text','redirect','users:uid',0,0,NULL);
 REPLACE INTO table_regex VALUES ('user_pubkeys','keyfile','text','regex','^[-_\\w\\.\\/:+]*$',1,256,NULL);
 
+REPLACE INTO table_regex VALUES ('default','tinytext_utf8','text','regex','^(?:[\\x20-\\x7E]|[\\xC2-\\xDF][\\x80-\\xBF]|\\xE0[\\xA0-\\xBF][\\x80-\\xBF]|[\\xE1-\\xEC\\xEE\\xEF][\\x80-\\xBF]{2}|\\xED[\\x80-\\x9F][\\x80-\\xBF])*$',0,256,'adopted from http://www.w3.org/International/questions/qa-forms-utf-8.en.php');
+REPLACE INTO table_regex VALUES ('default','text_utf8','text','regex','^(?:[\\x20-\\x7E]|[\\xC2-\\xDF][\\x80-\\xBF]|\\xE0[\\xA0-\\xBF][\\x80-\\xBF]|[\\xE1-\\xEC\\xEE\\xEF][\\x80-\\xBF]{2}|\\xED[\\x80-\\x9F][\\x80-\\xBF])*$',0,65535,'adopted from http://www.w3.org/International/questions/qa-forms-utf-8.en.php');
+REPLACE INTO table_regex VALUES ('default','fulltext_utf8','text','regex','^(?:[\\x09\\x0A\\x0D\\x20-\\x7E]|[\\xC2-\\xDF][\\x80-\\xBF]|\\xE0[\\xA0-\\xBF][\\x80-\\xBF]|[\\xE1-\\xEC\\xEE\\xEF][\\x80-\\xBF]{2}|\\xED[\\x80-\\x9F][\\x80-\\xBF])*$',0,65535,'adopted from http://www.w3.org/International/questions/qa-forms-utf-8.en.php');
+
 --
 -- Dumping data for table `testsuite_preentables`
 --
@@ -1002,3 +1008,34 @@ REPLACE INTO webdb_table_permissions VALUES ('projects',1,1,0);
 REPLACE INTO webdb_table_permissions VALUES ('osidtoimageid',1,0,1);
 REPLACE INTO webdb_table_permissions VALUES ('table_regex',1,1,1);
 
+
+--
+-- Dumping data for table `emulab_pubs_month_map`
+--
+
+REPLACE INTO `emulab_pubs_month_map` VALUES (1,0.0,'');
+REPLACE INTO `emulab_pubs_month_map` VALUES (2,1.0,'Jan');
+REPLACE INTO `emulab_pubs_month_map` VALUES (3,2.0,'Feb');
+REPLACE INTO `emulab_pubs_month_map` VALUES (4,3.0,'Mar');
+REPLACE INTO `emulab_pubs_month_map` VALUES (5,4.0,'Apr');
+REPLACE INTO `emulab_pubs_month_map` VALUES (6,5.0,'May');
+REPLACE INTO `emulab_pubs_month_map` VALUES (7,6.0,'Jun');
+REPLACE INTO `emulab_pubs_month_map` VALUES (8,7.0,'Jul');
+REPLACE INTO `emulab_pubs_month_map` VALUES (9,8.0,'Aug');
+REPLACE INTO `emulab_pubs_month_map` VALUES (10,9.0,'Sep');
+REPLACE INTO `emulab_pubs_month_map` VALUES (11,10.0,'Oct');
+REPLACE INTO `emulab_pubs_month_map` VALUES (12,11.0,'Nov');
+REPLACE INTO `emulab_pubs_month_map` VALUES (13,12.0,'Dec');
+REPLACE INTO `emulab_pubs_month_map` VALUES (14,1.5,'Jan-Feb');
+REPLACE INTO `emulab_pubs_month_map` VALUES (15,2.5,'Feb-Mar');
+REPLACE INTO `emulab_pubs_month_map` VALUES (16,3.5,'Mar-Apr');
+REPLACE INTO `emulab_pubs_month_map` VALUES (17,4.5,'Apr-May');
+REPLACE INTO `emulab_pubs_month_map` VALUES (18,5.5,'May-Jun');
+REPLACE INTO `emulab_pubs_month_map` VALUES (19,6.5,'Jun-Jul');
+REPLACE INTO `emulab_pubs_month_map` VALUES (20,7.5,'Jul-Aug');
+REPLACE INTO `emulab_pubs_month_map` VALUES (21,8.5,'Aug-Sep');
+REPLACE INTO `emulab_pubs_month_map` VALUES (22,9.5,'Sep-Oct');
+REPLACE INTO `emulab_pubs_month_map` VALUES (23,10.5,'Oct-Nov');
+REPLACE INTO `emulab_pubs_month_map` VALUES (24,11.5,'Nov-Dec');
+REPLACE INTO `emulab_pubs_month_map` VALUES (25,12.5,'Dec-Jan');
+
diff --git a/sql/database-migrate.txt b/sql/database-migrate.txt
index 8f3b23eb46faef536e4f2f1f48daa63b7902ced7..a9bc05642c3ab9fe1777e580d7444cc21ba4ff67 100644
--- a/sql/database-migrate.txt
+++ b/sql/database-migrate.txt
@@ -4545,3 +4545,8 @@ last_net_act,last_cpu_act,last_ext_act);
        alter table interfaces add `uuid` varchar(40) NOT NULL default '';
        alter table interfaces add  KEY `uuid` (`uuid`);
        update interfaces set uuid=UUID();
+
+4.156: Create emulab_pubs and related tables.
+       Add support for UTF-8 fields in table_regex.
+
+       mysql tbdb < emulab_pubs.sql
diff --git a/sql/emulab_pubs.sql b/sql/emulab_pubs.sql
new file mode 100644
index 0000000000000000000000000000000000000000..50a2b56f14e7f3de93891a55bf4c847ccaddc3f3
--- /dev/null
+++ b/sql/emulab_pubs.sql
@@ -0,0 +1,73 @@
+drop table if exists emulab_pubs;
+create table `emulab_pubs` (
+  `idx`  int unsigned not null primary key auto_increment,
+  `uuid` varchar(40) not null unique,
+  `created` datetime not null,
+  `owner` mediumint(8) unsigned not null,
+  `submitted_by` mediumint(8) unsigned not null,
+  `last_edit` datetime not null,
+  `last_edit_by` mediumint(8) unsigned not null,
+  `type` tinytext not null,
+  `authors` tinytext not null,
+  `affil` tinytext not null,
+  `title` tinytext  not null,
+  `conf` tinytext  not null,
+  `conf_url` tinytext  not null,
+  `where` tinytext  not null,
+  `year` tinytext  not null,
+  `month` float(3,1) not null,
+  `volume` tinytext not null,
+  `number` tinytext  not null,
+  `pages` tinytext  not null,
+  `url` tinytext  not null,
+  `evaluated_on_emulab` tinytext  not null,
+  `category` tinytext  not null,
+  `project` tinytext  not null,
+  `cite_osdi02` tinyint(1),
+  `no_cite_why` tinytext not null,
+  `notes` text not null,
+  `visible` tinyint(1) default 1 not null,
+  `deleted` tinyint(1) default 0 not null,
+  `editable_owner` tinyint(1) default 1 not null,
+  `editable_proj` tinyint(1) default 1 not null
+);
+
+drop table if exists emulab_pubs_month_map;
+create table `emulab_pubs_month_map` (
+  `display_order` int unsigned not null unique auto_increment,
+  `month` float(3,1) not null primary key,
+  `month_name` char(8) not null
+);
+
+insert into emulab_pubs_month_map (`month`, `month_name`) values
+  (0, ''),
+  (1, 'Jan'), 
+  (2, 'Feb'), 
+  (3, 'Mar'), 
+  (4, 'Apr'), 
+  (5, 'May'),
+  (6, 'Jun'), 
+  (7, 'Jul'), 
+  (8, 'Aug'), 
+  (9, 'Sep'), 
+  (10, 'Oct'), 
+  (11, 'Nov'), 
+  (12, 'Dec'),
+  (1.5, 'Jan-Feb'), 
+  (2.5, 'Feb-Mar'), 
+  (3.5, 'Mar-Apr'), 
+  (4.5, 'Apr-May'), 
+  (5.5, 'May-Jun'), 
+  (6.5, 'Jun-Jul'), 
+  (7.5, 'Jul-Aug'), 
+  (8.5, 'Aug-Sep'), 
+  (9.5, 'Sep-Oct'), 
+  (10.5, 'Oct-Nov'), 
+  (11.5, 'Nov-Dec'), 
+  (12.5, 'Dec-Jan');
+
+
+REPLACE INTO table_regex VALUES ('default','tinytext_utf8','text','regex','^(?:[\\x20-\\x7E]|[\\xC2-\\xDF][\\x80-\\xBF]|\\xE0[\\xA0-\\xBF][\\x80-\\xBF]|[\\xE1-\\xEC\\xEE\\xEF][\\x80-\\xBF]{2}|\\xED[\\x80-\\x9F][\\x80-\\xBF])*$',0,256,'adopted from http://www.w3.org/International/questions/qa-forms-utf-8.en.php');
+REPLACE INTO table_regex VALUES ('default','text_utf8','text','regex','^(?:[\\x20-\\x7E]|[\\xC2-\\xDF][\\x80-\\xBF]|\\xE0[\\xA0-\\xBF][\\x80-\\xBF]|[\\xE1-\\xEC\\xEE\\xEF][\\x80-\\xBF]{2}|\\xED[\\x80-\\x9F][\\x80-\\xBF])*$',0,65535,'adopted from http://www.w3.org/International/questions/qa-forms-utf-8.en.php');
+REPLACE INTO table_regex VALUES ('default','fulltext_utf8','text','regex','^(?:[\\x09\\x0A\\x0D\\x20-\\x7E]|[\\xC2-\\xDF][\\x80-\\xBF]|\\xE0[\\xA0-\\xBF][\\x80-\\xBF]|[\\xE1-\\xEC\\xEE\\xEF][\\x80-\\xBF]{2}|\\xED[\\x80-\\x9F][\\x80-\\xBF])*$',0,65535,'adopted from http://www.w3.org/International/questions/qa-forms-utf-8.en.php');
+
diff --git a/www/defs.php3.in b/www/defs.php3.in
index 412f357c1e2ce27a194079e4faebe4cf2abb23fb..3d8af7ed7ca66622b80892bc7fbfa5215f1bcec9 100644
--- a/www/defs.php3.in
+++ b/www/defs.php3.in
@@ -25,6 +25,7 @@ $TBWWW		= "@TBWWW@";
 $THISHOMEBASE	= "@THISHOMEBASE@";
 $ELABINELAB     = @ELABINELAB@;
 $PLABSUPPORT    = @PLABSUPPORT@;
+$PUBSUPPORT     = @PUBSUPPORT@;
 $WIKISUPPORT    = @WIKISUPPORT@;
 $TRACSUPPORT    = @TRACSUPPORT@;
 $BUGDBSUPPORT   = @BUGDBSUPPORT@;
diff --git a/www/doc/docwrapper.php3 b/www/doc/docwrapper.php3
index 75bef77c7517e44569d30689dd50e2a9ea6d3277..2e7381ec5e5d3d83711ed0cce800efab658bfd1d 100644
--- a/www/doc/docwrapper.php3
+++ b/www/doc/docwrapper.php3
@@ -88,3 +88,8 @@ else {
 }
 ?>
 
+
+
+
+
+
diff --git a/www/doc/expubs.html b/www/doc/expubs.html
index 33bb8c5dbe3b8287b886d50feded51a55f471562..4496a573b9ae5cbd145ec00f43258ccae01b3d17 100644
--- a/www/doc/expubs.html
+++ b/www/doc/expubs.html
@@ -1,535 +1,8 @@
 <html>
-<h3 align="center"><em>Please send updates or corrections to <a href="mailto:papers@emulab.net">papers@emulab.net</a>.</em></h3><h2>Active Networks</h2>
-<ul>
-<li style="margin-bottom: 10pt"><a href="http://www.cs.utah.edu/flux/papers/nodeos-jsac01-base.html">An OS Interface for Active Routers.</a>
- Larry Peterson, Yitzchak Gottlieb, Mike Hibler, Patrick Tullmann, Jay Lepreau, Stephen Schwab, Hrishikesh Dandekar, Andrew Purtell, John Hartman. <em>IEEE Journal on Selected Areas of Communication</em>, Mar 2001</li>
-<li style="margin-bottom: 10pt"><a href="http://www.cs.utah.edu/flux/papers/janos-jsac01-base.html">Janos: A Java-Oriented OS for Active Network Nodes.</a>
- P. Tullmann, M. Hibler, J. Lepreau. <em>IEEE Journal on Selected Areas in Communications</em>, March 2001</li>
-<li style="margin-bottom: 10pt"><a href="http://portal.acm.org/citation.cfm?id=945445.945447">Upgrading Transport Protocols using Untrusted Mobile Code.</a>
- Parveen Patel, Andrew Whitaker, David Wetherall, Jay Lepreau, Tim Stack. <em>ACM Symposium on Operating Systems Principles </em>, pages 1-14, 2003</li>
-<li style="margin-bottom: 10pt"><a href="http://ieeexplore.ieee.org/iel5/8518/26920/01196377.pdf?tp=&isnumber=&arnumber=1196377">Bees: A Secure, Resource-Controlled, Java-Based Execution Environment.</a>
- Tim Stack, Eric Eide, Jay Lepreau. <em>IEEE Conference on Open Architectures and Network Programming</em>, pages 97-106, San Francisco, CA, Apr 2003</li>
-<li style="margin-bottom: 10pt"><a href="ftp://ftp.cs.unc.edu/pub/publications/techreports/05-023.pdf">GAL: A Middleware Library for Multidimensional Adaptation.</a>
- David Gotz, Ketan Mayer-Patel. Technical Report TR05-023, Oct 2005</li>
-</ul>
-<h2>Adaptive Traffic Equalization</h2>
-<ul>
-<li style="margin-bottom: 10pt"><a href="http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=4288774">NATALIE: An Adaptive, Network-Aware Traffic Equalizer.</a>
- Yihua He, Jack Brassil. <em>Proceedings of the IEEE International Conference on Communications (ICC)</em>, pages 595-602, Glasgow, Scotland, Jun 2007</li>
-</ul>
-<h2>Application and Experiment Support</h2>
-<ul>
-<li style="margin-bottom: 10pt"><a href="http://www.cs.memphis.edu/~lanwang/paper/step-hercules.pdf">Hercules: An Environment for Large-Scale Enterprise Infrastructure Testing.</a>
- Lan Wang, Charles Ellis, Wei Yin, Dung Dinh Luong., May 2007</li>
-<li style="margin-bottom: 10pt"><a href="http://reports-archive.adm.cs.cmu.edu/anon/anon/usr0/ftp/2005/CMU-CS-05-117.pdf">Upgrading Distributed Applications with the Version Manager.</a>
- Mukesh Agrawal, Suman Nath, Srinivasan Seshan. Technical Report CMU-CS-05-117, Mar 2005</li>
-<li style="margin-bottom: 10pt"><a href="http://www.cs.utah.edu/flux/papers/joglekar-thesis.pdf">High Capacity Network Link Emulation Using Network Processors.</a>
- Abhijeet A. Joglekar. Thesis, University of Utah, May 2004</li>
-<li style="margin-bottom: 10pt"><a href="http://www.svs.informatik.uni-oldenburg.de/download/thesis/0043_DFSBechmark.pdf">An Environment for Benchmarking Distributed File Systems – Specifically for NFSv4Repli.</a>
- André van Hoorn. Thesis, Carl von Ossietzky Universität Oldenburg, Dec 2006</li>
-<li style="margin-bottom: 10pt"><a href="http://www.flux.utah.edu/~flikx/publications/Flickinger_Daniel_thesis_20071012.pdf ">Motion Planning and Coordination of Mobile Robot Behavior for Medium Scale Distributed Wireless Network Experiments.</a>
- Daniel Montrallo Flickinger. Thesis, University of Utah, Dec 2007</li>
-<li style="margin-bottom: 10pt"><a href="http://cs.ubc.ca/~anirbans/538/538_projreport.pdf">How good is Xen for simulating distributed applications? .</a>
- Anirban Sinha, Gang Peng ., 2006</li>
-<li style="margin-bottom: 10pt"><a href="http://www.cs.utah.edu/~abhijeet/sd-proposal.pdf">A Scalable, Accurate and Extensible Network Emulation Platform using the IXP1200 Network Processor .</a>
- Abhijeet Joglekar.</li>
-</ul>
-<h2>AQM Congestion Control</h2>
-<ul>
-<li style="margin-bottom: 10pt"><a href="http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=4262447">PIQI-RCP: Design and Analysis of Rate-Based Explicit Congestion Control.</a>
- S. Jain, D. Loguinov. <em>IEEE IWQoS</em>, Jun 2007</li>
-<li style="margin-bottom: 10pt"><a href="http://irl.cs.tamu.edu/people/saurabh/papers/iwqos2008.pdf">Towards Experimental Evaluation of Explicit Congestion Control.</a>
- S. Jain, Y. Zhang, D. Loguinov. <em>IEEE IWQoS</em>, Jun 2008</li>
-</ul>
-<h2>Databases</h2>
-<ul>
-<li style="margin-bottom: 10pt"><a href="http://www.cnds.jhu.edu/pub/papers/cnds-2003-3.pdf ">On the Performance of Consistent Wide-Area Database Replication.</a>
- Yair Amir, Claudiu Danilov, Michal Miskin-Amir, Jonathan Stanton, Ciprian Tutu. Technical Report CNDS-2003-3, Dec 2003</li>
-<li style="margin-bottom: 10pt"><a href="http://www.cs.ubc.ca/grads/resources/thesis/Nov05/Elaine_Chang.pdf">Schema Mapping and Query Translation in Heterogeneous Peer-to-Peer XML Databases.</a>
- Elaine Qing Chang. Thesis, Trent University (University of British Columbia), Oct 2005</li>
-</ul>
-<h2>Debugging Distributed Systems</h2>
-<ul>
-<li style="margin-bottom: 10pt"><a href="http://portal.acm.org/citation.cfm?id=1314324">The effects of metadata corruption on NFS.</a>
- Swetha Krishnan, Giridhar Ravipati, Andrea C. Arpaci-Dusseau, Remzi H. Arpaci-Dusseau, Barton P. Miller. <em>Sigsacc: Workshop on Storage Security and Survivability</em> ISBN:978-1-59593-891-6, pages 37-41, Alexandria, Virginia, 2007</li>
-<li style="margin-bottom: 10pt"><a href="http://reports-archive.adm.cs.cmu.edu/anon/2005/CMU-CS-05-190.pdf">Simplifying Distributed Application Upgrades with Simultaneous Execution.</a>
- Mukesh Agrawal, Suman Nath, Srinivasan Seshan. Technical Report CMU-CS-05-190, Nov 2005</li>
-</ul>
-<h2>Declarative Networking</h2>
-<ul>
-<li style="margin-bottom: 10pt"><a href="http://www.eecs.berkeley.edu/Pubs/TechRpts/2006/EECS-2006-177.pdf">The Design and Implementation of Declarative Networks.</a>
- Boon Thau Loo. Technical Report UCB/EECS-2006-177, Dec 2006</li>
-</ul>
-<h2>DHT & P2P</h2>
-<ul>
-<li style="margin-bottom: 10pt"><a href="http://www.andrew.cmu.edu/user/dchheda/p2peur.pdf">Analysis of Erasure Coding in a Peer to Peer Backup System.</a>
- Argyro Andreou, Deepti Chheda, Alexander Giamas, George Nychis.</li>
-<li style="margin-bottom: 10pt"><a href="http://www.usenix.org/events/osdi06/tech/li.html">BAR Gossip.</a>
- Harry C. Li, Allen Clement, Edmund L. Wong, Jeff Napper, Indrajit Roy, Lorenzo Alvisi, Michael Dahlin. <em>OSDI '06</em>, pages 191-204, Seattle, WA, Nov 2006</li>
-<li style="margin-bottom: 10pt"><a href="http://www.cs.cmu.edu/~jeffpang/papers/icdcs07-defrag.pdf">Defragmenting DHT-based Distributed File Systems.</a>
- Jeffrey Pang, Phillip B. Gibbons, Michael Kaminsky, Srinivasan Seshan, Haifeng Yu. <em>ICDCS '07</em>, 2007</li>
-<li style="margin-bottom: 10pt"><a href="http://www.ece.gatech.edu/research/labs/agile_store/files/srds05.pdf">"Agile Store: Experience with Quorum-Based Data Replication Techniques for Adaptive Byzantine Fault Tolerance.".</a>
- Lei Kong, Deepak J. Manohar, Arun Subbiah, Michael Sun, Mustaque Ahamad, Douglas M. Blough. <em>Proceedings of the 24th IEEE Symposium on Reliable Distributed Systems (SRDS)</em>, Oct 2005</li>
-<li style="margin-bottom: 10pt"><a href="http://csdl2.computer.org/persagen/DLAbsToc.jsp?resourcePath=/dl/proceedings/icdcs/&toc=comp/proceedings/icdcs/2005/2331/00/2331toc.xml&DOI=10.1109/ICDCS.2005.38">Flexible Consistency for Wide area Peer Replication.</a>
- Sai Susarla, John Carter. <em>ICDCS ’05</em>, pages 199-208, 2005</li>
-<li style="margin-bottom: 10pt"><a href="http://www.cs.princeton.edu/~mfreed/docs/shark-nsdi05.pdf">Shark: Scaling File Servers via Cooperative Caching.</a>
- Siddhartha Annapureddy, Michael J. Freedman, David Mazières. <em>Proc. 2nd USENIX/ACM Symposium on Networked Systems Design and Implementation (NSDI '05)</em>, May 2005</li>
-<li style="margin-bottom: 10pt"><a href="http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=4161621">Management and Service Discovery in Satellite and Avionic Networks.</a>
- Todd Sproull, John W. Lockwood, John Meier . <em>Proceedings of the 2007 IEEE Aerospace Conference</em>, pages 1-13, Big Sky, Montana, Mar 2007</li>
-<li style="margin-bottom: 10pt"><a href="http://www.eecs.harvard.edu/~jonathan/lb/">"Distributed, Secure Load Balancing with Skew, Heterogeneity, and Churn".</a>
- Jonathan Ledlie and Margo Seltzer. <em>Proceedings of IEEE INFOCOM 2005</em>, Mar 2005</li>
-<li style="margin-bottom: 10pt"><a href="http://www.eecs.harvard.edu/~jonathan/lb/kchoices05-tr.pdf">Distributed, Secure Load Balancing with Skew, Heterogeneity, and Churn.</a>
- Jonathan Ledlie, Margo Seltzer. Technical Report TR-31-04, 2004</li>
-<li style="margin-bottom: 10pt"><a href="http://www.cercs.gatech.edu/tech-reports/tr2007/git-cercs-07-12.pdf">CubeCache: Efficient and Scalable Processing of OLAP Aggregation Queries in a Peer-to-Peer Network.</a>
- Sangeetha Seshadri, Brian F.Cooper, Ling Liu. Technical Report GIT-CERCS-07-12, 2005</li>
-<li style="margin-bottom: 10pt"><a href="http://distribnet.sourceforge.net/thesis.pdf">DistribNet- A Global Peer-to-Peer Internet File System.</a>
- Kevin Atkinson. Thesis, University of Maryland, 2005</li>
-<li style="margin-bottom: 10pt"><a href="http://www.cs.princeton.edu/~mfreed/docs/freedman-thesis.pdf">Democratizing Content Distribution.</a>
- Michael Joseph Freedman. Thesis, New York University , Sep 2007</li>
-</ul>
-<h2>Distributed Databases</h2>
-<ul>
-<li style="margin-bottom: 10pt"><a href="http://smartech.gatech.edu/dspace/handle/1853/13180">Using Hierarchies for Optimizing Distributed Stream Queries.</a>
- Sangeetha Seshadri, Vibhore Kumar, Brian F. Cooper. Technical Report GIT-CERCS-06-06, 2006</li>
-</ul>
-<h2>Distributed Middleware</h2>
-<ul>
-<li style="margin-bottom: 10pt"><a href="http://ieeexplore.ieee.org/iel5/4032454/4032455/04032480.pdf">PLATO: Predictive Latency-Aware Total Ordering.</a>
- Mahesh Balakrishnan, Ken Birman, Amar Phanishayee. <em>SRDS 2006: 25th IEEE Symposium on Reliable Distributed Systems</em>, 2006</li>
-<li style="margin-bottom: 10pt"><a href="http://www.emulab.net/doc/docwrapper.php3?docname=expubs.html">Distributed Quota Enforcement for Spam Control.</a>
- Michael Walfish, J.D. Zamfirescu, Hari Balakrishnan, David Karger, Scott Shenker. <em>Proceedings of the Third Symposium on Networked Systems Design and Implementation (NSDI 2006</em>, May 2006</li>
-<li style="margin-bottom: 10pt"><a href="http://www.ece.cmu.edu/~mead/middleware-2005.pdf">Fault-Tolerant Middleware and the Magical 1%.</a>
- Tudor Dumitra? and Priya Narasimhan. <em>ACM/IFIP/USENIX Conference on Middleware</em>, Dec 2005</li>
-<li style="margin-bottom: 10pt"><a href="http://www.cnds.jhu.edu/~wyvern/files/caudy-masters-report.pdf">Scalable Process Group Membership for the Spread Toolkit.</a>
- Ryan W. Caudy. Thesis, Johns Hopkins University, Oct 2004</li>
-</ul>
-<h2>Distributed Systems and Networking</h2>
-<ul>
-<li style="margin-bottom: 10pt"><a href="http://www.navigators.di.fc.ul.pt/papers_manager_free/abstract.php3?id=203">DepSpace: A Byzantine Fault-Tolerant Coordination Service.</a>
- Alysson Neves Bessani, Eduardo Alchieri, Miguel Correia, Joni Silva Fraga. <em>Proceedings of the 3rd ACM SIGOPS/EuroSys European Systems Conference - EuroSys'08</em>, Apr 2008</li>
-<li style="margin-bottom: 10pt"><a href="http://www.cs.utah.edu/flux/papers/index.html">Towards a High Quality Path-oriented Network Measurement and Storage System.</a>
- David Johnson, Daniel Gebhardt, Jay Lepreau. <em>Proc. of the Ninth Passive and Active Measurement Conference (PAM 2008)</em>, Apr 2008</li>
-<li style="margin-bottom: 10pt"><a href="http://www.cs.utah.edu/flux/papers/robots-infocom06-base.html">Mobile Emulab: A Robotic Wireless and Sensor Network Testbed.</a>
- David Johnson, Tim Stack, Russ Fish, Daniel Montrallo Flickinger, Leigh Stoller, Robert Ricci, Jay Lepreau. <em>IEEE INFOCOM 2006</em>, Apr 2006</li>
-<li style="margin-bottom: 10pt"><a href="http://www.cs.utah.edu/flux/papers/linktest-icac06-base.html">Automatic Online Validation of Network Configuration in the Emulab Network Testbed.</a>
- David S. Anderson, Leigh Stoller, Mike Hibler, Tim Stack, Jay Lepreau. <em>Third IEEE International Conference on Autonomic Computing (ICAC 2006)</em>, June 2006</li>
-<li style="margin-bottom: 10pt"><a href="http://www.cs.utah.edu/flux/papers/flexlab-hotnets06-base.html">Flexlab: A Realistic, Controlled, and Friendly Environment for Evaluating Networked Systems.</a>
- Jonathon Duerig, Robert Ricci, Junxing Zhang, Daniel Gebhardt, Sneha Kasera, Jay Lepreau. <em>Fifth Workshop on Hot Topics in Networks (HotNets-V)</em>, Nov 2006</li>
-<li style="margin-bottom: 10pt"><a href="http://www.cs.utah.edu/flux/papers/elabfinger-worlds06-base.html">Towards Fingerpointing in the Emulab Dynamic Distributed System.</a>
- Michael P. Kasick, Priya Narasimhan, Kevin Atkinson, Jay Lepreau. <em>Third USENIX Workshop on Real, Large Distributed Systems (WORLDS 2006)</em>, Nov 2006</li>
-<li style="margin-bottom: 10pt"><a href="http://www.cs.utah.edu/flux/papers/assign-ccr03-base.html">A Solver for the Network Testbed Mapping Problem.</a>
- Robert Ricci, Chris Alfeld, Jay Lepreau. <em>ACM SIGCOMM Computer Communications Review</em>, Vol. 32(2), pages 65-81, Apr 2003</li>
-<li style="margin-bottom: 10pt"><a href="http://www.cs.utah.edu/flux/papers/simem-tridentcom05a.pdf">Integrated Network Experimentation using Simulation and Emulation.</a>
- Shashi Guruprasad, Rob Ricci, Jay Lepreau. <em>First International Conference on Testbeds and Research Infrastructures for the Development of Networks and Communities (Tridentcom 2005)</em>, Feb 2005</li>
-<li style="margin-bottom: 10pt"><a href="http://www.cs.utah.edu/flux/papers/truemobile-ftn2005-02.pdf">TrueMobile: A Mobile Robotic Wireless and Sensor Network Testbed.</a>
- David Johnson, Tim Stack, Russ Fish, Dan Flickinger, Rob Ricci, Jay Lepreau. Technical Report FTN-2005-02, Apr 2005</li>
-<li style="margin-bottom: 10pt"><a href="http://www.cs.utah.edu/flux/papers/ipassign-ftn2005-04-base.html">Optimizing IP Address Assignment on Network Topologies.</a>
- Jonathon Duerig, Robert Ricci, John Byers, Jay Lepreau. Technical Report FTN-2005-04, July 2005</li>
-<li style="margin-bottom: 10pt"><a href="http://www.cs.utah.edu/flux/papers/guruprasad-thesis-base.html">Issues in Integrated Network Experimentation using Simulation and Emulation.</a>
- Shashikiran B. Guruprasad. Thesis, University of Utah, Aug 2005</li>
-</ul>
-<h2>Dynamic Systems</h2>
-<ul>
-<li style="margin-bottom: 10pt"><a href="http://lpd.epfl.ch/gramoli/php/pub_irisa_type.php?ref=GVBKR07#GVBKR07">Fast Distributed Slicing without Requiring Uniformity.</a>
- Vincent Gramoli, Ymir Vigfusson, Ken Birman, Anne-Marie Kermarrec, Robbert van Renesse. Technical Report GVBKR07, Dec 2007</li>
-</ul>
-<h2>Emulation</h2>
-<ul>
-<li style="margin-bottom: 10pt"><a href="http://www.cs.utah.edu/flux/papers/joglekar-thesis-base.html">High Capacity Network Link Emulation Using Network Processors.</a>
- Abhijeet A. Joglekar. Thesis, University of Utah, May 2004</li>
-</ul>
-<h2>File Transfer & Streaming</h2>
-<ul>
-<li style="margin-bottom: 10pt"><a href="http://www.cs.cmu.edu/~dga/papers/nsdi2007-set.pdf">Exploiting Similarity for Multi-Source Downloads using File Handprints.</a>
- Himabindu Pucha, David G. Andersen, Michael Kaminsky. <em>4th Symposium on Networked System Design and Implementation (NSDI '07)</em>, Apr 2007</li>
-<li style="margin-bottom: 10pt"><a href="http://www.usenix.org/events/nsdi07/tech/full_papers/pucha/pucha.pdf">Exploiting Similarity for Multi-Source Downloads Using File Handprints.</a>
- Himabindu Pucha, David G. Andersen, Michael Kaminsky. <em>Proceedings of the Fourth USENIX Symposium on Networked Systems Design and Implementation (NSDI 2007)</em>, Apr 2007</li>
-<li style="margin-bottom: 10pt"><a href="http://www.cs.cmu.edu/~dga/papers/">Adaptive File Transfers for Diverse Environments.</a>
- Himabindu Pucha, Michael Kaminsky, David G. Andersen, Michael A. Kozuch. <em>Proc. USENIX Annual Technical Conference</em>, June 2008</li>
-<li style="margin-bottom: 10pt"><a href="http://ieeexplore.ieee.org/iel5/8655/27437/01221618.pdf?tp=&isnumber=&arnumber=1221618">Better Audio Performance when Video Stream is Monitored by TCP Congestion Control.</a>
- Longin Jan Latecki, Kishore Kulkarni, Jaiwant Mulik. <em>Proceedings of the 2003 International Conference on Multimedia and Expo (ICME)</em>, Vol. II No. 10.1109/ICME.2003.1221618, pages 321-324, Baltimore, MD, Jul 2003</li>
-<li style="margin-bottom: 10pt"><a href="http://www.cis.temple.edu/~latecki/Papers/jit04.pdf">A Two-Stream approach for priority management and adaptive rate control in multimedia applications.</a>
- Longin Jan Latecki, Tao Jin, Jaiwant Mulik. <em>Journal of Internet Technology</em>, pages 331-339, 2004</li>
-<li style="margin-bottom: 10pt"><a href="http://www.cs.utah.edu/flux/papers/frisbee-usenix03-base.html">Fast, Scalable Disk Imaging with Frisbee.</a>
- Mike Hibler, Leigh Stoller, Jay Lepreau, Robert Ricci, Chad Barb. <em>Proc. of the 2003 USENIX Annual Technical Conference</em>, June 2003</li>
-<li style="margin-bottom: 10pt"><a href="http://ieeexplore.ieee.org/iel5/8838/27972/01249761.pdf?tp=&isnumber=&arnumber=1249761">Improving Startup Performance using Active Measurements: Algorithm and Evaluation.</a>
- Ningning Hu, Peter Steenkiste. <em>Proceedings of the International Conference on Networking Protocol</em>, Vol.  , pages 107-118, Nov 2003</li>
-<li style="margin-bottom: 10pt"><a href="http://ieeexplore.ieee.org/iel5/7999/22121/01029937.pdf?tp=&isnumber=&arnumber=1029937">IQ-RUDP: Coordinating Application Adaptation with Network Transport.</a>
- Qi He, Karsten Schwan. <em>Proceedings 11th IEEE International Synopsium on High Performance Distributed Computing</em> ISBN: 0-7695-1686-6, pages 369-378, 2002</li>
-<li style="margin-bottom: 10pt"><a href="http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=4228009">Optimizing Multiple Distributed Stream Queries Using Hierarchical Network Partitions.</a>
- Sangeetha Seshadri, Vibhore Kumar, Brian F. Cooper, Ling Liu. <em>IEEE International Parallel and Distributed Processing Symposium</em>, pages 1-10, Mar 2007</li>
-<li style="margin-bottom: 10pt"><a href="http://www.cs.umd.edu/projects/nice/papers/srms-nossdav04.pdf">Scalable Resilient Media Streaming.</a>
- Suman Banerjee, Seungjoon Lee, Ryan Braud, Bobby Bhattacharjee, Aravind Srinivasan. <em>ACM NOSSDAV</em>, June 2004</li>
-<li style="margin-bottom: 10pt"><a href="http://www.dsn.jhu.edu/pub/papers/voip_tmm_06.pdf">An Overlay Architecture for High Quality VoIP Streams.</a>
- Yair Amir, Claudiu Danilov, Stuart Goose, David Hedqvist, Andreas Terzis . <em>IEEE Transactions on Multimedia</em>, pages 1250-1262, Dec 2006</li>
-<li style="margin-bottom: 10pt"><a href="http://portal.acm.org/citation.cfm?id=1180639.1180717">Scalable and adaptive streaming for non-linear media.</a>
- David Gotz. <em>MULTIMEDIA '06</em>, pages 357-366, Santa Barbara, CA, Oct 2006</li>
-<li style="margin-bottom: 10pt"><a href="http://www.andrew.cmu.edu/user/mchainan/FinalPaper.pdf">A Case for Small File Packing in Parallel Virtual File System (PVFS2).</a>
- Faraz Shaikh and Mikhail Chainani. <em>Advanced and Distributed Operating Sytems Fall 07</em>, 2007</li>
-<li style="margin-bottom: 10pt"><a href="http://www.emulab.net/doc/docwrapper.php3?docname=expubs.html">"MX: Mobile Object Exchange for Collaborative Applications".</a>
- Liuba Shrira and Hong Tian. <em>European Conference on Object-Oriented Programming (ECOOP 2003)</em>, July 2003</li>
-<li style="margin-bottom: 10pt"><a href="http://www.ists.dartmouth.edu/library/151.pdf">Application-Controlled Loss-Tolerant Data Dissemination.</a>
- Guanling Chen, David Kotz. Technical Report TR2004-488, 2004</li>
-<li style="margin-bottom: 10pt"><a href="http://www.emulab.net/doc/docwrapper.php3?docname=expubs.html">Scalable Resilient Media Streaming.</a>
- Suman Banerjee, Seungjoon Lee, Bobby Bhattacharjee, Aravind Srinivasan, Ryan Braud. Technical Report CS-TR 4482, Apr 2003</li>
-<li style="margin-bottom: 10pt"><a href="http://www.gotzfamily.org/~gotz/research/publications/gotz_dissertation2005.pdf">Channel Set Adaptation: Scalable and Adaptive Streaming for Non-Linear Media.</a>
- David Gotz. Thesis, University of North Carolina at Chapel Hill , 2006</li>
-</ul>
-<h2>GRID Computing</h2>
-<ul>
-<li style="margin-bottom: 10pt"><a href="http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=1336674">The File Mover: An Efficient Data Transfer System for Grid Applications.</a>
- Cosimo Anglano, Massimo Canonico . <em>Proceedings of the IEEE International Symposium on Cluster Computing and the Grid (CCGrid)</em>, pages 625-634, Chicago, IL, Apr 2004</li>
-<li style="margin-bottom: 10pt"><a href="http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=1199411">Using Topology-Aware Communication Services in Grid Environments.</a>
- Craig A. Lee, Eric Coe, B. Scott Michel, James Stepanek, Ignacio Solisy, J. Matt Clark, Brooks Davis. <em>Proceedings of the 3rd International Symposium on Cluster Computing and the Grid (CCGRID)</em>, pages 534-541, May 2003</li>
-<li style="margin-bottom: 10pt"><a href="http://ieeexplore.ieee.org/iel5/4354089/4354090/04354137.pdf?tp=&isnumber=&arnumber=4354137">Log Summarization and Anomaly Detection for Troubleshooting Distributed Systems.</a>
- Dan Gunter, Brian L. Tierney, Aaron Brown, Martin Swany, John Bresnahan, Jennifer M. Schopf. <em>Proceedings of the 8th IEEE/ACM International Conference on Grid Computing</em> 10.1109/GRID.2007.4354137, pages 226-234, Austin, TX, Sep 2007</li>
-<li style="margin-bottom: 10pt"><a href="http://sc07.supercomputing.org/schedule/pdf/pap279.pdf">Anomaly Detection and Diagnosis in Grid Environments.</a>
- Lingyun Yang, Chuang Liu, Jennifer M. Schopf,  Ian Foster. <em>Proceedings of the 2007 ACM/IEEE Conference on Supercomputing (SC)</em>, Reno, NV, Nov 2007</li>
-<li style="margin-bottom: 10pt"><a href="http://www.springerlink.com/content/lda5fja401y3t31b/fulltext.pdf">Topology-Aware Communication in Wide-Area Message-Passing.</a>
- Craig A. Lee. <em>Proceedings of the 10th European PVM/MPI User’s Group Meeting</em>, Vol. LNCS 2840/2003, pages 644-652, Sep-Oct 2003</li>
-<li style="margin-bottom: 10pt"><a href="http://www.cs.dartmouth.edu/reports/abstracts/TR2002-433/">Using the Emulab network testbed to evaluate the Armada I/O framework for computational grids.</a>
- Ron Oldfield, David Kotz. Technical Report TR2002-433, Sep 2002</li>
-</ul>
-<h2>Internet Availability</h2>
-<ul>
-<li style="margin-bottom: 10pt"><a href="http://www.cs.cmu.edu/~dga/papers/">Resilient Overlay Networks.</a>
- David G. Andersen and Hari Balakrishnan and M. Frans Kaashoek, Robert Morris. <em>18th ACM Symp. on Operating Systems Principles (SOSP)</em>, Oct 2001</li>
-</ul>
-<h2>Measurements, Diagnosis, and Anomaly Detection</h2>
-<ul>
-<li style="margin-bottom: 10pt"><a href="http://www.cs.wustl.edu/~schmidt/PDF/D&T-v13.pdf ">Controlling Quality-of-Service in a Distributed Real-time and Embedded Multimedia Application via Adaptive Middleware.</a>
- Richard E. Schantz, Joseph P. Loyall, Craig RodriguesDouglas C. Schmidt.</li>
-<li style="margin-bottom: 10pt"><a href="http://portal.acm.org/citation.cfm?id=1323148">Architecture-Driven Diagnosis of Performance Failures in a Token Ring.</a>
- Andrew Williams, Priya Narasimhan. <em>USENIX: Proceedings of the 3rd workshop on Hot Topics in System Dependability</em> Article No. 8, pages 1-4, Edinburgh, UK, 2007</li>
-<li style="margin-bottom: 10pt"><a href="http://www.emulab.net/doc/docwrapper.php3?docname=expubs.html">"CCMPerf: A Bechmarking Tool for CORBA Component Model Implementations." .</a>
- Arvind S. Krishna, Balachandran Natarajan, Aniruddha Gokhale, Douglas C. Schmidt, Nanbor Wang, Gautam Thaker. <em>Proceedings of the Tenth IEEE Real-Time and Embedded Technology and Applications Symposium (RTAS 2004)</em>, pages 140-147, May 2004</li>
-<li style="margin-bottom: 10pt"><a href="http://www-rp.lip6.fr/~augustin/augustin07measuring.pdf">Measuring Load-balanced Paths in the Internet.</a>
- Brice Augustin, Renata Teixeira and Timur Friedman. <em>Internet Measurement Conference</em>, Oct 2007</li>
-<li style="margin-bottom: 10pt"><a href="http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=4362192">An Observation-Based Approach to Performance Characterization of Distributed n-Tier Applications.</a>
- Calton Pu, Akhil Sahai, Jason Parekh, Gueyoung Jung, Ji Bae, You-Kyung Cha, Timothy Garcia,Danesh Irani, Jae Lee, Qifeng Lin. <em>Proceedings of the 10th IEEE International Symposium on Workload Characterization (IISWC)</em>, pages 161-170, Boston, MA, Sep 2007</li>
-<li style="margin-bottom: 10pt"><a href="http://www.cs.washington.edu/research/security/webtripwires.html">Detecting In-Flight Page Changes with Web Tripwires.</a>
- Charles Reis, Steven D. Gribble, Tadayoshi Kohno, Nicholas C. Weaver. <em>NSDI 2008</em>, Apr 2008</li>
-<li style="margin-bottom: 10pt"><a href="http://www.emulab.net/doc/docwrapper.php3?docname=expubs.html">System Support for Bandwidth Management and Content Adaptation in Internet Applications.</a>
- D. Andersen, D. Bansal, D. Curtis, S. Seshan, H. Balakrishnan. <em>Proceedings of the Fourth Symposium on Operating System Design and Implementation (OSDI 2000)</em>, Oct 2002</li>
-<li style="margin-bottom: 10pt"><a href="http://www.cs.cmu.edu/~dga/papers/cm-osdi2000.pdf">System Support for Bandwidth Management and Content Adaptation in Internet Applications.</a>
- David Andersen, Deepak Bansal, Dorothy Curtis, Srinivasan Seshan, Hari Balakrishnan. <em>Proc. USENIX OSDI Conf.</em>, Oct 2000</li>
-<li style="margin-bottom: 10pt"><a href="http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=1342511">Evaluating the Performance of Middleware Load Balancing Strategies.</a>
- Jaiganesh Balasubramanian, Douglas C. Schmidt, Lawrence Dowdy, Ossama Othman. <em>Proceedings of the 8th IEEE International Enterprise Distributed Object Computing Conference (EDOC)</em>, pages 135-146, Monterey, CA, Sep 2004</li>
-<li style="margin-bottom: 10pt"><a href="http://portal.acm.org/citation.cfm?id=1282409">EtherFuse: An Ethernet Watchdog.</a>
- Khaled Elmeleegy, Alan L. Cox, T.S. Eugene Ng. <em>Sigcomm</em> ISBN: 978-1-59593-713-1, pages 253-264, Kyoto, Japan, 2007</li>
-<li style="margin-bottom: 10pt"><a href="http://doi.acm.org/10.1145/571825.571864">Evaluating the Running Time of a Communication Round over the Internet.</a>
- Omar Bakr, Idit Keidar. <em>Proceedings of the 21st Annual Symposium on Principles of Distributed Computing (PODC)</em>, pages 243-252, Monterey, CA, Jul 2002</li>
-<li style="margin-bottom: 10pt"><a href="http://pam2008.cs.wpi.edu/program.html">IMR-Pathload: Robust Available Bandwidth Estimation under End-Host Interrupt Delay.</a>
- S.-R. Kang, D. Loguinov. <em>PAM</em>, Apr 2008</li>
-<li style="margin-bottom: 10pt"><a href="http://www.cs.cmu.edu/~dga/papers/csamp-nsdi2008.pdf">cSamp:  A System for Network-Wide Flow Monitoring.</a>
- Vyas Sekar, Michael K. Reiter, Walter Willinger, Hui Zhang, Ramana Rao Kompella, David G. Andersen. <em>Proc. 5th USENIX NSDI</em>, Apr 2008</li>
-<li style="margin-bottom: 10pt"><a href="http://www.imconf.net/imc-2005/papers/imc05efiles/liu_xiliang/liu_xiliang.pdf">Multi-Hop Probing Asymptotics in Available Bandwidth Estimation: Stochastic Analysis.</a>
- X. Liu, K. Ravindran, D. Loguinov. <em>USENIX/ACM IMC</em>, Oct 2005</li>
-<li style="margin-bottom: 10pt"><a href="http://irl.cs.tamu.edu/people/xiliang/papers/ton2008.pdf">A Stochastic Foundation of Available Bandwidth Estimation: Multi-Hop Analysis.</a>
- Xiliang Liu, Kaliappa Ravindran, Dmitri Loguinov. <em>Transactions on Networking</em>, Vol. 16 No. 1, pages 130-143, Feb 2008</li>
-<li style="margin-bottom: 10pt"><a href="http://www.cs.utah.edu/flux/papers/hourglass-usenix02/">Inferring Scheduling Behavior with Hourglass.</a>
- John Regehr. <em>Proceedings of the USENIX 2002 Annual Technical Conference FREENIX track</em>, June 2002</li>
-<li style="margin-bottom: 10pt"><a href="http://ieeexplore.ieee.org/iel5/49/4027709/04016144.pdf">Towards a Generalized Stochastic Model of End-to-End Packet-Pair Sampling.</a>
- X. Liu, K. Ravindran, D. Loguinov., Dec 2006</li>
-<li style="margin-bottom: 10pt"><a href="http://www.pdl.cmu.edu/PDL-FTP/stray/CMU-PDL-06-102.pdf">Challenges and Opportunities in Internet Data Mining.</a>
- David G. Andersen, Nick Feamster. Technical Report CMU-PDL-06-102, Jan 2006</li>
-<li style="margin-bottom: 10pt"><a href="http://reports-archive.adm.cs.cmu.edu/anon/2003/abstracts/03-218.html">RPT: A Low Overhead Single-End Probing Tool for Detecting Network Congestion Positions.</a>
- Ningning Hu, Peter Steenkiste. Technical Report CMU-CS-03-218, Dec  2003</li>
-<li style="margin-bottom: 10pt"><a href="http://www.nsl.cis.udel.edu/benchmark/thesis.pdf">Attack Profiling For DDOS Benchmarks.</a>
- Erinc Arikan. Thesis, University of Delaware, 2006</li>
-<li style="margin-bottom: 10pt"><a href="http://dspace.mit.edu/bitstream/1721.1/37095/1/84843065.pdf">Measuring the Performance of a Distributed Quota Enforcement System for Spam Control.</a>
- John Dalbert Zamfirescu-Pereira. Thesis, Massachusetts Institute of Technology, Aug 2006</li>
-<li style="margin-bottom: 10pt"><a href="http://reports-archive.adm.cs.cmu.edu/anon/anon/usr/ftp/2006/CMU-CS-06-122.pdf">Network Monitoring and Diagnosis Based on Available Bandwidth Measurement .</a>
- Ningning Hu. Thesis, Carnegie Mellon University, May 2006</li>
-<li style="margin-bottom: 10pt"><a href="http://web.cs.gc.cuny.edu/~xliu/index_files/thesis.pdf">A Stochastic Analysis of End-to-end Available Bandwidth Estimation.</a>
- Xiliang Liu. Thesis, The City University of New York , May 2005</li>
-<li style="margin-bottom: 10pt"><a href="http://arxiv.org/PS_cache/arxiv/pdf/0801/0801.0455v1.pdf">A System Theoretic Approach to Bandwidth Estimation.</a>
- Jorg Liebeherr, Markus Fidler, Shahrokh Valaee., Jan 2008</li>
-<li style="margin-bottom: 10pt"><a href="http://www.cs.umd.edu/users/pavlos/proposal/pavlos-proposal.pdf">The Measurement Manager: Modular End-to-End Measurement Services.</a>
- Pavlos Papageorgiou., Apr 2007</li>
-</ul>
-<h2>Multicast and Broadcast</h2>
-<ul>
-<li style="margin-bottom: 10pt"><a href="http://doi.acm.org/10.1145/1005847.1005860">Connectivity Restrictions in Overlay Multicast.</a>
- Aditya Ganjam, Hui Zhang. <em>Proceedings of the 14th International Workshop on Network and Operating Systems Support for Digital Audio and Video (NOSSDAV)</em>, pages 54-59, Cork, Ireland, Jun 2004</li>
-<li style="margin-bottom: 10pt"><a href="http://www.sosp.org/2001/papers/snoeren.pdf">Mesh-Based Content Routing using XML.</a>
- Alex C. Snoeren, Kenneth Conley, and David K. Gifford. <em>SOSP '01</em>, Banff, Canada, Oct 2001</li>
-<li style="margin-bottom: 10pt"><a href="http://ieeexplore.ieee.org/iel5/9031/28660/01284186.pdf?arnumber=1284186">Multicast TCP via Concast Merged Acknowledgements.</a>
- Billy Mullins, Jim Griffioen, Ken Calvert. <em>ICCCN 2003</em>, Oct 2003</li>
-<li style="margin-bottom: 10pt"><a href="http://www.cs.cornell.edu/~mahesh/publications/docs/ricochet-camera.pdf">Ricochet: Lateral Error Correction for Time-Critical Multicast.</a>
- Mahesh Balakrishnan, Ken Birman, Amar Phanishayee, Stefan Pleisch. <em>NSDI 2007: Fourth Usenix Symposium on Networked Systems Design and Implementation</em>, 2007</li>
-<li style="margin-bottom: 10pt"><a href="http://etrij.etri.re.kr/Cyber/servlet/BrowseAbstract?paperid=RP0705-0158">Realization of a Scalable and Reliable Multicast Transport Protocol for Many-to-Many Sessions.</a>
- Seungik Lee, Yangwoo Ko, Dongman Lee. <em>ETRI Journal</em>, Vol. 29 No. 6, pages 745-754, Dec 2007</li>
-<li style="margin-bottom: 10pt"><a href="http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=1302968">Application-Perceived Multicast Push Performance.</a>
- Wenhui Zhang, Wei Li, Vincenzo Liberatore. <em>Proceedings of the International Parallel and Distributed Processing Symposium</em>, Apr 2004</li>
-<li style="margin-bottom: 10pt"><a href="http://portal.acm.org/citation.cfm?id=1103543.1103556">A Cost-Benefit Flow Control for Reliable Multicast and Unicast in Overlay Networks.</a>
- Yair Amir, Baruch Awerbuch, Claudiu Danilov, Jonathan Stanton. <em>ACM Transactions on Networking</em>, Vol. vol. XIII, pages 1094-1106, Oct 2005</li>
-<li style="margin-bottom: 10pt"><a href="http://www.ee.technion.ac.il/people/idish/ftp/araneola-nca04.pdf">"Araneola: A Scalable Reliable Multicast System for Dynamic Environments".</a>
- Roie Melamed and Idit Keidar. <em>rd IEEE International Symposium on Network Computing and Applications (IEEE NCA)</em>, Sept 2004</li>
-<li style="margin-bottom: 10pt"><a href="http://ecommons.library.cornell.edu/bitstream/1813/5726/1/TR2006-2027.pdf">Chunkyspread: Heterogeneous Unstructured End System Multicast.</a>
- Vidhyashankar Venkataraman, Kaoru Yoshida, Paul Francis. Technical Report TR2006-2027, May 2006</li>
-<li style="margin-bottom: 10pt"><a href="http://www.ecse.rpi.edu/Homepages/shivkuma/research/papers/ormcc-ton2002.pdf">ORMCC: A Simple And Effective Single-Rate Multicast Congestion Control Scheme.</a>
- Jiang Li, Shivkumar Kalyanaraman., 2002</li>
-</ul>
-<h2>Name Services</h2>
-<ul>
-<li style="margin-bottom: 10pt"><a href="http://www.cs.ubc.ca/grads/resources/thesis/Nov05/Chamath_Keppitiyagama.pdf">A Framework for Multiparty Communication Types.</a>
- Chamath Indika Keppitiyagama. Thesis, University of British Columbia, Jul 2005</li>
-</ul>
-<h2>Network Protocols</h2>
-<ul>
-<li style="margin-bottom: 10pt"><a href="http://www.ecse.rpi.edu/Homepages/shivkuma/research/papers/acc-qos-cnj04.pdf">An Accumulation-based, Closed-loop Scheme for Expected Minimum Rate and Weighted Rate Services.</a>
- David Harrison, Yong Xia, Shivkumar Kalyanaraman, Arvind Venkatesan. <em>Computer Networks</em>, Vol. 45 No. 6, pages 801-818, Aug 2004</li>
-<li style="margin-bottom: 10pt"><a href="http://www.usenix.org/events/osdi04/tech/full_papers/gunawi/gunawi.pdf">Deploying Safe User-Level Network Services with icTCP.</a>
- Haryadi S. Gunawi, Andrea C. Arpaci-Dusseau, Remzi H. Arpaci-Dusseau. <em>USENIX Association OSDI ’04: 6th Symposium on Operating Systems Design and Implementation</em>, pages 317-332, 2004</li>
-<li style="margin-bottom: 10pt"><a href="http://www.cs.cornell.edu/~mahesh/">Maelstrom: Transparent Error Correction for Lambda Networks.</a>
- Mahesh Balakrishnan, Tudor Marian, Ken Birman, Hakim Weatherspoon, Einar Vollset. <em>Accepted to NSDI 2008: Fifth Usenix Symposium on Networked Systems Design and Implementation</em></li>
-<li style="margin-bottom: 10pt"><a href="http://www.cs.kau.se/~johane/publ/Master_JE.pdf">Evaluation of Emulab as Experimental Platform by Comparing TCP and SCTP.</a>
- Johan Eklund. Thesis, Karlstad University, Jul 2004</li>
-</ul>
-<h2>Overlay Networks</h2>
-<ul>
-<li style="margin-bottom: 10pt"><a href="http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=1348102">MPAT: Aggregate TCP Congestion Management as a Building Block for Internet QoS.</a>
- Manpreet Singh, Prashant Pradhan, Paul Francis. <em>Proceedings of the 12th IEEE International Conference on Network Protocols (ICNP)</em>, pages 129-138, Berlin, Germany, Oct 2004</li>
-</ul>
-<h2>Parallel Computing</h2>
-<ul>
-<li style="margin-bottom: 10pt"><a href="http://www.cs.utah.edu/formal_verification/papers/pdmc-submission.pdf">Partial Order Reduction Assisted Parallel Model-Checking.</a>
- Robert Palmer and Ganesh Gopalakrishnan., Aug 2002</li>
-<li style="margin-bottom: 10pt"><a href="http://www.eecs.harvard.edu/~stein/PAPERS/stein-harvard-dissertation-2007.pdf">Adaptive parallel computation for heterogeneous processors .</a>
- Christopher Alexander Stein. Thesis, Harvard University, May 2007</li>
-</ul>
-<h2>Performance of Network Protocol</h2>
-<ul>
-<li style="margin-bottom: 10pt"><a href="http://www.cs.kau.se/~johane/forskning/rapport_2005_48.pdf">Performance of Network Redundancy Mechanisms in SCTP.</a>
- Johan Eklund, Anna Brunstrom. Technical Report 2005-48, 2005</li>
-</ul>
-<h2>Pub/Sub & Dissemination Systems</h2>
-<ul>
-<li style="margin-bottom: 10pt"><a href="http://www.eecs.harvard.edu/~mdw/papers/cobra-nsdi07.pdf">Cobra: Content based Filtering and Aggregation of Blogs and RSS Feeds.</a>
- Ian Rose, Rohan Murty, Peter Pietzuch, Jonathan Ledlie, Mema Roussopoulos, Matt Welsh. <em>Proceedings of the 4th USENIX Symposium on Networked Systems Design & Implementation (NSDI '07)</em>, Apr 2007</li>
-<li style="margin-bottom: 10pt"><a href="http://www.usenix.org/events/nsdi07/tech/full_papers/rose/rose.pdf">Cobra: Content-based Filtering and Aggregation of Blogs and RSS Feeds.</a>
- Ian Rose, Rohan Murty, Peter Pietzuch, Jonathan Ledlie, Mema Roussopoulos, Matt Welsh. <em>Proceedings of the Fourth USENIX Symposium on Networked Systems Design and Implementation (NSDI 2007)</em>, Apr 2007</li>
-<li style="margin-bottom: 10pt"><a href="http://www.usenix.org/events/nsdi06/tech/walfish.html">Distributed Quota Enforcement for Spam Control.</a>
- Michael Walfish, J.D. Zamfirescu, Hari Balakrishnan, David Karger, Scott Shenker. <em>NSDI '06</em>, pages 281–296, San Jose, CA, May 2006</li>
-<li style="margin-bottom: 10pt"><a href="http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=1317255">The Design and Performance of a Real-Time Notification Service.</a>
- Pradeep Gore, Irfan Pyarali, Christopher D. Gill, Douglas C. Schmidt. <em>Proceedings of the Real-time and Embedded Technology and Applications Symposium</em>, pages 112-120, May 2004</li>
-<li style="margin-bottom: 10pt"><a href="http://ieeexplore.ieee.org/search/wrapper.jsp?arnumber=1003507">SANDS: Specialized Active Networking for Distributed Simulation.</a>
- S. Zabele, M. Dorsch, Z. Ge, P. Ji, M. Keaton, J. Kurose, J. Shapiro, D. Towsley. <em>DARPA Active NEtworks Conference and Exposition</em>, pages 356 - 365, May 2002</li>
-</ul>
-<h2>QoS</h2>
-<ul>
-<li style="margin-bottom: 10pt"><a href="http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=1196376">User-specified Adaptive Scheduling in a Streaming Media Network.</a>
- Michael Hicks, Adithya Nagarajan, Robbert van Renesse. <em>Proceedings of the 2003 IEEE Conference on Open Architectures and Network Programming (OPENARCH)</em>, pages 87-96, San Francisco, CA, Apr 2003</li>
-<li style="margin-bottom: 10pt"><a href="http://www.rpi.edu/~xiay/pub/icc03.ps.gz">An Accumulation-based Congestion Control Model.</a>
- Y. Xia, D. Harrison, S. Kalyanaraman, K. Ramachandran, A. Venkatesan. <em>IEEE International Conference on Communications</em>, May 2003</li>
-</ul>
-<h2>Resource Allocation</h2>
-<ul>
-<li style="margin-bottom: 10pt"><a href="http://ieeexplore.ieee.org/iel5/9204/29179/01317274.pdf?tp=&isnumber=&arnumber=1317274">Dynamic CPU Management for Real-Time, Middleware-Based Systems .</a>
- Eric Eide, Tim Stack, John Regehr, Jay Lepreau . <em>RTAS '04</em>, pages 286-295, Toronto, Canada, May 2004</li>
-<li style="margin-bottom: 10pt"><a href="http://www.cs.utah.edu/flux/papers/kaffeos-osdi00-base.html">Processes in KaffeOS: Isolation, Resource Management, and Sharing in Java.</a>
- Godmar Back, Wilson C. Hsieh, Jay Lepreau. <em>Proceedings of the Fourth Symposium on Operating Systems Design and Implementation (OSDI 2000)</em>, Oct 2000</li>
-<li style="margin-bottom: 10pt"><a href="http://ieeexplore.ieee.org/search/wrapper.jsp?arnumber=1388403">Integrated CORBA scheduling and resource management for distributed real-time embedded systems.</a>
- Kevin Bryan, Lisa C. DiPippo, Victor Fay-Wolfe, Matthew Murphy, Jiangyin Zhangm, David T. Fleeman, David W. Juedes, Chang Liu, Lonnie R. Welch, Douglas Niehaus, Christopher D. Gill. <em>RTAS '05</em>, pages 375-384, San Francisco, CA, Mar 2005</li>
-</ul>
-<h2>Robust Scalable Services</h2>
-<ul>
-<li style="margin-bottom: 10pt"><a href="http://portal.acm.org/citation.cfm?id=1217955">Context-Specific Middleware Specialization Techniques for Optimizing Software Product-line Architectures.</a>
- Arvind S. Krishna, Aniruddha S. Gokhale, Douglas C. Schmidt. <em>ACM SIGOPS Operating Systems Review</em>, pages 205-218, 2006</li>
-<li style="margin-bottom: 10pt"><a href="https://www.usenix.org/events/osdi06/tech/full_papers/cowling/cowling.pdf">HQ Replication: A Hybrid Quorum Protocol for Byzantine Fault Tolerance.</a>
- James Cowling, Daniel Myers, Barbara Liskov, Rodrigo Rodrigues, Liuba Shrira . <em>OSDI '06</em>, pages 177-190, Seattle, WA, Nov 2006</li>
-<li style="margin-bottom: 10pt"><a href="http://www.cs.berkeley.edu/~demmer/papers/tierstore-fast08.pdf">TierStore: A Distributed Filesystem for Challenged Networks in Developing Regions.</a>
- Michael Demmer, Bowei Du, Eric Brewer. <em>FAST '08</em>, San Jose, CA, Feb 2008</li>
-<li style="margin-bottom: 10pt"><a href="http://ieeexplore.ieee.org/iel5/10345/32908/01541191.pdf?tp=&isnumber=&arnumber=1541191">Thema: Byzantine-Fault-Tolerant Middleware for Web-Service Applications.</a>
- Michael G. Merideth, Arun Iyengar, Thomas Mikalsen, Stefan Tai, Isabelle Rouvellou, Priya Narasimhan. <em>Proceedings of the IEEE Symposium on Reliable Distributed Systems  </em>, 2005</li>
-<li style="margin-bottom: 10pt"><a href="http://www.cs.wustl.edu/~schmidt/PDF/adaptive_lb.pdf">The Design and Performance of an Adaptive Middleware Load Balancing and Monitoring Service.</a>
- Ossama Othman, Jaiganesh Balasubramanian, Douglas C. Schmidt. <em>Proceedings of the 3rd International Workshop on Self-Adaptive Software (IWSAS)</em>, Arlington, VA, Jun 2003</li>
-<li style="margin-bottom: 10pt"><a href="http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=1424039">FlowMate: Scalable On-Line Flow Clustering.</a>
- Ossama Younis, Sonia Fahmy. <em>ACM Transactions on Networking</em>, Vol. is. II vol. XIII, pages 288-301, Apr 2005</li>
-<li style="margin-bottom: 10pt"><a href="http://portal.acm.org/citation.cfm?id=762485">Astrolabe: A Robust and Scalable Technology for Distributed Systems Monitoring, Management, and Data Mining.</a>
- Robbert van Renesse, Kenneth P. Birman, Werner Vogels. <em>Transactions on Computer Systems</em>, Vol. 21 No. 2, pages 164-206, May 2003</li>
-<li style="margin-bottom: 10pt"><a href="http://www.ece.cmu.edu/~mead/dsn-hotdep-2005.pdf">Handling Cascading Failures: The Case for Topology-Aware Fault-Tolerance.</a>
- Soila Pertet, Priya Narasimhan. <em>HotDep '05</em>, Jun 2005</li>
-<li style="margin-bottom: 10pt"><a href="http://www.cs.cornell.edu/~tudorm/publications/tempest.pdf">Tempest: Soft State Replication in the Service Tier.</a>
- Tudor Marian, Mahesh Balakrishnan, Ken Birman, Robbert van Renesse. <em>DSN 2008</em>, Anchorage, AL, Jun 2008</li>
-<li style="margin-bottom: 10pt"><a href="http://ieeexplore.ieee.org/iel5/10030/32175/01498048.pdf?tp=&arnumber=1498048&isnumber=32175">Distributed Stream Management using Utility-Driven Self-Adaptive Middleware.</a>
- Vibhore Kumar, Brian F. Cooper, Karsten Schwan. <em>Proceedings of the 2nd International Conference on Autonomic Computing (ICAC)</em>, pages 3-14, Seattle, WA, Jun 2005</li>
-<li style="margin-bottom: 10pt"><a href="http://portal.acm.org/citation.cfm?id=1230080">Applying database replication to multi-player online games.</a>
- Yi Lin, Bettina Kemme, Marta Patino-Martinez, Ricardo Jimenez-Peris. <em>NSSG: Proceedings of 5th ACM SIGCOMM workshop on Network and system support for games</em> Article No. 15; ISBN: 1-59593-589-4, 2006</li>
-<li style="margin-bottom: 10pt"><a href="http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=1605995">Disruption Tolerant Networking for Heterogeneous Ad-Hoc Networks.</a>
- Kevin Fall. <em>Military Communications Conference</em>, Vol. vol. IV, pages 2195-2201, Oct 2005</li>
-<li style="margin-bottom: 10pt"><a href="ftp://ftp.cs.princeton.edu/techreports/2007/801.pdf">Building Scalable Self-configuring Networks with SEIZE.</a>
- Changhoon Kim, Matthew Caesar, Jennifer Rexford. Technical Report , 2007</li>
-<li style="margin-bottom: 10pt"><a href="http://www.cs.utexas.edu/ftp/pub/techreports/tr05-10.pdf">BAR Fault Tolerance for Cooperative Services Extended Technical Report TR0510.</a>
- JeanPhilippe Martin, Amitanand S. Aiyer, Lorenzo Alvisi, Allen Clement, Michael Dahlin, Carl Porth. Technical Report TR-05-10, 2005</li>
-<li style="margin-bottom: 10pt"><a href="http://www.dtnrg.org/docs/papers/demmer-irb-tr-04-020.pdf">Implementing Delay Tolerant Networking.</a>
- Michael Demmer, Eric Brewer, Kevin Fall, Sushant Jain, Melissa Ho, Robin Patra . Technical Report IRB-TR-04-020, Dec 2004</li>
-<li style="margin-bottom: 10pt"><a href="http://www.pdl.cmu.edu/PDL-FTP/stray/CMU-PDL-06-107.pdf">Group Communication: Helping or Obscuring Failure Diagnosis?</a>
- Soila Pertet, Rajeev Gandhi, Priya Narasimhan. Technical Report CMU-PDL-06-107, Jun 2006</li>
-<li style="margin-bottom: 10pt"><a href="http://www.intel-research.net/Publications/Pittsburgh/101220041252_263.pdf">Tolerating Correlated Failures in Wide-Area Monitoring Services.</a>
- Suman Nath, Haifeng Yu, Phillip B. Gibbons, Srinivasan Seshan. Technical Report IRP-TR-04-09, May 2004</li>
-<li style="margin-bottom: 10pt"><a href="http://www.cnds.jhu.edu/pub/papers/cnds-2002-4.pdf">On the Performance of Wide-Area Synchronous Database Replication .</a>
- Yair Amir, Claudiu Danilov, Michal Miskin-Amir, Jonathan Stanton, Ciprian Tutu. Technical Report CNDS-2002-4, Nov 2002</li>
-<li style="margin-bottom: 10pt"><a href="http://www.cnds.jhu.edu/pub/papers/cnds-2002-1.pdf">Practical Wide-Area Database Replication.</a>
- Yair Amir, Claudiu Danilov, Michal Miskin-Amir, Jonathan Stanton, Ciprian Tutu. Technical Report CNDS-2002-1, Feb 2002</li>
-<li style="margin-bottom: 10pt"><a href="http://www.dsn.jhu.edu/funding/tolerant_networks/Cost_Benefit_Final_Report.pdf">A Cost-Benefit Approach to Fault Tolerant Communication and Information Access.</a>
- Yair Amir . Technical Report , Feb 2004</li>
-<li style="margin-bottom: 10pt"><a href="https://www.lib.utexas.edu/etd/d/2005/yalagandulap16097/yalagandulap16097.pdf ">A Scalable Information Management Middleware for Large Distributed Systems.</a>
- Praveen Yalagandula. Thesis, University of Texas at Austin, 2005</li>
-<li style="margin-bottom: 10pt"><a href="http://reports-archive.adm.cs.cmu.edu/anon/anon/usr/ftp/2005/CMU-CS-05-166.pdf">Exploiting Redundancy for Robust Sensing.</a>
- Suman Nath. Thesis, Carnegie Mellon University, Aug 2005</li>
-</ul>
-<h2>Routing</h2>
-<ul>
-<li style="margin-bottom: 10pt"><a href="http://www.angelfire.com/magic/andreas/infocom2003.pdf">A Connectionless Approach to Intra-domain Traffic Engineering.</a>
- Hema Tahilramani Kaur, Shivkumar Kalyanaraman, Shifalika Kanwar, Andreas Weiss, Niharika Mateti, Biplab Sikdar., 2003</li>
-<li style="margin-bottom: 10pt"><a href="http://www.cs.princeton.edu/~mzhang/papers/thesis.pdf">Understanding Internet Routing Anomalies And Building Robust Transport Layer Protocols.</a>
- Ming Zhang . Thesis, Princeton University, Sep 2005</li>
-</ul>
-<h2>Routing Overlay</h2>
-<ul>
-<li style="margin-bottom: 10pt"><a href="http://portal.acm.org/citation.cfm?id=1095809.1095818">Implementing Declarative Overlays.</a>
- Boon Thau Loo, Tyson Condie, Joseph M. Hellerstein, Petros Maniatis, Timothy Roscoe, Ion Stoica. <em>ACM SIGOPS Operating Systems Review</em>, pages 75-90, 2005</li>
-<li style="margin-bottom: 10pt"><a href="http://www.nyman-workshop.org/2002/papers/2332.pdf">A Connectionless Approach to Intra- and Inter-Domain Traffic Engineering.</a>
- Hema T. Kaur, Shivkumar Kalyanaraman. <em>New York Metro Area Networking Workshop</em>, 2002</li>
-<li style="margin-bottom: 10pt"><a href="http://doi.acm.org/10.1145/1005847.1005857">Passive Inference of Path Correlation.</a>
- Lili Wang, James N. Griffioen, Kenneth L. Calvert, Sherlia Shi . <em>Proceedings of the 14th International Workshop on Network and Operating Systems Support for Digital Audio and Video (NOSSDAV)</em>, pages 36-41, Cork, Ireland, Jun 2004</li>
-<li style="margin-bottom: 10pt"><a href="http://usenix.org/publications/library/proceedings/usenix04/tech/general/zhang.html">A Transport Layer Approach for Improving End-to-End Performance and Robustness Using Redundant Paths.</a>
- Ming Zhang, Junwen Lai, Arvind Krishnamurthy, Larry Peterson, Randolph Wang. <em>Proceedings of the USENIX 2004 Annual Technical Conference</em>, pages 99-112, Boston, MA, Jun-Jul 2004</li>
-<li style="margin-bottom: 10pt"><a href="http://ieeexplore.ieee.org/iel5/8589/27228/01209961.pdf?tp=&isnumber=&arnumber=1209961">Reliable Communication in Overlay Networks.</a>
- Yair Amir, Claudiu Danilov. <em>Proceedings of the 2003 International Conference on Dependable Systems and Networks (DSN)</em>, pages 511-520, San Francisco, CA, Jun 2003</li>
-<li style="margin-bottom: 10pt"><a href="http://www.cis.upenn.edu/~boonloo/papers/dnmobile.pdf">The Case for a Unified Extensible Data-centric Mobility Infrastructure.</a>
- Yun Mao, Boon Thau Loo, Zachary Ives, Jonathan M. Smith. <em>Proceedings of the 2nd ACM International Workshop on Mobility in the Evolving Internet Architecture (MobiArch)</em>, Kyoto, Japan, Aug 2007</li>
-<li style="margin-bottom: 10pt"><a href="http://ieeexplore.ieee.org/search/srchabstract.jsp?arnumber=1652132&isnumber=34633&punumber=10993&k2dockey=1652132@ieeecnfs&query=%28%28zhongtang+cai%29%3Cin%3Emetadata%29&pos=0&access=n0">IQ-Paths: Predictably High Performance Data Streams across Dynamic Network Overlays.</a>
- Zhongtang Cai, Vibhore Kumar, Karsten Schwan. <em>HPDC '06</em>, pages 18-29, Paris, France, Jun 2006</li>
-<li style="margin-bottom: 10pt"><a href="http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=4313167">A Multipath Flow Routing Approach for Increasing Throughput in the Internet.</a>
- Brian L. Mark and Shidong Zhang . <em>IEEE Pacific Rim Conference on Communications, Computers and Signal Processing (PacRim)</em> 10.1109/PACRIM.2007.4313167, pages 21-24, Victoria, BC, Aug 2007</li>
-<li style="margin-bottom: 10pt"><a href="http://www.dsn.jhu.edu/~yairamir/Claudiu_thesis.pdf">Performance and Functionality in Overlay Networks.</a>
- Claudiu Danilov. Thesis, The Johns Hopkins University, Sep 2004</li>
-<li style="margin-bottom: 10pt"><a href="http://nms.lcs.mit.edu/papers/hiro-thesis.pdf">Differential Bandwidth Allocation with Multiplexed TCP Connections.</a>
- Hiroyoshi Iwashima. Thesis, MIT, Aug 2003</li>
-</ul>
-<h2>Security</h2>
-<ul>
-<li style="margin-bottom: 10pt"><a href="http://www.sigcomm.org/sigcomm2007/lsad/fine-grained.pdf">Fine-Grained Capabilities for Flooding DDoS Defense Using Client Reputations .</a>
- Maitreya Natu, Jelena Mirkovic ., 2007</li>
-<li style="margin-bottom: 10pt">Exposing and Eliminating Vulnerabilities to Denial of Service Attacks in Secure Gossip-Based Multicast.
- Gal Badishi, Idit Keidar, Amir Sasson. <em>IEEE Transactions on Dependable and Secure Computing </em>, Vol. vo. III, pages 45-61, Jan 2006</li>
-<li style="margin-bottom: 10pt"><a href="http://www.navigators.di.fc.ul.pt/archive/veronese07finiteMemory.pdf">On the Effects of Finite Memory on Intrusion-Tolerant Systems.</a>
- Giuliana Santos Veronese, Miguel Correia, Lau Cheuk Lung, Paulo Verissimo. <em>PRDC 2007</em>, pages 401-404, 2007</li>
-<li style="margin-bottom: 10pt"><a href="http://www.navigators.di.fc.ul.pt/archive/moniz07wireless.pdf">Intrusion Tolerance in Wireless Environments: An Experimental Evaluation.</a>
- Henrique Moniz, Nuno Ferreira Neves, Miguel Correia, Antonio Casimiro, Paulo Ver?ssimo. <em>Proceedings of the 13th Pacific Rim International Symposium on Dependable Computing (PRDC 2007)</em>, pages 357-364, Melbourne, Australia, Dec 2007</li>
-<li style="margin-bottom: 10pt"><a href="http://portal.acm.org/citation.cfm?id=1179579">Visual Toolkit for Network Security Experiment Specification and Data Analysis.</a>
- L. Li, P. Liu, G. Kesidis. <em>Proceedings of the 3rd International Workshop on Visualization for Computer Security (VizSEC)</em>, pages 7-14, Alexandria, VA, Nov 2006</li>
-<li style="margin-bottom: 10pt"><a href="http://www.cs.cornell.edu/andru/papers/civitas-oakland08.pdf">Civitas: Toward a Secure Voting System.</a>
- Michael R. Clarkson, Stephen Chong, Andrew C. Myers. <em>Proceedings of the 2008 IEEE Symposium on Security and Privacy</em>, May 2008</li>
-<li style="margin-bottom: 10pt"><a href="http://portal.acm.org/citation.cfm?id=1159913.1159948">DDoS Defense by Offense.</a>
- Michael Walfish, Mythili Vutukuru, Hari Balakrishnan, David Karger, and Scott Shenker. <em>Sigcomm</em> ISBN: 1-59593-308-5, pages 303-314, Pisa, Italy, Sep 2006</li>
-<li style="margin-bottom: 10pt"><a href="http://www.usenix.org/event/hotbots07/tech/full_papers/barford/barford.pdf">Toward Botnet Mesocosms.</a>
- Paul Barford, Mike Blodgett. <em>Proceedings of the First Workshop on Hot Topics in Understanding Botnets (HotBots)</em>, Cambridge, MA, Apr 2007</li>
-<li style="margin-bottom: 10pt"><a href="http://www.isi.edu/deter/mtg-jun06/presentations/DETER_WKSHOP-PROCEEDINGS-FINAL20060615.pdf">High Fidelity Denial of Service (DoS) Experimentation.</a>
- Roman Chertov, Sonia Fahmy, Ness B. Shroff . <em>Proceedings of the DETER Community Workshop</em>, Arlington, VA, June  2006</li>
-<li style="margin-bottom: 10pt"><a href="http://ieeexplore.ieee.org/search/srchabstract.jsp?arnumber=1649164&isnumber=34577&punumber=10972&k2dockey=1649164@ieeecnfs&query=%28chertov+%3Cin%3E+metadata%29+%3Cand%3E+%2834577+%3Cin%3E+isnumber%29&pos=0&access=no">Emulation versus Simulation: A Case Study of TCP-Targeted Denial of Service Attacks.</a>
- Roman Chertov, Sonia Fahmy, Ness B. Shroff. <em>Proceedings of the 2nd International Conference on Testbeds and Research Infrastructures for the Development of Networks and Communities (TRIDENTCOM)</em>, Mar 2006</li>
-<li style="margin-bottom: 10pt"><a href="http://www.cs.purdue.edu/homes/fahmy/papers/tomacs.pdf">Fidelity of Network Simulation and Emulation: A Case Study of TCP-Targeted Denial of Service Attacks.</a>
- Roman Chertov, Sonia Fahmy, Ness B. Shroff. <em>ACM Transactions on Modeling and Computer Simulation (TOMACS)</em>, TB</li>
-<li style="margin-bottom: 10pt"><a href="http://ieeexplore.ieee.org/xpls/abs_all.jsp?arnumber=1629453">Towards a framework for worm-defense evaluation.</a>
- Senthilkumar G. Cheetancheri, Denys L. Ma, Karl N. Levitt, Todd L. Heberlein. <em>Proceedings of the 25th IEEE International Performance, Computing, and Communications Conference (IPCCC)</em> 10.1109/.2006.1629453, pages 559-565, Apr 2006</li>
-<li style="margin-bottom: 10pt"><a href="http://doi.acm.org/10.1145/1162666.1162668">A Distributed Host-based Worm Detection System.</a>
- Senthilkumar G. Cheetancheri, John Mark Agosta, Denver H. Dash, Karl N. Levitt, Jeff Rowe, Eve M. Schooler. <em>Proceedings of the 2006 SIGCOMM Workshop on Large-Scale Attack Defense (LSAD)</em>, pages 107-113, Pisa, Italy, Sep 2006</li>
-<li style="margin-bottom: 10pt"><a href="http://www.arl.wustl.edu/~todd/sproull_iwan_05.pdf">Extensible Network Configuration and Communication Framework.</a>
- Todd Sproull, John Lockwood. <em>Proceedings of the 7th Annual International Working Conference on Active and Programmable Networks (IWAN)</em>, Nov 2005</li>
-<li style="margin-bottom: 10pt"><a href="http://ieeexplore.ieee.org/iel5/4271739/4271740/04271755.pdf?tp=&isnumber=&arnumber=4271755">A Comparison of SYN Flood Detection Algorithms.</a>
- Matt Beaumont-Gay. <em>Proceedings of the Second International Conference on Internet Monitoring and Protection (ICIMP)</em> 10.1109/ICIMP.2007.1, Jul 2007</li>
-<li style="margin-bottom: 10pt"><a href="http://www.eecis.udel.edu/~sunshine/publications/udel_tech_report_2005-02.pdf">Distributed Defense Against DDoS Attacks.</a>
- Jelena Mirkovic, Max Robinson, Peter Reiher, George Oikonomou. Technical Report CIS-TR-2005-02, Feb 2005</li>
-<li style="margin-bottom: 10pt"><a href="http://ecommons.library.cornell.edu/bitstream/1813/7875/3/civitas-tr.pdf">Civitas: A Secure Voting System.</a>
- Michael R. Clarkson, Stephen Chong, Andrew C. Myers. Technical Report TR-2007-2081, May 2007</li>
-<li style="margin-bottom: 10pt"><a href="http://sysnet.ucsd.edu/~amizrak/papers/dissertation07/Mizrak_dissertation.pdf">Detecting Malicious Routers.</a>
- Alper Tugay M?zrak. Thesis, University of California, San Diego, 2007</li>
-<li style="margin-bottom: 10pt"><a href="http://www.caip.rutgers.edu/TASSL/Thesis/Guangsen-phdthesis.pdf">Decentralized Information Sharing for Detection and Protection against Network Attacks.</a>
- Guangsen Zhang. Thesis, Rutgers University, 2006</li>
-</ul>
-<h2>Simulation</h2>
-<ul>
-<li style="margin-bottom: 10pt"><a href="http://doi.acm.org/10.1145/1190095.1190131">A Realistic Simulation of Internet-Scale Events.</a>
- Songjie Wei, Jelena Mirkovic. <em>Proceedings of the 1st International Conference on Performance Evaluation Methodologies and Tools (VALUETOOLS)</em>, Pisa, Italy, Oct 2006</li>
-</ul>
-<h2>State Machines</h2>
-<ul>
-<li style="margin-bottom: 10pt"><a href="http://www.usenix.org/events/hotdep06/tech/prelim_papers/slember/slember.pdf">Static Analysis Meets Distributed Fault-Tolerance: Enabling State-Machine Replication with Nondeterminism.</a>
- Joseph G. Slember, Priya Narasimhan. <em>Proceedings of the Second Workshop on Hot Topics in System Dependability (HotDep '06)</em>, Nov 2006</li>
-</ul>
-<h2>Virtualization</h2>
-<ul>
-<li style="margin-bottom: 10pt"><a href="http://research.microsoft.com/asia/dload_files/group/system/2007/stein-hpcvirt07.pdf">Can a file system virtualize processors?</a>
- Lex Stein, David Holland, Margo Seltzer, Zheng Zhang., 2007</li>
-<li style="margin-bottom: 10pt"><a href="http://emist.ist.psu.edu/psu_itc19.pdf">Emulation of “single-packet” UDP Scanning Worms in Large Enterprises.</a>
- Lunquan Li, Soranun Jiwasurat, Peng Liu, George Kesidis. <em>Proceedings of the 19th International Teletraffic Congress (ITC19)</em>, Beijing, China, Aug 2005</li>
-<li style="margin-bottom: 10pt"><a href="http://www.cs.washington.edu/homes/roxana/acads/projects/vmnfs/networkvm06.pdf">Study of Virtual Machine Performance over Network File Systems.</a>
- Roxana Geambasu, John P John., Jun 2006</li>
-</ul>
-<h2>Vision & Architecture</h2>
-<ul>
-<li style="margin-bottom: 10pt"><a href="http://www.cs.utexas.edu/users/dahlin/papers/ssr-preprint.pdf">Safe Speculative Replication.</a>
- Mike Dahlin, Arun Iyengar, Ravi Kokku, Amol Nayate, Arun Venkataramani, Praveen Yalagandula., 2007</li>
-<li style="margin-bottom: 10pt"><a href="http://doi.acm.org/10.1145/1159913.1159916">In VINI Veritas: Realistic and Controlled Network Experimentation.</a>
- Andy Bavier, Nick Feamster, Mark Huang, Larry Peterson, Jennifer Rexford. <em>Proceedings of the 2006 Conference on Applications, Technologies, Architectures, and Protocols for Computer Communications (SIGCOMM)</em>, pages 3-14, Pisa, Italy, Sep 2006</li>
-<li style="margin-bottom: 10pt"><a href="http://www.cs.utah.edu/flux/papers/netbed-osdi02-base.html">An Integrated Experimental Environment for Distributed Systems and Networks.</a>
- B. White, J. Lepreau, L. Stoller, R. Ricci, S. Guruprasad, M. Newbold, M. Hibler, C. Barb, A. Joglekar. <em>Proceedings of the 5th Symposium on Operating System Design and Implementation (OSDI 2002)</em>, Dec 2002</li>
-<li style="margin-bottom: 10pt"><a href="http://portal.acm.org/citation.cfm?id=1142473.1142485">Declarative Networking: Language, Execution and Optimization.</a>
- Boon Thau Loo, Tyson Condie, Minos Garofalakis, David E. Gay, Joseph M. Hellerstein, Petros Maniatis, Raghu Ramakrishnan, Timothy Roscoe, Ion Stoica. <em>International Conference on Management of Data</em>, pages 97-108, 2006</li>
-<li style="margin-bottom: 10pt"><a href="http://www.cs.utah.edu/flux/papers/workbench-nsdi07-base.html">An Experimentation Workbench for Replayable Networking Research.</a>
- Eric Eide, Leigh Stoller, Jay Lepreau. <em>Proceedings of the Fourth USENIX Symposium on Networked Systems Design and Implementation (NSDI 2007)</em>, Apr 2007</li>
-<li style="margin-bottom: 10pt"><a href="http://doi.acm.org/10.1145/944759.944766">BANANAS: An Evolutionary Framework for Explicit and Multipath Routing in the Internet.</a>
- H. Tahilramani Kaur, S. Kalyanaraman, A. Weiss, S. Kanwar, A. Gandhi. <em>Proceedings of the ACM SIGCOMM Workshop on Future Directions in Network Architecture (FDNA)</em>, pages 277-288, Karlsruhe, Germany, Aug 2003</li>
-<li style="margin-bottom: 10pt"><a href="http://www.usenix.org/events/osdi2000/yuvahdat.html">Design and Evaluation of a Continuous Consistency Model for Replicated Services.</a>
- Haifeng Yu, Amin Vahdat. <em>OSDI '00</em>, pages 305-318, San Diego, CA, Oct 2000</li>
-<li style="margin-bottom: 10pt"><a href="http://www.usenix.org/events/osdi04/tech/full_papers/gunawi/gunawi.pdf">Deploying Safe User-Level Network Services with icTCP.</a>
- Haryadi S. Gunawi, Andrea C. Arpaci-Dusseau, Remzi H. Arpaci-Dusseau. <em>OSDI '04</em>, 2004</li>
-<li style="margin-bottom: 10pt"><a href="http://www.usenix.org/events/nsdi07/tech/yan.html">Tesseract: A 4D Network Control Plane.</a>
- Hong Yan, David A. Maltz, T.S. Eugene Ng, Hemant Gogineni, Hui Zhang, Zheng Cai. <em>NSDI '07</em>, pages 369–382, Cambridge, MA, April 2007</li>
-<li style="margin-bottom: 10pt"><a href="http://www.usenix.org/event/deter07/tech/full_papers/sklower/sklower.pdf">Very Large Scale Cooperative Experiments in Emulab-Derived Systems.</a>
- Keith Sklower, Anthony D. Joseph . <em>DETER Community Workshop on Cyber Security Experimentation and Test 2007</em>, Boston, MA, Aug 2007</li>
-<li style="margin-bottom: 10pt"><a href="http://www.usenix.org/events/nsdi06/tech/tolia.html">An Architecture for Internet Data Transfer.</a>
- Niraj Tolia, Michael Kaminsky, David G. Andersen, Swapnil Patil. <em>NSDI '06</em>, pages 253–266, San Jose, CA, May 2006</li>
-<li style="margin-bottom: 10pt"><a href="http://www.cs.utah.edu/formal_verification/papers/cav02paper.pdf">Shared memory consistency protocol verification against weak memory models: refinement via model-checking.</a>
- Prosenjit Chatterjee, Hemanthkumar Sivaraj, Ganesh Gopalakrishnan. <em>Proceedings of the 14th International Conference on Computer Aided Verification (CAV 2002)</em>, July 2002</li>
-<li style="margin-bottom: 10pt"><a href="http://www.cs.utah.edu/flux/papers/flexlab-nsdi07-base.html">The Flexlab Approach to Realistic Evaluation of Networked Systems.</a>
- Robert Ricci, Jonathon Duerig, Pramod Sanaga, Daniel Gebhardt, Mike Hibler, Kevin Atkinson, Junxing Zhang, Sneha Kasera, Jay Lepreau. <em>Proceedings of the Fourth USENIX Symposium on Networked Systems Design and Implementation (NSDI 2007)</em>, Apr 2007</li>
-<li style="margin-bottom: 10pt"><a href="http://reports-archive.adm.cs.cmu.edu/anon/anon/usr0/ftp/2005/CMU-CS-05-112.pdf">A Distributed Architecture for Interactive Multiplayer Games.</a>
- Ashwin R. Bharambe, Jeff Pang, Srinivasan Seshan. Technical Report CMU-CS-05-112, Jan 2005</li>
-<li style="margin-bottom: 10pt"><a href="http://ftp.cs.umd.edu/~nspring/papers/PoMo_Proposal.pdf">Postmodern Internetwork Architecture.</a>
- Bobby Bhattacharjee, Ken Calvert, Jim Griffioen, Neil Spring, James Sterbenz. Technical Report ITTC-FY2006-TR-45030-01, Feb 2006</li>
-<li style="margin-bottom: 10pt"><a href="https://www.cylab.cmu.edu/files/cmucylab06005.pdf">FastPass: Providing First-Packet Delivery.</a>
- Dan Wendlandt, David G. Andersen, Adrian Perrig. Technical Report CMU-CyLab-06-005, Mar 2006</li>
-<li style="margin-bottom: 10pt"><a href="http://reports-archive.adm.cs.cmu.edu/anon/anon/home/ftp/2006/CMU-CS-06-114.pdf">OverDoSe: A Generic DDoS Protection Service Using and Overlay Network.</a>
- Elaine Shi, Ion Stoica, David Andersen, Adrian Perrig. Technical Report CMU-CS-06-114, Feb 2006</li>
-<li style="margin-bottom: 10pt"><a href="http://www.ecsl.cs.sunysb.edu/tr/TR219.pdf">A Networked Robot System for Wireless Network Emulation.</a>
- Tzi-cker Chiueh, Rupa Krishnan, Pradipta De, Jui-Hao Chiang. Technical Report TR-219, Oct 2007</li>
-<li style="margin-bottom: 10pt"><a href="http://reports-archive.adm.cs.cmu.edu/anon/2005/CMU-CS-05-133.pdf">Enabling Live Internet Broadcasting Using an Application Endpoint Architecture.</a>
- Yang-hua Chu. Technical Report CMU-CS-05-133, May 2005</li>
-</ul>
-<h2>Wide-area Experiments</h2>
-<ul>
-<li style="margin-bottom: 10pt"><a href="http://www.usenix.org/events/nsdi06/tech/full_papers/bharambe/bharambe.pdf">Colyseus: A Distributed Architecture for Online Multiplayer Games.</a>
- Ashwin Bharambe, Jeffrey Pang, Srinivasan Seshan. <em>NSDI 2006</em>, pages 155-168, San Jose, CA, May 2006</li>
-<li style="margin-bottom: 10pt"><a href="http://portal.acm.org/citation.cfm?id=502038">The Costs and Limits of Availability for Replicated Services.</a>
- Haifeng Yu, Amin Vahdat. <em>SOSP '01</em>, pages 29-42, Banff, Canada, Oct 2001</li>
-<li style="margin-bottom: 10pt"><a href="http://www.usenix.org/events/nsdi06/tech/nath.html">Subtleties in Tolerating Correlated Failures in Wide-area Storage Systems.</a>
- Suman Nath, Haifeng Yu, Phillip B. Gibbons, Srinivasan Seshan. <em>Proceedings of the Third Symposium on Networked Systems Design and Implementation (NSDI 2006</em>, May 2006</li>
-<li style="margin-bottom: 10pt"><a href="http://www.emulab.net/doc/docwrapper.php3?docname=expubs.html">"Buddy-Cache, High Performance Object Storage for Collaborative Strong Consistency Applications in a WAN".</a>
- Magnus Bjornsson and Liuba Shrira. <em>ACM Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA 2002)</em>, Nov 2002</li>
-<li style="margin-bottom: 10pt"><a href="http://www.cs.utah.edu/~sai/papers/uucs-04-017.pdf">Middleware Support for Locality-aware Wide area Replication.</a>
- Sai Susarla, John Carter. Technical Report UUCS-04-017, Nov 2004</li>
-</ul>
-<h2>Wireless</h2>
-<ul>
-<li style="margin-bottom: 10pt"><a href="http://www.ieeexplore.ieee.org/xpls/abs_all.jsp?isnumber=4444646&arnumber=4444710&count=92&index=63">Efficient Packet Error Rate Estimation in Wireless Networks.</a>
- Bo Han, Seungjoon Lee. <em>IEEE/Create-Net TridentCom</em>, May 2007</li>
-<li style="margin-bottom: 10pt"><a href="http://www.ece.utah.edu/~gaines/urop/gnu.html">Entropic Analysis Of Spectrum Sensing For Cognitive Radio.</a>
- J. Gaines and N. Patwari. <em>University of Utah Undergraduate Research</em>, Apr 2008</li>
-<li style="margin-bottom: 10pt"><a href="https://drum.umd.edu/dspace/bitstream/1903/3867/1/umi-umd-3714.pdf">WISE Abstraction Framework For Wireless Networks.</a>
- Seungjoon Lee. Thesis, University of Maryland, 2006</li>
-</html>
\ No newline at end of file
+<p>
+Moved to <a href="http://www.emulab.net/expubs.php">http://www.emulab.net/expubs.php</a>.
+</p>
+<p>
+Please update your bookmarks.
+</p>
+</html>
diff --git a/www/doc/users.html b/www/doc/users.html
index e1234557bf4098a91e4cb2fdc987f1a2ab5ddc32..4d526e80ce801e76868cd8e91ec7b32f0140a65b 100644
--- a/www/doc/users.html
+++ b/www/doc/users.html
@@ -19,7 +19,7 @@
 <br>
 <li>
 <font size="+1">
-<a href="docwrapper.php3?docname=expubs.html"
+<a href="../expubs.php"
 >Published papers that have used Emulab</a>
 </font>
 </li>
@@ -30,4 +30,5 @@
 >Classes that have used Emulab</a>
 </font>
 </li>
-</ul>
\ No newline at end of file
+</ul>
+
diff --git a/www/expubs.php b/www/expubs.php
new file mode 100644
index 0000000000000000000000000000000000000000..ff189826ab2e6ae34eb54c2f09688b8a417aa27c
--- /dev/null
+++ b/www/expubs.php
@@ -0,0 +1,80 @@
+<?php
+include("pub_defs.php");
+
+$optargs = OptionalPageArguments("printable",  PAGEARG_BOOLEAN);
+
+if (!isset($printable))
+    $printable = 0;
+
+$this_user = null;
+$isadmin = null;
+
+if (!$printable && LoginStatus()) {
+    if (!$HTTPS) {
+	# redirect to secure site, otherwise CheckLoginOrDie will die
+	$new_url = "https://$WWWHOST$REQUEST_URI";
+	header("Location: $new_url");
+	PAGEHEADER("Bibliography");
+	echo "<p>Please use $new_url when logged in.</p>";
+	PAGEFOOTER();
+	return;
+    } else {
+	$this_user = CheckLoginOrDie();
+	$isadmin   = ISADMIN();
+    }
+}
+
+#
+# Standard Testbed Header
+#
+if ($printable) {
+    #
+    # Need to spit out some header stuff.
+    #
+    echo "<html>
+          <head>
+  	  <link rel='stylesheet' href='../tbstyle-plain.css' type='text/css'>
+          </head>
+          <body>\n";
+} else {
+    PAGEHEADER("Bibliography");
+    echo "<b><a href=$REQUEST_URI?printable=1>
+          Printable version of this document</a></b><br>\n";
+}
+?>
+
+<p>
+This page summarizes publications about Emulab as well as publications
+that used Emulab to validate research they present.  For additional publications
+see <a href="http://www.isi.edu/deter/publications.php"
+>Publications Made Possible By DETERlab</a>.
+<p>
+
+If you have a publications that used Utah's Emulab to validate your
+research please use <a href="submitpub.php">this form</a> to add it.
+For other updates or corrections please email 
+<a href="mailto:papers@emulab.net">papers@emulab.net</a>.
+
+</p>
+
+<?php
+
+$query_result = GetPubs("`visible`");
+echo MakeBibList($this_user, $isadmin, $query_result);
+
+if ($isadmin) {
+    echo '<p><a href="deleted_pubs.php">Show Deleted Publications</a></p>';
+}
+
+#
+# Standard Testbed Footer
+# 
+if ($printable) {
+    echo "</body>
+          </html>\n";
+}
+else {
+    PAGEFOOTER();
+}
+?>
+
diff --git a/www/form_defs.php b/www/form_defs.php
index 637ec7950ac9ce0a51849955de9644e0b6d86662..ccb11c5d87bec49b2d341fc15ed86d36099d2e4d 100644
--- a/www/form_defs.php
+++ b/www/form_defs.php
@@ -98,12 +98,11 @@ function FormRenderTextField($name, $attrs)
 function FormRenderCheckBox($name, $attrs)
 {
     $html = "<input type=checkbox name=\"formfields[$name]\" ";
-    if (isset($attrs['#return_value'])) {
-	$html .= "value=\"" . $attrs['#return_value'] . "\" ";
-	if (isset($attrs['#value']) &&
-	    $attrs['#value'] == $attrs['#return_value']) {
-	    $html .= "checked ";
-	}
+    $return_value = isset($attrs['#return_value']) ? $attrs['#return_value'] : 1;
+    $html .= "value=\"" . $return_value . "\" ";
+    if (isset($attrs['#value']) &&
+	$attrs['#value'] == $return_value) {
+	$html .= "checked ";
     }
     if (isset($attrs['#class'])) {
 	$html .= "class=\"" . $attrs['#class'] . "\" ";
@@ -174,14 +173,20 @@ function FormRenderSelect($name, $attrs)
     }
     $html .= ">\n";
 
-    if (isset($attrs['#default']))
-	$default = $attrs['#default'];
-    else
-	$default = "Please Select";
-    $html .= "<option value=''>$default &nbsp</option>\n";
+    if (!@$attrs['#no_default']) {
+	if (isset($attrs['#default']))
+	    $default = $attrs['#default'];
+	else
+	    $default = "Please Select";
+	$html .= "<option value=''>$default &nbsp</option>\n";
+    }
 
     if (isset($attrs['#options'])) {
-	while (list ($selectvalue, $selectlabel) = each ($attrs['#options'])) {
+        $options = $attrs['#options'];
+        if (isset($attrs['#value']) && $attrs['#value'] != ''  
+            && !isset($options[$attrs['#value']]))
+  	    $options[$attrs['#value']] = $attrs['#value'];
+	foreach ($options as $selectvalue => $selectlabel) {
 	    $selected = "";	    
 	    if (isset($attrs['#value']) && $attrs['#value'] == $selectvalue) {
 		$selected = "selected";
@@ -217,6 +222,32 @@ function FormRenderFile($name, $attrs)
     return $html;
 }
 
+function FormRenderTextArea($name, $attrs)
+{
+    $html = "<textarea name=\"formfields[$name]\" ";
+    if (isset($attrs['#javascript'])) {
+	$html .= $attrs['#javascript'] . " ";
+    }
+    if (isset($attrs['#class'])) {
+	$html .= "class=\"" . $attrs['#class'] . "\" ";
+    }
+    else {
+	$html .= "class=\"form-text\" ";
+    }
+    if (isset($attrs['#cols'])) {
+	$html .= "cols=" . $attrs['#cols'] . " ";
+    }
+    if (isset($attrs['#rows'])) {
+	$html .= "rows=" . $attrs['#rows'] . " ";
+    }
+    $html .= ">";
+    if (isset($attrs['#value'])) {
+	$html .= htmlspecialchars($attrs['#value']);
+    }
+    $html .= "</textarea>\n";
+    return $html;
+}
+
 function FormRenderSubmit($name, $attrs)
 {
     $html = "";
@@ -295,6 +326,23 @@ function FormRenderList($name, $attributes, $submitted)
     return $html;
 }
 
+# Render a list of elements together, vertically
+function FormRenderVList($name, $attributes, $submitted)
+{
+    $html = "";
+    
+    while (list ($subname, $subattrs) = each ($attributes['#elements'])) {
+	if ($submitted && array_key_exists($subname, $submitted)) {
+	    $subattrs['#value'] = $submitted[$subname];
+	}
+	if (isset($subattrs['#label']))
+	    $html .= $subattrs['#label'] . ": ";
+	$html .= FormRenderElement($subname, $subattrs, $submitted);
+	$html .= "<br>";
+    }
+    return $html;
+}
+
 function FormRenderElement($name, $attributes, $submitted)
 {
     $field_html = null;
@@ -352,6 +400,15 @@ function FormRenderElement($name, $attributes, $submitted)
     case "list":
 	$field_html = FormRenderList($name, $attributes, $submitted);
 	break;
+    case "vlist":
+	$field_html = FormRenderVList($name, $attributes, $submitted);
+	break;
+    case "textarea":
+	$field_html = FormRenderTextArea($name, $attributes, $submitted);
+	break;
+    case "display":
+	$field_html = isset($submitted[$name]) ? $submitted[$name] : $attributes['#value'];
+	break;
     }
     return $field_html;
 }
@@ -370,7 +427,7 @@ function FormRenderElements($fields, $submitted)
 		continue;
 	    }
 	    $cols  = "";
-	    if ($attributes['#type'] == "table")
+	    if ($attributes['#type'] == "table" || $attributes['#type'] == "textarea")
 		$cols = "colspan=2";
 
 	    $mouseover = "";
@@ -402,6 +459,7 @@ function FormRenderElements($fields, $submitted)
 		
 	    $html .= "<tr>";
 	    if ($attributes['#type'] != "submit" &&
+                isset($attributes['#label']) &&
 		!isset($attributes['#colspan'])) {
 		$html .= "<td align=left $mouseover $cols>";
 
@@ -420,8 +478,9 @@ function FormRenderElements($fields, $submitted)
 			$attributes['#description'] . ")";
 		if ($attributes['#type'] == "table") {
 		    $html .= "$field_html</td>";
-		}
-		else {
+		} else if ($attributes['#type'] == "textarea") {
+	 	    $html .= "<br>$field_html</td>";
+                } else {
 		    $html .= "</td>";
 		    $html .= "<td align=left>$field_html</td>";
 		}
@@ -513,12 +572,22 @@ function FormRender($attributes, $errors, $fields, $submitted = null)
     echo "$html\n";
 }
 
-function FormValidateElement($name, &$errors, $attributes, &$submitted)
+function CombineLabels($parent, $attributes) {
+    $res = '';
+    $label = @$attributes['#label'];
+    $res .= $parent;
+    if ($parent != '' && $label != '') $res .= ', ';
+    $res .= $label;
+    return $res;
+}
+
+function FormValidateElement($name, &$errors, $attributes, &$submitted, $parent_label)
 {
+    $error_label = CombineLabels($parent_label, $attributes);
     # Check for required fields not filled out
     if (isset($attributes['#required']) && $attributes['#required'] &&
 	!(isset($submitted[$name]) && $submitted[$name] != "")) {
-	$errors[$attributes['#label']] = "Missing required value";
+	$errors[$error_label] = "Missing required value";
     }
     elseif (isset($attributes['#checkslot']) &&
 	    isset($submitted[$name]) && $submitted[$name] != "") {
@@ -538,13 +607,13 @@ function FormValidateElement($name, &$errors, $attributes, &$submitted)
 				$matches[1], $matches[2],
 				TBDB_CHECKDBSLOT_WARN|
 				TBDB_CHECKDBSLOT_ERROR)) {
-		$errors[$attributes['#label']] = TBFieldErrorString();
+		$errors[$error_label] = TBFieldErrorString();
 	    }
 	}
 	elseif (substr($check, 0, 1) == "/") {
 	    # Regular expression.
 	    if (!preg_match($check, $submitted[$name])) {
-		$errors[$attributes['#label']] = "Illegal characters";
+		$errors[$error_label] = "Illegal characters";
 	    }
 	}
 	else {
@@ -555,10 +624,11 @@ function FormValidateElement($name, &$errors, $attributes, &$submitted)
 
 function FormValidateFileUpload($name, &$errors, $attributes)
 {
+    $error_label = CombineLabels($parent_label, $attributes);
     # Check for required fields not filled out
     if (isset($attributes['#required']) && $attributes['#required'] &&
 	!(isset($_FILES[$name]['name']) && $_FILES[$name]['size'] != 0)) {
-	$errors[$attributes['#label']] = "Missing required value";
+	$errors[$error_label] = "Missing required value";
     }
     elseif (isset($attributes['#checkslot'])) {
 	$check = $attributes['#checkslot'];
@@ -572,7 +642,7 @@ function FormValidateFileUpload($name, &$errors, $attributes)
     }
 }
 
-function FormValidate($form, &$errors, $fields, &$submitted)
+function FormValidate($form, &$errors, $fields, &$submitted, $parent_label = '') 
 {
     while (list ($name, $attributes) = each ($fields)) {
 	switch ($attributes['#type']) {
@@ -583,29 +653,104 @@ function FormValidate($form, &$errors, $fields, &$submitted)
 	case "checkbox":
 	case "radio":
 	case "select":
-	    FormValidateElement($name, $errors, $attributes, $submitted);
+        case "textarea":
+	    FormValidateElement($name, $errors, $attributes, $submitted, $parent_label);
 	    break;
 	case "checkboxes":
 	    while (list ($subname, $subattrs) = each ($attributes['#boxes'])) {
-		FormValidateElement($subname, $errors, $subattrs, $submitted);
+		FormValidateElement($subname, $errors, $subattrs, $submitted,
+		                    CombineLabels($parent_label, $attributes));
 	    }
 	    break;
 	case "table":
-	    FormValidate($form, $errors, $attributes['#fields'], $submitted);
+	    FormValidate($form, $errors, $attributes['#fields'], $submitted,
+                         CombineLabels($parent_label, $attributes));
 	    break;
 	case "list":
+        case "vlist":
 	    while (list ($subname, $subattrs) =
 		   each ($attributes['#elements'])) {
-		FormValidateElement($subname, $errors, $subattrs, $submitted);
+		FormValidateElement($subname, $errors, $subattrs, $submitted,
+                                    CombineLabels($parent_label, $attributes));
 	    }
 	    break;
 	case "file":
-	    FormValidateFileUpload($name, $errors, $attributes);
+	    FormValidateFileUpload($name, $errors, $attributes, $parent_label);
 	    break;
+        case "display":
+            break;
 	default:
 	    $errors[$name] = "Invalid slot type: " . $attributes['#type'];
 	    break;
 	}
     }
 }
+
+function FormTextDumpElement($name, $attributes, $values, $label_width, $parent_label)
+{
+    $res = '';
+    if (!isset($values[$name]) || $values[$name] == '' || @$attributes['#nodump'])
+        return $res;
+    $label = CombineLabels($parent_label, $attributes);
+    $type = $attributes['#type'];
+    $value = $values[$name];
+    if ($type == 'checkbox')
+        $value = $values[$name] ? 'true' : 'false';
+    if ($type == 'select' && isset($attributes['#options'][$value]))
+        $value = $attributes['#options'][$value];
+    if ($type == 'textarea') {
+      $res .= "$label: \n";
+      $res .= $value;
+    } else {
+      $res .= sprintf("%-${label_width}s %s\n", "$label:", $value);
+    }
+    return $res;
+}
+
+function FormTextDump($form, $fields, $values, $label_width = 20, $parent_label = '') 
+{
+    $res = '';
+    while (list ($name, $attributes) = each ($fields)) {
+	switch ($attributes['#type']) {
+	case "hidden":
+	case "textfield":
+	case "password":
+	case "submit":
+	case "checkbox":
+	case "radio":
+	case "select":
+	case "textarea":
+        case "display":
+	    $res .= FormTextDumpElement($name, $attributes, $values, 
+                                        $label_width, $parent_label);
+	    break;
+	case "checkboxes":
+	    while (list ($subname, $subattrs) = each ($attributes['#boxes'])) {
+		FormTextDumpElement($subname, $subattrs, $values, $label_width,
+		                    CombineLabels($parent_label, $attributes));
+	    }
+	    break;
+	case "table":
+	    $res .= FormTextDump($form, $attributes['#fields'], $values, $label_width,
+                                 CombineLabels($parent_label, $attributes));
+	    break;
+	case "list":
+	case "vlist":
+	    while (list ($subname, $subattrs) =
+		   each ($attributes['#elements'])) {
+		$res .= FormTextDumpElement($subname, $subattrs, $values, $label_width,
+                                            CombineLabels($parent_label, $attributes));
+	    }
+	    break;
+	case "file":
+	    # Skip for now
+	    break;
+	default:
+	    user_error("Invalid slot type \"". $attributes['#type'] ."\" in FormTextDump",
+                       E_USER_NOTICE);
+	    break;
+	}
+    }
+    return $res;
+}
 ?>
diff --git a/www/index.php3 b/www/index.php3
index 3e9e7bb2056d6f674715c8380a0d36fd1a035880..a46bed6b36d596bf350b3e25f75880be0014bd53 100755
--- a/www/index.php3
+++ b/www/index.php3
@@ -74,7 +74,7 @@ if ($message != "") {
         <a href="http://www.emulab.net/docwrapper.php3?docname=otheremulabs.html">two
         dozen sites</a> around the world, ranging from testbeds with a handful
         of nodes up to testbeds with hundreds of nodes.
-    Emulab is <a href="http://www.emulab.net/doc/docwrapper.php3?docname=expubs.html">widely used</a>
+    Emulab is <a href="http://www.emulab.net/expubs.php">widely used</a>
         by computer science researchers in the fields of networking and
         distributed systems.
     It is also used to <a href="http://www.emulab.net/doc/docwrapper.php3?docname=exclasses.html">teach
diff --git a/www/menu.php3 b/www/menu.php3
index b247b0aad2b4f2d828b9da97c2dcde46d58bda4a..9c8f81949fefad59a70cb1d72bc8efdad1469cf5 100644
--- a/www/menu.php3
+++ b/www/menu.php3
@@ -1027,6 +1027,7 @@ function PAGEHEADER($title, $view = NULL, $extra_headers = NULL,
 	$login_user   = null;
     }
     
+    header('Content-type: text/html; charset=utf-8');
     header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
     
     if (1) {
diff --git a/www/policies.html b/www/policies.html
index 133db649c8d061d2490611c52daae76ab0b60d9b..a248b9a7760d764d5aebfeb8a8b2b6a4637090af 100644
--- a/www/policies.html
+++ b/www/policies.html
@@ -55,7 +55,7 @@ Many development-oriented commercial experiments and evaluations will
 be allowed, but with lower priority.
 </p>
 
-<h3>Reporting</h3>
+<a name="reporting"></a><h3>Reporting</h3>
 <p>
 In order to assess the testbed's impact and report to our sponsors, we
 simply require notice of all publications or patents to which the testbed
diff --git a/www/pub_defs.php b/www/pub_defs.php
new file mode 100644
index 0000000000000000000000000000000000000000..3ca93408e1a5aced407b6c55dec73cee895b7a2e
--- /dev/null
+++ b/www/pub_defs.php
@@ -0,0 +1,101 @@
+<?php
+
+include_once("defs.php3");
+
+function MayEditPub($user, $isadmin, $row) {
+    global $TBDB_TRUST_LOCALROOT;
+    if ($isadmin) 
+        return true;
+    if (!$user)
+	return false;
+    $uid_idx = $user->uid_idx();
+    if ($uid_idx == $row['owner'] && $row['editable_owner'])
+        return true;
+    $pid = $row['project'];
+    if ($pid == '') 
+        return false;
+    $proj = Project::LookupByPid($pid);
+    return TBMinTrust($proj->UserTrust($user), $TBDB_TRUST_LOCALROOT);
+}
+
+function MakeBib($user, $isadmin, $r) {
+    $res = '';
+    if ($r['url'] != '')
+        $res .= "<a href=\"" . $r['url'] . "\">";
+    $res .= $r['title'];
+    #if row[3][-1] != '.' and row[3][-1] != '?' and row[3][-1] != '!':
+    $res .= ".";
+    if ($r['url'] != '')
+        $res .= "</a>";
+    $res .= "\n";
+    $res .= ' ' . $r['authors'];
+    $res .= '.';
+    $type = $r['type'];
+    if ($type == "article") {
+        $res .= ' <em>' . $r['conf'] . '</em>';
+        if ($r['volume'] != '')
+            $res .= ', Vol. ' . $r['volume'];
+        if ($r['number'] != '') {
+            if ($r['volume'] != '')
+                $res .= ' No.';
+            $res .= ' ' . $r['number'];
+        }
+        if ($r['pages'] != '')
+            $res .= ', pages ' . $r['pages'];
+        if ($r['where'] != '')
+            $res .= ', ' . $r['where'];
+    # if Tech report
+    } else if ($type == 'techreport') {
+        $res .= ' Technical Report '.  $r['number'];
+        # Affiliation here, but can't for techreports because of our data
+    # if Thesis
+    } else if ($type == 'thesis' || $type == 'ms thesis' || 
+               $type = 'phd thesis' || $type = 'bs thesis') {
+        $res .= ' Thesis';
+        if ($r['where'] != '') 
+            $res .= ', ' . $r['where'];
+    }
+    # Not an Article/Tech report/Thesis? Add nothing special (for now)
+
+    if ($r['month_name'] != '' || $r['year'] != '')
+        $res .= ', ';
+    if ($r['month_name'] != '')
+        $res .= $r['month_name'] . ' ';
+    $res .= $r['year'];
+    if (MayEditPub($user, $isadmin, $r)) {
+#      $res .= " <a href=\"submitpub.php?idx=". $r['idx'] . "\" style=\"background:#ffffaa \">Edit</a>";
+       $res .= " <a href=\"submitpub.php?idx=". $r['idx'] . "\" style=\"background:yellow\">Edit</a>";
+    }
+    return $res;
+}
+
+function MakeBibList($user, $isadmin, $query_result) {
+    $res = '';
+    $number = 1;
+    $category = "\n\t xyz";
+    while ($r = mysql_fetch_array($query_result)) {
+	if ($category != $r['category']) {
+	    if ($category != "\n\t xyz") {
+		$res .= "</ol>\n";
+	    }
+	    $category = $r['category'];
+	    if ($category == '')
+                $category = 'Uncategorized';
+	    $res .= "<h2>" . $category . "</h2>\n";
+	    $res .= "<ol>\n";
+	    $category = $r['category'];
+	}
+	$res .= "<li style=\"margin-bottom: 10pt\" value=$number>";
+	$res .= MakeBib($user, $isadmin, $r);
+	$res .= "</li>\n";
+	$number++;
+    }
+    $res .= "</ol>\n";
+    return $res;
+}
+
+function GetPubs($where_clause, $deleted_clause = '!`deleted`') {
+    return DBQueryFatal("select p.*,m.month_name,if(category = '',1,0) as category_sort  from emulab_pubs as p natural join emulab_pubs_month_map as m where $where_clause and $deleted_clause order by category_sort,category,year desc,month desc,title");
+}
+
+?>
diff --git a/www/showproject.php3 b/www/showproject.php3
index fce19836f0525862341b3622abf96421e1e636cc..78ee80cb6729b8d1bba29c92058d4a6684dda799 100644
--- a/www/showproject.php3
+++ b/www/showproject.php3
@@ -6,6 +6,8 @@
 #
 include("defs.php3");
 include_once("template_defs.php");
+if ($PAPERSUPPORT)
+  include_once("paper_defs.php");
 
 #
 # Note the difference with which this page gets it arguments!
@@ -97,6 +99,17 @@ if ($isadmin) {
     ob_end_clean();
 }
 
+$papers_html = null;
+if ($PAPERSUPPORT) {
+    #
+    # List papers for this project if any
+    #
+    $query_result = GetPapers("`project` = \"$pid\"");
+    if (mysql_num_rows($query_result)) {
+	$papers_html = MakeBibList($this_user, $isadmin, $query_result);
+    }
+}
+
 #
 # Show number of PCS
 #
@@ -182,6 +195,12 @@ if ($isadmin && $stats_html) {
 	      "id=\"li_stats\" onclick=\"Show('stats');\">".
               "Project Stats</a></li>\n";
 }
+if ($papers_html) {
+    echo "<li>
+          <a href=\"#G\" class=topnavbar onfocus=\"this.hideFocus=true;\" ".
+	      "id=\"li_papers\" onclick=\"Show('papers');\">".
+              "Publications</a></li>\n";
+}
 echo "</ul>\n";
 echo "</div>\n";
 echo "<div align=center id=topnavbarbottom>&nbsp</div>\n";
@@ -202,6 +221,9 @@ echo "<div class=invisible id=\"div_profile\">$profile_html</div>";
 if ($isadmin && $stats_html) {
     echo "<div class=invisible id=\"div_stats\">$stats_html</div>";
 }
+if ($papers_html) {
+     echo "<div class=invisible id=\"div_papers\">$papers_html</div>";
+}
 SUBPAGEEND();
 
 #
diff --git a/www/showuser.php3 b/www/showuser.php3
index 52ccd12f21c169f1a8515811801f25859d647095..9e202f06f1b1314169897085aca8bdda589f5277 100644
--- a/www/showuser.php3
+++ b/www/showuser.php3
@@ -8,6 +8,7 @@ include("defs.php3");
 include("showstuff.php3");
 include_once("template_defs.php");
 include_once("table_defs.php");
+include_once("pub_defs.php");
 
 #
 # Only known and logged in users can do this.
@@ -15,6 +16,7 @@ include_once("table_defs.php");
 $this_user = CheckLoginOrDie(CHECKLOGIN_USERSTATUS|
 			     CHECKLOGIN_WEBONLY|CHECKLOGIN_WIKIONLY);
 $uid       = $this_user->uid();
+$uid_idx   = $this_user->uid_idx();
 $isadmin   = ISADMIN();
 
 #
@@ -66,6 +68,7 @@ else {
 $html_groups    = null;
 $html_stats     = null;
 $html_templates = null;
+$html_pubs      = null;
 
 #
 # See if any mailman lists owned by the user. If so we add a menu item.
@@ -291,6 +294,21 @@ if ($isadmin) {
 	"'>Experiment History</a>";
 }
 
+if ($PUBSUPPORT) {
+    #
+    # List pubs owned by user if any
+    #
+    $query_result = GetPubs("`owner` = $uid_idx");
+    if (mysql_num_rows($query_result)) {
+	$html_pubs = MakeBibList($this_user, $isadmin, $query_result);
+	$html_pubs .= '<p><a href="deleted_pubs.php">Show Deleted Publications</a></p>';
+	$html_pubs .= "\n";
+	list ($html_pubs, $button_pubs) =
+	  TableWrapUp($html_pubs, FALSE, FALSE,
+		      "pubs_table", "pubs_button");
+    }
+}
+
 #
 # Special banner message.
 #
@@ -376,6 +394,12 @@ if ($isadmin && $html_stats) {
 	      "id=\"li_stats\" onclick=\"Show('stats');\">".
               "User Stats</a></li>\n";
 }
+if ($html_pubs) {
+    echo "<li>
+          <a href=\"#G\" class=topnavbar onfocus=\"this.hideFocus=true;\" ".
+	      "id=\"li_pubs\" onclick=\"Show('pubs');\">".
+              "Publications</a></li>\n";
+}
 echo "</ul>\n";
 echo "</div>\n";
 echo "<div align=center id=topnavbarbottom>&nbsp</div>\n"; 
@@ -393,6 +417,9 @@ echo $html_profile;
 if ($isadmin && $html_stats) {
     echo $html_stats;
 }
+if ($html_pubs) {
+    echo $html_pubs;
+}
 if ($html_experiments) {
     echo $html_experiments;
 }
diff --git a/www/submitpub.php b/www/submitpub.php
new file mode 100644
index 0000000000000000000000000000000000000000..fb76275015533edff3ac9dd7ee29d20199c7d8c6
--- /dev/null
+++ b/www/submitpub.php
@@ -0,0 +1,537 @@
+<?php
+#
+# EMULAB-COPYRIGHT
+# Copyright (c) 2000-2008 University of Utah and the Flux Group.
+# All rights reserved.
+#
+
+include("pub_defs.php");
+include("form_defs.php");
+
+#
+# Only known and logged in users.
+#
+$this_user = CheckLoginOrDie();
+$uid       = $this_user->uid();
+$uid_idx   = $this_user->uid_idx();
+$isadmin   = ISADMIN();
+
+#
+# Standard Testbed Header
+#
+PAGEHEADER("Submit Publication");
+
+#
+# Verify feature is enabled
+#
+if (!$PUBSUPPORT)
+    USERERROR("Publication support not enabled.");
+
+#
+# Verify page arguments.
+#
+$optargs = OptionalPageArguments("submit",      PAGEARG_STRING,
+			  	 "idx", 	PAGEARG_INTEGER,
+                                 "formfields",  PAGEARG_ARRAY);
+
+$also_required = array();
+$also_required['article'] = array('conf', 'month');
+
+$typelist = array('article', 'phd thesis', 'masters thesis', 'bachelors thesis', 
+                  'techreport', 'unpublished', 'talk', 'software', 'service');
+
+$submit_url = isset($idx) ? CreateURL("submitpub", 'idx', $idx) : CreateURL("submitpub");
+
+#
+# Make Month List
+#
+$monthlist = array();
+$query_result = DBQueryFatal("select * from emulab_pubs_month_map order by display_order");
+while ($r = mysql_fetch_array($query_result)) {
+  $monthlist[$r['month']] = $r['month_name'];
+}
+
+#
+# Make Project List
+#
+$projectlist = array();
+if ($isadmin) {
+  $query_result = DBQueryFatal("select pid from projects order by pid");
+} else {
+  $query_result = DBQueryFatal("select distinct pid ".
+			       "  from group_membership ".
+			       "  where uid='$uid' order by pid");
+}
+while ($r = mysql_fetch_array($query_result)) {
+    array_push($projectlist, $r[0]);   
+}
+array_push($projectlist, "N/A");
+
+#
+# Make Category List
+#
+$categorylist = array();
+$query_result = DBQueryFatal("select distinct category ".
+			   "  from emulab_pubs order by category");
+while ($r = mysql_fetch_array($query_result)) {
+    if ($r[0] != "") 
+	array_push($categorylist, $r[0]);   
+}
+array_push($categorylist, "Other");
+
+$form = array('#action' => $submit_url);
+$default_textfield_size = 60;
+
+#
+# Create Fields List
+#
+function WrapOptionsList($options) {
+    $res = array();
+    foreach ($options as $o) {
+        $res[$o] = $o;
+    }
+    return $res;
+}
+$fields = array();
+if ($isadmin && isset($idx) && !isset($submit)) {
+  $fields['created'] =
+    array('#type' => 'display',
+          '#label' => 'Created');
+  $fields['owner_name'] =
+    array('#type' => 'display',
+          '#label' => 'Owner');
+  $fields['submitted_by_name'] =
+    array('#type' => 'display',
+          '#label' => 'Submitted By');
+  $fields['last_edit'] =
+    array('#type' => 'display',
+          '#label' => 'Last Edit');
+  $fields['last_edit_by_name'] = 
+   array('#type' => 'display',
+         '#label' => 'Last Edit By');
+}
+$fields['type'] =
+    array('#type' => 'select',
+          '#label' => 'Type',
+          '#required' => true,
+	  '#checkslot' => 'default:tinytext',
+          '#options' => WrapOptionsList($typelist));
+$fields['authors'] = 
+    array('#type' => 'textfield',
+          '#label' => 'Authors',
+	  '#size' => $default_textfield_size,
+          '#required' => true,
+	  '#checkslot' => 'default:tinytext_utf8',
+          '#description' => 'comma seperated list');
+$fields['affil'] = 
+    array('#type' => 'textfield',
+          '#label' => 'Author Affiliations',
+	  '#size' => $default_textfield_size,
+          '#required' => true,
+	  '#checkslot' => 'default:tinytext_utf8',
+          '#description' => 'comma separated list, only list each institution once');
+$fields['title'] = 
+    array('#type' => 'textfield',
+          '#label' => 'Title',
+	  '#size' => $default_textfield_size,
+          '#required' => true,
+	  '#checkslot' => 'default:tinytext_utf8');
+$fields['conf'] = 
+    array('#type' => 'textfield',
+          '#label' => 'Conference/Journal',
+	  '#size' => $default_textfield_size,
+          '#required' => false,
+	  '#checkslot' => 'default:tinytext_utf8');
+$fields['where'] = 
+    array('#type' => 'textfield',
+          '#label' => 'Conference Location',
+	  '#size' => $default_textfield_size,
+          '#required' => false,
+	  '#checkslot' => 'default:tinytext_utf8');
+$fields['year'] = 
+    array('#type' => 'textfield',
+          '#label' => 'Year',
+          '#size' => 4,
+	  '#maxlength' => 4,
+          '#required' => true,
+	  '#checkslot' => '/^\d\d\d\d$/');
+$fields['month'] = 
+    array('#type' => 'select',
+          '#label' => 'Month',
+          '#required' => false,
+	  '#no_default' => true,
+          '#options' => $monthlist,
+	  '#checkslot' => 'default:tinytext');
+$fields['volume'] = 
+    array('#type' => 'textfield',
+          '#label' => 'Volume',
+	  '#size' => $default_textfield_size,
+          '#required' => false,
+	  '#checkslot' => 'default:tinytext');
+$fields['number'] = 
+    array('#type' => 'textfield',
+          '#label' => 'Number',
+	  '#size' => $default_textfield_size,
+          '#required' => false,
+	  '#checkslot' => 'default:tinytext');
+$fields['pages'] = 
+    array('#type' => 'textfield',
+          '#label' => 'Pages',
+	  '#size' => $default_textfield_size,
+          '#required' => false,
+	  '#checkslot' => 'default:tinytext');
+$fields['url'] = 
+    array('#type' => 'textfield',
+          '#label' => 'Publication URL',
+	  '#size' => $default_textfield_size,
+          '#required' => true,
+	  '#checkslot' => 'default:tinytext');
+$fields['conf_url'] = 
+    array('#type' => 'textfield',
+          '#label' => 'Conference URL',
+	  '#size' => $default_textfield_size,
+          '#required' => false,
+	  '#checkslot' => 'default:tinytext');
+$fields['category'] = 
+    array('#type' => 'vlist',
+          '#label' => 'Category',
+          '#required' => true,
+          '#elements' => array(
+              'category' => 
+                  array('#type' => 'select',
+                        '#required' => true,
+                        '#options' => WrapOptionsList($categorylist),
+	                '#checkslot' => 'default:tinytext'),
+              'category_other' =>
+                  array('#type' => 'textfield',
+                        '#label' => 'If other specify',
+ 	  		'#size' => 50,
+	                '#checkslot' => 'default:tinytext',
+			'#nodump' => true)));
+if ($isadmin) {
+    $fields['evaluated_on_emulab'] = 
+        array('#type' => 'textfield',
+             '#label' => 'Evaluated on emulab, or just cite?',
+             '#description' => '"Y" or "N"',
+	     '#size' => $default_textfield_size,
+             '#required' => false,
+  	     '#checkslot' => 'default:tinytext');
+}
+$fields['project'] = 
+    array('#type' => 'select',
+          '#label' => 'Project',
+          '#required' => 'true',
+          '#size' => $default_textfield_size,
+          '#options' => WrapOptionsList($projectlist),
+          '#checkslot' => 'default:tinytext');
+$fields['cite_osdi02'] = 
+    array('#type' => 'vlist',
+          '#label' => "Did you cite our OSDI'02 paper?",
+	  '#link' => "docwrapper.php3?docname=policies.html#reporting",
+          '#required' => true,
+	  '#elements' => array(
+              'cite_osdi02' =>
+                  array('#type' => 'select',
+                        '#required' => true,
+			'#options' => array(1 => 'yes', 0 => 'no'),
+                        '#checkslot' => 'default:boolean'),
+              'no_cite_why' =>
+                  array('#label' => 'If (no) why not',
+			'#type' => 'textfield',
+                        '#size' => 50,
+                        '#checkslot' => 'default:tinytext_utf8')));
+if ($isadmin) {
+    $fields['visible'] = 
+        array('#type' => 'checkbox',
+              '#label' => "Visible in Public Bibliography",
+              '#checkslot' => 'default:boolean');
+    $fields['editable_owner'] =
+        array('#type' => 'checkbox',
+              '#label' => "Editable by Owner",
+              '#checkslot' => 'default:boolean');
+    $fields['editable_proj'] =
+        array('#type' => 'checkbox',
+              '#label' => "Editable by Project Members",
+              '#checkslot' => 'default:boolean');
+    #TableRow("Take Ownership", "ownership", true,
+    #         CheckBox("ownership") . "<br>".
+    #         "<font size=-1><i>Show Publication in My Emulab Page?</i></font>");
+}
+$fields['notes'] = 
+    array('#type' => 'textarea',
+          '#label' => 'Additional Notes',
+          '#required' => false,
+	  '#checkslot' => 'default:fulltext_utf8',
+          '#cols' => 78,
+          '#rows' => 2);
+if (isset($idx)) {
+    $fields['deleted'] =
+        array('#type' => 'checkbox',
+              '#label' => 'Mark As Deleted');
+}
+
+$dbfields = array();
+foreach ($fields as $k => $v) {
+    if ($v['#type'] == 'display') continue;
+    array_push($dbfields, $k);
+}
+array_push($dbfields, 'no_cite_why');
+
+if ($isadmin) {
+  $fields['allow_missing'] =
+      array('#type' => 'checkbox',
+	    '#label' => 'Allow Missing Fields');
+}
+
+#
+# Spit the form out using the array of data and error strings (if any).
+# 
+function SPITFORM($formfields, $errors)
+{
+    global $form, $fields;
+
+    echo "<center>";
+    FormRender($form, $errors, $fields, $formfields);
+    echo "</center>";
+}
+
+#
+#
+#
+
+$defaults = array();
+$errors  = array();
+
+#
+# Helper functions
+#
+function field_set($f) {
+  global $formfields;
+  return isset($formfields[$f]) && $formfields[$f] != "";
+}
+
+function GetName($what, $skip_if_same_as = null) {
+  global $fields;
+  global $defaults;
+  $field = $what . "_name";
+  if ($skip_if_same_as != null && $defaults[$what] == $defaults[$skip_if_same_as]) {
+    unset($fields[$field]);
+  } else if ($defaults[$what] == 0) {
+    $fields[$field]['#value'] = 'Nobody';
+  } else {
+    $user = new User($defaults[$what]);
+    $fields[$field]['#value'] = $user->name() . " (" . $user->uid() . ")";
+  }
+}
+
+
+if (isset($idx)) {
+
+  $query_result = DBQueryFatal("select * from emulab_pubs where idx=$idx");
+  if (mysql_num_rows($query_result) < 1) {
+    echo "Pub #$idx does not exist\n";
+    PAGEFOOTER();
+    return;
+  }
+  $r = mysql_fetch_assoc($query_result);
+  if (!MayEditPub($this_user, $isadmin, $r)) {
+    echo "You Do Not Have Permission to Edit this Publication Submission\n";
+    PAGEFOOTER();
+    return;
+  }
+
+  $defaults = $r;
+
+  if ($isadmin && !isset($submit)) {
+    GetName('submitted_by');
+    GetName('owner', 'submitted_by');
+    GetName('last_edit_by', 'submitted_by');
+    if ($defaults['created'] == $defaults['last_edit'])
+      unset($fields['last_edit']);
+  }
+
+  $fields['submit'] =
+      array('#type' => 'submit',
+	    '#value' => "Update");
+
+} else {
+
+  $defaults['project'] = $projectlist[0];
+  $defaults['visible'] = true;
+  $defaults['editable_owner'] = true;
+  $defaults['editable_proj'] = true;
+  #$defaults['ownership'] = false;
+
+  $fields['submit'] =
+      array('#type' => 'submit',
+	    '#value' => "Submit");
+
+}
+
+if (!isset($submit)) {
+
+  SPITFORM($defaults, $errors);
+
+  PAGEFOOTER();
+  return;
+
+} 
+
+#
+# Verify Form
+# 
+if (isset($formfields['allow_missing']) && $formfields['allow_missing']) {
+    # Hack, modify fields to unset required flag
+    foreach ($fields as $k => $v) {
+	unset($fields[$k]['#required']);
+    }
+    unset($fields['category']['#elements']['category']['#required']);
+    unset($fields['cite_osdi02']['#elements']['cite_osdi02']['#required']);
+}
+
+FormValidate($form, $errors, $fields, $formfields);
+
+if (!(isset($formfields['allow_missing']) && $formfields['allow_missing'])) {
+
+    $type = $formfields['type'];
+    if (isset($also_required[$type])) {
+      foreach ($also_required[$type] as $f) {
+	if (!field_set($f)) {
+	  $errors[$fields[$f]['#label']] = "Required for $type type.";
+	}
+      }
+    }
+
+    if (field_set('cite_osdi02') && !$formfields['cite_osdi02'] && !field_set('no_cite_why')) {
+      $errors[$fields['cite_osdi02']['#label']] = "Must specify reason.";
+    }
+}
+
+if ($formfields['category'] == 'Other') {
+  if (field_set('category_other')) {
+    $formfields['category'] = $formfields['category_other'];
+  } else {
+    $errors[$fields['category']['#label']] = "Must specify.";
+  }
+}
+
+$formfields['notes'] = str_replace("\r", "", $formfields['notes']);
+
+if ($errors) {
+  SPITFORM($formfields, $errors);
+  PAGEFOOTER();
+  return;
+}
+
+#
+# 
+#
+$formfields['month_name'] = $monthlist[$formfields['month']];
+
+#
+# Build DB Query and Send Mail to Testbed-ops
+#
+
+$formdump = FormTextDump($form, $fields, $formfields, 30);
+
+function ConfirmationCommon($deleted = false) {
+    global $form, $fields, $formfields, $formdump, $idx;
+
+    echo "<pre>\n". htmlspecialchars($formdump). "</pre>\n";
+
+    if (!$deleted) {
+	echo '<p>It will appear in the public <a href="expubs.php">Bibliography</a> ';
+	echo "under ". htmlspecialchars($formfields['category']) ." like this:</p>";
+
+	echo "<ul>\n<li>\n";
+	echo MakeBib(NULL, 0, $formfields);
+	echo "</li></ul>\n";
+    }
+
+    echo "<a href=\"submitpub.php?idx=". $idx . "\" style=\"background:yellow\">Edit</a>";
+}
+
+if (!isset($idx)) {
+
+    $cols = array('owner', 'submitted_by', 'last_edit_by', 'uuid', 'created', 'last_edit');
+    #$owner = $isadmin && !$formfields['ownership'] ? 0 : $uid_idx;
+    $owner = $uid_idx;
+    $vals = array($owner, $uid_idx, $uid_idx, '"'.mysql_escape_string(NewUUID()).'"', "now()", "now()");
+    foreach ($dbfields as $f) {
+      $dbname = $f;
+      $value  = $formfields[$f];
+      array_push($cols, '`'. $dbname . '`');
+      array_push($vals, '"'. mysql_escape_string($value) . '"');
+    }
+
+    DBQueryFatal("insert into emulab_pubs (".
+		 implode(",", $cols). ") values (".
+		 implode(",", $vals). ")");
+
+    $idx = mysql_insert_id();
+
+    echo "<p>The following  was Submitted: </p>";
+
+    ConfirmationCommon();
+
+    if (!$isadmin) {
+        TBMAIL("$TBMAILADDR_OPS",
+               "New Publication Submitted",
+               $formdump,
+               "From: ". $this_user->name() . "<" . $this_user->email() . ">");
+    }
+
+    PAGEFOOTER();
+
+} else {
+
+    $update_list = array("last_edit = now()", "`last_edit_by` = $uid_idx");
+    $update_start = count($update_list);
+
+    if (!isset($formfields['deleted'])) 
+      $formfields['deleted'] = false;
+
+    # determine what changed
+    foreach ($dbfields as $f) {
+      if ($defaults[$f] != $formfields[$f]) {
+        $dbname = $f;
+        $value  = @$formfields[$f];
+        array_push($update_list,
+	           "`".$dbname."` = \"".
+                   mysql_escape_string($value) . '"');
+      }
+    }
+
+    if (count($update_list) > $update_start) {
+
+      DBQueryFatal("update emulab_pubs set ".
+                   implode(",", $update_list).
+                   " where idx = $idx");
+      
+      if (!$formfields['deleted']) {
+
+        echo "<p>The following publication was Updated:</p>\n";
+
+        ConfirmationCommon();
+
+      } else {
+
+        echo "<p>The following publication was deleted.  ";
+        echo "To undelete simply edit it again and unclick \"Mark As Deleted\"</p>\n";
+
+        ConfirmationCommon(true);
+
+      }
+
+    } else {
+
+      echo "<p>Nothing has changed for the following pub:</p>";
+
+      ConfirmationCommon();
+ 
+    }
+
+    PAGEFOOTER();
+}
+
+?>
diff --git a/www/url_defs.php b/www/url_defs.php
index 07d4781b3ca185b0d8871be4c243c12160149d95..1a958ae02ff989c30be0e6a349b5d3a1c369f375 100644
--- a/www/url_defs.php
+++ b/www/url_defs.php
@@ -112,6 +112,7 @@ $url_mapping["experimentrun_show"]  = "experimentrun_show.php";
 $url_mapping["instance_show"]       = "instance_show.php";
 $url_mapping["cvswebwrap"]          = "cvsweb/cvswebwrap.php3";
 $url_mapping["profile"]             = "profile.php";
+$url_mapping["submitpub"]           = "submitpub.php";
 	     
 #
 # The caller will pass in a page id, and a list of things. If the thing