Commit e6aa4443 authored by Robert Ricci's avatar Robert Ricci

Merge branch 'master' into link-samples-to-profiles

parents 5af9b51c 04c8be80
...@@ -6,6 +6,7 @@ INSTALL_LIVE=ops.emulab.net:/usr/testbed/aptdocs/ ...@@ -6,6 +6,7 @@ INSTALL_LIVE=ops.emulab.net:/usr/testbed/aptdocs/
INSTALL_CLAB=ops.emulab.net:/usr/testbed/cloudlabdocs/ INSTALL_CLAB=ops.emulab.net:/usr/testbed/cloudlabdocs/
INSTALL_PNET=ops.emulab.net:/usr/testbed/phantomnetdocs/ INSTALL_PNET=ops.emulab.net:/usr/testbed/phantomnetdocs/
INSTALL_ELAB=ops.emulab.net:/usr/testbed/emulabdocs/ INSTALL_ELAB=ops.emulab.net:/usr/testbed/emulabdocs/
INSTALL_POWDER=ops.emulab.net:/usr/testbed/powderdocs/
SCRIBBLEFILES=$(wildcard *.scrbl) SCRIBBLEFILES=$(wildcard *.scrbl)
SCREENSHOTFILES=$(wildcard screenshots/*) SCREENSHOTFILES=$(wildcard screenshots/*)
...@@ -18,7 +19,7 @@ SOURCES=$(SCRIBBLEFILES) $(SCREENSHOTFILES) $(DEFSFILE) ...@@ -18,7 +19,7 @@ SOURCES=$(SCRIBBLEFILES) $(SCREENSHOTFILES) $(DEFSFILE)
all: each all: each
pdf: pdf/apt-manual.pdf pdf/cloudlab-manual.pdf pdf/phantomnet-manual.pdf \ pdf: pdf/apt-manual.pdf pdf/cloudlab-manual.pdf pdf/phantomnet-manual.pdf \
pdf/emulab-manual.pdf pdf/emulab-manual.pdf pdf/powder-manual.pdf
apt: $(SOURCES) apt: $(SOURCES)
-mkdir apt-manual/ -mkdir apt-manual/
...@@ -48,6 +49,13 @@ phantomnet: $(SOURCES) ...@@ -48,6 +49,13 @@ phantomnet: $(SOURCES)
cp -r $(GENI_LIB_DIR)/docs/build/html phantomnet-manual/geni-lib cp -r $(GENI_LIB_DIR)/docs/build/html phantomnet-manual/geni-lib
scribble --htmls ++style phantomnet-manual.css ++arg --pnet ++arg --geni-lib-dir ++arg $(GENI_LIB_DIR) phantomnet-manual.scrbl scribble --htmls ++style phantomnet-manual.css ++arg --pnet ++arg --geni-lib-dir ++arg $(GENI_LIB_DIR) phantomnet-manual.scrbl
powder: $(SOURCES)
-mkdir powder-manual/
cd $(GENI_LIB_DIR)/docs && $(MAKE) html
-rm -rf powder-manual/geni-lib/
cp -r $(GENI_LIB_DIR)/docs/build/html powder-manual/geni-lib
scribble --htmls ++style powder-manual.css ++arg --powder ++arg --geni-lib-dir ++arg $(GENI_LIB_DIR) powder-manual.scrbl
emulab: $(SOURCES) emulab: $(SOURCES)
-mkdir emulab-manual/ -mkdir emulab-manual/
cd $(GENI_LIB_DIR)/docs && $(MAKE) html cd $(GENI_LIB_DIR)/docs && $(MAKE) html
...@@ -64,12 +72,15 @@ pdf/cloudlab-manual.pdf: $(SOURCES) ...@@ -64,12 +72,15 @@ pdf/cloudlab-manual.pdf: $(SOURCES)
pdf/phantomnet-manual.pdf: $(SOURCES) pdf/phantomnet-manual.pdf: $(SOURCES)
scribble --dest pdf/ --pdf ++arg --pnet ++arg --pdf phantomnet-manual.scrbl scribble --dest pdf/ --pdf ++arg --pnet ++arg --pdf phantomnet-manual.scrbl
pdf/powder-manual.pdf: $(SOURCES)
scribble --dest pdf/ --pdf ++arg --powder ++arg --pdf powder-manual.scrbl
pdf/emulab-manual.pdf: $(SOURCES) pdf/emulab-manual.pdf: $(SOURCES)
scribble --dest pdf/ --pdf ++arg --elab ++arg --pdf emulab-manual.scrbl scribble --dest pdf/ --pdf ++arg --elab ++arg --pdf emulab-manual.scrbl
each: apt cloudlab phantomnet emulab each: apt cloudlab phantomnet emulab
.PHONY: apt cloudlab phantomnet emulab all each clean install-live install-cloudlab install-phantomnet install-emulab install-all update-examples .PHONY: apt cloudlab phantomnet powder emulab all each clean install-live install-cloudlab install-phantomnet install-powder install-emulab install-all update-examples
PROFILE_EXAMPLES=$(wildcard code-samples/profile/*/*.py) PROFILE_EXAMPLES=$(wildcard code-samples/profile/*/*.py)
update-examples: update-examples:
...@@ -81,6 +92,7 @@ clean: ...@@ -81,6 +92,7 @@ clean:
-rm -rf $(TOPLEVEL)/ -rm -rf $(TOPLEVEL)/
-rm -rf cloudlab-manual/ -rm -rf cloudlab-manual/
-rm -rf phantomnet-manual/ -rm -rf phantomnet-manual/
-rm -rf powder-manual/
-rm -rf emulab-manual/ -rm -rf emulab-manual/
-rm -rf pdf/* -rm -rf pdf/*
-rm *.bak -rm *.bak
...@@ -90,7 +102,7 @@ clean: ...@@ -90,7 +102,7 @@ clean:
-rm *.out -rm *.out
-rm *.png -rm *.png
install-all: install-live install-cloudlab install-phantomnet install-emulab install-all: install-live install-cloudlab install-phantomnet install-powder install-emulab
install-live: apt install-live: apt
-rsync -v -az -e ssh --delete apt-manual/ $(INSTALL_LIVE) -rsync -v -az -e ssh --delete apt-manual/ $(INSTALL_LIVE)
...@@ -101,5 +113,8 @@ install-cloudlab: cloudlab-ga ...@@ -101,5 +113,8 @@ install-cloudlab: cloudlab-ga
install-phantomnet: phantomnet install-phantomnet: phantomnet
-rsync -v -az -e ssh --delete phantomnet-manual/ $(INSTALL_PNET) -rsync -v -az -e ssh --delete phantomnet-manual/ $(INSTALL_PNET)
install-powder: powder
-rsync -v -az -e ssh --delete powder-manual/ $(INSTALL_POWDER)
install-emulab: emulab install-emulab: emulab
-rsync -v -az -e ssh --delete emulab-manual/ $(INSTALL_ELAB) -rsync -v -az -e ssh --delete emulab-manual/ $(INSTALL_ELAB)
...@@ -27,6 +27,7 @@ ...@@ -27,6 +27,7 @@
["--apt" "Compile manual for Apt" (tb-mode 'apt)] ["--apt" "Compile manual for Apt" (tb-mode 'apt)]
["--clab" "Compile manual for CloudLab" (tb-mode 'clab)] ["--clab" "Compile manual for CloudLab" (tb-mode 'clab)]
["--pnet" "Compile manual for PhantomNet" (tb-mode 'pnet)] ["--pnet" "Compile manual for PhantomNet" (tb-mode 'pnet)]
["--powder" "Compile manual for Powder" (tb-mode 'powder)]
["--elab" "Compile manual for Emulab" (tb-mode 'elab)] ["--elab" "Compile manual for Emulab" (tb-mode 'elab)]
#:once-each #:once-each
["--pdf" "Compile PDF version of the manual" (doc-mode 'pdf)] ["--pdf" "Compile PDF version of the manual" (doc-mode 'pdf)]
...@@ -37,6 +38,7 @@ ...@@ -37,6 +38,7 @@
(define (apt?) (if (equal? (tb-mode) 'apt) #t #f)) (define (apt?) (if (equal? (tb-mode) 'apt) #t #f))
(define (clab?) (if (equal? (tb-mode) 'clab) #t #f)) (define (clab?) (if (equal? (tb-mode) 'clab) #t #f))
(define (pnet?) (if (equal? (tb-mode) 'pnet) #t #f)) (define (pnet?) (if (equal? (tb-mode) 'pnet) #t #f))
(define (powder?) (if (equal? (tb-mode) 'powder) #t #f))
(define (elab?) (if (equal? (tb-mode) 'elab) #t #f)) (define (elab?) (if (equal? (tb-mode) 'elab) #t #f))
(define main-style (define main-style
...@@ -47,18 +49,20 @@ ...@@ -47,18 +49,20 @@
(make-css-addition "highlight-default.css")))) (make-css-addition "highlight-default.css"))))
(define (apt-vs-clab #:apt [apt-version (list)] #:clab [clab-version (list)] #:pnet [pnet-version (list)] #:elab [elab-version (list)]) (define (apt-vs-clab #:apt [apt-version (list)] #:clab [clab-version (list)] #:pnet [pnet-version (list)] #:powder [powder-version (list)] #:elab [elab-version (list)])
(case (tb-mode) (case (tb-mode)
('apt apt-version) ('apt apt-version)
('clab clab-version) ('clab clab-version)
('pnet pnet-version) ('pnet pnet-version)
('powder powder-version)
('elab elab-version))) ('elab elab-version)))
(define (apt-vs-clab* #:apt [apt-version ""] #:clab [clab-version ""] #:pnet [pnet-version ""] #:elab [elab-version ""]) (define (apt-vs-clab* #:apt [apt-version ""] #:clab [clab-version ""] #:pnet [pnet-version ""] #:powder [powder-version ""] #:elab [elab-version ""])
(decode-flow (list (case (tb-mode) (decode-flow (list (case (tb-mode)
('apt apt-version) ('apt apt-version)
('clab clab-version) ('clab clab-version)
('pnet pnet-version) ('pnet pnet-version)
('powder powder-version)
('elab elab-version))))) ('elab elab-version)))))
(define (apt-only . stuff) (define (apt-only . stuff)
...@@ -70,14 +74,21 @@ ...@@ -70,14 +74,21 @@
(define (pnet-only . stuff) (define (pnet-only . stuff)
(apt-vs-clab #:pnet stuff)) (apt-vs-clab #:pnet stuff))
(define (powder-only . stuff)
(apt-vs-clab #:powder stuff))
(define (elab-only . stuff) (define (elab-only . stuff)
(apt-vs-clab #:elab stuff)) (apt-vs-clab #:elab stuff))
(define (wireless-only . stuff)
(apt-vs-clab #:pnet stuff #:powder stuff))
(define apt-base-url (define apt-base-url
(case (tb-mode) (case (tb-mode)
('apt "https://www.aptlab.net/") ('apt "https://www.aptlab.net/")
('clab "https://www.cloudlab.us/") ('clab "https://www.cloudlab.us/")
('pnet "https://www.phantomnet.org/") ('pnet "https://www.phantomnet.org/")
('powder "https://www.powderwireless.net/")
('elab "https://www.emulab.net/portal/"))) ('elab "https://www.emulab.net/portal/")))
(define apt-doc-url (define apt-doc-url
...@@ -85,6 +96,7 @@ ...@@ -85,6 +96,7 @@
('apt "http://docs.aptlab.net/") ('apt "http://docs.aptlab.net/")
('clab "http://docs.cloudlab.us/") ('clab "http://docs.cloudlab.us/")
('pnet "http://docs.phantomnet.org/") ('pnet "http://docs.phantomnet.org/")
('powder "http://docs.powderwireless.net/")
('elab "http://docs.emulab.net/"))) ('elab "http://docs.emulab.net/")))
(define forum-url (define forum-url
...@@ -92,12 +104,14 @@ ...@@ -92,12 +104,14 @@
('apt "https://groups.google.com/forum/#!forum/apt-users") ('apt "https://groups.google.com/forum/#!forum/apt-users")
('clab "https://groups.google.com/forum/#!forum/cloudlab-users") ('clab "https://groups.google.com/forum/#!forum/cloudlab-users")
('pnet "https://groups.google.com/forum/#!forum/phantomnet-users") ('pnet "https://groups.google.com/forum/#!forum/phantomnet-users")
('powder "https://groups.google.com/forum/#!forum/phantomnet-users")
('elab "https://groups.google.com/forum/#!forum/emulab-users"))) ('elab "https://groups.google.com/forum/#!forum/emulab-users")))
(define tb (lambda () (case (tb-mode) (define tb (lambda () (case (tb-mode)
('apt "Apt") ('apt "Apt")
('clab "CloudLab") ('clab "CloudLab")
('pnet "PhantomNet") ('pnet "PhantomNet")
('powder "Powder")
('elab "Emulab")))) ('elab "Emulab"))))
; We want the 'version' to be the date of the most recent commit ; We want the 'version' to be the date of the most recent commit
...@@ -129,6 +143,7 @@ ...@@ -129,6 +143,7 @@
(let* ([aptpath (string-append "screenshots/apt/" path)] (let* ([aptpath (string-append "screenshots/apt/" path)]
[clabpath (string-append "screenshots/clab/" path)] [clabpath (string-append "screenshots/clab/" path)]
[pnetpath (string-append "screenshots/pnet/" path)] [pnetpath (string-append "screenshots/pnet/" path)]
[powderpath (string-append "screenshots/powder/" path)]
[elabpath (string-append "screenshots/elab/" path)] [elabpath (string-append "screenshots/elab/" path)]
[fullpath (case (tb-mode) [fullpath (case (tb-mode)
('apt aptpath) ('apt aptpath)
...@@ -140,6 +155,10 @@ ...@@ -140,6 +155,10 @@
(if (file-exists? pnetpath) (if (file-exists? pnetpath)
pnetpath pnetpath
(cdr (cons (displayln (string-append "WARNING: PhantomNet missing screenshot " path)) aptpath)))) (cdr (cons (displayln (string-append "WARNING: PhantomNet missing screenshot " path)) aptpath))))
('powder
(if (file-exists? powderpath)
powderpath
(cdr (cons (displayln (string-append "WARNING: Powder missing screenshot " path)) aptpath))))
('elab ('elab
(if (file-exists? elabpath) (if (file-exists? elabpath)
elabpath elabpath
......
...@@ -179,7 +179,7 @@ In each case, an @geni-lib["rspec.pg.IPv4Address" 'id] object is obtained from t ...@@ -179,7 +179,7 @@ In each case, an @geni-lib["rspec.pg.IPv4Address" 'id] object is obtained from t
constructor (the parameters are the address and the netmask, respectively), constructor (the parameters are the address and the netmask, respectively),
and then added to the corresponding interface. and then added to the corresponding interface.
@pnet-only{ @wireless-only{
@section[#:tag "geni-lib-openepc"]{OpenEPC extensions} @section[#:tag "geni-lib-openepc"]{OpenEPC extensions}
@(geni-lib) includes convenience functions to assist constructing @(geni-lib) includes convenience functions to assist constructing
......
/*
* 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 POWDER 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.powderwiresless.net/manual.pdf" "PDF")))]
}
Powder is a facility for experimenting on the future of wireless
networking in a city-scale "living laboratory" environment.
Powder is run by the University of Utah in partnership with Salt Lake
City and the Utah Education and Telehealth Network.
The Powder 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["geni-lib.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