Commit a44e3236 authored by Gary Wong's avatar Gary Wong

Add PhantomNet manual.

parent d60c56f6
Pipeline #345 failed with stage
apt-manual/
cloudlab-manual/
phantomnet-manual/
compiled/
pdf/
*.bak
......
......@@ -4,8 +4,10 @@
TOPLEVEL=apt-manual
INSTALL_DEV=boss.emulab.net:/usr/testbed/devel/ricci/apt-manual
INSTALL_CLAB_DEV=boss.emulab.net:/usr/testbed/devel/ricci/www/cloudlab-manual
INSTALL_PNET_DEV=boss.emulab.net:/usr/testbed/devel/ricci/www/phantomnet-manual
INSTALL_LIVE=ops.emulab.net:/usr/testbed/aptdocs/
INSTALL_CLAB=ops.emulab.net:/usr/testbed/cloudlabdocs/
INSTALL_PNET=ops.emulab.net:/usr/testbed/phantomnetdocs/
SCRIBBLEFILES=$(wildcard *.scrbl)
SCREENSHOTFILES=$(wildcard screenshots/*)
......@@ -13,29 +15,36 @@ DEFSFILE=defs.rkt
SOURCES=$(SCRIBBLEFILES) $(SCREENSHOTFILES) $(DEFSFILE)
all: both
all: each
pdf: pdf/apt-manual.pdf pdf/cloudlab-manual.pdf
pdf: pdf/apt-manual.pdf pdf/cloudlab-manual.pdf pdf/phantomnet-manual.pdf
apt: $(SOURCES)
scribble --htmls ++style apt-manual.css $(TOPLEVEL).scrbl
cloudlab: $(SOURCES)
scribble --htmls ++style cloudlab-manual.css ++arg clab cloudlab-manual.scrbl
phantomnet: $(SOURCES)
scribble --htmls ++style phantomnet-manual.css ++arg pnet phantomnet-manual.scrbl
pdf/apt-manual.pdf: $(SOURCES)
scribble --dest pdf/ --pdf ++arg pdf $(TOPLEVEL).scrbl
pdf/cloudlab-manual.pdf: $(SOURCES)
scribble --dest pdf/ --pdf ++arg clab ++arg pdf cloudlab-manual.scrbl
cloudlab: $(SOURCES)
scribble --htmls ++style cloudlab-manual.css ++arg clab cloudlab-manual.scrbl
pdf/phantomnet-manual.pdf: $(SOURCES)
scribble --dest pdf/ --pdf ++arg pnet ++arg pdf phantomnet-manual.scrbl
both: apt cloudlab
each: apt cloudlab phantomnet
.PHONY: apt cloudlab all both clean install-dev install-live
.PHONY: apt cloudlab phantomnet all each clean install-dev install-live
clean:
-rm -rf $(TOPLEVEL)/
-rm -rf cloudlab-manual/
-rm -rf phantomnet-manual/
-rm -rf pdf/*
-rm *.bak
-rm *.tex
......@@ -50,6 +59,9 @@ install-dev: apt
install-cloudlab-dev: cloudlab
rsync -v -az -e ssh --delete cloudlab-manual/ $(INSTALL_CLAB_DEV)
install-phantomnet-dev: phantomnet
rsync -v -az -e ssh --delete phantomnet-manual/ $(INSTALL_PNET_DEV)
install-live: apt pdf/apt-manual.pdf
-rsync -v -az -e ssh --delete apt-manual/ $(INSTALL_LIVE)
scp pdf/apt-manual.pdf $(INSTALL_LIVE)/manual.pdf
......@@ -57,3 +69,7 @@ install-live: apt pdf/apt-manual.pdf
install-cloudlab: cloudlab pdf/cloudlab-manual.pdf
-rsync -v -az -e ssh --delete cloudlab-manual/ $(INSTALL_CLAB)
scp pdf/cloudlab-manual.pdf $(INSTALL_CLAB)/manual.pdf
install-phantomnet: phantomnet pdf/phantomnet-manual.pdf
-rsync -v -az -e ssh --delete phantomnet-manual/ $(INSTALL_PNET)
scp pdf/phantomnet-manual.pdf $(INSTALL_PNET)/manual.pdf
# Apt / CloudLab Documentation
This repository contains the documentation for multiple testbed
environments---currently [Apt](https://aptlab.net) and
[CloudLab](https://cloudlab.us). The two have similar user interfaces and
concepts, so both share much documentation in common.
environments---currently [Apt](https://aptlab.net),
[CloudLab](https://cloudlab.us), and [PhantomNet](https://phantomnet.org).
The three have similar user interfaces and
concepts, so each share much documentation in common.
----------
......@@ -43,7 +44,13 @@ To build CloudLab HTML pages only:
make cloudlab
```
To build PDFs for both testbeds: (warning: can be quite slow)
To build PhantomNet HTML pages only:
```
make phantomnet
```
To build PDFs for all testbeds: (warning: can be quite slow)
```
make pdf
......@@ -51,8 +58,9 @@ To build PDFs for both testbeds: (warning: can be quite slow)
### Viewing
Simply open `apt-manual/index.html` or `cloudlab-manual/index.html` in your
browser. PDFs are placed in the `pdf/` subdirectory.
Simply open `apt-manual/index.html`, `cloudlab-manual/index.html`,
or `phantomnet-manual/index.html` in your browser. PDFs are placed
in the `pdf/` subdirectory.
----------
......
......@@ -10,7 +10,7 @@
]
@italic[(if (equal? doc-mode 'pdf)
(list "The HTML version of this manual is availble at " (hyperlink apt-doc-url apt-doc-url))
(list "The HTML version of this manual is available at " (hyperlink apt-doc-url apt-doc-url))
(list "This manual is also available as a " (hyperlink "http://docs.aptlab.net/manual.pdf" "PDF")))]
......
......@@ -12,13 +12,17 @@
(provide (all-defined-out))
; Check to see if we are building Apt or CloudLab documentation
(define tb-mode
(if (vector-member "clab" (current-command-line-arguments))
'clab
'apt))
(define tb-mode
(cond
((vector-member "clab" (current-command-line-arguments))
'clab)
((vector-member "pnet" (current-command-line-arguments))
'pnet)
(else 'apt)))
(define (apt?) (if (equal? tb-mode 'apt) #t #f))
(define (clab?) (if (equal? tb-mode 'clab) #t #f))
(define (pnet?) (if (equal? tb-mode 'pnet) #t #f))
; Check to see if we are building for web or PDF; there is probably some
; nicer way to do this by inspecting the scribble/run state directly, but
......@@ -28,15 +32,17 @@
'pdf
'html))
(define (apt-vs-clab #:apt [apt-version (list)] #:clab [clab-version (list)])
(if (apt?)
apt-version
clab-version))
(define (apt-vs-clab #:apt [apt-version (list)] #:clab [clab-version (list)] #:pnet [pnet-version (list)])
(case tb-mode
('apt apt-version)
('clab clab-version)
('pnet pnet-version)))
(define (apt-vs-clab* #:apt [apt-version ""] #:clab [clab-version ""])
(decode-flow (list (if (apt?)
apt-version
clab-version))))
(define (apt-vs-clab* #:apt [apt-version ""] #:clab [clab-version ""] #:pnet [pnet-version ""])
(decode-flow (list (case tb-mode
('apt apt-version)
('clab clab-version)
('pnet pnet-version)))))
(define (apt-only . stuff)
(apt-vs-clab #:apt stuff))
......@@ -44,22 +50,31 @@
(define (clab-only . stuff)
(apt-vs-clab #:clab stuff))
(define (pnet-only . stuff)
(apt-vs-clab #:pnet stuff))
(define apt-base-url
(if (clab?)
"https://www.cloudlab.us/"
"https://www.aptlab.net/"))
(case tb-mode
('apt "https://www.aptlab.net/")
('clab "https://www.cloudlab.us/")
('pnet "https://www.phantomnet.org/")))
(define apt-doc-url
(if (clab?)
"http://docs.cloudlab.us/"
"http://docs.aptlab.net/"))
(define forum-url
(if (apt?)
"https://groups.google.com/forum/#!forum/apt-users"
"https://groups.google.com/forum/#!forum/cloudlab-users"))
(define tb (lambda () (if (clab?) "CloudLab" "Apt")))
(case tb-mode
('apt "http://docs.aptlab.net/")
('clab "http://docs.cloudlab.us/")
('pnet "http://docs.phantomnet.org/")))
(define forum-url
(case tb-mode
('apt "https://groups.google.com/forum/#!forum/apt-users")
('clab "https://groups.google.com/forum/#!forum/cloudlab-users")
('pnet "https://groups.google.com/forum/#!forum/phantomnet-users")))
(define tb (lambda () (case tb-mode
('apt "Apt")
('clab "CloudLab")
('pnet "PhantomNet"))))
; We want the 'version' to be the date of the most recent commit
(define apt-version
......@@ -89,11 +104,17 @@
(define (screenshot path)
(let* ([aptpath (string-append "screenshots/apt/" path)]
[clabpath (string-append "screenshots/clab/" path)]
[fullpath (if (apt?)
aptpath
(if (file-exists? clabpath)
clabpath
(cdr (cons (displayln (string-append "WARNING: CloudLab missing screenshot " path)) aptpath))))]
[pnetpath (string-append "screenshots/pnet/" path)]
[fullpath (case tb-mode
('apt aptpath)
('clab
(if (file-exists? clabpath)
clabpath
(cdr (cons (displayln (string-append "WARNING: CloudLab missing screenshot " path)) aptpath))))
('pnet
(if (file-exists? pnetpath)
pnetpath
(cdr (cons (displayln (string-append "WARNING: PhantomNet missing screenshot " path)) aptpath)))))]
[b (make-object bitmap% fullpath)]
[width (send b get-width)]
[scale-factor (* 1.0 (/ screenshot-width width))])
......
......@@ -97,8 +97,8 @@ Start by pointing your browser at @url[(apturl)].
What's going on behind the scenes is that on one (or more) of the machines
in one of the @seclink["hardware"]{@(tb) clusters}, a disk is being imaged,
a @apt-vs-clab[#:apt "VM created and booted" #:clab "set of physical machines
booted"], accounts created for you, etc. This process usually takes a couple
of minutes.
booted" #:pnet "VM created and booted"], accounts created for you, etc.
This process usually takes a couple of minutes.
@apt-only{If you have never used this email address with @(tb) before (or if
you switch computers or browsers), @(tb) will send a verification email.
......
/*
* Overrides some of Scribble's default stying to match PhantomNet's colors
*/
@import url(http://fonts.googleapis.com/css?family=Roboto+Slab:300,400,700);
@import url(http://fonts.googleapis.com/css?family=Roboto:400,400italic,700,700italic,300,300italic);
.navsettop, .navsetbottom, .tocset {
background-color: #c00;
color: white;
}
.navsettop, .navsetbottom, .tocset td a {
color: white;
}
.tocset td a.tocviewselflink {
color: inherit;
font-weight: bolder;
}
.navsettop a, .navsetbottom a {
color: inherit;
}
.navsettop .nonavigation, .navsetbottom .nonavigation {
color: #bbb;
}
.navsettop a:hover, .navsetbottom a:hover {
background: #7f3300;
}
.tocviewsublist, .tocviewsublistonly, .tocviewsublisttop, .tocviewsublistbottom {
border-left: 1px solid #bbb;
}
.refcolumn {
background: #adc4cc;
border-color: #0099cc;
}
/*
* Override some of the default fonts
*/
body, .main {
font-family: 'Roboto', sans-serif;
font-weight: lighter;
}
h1, h2, h3, h4, h5, h6 {
font-family: 'Roboto Slab', serif;
}
.SAuthorListBox {
font-family: 'Roboto Slab', serif;
font-weight: lighter;
}
.tocset td, .navsettop, .navsetbottom {
font-family: 'Roboto', sans-serif;
}
#lang scribble/manual
@(require racket/date)
@(require "defs.rkt")
@title[#:version apt-version
#:date (date->string (current-date))]{The PhantomNet Manual}
@author[
"Jacobus (Kobus) Van der Merwe" "Robert Ricci" "Leigh Stoller" "Kirk Webb" "Jon Duerig" "Gary Wong" "Keith Downie" "Mike Hibler" "Eric Eide"
]
@italic[(if (equal? doc-mode 'pdf)
(list "The HTML version of this manual is available at " (hyperlink apt-doc-url apt-doc-url))
(list "This manual is also available as a " (hyperlink "http://docs.phantomnet.org/manual.pdf" "PDF")))]
PhantomNet is a mobility testbed, providing researchers with a set of
hardware and software resources that they can use to develop, debug,
and evaluate their mobility designs. Resources available in PhantomNet
include EPC/EPS software (OpenEPC), hardware access points (ip.access
enodeb), PC nodes with mobile radios (HUAWEI cellular modems), and a
large set of commodity bare metal nodes, virtual nodes and other
resouces inherited from the main Emulab site. In addition to raw
resources, PhantomNet provides configuration directives and scripts to
assist researchers in setting up their mobility experiments. Users
specify their experiment via Emulab NS file templates augmented with
PhantomNet-specific functionality. In complement to these template NS
files, PhantomNet does the work of configuring the EPC software
components to operate within the underlying Emulab environment.
The PhantomNet facility is built on top of
@hyperlink["http://www.emulab.net/"]{Emulab} and is run by the
@hyperlink["http://www.flux.utah.edu"]{Flux Research Group}, part of the
@hyperlink["http://www.cs.utah.edu/"]{School of Computing} at the
@hyperlink["http://www.utah.edu/"]{University of Utah}.
@table-of-contents[]
@include-section["getting-started.scrbl"]
@include-section["users.scrbl"]
@include-section["repeatable-research.scrbl"]
@include-section["creating-profiles.scrbl"]
@include-section["basic-concepts.scrbl"]
@include-section["advanced-topics.scrbl"]
@include-section["hardware.scrbl"]
@include-section["planned.scrbl"]
@include-section["getting-help.scrbl"]
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment