diff -Naur ns-3.18/AUTHORS ns-3.18.1/AUTHORS
--- ns-3.18/AUTHORS	2013-08-29 22:36:52.000000000 -0700
+++ ns-3.18.1/AUTHORS	2013-11-15 16:40:49.663761007 -0800
@@ -11,10 +11,12 @@
 Raj Bhattacharjea (raj.b@gatech.edu)
 Timo Bingmann (timo.bingmann@student.kit.edu)
 Julien Boite (juboite@gmail.com)
+Biljana Bojovic <bbojovic@cttc.es>
 Elena Borovkova (borokovaes@iitp.ru)
 Pavel Boyko (boyko@iitp.ru)
 Dan Broyles (muxman@sbcglobal.net)
 Jonathan Brugge (j.d.brugge@student.utwente.nl)
+Junling Bu <linlinjavaer@gmail.com>
 Elena Buchatskaia (borovkovaes@iitp.ru)
 Gustavo Carneiro (gjc@inescporto.pt, gjcarneiro@gmail.com)
 Egemen K. Cetinkaya (ekc@iitc.ku.edu)
@@ -26,12 +28,17 @@
 Luca Costantino (luca.costantino@gmail.com)
 Alexander D'souza (moijes12@gmail.com)
 Craig Dowell (craigdo@ee.washington.edu)
+Gilaras Drakeson <gilaras@gmail.com>
+Christian Facchini <c.facchini@gmail.com>
 Denis Fakhriev (fakhriev@iitp.ru)
 Jahanzeb Farooq (Jahanzeb.Farooq@inria.fr, Jahanzeb.Farooq@gmail.com)
+Luca Favatella <slackydeb@gmail.com>
 Pedro Fortuna (pedro.fortuna@inescporto.pt)
 Juliana Freitag Borin (juliana.freitag@gmail.com)
 Eric Gamess (egamess@gmail.com)
+Yida Gao <yidapb@gmail.com>
 Thomas Geithner (thomas.geithner@dai-labor.de)
+Ashim Ghosh <ashim.atiit@gmail.com>
 Martin Giachino (martin.giachino@gmail.com,giachino@fing.edu.uy)
 Tom Goff (tgoff@tgoff.net)
 David Gross (gdavid.devel@gmail.com)
@@ -41,6 +48,9 @@
 Bruno Haick (bghaick@hotmail.com)
 Frank Helbert (frank@ime.usp.br)
 Tom Henderson (tomhend@u.washington.edu)
+Budiarto Herman <budiarto.herman@magister.fi>
+Tom Hewer <tomhewer@mac.com>
+Kim Højgaard-Hansen <kimrhh@gmail.com>
 Blake Hurd (naimorai@gmail.com)
 ishan (ishan.chhabra@gmail.com)
 Mohamed Amine Ismail (amine.ismail@inria.fr, iamine@udcast.com)
@@ -48,13 +58,16 @@
 Sascha Alexander Jopen (jopen@informatik.uni-bonn.de)
 Sam Jansen (sam.jansen@gmail.com)
 Liu Jian (liujatp@gmail.com)
+Konstantinos Katsaros <dinos.katsaros@gmail.com>
 Joe Kopena (tjkopena@cs.drexel.edu)
 Flavio Kobuta (flaviokubota@gmail.com)
 Aleksey Kovalenko (kovalenko@iitp.ru)
 Mathieu Lacage (mathieu.lacage@inria.fr)
 Emmanuelle Laprise (emmmanuelle.laprise@bluekazoo.ca)
+Kristijan Lenković <k.lenkovic@me.com>
 Daniel Lertpratchya (nikkipui@gmail.com)
 Björn Lichtblau (lichtbla@informatik.hu-berlin.de)
+Timo Lindhorst <tlnd@online.de>
 Keith Ma (keith.nwsuaf@gmail.com)
 Federico Maguolo (maguolof@dei.unipd.it)
 Antti Makela (zarhan@cc.hut.fi)
@@ -63,17 +76,24 @@
 Andrey Mazo (mazo@iitp.ru)
 Jonathan McCrohan (jmccroha@tcd.ie)
 Vedran Miletić (rivanvx@gmail.com)
+Jens Mittag <jens.mittag@kit.edu>
 Marco Miozzo (mmiozzo@cttc.es)
 Faker Moatamri (faker.moatamri@inria.fr)
+Edvin Močibob <edvin.mocibob@gmail.com>
 Mike Moreton (mjvm_ns@hotmail.com)
 Sidharth Nabar (snabar@uw.edu)
 Hemanth Narra (hemanth@ittc.ku.edu)
+Andreas Nilsson <andrnils@gmail.com>
 Jaume Nin (jnin@cttc.es)
 Michael Nowatkowski (nowatkom@gmail.com)
+Anh Nguyen <annguyen@ittc.ku.edu>
 Duy Nguyen (duy@soe.ucsc.edu)
+Lluís Parcerisa <parcerisa@gmail.com>
 Tommaso Pecorella (tommaso.pecorella@unifi.it)
 Vikas Pushkar (vikaskupushkar@gmail.com)
 Josh Pelkey (jpelkey@gatech.edu)
+Per <per_e_lists@rocketmail.com>
+Fernando Pereira <ferdonfeup@gmail.com>
 Colin Perkins (csp@csperkins.org) 
 Giuseppe Piro (g.piro@poliba.it)
 Yana Podkosova (yanapdk@rambler.ru)
@@ -83,15 +103,22 @@
 Ken Renard (kenneth.renard@arl.army.mil)
 Manuel Requena (mrequena@cttc.es)
 George F. Riley (riley@ece.gatech.edu)
+Juergen Rinas <jrinas@gmx.de>
 Sebastian Rohde (sebastian.rohde@tu-dortmund.de)
+Karsten Roscher <sfx@rocktale.de>
 Bill Roome (wdr@bell-labs.com)
+David <david.rua@gmail.com>
 Andrea Sacco (andrea.sacco85@gmail.com)
 Providence Salumu Munga (Providence.Salumu@gmail.com, Providence.Salumu_Munga@it-sudparis.eu)
+Francisco Javier Sánchez-Roselly <fnavarro@ujaen.es>
 Florian Schmidt (Florian.Schmidt@cs.rwth-aachen.de)
 Guillaume Seguin (guillaume.seguin@inria.fr)
 Kulin Shah (m.kulin@gmail.com)
+Guowang Shi <shiguowang2007@gmail.com>
 Phillip Sitbon (phillip.sitbon@gmail.com)
 Anirudh Sivaraman (sk.anirudh@gmail.com) 
+Steven Smith <smith84@llnl.gov>
+Andrew Stanton <acstanton515@gmail.com>
 Ewgenij Starostin (estar@cs.tu-berlin.de)
 YunQiang Su (wzssyqa@gmail.com)
 Brian Swenson (bswenson3@gatech.edu)
diff -Naur ns-3.18/bindings/python/wscript ns-3.18.1/bindings/python/wscript
--- ns-3.18/bindings/python/wscript	2013-08-29 22:36:52.000000000 -0700
+++ ns-3.18.1/bindings/python/wscript	2013-11-15 16:40:49.663761007 -0800
@@ -13,7 +13,7 @@
 # after = TaskGen.after
 
 ## https://launchpad.net/pybindgen/
-REQUIRED_PYBINDGEN_VERSION = (0, 16, 0, 831)
+REQUIRED_PYBINDGEN_VERSION = (0, 16, 0, 834)
 REQUIRED_PYGCCXML_VERSION = (0, 9, 5)
 
 
@@ -310,7 +310,7 @@
         raise ValueError("Module %r not found" % module)
     return ns3headers.path.abspath()
 
-class apiscan_task(Task.TaskBase):
+class apiscan_task(Task.Task):
     """Uses gccxml to scan the file 'everything.h' and extract API definitions.
     """
     after = 'gen_ns3_module_header ns3header'
@@ -318,7 +318,7 @@
     color = "BLUE"
     def __init__(self, curdirnode, env, bld, target, cflags, module):
         self.bld = bld
-        super(apiscan_task, self).__init__(generator=self)
+        super(apiscan_task, self).__init__(generator=self, env=env)
         self.curdirnode = curdirnode
         self.env = env
         self.target = target
@@ -341,6 +341,8 @@
             return self.uid_
 
     def run(self):
+        self.inputs = [self.bld.bldnode.find_resource("ns3/{0}-module.h".format(self.module))]
+        self.outputs = [self.bld.srcnode.find_resource("src/{}/bindings/modulegen__{}.py".format(self.module, self.target))]
         top_builddir = self.bld.bldnode.abspath()
         module_path = get_module_path(self.bld, self.module)
         headers_map = get_headers_map(self.bld)
@@ -363,6 +365,12 @@
         retval = scan.wait()
         return retval
 
+    def runnable_status(self):
+        # By default, Waf Task will skip running a task if the signature of
+        # the build has not changed.  We want this task to always run if
+        # invoked by the user, particularly since --apiscan=all will require
+        # invoking this task many times, once per module.
+        return Task.RUN_ME
 
 def get_modules_and_headers(bld):
     """
@@ -393,30 +401,6 @@
 
 
 
-class python_scan_task_collector(Task.TaskBase):
-    """Tasks that waits for the python-scan-* tasks to complete and then signals WAF to exit
-    """
-    after = 'apiscan'
-    before = 'cxx'
-    color = "BLUE"
-    def __init__(self, curdirnode, env, bld):
-        self.bld = bld
-        super(python_scan_task_collector, self).__init__(generator=self)
-        self.curdirnode = curdirnode
-        self.env = env
-
-    def display(self):
-        return 'python-scan-collector\n'
-
-    def run(self):
-        # signal stop (we generated files into the source dir and WAF
-        # can't cope with it, so we have to force the user to restart
-        # WAF)
-        self.bld.producer.stop = 1
-        return 0
-
-
-
 class gen_ns3_compat_pymod_task(Task.Task):
     """Generates a 'ns3.py' compatibility module."""
     before = 'cxx'
@@ -479,7 +463,6 @@
             group = bld.get_group(bld.current_group)
             for module in scan_modules:
                 group.append(apiscan_task(bld.path, env, bld, target, cflags, module))
-        group.append(python_scan_task_collector(bld.path, env, bld))
         return
 
 
diff -Naur ns-3.18/CHANGES.html ns-3.18.1/CHANGES.html
--- ns-3.18/CHANGES.html	2013-08-29 22:36:52.000000000 -0700
+++ ns-3.18.1/CHANGES.html	2013-11-15 16:40:49.659761009 -0800
@@ -51,6 +51,44 @@
 us a note on ns-developers mailing list.</p>
 
 <hr>
+<h1>Changes from ns-3.18 to ns-3.18.1</h1>
+<h2>New API:</h2>
+<ul>
+  <li> It is now possible to randomize the time of the first beacon from an
+  access point.  Use an attribute "EnableBeaconJitter" to enable/disable
+  this feature.
+  </li>
+  <li> A new FixedRoomPositionAllocator helper class is available; it
+  allows one to generate a random position uniformly distributed in the
+  volume of a chosen room inside a chosen building.
+  </li>
+</ul>
+
+<h2>Changes to existing API:</h2>
+<ul>
+  <li> Logging wildcards:  allow "***" as synonym for "*=**" to turn on all logging.
+  </li>
+  <li> The log component list ("NS_LOG=print-list") is now printed alphabetically.
+  </li>
+  <li> Some deprecated IEEE 802.11p code has been removed from the wifi module
+  </li>
+</ul>
+
+<h2>Changes to build system:</h2>
+<ul>
+  <li> The Python API scanning system (./waf --apiscan) has been fixed (bug 1622)
+  </li> 
+  <li> Waf has been upgraded from 1.7.11 to 1.7.13
+  </li> 
+</ul>
+
+<h2>Changed behavior:</h2>
+<ul>
+  <li> Wifi simulations have additional jitter on AP beaconing (see above) and some bug fixes have been applied to wifi module (see RELEASE_NOTES)
+  </li> 
+</ul>
+
+<hr>
 <h1>Changes from ns-3.17 to ns-3.18</h1>
 
 <h2>New API:</h2>
@@ -161,6 +199,7 @@
   <li>AODV Hellos are disabled by default. The performance with Hellos enabled and disabled are almost identical. With Hellos enabled, AODV will suppress hellos from transmission, if any recent broadcast such as RREQ was transmitted. The attribute <tt>ns3::aodv::RoutingProtocol::EnableHello</tt> can be used to enable/disable Hellos.
 </ul>
 
+<hr>
 <h1>Changes from ns-3.16 to ns-3.17</h1>
 
 <h2>New API:</h2>
diff -Naur ns-3.18/doc/build.txt ns-3.18.1/doc/build.txt
--- ns-3.18/doc/build.txt	2013-08-29 22:36:52.000000000 -0700
+++ ns-3.18.1/doc/build.txt	2013-11-15 16:40:48.191760969 -0800
@@ -3,7 +3,7 @@
 
 Note:  We've added a wiki page with more complete build instructions
 than the quick ones you find below:
-http://www.nsnam.org/wiki/index.php/Installation
+http://www.nsnam.org/wiki/Installation
 
 === Installing Waf ===
 
diff -Naur ns-3.18/doc/manual/Makefile ns-3.18.1/doc/manual/Makefile
--- ns-3.18/doc/manual/Makefile	2013-08-29 22:36:52.000000000 -0700
+++ ns-3.18.1/doc/manual/Makefile	2013-11-15 16:40:48.195760971 -0800
@@ -87,7 +87,7 @@
 
 IMAGES = $(IMAGES_EPS) $(IMAGES_PNG) $(IMAGES_PDF)
 
-RESCALE = $(shell hg root)/utils/rescale-pdf.sh
+RESCALE = ../../utils/rescale-pdf.sh
 
 %.eps : %.dia; $(DIA) -t eps $< -e $@
 %.png : %.dia; $(DIA) -t png $< -e $@
diff -Naur ns-3.18/doc/manual/source/conf.py ns-3.18.1/doc/manual/source/conf.py
--- ns-3.18/doc/manual/source/conf.py	2013-08-29 22:36:52.000000000 -0700
+++ ns-3.18.1/doc/manual/source/conf.py	2013-11-15 16:40:48.203760974 -0800
@@ -48,9 +48,9 @@
 # built documents.
 #
 # The short X.Y version.
-version = 'ns-3.18'
+version = 'ns-3.18.1'
 # The full version, including alpha/beta/rc tags.
-release = 'ns-3.18'
+release = 'ns-3.18.1'
 
 # The language for content autogenerated by Sphinx. Refer to documentation
 # for a list of supported languages.
diff -Naur ns-3.18/doc/manual/source/index.rst ns-3.18.1/doc/manual/source/index.rst
--- ns-3.18/doc/manual/source/index.rst	2013-08-29 22:36:52.000000000 -0700
+++ ns-3.18.1/doc/manual/source/index.rst	2013-11-15 16:40:48.203760974 -0800
@@ -8,7 +8,7 @@
 
 * `ns-3 Doxygen <http://www.nsnam.org/doxygen/index.html>`_: Documentation of the public APIs of the simulator
 * Tutorial, Manual *(this document)*, and Model Library for the `latest release <http://www.nsnam.org/documentation/latest/>`_ and `development tree <http://www.nsnam.org/ns-3-dev/documentation/>`_
-* `ns-3 wiki <http://www.nsnam.org/wiki/index.php/Main_Page>`_
+* `ns-3 wiki <http://www.nsnam.org/wiki/Main_Page>`_
 
 This document is written in `reStructuredText <http://docutils.sourceforge.net/rst.html>`_ for `Sphinx <http://sphinx.pocoo.org/>`_ and is maintained in the
 ``doc/manual`` directory of ns-3's source code.
diff -Naur ns-3.18/doc/manual/source/new-modules.rst ns-3.18.1/doc/manual/source/new-modules.rst
--- ns-3.18/doc/manual/source/new-modules.rst	2013-08-29 22:36:52.000000000 -0700
+++ ns-3.18.1/doc/manual/source/new-modules.rst	2013-11-15 16:40:48.199760973 -0800
@@ -152,7 +152,7 @@
 
 .. sourcecode:: python
 
-    headers = bld.new_task_gen(features=['ns3header'])
+    headers = bld(features='ns3header')
 
     headers.module = 'spectrum'
 
@@ -329,7 +329,9 @@
 Step 8 - Build and test your new module
 ***************************************
 
-You can now build and test your module as normal:
+You can now build and test your module as normal.  You must reconfigure
+the project as a first step or else your new module will not be included
+in the build.
 
 .. sourcecode:: bash
 
@@ -338,3 +340,19 @@
   $ ./test.py
 
 and look for your new module's test suite (and example programs, if enabled) in the test output.
+
+Step 9 - Python bindings
+************************
+
+Adding Python bindings to your module is optional, and the step is
+commented out by default in the ``create-module.py`` script.
+
+.. sourcecode:: python
+
+    # bld.ns3_python_bindings()
+
+If you want to include Python bindings (needed only if you want
+to write Python ns-3 programs instead of C++ ns-3 programs), you
+should uncomment the above and install the Python API scanning
+system (covered elsewhere in this manual) and scan your module to
+generate new bindings.
diff -Naur ns-3.18/doc/manual/source/python.rst ns-3.18.1/doc/manual/source/python.rst
--- ns-3.18/doc/manual/source/python.rst	2013-08-29 22:36:52.000000000 -0700
+++ ns-3.18.1/doc/manual/source/python.rst	2013-11-15 16:40:48.207760974 -0800
@@ -312,4 +312,4 @@
 More Information for Developers
 *******************************
 
-If you are a developer and need more information on |ns3|'s Python bindings, please see the `Python Bindings wiki page <http://www.nsnam.org/wiki/index.php/NS-3_Python_Bindings>`_.
+If you are a developer and need more information on |ns3|'s Python bindings, please see the `Python Bindings wiki page <http://www.nsnam.org/wiki/NS-3_Python_Bindings>`_.
diff -Naur ns-3.18/doc/manual/source/troubleshoot.rst ns-3.18.1/doc/manual/source/troubleshoot.rst
--- ns-3.18/doc/manual/source/troubleshoot.rst	2013-08-29 22:36:52.000000000 -0700
+++ ns-3.18.1/doc/manual/source/troubleshoot.rst	2013-11-15 16:40:48.199760973 -0800
@@ -8,7 +8,7 @@
 or running |ns3| programs.
 
 Please note that the wiki
-(`<http://www.nsnam.org/wiki/index.php/Troubleshooting>`_) may have contributed
+(`<http://www.nsnam.org/wiki/Troubleshooting>`_) may have contributed
 items.
 
 Build errors
diff -Naur ns-3.18/doc/models/Makefile ns-3.18.1/doc/models/Makefile
--- ns-3.18/doc/models/Makefile	2013-08-29 22:36:52.000000000 -0700
+++ ns-3.18.1/doc/models/Makefile	2013-11-15 16:40:48.151760968 -0800
@@ -309,7 +309,7 @@
 
 IMAGES = $(IMAGES_EPS) $(IMAGES_PNG) $(IMAGES_PDF)
 
-RESCALE = $(shell hg root)/utils/rescale-pdf.sh
+RESCALE = ../../utils/rescale-pdf.sh
 
 %.eps : %.dia; $(DIA) -t eps $< -e $@
 %.png : %.dia; $(DIA) -t png $< -e $@
diff -Naur ns-3.18/doc/models/source/conf.py ns-3.18.1/doc/models/source/conf.py
--- ns-3.18/doc/models/source/conf.py	2013-08-29 22:36:52.000000000 -0700
+++ ns-3.18.1/doc/models/source/conf.py	2013-11-15 16:40:48.175760974 -0800
@@ -48,9 +48,9 @@
 # built documents.
 #
 # The short X.Y version.
-version = 'ns-3.18'
+version = 'ns-3.18.1'
 # The full version, including alpha/beta/rc tags.
-release = 'ns-3.18'
+release = 'ns-3.18.1'
 
 # The language for content autogenerated by Sphinx. Refer to documentation
 # for a list of supported languages.
diff -Naur ns-3.18/doc/models/source/index.rst ns-3.18.1/doc/models/source/index.rst
--- ns-3.18/doc/models/source/index.rst	2013-08-29 22:36:52.000000000 -0700
+++ ns-3.18.1/doc/models/source/index.rst	2013-11-15 16:40:48.171760974 -0800
@@ -8,7 +8,7 @@
 
 * `ns-3 Doxygen <http://www.nsnam.org/doxygen/index.html>`_: Documentation of the public APIs of the simulator
 * Tutorial, Manual, and Model Library *(this document)* for the `latest release <http://www.nsnam.org/documentation/latest/>`_ and `development tree <http://www.nsnam.org/ns-3-dev/documentation/>`_
-* `ns-3 wiki <http://www.nsnam.org/wiki/index.php/Main_Page>`_ 
+* `ns-3 wiki <http://www.nsnam.org/wiki>`_ 
 
 This document is written in `reStructuredText <http://docutils.sourceforge.net/rst.html>`_ for `Sphinx <http://sphinx.pocoo.org/>`_ and is maintained in the
 ``doc/models`` directory of ns-3's source code.
diff -Naur ns-3.18/doc/release_steps.txt ns-3.18.1/doc/release_steps.txt
--- ns-3.18/doc/release_steps.txt	2013-08-29 22:36:52.000000000 -0700
+++ ns-3.18.1/doc/release_steps.txt	2013-11-15 16:40:48.223760971 -0800
@@ -102,7 +102,7 @@
    - change the string 3-dev in the VERSION file to the real version 
      (e.g. 3.14)  This must agree with the version name you chose in the clone.
    - change the version and release string for the documentation in 
-     doc/manual/source, doc/tutorial/source, doc/tutorial-pt/source, 
+     doc/manual/source, doc/tutorial/source, doc/tutorial-pt-br/source, 
      and doc/models/source conf.py files
      This should hopefully be updated in the future to simply pull from the
      VERSION file.
@@ -155,6 +155,7 @@
 - Documentation
 
 2. Repoint http://www.nsnam.org/releases/latest to the new page
+   Repoint http://www.nsnam.org/documentation/latest to the new page
    Repoint /var/www/html/doxygen-release to the new release doxygen.
 
 3. Update the Older Releases page to create an entry for the previous
diff -Naur ns-3.18/doc/tutorial/source/conf.py ns-3.18.1/doc/tutorial/source/conf.py
--- ns-3.18/doc/tutorial/source/conf.py	2013-08-29 22:36:54.000000000 -0700
+++ ns-3.18.1/doc/tutorial/source/conf.py	2013-11-15 16:40:48.147760970 -0800
@@ -48,9 +48,9 @@
 # built documents.
 #
 # The short X.Y version.
-version = 'ns-3.18'
+version = 'ns-3.18.1'
 # The full version, including alpha/beta/rc tags.
-release = 'ns-3.18'
+release = 'ns-3.18.1'
 
 # The language for content autogenerated by Sphinx. Refer to documentation
 # for a list of supported languages.
diff -Naur ns-3.18/doc/tutorial/source/getting-started.rst ns-3.18.1/doc/tutorial/source/getting-started.rst
--- ns-3.18/doc/tutorial/source/getting-started.rst	2013-08-29 22:36:54.000000000 -0700
+++ ns-3.18.1/doc/tutorial/source/getting-started.rst	2013-11-15 16:40:48.143760972 -0800
@@ -43,7 +43,7 @@
 present on your system before proceeding.  |ns3| provides a wiki
 page that includes pages with many useful hints and tips.
 One such page is the "Installation" page,
-http://www.nsnam.org/wiki/index.php/Installation.
+http://www.nsnam.org/wiki/Installation.
 
 The "Prerequisites" section of this wiki page explains which packages are 
 required to support common |ns3| options, and also provides the 
@@ -661,5 +661,5 @@
 
 If you want to run programs under another tool such as gdb or valgrind,
 see this `wiki entry
-<http://www.nsnam.org/wiki/index.php/User_FAQ#How_to_run_NS-3_programs_under_another_tool>`_.
+<http://www.nsnam.org/wiki/User_FAQ#How_to_run_NS-3_programs_under_another_tool>`_.
 
diff -Naur ns-3.18/doc/tutorial/source/index.rst ns-3.18.1/doc/tutorial/source/index.rst
--- ns-3.18/doc/tutorial/source/index.rst	2013-08-29 22:36:54.000000000 -0700
+++ ns-3.18.1/doc/tutorial/source/index.rst	2013-11-15 16:40:48.147760970 -0800
@@ -8,7 +8,7 @@
 
 * `ns-3 Doxygen <http://www.nsnam.org/doxygen/index.html>`_: Documentation of the public APIs of the simulator
 * Tutorial *(this document)*, Manual, and Model Library for the `latest release <http://www.nsnam.org/documentation/latest/>`_ and `development tree <http://www.nsnam.org/ns-3-dev/documentation/>`_
-* `ns-3 wiki <http://www.nsnam.org/wiki/index.php/Main_Page>`_
+* `ns-3 wiki <http://www.nsnam.org/wiki/Main_Page>`_
 
 This document is written in `reStructuredText <http://docutils.sourceforge.net/rst.html>`_ for `Sphinx <http://sphinx.pocoo.org/>`_ and is maintained in the
 ``doc/tutorial`` directory of ns-3's source code.
diff -Naur ns-3.18/doc/tutorial/source/introduction.rst ns-3.18.1/doc/tutorial/source/introduction.rst
--- ns-3.18/doc/tutorial/source/introduction.rst	2013-08-29 22:36:54.000000000 -0700
+++ ns-3.18.1/doc/tutorial/source/introduction.rst	2013-11-15 16:40:48.147760970 -0800
@@ -135,9 +135,9 @@
 
 * Open source licensing based on GNU GPLv2 compatibility
 * `wiki
-  <http://www.nsnam.org/wiki/index.php>`_
+  <http://www.nsnam.org/wiki>`_
 * `Contributed Code
-  <http://www.nsnam.org/wiki/index.php/Contributed_Code>`_ page, similar to |ns2|'s popular Contributed Code
+  <http://www.nsnam.org/wiki/Contributed_Code>`_ page, similar to |ns2|'s popular Contributed Code
   `page
   <http://nsnam.isi.edu/nsnam/index.php/Contributed_Code>`_ 
 * Open `bug tracker
diff -Naur ns-3.18/doc/tutorial-pt-br/source/conf.py ns-3.18.1/doc/tutorial-pt-br/source/conf.py
--- ns-3.18/doc/tutorial-pt-br/source/conf.py	2013-08-29 22:36:53.000000000 -0700
+++ ns-3.18.1/doc/tutorial-pt-br/source/conf.py	2013-11-15 16:40:48.215760970 -0800
@@ -50,9 +50,9 @@
 # built documents.
 #
 # The short X.Y version.
-version = 'ns-3.18'
+version = 'ns-3.18.1'
 # The full version, including alpha/beta/rc tags.
-release = 'ns-3.18'
+release = 'ns-3.18.1'
 
 # The language for content autogenerated by . Refer to babel documentation
 # for a list of supported languages.
diff -Naur ns-3.18/doc/tutorial-pt-br/source/getting-started.rst ns-3.18.1/doc/tutorial-pt-br/source/getting-started.rst
--- ns-3.18/doc/tutorial-pt-br/source/getting-started.rst	2013-08-29 22:36:53.000000000 -0700
+++ ns-3.18.1/doc/tutorial-pt-br/source/getting-started.rst	2013-11-15 16:40:48.211760972 -0800
@@ -30,9 +30,9 @@
 	present on your system before proceeding.  |ns3| provides a wiki
 	for your reading pleasure that includes pages with many useful hints and tips.
 	One such page is the "Installation" page,
-	http://www.nsnam.org/wiki/index.php/Installation. 
+	http://www.nsnam.org/wiki/Installation. 
 
-O |ns3|, como um todo,  bastante complexo e possui vrias dependncias. Isto tambm  verdade para as ferramentas que fornecem suporte ao |ns3| (exemplos, `"GNU toolchain"`, Mercurial e um editor para a programao), desta forma  necessrio assegurar que vrias bibliotecas estejam presentes no sistema. O |ns3| fornece um Wiki com vrias dicas sobre o sistema. Uma das pginas do Wiki  a pgina de instalao (`"Installation"`) que est disponvel em: http://www.nsnam.org/wiki/index.php/Installation. 
+O |ns3|, como um todo,  bastante complexo e possui vrias dependncias. Isto tambm  verdade para as ferramentas que fornecem suporte ao |ns3| (exemplos, `"GNU toolchain"`, Mercurial e um editor para a programao), desta forma  necessrio assegurar que vrias bibliotecas estejam presentes no sistema. O |ns3| fornece um Wiki com vrias dicas sobre o sistema. Uma das pginas do Wiki  a pgina de instalao (`"Installation"`) que est disponvel em: http://www.nsnam.org/wiki/Installation. 
 
 ..
 	The "Prerequisites" section of this wiki page explains which packages are 
@@ -740,7 +740,7 @@
 ..
 	If you want to run programs under another tool such as gdb or valgrind,
 	see this `wiki entry
-	<http://www.nsnam.org/wiki/index.php/User_FAQ#How_to_run_NS-3_programs_under_another_tool>`_.
+	<http://www.nsnam.org/wiki/User_FAQ#How_to_run_NS-3_programs_under_another_tool>`_.
 
-Se o leitor for executar seus programas sob outras ferramentas, tais como Gdb ou Valgrind,  recomendvel que leia a seguinte `entrada no Wiki <http://www.nsnam.org/wiki/index.php/User_FAQ#How_to_run_NS-3_programs_under_another_tool>`_.
+Se o leitor for executar seus programas sob outras ferramentas, tais como Gdb ou Valgrind,  recomendvel que leia a seguinte `entrada no Wiki <http://www.nsnam.org/wiki/User_FAQ#How_to_run_NS-3_programs_under_another_tool>`_.
 
diff -Naur ns-3.18/doc/tutorial-pt-br/source/index.rst ns-3.18.1/doc/tutorial-pt-br/source/index.rst
--- ns-3.18/doc/tutorial-pt-br/source/index.rst	2013-08-29 22:36:53.000000000 -0700
+++ ns-3.18.1/doc/tutorial-pt-br/source/index.rst	2013-11-15 16:40:48.215760970 -0800
@@ -30,7 +30,7 @@
 
 * Tutorial *(este documento)*, manual, modelos de bibliotecas para a `ltima release <http://www.nsnam.org/documentation/latest/>`_ e `rvore de desenvolvimento <http://www.nsnam.org/ns-3-dev/documentation/>`_;
 
-* `ns-3 wiki <http://www.nsnam.org/wiki/index.php/Main_Page>`_.
+* `ns-3 wiki <http://www.nsnam.org/wiki/Main_Page>`_.
 
 ..
 	This document is written in `reStructuredText <http://docutils.sourceforge.net/rst.html>`_ for `Sphinx <http://sphinx.pocoo.org/>`_ and is maintained in the
diff -Naur ns-3.18/doc/tutorial-pt-br/source/introduction.rst ns-3.18.1/doc/tutorial-pt-br/source/introduction.rst
--- ns-3.18/doc/tutorial-pt-br/source/introduction.rst	2013-08-29 22:36:53.000000000 -0700
+++ ns-3.18.1/doc/tutorial-pt-br/source/introduction.rst	2013-11-15 16:40:48.215760970 -0800
@@ -132,15 +132,15 @@
 
 * Licena de cdigo aberto compatvel com GNU GPLv2;
 
-* `Wiki	<http://www.nsnam.org/wiki/index.php>`_;
+* `Wiki	<http://www.nsnam.org/wiki>`_;
 
 .. 
 	* `Contributed Code
-	<http://www.nsnam.org/wiki/index.php/Contributed_Code>`_ page, similar to ns-2's popular Contributed Code
+	<http://www.nsnam.org/wiki/Contributed_Code>`_ page, similar to ns-2's popular Contributed Code
 	`page
 	<http://nsnam.isi.edu/nsnam/index.php/Contributed_Code>`_ 
 
-* Pgina para `contribuio com o cdigo <http://www.nsnam.org/wiki/index.php/Contributed_Code>`_, similar a pgina de contribuio do `ns-2 <http://nsnam.isi.edu/nsnam/index.php/Contributed_Code>`_;
+* Pgina para `contribuio com o cdigo <http://www.nsnam.org/wiki/Contributed_Code>`_, similar a pgina de contribuio do `ns-2 <http://nsnam.isi.edu/nsnam/index.php/Contributed_Code>`_;
 
 .. 
 	* Open `bug tracker
diff -Naur ns-3.18/examples/stats/README ns-3.18.1/examples/stats/README
--- ns-3.18/examples/stats/README	2013-08-29 22:36:55.000000000 -0700
+++ ns-3.18.1/examples/stats/README	2013-11-15 16:40:48.239760975 -0800
@@ -13,7 +13,7 @@
 More information on the statistics package and this example is
 available online on the ns-3 wiki at:
 
-http://www.nsnam.org/wiki/index.php/Statistical_Framework_for_Network_Simulation
+http://www.nsnam.org/wiki/Statistical_Framework_for_Network_Simulation
 
 *** Using ns-3 with the OMNeT++ analysis tool ***
 
diff -Naur ns-3.18/examples/tcp/tcp-variants-comparison.cc ns-3.18.1/examples/tcp/tcp-variants-comparison.cc
--- ns-3.18/examples/tcp/tcp-variants-comparison.cc	2013-08-29 22:36:55.000000000 -0700
+++ ns-3.18.1/examples/tcp/tcp-variants-comparison.cc	2013-11-15 16:40:48.243760973 -0800
@@ -300,7 +300,6 @@
           ApplicationContainer sourceApp = ftp.Install (sources.Get(i));
           sourceApp.Start (Seconds (start_time*i));
           sourceApp.Stop (Seconds (stop_time - 3));
-          Time check_start (Seconds((start_time*i)+3));
 
           sinkHelper.SetAttribute ("Protocol", TypeIdValue (TcpSocketFactory::GetTypeId ()));
           ApplicationContainer sinkApp = sinkHelper.Install (sinks);
diff -Naur ns-3.18/examples/wireless/ht-wifi-network.cc ns-3.18.1/examples/wireless/ht-wifi-network.cc
--- ns-3.18/examples/wireless/ht-wifi-network.cc	2013-08-29 22:36:56.000000000 -0700
+++ ns-3.18.1/examples/wireless/ht-wifi-network.cc	2013-11-15 16:40:48.231760974 -0800
@@ -92,7 +92,7 @@
  
 
     Ssid ssid = Ssid ("ns380211n");
-    double datarate;
+    double datarate = 0;
     StringValue DataRate;
     if (i==0)
       {
diff -Naur ns-3.18/examples/wireless/wifi-hidden-terminal.cc ns-3.18.1/examples/wireless/wifi-hidden-terminal.cc
--- ns-3.18/examples/wireless/wifi-hidden-terminal.cc	2013-08-29 22:36:56.000000000 -0700
+++ ns-3.18.1/examples/wireless/wifi-hidden-terminal.cc	2013-11-15 16:40:48.231760974 -0800
@@ -82,10 +82,10 @@
 
   // uncomment the following to have athstats output
   // AthstatsHelper athstats;
-  // athstats.EnableAthstats(enableCtsRts ? "basic-athstats-node" : "rtscts-athstats-node", nodes);
+  // athstats.EnableAthstats(enableCtsRts ? "rtscts-athstats-node" : "basic-athstats-node" , nodes);
 
   // uncomment the following to have pcap output
-  //wifiPhy.EnablePcap (enableCtsRts ? "basic-pcap-node" : "rtscts-pcap-node", nodes);
+  // wifiPhy.EnablePcap (enableCtsRts ? "rtscts-pcap-node" : "basic-pcap-node" , nodes);
 
 
   // 6. Install TCP/IP stack & assign IP addresses
@@ -99,7 +99,7 @@
   ApplicationContainer cbrApps;
   uint16_t cbrPort = 12345;
   OnOffHelper onOffHelper ("ns3::UdpSocketFactory", InetSocketAddress (Ipv4Address ("10.0.0.2"), cbrPort));
-  onOffHelper.SetAttribute ("PacketSize", UintegerValue (200));
+  onOffHelper.SetAttribute ("PacketSize", UintegerValue (1400));
   onOffHelper.SetAttribute ("OnTime",  StringValue ("ns3::ConstantRandomVariable[Constant=1]"));
   onOffHelper.SetAttribute ("OffTime", StringValue ("ns3::ConstantRandomVariable[Constant=0]"));
 
@@ -153,13 +153,21 @@
   for (std::map<FlowId, FlowMonitor::FlowStats>::const_iterator i = stats.begin (); i != stats.end (); ++i)
     {
       // first 2 FlowIds are for ECHO apps, we don't want to display them
+      //
+      // Duration for throughput measurement is 9.0 seconds, since 
+      //   StartTime of the OnOffApplication is at about "second 1"
+      // and 
+      //   Simulator::Stops at "second 10".
       if (i->first > 2)
         {
           Ipv4FlowClassifier::FiveTuple t = classifier->FindFlow (i->first);
           std::cout << "Flow " << i->first - 2 << " (" << t.sourceAddress << " -> " << t.destinationAddress << ")\n";
+          std::cout << "  Tx Packets: " << i->second.txPackets << "\n";
           std::cout << "  Tx Bytes:   " << i->second.txBytes << "\n";
+          std::cout << "  TxOffered:  " << i->second.txBytes * 8.0 / 9.0 / 1000 / 1000  << " Mbps\n";
+          std::cout << "  Rx Packets: " << i->second.rxPackets << "\n";
           std::cout << "  Rx Bytes:   " << i->second.rxBytes << "\n";
-          std::cout << "  Throughput: " << i->second.rxBytes * 8.0 / 10.0 / 1000 / 1000  << " Mbps\n";
+          std::cout << "  Throughput: " << i->second.rxBytes * 8.0 / 9.0 / 1000 / 1000  << " Mbps\n";
         }
     }
 
diff -Naur ns-3.18/RELEASE_NOTES ns-3.18.1/RELEASE_NOTES
--- ns-3.18/RELEASE_NOTES	2013-08-29 22:42:16.000000000 -0700
+++ ns-3.18.1/RELEASE_NOTES	2013-11-15 16:40:48.231760974 -0800
@@ -9,8 +9,60 @@
 Consult the file CHANGES.html for more detailed information about changed
 API and behavior across ns-3 releases.
 
+Release 3.18.1
+==============
+
+This release is mainly to provide updated compiler support (clang/LLVM)
+and fix the Python API scanning facility.  A few additional bug fixes
+and new features are described below.
+
+Availability
+------------
+This release is available from:
+http://www.nsnam.org/release/ns-allinone-3.18.1.tar.bz2
+
+Supported platforms
+-------------------
+These platforms have been tested; others may work also:
+- Fedora Core 19 (32/64 bit) with g++-4.8.1
+- Ubuntu 13.10 (64 bit) with g++-4.8.1
+- Ubuntu 12.04.3 (32/64 bit) with g++-4.6.3
+- Ubuntu 10.04.4 LTS (64 bit) with g++-4.4.3
+- OS X Mavericks 10.9 with Xcode 5.0.1 and clang-500.2.79
+- OS X Mountain Lion 10.8.5 with Xcode 5 and g++-4.2.1
+- FreeBSD 9.2-RELEASE (64 bit) with clang-3.3
+
+New user-visible features
+-------------------------
+- It is now possible to randomize the time of the first beacon from an 
+  access point.  Use an attribute "EnableBeaconJitter" to enable/disable 
+  this feature.
+- A new FixedRoomPositionAllocator helper class is available; it
+  allows one to generate a random position uniformly distributed in the
+  volume of a chosen room inside a chosen building.
+- Logging wildcards:  allow "***" as synonym for "*=**" to turn on all logging.
+- The log component list ("NS_LOG=print-list") is now printed alphabetically.
+
+Bugs fixed
+----------
+- Bug 1779 - NS_UNUSED_GLOBAL not working in attribute test class declaration
+- Bug 1766 - Fixes to wifi-hidden-terminal.cc example
+- Bug 1722 - Avoid transmitting beacons concurrently
+- Bug 1691 - RTS/CTS NAV reset prematurely
+- Bug 1622 - Avoid waf hanging during apiscan
+- Bug 1616 - WifiPhyStateHelper reports false CCA_BUSY times at State trace source
+- Bug 1552 - Storing log name inside LogComponent class (NS_LOG) as std::string
+- Bug 1011 - assert failed. file=../src/devices/wifi/dcf-manager.cc
+- bug 945 - remove deprecated IEEE 802.11p code from wifi module
+- Fix aliasing bug in optimized static builds
+- Fix memory leak due to circular reference in MPI module
+- Make wifi tests more robust to random variable perturbations
+- Fix Time class doxygen
+- Fix compilation with Clang 3.2 and newer versions, including Apple Xcode 5
+- Miscellaneous NetAnim fixes
+
 Release 3.18
-============
+=============
 
 Availability
 ------------
@@ -19,6 +71,14 @@
 
 Supported platforms
 -------------------
+These platforms have been tested; others may work also:
+- Fedora Core 18 (32/64 bit) with g++-4.7.2
+- Fedora Core 17 (32/64 bit) with g++-4.7.0
+- Ubuntu 13.04 (32/64 bit) with g++-4.7.3
+- Ubuntu 12.04 (32/64 bit) with g++-4.6.3
+- Ubuntu 10.04.4 LTS (64 bit) with g++-4.4.3
+- OS X Mountain Lion 10.8.3 with g++-4.2.1
+- FreeBSD 9.1-RELEASE (64 bit) with g++-4.2.1
 
 New user-visible features
 -------------------------
@@ -946,7 +1006,7 @@
 
 Not all ns-3 options are available on all platforms; consult the
 wiki for more information:
-http://www.nsnam.org/wiki/index.php/Installation
+http://www.nsnam.org/wiki/Installation
 
 New user-visible features
 -------------------------
@@ -1103,7 +1163,7 @@
 
 Not all ns-3 options are available on all platforms; consult the
 wiki for more information:
-http://www.nsnam.org/wiki/index.php/Installation
+http://www.nsnam.org/wiki/Installation
 
 New user-visible features
 -------------------------
@@ -1247,7 +1307,7 @@
 
 Not all ns-3 options are available on all platforms; consult the
 wiki for more information:
-http://www.nsnam.org/wiki/index.php/Installation
+http://www.nsnam.org/wiki/Installation
 
 New user-visible features
 -------------------------
@@ -1367,7 +1427,7 @@
 
 Not all ns-3 options are available on all platforms; consult the
 wiki for more information:
-http://www.nsnam.org/wiki/index.php/Installation
+http://www.nsnam.org/wiki/Installation
 
 New user-visible features
 -------------------------
@@ -1444,7 +1504,7 @@
 
 Not all ns-3 options are available on all platforms; consult the
 wiki for more information:
-http://www.nsnam.org/wiki/index.php/Installation
+http://www.nsnam.org/wiki/Installation
 
 New user-visible features
 -------------------------
@@ -1502,7 +1562,7 @@
 
 Not all ns-3 options are available on all platforms; consult the
 wiki for more information:
-http://www.nsnam.org/wiki/index.php/Installation
+http://www.nsnam.org/wiki/Installation
 
 New user-visible features
 -------------------------
@@ -1566,7 +1626,7 @@
 
 Not all ns-3 options are available on all platforms; consult the
 wiki for more information:
-http://www.nsnam.org/wiki/index.php/Installation
+http://www.nsnam.org/wiki/Installation
 
 New user-visible features
 -------------------------
@@ -1633,7 +1693,7 @@
 
 Not all ns-3 options are available on all platforms; consult the
 wiki for more information:
-http://www.nsnam.org/wiki/index.php/Installation
+http://www.nsnam.org/wiki/Installation
 
 New user-visible features
 -------------------------
@@ -1661,7 +1721,7 @@
     keep track of simulation data in persistent storage across multiple 
     runs (database and ascii file backends are available).
     More information on the wiki:
-    http://www.nsnam.org/wiki/index.php/Statistical_Framework_for_Network_Simulation
+    http://www.nsnam.org/wiki/Statistical_Framework_for_Network_Simulation
 
 API changes from ns-3.1
 -----------------------
diff -Naur ns-3.18/src/antenna/bindings/modulegen__gcc_ILP32.py ns-3.18.1/src/antenna/bindings/modulegen__gcc_ILP32.py
--- ns-3.18/src/antenna/bindings/modulegen__gcc_ILP32.py	2013-08-29 22:36:57.000000000 -0700
+++ ns-3.18.1/src/antenna/bindings/modulegen__gcc_ILP32.py	2013-11-15 16:40:48.499760977 -0800
@@ -102,14 +102,14 @@
     module.add_class('Vector3DChecker', import_from_module='ns.core', parent=root_module['ns3::AttributeChecker'])
     ## vector.h (module 'core'): ns3::Vector3DValue [class]
     module.add_class('Vector3DValue', import_from_module='ns.core', parent=root_module['ns3::AttributeValue'])
-    typehandlers.add_type_alias('ns3::Vector3DValue', 'ns3::VectorValue')
-    typehandlers.add_type_alias('ns3::Vector3DValue*', 'ns3::VectorValue*')
-    typehandlers.add_type_alias('ns3::Vector3DValue&', 'ns3::VectorValue&')
-    module.add_typedef(root_module['ns3::Vector3DValue'], 'VectorValue')
     typehandlers.add_type_alias('ns3::Vector3D', 'ns3::Vector')
     typehandlers.add_type_alias('ns3::Vector3D*', 'ns3::Vector*')
     typehandlers.add_type_alias('ns3::Vector3D&', 'ns3::Vector&')
     module.add_typedef(root_module['ns3::Vector3D'], 'Vector')
+    typehandlers.add_type_alias('ns3::Vector3DValue', 'ns3::VectorValue')
+    typehandlers.add_type_alias('ns3::Vector3DValue*', 'ns3::VectorValue*')
+    typehandlers.add_type_alias('ns3::Vector3DValue&', 'ns3::VectorValue&')
+    module.add_typedef(root_module['ns3::Vector3DValue'], 'VectorValue')
     typehandlers.add_type_alias('ns3::Vector3DChecker', 'ns3::VectorChecker')
     typehandlers.add_type_alias('ns3::Vector3DChecker*', 'ns3::VectorChecker*')
     typehandlers.add_type_alias('ns3::Vector3DChecker&', 'ns3::VectorChecker&')
diff -Naur ns-3.18/src/antenna/bindings/modulegen__gcc_LP64.py ns-3.18.1/src/antenna/bindings/modulegen__gcc_LP64.py
--- ns-3.18/src/antenna/bindings/modulegen__gcc_LP64.py	2013-08-29 22:36:57.000000000 -0700
+++ ns-3.18.1/src/antenna/bindings/modulegen__gcc_LP64.py	2013-11-15 16:40:48.499760977 -0800
@@ -102,14 +102,14 @@
     module.add_class('Vector3DChecker', import_from_module='ns.core', parent=root_module['ns3::AttributeChecker'])
     ## vector.h (module 'core'): ns3::Vector3DValue [class]
     module.add_class('Vector3DValue', import_from_module='ns.core', parent=root_module['ns3::AttributeValue'])
-    typehandlers.add_type_alias('ns3::Vector3DValue', 'ns3::VectorValue')
-    typehandlers.add_type_alias('ns3::Vector3DValue*', 'ns3::VectorValue*')
-    typehandlers.add_type_alias('ns3::Vector3DValue&', 'ns3::VectorValue&')
-    module.add_typedef(root_module['ns3::Vector3DValue'], 'VectorValue')
     typehandlers.add_type_alias('ns3::Vector3D', 'ns3::Vector')
     typehandlers.add_type_alias('ns3::Vector3D*', 'ns3::Vector*')
     typehandlers.add_type_alias('ns3::Vector3D&', 'ns3::Vector&')
     module.add_typedef(root_module['ns3::Vector3D'], 'Vector')
+    typehandlers.add_type_alias('ns3::Vector3DValue', 'ns3::VectorValue')
+    typehandlers.add_type_alias('ns3::Vector3DValue*', 'ns3::VectorValue*')
+    typehandlers.add_type_alias('ns3::Vector3DValue&', 'ns3::VectorValue&')
+    module.add_typedef(root_module['ns3::Vector3DValue'], 'VectorValue')
     typehandlers.add_type_alias('ns3::Vector3DChecker', 'ns3::VectorChecker')
     typehandlers.add_type_alias('ns3::Vector3DChecker*', 'ns3::VectorChecker*')
     typehandlers.add_type_alias('ns3::Vector3DChecker&', 'ns3::VectorChecker&')
diff -Naur ns-3.18/src/antenna/doc/Makefile ns-3.18.1/src/antenna/doc/Makefile
--- ns-3.18/src/antenna/doc/Makefile	2013-08-29 22:36:57.000000000 -0700
+++ ns-3.18.1/src/antenna/doc/Makefile	2013-11-15 16:40:48.495760979 -0800
@@ -20,7 +20,7 @@
 
 IMAGES = $(IMAGES_EPS) $(IMAGES_PNG) $(IMAGES_PDF)
 
-RESCALE = $(shell hg root)/utils/rescale-pdf.sh
+RESCALE = ../../../utils/rescale-pdf.sh
 
 %.eps : %.dia; $(DIA) -t eps $< -e $@
 %.png : %.dia; $(DIA) -t png $< -e $@
diff -Naur ns-3.18/src/aodv/bindings/modulegen__gcc_ILP32.py ns-3.18.1/src/aodv/bindings/modulegen__gcc_ILP32.py
--- ns-3.18/src/aodv/bindings/modulegen__gcc_ILP32.py	2013-08-29 22:36:57.000000000 -0700
+++ ns-3.18.1/src/aodv/bindings/modulegen__gcc_ILP32.py	2013-11-15 16:40:48.439760977 -0800
@@ -2797,6 +2797,7 @@
     return
 
 def register_Ns3Int64x64_t_methods(root_module, cls):
+    cls.add_binary_comparison_operator('<=')
     cls.add_binary_comparison_operator('!=')
     cls.add_inplace_numeric_operator('+=', param('ns3::int64x64_t const &', 'right'))
     cls.add_binary_numeric_operator('*', root_module['ns3::int64x64_t'], root_module['ns3::int64x64_t'], param('long long unsigned int const', 'right'))
@@ -2854,7 +2855,6 @@
     cls.add_inplace_numeric_operator('-=', param('ns3::int64x64_t const &', 'right'))
     cls.add_inplace_numeric_operator('/=', param('ns3::int64x64_t const &', 'right'))
     cls.add_output_stream_operator()
-    cls.add_binary_comparison_operator('<=')
     cls.add_binary_comparison_operator('==')
     cls.add_binary_comparison_operator('>=')
     ## int64x64-double.h (module 'core'): ns3::int64x64_t::int64x64_t() [constructor]
@@ -4160,6 +4160,7 @@
     return
 
 def register_Ns3Time_methods(root_module, cls):
+    cls.add_binary_comparison_operator('<=')
     cls.add_binary_comparison_operator('!=')
     cls.add_inplace_numeric_operator('+=', param('ns3::Time const &', 'right'))
     cls.add_binary_numeric_operator('+', root_module['ns3::Time'], root_module['ns3::Time'], param('ns3::Time const &', 'right'))
@@ -4168,7 +4169,6 @@
     cls.add_binary_comparison_operator('>')
     cls.add_inplace_numeric_operator('-=', param('ns3::Time const &', 'right'))
     cls.add_output_stream_operator()
-    cls.add_binary_comparison_operator('<=')
     cls.add_binary_comparison_operator('==')
     cls.add_binary_comparison_operator('>=')
     ## nstime.h (module 'core'): ns3::Time::Time() [constructor]
diff -Naur ns-3.18/src/aodv/bindings/modulegen__gcc_LP64.py ns-3.18.1/src/aodv/bindings/modulegen__gcc_LP64.py
--- ns-3.18/src/aodv/bindings/modulegen__gcc_LP64.py	2013-08-29 22:36:57.000000000 -0700
+++ ns-3.18.1/src/aodv/bindings/modulegen__gcc_LP64.py	2013-11-15 16:40:48.431760979 -0800
@@ -2797,6 +2797,7 @@
     return
 
 def register_Ns3Int64x64_t_methods(root_module, cls):
+    cls.add_binary_comparison_operator('<=')
     cls.add_binary_comparison_operator('!=')
     cls.add_inplace_numeric_operator('+=', param('ns3::int64x64_t const &', 'right'))
     cls.add_binary_numeric_operator('*', root_module['ns3::int64x64_t'], root_module['ns3::int64x64_t'], param('long long unsigned int const', 'right'))
@@ -2854,7 +2855,6 @@
     cls.add_inplace_numeric_operator('-=', param('ns3::int64x64_t const &', 'right'))
     cls.add_inplace_numeric_operator('/=', param('ns3::int64x64_t const &', 'right'))
     cls.add_output_stream_operator()
-    cls.add_binary_comparison_operator('<=')
     cls.add_binary_comparison_operator('==')
     cls.add_binary_comparison_operator('>=')
     ## int64x64-double.h (module 'core'): ns3::int64x64_t::int64x64_t() [constructor]
@@ -4160,6 +4160,7 @@
     return
 
 def register_Ns3Time_methods(root_module, cls):
+    cls.add_binary_comparison_operator('<=')
     cls.add_binary_comparison_operator('!=')
     cls.add_inplace_numeric_operator('+=', param('ns3::Time const &', 'right'))
     cls.add_binary_numeric_operator('+', root_module['ns3::Time'], root_module['ns3::Time'], param('ns3::Time const &', 'right'))
@@ -4168,7 +4169,6 @@
     cls.add_binary_comparison_operator('>')
     cls.add_inplace_numeric_operator('-=', param('ns3::Time const &', 'right'))
     cls.add_output_stream_operator()
-    cls.add_binary_comparison_operator('<=')
     cls.add_binary_comparison_operator('==')
     cls.add_binary_comparison_operator('>=')
     ## nstime.h (module 'core'): ns3::Time::Time() [constructor]
diff -Naur ns-3.18/src/aodv/model/aodv-routing-protocol.cc ns-3.18.1/src/aodv/model/aodv-routing-protocol.cc
--- ns-3.18/src/aodv/model/aodv-routing-protocol.cc	2013-08-29 22:36:57.000000000 -0700
+++ ns-3.18.1/src/aodv/model/aodv-routing-protocol.cc	2013-11-15 16:40:48.423760977 -0800
@@ -129,7 +129,6 @@
   AllowedHelloLoss (2),
   DeletePeriod (Time (5 * std::max (ActiveRouteTimeout, HelloInterval))),
   NextHopWait (NodeTraversalTime + MilliSeconds (10)),
-  TimeoutBuffer (2),
   BlackListTimeout (Time (RreqRetries * NetTraversalTime)),
   MaxQueueLen (64),
   MaxQueueTime (Seconds (30)),
@@ -202,11 +201,6 @@
                    TimeValue (Seconds (15)),
                    MakeTimeAccessor (&RoutingProtocol::DeletePeriod),
                    MakeTimeChecker ())
-    .AddAttribute ("TimeoutBuffer", "Its purpose is to provide a buffer for the timeout so that if the RREP is delayed"
-                   " due to congestion, a timeout is less likely to occur while the RREP is still en route back to the source.",
-                   UintegerValue (2),
-                   MakeUintegerAccessor (&RoutingProtocol::TimeoutBuffer),
-                   MakeUintegerChecker<uint16_t> ())
     .AddAttribute ("NetDiameter", "Net diameter measures the maximum possible number of hops between two nodes in the network",
                    UintegerValue (35),
                    MakeUintegerAccessor (&RoutingProtocol::NetDiameter),
diff -Naur ns-3.18/src/aodv/model/aodv-routing-protocol.h ns-3.18.1/src/aodv/model/aodv-routing-protocol.h
--- ns-3.18/src/aodv/model/aodv-routing-protocol.h	2013-08-29 22:36:57.000000000 -0700
+++ ns-3.18.1/src/aodv/model/aodv-routing-protocol.h	2013-11-15 16:40:48.423760977 -0800
@@ -129,11 +129,6 @@
    */
   Time DeletePeriod;
   Time NextHopWait;                  ///< Period of our waiting for the neighbour's RREP_ACK
-  /**
-   * The TimeoutBuffer is configurable.  Its purpose is to provide a buffer for the timeout so that if the RREP is delayed
-   * due to congestion, a timeout is less likely to occur while the RREP is still en route back to the source.
-   */
-  uint16_t TimeoutBuffer;
   Time BlackListTimeout;             ///< Time for which the node is put into the blacklist
   uint32_t MaxQueueLen;              ///< The maximum number of packets that we allow a routing protocol to buffer.
   Time MaxQueueTime;                 ///< The maximum period of time that a routing protocol is allowed to buffer a packet for.
diff -Naur ns-3.18/src/applications/bindings/modulegen__gcc_ILP32.py ns-3.18.1/src/applications/bindings/modulegen__gcc_ILP32.py
--- ns-3.18/src/applications/bindings/modulegen__gcc_ILP32.py	2013-08-29 22:36:57.000000000 -0700
+++ ns-3.18.1/src/applications/bindings/modulegen__gcc_ILP32.py	2013-11-15 16:40:49.627761008 -0800
@@ -4098,6 +4098,7 @@
     return
 
 def register_Ns3Int64x64_t_methods(root_module, cls):
+    cls.add_binary_comparison_operator('<=')
     cls.add_binary_comparison_operator('!=')
     cls.add_inplace_numeric_operator('+=', param('ns3::int64x64_t const &', 'right'))
     cls.add_binary_numeric_operator('*', root_module['ns3::int64x64_t'], root_module['ns3::int64x64_t'], param('long long unsigned int const', 'right'))
@@ -4155,7 +4156,6 @@
     cls.add_inplace_numeric_operator('-=', param('ns3::int64x64_t const &', 'right'))
     cls.add_inplace_numeric_operator('/=', param('ns3::int64x64_t const &', 'right'))
     cls.add_output_stream_operator()
-    cls.add_binary_comparison_operator('<=')
     cls.add_binary_comparison_operator('==')
     cls.add_binary_comparison_operator('>=')
     ## int64x64-double.h (module 'core'): ns3::int64x64_t::int64x64_t() [constructor]
@@ -5858,6 +5858,7 @@
     return
 
 def register_Ns3Time_methods(root_module, cls):
+    cls.add_binary_comparison_operator('<=')
     cls.add_binary_comparison_operator('!=')
     cls.add_inplace_numeric_operator('+=', param('ns3::Time const &', 'right'))
     cls.add_binary_numeric_operator('+', root_module['ns3::Time'], root_module['ns3::Time'], param('ns3::Time const &', 'right'))
@@ -5866,7 +5867,6 @@
     cls.add_binary_comparison_operator('>')
     cls.add_inplace_numeric_operator('-=', param('ns3::Time const &', 'right'))
     cls.add_output_stream_operator()
-    cls.add_binary_comparison_operator('<=')
     cls.add_binary_comparison_operator('==')
     cls.add_binary_comparison_operator('>=')
     ## nstime.h (module 'core'): ns3::Time::Time() [constructor]
diff -Naur ns-3.18/src/applications/bindings/modulegen__gcc_LP64.py ns-3.18.1/src/applications/bindings/modulegen__gcc_LP64.py
--- ns-3.18/src/applications/bindings/modulegen__gcc_LP64.py	2013-08-29 22:36:57.000000000 -0700
+++ ns-3.18.1/src/applications/bindings/modulegen__gcc_LP64.py	2013-11-15 16:40:49.619761011 -0800
@@ -4098,6 +4098,7 @@
     return
 
 def register_Ns3Int64x64_t_methods(root_module, cls):
+    cls.add_binary_comparison_operator('<=')
     cls.add_binary_comparison_operator('!=')
     cls.add_inplace_numeric_operator('+=', param('ns3::int64x64_t const &', 'right'))
     cls.add_binary_numeric_operator('*', root_module['ns3::int64x64_t'], root_module['ns3::int64x64_t'], param('long long unsigned int const', 'right'))
@@ -4155,7 +4156,6 @@
     cls.add_inplace_numeric_operator('-=', param('ns3::int64x64_t const &', 'right'))
     cls.add_inplace_numeric_operator('/=', param('ns3::int64x64_t const &', 'right'))
     cls.add_output_stream_operator()
-    cls.add_binary_comparison_operator('<=')
     cls.add_binary_comparison_operator('==')
     cls.add_binary_comparison_operator('>=')
     ## int64x64-double.h (module 'core'): ns3::int64x64_t::int64x64_t() [constructor]
@@ -5858,6 +5858,7 @@
     return
 
 def register_Ns3Time_methods(root_module, cls):
+    cls.add_binary_comparison_operator('<=')
     cls.add_binary_comparison_operator('!=')
     cls.add_inplace_numeric_operator('+=', param('ns3::Time const &', 'right'))
     cls.add_binary_numeric_operator('+', root_module['ns3::Time'], root_module['ns3::Time'], param('ns3::Time const &', 'right'))
@@ -5866,7 +5867,6 @@
     cls.add_binary_comparison_operator('>')
     cls.add_inplace_numeric_operator('-=', param('ns3::Time const &', 'right'))
     cls.add_output_stream_operator()
-    cls.add_binary_comparison_operator('<=')
     cls.add_binary_comparison_operator('==')
     cls.add_binary_comparison_operator('>=')
     ## nstime.h (module 'core'): ns3::Time::Time() [constructor]
diff -Naur ns-3.18/src/buildings/bindings/modulegen__gcc_ILP32.py ns-3.18.1/src/buildings/bindings/modulegen__gcc_ILP32.py
--- ns-3.18/src/buildings/bindings/modulegen__gcc_ILP32.py	2013-08-29 22:36:57.000000000 -0700
+++ ns-3.18.1/src/buildings/bindings/modulegen__gcc_ILP32.py	2013-11-15 16:40:48.335760977 -0800
@@ -188,6 +188,8 @@
     module.add_class('ErlangRandomVariable', import_from_module='ns.core', parent=root_module['ns3::RandomVariableStream'])
     ## random-variable-stream.h (module 'core'): ns3::ExponentialRandomVariable [class]
     module.add_class('ExponentialRandomVariable', import_from_module='ns.core', parent=root_module['ns3::RandomVariableStream'])
+    ## building-position-allocator.h (module 'buildings'): ns3::FixedRoomPositionAllocator [class]
+    module.add_class('FixedRoomPositionAllocator', parent=root_module['ns3::PositionAllocator'])
     ## propagation-loss-model.h (module 'propagation'): ns3::FixedRssLossModel [class]
     module.add_class('FixedRssLossModel', import_from_module='ns.propagation', parent=root_module['ns3::PropagationLossModel'])
     ## propagation-loss-model.h (module 'propagation'): ns3::FriisPropagationLossModel [class]
@@ -266,14 +268,14 @@
     module.add_class('AddressChecker', import_from_module='ns.network', parent=root_module['ns3::AttributeChecker'])
     ## address.h (module 'network'): ns3::AddressValue [class]
     module.add_class('AddressValue', import_from_module='ns.network', parent=root_module['ns3::AttributeValue'])
-    typehandlers.add_type_alias('ns3::Vector3DValue', 'ns3::VectorValue')
-    typehandlers.add_type_alias('ns3::Vector3DValue*', 'ns3::VectorValue*')
-    typehandlers.add_type_alias('ns3::Vector3DValue&', 'ns3::VectorValue&')
-    module.add_typedef(root_module['ns3::Vector3DValue'], 'VectorValue')
     typehandlers.add_type_alias('ns3::Vector3D', 'ns3::Vector')
     typehandlers.add_type_alias('ns3::Vector3D*', 'ns3::Vector*')
     typehandlers.add_type_alias('ns3::Vector3D&', 'ns3::Vector&')
     module.add_typedef(root_module['ns3::Vector3D'], 'Vector')
+    typehandlers.add_type_alias('ns3::Vector3DValue', 'ns3::VectorValue')
+    typehandlers.add_type_alias('ns3::Vector3DValue*', 'ns3::VectorValue*')
+    typehandlers.add_type_alias('ns3::Vector3DValue&', 'ns3::VectorValue&')
+    module.add_typedef(root_module['ns3::Vector3DValue'], 'VectorValue')
     typehandlers.add_type_alias('ns3::Vector3DChecker', 'ns3::VectorChecker')
     typehandlers.add_type_alias('ns3::Vector3DChecker*', 'ns3::VectorChecker*')
     typehandlers.add_type_alias('ns3::Vector3DChecker&', 'ns3::VectorChecker&')
@@ -399,6 +401,7 @@
     register_Ns3EmptyAttributeValue_methods(root_module, root_module['ns3::EmptyAttributeValue'])
     register_Ns3ErlangRandomVariable_methods(root_module, root_module['ns3::ErlangRandomVariable'])
     register_Ns3ExponentialRandomVariable_methods(root_module, root_module['ns3::ExponentialRandomVariable'])
+    register_Ns3FixedRoomPositionAllocator_methods(root_module, root_module['ns3::FixedRoomPositionAllocator'])
     register_Ns3FixedRssLossModel_methods(root_module, root_module['ns3::FixedRssLossModel'])
     register_Ns3FriisPropagationLossModel_methods(root_module, root_module['ns3::FriisPropagationLossModel'])
     register_Ns3GammaRandomVariable_methods(root_module, root_module['ns3::GammaRandomVariable'])
@@ -3312,6 +3315,28 @@
                    is_virtual=True)
     return
 
+def register_Ns3FixedRoomPositionAllocator_methods(root_module, cls):
+    ## building-position-allocator.h (module 'buildings'): ns3::FixedRoomPositionAllocator::FixedRoomPositionAllocator(ns3::FixedRoomPositionAllocator const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::FixedRoomPositionAllocator const &', 'arg0')])
+    ## building-position-allocator.h (module 'buildings'): ns3::FixedRoomPositionAllocator::FixedRoomPositionAllocator(uint32_t x, uint32_t y, uint32_t z, ns3::Ptr<ns3::Building> b) [constructor]
+    cls.add_constructor([param('uint32_t', 'x'), param('uint32_t', 'y'), param('uint32_t', 'z'), param('ns3::Ptr< ns3::Building >', 'b')])
+    ## building-position-allocator.h (module 'buildings'): int64_t ns3::FixedRoomPositionAllocator::AssignStreams(int64_t arg0) [member function]
+    cls.add_method('AssignStreams', 
+                   'int64_t', 
+                   [param('int64_t', 'arg0')], 
+                   is_virtual=True)
+    ## building-position-allocator.h (module 'buildings'): ns3::Vector ns3::FixedRoomPositionAllocator::GetNext() const [member function]
+    cls.add_method('GetNext', 
+                   'ns3::Vector', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## building-position-allocator.h (module 'buildings'): static ns3::TypeId ns3::FixedRoomPositionAllocator::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    return
+
 def register_Ns3FixedRssLossModel_methods(root_module, cls):
     ## propagation-loss-model.h (module 'propagation'): static ns3::TypeId ns3::FixedRssLossModel::GetTypeId() [member function]
     cls.add_method('GetTypeId', 
diff -Naur ns-3.18/src/buildings/bindings/modulegen__gcc_LP64.py ns-3.18.1/src/buildings/bindings/modulegen__gcc_LP64.py
--- ns-3.18/src/buildings/bindings/modulegen__gcc_LP64.py	2013-08-29 22:36:57.000000000 -0700
+++ ns-3.18.1/src/buildings/bindings/modulegen__gcc_LP64.py	2013-11-15 16:40:48.331760977 -0800
@@ -188,6 +188,8 @@
     module.add_class('ErlangRandomVariable', import_from_module='ns.core', parent=root_module['ns3::RandomVariableStream'])
     ## random-variable-stream.h (module 'core'): ns3::ExponentialRandomVariable [class]
     module.add_class('ExponentialRandomVariable', import_from_module='ns.core', parent=root_module['ns3::RandomVariableStream'])
+    ## building-position-allocator.h (module 'buildings'): ns3::FixedRoomPositionAllocator [class]
+    module.add_class('FixedRoomPositionAllocator', parent=root_module['ns3::PositionAllocator'])
     ## propagation-loss-model.h (module 'propagation'): ns3::FixedRssLossModel [class]
     module.add_class('FixedRssLossModel', import_from_module='ns.propagation', parent=root_module['ns3::PropagationLossModel'])
     ## propagation-loss-model.h (module 'propagation'): ns3::FriisPropagationLossModel [class]
@@ -266,14 +268,14 @@
     module.add_class('AddressChecker', import_from_module='ns.network', parent=root_module['ns3::AttributeChecker'])
     ## address.h (module 'network'): ns3::AddressValue [class]
     module.add_class('AddressValue', import_from_module='ns.network', parent=root_module['ns3::AttributeValue'])
-    typehandlers.add_type_alias('ns3::Vector3DValue', 'ns3::VectorValue')
-    typehandlers.add_type_alias('ns3::Vector3DValue*', 'ns3::VectorValue*')
-    typehandlers.add_type_alias('ns3::Vector3DValue&', 'ns3::VectorValue&')
-    module.add_typedef(root_module['ns3::Vector3DValue'], 'VectorValue')
     typehandlers.add_type_alias('ns3::Vector3D', 'ns3::Vector')
     typehandlers.add_type_alias('ns3::Vector3D*', 'ns3::Vector*')
     typehandlers.add_type_alias('ns3::Vector3D&', 'ns3::Vector&')
     module.add_typedef(root_module['ns3::Vector3D'], 'Vector')
+    typehandlers.add_type_alias('ns3::Vector3DValue', 'ns3::VectorValue')
+    typehandlers.add_type_alias('ns3::Vector3DValue*', 'ns3::VectorValue*')
+    typehandlers.add_type_alias('ns3::Vector3DValue&', 'ns3::VectorValue&')
+    module.add_typedef(root_module['ns3::Vector3DValue'], 'VectorValue')
     typehandlers.add_type_alias('ns3::Vector3DChecker', 'ns3::VectorChecker')
     typehandlers.add_type_alias('ns3::Vector3DChecker*', 'ns3::VectorChecker*')
     typehandlers.add_type_alias('ns3::Vector3DChecker&', 'ns3::VectorChecker&')
@@ -399,6 +401,7 @@
     register_Ns3EmptyAttributeValue_methods(root_module, root_module['ns3::EmptyAttributeValue'])
     register_Ns3ErlangRandomVariable_methods(root_module, root_module['ns3::ErlangRandomVariable'])
     register_Ns3ExponentialRandomVariable_methods(root_module, root_module['ns3::ExponentialRandomVariable'])
+    register_Ns3FixedRoomPositionAllocator_methods(root_module, root_module['ns3::FixedRoomPositionAllocator'])
     register_Ns3FixedRssLossModel_methods(root_module, root_module['ns3::FixedRssLossModel'])
     register_Ns3FriisPropagationLossModel_methods(root_module, root_module['ns3::FriisPropagationLossModel'])
     register_Ns3GammaRandomVariable_methods(root_module, root_module['ns3::GammaRandomVariable'])
@@ -3312,6 +3315,28 @@
                    is_virtual=True)
     return
 
+def register_Ns3FixedRoomPositionAllocator_methods(root_module, cls):
+    ## building-position-allocator.h (module 'buildings'): ns3::FixedRoomPositionAllocator::FixedRoomPositionAllocator(ns3::FixedRoomPositionAllocator const & arg0) [copy constructor]
+    cls.add_constructor([param('ns3::FixedRoomPositionAllocator const &', 'arg0')])
+    ## building-position-allocator.h (module 'buildings'): ns3::FixedRoomPositionAllocator::FixedRoomPositionAllocator(uint32_t x, uint32_t y, uint32_t z, ns3::Ptr<ns3::Building> b) [constructor]
+    cls.add_constructor([param('uint32_t', 'x'), param('uint32_t', 'y'), param('uint32_t', 'z'), param('ns3::Ptr< ns3::Building >', 'b')])
+    ## building-position-allocator.h (module 'buildings'): int64_t ns3::FixedRoomPositionAllocator::AssignStreams(int64_t arg0) [member function]
+    cls.add_method('AssignStreams', 
+                   'int64_t', 
+                   [param('int64_t', 'arg0')], 
+                   is_virtual=True)
+    ## building-position-allocator.h (module 'buildings'): ns3::Vector ns3::FixedRoomPositionAllocator::GetNext() const [member function]
+    cls.add_method('GetNext', 
+                   'ns3::Vector', 
+                   [], 
+                   is_const=True, is_virtual=True)
+    ## building-position-allocator.h (module 'buildings'): static ns3::TypeId ns3::FixedRoomPositionAllocator::GetTypeId() [member function]
+    cls.add_method('GetTypeId', 
+                   'ns3::TypeId', 
+                   [], 
+                   is_static=True)
+    return
+
 def register_Ns3FixedRssLossModel_methods(root_module, cls):
     ## propagation-loss-model.h (module 'propagation'): static ns3::TypeId ns3::FixedRssLossModel::GetTypeId() [member function]
     cls.add_method('GetTypeId', 
diff -Naur ns-3.18/src/buildings/doc/Makefile ns-3.18.1/src/buildings/doc/Makefile
--- ns-3.18/src/buildings/doc/Makefile	2013-08-29 22:36:57.000000000 -0700
+++ ns-3.18.1/src/buildings/doc/Makefile	2013-11-15 16:40:48.319760973 -0800
@@ -20,7 +20,7 @@
 
 IMAGES = $(IMAGES_EPS) $(IMAGES_PNG) $(IMAGES_PDF)
 
-RESCALE = $(shell hg root)/utils/rescale-pdf.sh
+RESCALE = ../../../utils/rescale-pdf.sh
 
 %.eps : %.dia; $(DIA) -t eps $< -e $@
 %.png : %.dia; $(DIA) -t png $< -e $@
diff -Naur ns-3.18/src/buildings/doc/source/buildings-user.rst ns-3.18.1/src/buildings/doc/source/buildings-user.rst
--- ns-3.18/src/buildings/doc/source/buildings-user.rst	2013-08-29 22:36:57.000000000 -0700
+++ ns-3.18.1/src/buildings/doc/source/buildings-user.rst	2013-11-15 16:40:48.319760973 -0800
@@ -5,10 +5,172 @@
   User Documentation
 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 
+How to use buildings in a simulation
+====================================
 
+In this section we explain the basic usage of the buildings model within a
+simulation program.
 
-Main configurable parameters
-----------------------------
+Include the headers
+*******************
+
+Add this at the beginning of your simulation program::
+
+   #include <ns3/buildings-module.h>
+
+
+Create a building
+*****************
+
+As an example, let's create a residential 10 x 20 x 10 building::
+
+    double x_min = 0.0;
+    double x_max = 10.0;
+    double y_min = 0.0;
+    double y_max = 20.0;
+    double z_min = 0.0;
+    double z_max = 10.0;
+    Ptr<Building> b = CreateObject <Building> ();
+    b->SetBoundaries (Box (x_min, x_max, y_min, y_max, z_min, z_max));
+    b->SetBuildingType (Building::Residential);
+    b->SetExtWallsType (Building::ConcreteWithWindows);
+    b->SetNFloors (3);
+    b->SetNRoomsX (3);
+    b->SetNRoomsY (2);
+
+This building has three floors and an internal 3 x 2  grid of rooms of equal size.
+
+The helper class GridBuildingAllocator is also available to easily
+create a set of buildings with identical characteristics placed on a
+rectangular grid. Here's an example of how to use it::
+
+  Ptr<GridBuildingAllocator>  gridBuildingAllocator;
+  gridBuildingAllocator = CreateObject<GridBuildingAllocator> ();
+  gridBuildingAllocator->SetAttribute ("GridWidth", UintegerValue (3));
+  gridBuildingAllocator->SetAttribute ("LengthX", DoubleValue (7)); 
+  gridBuildingAllocator->SetAttribute ("LengthY", DoubleValue (13));
+  gridBuildingAllocator->SetAttribute ("DeltaX", DoubleValue (3));
+  gridBuildingAllocator->SetAttribute ("DeltaY", DoubleValue (3));
+  gridBuildingAllocator->SetAttribute ("Height", DoubleValue (6));
+  gridBuildingAllocator->SetBuildingAttribute ("NRoomsX", UintegerValue (2));
+  gridBuildingAllocator->SetBuildingAttribute ("NRoomsY", UintegerValue (4));
+  gridBuildingAllocator->SetBuildingAttribute ("NFloors", UintegerValue (2));
+  gridBuildingAllocator->SetAttribute ("MinX", DoubleValue (0));
+  gridBuildingAllocator->SetAttribute ("MinY", DoubleValue (0));
+  gridBuildingAllocator->Create (6);
+
+
+This will create a 3x2 grid of 6 buildings, each 7 x 13 x 6 m with 2 x
+4 rooms inside and 2 foors; the buildings are spaced by 3 m on both
+the x and the y axis. 
+
+
+Setup nodes and mobility models
+*******************************
+
+Nodes and mobility models are configured as usual, however in order to
+use them with the buildings model you need an additional call to
+``BuildingsHelper::Install()``, so as to let the mobility model include
+the informtion on their position w.r.t. the buildings. Here is an example::
+
+    MobilityHelper mobility;
+    mobility.SetMobilityModel ("ns3::ConstantPositionMobilityModel");
+    ueNodes.Create (2);
+    mobility.Install (ueNodes);
+    BuildingsHelper::Install (ueNodes);
+
+It is to be noted that any mobility model can be used. However, the
+user is advised to make sure that the behavior of the mobility model
+being used is consistent with the presence of Buildings. For example,
+using a simple random mobility over the whole simulation area in
+presence of buildings might easily results in node moving in and out
+of buildings, regardless of the presence of walls. 
+
+
+Place some nodes
+****************
+
+You can place nodes in your simulation using several methods, which
+are described in the following.
+
+Legacy positioning methods
+--------------------------
+
+Any legacy ns-3 positioning method can be used to place node in the
+simulation. The important additional step is to For example, you can
+place nodes manually like this::
+
+    Ptr<ConstantPositionMobilityModel> mm0 = enbNodes.Get (0)->GetObject<ConstantPositionMobilityModel> ();
+    Ptr<ConstantPositionMobilityModel> mm1 = enbNodes.Get (1)->GetObject<ConstantPositionMobilityModel> ();
+    mm0->SetPosition (Vector (5.0, 5.0, 1.5));
+    mm1->SetPosition (Vector (30.0, 40.0, 1.5));
+
+    MobilityHelper mobility;
+    mobility.SetMobilityModel ("ns3::ConstantPositionMobilityModel");
+    ueNodes.Create (2);
+    mobility.Install (ueNodes);
+    BuildingsHelper::Install (ueNodes);
+    mm0->SetPosition (Vector (5.0, 5.0, 1.5));
+    mm1->SetPosition (Vector (30.0, 40.0, 1.5));
+
+Alternatively, you could use any existing PositionAllocator
+class. The coordinates of the node will determine whether it is placed
+outdoor or indoor and, if indoor, in which building and room it is placed.
+
+
+Building-specific positioning methods
+-------------------------------------
+
+The following position allocator classes are available to place node
+in special positions with respect to buildings:
+
+ - ``RandomBuildingPositionAllocator``: Allocate each position by
+   randomly chosing a building from the list of all buildings, and
+   then randomly chosing a position inside the building. 
+
+ - ``RandomRoomPositionAllocator``: Allocate each position by randomly
+   chosing a room from the list of rooms in all buildings, and then
+   randomly chosing a position inside the room. 
+
+ - ``SameRoomPositionAllocator``: Walks a given NodeContainer
+   sequentially, and for each node allocate a new position randomly in
+   the same room of that node.  
+
+ - ``FixedRoomPositionAllocator``: Generate a random position
+   uniformly distributed in the volume of a chosen room inside a
+   chosen building.   
+
+
+
+Make the Mobility Model Consistent
+**********************************
+
+**Important**: whenever you use buildings, you have to issue the
+following command after we have placed all nodes and buildings in the simulation::
+
+    BuildingsHelper::MakeMobilityModelConsistent ();
+
+This command will go through the lists of all nodes and of all
+buildings, determine for each user if it is indoor or outdoor, and if
+indoor it will also determine the building in which the user is
+located and the corresponding floor and number inside the building. 
+
+
+Building-aware pathloss model
+*****************************
+
+After you placed buildings and nodes in a simulation, you can use a
+building-aware pathloss model in a simulation exactly in the same way
+you would use any regular path loss model. How to do this is specific
+for the wireless module that you are considering (lte, wifi, wimax,
+etc.), so please refer to the documentation of that model for specific
+instructions.
+
+
+
+
+Main configurable attributes
+============================
 
 The ``Building`` class has the following configurable parameters:
 
@@ -42,12 +204,6 @@
 The simple ``OhBuildingMobilityLossModel`` overcome this problem by using only the Okumura Hata model and the wall penetration losses.
 
 
-Helper Functionalities
-----------------------
-
-The ``BuildingsHelper`` class defines a set of static function for assisting in the definition of the scenario with building module. In detail, it provides the method ``Install`` for installing the building information included in  ``MobilityBuildingInfo`` to a specific node (or set of nodes, i.e.,  the ``NodeContainer``). In order to synchronize the nodes information with their position, this helper provides the function ``MakeMobilityModelConsistent`` that puts all the ``Node``\s presents in the simulation in the right position (i.e., outdoor or indoor, in the latter also updating in terms of building, floor and room number).
-
-
 
 
 
diff -Naur ns-3.18/src/buildings/helper/building-position-allocator.cc ns-3.18.1/src/buildings/helper/building-position-allocator.cc
--- ns-3.18/src/buildings/helper/building-position-allocator.cc	2013-08-29 22:36:57.000000000 -0700
+++ ns-3.18.1/src/buildings/helper/building-position-allocator.cc	2013-11-15 16:40:48.323760975 -0800
@@ -77,13 +77,13 @@
     {
       if (m_buildingListWithoutReplacement.empty ())
         {
-            for (BuildingList::Iterator bit = BuildingList::Begin (); bit != BuildingList::End (); ++bit)
-              {
-                m_buildingListWithoutReplacement.push_back (*bit);
-              }
+          for (BuildingList::Iterator bit = BuildingList::Begin (); bit != BuildingList::End (); ++bit)
+            {
+              m_buildingListWithoutReplacement.push_back (*bit);
+            }
         }
       uint32_t n = m_rand->GetInteger (0, m_buildingListWithoutReplacement.size () - 1);
-      b = m_buildingListWithoutReplacement.at (n);      
+      b = m_buildingListWithoutReplacement.at (n);
       m_buildingListWithoutReplacement.erase (m_buildingListWithoutReplacement.begin () + n);
     }
 
@@ -152,8 +152,8 @@
         }
     }
   uint32_t n = m_rand->GetInteger (0,m_roomListWithoutReplacement.size () - 1);
-  RoomInfo r = m_roomListWithoutReplacement.at (n);      
-  m_roomListWithoutReplacement.erase (m_roomListWithoutReplacement.begin () + n);  
+  RoomInfo r = m_roomListWithoutReplacement.at (n);
+  m_roomListWithoutReplacement.erase (m_roomListWithoutReplacement.begin () + n);
   NS_LOG_LOGIC ("considering building " << r.b->GetId () << " room (" << r.roomx << ", " << r.roomy << ", " << r.floor << ")");
 
   Ptr<RandomBoxPositionAllocator> pa = CreateObject<RandomBoxPositionAllocator> ();
@@ -177,7 +177,7 @@
   double x = m_rand->GetValue (x1, x2);
   double y = m_rand->GetValue (y1, y2);
   double z = m_rand->GetValue (z1, z2);
-  
+
   return Vector (x, y, z);
 }
 
@@ -234,7 +234,7 @@
     {
       m_nodeIt  = m_nodes.Begin ();
     }
-  
+
   NS_ASSERT_MSG (m_nodeIt != m_nodes.End (), "no node in container");
 
   NS_LOG_LOGIC ("considering node " << (*m_nodeIt)->GetId ());
@@ -271,7 +271,7 @@
   double x = m_rand->GetValue (x1, x2);
   double y = m_rand->GetValue (y1, y2);
   double z = m_rand->GetValue (z1, z2);
-  
+
   return Vector (x, y, z);
 }
 
@@ -282,6 +282,68 @@
   return 1;
 }
 
+NS_OBJECT_ENSURE_REGISTERED (FixedRoomPositionAllocator);
+
+
+FixedRoomPositionAllocator::FixedRoomPositionAllocator (
+  uint32_t x,
+  uint32_t y,
+  uint32_t z,
+  Ptr<Building> pbtr)
+{
+  m_rand = CreateObject<UniformRandomVariable> ();
+  roomx = x;
+  roomy = y;
+  floor = z;
+  bptr = pbtr;
+}
+
+TypeId
+FixedRoomPositionAllocator::GetTypeId (void)
+{
+  static TypeId tid = TypeId ("ns3::FixedRoomPositionAllocator")
+    .SetParent<PositionAllocator> ()
+    .SetGroupName ("Mobility")
+    .AddConstructor<SameRoomPositionAllocator> ();
+  return tid;
+}
+
+Vector
+FixedRoomPositionAllocator::GetNext () const
+{
+
+  NS_LOG_LOGIC ("considering building " << bptr->GetId () << " room (" << roomx << ", " << roomy << ", " << floor << ")");
+
+  Ptr<RandomBoxPositionAllocator> pa = CreateObject<RandomBoxPositionAllocator> ();
+
+  Box box = bptr->GetBoundaries ();
+  double rdx =  (box.xMax - box.xMin) / bptr->GetNRoomsX ();
+  double rdy =  (box.yMax - box.yMin) / bptr->GetNRoomsY ();
+  double rdz =  (box.zMax - box.zMin) / bptr->GetNFloors ();
+  double x1 = box.xMin + rdx * (roomx - 1);
+  double x2 = box.xMin + rdx * roomx;
+  double y1 = box.yMin + rdy * (roomy -1);
+  double y2 = box.yMin + rdy * roomy;
+  double z1 = box.zMin + rdz * (floor - 1);
+  double z2 = box.zMin + rdz * floor;
+  NS_LOG_LOGIC ("randomly allocating position in "
+                << " (" << x1 << "," << x2 << ") "
+                << "x (" << y1 << "," << y2 << ") "
+                << "x (" << z1 << "," << z2 << ") ");
+
+  double x = m_rand->GetValue (x1, x2);
+  double y = m_rand->GetValue (y1, y2);
+  double z = m_rand->GetValue (z1, z2);
+  return Vector (x, y, z);
+}
+
+
+int64_t
+FixedRoomPositionAllocator::AssignStreams (int64_t stream)
+{
+  m_rand->SetStream (stream);
+  return 1;
+}
 
 
 } // namespace ns3
diff -Naur ns-3.18/src/buildings/helper/building-position-allocator.h ns-3.18.1/src/buildings/helper/building-position-allocator.h
--- ns-3.18/src/buildings/helper/building-position-allocator.h	2013-08-29 22:36:57.000000000 -0700
+++ ns-3.18.1/src/buildings/helper/building-position-allocator.h	2013-11-15 16:40:48.323760975 -0800
@@ -47,18 +47,18 @@
   // inherited from PositionAllocator
   virtual Vector GetNext (void) const;
 
- /**
-  * Assign a fixed random variable stream number to the random variables
-  * used by this model.  Return the number of streams (possibly zero) that
-  * have been assigned.
-  *
-  * \param stream first stream index to use
-  * \return the number of stream indices assigned by this model
-  */
+  /**
+   * Assign a fixed random variable stream number to the random variables
+   * used by this model.  Return the number of streams (possibly zero) that
+   * have been assigned.
+   *
+   * \param stream first stream index to use
+   * \return the number of stream indices assigned by this model
+   */
   int64_t AssignStreams (int64_t stream);
 
 private:
-  
+
   bool m_withReplacement;
   mutable std::vector< Ptr<Building> > m_buildingListWithoutReplacement;
 
@@ -95,8 +95,7 @@
   int64_t AssignStreams (int64_t stream);
 
 private:
-  
-  bool m_withReplacement;
+
   struct RoomInfo 
   {
     Ptr<Building> b;
@@ -111,10 +110,11 @@
 };
 
 
+
 /**
  * Walks a given NodeContainer sequentially, and for each node allocate a new
  * position randomly in the same room of that node
- * 
+ *
  */
 class SameRoomPositionAllocator : public PositionAllocator
 {
@@ -128,14 +128,14 @@
   // inherited from PositionAllocator
   virtual Vector GetNext (void) const;
 
- /**
-  * Assign a fixed random variable stream number to the random variables
-  * used by this model.  Return the number of streams (possibly zero) that
-  * have been assigned.
-  *
-  * \param stream first stream index to use
-  * \return the number of stream indices assigned by this model
-  */
+  /**
+   * Assign a fixed random variable stream number to the random variables
+   * used by this model.  Return the number of streams (possibly zero) that
+   * have been assigned.
+   *
+   * \param stream first stream index to use
+   * \return the number of stream indices assigned by this model
+   */
   int64_t AssignStreams (int64_t);
 
 private:
@@ -145,6 +145,54 @@
 
   /// Provides uniform random variables.
   Ptr<UniformRandomVariable> m_rand;
+};
+
+/**
+ * Generate a random position uniformly distributed in the volume of a
+ * chosen room inside a chosen building.  
+ */
+class FixedRoomPositionAllocator : public PositionAllocator
+{
+public:
+
+  /** 
+   * 
+   * 
+   * \param x index of the room on the x-axis 
+   * \param y index of the room on the y-axis 
+   * \param z index of the room on the z-axis (i.e., floor number)
+   * \param b pointer to the chosen building
+   * 
+   */
+  FixedRoomPositionAllocator (uint32_t x,
+                              uint32_t y,
+                              uint32_t z,
+                              Ptr<Building> b);
+  // inherited from Object
+  static TypeId GetTypeId (void);
+  // inherited from PositionAllocator
+  virtual Vector GetNext (void) const;
+
+  /**
+   * Assign a fixed random variable stream number to the random variables
+   * used by this model.  Return the number of streams (possibly zero) that
+   * have been assigned.
+   *
+   * \param stream first stream index to use
+   * \return the number of stream indices assigned by this model
+   */
+  int64_t AssignStreams (int64_t);
+
+private:
+
+  uint32_t roomx;
+  uint32_t roomy;
+  uint32_t floor;
+
+  Ptr<Building> bptr;
+
+  /// Provides uniform random variables.
+  Ptr<UniformRandomVariable> m_rand;
 };
 
 
diff -Naur ns-3.18/src/buildings/model/itu-r-1238-propagation-loss-model.h ns-3.18.1/src/buildings/model/itu-r-1238-propagation-loss-model.h
--- ns-3.18/src/buildings/model/itu-r-1238-propagation-loss-model.h	2013-08-29 22:36:57.000000000 -0700
+++ ns-3.18.1/src/buildings/model/itu-r-1238-propagation-loss-model.h	2013-11-15 16:40:48.323760975 -0800
@@ -60,14 +60,6 @@
   virtual int64_t DoAssignStreams (int64_t stream);
   
   double m_frequency; ///< frequency in MHz
-  double m_lambda; ///< wavelength
-  EnvironmentType m_environment;
-  CitySize m_citySize;
-  double m_rooftopHeight; ///< in meters
-  double m_streetsOrientation; ///< in degrees [0,90]
-  double m_streetsWidth; ///< in meters
-  double m_buildingsExtend; ///< in meters
-  double m_buildingSeparation; ///< in meters
 
 };
 
diff -Naur ns-3.18/src/buildings/test/buildings-shadowing-test.cc ns-3.18.1/src/buildings/test/buildings-shadowing-test.cc
--- ns-3.18/src/buildings/test/buildings-shadowing-test.cc	2013-08-29 22:36:57.000000000 -0700
+++ ns-3.18.1/src/buildings/test/buildings-shadowing-test.cc	2013-11-15 16:40:48.335760977 -0800
@@ -81,6 +81,7 @@
     m_lossRef (refValue),
     m_sigmaRef (sigmaRef)
 {
+  NS_UNUSED (m_sigmaRef); // suppress private field unused warning
 }
 
 BuildingsShadowingTestCase::~BuildingsShadowingTestCase ()
diff -Naur ns-3.18/src/click/model/ipv4-l3-click-protocol.cc ns-3.18.1/src/click/model/ipv4-l3-click-protocol.cc
--- ns-3.18/src/click/model/ipv4-l3-click-protocol.cc	2013-08-29 22:36:57.000000000 -0700
+++ ns-3.18.1/src/click/model/ipv4-l3-click-protocol.cc	2013-11-15 16:40:49.567761005 -0800
@@ -330,7 +330,7 @@
   // First check whether an existing LoopbackNetDevice exists on the node
   for (uint32_t i = 0; i < m_node->GetNDevices (); i++)
     {
-      if (device = DynamicCast<LoopbackNetDevice> (m_node->GetDevice (i)))
+      if ((device = DynamicCast<LoopbackNetDevice> (m_node->GetDevice (i))))
         {
           break;
         }
diff -Naur ns-3.18/src/core/bindings/modulegen__gcc_ILP32.py ns-3.18.1/src/core/bindings/modulegen__gcc_ILP32.py
--- ns-3.18/src/core/bindings/modulegen__gcc_ILP32.py	2013-08-29 22:36:57.000000000 -0700
+++ ns-3.18.1/src/core/bindings/modulegen__gcc_ILP32.py	2013-11-15 16:40:48.975760991 -0800
@@ -316,10 +316,10 @@
     module.add_class('Vector3DChecker', parent=root_module['ns3::AttributeChecker'])
     ## vector.h (module 'core'): ns3::Vector3DValue [class]
     module.add_class('Vector3DValue', parent=root_module['ns3::AttributeValue'])
-    typehandlers.add_type_alias('ns3::Vector3D', 'ns3::Vector')
-    typehandlers.add_type_alias('ns3::Vector3D*', 'ns3::Vector*')
-    typehandlers.add_type_alias('ns3::Vector3D&', 'ns3::Vector&')
-    module.add_typedef(root_module['ns3::Vector3D'], 'Vector')
+    typehandlers.add_type_alias('ns3::RngSeedManager', 'ns3::SeedManager')
+    typehandlers.add_type_alias('ns3::RngSeedManager*', 'ns3::SeedManager*')
+    typehandlers.add_type_alias('ns3::RngSeedManager&', 'ns3::SeedManager&')
+    module.add_typedef(root_module['ns3::RngSeedManager'], 'SeedManager')
     typehandlers.add_type_alias('ns3::ObjectPtrContainerValue', 'ns3::ObjectVectorValue')
     typehandlers.add_type_alias('ns3::ObjectPtrContainerValue*', 'ns3::ObjectVectorValue*')
     typehandlers.add_type_alias('ns3::ObjectPtrContainerValue&', 'ns3::ObjectVectorValue&')
@@ -327,13 +327,13 @@
     typehandlers.add_type_alias('void ( * ) ( std::ostream & ) *', 'ns3::LogTimePrinter')
     typehandlers.add_type_alias('void ( * ) ( std::ostream & ) **', 'ns3::LogTimePrinter*')
     typehandlers.add_type_alias('void ( * ) ( std::ostream & ) *&', 'ns3::LogTimePrinter&')
-    typehandlers.add_type_alias('ns3::RngSeedManager', 'ns3::SeedManager')
-    typehandlers.add_type_alias('ns3::RngSeedManager*', 'ns3::SeedManager*')
-    typehandlers.add_type_alias('ns3::RngSeedManager&', 'ns3::SeedManager&')
-    module.add_typedef(root_module['ns3::RngSeedManager'], 'SeedManager')
     typehandlers.add_type_alias('void ( * ) ( std::ostream & ) *', 'ns3::LogNodePrinter')
     typehandlers.add_type_alias('void ( * ) ( std::ostream & ) **', 'ns3::LogNodePrinter*')
     typehandlers.add_type_alias('void ( * ) ( std::ostream & ) *&', 'ns3::LogNodePrinter&')
+    typehandlers.add_type_alias('ns3::Vector3D', 'ns3::Vector')
+    typehandlers.add_type_alias('ns3::Vector3D*', 'ns3::Vector*')
+    typehandlers.add_type_alias('ns3::Vector3D&', 'ns3::Vector&')
+    module.add_typedef(root_module['ns3::Vector3D'], 'Vector')
     typehandlers.add_type_alias('ns3::Vector3DValue', 'ns3::VectorValue')
     typehandlers.add_type_alias('ns3::Vector3DValue*', 'ns3::VectorValue*')
     typehandlers.add_type_alias('ns3::Vector3DValue&', 'ns3::VectorValue&')
@@ -878,8 +878,8 @@
 def register_Ns3LogComponent_methods(root_module, cls):
     ## log.h (module 'core'): ns3::LogComponent::LogComponent(ns3::LogComponent const & arg0) [copy constructor]
     cls.add_constructor([param('ns3::LogComponent const &', 'arg0')])
-    ## log.h (module 'core'): ns3::LogComponent::LogComponent(char const * name) [constructor]
-    cls.add_constructor([param('char const *', 'name')])
+    ## log.h (module 'core'): ns3::LogComponent::LogComponent(std::string const & name) [constructor]
+    cls.add_constructor([param('std::string const &', 'name')])
     ## log.h (module 'core'): void ns3::LogComponent::Disable(ns3::LogLevel level) [member function]
     cls.add_method('Disable', 
                    'void', 
@@ -888,10 +888,10 @@
     cls.add_method('Enable', 
                    'void', 
                    [param('ns3::LogLevel', 'level')])
-    ## log.h (module 'core'): void ns3::LogComponent::EnvVarCheck(char const * name) [member function]
+    ## log.h (module 'core'): void ns3::LogComponent::EnvVarCheck(std::string const & name) [member function]
     cls.add_method('EnvVarCheck', 
                    'void', 
-                   [param('char const *', 'name')])
+                   [param('std::string const &', 'name')])
     ## log.h (module 'core'): std::string ns3::LogComponent::GetLevelLabel(ns3::LogLevel const level) const [member function]
     cls.add_method('GetLevelLabel', 
                    'std::string', 
@@ -5003,7 +5003,7 @@
     ## command-line.h (module 'core'): extern std::string ns3::CommandLineHelper::GetDefault(bool const & val) [free function]
     module.add_function('GetDefault', 
                         'std::string', 
-                        [param('bool &', 'val')], 
+                        [param('bool const &', 'val')], 
                         template_parameters=['bool'])
     ## command-line.h (module 'core'): extern bool ns3::CommandLineHelper::UserItemParse(std::string const value, bool & val) [free function]
     module.add_function('UserItemParse', 
diff -Naur ns-3.18/src/core/bindings/modulegen__gcc_LP64.py ns-3.18.1/src/core/bindings/modulegen__gcc_LP64.py
--- ns-3.18/src/core/bindings/modulegen__gcc_LP64.py	2013-08-29 22:36:57.000000000 -0700
+++ ns-3.18.1/src/core/bindings/modulegen__gcc_LP64.py	2013-11-15 16:40:48.971760992 -0800
@@ -316,10 +316,10 @@
     module.add_class('Vector3DChecker', parent=root_module['ns3::AttributeChecker'])
     ## vector.h (module 'core'): ns3::Vector3DValue [class]
     module.add_class('Vector3DValue', parent=root_module['ns3::AttributeValue'])
-    typehandlers.add_type_alias('ns3::Vector3D', 'ns3::Vector')
-    typehandlers.add_type_alias('ns3::Vector3D*', 'ns3::Vector*')
-    typehandlers.add_type_alias('ns3::Vector3D&', 'ns3::Vector&')
-    module.add_typedef(root_module['ns3::Vector3D'], 'Vector')
+    typehandlers.add_type_alias('ns3::RngSeedManager', 'ns3::SeedManager')
+    typehandlers.add_type_alias('ns3::RngSeedManager*', 'ns3::SeedManager*')
+    typehandlers.add_type_alias('ns3::RngSeedManager&', 'ns3::SeedManager&')
+    module.add_typedef(root_module['ns3::RngSeedManager'], 'SeedManager')
     typehandlers.add_type_alias('ns3::ObjectPtrContainerValue', 'ns3::ObjectVectorValue')
     typehandlers.add_type_alias('ns3::ObjectPtrContainerValue*', 'ns3::ObjectVectorValue*')
     typehandlers.add_type_alias('ns3::ObjectPtrContainerValue&', 'ns3::ObjectVectorValue&')
@@ -327,13 +327,13 @@
     typehandlers.add_type_alias('void ( * ) ( std::ostream & ) *', 'ns3::LogTimePrinter')
     typehandlers.add_type_alias('void ( * ) ( std::ostream & ) **', 'ns3::LogTimePrinter*')
     typehandlers.add_type_alias('void ( * ) ( std::ostream & ) *&', 'ns3::LogTimePrinter&')
-    typehandlers.add_type_alias('ns3::RngSeedManager', 'ns3::SeedManager')
-    typehandlers.add_type_alias('ns3::RngSeedManager*', 'ns3::SeedManager*')
-    typehandlers.add_type_alias('ns3::RngSeedManager&', 'ns3::SeedManager&')
-    module.add_typedef(root_module['ns3::RngSeedManager'], 'SeedManager')
     typehandlers.add_type_alias('void ( * ) ( std::ostream & ) *', 'ns3::LogNodePrinter')
     typehandlers.add_type_alias('void ( * ) ( std::ostream & ) **', 'ns3::LogNodePrinter*')
     typehandlers.add_type_alias('void ( * ) ( std::ostream & ) *&', 'ns3::LogNodePrinter&')
+    typehandlers.add_type_alias('ns3::Vector3D', 'ns3::Vector')
+    typehandlers.add_type_alias('ns3::Vector3D*', 'ns3::Vector*')
+    typehandlers.add_type_alias('ns3::Vector3D&', 'ns3::Vector&')
+    module.add_typedef(root_module['ns3::Vector3D'], 'Vector')
     typehandlers.add_type_alias('ns3::Vector3DValue', 'ns3::VectorValue')
     typehandlers.add_type_alias('ns3::Vector3DValue*', 'ns3::VectorValue*')
     typehandlers.add_type_alias('ns3::Vector3DValue&', 'ns3::VectorValue&')
@@ -878,8 +878,8 @@
 def register_Ns3LogComponent_methods(root_module, cls):
     ## log.h (module 'core'): ns3::LogComponent::LogComponent(ns3::LogComponent const & arg0) [copy constructor]
     cls.add_constructor([param('ns3::LogComponent const &', 'arg0')])
-    ## log.h (module 'core'): ns3::LogComponent::LogComponent(char const * name) [constructor]
-    cls.add_constructor([param('char const *', 'name')])
+    ## log.h (module 'core'): ns3::LogComponent::LogComponent(std::string const & name) [constructor]
+    cls.add_constructor([param('std::string const &', 'name')])
     ## log.h (module 'core'): void ns3::LogComponent::Disable(ns3::LogLevel level) [member function]
     cls.add_method('Disable', 
                    'void', 
@@ -888,10 +888,10 @@
     cls.add_method('Enable', 
                    'void', 
                    [param('ns3::LogLevel', 'level')])
-    ## log.h (module 'core'): void ns3::LogComponent::EnvVarCheck(char const * name) [member function]
+    ## log.h (module 'core'): void ns3::LogComponent::EnvVarCheck(std::string const & name) [member function]
     cls.add_method('EnvVarCheck', 
                    'void', 
-                   [param('char const *', 'name')])
+                   [param('std::string const &', 'name')])
     ## log.h (module 'core'): std::string ns3::LogComponent::GetLevelLabel(ns3::LogLevel const level) const [member function]
     cls.add_method('GetLevelLabel', 
                    'std::string', 
@@ -5003,7 +5003,7 @@
     ## command-line.h (module 'core'): extern std::string ns3::CommandLineHelper::GetDefault(bool const & val) [free function]
     module.add_function('GetDefault', 
                         'std::string', 
-                        [param('bool &', 'val')], 
+                        [param('bool const &', 'val')], 
                         template_parameters=['bool'])
     ## command-line.h (module 'core'): extern bool ns3::CommandLineHelper::UserItemParse(std::string const value, bool & val) [free function]
     module.add_function('UserItemParse', 
diff -Naur ns-3.18/src/core/model/hash-murmur3.cc ns-3.18.1/src/core/model/hash-murmur3.cc
--- ns-3.18/src/core/model/hash-murmur3.cc	2013-08-29 22:36:57.000000000 -0700
+++ ns-3.18.1/src/core/model/hash-murmur3.cc	2013-11-15 16:40:48.951760989 -0800
@@ -34,33 +34,6 @@
 
 #include <iomanip>
 
-/*
- * \brief Silence erroneous strict alias warning from a gcc 4.4 bug
- *
- * Casting \c (void*) triggers a strict alias warning bug
- * in gcc 4.4 (see http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39390).
- *
- * In the murmur3 code, data is returned by
- * \code
- *   void Function (... , void * out)
- *   {
- *     ...
- *     *(uint32_t *)out = ...
- *   }
- * \endcode
- *
- * which triggers the erroneous warning.
- *
- * We suppress strict-alias warnings in this compilation unit.
- * (gcc 4.4 doesn't support the <tt>diagnostic push/pop</tt> pragmas,
- * so we can't narrow down the suppression any further.)
- */
-// Test for gcc 4.4.x
-#define GCC_VERSION (__GNUC__ * 100 + __GNUC_MINOR__)
-#if (GCC_VERSION == 404)
-#  pragma GCC diagnostic ignored "-Wstrict-aliasing"
-#endif
- 
 namespace ns3 {
 
 NS_LOG_COMPONENT_DEFINE ("Hash-Murmur3");
@@ -479,12 +452,28 @@
 {
   using namespace Murmur3Implementation;
   MurmurHash3_x86_128_incr (buffer, size,
-                            (uint32_t *)(void *)m_hash64, (void *)(m_hash64));
+                            (uint32_t *)(void *)m_hash64, m_hash64);
   m_size64 += size;
-  uint64_t hash[2];
+
+  // Simpler would be:
+  //
+  //   uint64_t hash[2];
+  //   MurmurHash3_x86_128_fin (m_size64, m_hash64, hash);
+  //   return hash[0];
+  //
+  // but this triggers an aliasing bug in gcc-4.4 (perhaps related to
+  // http://gcc.gnu.org/bugzilla/show_bug.cgi?id=39390).
+  // In ns-3, this bug produces incorrect results in static optimized
+  // builds only.
+  //
+  // Using uint32_t here avoids the bug, and continues to works with newer gcc.
+  uint32_t hash[4];
+  
   MurmurHash3_x86_128_fin (m_size64,
-                           (uint32_t*)(void *)m_hash64, (void *)hash);
-  return hash[0];
+                           (uint32_t *)(void *)m_hash64, hash);
+  uint64_t result = hash[1];
+  result = (result << 32) | hash[0];
+  return result;
 }
 
 void
@@ -492,8 +481,7 @@
 {
   m_hash32 = (uint32_t)SEED;
   m_size32 = 0;
-  m_hash64[0] = ((uint64_t)(SEED) << 32) + (uint64_t)SEED;
-  m_hash64[1] = ((uint64_t)(SEED) << 32) + (uint64_t)SEED;
+  m_hash64[0] = m_hash64[1] = ((uint64_t)(SEED) << 32) + (uint64_t)SEED;
   m_size64 = 0;
 }
 
diff -Naur ns-3.18/src/core/model/log.cc ns-3.18.1/src/core/model/log.cc
--- ns-3.18/src/core/model/log.cc	2013-08-29 22:36:57.000000000 -0700
+++ ns-3.18.1/src/core/model/log.cc	2013-11-15 16:40:48.939760993 -0800
@@ -39,8 +39,8 @@
 LogTimePrinter g_logTimePrinter = 0;
 LogNodePrinter g_logNodePrinter = 0;
 
-typedef std::list<std::pair <std::string, LogComponent *> > ComponentList;
-typedef std::list<std::pair <std::string, LogComponent *> >::iterator ComponentListI;
+typedef std::map<std::string, LogComponent *> ComponentList;
+typedef std::map<std::string, LogComponent *>::iterator ComponentListI;
 
 static class PrintList
 {
@@ -84,7 +84,7 @@
 }
 
 
-LogComponent::LogComponent (char const * name)
+LogComponent::LogComponent (const std::string & name)
   : m_levels (0), m_name (name)
 {
   EnvVarCheck (name);
@@ -99,11 +99,11 @@
           NS_FATAL_ERROR ("Log component \""<<name<<"\" has already been registered once.");
         }
     }
-  components->push_back (std::make_pair (name, this));
+  components->insert (std::make_pair (name, this));
 }
 
 void
-LogComponent::EnvVarCheck (char const * name)
+LogComponent::EnvVarCheck (const std::string & name)
 {
 #ifdef HAVE_GETENV
   char *envVar = getenv ("NS_LOG");
@@ -125,7 +125,7 @@
       if (equal == std::string::npos)
         {
           component = tmp;
-          if (component == myName || component == "*")
+          if (component == myName || component == "*" || component == "***")
             {
               int level = LOG_LEVEL_ALL | LOG_PREFIX_ALL;
               Enable ((enum LogLevel)level);
@@ -269,7 +269,7 @@
 char const *
 LogComponent::Name (void) const
 {
-  return m_name;
+  return m_name.c_str ();
 }
 
 std::string
@@ -485,7 +485,7 @@
         {
           // ie no '=' characters found 
           component = tmp;
-          if (ComponentExists(component) || component == "*")
+          if (ComponentExists(component) || component == "*" || component == "***")
             {
               return;
             }
@@ -580,7 +580,8 @@
 
 
 ParameterLogger::ParameterLogger (std::ostream &os)
-  : m_itemNumber (0),
+  : std::basic_ostream<char> (os.rdbuf ()),  //!< \bugid{1792}
+    m_itemNumber (0),
     m_os (os)
 {
 }
diff -Naur ns-3.18/src/core/model/log.h ns-3.18.1/src/core/model/log.h
--- ns-3.18/src/core/model/log.h	2013-08-29 22:36:57.000000000 -0700
+++ ns-3.18.1/src/core/model/log.h	2013-11-15 16:40:48.943760992 -0800
@@ -384,8 +384,8 @@
 
 class LogComponent {
 public:
-  LogComponent (char const *name);
-  void EnvVarCheck (char const *name);
+  LogComponent (const std::string & name);
+  void EnvVarCheck (const std::string & name);
   bool IsEnabled (enum LogLevel level) const;
   bool IsNoneEnabled (void) const;
   void Enable (enum LogLevel level);
@@ -394,7 +394,7 @@
   std::string GetLevelLabel(const enum LogLevel level) const;
 private:
   int32_t     m_levels;
-  char const *m_name;
+  std::string m_name;
 };
 
 class ParameterLogger : public std::ostream
diff -Naur ns-3.18/src/core/model/nstime.h ns-3.18.1/src/core/model/nstime.h
--- ns-3.18/src/core/model/nstime.h	2013-08-29 22:36:57.000000000 -0700
+++ ns-3.18.1/src/core/model/nstime.h	2013-11-15 16:40:48.943760992 -0800
@@ -41,64 +41,42 @@
  * \ingroup time
  * \brief keep track of time values and allow control of global simulation resolution
  *
- * This class defines all the classic C++ arithmetic
- * operators +, -, *, /, and all the classic comparison operators:
+ * This class defines all the classic C++ addition/subtraction
+ * operators: +, -, +=, -=; and all the classic comparison operators:
  * ==, !=, <, >, <=, >=. It is thus easy to add, substract, or
- * multiply Time objects.
+ * compare Time objects.
  *
  * For example:
  * \code
  * Time t1 = Seconds (10.0);
  * Time t2 = Seconds (10.0);
- * Time t3 = t1 * t2;
- * Time t4 = t1 / t2;
- * Time t5 = t3 * t1;
- * Time t6 = t1 / t5;
- * Time t7 = t3;
+ * Time t3 = t1;
+ * t3 += t2;
  * \endcode
  *
  * You can also use the following non-member functions to manipulate
  * any of these ns3::Time object:
- *  - \ref ns3-Time-Abs ns3::Abs
- *  - \ref ns3-Time-Max ns3::Max
- *  - \ref ns3-Time-Min ns3::Min
- *
- * This class also controls
- * the resolution of the underlying time value . The default resolution
- * is nanoseconds. That is, TimeStep (1).GetNanoSeconds () will return
- * 1. It is possible to either increase or decrease the resolution and the
- * code tries really hard to make this easy.
- *
- * If your resolution is X (say, nanoseconds) and if you create Time objects
- * with a lower resolution (say, picoseconds), don't expect that this
- * code will return 1: PicoSeconds (1).GetPicoSeconds (). It will most
- * likely return 0 because the Time object has only 64 bits of fractional
- * precision which means that PicoSeconds (1) is stored as a 64-bit aproximation
- * of 1/1000 in the Time object. If you later multiply it again by the exact
- * value 1000, the result is unlikely to be 1 exactly. It will be close to
- * 1 but not exactly 1.
- *
- * In general, it is thus a really bad idea to try to use time objects of a
- * resolution higher than the global resolution controlled through
- * Time::SetResolution. If you do need to use picoseconds, it's thus best
- * to switch the global resolution to picoseconds to avoid nasty surprises.
- *
- * Another important issue to keep in mind is that if you increase the
- * global resolution, you also implicitely decrease the range of your simulation.
- * i.e., the global simulation time is stored in a 64 bit integer whose interpretation
- * will depend on the global resolution so, 2^64 picoseconds which is the maximum
- * duration of your simulation if the global resolution is picoseconds
- * is smaller than 2^64 nanoseconds which is the maximum duration of your simulation
- * if the global resolution is nanoseconds.
- *
- * Finally, don't even think about ever changing the global resolution after
- * creating Time objects: all Time objects created before the call to SetResolution
- * will contain values which are not updated to the new resolution. In practice,
- * the default value for the attributes of many models is indeed calculated
- * before the main function of the main program enters. Because of this, if you
- * use one of these models (and it's likely), it's going to be hard to change
- * the global simulation resolution in a way which gives reasonable results. This
- * issue has been filed as bug 954 in the ns-3 bugzilla installation.
+ *  - \ref Abs()
+ *  - \ref Max()
+ *  - \ref Min()
+ *
+ * This class also controls the resolution of the underlying time value.
+ * The resolution is the smallest representable time interval.
+ * The default resolution is nanoseconds.
+ *
+ * To change the resolution, use SetResolution().  All Time objects created
+ * before the call to SetResolution() will be updated to the new resolution.
+ * This can only be done once!  (Tracking each Time object uses 4 pointers.
+ * For speed, once we convert the existing instances we discard the recording
+ * data structure and stop tracking new instances, so we have no way
+ * to do a second conversion.)
+ *
+ * If you increase the global resolution, you also implicitly decrease
+ * the range of your simulation.  The global simulation time is stored
+ * in a 64 bit integer, whose interpretation will depend on the global
+ * resolution.  Therefore the maximum duration of your simulation,
+ * if you use picoseconds, is 2^64 ps = 2^24 s = 7 months, whereas,
+ * had you used nanoseconds, you could have run for 584 years.
  */
 class Time
 {
diff -Naur ns-3.18/src/core/model/random-variable-stream.h ns-3.18.1/src/core/model/random-variable-stream.h
--- ns-3.18/src/core/model/random-variable-stream.h	2013-08-29 22:36:57.000000000 -0700
+++ ns-3.18.1/src/core/model/random-variable-stream.h	2013-11-15 16:40:48.959760991 -0800
@@ -2012,10 +2012,6 @@
 
   /// The upper bound on values that can be returned by this RNG stream.
   double m_max;
-
-  /// It's easier to work with the mode internally instead of the
-  /// mean.  They are related by the simple: mean = (min+max+mode)/3.
-  double m_mode;
 };
 
 /**
diff -Naur ns-3.18/src/core/test/attribute-test-suite.cc ns-3.18.1/src/core/test/attribute-test-suite.cc
--- ns-3.18/src/core/test/attribute-test-suite.cc	2013-08-29 22:36:57.000000000 -0700
+++ ns-3.18.1/src/core/test/attribute-test-suite.cc	2013-11-15 16:40:48.979760990 -0800
@@ -200,6 +200,18 @@
     return tid;
   }
 
+  AttributeObjectTest (void)
+  {
+    NS_UNUSED (m_boolTest);
+    NS_UNUSED (m_int16);
+    NS_UNUSED (m_int16WithBounds);
+    NS_UNUSED (m_uint8);
+    NS_UNUSED (m_float);
+    NS_UNUSED (m_enum);
+  }
+
+  virtual ~AttributeObjectTest (void) {};
+
   void AddToVector1 (void) { m_vector1.push_back (CreateObject<Derived> ()); }
   void AddToVector2 (void) { m_vector2.push_back (CreateObject<Derived> ()); }
 
diff -Naur ns-3.18/src/core/test/hash-test-suite.cc ns-3.18.1/src/core/test/hash-test-suite.cc
--- ns-3.18/src/core/test/hash-test-suite.cc	2013-08-29 22:36:57.000000000 -0700
+++ ns-3.18.1/src/core/test/hash-test-suite.cc	2013-11-15 16:40:48.983760990 -0800
@@ -376,22 +376,10 @@
 HashTestSuite::HashTestSuite ()
   : TestSuite ("hash", UNIT)
 {
-// The below tests fail for static optimized builds in gcc-4.4.3 (64-bit)
-// This is likely due to a compiler bug (see also the strict alias
-// warning issue mentioned in hash-murmur3.cc).  It does not impact
-// most users of the code, so we silence the test failure while we
-// continue to use gcc-4.4.3 (python bindings) for other purposes
-//
-// This code can be removed once gcc-4.4.3 is no longer supported
-//
-// Test for gcc 4.4.x
-#define GCC_VERSION (__GNUC__ * 100 + __GNUC_MINOR__)
-#if (GCC_VERSION != 404)
   AddTestCase (new DefaultHashTestCase, QUICK);
   AddTestCase (new Murmur3TestCase, QUICK);
   AddTestCase (new Fnv1aTestCase, QUICK);
   AddTestCase (new IncrementalTestCase, QUICK);
-#endif
   AddTestCase (new Hash32FunctionPtrTestCase, QUICK);
   AddTestCase (new Hash64FunctionPtrTestCase, QUICK);
 }
diff -Naur ns-3.18/src/core/wscript ns-3.18.1/src/core/wscript
--- ns-3.18/src/core/wscript	2013-08-29 22:36:57.000000000 -0700
+++ ns-3.18.1/src/core/wscript	2013-11-15 16:40:48.931760992 -0800
@@ -12,6 +12,10 @@
                          'with the configure command.'),
                    action="store_true", default=False,
                    dest='int64x64_as_double')
+    opt.add_option('--disable-pthread',
+                   help=('Whether to enable the use of POSIX threads'),
+                   action="store_true", default=False,
+                   dest='disable_pthread')
 
 
 
@@ -62,9 +66,15 @@
    return 0;
 }
 """
-    have_pthread = conf.check_nonfatal(header_name='pthread.h', define_name='HAVE_PTHREAD_H',
-                                       env=test_env, fragment=fragment,
-                                       errmsg='Could not find pthread support (build/config.log for details)')
+    if Options.options.disable_pthread:
+        conf.report_optional_feature("Threading", "Threading Primitives",
+                                     False,
+                                     "Disabled by user request (--disable-pthread)")
+        have_pthread = False
+    else:
+        have_pthread = conf.check_nonfatal(header_name='pthread.h', define_name='HAVE_PTHREAD_H',
+                                           env=test_env, fragment=fragment,
+                                           errmsg='Could not find pthread support (build/config.log for details)')
     if have_pthread:
         # darwin accepts -pthread but prints a warning saying it is ignored
         if Options.platform != 'darwin' and Options.platform != 'cygwin':
diff -Naur ns-3.18/src/create-module.py ns-3.18.1/src/create-module.py
--- ns-3.18/src/create-module.py	2013-08-29 22:36:57.000000000 -0700
+++ ns-3.18.1/src/create-module.py	2013-11-15 16:40:48.515760981 -0800
@@ -331,7 +331,8 @@
         print >> sys.stderr, "Module %r already exists" % (modname,)
         return 2
 
-    print "Creating module %r" % (modname,)
+    print("Creating module %r, "
+          "run './waf configure' to include it in the build" % (modname,))
 
     os.mkdir(moduledir)
     wscript = file(os.path.join(moduledir, "wscript"), "wt")
diff -Naur ns-3.18/src/dsr/bindings/modulegen__gcc_ILP32.py ns-3.18.1/src/dsr/bindings/modulegen__gcc_ILP32.py
--- ns-3.18/src/dsr/bindings/modulegen__gcc_ILP32.py	2013-08-29 22:36:57.000000000 -0700
+++ ns-3.18.1/src/dsr/bindings/modulegen__gcc_ILP32.py	2013-11-15 16:40:48.719760981 -0800
@@ -27,7 +27,7 @@
     ## wifi-mode.h (module 'wifi'): ns3::WifiModulationClass [enumeration]
     module.add_enum('WifiModulationClass', ['WIFI_MOD_CLASS_UNKNOWN', 'WIFI_MOD_CLASS_IR', 'WIFI_MOD_CLASS_FHSS', 'WIFI_MOD_CLASS_DSSS', 'WIFI_MOD_CLASS_ERP_PBCC', 'WIFI_MOD_CLASS_DSSS_OFDM', 'WIFI_MOD_CLASS_ERP_OFDM', 'WIFI_MOD_CLASS_OFDM', 'WIFI_MOD_CLASS_HT'], import_from_module='ns.wifi')
     ## wifi-phy-standard.h (module 'wifi'): ns3::WifiPhyStandard [enumeration]
-    module.add_enum('WifiPhyStandard', ['WIFI_PHY_STANDARD_80211a', 'WIFI_PHY_STANDARD_80211b', 'WIFI_PHY_STANDARD_80211g', 'WIFI_PHY_STANDARD_80211_10MHZ', 'WIFI_PHY_STANDARD_80211_5MHZ', 'WIFI_PHY_STANDARD_holland', 'WIFI_PHY_STANDARD_80211p_CCH', 'WIFI_PHY_STANDARD_80211p_SCH', 'WIFI_PHY_STANDARD_80211n_2_4GHZ', 'WIFI_PHY_STANDARD_80211n_5GHZ'], import_from_module='ns.wifi')
+    module.add_enum('WifiPhyStandard', ['WIFI_PHY_STANDARD_80211a', 'WIFI_PHY_STANDARD_80211b', 'WIFI_PHY_STANDARD_80211g', 'WIFI_PHY_STANDARD_80211_10MHZ', 'WIFI_PHY_STANDARD_80211_5MHZ', 'WIFI_PHY_STANDARD_holland', 'WIFI_PHY_STANDARD_80211n_2_4GHZ', 'WIFI_PHY_STANDARD_80211n_5GHZ'], import_from_module='ns.wifi')
     ## qos-utils.h (module 'wifi'): ns3::AcIndex [enumeration]
     module.add_enum('AcIndex', ['AC_BE', 'AC_BK', 'AC_VI', 'AC_VO', 'AC_BE_NQOS', 'AC_UNDEF'], import_from_module='ns.wifi')
     ## wifi-mode.h (module 'wifi'): ns3::WifiCodeRate [enumeration]
@@ -3325,6 +3325,7 @@
     return
 
 def register_Ns3Int64x64_t_methods(root_module, cls):
+    cls.add_binary_comparison_operator('<=')
     cls.add_binary_comparison_operator('!=')
     cls.add_inplace_numeric_operator('+=', param('ns3::int64x64_t const &', 'right'))
     cls.add_binary_numeric_operator('*', root_module['ns3::int64x64_t'], root_module['ns3::int64x64_t'], param('long long unsigned int const', 'right'))
@@ -3382,7 +3383,6 @@
     cls.add_inplace_numeric_operator('-=', param('ns3::int64x64_t const &', 'right'))
     cls.add_inplace_numeric_operator('/=', param('ns3::int64x64_t const &', 'right'))
     cls.add_output_stream_operator()
-    cls.add_binary_comparison_operator('<=')
     cls.add_binary_comparison_operator('==')
     cls.add_binary_comparison_operator('>=')
     ## int64x64-double.h (module 'core'): ns3::int64x64_t::int64x64_t() [constructor]
@@ -4922,6 +4922,7 @@
     return
 
 def register_Ns3Time_methods(root_module, cls):
+    cls.add_binary_comparison_operator('<=')
     cls.add_binary_comparison_operator('!=')
     cls.add_inplace_numeric_operator('+=', param('ns3::Time const &', 'right'))
     cls.add_binary_numeric_operator('+', root_module['ns3::Time'], root_module['ns3::Time'], param('ns3::Time const &', 'right'))
@@ -4930,7 +4931,6 @@
     cls.add_binary_comparison_operator('>')
     cls.add_inplace_numeric_operator('-=', param('ns3::Time const &', 'right'))
     cls.add_output_stream_operator()
-    cls.add_binary_comparison_operator('<=')
     cls.add_binary_comparison_operator('==')
     cls.add_binary_comparison_operator('>=')
     ## nstime.h (module 'core'): ns3::Time::Time() [constructor]
@@ -5536,11 +5536,6 @@
                    'bool', 
                    [], 
                    is_pure_virtual=True, is_const=True, is_virtual=True)
-    ## wifi-mac.h (module 'wifi'): void ns3::WifiMac::ConfigureCCHDcf(ns3::Ptr<ns3::Dcf> dcf, uint32_t cwmin, uint32_t cwmax, ns3::AcIndex ac) [member function]
-    cls.add_method('ConfigureCCHDcf', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::Dcf >', 'dcf'), param('uint32_t', 'cwmin'), param('uint32_t', 'cwmax'), param('ns3::AcIndex', 'ac')], 
-                   visibility='protected')
     ## wifi-mac.h (module 'wifi'): void ns3::WifiMac::ConfigureDcf(ns3::Ptr<ns3::Dcf> dcf, uint32_t cwmin, uint32_t cwmax, ns3::AcIndex ac) [member function]
     cls.add_method('ConfigureDcf', 
                    'void', 
diff -Naur ns-3.18/src/dsr/bindings/modulegen__gcc_LP64.py ns-3.18.1/src/dsr/bindings/modulegen__gcc_LP64.py
--- ns-3.18/src/dsr/bindings/modulegen__gcc_LP64.py	2013-08-29 22:36:57.000000000 -0700
+++ ns-3.18.1/src/dsr/bindings/modulegen__gcc_LP64.py	2013-11-15 16:40:48.707760987 -0800
@@ -27,7 +27,7 @@
     ## wifi-mode.h (module 'wifi'): ns3::WifiModulationClass [enumeration]
     module.add_enum('WifiModulationClass', ['WIFI_MOD_CLASS_UNKNOWN', 'WIFI_MOD_CLASS_IR', 'WIFI_MOD_CLASS_FHSS', 'WIFI_MOD_CLASS_DSSS', 'WIFI_MOD_CLASS_ERP_PBCC', 'WIFI_MOD_CLASS_DSSS_OFDM', 'WIFI_MOD_CLASS_ERP_OFDM', 'WIFI_MOD_CLASS_OFDM', 'WIFI_MOD_CLASS_HT'], import_from_module='ns.wifi')
     ## wifi-phy-standard.h (module 'wifi'): ns3::WifiPhyStandard [enumeration]
-    module.add_enum('WifiPhyStandard', ['WIFI_PHY_STANDARD_80211a', 'WIFI_PHY_STANDARD_80211b', 'WIFI_PHY_STANDARD_80211g', 'WIFI_PHY_STANDARD_80211_10MHZ', 'WIFI_PHY_STANDARD_80211_5MHZ', 'WIFI_PHY_STANDARD_holland', 'WIFI_PHY_STANDARD_80211p_CCH', 'WIFI_PHY_STANDARD_80211p_SCH', 'WIFI_PHY_STANDARD_80211n_2_4GHZ', 'WIFI_PHY_STANDARD_80211n_5GHZ'], import_from_module='ns.wifi')
+    module.add_enum('WifiPhyStandard', ['WIFI_PHY_STANDARD_80211a', 'WIFI_PHY_STANDARD_80211b', 'WIFI_PHY_STANDARD_80211g', 'WIFI_PHY_STANDARD_80211_10MHZ', 'WIFI_PHY_STANDARD_80211_5MHZ', 'WIFI_PHY_STANDARD_holland', 'WIFI_PHY_STANDARD_80211n_2_4GHZ', 'WIFI_PHY_STANDARD_80211n_5GHZ'], import_from_module='ns.wifi')
     ## qos-utils.h (module 'wifi'): ns3::AcIndex [enumeration]
     module.add_enum('AcIndex', ['AC_BE', 'AC_BK', 'AC_VI', 'AC_VO', 'AC_BE_NQOS', 'AC_UNDEF'], import_from_module='ns.wifi')
     ## wifi-mode.h (module 'wifi'): ns3::WifiCodeRate [enumeration]
@@ -3325,6 +3325,7 @@
     return
 
 def register_Ns3Int64x64_t_methods(root_module, cls):
+    cls.add_binary_comparison_operator('<=')
     cls.add_binary_comparison_operator('!=')
     cls.add_inplace_numeric_operator('+=', param('ns3::int64x64_t const &', 'right'))
     cls.add_binary_numeric_operator('*', root_module['ns3::int64x64_t'], root_module['ns3::int64x64_t'], param('long long unsigned int const', 'right'))
@@ -3382,7 +3383,6 @@
     cls.add_inplace_numeric_operator('-=', param('ns3::int64x64_t const &', 'right'))
     cls.add_inplace_numeric_operator('/=', param('ns3::int64x64_t const &', 'right'))
     cls.add_output_stream_operator()
-    cls.add_binary_comparison_operator('<=')
     cls.add_binary_comparison_operator('==')
     cls.add_binary_comparison_operator('>=')
     ## int64x64-double.h (module 'core'): ns3::int64x64_t::int64x64_t() [constructor]
@@ -4922,6 +4922,7 @@
     return
 
 def register_Ns3Time_methods(root_module, cls):
+    cls.add_binary_comparison_operator('<=')
     cls.add_binary_comparison_operator('!=')
     cls.add_inplace_numeric_operator('+=', param('ns3::Time const &', 'right'))
     cls.add_binary_numeric_operator('+', root_module['ns3::Time'], root_module['ns3::Time'], param('ns3::Time const &', 'right'))
@@ -4930,7 +4931,6 @@
     cls.add_binary_comparison_operator('>')
     cls.add_inplace_numeric_operator('-=', param('ns3::Time const &', 'right'))
     cls.add_output_stream_operator()
-    cls.add_binary_comparison_operator('<=')
     cls.add_binary_comparison_operator('==')
     cls.add_binary_comparison_operator('>=')
     ## nstime.h (module 'core'): ns3::Time::Time() [constructor]
@@ -5536,11 +5536,6 @@
                    'bool', 
                    [], 
                    is_pure_virtual=True, is_const=True, is_virtual=True)
-    ## wifi-mac.h (module 'wifi'): void ns3::WifiMac::ConfigureCCHDcf(ns3::Ptr<ns3::Dcf> dcf, uint32_t cwmin, uint32_t cwmax, ns3::AcIndex ac) [member function]
-    cls.add_method('ConfigureCCHDcf', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::Dcf >', 'dcf'), param('uint32_t', 'cwmin'), param('uint32_t', 'cwmax'), param('ns3::AcIndex', 'ac')], 
-                   visibility='protected')
     ## wifi-mac.h (module 'wifi'): void ns3::WifiMac::ConfigureDcf(ns3::Ptr<ns3::Dcf> dcf, uint32_t cwmin, uint32_t cwmax, ns3::AcIndex ac) [member function]
     cls.add_method('ConfigureDcf', 
                    'void', 
diff -Naur ns-3.18/src/dsr/model/dsr-maintain-buff.h ns-3.18.1/src/dsr/model/dsr-maintain-buff.h
--- ns-3.18/src/dsr/model/dsr-maintain-buff.h	2013-08-29 22:36:57.000000000 -0700
+++ ns-3.18.1/src/dsr/model/dsr-maintain-buff.h	2013-11-15 16:40:48.695760987 -0800
@@ -204,8 +204,6 @@
   Ipv4Address m_dst;
   // / The data ack id
   uint16_t m_ackId;
-  // / The ipv4 id
-  uint16_t m_id;
   // / The segments left field
   uint8_t m_segsLeft;
   // / Expire time for queue entry
diff -Naur ns-3.18/src/dsr/model/dsr-option-header.cc ns-3.18.1/src/dsr/model/dsr-option-header.cc
--- ns-3.18/src/dsr/model/dsr-option-header.cc	2013-08-29 22:36:57.000000000 -0700
+++ ns-3.18.1/src/dsr/model/dsr-option-header.cc	2013-11-15 16:40:48.691760985 -0800
@@ -675,7 +675,6 @@
 
 DsrOptionRerrHeader::DsrOptionRerrHeader ()
   : m_errorType (0),
-    m_reserved (0),
     m_salvage (0),
     m_errorLength (4)
 {
@@ -797,7 +796,7 @@
 }
 
 DsrOptionRerrUnreachHeader::DsrOptionRerrUnreachHeader ()
-  :    m_reserved (0),
+  :
     m_salvage (0)
 {
   SetType (3);
@@ -925,7 +924,7 @@
 }
 
 DsrOptionRerrUnsupportHeader::DsrOptionRerrUnsupportHeader ()
-  :    m_reserved (0),
+  :
     m_salvage (0)
 {
   SetType (3);
diff -Naur ns-3.18/src/dsr/model/dsr-option-header.h ns-3.18.1/src/dsr/model/dsr-option-header.h
--- ns-3.18/src/dsr/model/dsr-option-header.h	2013-08-29 22:36:57.000000000 -0700
+++ ns-3.18.1/src/dsr/model/dsr-option-header.h	2013-11-15 16:40:48.691760985 -0800
@@ -377,10 +377,6 @@
 
 private:
   /**
-   * \brief The data length.
-   */
-  uint32_t m_dataLength;
-  /**
    * \brief Identifier of the packet.
    */
   uint16_t m_identification;
@@ -817,18 +813,10 @@
 
 private:
   /**
-   * \brief option data length
-   */
-  uint8_t        m_optDataLen;
-  /**
    * \brief The error type or route error option
    */
   uint8_t        m_errorType;
   /**
-   * \brief The reserved field
-   */
-  uint8_t        m_reserved;
-  /**
    * \brief The salavage field
    */
   uint8_t        m_salvage;
@@ -980,18 +968,10 @@
 
 private:
   /**
-   * \brief option data length
-   */
-  uint8_t        m_optDataLen;
-  /**
    * \brief The error type or route error option
    */
   uint8_t        m_errorType;
   /**
-   * \brief The reserved field
-   */
-  uint8_t        m_reserved;
-  /**
    * \brief The salavage field
    */
   uint8_t        m_salvage;
@@ -1011,10 +991,6 @@
    * \brief The original destination address
    */
   Ipv4Address    m_originalDst;
-  /**
-   * \brief The specific error type
-   */
-  uint16_t       m_typeSpecific;
 };
 
 /**
@@ -1138,18 +1114,10 @@
 
 private:
   /**
-   * \brief option data length
-   */
-  uint8_t        m_optDataLen;
-  /**
    * \brief The error type or route error option
    */
   uint8_t        m_errorType;
   /**
-   * \brief The reserved field
-   */
-  uint8_t        m_reserved;
-  /**
    * \brief The salavage field
    */
   uint8_t        m_salvage;
@@ -1245,10 +1213,6 @@
 
 private:
   /*
-   * The option data length
-   */
-  uint8_t  m_optDataLen;
-  /*
    * The identification field
    */
   uint16_t m_identification;
@@ -1356,10 +1320,6 @@
 
 private:
   /**
-   * \brief option data length
-   */
-  uint8_t m_optDataLen;
-  /**
    * \brief identification field
    */
   uint16_t m_identification;
diff -Naur ns-3.18/src/dsr/model/dsr-options.h ns-3.18.1/src/dsr/model/dsr-options.h
--- ns-3.18/src/dsr/model/dsr-options.h	2013-08-29 22:36:57.000000000 -0700
+++ ns-3.18.1/src/dsr/model/dsr-options.h	2013-11-15 16:40:48.691760985 -0800
@@ -431,10 +431,6 @@
    */
   Ptr<dsr::RouteCache> m_routeCache;
   /**
-   * \brief The length of the packet.
-   */
-  uint32_t m_length;
-  /**
    * \brief The ip layer 3.
    */
   Ptr<Ipv4> m_ipv4;
@@ -489,10 +485,6 @@
 
 private:
   /**
-   * \brief The length of the packet.
-   */
-  uint32_t m_length;
-  /**
    * \brief The ip layer 3.
    */
   Ptr<Ipv4> m_ipv4;
@@ -562,10 +554,6 @@
    */
   Ptr<dsr::RouteCache> m_routeCache;
   /**
-   * \brief The length of the packet.
-   */
-  uint32_t m_length;
-  /**
    * \brief The ipv4 layer 3.
    */
   Ptr<Ipv4> m_ipv4;
@@ -624,10 +612,6 @@
    */
   Ptr<dsr::RouteCache> m_routeCache;
   /**
-   * \brief The length of the packet.
-   */
-  uint32_t m_length;
-  /**
    * \brief The ipv4 layer 3.
    */
   Ptr<Ipv4> m_ipv4;
@@ -686,10 +670,6 @@
    */
   Ptr<dsr::RouteCache> m_routeCache;
   /**
-   * \brief The length of the packet.
-   */
-  uint32_t m_length;
-  /**
    * \brief The ipv4 layer 3.
    */
   Ptr<Ipv4> m_ipv4;
diff -Naur ns-3.18/src/dsr/model/dsr-rreq-table.h ns-3.18.1/src/dsr/model/dsr-rreq-table.h
--- ns-3.18/src/dsr/model/dsr-rreq-table.h	2013-08-29 22:36:57.000000000 -0700
+++ ns-3.18.1/src/dsr/model/dsr-rreq-table.h	2013-11-15 16:40:48.687760981 -0800
@@ -238,9 +238,6 @@
   bool FindSourceEntry (Ipv4Address src, Ipv4Address dst, uint16_t id);
 
 private:
-
-  // / The max # of requests to retransmit
-  uint32_t MaxRequestRexmt;
   // / The max request period among requests
   Time  MaxRequestPeriod;
   // / The original request period
diff -Naur ns-3.18/src/emu/doc/emu.rst ns-3.18.1/src/emu/doc/emu.rst
--- ns-3.18/src/emu/doc/emu.rst	2013-08-29 22:36:57.000000000 -0700
+++ ns-3.18.1/src/emu/doc/emu.rst	2013-11-15 16:40:49.587761009 -0800
@@ -70,8 +70,8 @@
 that describe how to set up a virtual test network using VMware and how to run a
 set of example (client server) simulations that use ``Emu`` net devices.
 
-* `<http://www.nsnam.org/wiki/index.php/HOWTO_use_VMware_to_set_up_virtual_networks_(Windows)>`_
-* `<http://www.nsnam.org/wiki/index.php/HOWTO_use_ns-3_scripts_to_drive_real_hardware_(experimental)>`_
+* `<http://www.nsnam.org/wiki/HOWTO_use_VMware_to_set_up_virtual_networks_(Windows)>`_
+* `<http://www.nsnam.org/wiki/HOWTO_use_ns-3_scripts_to_drive_real_hardware_(experimental)>`_
 
 Once you are over the configuration hurdle, the script changes required to use
 an ``Emu`` device are trivial. The main structural difference is that you will
diff -Naur ns-3.18/src/energy/bindings/modulegen__gcc_ILP32.py ns-3.18.1/src/energy/bindings/modulegen__gcc_ILP32.py
--- ns-3.18/src/energy/bindings/modulegen__gcc_ILP32.py	2013-08-29 22:36:57.000000000 -0700
+++ ns-3.18.1/src/energy/bindings/modulegen__gcc_ILP32.py	2013-11-15 16:40:48.395760977 -0800
@@ -25,7 +25,7 @@
     ## wifi-preamble.h (module 'wifi'): ns3::WifiPreamble [enumeration]
     module.add_enum('WifiPreamble', ['WIFI_PREAMBLE_LONG', 'WIFI_PREAMBLE_SHORT', 'WIFI_PREAMBLE_HT_MF', 'WIFI_PREAMBLE_HT_GF'], import_from_module='ns.wifi')
     ## wifi-phy-standard.h (module 'wifi'): ns3::WifiPhyStandard [enumeration]
-    module.add_enum('WifiPhyStandard', ['WIFI_PHY_STANDARD_80211a', 'WIFI_PHY_STANDARD_80211b', 'WIFI_PHY_STANDARD_80211g', 'WIFI_PHY_STANDARD_80211_10MHZ', 'WIFI_PHY_STANDARD_80211_5MHZ', 'WIFI_PHY_STANDARD_holland', 'WIFI_PHY_STANDARD_80211p_CCH', 'WIFI_PHY_STANDARD_80211p_SCH', 'WIFI_PHY_STANDARD_80211n_2_4GHZ', 'WIFI_PHY_STANDARD_80211n_5GHZ'], import_from_module='ns.wifi')
+    module.add_enum('WifiPhyStandard', ['WIFI_PHY_STANDARD_80211a', 'WIFI_PHY_STANDARD_80211b', 'WIFI_PHY_STANDARD_80211g', 'WIFI_PHY_STANDARD_80211_10MHZ', 'WIFI_PHY_STANDARD_80211_5MHZ', 'WIFI_PHY_STANDARD_holland', 'WIFI_PHY_STANDARD_80211n_2_4GHZ', 'WIFI_PHY_STANDARD_80211n_5GHZ'], import_from_module='ns.wifi')
     ## wifi-mode.h (module 'wifi'): ns3::WifiModulationClass [enumeration]
     module.add_enum('WifiModulationClass', ['WIFI_MOD_CLASS_UNKNOWN', 'WIFI_MOD_CLASS_IR', 'WIFI_MOD_CLASS_FHSS', 'WIFI_MOD_CLASS_DSSS', 'WIFI_MOD_CLASS_ERP_PBCC', 'WIFI_MOD_CLASS_DSSS_OFDM', 'WIFI_MOD_CLASS_ERP_OFDM', 'WIFI_MOD_CLASS_OFDM', 'WIFI_MOD_CLASS_HT'], import_from_module='ns.wifi')
     ## address.h (module 'network'): ns3::Address [class]
diff -Naur ns-3.18/src/energy/bindings/modulegen__gcc_LP64.py ns-3.18.1/src/energy/bindings/modulegen__gcc_LP64.py
--- ns-3.18/src/energy/bindings/modulegen__gcc_LP64.py	2013-08-29 22:36:57.000000000 -0700
+++ ns-3.18.1/src/energy/bindings/modulegen__gcc_LP64.py	2013-11-15 16:40:48.391760977 -0800
@@ -25,7 +25,7 @@
     ## wifi-preamble.h (module 'wifi'): ns3::WifiPreamble [enumeration]
     module.add_enum('WifiPreamble', ['WIFI_PREAMBLE_LONG', 'WIFI_PREAMBLE_SHORT', 'WIFI_PREAMBLE_HT_MF', 'WIFI_PREAMBLE_HT_GF'], import_from_module='ns.wifi')
     ## wifi-phy-standard.h (module 'wifi'): ns3::WifiPhyStandard [enumeration]
-    module.add_enum('WifiPhyStandard', ['WIFI_PHY_STANDARD_80211a', 'WIFI_PHY_STANDARD_80211b', 'WIFI_PHY_STANDARD_80211g', 'WIFI_PHY_STANDARD_80211_10MHZ', 'WIFI_PHY_STANDARD_80211_5MHZ', 'WIFI_PHY_STANDARD_holland', 'WIFI_PHY_STANDARD_80211p_CCH', 'WIFI_PHY_STANDARD_80211p_SCH', 'WIFI_PHY_STANDARD_80211n_2_4GHZ', 'WIFI_PHY_STANDARD_80211n_5GHZ'], import_from_module='ns.wifi')
+    module.add_enum('WifiPhyStandard', ['WIFI_PHY_STANDARD_80211a', 'WIFI_PHY_STANDARD_80211b', 'WIFI_PHY_STANDARD_80211g', 'WIFI_PHY_STANDARD_80211_10MHZ', 'WIFI_PHY_STANDARD_80211_5MHZ', 'WIFI_PHY_STANDARD_holland', 'WIFI_PHY_STANDARD_80211n_2_4GHZ', 'WIFI_PHY_STANDARD_80211n_5GHZ'], import_from_module='ns.wifi')
     ## wifi-mode.h (module 'wifi'): ns3::WifiModulationClass [enumeration]
     module.add_enum('WifiModulationClass', ['WIFI_MOD_CLASS_UNKNOWN', 'WIFI_MOD_CLASS_IR', 'WIFI_MOD_CLASS_FHSS', 'WIFI_MOD_CLASS_DSSS', 'WIFI_MOD_CLASS_ERP_PBCC', 'WIFI_MOD_CLASS_DSSS_OFDM', 'WIFI_MOD_CLASS_ERP_OFDM', 'WIFI_MOD_CLASS_OFDM', 'WIFI_MOD_CLASS_HT'], import_from_module='ns.wifi')
     ## address.h (module 'network'): ns3::Address [class]
diff -Naur ns-3.18/src/energy/model/li-ion-energy-source.h ns-3.18.1/src/energy/model/li-ion-energy-source.h
--- ns-3.18/src/energy/model/li-ion-energy-source.h	2013-08-29 22:36:57.000000000 -0700
+++ ns-3.18.1/src/energy/model/li-ion-energy-source.h	2013-11-15 16:40:48.383760975 -0800
@@ -59,8 +59,8 @@
  *   depleted
  *
  * For a complete reference of the energy source model and model's fitting please refer
- * to <a href="http://www.nsnam.org/wiki/index.php/GSOC2010UANFramework">UAN Framework</a>
- * page and <a href="http://www.nsnam.org/wiki/index.php/Li-Ion_model_fitting">Li-Ion model
+ * to <a href="http://www.nsnam.org/wiki/GSOC2010UANFramework">UAN Framework</a>
+ * page and <a href="http://www.nsnam.org/wiki/Li-Ion_model_fitting">Li-Ion model
  * fitting</a> page.
  *
  * References:
diff -Naur ns-3.18/src/energy/model/rv-battery-model.h ns-3.18.1/src/energy/model/rv-battery-model.h
--- ns-3.18/src/energy/model/rv-battery-model.h	2013-08-29 22:36:57.000000000 -0700
+++ ns-3.18.1/src/energy/model/rv-battery-model.h	2013-11-15 16:40:48.383760975 -0800
@@ -225,7 +225,6 @@
   std::vector<double> m_load;     // load profile
   std::vector<Time> m_timeStamps; // time stamps of load profile
   Time m_lastSampleTime;
-  uint64_t m_counter;
 
   int m_numOfTerms; // # of terms for infinite sum in battery level estimation
 
diff -Naur ns-3.18/src/fd-net-device/model/fd-net-device.h ns-3.18.1/src/fd-net-device/model/fd-net-device.h
--- ns-3.18/src/fd-net-device/model/fd-net-device.h	2013-08-29 22:36:57.000000000 -0700
+++ ns-3.18.1/src/fd-net-device/model/fd-net-device.h	2013-11-15 16:40:48.267760975 -0800
@@ -178,7 +178,7 @@
 
 private:
   // private copy constructor as sugested in:
-  // http://www.nsnam.org/wiki/index.php/NS-3_Python_Bindings#.22invalid_use_of_incomplete_type.22
+  // http://www.nsnam.org/wiki/NS-3_Python_Bindings#.22invalid_use_of_incomplete_type.22
   FdNetDevice (FdNetDevice const &);
 
   /**
diff -Naur ns-3.18/src/internet/bindings/modulegen__gcc_ILP32.py ns-3.18.1/src/internet/bindings/modulegen__gcc_ILP32.py
--- ns-3.18/src/internet/bindings/modulegen__gcc_ILP32.py	2013-08-29 22:36:57.000000000 -0700
+++ ns-3.18.1/src/internet/bindings/modulegen__gcc_ILP32.py	2013-11-15 16:40:48.855760986 -0800
@@ -5079,6 +5079,7 @@
     return
 
 def register_Ns3Int64x64_t_methods(root_module, cls):
+    cls.add_binary_comparison_operator('<=')
     cls.add_binary_comparison_operator('!=')
     cls.add_inplace_numeric_operator('+=', param('ns3::int64x64_t const &', 'right'))
     cls.add_binary_numeric_operator('*', root_module['ns3::int64x64_t'], root_module['ns3::int64x64_t'], param('long long unsigned int const', 'right'))
@@ -5136,7 +5137,6 @@
     cls.add_inplace_numeric_operator('-=', param('ns3::int64x64_t const &', 'right'))
     cls.add_inplace_numeric_operator('/=', param('ns3::int64x64_t const &', 'right'))
     cls.add_output_stream_operator()
-    cls.add_binary_comparison_operator('<=')
     cls.add_binary_comparison_operator('==')
     cls.add_binary_comparison_operator('>=')
     ## int64x64-double.h (module 'core'): ns3::int64x64_t::int64x64_t() [constructor]
@@ -9544,6 +9544,7 @@
     return
 
 def register_Ns3Time_methods(root_module, cls):
+    cls.add_binary_comparison_operator('<=')
     cls.add_binary_comparison_operator('!=')
     cls.add_inplace_numeric_operator('+=', param('ns3::Time const &', 'right'))
     cls.add_binary_numeric_operator('+', root_module['ns3::Time'], root_module['ns3::Time'], param('ns3::Time const &', 'right'))
@@ -9552,7 +9553,6 @@
     cls.add_binary_comparison_operator('>')
     cls.add_inplace_numeric_operator('-=', param('ns3::Time const &', 'right'))
     cls.add_output_stream_operator()
-    cls.add_binary_comparison_operator('<=')
     cls.add_binary_comparison_operator('==')
     cls.add_binary_comparison_operator('>=')
     ## nstime.h (module 'core'): ns3::Time::Time() [constructor]
diff -Naur ns-3.18/src/internet/bindings/modulegen__gcc_LP64.py ns-3.18.1/src/internet/bindings/modulegen__gcc_LP64.py
--- ns-3.18/src/internet/bindings/modulegen__gcc_LP64.py	2013-08-29 22:36:57.000000000 -0700
+++ ns-3.18.1/src/internet/bindings/modulegen__gcc_LP64.py	2013-11-15 16:40:48.839760991 -0800
@@ -5079,6 +5079,7 @@
     return
 
 def register_Ns3Int64x64_t_methods(root_module, cls):
+    cls.add_binary_comparison_operator('<=')
     cls.add_binary_comparison_operator('!=')
     cls.add_inplace_numeric_operator('+=', param('ns3::int64x64_t const &', 'right'))
     cls.add_binary_numeric_operator('*', root_module['ns3::int64x64_t'], root_module['ns3::int64x64_t'], param('long long unsigned int const', 'right'))
@@ -5136,7 +5137,6 @@
     cls.add_inplace_numeric_operator('-=', param('ns3::int64x64_t const &', 'right'))
     cls.add_inplace_numeric_operator('/=', param('ns3::int64x64_t const &', 'right'))
     cls.add_output_stream_operator()
-    cls.add_binary_comparison_operator('<=')
     cls.add_binary_comparison_operator('==')
     cls.add_binary_comparison_operator('>=')
     ## int64x64-double.h (module 'core'): ns3::int64x64_t::int64x64_t() [constructor]
@@ -9544,6 +9544,7 @@
     return
 
 def register_Ns3Time_methods(root_module, cls):
+    cls.add_binary_comparison_operator('<=')
     cls.add_binary_comparison_operator('!=')
     cls.add_inplace_numeric_operator('+=', param('ns3::Time const &', 'right'))
     cls.add_binary_numeric_operator('+', root_module['ns3::Time'], root_module['ns3::Time'], param('ns3::Time const &', 'right'))
@@ -9552,7 +9553,6 @@
     cls.add_binary_comparison_operator('>')
     cls.add_inplace_numeric_operator('-=', param('ns3::Time const &', 'right'))
     cls.add_output_stream_operator()
-    cls.add_binary_comparison_operator('<=')
     cls.add_binary_comparison_operator('==')
     cls.add_binary_comparison_operator('>=')
     ## nstime.h (module 'core'): ns3::Time::Time() [constructor]
diff -Naur ns-3.18/src/internet/doc/tcp.rst ns-3.18.1/src/internet/doc/tcp.rst
--- ns-3.18/src/internet/doc/tcp.rst	2013-08-29 22:36:57.000000000 -0700
+++ ns-3.18.1/src/internet/doc/tcp.rst	2013-11-15 16:40:48.783760983 -0800
@@ -147,7 +147,7 @@
 ++++++++++
 
 Several TCP validation test results can be found in the
-`wiki page <http://www.nsnam.org/wiki/index.php/New_TCP_Socket_Architecture>`_ 
+`wiki page <http://www.nsnam.org/wiki/New_TCP_Socket_Architecture>`_ 
 describing this implementation.
 
 Current limitations
@@ -365,4 +365,4 @@
 * The non-Linux stacks of NSC are not supported in |ns3|
 * Not all socket API callbacks are supported
 
-For more information, see `this wiki page <http://www.nsnam.org/wiki/index.php/Network_Simulation_Cradle_Integration>`_.
+For more information, see `this wiki page <http://www.nsnam.org/wiki/Network_Simulation_Cradle_Integration>`_.
diff -Naur ns-3.18/src/internet/model/ipv6-option.h ns-3.18.1/src/internet/model/ipv6-option.h
--- ns-3.18/src/internet/model/ipv6-option.h	2013-08-29 22:36:57.000000000 -0700
+++ ns-3.18.1/src/internet/model/ipv6-option.h	2013-11-15 16:40:48.803760990 -0800
@@ -225,12 +225,6 @@
    * \return the processed size
    */
   virtual uint8_t Process (Ptr<Packet> packet, uint8_t offset, Ipv6Header const& ipv6Header, bool& isDropped);
-
-private:
-  /**
-   * \brief The length of the packet.
-   */
-  uint32_t m_length;
 };
 
 /**
diff -Naur ns-3.18/src/internet/model/tcp-header.h ns-3.18.1/src/internet/model/tcp-header.h
--- ns-3.18/src/internet/model/tcp-header.h	2013-08-29 22:36:57.000000000 -0700
+++ ns-3.18.1/src/internet/model/tcp-header.h	2013-11-15 16:40:48.811760987 -0800
@@ -173,7 +173,6 @@
   Address m_destination;
   uint8_t m_protocol;
 
-  uint16_t m_initialChecksum;
   bool m_calcChecksum;
   bool m_goodChecksum;
 };
diff -Naur ns-3.18/src/lte/bindings/callbacks_list.py ns-3.18.1/src/lte/bindings/callbacks_list.py
--- ns-3.18/src/lte/bindings/callbacks_list.py	2013-08-29 22:36:57.000000000 -0700
+++ ns-3.18.1/src/lte/bindings/callbacks_list.py	2013-11-15 16:40:49.543761004 -0800
@@ -1,11 +1,11 @@
 callback_classes = [
     ['void', 'ns3::Ptr<ns3::Packet const>', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'],
+    ['void', 'ns3::Ptr<ns3::Packet>', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'],
     ['void', 'unsigned short', 'ns3::Ptr<ns3::SpectrumValue>', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'],
     ['void', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'],
-    ['void', 'ns3::Ptr<ns3::Packet>', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'],
+    ['void', 'ns3::UlInfoListElement_s', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'],
     ['void', 'ns3::DlInfoListElement_s', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'],
     ['void', 'std::list<ns3::Ptr<ns3::LteControlMessage>, std::allocator<ns3::Ptr<ns3::LteControlMessage> > >', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'],
-    ['void', 'ns3::UlInfoListElement_s', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'],
     ['bool', 'ns3::Ptr<ns3::NetDevice>', 'ns3::Ptr<ns3::Packet const>', 'unsigned short', 'ns3::Address const&', 'ns3::Address const&', 'ns3::NetDevice::PacketType', 'ns3::empty', 'ns3::empty', 'ns3::empty'],
     ['bool', 'ns3::Ptr<ns3::NetDevice>', 'ns3::Ptr<ns3::Packet const>', 'unsigned short', 'ns3::Address const&', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'],
     ['bool', 'ns3::Ptr<ns3::Packet>', 'ns3::Address const&', 'ns3::Address const&', 'unsigned short', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'],
diff -Naur ns-3.18/src/lte/bindings/modulegen__gcc_ILP32.py ns-3.18.1/src/lte/bindings/modulegen__gcc_ILP32.py
--- ns-3.18/src/lte/bindings/modulegen__gcc_ILP32.py	2013-08-29 22:36:57.000000000 -0700
+++ ns-3.18.1/src/lte/bindings/modulegen__gcc_ILP32.py	2013-11-15 16:40:49.543761004 -0800
@@ -1426,6 +1426,9 @@
     typehandlers.add_type_alias('uint32_t', 'ns3::SpectrumModelUid_t')
     typehandlers.add_type_alias('uint32_t*', 'ns3::SpectrumModelUid_t*')
     typehandlers.add_type_alias('uint32_t&', 'ns3::SpectrumModelUid_t&')
+    typehandlers.add_type_alias('std::map< ns3::ImsiLcidPair_t, double, std::less< ns3::ImsiLcidPair_t >, std::allocator< std::pair< ns3::ImsiLcidPair_t const, double > > >', 'ns3::DoubleMap')
+    typehandlers.add_type_alias('std::map< ns3::ImsiLcidPair_t, double, std::less< ns3::ImsiLcidPair_t >, std::allocator< std::pair< ns3::ImsiLcidPair_t const, double > > >*', 'ns3::DoubleMap*')
+    typehandlers.add_type_alias('std::map< ns3::ImsiLcidPair_t, double, std::less< ns3::ImsiLcidPair_t >, std::allocator< std::pair< ns3::ImsiLcidPair_t const, double > > >&', 'ns3::DoubleMap&')
     typehandlers.add_type_alias('std::map< ns3::ImsiLcidPair_t, unsigned int, std::less< ns3::ImsiLcidPair_t >, std::allocator< std::pair< ns3::ImsiLcidPair_t const, unsigned int > > >', 'ns3::Uint32Map')
     typehandlers.add_type_alias('std::map< ns3::ImsiLcidPair_t, unsigned int, std::less< ns3::ImsiLcidPair_t >, std::allocator< std::pair< ns3::ImsiLcidPair_t const, unsigned int > > >*', 'ns3::Uint32Map*')
     typehandlers.add_type_alias('std::map< ns3::ImsiLcidPair_t, unsigned int, std::less< ns3::ImsiLcidPair_t >, std::allocator< std::pair< ns3::ImsiLcidPair_t const, unsigned int > > >&', 'ns3::Uint32Map&')
@@ -1435,9 +1438,6 @@
     typehandlers.add_type_alias('std::vector< std::vector< ns3::RlcPduListElement_s, std::allocator< ns3::RlcPduListElement_s > >, std::allocator< std::vector< ns3::RlcPduListElement_s, std::allocator< ns3::RlcPduListElement_s > > > >', 'ns3::RlcPduList_t')
     typehandlers.add_type_alias('std::vector< std::vector< ns3::RlcPduListElement_s, std::allocator< ns3::RlcPduListElement_s > >, std::allocator< std::vector< ns3::RlcPduListElement_s, std::allocator< ns3::RlcPduListElement_s > > > >*', 'ns3::RlcPduList_t*')
     typehandlers.add_type_alias('std::vector< std::vector< ns3::RlcPduListElement_s, std::allocator< ns3::RlcPduListElement_s > >, std::allocator< std::vector< ns3::RlcPduListElement_s, std::allocator< ns3::RlcPduListElement_s > > > >&', 'ns3::RlcPduList_t&')
-    typehandlers.add_type_alias('std::map< ns3::ImsiLcidPair_t, double, std::less< ns3::ImsiLcidPair_t >, std::allocator< std::pair< ns3::ImsiLcidPair_t const, double > > >', 'ns3::DoubleMap')
-    typehandlers.add_type_alias('std::map< ns3::ImsiLcidPair_t, double, std::less< ns3::ImsiLcidPair_t >, std::allocator< std::pair< ns3::ImsiLcidPair_t const, double > > >*', 'ns3::DoubleMap*')
-    typehandlers.add_type_alias('std::map< ns3::ImsiLcidPair_t, double, std::less< ns3::ImsiLcidPair_t >, std::allocator< std::pair< ns3::ImsiLcidPair_t const, double > > >&', 'ns3::DoubleMap&')
     typehandlers.add_type_alias('std::vector< ns3::DlDciListElement_s, std::allocator< ns3::DlDciListElement_s > >', 'ns3::DlHarqProcessesDciBuffer_t')
     typehandlers.add_type_alias('std::vector< ns3::DlDciListElement_s, std::allocator< ns3::DlDciListElement_s > >*', 'ns3::DlHarqProcessesDciBuffer_t*')
     typehandlers.add_type_alias('std::vector< ns3::DlDciListElement_s, std::allocator< ns3::DlDciListElement_s > >&', 'ns3::DlHarqProcessesDciBuffer_t&')
@@ -5149,8 +5149,8 @@
 def register_Ns3LogComponent_methods(root_module, cls):
     ## log.h (module 'core'): ns3::LogComponent::LogComponent(ns3::LogComponent const & arg0) [copy constructor]
     cls.add_constructor([param('ns3::LogComponent const &', 'arg0')])
-    ## log.h (module 'core'): ns3::LogComponent::LogComponent(char const * name) [constructor]
-    cls.add_constructor([param('char const *', 'name')])
+    ## log.h (module 'core'): ns3::LogComponent::LogComponent(std::string const & name) [constructor]
+    cls.add_constructor([param('std::string const &', 'name')])
     ## log.h (module 'core'): void ns3::LogComponent::Disable(ns3::LogLevel level) [member function]
     cls.add_method('Disable', 
                    'void', 
@@ -5159,10 +5159,10 @@
     cls.add_method('Enable', 
                    'void', 
                    [param('ns3::LogLevel', 'level')])
-    ## log.h (module 'core'): void ns3::LogComponent::EnvVarCheck(char const * name) [member function]
+    ## log.h (module 'core'): void ns3::LogComponent::EnvVarCheck(std::string const & name) [member function]
     cls.add_method('EnvVarCheck', 
                    'void', 
-                   [param('char const *', 'name')])
+                   [param('std::string const &', 'name')])
     ## log.h (module 'core'): std::string ns3::LogComponent::GetLevelLabel(ns3::LogLevel const level) const [member function]
     cls.add_method('GetLevelLabel', 
                    'std::string', 
@@ -8541,6 +8541,7 @@
     return
 
 def register_Ns3Int64x64_t_methods(root_module, cls):
+    cls.add_binary_comparison_operator('<=')
     cls.add_binary_comparison_operator('!=')
     cls.add_inplace_numeric_operator('+=', param('ns3::int64x64_t const &', 'right'))
     cls.add_binary_numeric_operator('*', root_module['ns3::int64x64_t'], root_module['ns3::int64x64_t'], param('long long unsigned int const', 'right'))
@@ -8598,7 +8599,6 @@
     cls.add_inplace_numeric_operator('-=', param('ns3::int64x64_t const &', 'right'))
     cls.add_inplace_numeric_operator('/=', param('ns3::int64x64_t const &', 'right'))
     cls.add_output_stream_operator()
-    cls.add_binary_comparison_operator('<=')
     cls.add_binary_comparison_operator('==')
     cls.add_binary_comparison_operator('>=')
     ## int64x64-double.h (module 'core'): ns3::int64x64_t::int64x64_t() [constructor]
@@ -11145,6 +11145,7 @@
     return
 
 def register_Ns3Time_methods(root_module, cls):
+    cls.add_binary_comparison_operator('<=')
     cls.add_binary_comparison_operator('!=')
     cls.add_inplace_numeric_operator('+=', param('ns3::Time const &', 'right'))
     cls.add_binary_numeric_operator('+', root_module['ns3::Time'], root_module['ns3::Time'], param('ns3::Time const &', 'right'))
@@ -11153,7 +11154,6 @@
     cls.add_binary_comparison_operator('>')
     cls.add_inplace_numeric_operator('-=', param('ns3::Time const &', 'right'))
     cls.add_output_stream_operator()
-    cls.add_binary_comparison_operator('<=')
     cls.add_binary_comparison_operator('==')
     cls.add_binary_comparison_operator('>=')
     ## nstime.h (module 'core'): ns3::Time::Time() [constructor]
@@ -17938,6 +17938,11 @@
                    'void', 
                    [], 
                    is_pure_virtual=True, is_const=True, visibility='protected', is_virtual=True)
+    ## lte-rrc-header.h (module 'lte'): void ns3::RrcAsn1Header::Print(std::ostream & os) const [member function]
+    cls.add_method('Print', 
+                   'void', 
+                   [param('std::ostream &', 'os')], 
+                   is_const=True, visibility='protected', is_virtual=True)
     ## lte-rrc-header.h (module 'lte'): void ns3::RrcAsn1Header::Print(std::ostream & os, ns3::LteRrcSap::RadioResourceConfigDedicated radioResourceConfigDedicated) const [member function]
     cls.add_method('Print', 
                    'void', 
diff -Naur ns-3.18/src/lte/bindings/modulegen__gcc_LP64.py ns-3.18.1/src/lte/bindings/modulegen__gcc_LP64.py
--- ns-3.18/src/lte/bindings/modulegen__gcc_LP64.py	2013-08-29 22:36:57.000000000 -0700
+++ ns-3.18.1/src/lte/bindings/modulegen__gcc_LP64.py	2013-11-15 16:40:49.523761007 -0800
@@ -1426,6 +1426,9 @@
     typehandlers.add_type_alias('uint32_t', 'ns3::SpectrumModelUid_t')
     typehandlers.add_type_alias('uint32_t*', 'ns3::SpectrumModelUid_t*')
     typehandlers.add_type_alias('uint32_t&', 'ns3::SpectrumModelUid_t&')
+    typehandlers.add_type_alias('std::map< ns3::ImsiLcidPair_t, double, std::less< ns3::ImsiLcidPair_t >, std::allocator< std::pair< ns3::ImsiLcidPair_t const, double > > >', 'ns3::DoubleMap')
+    typehandlers.add_type_alias('std::map< ns3::ImsiLcidPair_t, double, std::less< ns3::ImsiLcidPair_t >, std::allocator< std::pair< ns3::ImsiLcidPair_t const, double > > >*', 'ns3::DoubleMap*')
+    typehandlers.add_type_alias('std::map< ns3::ImsiLcidPair_t, double, std::less< ns3::ImsiLcidPair_t >, std::allocator< std::pair< ns3::ImsiLcidPair_t const, double > > >&', 'ns3::DoubleMap&')
     typehandlers.add_type_alias('std::map< ns3::ImsiLcidPair_t, unsigned int, std::less< ns3::ImsiLcidPair_t >, std::allocator< std::pair< ns3::ImsiLcidPair_t const, unsigned int > > >', 'ns3::Uint32Map')
     typehandlers.add_type_alias('std::map< ns3::ImsiLcidPair_t, unsigned int, std::less< ns3::ImsiLcidPair_t >, std::allocator< std::pair< ns3::ImsiLcidPair_t const, unsigned int > > >*', 'ns3::Uint32Map*')
     typehandlers.add_type_alias('std::map< ns3::ImsiLcidPair_t, unsigned int, std::less< ns3::ImsiLcidPair_t >, std::allocator< std::pair< ns3::ImsiLcidPair_t const, unsigned int > > >&', 'ns3::Uint32Map&')
@@ -1435,9 +1438,6 @@
     typehandlers.add_type_alias('std::vector< std::vector< ns3::RlcPduListElement_s, std::allocator< ns3::RlcPduListElement_s > >, std::allocator< std::vector< ns3::RlcPduListElement_s, std::allocator< ns3::RlcPduListElement_s > > > >', 'ns3::RlcPduList_t')
     typehandlers.add_type_alias('std::vector< std::vector< ns3::RlcPduListElement_s, std::allocator< ns3::RlcPduListElement_s > >, std::allocator< std::vector< ns3::RlcPduListElement_s, std::allocator< ns3::RlcPduListElement_s > > > >*', 'ns3::RlcPduList_t*')
     typehandlers.add_type_alias('std::vector< std::vector< ns3::RlcPduListElement_s, std::allocator< ns3::RlcPduListElement_s > >, std::allocator< std::vector< ns3::RlcPduListElement_s, std::allocator< ns3::RlcPduListElement_s > > > >&', 'ns3::RlcPduList_t&')
-    typehandlers.add_type_alias('std::map< ns3::ImsiLcidPair_t, double, std::less< ns3::ImsiLcidPair_t >, std::allocator< std::pair< ns3::ImsiLcidPair_t const, double > > >', 'ns3::DoubleMap')
-    typehandlers.add_type_alias('std::map< ns3::ImsiLcidPair_t, double, std::less< ns3::ImsiLcidPair_t >, std::allocator< std::pair< ns3::ImsiLcidPair_t const, double > > >*', 'ns3::DoubleMap*')
-    typehandlers.add_type_alias('std::map< ns3::ImsiLcidPair_t, double, std::less< ns3::ImsiLcidPair_t >, std::allocator< std::pair< ns3::ImsiLcidPair_t const, double > > >&', 'ns3::DoubleMap&')
     typehandlers.add_type_alias('std::vector< ns3::DlDciListElement_s, std::allocator< ns3::DlDciListElement_s > >', 'ns3::DlHarqProcessesDciBuffer_t')
     typehandlers.add_type_alias('std::vector< ns3::DlDciListElement_s, std::allocator< ns3::DlDciListElement_s > >*', 'ns3::DlHarqProcessesDciBuffer_t*')
     typehandlers.add_type_alias('std::vector< ns3::DlDciListElement_s, std::allocator< ns3::DlDciListElement_s > >&', 'ns3::DlHarqProcessesDciBuffer_t&')
@@ -5149,8 +5149,8 @@
 def register_Ns3LogComponent_methods(root_module, cls):
     ## log.h (module 'core'): ns3::LogComponent::LogComponent(ns3::LogComponent const & arg0) [copy constructor]
     cls.add_constructor([param('ns3::LogComponent const &', 'arg0')])
-    ## log.h (module 'core'): ns3::LogComponent::LogComponent(char const * name) [constructor]
-    cls.add_constructor([param('char const *', 'name')])
+    ## log.h (module 'core'): ns3::LogComponent::LogComponent(std::string const & name) [constructor]
+    cls.add_constructor([param('std::string const &', 'name')])
     ## log.h (module 'core'): void ns3::LogComponent::Disable(ns3::LogLevel level) [member function]
     cls.add_method('Disable', 
                    'void', 
@@ -5159,10 +5159,10 @@
     cls.add_method('Enable', 
                    'void', 
                    [param('ns3::LogLevel', 'level')])
-    ## log.h (module 'core'): void ns3::LogComponent::EnvVarCheck(char const * name) [member function]
+    ## log.h (module 'core'): void ns3::LogComponent::EnvVarCheck(std::string const & name) [member function]
     cls.add_method('EnvVarCheck', 
                    'void', 
-                   [param('char const *', 'name')])
+                   [param('std::string const &', 'name')])
     ## log.h (module 'core'): std::string ns3::LogComponent::GetLevelLabel(ns3::LogLevel const level) const [member function]
     cls.add_method('GetLevelLabel', 
                    'std::string', 
@@ -8541,6 +8541,7 @@
     return
 
 def register_Ns3Int64x64_t_methods(root_module, cls):
+    cls.add_binary_comparison_operator('<=')
     cls.add_binary_comparison_operator('!=')
     cls.add_inplace_numeric_operator('+=', param('ns3::int64x64_t const &', 'right'))
     cls.add_binary_numeric_operator('*', root_module['ns3::int64x64_t'], root_module['ns3::int64x64_t'], param('long long unsigned int const', 'right'))
@@ -8598,7 +8599,6 @@
     cls.add_inplace_numeric_operator('-=', param('ns3::int64x64_t const &', 'right'))
     cls.add_inplace_numeric_operator('/=', param('ns3::int64x64_t const &', 'right'))
     cls.add_output_stream_operator()
-    cls.add_binary_comparison_operator('<=')
     cls.add_binary_comparison_operator('==')
     cls.add_binary_comparison_operator('>=')
     ## int64x64-double.h (module 'core'): ns3::int64x64_t::int64x64_t() [constructor]
@@ -11145,6 +11145,7 @@
     return
 
 def register_Ns3Time_methods(root_module, cls):
+    cls.add_binary_comparison_operator('<=')
     cls.add_binary_comparison_operator('!=')
     cls.add_inplace_numeric_operator('+=', param('ns3::Time const &', 'right'))
     cls.add_binary_numeric_operator('+', root_module['ns3::Time'], root_module['ns3::Time'], param('ns3::Time const &', 'right'))
@@ -11153,7 +11154,6 @@
     cls.add_binary_comparison_operator('>')
     cls.add_inplace_numeric_operator('-=', param('ns3::Time const &', 'right'))
     cls.add_output_stream_operator()
-    cls.add_binary_comparison_operator('<=')
     cls.add_binary_comparison_operator('==')
     cls.add_binary_comparison_operator('>=')
     ## nstime.h (module 'core'): ns3::Time::Time() [constructor]
@@ -17938,6 +17938,11 @@
                    'void', 
                    [], 
                    is_pure_virtual=True, is_const=True, visibility='protected', is_virtual=True)
+    ## lte-rrc-header.h (module 'lte'): void ns3::RrcAsn1Header::Print(std::ostream & os) const [member function]
+    cls.add_method('Print', 
+                   'void', 
+                   [param('std::ostream &', 'os')], 
+                   is_const=True, visibility='protected', is_virtual=True)
     ## lte-rrc-header.h (module 'lte'): void ns3::RrcAsn1Header::Print(std::ostream & os, ns3::LteRrcSap::RadioResourceConfigDedicated radioResourceConfigDedicated) const [member function]
     cls.add_method('Print', 
                    'void', 
diff -Naur ns-3.18/src/lte/doc/Makefile ns-3.18.1/src/lte/doc/Makefile
--- ns-3.18/src/lte/doc/Makefile	2013-08-29 22:36:57.000000000 -0700
+++ ns-3.18.1/src/lte/doc/Makefile	2013-11-15 16:40:49.031760995 -0800
@@ -148,7 +148,7 @@
 
 IMAGES = $(IMAGES_NOBUILD) $(IMAGES_BUILD)
 
-RESCALE = $(shell hg root)/utils/rescale-pdf.sh
+RESCALE = ../../../utils/rescale-pdf.sh
 
 %.eps : %.dia; $(DIA) -t eps $< -e $@
 %.png : %.dia; $(DIA) -t png $< -e $@
diff -Naur ns-3.18/src/lte/doc/source/lte-user.rst ns-3.18.1/src/lte/doc/source/lte-user.rst
--- ns-3.18/src/lte/doc/source/lte-user.rst	2013-08-29 22:36:57.000000000 -0700
+++ ns-3.18.1/src/lte/doc/source/lte-user.rst	2013-11-15 16:40:49.031760995 -0800
@@ -367,7 +367,7 @@
 
 PHY KPIs are distributed in seven different files, configurable through the attributes
 
-  1. ``ns3::PhyStatsCalculator::RsrpSinrFilename``
+  1. ``ns3::PhyStatsCalculator::DlRsrpSinrFilename``
   2. ``ns3::PhyStatsCalculator::UeSinrFilename``
   3. ``ns3::PhyStatsCalculator::InterferenceFilename``
   4. ``ns3::PhyStatsCalculator::DlTxOutputFilename``
@@ -535,9 +535,9 @@
 #. Mobility model selection::
 
     MobilityHelper mobility;
-    mobility.SetMobilityModel ("ns3::ConstantPositionMobilityModel"); // use any mobility model
+    mobility.SetMobilityModel ("ns3::ConstantPositionMobilityModel"); 
 
-It is to be noted that any mobility model can be used; however, based on the information at the time of this writing, only the ones defined in the building module are designed for considering the constraints introduced by the buildings.
+    It is to be noted that any mobility model can be used. 
 
 #. Building creation::
 
@@ -569,11 +569,12 @@
     mm0->SetPosition (Vector (5.0, 5.0, 1.5));
     mm1->SetPosition (Vector (30.0, 40.0, 1.5));
 
-This installs the building mobility informations to the nodes and positions the node on the scenario. Note that, in this example, node 0 will be in the building, and node 1 will be out of the building. Note that this alone is not sufficient to setup the topology correctly. What is left to be done is to issue the following command after we have placed all nodes in the simulation::
+#. Finalize the building and mobility model configuration::
 
     BuildingsHelper::MakeMobilityModelConsistent ();
 
-This command will go through the lists of all nodes and of all buildings, determine for each user if it is indoor or outdoor, and if indoor it will also determine the building in which the user is located and the corresponding floor and number inside the building.
+See the documentation of the *buildings* module for more detailed information.
+
 
 PHY Error Model
 ---------------
diff -Naur ns-3.18/src/lte/model/epc-x2-header.h ns-3.18.1/src/lte/model/epc-x2-header.h
--- ns-3.18/src/lte/model/epc-x2-header.h	2013-08-29 22:36:57.000000000 -0700
+++ ns-3.18.1/src/lte/model/epc-x2-header.h	2013-11-15 16:40:49.499761007 -0800
@@ -69,8 +69,6 @@
   };
 
 private:
-  uint32_t m_headerLength;
-
   uint8_t m_messageType;
   uint8_t m_procedureCode;
 
diff -Naur ns-3.18/src/lte/model/fdbet-ff-mac-scheduler.h ns-3.18.1/src/lte/model/fdbet-ff-mac-scheduler.h
--- ns-3.18/src/lte/model/fdbet-ff-mac-scheduler.h	2013-08-29 22:36:58.000000000 -0700
+++ ns-3.18.1/src/lte/model/fdbet-ff-mac-scheduler.h	2013-11-15 16:40:49.475761002 -0800
@@ -64,10 +64,6 @@
 
 /**
  * \ingroup ff-api
- * \defgroup FF-API FdBetFfMacScheduler
- */
-/**
- * \ingroup FdBetFfMacScheduler
  * \brief Implements the SCHED SAP and CSCHED SAP for a Frequency Domain Blind Equal Throughput scheduler
  *
  * This class implements the interface defined by the FfMacScheduler abstract class
diff -Naur ns-3.18/src/lte/model/fdmt-ff-mac-scheduler.h ns-3.18.1/src/lte/model/fdmt-ff-mac-scheduler.h
--- ns-3.18/src/lte/model/fdmt-ff-mac-scheduler.h	2013-08-29 22:36:58.000000000 -0700
+++ ns-3.18.1/src/lte/model/fdmt-ff-mac-scheduler.h	2013-11-15 16:40:49.467761006 -0800
@@ -56,10 +56,6 @@
 
 /**
  * \ingroup ff-api
- * \defgroup FF-API FdMtFfMacScheduler
- */
-/**
- * \ingroup FdMtFfMacScheduler
  * \brief Implements the SCHED SAP and CSCHED SAP for a Frequency Domain Maximize Throughput scheduler
  *
  * This class implements the interface defined by the FfMacScheduler abstract class
diff -Naur ns-3.18/src/lte/model/fdtbfq-ff-mac-scheduler.cc ns-3.18.1/src/lte/model/fdtbfq-ff-mac-scheduler.cc
--- ns-3.18/src/lte/model/fdtbfq-ff-mac-scheduler.cc	2013-08-29 22:36:58.000000000 -0700
+++ ns-3.18.1/src/lte/model/fdtbfq-ff-mac-scheduler.cc	2013-11-15 16:40:49.467761006 -0800
@@ -217,7 +217,6 @@
 FdTbfqFfMacScheduler::FdTbfqFfMacScheduler ()
   :   m_cschedSapUser (0),
     m_schedSapUser (0),
-    m_timeWindow (99.0),
     m_nextRntiUl (0),
     bankSize (0)
 {
diff -Naur ns-3.18/src/lte/model/fdtbfq-ff-mac-scheduler.h ns-3.18.1/src/lte/model/fdtbfq-ff-mac-scheduler.h
--- ns-3.18/src/lte/model/fdtbfq-ff-mac-scheduler.h	2013-08-29 22:36:58.000000000 -0700
+++ ns-3.18.1/src/lte/model/fdtbfq-ff-mac-scheduler.h	2013-11-15 16:40:49.487761005 -0800
@@ -71,10 +71,6 @@
 
 /**
  * \ingroup ff-api
- * \defgroup FF-API FdTbfqFfMacScheduler
- */
-/**
- * \ingroup FdTbfqFfMacScheduler
  * \brief Implements the SCHED SAP and CSCHED SAP for a Frequency Domain Token Bank Fair Queue  scheduler
  *
  * This class implements the interface defined by the FfMacScheduler abstract class
@@ -256,8 +252,6 @@
   FfMacCschedSapProvider::CschedCellConfigReqParameters m_cschedCellConfig;
 
 
-  double m_timeWindow;
-
   uint16_t m_nextRntiUl; // RNTI of the next user to be served next scheduling in UL
 
   uint32_t m_cqiTimersThreshold; // # of TTIs for which a CQI canbe considered valid
diff -Naur ns-3.18/src/lte/model/ff-mac-csched-sap.h ns-3.18.1/src/lte/model/ff-mac-csched-sap.h
--- ns-3.18/src/lte/model/ff-mac-csched-sap.h	2013-08-29 22:36:58.000000000 -0700
+++ ns-3.18.1/src/lte/model/ff-mac-csched-sap.h	2013-11-15 16:40:49.475761002 -0800
@@ -30,10 +30,6 @@
 
 /**
  * \ingroup ff-api
- * \defgroup FF-API FfMacCschedSap
- */
-/**
- * \ingroup FfMacCschedSap
  * \brief Provides the CSCHED SAP
  *
  * This abstract class defines the MAC Scheduler interface specified in the
diff -Naur ns-3.18/src/lte/model/ff-mac-sched-sap.h ns-3.18.1/src/lte/model/ff-mac-sched-sap.h
--- ns-3.18/src/lte/model/ff-mac-sched-sap.h	2013-08-29 22:36:58.000000000 -0700
+++ ns-3.18.1/src/lte/model/ff-mac-sched-sap.h	2013-11-15 16:40:49.471761004 -0800
@@ -31,10 +31,6 @@
 
 /**
  * \ingroup ff-api
- * \defgroup FF-API FfMacSchedSap
- */
-/**
- * \ingroup FfMacSchedSap
  * \brief Provides the SCHED SAP
  *
  * This abstract class defines the MAC Scheduler interface specified in the
diff -Naur ns-3.18/src/lte/model/ff-mac-scheduler.h ns-3.18.1/src/lte/model/ff-mac-scheduler.h
--- ns-3.18/src/lte/model/ff-mac-scheduler.h	2013-08-29 22:36:58.000000000 -0700
+++ ns-3.18.1/src/lte/model/ff-mac-scheduler.h	2013-11-15 16:40:49.471761004 -0800
@@ -35,6 +35,13 @@
 class FfMacSchedSapProvider;
 
 /**
+ * \ingroup lte
+ * \defgroup ff-api FF MAC Schedulers
+ */
+     
+/**
+ * \ingroup ff-api
+ *
  * This abstract base class identifies the interface by means of which
  * the helper object can plug on the MAC a scheduler implementation based on the
  * FF MAC Sched API.
diff -Naur ns-3.18/src/lte/model/lte-mi-error-model.cc ns-3.18.1/src/lte/model/lte-mi-error-model.cc
--- ns-3.18/src/lte/model/lte-mi-error-model.cc	2013-08-29 22:36:58.000000000 -0700
+++ ns-3.18.1/src/lte/model/lte-mi-error-model.cc	2013-11-15 16:40:49.499761007 -0800
@@ -31,7 +31,6 @@
 
 
 #include <list>
-#include <tr1/functional>
 #include <vector>
 #include <ns3/log.h>
 #include <ns3/pointer.h>
diff -Naur ns-3.18/src/lte/model/lte-rrc-header.cc ns-3.18.1/src/lte/model/lte-rrc-header.cc
--- ns-3.18/src/lte/model/lte-rrc-header.cc	2013-08-29 22:36:58.000000000 -0700
+++ ns-3.18.1/src/lte/model/lte-rrc-header.cc	2013-11-15 16:40:49.503761005 -0800
@@ -2224,6 +2224,13 @@
 }
 
 void
+RrcAsn1Header::Print (std::ostream &os) const
+{
+  NS_LOG_FUNCTION (this << &os);
+  NS_FATAL_ERROR ("RrcAsn1Header Print() function must also specify LteRrcSap::RadioResourceConfigDedicated as a second argument");
+}
+
+void
 RrcAsn1Header::Print (std::ostream &os, LteRrcSap::RadioResourceConfigDedicated radioResourceConfigDedicated) const
 {
   os << "   srbToAddModList: " << std::endl;
diff -Naur ns-3.18/src/lte/model/lte-rrc-header.h ns-3.18.1/src/lte/model/lte-rrc-header.h
--- ns-3.18/src/lte/model/lte-rrc-header.h	2013-08-29 22:36:58.000000000 -0700
+++ ns-3.18.1/src/lte/model/lte-rrc-header.h	2013-11-15 16:40:49.503761005 -0800
@@ -82,6 +82,7 @@
   Buffer::Iterator DeserializeQoffsetRange (int8_t * qOffsetRange, Buffer::Iterator bIterator);
   Buffer::Iterator DeserializeThresholdEutra (LteRrcSap::ThresholdEutra * thresholdEutra, Buffer::Iterator bIterator);
 
+  void Print (std::ostream &os) const;
   /**
    * This function prints RadioResourceConfigDedicated IE, for debugging purposes.
    * @param os The output stream to use (i.e. std::cout)
diff -Naur ns-3.18/src/lte/model/pf-ff-mac-scheduler.h ns-3.18.1/src/lte/model/pf-ff-mac-scheduler.h
--- ns-3.18/src/lte/model/pf-ff-mac-scheduler.h	2013-08-29 22:36:58.000000000 -0700
+++ ns-3.18.1/src/lte/model/pf-ff-mac-scheduler.h	2013-11-15 16:40:49.467761006 -0800
@@ -63,10 +63,6 @@
 
 /**
  * \ingroup ff-api
- * \defgroup FF-API PfFfMacScheduler
- */
-/**
- * \ingroup PfFfMacScheduler
  * \brief Implements the SCHED SAP and CSCHED SAP for a Proportional Fair scheduler
  *
  * This class implements the interface defined by the FfMacScheduler abstract class
diff -Naur ns-3.18/src/lte/model/pss-ff-mac-scheduler.h ns-3.18.1/src/lte/model/pss-ff-mac-scheduler.h
--- ns-3.18/src/lte/model/pss-ff-mac-scheduler.h	2013-08-29 22:36:58.000000000 -0700
+++ ns-3.18.1/src/lte/model/pss-ff-mac-scheduler.h	2013-11-15 16:40:49.483761003 -0800
@@ -72,10 +72,6 @@
 
 /**
  * \ingroup ff-api
- * \defgroup FF-API PssFfMacScheduler
- */
-/**
- * \ingroup PssFfMacScheduler
  * \brief Implements the SCHED SAP and CSCHED SAP for a Priority Set scheduler
  *
  * This class implements the interface defined by the FfMacScheduler abstract class
diff -Naur ns-3.18/src/lte/model/rr-ff-mac-scheduler.cc ns-3.18.1/src/lte/model/rr-ff-mac-scheduler.cc
--- ns-3.18/src/lte/model/rr-ff-mac-scheduler.cc	2013-08-29 22:36:58.000000000 -0700
+++ ns-3.18.1/src/lte/model/rr-ff-mac-scheduler.cc	2013-11-15 16:40:49.119760996 -0800
@@ -23,6 +23,7 @@
 #include <ns3/math.h>
 #include <cfloat>
 #include <set>
+#include <climits>
 
 #include <ns3/lte-amc.h>
 #include <ns3/rr-ff-mac-scheduler.h>
@@ -978,7 +979,7 @@
   // Divide the resource equally among the active users according to
   // Resource allocation type 0 (see sec 7.1.6.1 of 36.213)
 
-  int rbgPerTb = (nTbs > 0) ? ((rbgNum - rbgAllocatedNum) / nTbs) : DBL_MAX;
+  int rbgPerTb = (nTbs > 0) ? ((rbgNum - rbgAllocatedNum) / nTbs) : INT_MAX;
   NS_LOG_INFO (this << " Flows to be transmitted " << nflows << " rbgPerTb " << rbgPerTb);
   if (rbgPerTb == 0)
     {
diff -Naur ns-3.18/src/lte/model/rr-ff-mac-scheduler.h ns-3.18.1/src/lte/model/rr-ff-mac-scheduler.h
--- ns-3.18/src/lte/model/rr-ff-mac-scheduler.h	2013-08-29 22:36:58.000000000 -0700
+++ ns-3.18.1/src/lte/model/rr-ff-mac-scheduler.h	2013-11-15 16:40:49.499761007 -0800
@@ -50,10 +50,6 @@
 
 /**
  * \ingroup ff-api
- * \defgroup FF-API RrFfMacScheduler
- */
-/**
- * \ingroup RrFfMacScheduler
  * \brief Implements the SCHED SAP and CSCHED SAP for a Round Robin scheduler
  *
  * This class implements the interface defined by the FfMacScheduler abstract class
diff -Naur ns-3.18/src/lte/model/tdbet-ff-mac-scheduler.h ns-3.18.1/src/lte/model/tdbet-ff-mac-scheduler.h
--- ns-3.18/src/lte/model/tdbet-ff-mac-scheduler.h	2013-08-29 22:36:58.000000000 -0700
+++ ns-3.18.1/src/lte/model/tdbet-ff-mac-scheduler.h	2013-11-15 16:40:49.503761005 -0800
@@ -64,10 +64,6 @@
 
 /**
  * \ingroup ff-api
- * \defgroup FF-API TdBetFfMacScheduler
- */
-/**
- * \ingroup TdBetFfMacScheduler
  * \brief Implements the SCHED SAP and CSCHED SAP for a Time Domain Blind Equal Throughput scheduler
  *
  * This class implements the interface defined by the FfMacScheduler abstract class
diff -Naur ns-3.18/src/lte/model/tdmt-ff-mac-scheduler.h ns-3.18.1/src/lte/model/tdmt-ff-mac-scheduler.h
--- ns-3.18/src/lte/model/tdmt-ff-mac-scheduler.h	2013-08-29 22:36:58.000000000 -0700
+++ ns-3.18.1/src/lte/model/tdmt-ff-mac-scheduler.h	2013-11-15 16:40:49.487761005 -0800
@@ -56,10 +56,6 @@
 
 /**
  * \ingroup ff-api
- * \defgroup FF-API TdMtFfMacScheduler
- */
-/**
- * \ingroup TdMtFfMacScheduler
  * \brief Implements the SCHED SAP and CSCHED SAP for a Time Domain Maximize Throughput scheduler
  *
  * This class implements the interface defined by the FfMacScheduler abstract class
diff -Naur ns-3.18/src/lte/model/tdtbfq-ff-mac-scheduler.cc ns-3.18.1/src/lte/model/tdtbfq-ff-mac-scheduler.cc
--- ns-3.18/src/lte/model/tdtbfq-ff-mac-scheduler.cc	2013-08-29 22:36:58.000000000 -0700
+++ ns-3.18.1/src/lte/model/tdtbfq-ff-mac-scheduler.cc	2013-11-15 16:40:49.467761006 -0800
@@ -217,7 +217,6 @@
 TdTbfqFfMacScheduler::TdTbfqFfMacScheduler ()
   :   m_cschedSapUser (0),
     m_schedSapUser (0),
-    m_timeWindow (99.0),
     m_nextRntiUl (0),
     bankSize (0)
 {
diff -Naur ns-3.18/src/lte/model/tdtbfq-ff-mac-scheduler.h ns-3.18.1/src/lte/model/tdtbfq-ff-mac-scheduler.h
--- ns-3.18/src/lte/model/tdtbfq-ff-mac-scheduler.h	2013-08-29 22:36:58.000000000 -0700
+++ ns-3.18.1/src/lte/model/tdtbfq-ff-mac-scheduler.h	2013-11-15 16:40:49.495761007 -0800
@@ -71,10 +71,6 @@
 
 /**
  * \ingroup ff-api
- * \defgroup FF-API TdTbfqFfMacScheduler
- */
-/**
- * \ingroup TdTbfqFfMacScheduler
  * \brief Implements the SCHED SAP and CSCHED SAP for a Time Domain Token Bank Fair Queue  scheduler
  *
  * This class implements the interface defined by the FfMacScheduler abstract class
@@ -256,8 +252,6 @@
   FfMacCschedSapProvider::CschedCellConfigReqParameters m_cschedCellConfig;
 
 
-  double m_timeWindow;
-
   uint16_t m_nextRntiUl; // RNTI of the next user to be served next scheduling in UL
 
   uint32_t m_cqiTimersThreshold; // # of TTIs for which a CQI canbe considered valid
diff -Naur ns-3.18/src/lte/model/tta-ff-mac-scheduler.h ns-3.18.1/src/lte/model/tta-ff-mac-scheduler.h
--- ns-3.18/src/lte/model/tta-ff-mac-scheduler.h	2013-08-29 22:36:58.000000000 -0700
+++ ns-3.18.1/src/lte/model/tta-ff-mac-scheduler.h	2013-11-15 16:40:49.467761006 -0800
@@ -56,10 +56,6 @@
 
 /**
  * \ingroup ff-api
- * \defgroup FF-API TtaFfMacScheduler
- */
-/**
- * \ingroup TtaFfMacScheduler
  * \brief Implements the SCHED SAP and CSCHED SAP for a Throughput to Average scheduler
  *
  * This class implements the interface defined by the FfMacScheduler abstract class
diff -Naur ns-3.18/src/lte/test/lte-test-fdbet-ff-mac-scheduler.cc ns-3.18.1/src/lte/test/lte-test-fdbet-ff-mac-scheduler.cc
--- ns-3.18/src/lte/test/lte-test-fdbet-ff-mac-scheduler.cc	2013-08-29 22:36:58.000000000 -0700
+++ ns-3.18.1/src/lte/test/lte-test-fdbet-ff-mac-scheduler.cc	2013-11-15 16:40:49.551761007 -0800
@@ -77,10 +77,10 @@
   // 6 users -> 4 PRB at Itbs 26 -> 373 -> 373000 bytes/sec
   // after the patch enforcing min 3 PRBs per UE:
   // 12 users -> 3 PRB at Itbs 26 -> 277 bytes * 8/12 UE/TTI -> 184670 bytes/sec
-  AddTestCase (new LenaFdBetFfMacSchedulerTestCase1 (1,0,0,2196000,2292000, errorModel), TestCase::EXTENSIVE);
-  AddTestCase (new LenaFdBetFfMacSchedulerTestCase1 (3,0,0,749000,749000, errorModel), TestCase::EXTENSIVE);
-  AddTestCase (new LenaFdBetFfMacSchedulerTestCase1 (6,0,0,373000,373000, errorModel), TestCase::EXTENSIVE);
-  AddTestCase (new LenaFdBetFfMacSchedulerTestCase1 (12,0,0,185000,184670, errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaFdBetFfMacSchedulerTestCase1 (1,0,2196000,2292000, errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaFdBetFfMacSchedulerTestCase1 (3,0,749000,749000, errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaFdBetFfMacSchedulerTestCase1 (6,0,373000,373000, errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaFdBetFfMacSchedulerTestCase1 (12,0,185000,184670, errorModel), TestCase::EXTENSIVE);
 
   // DOWNLINK - DISTANCE 4800 -> MCS 22 -> Itbs 20 (from table 7.1.7.2.1-1 of 36.213)
   // 1 user -> 24 PRB at Itbs 20 -> 1383 -> 1383000 bytes/sec
@@ -93,10 +93,10 @@
   // 6 users -> 4 PRB at Itbs 13 -> 125 -> 125000 bytes/sec
   // after the patch enforcing min 3 PRBs per UE:
   // 12 users -> 3 PRB at Itbs 13 -> 93  bytes * 8/12 UE/TTI  -> 62000 bytes/sec
-  AddTestCase (new LenaFdBetFfMacSchedulerTestCase1 (1,0,4800,1383000,807000, errorModel), TestCase::EXTENSIVE);
-  AddTestCase (new LenaFdBetFfMacSchedulerTestCase1 (3,0,4800,469000,253000, errorModel), TestCase::EXTENSIVE);
-  AddTestCase (new LenaFdBetFfMacSchedulerTestCase1 (6,0,4800,233500,125000, errorModel), TestCase::EXTENSIVE);
-  AddTestCase (new LenaFdBetFfMacSchedulerTestCase1 (12,0,4800,113000,62000, errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaFdBetFfMacSchedulerTestCase1 (1,4800,1383000,807000, errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaFdBetFfMacSchedulerTestCase1 (3,4800,469000,253000, errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaFdBetFfMacSchedulerTestCase1 (6,4800,233500,125000, errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaFdBetFfMacSchedulerTestCase1 (12,4800,113000,62000, errorModel), TestCase::EXTENSIVE);
 
   // DOWNLINK - DISTANCE 6000 -> MCS 20 -> Itbs 18 (from table 7.1.7.2.1-1 of 36.213)
   // 1 user -> 24 PRB at Itbs 18 -> 1191 -> 1191000 byte/sec
@@ -108,10 +108,10 @@
   // 3 users -> 8 PRB at Itbs 11 -> 201 -> 201000 bytes/sec
   // 6 users -> 4 PRB at Itbs 11 -> 97 -> 97000 bytes/sec
   // 12 users -> 3 PRB at Itbs 11 -> 73 bytes * 8/12 UE/TTI -> 48667 bytes/sec
-  AddTestCase (new LenaFdBetFfMacSchedulerTestCase1 (1,0,6000,1191000,621000,errorModel), TestCase::EXTENSIVE);
-  AddTestCase (new LenaFdBetFfMacSchedulerTestCase1 (3,0,6000,389000,201000,errorModel), TestCase::EXTENSIVE);
-  AddTestCase (new LenaFdBetFfMacSchedulerTestCase1 (6,0,6000,193000,97000,errorModel), TestCase::EXTENSIVE);
-  AddTestCase (new LenaFdBetFfMacSchedulerTestCase1 (12,0,6000,97000,48667,errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaFdBetFfMacSchedulerTestCase1 (1,6000,1191000,621000,errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaFdBetFfMacSchedulerTestCase1 (3,6000,389000,201000,errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaFdBetFfMacSchedulerTestCase1 (6,6000,193000,97000,errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaFdBetFfMacSchedulerTestCase1 (12,6000,97000,48667,errorModel), TestCase::EXTENSIVE);
 
   // DOWNLINK - DISTANCE 10000 -> MCS 14 -> Itbs 13 (from table 7.1.7.2.1-1 of 36.213)
   // 1 user -> 24 PRB at Itbs 13 -> 775 -> 775000 byte/sec
@@ -124,10 +124,10 @@
   // 6 users -> 4 PRB at Itbs 8 -> 67 -> 67000 bytes/sec
   // after the patch enforcing min 3 PRBs per UE:
   // 12 users -> 3 PRB at Itbs 8 -> 49 bytes * 8/12 UE/TTI -> 32667 bytes/sec
-  AddTestCase (new LenaFdBetFfMacSchedulerTestCase1 (1,0,10000,775000,421000,errorModel), TestCase::EXTENSIVE);
-  AddTestCase (new LenaFdBetFfMacSchedulerTestCase1 (3,0,10000,253000,137000,errorModel), TestCase::EXTENSIVE);
-  AddTestCase (new LenaFdBetFfMacSchedulerTestCase1 (6,0,10000,125000,67000,errorModel), TestCase::EXTENSIVE);
-  AddTestCase (new LenaFdBetFfMacSchedulerTestCase1 (12,0,10000,61000,32667,errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaFdBetFfMacSchedulerTestCase1 (1,10000,775000,421000,errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaFdBetFfMacSchedulerTestCase1 (3,10000,253000,137000,errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaFdBetFfMacSchedulerTestCase1 (6,10000,125000,67000,errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaFdBetFfMacSchedulerTestCase1 (12,10000,61000,32667,errorModel), TestCase::EXTENSIVE);
 
   // DOWNLINK - DISTANCE 20000 -> MCS 8 -> Itbs 8 (from table 7.1.7.2.1-1 of 36.213)
   // 1 user -> 24 PRB at Itbs 8 -> 421 -> 421000 bytes/sec
@@ -140,10 +140,10 @@
   // 6 users -> 4 PRB at Itbs 2 -> 22 -> 22000 bytes/sec
   // after the patch enforcing min 3 PRBs per UE:
   // 12 users -> 3 PRB at Itbs 2 -> 18 bytes * 8/12 UE/TTI -> 12000 bytes/sec
-  AddTestCase (new LenaFdBetFfMacSchedulerTestCase1 (1,0,20000,421000,137000,errorModel), TestCase::EXTENSIVE);
-  AddTestCase (new LenaFdBetFfMacSchedulerTestCase1 (3,0,20000,137000,41000,errorModel), TestCase::EXTENSIVE);
-  AddTestCase (new LenaFdBetFfMacSchedulerTestCase1 (6,0,20000,67000,22000,errorModel), TestCase::EXTENSIVE);
-  AddTestCase (new LenaFdBetFfMacSchedulerTestCase1 (12,0,20000,32000,12000,errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaFdBetFfMacSchedulerTestCase1 (1,20000,421000,137000,errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaFdBetFfMacSchedulerTestCase1 (3,20000,137000,41000,errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaFdBetFfMacSchedulerTestCase1 (6,20000,67000,22000,errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaFdBetFfMacSchedulerTestCase1 (12,20000,32000,12000,errorModel), TestCase::EXTENSIVE);
 
   // Test Case 2: fairness check
 
@@ -182,10 +182,9 @@
   return oss.str ();
 }
 
-LenaFdBetFfMacSchedulerTestCase1::LenaFdBetFfMacSchedulerTestCase1 (uint16_t nUser, uint16_t nLc, uint16_t dist, double thrRefDl, double thrRefUl, bool errorModelEnabled)
+LenaFdBetFfMacSchedulerTestCase1::LenaFdBetFfMacSchedulerTestCase1 (uint16_t nUser, uint16_t dist, double thrRefDl, double thrRefUl, bool errorModelEnabled)
   : TestCase (BuildNameString (nUser, dist)),
     m_nUser (nUser),
-    m_nLc (nLc),
     m_dist (dist),
     m_thrRefDl (thrRefDl),
     m_thrRefUl (thrRefUl),
diff -Naur ns-3.18/src/lte/test/lte-test-fdbet-ff-mac-scheduler.h ns-3.18.1/src/lte/test/lte-test-fdbet-ff-mac-scheduler.h
--- ns-3.18/src/lte/test/lte-test-fdbet-ff-mac-scheduler.h	2013-08-29 22:36:58.000000000 -0700
+++ ns-3.18.1/src/lte/test/lte-test-fdbet-ff-mac-scheduler.h	2013-11-15 16:40:49.555761008 -0800
@@ -42,14 +42,13 @@
 class LenaFdBetFfMacSchedulerTestCase1 : public TestCase
 {
 public:
-  LenaFdBetFfMacSchedulerTestCase1 (uint16_t nUser, uint16_t nLc, uint16_t dist, double thrRefDl, double thrRefUl,bool errorModelEnabled);
+  LenaFdBetFfMacSchedulerTestCase1 (uint16_t nUser, uint16_t dist, double thrRefDl, double thrRefUl,bool errorModelEnabled);
   virtual ~LenaFdBetFfMacSchedulerTestCase1 ();
 
 private:
   static std::string BuildNameString (uint16_t nUser, uint16_t dist);
   virtual void DoRun (void);
   uint16_t m_nUser;
-  uint16_t m_nLc;
   uint16_t m_dist;
   double m_thrRefDl;
   double m_thrRefUl;
diff -Naur ns-3.18/src/lte/test/lte-test-fdmt-ff-mac-scheduler.cc ns-3.18.1/src/lte/test/lte-test-fdmt-ff-mac-scheduler.cc
--- ns-3.18/src/lte/test/lte-test-fdmt-ff-mac-scheduler.cc	2013-08-29 22:36:58.000000000 -0700
+++ ns-3.18.1/src/lte/test/lte-test-fdmt-ff-mac-scheduler.cc	2013-11-15 16:40:49.547761006 -0800
@@ -79,10 +79,10 @@
   // 6 users -> 4 PRB at Itbs 26 -> 373 -> 373000 bytes/sec
   // after the patch enforcing min 3 PRBs per UE:
   // 12 users -> 3 PRB at Itbs 26 -> 277 bytes * 8/12 UE/TTI -> 184670 bytes/sec
-  AddTestCase (new LenaFdMtFfMacSchedulerTestCase (1,0,0,2196000,2292000, errorModel), TestCase::EXTENSIVE);
-  AddTestCase (new LenaFdMtFfMacSchedulerTestCase (3,0,0,2196000,749000,errorModel), TestCase::QUICK);
-  AddTestCase (new LenaFdMtFfMacSchedulerTestCase (6,0,0,2196000,373000, errorModel), TestCase::EXTENSIVE);
-  AddTestCase (new LenaFdMtFfMacSchedulerTestCase (12,0,0,2196000,184670, errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaFdMtFfMacSchedulerTestCase (1,0,2196000,2292000, errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaFdMtFfMacSchedulerTestCase (3,0,2196000,749000,errorModel), TestCase::QUICK);
+  AddTestCase (new LenaFdMtFfMacSchedulerTestCase (6,0,2196000,373000, errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaFdMtFfMacSchedulerTestCase (12,0,2196000,184670, errorModel), TestCase::EXTENSIVE);
 
   // DOWNLINK - DISTANCE 4800 -> MCS 22 -> Itbs 20 (from table 7.1.7.2.1-1 of 36.213)
   // 1 user -> 24 PRB at Itbs 20 -> 1383 -> 1383000 byte/secfor one UE; 0 bytes/sec for other UEs
@@ -95,10 +95,10 @@
   // 6 users -> 4 PRB at Itbs 13 -> 125 -> 125000 bytes/sec
   // after the patch enforcing min 3 PRBs per UE:
   // 12 users -> 3 PRB at Itbs 13 -> 93  bytes * 8/12 UE/TTI  -> 62000 bytes/sec
-  AddTestCase (new LenaFdMtFfMacSchedulerTestCase (1,0,4800,1383000,807000,errorModel), TestCase::EXTENSIVE);
-  AddTestCase (new LenaFdMtFfMacSchedulerTestCase (3,0,4800,1383000,253000,errorModel), TestCase::EXTENSIVE);
-  AddTestCase (new LenaFdMtFfMacSchedulerTestCase (6,0,4800,1383000,125000,errorModel), TestCase::EXTENSIVE);
-  AddTestCase (new LenaFdMtFfMacSchedulerTestCase (12,0,4800,1383000,62000,errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaFdMtFfMacSchedulerTestCase (1,4800,1383000,807000,errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaFdMtFfMacSchedulerTestCase (3,4800,1383000,253000,errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaFdMtFfMacSchedulerTestCase (6,4800,1383000,125000,errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaFdMtFfMacSchedulerTestCase (12,4800,1383000,62000,errorModel), TestCase::EXTENSIVE);
 
 
   // DOWNLINK - DISTANCE 6000 -> MCS 20 -> Itbs 18 (from table 7.1.7.2.1-1 of 36.213)
@@ -112,10 +112,10 @@
   // 6 users -> 4 PRB at Itbs 11 -> 97 -> 97000 bytes/sec
   // after the patch enforcing min 3 PRBs per UE:
   // 12 users -> 3 PRB at Itbs 11 -> 73 bytes * 8/12 UE/TTI -> 48667 bytes/sec
-  AddTestCase (new LenaFdMtFfMacSchedulerTestCase (1,0,6000,1191000,621000, errorModel), TestCase::EXTENSIVE);
-  AddTestCase (new LenaFdMtFfMacSchedulerTestCase (3,0,6000,1191000,201000, errorModel), TestCase::EXTENSIVE);
-  AddTestCase (new LenaFdMtFfMacSchedulerTestCase (6,0,6000,1191000,97000, errorModel), TestCase::EXTENSIVE);
-  AddTestCase (new LenaFdMtFfMacSchedulerTestCase (12,0,6000,1191000,48667, errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaFdMtFfMacSchedulerTestCase (1,6000,1191000,621000, errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaFdMtFfMacSchedulerTestCase (3,6000,1191000,201000, errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaFdMtFfMacSchedulerTestCase (6,6000,1191000,97000, errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaFdMtFfMacSchedulerTestCase (12,6000,1191000,48667, errorModel), TestCase::EXTENSIVE);
 
   // DOWNLINK - DISTANCE 10000 -> MCS 14 -> Itbs 13 (from table 7.1.7.2.1-1 of 36.213)
   // 1 user -> 24 PRB at Itbs 13 -> 775 -> 775000 byte/sec for one UE; 0 bytes/sec for other UEs
@@ -128,10 +128,10 @@
   // 6 users -> 4 PRB at Itbs 8 -> 67 -> 67000 bytes/sec
   // after the patch enforcing min 3 PRBs per UE:
   // 12 users -> 3 PRB at Itbs 8 -> 49 bytes * 8/12 UE/TTI -> 32667 bytes/sec
-  AddTestCase (new LenaFdMtFfMacSchedulerTestCase (1,0,10000,775000,437000,errorModel), TestCase::EXTENSIVE);
-  AddTestCase (new LenaFdMtFfMacSchedulerTestCase (3,0,10000,775000,137000,errorModel), TestCase::EXTENSIVE);
-  AddTestCase (new LenaFdMtFfMacSchedulerTestCase (6,0,10000,775000,67000,errorModel), TestCase::EXTENSIVE);
-  AddTestCase (new LenaFdMtFfMacSchedulerTestCase (12,0,10000,775000,32667,errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaFdMtFfMacSchedulerTestCase (1,10000,775000,437000,errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaFdMtFfMacSchedulerTestCase (3,10000,775000,137000,errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaFdMtFfMacSchedulerTestCase (6,10000,775000,67000,errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaFdMtFfMacSchedulerTestCase (12,10000,775000,32667,errorModel), TestCase::EXTENSIVE);
  
   // DONWLINK - DISTANCE 20000 -> MCS 8 -> Itbs 8 (from table 7.1.7.2.1-1 of 36.213)
   // 1 user -> 24 PRB at Itbs 8 -> 421 -> 421000 bytes/sec for one UE; 0 bytes/sec for other UEs
@@ -144,10 +144,10 @@
   // 6 users -> 4 PRB at Itbs 2 -> 32 -> 22000 bytes/sec
   // after the patch enforcing min 3 PRBs per UE:
   // 12 users -> 3 PRB at Itbs 2 -> 26 bytes * 8/12 UE/TTI -> 12000 bytes/sec
-  AddTestCase (new LenaFdMtFfMacSchedulerTestCase (1,0,20000,421000,137000,errorModel), TestCase::EXTENSIVE);
-  AddTestCase (new LenaFdMtFfMacSchedulerTestCase (3,0,20000,421000,41000,errorModel), TestCase::EXTENSIVE);
-  AddTestCase (new LenaFdMtFfMacSchedulerTestCase (6,0,20000,421000,22000,errorModel), TestCase::EXTENSIVE);
-  AddTestCase (new LenaFdMtFfMacSchedulerTestCase (12,0,20000,421000,12000,errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaFdMtFfMacSchedulerTestCase (1,20000,421000,137000,errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaFdMtFfMacSchedulerTestCase (3,20000,421000,41000,errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaFdMtFfMacSchedulerTestCase (6,20000,421000,22000,errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaFdMtFfMacSchedulerTestCase (12,20000,421000,12000,errorModel), TestCase::EXTENSIVE);
 }
 
 static LenaTestFdMtFfMacSchedulerSuite lenaTestFdMtFfMacSchedulerSuite;
@@ -163,10 +163,9 @@
   return oss.str ();
 }
 
-LenaFdMtFfMacSchedulerTestCase::LenaFdMtFfMacSchedulerTestCase (uint16_t nUser, uint16_t nLc, uint16_t dist, double thrRefDl, double thrRefUl, bool errorModelEnabled)
+LenaFdMtFfMacSchedulerTestCase::LenaFdMtFfMacSchedulerTestCase (uint16_t nUser, uint16_t dist, double thrRefDl, double thrRefUl, bool errorModelEnabled)
   : TestCase (BuildNameString (nUser, dist)),
     m_nUser (nUser),
-    m_nLc (nLc),
     m_dist (dist),
     m_thrRefDl (thrRefDl),
     m_thrRefUl (thrRefUl),
@@ -183,7 +182,7 @@
 LenaFdMtFfMacSchedulerTestCase::DoRun (void)
 {
 
-  NS_LOG_FUNCTION (this << m_nUser << m_nLc << m_dist);
+  NS_LOG_FUNCTION (this << m_nUser << m_dist);
 
   if (!m_errorModelEnabled)
     {
diff -Naur ns-3.18/src/lte/test/lte-test-fdmt-ff-mac-scheduler.h ns-3.18.1/src/lte/test/lte-test-fdmt-ff-mac-scheduler.h
--- ns-3.18/src/lte/test/lte-test-fdmt-ff-mac-scheduler.h	2013-08-29 22:36:58.000000000 -0700
+++ ns-3.18.1/src/lte/test/lte-test-fdmt-ff-mac-scheduler.h	2013-11-15 16:40:49.551761007 -0800
@@ -42,14 +42,13 @@
 class LenaFdMtFfMacSchedulerTestCase : public TestCase
 {
 public:
-  LenaFdMtFfMacSchedulerTestCase (uint16_t nUser, uint16_t nLc, uint16_t dist, double thrRefDl, double thrRefUl,bool errorModelEnabled);
+  LenaFdMtFfMacSchedulerTestCase (uint16_t nUser, uint16_t dist, double thrRefDl, double thrRefUl,bool errorModelEnabled);
   virtual ~LenaFdMtFfMacSchedulerTestCase ();
 
 private:
   static std::string BuildNameString (uint16_t nUser, uint16_t dist);
   virtual void DoRun (void);
   uint16_t m_nUser;
-  uint16_t m_nLc;
   uint16_t m_dist;
   double m_thrRefDl;
   double m_thrRefUl;
diff -Naur ns-3.18/src/lte/test/lte-test-fdtbfq-ff-mac-scheduler.cc ns-3.18.1/src/lte/test/lte-test-fdtbfq-ff-mac-scheduler.cc
--- ns-3.18/src/lte/test/lte-test-fdtbfq-ff-mac-scheduler.cc	2013-08-29 22:36:58.000000000 -0700
+++ ns-3.18.1/src/lte/test/lte-test-fdtbfq-ff-mac-scheduler.cc	2013-11-15 16:40:49.547761006 -0800
@@ -91,10 +91,10 @@
   // 3 users -> 8 PRB at Itbs 26 -> 749 -> 749000 > 232000 -> throughput = 232000 bytes/sec 
   // 6 users -> 4 PRB at Itbs 26 -> 373 -> 373000 > 232000 -> throughput = 232000 bytes/sec
   // 12 users -> 2 PRB at Itbs 26 -> 185 -> 185000 < 232000 -> throughput = 185000 bytes/sec
-  AddTestCase (new LenaFdTbfqFfMacSchedulerTestCase1 (1,0,0,232000,232000,200,1,errorModel), TestCase::EXTENSIVE);
-  AddTestCase (new LenaFdTbfqFfMacSchedulerTestCase1 (3,0,0,232000,232000,200,1,errorModel), TestCase::EXTENSIVE);
-  AddTestCase (new LenaFdTbfqFfMacSchedulerTestCase1 (6,0,0,232000,232000,200,1,errorModel), TestCase::EXTENSIVE);
-  //AddTestCase (new LenaFdTbfqFfMacSchedulerTestCase1 (12,0,0,183000,185000,200,1,errorModel));// simulation time = 1.5, otherwise, ul test will fail
+  AddTestCase (new LenaFdTbfqFfMacSchedulerTestCase1 (1,0,232000,232000,200,1,errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaFdTbfqFfMacSchedulerTestCase1 (3,0,232000,232000,200,1,errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaFdTbfqFfMacSchedulerTestCase1 (6,0,232000,232000,200,1,errorModel), TestCase::EXTENSIVE);
+  //AddTestCase (new LenaFdTbfqFfMacSchedulerTestCase1 (12,0,183000,185000,200,1,errorModel));// simulation time = 1.5, otherwise, ul test will fail
 
   // DOWNLINK - DISTANCE 4800 -> MCS 22 -> Itbs 20 (from table 7.1.7.2.1-1 of 36.213)
   // Traffic info
@@ -111,10 +111,10 @@
   // 6 users -> 4 PRB at Itbs 13 -> 125 -> 125000 < 232000 -> throughput = 125000 bytes/sec
   // after the patch enforcing min 3 PRBs per UE:
   // 12 users -> 3 PRB at Itbs 13 -> 93  bytes * 8/12 UE/TTI  -> 62000 < 232000 -> throughput = 62000  bytes/sec
-  AddTestCase (new LenaFdTbfqFfMacSchedulerTestCase1 (1,0,4800,232000,232000,200,1,errorModel), TestCase::EXTENSIVE);
-  AddTestCase (new LenaFdTbfqFfMacSchedulerTestCase1 (3,0,4800,232000,232000,200,1,errorModel), TestCase::EXTENSIVE);
-  AddTestCase (new LenaFdTbfqFfMacSchedulerTestCase1 (6,0,4800,230500,125000,200,1,errorModel), TestCase::EXTENSIVE);
-  //AddTestCase (new LenaFdTbfqFfMacSchedulerTestCase1 (12,0,4800,75250,62000,200,1,errorModel)); // simulation time = 1.5, otherwise, ul test will fail
+  AddTestCase (new LenaFdTbfqFfMacSchedulerTestCase1 (1,4800,232000,232000,200,1,errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaFdTbfqFfMacSchedulerTestCase1 (3,4800,232000,232000,200,1,errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaFdTbfqFfMacSchedulerTestCase1 (6,4800,230500,125000,200,1,errorModel), TestCase::EXTENSIVE);
+  //AddTestCase (new LenaFdTbfqFfMacSchedulerTestCase1 (12,4800,75250,62000,200,1,errorModel)); // simulation time = 1.5, otherwise, ul test will fail
 
   // DOWNLINK - DISTANCE 6000 -> MCS 20 -> Itbs 18 (from table 7.1.7.2.1-1 of 36.213)
   // Traffic info
@@ -132,10 +132,10 @@
   // 6 users -> 4 PRB at Itbs 11 -> 97 -> 97000 < 232000 -> throughput = 97000 bytes/sec
   // after the patch enforcing min 3 PRBs per UE:
   // 12 users -> 3 PRB at Itbs 11 -> 73 bytes * 8/12 UE/TTI -> 48667 < 232000 -> throughput = 48667 bytes/sec
-  AddTestCase (new LenaFdTbfqFfMacSchedulerTestCase1 (1,0,6000,232000,232000,200,1,errorModel), TestCase::EXTENSIVE);
-  AddTestCase (new LenaFdTbfqFfMacSchedulerTestCase1 (3,0,6000,232000,201000,200,1,errorModel), TestCase::EXTENSIVE);
-  AddTestCase (new LenaFdTbfqFfMacSchedulerTestCase1 (6,0,6000,198500,97000,200,1,errorModel), TestCase::EXTENSIVE);
-  //AddTestCase (new LenaFdTbfqFfMacSchedulerTestCase1 (12,0,6000,99250,48667,200,1, errorModel)); // simulation time = 1.5, otherwise, ul test will fail
+  AddTestCase (new LenaFdTbfqFfMacSchedulerTestCase1 (1,6000,232000,232000,200,1,errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaFdTbfqFfMacSchedulerTestCase1 (3,6000,232000,201000,200,1,errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaFdTbfqFfMacSchedulerTestCase1 (6,6000,198500,97000,200,1,errorModel), TestCase::EXTENSIVE);
+  //AddTestCase (new LenaFdTbfqFfMacSchedulerTestCase1 (12,6000,99250,48667,200,1, errorModel)); // simulation time = 1.5, otherwise, ul test will fail
 
   // DOWNLINK - DISTANCE 10000 -> MCS 14 -> Itbs 13 (from table 7.1.7.2.1-1 of 36.213)
   // Traffic info
@@ -152,10 +152,10 @@
   // 6 users -> 4 PRB at Itbs 8 -> 67 -> 67000 < 232000 -> throughput = 67000 bytes/sec
   // after the patch enforcing min 3 PRBs per UE:
   // 12 users -> 3 PRB at Itbs 8 -> 49 bytes * 8/12 UE/TTI -> 32667 < 232000 -> throughput = 32667  bytes/sec
-  AddTestCase (new LenaFdTbfqFfMacSchedulerTestCase1 (1,0,10000,232000,232000,200,1,errorModel), TestCase::EXTENSIVE);
-  AddTestCase (new LenaFdTbfqFfMacSchedulerTestCase1 (3,0,10000,232000,137000,200,1,errorModel), TestCase::EXTENSIVE);
-  AddTestCase (new LenaFdTbfqFfMacSchedulerTestCase1 (6,0,10000,129166,67000,200,1,errorModel), TestCase::EXTENSIVE);
-  //AddTestCase (new LenaFdTbfqFfMacSchedulerTestCase1 (12,0,10000,64583,32667,200,1,errorModel));// simulation time = 1.5, otherwise, ul test will fail
+  AddTestCase (new LenaFdTbfqFfMacSchedulerTestCase1 (1,10000,232000,232000,200,1,errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaFdTbfqFfMacSchedulerTestCase1 (3,10000,232000,137000,200,1,errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaFdTbfqFfMacSchedulerTestCase1 (6,10000,129166,67000,200,1,errorModel), TestCase::EXTENSIVE);
+  //AddTestCase (new LenaFdTbfqFfMacSchedulerTestCase1 (12,10000,64583,32667,200,1,errorModel));// simulation time = 1.5, otherwise, ul test will fail
 
   // Test Case 2: homogeneous flow test in FDTBFQ (different distance)
   // Traffic1 info
@@ -237,10 +237,9 @@
 }
 
 
-LenaFdTbfqFfMacSchedulerTestCase1::LenaFdTbfqFfMacSchedulerTestCase1 (uint16_t nUser, uint16_t nLc, uint16_t dist, double thrRefDl, double thrRefUl, uint16_t packetSize, uint16_t interval,bool errorModelEnabled)
+LenaFdTbfqFfMacSchedulerTestCase1::LenaFdTbfqFfMacSchedulerTestCase1 (uint16_t nUser, uint16_t dist, double thrRefDl, double thrRefUl, uint16_t packetSize, uint16_t interval,bool errorModelEnabled)
   : TestCase (BuildNameString (nUser, dist)),
     m_nUser (nUser),
-    m_nLc (nLc),
     m_dist (dist),
     m_packetSize (packetSize),
     m_interval (interval),
diff -Naur ns-3.18/src/lte/test/lte-test-fdtbfq-ff-mac-scheduler.h ns-3.18.1/src/lte/test/lte-test-fdtbfq-ff-mac-scheduler.h
--- ns-3.18/src/lte/test/lte-test-fdtbfq-ff-mac-scheduler.h	2013-08-29 22:36:58.000000000 -0700
+++ ns-3.18.1/src/lte/test/lte-test-fdtbfq-ff-mac-scheduler.h	2013-11-15 16:40:49.563761006 -0800
@@ -42,14 +42,13 @@
 class LenaFdTbfqFfMacSchedulerTestCase1 : public TestCase
 {
 public:
-  LenaFdTbfqFfMacSchedulerTestCase1 (uint16_t nUser, uint16_t nLc, uint16_t dist, double thrRefDl, double thrRefUl, uint16_t packetSize, uint16_t interval, bool  errorModelEnabled);
+  LenaFdTbfqFfMacSchedulerTestCase1 (uint16_t nUser, uint16_t dist, double thrRefDl, double thrRefUl, uint16_t packetSize, uint16_t interval, bool  errorModelEnabled);
   virtual ~LenaFdTbfqFfMacSchedulerTestCase1 ();
 
 private:
   static std::string BuildNameString (uint16_t nUser, uint16_t dist);
   virtual void DoRun (void);
   uint16_t m_nUser;
-  uint16_t m_nLc;
   uint16_t m_dist;
   uint16_t m_packetSize;  // byte
   uint16_t m_interval;    // ms
diff -Naur ns-3.18/src/lte/test/lte-test-harq.cc ns-3.18.1/src/lte/test/lte-test-harq.cc
--- ns-3.18/src/lte/test/lte-test-harq.cc	2013-08-29 22:36:58.000000000 -0700
+++ ns-3.18.1/src/lte/test/lte-test-harq.cc	2013-11-15 16:40:49.559761007 -0800
@@ -82,18 +82,17 @@
 static LenaTestHarqSuite lenaTestHarqSuite;
 
 std::string
-LenaHarqTestCase::BuildNameString (uint16_t nUser, uint16_t dist)
+LenaHarqTestCase::BuildNameString (uint16_t nUser, uint16_t dist, uint16_t tbSize)
 {
   std::ostringstream oss;
-  oss << nUser << " UEs, distance " << dist << " m";
+  oss << nUser << " UEs, distance " << dist << " m, TB size " << tbSize;
   return oss.str ();
 }
 
 LenaHarqTestCase::LenaHarqTestCase (uint16_t nUser, uint16_t dist, uint16_t tbSize, double amcBer, double thrRef)
-  : TestCase (BuildNameString (nUser, dist)),
+  : TestCase (BuildNameString (nUser, dist, tbSize)),
     m_nUser (nUser),
     m_dist (dist),
-    m_tbSize (tbSize),
     m_amcBer (amcBer),
     m_throughputRef (thrRef)
 {
diff -Naur ns-3.18/src/lte/test/lte-test-harq.h ns-3.18.1/src/lte/test/lte-test-harq.h
--- ns-3.18/src/lte/test/lte-test-harq.h	2013-08-29 22:36:58.000000000 -0700
+++ ns-3.18.1/src/lte/test/lte-test-harq.h	2013-11-15 16:40:49.555761008 -0800
@@ -43,10 +43,9 @@
 
 private:
   virtual void DoRun (void);
-  static std::string BuildNameString (uint16_t nUser, uint16_t dist);
+  static std::string BuildNameString (uint16_t nUser, uint16_t dist, uint16_t tbSize);
   uint16_t m_nUser;
   uint16_t m_dist;
-  uint16_t m_tbSize;
   double m_amcBer;
   double m_throughputRef;
 
diff -Naur ns-3.18/src/lte/test/lte-test-interference.cc ns-3.18.1/src/lte/test/lte-test-interference.cc
--- ns-3.18/src/lte/test/lte-test-interference.cc	2013-08-29 22:36:58.000000000 -0700
+++ ns-3.18.1/src/lte/test/lte-test-interference.cc	2013-11-15 16:40:49.563761006 -0800
@@ -98,8 +98,6 @@
     m_d2 (d2),
     m_dlSinrDb (10 * std::log10 (dlSinr)),
     m_ulSinrDb (10 * std::log10 (ulSinr)),
-    m_dlSe (dlSe),
-    m_ulSe (ulSe),
     m_dlMcs (dlMcs),
     m_ulMcs (ulMcs)
 {
diff -Naur ns-3.18/src/lte/test/lte-test-interference.h ns-3.18.1/src/lte/test/lte-test-interference.h
--- ns-3.18/src/lte/test/lte-test-interference.h	2013-08-29 22:36:58.000000000 -0700
+++ ns-3.18.1/src/lte/test/lte-test-interference.h	2013-11-15 16:40:49.559761007 -0800
@@ -58,8 +58,6 @@
   double m_d2;
   double m_dlSinrDb;
   double m_ulSinrDb;
-  double m_dlSe;
-  double m_ulSe;
   uint16_t m_dlMcs;
   uint16_t m_ulMcs;
 };
diff -Naur ns-3.18/src/lte/test/lte-test-mimo.h ns-3.18.1/src/lte/test/lte-test-mimo.h
--- ns-3.18/src/lte/test/lte-test-mimo.h	2013-08-29 22:36:58.000000000 -0700
+++ ns-3.18.1/src/lte/test/lte-test-mimo.h	2013-11-15 16:40:49.555761008 -0800
@@ -43,8 +43,6 @@
   void GetRlcBufferSample (Ptr<RadioBearerStatsCalculator> rlcStats, uint64_t imsi, uint8_t rnti);
   
   static std::string BuildNameString (uint16_t dist, std::string schedulerType, bool useIdealRrc);
-  uint16_t m_nUser;
-  uint16_t m_nLc;
   uint16_t m_dist;
   std::vector<uint32_t> m_estThrDl;
   std::string m_schedulerType;
diff -Naur ns-3.18/src/lte/test/lte-test-pf-ff-mac-scheduler.cc ns-3.18.1/src/lte/test/lte-test-pf-ff-mac-scheduler.cc
--- ns-3.18/src/lte/test/lte-test-pf-ff-mac-scheduler.cc	2013-08-29 22:36:58.000000000 -0700
+++ ns-3.18.1/src/lte/test/lte-test-pf-ff-mac-scheduler.cc	2013-11-15 16:40:49.547761006 -0800
@@ -77,11 +77,11 @@
   // after the patch enforcing min 3 PRBs per UE:
   // 12 users -> 3 PRB at Itbs 26 -> 277 bytes * 8/12 UE/TTI -> 184670 bytes/sec
   // 15 users -> 3 PRB at Itbs 26 -> 277 bytes * 8/15 UE/TTI -> 147730 bytes/sec
-  AddTestCase (new LenaPfFfMacSchedulerTestCase1 (1,0,0,2196000,2292000,errorModel), TestCase::EXTENSIVE);
-  AddTestCase (new LenaPfFfMacSchedulerTestCase1 (3,0,0,732000,749000,errorModel), TestCase::EXTENSIVE);
-  AddTestCase (new LenaPfFfMacSchedulerTestCase1 (6,0,0,366000,373000,errorModel), TestCase::EXTENSIVE);
-  AddTestCase (new LenaPfFfMacSchedulerTestCase1 (12,0,0,183000,184670,errorModel), TestCase::EXTENSIVE);
-  AddTestCase (new LenaPfFfMacSchedulerTestCase1 (15,0,0,146400,147730,errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaPfFfMacSchedulerTestCase1 (1,0,2196000,2292000,errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaPfFfMacSchedulerTestCase1 (3,0,732000,749000,errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaPfFfMacSchedulerTestCase1 (6,0,366000,373000,errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaPfFfMacSchedulerTestCase1 (12,0,183000,184670,errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaPfFfMacSchedulerTestCase1 (15,0,146400,147730,errorModel), TestCase::EXTENSIVE);
   
  
   // DOWNLINK - DISTANCE 4800 -> MCS 22 -> Itbs 20 (from table 7.1.7.2.1-1 of 36.213)
@@ -97,11 +97,11 @@
   // after the patch enforcing min 3 PRBs per UE:
   // 12 users -> 3 PRB at Itbs 13 -> 93  bytes * 8/12 UE/TTI  -> 62000 bytes/sec
   // 15 users -> 3 PRB at Itbs 13 -> 93  bytes * 8/15 UE/TTI  -> 49600 bytes/sec
-  AddTestCase (new LenaPfFfMacSchedulerTestCase1 (1,0,4800,1383000,807000,errorModel), TestCase::EXTENSIVE);
-  AddTestCase (new LenaPfFfMacSchedulerTestCase1 (3,0,4800,461000,253000,errorModel), TestCase::EXTENSIVE);
-  AddTestCase (new LenaPfFfMacSchedulerTestCase1 (6,0,4800,230500,125000,errorModel), TestCase::EXTENSIVE);
-  AddTestCase (new LenaPfFfMacSchedulerTestCase1 (12,0,4800,115250,62000,errorModel), TestCase::EXTENSIVE);
-  AddTestCase (new LenaPfFfMacSchedulerTestCase1 (15,0,4800,92200,49600,errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaPfFfMacSchedulerTestCase1 (1,4800,1383000,807000,errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaPfFfMacSchedulerTestCase1 (3,4800,461000,253000,errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaPfFfMacSchedulerTestCase1 (6,4800,230500,125000,errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaPfFfMacSchedulerTestCase1 (12,4800,115250,62000,errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaPfFfMacSchedulerTestCase1 (15,4800,92200,49600,errorModel), TestCase::EXTENSIVE);
   
   // DOWNLINK - DISTANCE 6000 -> MCS 20 -> Itbs 18 (from table 7.1.7.2.1-1 of 36.213)
   // 1 user -> 24 PRB at Itbs 20 -> 1191 -> 1191000 bytes/sec
@@ -116,11 +116,11 @@
   // after the patch enforcing min 3 PRBs per UE:
   // 12 users -> 3 PRB at Itbs 11 -> 73 bytes * 8/12 UE/TTI -> 48667 bytes/sec
   // 15 users -> 3 PRB at Itbs 11 -> 73 bytes * 8/15 UE/TTI -> 38993 bytes/sec
-  AddTestCase (new LenaPfFfMacSchedulerTestCase1 (1,0,6000,1191000,621000,errorModel), TestCase::EXTENSIVE);
-  AddTestCase (new LenaPfFfMacSchedulerTestCase1 (3,0,6000,397000,201000,errorModel), TestCase::EXTENSIVE);
-  AddTestCase (new LenaPfFfMacSchedulerTestCase1 (6,0,6000,198500,97000,errorModel), TestCase::EXTENSIVE);
-  AddTestCase (new LenaPfFfMacSchedulerTestCase1 (12,0,6000,99250,48667,errorModel), TestCase::EXTENSIVE);
-  AddTestCase (new LenaPfFfMacSchedulerTestCase1 (15,0,6000,79400,38993,errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaPfFfMacSchedulerTestCase1 (1,6000,1191000,621000,errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaPfFfMacSchedulerTestCase1 (3,6000,397000,201000,errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaPfFfMacSchedulerTestCase1 (6,6000,198500,97000,errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaPfFfMacSchedulerTestCase1 (12,6000,99250,48667,errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaPfFfMacSchedulerTestCase1 (15,6000,79400,38993,errorModel), TestCase::EXTENSIVE);
 
   // DOWNLINK - DISTANCE 10000 -> MCS 14 -> Itbs 13 (from table 7.1.7.2.1-1 of 36.213)
   // 1 user -> 24 PRB at Itbs 13 -> 871 -> 775000 bytes/sec
@@ -135,11 +135,11 @@
   // after the patch enforcing min 3 PRBs per UE:
   // 12 users -> 3 PRB at Itbs 8 -> 49 bytes * 8/12 UE/TTI -> 32667 bytes/sec
   // 15 users -> 3 PRB at Itbs 8 -> 49 bytes * 8/15 UE/TTI -> 26133 bytes/sec
-  AddTestCase (new LenaPfFfMacSchedulerTestCase1 (1,0,10000,775000,437000,errorModel), TestCase::EXTENSIVE);
-  AddTestCase (new LenaPfFfMacSchedulerTestCase1 (3,0,10000,258333,137000,errorModel), TestCase::EXTENSIVE);
-  AddTestCase (new LenaPfFfMacSchedulerTestCase1 (6,0,10000,129167,67000,errorModel), TestCase::EXTENSIVE);
-  AddTestCase (new LenaPfFfMacSchedulerTestCase1 (12,0,10000,64583,32667,errorModel), TestCase::EXTENSIVE);
-  AddTestCase (new LenaPfFfMacSchedulerTestCase1 (15,0,10000,51667,26133,errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaPfFfMacSchedulerTestCase1 (1,10000,775000,437000,errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaPfFfMacSchedulerTestCase1 (3,10000,258333,137000,errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaPfFfMacSchedulerTestCase1 (6,10000,129167,67000,errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaPfFfMacSchedulerTestCase1 (12,10000,64583,32667,errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaPfFfMacSchedulerTestCase1 (15,10000,51667,26133,errorModel), TestCase::EXTENSIVE);
  
   // DONWLINK - DISTANCE 20000 -> MCS 8 -> Itbs 8 (from table 7.1.7.2.1-1 of 36.213)
   // 1 user -> 24 PRB at Itbs 8 -> 421 -> 421000 bytes/sec
@@ -154,11 +154,11 @@
   // after the patch enforcing min 3 PRBs per UE:
   // 12 users -> 3 PRB at Itbs 2 -> 26 bytes * 8/12 UE/TTI -> 12000 bytes/sec
   // 15 users -> 3 PRB at Itbs 2 -> 26 bytes * 8/15 UE/TTI -> 9600 bytes/sec
-  AddTestCase (new LenaPfFfMacSchedulerTestCase1 (1,0,20000,421000,137000,errorModel), TestCase::EXTENSIVE);
-  AddTestCase (new LenaPfFfMacSchedulerTestCase1 (3,0,20000,140333,41000,errorModel), TestCase::EXTENSIVE);
-  AddTestCase (new LenaPfFfMacSchedulerTestCase1 (6,0,20000,70167,22000,errorModel), TestCase::EXTENSIVE);
-  AddTestCase (new LenaPfFfMacSchedulerTestCase1 (12,0,20000,35083,12000,errorModel), TestCase::EXTENSIVE);
-  AddTestCase (new LenaPfFfMacSchedulerTestCase1 (15,0,20000,28067,9600,errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaPfFfMacSchedulerTestCase1 (1,20000,421000,137000,errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaPfFfMacSchedulerTestCase1 (3,20000,140333,41000,errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaPfFfMacSchedulerTestCase1 (6,20000,70167,22000,errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaPfFfMacSchedulerTestCase1 (12,20000,35083,12000,errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaPfFfMacSchedulerTestCase1 (15,20000,28067,9600,errorModel), TestCase::EXTENSIVE);
 
 
   // Test Case 2: fairness check
@@ -200,10 +200,9 @@
   return oss.str ();
 }
 
-LenaPfFfMacSchedulerTestCase1::LenaPfFfMacSchedulerTestCase1 (uint16_t nUser, uint16_t nLc, uint16_t dist, double thrRefDl, double thrRefUl, bool errorModelEnabled)
+LenaPfFfMacSchedulerTestCase1::LenaPfFfMacSchedulerTestCase1 (uint16_t nUser, uint16_t dist, double thrRefDl, double thrRefUl, bool errorModelEnabled)
   : TestCase (BuildNameString (nUser, dist)),
     m_nUser (nUser),
-    m_nLc (nLc),
     m_dist (dist),
     m_thrRefDl (thrRefDl),
     m_thrRefUl (thrRefUl),
@@ -218,7 +217,7 @@
 void
 LenaPfFfMacSchedulerTestCase1::DoRun (void)
 {
-  NS_LOG_FUNCTION (this << m_nUser << m_nLc << m_dist);
+  NS_LOG_FUNCTION (this << m_nUser << m_dist);
 
   if (!m_errorModelEnabled)
     {
diff -Naur ns-3.18/src/lte/test/lte-test-pf-ff-mac-scheduler.h ns-3.18.1/src/lte/test/lte-test-pf-ff-mac-scheduler.h
--- ns-3.18/src/lte/test/lte-test-pf-ff-mac-scheduler.h	2013-08-29 22:36:58.000000000 -0700
+++ ns-3.18.1/src/lte/test/lte-test-pf-ff-mac-scheduler.h	2013-11-15 16:40:49.543761004 -0800
@@ -41,14 +41,13 @@
 class LenaPfFfMacSchedulerTestCase1 : public TestCase
 {
 public:
-  LenaPfFfMacSchedulerTestCase1 (uint16_t nUser, uint16_t nLc, uint16_t dist, double thrRefDl, double thrRefUl, bool errorModelEnabled);
+  LenaPfFfMacSchedulerTestCase1 (uint16_t nUser, uint16_t dist, double thrRefDl, double thrRefUl, bool errorModelEnabled);
   virtual ~LenaPfFfMacSchedulerTestCase1 ();
 
 private:
   static std::string BuildNameString (uint16_t nUser, uint16_t dist);
   virtual void DoRun (void);
   uint16_t m_nUser;
-  uint16_t m_nLc;
   uint16_t m_dist;
   double m_thrRefDl;
   double m_thrRefUl;
diff -Naur ns-3.18/src/lte/test/lte-test-phy-error-model.cc ns-3.18.1/src/lte/test/lte-test-phy-error-model.cc
--- ns-3.18/src/lte/test/lte-test-phy-error-model.cc	2013-08-29 22:36:58.000000000 -0700
+++ ns-3.18.1/src/lte/test/lte-test-phy-error-model.cc	2013-11-15 16:40:49.563761006 -0800
@@ -113,10 +113,9 @@
   : TestCase (BuildNameString (nUser, dist)),              
     m_nUser (nUser),
     m_dist (dist),
-    m_tbSize (tbSize),
     m_blerRef (blerRef),
     m_toleranceRxPackets (toleranceRxPackets)
-{
+{  
 }
 
 LenaDataPhyErrorModelTestCase::~LenaDataPhyErrorModelTestCase ()
@@ -263,7 +262,6 @@
 : TestCase (BuildNameString (nEnb, dist)),              
 m_nEnb (nEnb),
 m_dist (dist),
-m_tbSize (tbSize),
 m_blerRef (blerRef)
 {
 }
diff -Naur ns-3.18/src/lte/test/lte-test-phy-error-model.h ns-3.18.1/src/lte/test/lte-test-phy-error-model.h
--- ns-3.18/src/lte/test/lte-test-phy-error-model.h	2013-08-29 22:36:58.000000000 -0700
+++ ns-3.18.1/src/lte/test/lte-test-phy-error-model.h	2013-11-15 16:40:49.555761008 -0800
@@ -46,7 +46,6 @@
   static std::string BuildNameString (uint16_t nUser, uint16_t dist);
   uint16_t m_nUser;
   uint16_t m_dist;
-  uint16_t m_tbSize;
   double m_blerRef;
   uint16_t m_toleranceRxPackets;
 
@@ -65,7 +64,6 @@
     static std::string BuildNameString (uint16_t nUser, uint16_t dist);
     uint16_t m_nEnb;
     uint16_t m_dist;
-    uint16_t m_tbSize;
     double m_blerRef;
     
 };
diff -Naur ns-3.18/src/lte/test/lte-test-pss-ff-mac-scheduler.cc ns-3.18.1/src/lte/test/lte-test-pss-ff-mac-scheduler.cc
--- ns-3.18/src/lte/test/lte-test-pss-ff-mac-scheduler.cc	2013-08-29 22:36:58.000000000 -0700
+++ ns-3.18.1/src/lte/test/lte-test-pss-ff-mac-scheduler.cc	2013-11-15 16:40:49.543761004 -0800
@@ -91,11 +91,11 @@
   // 3 users -> 8 PRB at Itbs 26 -> 749 -> 749000 > 232000 -> throughput = 232000 bytes/sec 
   // 6 users -> 4 PRB at Itbs 26 -> 373 -> 373000 > 232000 -> throughput = 232000 bytes/sec
   // 12 users -> 2 PRB at Itbs 26 -> 185 -> 185000 < 232000 -> throughput = 185000 bytes/sec
-  AddTestCase (new LenaPssFfMacSchedulerTestCase1 (1,0,0,232000,232000,200,1,errorModel), TestCase::EXTENSIVE);
-  AddTestCase (new LenaPssFfMacSchedulerTestCase1 (3,0,0,232000,232000,200,1,errorModel), TestCase::EXTENSIVE);
-  AddTestCase (new LenaPssFfMacSchedulerTestCase1 (6,0,0,232000,232000,200,1,errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaPssFfMacSchedulerTestCase1 (1,0,232000,232000,200,1,errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaPssFfMacSchedulerTestCase1 (3,0,232000,232000,200,1,errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaPssFfMacSchedulerTestCase1 (6,0,232000,232000,200,1,errorModel), TestCase::EXTENSIVE);
 
-  //AddTestCase (new LenaPssFfMacSchedulerTestCase1 (12,0,0,183000,185000,200,1,errorModel));// simulation time = 1.5, otherwise, ul test will fail
+  //AddTestCase (new LenaPssFfMacSchedulerTestCase1 (12,0,183000,185000,200,1,errorModel));// simulation time = 1.5, otherwise, ul test will fail
 
   // DOWNLINK - DISTANCE 4800 -> MCS 22 -> Itbs 20 (from table 7.1.7.2.1-1 of 36.213)
   // Traffic info
@@ -112,10 +112,10 @@
   // 6 users -> 4 PRB at Itbs 13 -> 125 -> 125000 < 232000 -> throughput = 125000 bytes/sec
   // after the patch enforcing min 3 PRBs per UE:
   // 12 users -> 3 PRB at Itbs 13 -> 93  bytes * 8/12 UE/TTI  -> 62000 < 232000 -> throughput = 62000  bytes/sec
-  AddTestCase (new LenaPssFfMacSchedulerTestCase1 (1,0,4800,232000,232000,200,1,errorModel), TestCase::EXTENSIVE);
-  AddTestCase (new LenaPssFfMacSchedulerTestCase1 (3,0,4800,232000,232000,200,1,errorModel), TestCase::EXTENSIVE);
-  AddTestCase (new LenaPssFfMacSchedulerTestCase1 (6,0,4800,230500,125000,200,1,errorModel), TestCase::EXTENSIVE);
-  //AddTestCase (new LenaPssFfMacSchedulerTestCase1 (12,0,4800,115250,62000,200,1,errorModel)); // simulation time = 1.5, otherwise, ul test will fail
+  AddTestCase (new LenaPssFfMacSchedulerTestCase1 (1,4800,232000,232000,200,1,errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaPssFfMacSchedulerTestCase1 (3,4800,232000,232000,200,1,errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaPssFfMacSchedulerTestCase1 (6,4800,230500,125000,200,1,errorModel), TestCase::EXTENSIVE);
+  //AddTestCase (new LenaPssFfMacSchedulerTestCase1 (12,4800,115250,62000,200,1,errorModel)); // simulation time = 1.5, otherwise, ul test will fail
 
   // DOWNLINK - DISTANCE 6000 -> MCS 20 -> Itbs 18 (from table 7.1.7.2.1-1 of 36.213)
   // Traffic info
@@ -133,10 +133,10 @@
   // 6 users -> 4 PRB at Itbs 11 -> 97 -> 97000 < 232000 -> throughput = 97000 bytes/sec
   // after the patch enforcing min 3 PRBs per UE:
   // 12 users -> 3 PRB at Itbs 11 -> 73 bytes * 8/12 UE/TTI -> 48667 < 232000 -> throughput = 48667 bytes/sec
-  AddTestCase (new LenaPssFfMacSchedulerTestCase1 (1,0,6000,232000,232000,200,1,errorModel), TestCase::EXTENSIVE);
-  AddTestCase (new LenaPssFfMacSchedulerTestCase1 (3,0,6000,232000,201000,200,1,errorModel), TestCase::EXTENSIVE);
-  AddTestCase (new LenaPssFfMacSchedulerTestCase1 (6,0,6000,198500,97000,200,1,errorModel), TestCase::EXTENSIVE);
-  //AddTestCase (new LenaPssFfMacSchedulerTestCase1 (12,0,6000,99250,48667,200,1, errorModel)); // simulation time = 1.5, otherwise, ul test will fail
+  AddTestCase (new LenaPssFfMacSchedulerTestCase1 (1,6000,232000,232000,200,1,errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaPssFfMacSchedulerTestCase1 (3,6000,232000,201000,200,1,errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaPssFfMacSchedulerTestCase1 (6,6000,198500,97000,200,1,errorModel), TestCase::EXTENSIVE);
+  //AddTestCase (new LenaPssFfMacSchedulerTestCase1 (12,6000,99250,48667,200,1, errorModel)); // simulation time = 1.5, otherwise, ul test will fail
 
   // DOWNLINK - DISTANCE 10000 -> MCS 14 -> Itbs 13 (from table 7.1.7.2.1-1 of 36.213)
   // Traffic info
@@ -153,10 +153,10 @@
   // 6 users -> 4 PRB at Itbs 8 -> 67 -> 67000 < 232000 -> throughput = 67000 bytes/sec
   // after the patch enforcing min 3 PRBs per UE:
   // 12 users -> 3 PRB at Itbs 8 -> 49 bytes * 8/12 UE/TTI -> 32667 < 232000 -> throughput = 32667  bytes/sec
-  AddTestCase (new LenaPssFfMacSchedulerTestCase1 (1,0,10000,232000,232000,200,1,errorModel), TestCase::EXTENSIVE);
-  AddTestCase (new LenaPssFfMacSchedulerTestCase1 (3,0,10000,232000,137000,200,1,errorModel), TestCase::EXTENSIVE);
-  AddTestCase (new LenaPssFfMacSchedulerTestCase1 (6,0,10000,129166,67000,200,1,errorModel), TestCase::EXTENSIVE);
-  //AddTestCase (new LenaPssFfMacSchedulerTestCase1 (12,0,10000,64583,32667,200,1,errorModel));// simulation time = 1.5, otherwise, ul test will fail
+  AddTestCase (new LenaPssFfMacSchedulerTestCase1 (1,10000,232000,232000,200,1,errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaPssFfMacSchedulerTestCase1 (3,10000,232000,137000,200,1,errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaPssFfMacSchedulerTestCase1 (6,10000,129166,67000,200,1,errorModel), TestCase::EXTENSIVE);
+  //AddTestCase (new LenaPssFfMacSchedulerTestCase1 (12,10000,64583,32667,200,1,errorModel));// simulation time = 1.5, otherwise, ul test will fail
 
   // Test Case 2: homogeneous flow test in PSS (different distance)
   // Traffic1 info
@@ -238,10 +238,9 @@
 }
 
 
-LenaPssFfMacSchedulerTestCase1::LenaPssFfMacSchedulerTestCase1 (uint16_t nUser, uint16_t nLc, uint16_t dist, double thrRefDl, double thrRefUl, uint16_t packetSize, uint16_t interval,bool errorModelEnabled)
+LenaPssFfMacSchedulerTestCase1::LenaPssFfMacSchedulerTestCase1 (uint16_t nUser, uint16_t dist, double thrRefDl, double thrRefUl, uint16_t packetSize, uint16_t interval,bool errorModelEnabled)
   : TestCase (BuildNameString (nUser, dist)),
     m_nUser (nUser),
-    m_nLc (nLc),
     m_dist (dist),
     m_packetSize (packetSize),
     m_interval (interval),
diff -Naur ns-3.18/src/lte/test/lte-test-pss-ff-mac-scheduler.h ns-3.18.1/src/lte/test/lte-test-pss-ff-mac-scheduler.h
--- ns-3.18/src/lte/test/lte-test-pss-ff-mac-scheduler.h	2013-08-29 22:36:58.000000000 -0700
+++ ns-3.18.1/src/lte/test/lte-test-pss-ff-mac-scheduler.h	2013-11-15 16:40:49.563761006 -0800
@@ -42,14 +42,13 @@
 class LenaPssFfMacSchedulerTestCase1 : public TestCase
 {
 public:
-  LenaPssFfMacSchedulerTestCase1 (uint16_t nUser, uint16_t nLc, uint16_t dist, double thrRefDl, double thrRefUl, uint16_t packetSize, uint16_t interval, bool  errorModelEnabled);
+  LenaPssFfMacSchedulerTestCase1 (uint16_t nUser, uint16_t dist, double thrRefDl, double thrRefUl, uint16_t packetSize, uint16_t interval, bool  errorModelEnabled);
   virtual ~LenaPssFfMacSchedulerTestCase1 ();
 
 private:
   static std::string BuildNameString (uint16_t nUser, uint16_t dist);
   virtual void DoRun (void);
   uint16_t m_nUser;
-  uint16_t m_nLc;
   uint16_t m_dist;
   uint16_t m_packetSize;  // byte
   uint16_t m_interval;    // ms
diff -Naur ns-3.18/src/lte/test/lte-test-rr-ff-mac-scheduler.cc ns-3.18.1/src/lte/test/lte-test-rr-ff-mac-scheduler.cc
--- ns-3.18/src/lte/test/lte-test-rr-ff-mac-scheduler.cc	2013-08-29 22:36:58.000000000 -0700
+++ ns-3.18.1/src/lte/test/lte-test-rr-ff-mac-scheduler.cc	2013-11-15 16:40:49.559761007 -0800
@@ -76,12 +76,12 @@
   // 9 users -> 3 PRB at Itbs 26 -> 277 bytes * 8/9 UE/TTI ->  246220 bytes/sec
   // 12 users -> 3 PRB at Itbs 26 -> 277 bytes * 8/12 UE/TTI -> 184670 bytes/sec
   // 15 users -> 3 PRB at Itbs 26 -> 277 bytes * 8/15 UE/TTI -> 147730 bytes/sec
-  AddTestCase (new LenaRrFfMacSchedulerTestCase (1,0,0,2196000,2292000,errorModel), TestCase::EXTENSIVE);
-  AddTestCase (new LenaRrFfMacSchedulerTestCase (3,0,0,749000,749000,errorModel), TestCase::QUICK);
-  AddTestCase (new LenaRrFfMacSchedulerTestCase (6,0,0,373000,373000,errorModel), TestCase::EXTENSIVE);
-  AddTestCase (new LenaRrFfMacSchedulerTestCase (9,0,0,185000,246220,errorModel), TestCase::EXTENSIVE);
-  AddTestCase (new LenaRrFfMacSchedulerTestCase (12,0,0,185000,184670,errorModel), TestCase::EXTENSIVE);
-  AddTestCase (new LenaRrFfMacSchedulerTestCase (15,0,0,148000,147730,errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaRrFfMacSchedulerTestCase (1,0,2196000,2292000,errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaRrFfMacSchedulerTestCase (3,0,749000,749000,errorModel), TestCase::QUICK);
+  AddTestCase (new LenaRrFfMacSchedulerTestCase (6,0,373000,373000,errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaRrFfMacSchedulerTestCase (9,0,185000,246220,errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaRrFfMacSchedulerTestCase (12,0,185000,184670,errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaRrFfMacSchedulerTestCase (15,0,148000,147730,errorModel), TestCase::EXTENSIVE);
 
   // DOWNLINK - DISTANCE 4800 -> MCS 22 -> Itbs 20 (from table 7.1.7.2.1-1 of 36.213)
   // 1 user -> 24 PRB at Itbs 20 -> 1383 -> 1383000 bytes/sec
@@ -98,12 +98,12 @@
   // 9 users -> 3 PRB at Itbs 13 -> 93  bytes * 8/9 UE/TTI  -> 82667 bytes/sec
   // 12 users -> 3 PRB at Itbs 13 -> 93  bytes * 8/12 UE/TTI  -> 62000 bytes/sec
   // 15 users -> 3 PRB at Itbs 13 -> 93  bytes * 8/15 UE/TTI  -> 49600 bytes/sec
-  AddTestCase (new LenaRrFfMacSchedulerTestCase (1,0,4800,1383000,807000,errorModel), TestCase::EXTENSIVE);
-  AddTestCase (new LenaRrFfMacSchedulerTestCase (3,0,4800,469000,253000,errorModel), TestCase::EXTENSIVE);
-  AddTestCase (new LenaRrFfMacSchedulerTestCase (6,0,4800,233000,125000,errorModel), TestCase::EXTENSIVE);
-  AddTestCase (new LenaRrFfMacSchedulerTestCase (9,0,4800,113000,82667,errorModel), TestCase::EXTENSIVE);
-  AddTestCase (new LenaRrFfMacSchedulerTestCase (12,0,4800,113000,62000,errorModel), TestCase::EXTENSIVE);
-  AddTestCase (new LenaRrFfMacSchedulerTestCase (15,0,4800,90400,49600,errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaRrFfMacSchedulerTestCase (1,4800,1383000,807000,errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaRrFfMacSchedulerTestCase (3,4800,469000,253000,errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaRrFfMacSchedulerTestCase (6,4800,233000,125000,errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaRrFfMacSchedulerTestCase (9,4800,113000,82667,errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaRrFfMacSchedulerTestCase (12,4800,113000,62000,errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaRrFfMacSchedulerTestCase (15,4800,90400,49600,errorModel), TestCase::EXTENSIVE);
 
   // DOWNLINK - DISTANCE 6000 -> MCS 20 -> Itbs 18 (from table 7.1.7.2.1-1 of 36.213)
   // 1 user -> 24 PRB at Itbs 15 -> 1191 -> 1191000 bytes/sec
@@ -119,12 +119,12 @@
   // 9 users -> 3 PRB at Itbs 11 -> 73 bytes * 8/9 UE/TTI -> 64889 bytes/sec
   // 12 users -> 3 PRB at Itbs 11 -> 73 bytes * 8/12 UE/TTI -> 48667 bytes/sec
   // 15 users -> 3 PRB at Itbs 11 -> 73 bytes * 8/15 UE/TTI -> 38993 bytes/sec
-  AddTestCase (new LenaRrFfMacSchedulerTestCase (1,0,6000,1191000,621000,errorModel), TestCase::EXTENSIVE);
-  AddTestCase (new LenaRrFfMacSchedulerTestCase (3,0,6000,389000,201000,errorModel), TestCase::EXTENSIVE);
-  AddTestCase (new LenaRrFfMacSchedulerTestCase (6,0,6000,193000,97000,errorModel), TestCase::EXTENSIVE);
-  AddTestCase (new LenaRrFfMacSchedulerTestCase (9,0,6000,97000,64889,errorModel), TestCase::EXTENSIVE);
-  AddTestCase (new LenaRrFfMacSchedulerTestCase (12,0,6000,97000,48667,errorModel), TestCase::EXTENSIVE);
-  AddTestCase (new LenaRrFfMacSchedulerTestCase (15,0,6000,77600,38993,errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaRrFfMacSchedulerTestCase (1,6000,1191000,621000,errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaRrFfMacSchedulerTestCase (3,6000,389000,201000,errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaRrFfMacSchedulerTestCase (6,6000,193000,97000,errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaRrFfMacSchedulerTestCase (9,6000,97000,64889,errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaRrFfMacSchedulerTestCase (12,6000,97000,48667,errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaRrFfMacSchedulerTestCase (15,6000,77600,38993,errorModel), TestCase::EXTENSIVE);
 
   // DOWNLINK - DISTANCE 20000 -> MCS 8 -> Itbs 8 (from table 7.1.7.2.1-1 of 36.213)
   // 1 user -> 24 PRB at Itbs 8 -> 421 -> 421000 bytes/sec
@@ -141,12 +141,12 @@
   // 9 users -> 3 PRB at Itbs 2 -> 18 bytes * 8/9 UE/TTI -> 16000 bytes/sec
   // 12 users -> 3 PRB at Itbs 2 -> 18 bytes * 8/12 UE/TTI -> 12000 bytes/sec
   // 15 users -> 3 PRB at Itbs 2 -> 18 bytes * 8/15 UE/TTI -> 9600 bytes/sec
-  AddTestCase (new LenaRrFfMacSchedulerTestCase (1,0,20000,421000,137000,errorModel), TestCase::EXTENSIVE);
-  AddTestCase (new LenaRrFfMacSchedulerTestCase (3,0,20000,137000,41000,errorModel), TestCase::EXTENSIVE);
-  AddTestCase (new LenaRrFfMacSchedulerTestCase (6,0,20000,67000,22000,errorModel), TestCase::EXTENSIVE);
-  AddTestCase (new LenaRrFfMacSchedulerTestCase (9,0,20000,32000,16000,errorModel), TestCase::EXTENSIVE);
-  AddTestCase (new LenaRrFfMacSchedulerTestCase (12,0,20000,32000,12000,errorModel), TestCase::EXTENSIVE);
-  AddTestCase (new LenaRrFfMacSchedulerTestCase (15,0,20000,25600,9600,errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaRrFfMacSchedulerTestCase (1,20000,421000,137000,errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaRrFfMacSchedulerTestCase (3,20000,137000,41000,errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaRrFfMacSchedulerTestCase (6,20000,67000,22000,errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaRrFfMacSchedulerTestCase (9,20000,32000,16000,errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaRrFfMacSchedulerTestCase (12,20000,32000,12000,errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaRrFfMacSchedulerTestCase (15,20000,25600,9600,errorModel), TestCase::EXTENSIVE);
 
 }
 
@@ -160,10 +160,9 @@
   return oss.str ();
 }
 
-LenaRrFfMacSchedulerTestCase::LenaRrFfMacSchedulerTestCase (uint16_t nUser, uint16_t nLc, uint16_t dist, double thrRefDl, double thrRefUl, bool errorModelEnabled)
+LenaRrFfMacSchedulerTestCase::LenaRrFfMacSchedulerTestCase (uint16_t nUser, uint16_t dist, double thrRefDl, double thrRefUl, bool errorModelEnabled)
   : TestCase (BuildNameString (nUser, dist)),              
     m_nUser (nUser),
-    m_nLc (nLc),
     m_dist (dist),
     m_thrRefDl (thrRefDl),
     m_thrRefUl (thrRefUl),
@@ -178,7 +177,7 @@
 void
 LenaRrFfMacSchedulerTestCase::DoRun (void)
 {
-  NS_LOG_FUNCTION (this << m_nUser << m_nLc << m_dist);
+  NS_LOG_FUNCTION (this << m_nUser << m_dist);
   if (!m_errorModelEnabled)
     {
       Config::SetDefault ("ns3::LteSpectrumPhy::CtrlErrorModelEnabled", BooleanValue (false));
diff -Naur ns-3.18/src/lte/test/lte-test-rr-ff-mac-scheduler.h ns-3.18.1/src/lte/test/lte-test-rr-ff-mac-scheduler.h
--- ns-3.18/src/lte/test/lte-test-rr-ff-mac-scheduler.h	2013-08-29 22:36:58.000000000 -0700
+++ ns-3.18.1/src/lte/test/lte-test-rr-ff-mac-scheduler.h	2013-11-15 16:40:49.555761008 -0800
@@ -40,14 +40,13 @@
 class LenaRrFfMacSchedulerTestCase : public TestCase
 {
 public:
-  LenaRrFfMacSchedulerTestCase (uint16_t nUser, uint16_t nLc, uint16_t dist, double thrRefDl, double thrRefUl, bool errorModelEnabled);
+  LenaRrFfMacSchedulerTestCase (uint16_t nUser, uint16_t dist, double thrRefDl, double thrRefUl, bool errorModelEnabled);
   virtual ~LenaRrFfMacSchedulerTestCase ();
 
 private:
   virtual void DoRun (void);
   static std::string BuildNameString (uint16_t nUser, uint16_t dist);
   uint16_t m_nUser;
-  uint16_t m_nLc;
   uint16_t m_dist;
   double m_thrRefDl;
   double m_thrRefUl;
diff -Naur ns-3.18/src/lte/test/lte-test-tdbet-ff-mac-scheduler.cc ns-3.18.1/src/lte/test/lte-test-tdbet-ff-mac-scheduler.cc
--- ns-3.18/src/lte/test/lte-test-tdbet-ff-mac-scheduler.cc	2013-08-29 22:36:58.000000000 -0700
+++ ns-3.18.1/src/lte/test/lte-test-tdbet-ff-mac-scheduler.cc	2013-11-15 16:40:49.547761006 -0800
@@ -77,10 +77,10 @@
   // 6 users -> 4 PRB at Itbs 26 -> 373 -> 373000 bytes/sec
   // after the patch enforcing min 3 PRBs per UE:
   // 12 users -> 3 PRB at Itbs 26 -> 277 bytes * 8/12 UE/TTI -> 184670 bytes/sec
-  AddTestCase (new LenaTdBetFfMacSchedulerTestCase1 (1,0,0,2196000,2292000, errorModel), TestCase::EXTENSIVE);
-  AddTestCase (new LenaTdBetFfMacSchedulerTestCase1 (3,0,0,732000,749000, errorModel), TestCase::EXTENSIVE);
-  AddTestCase (new LenaTdBetFfMacSchedulerTestCase1 (6,0,0,366000,373000, errorModel), TestCase::EXTENSIVE);
-  AddTestCase (new LenaTdBetFfMacSchedulerTestCase1 (12,0,0,183000,184670, errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaTdBetFfMacSchedulerTestCase1 (1,0,2196000,2292000, errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaTdBetFfMacSchedulerTestCase1 (3,0,732000,749000, errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaTdBetFfMacSchedulerTestCase1 (6,0,366000,373000, errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaTdBetFfMacSchedulerTestCase1 (12,0,183000,184670, errorModel), TestCase::EXTENSIVE);
 
   // DOWNLINK - DISTANCE 4800 -> MCS 22 -> Itbs 20 (from table 7.1.7.2.1-1 of 36.213)
   // 1 user -> 24 PRB at Itbs 20 -> 1383 -> 1383000 bytes/sec
@@ -93,10 +93,10 @@
   // 6 users -> 4 PRB at Itbs 13 -> 125 -> 125000 bytes/sec
   // after the patch enforcing min 3 PRBs per UE:
   // 12 users -> 3 PRB at Itbs 13 -> 93  bytes * 8/12 UE/TTI  -> 62000 bytes/sec
-  AddTestCase (new LenaTdBetFfMacSchedulerTestCase1 (1,0,4800,1383000,807000, errorModel), TestCase::EXTENSIVE);
-  AddTestCase (new LenaTdBetFfMacSchedulerTestCase1 (3,0,4800,461000,253000, errorModel), TestCase::EXTENSIVE);
-  AddTestCase (new LenaTdBetFfMacSchedulerTestCase1 (6,0,4800,230500,125000, errorModel), TestCase::EXTENSIVE);
-  AddTestCase (new LenaTdBetFfMacSchedulerTestCase1 (12,0,4800,115250,62000, errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaTdBetFfMacSchedulerTestCase1 (1,4800,1383000,807000, errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaTdBetFfMacSchedulerTestCase1 (3,4800,461000,253000, errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaTdBetFfMacSchedulerTestCase1 (6,4800,230500,125000, errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaTdBetFfMacSchedulerTestCase1 (12,4800,115250,62000, errorModel), TestCase::EXTENSIVE);
 
   // DOWNLINK - DISTANCE 6000 -> MCS 20 -> Itbs 18 (from table 7.1.7.2.1-1 of 36.213)
   // 1 user -> 24 PRB at Itbs 18 -> 1191 -> 1191000 byte/sec
@@ -108,10 +108,10 @@
   // 3 users -> 8 PRB at Itbs 11 -> 201 -> 201000 bytes/sec
   // 6 users -> 4 PRB at Itbs 11 -> 97 -> 97000 bytes/sec
   // 12 users -> 3 PRB at Itbs 11 -> 73 bytes * 8/12 UE/TTI -> 48667 bytes/sec
-  AddTestCase (new LenaTdBetFfMacSchedulerTestCase1 (1,0,6000,1191000,621000,errorModel), TestCase::EXTENSIVE);
-  AddTestCase (new LenaTdBetFfMacSchedulerTestCase1 (3,0,6000,397000,201000,errorModel), TestCase::EXTENSIVE);
-  AddTestCase (new LenaTdBetFfMacSchedulerTestCase1 (6,0,6000,198500,97000,errorModel), TestCase::EXTENSIVE);
-  AddTestCase (new LenaTdBetFfMacSchedulerTestCase1 (12,0,6000,99250,48667,errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaTdBetFfMacSchedulerTestCase1 (1,6000,1191000,621000,errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaTdBetFfMacSchedulerTestCase1 (3,6000,397000,201000,errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaTdBetFfMacSchedulerTestCase1 (6,6000,198500,97000,errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaTdBetFfMacSchedulerTestCase1 (12,6000,99250,48667,errorModel), TestCase::EXTENSIVE);
   
   // DOWNLINK - DISTANCE 10000 -> MCS 14 -> Itbs 13 (from table 7.1.7.2.1-1 of 36.213)
   // 1 user -> 24 PRB at Itbs 13 -> 775 -> 775000 byte/sec
@@ -124,10 +124,10 @@
   // 6 users -> 4 PRB at Itbs 8 -> 67 -> 67000 bytes/sec
   // after the patch enforcing min 3 PRBs per UE:
   // 12 users -> 3 PRB at Itbs 8 -> 49 bytes * 8/12 UE/TTI -> 32667 bytes/sec
-  AddTestCase (new LenaTdBetFfMacSchedulerTestCase1 (1,0,10000,775000,421000,errorModel), TestCase::EXTENSIVE);
-  AddTestCase (new LenaTdBetFfMacSchedulerTestCase1 (3,0,10000,258333,137000,errorModel), TestCase::EXTENSIVE);
-  AddTestCase (new LenaTdBetFfMacSchedulerTestCase1 (6,0,10000,129166,67000,errorModel), TestCase::EXTENSIVE);
-  AddTestCase (new LenaTdBetFfMacSchedulerTestCase1 (12,0,10000,64583,32667,errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaTdBetFfMacSchedulerTestCase1 (1,10000,775000,421000,errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaTdBetFfMacSchedulerTestCase1 (3,10000,258333,137000,errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaTdBetFfMacSchedulerTestCase1 (6,10000,129166,67000,errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaTdBetFfMacSchedulerTestCase1 (12,10000,64583,32667,errorModel), TestCase::EXTENSIVE);
 
   // DOWNLINK - DISTANCE 20000 -> MCS 8 -> Itbs 8 (from table 7.1.7.2.1-1 of 36.213)
   // 1 user -> 24 PRB at Itbs 8 -> 421 -> 421000 bytes/sec
@@ -140,10 +140,10 @@
   // 6 users -> 4 PRB at Itbs 2 -> 22 -> 22000 bytes/sec
   // after the patch enforcing min 3 PRBs per UE:
   // 12 users -> 3 PRB at Itbs 2 -> 18 bytes * 8/12 UE/TTI -> 12000 bytes/sec
-  AddTestCase (new LenaTdBetFfMacSchedulerTestCase1 (1,0,20000,421000,137000,errorModel), TestCase::EXTENSIVE);
-  AddTestCase (new LenaTdBetFfMacSchedulerTestCase1 (3,0,20000,140333,41000,errorModel), TestCase::EXTENSIVE);
-  AddTestCase (new LenaTdBetFfMacSchedulerTestCase1 (6,0,20000,70166,22000,errorModel), TestCase::EXTENSIVE);
-  AddTestCase (new LenaTdBetFfMacSchedulerTestCase1 (12,0,20000,35083,12000,errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaTdBetFfMacSchedulerTestCase1 (1,20000,421000,137000,errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaTdBetFfMacSchedulerTestCase1 (3,20000,140333,41000,errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaTdBetFfMacSchedulerTestCase1 (6,20000,70166,22000,errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaTdBetFfMacSchedulerTestCase1 (12,20000,35083,12000,errorModel), TestCase::EXTENSIVE);
 
   // Test Case 2: fairness check
 
@@ -182,10 +182,9 @@
   return oss.str ();
 }
 
-LenaTdBetFfMacSchedulerTestCase1::LenaTdBetFfMacSchedulerTestCase1 (uint16_t nUser, uint16_t nLc, uint16_t dist, double thrRefDl, double thrRefUl, bool errorModelEnabled)
+LenaTdBetFfMacSchedulerTestCase1::LenaTdBetFfMacSchedulerTestCase1 (uint16_t nUser, uint16_t dist, double thrRefDl, double thrRefUl, bool errorModelEnabled)
   : TestCase (BuildNameString (nUser, dist)),
     m_nUser (nUser),
-    m_nLc (nLc),
     m_dist (dist),
     m_thrRefDl (thrRefDl),
     m_thrRefUl (thrRefUl),
diff -Naur ns-3.18/src/lte/test/lte-test-tdbet-ff-mac-scheduler.h ns-3.18.1/src/lte/test/lte-test-tdbet-ff-mac-scheduler.h
--- ns-3.18/src/lte/test/lte-test-tdbet-ff-mac-scheduler.h	2013-08-29 22:36:58.000000000 -0700
+++ ns-3.18.1/src/lte/test/lte-test-tdbet-ff-mac-scheduler.h	2013-11-15 16:40:49.563761006 -0800
@@ -42,14 +42,13 @@
 class LenaTdBetFfMacSchedulerTestCase1 : public TestCase
 {
 public:
-  LenaTdBetFfMacSchedulerTestCase1 (uint16_t nUser, uint16_t nLc, uint16_t dist, double thrRefDl, double thrRefUl,bool errorModelEnabled);
+  LenaTdBetFfMacSchedulerTestCase1 (uint16_t nUser, uint16_t dist, double thrRefDl, double thrRefUl,bool errorModelEnabled);
   virtual ~LenaTdBetFfMacSchedulerTestCase1 ();
 
 private:
   static std::string BuildNameString (uint16_t nUser, uint16_t dist);
   virtual void DoRun (void);
   uint16_t m_nUser;
-  uint16_t m_nLc;
   uint16_t m_dist;
   double m_thrRefDl;
   double m_thrRefUl;
diff -Naur ns-3.18/src/lte/test/lte-test-tdmt-ff-mac-scheduler.cc ns-3.18.1/src/lte/test/lte-test-tdmt-ff-mac-scheduler.cc
--- ns-3.18/src/lte/test/lte-test-tdmt-ff-mac-scheduler.cc	2013-08-29 22:36:58.000000000 -0700
+++ ns-3.18.1/src/lte/test/lte-test-tdmt-ff-mac-scheduler.cc	2013-11-15 16:40:49.559761007 -0800
@@ -79,10 +79,10 @@
   // 6 users -> 4 PRB at Itbs 26 -> 373 -> 373000 bytes/sec
   // after the patch enforcing min 3 PRBs per UE:
   // 12 users -> 3 PRB at Itbs 26 -> 277 bytes * 8/12 UE/TTI -> 184670 bytes/sec
-  AddTestCase (new LenaTdMtFfMacSchedulerTestCase (1,0,0,2196000,2292000, errorModel), TestCase::EXTENSIVE);
-  AddTestCase (new LenaTdMtFfMacSchedulerTestCase (3,0,0,2196000,749000,errorModel), TestCase::QUICK);
-  AddTestCase (new LenaTdMtFfMacSchedulerTestCase (6,0,0,2196000,373000, errorModel), TestCase::EXTENSIVE);
-  AddTestCase (new LenaTdMtFfMacSchedulerTestCase (12,0,0,2196000,184670, errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaTdMtFfMacSchedulerTestCase (1,0,2196000,2292000, errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaTdMtFfMacSchedulerTestCase (3,0,2196000,749000,errorModel), TestCase::QUICK);
+  AddTestCase (new LenaTdMtFfMacSchedulerTestCase (6,0,2196000,373000, errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaTdMtFfMacSchedulerTestCase (12,0,2196000,184670, errorModel), TestCase::EXTENSIVE);
   
   // DOWNLINK - DISTANCE 4800 -> MCS 22 -> Itbs 20 (from table 7.1.7.2.1-1 of 36.213)
   // 1 user -> 24 PRB at Itbs 20 -> 1383 -> 1383000 bytes/sec for one UE; 0 bytes/sec for other UEs
@@ -95,10 +95,10 @@
   // 6 users -> 4 PRB at Itbs 13 -> 125 -> 125000 bytes/sec
   // after the patch enforcing min 3 PRBs per UE:
   // 12 users -> 3 PRB at Itbs 13 -> 93  bytes * 8/12 UE/TTI  -> 62000 bytes/sec
-  AddTestCase (new LenaTdMtFfMacSchedulerTestCase (1,0,4800,1383000,807000,errorModel), TestCase::EXTENSIVE);
-  AddTestCase (new LenaTdMtFfMacSchedulerTestCase (3,0,4800,1383000,253000,errorModel), TestCase::EXTENSIVE);
-  AddTestCase (new LenaTdMtFfMacSchedulerTestCase (6,0,4800,1383000,125000,errorModel), TestCase::EXTENSIVE);
-  AddTestCase (new LenaTdMtFfMacSchedulerTestCase (12,0,4800,1383000,62000,errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaTdMtFfMacSchedulerTestCase (1,4800,1383000,807000,errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaTdMtFfMacSchedulerTestCase (3,4800,1383000,253000,errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaTdMtFfMacSchedulerTestCase (6,4800,1383000,125000,errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaTdMtFfMacSchedulerTestCase (12,4800,1383000,62000,errorModel), TestCase::EXTENSIVE);
 
   // DOWNLINK - DISTANCE 6000 -> MCS 20 -> Itbs 18 (from table 7.1.7.2.1-1 of 36.213)
   // 1 user -> 24 PRB at Itbs 18 -> 1191 -> 1191000 byte/sec for one UE; 0 bytes/sec for other UEs
@@ -111,10 +111,10 @@
   // 6 users -> 4 PRB at Itbs 11 -> 97 -> 97000 bytes/sec
   // after the patch enforcing min 3 PRBs per UE:
   // 12 users -> 3 PRB at Itbs 11 -> 73 bytes * 8/12 UE/TTI -> 48667 bytes/sec
-  AddTestCase (new LenaTdMtFfMacSchedulerTestCase (1,0,6000,1191000,621000, errorModel), TestCase::EXTENSIVE);
-  AddTestCase (new LenaTdMtFfMacSchedulerTestCase (3,0,6000,1191000,201000, errorModel), TestCase::EXTENSIVE);
-  AddTestCase (new LenaTdMtFfMacSchedulerTestCase (6,0,6000,1191000,97000, errorModel), TestCase::EXTENSIVE);
-  AddTestCase (new LenaTdMtFfMacSchedulerTestCase (12,0,6000,1191000,48667, errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaTdMtFfMacSchedulerTestCase (1,6000,1191000,621000, errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaTdMtFfMacSchedulerTestCase (3,6000,1191000,201000, errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaTdMtFfMacSchedulerTestCase (6,6000,1191000,97000, errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaTdMtFfMacSchedulerTestCase (12,6000,1191000,48667, errorModel), TestCase::EXTENSIVE);
 
   // DOWNLINK - DISTANCE 10000 -> MCS 14 -> Itbs 13 (from table 7.1.7.2.1-1 of 36.213)
   // 1 user -> 24 PRB at Itbs 13 -> 775 -> 775000 byte/sec for one UE; 0 bytes/sec for other UEs
@@ -127,10 +127,10 @@
   // 6 users -> 4 PRB at Itbs 8 -> 67 -> 67000 bytes/sec
   // after the patch enforcing min 3 PRBs per UE:
   // 12 users -> 3 PRB at Itbs 8 -> 49 bytes * 8/12 UE/TTI -> 32667 bytes/sec
-  AddTestCase (new LenaTdMtFfMacSchedulerTestCase (1,0,10000,775000,437000,errorModel), TestCase::EXTENSIVE);
-  AddTestCase (new LenaTdMtFfMacSchedulerTestCase (3,0,10000,775000,137000,errorModel), TestCase::EXTENSIVE);
-  AddTestCase (new LenaTdMtFfMacSchedulerTestCase (6,0,10000,775000,67000,errorModel), TestCase::EXTENSIVE);
-  AddTestCase (new LenaTdMtFfMacSchedulerTestCase (12,0,10000,775000,32667,errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaTdMtFfMacSchedulerTestCase (1,10000,775000,437000,errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaTdMtFfMacSchedulerTestCase (3,10000,775000,137000,errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaTdMtFfMacSchedulerTestCase (6,10000,775000,67000,errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaTdMtFfMacSchedulerTestCase (12,10000,775000,32667,errorModel), TestCase::EXTENSIVE);
  
   // DONWLINK - DISTANCE 20000 -> MCS 8 -> Itbs 8 (from table 7.1.7.2.1-1 of 36.213)
   // 1 user -> 24 PRB at Itbs 8 -> 421 -> 421000 bytes/sec for one UE; 0 bytes/sec for other UEs
@@ -143,10 +143,10 @@
   // 6 users -> 4 PRB at Itbs 2 -> 32 -> 22000 bytes/sec
   // after the patch enforcing min 3 PRBs per UE:
   // 12 users -> 3 PRB at Itbs 2 -> 26 bytes * 8/12 UE/TTI -> 12000 bytes/sec
-  AddTestCase (new LenaTdMtFfMacSchedulerTestCase (1,0,20000,421000,137000,errorModel), TestCase::EXTENSIVE);
-  AddTestCase (new LenaTdMtFfMacSchedulerTestCase (3,0,20000,421000,41000,errorModel), TestCase::EXTENSIVE);
-  AddTestCase (new LenaTdMtFfMacSchedulerTestCase (6,0,20000,421000,22000,errorModel), TestCase::EXTENSIVE);
-  AddTestCase (new LenaTdMtFfMacSchedulerTestCase (12,0,20000,421000,12000,errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaTdMtFfMacSchedulerTestCase (1,20000,421000,137000,errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaTdMtFfMacSchedulerTestCase (3,20000,421000,41000,errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaTdMtFfMacSchedulerTestCase (6,20000,421000,22000,errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaTdMtFfMacSchedulerTestCase (12,20000,421000,12000,errorModel), TestCase::EXTENSIVE);
 
 }
 
@@ -163,10 +163,9 @@
   return oss.str ();
 }
 
-LenaTdMtFfMacSchedulerTestCase::LenaTdMtFfMacSchedulerTestCase (uint16_t nUser, uint16_t nLc, uint16_t dist, double thrRefDl, double thrRefUl, bool errorModelEnabled)
+LenaTdMtFfMacSchedulerTestCase::LenaTdMtFfMacSchedulerTestCase (uint16_t nUser, uint16_t dist, double thrRefDl, double thrRefUl, bool errorModelEnabled)
   : TestCase (BuildNameString (nUser, dist)),
     m_nUser (nUser),
-    m_nLc (nLc),
     m_dist (dist),
     m_thrRefDl (thrRefDl),
     m_thrRefUl (thrRefUl),
@@ -183,7 +182,7 @@
 LenaTdMtFfMacSchedulerTestCase::DoRun (void)
 {
 
-  NS_LOG_FUNCTION (this << m_nUser << m_nLc << m_dist);
+  NS_LOG_FUNCTION (this << m_nUser << m_dist);
 
   if (!m_errorModelEnabled)
     {
diff -Naur ns-3.18/src/lte/test/lte-test-tdmt-ff-mac-scheduler.h ns-3.18.1/src/lte/test/lte-test-tdmt-ff-mac-scheduler.h
--- ns-3.18/src/lte/test/lte-test-tdmt-ff-mac-scheduler.h	2013-08-29 22:36:58.000000000 -0700
+++ ns-3.18.1/src/lte/test/lte-test-tdmt-ff-mac-scheduler.h	2013-11-15 16:40:49.543761004 -0800
@@ -42,14 +42,13 @@
 class LenaTdMtFfMacSchedulerTestCase : public TestCase
 {
 public:
-  LenaTdMtFfMacSchedulerTestCase (uint16_t nUser, uint16_t nLc, uint16_t dist, double thrRefDl, double thrRefUl,bool errorModelEnabled);
+  LenaTdMtFfMacSchedulerTestCase (uint16_t nUser, uint16_t dist, double thrRefDl, double thrRefUl,bool errorModelEnabled);
   virtual ~LenaTdMtFfMacSchedulerTestCase ();
 
 private:
   static std::string BuildNameString (uint16_t nUser, uint16_t dist);
   virtual void DoRun (void);
   uint16_t m_nUser;
-  uint16_t m_nLc;
   uint16_t m_dist;
   double m_thrRefDl;
   double m_thrRefUl;
diff -Naur ns-3.18/src/lte/test/lte-test-tdtbfq-ff-mac-scheduler.cc ns-3.18.1/src/lte/test/lte-test-tdtbfq-ff-mac-scheduler.cc
--- ns-3.18/src/lte/test/lte-test-tdtbfq-ff-mac-scheduler.cc	2013-08-29 22:36:58.000000000 -0700
+++ ns-3.18.1/src/lte/test/lte-test-tdtbfq-ff-mac-scheduler.cc	2013-11-15 16:40:49.555761008 -0800
@@ -91,10 +91,10 @@
   // 3 users -> 8 PRB at Itbs 26 -> 749 -> 749000 > 232000 -> throughput = 232000 bytes/sec 
   // 6 users -> 4 PRB at Itbs 26 -> 373 -> 373000 > 232000 -> throughput = 232000 bytes/sec
   // 12 users -> 2 PRB at Itbs 26 -> 185 -> 185000 < 232000 -> throughput = 185000 bytes/sec
-  AddTestCase (new LenaTdTbfqFfMacSchedulerTestCase1 (1,0,0,232000,232000,200,1,errorModel), TestCase::EXTENSIVE);
-  AddTestCase (new LenaTdTbfqFfMacSchedulerTestCase1 (3,0,0,232000,232000,200,1,errorModel), TestCase::EXTENSIVE);
-  AddTestCase (new LenaTdTbfqFfMacSchedulerTestCase1 (6,0,0,232000,232000,200,1,errorModel), TestCase::EXTENSIVE);
-  //AddTestCase (new LenaTdTbfqFfMacSchedulerTestCase1 (12,0,0,183000,185000,200,1,errorModel));// simulation time = 1.5, otherwise, ul test will fail
+  AddTestCase (new LenaTdTbfqFfMacSchedulerTestCase1 (1,0,232000,232000,200,1,errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaTdTbfqFfMacSchedulerTestCase1 (3,0,232000,232000,200,1,errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaTdTbfqFfMacSchedulerTestCase1 (6,0,232000,232000,200,1,errorModel), TestCase::EXTENSIVE);
+  //AddTestCase (new LenaTdTbfqFfMacSchedulerTestCase1 (12,0,183000,185000,200,1,errorModel));// simulation time = 1.5, otherwise, ul test will fail
 
   // DOWNLINK - DISTANCE 4800 -> MCS 22 -> Itbs 20 (from table 7.1.7.2.1-1 of 36.213)
   // Traffic info
@@ -111,10 +111,10 @@
   // 6 users -> 4 PRB at Itbs 13 -> 125 -> 125000 < 232000 -> throughput = 125000 bytes/sec
   // after the patch enforcing min 3 PRBs per UE:
   // 12 users -> 3 PRB at Itbs 13 -> 93  bytes * 8/12 UE/TTI  -> 62000 < 232000 -> throughput = 62000  bytes/sec
-  AddTestCase (new LenaTdTbfqFfMacSchedulerTestCase1 (1,0,4800,232000,232000,200,1,errorModel), TestCase::EXTENSIVE);
-  AddTestCase (new LenaTdTbfqFfMacSchedulerTestCase1 (3,0,4800,232000,232000,200,1,errorModel), TestCase::EXTENSIVE);
-  AddTestCase (new LenaTdTbfqFfMacSchedulerTestCase1 (6,0,4800,230500,125000,200,1,errorModel), TestCase::EXTENSIVE);
-  //AddTestCase (new LenaTdTbfqFfMacSchedulerTestCase1 (12,0,4800,115250,62000,200,1,errorModel)); // simulation time = 1.5, otherwise, ul test will fail
+  AddTestCase (new LenaTdTbfqFfMacSchedulerTestCase1 (1,4800,232000,232000,200,1,errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaTdTbfqFfMacSchedulerTestCase1 (3,4800,232000,232000,200,1,errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaTdTbfqFfMacSchedulerTestCase1 (6,4800,230500,125000,200,1,errorModel), TestCase::EXTENSIVE);
+  //AddTestCase (new LenaTdTbfqFfMacSchedulerTestCase1 (12,4800,115250,62000,200,1,errorModel)); // simulation time = 1.5, otherwise, ul test will fail
 
   // DOWNLINK - DISTANCE 6000 -> MCS 20 -> Itbs 18 (from table 7.1.7.2.1-1 of 36.213)
   // Traffic info
@@ -132,10 +132,10 @@
   // 6 users -> 4 PRB at Itbs 11 -> 97 -> 97000 < 232000 -> throughput = 97000 bytes/sec
   // after the patch enforcing min 3 PRBs per UE:
   // 12 users -> 3 PRB at Itbs 11 -> 73 bytes * 8/12 UE/TTI -> 48667 < 232000 -> throughput = 48667 bytes/sec
-  AddTestCase (new LenaTdTbfqFfMacSchedulerTestCase1 (1,0,6000,232000,232000,200,1,errorModel), TestCase::EXTENSIVE);
-  AddTestCase (new LenaTdTbfqFfMacSchedulerTestCase1 (3,0,6000,232000,201000,200,1,errorModel), TestCase::EXTENSIVE);
-  AddTestCase (new LenaTdTbfqFfMacSchedulerTestCase1 (6,0,6000,198500,97000,200,1,errorModel), TestCase::EXTENSIVE);
-  //AddTestCase (new LenaTdTbfqFfMacSchedulerTestCase1 (12,0,6000,99250,48667,200,1, errorModel)); // simulation time = 1.5, otherwise, ul test will fail
+  AddTestCase (new LenaTdTbfqFfMacSchedulerTestCase1 (1,6000,232000,232000,200,1,errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaTdTbfqFfMacSchedulerTestCase1 (3,6000,232000,201000,200,1,errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaTdTbfqFfMacSchedulerTestCase1 (6,6000,198500,97000,200,1,errorModel), TestCase::EXTENSIVE);
+  //AddTestCase (new LenaTdTbfqFfMacSchedulerTestCase1 (12,6000,99250,48667,200,1, errorModel)); // simulation time = 1.5, otherwise, ul test will fail
 
   // DOWNLINK - DISTANCE 10000 -> MCS 14 -> Itbs 13 (from table 7.1.7.2.1-1 of 36.213)
   // Traffic info
@@ -152,10 +152,10 @@
   // 6 users -> 4 PRB at Itbs 8 -> 67 -> 67000 < 232000 -> throughput = 67000 bytes/sec
   // after the patch enforcing min 3 PRBs per UE:
   // 12 users -> 3 PRB at Itbs 8 -> 49 bytes * 8/12 UE/TTI -> 32667 < 232000 -> throughput = 32667  bytes/sec
-  AddTestCase (new LenaTdTbfqFfMacSchedulerTestCase1 (1,0,10000,232000,232000,200,1,errorModel), TestCase::EXTENSIVE);
-  AddTestCase (new LenaTdTbfqFfMacSchedulerTestCase1 (3,0,10000,232000,137000,200,1,errorModel), TestCase::EXTENSIVE);
-  AddTestCase (new LenaTdTbfqFfMacSchedulerTestCase1 (6,0,10000,129166,67000,200,1,errorModel), TestCase::EXTENSIVE);
-  //AddTestCase (new LenaTdTbfqFfMacSchedulerTestCase1 (12,0,10000,64583,32667,200,1,errorModel));// simulation time = 1.5, otherwise, ul test will fail
+  AddTestCase (new LenaTdTbfqFfMacSchedulerTestCase1 (1,10000,232000,232000,200,1,errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaTdTbfqFfMacSchedulerTestCase1 (3,10000,232000,137000,200,1,errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaTdTbfqFfMacSchedulerTestCase1 (6,10000,129166,67000,200,1,errorModel), TestCase::EXTENSIVE);
+  //AddTestCase (new LenaTdTbfqFfMacSchedulerTestCase1 (12,10000,64583,32667,200,1,errorModel));// simulation time = 1.5, otherwise, ul test will fail
 
   // Test Case 2: homogeneous flow test in TDTBFQ (different distance)
   // Traffic1 info
@@ -237,10 +237,9 @@
 }
 
 
-LenaTdTbfqFfMacSchedulerTestCase1::LenaTdTbfqFfMacSchedulerTestCase1 (uint16_t nUser, uint16_t nLc, uint16_t dist, double thrRefDl, double thrRefUl, uint16_t packetSize, uint16_t interval,bool errorModelEnabled)
+LenaTdTbfqFfMacSchedulerTestCase1::LenaTdTbfqFfMacSchedulerTestCase1 (uint16_t nUser, uint16_t dist, double thrRefDl, double thrRefUl, uint16_t packetSize, uint16_t interval,bool errorModelEnabled)
   : TestCase (BuildNameString (nUser, dist)),
     m_nUser (nUser),
-    m_nLc (nLc),
     m_dist (dist),
     m_packetSize (packetSize),
     m_interval (interval),
diff -Naur ns-3.18/src/lte/test/lte-test-tdtbfq-ff-mac-scheduler.h ns-3.18.1/src/lte/test/lte-test-tdtbfq-ff-mac-scheduler.h
--- ns-3.18/src/lte/test/lte-test-tdtbfq-ff-mac-scheduler.h	2013-08-29 22:36:58.000000000 -0700
+++ ns-3.18.1/src/lte/test/lte-test-tdtbfq-ff-mac-scheduler.h	2013-11-15 16:40:49.559761007 -0800
@@ -42,14 +42,13 @@
 class LenaTdTbfqFfMacSchedulerTestCase1 : public TestCase
 {
 public:
-  LenaTdTbfqFfMacSchedulerTestCase1 (uint16_t nUser, uint16_t nLc, uint16_t dist, double thrRefDl, double thrRefUl, uint16_t packetSize, uint16_t interval, bool  errorModelEnabled);
+  LenaTdTbfqFfMacSchedulerTestCase1 (uint16_t nUser, uint16_t dist, double thrRefDl, double thrRefUl, uint16_t packetSize, uint16_t interval, bool  errorModelEnabled);
   virtual ~LenaTdTbfqFfMacSchedulerTestCase1 ();
 
 private:
   static std::string BuildNameString (uint16_t nUser, uint16_t dist);
   virtual void DoRun (void);
   uint16_t m_nUser;
-  uint16_t m_nLc;
   uint16_t m_dist;
   uint16_t m_packetSize;  // byte
   uint16_t m_interval;    // ms
diff -Naur ns-3.18/src/lte/test/lte-test-tta-ff-mac-scheduler.cc ns-3.18.1/src/lte/test/lte-test-tta-ff-mac-scheduler.cc
--- ns-3.18/src/lte/test/lte-test-tta-ff-mac-scheduler.cc	2013-08-29 22:36:58.000000000 -0700
+++ ns-3.18.1/src/lte/test/lte-test-tta-ff-mac-scheduler.cc	2013-11-15 16:40:49.547761006 -0800
@@ -80,11 +80,11 @@
   // 6 users -> 4 PRB at Itbs 26 -> 373 -> 373000 bytes/sec
   // after the patch enforcing min 3 PRBs per UE:
   // 12 users -> 3 PRB at Itbs 26 -> 277 bytes * 8/12 UE/TTI -> 184670 bytes/sec
-  AddTestCase (new LenaTtaFfMacSchedulerTestCase (1,0,0,2196000,2292000, errorModel), TestCase::EXTENSIVE);
-  AddTestCase (new LenaTtaFfMacSchedulerTestCase (3,0,0,2196000,749000,errorModel), TestCase::QUICK);
-  AddTestCase (new LenaTtaFfMacSchedulerTestCase (6,0,0,2196000,373000, errorModel), TestCase::EXTENSIVE);
-  AddTestCase (new LenaTtaFfMacSchedulerTestCase (12,0,0,2196000,184670, errorModel), TestCase::EXTENSIVE);
-  AddTestCase (new LenaTtaFfMacSchedulerTestCase (15,0,0,2196000,147730, errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaTtaFfMacSchedulerTestCase (1,0,2196000,2292000, errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaTtaFfMacSchedulerTestCase (3,0,2196000,749000,errorModel), TestCase::QUICK);
+  AddTestCase (new LenaTtaFfMacSchedulerTestCase (6,0,2196000,373000, errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaTtaFfMacSchedulerTestCase (12,0,2196000,184670, errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaTtaFfMacSchedulerTestCase (15,0,2196000,147730, errorModel), TestCase::EXTENSIVE);
 
   // DOWNLINK - DISTANCE 4800 -> MCS 22 -> Itbs 20 (from table 7.1.7.2.1-1 of 36.213)
   // 1 user -> 24 PRB at Itbs 15 -> 1383 -> 1383000 bytes/sec for one UE; 0 bytes/sec for other UEs
@@ -97,10 +97,10 @@
   // 6 users -> 4 PRB at Itbs 13 -> 125 -> 125000 bytes/sec
   // after the patch enforcing min 3 PRBs per UE:
   // 12 users -> 3 PRB at Itbs 13 -> 93  bytes * 8/12 UE/TTI  -> 62000 bytes/sec
-  AddTestCase (new LenaTtaFfMacSchedulerTestCase (1,0,4800,1383000,807000,errorModel), TestCase::EXTENSIVE);
-  AddTestCase (new LenaTtaFfMacSchedulerTestCase (3,0,4800,1383000,253000,errorModel), TestCase::EXTENSIVE);
-  AddTestCase (new LenaTtaFfMacSchedulerTestCase (6,0,4800,1383000,125000,errorModel), TestCase::EXTENSIVE);
-  AddTestCase (new LenaTtaFfMacSchedulerTestCase (12,0,4800,1383000,62000,errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaTtaFfMacSchedulerTestCase (1,4800,1383000,807000,errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaTtaFfMacSchedulerTestCase (3,4800,1383000,253000,errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaTtaFfMacSchedulerTestCase (6,4800,1383000,125000,errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaTtaFfMacSchedulerTestCase (12,4800,1383000,62000,errorModel), TestCase::EXTENSIVE);
 
 
   // DOWNLINK - DISTANCE 6000 -> MCS 20 -> Itbs 18 (from table 7.1.7.2.1-1 of 36.213)
@@ -114,10 +114,10 @@
   // 6 users -> 4 PRB at Itbs 11 -> 97 -> 97000 bytes/sec
   // after the patch enforcing min 3 PRBs per UE:
   // 12 users -> 3 PRB at Itbs 11 -> 73 bytes * 8/12 UE/TTI -> 48667 bytes/sec
-  AddTestCase (new LenaTtaFfMacSchedulerTestCase (1,0,6000,1191000,621000, errorModel), TestCase::EXTENSIVE);
-  AddTestCase (new LenaTtaFfMacSchedulerTestCase (3,0,6000,1191000,201000, errorModel), TestCase::EXTENSIVE);
-  AddTestCase (new LenaTtaFfMacSchedulerTestCase (6,0,6000,1191000,97000, errorModel), TestCase::EXTENSIVE);
-  AddTestCase (new LenaTtaFfMacSchedulerTestCase (12,0,6000,1191000,48667, errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaTtaFfMacSchedulerTestCase (1,6000,1191000,621000, errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaTtaFfMacSchedulerTestCase (3,6000,1191000,201000, errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaTtaFfMacSchedulerTestCase (6,6000,1191000,97000, errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaTtaFfMacSchedulerTestCase (12,6000,1191000,48667, errorModel), TestCase::EXTENSIVE);
 
   // DOWNLINK - DISTANCE 10000 -> MCS 14 -> Itbs 13 (from table 7.1.7.2.1-1 of 36.213)
   // 1 user -> 24 PRB at Itbs 8 -> 775 -> 775000 bytes/sec for one UE; 0 bytes/sec for other UEs
@@ -130,10 +130,10 @@
   // 6 users -> 4 PRB at Itbs 8 -> 67 -> 67000 bytes/sec
   // after the patch enforcing min 3 PRBs per UE:
   // 12 users -> 3 PRB at Itbs 8 -> 49 bytes * 8/12 UE/TTI -> 32667 bytes/sec
-  AddTestCase (new LenaTtaFfMacSchedulerTestCase (1,0,10000,775000,437000,errorModel), TestCase::EXTENSIVE);
-  AddTestCase (new LenaTtaFfMacSchedulerTestCase (3,0,10000,775000,137000,errorModel), TestCase::EXTENSIVE);
-  AddTestCase (new LenaTtaFfMacSchedulerTestCase (6,0,10000,775000,67000,errorModel), TestCase::EXTENSIVE);
-  AddTestCase (new LenaTtaFfMacSchedulerTestCase (12,0,10000,775000,32667,errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaTtaFfMacSchedulerTestCase (1,10000,775000,437000,errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaTtaFfMacSchedulerTestCase (3,10000,775000,137000,errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaTtaFfMacSchedulerTestCase (6,10000,775000,67000,errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaTtaFfMacSchedulerTestCase (12,10000,775000,32667,errorModel), TestCase::EXTENSIVE);
  
   // DONWLINK - DISTANCE 20000 -> MCS 8 -> Itbs 8 (from table 7.1.7.2.1-1 of 36.213)
   // 1 user -> 24 PRB at Itbs 8 -> 421 -> 421000 bytes/sec for one UE; 0 bytes/sec for other UEs
@@ -146,10 +146,10 @@
   // 6 users -> 4 PRB at Itbs 2 -> 32 -> 22000 bytes/sec
   // after the patch enforcing min 3 PRBs per UE:
   // 12 users -> 3 PRB at Itbs 2 -> 26 bytes * 8/12 UE/TTI -> 12000 bytes/sec
-  AddTestCase (new LenaTtaFfMacSchedulerTestCase (1,0,20000,421000,137000,errorModel), TestCase::EXTENSIVE);
-  AddTestCase (new LenaTtaFfMacSchedulerTestCase (3,0,20000,421000,41000,errorModel), TestCase::EXTENSIVE);
-  AddTestCase (new LenaTtaFfMacSchedulerTestCase (6,0,20000,421000,22000,errorModel), TestCase::EXTENSIVE);
-  AddTestCase (new LenaTtaFfMacSchedulerTestCase (12,0,20000,421000,12000,errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaTtaFfMacSchedulerTestCase (1,20000,421000,137000,errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaTtaFfMacSchedulerTestCase (3,20000,421000,41000,errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaTtaFfMacSchedulerTestCase (6,20000,421000,22000,errorModel), TestCase::EXTENSIVE);
+  AddTestCase (new LenaTtaFfMacSchedulerTestCase (12,20000,421000,12000,errorModel), TestCase::EXTENSIVE);
 
 }
 
@@ -166,10 +166,9 @@
   return oss.str ();
 }
 
-LenaTtaFfMacSchedulerTestCase::LenaTtaFfMacSchedulerTestCase (uint16_t nUser, uint16_t nLc, uint16_t dist, double thrRefDl, double thrRefUl, bool errorModelEnabled)
+LenaTtaFfMacSchedulerTestCase::LenaTtaFfMacSchedulerTestCase (uint16_t nUser, uint16_t dist, double thrRefDl, double thrRefUl, bool errorModelEnabled)
   : TestCase (BuildNameString (nUser, dist)),
     m_nUser (nUser),
-    m_nLc (nLc),
     m_dist (dist),
     m_thrRefDl (thrRefDl),
     m_thrRefUl (thrRefUl),
@@ -186,7 +185,7 @@
 LenaTtaFfMacSchedulerTestCase::DoRun (void)
 {
 
-  NS_LOG_FUNCTION (this << m_nUser << m_nLc << m_dist);
+  NS_LOG_FUNCTION (this << m_nUser << m_dist);
 
   if (!m_errorModelEnabled)
     {
diff -Naur ns-3.18/src/lte/test/lte-test-tta-ff-mac-scheduler.h ns-3.18.1/src/lte/test/lte-test-tta-ff-mac-scheduler.h
--- ns-3.18/src/lte/test/lte-test-tta-ff-mac-scheduler.h	2013-08-29 22:36:58.000000000 -0700
+++ ns-3.18.1/src/lte/test/lte-test-tta-ff-mac-scheduler.h	2013-11-15 16:40:49.547761006 -0800
@@ -42,14 +42,13 @@
 class LenaTtaFfMacSchedulerTestCase : public TestCase
 {
 public:
-  LenaTtaFfMacSchedulerTestCase (uint16_t nUser, uint16_t nLc, uint16_t dist, double thrRefDl, double thrRefUl,bool errorModelEnabled);
+  LenaTtaFfMacSchedulerTestCase (uint16_t nUser, uint16_t dist, double thrRefDl, double thrRefUl,bool errorModelEnabled);
   virtual ~LenaTtaFfMacSchedulerTestCase ();
 
 private:
   static std::string BuildNameString (uint16_t nUser, uint16_t dist);
   virtual void DoRun (void);
   uint16_t m_nUser;
-  uint16_t m_nLc;
   uint16_t m_dist;
   double m_thrRefDl;
   double m_thrRefUl;
diff -Naur ns-3.18/src/mesh/bindings/modulegen__gcc_ILP32.py ns-3.18.1/src/mesh/bindings/modulegen__gcc_ILP32.py
--- ns-3.18/src/mesh/bindings/modulegen__gcc_ILP32.py	2013-08-29 22:36:58.000000000 -0700
+++ ns-3.18.1/src/mesh/bindings/modulegen__gcc_ILP32.py	2013-11-15 16:40:48.483760980 -0800
@@ -27,7 +27,7 @@
     ## wifi-mode.h (module 'wifi'): ns3::WifiModulationClass [enumeration]
     module.add_enum('WifiModulationClass', ['WIFI_MOD_CLASS_UNKNOWN', 'WIFI_MOD_CLASS_IR', 'WIFI_MOD_CLASS_FHSS', 'WIFI_MOD_CLASS_DSSS', 'WIFI_MOD_CLASS_ERP_PBCC', 'WIFI_MOD_CLASS_DSSS_OFDM', 'WIFI_MOD_CLASS_ERP_OFDM', 'WIFI_MOD_CLASS_OFDM', 'WIFI_MOD_CLASS_HT'], import_from_module='ns.wifi')
     ## wifi-phy-standard.h (module 'wifi'): ns3::WifiPhyStandard [enumeration]
-    module.add_enum('WifiPhyStandard', ['WIFI_PHY_STANDARD_80211a', 'WIFI_PHY_STANDARD_80211b', 'WIFI_PHY_STANDARD_80211g', 'WIFI_PHY_STANDARD_80211_10MHZ', 'WIFI_PHY_STANDARD_80211_5MHZ', 'WIFI_PHY_STANDARD_holland', 'WIFI_PHY_STANDARD_80211p_CCH', 'WIFI_PHY_STANDARD_80211p_SCH', 'WIFI_PHY_STANDARD_80211n_2_4GHZ', 'WIFI_PHY_STANDARD_80211n_5GHZ'], import_from_module='ns.wifi')
+    module.add_enum('WifiPhyStandard', ['WIFI_PHY_STANDARD_80211a', 'WIFI_PHY_STANDARD_80211b', 'WIFI_PHY_STANDARD_80211g', 'WIFI_PHY_STANDARD_80211_10MHZ', 'WIFI_PHY_STANDARD_80211_5MHZ', 'WIFI_PHY_STANDARD_holland', 'WIFI_PHY_STANDARD_80211n_2_4GHZ', 'WIFI_PHY_STANDARD_80211n_5GHZ'], import_from_module='ns.wifi')
     ## wifi-mode.h (module 'wifi'): ns3::WifiCodeRate [enumeration]
     module.add_enum('WifiCodeRate', ['WIFI_CODE_RATE_UNDEFINED', 'WIFI_CODE_RATE_3_4', 'WIFI_CODE_RATE_2_3', 'WIFI_CODE_RATE_1_2', 'WIFI_CODE_RATE_5_6'], import_from_module='ns.wifi')
     ## qos-utils.h (module 'wifi'): ns3::AcIndex [enumeration]
@@ -502,12 +502,12 @@
     module.add_enum('dot11sSynchronizationProtocolIdentifier', ['SYNC_NEIGHBOUR_OFFSET', 'SYNC_NULL'])
     ## ie-dot11s-configuration.h (module 'mesh'): ns3::dot11s::dot11sCongestionControlMode [enumeration]
     module.add_enum('dot11sCongestionControlMode', ['CONGESTION_SIGNALING', 'CONGESTION_NULL'])
+    ## ie-dot11s-configuration.h (module 'mesh'): ns3::dot11s::dot11sAuthenticationProtocol [enumeration]
+    module.add_enum('dot11sAuthenticationProtocol', ['AUTH_NULL', 'AUTH_SAE'])
     ## ie-dot11s-configuration.h (module 'mesh'): ns3::dot11s::dot11sPathSelectionMetric [enumeration]
     module.add_enum('dot11sPathSelectionMetric', ['METRIC_AIRTIME'])
     ## ie-dot11s-peer-management.h (module 'mesh'): ns3::dot11s::PmpReasonCode [enumeration]
     module.add_enum('PmpReasonCode', ['REASON11S_PEERING_CANCELLED', 'REASON11S_MESH_MAX_PEERS', 'REASON11S_MESH_CAPABILITY_POLICY_VIOLATION', 'REASON11S_MESH_CLOSE_RCVD', 'REASON11S_MESH_MAX_RETRIES', 'REASON11S_MESH_CONFIRM_TIMEOUT', 'REASON11S_MESH_INVALID_GTK', 'REASON11S_MESH_INCONSISTENT_PARAMETERS', 'REASON11S_MESH_INVALID_SECURITY_CAPABILITY', 'REASON11S_RESERVED'])
-    ## ie-dot11s-configuration.h (module 'mesh'): ns3::dot11s::dot11sAuthenticationProtocol [enumeration]
-    module.add_enum('dot11sAuthenticationProtocol', ['AUTH_NULL', 'AUTH_SAE'])
     ## ie-dot11s-preq.h (module 'mesh'): ns3::dot11s::DestinationAddressUnit [class]
     module.add_class('DestinationAddressUnit', parent=root_module['ns3::SimpleRefCount< ns3::dot11s::DestinationAddressUnit, ns3::empty, ns3::DefaultDeleter<ns3::dot11s::DestinationAddressUnit> >'])
     ## ie-dot11s-configuration.h (module 'mesh'): ns3::dot11s::Dot11sMeshCapability [class]
@@ -3615,6 +3615,7 @@
     return
 
 def register_Ns3Int64x64_t_methods(root_module, cls):
+    cls.add_binary_comparison_operator('<=')
     cls.add_binary_comparison_operator('!=')
     cls.add_inplace_numeric_operator('+=', param('ns3::int64x64_t const &', 'right'))
     cls.add_binary_numeric_operator('*', root_module['ns3::int64x64_t'], root_module['ns3::int64x64_t'], param('long long unsigned int const', 'right'))
@@ -3672,7 +3673,6 @@
     cls.add_inplace_numeric_operator('-=', param('ns3::int64x64_t const &', 'right'))
     cls.add_inplace_numeric_operator('/=', param('ns3::int64x64_t const &', 'right'))
     cls.add_output_stream_operator()
-    cls.add_binary_comparison_operator('<=')
     cls.add_binary_comparison_operator('==')
     cls.add_binary_comparison_operator('>=')
     ## int64x64-double.h (module 'core'): ns3::int64x64_t::int64x64_t() [constructor]
@@ -4612,6 +4612,7 @@
     return
 
 def register_Ns3Time_methods(root_module, cls):
+    cls.add_binary_comparison_operator('<=')
     cls.add_binary_comparison_operator('!=')
     cls.add_inplace_numeric_operator('+=', param('ns3::Time const &', 'right'))
     cls.add_binary_numeric_operator('+', root_module['ns3::Time'], root_module['ns3::Time'], param('ns3::Time const &', 'right'))
@@ -4620,7 +4621,6 @@
     cls.add_binary_comparison_operator('>')
     cls.add_inplace_numeric_operator('-=', param('ns3::Time const &', 'right'))
     cls.add_output_stream_operator()
-    cls.add_binary_comparison_operator('<=')
     cls.add_binary_comparison_operator('==')
     cls.add_binary_comparison_operator('>=')
     ## nstime.h (module 'core'): ns3::Time::Time() [constructor]
@@ -5239,11 +5239,6 @@
                    'bool', 
                    [], 
                    is_pure_virtual=True, is_const=True, is_virtual=True)
-    ## wifi-mac.h (module 'wifi'): void ns3::WifiMac::ConfigureCCHDcf(ns3::Ptr<ns3::Dcf> dcf, uint32_t cwmin, uint32_t cwmax, ns3::AcIndex ac) [member function]
-    cls.add_method('ConfigureCCHDcf', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::Dcf >', 'dcf'), param('uint32_t', 'cwmin'), param('uint32_t', 'cwmax'), param('ns3::AcIndex', 'ac')], 
-                   visibility='protected')
     ## wifi-mac.h (module 'wifi'): void ns3::WifiMac::ConfigureDcf(ns3::Ptr<ns3::Dcf> dcf, uint32_t cwmin, uint32_t cwmax, ns3::AcIndex ac) [member function]
     cls.add_method('ConfigureDcf', 
                    'void', 
@@ -11502,8 +11497,8 @@
 def register_Ns3FlameFlameProtocolMac_methods(root_module, cls):
     ## flame-protocol-mac.h (module 'mesh'): ns3::flame::FlameProtocolMac::FlameProtocolMac(ns3::flame::FlameProtocolMac const & arg0) [copy constructor]
     cls.add_constructor([param('ns3::flame::FlameProtocolMac const &', 'arg0')])
-    ## flame-protocol-mac.h (module 'mesh'): ns3::flame::FlameProtocolMac::FlameProtocolMac(uint32_t arg0, ns3::Ptr<ns3::flame::FlameProtocol> arg1) [constructor]
-    cls.add_constructor([param('uint32_t', 'arg0'), param('ns3::Ptr< ns3::flame::FlameProtocol >', 'arg1')])
+    ## flame-protocol-mac.h (module 'mesh'): ns3::flame::FlameProtocolMac::FlameProtocolMac(ns3::Ptr<ns3::flame::FlameProtocol> arg0) [constructor]
+    cls.add_constructor([param('ns3::Ptr< ns3::flame::FlameProtocol >', 'arg0')])
     ## flame-protocol-mac.h (module 'mesh'): int64_t ns3::flame::FlameProtocolMac::AssignStreams(int64_t stream) [member function]
     cls.add_method('AssignStreams', 
                    'int64_t', 
diff -Naur ns-3.18/src/mesh/bindings/modulegen__gcc_LP64.py ns-3.18.1/src/mesh/bindings/modulegen__gcc_LP64.py
--- ns-3.18/src/mesh/bindings/modulegen__gcc_LP64.py	2013-08-29 22:36:58.000000000 -0700
+++ ns-3.18.1/src/mesh/bindings/modulegen__gcc_LP64.py	2013-11-15 16:40:48.475760977 -0800
@@ -27,7 +27,7 @@
     ## wifi-mode.h (module 'wifi'): ns3::WifiModulationClass [enumeration]
     module.add_enum('WifiModulationClass', ['WIFI_MOD_CLASS_UNKNOWN', 'WIFI_MOD_CLASS_IR', 'WIFI_MOD_CLASS_FHSS', 'WIFI_MOD_CLASS_DSSS', 'WIFI_MOD_CLASS_ERP_PBCC', 'WIFI_MOD_CLASS_DSSS_OFDM', 'WIFI_MOD_CLASS_ERP_OFDM', 'WIFI_MOD_CLASS_OFDM', 'WIFI_MOD_CLASS_HT'], import_from_module='ns.wifi')
     ## wifi-phy-standard.h (module 'wifi'): ns3::WifiPhyStandard [enumeration]
-    module.add_enum('WifiPhyStandard', ['WIFI_PHY_STANDARD_80211a', 'WIFI_PHY_STANDARD_80211b', 'WIFI_PHY_STANDARD_80211g', 'WIFI_PHY_STANDARD_80211_10MHZ', 'WIFI_PHY_STANDARD_80211_5MHZ', 'WIFI_PHY_STANDARD_holland', 'WIFI_PHY_STANDARD_80211p_CCH', 'WIFI_PHY_STANDARD_80211p_SCH', 'WIFI_PHY_STANDARD_80211n_2_4GHZ', 'WIFI_PHY_STANDARD_80211n_5GHZ'], import_from_module='ns.wifi')
+    module.add_enum('WifiPhyStandard', ['WIFI_PHY_STANDARD_80211a', 'WIFI_PHY_STANDARD_80211b', 'WIFI_PHY_STANDARD_80211g', 'WIFI_PHY_STANDARD_80211_10MHZ', 'WIFI_PHY_STANDARD_80211_5MHZ', 'WIFI_PHY_STANDARD_holland', 'WIFI_PHY_STANDARD_80211n_2_4GHZ', 'WIFI_PHY_STANDARD_80211n_5GHZ'], import_from_module='ns.wifi')
     ## wifi-mode.h (module 'wifi'): ns3::WifiCodeRate [enumeration]
     module.add_enum('WifiCodeRate', ['WIFI_CODE_RATE_UNDEFINED', 'WIFI_CODE_RATE_3_4', 'WIFI_CODE_RATE_2_3', 'WIFI_CODE_RATE_1_2', 'WIFI_CODE_RATE_5_6'], import_from_module='ns.wifi')
     ## qos-utils.h (module 'wifi'): ns3::AcIndex [enumeration]
@@ -500,14 +500,14 @@
     module.add_enum('dot11sSynchronizationProtocolIdentifier', ['SYNC_NEIGHBOUR_OFFSET', 'SYNC_NULL'])
     ## ie-dot11s-configuration.h (module 'mesh'): ns3::dot11s::dot11sCongestionControlMode [enumeration]
     module.add_enum('dot11sCongestionControlMode', ['CONGESTION_SIGNALING', 'CONGESTION_NULL'])
+    ## ie-dot11s-configuration.h (module 'mesh'): ns3::dot11s::dot11sAuthenticationProtocol [enumeration]
+    module.add_enum('dot11sAuthenticationProtocol', ['AUTH_NULL', 'AUTH_SAE'])
     ## ie-dot11s-configuration.h (module 'mesh'): ns3::dot11s::dot11sPathSelectionMetric [enumeration]
     module.add_enum('dot11sPathSelectionMetric', ['METRIC_AIRTIME'])
     ## ie-dot11s-peer-management.h (module 'mesh'): ns3::dot11s::PmpReasonCode [enumeration]
     module.add_enum('PmpReasonCode', ['REASON11S_PEERING_CANCELLED', 'REASON11S_MESH_MAX_PEERS', 'REASON11S_MESH_CAPABILITY_POLICY_VIOLATION', 'REASON11S_MESH_CLOSE_RCVD', 'REASON11S_MESH_MAX_RETRIES', 'REASON11S_MESH_CONFIRM_TIMEOUT', 'REASON11S_MESH_INVALID_GTK', 'REASON11S_MESH_INCONSISTENT_PARAMETERS', 'REASON11S_MESH_INVALID_SECURITY_CAPABILITY', 'REASON11S_RESERVED'])
     ## ie-dot11s-configuration.h (module 'mesh'): ns3::dot11s::dot11sPathSelectionProtocol [enumeration]
     module.add_enum('dot11sPathSelectionProtocol', ['PROTOCOL_HWMP'])
-    ## ie-dot11s-configuration.h (module 'mesh'): ns3::dot11s::dot11sAuthenticationProtocol [enumeration]
-    module.add_enum('dot11sAuthenticationProtocol', ['AUTH_NULL', 'AUTH_SAE'])
     ## ie-dot11s-preq.h (module 'mesh'): ns3::dot11s::DestinationAddressUnit [class]
     module.add_class('DestinationAddressUnit', parent=root_module['ns3::SimpleRefCount< ns3::dot11s::DestinationAddressUnit, ns3::empty, ns3::DefaultDeleter<ns3::dot11s::DestinationAddressUnit> >'])
     ## ie-dot11s-configuration.h (module 'mesh'): ns3::dot11s::Dot11sMeshCapability [class]
@@ -3615,6 +3615,7 @@
     return
 
 def register_Ns3Int64x64_t_methods(root_module, cls):
+    cls.add_binary_comparison_operator('<=')
     cls.add_binary_comparison_operator('!=')
     cls.add_inplace_numeric_operator('+=', param('ns3::int64x64_t const &', 'right'))
     cls.add_binary_numeric_operator('*', root_module['ns3::int64x64_t'], root_module['ns3::int64x64_t'], param('long long unsigned int const', 'right'))
@@ -3672,7 +3673,6 @@
     cls.add_inplace_numeric_operator('-=', param('ns3::int64x64_t const &', 'right'))
     cls.add_inplace_numeric_operator('/=', param('ns3::int64x64_t const &', 'right'))
     cls.add_output_stream_operator()
-    cls.add_binary_comparison_operator('<=')
     cls.add_binary_comparison_operator('==')
     cls.add_binary_comparison_operator('>=')
     ## int64x64-double.h (module 'core'): ns3::int64x64_t::int64x64_t() [constructor]
@@ -4612,6 +4612,7 @@
     return
 
 def register_Ns3Time_methods(root_module, cls):
+    cls.add_binary_comparison_operator('<=')
     cls.add_binary_comparison_operator('!=')
     cls.add_inplace_numeric_operator('+=', param('ns3::Time const &', 'right'))
     cls.add_binary_numeric_operator('+', root_module['ns3::Time'], root_module['ns3::Time'], param('ns3::Time const &', 'right'))
@@ -4620,7 +4621,6 @@
     cls.add_binary_comparison_operator('>')
     cls.add_inplace_numeric_operator('-=', param('ns3::Time const &', 'right'))
     cls.add_output_stream_operator()
-    cls.add_binary_comparison_operator('<=')
     cls.add_binary_comparison_operator('==')
     cls.add_binary_comparison_operator('>=')
     ## nstime.h (module 'core'): ns3::Time::Time() [constructor]
@@ -5239,11 +5239,6 @@
                    'bool', 
                    [], 
                    is_pure_virtual=True, is_const=True, is_virtual=True)
-    ## wifi-mac.h (module 'wifi'): void ns3::WifiMac::ConfigureCCHDcf(ns3::Ptr<ns3::Dcf> dcf, uint32_t cwmin, uint32_t cwmax, ns3::AcIndex ac) [member function]
-    cls.add_method('ConfigureCCHDcf', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::Dcf >', 'dcf'), param('uint32_t', 'cwmin'), param('uint32_t', 'cwmax'), param('ns3::AcIndex', 'ac')], 
-                   visibility='protected')
     ## wifi-mac.h (module 'wifi'): void ns3::WifiMac::ConfigureDcf(ns3::Ptr<ns3::Dcf> dcf, uint32_t cwmin, uint32_t cwmax, ns3::AcIndex ac) [member function]
     cls.add_method('ConfigureDcf', 
                    'void', 
@@ -11502,8 +11497,8 @@
 def register_Ns3FlameFlameProtocolMac_methods(root_module, cls):
     ## flame-protocol-mac.h (module 'mesh'): ns3::flame::FlameProtocolMac::FlameProtocolMac(ns3::flame::FlameProtocolMac const & arg0) [copy constructor]
     cls.add_constructor([param('ns3::flame::FlameProtocolMac const &', 'arg0')])
-    ## flame-protocol-mac.h (module 'mesh'): ns3::flame::FlameProtocolMac::FlameProtocolMac(uint32_t arg0, ns3::Ptr<ns3::flame::FlameProtocol> arg1) [constructor]
-    cls.add_constructor([param('uint32_t', 'arg0'), param('ns3::Ptr< ns3::flame::FlameProtocol >', 'arg1')])
+    ## flame-protocol-mac.h (module 'mesh'): ns3::flame::FlameProtocolMac::FlameProtocolMac(ns3::Ptr<ns3::flame::FlameProtocol> arg0) [constructor]
+    cls.add_constructor([param('ns3::Ptr< ns3::flame::FlameProtocol >', 'arg0')])
     ## flame-protocol-mac.h (module 'mesh'): int64_t ns3::flame::FlameProtocolMac::AssignStreams(int64_t stream) [member function]
     cls.add_method('AssignStreams', 
                    'int64_t', 
diff -Naur ns-3.18/src/mesh/doc/mesh.rst ns-3.18.1/src/mesh/doc/mesh.rst
--- ns-3.18/src/mesh/doc/mesh.rst	2013-08-29 22:36:58.000000000 -0700
+++ ns-3.18.1/src/mesh/doc/mesh.rst	2013-11-15 16:40:48.447760976 -0800
@@ -7,4 +7,4 @@
 
 The Mesh NetDevice based on 802.11s was added in *ns-3.6*. An overview
 presentation by Kirill Andreev was published at the wns-3 workshop
-in 2009: `<http://www.nsnam.org/wiki/index.php/Wns3-2009>`_.
+in 2009: `<http://www.nsnam.org/wiki/Wns3-2009>`_.
diff -Naur ns-3.18/src/mesh/model/dot11s/airtime-metric.cc ns-3.18.1/src/mesh/model/dot11s/airtime-metric.cc
--- ns-3.18/src/mesh/model/dot11s/airtime-metric.cc	2013-08-29 22:36:58.000000000 -0700
+++ ns-3.18.1/src/mesh/model/dot11s/airtime-metric.cc	2013-11-15 16:40:48.455760979 -0800
@@ -46,18 +46,10 @@
                       &AirtimeLinkMetricCalculator::SetHeaderTid),
                     MakeUintegerChecker<uint8_t> (0)
                     )
-    .AddAttribute ( "Dot11sMeshHeaderLength",
-                    "Length of the mesh header",
-                    UintegerValue (6),
-                    MakeUintegerAccessor (
-                      &AirtimeLinkMetricCalculator::m_meshHeaderLength),
-                    MakeUintegerChecker<uint16_t> (0)
-                    )
   ;
   return tid;
 }
-AirtimeLinkMetricCalculator::AirtimeLinkMetricCalculator () :
-  m_overheadNanosec (0)
+AirtimeLinkMetricCalculator::AirtimeLinkMetricCalculator ()
 {
 }
 void
diff -Naur ns-3.18/src/mesh/model/dot11s/airtime-metric.h ns-3.18.1/src/mesh/model/dot11s/airtime-metric.h
--- ns-3.18/src/mesh/model/dot11s/airtime-metric.h	2013-08-29 22:36:58.000000000 -0700
+++ ns-3.18.1/src/mesh/model/dot11s/airtime-metric.h	2013-11-15 16:40:48.451760978 -0800
@@ -47,14 +47,6 @@
   void SetTestLength (uint16_t testLength);
   void SetHeaderTid (uint8_t tid);
 private:
-  /// Overhead expressed in nanoseconds:DIFS + SIFS + 2 * PREAMBLE + ACK
-  uint32_t m_overheadNanosec;
-  /// Bt value
-  uint32_t m_testLength;
-  /// header length (used in overhead)
-  uint16_t m_headerLength;
-  /// meshHeader length (minimum 6 octets)
-  uint16_t m_meshHeaderLength;
   Ptr<Packet> m_testFrame;
   WifiMacHeader m_testHeader;
 };
diff -Naur ns-3.18/src/mesh/model/flame/flame-protocol.cc ns-3.18.1/src/mesh/model/flame/flame-protocol.cc
--- ns-3.18/src/mesh/model/flame/flame-protocol.cc	2013-08-29 22:36:58.000000000 -0700
+++ ns-3.18.1/src/mesh/model/flame/flame-protocol.cc	2013-11-15 16:40:48.459760980 -0800
@@ -305,7 +305,7 @@
           return false;
         }
       // Installing plugins:
-      Ptr<FlameProtocolMac> flameMac = Create<FlameProtocolMac> (wifiNetDev->GetIfIndex (), this);
+      Ptr<FlameProtocolMac> flameMac = Create<FlameProtocolMac> (this);
       m_interfaces[wifiNetDev->GetIfIndex ()] = flameMac;
       mac->SetBeaconGeneration (false);
       mac->InstallPlugin (flameMac);
diff -Naur ns-3.18/src/mesh/model/flame/flame-protocol-mac.cc ns-3.18.1/src/mesh/model/flame/flame-protocol-mac.cc
--- ns-3.18/src/mesh/model/flame/flame-protocol-mac.cc	2013-08-29 22:36:58.000000000 -0700
+++ ns-3.18.1/src/mesh/model/flame/flame-protocol-mac.cc	2013-11-15 16:40:48.459760980 -0800
@@ -25,8 +25,8 @@
 namespace ns3 {
 namespace flame {
 NS_LOG_COMPONENT_DEFINE ("FlameProtocolMac");
-FlameProtocolMac::FlameProtocolMac (uint32_t ifIndex, Ptr<FlameProtocol> protocol) :
-  m_protocol (protocol), m_ifIndex (ifIndex)
+FlameProtocolMac::FlameProtocolMac (Ptr<FlameProtocol> protocol) :
+  m_protocol (protocol)
 {
 }
 FlameProtocolMac::~FlameProtocolMac ()
diff -Naur ns-3.18/src/mesh/model/flame/flame-protocol-mac.h ns-3.18.1/src/mesh/model/flame/flame-protocol-mac.h
--- ns-3.18/src/mesh/model/flame/flame-protocol-mac.h	2013-08-29 22:36:58.000000000 -0700
+++ ns-3.18.1/src/mesh/model/flame/flame-protocol-mac.h	2013-11-15 16:40:48.459760980 -0800
@@ -34,7 +34,7 @@
 class FlameProtocolMac : public MeshWifiInterfaceMacPlugin
 {
 public:
-  FlameProtocolMac (uint32_t, Ptr<FlameProtocol>);
+  FlameProtocolMac (Ptr<FlameProtocol>);
   ~FlameProtocolMac ();
   ///\name Inherited from MAC plugin
   //\{
@@ -56,7 +56,6 @@
    * \{
    */
   Ptr<FlameProtocol> m_protocol;
-  uint32_t m_ifIndex;
   Ptr<MeshWifiInterfaceMac> m_parent;
   ///\}
   ///\name Statistics:
diff -Naur ns-3.18/src/mesh/test/flame/flame-test-suite.cc ns-3.18.1/src/mesh/test/flame/flame-test-suite.cc
--- ns-3.18/src/mesh/test/flame/flame-test-suite.cc	2013-08-29 22:36:58.000000000 -0700
+++ ns-3.18.1/src/mesh/test/flame/flame-test-suite.cc	2013-11-15 16:40:48.495760979 -0800
@@ -73,8 +73,6 @@
   void TestExpire ();
   ///\}
 private:
-  bool error;
-
   Mac48Address dst;
   Mac48Address hop;
   uint32_t iface;
@@ -88,7 +86,6 @@
 
 FlameRtableTest::FlameRtableTest () :
   TestCase ("FlameRtable"), 
-  error (false), 
   dst ("01:00:00:01:00:01"), 
   hop ("01:00:00:01:00:03"),
   iface (8010), 
diff -Naur ns-3.18/src/mobility/bindings/modulegen__gcc_ILP32.py ns-3.18.1/src/mobility/bindings/modulegen__gcc_ILP32.py
--- ns-3.18/src/mobility/bindings/modulegen__gcc_ILP32.py	2013-08-29 22:36:58.000000000 -0700
+++ ns-3.18.1/src/mobility/bindings/modulegen__gcc_ILP32.py	2013-11-15 16:40:48.355760976 -0800
@@ -264,14 +264,14 @@
     module.add_class('GaussMarkovMobilityModel', parent=root_module['ns3::MobilityModel'])
     ## hierarchical-mobility-model.h (module 'mobility'): ns3::HierarchicalMobilityModel [class]
     module.add_class('HierarchicalMobilityModel', parent=root_module['ns3::MobilityModel'])
-    typehandlers.add_type_alias('ns3::Vector3DValue', 'ns3::VectorValue')
-    typehandlers.add_type_alias('ns3::Vector3DValue*', 'ns3::VectorValue*')
-    typehandlers.add_type_alias('ns3::Vector3DValue&', 'ns3::VectorValue&')
-    module.add_typedef(root_module['ns3::Vector3DValue'], 'VectorValue')
     typehandlers.add_type_alias('ns3::Vector3D', 'ns3::Vector')
     typehandlers.add_type_alias('ns3::Vector3D*', 'ns3::Vector*')
     typehandlers.add_type_alias('ns3::Vector3D&', 'ns3::Vector&')
     module.add_typedef(root_module['ns3::Vector3D'], 'Vector')
+    typehandlers.add_type_alias('ns3::Vector3DValue', 'ns3::VectorValue')
+    typehandlers.add_type_alias('ns3::Vector3DValue*', 'ns3::VectorValue*')
+    typehandlers.add_type_alias('ns3::Vector3DValue&', 'ns3::VectorValue&')
+    module.add_typedef(root_module['ns3::Vector3DValue'], 'VectorValue')
     typehandlers.add_type_alias('ns3::Vector3DChecker', 'ns3::VectorChecker')
     typehandlers.add_type_alias('ns3::Vector3DChecker*', 'ns3::VectorChecker*')
     typehandlers.add_type_alias('ns3::Vector3DChecker&', 'ns3::VectorChecker&')
diff -Naur ns-3.18/src/mobility/bindings/modulegen__gcc_LP64.py ns-3.18.1/src/mobility/bindings/modulegen__gcc_LP64.py
--- ns-3.18/src/mobility/bindings/modulegen__gcc_LP64.py	2013-08-29 22:36:58.000000000 -0700
+++ ns-3.18.1/src/mobility/bindings/modulegen__gcc_LP64.py	2013-11-15 16:40:48.351760974 -0800
@@ -264,14 +264,14 @@
     module.add_class('GaussMarkovMobilityModel', parent=root_module['ns3::MobilityModel'])
     ## hierarchical-mobility-model.h (module 'mobility'): ns3::HierarchicalMobilityModel [class]
     module.add_class('HierarchicalMobilityModel', parent=root_module['ns3::MobilityModel'])
-    typehandlers.add_type_alias('ns3::Vector3DValue', 'ns3::VectorValue')
-    typehandlers.add_type_alias('ns3::Vector3DValue*', 'ns3::VectorValue*')
-    typehandlers.add_type_alias('ns3::Vector3DValue&', 'ns3::VectorValue&')
-    module.add_typedef(root_module['ns3::Vector3DValue'], 'VectorValue')
     typehandlers.add_type_alias('ns3::Vector3D', 'ns3::Vector')
     typehandlers.add_type_alias('ns3::Vector3D*', 'ns3::Vector*')
     typehandlers.add_type_alias('ns3::Vector3D&', 'ns3::Vector&')
     module.add_typedef(root_module['ns3::Vector3D'], 'Vector')
+    typehandlers.add_type_alias('ns3::Vector3DValue', 'ns3::VectorValue')
+    typehandlers.add_type_alias('ns3::Vector3DValue*', 'ns3::VectorValue*')
+    typehandlers.add_type_alias('ns3::Vector3DValue&', 'ns3::VectorValue&')
+    module.add_typedef(root_module['ns3::Vector3DValue'], 'VectorValue')
     typehandlers.add_type_alias('ns3::Vector3DChecker', 'ns3::VectorChecker')
     typehandlers.add_type_alias('ns3::Vector3DChecker*', 'ns3::VectorChecker*')
     typehandlers.add_type_alias('ns3::Vector3DChecker&', 'ns3::VectorChecker&')
diff -Naur ns-3.18/src/mobility/doc/mobility.rst ns-3.18.1/src/mobility/doc/mobility.rst
--- ns-3.18/src/mobility/doc/mobility.rst	2013-08-29 22:36:58.000000000 -0700
+++ ns-3.18.1/src/mobility/doc/mobility.rst	2013-11-15 16:40:48.339760975 -0800
@@ -168,7 +168,7 @@
 
 - BonnMotion http://net.cs.uni-bonn.de/wg/cs/applications/bonnmotion/
 
-  - Some installation instructions for BonnMotion can be found here:  http://www.nsnam.org/wiki/index.php/HOWTO_use_ns-3_with_BonnMotion_mobility_generator_and_analysis_tool
+  - Some installation instructions for BonnMotion can be found here:  http://www.nsnam.org/wiki/HOWTO_use_ns-3_with_BonnMotion_mobility_generator_and_analysis_tool
   - Documentation on using BonnMotion with |ns3| is posted here: http://www.ida.liu.se/~rikno/files/mobility_generation.pdf  
 
 - SUMO http://sourceforge.net/apps/mediawiki/sumo/index.php?title=Main_Page
diff -Naur ns-3.18/src/mpi/bindings/modulegen__gcc_ILP32.py ns-3.18.1/src/mpi/bindings/modulegen__gcc_ILP32.py
--- ns-3.18/src/mpi/bindings/modulegen__gcc_ILP32.py	2013-08-29 22:36:58.000000000 -0700
+++ ns-3.18.1/src/mpi/bindings/modulegen__gcc_ILP32.py	2013-11-15 16:40:48.991760993 -0800
@@ -2533,6 +2533,11 @@
     cls.add_method('SetReceiveCallback', 
                    'void', 
                    [param('ns3::Callback< void, ns3::Ptr< ns3::Packet >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'callback')])
+    ## mpi-receiver.h (module 'mpi'): void ns3::MpiReceiver::DoDispose() [member function]
+    cls.add_method('DoDispose', 
+                   'void', 
+                   [], 
+                   visibility='private', is_virtual=True)
     return
 
 def register_Ns3NixVector_methods(root_module, cls):
diff -Naur ns-3.18/src/mpi/bindings/modulegen__gcc_LP64.py ns-3.18.1/src/mpi/bindings/modulegen__gcc_LP64.py
--- ns-3.18/src/mpi/bindings/modulegen__gcc_LP64.py	2013-08-29 22:36:58.000000000 -0700
+++ ns-3.18.1/src/mpi/bindings/modulegen__gcc_LP64.py	2013-11-15 16:40:48.987760992 -0800
@@ -2533,6 +2533,11 @@
     cls.add_method('SetReceiveCallback', 
                    'void', 
                    [param('ns3::Callback< void, ns3::Ptr< ns3::Packet >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'callback')])
+    ## mpi-receiver.h (module 'mpi'): void ns3::MpiReceiver::DoDispose() [member function]
+    cls.add_method('DoDispose', 
+                   'void', 
+                   [], 
+                   visibility='private', is_virtual=True)
     return
 
 def register_Ns3NixVector_methods(root_module, cls):
diff -Naur ns-3.18/src/mpi/model/distributed-simulator-impl.cc ns-3.18.1/src/mpi/model/distributed-simulator-impl.cc
--- ns-3.18/src/mpi/model/distributed-simulator-impl.cc	2013-08-29 22:36:58.000000000 -0700
+++ ns-3.18.1/src/mpi/model/distributed-simulator-impl.cc	2013-11-15 16:40:48.987760992 -0800
@@ -14,9 +14,6 @@
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  *
  * Author: George Riley <riley@ece.gatech.edu>
- *
- * Some updates to this code were developed under a research contract
- * sponsored by the Army Research Laboratory. (April 30, 2013)
  */
 
 #include "distributed-simulator-impl.h"
@@ -99,6 +96,7 @@
   m_pLBTS = new LbtsMessage[m_systemCount];
   m_grantedTime = Seconds (0);
 #else
+  NS_UNUSED (m_systemCount);
   NS_FATAL_ERROR ("Can't use distributed simulator without MPI compiled in");
 #endif
 
diff -Naur ns-3.18/src/mpi/model/distributed-simulator-impl.h ns-3.18.1/src/mpi/model/distributed-simulator-impl.h
--- ns-3.18/src/mpi/model/distributed-simulator-impl.h	2013-08-29 22:36:58.000000000 -0700
+++ ns-3.18.1/src/mpi/model/distributed-simulator-impl.h	2013-11-15 16:40:48.987760992 -0800
@@ -14,9 +14,6 @@
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  *
  * Author: George Riley <riley@ece.gatech.edu>
- *
- * Some updates to this code were developed under a research contract
- * sponsored by the Army Research Laboratory. (April 30, 2013)
  */
 
 #ifndef DISTRIBUTED_SIMULATOR_IMPL_H
diff -Naur ns-3.18/src/mpi/model/mpi-receiver.cc ns-3.18.1/src/mpi/model/mpi-receiver.cc
--- ns-3.18/src/mpi/model/mpi-receiver.cc	2013-08-29 22:36:58.000000000 -0700
+++ ns-3.18.1/src/mpi/model/mpi-receiver.cc	2013-11-15 16:40:48.987760992 -0800
@@ -46,4 +46,10 @@
   m_rxCallback (p);
 }
 
+void
+MpiReceiver::DoDispose(void)
+{
+  m_rxCallback = MakeNullCallback<void, Ptr<Packet> >();
+}
+
 } // namespace ns3
diff -Naur ns-3.18/src/mpi/model/mpi-receiver.h ns-3.18.1/src/mpi/model/mpi-receiver.h
--- ns-3.18/src/mpi/model/mpi-receiver.h	2013-08-29 22:36:58.000000000 -0700
+++ ns-3.18.1/src/mpi/model/mpi-receiver.h	2013-11-15 16:40:48.987760992 -0800
@@ -56,6 +56,8 @@
    */
   void SetReceiveCallback (Callback<void, Ptr<Packet> > callback);
 private:
+  virtual void DoDispose (void);
+
   Callback<void, Ptr<Packet> > m_rxCallback;
 };
 
diff -Naur ns-3.18/src/netanim/doc/animation.rst ns-3.18.1/src/netanim/doc/animation.rst
--- ns-3.18/src/netanim/doc/animation.rst	2013-08-29 22:36:58.000000000 -0700
+++ ns-3.18.1/src/netanim/doc/animation.rst	2013-11-15 16:40:48.863760989 -0800
@@ -6,7 +6,7 @@
 Animation is an important tool for network simulation. While |ns3| does not
 contain a default graphical animation tool, we currently have two ways to provide
 animation, namely using the PyViz method or the NetAnim method.
-The PyViz method is described in http://www.nsnam.org/wiki/index.php/PyViz.
+The PyViz method is described in http://www.nsnam.org/wiki/PyViz.
 
 We will describe the NetAnim method briefly here.
 
@@ -320,4 +320,4 @@
 ====
 For detailed instructions on installing "NetAnim", F.A.Qs and loading the XML trace file 
 (mentioned earlier) using NetAnim please refer:
-http://www.nsnam.org/wiki/index.php/NetAnim
+http://www.nsnam.org/wiki/NetAnim
diff -Naur ns-3.18/src/netanim/examples/wireless-animation.cc ns-3.18.1/src/netanim/examples/wireless-animation.cc
--- ns-3.18/src/netanim/examples/wireless-animation.cc	2013-08-29 22:36:58.000000000 -0700
+++ ns-3.18.1/src/netanim/examples/wireless-animation.cc	2013-11-15 16:40:48.883760987 -0800
@@ -157,6 +157,7 @@
   AnimationInterface::SetNodeColor (wifiApNode, 0, 255, 0); // Optional
   AnimationInterface::SetNodeColor (wifiStaNodes, 255, 0, 0); // Optional
   AnimationInterface::SetNodeColor (csmaNodes, 0, 0, 255); // Optional
+  AnimationInterface::SetBoundary (0, 0, 35, 35); // Optional
 
   AnimationInterface anim ("wireless-animation.xml"); // Mandatory
 
diff -Naur ns-3.18/src/netanim/model/animation-interface.cc ns-3.18.1/src/netanim/model/animation-interface.cc
--- ns-3.18/src/netanim/model/animation-interface.cc	2013-08-29 22:36:58.000000000 -0700
+++ ns-3.18.1/src/netanim/model/animation-interface.cc	2013-11-15 16:40:48.887760987 -0800
@@ -59,6 +59,7 @@
 std::map <uint32_t, std::string> AnimationInterface::nodeDescriptions;
 std::map <uint32_t, Rgb> AnimationInterface::nodeColors;
 std::map <P2pLinkNodeIdPair, LinkProperties, LinkPairCompare> AnimationInterface::linkProperties;
+Rectangle * AnimationInterface::userBoundary = 0;
 
 
 AnimationInterface::AnimationInterface (const std::string fn, uint64_t maxPktsPerFile, bool usingXML)
@@ -78,6 +79,10 @@
 
 AnimationInterface::~AnimationInterface ()
 {
+  if (userBoundary)
+    {
+      delete userBoundary;
+    }
   StopAnimation ();
 }
 
@@ -1701,6 +1706,22 @@
 
 }
 
+void AnimationInterface::SetBoundary (double minX, double minY, double maxX, double maxY)
+{
+  if (initialized)
+    NS_FATAL_ERROR ("SetBoundary must be used prior to creating the AnimationInterface object");
+  NS_ASSERT (minX < maxX);
+  NS_ASSERT (minY < maxY);
+  if (!userBoundary)
+    {
+      userBoundary = new Rectangle;
+    }
+  userBoundary->xMax = maxX;
+  userBoundary->yMax = maxY;
+  userBoundary->xMin = minX;
+  userBoundary->yMin = minY;
+}
+
 void AnimationInterface::SetNodeColor (Ptr <Node> n, uint8_t r, uint8_t g, uint8_t b)
 {
   if (initialized)
@@ -1855,6 +1876,13 @@
 }
 std::string AnimationInterface::GetXMLOpen_topology (double minX, double minY, double maxX, double maxY)
 {
+  if (userBoundary)
+    {
+      minX = userBoundary->xMin;
+      minY = userBoundary->yMin;
+      maxX = userBoundary->xMax;
+      maxY = userBoundary->yMax;
+    }
   std::ostringstream oss;
   oss << "<topology minX = \"" << minX << "\" minY = \"" << minY
       << "\" maxX = \"" << maxX << "\" maxY = \"" << maxY
diff -Naur ns-3.18/src/netanim/model/animation-interface.h ns-3.18.1/src/netanim/model/animation-interface.h
--- ns-3.18/src/netanim/model/animation-interface.h	2013-08-29 22:36:58.000000000 -0700
+++ ns-3.18.1/src/netanim/model/animation-interface.h	2013-11-15 16:40:48.883760987 -0800
@@ -38,6 +38,7 @@
 #include "ns3/lte-ue-net-device.h"
 #include "ns3/lte-enb-net-device.h"
 #include "ns3/uan-phy-gen.h"
+#include "ns3/rectangle.h"
 
 namespace ns3 {
 
@@ -58,7 +59,7 @@
 
 struct LinkPairCompare
 {
-  bool operator () (P2pLinkNodeIdPair first, P2pLinkNodeIdPair second)
+  bool operator () (P2pLinkNodeIdPair first, P2pLinkNodeIdPair second) const
     {
       //Check if they are the same node pairs but flipped
       if (  ((first.fromNode == second.fromNode) && (first.toNode == second.toNode)) ||
@@ -228,6 +229,16 @@
   static void SetConstantPosition (Ptr <Node> n, double x, double y, double z=0);
 
   /**
+   * \brief Helper function to set the topology boundary rectangle
+   * \param minX X value of the lower left corner
+   * \param minY Y value of the lower left corner
+   * \param maxX X value of the upper right corner
+   * \param maxX Y value of the upper right corner
+   *
+   */
+  static void SetBoundary (double minX, double minY, double maxX, double maxY);
+
+  /**
    * \brief Helper function to set a brief description for a given node
    * \param n Ptr to the node
    * \param descr A string to briefly describe the node
@@ -618,6 +629,7 @@
   double m_topoMinY;
   double m_topoMaxX;
   double m_topoMaxY;
+  static Rectangle * userBoundary;
 
   std::string GetPacketMetadata (Ptr<const Packet> p);
 
diff -Naur ns-3.18/src/network/bindings/modulegen__gcc_ILP32.py ns-3.18.1/src/network/bindings/modulegen__gcc_ILP32.py
--- ns-3.18/src/network/bindings/modulegen__gcc_ILP32.py	2013-08-29 22:36:58.000000000 -0700
+++ ns-3.18.1/src/network/bindings/modulegen__gcc_ILP32.py	2013-11-15 16:40:48.667760987 -0800
@@ -458,6 +458,9 @@
     module.add_class('PbbAddressTlv', parent=root_module['ns3::PbbTlv'])
     module.add_container('std::list< ns3::Ptr< ns3::Packet > >', 'ns3::Ptr< ns3::Packet >', container_type='list')
     module.add_container('std::list< unsigned int >', 'unsigned int', container_type='list')
+    typehandlers.add_type_alias('ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'ns3::GenericPhyTxEndCallback')
+    typehandlers.add_type_alias('ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >*', 'ns3::GenericPhyTxEndCallback*')
+    typehandlers.add_type_alias('ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >&', 'ns3::GenericPhyTxEndCallback&')
     typehandlers.add_type_alias('ns3::SequenceNumber< unsigned short, short >', 'ns3::SequenceNumber16')
     typehandlers.add_type_alias('ns3::SequenceNumber< unsigned short, short >*', 'ns3::SequenceNumber16*')
     typehandlers.add_type_alias('ns3::SequenceNumber< unsigned short, short >&', 'ns3::SequenceNumber16&')
@@ -473,9 +476,6 @@
     typehandlers.add_type_alias('ns3::Callback< bool, ns3::Ptr< ns3::Packet >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'ns3::GenericPhyTxStartCallback')
     typehandlers.add_type_alias('ns3::Callback< bool, ns3::Ptr< ns3::Packet >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >*', 'ns3::GenericPhyTxStartCallback*')
     typehandlers.add_type_alias('ns3::Callback< bool, ns3::Ptr< ns3::Packet >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >&', 'ns3::GenericPhyTxStartCallback&')
-    typehandlers.add_type_alias('ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'ns3::GenericPhyTxEndCallback')
-    typehandlers.add_type_alias('ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >*', 'ns3::GenericPhyTxEndCallback*')
-    typehandlers.add_type_alias('ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >&', 'ns3::GenericPhyTxEndCallback&')
     typehandlers.add_type_alias('ns3::Callback< void, ns3::Ptr< ns3::Packet >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'ns3::GenericPhyRxEndOkCallback')
     typehandlers.add_type_alias('ns3::Callback< void, ns3::Ptr< ns3::Packet >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >*', 'ns3::GenericPhyRxEndOkCallback*')
     typehandlers.add_type_alias('ns3::Callback< void, ns3::Ptr< ns3::Packet >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >&', 'ns3::GenericPhyRxEndOkCallback&')
@@ -749,8 +749,8 @@
 
 def register_Ns3Address_methods(root_module, cls):
     cls.add_binary_comparison_operator('!=')
-    cls.add_binary_comparison_operator('<')
     cls.add_output_stream_operator()
+    cls.add_binary_comparison_operator('<')
     cls.add_binary_comparison_operator('==')
     ## address.h (module 'network'): ns3::Address::Address() [constructor]
     cls.add_constructor([])
@@ -1712,8 +1712,8 @@
 
 def register_Ns3Ipv4Address_methods(root_module, cls):
     cls.add_binary_comparison_operator('!=')
-    cls.add_binary_comparison_operator('<')
     cls.add_output_stream_operator()
+    cls.add_binary_comparison_operator('<')
     cls.add_binary_comparison_operator('==')
     ## ipv4-address.h (module 'network'): ns3::Ipv4Address::Ipv4Address(ns3::Ipv4Address const & arg0) [copy constructor]
     cls.add_constructor([param('ns3::Ipv4Address const &', 'arg0')])
@@ -1883,8 +1883,8 @@
 
 def register_Ns3Ipv6Address_methods(root_module, cls):
     cls.add_binary_comparison_operator('!=')
-    cls.add_binary_comparison_operator('<')
     cls.add_output_stream_operator()
+    cls.add_binary_comparison_operator('<')
     cls.add_binary_comparison_operator('==')
     ## ipv6-address.h (module 'network'): ns3::Ipv6Address::Ipv6Address() [constructor]
     cls.add_constructor([])
@@ -2139,8 +2139,8 @@
 
 def register_Ns3Mac16Address_methods(root_module, cls):
     cls.add_binary_comparison_operator('!=')
-    cls.add_binary_comparison_operator('<')
     cls.add_output_stream_operator()
+    cls.add_binary_comparison_operator('<')
     cls.add_binary_comparison_operator('==')
     ## mac16-address.h (module 'network'): ns3::Mac16Address::Mac16Address(ns3::Mac16Address const & arg0) [copy constructor]
     cls.add_constructor([param('ns3::Mac16Address const &', 'arg0')])
@@ -2176,8 +2176,8 @@
 
 def register_Ns3Mac48Address_methods(root_module, cls):
     cls.add_binary_comparison_operator('!=')
-    cls.add_binary_comparison_operator('<')
     cls.add_output_stream_operator()
+    cls.add_binary_comparison_operator('<')
     cls.add_binary_comparison_operator('==')
     ## mac48-address.h (module 'network'): ns3::Mac48Address::Mac48Address(ns3::Mac48Address const & arg0) [copy constructor]
     cls.add_constructor([param('ns3::Mac48Address const &', 'arg0')])
@@ -2248,8 +2248,8 @@
 
 def register_Ns3Mac64Address_methods(root_module, cls):
     cls.add_binary_comparison_operator('!=')
-    cls.add_binary_comparison_operator('<')
     cls.add_output_stream_operator()
+    cls.add_binary_comparison_operator('<')
     cls.add_binary_comparison_operator('==')
     ## mac64-address.h (module 'network'): ns3::Mac64Address::Mac64Address(ns3::Mac64Address const & arg0) [copy constructor]
     cls.add_constructor([param('ns3::Mac64Address const &', 'arg0')])
@@ -3464,8 +3464,8 @@
 
 def register_Ns3TypeId_methods(root_module, cls):
     cls.add_binary_comparison_operator('!=')
-    cls.add_binary_comparison_operator('<')
     cls.add_output_stream_operator()
+    cls.add_binary_comparison_operator('<')
     cls.add_binary_comparison_operator('==')
     ## type-id.h (module 'core'): ns3::TypeId::TypeId(char const * name) [constructor]
     cls.add_constructor([param('char const *', 'name')])
@@ -3659,8 +3659,10 @@
     return
 
 def register_Ns3Int64x64_t_methods(root_module, cls):
+    cls.add_binary_comparison_operator('<=')
     cls.add_binary_comparison_operator('!=')
     cls.add_inplace_numeric_operator('+=', param('ns3::int64x64_t const &', 'right'))
+    cls.add_output_stream_operator()
     cls.add_binary_numeric_operator('*', root_module['ns3::int64x64_t'], root_module['ns3::int64x64_t'], param('long long unsigned int const', 'right'))
     cls.add_binary_numeric_operator('*', root_module['ns3::int64x64_t'], root_module['ns3::int64x64_t'], param('long unsigned int const', 'right'))
     cls.add_binary_numeric_operator('*', root_module['ns3::int64x64_t'], root_module['ns3::int64x64_t'], param('unsigned int const', 'right'))
@@ -3715,8 +3717,6 @@
     cls.add_inplace_numeric_operator('*=', param('ns3::int64x64_t const &', 'right'))
     cls.add_inplace_numeric_operator('-=', param('ns3::int64x64_t const &', 'right'))
     cls.add_inplace_numeric_operator('/=', param('ns3::int64x64_t const &', 'right'))
-    cls.add_output_stream_operator()
-    cls.add_binary_comparison_operator('<=')
     cls.add_binary_comparison_operator('==')
     cls.add_binary_comparison_operator('>=')
     ## int64x64-double.h (module 'core'): ns3::int64x64_t::int64x64_t() [constructor]
@@ -5344,15 +5344,15 @@
     return
 
 def register_Ns3Time_methods(root_module, cls):
+    cls.add_binary_comparison_operator('<=')
     cls.add_binary_comparison_operator('!=')
     cls.add_inplace_numeric_operator('+=', param('ns3::Time const &', 'right'))
+    cls.add_output_stream_operator()
     cls.add_binary_numeric_operator('+', root_module['ns3::Time'], root_module['ns3::Time'], param('ns3::Time const &', 'right'))
     cls.add_binary_numeric_operator('-', root_module['ns3::Time'], root_module['ns3::Time'], param('ns3::Time const &', 'right'))
     cls.add_binary_comparison_operator('<')
     cls.add_binary_comparison_operator('>')
     cls.add_inplace_numeric_operator('-=', param('ns3::Time const &', 'right'))
-    cls.add_output_stream_operator()
-    cls.add_binary_comparison_operator('<=')
     cls.add_binary_comparison_operator('==')
     cls.add_binary_comparison_operator('>=')
     ## nstime.h (module 'core'): ns3::Time::Time() [constructor]
diff -Naur ns-3.18/src/network/bindings/modulegen__gcc_LP64.py ns-3.18.1/src/network/bindings/modulegen__gcc_LP64.py
--- ns-3.18/src/network/bindings/modulegen__gcc_LP64.py	2013-08-29 22:36:58.000000000 -0700
+++ ns-3.18.1/src/network/bindings/modulegen__gcc_LP64.py	2013-11-15 16:40:48.659760986 -0800
@@ -458,6 +458,9 @@
     module.add_class('PbbAddressTlv', parent=root_module['ns3::PbbTlv'])
     module.add_container('std::list< ns3::Ptr< ns3::Packet > >', 'ns3::Ptr< ns3::Packet >', container_type='list')
     module.add_container('std::list< unsigned int >', 'unsigned int', container_type='list')
+    typehandlers.add_type_alias('ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'ns3::GenericPhyTxEndCallback')
+    typehandlers.add_type_alias('ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >*', 'ns3::GenericPhyTxEndCallback*')
+    typehandlers.add_type_alias('ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >&', 'ns3::GenericPhyTxEndCallback&')
     typehandlers.add_type_alias('ns3::SequenceNumber< unsigned short, short >', 'ns3::SequenceNumber16')
     typehandlers.add_type_alias('ns3::SequenceNumber< unsigned short, short >*', 'ns3::SequenceNumber16*')
     typehandlers.add_type_alias('ns3::SequenceNumber< unsigned short, short >&', 'ns3::SequenceNumber16&')
@@ -473,9 +476,6 @@
     typehandlers.add_type_alias('ns3::Callback< bool, ns3::Ptr< ns3::Packet >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'ns3::GenericPhyTxStartCallback')
     typehandlers.add_type_alias('ns3::Callback< bool, ns3::Ptr< ns3::Packet >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >*', 'ns3::GenericPhyTxStartCallback*')
     typehandlers.add_type_alias('ns3::Callback< bool, ns3::Ptr< ns3::Packet >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >&', 'ns3::GenericPhyTxStartCallback&')
-    typehandlers.add_type_alias('ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'ns3::GenericPhyTxEndCallback')
-    typehandlers.add_type_alias('ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >*', 'ns3::GenericPhyTxEndCallback*')
-    typehandlers.add_type_alias('ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >&', 'ns3::GenericPhyTxEndCallback&')
     typehandlers.add_type_alias('ns3::Callback< void, ns3::Ptr< ns3::Packet >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'ns3::GenericPhyRxEndOkCallback')
     typehandlers.add_type_alias('ns3::Callback< void, ns3::Ptr< ns3::Packet >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >*', 'ns3::GenericPhyRxEndOkCallback*')
     typehandlers.add_type_alias('ns3::Callback< void, ns3::Ptr< ns3::Packet >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >&', 'ns3::GenericPhyRxEndOkCallback&')
@@ -749,8 +749,8 @@
 
 def register_Ns3Address_methods(root_module, cls):
     cls.add_binary_comparison_operator('!=')
-    cls.add_binary_comparison_operator('<')
     cls.add_output_stream_operator()
+    cls.add_binary_comparison_operator('<')
     cls.add_binary_comparison_operator('==')
     ## address.h (module 'network'): ns3::Address::Address() [constructor]
     cls.add_constructor([])
@@ -1712,8 +1712,8 @@
 
 def register_Ns3Ipv4Address_methods(root_module, cls):
     cls.add_binary_comparison_operator('!=')
-    cls.add_binary_comparison_operator('<')
     cls.add_output_stream_operator()
+    cls.add_binary_comparison_operator('<')
     cls.add_binary_comparison_operator('==')
     ## ipv4-address.h (module 'network'): ns3::Ipv4Address::Ipv4Address(ns3::Ipv4Address const & arg0) [copy constructor]
     cls.add_constructor([param('ns3::Ipv4Address const &', 'arg0')])
@@ -1883,8 +1883,8 @@
 
 def register_Ns3Ipv6Address_methods(root_module, cls):
     cls.add_binary_comparison_operator('!=')
-    cls.add_binary_comparison_operator('<')
     cls.add_output_stream_operator()
+    cls.add_binary_comparison_operator('<')
     cls.add_binary_comparison_operator('==')
     ## ipv6-address.h (module 'network'): ns3::Ipv6Address::Ipv6Address() [constructor]
     cls.add_constructor([])
@@ -2139,8 +2139,8 @@
 
 def register_Ns3Mac16Address_methods(root_module, cls):
     cls.add_binary_comparison_operator('!=')
-    cls.add_binary_comparison_operator('<')
     cls.add_output_stream_operator()
+    cls.add_binary_comparison_operator('<')
     cls.add_binary_comparison_operator('==')
     ## mac16-address.h (module 'network'): ns3::Mac16Address::Mac16Address(ns3::Mac16Address const & arg0) [copy constructor]
     cls.add_constructor([param('ns3::Mac16Address const &', 'arg0')])
@@ -2176,8 +2176,8 @@
 
 def register_Ns3Mac48Address_methods(root_module, cls):
     cls.add_binary_comparison_operator('!=')
-    cls.add_binary_comparison_operator('<')
     cls.add_output_stream_operator()
+    cls.add_binary_comparison_operator('<')
     cls.add_binary_comparison_operator('==')
     ## mac48-address.h (module 'network'): ns3::Mac48Address::Mac48Address(ns3::Mac48Address const & arg0) [copy constructor]
     cls.add_constructor([param('ns3::Mac48Address const &', 'arg0')])
@@ -2248,8 +2248,8 @@
 
 def register_Ns3Mac64Address_methods(root_module, cls):
     cls.add_binary_comparison_operator('!=')
-    cls.add_binary_comparison_operator('<')
     cls.add_output_stream_operator()
+    cls.add_binary_comparison_operator('<')
     cls.add_binary_comparison_operator('==')
     ## mac64-address.h (module 'network'): ns3::Mac64Address::Mac64Address(ns3::Mac64Address const & arg0) [copy constructor]
     cls.add_constructor([param('ns3::Mac64Address const &', 'arg0')])
@@ -3464,8 +3464,8 @@
 
 def register_Ns3TypeId_methods(root_module, cls):
     cls.add_binary_comparison_operator('!=')
-    cls.add_binary_comparison_operator('<')
     cls.add_output_stream_operator()
+    cls.add_binary_comparison_operator('<')
     cls.add_binary_comparison_operator('==')
     ## type-id.h (module 'core'): ns3::TypeId::TypeId(char const * name) [constructor]
     cls.add_constructor([param('char const *', 'name')])
@@ -3659,8 +3659,10 @@
     return
 
 def register_Ns3Int64x64_t_methods(root_module, cls):
+    cls.add_binary_comparison_operator('<=')
     cls.add_binary_comparison_operator('!=')
     cls.add_inplace_numeric_operator('+=', param('ns3::int64x64_t const &', 'right'))
+    cls.add_output_stream_operator()
     cls.add_binary_numeric_operator('*', root_module['ns3::int64x64_t'], root_module['ns3::int64x64_t'], param('long long unsigned int const', 'right'))
     cls.add_binary_numeric_operator('*', root_module['ns3::int64x64_t'], root_module['ns3::int64x64_t'], param('long unsigned int const', 'right'))
     cls.add_binary_numeric_operator('*', root_module['ns3::int64x64_t'], root_module['ns3::int64x64_t'], param('unsigned int const', 'right'))
@@ -3715,8 +3717,6 @@
     cls.add_inplace_numeric_operator('*=', param('ns3::int64x64_t const &', 'right'))
     cls.add_inplace_numeric_operator('-=', param('ns3::int64x64_t const &', 'right'))
     cls.add_inplace_numeric_operator('/=', param('ns3::int64x64_t const &', 'right'))
-    cls.add_output_stream_operator()
-    cls.add_binary_comparison_operator('<=')
     cls.add_binary_comparison_operator('==')
     cls.add_binary_comparison_operator('>=')
     ## int64x64-double.h (module 'core'): ns3::int64x64_t::int64x64_t() [constructor]
@@ -5344,15 +5344,15 @@
     return
 
 def register_Ns3Time_methods(root_module, cls):
+    cls.add_binary_comparison_operator('<=')
     cls.add_binary_comparison_operator('!=')
     cls.add_inplace_numeric_operator('+=', param('ns3::Time const &', 'right'))
+    cls.add_output_stream_operator()
     cls.add_binary_numeric_operator('+', root_module['ns3::Time'], root_module['ns3::Time'], param('ns3::Time const &', 'right'))
     cls.add_binary_numeric_operator('-', root_module['ns3::Time'], root_module['ns3::Time'], param('ns3::Time const &', 'right'))
     cls.add_binary_comparison_operator('<')
     cls.add_binary_comparison_operator('>')
     cls.add_inplace_numeric_operator('-=', param('ns3::Time const &', 'right'))
-    cls.add_output_stream_operator()
-    cls.add_binary_comparison_operator('<=')
     cls.add_binary_comparison_operator('==')
     cls.add_binary_comparison_operator('>=')
     ## nstime.h (module 'core'): ns3::Time::Time() [constructor]
diff -Naur ns-3.18/src/network/model/packet-metadata.cc ns-3.18.1/src/network/model/packet-metadata.cc
--- ns-3.18/src/network/model/packet-metadata.cc	2013-08-29 22:36:58.000000000 -0700
+++ ns-3.18.1/src/network/model/packet-metadata.cc	2013-11-15 16:40:48.643760980 -0800
@@ -1301,8 +1301,8 @@
   buffer = ReadFromRawU64 (m_packetUid, start, buffer, size);
   desSize -= 8;
 
-  struct PacketMetadata::SmallItem item;
-  struct PacketMetadata::ExtraItem extraItem;
+  struct PacketMetadata::SmallItem item = {0};
+  struct PacketMetadata::ExtraItem extraItem = {0};
   while (desSize > 0)
     {
       uint32_t uidStringSize = 0;
diff -Naur ns-3.18/src/propagation/bindings/modulegen__gcc_ILP32.py ns-3.18.1/src/propagation/bindings/modulegen__gcc_ILP32.py
--- ns-3.18/src/propagation/bindings/modulegen__gcc_ILP32.py	2013-08-29 22:36:58.000000000 -0700
+++ ns-3.18.1/src/propagation/bindings/modulegen__gcc_ILP32.py	2013-11-15 16:40:48.527760980 -0800
@@ -184,14 +184,14 @@
     module.add_class('Vector3DChecker', import_from_module='ns.core', parent=root_module['ns3::AttributeChecker'])
     ## vector.h (module 'core'): ns3::Vector3DValue [class]
     module.add_class('Vector3DValue', import_from_module='ns.core', parent=root_module['ns3::AttributeValue'])
-    typehandlers.add_type_alias('ns3::Vector3DValue', 'ns3::VectorValue')
-    typehandlers.add_type_alias('ns3::Vector3DValue*', 'ns3::VectorValue*')
-    typehandlers.add_type_alias('ns3::Vector3DValue&', 'ns3::VectorValue&')
-    module.add_typedef(root_module['ns3::Vector3DValue'], 'VectorValue')
     typehandlers.add_type_alias('ns3::Vector3D', 'ns3::Vector')
     typehandlers.add_type_alias('ns3::Vector3D*', 'ns3::Vector*')
     typehandlers.add_type_alias('ns3::Vector3D&', 'ns3::Vector&')
     module.add_typedef(root_module['ns3::Vector3D'], 'Vector')
+    typehandlers.add_type_alias('ns3::Vector3DValue', 'ns3::VectorValue')
+    typehandlers.add_type_alias('ns3::Vector3DValue*', 'ns3::VectorValue*')
+    typehandlers.add_type_alias('ns3::Vector3DValue&', 'ns3::VectorValue&')
+    module.add_typedef(root_module['ns3::Vector3DValue'], 'VectorValue')
     typehandlers.add_type_alias('ns3::Vector3DChecker', 'ns3::VectorChecker')
     typehandlers.add_type_alias('ns3::Vector3DChecker*', 'ns3::VectorChecker*')
     typehandlers.add_type_alias('ns3::Vector3DChecker&', 'ns3::VectorChecker&')
diff -Naur ns-3.18/src/propagation/bindings/modulegen__gcc_LP64.py ns-3.18.1/src/propagation/bindings/modulegen__gcc_LP64.py
--- ns-3.18/src/propagation/bindings/modulegen__gcc_LP64.py	2013-08-29 22:36:58.000000000 -0700
+++ ns-3.18.1/src/propagation/bindings/modulegen__gcc_LP64.py	2013-11-15 16:40:48.523760982 -0800
@@ -184,14 +184,14 @@
     module.add_class('Vector3DChecker', import_from_module='ns.core', parent=root_module['ns3::AttributeChecker'])
     ## vector.h (module 'core'): ns3::Vector3DValue [class]
     module.add_class('Vector3DValue', import_from_module='ns.core', parent=root_module['ns3::AttributeValue'])
-    typehandlers.add_type_alias('ns3::Vector3DValue', 'ns3::VectorValue')
-    typehandlers.add_type_alias('ns3::Vector3DValue*', 'ns3::VectorValue*')
-    typehandlers.add_type_alias('ns3::Vector3DValue&', 'ns3::VectorValue&')
-    module.add_typedef(root_module['ns3::Vector3DValue'], 'VectorValue')
     typehandlers.add_type_alias('ns3::Vector3D', 'ns3::Vector')
     typehandlers.add_type_alias('ns3::Vector3D*', 'ns3::Vector*')
     typehandlers.add_type_alias('ns3::Vector3D&', 'ns3::Vector&')
     module.add_typedef(root_module['ns3::Vector3D'], 'Vector')
+    typehandlers.add_type_alias('ns3::Vector3DValue', 'ns3::VectorValue')
+    typehandlers.add_type_alias('ns3::Vector3DValue*', 'ns3::VectorValue*')
+    typehandlers.add_type_alias('ns3::Vector3DValue&', 'ns3::VectorValue&')
+    module.add_typedef(root_module['ns3::Vector3DValue'], 'VectorValue')
     typehandlers.add_type_alias('ns3::Vector3DChecker', 'ns3::VectorChecker')
     typehandlers.add_type_alias('ns3::Vector3DChecker*', 'ns3::VectorChecker*')
     typehandlers.add_type_alias('ns3::Vector3DChecker&', 'ns3::VectorChecker&')
diff -Naur ns-3.18/src/spectrum/bindings/callbacks_list.py ns-3.18.1/src/spectrum/bindings/callbacks_list.py
--- ns-3.18/src/spectrum/bindings/callbacks_list.py	2013-08-29 22:36:58.000000000 -0700
+++ ns-3.18.1/src/spectrum/bindings/callbacks_list.py	2013-11-15 16:40:48.303760976 -0800
@@ -1,7 +1,7 @@
 callback_classes = [
+    ['void', 'ns3::Ptr<ns3::Packet const>', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'],
     ['void', 'ns3::Ptr<ns3::Packet>', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'],
     ['void', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'],
-    ['void', 'ns3::Ptr<ns3::Packet const>', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'],
     ['bool', 'ns3::Ptr<ns3::Packet>', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'],
     ['bool', 'ns3::Ptr<ns3::NetDevice>', 'ns3::Ptr<ns3::Packet const>', 'unsigned short', 'ns3::Address const&', 'ns3::Address const&', 'ns3::NetDevice::PacketType', 'ns3::empty', 'ns3::empty', 'ns3::empty'],
     ['bool', 'ns3::Ptr<ns3::NetDevice>', 'ns3::Ptr<ns3::Packet const>', 'unsigned short', 'ns3::Address const&', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty', 'ns3::empty'],
diff -Naur ns-3.18/src/spectrum/bindings/modulegen__gcc_ILP32.py ns-3.18.1/src/spectrum/bindings/modulegen__gcc_ILP32.py
--- ns-3.18/src/spectrum/bindings/modulegen__gcc_ILP32.py	2013-08-29 22:36:58.000000000 -0700
+++ ns-3.18.1/src/spectrum/bindings/modulegen__gcc_ILP32.py	2013-11-15 16:40:48.303760976 -0800
@@ -389,6 +389,9 @@
     module.add_container('std::vector< double >', 'double', container_type='vector')
     module.add_container('ns3::Bands', 'ns3::BandInfo', container_type='vector')
     module.add_container('std::vector< ns3::Ptr< ns3::SpectrumPhy > >', 'ns3::Ptr< ns3::SpectrumPhy >', container_type='vector')
+    typehandlers.add_type_alias('ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'ns3::GenericPhyTxEndCallback')
+    typehandlers.add_type_alias('ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >*', 'ns3::GenericPhyTxEndCallback*')
+    typehandlers.add_type_alias('ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >&', 'ns3::GenericPhyTxEndCallback&')
     typehandlers.add_type_alias('ns3::Callback< void, ns3::Ptr< ns3::Packet >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'ns3::GenericPhyRxEndOkCallback')
     typehandlers.add_type_alias('ns3::Callback< void, ns3::Ptr< ns3::Packet >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >*', 'ns3::GenericPhyRxEndOkCallback*')
     typehandlers.add_type_alias('ns3::Callback< void, ns3::Ptr< ns3::Packet >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >&', 'ns3::GenericPhyRxEndOkCallback&')
@@ -399,6 +402,10 @@
     typehandlers.add_type_alias('ns3::Vector3DValue*', 'ns3::VectorValue*')
     typehandlers.add_type_alias('ns3::Vector3DValue&', 'ns3::VectorValue&')
     module.add_typedef(root_module['ns3::Vector3DValue'], 'VectorValue')
+    typehandlers.add_type_alias('ns3::Vector3D', 'ns3::Vector')
+    typehandlers.add_type_alias('ns3::Vector3D*', 'ns3::Vector*')
+    typehandlers.add_type_alias('ns3::Vector3D&', 'ns3::Vector&')
+    module.add_typedef(root_module['ns3::Vector3D'], 'Vector')
     typehandlers.add_type_alias('ns3::Callback< void, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'ns3::GenericPhyRxStartCallback')
     typehandlers.add_type_alias('ns3::Callback< void, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >*', 'ns3::GenericPhyRxStartCallback*')
     typehandlers.add_type_alias('ns3::Callback< void, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >&', 'ns3::GenericPhyRxStartCallback&')
@@ -408,10 +415,6 @@
     typehandlers.add_type_alias('uint32_t', 'ns3::SpectrumModelUid_t')
     typehandlers.add_type_alias('uint32_t*', 'ns3::SpectrumModelUid_t*')
     typehandlers.add_type_alias('uint32_t&', 'ns3::SpectrumModelUid_t&')
-    typehandlers.add_type_alias('ns3::Vector3D', 'ns3::Vector')
-    typehandlers.add_type_alias('ns3::Vector3D*', 'ns3::Vector*')
-    typehandlers.add_type_alias('ns3::Vector3D&', 'ns3::Vector&')
-    module.add_typedef(root_module['ns3::Vector3D'], 'Vector')
     typehandlers.add_type_alias('std::map< unsigned int, ns3::TxSpectrumModelInfo, std::less< unsigned int >, std::allocator< std::pair< unsigned int const, ns3::TxSpectrumModelInfo > > >', 'ns3::TxSpectrumModelInfoMap_t')
     typehandlers.add_type_alias('std::map< unsigned int, ns3::TxSpectrumModelInfo, std::less< unsigned int >, std::allocator< std::pair< unsigned int const, ns3::TxSpectrumModelInfo > > >*', 'ns3::TxSpectrumModelInfoMap_t*')
     typehandlers.add_type_alias('std::map< unsigned int, ns3::TxSpectrumModelInfo, std::less< unsigned int >, std::allocator< std::pair< unsigned int const, ns3::TxSpectrumModelInfo > > >&', 'ns3::TxSpectrumModelInfoMap_t&')
@@ -419,18 +422,15 @@
     typehandlers.add_type_alias('ns3::Vector3DChecker*', 'ns3::VectorChecker*')
     typehandlers.add_type_alias('ns3::Vector3DChecker&', 'ns3::VectorChecker&')
     module.add_typedef(root_module['ns3::Vector3DChecker'], 'VectorChecker')
-    typehandlers.add_type_alias('ns3::Callback< bool, ns3::Ptr< ns3::Packet >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'ns3::GenericPhyTxStartCallback')
-    typehandlers.add_type_alias('ns3::Callback< bool, ns3::Ptr< ns3::Packet >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >*', 'ns3::GenericPhyTxStartCallback*')
-    typehandlers.add_type_alias('ns3::Callback< bool, ns3::Ptr< ns3::Packet >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >&', 'ns3::GenericPhyTxStartCallback&')
     typehandlers.add_type_alias('ns3::Callback< void, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'ns3::GenericPhyRxEndErrorCallback')
     typehandlers.add_type_alias('ns3::Callback< void, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >*', 'ns3::GenericPhyRxEndErrorCallback*')
     typehandlers.add_type_alias('ns3::Callback< void, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >&', 'ns3::GenericPhyRxEndErrorCallback&')
     typehandlers.add_type_alias('std::vector< double, std::allocator< double > >', 'ns3::Values')
     typehandlers.add_type_alias('std::vector< double, std::allocator< double > >*', 'ns3::Values*')
     typehandlers.add_type_alias('std::vector< double, std::allocator< double > >&', 'ns3::Values&')
-    typehandlers.add_type_alias('ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'ns3::GenericPhyTxEndCallback')
-    typehandlers.add_type_alias('ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >*', 'ns3::GenericPhyTxEndCallback*')
-    typehandlers.add_type_alias('ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >&', 'ns3::GenericPhyTxEndCallback&')
+    typehandlers.add_type_alias('ns3::Callback< bool, ns3::Ptr< ns3::Packet >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'ns3::GenericPhyTxStartCallback')
+    typehandlers.add_type_alias('ns3::Callback< bool, ns3::Ptr< ns3::Packet >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >*', 'ns3::GenericPhyTxStartCallback*')
+    typehandlers.add_type_alias('ns3::Callback< bool, ns3::Ptr< ns3::Packet >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >&', 'ns3::GenericPhyTxStartCallback&')
     typehandlers.add_type_alias('std::map< unsigned int, ns3::SpectrumConverter, std::less< unsigned int >, std::allocator< std::pair< unsigned int const, ns3::SpectrumConverter > > >', 'ns3::SpectrumConverterMap_t')
     typehandlers.add_type_alias('std::map< unsigned int, ns3::SpectrumConverter, std::less< unsigned int >, std::allocator< std::pair< unsigned int const, ns3::SpectrumConverter > > >*', 'ns3::SpectrumConverterMap_t*')
     typehandlers.add_type_alias('std::map< unsigned int, ns3::SpectrumConverter, std::less< unsigned int >, std::allocator< std::pair< unsigned int const, ns3::SpectrumConverter > > >&', 'ns3::SpectrumConverterMap_t&')
diff -Naur ns-3.18/src/spectrum/bindings/modulegen__gcc_LP64.py ns-3.18.1/src/spectrum/bindings/modulegen__gcc_LP64.py
--- ns-3.18/src/spectrum/bindings/modulegen__gcc_LP64.py	2013-08-29 22:36:58.000000000 -0700
+++ ns-3.18.1/src/spectrum/bindings/modulegen__gcc_LP64.py	2013-11-15 16:40:48.299760975 -0800
@@ -389,6 +389,9 @@
     module.add_container('std::vector< double >', 'double', container_type='vector')
     module.add_container('ns3::Bands', 'ns3::BandInfo', container_type='vector')
     module.add_container('std::vector< ns3::Ptr< ns3::SpectrumPhy > >', 'ns3::Ptr< ns3::SpectrumPhy >', container_type='vector')
+    typehandlers.add_type_alias('ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'ns3::GenericPhyTxEndCallback')
+    typehandlers.add_type_alias('ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >*', 'ns3::GenericPhyTxEndCallback*')
+    typehandlers.add_type_alias('ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >&', 'ns3::GenericPhyTxEndCallback&')
     typehandlers.add_type_alias('ns3::Callback< void, ns3::Ptr< ns3::Packet >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'ns3::GenericPhyRxEndOkCallback')
     typehandlers.add_type_alias('ns3::Callback< void, ns3::Ptr< ns3::Packet >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >*', 'ns3::GenericPhyRxEndOkCallback*')
     typehandlers.add_type_alias('ns3::Callback< void, ns3::Ptr< ns3::Packet >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >&', 'ns3::GenericPhyRxEndOkCallback&')
@@ -399,6 +402,10 @@
     typehandlers.add_type_alias('ns3::Vector3DValue*', 'ns3::VectorValue*')
     typehandlers.add_type_alias('ns3::Vector3DValue&', 'ns3::VectorValue&')
     module.add_typedef(root_module['ns3::Vector3DValue'], 'VectorValue')
+    typehandlers.add_type_alias('ns3::Vector3D', 'ns3::Vector')
+    typehandlers.add_type_alias('ns3::Vector3D*', 'ns3::Vector*')
+    typehandlers.add_type_alias('ns3::Vector3D&', 'ns3::Vector&')
+    module.add_typedef(root_module['ns3::Vector3D'], 'Vector')
     typehandlers.add_type_alias('ns3::Callback< void, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'ns3::GenericPhyRxStartCallback')
     typehandlers.add_type_alias('ns3::Callback< void, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >*', 'ns3::GenericPhyRxStartCallback*')
     typehandlers.add_type_alias('ns3::Callback< void, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >&', 'ns3::GenericPhyRxStartCallback&')
@@ -408,10 +415,6 @@
     typehandlers.add_type_alias('uint32_t', 'ns3::SpectrumModelUid_t')
     typehandlers.add_type_alias('uint32_t*', 'ns3::SpectrumModelUid_t*')
     typehandlers.add_type_alias('uint32_t&', 'ns3::SpectrumModelUid_t&')
-    typehandlers.add_type_alias('ns3::Vector3D', 'ns3::Vector')
-    typehandlers.add_type_alias('ns3::Vector3D*', 'ns3::Vector*')
-    typehandlers.add_type_alias('ns3::Vector3D&', 'ns3::Vector&')
-    module.add_typedef(root_module['ns3::Vector3D'], 'Vector')
     typehandlers.add_type_alias('std::map< unsigned int, ns3::TxSpectrumModelInfo, std::less< unsigned int >, std::allocator< std::pair< unsigned int const, ns3::TxSpectrumModelInfo > > >', 'ns3::TxSpectrumModelInfoMap_t')
     typehandlers.add_type_alias('std::map< unsigned int, ns3::TxSpectrumModelInfo, std::less< unsigned int >, std::allocator< std::pair< unsigned int const, ns3::TxSpectrumModelInfo > > >*', 'ns3::TxSpectrumModelInfoMap_t*')
     typehandlers.add_type_alias('std::map< unsigned int, ns3::TxSpectrumModelInfo, std::less< unsigned int >, std::allocator< std::pair< unsigned int const, ns3::TxSpectrumModelInfo > > >&', 'ns3::TxSpectrumModelInfoMap_t&')
@@ -419,18 +422,15 @@
     typehandlers.add_type_alias('ns3::Vector3DChecker*', 'ns3::VectorChecker*')
     typehandlers.add_type_alias('ns3::Vector3DChecker&', 'ns3::VectorChecker&')
     module.add_typedef(root_module['ns3::Vector3DChecker'], 'VectorChecker')
-    typehandlers.add_type_alias('ns3::Callback< bool, ns3::Ptr< ns3::Packet >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'ns3::GenericPhyTxStartCallback')
-    typehandlers.add_type_alias('ns3::Callback< bool, ns3::Ptr< ns3::Packet >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >*', 'ns3::GenericPhyTxStartCallback*')
-    typehandlers.add_type_alias('ns3::Callback< bool, ns3::Ptr< ns3::Packet >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >&', 'ns3::GenericPhyTxStartCallback&')
     typehandlers.add_type_alias('ns3::Callback< void, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'ns3::GenericPhyRxEndErrorCallback')
     typehandlers.add_type_alias('ns3::Callback< void, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >*', 'ns3::GenericPhyRxEndErrorCallback*')
     typehandlers.add_type_alias('ns3::Callback< void, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >&', 'ns3::GenericPhyRxEndErrorCallback&')
     typehandlers.add_type_alias('std::vector< double, std::allocator< double > >', 'ns3::Values')
     typehandlers.add_type_alias('std::vector< double, std::allocator< double > >*', 'ns3::Values*')
     typehandlers.add_type_alias('std::vector< double, std::allocator< double > >&', 'ns3::Values&')
-    typehandlers.add_type_alias('ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'ns3::GenericPhyTxEndCallback')
-    typehandlers.add_type_alias('ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >*', 'ns3::GenericPhyTxEndCallback*')
-    typehandlers.add_type_alias('ns3::Callback< void, ns3::Ptr< ns3::Packet const >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >&', 'ns3::GenericPhyTxEndCallback&')
+    typehandlers.add_type_alias('ns3::Callback< bool, ns3::Ptr< ns3::Packet >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >', 'ns3::GenericPhyTxStartCallback')
+    typehandlers.add_type_alias('ns3::Callback< bool, ns3::Ptr< ns3::Packet >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >*', 'ns3::GenericPhyTxStartCallback*')
+    typehandlers.add_type_alias('ns3::Callback< bool, ns3::Ptr< ns3::Packet >, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty, ns3::empty >&', 'ns3::GenericPhyTxStartCallback&')
     typehandlers.add_type_alias('std::map< unsigned int, ns3::SpectrumConverter, std::less< unsigned int >, std::allocator< std::pair< unsigned int const, ns3::SpectrumConverter > > >', 'ns3::SpectrumConverterMap_t')
     typehandlers.add_type_alias('std::map< unsigned int, ns3::SpectrumConverter, std::less< unsigned int >, std::allocator< std::pair< unsigned int const, ns3::SpectrumConverter > > >*', 'ns3::SpectrumConverterMap_t*')
     typehandlers.add_type_alias('std::map< unsigned int, ns3::SpectrumConverter, std::less< unsigned int >, std::allocator< std::pair< unsigned int const, ns3::SpectrumConverter > > >&', 'ns3::SpectrumConverterMap_t&')
diff -Naur ns-3.18/src/uan/bindings/modulegen__gcc_ILP32.py ns-3.18.1/src/uan/bindings/modulegen__gcc_ILP32.py
--- ns-3.18/src/uan/bindings/modulegen__gcc_ILP32.py	2013-08-29 22:36:59.000000000 -0700
+++ ns-3.18.1/src/uan/bindings/modulegen__gcc_ILP32.py	2013-11-15 16:40:48.419760976 -0800
@@ -387,14 +387,14 @@
     module.add_container('std::list< ns3::Ptr< ns3::UanPhy > >', 'ns3::Ptr< ns3::UanPhy >', container_type='list')
     module.add_container('std::vector< std::pair< ns3::Ptr< ns3::UanNetDevice >, ns3::Ptr< ns3::UanTransducer > > >', 'std::pair< ns3::Ptr< ns3::UanNetDevice >, ns3::Ptr< ns3::UanTransducer > >', container_type='vector')
     module.add_container('std::list< ns3::Ptr< ns3::UanTransducer > >', 'ns3::Ptr< ns3::UanTransducer >', container_type='list')
-    typehandlers.add_type_alias('ns3::Vector3D', 'ns3::Vector')
-    typehandlers.add_type_alias('ns3::Vector3D*', 'ns3::Vector*')
-    typehandlers.add_type_alias('ns3::Vector3D&', 'ns3::Vector&')
-    module.add_typedef(root_module['ns3::Vector3D'], 'Vector')
     typehandlers.add_type_alias('ns3::Vector3DValue', 'ns3::VectorValue')
     typehandlers.add_type_alias('ns3::Vector3DValue*', 'ns3::VectorValue*')
     typehandlers.add_type_alias('ns3::Vector3DValue&', 'ns3::VectorValue&')
     module.add_typedef(root_module['ns3::Vector3DValue'], 'VectorValue')
+    typehandlers.add_type_alias('ns3::Vector3D', 'ns3::Vector')
+    typehandlers.add_type_alias('ns3::Vector3D*', 'ns3::Vector*')
+    typehandlers.add_type_alias('ns3::Vector3D&', 'ns3::Vector&')
+    module.add_typedef(root_module['ns3::Vector3D'], 'Vector')
     typehandlers.add_type_alias('ns3::Vector3DChecker', 'ns3::VectorChecker')
     typehandlers.add_type_alias('ns3::Vector3DChecker*', 'ns3::VectorChecker*')
     typehandlers.add_type_alias('ns3::Vector3DChecker&', 'ns3::VectorChecker&')
diff -Naur ns-3.18/src/uan/bindings/modulegen__gcc_LP64.py ns-3.18.1/src/uan/bindings/modulegen__gcc_LP64.py
--- ns-3.18/src/uan/bindings/modulegen__gcc_LP64.py	2013-08-29 22:36:59.000000000 -0700
+++ ns-3.18.1/src/uan/bindings/modulegen__gcc_LP64.py	2013-11-15 16:40:48.411760977 -0800
@@ -387,14 +387,14 @@
     module.add_container('std::list< ns3::Ptr< ns3::UanPhy > >', 'ns3::Ptr< ns3::UanPhy >', container_type='list')
     module.add_container('std::vector< std::pair< ns3::Ptr< ns3::UanNetDevice >, ns3::Ptr< ns3::UanTransducer > > >', 'std::pair< ns3::Ptr< ns3::UanNetDevice >, ns3::Ptr< ns3::UanTransducer > >', container_type='vector')
     module.add_container('std::list< ns3::Ptr< ns3::UanTransducer > >', 'ns3::Ptr< ns3::UanTransducer >', container_type='list')
-    typehandlers.add_type_alias('ns3::Vector3D', 'ns3::Vector')
-    typehandlers.add_type_alias('ns3::Vector3D*', 'ns3::Vector*')
-    typehandlers.add_type_alias('ns3::Vector3D&', 'ns3::Vector&')
-    module.add_typedef(root_module['ns3::Vector3D'], 'Vector')
     typehandlers.add_type_alias('ns3::Vector3DValue', 'ns3::VectorValue')
     typehandlers.add_type_alias('ns3::Vector3DValue*', 'ns3::VectorValue*')
     typehandlers.add_type_alias('ns3::Vector3DValue&', 'ns3::VectorValue&')
     module.add_typedef(root_module['ns3::Vector3DValue'], 'VectorValue')
+    typehandlers.add_type_alias('ns3::Vector3D', 'ns3::Vector')
+    typehandlers.add_type_alias('ns3::Vector3D*', 'ns3::Vector*')
+    typehandlers.add_type_alias('ns3::Vector3D&', 'ns3::Vector&')
+    module.add_typedef(root_module['ns3::Vector3D'], 'Vector')
     typehandlers.add_type_alias('ns3::Vector3DChecker', 'ns3::VectorChecker')
     typehandlers.add_type_alias('ns3::Vector3DChecker*', 'ns3::VectorChecker*')
     typehandlers.add_type_alias('ns3::Vector3DChecker&', 'ns3::VectorChecker&')
diff -Naur ns-3.18/src/uan/examples/uan-rc-example.cc ns-3.18.1/src/uan/examples/uan-rc-example.cc
--- ns-3.18/src/uan/examples/uan-rc-example.cc	2013-08-29 22:36:59.000000000 -0700
+++ ns-3.18.1/src/uan/examples/uan-rc-example.cc	2013-11-15 16:40:48.395760977 -0800
@@ -174,7 +174,6 @@
               "NumberOfRates", UintegerValue (m_numRates),
               "NumberOfNodes", UintegerValue (nNodes),
               "MaxReservations", UintegerValue (a),
-              "RetryRate", DoubleValue (1/30.0),
               "SIFS", TimeValue (m_sifs),
               "MaxPropDelay", TimeValue (pDelay),
               "FrameSize", UintegerValue (m_pktSize));
@@ -186,8 +185,7 @@
 
   uan.SetMac ("ns3::UanMacRc",
               "NumberOfRates", UintegerValue (m_numRates),
-              "MaxPropDelay", TimeValue (pDelay),
-              "RetryRate", DoubleValue (1.0/100.0));
+              "MaxPropDelay", TimeValue (pDelay));
   NodeContainer nodes;
   nodes.Create (nNodes);
   NetDeviceContainer devices = uan.Install (nodes, chan);
diff -Naur ns-3.18/src/uan/model/uan-mac-rc.cc ns-3.18.1/src/uan/model/uan-mac-rc.cc
--- ns-3.18/src/uan/model/uan-mac-rc.cc	2013-08-29 22:36:59.000000000 -0700
+++ ns-3.18.1/src/uan/model/uan-mac-rc.cc	2013-11-15 16:40:48.399760977 -0800
@@ -244,11 +244,6 @@
                    DoubleValue (0.01),
                    MakeDoubleAccessor (&UanMacRc::m_retryStep),
                    MakeDoubleChecker<double> ())
-    .AddAttribute ("NumberOfRetryRates",
-                   "Number of retry rates",
-                   UintegerValue (100),
-                   MakeUintegerAccessor (&UanMacRc::m_numRetryRates),
-                   MakeUintegerChecker<uint16_t> ())
     .AddAttribute ("MaxPropDelay",
                    "Maximum possible propagation delay to gateway",
                    TimeValue (Seconds (2)),
diff -Naur ns-3.18/src/uan/model/uan-mac-rc-gw.cc ns-3.18.1/src/uan/model/uan-mac-rc-gw.cc
--- ns-3.18/src/uan/model/uan-mac-rc-gw.cc	2013-08-29 22:36:59.000000000 -0700
+++ ns-3.18.1/src/uan/model/uan-mac-rc-gw.cc	2013-11-15 16:40:48.403760977 -0800
@@ -122,11 +122,6 @@
                    UintegerValue (1023),
                    MakeUintegerAccessor (&UanMacRcGw::m_numRates),
                    MakeUintegerChecker<uint32_t> ())
-    .AddAttribute ("RetryRate",
-                   "Number of retry rates per second at non-gateway nodes",
-                   DoubleValue (1 / 10.0),
-                   MakeDoubleAccessor (&UanMacRcGw::m_retryRate),
-                   MakeDoubleChecker<double> ())
     .AddAttribute ("MaxPropDelay",
                    "Maximum propagation delay between gateway and non-gateway nodes",
                    TimeValue (Seconds (2)),
@@ -152,11 +147,6 @@
                    DoubleValue (0.01),
                    MakeDoubleAccessor (&UanMacRcGw::m_retryStep),
                    MakeDoubleChecker<double> ())
-    .AddAttribute ("NumberOfRetryRates",
-                   "Number of retry rates",
-                   UintegerValue (100),
-                   MakeUintegerAccessor (&UanMacRcGw::m_numRetryRates),
-                   MakeUintegerChecker<uint16_t> ())
     .AddAttribute ("TotalRate",
                    "Total available channel rate in bps (for a single channel, without splitting reservation channel)",
                    UintegerValue (4096),
diff -Naur ns-3.18/src/uan/model/uan-mac-rc-gw.h ns-3.18.1/src/uan/model/uan-mac-rc-gw.h
--- ns-3.18/src/uan/model/uan-mac-rc-gw.h	2013-08-29 22:36:59.000000000 -0700
+++ ns-3.18.1/src/uan/model/uan-mac-rc-gw.h	2013-11-15 16:40:48.403760977 -0800
@@ -116,7 +116,6 @@
   uint32_t m_ctsSizeN;
   uint32_t m_ctsSizeG;
   uint32_t m_ackSize;
-  double m_retryRate;
   uint16_t m_currentRetryRate;
   uint32_t m_currentRateNum;
   uint32_t m_numNodes;
@@ -124,7 +123,6 @@
   uint32_t m_rateStep;
   uint32_t m_frameSize;
 
-  uint16_t m_numRetryRates;
   double m_minRetryRate;
   double m_retryStep;
 
diff -Naur ns-3.18/src/uan/model/uan-mac-rc.h ns-3.18.1/src/uan/model/uan-mac-rc.h
--- ns-3.18/src/uan/model/uan-mac-rc.h	2013-08-29 22:36:59.000000000 -0700
+++ ns-3.18.1/src/uan/model/uan-mac-rc.h	2013-11-15 16:40:48.407760977 -0800
@@ -185,7 +185,6 @@
   Time m_sifs;
   Time m_learnedProp;
 
-  uint16_t m_numRetryRates;
   double m_minRetryRate;
   double m_retryStep;
 
diff -Naur ns-3.18/src/visualizer/doc/readme.txt ns-3.18.1/src/visualizer/doc/readme.txt
--- ns-3.18/src/visualizer/doc/readme.txt	2013-08-29 22:36:59.000000000 -0700
+++ ns-3.18.1/src/visualizer/doc/readme.txt	2013-11-15 16:40:48.895760990 -0800
@@ -6,4 +6,4 @@
 it is mostly written in Python, it works both with Python and pure C++
 simulations.
 
-For more information, see http://www.nsnam.org/wiki/index.php/PyViz
+For more information, see http://www.nsnam.org/wiki/PyViz
diff -Naur ns-3.18/src/wifi/bindings/modulegen__gcc_ILP32.py ns-3.18.1/src/wifi/bindings/modulegen__gcc_ILP32.py
--- ns-3.18/src/wifi/bindings/modulegen__gcc_ILP32.py	2013-08-29 22:36:59.000000000 -0700
+++ ns-3.18.1/src/wifi/bindings/modulegen__gcc_ILP32.py	2013-11-15 16:40:48.615760979 -0800
@@ -20,6 +20,8 @@
 def register_types(module):
     root_module = module.get_root()
     
+    ## propagation-environment.h (module 'propagation'): ns3::EnvironmentType [enumeration]
+    module.add_enum('EnvironmentType', ['UrbanEnvironment', 'SubUrbanEnvironment', 'OpenAreasEnvironment'], import_from_module='ns.propagation')
     ## qos-utils.h (module 'wifi'): ns3::AcIndex [enumeration]
     module.add_enum('AcIndex', ['AC_BE', 'AC_BK', 'AC_VI', 'AC_VO', 'AC_BE_NQOS', 'AC_UNDEF'])
     ## wifi-mac-header.h (module 'wifi'): ns3::WifiMacType [enumeration]
@@ -31,7 +33,7 @@
     ## wifi-mode.h (module 'wifi'): ns3::WifiModulationClass [enumeration]
     module.add_enum('WifiModulationClass', ['WIFI_MOD_CLASS_UNKNOWN', 'WIFI_MOD_CLASS_IR', 'WIFI_MOD_CLASS_FHSS', 'WIFI_MOD_CLASS_DSSS', 'WIFI_MOD_CLASS_ERP_PBCC', 'WIFI_MOD_CLASS_DSSS_OFDM', 'WIFI_MOD_CLASS_ERP_OFDM', 'WIFI_MOD_CLASS_OFDM', 'WIFI_MOD_CLASS_HT'])
     ## wifi-phy-standard.h (module 'wifi'): ns3::WifiPhyStandard [enumeration]
-    module.add_enum('WifiPhyStandard', ['WIFI_PHY_STANDARD_80211a', 'WIFI_PHY_STANDARD_80211b', 'WIFI_PHY_STANDARD_80211g', 'WIFI_PHY_STANDARD_80211_10MHZ', 'WIFI_PHY_STANDARD_80211_5MHZ', 'WIFI_PHY_STANDARD_holland', 'WIFI_PHY_STANDARD_80211p_CCH', 'WIFI_PHY_STANDARD_80211p_SCH', 'WIFI_PHY_STANDARD_80211n_2_4GHZ', 'WIFI_PHY_STANDARD_80211n_5GHZ'])
+    module.add_enum('WifiPhyStandard', ['WIFI_PHY_STANDARD_80211a', 'WIFI_PHY_STANDARD_80211b', 'WIFI_PHY_STANDARD_80211g', 'WIFI_PHY_STANDARD_80211_10MHZ', 'WIFI_PHY_STANDARD_80211_5MHZ', 'WIFI_PHY_STANDARD_holland', 'WIFI_PHY_STANDARD_80211n_2_4GHZ', 'WIFI_PHY_STANDARD_80211n_5GHZ'])
     ## qos-tag.h (module 'wifi'): ns3::UserPriority [enumeration]
     module.add_enum('UserPriority', ['UP_BK', 'UP_BE', 'UP_EE', 'UP_CL', 'UP_VI', 'UP_VO', 'UP_NC'])
     ## wifi-mode.h (module 'wifi'): ns3::WifiCodeRate [enumeration]
@@ -40,8 +42,6 @@
     module.add_enum('TypeOfStation', ['STA', 'AP', 'ADHOC_STA', 'MESH', 'HT_STA', 'HT_AP', 'HT_ADHOC_STA'])
     ## ctrl-headers.h (module 'wifi'): ns3::BlockAckType [enumeration]
     module.add_enum('BlockAckType', ['BASIC_BLOCK_ACK', 'COMPRESSED_BLOCK_ACK', 'MULTI_TID_BLOCK_ACK'])
-    ## propagation-environment.h (module 'propagation'): ns3::EnvironmentType [enumeration]
-    module.add_enum('EnvironmentType', ['UrbanEnvironment', 'SubUrbanEnvironment', 'OpenAreasEnvironment'], import_from_module='ns.propagation')
     ## address.h (module 'network'): ns3::Address [class]
     module.add_class('Address', import_from_module='ns.network')
     ## address.h (module 'network'): ns3::Address::MaxSize_e [enumeration]
@@ -570,9 +570,6 @@
     typehandlers.add_type_alias('std::vector< unsigned char, std::allocator< unsigned char > >', 'ns3::WifiMcsList')
     typehandlers.add_type_alias('std::vector< unsigned char, std::allocator< unsigned char > >*', 'ns3::WifiMcsList*')
     typehandlers.add_type_alias('std::vector< unsigned char, std::allocator< unsigned char > >&', 'ns3::WifiMcsList&')
-    typehandlers.add_type_alias('std::vector< ns3::RateInfo, std::allocator< ns3::RateInfo > >', 'ns3::MinstrelRate')
-    typehandlers.add_type_alias('std::vector< ns3::RateInfo, std::allocator< ns3::RateInfo > >*', 'ns3::MinstrelRate*')
-    typehandlers.add_type_alias('std::vector< ns3::RateInfo, std::allocator< ns3::RateInfo > >&', 'ns3::MinstrelRate&')
     typehandlers.add_type_alias('uint8_t', 'ns3::WifiInformationElementId')
     typehandlers.add_type_alias('uint8_t*', 'ns3::WifiInformationElementId*')
     typehandlers.add_type_alias('uint8_t&', 'ns3::WifiInformationElementId&')
@@ -583,6 +580,9 @@
     typehandlers.add_type_alias('ns3::Vector3D*', 'ns3::Vector*')
     typehandlers.add_type_alias('ns3::Vector3D&', 'ns3::Vector&')
     module.add_typedef(root_module['ns3::Vector3D'], 'Vector')
+    typehandlers.add_type_alias('std::vector< ns3::RateInfo, std::allocator< ns3::RateInfo > >', 'ns3::MinstrelRate')
+    typehandlers.add_type_alias('std::vector< ns3::RateInfo, std::allocator< ns3::RateInfo > >*', 'ns3::MinstrelRate*')
+    typehandlers.add_type_alias('std::vector< ns3::RateInfo, std::allocator< ns3::RateInfo > >&', 'ns3::MinstrelRate&')
     typehandlers.add_type_alias('std::vector< ns3::WifiMode, std::allocator< ns3::WifiMode > >', 'ns3::WifiModeList')
     typehandlers.add_type_alias('std::vector< ns3::WifiMode, std::allocator< ns3::WifiMode > >*', 'ns3::WifiModeList*')
     typehandlers.add_type_alias('std::vector< ns3::WifiMode, std::allocator< ns3::WifiMode > >&', 'ns3::WifiModeList&')
@@ -4334,8 +4334,9 @@
     return
 
 def register_Ns3Int64x64_t_methods(root_module, cls):
-    cls.add_inplace_numeric_operator('+=', param('ns3::int64x64_t const &', 'right'))
+    cls.add_binary_comparison_operator('<=')
     cls.add_binary_comparison_operator('!=')
+    cls.add_inplace_numeric_operator('+=', param('ns3::int64x64_t const &', 'right'))
     cls.add_binary_numeric_operator('*', root_module['ns3::int64x64_t'], root_module['ns3::int64x64_t'], param('long long unsigned int const', 'right'))
     cls.add_binary_numeric_operator('*', root_module['ns3::int64x64_t'], root_module['ns3::int64x64_t'], param('long unsigned int const', 'right'))
     cls.add_binary_numeric_operator('*', root_module['ns3::int64x64_t'], root_module['ns3::int64x64_t'], param('unsigned int const', 'right'))
@@ -4391,7 +4392,6 @@
     cls.add_inplace_numeric_operator('-=', param('ns3::int64x64_t const &', 'right'))
     cls.add_inplace_numeric_operator('/=', param('ns3::int64x64_t const &', 'right'))
     cls.add_output_stream_operator()
-    cls.add_binary_comparison_operator('<=')
     cls.add_binary_comparison_operator('==')
     cls.add_binary_comparison_operator('>=')
     ## int64x64-double.h (module 'core'): ns3::int64x64_t::int64x64_t() [constructor]
@@ -5689,15 +5689,15 @@
     return
 
 def register_Ns3Time_methods(root_module, cls):
-    cls.add_inplace_numeric_operator('+=', param('ns3::Time const &', 'right'))
+    cls.add_binary_comparison_operator('<=')
     cls.add_binary_comparison_operator('!=')
+    cls.add_inplace_numeric_operator('+=', param('ns3::Time const &', 'right'))
     cls.add_binary_numeric_operator('+', root_module['ns3::Time'], root_module['ns3::Time'], param('ns3::Time const &', 'right'))
     cls.add_binary_numeric_operator('-', root_module['ns3::Time'], root_module['ns3::Time'], param('ns3::Time const &', 'right'))
     cls.add_binary_comparison_operator('<')
     cls.add_binary_comparison_operator('>')
     cls.add_inplace_numeric_operator('-=', param('ns3::Time const &', 'right'))
     cls.add_output_stream_operator()
-    cls.add_binary_comparison_operator('<=')
     cls.add_binary_comparison_operator('==')
     cls.add_binary_comparison_operator('>=')
     ## nstime.h (module 'core'): ns3::Time::Time() [constructor]
@@ -6491,11 +6491,6 @@
                    'bool', 
                    [], 
                    is_pure_virtual=True, is_const=True, is_virtual=True)
-    ## wifi-mac.h (module 'wifi'): void ns3::WifiMac::ConfigureCCHDcf(ns3::Ptr<ns3::Dcf> dcf, uint32_t cwmin, uint32_t cwmax, ns3::AcIndex ac) [member function]
-    cls.add_method('ConfigureCCHDcf', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::Dcf >', 'dcf'), param('uint32_t', 'cwmin'), param('uint32_t', 'cwmax'), param('ns3::AcIndex', 'ac')], 
-                   visibility='protected')
     ## wifi-mac.h (module 'wifi'): void ns3::WifiMac::ConfigureDcf(ns3::Ptr<ns3::Dcf> dcf, uint32_t cwmin, uint32_t cwmax, ns3::AcIndex ac) [member function]
     cls.add_method('ConfigureDcf', 
                    'void', 
@@ -13266,6 +13261,10 @@
     cls.add_method('StartBeaconing', 
                    'void', 
                    [])
+    ## ap-wifi-mac.h (module 'wifi'): int64_t ns3::ApWifiMac::AssignStreams(int64_t stream) [member function]
+    cls.add_method('AssignStreams', 
+                   'int64_t', 
+                   [param('int64_t', 'stream')])
     ## ap-wifi-mac.h (module 'wifi'): void ns3::ApWifiMac::Receive(ns3::Ptr<ns3::Packet> packet, ns3::WifiMacHeader const * hdr) [member function]
     cls.add_method('Receive', 
                    'void', 
diff -Naur ns-3.18/src/wifi/bindings/modulegen__gcc_LP64.py ns-3.18.1/src/wifi/bindings/modulegen__gcc_LP64.py
--- ns-3.18/src/wifi/bindings/modulegen__gcc_LP64.py	2013-08-29 22:36:59.000000000 -0700
+++ ns-3.18.1/src/wifi/bindings/modulegen__gcc_LP64.py	2013-11-15 16:40:48.603760981 -0800
@@ -20,6 +20,8 @@
 def register_types(module):
     root_module = module.get_root()
     
+    ## propagation-environment.h (module 'propagation'): ns3::EnvironmentType [enumeration]
+    module.add_enum('EnvironmentType', ['UrbanEnvironment', 'SubUrbanEnvironment', 'OpenAreasEnvironment'], import_from_module='ns.propagation')
     ## qos-utils.h (module 'wifi'): ns3::AcIndex [enumeration]
     module.add_enum('AcIndex', ['AC_BE', 'AC_BK', 'AC_VI', 'AC_VO', 'AC_BE_NQOS', 'AC_UNDEF'])
     ## wifi-mac-header.h (module 'wifi'): ns3::WifiMacType [enumeration]
@@ -31,7 +33,7 @@
     ## wifi-mode.h (module 'wifi'): ns3::WifiModulationClass [enumeration]
     module.add_enum('WifiModulationClass', ['WIFI_MOD_CLASS_UNKNOWN', 'WIFI_MOD_CLASS_IR', 'WIFI_MOD_CLASS_FHSS', 'WIFI_MOD_CLASS_DSSS', 'WIFI_MOD_CLASS_ERP_PBCC', 'WIFI_MOD_CLASS_DSSS_OFDM', 'WIFI_MOD_CLASS_ERP_OFDM', 'WIFI_MOD_CLASS_OFDM', 'WIFI_MOD_CLASS_HT'])
     ## wifi-phy-standard.h (module 'wifi'): ns3::WifiPhyStandard [enumeration]
-    module.add_enum('WifiPhyStandard', ['WIFI_PHY_STANDARD_80211a', 'WIFI_PHY_STANDARD_80211b', 'WIFI_PHY_STANDARD_80211g', 'WIFI_PHY_STANDARD_80211_10MHZ', 'WIFI_PHY_STANDARD_80211_5MHZ', 'WIFI_PHY_STANDARD_holland', 'WIFI_PHY_STANDARD_80211p_CCH', 'WIFI_PHY_STANDARD_80211p_SCH', 'WIFI_PHY_STANDARD_80211n_2_4GHZ', 'WIFI_PHY_STANDARD_80211n_5GHZ'])
+    module.add_enum('WifiPhyStandard', ['WIFI_PHY_STANDARD_80211a', 'WIFI_PHY_STANDARD_80211b', 'WIFI_PHY_STANDARD_80211g', 'WIFI_PHY_STANDARD_80211_10MHZ', 'WIFI_PHY_STANDARD_80211_5MHZ', 'WIFI_PHY_STANDARD_holland', 'WIFI_PHY_STANDARD_80211n_2_4GHZ', 'WIFI_PHY_STANDARD_80211n_5GHZ'])
     ## qos-tag.h (module 'wifi'): ns3::UserPriority [enumeration]
     module.add_enum('UserPriority', ['UP_BK', 'UP_BE', 'UP_EE', 'UP_CL', 'UP_VI', 'UP_VO', 'UP_NC'])
     ## wifi-mode.h (module 'wifi'): ns3::WifiCodeRate [enumeration]
@@ -40,8 +42,6 @@
     module.add_enum('TypeOfStation', ['STA', 'AP', 'ADHOC_STA', 'MESH', 'HT_STA', 'HT_AP', 'HT_ADHOC_STA'])
     ## ctrl-headers.h (module 'wifi'): ns3::BlockAckType [enumeration]
     module.add_enum('BlockAckType', ['BASIC_BLOCK_ACK', 'COMPRESSED_BLOCK_ACK', 'MULTI_TID_BLOCK_ACK'])
-    ## propagation-environment.h (module 'propagation'): ns3::EnvironmentType [enumeration]
-    module.add_enum('EnvironmentType', ['UrbanEnvironment', 'SubUrbanEnvironment', 'OpenAreasEnvironment'], import_from_module='ns.propagation')
     ## address.h (module 'network'): ns3::Address [class]
     module.add_class('Address', import_from_module='ns.network')
     ## address.h (module 'network'): ns3::Address::MaxSize_e [enumeration]
@@ -570,9 +570,6 @@
     typehandlers.add_type_alias('std::vector< unsigned char, std::allocator< unsigned char > >', 'ns3::WifiMcsList')
     typehandlers.add_type_alias('std::vector< unsigned char, std::allocator< unsigned char > >*', 'ns3::WifiMcsList*')
     typehandlers.add_type_alias('std::vector< unsigned char, std::allocator< unsigned char > >&', 'ns3::WifiMcsList&')
-    typehandlers.add_type_alias('std::vector< ns3::RateInfo, std::allocator< ns3::RateInfo > >', 'ns3::MinstrelRate')
-    typehandlers.add_type_alias('std::vector< ns3::RateInfo, std::allocator< ns3::RateInfo > >*', 'ns3::MinstrelRate*')
-    typehandlers.add_type_alias('std::vector< ns3::RateInfo, std::allocator< ns3::RateInfo > >&', 'ns3::MinstrelRate&')
     typehandlers.add_type_alias('uint8_t', 'ns3::WifiInformationElementId')
     typehandlers.add_type_alias('uint8_t*', 'ns3::WifiInformationElementId*')
     typehandlers.add_type_alias('uint8_t&', 'ns3::WifiInformationElementId&')
@@ -583,6 +580,9 @@
     typehandlers.add_type_alias('ns3::Vector3D*', 'ns3::Vector*')
     typehandlers.add_type_alias('ns3::Vector3D&', 'ns3::Vector&')
     module.add_typedef(root_module['ns3::Vector3D'], 'Vector')
+    typehandlers.add_type_alias('std::vector< ns3::RateInfo, std::allocator< ns3::RateInfo > >', 'ns3::MinstrelRate')
+    typehandlers.add_type_alias('std::vector< ns3::RateInfo, std::allocator< ns3::RateInfo > >*', 'ns3::MinstrelRate*')
+    typehandlers.add_type_alias('std::vector< ns3::RateInfo, std::allocator< ns3::RateInfo > >&', 'ns3::MinstrelRate&')
     typehandlers.add_type_alias('std::vector< ns3::WifiMode, std::allocator< ns3::WifiMode > >', 'ns3::WifiModeList')
     typehandlers.add_type_alias('std::vector< ns3::WifiMode, std::allocator< ns3::WifiMode > >*', 'ns3::WifiModeList*')
     typehandlers.add_type_alias('std::vector< ns3::WifiMode, std::allocator< ns3::WifiMode > >&', 'ns3::WifiModeList&')
@@ -4334,8 +4334,9 @@
     return
 
 def register_Ns3Int64x64_t_methods(root_module, cls):
-    cls.add_inplace_numeric_operator('+=', param('ns3::int64x64_t const &', 'right'))
+    cls.add_binary_comparison_operator('<=')
     cls.add_binary_comparison_operator('!=')
+    cls.add_inplace_numeric_operator('+=', param('ns3::int64x64_t const &', 'right'))
     cls.add_binary_numeric_operator('*', root_module['ns3::int64x64_t'], root_module['ns3::int64x64_t'], param('long long unsigned int const', 'right'))
     cls.add_binary_numeric_operator('*', root_module['ns3::int64x64_t'], root_module['ns3::int64x64_t'], param('long unsigned int const', 'right'))
     cls.add_binary_numeric_operator('*', root_module['ns3::int64x64_t'], root_module['ns3::int64x64_t'], param('unsigned int const', 'right'))
@@ -4391,7 +4392,6 @@
     cls.add_inplace_numeric_operator('-=', param('ns3::int64x64_t const &', 'right'))
     cls.add_inplace_numeric_operator('/=', param('ns3::int64x64_t const &', 'right'))
     cls.add_output_stream_operator()
-    cls.add_binary_comparison_operator('<=')
     cls.add_binary_comparison_operator('==')
     cls.add_binary_comparison_operator('>=')
     ## int64x64-double.h (module 'core'): ns3::int64x64_t::int64x64_t() [constructor]
@@ -5689,15 +5689,15 @@
     return
 
 def register_Ns3Time_methods(root_module, cls):
-    cls.add_inplace_numeric_operator('+=', param('ns3::Time const &', 'right'))
+    cls.add_binary_comparison_operator('<=')
     cls.add_binary_comparison_operator('!=')
+    cls.add_inplace_numeric_operator('+=', param('ns3::Time const &', 'right'))
     cls.add_binary_numeric_operator('+', root_module['ns3::Time'], root_module['ns3::Time'], param('ns3::Time const &', 'right'))
     cls.add_binary_numeric_operator('-', root_module['ns3::Time'], root_module['ns3::Time'], param('ns3::Time const &', 'right'))
     cls.add_binary_comparison_operator('<')
     cls.add_binary_comparison_operator('>')
     cls.add_inplace_numeric_operator('-=', param('ns3::Time const &', 'right'))
     cls.add_output_stream_operator()
-    cls.add_binary_comparison_operator('<=')
     cls.add_binary_comparison_operator('==')
     cls.add_binary_comparison_operator('>=')
     ## nstime.h (module 'core'): ns3::Time::Time() [constructor]
@@ -6491,11 +6491,6 @@
                    'bool', 
                    [], 
                    is_pure_virtual=True, is_const=True, is_virtual=True)
-    ## wifi-mac.h (module 'wifi'): void ns3::WifiMac::ConfigureCCHDcf(ns3::Ptr<ns3::Dcf> dcf, uint32_t cwmin, uint32_t cwmax, ns3::AcIndex ac) [member function]
-    cls.add_method('ConfigureCCHDcf', 
-                   'void', 
-                   [param('ns3::Ptr< ns3::Dcf >', 'dcf'), param('uint32_t', 'cwmin'), param('uint32_t', 'cwmax'), param('ns3::AcIndex', 'ac')], 
-                   visibility='protected')
     ## wifi-mac.h (module 'wifi'): void ns3::WifiMac::ConfigureDcf(ns3::Ptr<ns3::Dcf> dcf, uint32_t cwmin, uint32_t cwmax, ns3::AcIndex ac) [member function]
     cls.add_method('ConfigureDcf', 
                    'void', 
@@ -13266,6 +13261,10 @@
     cls.add_method('StartBeaconing', 
                    'void', 
                    [])
+    ## ap-wifi-mac.h (module 'wifi'): int64_t ns3::ApWifiMac::AssignStreams(int64_t stream) [member function]
+    cls.add_method('AssignStreams', 
+                   'int64_t', 
+                   [param('int64_t', 'stream')])
     ## ap-wifi-mac.h (module 'wifi'): void ns3::ApWifiMac::Receive(ns3::Ptr<ns3::Packet> packet, ns3::WifiMacHeader const * hdr) [member function]
     cls.add_method('Receive', 
                    'void', 
diff -Naur ns-3.18/src/wifi/helper/wifi-helper.cc ns-3.18.1/src/wifi/helper/wifi-helper.cc
--- ns-3.18/src/wifi/helper/wifi-helper.cc	2013-08-29 22:36:59.000000000 -0700
+++ ns-3.18.1/src/wifi/helper/wifi-helper.cc	2013-11-15 16:40:48.563760983 -0800
@@ -26,6 +26,7 @@
 #include "ns3/dca-txop.h"
 #include "ns3/edca-txop-n.h"
 #include "ns3/minstrel-wifi-manager.h"
+#include "ns3/ap-wifi-mac.h"
 #include "ns3/wifi-phy.h"
 #include "ns3/wifi-remote-station-manager.h"
 #include "ns3/wifi-channel.h"
@@ -215,6 +216,13 @@
               rmac->GetAttribute ("BK_EdcaTxopN", ptr);
               Ptr<EdcaTxopN> bk_edcaTxopN = ptr.Get<EdcaTxopN> ();
               currentStream += bk_edcaTxopN->AssignStreams (currentStream);
+
+              // if an AP, handle any beacon jitter
+              Ptr<ApWifiMac> apmac = DynamicCast<ApWifiMac> (rmac);
+              if (apmac)
+                {
+                  currentStream += apmac->AssignStreams (currentStream);
+                }
             }
         }
     }
diff -Naur ns-3.18/src/wifi/model/aarfcd-wifi-manager.h ns-3.18.1/src/wifi/model/aarfcd-wifi-manager.h
--- ns-3.18/src/wifi/model/aarfcd-wifi-manager.h	2013-08-29 22:36:59.000000000 -0700
+++ ns-3.18.1/src/wifi/model/aarfcd-wifi-manager.h	2013-11-15 16:40:48.579760978 -0800
@@ -77,7 +77,6 @@
   // aarf-cd fields below
   uint32_t m_minRtsWnd;
   uint32_t m_maxRtsWnd;
-  bool m_rtsFailsAsDataFails;
   bool m_turnOffRtsAfterRateDecrease;
   bool m_turnOnRtsAfterRateIncrease;
 };
diff -Naur ns-3.18/src/wifi/model/ap-wifi-mac.cc ns-3.18.1/src/wifi/model/ap-wifi-mac.cc
--- ns-3.18/src/wifi/model/ap-wifi-mac.cc	2013-08-29 22:36:59.000000000 -0700
+++ ns-3.18.1/src/wifi/model/ap-wifi-mac.cc	2013-11-15 16:40:48.591760985 -0800
@@ -55,6 +55,14 @@
                    MakeTimeAccessor (&ApWifiMac::GetBeaconInterval,
                                      &ApWifiMac::SetBeaconInterval),
                    MakeTimeChecker ())
+    .AddAttribute ("BeaconJitter", "A uniform random variable to cause the initial beacon starting time (after simulation time 0) to be distributed between 0 and the BeaconInterval.",
+                   StringValue ("ns3::UniformRandomVariable"),
+                   MakePointerAccessor (&ApWifiMac::m_beaconJitter),
+                   MakePointerChecker<UniformRandomVariable> ())
+    .AddAttribute ("EnableBeaconJitter", "If beacons are enabled, whether to jitter the initial send event.",
+                   BooleanValue (false),
+                   MakeBooleanAccessor (&ApWifiMac::m_enableBeaconJitter),
+                   MakeBooleanChecker ())
     .AddAttribute ("BeaconGeneration", "Whether or not beacons are generated.",
                    BooleanValue (true),
                    MakeBooleanAccessor (&ApWifiMac::SetBeaconGeneration,
@@ -172,6 +180,14 @@
   SendOneBeacon ();
 }
 
+int64_t
+ApWifiMac::AssignStreams (int64_t stream)
+{
+  NS_LOG_FUNCTION (this << stream);
+  m_beaconJitter->SetStream (stream);
+  return 1;
+}
+
 void
 ApWifiMac::ForwardDown (Ptr<const Packet> packet, Mac48Address from,
                         Mac48Address to)
@@ -648,7 +664,17 @@
   m_beaconEvent.Cancel ();
   if (m_enableBeaconGeneration)
     {
-      m_beaconEvent = Simulator::ScheduleNow (&ApWifiMac::SendOneBeacon, this);
+      if (m_enableBeaconJitter)
+        {
+          int64_t jitter = m_beaconJitter->GetValue (0, m_beaconInterval.GetMicroSeconds ());
+          NS_LOG_DEBUG ("Scheduling initial beacon for access point " << GetAddress() << " at time " << jitter << " microseconds");
+          m_beaconEvent = Simulator::Schedule (MicroSeconds (jitter), &ApWifiMac::SendOneBeacon, this);
+        }
+      else
+        {
+          NS_LOG_DEBUG ("Scheduling initial beacon for access point " << GetAddress() << " at time 0");
+          m_beaconEvent = Simulator::ScheduleNow (&ApWifiMac::SendOneBeacon, this);
+        }
     }
   RegularWifiMac::DoInitialize ();
 }
diff -Naur ns-3.18/src/wifi/model/ap-wifi-mac.h ns-3.18.1/src/wifi/model/ap-wifi-mac.h
--- ns-3.18/src/wifi/model/ap-wifi-mac.h	2013-08-29 22:36:59.000000000 -0700
+++ ns-3.18.1/src/wifi/model/ap-wifi-mac.h	2013-11-15 16:40:48.583760982 -0800
@@ -26,6 +26,7 @@
 #include "ht-capabilities.h"
 #include "amsdu-subframe-header.h"
 #include "supported-rates.h"
+#include "ns3/random-variable-stream.h"
 
 namespace ns3 {
 
@@ -95,6 +96,16 @@
    */
   void StartBeaconing (void);
 
+ /**
+  * Assign a fixed random variable stream number to the random variables
+  * used by this model.  Return the number of streams (possibly zero) that
+  * have been assigned.
+  *
+  * \param stream first stream index to use
+  * \return the number of stream indices assigned by this model
+  */
+  int64_t AssignStreams (int64_t stream);
+
 private:
   virtual void Receive (Ptr<Packet> packet, const WifiMacHeader *hdr);
   virtual void TxOk (const WifiMacHeader &hdr);
@@ -128,6 +139,8 @@
   Time m_beaconInterval;
   bool m_enableBeaconGeneration;
   EventId m_beaconEvent;
+  Ptr<UniformRandomVariable> m_beaconJitter;
+  bool m_enableBeaconJitter;
 };
 
 } // namespace ns3
diff -Naur ns-3.18/src/wifi/model/dcf-manager.cc ns-3.18.1/src/wifi/model/dcf-manager.cc
--- ns-3.18/src/wifi/model/dcf-manager.cc	2013-08-29 22:36:59.000000000 -0700
+++ ns-3.18.1/src/wifi/model/dcf-manager.cc	2013-11-15 16:40:48.579760978 -0800
@@ -287,6 +287,10 @@
 DcfManager::SetupPhyListener (Ptr<WifiPhy> phy)
 {
   NS_LOG_FUNCTION (this << phy);
+  if (m_phyListener != 0)
+    {
+      delete m_phyListener;
+    }
   m_phyListener = new PhyListener (this);
   phy->RegisterListener (m_phyListener);
 }
@@ -294,6 +298,10 @@
 DcfManager::SetupLowListener (Ptr<MacLow> low)
 {
   NS_LOG_FUNCTION (this << low);
+  if (m_lowListener != 0)
+    {
+      delete m_lowListener;
+    }
   m_lowListener = new LowDcfListener (this);
   low->RegisterDcfListener (m_lowListener);
 }
@@ -748,7 +756,7 @@
 DcfManager::NotifyNavStartNow (Time duration)
 {
   NS_LOG_FUNCTION (this << duration);
-  NS_ASSERT (m_lastNavStart < Simulator::Now ());
+  NS_ASSERT (m_lastNavStart <= Simulator::Now ());
   MY_DEBUG ("nav start for=" << duration);
   UpdateBackoff ();
   Time newNavEnd = Simulator::Now () + duration;
diff -Naur ns-3.18/src/wifi/model/dcf-manager.h ns-3.18.1/src/wifi/model/dcf-manager.h
--- ns-3.18/src/wifi/model/dcf-manager.h	2013-08-29 22:36:59.000000000 -0700
+++ ns-3.18.1/src/wifi/model/dcf-manager.h	2013-11-15 16:40:48.567760980 -0800
@@ -324,7 +324,6 @@
   Time m_lastSwitchingStart;
   Time m_lastSwitchingDuration;
   bool m_rxing;
-  bool m_sleeping;
   Time m_eifsNoDifs;
   EventId m_accessTimeout;
   uint32_t m_slotTimeUs;
diff -Naur ns-3.18/src/wifi/model/ideal-wifi-manager.h ns-3.18.1/src/wifi/model/ideal-wifi-manager.h
--- ns-3.18/src/wifi/model/ideal-wifi-manager.h	2013-08-29 22:36:59.000000000 -0700
+++ ns-3.18.1/src/wifi/model/ideal-wifi-manager.h	2013-11-15 16:40:48.587760984 -0800
@@ -77,8 +77,6 @@
 
   double m_ber;
   Thresholds m_thresholds;
-  double m_minSnr;
-  double m_maxSnr;
 };
 
 } // namespace ns3
diff -Naur ns-3.18/src/wifi/model/mac-low.cc ns-3.18.1/src/wifi/model/mac-low.cc
--- ns-3.18/src/wifi/model/mac-low.cc	2013-08-29 22:36:59.000000000 -0700
+++ ns-3.18.1/src/wifi/model/mac-low.cc	2013-11-15 16:40:48.571760978 -0800
@@ -1053,21 +1053,27 @@
 {
   WifiPreamble preamble;
   Time txTime = Seconds (0);
-  WifiTxVector rtsTxVector = GetRtsTxVector (packet, hdr);
-  WifiTxVector dataTxVector = GetDataTxVector (packet, hdr);
-   //standard says RTS packets can have GF format sec 9.6.0e.1 page 110 bullet b 2
-  if ( m_phy->GetGreenfield()&& m_stationManager->GetGreenfieldSupported (m_currentHdr.GetAddr1 ()))
-    preamble= WIFI_PREAMBLE_HT_GF;
-  else if (rtsTxVector.GetMode().GetModulationClass () == WIFI_MOD_CLASS_HT)
-    preamble= WIFI_PREAMBLE_HT_MF;
-  else
-    preamble=WIFI_PREAMBLE_LONG;
   if (params.MustSendRts ())
     {
+      WifiTxVector rtsTxVector = GetRtsTxVector (packet, hdr);
+      //standard says RTS packets can have GF format sec 9.6.0e.1 page 110 bullet b 2
+      if (m_phy->GetGreenfield () && m_stationManager->GetGreenfieldSupported (m_currentHdr.GetAddr1 ()))
+        {
+          preamble = WIFI_PREAMBLE_HT_GF;
+        }
+      else if (rtsTxVector.GetMode ().GetModulationClass () == WIFI_MOD_CLASS_HT)
+        {
+          preamble = WIFI_PREAMBLE_HT_MF;
+        }
+      else
+        {
+          preamble = WIFI_PREAMBLE_LONG;
+        }
       txTime += m_phy->CalculateTxDuration (GetRtsSize (), rtsTxVector, preamble);
       txTime += GetCtsDuration (hdr->GetAddr1 (), rtsTxVector);
       txTime += Time (GetSifs () * 2);
     }
+  WifiTxVector dataTxVector = GetDataTxVector (packet, hdr);
   //standard says RTS packets can have GF format sec 9.6.0e.1 page 110 bullet b 2
   if ( m_phy->GetGreenfield()&& m_stationManager->GetGreenfieldSupported (m_currentHdr.GetAddr1 ()))
     preamble= WIFI_PREAMBLE_HT_GF;
@@ -1153,7 +1159,7 @@
 void
 MacLow::NavCounterResetCtsMissed (Time rtsEndRxTime)
 {
-  if (m_phy->GetLastRxStartTime () > rtsEndRxTime)
+  if (m_phy->GetLastRxStartTime () < rtsEndRxTime)
     {
       DoNavResetNow (Seconds (0.0));
     }
diff -Naur ns-3.18/src/wifi/model/mac-low.h ns-3.18.1/src/wifi/model/mac-low.h
--- ns-3.18/src/wifi/model/mac-low.h	2013-08-29 22:36:59.000000000 -0700
+++ ns-3.18.1/src/wifi/model/mac-low.h	2013-11-15 16:40:48.575760977 -0800
@@ -519,8 +519,7 @@
   uint32_t GetRtsSize (void) const;
   uint32_t GetCtsSize (void) const;
   uint32_t GetSize (Ptr<const Packet> packet, const WifiMacHeader *hdr) const;
-  Time NowUs (void) const;
-void ForwardDown (Ptr<const Packet> packet, const WifiMacHeader *hdr,
+  void ForwardDown (Ptr<const Packet> packet, const WifiMacHeader *hdr,
                     WifiTxVector txVector, WifiPreamble preamble);
   WifiTxVector GetRtsTxVector (Ptr<const Packet> packet, const WifiMacHeader *hdr) const;
   WifiTxVector GetDataTxVector (Ptr<const Packet> packet, const WifiMacHeader *hdr) const;
@@ -552,7 +551,6 @@
   void NotifyAckTimeoutResetNow ();
   void NotifyCtsTimeoutStartNow (Time duration);
   void NotifyCtsTimeoutResetNow ();
-  void MaybeCancelPrevious (void);
 
   void NavCounterResetCtsMissed (Time rtsEndRxTime);
   void NormalAckTimeout (void);
@@ -570,7 +568,6 @@
 
   void SendRtsForPacket (void);
   void SendDataPacket (void);
-  void SendCurrentTxPacket (void);
   void StartDataTxTimers (WifiTxVector dataTxVector);
   virtual void DoDispose (void);
   /**
diff -Naur ns-3.18/src/wifi/model/minstrel-wifi-manager.cc ns-3.18.1/src/wifi/model/minstrel-wifi-manager.cc
--- ns-3.18/src/wifi/model/minstrel-wifi-manager.cc	2013-08-29 22:36:59.000000000 -0700
+++ ns-3.18.1/src/wifi/model/minstrel-wifi-manager.cc	2013-11-15 16:40:48.583760982 -0800
@@ -101,11 +101,6 @@
                    DoubleValue (75),
                    MakeDoubleAccessor (&MinstrelWifiManager::m_ewmaLevel),
                    MakeDoubleChecker<double> ())
-    .AddAttribute ("SegmentSize",
-                   "The largest allowable segment size packet",
-                   DoubleValue (6000),
-                   MakeDoubleAccessor (&MinstrelWifiManager::m_segmentSize),
-                   MakeDoubleChecker <double> ())
     .AddAttribute ("SampleColumn",
                    "The number of columns used for sampling",
                    DoubleValue (10),
diff -Naur ns-3.18/src/wifi/model/minstrel-wifi-manager.h ns-3.18.1/src/wifi/model/minstrel-wifi-manager.h
--- ns-3.18/src/wifi/model/minstrel-wifi-manager.h	2013-08-29 22:36:59.000000000 -0700
+++ ns-3.18.1/src/wifi/model/minstrel-wifi-manager.h	2013-11-15 16:40:48.579760978 -0800
@@ -161,7 +161,6 @@
   Time m_updateStats;  ///< how frequent do we calculate the stats(1/10 seconds)
   double m_lookAroundRate;  ///< the % to try other rates than our current rate
   double m_ewmaLevel;  ///< exponential weighted moving average
-  uint32_t m_segmentSize;  ///< largest allowable segment size
   uint32_t m_sampleCol;  ///< number of sample columns
   uint32_t m_pktLen;  ///< packet length used  for calculate mode TxTime
   uint32_t m_nsupported;  ///< modes supported
diff -Naur ns-3.18/src/wifi/model/regular-wifi-mac.cc ns-3.18.1/src/wifi/model/regular-wifi-mac.cc
--- ns-3.18/src/wifi/model/regular-wifi-mac.cc	2013-08-29 22:36:59.000000000 -0700
+++ ns-3.18.1/src/wifi/model/regular-wifi-mac.cc	2013-11-15 16:40:48.587760984 -0800
@@ -92,26 +92,26 @@
 {
   NS_LOG_FUNCTION (this);
   delete m_rxMiddle;
-  m_rxMiddle = NULL;
+  m_rxMiddle = 0;
 
   delete m_txMiddle;
-  m_txMiddle = NULL;
+  m_txMiddle = 0;
 
   delete m_dcfManager;
-  m_dcfManager = NULL;
+  m_dcfManager = 0;
 
   m_low->Dispose ();
-  m_low = NULL;
+  m_low = 0;
 
-  m_phy = NULL;
-  m_stationManager = NULL;
+  m_phy = 0;
+  m_stationManager = 0;
 
   m_dca->Dispose ();
-  m_dca = NULL;
+  m_dca = 0;
 
   for (EdcaQueues::iterator i = m_edca.begin (); i != m_edca.end (); ++i)
     {
-      i->second = NULL;
+      i->second = 0;
     }
 }
 
@@ -701,12 +701,6 @@
 
   switch (standard)
     {
-    case WIFI_PHY_STANDARD_80211p_CCH:
-    case WIFI_PHY_STANDARD_80211p_SCH:
-      cwmin = 15;
-      cwmax = 511;
-      break;
-
     case WIFI_PHY_STANDARD_holland:
     case WIFI_PHY_STANDARD_80211a:
     case WIFI_PHY_STANDARD_80211g:
@@ -734,15 +728,7 @@
   // Now we configure the EDCA functions
   for (EdcaQueues::iterator i = m_edca.begin (); i != m_edca.end (); ++i)
     {
-      // Special configuration for 802.11p CCH
-      if (standard == WIFI_PHY_STANDARD_80211p_CCH)
-        {
-          ConfigureCCHDcf (i->second, cwmin, cwmax, i->first);
-        }
-      else
-        {
-          ConfigureDcf (i->second, cwmin, cwmax, i->first);
-        }
+      ConfigureDcf (i->second, cwmin, cwmax, i->first);
     }
 }
 
diff -Naur ns-3.18/src/wifi/model/wifi-mac.cc ns-3.18.1/src/wifi/model/wifi-mac.cc
--- ns-3.18/src/wifi/model/wifi-mac.cc	2013-08-29 22:36:59.000000000 -0700
+++ ns-3.18.1/src/wifi/model/wifi-mac.cc	2013-11-15 16:40:48.571760978 -0800
@@ -293,12 +293,6 @@
     case WIFI_PHY_STANDARD_holland:
       Configure80211a ();
       break;
-    case WIFI_PHY_STANDARD_80211p_CCH:
-      Configure80211p_CCH ();
-      break;
-    case WIFI_PHY_STANDARD_80211p_SCH:
-      Configure80211p_SCH ();
-      break;
     case WIFI_PHY_STANDARD_80211n_2_4GHZ:
       Configure80211n_2_4Ghz ();
       break;
@@ -369,17 +363,6 @@
 }
 
 void
-WifiMac::Configure80211p_CCH (void)
-{
-  Configure80211_10Mhz ();
-}
-
-void
-WifiMac::Configure80211p_SCH (void)
-{
-  Configure80211_10Mhz ();
-}
-void
 WifiMac::Configure80211n_2_4Ghz (void)
 {
   Configure80211g ();
@@ -424,43 +407,6 @@
       break;
     case AC_BE_NQOS:
       dcf->SetMinCw (cwmin);
-      dcf->SetMaxCw (cwmax);
-      dcf->SetAifsn (2);
-      break;
-    case AC_UNDEF:
-      NS_FATAL_ERROR ("I don't know what to do with this");
-      break;
-    }
-}
-
-void
-WifiMac::ConfigureCCHDcf (Ptr<Dcf> dcf, uint32_t cwmin, uint32_t cwmax, enum AcIndex ac)
-{
-  /* see IEEE 1609.4-2006 section 6.3.1, Table 1 */
-  switch (ac)
-    {
-    case AC_VO:
-      dcf->SetMinCw ((cwmin + 1) / 4 - 1);
-      dcf->SetMaxCw ((cwmin + 1) / 2 - 1);
-      dcf->SetAifsn (2);
-      break;
-    case AC_VI:
-      dcf->SetMinCw ((cwmin + 1) / 4 - 1);
-      dcf->SetMaxCw ((cwmin + 1) / 2 - 1);
-      dcf->SetAifsn (3);
-      break;
-    case AC_BE:
-      dcf->SetMinCw ((cwmin + 1) / 2 - 1);
-      dcf->SetMaxCw (cwmin);
-      dcf->SetAifsn (6);
-      break;
-    case AC_BK:
-      dcf->SetMinCw (cwmin);
-      dcf->SetMaxCw (cwmax);
-      dcf->SetAifsn (9);
-      break;
-    case AC_BE_NQOS:
-      dcf->SetMinCw (cwmin);
       dcf->SetMaxCw (cwmax);
       dcf->SetAifsn (2);
       break;
diff -Naur ns-3.18/src/wifi/model/wifi-mac.h ns-3.18.1/src/wifi/model/wifi-mac.h
--- ns-3.18/src/wifi/model/wifi-mac.h	2013-08-29 22:36:59.000000000 -0700
+++ ns-3.18.1/src/wifi/model/wifi-mac.h	2013-11-15 16:40:48.571760978 -0800
@@ -238,7 +238,6 @@
 
 protected:
   void ConfigureDcf (Ptr<Dcf> dcf, uint32_t cwmin, uint32_t cwmax, enum AcIndex ac);
-  void ConfigureCCHDcf (Ptr<Dcf> dcf, uint32_t cwmin, uint32_t cwmax, enum AcIndex ac);
 private:
   static Time GetDefaultMaxPropagationDelay (void);
   static Time GetDefaultSlot (void);
@@ -268,8 +267,6 @@
   void Configure80211g (void);
   void Configure80211_10Mhz (void);
   void Configure80211_5Mhz ();
-  void Configure80211p_CCH (void);
-  void Configure80211p_SCH (void);
   void Configure80211n_2_4Ghz (void);
   void Configure80211n_5Ghz (void);
 
diff -Naur ns-3.18/src/wifi/model/wifi-mac-header.cc ns-3.18.1/src/wifi/model/wifi-mac-header.cc
--- ns-3.18/src/wifi/model/wifi-mac-header.cc	2013-08-29 22:36:59.000000000 -0700
+++ ns-3.18.1/src/wifi/model/wifi-mac-header.cc	2013-11-15 16:40:48.579760978 -0800
@@ -46,7 +46,7 @@
 };
 
 WifiMacHeader::WifiMacHeader ()
-  : m_ctrlPwrMgt (0),
+  :
     m_ctrlMoreData (0),
     m_ctrlWep (0),
     m_ctrlOrder (1),
diff -Naur ns-3.18/src/wifi/model/wifi-mac-header.h ns-3.18.1/src/wifi/model/wifi-mac-header.h
--- ns-3.18/src/wifi/model/wifi-mac-header.h	2013-08-29 22:36:59.000000000 -0700
+++ ns-3.18.1/src/wifi/model/wifi-mac-header.h	2013-11-15 16:40:48.583760982 -0800
@@ -208,7 +208,6 @@
   uint8_t m_ctrlFromDs;
   uint8_t m_ctrlMoreFrag;
   uint8_t m_ctrlRetry;
-  uint8_t m_ctrlPwrMgt;
   uint8_t m_ctrlMoreData;
   uint8_t m_ctrlWep;
   uint8_t m_ctrlOrder;
diff -Naur ns-3.18/src/wifi/model/wifi-mac-queue.cc ns-3.18.1/src/wifi/model/wifi-mac-queue.cc
--- ns-3.18/src/wifi/model/wifi-mac-queue.cc	2013-08-29 22:36:59.000000000 -0700
+++ ns-3.18.1/src/wifi/model/wifi-mac-queue.cc	2013-11-15 16:40:48.575760977 -0800
@@ -167,7 +167,6 @@
   if (!m_queue.empty ())
     {
       PacketQueueI it;
-      NS_ASSERT (type <= 4);
       for (it = m_queue.begin (); it != m_queue.end (); ++it)
         {
           if (it->hdr.IsQosData ())
@@ -195,7 +194,6 @@
   if (!m_queue.empty ())
     {
       PacketQueueI it;
-      NS_ASSERT (type <= 4);
       for (it = m_queue.begin (); it != m_queue.end (); ++it)
         {
           if (it->hdr.IsQosData ())
@@ -288,7 +286,6 @@
   if (!m_queue.empty ())
     {
       PacketQueueI it;
-      NS_ASSERT (type <= 4);
       for (it = m_queue.begin (); it != m_queue.end (); it++)
         {
           if (GetAddressForPacket (type, it) == addr)
diff -Naur ns-3.18/src/wifi/model/wifi-mac-queue.h ns-3.18.1/src/wifi/model/wifi-mac-queue.h
--- ns-3.18/src/wifi/model/wifi-mac-queue.h	2013-08-29 22:36:59.000000000 -0700
+++ ns-3.18.1/src/wifi/model/wifi-mac-queue.h	2013-11-15 16:40:48.575760977 -0800
@@ -141,7 +141,6 @@
   };
 
   PacketQueue m_queue;
-  WifiMacParameters *m_parameters;
   uint32_t m_size;
   uint32_t m_maxSize;
   Time m_maxDelay;
diff -Naur ns-3.18/src/wifi/model/wifi-net-device.h ns-3.18.1/src/wifi/model/wifi-net-device.h
--- ns-3.18/src/wifi/model/wifi-net-device.h	2013-08-29 22:36:59.000000000 -0700
+++ ns-3.18.1/src/wifi/model/wifi-net-device.h	2013-11-15 16:40:48.583760982 -0800
@@ -119,7 +119,6 @@
   void ForwardUp (Ptr<Packet> packet, Mac48Address from, Mac48Address to);
   void LinkUp (void);
   void LinkDown (void);
-  void Setup (void);
   Ptr<WifiChannel> DoGetChannel (void) const;
   void CompleteConfig (void);
 
diff -Naur ns-3.18/src/wifi/model/wifi-phy-standard.h ns-3.18.1/src/wifi/model/wifi-phy-standard.h
--- ns-3.18/src/wifi/model/wifi-phy-standard.h	2013-08-29 22:36:59.000000000 -0700
+++ ns-3.18.1/src/wifi/model/wifi-phy-standard.h	2013-11-15 16:40:48.571760978 -0800
@@ -45,10 +45,6 @@
    *  ACM MOBICOM, 2001.
    */
   WIFI_PHY_STANDARD_holland,
-  /** \deprecated see <A HREF="http://www.nsnam.org/bugzilla/show_bug.cgi?id=945">bug 945</A> */
-  WIFI_PHY_STANDARD_80211p_CCH,
-  /** \deprecated see <A HREF="http://www.nsnam.org/bugzilla/show_bug.cgi?id=945">bug 945</A> */
-  WIFI_PHY_STANDARD_80211p_SCH,
   // 11n support
   WIFI_PHY_STANDARD_80211n_2_4GHZ,
   // needed for different mac parameters
diff -Naur ns-3.18/src/wifi/model/wifi-phy-state-helper.cc ns-3.18.1/src/wifi/model/wifi-phy-state-helper.cc
--- ns-3.18/src/wifi/model/wifi-phy-state-helper.cc	2013-08-29 22:36:59.000000000 -0700
+++ ns-3.18.1/src/wifi/model/wifi-phy-state-helper.cc	2013-11-15 16:40:48.583760982 -0800
@@ -420,7 +420,10 @@
     case WifiPhy::TX:
       break;
     }
-  m_startCcaBusy = now;
+  if (GetState () != WifiPhy::CCA_BUSY)
+    {
+      m_startCcaBusy = now;
+    }
   m_endCcaBusy = std::max (m_endCcaBusy, now + duration);
 }
 
diff -Naur ns-3.18/src/wifi/model/wifi-remote-station-manager.cc ns-3.18.1/src/wifi/model/wifi-remote-station-manager.cc
--- ns-3.18/src/wifi/model/wifi-remote-station-manager.cc	2013-08-29 22:36:59.000000000 -0700
+++ ns-3.18.1/src/wifi/model/wifi-remote-station-manager.cc	2013-11-15 16:40:48.575760977 -0800
@@ -871,27 +871,27 @@
     }
   if(HasHtSupported())
       {
-  if (!found)
-    {
-     uint8_t mcs = GetDefaultMcs (); 
-      mode=  m_wifiPhy->McsToWifiMode (mcs); 
-    }
-  for (WifiMcsListIterator i = m_bssBasicMcsSet.begin ();
-       i != m_bssBasicMcsSet.end (); i++)
-    {
-       WifiMode thismode=  m_wifiPhy->McsToWifiMode (*i); 
-      if ((!found || thismode.GetPhyRate () > mode.GetPhyRate ())
-          && thismode.GetPhyRate () <= reqMode.GetPhyRate ()
-          && thismode.GetModulationClass () == reqMode.GetModulationClass ())
-        {
-          mode = thismode;
-          // We've found a potentially-suitable transmit rate, but we
-          // need to continue and consider all the basic rates before
-          // we can be sure we've got the right one.
-          found = true;
-        }
-    }
-}
+        if (!found)
+          {
+            uint8_t mcs = GetDefaultMcs (); 
+            mode=  m_wifiPhy->McsToWifiMode (mcs); 
+          }
+        for (WifiMcsListIterator i = m_bssBasicMcsSet.begin ();
+             i != m_bssBasicMcsSet.end (); i++)
+          {
+            WifiMode thismode=  m_wifiPhy->McsToWifiMode (*i); 
+            if ((!found || thismode.GetPhyRate () > mode.GetPhyRate ())
+                && thismode.GetPhyRate () <= reqMode.GetPhyRate ()
+                && thismode.GetModulationClass () == reqMode.GetModulationClass ())
+              {
+                mode = thismode;
+                // We've found a potentially-suitable transmit rate, but we
+                // need to continue and consider all the basic rates before
+                // we can be sure we've got the right one.
+                found = true;
+              }
+          }
+      }
   // If we found a suitable rate in the BSSBasicRateSet, then we are
   // done and can return that mode.
   if (found)
@@ -942,27 +942,27 @@
           found = true;
         }
     }
-    if(HasHtSupported())
-      {
-        for (uint32_t idx = 0; idx < m_wifiPhy->GetNMcs (); idx++)
-          {
-            uint8_t thismcs = m_wifiPhy->GetMcs (idx);
-            WifiMode thismode=  m_wifiPhy->McsToWifiMode (thismcs);
-             if (thismode.IsMandatory ()
-          && (!found || thismode.GetPhyRate () > mode.GetPhyRate ())
-          && thismode.GetPhyRate () <= reqMode.GetPhyRate ()
-          && thismode.GetModulationClass () == reqMode.GetModulationClass ())
+  if(HasHtSupported())
+    {
+      for (uint32_t idx = 0; idx < m_wifiPhy->GetNMcs (); idx++)
         {
-          mode = thismode;
-          // As above; we've found a potentially-suitable transmit
-          // rate, but we need to continue and consider all the
-          // mandatory rates before we can be sure we've got the right
-          // one.
-          found = true;
-        }
+          uint8_t thismcs = m_wifiPhy->GetMcs (idx);
+          WifiMode thismode=  m_wifiPhy->McsToWifiMode (thismcs);
+          if (thismode.IsMandatory ()
+              && (!found || thismode.GetPhyRate () > mode.GetPhyRate ())
+              && thismode.GetPhyRate () <= reqMode.GetPhyRate ()
+              && thismode.GetModulationClass () == reqMode.GetModulationClass ())
+            {
+              mode = thismode;
+              // As above; we've found a potentially-suitable transmit
+              // rate, but we need to continue and consider all the
+              // mandatory rates before we can be sure we've got the right
+              // one.
+              found = true;
+            }
             
-          }
-      }
+        }
+    }
 
   /**
    * If we still haven't found a suitable rate for the response then
@@ -977,7 +977,7 @@
   if (!found)
     {
       NS_FATAL_ERROR ("Can't find response rate for " << reqMode
-                                                      << ". Check standard and selected rates match.");
+                      << ". Check standard and selected rates match.");
     }
 
   return mode;
diff -Naur ns-3.18/src/wifi/model/wifi-remote-station-manager.h ns-3.18.1/src/wifi/model/wifi-remote-station-manager.h
--- ns-3.18/src/wifi/model/wifi-remote-station-manager.h	2013-08-29 22:36:59.000000000 -0700
+++ ns-3.18.1/src/wifi/model/wifi-remote-station-manager.h	2013-11-15 16:40:48.579760978 -0800
@@ -524,14 +524,13 @@
   WifiMcsList m_bssBasicMcsSet;
 
   bool m_htSupported;
-  bool m_isLowLatency;
   uint32_t m_maxSsrc;
   uint32_t m_maxSlrc;
   uint32_t m_rtsCtsThreshold;
   uint32_t m_fragmentationThreshold;
   uint8_t m_defaultTxPowerLevel;
   WifiMode m_nonUnicastMode;
-  double m_avgSlrcCoefficient;
+
   /**
    * The trace source fired when the transmission of a single RTS has failed
    */
diff -Naur ns-3.18/src/wifi/model/yans-wifi-phy.cc ns-3.18.1/src/wifi/model/yans-wifi-phy.cc
--- ns-3.18/src/wifi/model/yans-wifi-phy.cc	2013-08-29 22:36:59.000000000 -0700
+++ ns-3.18.1/src/wifi/model/yans-wifi-phy.cc	2013-11-15 16:40:48.587760984 -0800
@@ -218,12 +218,6 @@
     case WIFI_PHY_STANDARD_holland:
       ConfigureHolland ();
       break;
-    case WIFI_PHY_STANDARD_80211p_CCH:
-      Configure80211p_CCH ();
-      break;
-    case WIFI_PHY_STANDARD_80211p_SCH:
-      Configure80211p_SCH ();
-      break;
     case WIFI_PHY_STANDARD_80211n_2_4GHZ:
       m_channelStartingFrequency=2407;
       Configure80211n ();
@@ -685,38 +679,6 @@
 }
 
 void
-YansWifiPhy::Configure80211p_CCH (void)
-{
-  NS_LOG_FUNCTION (this);
-  m_channelStartingFrequency = 5e3; // 802.11p works over the 5Ghz freq range
-
-  m_deviceRateSet.push_back (WifiPhy::GetOfdmRate3MbpsBW10MHz ());
-  m_deviceRateSet.push_back (WifiPhy::GetOfdmRate4_5MbpsBW10MHz ());
-  m_deviceRateSet.push_back (WifiPhy::GetOfdmRate6MbpsBW10MHz ());
-  m_deviceRateSet.push_back (WifiPhy::GetOfdmRate9MbpsBW10MHz ());
-  m_deviceRateSet.push_back (WifiPhy::GetOfdmRate12MbpsBW10MHz ());
-  m_deviceRateSet.push_back (WifiPhy::GetOfdmRate18MbpsBW10MHz ());
-  m_deviceRateSet.push_back (WifiPhy::GetOfdmRate24MbpsBW10MHz ());
-  m_deviceRateSet.push_back (WifiPhy::GetOfdmRate27MbpsBW10MHz ());
-}
-
-void
-YansWifiPhy::Configure80211p_SCH (void)
-{
-  NS_LOG_FUNCTION (this);
-  m_channelStartingFrequency = 5e3; // 802.11p works over the 5Ghz freq range
-
-  m_deviceRateSet.push_back (WifiPhy::GetOfdmRate3MbpsBW10MHz ());
-  m_deviceRateSet.push_back (WifiPhy::GetOfdmRate4_5MbpsBW10MHz ());
-  m_deviceRateSet.push_back (WifiPhy::GetOfdmRate6MbpsBW10MHz ());
-  m_deviceRateSet.push_back (WifiPhy::GetOfdmRate9MbpsBW10MHz ());
-  m_deviceRateSet.push_back (WifiPhy::GetOfdmRate12MbpsBW10MHz ());
-  m_deviceRateSet.push_back (WifiPhy::GetOfdmRate18MbpsBW10MHz ());
-  m_deviceRateSet.push_back (WifiPhy::GetOfdmRate24MbpsBW10MHz ());
-  m_deviceRateSet.push_back (WifiPhy::GetOfdmRate27MbpsBW10MHz ());
-}
-
-void
 YansWifiPhy::RegisterListener (WifiPhyListener *listener)
 {
   m_state->RegisterListener (listener);
diff -Naur ns-3.18/src/wifi/model/yans-wifi-phy.h ns-3.18.1/src/wifi/model/yans-wifi-phy.h
--- ns-3.18/src/wifi/model/yans-wifi-phy.h	2013-08-29 22:36:59.000000000 -0700
+++ ns-3.18.1/src/wifi/model/yans-wifi-phy.h	2013-11-15 16:40:48.579760978 -0800
@@ -166,11 +166,11 @@
   virtual void SetNumberOfTransmitAntennas (uint32_t tx);
   virtual uint32_t GetNumberOfTransmitAntennas (void) const;
   /**
-   * \param the number of recievers on this node.
+   * \param the number of receivers on this node.
    */
   virtual void SetNumberOfReceiveAntennas (uint32_t rx) ;
   /**
-   * \returns the number of recievers on this node.
+   * \returns the number of receivers on this node.
    */
   virtual uint32_t GetNumberOfReceiveAntennas (void) const;
   /**
@@ -245,8 +245,6 @@
   void Configure80211_10Mhz (void);
   void Configure80211_5Mhz ();
   void ConfigureHolland (void);
-  void Configure80211p_CCH (void);
-  void Configure80211p_SCH (void);
   void Configure80211n (void);
   double GetEdThresholdW (void) const;
   double DbmToW (double dbm) const;
@@ -272,7 +270,7 @@
 
   // number of transmitters
   uint32_t m_numberOfTransmitters;
-  // number of recievers
+  // number of receivers
   uint32_t m_numberOfReceivers;
   //if true use LDPC
   bool     m_ldpc;
diff -Naur ns-3.18/src/wifi/test/wifi-test.cc ns-3.18.1/src/wifi/test/wifi-test.cc
--- ns-3.18/src/wifi/test/wifi-test.cc	2013-08-29 22:36:59.000000000 -0700
+++ ns-3.18.1/src/wifi/test/wifi-test.cc	2013-11-15 16:40:48.615760979 -0800
@@ -38,9 +38,44 @@
 #include "ns3/mac-rx-middle.h"
 #include "ns3/pointer.h"
 #include "ns3/rng-seed-manager.h"
+#include "ns3/edca-txop-n.h"
+#include "ns3/config.h"
+#include "ns3/boolean.h"
 
 namespace ns3 {
 
+// helper function to assign streams to random variables, to control 
+// randomness in the tests
+static void
+AssignWifiRandomStreams (Ptr<WifiMac> mac, int64_t stream)
+{
+  int64_t currentStream = stream;
+  Ptr<RegularWifiMac> rmac = DynamicCast<RegularWifiMac> (mac);
+  if (rmac)
+    {
+      PointerValue ptr;
+      rmac->GetAttribute ("DcaTxop", ptr);
+      Ptr<DcaTxop> dcaTxop = ptr.Get<DcaTxop> ();
+      currentStream += dcaTxop->AssignStreams (currentStream);
+
+      rmac->GetAttribute ("VO_EdcaTxopN", ptr);
+      Ptr<EdcaTxopN> vo_edcaTxopN = ptr.Get<EdcaTxopN> ();
+      currentStream += vo_edcaTxopN->AssignStreams (currentStream);
+
+      rmac->GetAttribute ("VI_EdcaTxopN", ptr);
+      Ptr<EdcaTxopN> vi_edcaTxopN = ptr.Get<EdcaTxopN> ();
+      currentStream += vi_edcaTxopN->AssignStreams (currentStream);
+
+      rmac->GetAttribute ("BE_EdcaTxopN", ptr);
+      Ptr<EdcaTxopN> be_edcaTxopN = ptr.Get<EdcaTxopN> ();
+      currentStream += be_edcaTxopN->AssignStreams (currentStream);
+
+      rmac->GetAttribute ("BK_EdcaTxopN", ptr);
+      Ptr<EdcaTxopN> bk_edcaTxopN = ptr.Get<EdcaTxopN> ();
+      currentStream += bk_edcaTxopN->AssignStreams (currentStream);
+    }
+}
+
 class WifiTest : public TestCase
 {
 public:
@@ -378,10 +413,15 @@
   m_propDelay.SetTypeId ("ns3::ConstantSpeedPropagationDelayModel");
   m_manager.SetTypeId ("ns3::ConstantRateWifiManager");
 
-  //The simulation with the following seed and run numbers expe
+  // Assign a seed and run number, and later fix the assignment of streams to
+  // WiFi random variables, so that the first backoff used is zero slots
   RngSeedManager::SetSeed (1);
   RngSeedManager::SetRun (17);
 
+  // Disable the initial jitter of AP beacons (test case was written before
+  // beacon jitter was added)
+  Config::SetDefault ("ns3::ApWifiMac::EnableBeaconJitter", BooleanValue (false));
+
   Ptr<YansWifiChannel> channel = CreateObject<YansWifiChannel> ();
   Ptr<PropagationDelayModel> propDelay = m_propDelay.Create<PropagationDelayModel> ();
   Ptr<PropagationLossModel> propLoss = CreateObject<RandomPropagationLossModel> ();
@@ -392,6 +432,11 @@
   Ptr<WifiNetDevice> txDev = CreateObject<WifiNetDevice> ();
   Ptr<WifiMac> txMac = m_mac.Create<WifiMac> ();
   txMac->ConfigureStandard (WIFI_PHY_STANDARD_80211a);
+  // Fix the stream assignment to the Dcf Txop objects (backoffs)
+  // The below stream assignment will result in the DcaTxop object
+  // using a backoff value of zero for this test when the 
+  // DcaTxop::EndTxNoAck() calls to StartBackoffNow()
+  AssignWifiRandomStreams (txMac, 23);
 
   Ptr<ConstantPositionMobilityModel> txMobility = CreateObject<ConstantPositionMobilityModel> ();
   Ptr<YansWifiPhy> txPhy = CreateObject<YansWifiPhy> ();
diff -Naur ns-3.18/src/wimax/bindings/modulegen__gcc_ILP32.py ns-3.18.1/src/wimax/bindings/modulegen__gcc_ILP32.py
--- ns-3.18/src/wimax/bindings/modulegen__gcc_ILP32.py	2013-08-29 22:36:59.000000000 -0700
+++ ns-3.18.1/src/wimax/bindings/modulegen__gcc_ILP32.py	2013-11-15 16:40:48.779760984 -0800
@@ -2231,8 +2231,8 @@
 def register_Ns3LogComponent_methods(root_module, cls):
     ## log.h (module 'core'): ns3::LogComponent::LogComponent(ns3::LogComponent const & arg0) [copy constructor]
     cls.add_constructor([param('ns3::LogComponent const &', 'arg0')])
-    ## log.h (module 'core'): ns3::LogComponent::LogComponent(char const * name) [constructor]
-    cls.add_constructor([param('char const *', 'name')])
+    ## log.h (module 'core'): ns3::LogComponent::LogComponent(std::string const & name) [constructor]
+    cls.add_constructor([param('std::string const &', 'name')])
     ## log.h (module 'core'): void ns3::LogComponent::Disable(ns3::LogLevel level) [member function]
     cls.add_method('Disable', 
                    'void', 
@@ -2241,10 +2241,10 @@
     cls.add_method('Enable', 
                    'void', 
                    [param('ns3::LogLevel', 'level')])
-    ## log.h (module 'core'): void ns3::LogComponent::EnvVarCheck(char const * name) [member function]
+    ## log.h (module 'core'): void ns3::LogComponent::EnvVarCheck(std::string const & name) [member function]
     cls.add_method('EnvVarCheck', 
                    'void', 
-                   [param('char const *', 'name')])
+                   [param('std::string const &', 'name')])
     ## log.h (module 'core'): std::string ns3::LogComponent::GetLevelLabel(ns3::LogLevel const level) const [member function]
     cls.add_method('GetLevelLabel', 
                    'std::string', 
@@ -4808,6 +4808,7 @@
     return
 
 def register_Ns3Int64x64_t_methods(root_module, cls):
+    cls.add_binary_comparison_operator('<=')
     cls.add_binary_comparison_operator('!=')
     cls.add_inplace_numeric_operator('+=', param('ns3::int64x64_t const &', 'right'))
     cls.add_binary_numeric_operator('*', root_module['ns3::int64x64_t'], root_module['ns3::int64x64_t'], param('long long unsigned int const', 'right'))
@@ -4865,7 +4866,6 @@
     cls.add_inplace_numeric_operator('-=', param('ns3::int64x64_t const &', 'right'))
     cls.add_inplace_numeric_operator('/=', param('ns3::int64x64_t const &', 'right'))
     cls.add_output_stream_operator()
-    cls.add_binary_comparison_operator('<=')
     cls.add_binary_comparison_operator('==')
     cls.add_binary_comparison_operator('>=')
     ## int64x64-double.h (module 'core'): ns3::int64x64_t::int64x64_t() [constructor]
@@ -6421,6 +6421,7 @@
     return
 
 def register_Ns3Time_methods(root_module, cls):
+    cls.add_binary_comparison_operator('<=')
     cls.add_binary_comparison_operator('!=')
     cls.add_inplace_numeric_operator('+=', param('ns3::Time const &', 'right'))
     cls.add_binary_numeric_operator('+', root_module['ns3::Time'], root_module['ns3::Time'], param('ns3::Time const &', 'right'))
@@ -6429,7 +6430,6 @@
     cls.add_binary_comparison_operator('>')
     cls.add_inplace_numeric_operator('-=', param('ns3::Time const &', 'right'))
     cls.add_output_stream_operator()
-    cls.add_binary_comparison_operator('<=')
     cls.add_binary_comparison_operator('==')
     cls.add_binary_comparison_operator('>=')
     ## nstime.h (module 'core'): ns3::Time::Time() [constructor]
diff -Naur ns-3.18/src/wimax/bindings/modulegen__gcc_LP64.py ns-3.18.1/src/wimax/bindings/modulegen__gcc_LP64.py
--- ns-3.18/src/wimax/bindings/modulegen__gcc_LP64.py	2013-08-29 22:36:59.000000000 -0700
+++ ns-3.18.1/src/wimax/bindings/modulegen__gcc_LP64.py	2013-11-15 16:40:48.767760988 -0800
@@ -2231,8 +2231,8 @@
 def register_Ns3LogComponent_methods(root_module, cls):
     ## log.h (module 'core'): ns3::LogComponent::LogComponent(ns3::LogComponent const & arg0) [copy constructor]
     cls.add_constructor([param('ns3::LogComponent const &', 'arg0')])
-    ## log.h (module 'core'): ns3::LogComponent::LogComponent(char const * name) [constructor]
-    cls.add_constructor([param('char const *', 'name')])
+    ## log.h (module 'core'): ns3::LogComponent::LogComponent(std::string const & name) [constructor]
+    cls.add_constructor([param('std::string const &', 'name')])
     ## log.h (module 'core'): void ns3::LogComponent::Disable(ns3::LogLevel level) [member function]
     cls.add_method('Disable', 
                    'void', 
@@ -2241,10 +2241,10 @@
     cls.add_method('Enable', 
                    'void', 
                    [param('ns3::LogLevel', 'level')])
-    ## log.h (module 'core'): void ns3::LogComponent::EnvVarCheck(char const * name) [member function]
+    ## log.h (module 'core'): void ns3::LogComponent::EnvVarCheck(std::string const & name) [member function]
     cls.add_method('EnvVarCheck', 
                    'void', 
-                   [param('char const *', 'name')])
+                   [param('std::string const &', 'name')])
     ## log.h (module 'core'): std::string ns3::LogComponent::GetLevelLabel(ns3::LogLevel const level) const [member function]
     cls.add_method('GetLevelLabel', 
                    'std::string', 
@@ -4808,6 +4808,7 @@
     return
 
 def register_Ns3Int64x64_t_methods(root_module, cls):
+    cls.add_binary_comparison_operator('<=')
     cls.add_binary_comparison_operator('!=')
     cls.add_inplace_numeric_operator('+=', param('ns3::int64x64_t const &', 'right'))
     cls.add_binary_numeric_operator('*', root_module['ns3::int64x64_t'], root_module['ns3::int64x64_t'], param('long long unsigned int const', 'right'))
@@ -4865,7 +4866,6 @@
     cls.add_inplace_numeric_operator('-=', param('ns3::int64x64_t const &', 'right'))
     cls.add_inplace_numeric_operator('/=', param('ns3::int64x64_t const &', 'right'))
     cls.add_output_stream_operator()
-    cls.add_binary_comparison_operator('<=')
     cls.add_binary_comparison_operator('==')
     cls.add_binary_comparison_operator('>=')
     ## int64x64-double.h (module 'core'): ns3::int64x64_t::int64x64_t() [constructor]
@@ -6421,6 +6421,7 @@
     return
 
 def register_Ns3Time_methods(root_module, cls):
+    cls.add_binary_comparison_operator('<=')
     cls.add_binary_comparison_operator('!=')
     cls.add_inplace_numeric_operator('+=', param('ns3::Time const &', 'right'))
     cls.add_binary_numeric_operator('+', root_module['ns3::Time'], root_module['ns3::Time'], param('ns3::Time const &', 'right'))
@@ -6429,7 +6430,6 @@
     cls.add_binary_comparison_operator('>')
     cls.add_inplace_numeric_operator('-=', param('ns3::Time const &', 'right'))
     cls.add_output_stream_operator()
-    cls.add_binary_comparison_operator('<=')
     cls.add_binary_comparison_operator('==')
     cls.add_binary_comparison_operator('>=')
     ## nstime.h (module 'core'): ns3::Time::Time() [constructor]
diff -Naur ns-3.18/src/wimax/model/snr-to-block-error-rate-manager.h ns-3.18.1/src/wimax/model/snr-to-block-error-rate-manager.h
--- ns-3.18/src/wimax/model/snr-to-block-error-rate-manager.h	2013-08-29 22:36:59.000000000 -0700
+++ ns-3.18.1/src/wimax/model/snr-to-block-error-rate-manager.h	2013-11-15 16:40:48.759760986 -0800
@@ -92,7 +92,6 @@
   void ActivateLoss (bool loss);
 private:
   void ClearRecords (void);
-  double m_speed; // in m/s
   uint8_t m_activateLoss;
   static const unsigned int TRACE_FILE_PATH_SIZE = 1024;
   char m_traceFilePath[TRACE_FILE_PATH_SIZE];
diff -Naur ns-3.18/src/wimax/model/ss-service-flow-manager.cc ns-3.18.1/src/wimax/model/ss-service-flow-manager.cc
--- ns-3.18/src/wimax/model/ss-service-flow-manager.cc	2013-08-29 22:36:59.000000000 -0700
+++ ns-3.18.1/src/wimax/model/ss-service-flow-manager.cc	2013-11-15 16:40:48.739760988 -0800
@@ -44,7 +44,6 @@
 
 SsServiceFlowManager::SsServiceFlowManager (Ptr<SubscriberStationNetDevice> device)
   : m_device (device),
-    m_sfidIndex (100),
     m_maxDsaReqRetries (100),
     m_dsaReq (DsaReq ()),
     m_dsaAck (DsaAck ()),
diff -Naur ns-3.18/src/wimax/model/ss-service-flow-manager.h ns-3.18.1/src/wimax/model/ss-service-flow-manager.h
--- ns-3.18/src/wimax/model/ss-service-flow-manager.h	2013-08-29 22:36:59.000000000 -0700
+++ ns-3.18.1/src/wimax/model/ss-service-flow-manager.h	2013-11-15 16:40:48.751760984 -0800
@@ -91,8 +91,6 @@
 private:
   Ptr<SubscriberStationNetDevice> m_device;
 
-  uint32_t m_sfidIndex;
-
   uint8_t m_maxDsaReqRetries;
 
   EventId m_dsaRspTimeoutEvent;
diff -Naur ns-3.18/VERSION ns-3.18.1/VERSION
--- ns-3.18/VERSION	2013-08-29 22:36:52.000000000 -0700
+++ ns-3.18.1/VERSION	2013-11-15 16:40:48.251760971 -0800
@@ -1 +1 @@
-3.18
+3.18.1
