--- 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