<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://www.nsnam.org/mediawiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=SamJansen</id>
	<title>Nsnam - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://www.nsnam.org/mediawiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=SamJansen"/>
	<link rel="alternate" type="text/html" href="https://www.nsnam.org/wiki/Special:Contributions/SamJansen"/>
	<updated>2026-04-21T18:25:35Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.8</generator>
	<entry>
		<id>https://www.nsnam.org/mediawiki/index.php?title=Troubleshooting&amp;diff=2117</id>
		<title>Troubleshooting</title>
		<link rel="alternate" type="text/html" href="https://www.nsnam.org/mediawiki/index.php?title=Troubleshooting&amp;diff=2117"/>
		<updated>2008-11-19T02:21:49Z</updated>

		<summary type="html">&lt;p&gt;SamJansen: /* Run-time errors */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TOC}}&lt;br /&gt;
&lt;br /&gt;
This is a wiki; if you find items not adequately covered below, please consider adding an entry.&lt;br /&gt;
&lt;br /&gt;
== Platform-specific issues ==&lt;br /&gt;
&lt;br /&gt;
=== Cygwin ===&lt;br /&gt;
&lt;br /&gt;
'''Python bindings'''&lt;br /&gt;
&lt;br /&gt;
Python bindings do not build successfully due to a gccxml bug.  See the [[NS-3_Python_Bindings#Caveats]] page.&lt;br /&gt;
&lt;br /&gt;
If you see &amp;quot;resolving vtable&amp;quot; messages while linking such as the below when you compile on Cygwin, you can safely ignore them:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[530/535] cxx_link: build/debug/examples/wifi-wired-bridging_23.o -&amp;gt; build/debug&lt;br /&gt;
/examples/wifi-wired-bridging.exe&lt;br /&gt;
Info: resolving vtable for ns3::EmptyAttributeValueby linking to __imp___ZTVN3ns&lt;br /&gt;
319EmptyAttributeValueE (auto-import)&lt;br /&gt;
Info: resolving vtable for ns3::RandomVariableValueby linking to __imp___ZTVN3ns&lt;br /&gt;
319RandomVariableValueE (auto-import)&lt;br /&gt;
Info: resolving vtable for ns3::RectangleValueby linking to __imp___ZTVN3ns314Re&lt;br /&gt;
ctangleValueE (auto-import)&lt;br /&gt;
Info: resolving vtable for ns3::TimeValueby linking to __imp___ZTVN3ns39TimeValu&lt;br /&gt;
eE (auto-import)&lt;br /&gt;
Info: resolving vtable for ns3::BooleanValueby linking to __imp___ZTVN3ns312Bool&lt;br /&gt;
eanValueE (auto-import)&lt;br /&gt;
&lt;br /&gt;
etc.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''NSC'''&lt;br /&gt;
&lt;br /&gt;
The Network Simulation Cradle is not supported under Cygwin. It is advised to use a Unix-based platform instead. Windows users can use a virtual machine to run e.g. Linux. See e.g. http://www.virtualbox.org/ for a free virtual machine.&lt;br /&gt;
&lt;br /&gt;
== General build problems ==&lt;br /&gt;
&lt;br /&gt;
* Q.  What is this kind of build error representative of?&lt;br /&gt;
  assert failed. file=../src/core/type-id.cc, line=389, cond=&amp;quot;uid != 0&amp;quot;&lt;br /&gt;
  Command ['/ns-3-dev/build/debug/examples/mixed-wireless'] exited with code -5&lt;br /&gt;
* A.  The system can't find the specified TypeId.  Check spelling, and whether it is prefixed with the namespace &amp;quot;ns3::&amp;quot;&lt;br /&gt;
* Q.  A required software package is in a non-standard place.  How to get waf to find the packages?&lt;br /&gt;
* A.  To compile with non-standard link path, use the environment variable LINKFLAGS.  Example for bash shell:&lt;br /&gt;
 LINKFLAGS=&amp;quot;-L/tmp&amp;quot; ./waf configure&lt;br /&gt;
&lt;br /&gt;
== Run-time errors ==&lt;br /&gt;
&lt;br /&gt;
* Q.  What is this assertion indicating?&lt;br /&gt;
  assert failed. file=debug/ns3/tags.h, line=105, cond=&amp;quot;sizeof (T) &amp;lt;= Tags::SIZE&amp;quot;&lt;br /&gt;
* A.  The packet tag may be greater than Tags::SIZE (16 bytes)&lt;br /&gt;
&lt;br /&gt;
* Q. Why does valgrind fail with SIGILL on a simulation using NSC?&lt;br /&gt;
* A. Valgrind does not work under 64-bit mode when running NSC due to lack of support for all the opcodes used. This has been confirmed to work in 32-bit mode.&lt;br /&gt;
&lt;br /&gt;
== Debugging tips ==&lt;br /&gt;
&lt;br /&gt;
* Q.  Is there a way to dereference a Ptr when in gdb?  &lt;br /&gt;
* A.  yes:  p *ptr-&amp;gt;m_ptr&lt;/div&gt;</summary>
		<author><name>SamJansen</name></author>
	</entry>
	<entry>
		<id>https://www.nsnam.org/mediawiki/index.php?title=Troubleshooting&amp;diff=2116</id>
		<title>Troubleshooting</title>
		<link rel="alternate" type="text/html" href="https://www.nsnam.org/mediawiki/index.php?title=Troubleshooting&amp;diff=2116"/>
		<updated>2008-11-19T02:17:37Z</updated>

		<summary type="html">&lt;p&gt;SamJansen: /* Cygwin */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TOC}}&lt;br /&gt;
&lt;br /&gt;
This is a wiki; if you find items not adequately covered below, please consider adding an entry.&lt;br /&gt;
&lt;br /&gt;
== Platform-specific issues ==&lt;br /&gt;
&lt;br /&gt;
=== Cygwin ===&lt;br /&gt;
&lt;br /&gt;
'''Python bindings'''&lt;br /&gt;
&lt;br /&gt;
Python bindings do not build successfully due to a gccxml bug.  See the [[NS-3_Python_Bindings#Caveats]] page.&lt;br /&gt;
&lt;br /&gt;
If you see &amp;quot;resolving vtable&amp;quot; messages while linking such as the below when you compile on Cygwin, you can safely ignore them:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[530/535] cxx_link: build/debug/examples/wifi-wired-bridging_23.o -&amp;gt; build/debug&lt;br /&gt;
/examples/wifi-wired-bridging.exe&lt;br /&gt;
Info: resolving vtable for ns3::EmptyAttributeValueby linking to __imp___ZTVN3ns&lt;br /&gt;
319EmptyAttributeValueE (auto-import)&lt;br /&gt;
Info: resolving vtable for ns3::RandomVariableValueby linking to __imp___ZTVN3ns&lt;br /&gt;
319RandomVariableValueE (auto-import)&lt;br /&gt;
Info: resolving vtable for ns3::RectangleValueby linking to __imp___ZTVN3ns314Re&lt;br /&gt;
ctangleValueE (auto-import)&lt;br /&gt;
Info: resolving vtable for ns3::TimeValueby linking to __imp___ZTVN3ns39TimeValu&lt;br /&gt;
eE (auto-import)&lt;br /&gt;
Info: resolving vtable for ns3::BooleanValueby linking to __imp___ZTVN3ns312Bool&lt;br /&gt;
eanValueE (auto-import)&lt;br /&gt;
&lt;br /&gt;
etc.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''NSC'''&lt;br /&gt;
&lt;br /&gt;
The Network Simulation Cradle is not supported under Cygwin. It is advised to use a Unix-based platform instead. Windows users can use a virtual machine to run e.g. Linux. See e.g. http://www.virtualbox.org/ for a free virtual machine.&lt;br /&gt;
&lt;br /&gt;
== General build problems ==&lt;br /&gt;
&lt;br /&gt;
* Q.  What is this kind of build error representative of?&lt;br /&gt;
  assert failed. file=../src/core/type-id.cc, line=389, cond=&amp;quot;uid != 0&amp;quot;&lt;br /&gt;
  Command ['/ns-3-dev/build/debug/examples/mixed-wireless'] exited with code -5&lt;br /&gt;
* A.  The system can't find the specified TypeId.  Check spelling, and whether it is prefixed with the namespace &amp;quot;ns3::&amp;quot;&lt;br /&gt;
* Q.  A required software package is in a non-standard place.  How to get waf to find the packages?&lt;br /&gt;
* A.  To compile with non-standard link path, use the environment variable LINKFLAGS.  Example for bash shell:&lt;br /&gt;
 LINKFLAGS=&amp;quot;-L/tmp&amp;quot; ./waf configure&lt;br /&gt;
&lt;br /&gt;
== Run-time errors ==&lt;br /&gt;
&lt;br /&gt;
* Q.  What is this assertion indicating?&lt;br /&gt;
  assert failed. file=debug/ns3/tags.h, line=105, cond=&amp;quot;sizeof (T) &amp;lt;= Tags::SIZE&amp;quot;&lt;br /&gt;
* A.  The packet tag may be greater than Tags::SIZE (16 bytes)&lt;br /&gt;
&lt;br /&gt;
== Debugging tips ==&lt;br /&gt;
&lt;br /&gt;
* Q.  Is there a way to dereference a Ptr when in gdb?  &lt;br /&gt;
* A.  yes:  p *ptr-&amp;gt;m_ptr&lt;/div&gt;</summary>
		<author><name>SamJansen</name></author>
	</entry>
	<entry>
		<id>https://www.nsnam.org/mediawiki/index.php?title=Ns-3.3&amp;diff=2113</id>
		<title>Ns-3.3</title>
		<link rel="alternate" type="text/html" href="https://www.nsnam.org/mediawiki/index.php?title=Ns-3.3&amp;diff=2113"/>
		<updated>2008-11-18T05:58:19Z</updated>

		<summary type="html">&lt;p&gt;SamJansen: Removed my bug entry that is now closed.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TOC}}&lt;br /&gt;
