update docs default tip
authorJosh Pelkey <jpelkey@gatech.edu>
Wed, 01 Jun 2011 13:46:37 -0400
changeset 7307 221e3ab4f4d4
parent 7306 dee4391b7986
update docs
doc/main.h
doc/models/Makefile
doc/models/source/index.rst
src/brite/doc/brite.h
src/brite/doc/brite.rst
--- a/doc/main.h	Wed Jun 01 13:03:21 2011 -0400
+++ b/doc/main.h	Wed Jun 01 13:46:37 2011 -0400
@@ -38,6 +38,7 @@
  *     - aodv
  *     - applications
  *     - bridge
+ *     - brite
  *     - click
  *     - config-store
  *     - core
--- a/doc/models/Makefile	Wed Jun 01 13:03:21 2011 -0400
+++ b/doc/models/Makefile	Wed Jun 01 13:46:37 2011 -0400
@@ -20,6 +20,7 @@
 	$(SRC)/aodv/doc/aodv.rst \
 	$(SRC)/applications/doc/applications.rst \
 	$(SRC)/bridge/doc/bridge.rst \
+	$(SRC)/brite/doc/brite.rst \
 	$(SRC)/click/doc/click.rst \
 	$(SRC)/csma/doc/csma.rst \
 	$(SRC)/dsdv/doc/dsdv.rst \
--- a/doc/models/source/index.rst	Wed Jun 01 13:03:21 2011 -0400
+++ b/doc/models/source/index.rst	Wed Jun 01 13:46:37 2011 -0400
@@ -23,6 +23,7 @@
    aodv
    applications
    bridge
+   brite
    click
    csma
    dsdv
