improve WifiPhy documentation
authorTom Henderson <tomh@tomh.org>
Thu, 14 Jan 2016 14:23:17 -0800
changeset 11682 085c4ff7a60f
parent 11681 d0b2d73051f7
child 11683 9142266fbb25
improve WifiPhy documentation
src/wifi/doc/Makefile
src/wifi/doc/source/figures/clear-channel.eps
src/wifi/doc/source/figures/nist-frame-success-rate.eps
src/wifi/doc/source/wifi-design.rst
src/wifi/doc/source/wifi-references.rst
src/wifi/doc/source/wifi-testing.rst
src/wifi/doc/source/wifi-user.rst
--- a/src/wifi/doc/Makefile	Mon Jan 11 14:44:13 2016 -0800
+++ b/src/wifi/doc/Makefile	Thu Jan 14 14:23:17 2016 -0800
@@ -17,7 +17,9 @@
 
 IMAGES_EPS = \
 	$(FIGURES)/snir.eps \
-	$(FIGURES)/WifiArchitecture.eps
+	$(FIGURES)/WifiArchitecture.eps \
+        $(FIGURES)/clear-channel.eps \
+        $(FIGURES)/nist-frame-success-rate.eps
 
 # rescale pdf figures as necessary
 $(FIGURES)/snir.pdf_width = 3in
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/wifi/doc/source/figures/clear-channel.eps	Thu Jan 14 14:23:17 2016 -0800
@@ -0,0 +1,897 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: clear-channel.eps
+%%Creator: gnuplot 4.6 patchlevel 5
+%%CreationDate: Sat Jan  9 15:06:52 2016
+%%DocumentFonts: (atend)
+%%BoundingBox: 50 50 410 302
+%%EndComments
+%%BeginProlog
+/gnudict 256 dict def
+gnudict begin
+%
+% The following true/false flags may be edited by hand if desired.
+% The unit line width and grayscale image gamma correction may also be changed.
+%
+/Color true def
+/Blacktext false def
+/Solid false def
+/Dashlength 1 def
+/Landscape false def
+/Level1 false def
+/Rounded false def
+/ClipToBoundingBox false def
+/SuppressPDFMark false def
+/TransparentPatterns false def
+/gnulinewidth 5.000 def
+/userlinewidth gnulinewidth def
+/Gamma 1.0 def
+/BackgroundColor {-1.000 -1.000 -1.000} def
+%
+/vshift -46 def
+/dl1 {
+  10.0 Dashlength mul mul
+  Rounded { currentlinewidth 0.75 mul sub dup 0 le { pop 0.01 } if } if
+} def
+/dl2 {
+  10.0 Dashlength mul mul
+  Rounded { currentlinewidth 0.75 mul add } if
+} def
+/hpt_ 31.5 def
+/vpt_ 31.5 def
+/hpt hpt_ def
+/vpt vpt_ def
+/doclip {
+  ClipToBoundingBox {
+    newpath 50 50 moveto 410 50 lineto 410 302 lineto 50 302 lineto closepath
+    clip
+  } if
+} def
+%
+% Gnuplot Prolog Version 4.6 (September 2012)
+%
+%/SuppressPDFMark true def
+%
+/M {moveto} bind def
+/L {lineto} bind def
+/R {rmoveto} bind def
+/V {rlineto} bind def
+/N {newpath moveto} bind def
+/Z {closepath} bind def
+/C {setrgbcolor} bind def
+/f {rlineto fill} bind def
+/g {setgray} bind def
+/Gshow {show} def   % May be redefined later in the file to support UTF-8
+/vpt2 vpt 2 mul def
+/hpt2 hpt 2 mul def
+/Lshow {currentpoint stroke M 0 vshift R 
+	Blacktext {gsave 0 setgray show grestore} {show} ifelse} def
+/Rshow {currentpoint stroke M dup stringwidth pop neg vshift R
+	Blacktext {gsave 0 setgray show grestore} {show} ifelse} def
+/Cshow {currentpoint stroke M dup stringwidth pop -2 div vshift R 
+	Blacktext {gsave 0 setgray show grestore} {show} ifelse} def
+/UP {dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def
+  /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def} def
+/DL {Color {setrgbcolor Solid {pop []} if 0 setdash}
+ {pop pop pop 0 setgray Solid {pop []} if 0 setdash} ifelse} def
+/BL {stroke userlinewidth 2 mul setlinewidth
+	Rounded {1 setlinejoin 1 setlinecap} if} def
+/AL {stroke userlinewidth 2 div setlinewidth
+	Rounded {1 setlinejoin 1 setlinecap} if} def
+/UL {dup gnulinewidth mul /userlinewidth exch def
+	dup 1 lt {pop 1} if 10 mul /udl exch def} def
+/PL {stroke userlinewidth setlinewidth
+	Rounded {1 setlinejoin 1 setlinecap} if} def
+3.8 setmiterlimit
+% Default Line colors
+/LCw {1 1 1} def
+/LCb {0 0 0} def
+/LCa {0 0 0} def
+/LC0 {1 0 0} def
+/LC1 {0 1 0} def
+/LC2 {0 0 1} def
+/LC3 {1 0 1} def
+/LC4 {0 1 1} def
+/LC5 {1 1 0} def
+/LC6 {0 0 0} def
+/LC7 {1 0.3 0} def
+/LC8 {0.5 0.5 0.5} def
+% Default Line Types
+/LTw {PL [] 1 setgray} def
+/LTb {BL [] LCb DL} def
+/LTa {AL [1 udl mul 2 udl mul] 0 setdash LCa setrgbcolor} def
+/LT0 {PL [] LC0 DL} def
+/LT1 {PL [4 dl1 2 dl2] LC1 DL} def
+/LT2 {PL [2 dl1 3 dl2] LC2 DL} def
+/LT3 {PL [1 dl1 1.5 dl2] LC3 DL} def
+/LT4 {PL [6 dl1 2 dl2 1 dl1 2 dl2] LC4 DL} def
+/LT5 {PL [3 dl1 3 dl2 1 dl1 3 dl2] LC5 DL} def
+/LT6 {PL [2 dl1 2 dl2 2 dl1 6 dl2] LC6 DL} def
+/LT7 {PL [1 dl1 2 dl2 6 dl1 2 dl2 1 dl1 2 dl2] LC7 DL} def
+/LT8 {PL [2 dl1 2 dl2 2 dl1 2 dl2 2 dl1 2 dl2 2 dl1 4 dl2] LC8 DL} def
+/Pnt {stroke [] 0 setdash gsave 1 setlinecap M 0 0 V stroke grestore} def
+/Dia {stroke [] 0 setdash 2 copy vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath stroke
+  Pnt} def
+/Pls {stroke [] 0 setdash vpt sub M 0 vpt2 V
+  currentpoint stroke M
+  hpt neg vpt neg R hpt2 0 V stroke
+ } def
+/Box {stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V closepath stroke
+  Pnt} def
+/Crs {stroke [] 0 setdash exch hpt sub exch vpt add M
+  hpt2 vpt2 neg V currentpoint stroke M
+  hpt2 neg 0 R hpt2 vpt2 V stroke} def
+/TriU {stroke [] 0 setdash 2 copy vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath stroke
+  Pnt} def
+/Star {2 copy Pls Crs} def
+/BoxF {stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V closepath fill} def
+/TriUF {stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath fill} def
+/TriD {stroke [] 0 setdash 2 copy vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath stroke
+  Pnt} def
+/TriDF {stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath fill} def
+/DiaF {stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath fill} def
+/Pent {stroke [] 0 setdash 2 copy gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath stroke grestore Pnt} def
+/PentF {stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath fill grestore} def
+/Circle {stroke [] 0 setdash 2 copy
+  hpt 0 360 arc stroke Pnt} def
+/CircleF {stroke [] 0 setdash hpt 0 360 arc fill} def
+/C0 {BL [] 0 setdash 2 copy moveto vpt 90 450 arc} bind def
+/C1 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 0 90 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C2 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 90 180 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C3 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 0 180 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C4 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 180 270 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C5 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 0 90 arc
+	2 copy moveto
+	2 copy vpt 180 270 arc closepath fill
+	vpt 0 360 arc} bind def
+/C6 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 90 270 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C7 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 0 270 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C8 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 270 360 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C9 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 270 450 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C10 {BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill
+	2 copy moveto
+	2 copy vpt 90 180 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C11 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 0 180 arc closepath fill
+	2 copy moveto
+	2 copy vpt 270 360 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C12 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 180 360 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C13 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 0 90 arc closepath fill
+	2 copy moveto
+	2 copy vpt 180 360 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C14 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 90 360 arc closepath fill
+	vpt 0 360 arc} bind def
+/C15 {BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/Rec {newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto
+	neg 0 rlineto closepath} bind def
+/Square {dup Rec} bind def
+/Bsquare {vpt sub exch vpt sub exch vpt2 Square} bind def
+/S0 {BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare} bind def
+/S1 {BL [] 0 setdash 2 copy vpt Square fill Bsquare} bind def
+/S2 {BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare} bind def
+/S3 {BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare} bind def
+/S4 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare} bind def
+/S5 {BL [] 0 setdash 2 copy 2 copy vpt Square fill
+	exch vpt sub exch vpt sub vpt Square fill Bsquare} bind def
+/S6 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare} bind def
+/S7 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill
+	2 copy vpt Square fill Bsquare} bind def
+/S8 {BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare} bind def
+/S9 {BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare} bind def
+/S10 {BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill
+	Bsquare} bind def
+/S11 {BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill
+	Bsquare} bind def
+/S12 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare} bind def
+/S13 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
+	2 copy vpt Square fill Bsquare} bind def
+/S14 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
+	2 copy exch vpt sub exch vpt Square fill Bsquare} bind def
+/S15 {BL [] 0 setdash 2 copy Bsquare fill Bsquare} bind def
+/D0 {gsave translate 45 rotate 0 0 S0 stroke grestore} bind def
+/D1 {gsave translate 45 rotate 0 0 S1 stroke grestore} bind def
+/D2 {gsave translate 45 rotate 0 0 S2 stroke grestore} bind def
+/D3 {gsave translate 45 rotate 0 0 S3 stroke grestore} bind def
+/D4 {gsave translate 45 rotate 0 0 S4 stroke grestore} bind def
+/D5 {gsave translate 45 rotate 0 0 S5 stroke grestore} bind def
+/D6 {gsave translate 45 rotate 0 0 S6 stroke grestore} bind def
+/D7 {gsave translate 45 rotate 0 0 S7 stroke grestore} bind def
+/D8 {gsave translate 45 rotate 0 0 S8 stroke grestore} bind def
+/D9 {gsave translate 45 rotate 0 0 S9 stroke grestore} bind def
+/D10 {gsave translate 45 rotate 0 0 S10 stroke grestore} bind def
+/D11 {gsave translate 45 rotate 0 0 S11 stroke grestore} bind def
+/D12 {gsave translate 45 rotate 0 0 S12 stroke grestore} bind def
+/D13 {gsave translate 45 rotate 0 0 S13 stroke grestore} bind def
+/D14 {gsave translate 45 rotate 0 0 S14 stroke grestore} bind def
+/D15 {gsave translate 45 rotate 0 0 S15 stroke grestore} bind def
+/DiaE {stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath stroke} def
+/BoxE {stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V closepath stroke} def
+/TriUE {stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath stroke} def
+/TriDE {stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath stroke} def
+/PentE {stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath stroke grestore} def
+/CircE {stroke [] 0 setdash 
+  hpt 0 360 arc stroke} def
+/Opaque {gsave closepath 1 setgray fill grestore 0 setgray closepath} def
+/DiaW {stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V Opaque stroke} def
+/BoxW {stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V Opaque stroke} def
+/TriUW {stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V Opaque stroke} def
+/TriDW {stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V Opaque stroke} def
+/PentW {stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  Opaque stroke grestore} def
+/CircW {stroke [] 0 setdash 
+  hpt 0 360 arc Opaque stroke} def
+/BoxFill {gsave Rec 1 setgray fill grestore} def
+/Density {
+  /Fillden exch def
+  currentrgbcolor
+  /ColB exch def /ColG exch def /ColR exch def
+  /ColR ColR Fillden mul Fillden sub 1 add def
+  /ColG ColG Fillden mul Fillden sub 1 add def
+  /ColB ColB Fillden mul Fillden sub 1 add def
+  ColR ColG ColB setrgbcolor} def
+/BoxColFill {gsave Rec PolyFill} def
+/PolyFill {gsave Density fill grestore grestore} def
+/h {rlineto rlineto rlineto gsave closepath fill grestore} bind def
+%
+% PostScript Level 1 Pattern Fill routine for rectangles
+% Usage: x y w h s a XX PatternFill
+%	x,y = lower left corner of box to be filled
+%	w,h = width and height of box
+%	  a = angle in degrees between lines and x-axis
+%	 XX = 0/1 for no/yes cross-hatch
+%
+/PatternFill {gsave /PFa [ 9 2 roll ] def
+  PFa 0 get PFa 2 get 2 div add PFa 1 get PFa 3 get 2 div add translate
+  PFa 2 get -2 div PFa 3 get -2 div PFa 2 get PFa 3 get Rec
+  TransparentPatterns {} {gsave 1 setgray fill grestore} ifelse
+  clip
+  currentlinewidth 0.5 mul setlinewidth
+  /PFs PFa 2 get dup mul PFa 3 get dup mul add sqrt def
+  0 0 M PFa 5 get rotate PFs -2 div dup translate
+  0 1 PFs PFa 4 get div 1 add floor cvi
+	{PFa 4 get mul 0 M 0 PFs V} for
+  0 PFa 6 get ne {
+	0 1 PFs PFa 4 get div 1 add floor cvi
+	{PFa 4 get mul 0 2 1 roll M PFs 0 V} for
+ } if
+  stroke grestore} def
+%
+/languagelevel where
+ {pop languagelevel} {1} ifelse
+ 2 lt
+	{/InterpretLevel1 true def}
+	{/InterpretLevel1 Level1 def}
+ ifelse
+%
+% PostScript level 2 pattern fill definitions
+%
+/Level2PatternFill {
+/Tile8x8 {/PaintType 2 /PatternType 1 /TilingType 1 /BBox [0 0 8 8] /XStep 8 /YStep 8}
+	bind def
+/KeepColor {currentrgbcolor [/Pattern /DeviceRGB] setcolorspace} bind def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop 0 0 M 8 8 L 0 8 M 8 0 L stroke} 
+>> matrix makepattern
+/Pat1 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop 0 0 M 8 8 L 0 8 M 8 0 L stroke
+	0 4 M 4 8 L 8 4 L 4 0 L 0 4 L stroke}
+>> matrix makepattern
+/Pat2 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop 0 0 M 0 8 L
+	8 8 L 8 0 L 0 0 L fill}
+>> matrix makepattern
+/Pat3 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop -4 8 M 8 -4 L
+	0 12 M 12 0 L stroke}
+>> matrix makepattern
+/Pat4 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop -4 0 M 8 12 L
+	0 -4 M 12 8 L stroke}
+>> matrix makepattern
+/Pat5 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop -2 8 M 4 -4 L
+	0 12 M 8 -4 L 4 12 M 10 0 L stroke}
+>> matrix makepattern
+/Pat6 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop -2 0 M 4 12 L
+	0 -4 M 8 12 L 4 -4 M 10 8 L stroke}
+>> matrix makepattern
+/Pat7 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop 8 -2 M -4 4 L
+	12 0 M -4 8 L 12 4 M 0 10 L stroke}
+>> matrix makepattern
+/Pat8 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop 0 -2 M 12 4 L
+	-4 0 M 12 8 L -4 4 M 8 10 L stroke}
+>> matrix makepattern
+/Pat9 exch def
+/Pattern1 {PatternBgnd KeepColor Pat1 setpattern} bind def
+/Pattern2 {PatternBgnd KeepColor Pat2 setpattern} bind def
+/Pattern3 {PatternBgnd KeepColor Pat3 setpattern} bind def
+/Pattern4 {PatternBgnd KeepColor Landscape {Pat5} {Pat4} ifelse setpattern} bind def
+/Pattern5 {PatternBgnd KeepColor Landscape {Pat4} {Pat5} ifelse setpattern} bind def
+/Pattern6 {PatternBgnd KeepColor Landscape {Pat9} {Pat6} ifelse setpattern} bind def
+/Pattern7 {PatternBgnd KeepColor Landscape {Pat8} {Pat7} ifelse setpattern} bind def
+} def
+%
+%
+%End of PostScript Level 2 code
+%
+/PatternBgnd {
+  TransparentPatterns {} {gsave 1 setgray fill grestore} ifelse
+} def
+%
+% Substitute for Level 2 pattern fill codes with
+% grayscale if Level 2 support is not selected.
+%
+/Level1PatternFill {
+/Pattern1 {0.250 Density} bind def
+/Pattern2 {0.500 Density} bind def
+/Pattern3 {0.750 Density} bind def
+/Pattern4 {0.125 Density} bind def
+/Pattern5 {0.375 Density} bind def
+/Pattern6 {0.625 Density} bind def
+/Pattern7 {0.875 Density} bind def
+} def
+%
+% Now test for support of Level 2 code
+%
+Level1 {Level1PatternFill} {Level2PatternFill} ifelse
+%
+/Symbol-Oblique /Symbol findfont [1 0 .167 1 0 0] makefont
+dup length dict begin {1 index /FID eq {pop pop} {def} ifelse} forall
+currentdict end definefont pop
+/MFshow {
+   { dup 5 get 3 ge
+     { 5 get 3 eq {gsave} {grestore} ifelse }
+     {dup dup 0 get findfont exch 1 get scalefont setfont
+     [ currentpoint ] exch dup 2 get 0 exch R dup 5 get 2 ne {dup dup 6
+     get exch 4 get {Gshow} {stringwidth pop 0 R} ifelse }if dup 5 get 0 eq
+     {dup 3 get {2 get neg 0 exch R pop} {pop aload pop M} ifelse} {dup 5
+     get 1 eq {dup 2 get exch dup 3 get exch 6 get stringwidth pop -2 div
+     dup 0 R} {dup 6 get stringwidth pop -2 div 0 R 6 get
+     show 2 index {aload pop M neg 3 -1 roll neg R pop pop} {pop pop pop
+     pop aload pop M} ifelse }ifelse }ifelse }
+     ifelse }
+   forall} def
+/Gswidth {dup type /stringtype eq {stringwidth} {pop (n) stringwidth} ifelse} def
+/MFwidth {0 exch { dup 5 get 3 ge { 5 get 3 eq { 0 } { pop } ifelse }
+ {dup 3 get{dup dup 0 get findfont exch 1 get scalefont setfont
+     6 get Gswidth pop add} {pop} ifelse} ifelse} forall} def
+/MLshow { currentpoint stroke M
+  0 exch R
+  Blacktext {gsave 0 setgray MFshow grestore} {MFshow} ifelse } bind def
+/MRshow { currentpoint stroke M
+  exch dup MFwidth neg 3 -1 roll R
+  Blacktext {gsave 0 setgray MFshow grestore} {MFshow} ifelse } bind def
+/MCshow { currentpoint stroke M
+  exch dup MFwidth -2 div 3 -1 roll R
+  Blacktext {gsave 0 setgray MFshow grestore} {MFshow} ifelse } bind def
+/XYsave    { [( ) 1 2 true false 3 ()] } bind def
+/XYrestore { [( ) 1 2 true false 4 ()] } bind def
+Level1 SuppressPDFMark or 
+{} {
+/SDict 10 dict def
+systemdict /pdfmark known not {
+  userdict /pdfmark systemdict /cleartomark get put
+} if
+SDict begin [
+  /Title (clear-channel.eps)
+  /Subject (gnuplot plot)
+  /Creator (gnuplot 4.6 patchlevel 5)
+  /Author (tomh)
+%  /Producer (gnuplot)
+%  /Keywords ()
+  /CreationDate (Sat Jan  9 15:06:52 2016)
+  /DOCINFO pdfmark
+end
+} ifelse
+end
+%%EndProlog
+%%Page: 1 1
+gnudict begin
+gsave
+doclip
+50 50 translate
+0.050 0.050 scale
+0 setgray
+newpath
+(Times-BoldItalic) findfont 140 scalefont setfont
+BackgroundColor 0 lt 3 1 roll 0 lt exch 0 lt or or not {BackgroundColor C 1.000 0 0 7200.00 5040.00 BoxColFill} if
+1.000 UL
+LTb
+LCb setrgbcolor
+686 448 M
+63 0 V
+6198 0 R
+-63 0 V
+stroke
+602 448 M
+[ [(Times-BoldItalic) 140.0 0.0 true true 0 ( 0)]
+] -46.7 MRshow
+1.000 UL
+LTb
+LCb setrgbcolor
+686 1554 M
+63 0 V
+6198 0 R
+-63 0 V
+stroke
+602 1554 M
+[ [(Times-BoldItalic) 140.0 0.0 true true 0 ( 50)]
+] -46.7 MRshow
+1.000 UL
+LTb
+LCb setrgbcolor
+686 2660 M
+63 0 V
+6198 0 R
+-63 0 V
+stroke
+602 2660 M
+[ [(Times-BoldItalic) 140.0 0.0 true true 0 ( 100)]
+] -46.7 MRshow
+1.000 UL
+LTb
+LCb setrgbcolor
+686 3765 M
+63 0 V
+6198 0 R
+-63 0 V
+stroke
+602 3765 M
+[ [(Times-BoldItalic) 140.0 0.0 true true 0 ( 150)]
+] -46.7 MRshow
+1.000 UL
+LTb
+LCb setrgbcolor
+686 4871 M
+63 0 V
+6198 0 R
+-63 0 V
+stroke
+602 4871 M
+[ [(Times-BoldItalic) 140.0 0.0 true true 0 ( 200)]
+] -46.7 MRshow
+1.000 UL
+LTb
+LCb setrgbcolor
+686 448 M
+0 63 V
+0 4360 R
+0 -63 V
+stroke
+686 308 M
+[ [(Times-BoldItalic) 140.0 0.0 true true 0 (-102)]
+] -46.7 MCshow
+1.000 UL
+LTb
+LCb setrgbcolor
+1345 448 M
+0 63 V
+0 4360 R
+0 -63 V
+stroke
+1345 308 M
+[ [(Times-BoldItalic) 140.0 0.0 true true 0 (-100)]
+] -46.7 MCshow
+1.000 UL
+LTb
+LCb setrgbcolor
+2004 448 M
+0 63 V
+0 4360 R
+0 -63 V
+stroke
+2004 308 M
+[ [(Times-BoldItalic) 140.0 0.0 true true 0 (-98)]
+] -46.7 MCshow
+1.000 UL
+LTb
+LCb setrgbcolor
+2663 448 M
+0 63 V
+0 4360 R
+0 -63 V
+stroke
+2663 308 M
+[ [(Times-BoldItalic) 140.0 0.0 true true 0 (-96)]
+] -46.7 MCshow
+1.000 UL
+LTb
+LCb setrgbcolor
+3322 448 M
+0 63 V
+0 4360 R
+0 -63 V
+stroke
+3322 308 M
+[ [(Times-BoldItalic) 140.0 0.0 true true 0 (-94)]
+] -46.7 MCshow
+1.000 UL
+LTb
+LCb setrgbcolor
+3981 448 M
+0 63 V
+0 4360 R
+0 -63 V
+stroke
+3981 308 M
+[ [(Times-BoldItalic) 140.0 0.0 true true 0 (-92)]
+] -46.7 MCshow
+1.000 UL
+LTb
+LCb setrgbcolor
+4640 448 M
+0 63 V
+0 4360 R
+0 -63 V
+stroke
+4640 308 M
+[ [(Times-BoldItalic) 140.0 0.0 true true 0 (-90)]
+] -46.7 MCshow
+1.000 UL
+LTb
+LCb setrgbcolor
+5299 448 M
+0 63 V
+0 4360 R
+0 -63 V
+stroke
+5299 308 M
+[ [(Times-BoldItalic) 140.0 0.0 true true 0 (-88)]
+] -46.7 MCshow
+1.000 UL
+LTb
+LCb setrgbcolor
+5958 448 M
+0 63 V
+0 4360 R
+0 -63 V
+stroke
+5958 308 M
+[ [(Times-BoldItalic) 140.0 0.0 true true 0 (-86)]
+] -46.7 MCshow
+1.000 UL
+LTb
+LCb setrgbcolor
+6617 448 M
+0 63 V
+0 4360 R
+0 -63 V
+stroke
+6617 308 M
+[ [(Times-BoldItalic) 140.0 0.0 true true 0 (-84)]
+] -46.7 MCshow
+1.000 UL
+LTb
+LCb setrgbcolor
+1.000 UL
+LTb
+LCb setrgbcolor
+686 4871 N
+686 448 L
+6261 0 V
+0 4423 V
+-6261 0 V
+Z stroke
+LCb setrgbcolor
+112 2659 M
+currentpoint gsave translate -270 rotate 0 0 moveto
+[ [(Times-BoldItalic) 140.0 0.0 true true 0 (Number of packets received)]
+] -46.7 MCshow
+grestore
+LTb
+LCb setrgbcolor
+3816 98 M
+[ [(Times-BoldItalic) 140.0 0.0 true true 0 (RSS\(dBm\))]
+] -46.7 MCshow
+LTb
+1.000 UP
+1.000 UL
+LTb
+LCb setrgbcolor
+% Begin plot #1
+1.000 UL
+LT0
+LC0 setrgbcolor
+LCb setrgbcolor
+6296 4738 M
+[ [(Times-BoldItalic) 140.0 0.0 true true 0 (DsssRate1Mbps)]
+] -46.7 MRshow
+LT0
+6380 4738 M
+399 0 V
+686 448 M
+165 0 V
+165 0 V
+164 0 V
+165 0 V
+165 0 V
+165 0 V
+164 133 V
+165 884 V
+165 1416 V
+165 1304 V
+164 354 V
+165 244 V
+165 88 V
+165 0 V
+164 0 V
+165 0 V
+165 0 V
+165 0 V
+165 0 V
+164 0 V
+165 0 V
+165 0 V
+165 0 V
+164 0 V
+165 0 V
+165 0 V
+165 0 V
+164 0 V
+165 0 V
+165 0 V
+165 0 V
+164 0 V
+165 0 V
+165 0 V
+165 0 V
+164 0 V
+165 0 V
+165 0 V
+% End plot #1
+% Begin plot #2
+stroke
+LT1
+LC1 setrgbcolor
+LCb setrgbcolor
+6296 4598 M
+[ [(Times-BoldItalic) 140.0 0.0 true true 0 (DsssRate2Mbps)]
+] -46.7 MRshow
+LT1
+6380 4598 M
+399 0 V
+686 448 M
+165 0 V
+165 0 V
+164 0 V
+165 0 V
+165 0 V
+165 0 V
+164 0 V
+165 0 V
+165 0 V
+165 0 V
+164 0 V
+165 0 V
+165 0 V
+165 0 V
+164 22 V
+165 111 V
+165 553 V
+165 1702 V
+165 1018 V
+164 641 V
+165 310 V
+165 44 V
+165 22 V
+164 0 V
+165 0 V
+165 0 V
+165 0 V
+164 0 V
+165 0 V
+165 0 V
+165 0 V
+164 0 V
+165 0 V
+165 0 V
+165 0 V
+164 0 V
+165 0 V
+165 0 V
+% End plot #2
+% Begin plot #3
+stroke
+LT2
+LC2 setrgbcolor
+LCb setrgbcolor
+6296 4458 M
+[ [(Times-BoldItalic) 140.0 0.0 true true 0 (DsssRate5)]
+[(Times-BoldItalic) 112.0 -42.0 true true 0 (5)]
+[(Times-BoldItalic) 140.0 0.0 true true 0 (Mbps)]
+] -32.7 MRshow
+LT2
+6380 4458 M
+399 0 V
+686 448 M
+165 0 V
+165 0 V
+164 0 V
+165 0 V
+165 0 V
+165 0 V
+164 0 V
+165 0 V
+165 0 V
+165 0 V
+164 0 V
+165 0 V
+165 0 V
+165 0 V
+164 0 V
+165 0 V
+165 0 V
+165 0 V
+165 0 V
+164 0 V
+165 0 V
+165 531 V
+165 1150 V
+164 1703 V
+165 707 V
+165 244 V
+165 66 V
+164 22 V
+165 0 V
+165 0 V
+165 0 V
+164 0 V
+165 0 V
+165 0 V
+165 0 V
+164 0 V
+165 0 V
+165 0 V
+% End plot #3
+% Begin plot #4
+stroke
+LT3
+LC3 setrgbcolor
+LCb setrgbcolor
+6296 4318 M
+[ [(Times-BoldItalic) 140.0 0.0 true true 0 (DsssRate11Mbps)]
+] -46.7 MRshow
+LT3
+6380 4318 M
+399 0 V
+686 448 M
+165 0 V
+165 0 V
+164 0 V
+165 0 V
+165 0 V
+165 0 V
+164 0 V
+165 0 V
+165 0 V
+165 0 V
+164 0 V
+165 0 V
+165 0 V
+165 0 V
+164 0 V
+165 0 V
+165 0 V
+165 0 V
+165 0 V
+164 0 V
+165 0 V
+165 0 V
+165 0 V
+164 0 V
+165 0 V
+165 0 V
+165 44 V
+164 531 V
+165 1327 V
+165 1415 V
+165 619 V
+164 421 V
+165 44 V
+165 22 V
+165 0 V
+164 0 V
+165 0 V
+165 0 V
+% End plot #4
+stroke
+LTb
+LCb setrgbcolor
+686 4871 N
+686 448 L
+6261 0 V
+0 4423 V
+-6261 0 V
+Z stroke
+1.000 UP
+1.000 UL
+LTb
+LCb setrgbcolor
+stroke
+grestore
+end
+showpage
+%%Trailer
+%%DocumentFonts: Times-BoldItalic
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/wifi/doc/source/figures/nist-frame-success-rate.eps	Thu Jan 14 14:23:17 2016 -0800
@@ -0,0 +1,3612 @@
+%!PS-Adobe-2.0 EPSF-2.0
+%%Title: nist-frame-success-rate.eps
+%%Creator: gnuplot 4.6 patchlevel 5
+%%CreationDate: Fri Jan  8 17:37:51 2016
+%%DocumentFonts: (atend)
+%%BoundingBox: 50 50 410 302
+%%EndComments
+%%BeginProlog
+/gnudict 256 dict def
+gnudict begin
+%
+% The following true/false flags may be edited by hand if desired.
+% The unit line width and grayscale image gamma correction may also be changed.
+%
+/Color true def
+/Blacktext false def
+/Solid false def
+/Dashlength 1 def
+/Landscape false def
+/Level1 false def
+/Rounded false def
+/ClipToBoundingBox false def
+/SuppressPDFMark false def
+/TransparentPatterns false def
+/gnulinewidth 5.000 def
+/userlinewidth gnulinewidth def
+/Gamma 1.0 def
+/BackgroundColor {-1.000 -1.000 -1.000} def
+%
+/vshift -46 def
+/dl1 {
+  10.0 Dashlength mul mul
+  Rounded { currentlinewidth 0.75 mul sub dup 0 le { pop 0.01 } if } if
+} def
+/dl2 {
+  10.0 Dashlength mul mul
+  Rounded { currentlinewidth 0.75 mul add } if
+} def
+/hpt_ 31.5 def
+/vpt_ 31.5 def
+/hpt hpt_ def
+/vpt vpt_ def
+/doclip {
+  ClipToBoundingBox {
+    newpath 50 50 moveto 410 50 lineto 410 302 lineto 50 302 lineto closepath
+    clip
+  } if
+} def
+%
+% Gnuplot Prolog Version 4.6 (September 2012)
+%
+%/SuppressPDFMark true def
+%
+/M {moveto} bind def
+/L {lineto} bind def
+/R {rmoveto} bind def
+/V {rlineto} bind def
+/N {newpath moveto} bind def
+/Z {closepath} bind def
+/C {setrgbcolor} bind def
+/f {rlineto fill} bind def
+/g {setgray} bind def
+/Gshow {show} def   % May be redefined later in the file to support UTF-8
+/vpt2 vpt 2 mul def
+/hpt2 hpt 2 mul def
+/Lshow {currentpoint stroke M 0 vshift R 
+	Blacktext {gsave 0 setgray show grestore} {show} ifelse} def
+/Rshow {currentpoint stroke M dup stringwidth pop neg vshift R
+	Blacktext {gsave 0 setgray show grestore} {show} ifelse} def
+/Cshow {currentpoint stroke M dup stringwidth pop -2 div vshift R 
+	Blacktext {gsave 0 setgray show grestore} {show} ifelse} def
+/UP {dup vpt_ mul /vpt exch def hpt_ mul /hpt exch def
+  /hpt2 hpt 2 mul def /vpt2 vpt 2 mul def} def
+/DL {Color {setrgbcolor Solid {pop []} if 0 setdash}
+ {pop pop pop 0 setgray Solid {pop []} if 0 setdash} ifelse} def
+/BL {stroke userlinewidth 2 mul setlinewidth
+	Rounded {1 setlinejoin 1 setlinecap} if} def
+/AL {stroke userlinewidth 2 div setlinewidth
+	Rounded {1 setlinejoin 1 setlinecap} if} def
+/UL {dup gnulinewidth mul /userlinewidth exch def
+	dup 1 lt {pop 1} if 10 mul /udl exch def} def
+/PL {stroke userlinewidth setlinewidth
+	Rounded {1 setlinejoin 1 setlinecap} if} def
+3.8 setmiterlimit
+% Default Line colors
+/LCw {1 1 1} def
+/LCb {0 0 0} def
+/LCa {0 0 0} def
+/LC0 {1 0 0} def
+/LC1 {0 1 0} def
+/LC2 {0 0 1} def
+/LC3 {1 0 1} def
+/LC4 {0 1 1} def
+/LC5 {1 1 0} def
+/LC6 {0 0 0} def
+/LC7 {1 0.3 0} def
+/LC8 {0.5 0.5 0.5} def
+% Default Line Types
+/LTw {PL [] 1 setgray} def
+/LTb {BL [] LCb DL} def
+/LTa {AL [1 udl mul 2 udl mul] 0 setdash LCa setrgbcolor} def
+/LT0 {PL [] LC0 DL} def
+/LT1 {PL [4 dl1 2 dl2] LC1 DL} def
+/LT2 {PL [2 dl1 3 dl2] LC2 DL} def
+/LT3 {PL [1 dl1 1.5 dl2] LC3 DL} def
+/LT4 {PL [6 dl1 2 dl2 1 dl1 2 dl2] LC4 DL} def
+/LT5 {PL [3 dl1 3 dl2 1 dl1 3 dl2] LC5 DL} def
+/LT6 {PL [2 dl1 2 dl2 2 dl1 6 dl2] LC6 DL} def
+/LT7 {PL [1 dl1 2 dl2 6 dl1 2 dl2 1 dl1 2 dl2] LC7 DL} def
+/LT8 {PL [2 dl1 2 dl2 2 dl1 2 dl2 2 dl1 2 dl2 2 dl1 4 dl2] LC8 DL} def
+/Pnt {stroke [] 0 setdash gsave 1 setlinecap M 0 0 V stroke grestore} def
+/Dia {stroke [] 0 setdash 2 copy vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath stroke
+  Pnt} def
+/Pls {stroke [] 0 setdash vpt sub M 0 vpt2 V
+  currentpoint stroke M
+  hpt neg vpt neg R hpt2 0 V stroke
+ } def
+/Box {stroke [] 0 setdash 2 copy exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V closepath stroke
+  Pnt} def
+/Crs {stroke [] 0 setdash exch hpt sub exch vpt add M
+  hpt2 vpt2 neg V currentpoint stroke M
+  hpt2 neg 0 R hpt2 vpt2 V stroke} def
+/TriU {stroke [] 0 setdash 2 copy vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath stroke
+  Pnt} def
+/Star {2 copy Pls Crs} def
+/BoxF {stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V closepath fill} def
+/TriUF {stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath fill} def
+/TriD {stroke [] 0 setdash 2 copy vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath stroke
+  Pnt} def
+/TriDF {stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath fill} def
+/DiaF {stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath fill} def
+/Pent {stroke [] 0 setdash 2 copy gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath stroke grestore Pnt} def
+/PentF {stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath fill grestore} def
+/Circle {stroke [] 0 setdash 2 copy
+  hpt 0 360 arc stroke Pnt} def
+/CircleF {stroke [] 0 setdash hpt 0 360 arc fill} def
+/C0 {BL [] 0 setdash 2 copy moveto vpt 90 450 arc} bind def
+/C1 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 0 90 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C2 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 90 180 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C3 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 0 180 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C4 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 180 270 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C5 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 0 90 arc
+	2 copy moveto
+	2 copy vpt 180 270 arc closepath fill
+	vpt 0 360 arc} bind def
+/C6 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 90 270 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C7 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 0 270 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C8 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 270 360 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C9 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 270 450 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C10 {BL [] 0 setdash 2 copy 2 copy moveto vpt 270 360 arc closepath fill
+	2 copy moveto
+	2 copy vpt 90 180 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C11 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 0 180 arc closepath fill
+	2 copy moveto
+	2 copy vpt 270 360 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C12 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 180 360 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C13 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 0 90 arc closepath fill
+	2 copy moveto
+	2 copy vpt 180 360 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/C14 {BL [] 0 setdash 2 copy moveto
+	2 copy vpt 90 360 arc closepath fill
+	vpt 0 360 arc} bind def
+/C15 {BL [] 0 setdash 2 copy vpt 0 360 arc closepath fill
+	vpt 0 360 arc closepath} bind def
+/Rec {newpath 4 2 roll moveto 1 index 0 rlineto 0 exch rlineto
+	neg 0 rlineto closepath} bind def
+/Square {dup Rec} bind def
+/Bsquare {vpt sub exch vpt sub exch vpt2 Square} bind def
+/S0 {BL [] 0 setdash 2 copy moveto 0 vpt rlineto BL Bsquare} bind def
+/S1 {BL [] 0 setdash 2 copy vpt Square fill Bsquare} bind def
+/S2 {BL [] 0 setdash 2 copy exch vpt sub exch vpt Square fill Bsquare} bind def
+/S3 {BL [] 0 setdash 2 copy exch vpt sub exch vpt2 vpt Rec fill Bsquare} bind def
+/S4 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt Square fill Bsquare} bind def
+/S5 {BL [] 0 setdash 2 copy 2 copy vpt Square fill
+	exch vpt sub exch vpt sub vpt Square fill Bsquare} bind def
+/S6 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill Bsquare} bind def
+/S7 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt vpt2 Rec fill
+	2 copy vpt Square fill Bsquare} bind def
+/S8 {BL [] 0 setdash 2 copy vpt sub vpt Square fill Bsquare} bind def
+/S9 {BL [] 0 setdash 2 copy vpt sub vpt vpt2 Rec fill Bsquare} bind def
+/S10 {BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt Square fill
+	Bsquare} bind def
+/S11 {BL [] 0 setdash 2 copy vpt sub vpt Square fill 2 copy exch vpt sub exch vpt2 vpt Rec fill
+	Bsquare} bind def
+/S12 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill Bsquare} bind def
+/S13 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
+	2 copy vpt Square fill Bsquare} bind def
+/S14 {BL [] 0 setdash 2 copy exch vpt sub exch vpt sub vpt2 vpt Rec fill
+	2 copy exch vpt sub exch vpt Square fill Bsquare} bind def
+/S15 {BL [] 0 setdash 2 copy Bsquare fill Bsquare} bind def
+/D0 {gsave translate 45 rotate 0 0 S0 stroke grestore} bind def
+/D1 {gsave translate 45 rotate 0 0 S1 stroke grestore} bind def
+/D2 {gsave translate 45 rotate 0 0 S2 stroke grestore} bind def
+/D3 {gsave translate 45 rotate 0 0 S3 stroke grestore} bind def
+/D4 {gsave translate 45 rotate 0 0 S4 stroke grestore} bind def
+/D5 {gsave translate 45 rotate 0 0 S5 stroke grestore} bind def
+/D6 {gsave translate 45 rotate 0 0 S6 stroke grestore} bind def
+/D7 {gsave translate 45 rotate 0 0 S7 stroke grestore} bind def
+/D8 {gsave translate 45 rotate 0 0 S8 stroke grestore} bind def
+/D9 {gsave translate 45 rotate 0 0 S9 stroke grestore} bind def
+/D10 {gsave translate 45 rotate 0 0 S10 stroke grestore} bind def
+/D11 {gsave translate 45 rotate 0 0 S11 stroke grestore} bind def
+/D12 {gsave translate 45 rotate 0 0 S12 stroke grestore} bind def
+/D13 {gsave translate 45 rotate 0 0 S13 stroke grestore} bind def
+/D14 {gsave translate 45 rotate 0 0 S14 stroke grestore} bind def
+/D15 {gsave translate 45 rotate 0 0 S15 stroke grestore} bind def
+/DiaE {stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V closepath stroke} def
+/BoxE {stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V closepath stroke} def
+/TriUE {stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V closepath stroke} def
+/TriDE {stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V closepath stroke} def
+/PentE {stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  closepath stroke grestore} def
+/CircE {stroke [] 0 setdash 
+  hpt 0 360 arc stroke} def
+/Opaque {gsave closepath 1 setgray fill grestore 0 setgray closepath} def
+/DiaW {stroke [] 0 setdash vpt add M
+  hpt neg vpt neg V hpt vpt neg V
+  hpt vpt V hpt neg vpt V Opaque stroke} def
+/BoxW {stroke [] 0 setdash exch hpt sub exch vpt add M
+  0 vpt2 neg V hpt2 0 V 0 vpt2 V
+  hpt2 neg 0 V Opaque stroke} def
+/TriUW {stroke [] 0 setdash vpt 1.12 mul add M
+  hpt neg vpt -1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt 1.62 mul V Opaque stroke} def
+/TriDW {stroke [] 0 setdash vpt 1.12 mul sub M
+  hpt neg vpt 1.62 mul V
+  hpt 2 mul 0 V
+  hpt neg vpt -1.62 mul V Opaque stroke} def
+/PentW {stroke [] 0 setdash gsave
+  translate 0 hpt M 4 {72 rotate 0 hpt L} repeat
+  Opaque stroke grestore} def
+/CircW {stroke [] 0 setdash 
+  hpt 0 360 arc Opaque stroke} def
+/BoxFill {gsave Rec 1 setgray fill grestore} def
+/Density {
+  /Fillden exch def
+  currentrgbcolor
+  /ColB exch def /ColG exch def /ColR exch def
+  /ColR ColR Fillden mul Fillden sub 1 add def
+  /ColG ColG Fillden mul Fillden sub 1 add def
+  /ColB ColB Fillden mul Fillden sub 1 add def
+  ColR ColG ColB setrgbcolor} def
+/BoxColFill {gsave Rec PolyFill} def
+/PolyFill {gsave Density fill grestore grestore} def
+/h {rlineto rlineto rlineto gsave closepath fill grestore} bind def
+%
+% PostScript Level 1 Pattern Fill routine for rectangles
+% Usage: x y w h s a XX PatternFill
+%	x,y = lower left corner of box to be filled
+%	w,h = width and height of box
+%	  a = angle in degrees between lines and x-axis
+%	 XX = 0/1 for no/yes cross-hatch
+%
+/PatternFill {gsave /PFa [ 9 2 roll ] def
+  PFa 0 get PFa 2 get 2 div add PFa 1 get PFa 3 get 2 div add translate
+  PFa 2 get -2 div PFa 3 get -2 div PFa 2 get PFa 3 get Rec
+  TransparentPatterns {} {gsave 1 setgray fill grestore} ifelse
+  clip
+  currentlinewidth 0.5 mul setlinewidth
+  /PFs PFa 2 get dup mul PFa 3 get dup mul add sqrt def
+  0 0 M PFa 5 get rotate PFs -2 div dup translate
+  0 1 PFs PFa 4 get div 1 add floor cvi
+	{PFa 4 get mul 0 M 0 PFs V} for
+  0 PFa 6 get ne {
+	0 1 PFs PFa 4 get div 1 add floor cvi
+	{PFa 4 get mul 0 2 1 roll M PFs 0 V} for
+ } if
+  stroke grestore} def
+%
+/languagelevel where
+ {pop languagelevel} {1} ifelse
+ 2 lt
+	{/InterpretLevel1 true def}
+	{/InterpretLevel1 Level1 def}
+ ifelse
+%
+% PostScript level 2 pattern fill definitions
+%
+/Level2PatternFill {
+/Tile8x8 {/PaintType 2 /PatternType 1 /TilingType 1 /BBox [0 0 8 8] /XStep 8 /YStep 8}
+	bind def
+/KeepColor {currentrgbcolor [/Pattern /DeviceRGB] setcolorspace} bind def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop 0 0 M 8 8 L 0 8 M 8 0 L stroke} 
+>> matrix makepattern
+/Pat1 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop 0 0 M 8 8 L 0 8 M 8 0 L stroke
+	0 4 M 4 8 L 8 4 L 4 0 L 0 4 L stroke}
+>> matrix makepattern
+/Pat2 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop 0 0 M 0 8 L
+	8 8 L 8 0 L 0 0 L fill}
+>> matrix makepattern
+/Pat3 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop -4 8 M 8 -4 L
+	0 12 M 12 0 L stroke}
+>> matrix makepattern
+/Pat4 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop -4 0 M 8 12 L
+	0 -4 M 12 8 L stroke}
+>> matrix makepattern
+/Pat5 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop -2 8 M 4 -4 L
+	0 12 M 8 -4 L 4 12 M 10 0 L stroke}
+>> matrix makepattern
+/Pat6 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop -2 0 M 4 12 L
+	0 -4 M 8 12 L 4 -4 M 10 8 L stroke}
+>> matrix makepattern
+/Pat7 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop 8 -2 M -4 4 L
+	12 0 M -4 8 L 12 4 M 0 10 L stroke}
+>> matrix makepattern
+/Pat8 exch def
+<< Tile8x8
+ /PaintProc {0.5 setlinewidth pop 0 -2 M 12 4 L
+	-4 0 M 12 8 L -4 4 M 8 10 L stroke}
+>> matrix makepattern
+/Pat9 exch def
+/Pattern1 {PatternBgnd KeepColor Pat1 setpattern} bind def
+/Pattern2 {PatternBgnd KeepColor Pat2 setpattern} bind def
+/Pattern3 {PatternBgnd KeepColor Pat3 setpattern} bind def
+/Pattern4 {PatternBgnd KeepColor Landscape {Pat5} {Pat4} ifelse setpattern} bind def
+/Pattern5 {PatternBgnd KeepColor Landscape {Pat4} {Pat5} ifelse setpattern} bind def
+/Pattern6 {PatternBgnd KeepColor Landscape {Pat9} {Pat6} ifelse setpattern} bind def
+/Pattern7 {PatternBgnd KeepColor Landscape {Pat8} {Pat7} ifelse setpattern} bind def
+} def
+%
+%
+%End of PostScript Level 2 code
+%
+/PatternBgnd {
+  TransparentPatterns {} {gsave 1 setgray fill grestore} ifelse
+} def
+%
+% Substitute for Level 2 pattern fill codes with
+% grayscale if Level 2 support is not selected.
+%
+/Level1PatternFill {
+/Pattern1 {0.250 Density} bind def
+/Pattern2 {0.500 Density} bind def
+/Pattern3 {0.750 Density} bind def
+/Pattern4 {0.125 Density} bind def
+/Pattern5 {0.375 Density} bind def
+/Pattern6 {0.625 Density} bind def
+/Pattern7 {0.875 Density} bind def
+} def
+%
+% Now test for support of Level 2 code
+%
+Level1 {Level1PatternFill} {Level2PatternFill} ifelse
+%
+/Symbol-Oblique /Symbol findfont [1 0 .167 1 0 0] makefont
+dup length dict begin {1 index /FID eq {pop pop} {def} ifelse} forall
+currentdict end definefont pop
+/MFshow {
+   { dup 5 get 3 ge
+     { 5 get 3 eq {gsave} {grestore} ifelse }
+     {dup dup 0 get findfont exch 1 get scalefont setfont
+     [ currentpoint ] exch dup 2 get 0 exch R dup 5 get 2 ne {dup dup 6
+     get exch 4 get {Gshow} {stringwidth pop 0 R} ifelse }if dup 5 get 0 eq
+     {dup 3 get {2 get neg 0 exch R pop} {pop aload pop M} ifelse} {dup 5
+     get 1 eq {dup 2 get exch dup 3 get exch 6 get stringwidth pop -2 div
+     dup 0 R} {dup 6 get stringwidth pop -2 div 0 R 6 get
+     show 2 index {aload pop M neg 3 -1 roll neg R pop pop} {pop pop pop
+     pop aload pop M} ifelse }ifelse }ifelse }
+     ifelse }
+   forall} def
+/Gswidth {dup type /stringtype eq {stringwidth} {pop (n) stringwidth} ifelse} def
+/MFwidth {0 exch { dup 5 get 3 ge { 5 get 3 eq { 0 } { pop } ifelse }
+ {dup 3 get{dup dup 0 get findfont exch 1 get scalefont setfont
+     6 get Gswidth pop add} {pop} ifelse} ifelse} forall} def
+/MLshow { currentpoint stroke M
+  0 exch R
+  Blacktext {gsave 0 setgray MFshow grestore} {MFshow} ifelse } bind def
+/MRshow { currentpoint stroke M
+  exch dup MFwidth neg 3 -1 roll R
+  Blacktext {gsave 0 setgray MFshow grestore} {MFshow} ifelse } bind def
+/MCshow { currentpoint stroke M
+  exch dup MFwidth -2 div 3 -1 roll R
+  Blacktext {gsave 0 setgray MFshow grestore} {MFshow} ifelse } bind def
+/XYsave    { [( ) 1 2 true false 3 ()] } bind def
+/XYrestore { [( ) 1 2 true false 4 ()] } bind def
+Level1 SuppressPDFMark or 
+{} {
+/SDict 10 dict def
+systemdict /pdfmark known not {
+  userdict /pdfmark systemdict /cleartomark get put
+} if
+SDict begin [
+  /Title (nist-frame-success-rate.eps)
+  /Subject (gnuplot plot)
+  /Creator (gnuplot 4.6 patchlevel 5)
+  /Author (tomh)
+%  /Producer (gnuplot)
+%  /Keywords ()
+  /CreationDate (Fri Jan  8 17:37:51 2016)
+  /DOCINFO pdfmark
+end
+} ifelse
+end
+%%EndProlog
+%%Page: 1 1
+gnudict begin
+gsave
+doclip
+50 50 translate
+0.050 0.050 scale
+0 setgray
+newpath
+(Times-BoldItalic) findfont 140 scalefont setfont
+BackgroundColor 0 lt 3 1 roll 0 lt exch 0 lt or or not {BackgroundColor C 1.000 0 0 7200.00 5040.00 BoxColFill} if
+1.000 UL
+LTb
+LCb setrgbcolor
+686 448 M
+63 0 V
+6198 0 R
+-63 0 V
+stroke
+602 448 M
+[ [(Times-BoldItalic) 140.0 0.0 true true 0 ( 0)]
+] -46.7 MRshow
+1.000 UL
+LTb
+LCb setrgbcolor
+686 1185 M
+63 0 V
+6198 0 R
+-63 0 V
+stroke
+602 1185 M
+[ [(Times-BoldItalic) 140.0 0.0 true true 0 ( 0.2)]
+] -46.7 MRshow
+1.000 UL
+LTb
+LCb setrgbcolor
+686 1922 M
+63 0 V
+6198 0 R
+-63 0 V
+stroke
+602 1922 M
+[ [(Times-BoldItalic) 140.0 0.0 true true 0 ( 0.4)]
+] -46.7 MRshow
+1.000 UL
+LTb
+LCb setrgbcolor
+686 2660 M
+63 0 V
+6198 0 R
+-63 0 V
+stroke
+602 2660 M
+[ [(Times-BoldItalic) 140.0 0.0 true true 0 ( 0.6)]
+] -46.7 MRshow
+1.000 UL
+LTb
+LCb setrgbcolor
+686 3397 M
+63 0 V
+6198 0 R
+-63 0 V
+stroke
+602 3397 M
+[ [(Times-BoldItalic) 140.0 0.0 true true 0 ( 0.8)]
+] -46.7 MRshow
+1.000 UL
+LTb
+LCb setrgbcolor
+686 4134 M
+63 0 V
+6198 0 R
+-63 0 V
+stroke
+602 4134 M
+[ [(Times-BoldItalic) 140.0 0.0 true true 0 ( 1)]
+] -46.7 MRshow
+1.000 UL
+LTb
+LCb setrgbcolor
+686 4871 M
+63 0 V
+6198 0 R
+-63 0 V
+stroke
+602 4871 M
+[ [(Times-BoldItalic) 140.0 0.0 true true 0 ( 1.2)]
+] -46.7 MRshow
+1.000 UL
+LTb
+LCb setrgbcolor
+686 448 M
+0 63 V
+0 4360 R
+0 -63 V
+stroke
+686 308 M
+[ [(Times-BoldItalic) 140.0 0.0 true true 0 (-5)]
+] -46.7 MCshow
+1.000 UL
+LTb
+LCb setrgbcolor
+1580 448 M
+0 63 V
+0 4360 R
+0 -63 V
+stroke
+1580 308 M
+[ [(Times-BoldItalic) 140.0 0.0 true true 0 ( 0)]
+] -46.7 MCshow
+1.000 UL
+LTb
+LCb setrgbcolor
+2475 448 M
+0 63 V
+0 4360 R
+0 -63 V
+stroke
+2475 308 M
+[ [(Times-BoldItalic) 140.0 0.0 true true 0 ( 5)]
+] -46.7 MCshow
+1.000 UL
+LTb
+LCb setrgbcolor
+3369 448 M
+0 63 V
+0 4360 R
+0 -63 V
+stroke
+3369 308 M
+[ [(Times-BoldItalic) 140.0 0.0 true true 0 ( 10)]
+] -46.7 MCshow
+1.000 UL
+LTb
+LCb setrgbcolor
+4264 448 M
+0 63 V
+0 4360 R
+0 -63 V
+stroke
+4264 308 M
+[ [(Times-BoldItalic) 140.0 0.0 true true 0 ( 15)]
+] -46.7 MCshow
+1.000 UL
+LTb
+LCb setrgbcolor
+5158 448 M
+0 63 V
+0 4360 R
+0 -63 V
+stroke
+5158 308 M
+[ [(Times-BoldItalic) 140.0 0.0 true true 0 ( 20)]
+] -46.7 MCshow
+1.000 UL
+LTb
+LCb setrgbcolor
+6053 448 M
+0 63 V
+0 4360 R
+0 -63 V
+stroke
+6053 308 M
+[ [(Times-BoldItalic) 140.0 0.0 true true 0 ( 25)]
+] -46.7 MCshow
+1.000 UL
+LTb
+LCb setrgbcolor
+6947 448 M
+0 63 V
+0 4360 R
+0 -63 V
+stroke
+6947 308 M
+[ [(Times-BoldItalic) 140.0 0.0 true true 0 ( 30)]
+] -46.7 MCshow
+1.000 UL
+LTb
+LCb setrgbcolor
+1.000 UL
+LTb
+LCb setrgbcolor
+686 4871 N
+686 448 L
+6261 0 V
+0 4423 V
+-6261 0 V
+Z stroke
+LCb setrgbcolor
+112 2659 M
+currentpoint gsave translate -270 rotate 0 0 moveto
+[ [(Times-BoldItalic) 140.0 0.0 true true 0 (Frame Success Rate)]
+] -46.7 MCshow
+grestore
+LTb
+LCb setrgbcolor
+3816 98 M
+[ [(Times-BoldItalic) 140.0 0.0 true true 0 (SNR\(dB\))]
+] -46.7 MCshow
+LTb
+1.000 UP
+1.000 UL
+LTb
+LCb setrgbcolor
+% Begin plot #1
+5.000 UL
+LT0
+LC0 setrgbcolor
+LCb setrgbcolor
+6296 4738 M
+[ [(Times-BoldItalic) 140.0 0.0 true true 0 (OfdmRate6Mbps)]
+] -46.7 MRshow
+LT0
+6380 4738 M
+399 0 V
+686 448 M
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 2 V
+18 13 V
+18 59 V
+18 155 V
+18 283 V
+18 393 V
+18 455 V
+18 457 V
+17 417 V
+18 354 V
+18 286 V
+18 222 V
+18 167 V
+18 123 V
+18 90 V
+18 64 V
+18 45 V
+17 32 V
+18 22 V
+18 15 V
+18 11 V
+18 7 V
+18 5 V
+18 3 V
+18 2 V
+stroke 2511 4130 M
+18 1 V
+17 1 V
+18 1 V
+18 0 V
+18 0 V
+18 1 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+stroke 4371 4134 M
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+stroke 6231 4134 M
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+% End plot #1
+% Begin plot #2
+stroke
+LT1
+LC1 setrgbcolor
+LCb setrgbcolor
+6296 4598 M
+[ [(Times-BoldItalic) 140.0 0.0 true true 0 (OfdmRate9Mbps)]
+] -46.7 MRshow
+LT1
+6380 4598 M
+399 0 V
+686 448 M
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+stroke 2511 448 M
+18 0 V
+17 0 V
+18 0 V
+18 1 V
+18 6 V
+18 34 V
+18 104 V
+18 212 V
+18 327 V
+18 408 V
+17 439 V
+18 425 V
+18 378 V
+18 320 V
+18 258 V
+18 202 V
+18 154 V
+18 116 V
+18 86 V
+17 62 V
+18 45 V
+18 33 V
+18 23 V
+18 16 V
+18 12 V
+18 8 V
+18 5 V
+18 4 V
+17 3 V
+18 1 V
+18 2 V
+18 0 V
+18 1 V
+18 0 V
+18 0 V
+18 1 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+stroke 4371 4134 M
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+stroke 6231 4134 M
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+% End plot #2
+% Begin plot #3
+stroke
+LT2
+LC2 setrgbcolor
+LCb setrgbcolor
+6296 4458 M
+[ [(Times-BoldItalic) 140.0 0.0 true true 0 (OfdmRate12Mbps)]
+] -46.7 MRshow
+LT2
+6380 4458 M
+399 0 V
+686 448 M
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+stroke 2511 448 M
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 1 V
+18 11 V
+18 52 V
+18 144 V
+18 269 V
+17 384 V
+18 451 V
+18 459 V
+18 423 V
+18 361 V
+18 293 V
+18 227 V
+18 173 V
+18 127 V
+17 93 V
+18 66 V
+18 47 V
+18 33 V
+18 23 V
+18 16 V
+18 11 V
+18 7 V
+18 5 V
+17 4 V
+18 2 V
+18 1 V
+18 1 V
+18 1 V
+18 0 V
+18 0 V
+18 1 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+stroke 4371 4134 M
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+stroke 6231 4134 M
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+% End plot #3
+% Begin plot #4
+stroke
+LT3
+LC3 setrgbcolor
+LCb setrgbcolor
+6296 4318 M
+[ [(Times-BoldItalic) 140.0 0.0 true true 0 (OfdmRate18Mbps)]
+] -46.7 MRshow
+LT3
+6380 4318 M
+399 0 V
+686 448 M
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+stroke 2511 448 M
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 6 V
+18 29 V
+18 94 V
+17 201 V
+18 316 V
+18 402 V
+18 438 V
+18 428 V
+18 384 V
+18 326 V
+18 264 V
+18 207 V
+17 159 V
+18 119 V
+18 89 V
+18 65 V
+18 46 V
+18 34 V
+18 24 V
+18 17 V
+18 12 V
+17 8 V
+18 6 V
+18 4 V
+18 2 V
+18 2 V
+18 1 V
+18 1 V
+18 1 V
+18 0 V
+17 0 V
+18 1 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+stroke 4371 4134 M
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+stroke 6231 4134 M
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+% End plot #4
+% Begin plot #5
+stroke
+LT4
+LC4 setrgbcolor
+LCb setrgbcolor
+6296 4178 M
+[ [(Times-BoldItalic) 140.0 0.0 true true 0 (OfdmRate24Mbps)]
+] -46.7 MRshow
+LT4
+6380 4178 M
+399 0 V
+686 448 M
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+stroke 2511 448 M
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 1 V
+18 8 V
+18 34 V
+17 96 V
+18 191 V
+18 293 V
+18 374 V
+18 414 V
+18 412 V
+18 379 V
+18 329 V
+18 273 V
+17 219 V
+18 171 V
+18 131 V
+18 98 V
+18 74 V
+18 54 V
+18 39 V
+18 28 V
+18 21 V
+17 14 V
+18 10 V
+18 7 V
+18 5 V
+18 4 V
+18 2 V
+18 2 V
+18 1 V
+18 0 V
+17 1 V
+18 0 V
+18 0 V
+18 1 V
+18 0 V
+stroke 4371 4134 M
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+stroke 6231 4134 M
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+% End plot #5
+% Begin plot #6
+stroke
+LT5
+LC5 setrgbcolor
+LCb setrgbcolor
+6296 4038 M
+[ [(Times-BoldItalic) 140.0 0.0 true true 0 (OfdmRate36Mbps)]
+] -46.7 MRshow
+LT5
+6380 4038 M
+399 0 V
+686 448 M
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+stroke 2511 448 M
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 1 V
+18 8 V
+18 35 V
+18 100 V
+stroke 4371 592 M
+18 195 V
+18 298 V
+18 376 V
+18 412 V
+17 408 V
+18 374 V
+18 324 V
+18 269 V
+18 217 V
+18 169 V
+18 131 V
+18 99 V
+18 74 V
+17 54 V
+18 41 V
+18 29 V
+18 21 V
+18 15 V
+18 11 V
+18 8 V
+18 5 V
+18 4 V
+17 2 V
+18 2 V
+18 1 V
+18 1 V
+18 1 V
+18 0 V
+18 0 V
+18 1 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+stroke 6231 4134 M
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+% End plot #6
+% Begin plot #7
+stroke
+LT6
+LC6 setrgbcolor
+LCb setrgbcolor
+6296 3898 M
+[ [(Times-BoldItalic) 140.0 0.0 true true 0 (OfdmRate48Mbps)]
+] -46.7 MRshow
+LT6
+6380 3898 M
+399 0 V
+686 448 M
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+stroke 2511 448 M
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+stroke 4371 448 M
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 5 V
+18 22 V
+18 70 V
+18 152 V
+18 253 V
+17 344 V
+18 398 V
+18 412 V
+18 390 V
+18 347 V
+18 294 V
+18 239 V
+18 189 V
+18 147 V
+17 112 V
+18 84 V
+18 63 V
+18 46 V
+18 34 V
+18 24 V
+18 18 V
+18 13 V
+18 9 V
+17 6 V
+18 5 V
+18 3 V
+18 2 V
+18 2 V
+18 1 V
+18 0 V
+18 1 V
+18 0 V
+17 0 V
+18 1 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+stroke 6231 4134 M
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+% End plot #7
+% Begin plot #8
+stroke
+LT7
+LC7 setrgbcolor
+LCb setrgbcolor
+6296 3758 M
+[ [(Times-BoldItalic) 140.0 0.0 true true 0 (OfdmRate54Mbps)]
+] -46.7 MRshow
+LT7
+6380 3758 M
+399 0 V
+686 448 M
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+stroke 2511 448 M
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+stroke 4371 448 M
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 4 V
+18 19 V
+17 59 V
+18 133 V
+18 224 V
+18 311 V
+18 370 V
+18 393 V
+18 383 V
+18 349 V
+18 304 V
+17 254 V
+18 206 V
+18 165 V
+18 128 V
+18 98 V
+18 75 V
+18 57 V
+18 42 V
+18 31 V
+17 23 V
+18 16 V
+18 12 V
+18 9 V
+18 6 V
+18 5 V
+18 3 V
+18 2 V
+18 2 V
+17 1 V
+18 0 V
+18 1 V
+18 0 V
+18 0 V
+18 1 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+stroke 6231 4134 M
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+18 0 V
+17 0 V
+18 0 V
+18 0 V
+18 0 V
+% End plot #8
+stroke
+1.000 UL
+LTb
+LCb setrgbcolor
+686 4871 N
+686 448 L
+6261 0 V
+0 4423 V
+-6261 0 V
+Z stroke
+1.000 UP
+1.000 UL
+LTb
+LCb setrgbcolor
+stroke
+grestore
+end
+showpage
+%%Trailer
+%%DocumentFonts: Times-BoldItalic
--- a/src/wifi/doc/source/wifi-design.rst	Mon Jan 11 14:44:13 2016 -0800
+++ b/src/wifi/doc/source/wifi-design.rst	Thu Jan 14 14:23:17 2016 -0800
@@ -28,29 +28,41 @@
 * various rate control algorithms including **Aarf, Arf, Cara, Onoe, Rraa,
   ConstantRate, and Minstrel**
 * 802.11s (mesh), described in another chapter
+* 802.11p and WAVE (vehicular), described in another chapter
 
 The set of 802.11 models provided in |ns3| attempts to provide an accurate
 MAC-level implementation of the 802.11 specification and to provide a
-not-so-slow PHY-level model of the 802.11a/b/g/n/ac specifications.
+packet-level abstraction of the PHY-level for different PHYs, corresponding to 
+802.11a/b/e/g/n/ac specifications.
 
 In |ns3|, nodes can have multiple WifiNetDevices on separate channels, and the
 WifiNetDevice can coexist with other device types; this removes an architectural
 limitation found in |ns2|. Presently, however, there is no model for
-cross-channel interference or coupling.
+cross-channel interference or coupling between channels.
 
-The source code for the WifiNetDevice lives in the directory
+The source code for the WifiNetDevice and its models lives in the directory
 ``src/wifi``.
 
-The implementation is modular and provides roughly four levels of models:
+The implementation is modular and provides roughly three sublayers of models:
 
 * the **PHY layer models**
-* the so-called **MAC low models**: they implement DCF and EDCAF
-* the so-called **MAC high models**: they implement the MAC-level beacon
-  generation, probing, and association state machines, and
-* a set of **Rate control algorithms** used by the MAC low models
+* the so-called **MAC low models**: they model functions such as medium
+  access (DCF and EDCA), RTS/CTS and ACK.  In |ns3|, the lower-level MAC
+  is further subdivided into a **MAC low** and **MAC middle** sublayering,
+  with channel access grouped into the **MAC middle**.   
+* the so-called **MAC high models**: they implement non-time-critical processes
+  in Wifi such as the MAC-level beacon generation, probing, and association 
+  state machines, and a set of **Rate control algorithms**.  In the literature,
+  this sublayer is sometimes called the **upper MAC** and consists of more 
+  software-oriented implementations vs. time-critical hardware implementations.  
+Next, we provide an design overview of each layer, shown in 
+Figure :ref:`wifi-architecture`.
 
-Next, we provide some overview of each layer.
-More detailed information will be discussed later.
+.. _wifi-architecture:
+
+.. figure:: figures/WifiArchitecture.*
+   
+   WifiNetDevice architecture.
 
 MAC high models
 ===============
@@ -79,10 +91,14 @@
 style support an attribute ``VhtSupported`` that allows configuration
 of 802.11ac Very High Throughput style support.
 
+There are also several **rate control algorithms** that can be used by the
+MAC low layer.  A complete list of available rate control algorithms is 
+provided in a separate section.
+
 MAC low layer
 ==============
 
-The **MAC low layer** is split into three components:
+The **MAC low layer** is split into three main components:
 
 #. ``ns3::MacLow`` which takes care of RTS/CTS/DATA/ACK transactions.
 #. ``ns3::DcfManager`` and ``ns3::DcfState`` which implements the DCF and EDCAF
@@ -95,43 +111,151 @@
    ``ns3::EdcaTxopN`` is is used by QoS-enabled high MACs and also
    performs 802.11n-style MSDU aggregation.
 
-Rate control algorithms
-=======================
-
-There are also several **rate control algorithms** that can be used by the
-MAC low layer.  A complete list of available rate control algorithms is 
-provided in a separate section.
-
 PHY layer models
 ================
 
 The PHY layer implements a single model in the ``ns3::WifiPhy`` class: the
-physical layer model implemented there is described fully in a paper entitled
+physical layer model implemented there is described in a paper entitled
 `Yet Another Network Simulator <http://cutebugs.net/files/wns2-yans.pdf>`_
-Validation results for 802.11b are available in this
-`technical report <http://www.nsnam.org/~pei/80211b.pdf>`_
+The acronym *Yans* derives from this paper title.
+
+In short, the physical layer models are mainly responsible for modeling 
+the reception of packets and for tracking energy consumption.  There
+are typically three main components to this:
+
+* each packet received is probabilistically evaluated for successful or
+  failed reception.  The probability depends on the modulation, on
+  the signal to noise (and interference) ratio for the packet, and on
+  the state of the physical layer (e.g. reception is not possible while
+  transmission or sleeping is taking place);
+* an object exists to track (bookkeeping) all received signals so that
+  the correct interference power for each packet can be computed when
+  a reception decision has to be made; and
+* one or more error models corresponding to the modulation and standard
+  are used to look up probability of successful reception.
+
+Scope and Limitations
+*********************
+
+The IEEE 802.11 standard [ieee80211]_ is a large specification, 
+and not all aspects are covered by |ns3|; the documentation of |ns3|'s 
+conformance by itself would lead to a very long document.  This section 
+attempts to summarize compliance with the standard and with behavior 
+found in practice.
 
-.. _wifi-architecture:
+The physical layer and channel models operate on a per-packet basis, with
+no frequency-selective propagation or interference effects.  Detailed
+link simulations are not performed, nor are frequency-selective fading
+or interference models available.  Directional antennas and MIMO are also
+not supported at this time.  For additive white gaussian noise (AWGN) 
+scenarios, or wideband interference scenarios, performance is governed
+by the application of analytical models (based on modulation and factors
+such as channel width) to the received signal-to-noise ratio, where noise
+combines the effect of thermal noise and of interference from other Wi-Fi
+packets.  Moreover, interference from other technologies is not modeled.
+The following details pertain to the physical layer and channel models:
+
+* 802.11n MIMO is not supported
+* 802.11n/ac MIMO is not supported
+* 802.11n/ac beamforming is not supported
+* PLCP preamble reception is not modeled
+* PHY_RXSTART is not supported
 
-.. figure:: figures/WifiArchitecture.*
-   
-   WifiNetDevice architecture.
+At the MAC layer, most of the main functions found in deployed Wi-Fi
+equipment for 802.11a/b/e/g are implemented, but there are scattered instances
+where some limitations in the models exist.  Most notably, 802.11n/ac 
+configurations are not supported by adaptive rate controls; only the
+so-called ``ConstantRateWifiManager`` can be used by those standards at
+this time.  Support for 802.11n and ac is evolving.  Some additional details
+are as follows:
+
+* 802.11g does not support 9 microseconds slot
+* 802.11e TXOP is not supported
+* BSSBasicRateSet for 802.11b has been assumed to be 1-2 Mbit/s
+* BSSBasicRateSet for 802.11a/g has been assumed to be 6-12-24 Mbit/s
+* cases where RTS/CTS and ACK are transmitted using HT formats are not supported
+
+Design Details
+**************
+
+The remainder of this section is devoted to more in-depth design descriptions
+of some of the Wi-Fi models.  Users interested in skipping to the section
+on usage of the wifi module (User Documentation) may do so at this point.
+We organize these more detailed sections from the bottom-up, in terms of
+layering, by describing the channel and PHY models first, followed by
+the MAC models.
 
-The WifiChannel and WifiPhy models
-**********************************
+WifiChannel
+===========
+
+``ns3::WifiChannel`` is an abstract base class that allows different channel
+implementations to be connected.  At present, there is only one such channel
+(the ``ns3::YansWifiChannel``).  The class works in tandem with the 
+``ns3::WifiPhy`` class; if you want to provide a new physical layer model,
+you must subclass both ``ns3::WifiChannel`` and ``ns3::WifiPhy``.
+
+The WifiChannel model exists to interconnect WifiPhy objects so that packets
+sent by one Phy are received by some or all other Phys on the channel.
+
+YansWifiChannel
+~~~~~~~~~~~~~~~
 
-The WifiChannel subclass can be used to connect together a set of
-``ns3::WifiNetDevice`` network interfaces. The class ``ns3::WifiPhy`` is the
-object within the WifiNetDevice that receives bits from the channel.  
-For the channel propagation modeling, the propagation module is used; see section :ref:`Propagation` for details.
+This is the only channel model presently in the |ns3| wifi module.  The 
+``ns3::YansWifiChannel`` implementation uses the propagation loss and 
+delay models provided within the |ns3| :ref:`Propagation` module.
+In particular, a number of propagation models can be added (chained together,
+if multiple loss models are added) to the channel object, and a propagation 
+delay model also added. Packets sent from a ``ns3::YansWifiPhy`` object
+onto the channel with a particular signal power, are copied to all of the
+other ``ns3::YansWifiPhy`` objects after the signal power is reduced due
+to the propagation loss model(s), and after a delay corresponding to
+transmission (serialization) delay and propagation delay due 
+any channel propagation delay model (typically due to speed-of-light
+delay between the positions of the devices).
+
+Only objects of ``ns3::YansWifiPhy`` may be attached to a 
+``ns3::YansWifiChannel``; therefore, objects modeling other 
+(interfering) technologies such as LTE are not allowed.    Furthermore,
+packets from different channels do not interact; if a channel is logically
+configured for e.g. channels 5 and 6, the packets do not cause 
+adjacent channel interference (even if their channel numbers overlap).
 
-This section summarizes the description of the BER calculations found in the
-yans paper taking into account the Forward Error Correction present in 802.11a
-and describes the algorithm we implemented to decide whether or not a packet can
-be successfully received. See `"Yet Another Network Simulator"
-<http://cutebugs.net/files/wns2-yans.pdf>`_ for more details.
+WifiPhy and related models
+==========================
+
+The ``ns3::WifiPhy`` is an abstract base class representing the 802.11
+physical layer functions.  Packets passed to this object (via a
+``SendPacket()`` method are sent over the ``WifiChannel`` object, and
+upon reception, the receiving PHY object decides (based on signal power
+and interference) whether the packet was successful or not.  This class
+also provides a number of callbacks for notifications of physical layer
+events, exposes a notion of a state machine that can be monitored for
+MAC-level processes such as carrier sense, and handles sleep/wake models
+and energy consumption.  The ``ns3::WifiPhy`` hooks to the ``ns3::MacLow``
+object in the WifiNetDevice.
+
+There is currently one implementation of the ``WifiPhy``, which is the
+``ns3::YansWifiPhy``.  It works in conjunction with three other objects:
 
-The PHY layer can be in one of five states:
+* **WifiPhyStateHelper**:  Maintains the PHY state machine
+* **InterferenceHelper**:  Tracks all packets observed on the channel
+* **ErrorModel**:  Computes a probability of error for a given SNR
+
+YansWifiPhy and WifiPhyStateHelper
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+Class ``ns3::YansWifiPhy`` is responsible for taking packets passed to
+it from the MAC (the ``ns3::MacLow`` object) and sending them onto the
+``ns3::YansWifiChannel`` to which it is attached.  It is also responsible
+to receive packets from that channel, and, if reception is deemed to have
+been successful, to pass them up to the MAC. 
+
+Class ``ns3::WifiPhyStateHelper`` manages the state machine of the PHY 
+layer, and allows other objects to hook as *listeners* to monitor PHY
+state.  The main use of listeners is for the MAC layer to know when
+the PHY is busy or not (for transmission and collision avoidance).
+
+The PHY layer can be in one of six states:
 
 #. TX: the PHY is currently transmitting a signal on behalf of its associated
    MAC
@@ -139,34 +263,78 @@
    its last bit to forward it to the MAC.
 #. IDLE: the PHY is not in the TX, RX, or CCA BUSY states.
 #. CCA Busy: the PHY is not in TX or RX state but the measured energy is higher than the energy detection threshold.
+#. SWITCHING: the PHY is switching channels.
 #. SLEEP: the PHY is in a power save mode and cannot send nor receive frames.
 
-When the first bit of a new packet is received while the PHY is not IDLE (that
-is, it is already synchronized on the reception of another earlier packet or it
-is sending data itself), the received packet is dropped. Otherwise, if the PHY
-is IDLE or CCA Busy, we calculate the received energy of the first bit of this new signal
-and compare it against our Energy Detection threshold (as defined by the Clear
-Channel Assessment function mode 1). If the energy of the packet k is higher,
-then the PHY moves to RX state and schedules an event when the last bit of the
-packet is expected to be received. Otherwise, the PHY stays in IDLE 
-or CCA Busy state and drops the packet.
+Packet reception works as follows.  The ``YansWifiPhy`` attribute 
+CcaMode1Threshold 
+corresponds to what the standard calls the "ED threshold" for CCA Mode 1.  
+In section 16.4.8.5:  "CCA Mode 1: Energy above threshold. CCA shall report 
+a busy medium upon detection of any energy above the ED threshold."  
+
+There is a "noise ED threshold" in the standard for non-Wi-Fi signals, and 
+this is usually set to 20 dB greater than the "carrier sense ED threshold".  
+However, the model doesn't support this, because there are no 'foreign' 
+signals in the YansWifi model-- everything is a Wi-Fi signal.
+
+In the standard, there is also what is called the "minimum modulation
+and coding rate sensitivity" in section 18.3.10.6 CCA requirements. This is 
+the -82 dBm requirement for 20 MHz channels.  This is analogous to the 
+EnergyDetectionThreshold attribute in ``YansWifiPhy``.  CCA busy state is 
+not raised in this model when this threshold is exceeded but instead RX 
+state is immediately reached, since it is assumed that PLCP sync always 
+succeeds in this model.  Even if the PLCP header reception fails, the 
+channel state is still held in RX until YansWifiPhy::EndReceive().
+
+In ns-3, the values of these attributes are set to small default values 
+(-96 dBm for EnergyDetectionThreshold and -99 dBm for CcaMode1Threshold).  
+So, if a signal comes in at > -96 dBm and the state is IDLE or CCA BUSY, 
+this model will lock onto it for the signal duration and raise RX state.  
+If it comes in at <= -96 dBm but >= -99 dBm, it will definitely raise 
+CCA BUSY but not RX state.  If it comes in < -99 dBm, it gets added to 
+the interference tracker and, by itself, it will not raise CCA BUSY, but 
+maybe a later signal will contribute more power so that the threshold 
+of -99 dBm is reached at a later time.
+
+The energy of the signal intended to be received is 
+calculated from the transmission power and adjusted based on the Tx gain
+of the transmitter, Rx gain of the receiver, and any path loss propagation
+model in effect.
 
-The energy of the received signal is assumed to be zero outside of the reception
-interval of packet k and is calculated from the transmission power with a
-path-loss propagation model in the reception interval.  where the path loss
-exponent, :math:`n`, is chosen equal to :math:`3`, the reference distance,
-:math:`d_0` is choosen equal to :math:`1.0m` and the reference energy is based
-based on a Friis propagation model.
+The packet reception occurs in two stages.   First, an event is scheduled
+for when the PLCP header has been received. PLCP header is often transmitted
+at a lower modulation rate than is the payload.  The portion of the packet
+corresponding to the PLCP header is evaluated for probability of error 
+based on the observed SNR.  The InterferenceHelper object returns a value
+for "probability of error (PER)" for this header based on the SNR that has
+been tracked by the InterferenceHelper.  The ``YansWifiPhy`` then draws
+a random number from a uniform distribution and compares it against the 
+PER and decides success or failure.  The process is again repeated after 
+the payload has been received (possibly with a different error model 
+applied for the different modulation).  If both the header and payload 
+are successfully received, the packet is passed up to the ``MacLow`` object.  
+
+Even if packet objects received by the PHY are not part of the reception
+process, they are remembered by the InterferenceHelper object for purposes
+of SINR computation and making clear channel assessment decisions.
 
-When the last bit of the packet upon which the PHY is synchronized is received,
-we need to calculate the probability that the packet is received with any error
-to decide whether or not the packet on which we were synchronized could be
-successfully received or not: a random number is drawn from a uniform
-distribution and is compared against the probability of error.
+InterferenceHelper
+~~~~~~~~~~~~~~~~~~
+
+The InterferenceHelper is an object that tracks all incoming packets and
+calculates probability of error values for packets being received, and
+also evaluates whether energy on the channel rises above the CCA
+threshold.
 
-To evaluate the probability of error, we start from the piecewise linear 
-functions shown in Figure :ref:`snir` and calculate the 
-SNIR function. 
+The basic operation of probability of error calculations is shown in Figure
+:ref:`snir`.  Packets are represented as bits (not symbols) in the |ns3|
+model, and the InterferenceHelper breaks the packet into one or more
+"chunks" each with a different signal to noise (and interference) ratio
+(SNIR).  Each chunk is separately evaluated by asking for the probability
+of error for a given number of bits from the error model in use.  The
+InterferenceHelper builds an aggregate "probability of error" value
+based on these chunks and their duration, and returns this back to
+the ``YansWifiPhy`` for a reception decision.
 
 .. _snir:
 
@@ -174,16 +342,61 @@
    
    *SNIR function over time.*
 
-From the SNIR function we can derive the Bit Error Rate (BER) and Packet Error Rate (PER) for
-the modulation and coding scheme being used for the transmission.  Please refer to [pei80211ofdm]_, [pei80211b]_, [lacage2006yans]_, [Haccoun]_ and [Frenger]_ for a detailed description of the available BER/PER models.
+From the SNIR function we can derive the Bit Error Rate (BER) and Packet 
+Error Rate (PER) for
+the modulation and coding scheme being used for the transmission.  
+
+ErrorModel
+~~~~~~~~~~
+
+The error models are described in more detail in outside references.  Please refer to [pei80211ofdm]_, [pei80211b]_, [lacage2006yans]_, [Haccoun]_ and [Frenger]_ for a detailed description of the available BER/PER models.
+
+The current |ns3| error rate models are for additive white gaussian
+noise channels (AWGN) only; any potential fast fading effects are not modeled.
+
+The original error rate model was called the ``ns3::YansErrorRateModel`` and
+was based on analytical results.  For 802.11b modulations, the 1 Mbps mode 
+is based on DBPSK. BER is from equation 5.2-69 from [proakis2001]_.
+The 2 Mbps model is based on DQPSK. Equation 8 of [ferrari2004]_.  
+More details are provided in [lacage2006yans]_.
 
-WifiChannel configuration
-=========================
+The ``ns3::NistErrorRateModel`` was later added and became the |ns3| default.
+The model was largely aligned with the previous ``ns3::YansErrorRateModel``
+for DSSS modulations 1 Mbps and 2 Mbps, but the 5.5 Mbps and 11 Mbps models
+were re-based on equations (17) and (18) from [pursley2009]_.
+For OFDM modulations, newer results were
+obtained based on work previously done at NIST [miller2003]_.  The results
+were also compared against the CMU wireless network emulator, and details
+of the validation are provided in [pei80211ofdm]_.  Since OFDM modes use
+hard-decision of punctured codes, the coded BER is calculated using
+Chernoff bounds.
+
+The 802.11b model was split from the OFDM model when the NIST error rate
+model was added, into a new model called DsssErrorRateModel.  The current
+behavior is that users may 
 
-The WifiChannel implementation uses the propagation loss and delay models provided within the |ns3| :ref:`Propagation` module.
+Furthermore, the 5.5 Mbps and 11 Mbps models for 802.11b rely on library
+methods implemented in the GNU Scientific Library (GSL).  The Waf build
+system tries to detect whether the host platform has GSL installed; if so,
+it compiles in the newer models from [pursley2009]_ for 5.5 Mbps and 11 Mbps;
+if not, it uses a backup model derived from Matlab simulations.
+
+As a result, there are three error models:
+
+#. ``ns3::DsssErrorRateModel``:  contains models for 802.11b modes.  The
+   802.11b 1 Mbps and 2 Mbps error models are based on classical modulation
+   analysis.  If GNU GSL is installed, the 5.5 Mbps and 11 Mbps from 
+   [pursley2009]_ are used; otherwise, a backup Matlab model is used.
+#.  ``ns3::NistErrorRateModel``: is the default for OFDM modes and reuses
+   ``ns3::DsssErrorRateModel`` for 802.11b modes. 
+#.  ``ns3::YansErrorRateModel``: is the legacy for OFDM modes and reuses
+   ``ns3::DsssErrorRateModel`` for 802.11b modes. 
+
+Users should select either Nist or Yans models for OFDM (Nist is default), 
+and Dsss will be used in either case for 802.11b.
 
 The MAC model
-*************
+=============
 
 The 802.11 Distributed Coordination Function is used to calculate when to grant
 access to the transmission medium. While implementing the DCF would have been
@@ -230,7 +443,7 @@
 * etc.
 
 Rate control algorithms
-***********************
+#######################
 
 Multiple rate control algorithms are available in |ns3|.
 Some rate control algorithms are modeled after real algorithms used in real devices;
@@ -256,7 +469,7 @@
 * ``AparfWifiManager`` [chevillat2005aparf]_
 
 ConstantRateWifiManager
-=======================
+~~~~~~~~~~~~~~~~~~~~~~~
 
 The constant rate control algorithm always uses the same
 transmission mode for every packet. Users can set a desired
@@ -289,7 +502,7 @@
   all 'request' control packets
 
 IdealWifiManager
-================
+~~~~~~~~~~~~~~~~
 
 The ideal rate control algorithm selects the best
 mode according to the SNR of the previous packet sent.
@@ -309,7 +522,7 @@
   that is used to calculate the SNR threshold for each mode.
 
 MinstrelWifiManager
-===================
+~~~~~~~~~~~~~~~~~~~
 
 The minstrel rate control algorithm is a rate control algorithm originated from
 madwifi project.  It is currently the default rate control algorithm of the Linux kernel.
@@ -325,7 +538,7 @@
 For a more detailed information about minstrel, see [linuxminstrel]_.
 
 Modifying Wifi model
-********************
+####################
 
 Modifying the default wifi model is one of the common tasks when performing research.
 We provide an overview of how to make changes to the default wifi model in this section.
@@ -348,17 +561,3 @@
 * Modifying or creating new rate control algorithms can be done by creating a new child class of Wi-Fi remote
   station manager or modifying the existing ones.
 
-Note on the current implementation
-**********************************
-
-* 802.11g does not support 9 microseconds slot
-* PHY_RXSTART is not supported
-* 802.11e TXOP is not supported
-* 802.11n MIMO is not supported
-* 802.11n/ac MIMO is not supported
-* 802.11n/ac beamforming is not supported
-* PLCP preamble reception is not modeled
-* BSSBasicRateSet for 802.11b has been assumed to be 1-2 Mbit/s
-* BSSBasicRateSet for 802.11a/g has been assumed to be 6-12-24 Mbit/s
-* cases where RTS/CTS and ACK are transmitted using HT formats are not supported
-* Only ``ConstantRateWifiManager`` is supported by **802.11n** or **802.11ac**
--- a/src/wifi/doc/source/wifi-references.rst	Mon Jan 11 14:44:13 2016 -0800
+++ b/src/wifi/doc/source/wifi-references.rst	Thu Jan 14 14:23:17 2016 -0800
@@ -2,11 +2,10 @@
 
 .. only:: html
 
-=================================
 References
-=================================
+==========
 
-.. [ieee80211] IEEE Std 802.11-2007 *Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications*
+.. [ieee80211] IEEE Std 802.11-2012, *Part 11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications*
 
 .. [pei80211b] \G. Pei and Tom Henderson, `Validation of ns-3 802.11b PHY model <http://www.nsnam.org/~pei/80211b.pdf>`__ 
 
@@ -30,6 +29,19 @@
 
 .. [maguolo2008aarfcd] \ F. Maguolo, M. Lacage, and T. Turletti, *Efficient collision detection for auto rate fallback algorithm*, in IEEE Symposium on Computers and Communications, 2008
 
+.. [proakis2001] \ J. Proakis, Digital Communications, Wiley, 2001.
+
+.. [miller2003] \  L. E. Miller, “Validation of 802.11a/UWB Coexistence Simulation.” Technical Report, October 2003.  Available `online <http://www.antd.nist.gov/wctg/manet/docs/coexvalid_031017.pdf>`__
+
+.. [ferrari2004] \ G. Ferrari and G. Corazza, "Tight bounds and accurate approximations for DQPSK transmission bit error rate", Electronics Letters, 40(20):1284-85, September 2004.
+
+.. [pursley2009] \ M. Pursley and T. Royster, "Properties and performance of the IEEE 802.11b complementary code key signal sets," IEEE Transactions on Communications, 57(2);440-449, February 2009.
+
 .. [akella2007parf] \ A. Akella, G. Judd, S. Seshan, and P. Steenkiste, 'Self-management in chaotic wireless deployments', in Wireless Networks, Kluwer Academic Publishers, 2007, 13, 737-755.  `<http://www.cs.odu.edu/~nadeem/classes/cs795-WNS-S13/papers/enter-006.pdf>`__
 
 .. [chevillat2005aparf] \  Chevillat, P.; Jelitto, J., and Truong, H. L., 'Dynamic data rate and transmit power adjustment in IEEE 802.11 wireless LANs', in International Journal of Wireless Information Networks, Springer, 2005, 12, 123-145.  `<http://www.cs.mun.ca/~yzchen/papers/papers/rate_adaptation/80211_dynamic_rate_power_adjustment_chevillat_j2005.pdf>`__
+
+.. [hepner2015] \ C. Hepner, A. Witt, and R. Muenzner, "In depth analysis of the ns-3 physical layer abstraction for WLAN systems and evaluation of its influences on network simulation results", BW-CAR Symposium on Information and Communication Systems (SInCom) 2015.  `<http://sincom.informatik.hs-furtwangen.de/index.php?id=85>`__
+
+.. [baldo2010] \ N. Baldo et al., "Validation of the ns-3 IEEE 802.11 model using the EXTREME testbed", Proceedings of SIMUTools Conference, March 2010.
+
--- a/src/wifi/doc/source/wifi-testing.rst	Mon Jan 11 14:44:13 2016 -0800
+++ b/src/wifi/doc/source/wifi-testing.rst	Thu Jan 14 14:23:17 2016 -0800
@@ -5,3 +5,56 @@
 Testing Documentation
 +++++++++++++++++++++
 
+At present, most of the available documentation about testing and validation
+exists in publications, some of which are referenced below.
+
+Error model
+***********
+
+Validation results for the 802.11b error model are available in this
+`technical report <http://www.nsnam.org/~pei/80211b.pdf>`_
+
+Two clarifications on the results should be noted.  First, Figure 1-4
+of the above reference
+corresponds to the |ns3| NIST BER model.   In the program in the 
+Appendix of the paper (80211b.c), there are two constants used to generate
+the data.  The first, packet size, is set to 1024 bytes.  The second,
+"noise", is set to a value of 7 dB; this was empirically picked to align
+the curves the best with the reported data from the CMU testbed.  Although
+a value of 1.55 dB would correspond to the reported -99 dBm noise floor
+from the CMU paper, a noise figure of 7 dB results in the best fit with the
+CMU experimental data.  This default of 7 dB is the RxNoiseFigure in the
+``ns3::YansWifiPhy`` model.  Other values for noise figure will shift the 
+curves leftward or rightward but not change the slope. 
+
+The curves can be reproduced by running the ``wifi-clear-channel-cmu.cc`` 
+example program in the ``examples/wireless`` directory, and the figure produced
+(when GNU Scientific Library (GSL) is enabled) is reproduced below in 
+Figure :ref:`fig-clear-channel-80211b`.
+
+.. _fig-clear-channel-80211b:
+
+.. figure:: figures/clear-channel.*
+   :align: center
+   :width: 80%
+
+   Clear channel (AWGN) error model for 802.11b
+
+Validation results for the 802.11 OFDM error model are available in this
+`technical report <https://www.nsnam.org/~pei/80211ofdm.pdf>`_.  The curves
+can be reproduced by running the ``ofdm-validation.cc`` example program
+in the ``examples/wireless`` directory, and the figure is reproduced below
+in Figure :ref:`fig-nist-frame-success-rate`.
+
+.. _fig-nist-frame-success-rate:
+
+.. figure:: figures/nist-frame-success-rate.*
+   :align: center
+   :width: 80%
+
+   Frame error rate (NIST model) for OFDM Wi-Fi
+
+
+MAC validation
+**************
+Validation of the MAC layer has been performed in [baldo2010]_.
--- a/src/wifi/doc/source/wifi-user.rst	Mon Jan 11 14:44:13 2016 -0800
+++ b/src/wifi/doc/source/wifi-user.rst	Thu Jan 14 14:23:17 2016 -0800
@@ -417,17 +417,3 @@
   mobility.Install (sta);
 
   // other set up (e.g. InternetStack, Application)
-
-Note on the current implementation
-**********************************
-
-* 802.11g supports a default of long slot time (20 microseconds)
-* PHY_RXSTART is not supported
-* 802.11e TXOP is not supported
-* 802.11n/ac MIMO is not supported
-* 802.11n/ac beamforming is not supported
-* PLCP preamble reception is not modeled
-* BSSBasicRateSet for 802.11b has been assumed to be 1-2 Mbit/s
-* BSSBasicRateSet for 802.11a/g has been assumed to be 6-12-24 Mbit/s
-* cases where RTS/CTS and ACK are transmitted using HT formats are not supported
-* Only ``ConstantRateWifiManager`` is supported by **802.11n** or **802.11ac**