&lt;br /&gt;
== The Release ==&lt;br /&gt;
This page summarizes the ongoing release planning for the third stable release of ns-3.&lt;br /&gt;
&lt;br /&gt;
* ns-3-dev is currently in the maintenance phase of the ns-3.3 release.  Only bugfixes for bugs reported in the tracker are allowed.&lt;br /&gt;
&lt;br /&gt;
* The first release candidate for ns-3.3 is scheduled for release on December 1, 2008&lt;br /&gt;
&lt;br /&gt;
* ns-3.3 is scheduled for release in December 17, 2008. &lt;br /&gt;
&lt;br /&gt;
== The Hot List ==&lt;br /&gt;
ns-3.3 is currently in the maintenance phase of the release.  The next phase, the code-freeze phase starts on December 1, 2008.  By definition, all priority one bugs should be fixed by that time.  As I type this, it is November 17, and we have nine working days left until code freeze (seven days in the U.S. due to the Thanksgiving holiday).&lt;br /&gt;
&lt;br /&gt;
As soon as ns-3.2.1 is released, the bugs in the tracker marked as priority two will be elevated to priority one and therefore be blockers for ns-3.3 as defined.  We have accumulated quite a list of such bugs.  I have broken out the list under the maintainers who are responsible for the bugs.  This is a friendly reminder that this list really needs to be close to zero bugs by November 30.&lt;br /&gt;
&lt;br /&gt;
Bhattacharjea:&lt;br /&gt;
&lt;br /&gt;
# [http://www.nsnam.org/bugzilla/show_bug.cgi?id=250 250 Tcp breaks if you set the delackcount &amp;gt; 2]&lt;br /&gt;
# [http://www.nsnam.org/bugzilla/show_bug.cgi?id=341 341 Get unexpected dropped packets when using SetSendCallback with heavy traffic]&lt;br /&gt;
# [http://www.nsnam.org/bugzilla/show_bug.cgi?id=358 358 calling listen on non-closed TCP sockets sends resets, should fail and do nothing]&lt;br /&gt;
# [http://www.nsnam.org/bugzilla/show_bug.cgi?id=365 365 TcpSocketImpl::Recv returns 0 without setting m_errno]&lt;br /&gt;
# [http://www.nsnam.org/bugzilla/show_bug.cgi?id=392 392 Example star.cc confuses TCP]&lt;br /&gt;
# [http://www.nsnam.org/bugzilla/show_bug.cgi?id=410 410 Doxygen is not picking up class OnOffHelper]&lt;br /&gt;
# [http://www.nsnam.org/bugzilla/show_bug.cgi?id=411 411 OnOffApplication::OnTime does not work]&lt;br /&gt;
&lt;br /&gt;
Carniero:&lt;br /&gt;
&lt;br /&gt;
# [http://www.nsnam.org/bugzilla/show_bug.cgi?id=348 348 regression tests do not work in private or disconnected networks]&lt;br /&gt;
# [http://www.nsnam.org/bugzilla/show_bug.cgi?id=289 289 CommandLine::AddValue is not wrapped]&lt;br /&gt;
# [http://www.nsnam.org/bugzilla/show_bug.cgi?id=325 325 regression code should be moved into regression/wscript]&lt;br /&gt;
# [http://www.nsnam.org/bugzilla/show_bug.cgi?id=387 387 Build fails with junk subdirectories in &amp;quot;scratch&amp;quot; directory]&lt;br /&gt;
# [http://www.nsnam.org/bugzilla/show_bug.cgi?id=407 407 OLSR may select wrong interface in MID context]&lt;br /&gt;
# [http://www.nsnam.org/bugzilla/show_bug.cgi?id=413 413 python bindings not portable to OS X]&lt;br /&gt;
&lt;br /&gt;
Dowell:&lt;br /&gt;
&lt;br /&gt;
# [http://www.nsnam.org/bugzilla/show_bug.cgi?id=66 66 improve granularity of GlobalRouteManager::PopulateRoutes]&lt;br /&gt;
# [http://www.nsnam.org/bugzilla/show_bug.cgi?id=114 114 global routing doesn't handle multi-hop layer-2 subnets]&lt;br /&gt;
# [http://www.nsnam.org/bugzilla/show_bug.cgi?id=187 187 Need 'perfect' ARP]&lt;br /&gt;
# [http://www.nsnam.org/bugzilla/show_bug.cgi?id=241 241 Trace sources not clearly documented, trace sinks not clearly documented]&lt;br /&gt;
# [http://www.nsnam.org/bugzilla/show_bug.cgi?id=263 263 XxxAddress::ConvertFrom are prone to subtle bugs]&lt;br /&gt;
# [http://www.nsnam.org/bugzilla/show_bug.cgi?id=383 &amp;lt;s&amp;gt;383 Please make _all_ header structures public&amp;lt;/s&amp;gt;] -- Fixed&lt;br /&gt;
# [http://www.nsnam.org/bugzilla/show_bug.cgi?id=391 &amp;lt;s&amp;gt;391 Example csma-star kills global routing&amp;lt;/s&amp;gt;] -- Fixed&lt;br /&gt;
# [http://www.nsnam.org/bugzilla/show_bug.cgi?id=401 &amp;lt;s&amp;gt;401 add InternetStackHelper::EnableAscii ()&amp;lt;/s&amp;gt;] -- Fixed&lt;br /&gt;
# [http://www.nsnam.org/bugzilla/show_bug.cgi?id=403 &amp;lt;s&amp;gt;403 Ipv4AddressHelper cannot assign /32 addresses&amp;lt;/s&amp;gt;] -- Fixed&lt;br /&gt;
# [http://www.nsnam.org/bugzilla/show_bug.cgi?id=404 &amp;lt;s&amp;gt;404 ErrorModel attribute name is not consistent across devices&amp;lt;/s&amp;gt;] -- Fixed&lt;br /&gt;
&lt;br /&gt;
Henderson:&lt;br /&gt;
&lt;br /&gt;
# [http://www.nsnam.org/bugzilla/show_bug.cgi?id=188 188 global routing does not handle ip aliasing]&lt;br /&gt;
# [http://www.nsnam.org/bugzilla/show_bug.cgi?id=400 400 Wifi Muti-Hop Network not forwaring packets (atleast ARP)]&lt;br /&gt;
# [http://www.nsnam.org/bugzilla/show_bug.cgi?id=406 406 GlobalRouteManager behaviour after Ipv4 interface SetDown and SetUp procedure]&lt;br /&gt;
&lt;br /&gt;
Lacage:&lt;br /&gt;
&lt;br /&gt;
# [http://www.nsnam.org/bugzilla/show_bug.cgi?id=215 215 Node names patch]&lt;br /&gt;
# [http://www.nsnam.org/bugzilla/show_bug.cgi?id=218 218 wifi PHY base class must be virtualized and subclass renamed]&lt;br /&gt;
# [http://www.nsnam.org/bugzilla/show_bug.cgi?id=230 230 Simulator::Now() Updating and Simulator::Stop()]&lt;br /&gt;
# [http://www.nsnam.org/bugzilla/show_bug.cgi?id=257 257 log time printer, can we optionally support output of time in seconds?]&lt;br /&gt;
# [http://www.nsnam.org/bugzilla/show_bug.cgi?id=395 395 log distance propagation loss model complex to use.]&lt;br /&gt;
# [http://www.nsnam.org/bugzilla/show_bug.cgi?id=396 396 Weird WiFi error state with STA slowing approaching the wifi range of an AP]&lt;br /&gt;
# [http://www.nsnam.org/bugzilla/show_bug.cgi?id=397 397 Custom WifiModes apparently not possible in infrastructure mode]&lt;br /&gt;
# [http://www.nsnam.org/bugzilla/show_bug.cgi?id=398 398 NqstaWifiMac does not filter received frames by BSSID]&lt;br /&gt;
# [http://www.nsnam.org/bugzilla/show_bug.cgi?id=405 405 wifi log messages improvements]&lt;br /&gt;
# [http://www.nsnam.org/bugzilla/show_bug.cgi?id=408 408 No duplicate filtering for managament frames]&lt;br /&gt;
# [http://www.nsnam.org/bugzilla/show_bug.cgi?id=409 409 Simulation fails depending on number of wireless nodes]&lt;br /&gt;
# [http://www.nsnam.org/bugzilla/show_bug.cgi?id=412 412 Extend number of template parameters in xxxCallback classes]&lt;br /&gt;
&lt;br /&gt;
Westphal:&lt;br /&gt;
&lt;br /&gt;
# [http://www.nsnam.org/bugzilla/show_bug.cgi?id=320 320 getsockname returns a port number in network byte order]&lt;br /&gt;
# [http://www.nsnam.org/bugzilla/show_bug.cgi?id=356 356 tcp-nsc-lfn fails with --valgrind selected]&lt;br /&gt;
&lt;br /&gt;
== The Release Manager ==&lt;br /&gt;
Craig Dowell (craigdo at ee.washington.edu) is the release manager for ns-3.3 and is the contact for any release issues.&lt;br /&gt;
&lt;br /&gt;
== The ns-3.3 Release Schedule == &lt;br /&gt;
ns-3 releases are based on date-driven schedules as opposed to feature-driven schedules.  We decide on a release date and then the release manager works backward to define windows during which time certain activites related to the release can happen.  This has been done for ns-3.3 and the important milestones are:&lt;br /&gt;
&lt;br /&gt;
# September 22 -- ns-3.2 posted;&lt;br /&gt;
# September 22 -- ns-3.3 '''''Open phase begins''''';&lt;br /&gt;
# October 20 -- Recommended cutoff for new feature submission;&lt;br /&gt;
# October 27 -- Deadline for new feature submissions that require design review;&lt;br /&gt;
# November 3 -- Approved new feature ready-for-merge deadline;&lt;br /&gt;
# November 3 -- Late merge period begins ('''''Merge Week Begins''''');&lt;br /&gt;
# November 10 -- Late merge period ends;&lt;br /&gt;
# November 10 -- '''''Open phase ends''''';&lt;br /&gt;
# November 10 -- '''''Maintenance phase begins''''';&lt;br /&gt;
# December 1 -- '''''Maintenance phase ends''''';&lt;br /&gt;
# December 1 -- '''''Code freeze phase begins''''';&lt;br /&gt;
# December 1 -- ns-3.3-RC1;&lt;br /&gt;
# December 4 -- ns-3.3-RC2;&lt;br /&gt;
# December 8 -- ns-3.3-RC3;&lt;br /&gt;
# December 11 -- ns-3.3-RC4;&lt;br /&gt;
# December 17 -- ns-3.3 posted;&lt;br /&gt;
# December 17 -- '''''Code freeze phase ends''''';&lt;br /&gt;
# December 17 -- ns-3.4 Open phase begins.&lt;br /&gt;
&lt;br /&gt;
As described in the [[Roadmap]] there are three broad sections in the release schedule.  During the open phase, people wanting to include a new feature in ns-3.3 should contact craigdo and arrange to have their features merged into ns-3-dev.  You will be expected to provide the following:&lt;br /&gt;
&lt;br /&gt;
* A mercurial patch or bundle against the current version of ns-3-dev that contains your proposed feature addition.  You need to make sure that I can apply this patch and build and run (debug and optimized as appropriate) all unit and regression tests sucessfully on all of our target machines;&lt;br /&gt;
* A summary of the additions you are proposing and an explanation of any changes to existing code that had to be done in order to support your feature (this will be used to genenerate release notes and will be provided to maintainers if a code review is indicated);&lt;br /&gt;
* Some kind of unit or regression test that I can use to determine if your feature is actually working at each stage of the integration.&lt;br /&gt;
&lt;br /&gt;
I will take a quick look at your proposed addition and determine if a code review is required.  According to the ''book of instructions'' a code review requiring positive acknowledgement by maintainers is indicated if:&lt;br /&gt;
&lt;br /&gt;
* Your proposed feature does not work with all models or on all platforms;&lt;br /&gt;
* Your feature changes pre-existing APIs;&lt;br /&gt;
* Your feature crosses maintainer boundaries.&lt;br /&gt;
&lt;br /&gt;
Just to be safe, I will probably run a feature submission by at least one maintainer according to the general area of applicability of the feature.  For example, if you submit an entirely new device driver model, as a courtesy I will run this submission by the maintainers of the current devices.  The maintainers won't have any responsibility to positively ack the submission, but I will take some time to allow a reasonable review.&lt;br /&gt;
&lt;br /&gt;
I will coordinate new feature merges beginning at the start of the open phase (September 22, 2008).  The absolute final deadline for feature inclusion in ns-3.3 is the start of the &amp;quot;Late merge period.&amp;quot;  This is the time during which I merge the code from all of those people who have waited until the last minute and work out any system integration issues that pop up.  If you miss the start of the late merge period, or have a feature that is not design-reviewed by the start of the late merge period, well, sorry.  You get to wait until the ns-3.4 open period to try again.&lt;br /&gt;
&lt;br /&gt;
The end of the late merge period coincides with the beginning of the maintenance phase.  No new features may be added, but the maintainers may check in fixes to bugs; and people with new features that have been accepted and merged may fix bugs in existing features.  Please don't try to sneak in more new features or you may have your whole feature set removed at the release manager's discretion.  You can ask me if you want to add small, self-contained features, but there are no guarantees that I will okay them.&lt;br /&gt;
&lt;br /&gt;
On December 1st, we are going to enter the code freeze phase.  This indicates that we are in the final stages of the release and our primary goal is stability.  During the code freeze phase, only P1 bugfixes will be allowed to be checked in.  I will begin my daily annoying emails listing all of the priority one bugs that are outstanding.  Our ''goal'' will be to reduce the number of P1 bugs to zero before the release of ns-3.3.&lt;br /&gt;
&lt;br /&gt;
'''''I reserve the right to veto (and remove) any new feature addition if it begins to cause problems and looks like it threatens the stability of the release at any time in the release process.'''''&lt;br /&gt;
&lt;br /&gt;
== Candidates for Merge into ns-3.3 ==&lt;br /&gt;
As you can see in the [[Roadmap]], we have identified several candidates for inclusion in ns-3.3.  As time passes, I will add more status regarding the progress of these new features.&lt;br /&gt;
&lt;br /&gt;
* IPv6 Address Support -- Merged&lt;br /&gt;
* Emulation Mode Support -- Merged&lt;br /&gt;
* ICMP Support -- Merged&lt;br /&gt;
* &amp;lt;s&amp;gt;Build System Refactoring&amp;lt;/s&amp;gt; -- Dropped from ns-3.3&lt;br /&gt;
* &amp;lt;s&amp;gt;IPv4/Routing Refactoring + Basic IPv6 Support&amp;lt;/s&amp;gt; -- Dropped from ns-3-3&lt;br /&gt;
* &amp;lt;s&amp;gt;Random Number Generator and RandomVariable Changes&amp;lt;/s&amp;gt; -- Dropped from ns-3.3&lt;br /&gt;
&lt;br /&gt;
== IPv6 Address Support ==&lt;br /&gt;
=== Status as of November 7, 2008 ===&lt;br /&gt;
IPv6 Address Support merged into ns-3-dev.&lt;br /&gt;
&lt;br /&gt;
== Emulation Mode Support ==&lt;br /&gt;
=== Status as of November 5, 2008 ===&lt;br /&gt;
Emulation Mode Support merged into ns-3-dev.&lt;br /&gt;
&lt;br /&gt;
== ICMP Support ==&lt;br /&gt;
=== Status as of October 29, 2008 ===&lt;br /&gt;
ICMP Support merged into ns-3-dev.&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
[[User:Craigdo|Craigdo]] 05:52, 18 November 2008 (UTC)&lt;/div&gt;</summary>
		<author><name>SamJansen</name></author>
	</entry>
	<entry>
		<id>https://www.nsnam.org/mediawiki/index.php?title=Performance_Evaluation_and_Optimization&amp;diff=1537</id>
		<title>Performance Evaluation and Optimization</title>
		<link rel="alternate" type="text/html" href="https://www.nsnam.org/mediawiki/index.php?title=Performance_Evaluation_and_Optimization&amp;diff=1537"/>
		<updated>2008-03-27T17:05:50Z</updated>

		<summary type="html">&lt;p&gt;SamJansen: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Our goal here is to improve the performance of our simulation core and of our models, both from a cpu and a memory perspective. Since this is a very broad project, interested students will have to start by defining better the scope of what they would like to achieve. &lt;br /&gt;