--- a/src/brite/doc/brite.h	Wed Jun 01 13:03:21 2011 -0400
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,104 +0,0 @@
-/* -*-  Mode: C++; c-file-style: "gnu"; indent-tabs-mode:nil; -*- */
-/*
- * Copyright (c) 2011 Josh Pelkey
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation;
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
- *
- * Authors: Josh Pelkey <jpelkey@gatech.edu>
- */
-
-/**
-* \ingroup topology
-* \defgroup brite Brite
-*
-* \section model Model
-*
-* This model implements an interface to BRITE, the Boston university 
-* Representative Internet Topology gEnerator. BRITE is a standard tool for 
-* generating realistic internet topologies. The ns-3 model, described herein, 
-* provides a helper class to facilitate generating ns-3 specific topologies 
-* using BRITE configuration files. BRITE builds the original graph which is 
-* stored as nodes and edges in the ns-3 BriteTopolgyHelper class. By accessing 
-* these nodes and edges, an ns-3 specific topology can easily be built, as 
-* seen in the example provided, brite-generic-example.
-*
-* \section build Build Instructions
-*
-* The first step is to download and build the ns-3 specific BRITE repository:
-*
-*   $: hg clone http://code.nsnam.org/jpelkey3/BRITE
-*   $: cd BRITE
-*   $: make
-* 
-* This will build BRITE and create a library, libbrite.so, within the BRITE 
-* directory.
-*
-* Once BRITE has been built successfully, we proceed to configure ns-3 with 
-* BRITE support. Change to your ns-3 directory:
-*
-*   $: ./waf configure --with-brite=/path/to/brite/source
-*
-* Make sure it says 'enabled' beside 'BRITE Integration'. If it does not, then 
-* something has gone wrong. Either you have forgotten to build BRITE first 
-* following the steps above, or ns-3 could not find your BRITE directory.
-*
-* Next, build ns-3.
-*
-*   $: ./waf
-*
-* Next, try running the brite-generic-example
-*
-*   $: ./waf --run 'brite-generic-example --verbose=1'
-*
-* By enabling the verbose parameter, the example will print out the node and 
-* edge information in a similar format to standard BRITE output. There are 
-* many other command-line parameters including confFile, seedFile, newseedFile, 
-* tracing, and nix, described below:
-*    
-*    confFile:    A BRITE configuration file. Many different BRITE configuration 
-*                 file examples exist in the BRITE/conf_files directory, for 
-*                 example, RTBarabasi20.conf and RTWaxman.conf. Please refer to 
-*                 the conf_files directory for more examples.
-*
-*    seedFile:    BRITE specific seed file to seed a psuedo-random number genrator 
-*                 from BRITE.
-*
-*    newseedFile: BRITE automatically generates a new seed file for you, if you 
-*                 would like to randomize subsequent runs. If you would like
-*                 this to happen automatically, simply use the same file for 
-*                 seedFile and newseedFile. This way, BRITE will run with the 
-*                 current seeds and then overwrite them for the next run.
-*
-*    verbose:     Prints out the node and edge information in a similar format 
-*                 to standard BRITE output.
-*
-*    tracing:     Enables ascii tracing.
-*
-*    nix:         Enables nix-vector routing. Global routing is used by default.
-*
-* \section usage Usage
-*
-* The brite-generic-example can be referenced to see basic usage of the BRITE
-* interface. In summary, the BriteTopologyHelper is used as the interface point
-* by passing in a BRITE configuration and seed file. The BRITE generated nodes 
-* and edges can then be accessed through this helper to create ns-3 nodes and 
-* edges.
-*
-* Within the brite-generic-example, assigning IPs and creating applications 
-* are done fairly simply, as topology generation is the main topic of the 
-* BRITE interface. It is very likely that the user will need to change the 
-* way in which IP addresses are assigned or applications are installed.
-*
-*/
-
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/brite/doc/brite.rst	Wed Jun 01 13:46:37 2011 -0400
@@ -0,0 +1,136 @@
+.. include:: replace.txt
+
+BRITE Integration
+------------------
+
+This model implements an interface to BRITE, the Boston university 
+Representative Internet Topology gEnerator [1]_. BRITE is a standard tool for 
+generating realistic internet topologies. The ns-3 model, described herein, 
+provides a helper class to facilitate generating ns-3 specific topologies 
+using BRITE configuration files. BRITE builds the original graph which is 
+stored as nodes and edges in the ns-3 BriteTopolgyHelper class. By accessing 
+these nodes and edges, an ns-3 specific topology can easily be built, as 
+seen in the example provided, brite-generic-example.
+
+
+Model Description
+*****************
+
+The model relies on building an external BRITE library, 
+and then building some ns-3 helpers that call out to the library.  
+The source code for the ns-3 helpers lives in the directory 
+``src/brite/helper``.
+
+Design
+======
+
+The BRITE ns-3 helpers call out to the external BRITE library, and using a standard 
+BRITE configuration file, the BRITE code builds a graph with nodes and edges 
+according to this configuration file. Please see the BRITE documenation or the 
+example configuration files in src/brite/examples/conf_files to get a better 
+grasp of BRITE configuration options. The graph built by BRITE is returned to 
+ns-3, and these nodes and edges are stored in ns-3 structures for use by the 
+user.
+
+The ns-3 data structures holding all of the returned BRITE information are 
+BriteNodeInfoList and BriteEdgeInfoList. Both of these are simply a vector 
+of structs with each Node and Edge struct holding all of the individual 
+node and edge information returned from the BRITE graph.
+
+Finally, these two data structures are used to build ns-3 specific topologies.
+It is up to the user to use these nodes and edges and connect them correctly. 
+An example, brite-generic-example, is provided to show the user how to do this.
+
+Note: BRITE accepts a seed file to seed its psuedo-random number generator. It also
+spits out a new seed file after every run -- overwriting your old seed file --
+in case you wish to randomize subsequent runs. Finally, it saves the most
+recently used seed file in a file called "last_seed_file." Rather than
+overwriting your old seed file, we have changed it in the ns-3
+interface. You still pass in a seed file, but you also pass in another file for
+BRITE to write the new seed file. This keeps BRITE from overwriting your seed
+file. We believe this makes it easier to run the exact same simulation over and
+over, which may be important to some users. Finally, if you wish to overwrite the seed file
+each run, randomizing each subsequent run as before, you can simply pass in the
+same file name for the seed file and new seed file in ns-3
+
+References
+==========
+
+.. [1] Alberto Medina, Anukool Lakhina, Ibrahim Matta, and John Byers. BRITE: An Approach to Universal Topology Generation. In Proceedings of the International Workshop on Modeling, Analysis and Simulation of Computer and Telecommunications Systems- MASCOTS '01, Cincinnati, Ohio, August 2001.
+
+Usage
+*****
+
+The brite-generic-example can be referenced to see basic usage of the BRITE
+interface. In summary, the BriteTopologyHelper is used as the interface point
+by passing in a BRITE configuration and seed file. The BRITE generated nodes 
+and edges can then be accessed through this helper to create ns-3 nodes and 
+edges.
+
+Within the brite-generic-example, assigning IPs and creating applications 
+are done fairly simply, as topology generation is the main topic of the 
+BRITE interface. It is very likely that the user will need to change the 
+way in which IP addresses are assigned or applications are installed.
+
+Building BRITE Integration
+==========================
+
+The first step is to download and build the ns-3 specific BRITE repository:::
+
+  $ hg clone http://code.nsnam.org/jpelkey3/BRITE
+  $ cd BRITE
+  $ make
+
+This will build BRITE and create a library, libbrite.so, within the BRITE 
+directory.
+
+Once BRITE has been built successfully, we proceed to configure ns-3 with 
+BRITE support. Change to your ns-3 directory:::
+
+  $ ./waf configure --with-brite=/your/path/to/brite/source --enable-examples
+
+Make sure it says 'enabled' beside 'BRITE Integration'. If it does not, then 
+something has gone wrong. Either you have forgotten to build BRITE first 
+following the steps above, or ns-3 could not find your BRITE directory.
+
+Next, build ns-3:::
+
+  $ ./waf
+
+Examples
+========
+For an example demonstrating BRITE integration
+run:::
+
+  $ ./waf --run 'brite-generic-example --verbose=1'
+
+By enabling the verbose parameter, the example will print out the node and 
+edge information in a similar format to standard BRITE output. There are 
+many other command-line parameters including confFile, seedFile, newseedFile, 
+tracing, and nix, described below:
+   
+   confFile:    A BRITE configuration file. Many different BRITE configuration 
+                file examples exist in the src/brite/examples/conf_files directory, for 
+                example, RTBarabasi20.conf and RTWaxman.conf. Please refer to 
+                the conf_files directory for more examples.
+
+   seedFile:    BRITE specific seed file to seed a psuedo-random number genrator 
+                from BRITE.
+
+   newseedFile: BRITE automatically generates a new seed file for you, if you 
+                would like to randomize subsequent runs. If you would like
+                this to happen automatically, simply use the same file for 
+                seedFile and newseedFile. This way, BRITE will run with the 
+                current seeds and then overwrite them for the next run.
+
+   verbose:     Prints out the node and edge information in a similar format 
+                to standard BRITE output.
+
+   tracing:     Enables ascii tracing.
+
+   nix:         Enables nix-vector routing. Global routing is used by default.
+
+The generic BRITE example also support visualization using pyviz, assuming
+python bindings in ns-3 are enabled:::
+
+  $ ./waf --run brite-generic-example --vis