&lt;br /&gt;
There are lots of components of the simulator which could benefit from careful optimizations:&lt;br /&gt;
* some of the core parts, most likely the event scheduler (see the directory src/simulator/)&lt;br /&gt;
* some of the models&lt;br /&gt;
&lt;br /&gt;
While it would be nice to work on the models, focusing the core components of the simulator would be much more useful because it will benefit many more users. Some potential projects related to the event scheduler:&lt;br /&gt;
* implement and carefully optimize a so-called Calendar Queue (R. Brown. Calendar Queues: A Fast O(1) Priority Queue Implementation for the Simulation Event Set Problem. Communications of the ACM (CACM), volume 31, number 10, pages 1220--1227, October 1988.).&lt;br /&gt;
* implement a &amp;quot;Dynamic Calendar Queue&amp;quot; event scheduler. The reference paper is: JongSuk Ahn, SeungHyun Oh, &amp;quot;Dynamic Calendar Queue,&amp;quot; ss, p. 20, Thirty-Second Annual Simulation Symposium, 1999.&lt;br /&gt;
Both of the above projects will require that the candidate implement a new subclass of the src/simulator/scheduler.h base class. Testing of the new subclass will be done by instantiating the new CalendarQueueScheduler and calling Simulator::SetScheduler before scheduling any event.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
We expect, however, all proposals to be based on the following workflow:&lt;br /&gt;
* define reference application-level scenarios and establish reference benchmarks for them&lt;br /&gt;
* perform cpu and memory profiling of the reference scenarios. Observe hotspots, explain the hotspots.&lt;br /&gt;
* propose and implement a solution to decrease the impact of the observed hotspots.&lt;br /&gt;
* re-run reference scenarios: if no improvement, hotspot explanation or implementation are most likely buggy. Understand why proposed solution did not improve things. If improvement, go back to profiling.&lt;br /&gt;
&lt;br /&gt;
Typical profiling tools on linux include:&lt;br /&gt;
* oprofile&lt;br /&gt;
* sysprof&lt;br /&gt;
* gprof&lt;br /&gt;
* valgrind/kcachegrind&lt;br /&gt;
* See also the Google Performance Tools: http://code.google.com/p/google-perftools/wiki/GooglePerformanceTools&lt;br /&gt;
&lt;br /&gt;
A good proposal will most likely integrate results from very early reference scenario definition, profiling, and hotspot explaination. i.e. it should contain a simple rough first iteration of the above workflow.&lt;/div&gt;</summary>
		<author><name>SamJansen</name></author>
	</entry>
</feed>