<?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=Davidzylin</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=Davidzylin"/>
	<link rel="alternate" type="text/html" href="https://www.nsnam.org/wiki/Special:Contributions/Davidzylin"/>
	<updated>2026-05-02T11:38:11Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.39.8</generator>
	<entry>
		<id>https://www.nsnam.org/mediawiki/index.php?title=GSOC2025AqmEvaluation&amp;diff=13639</id>
		<title>GSOC2025AqmEvaluation</title>
		<link rel="alternate" type="text/html" href="https://www.nsnam.org/mediawiki/index.php?title=GSOC2025AqmEvaluation&amp;diff=13639"/>
		<updated>2025-08-03T19:26:19Z</updated>

		<summary type="html">&lt;p&gt;Davidzylin: /* Weekly Updates */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TOC}}&lt;br /&gt;
&lt;br /&gt;
Back to [[Summer_Projects#Google_Summer_of_Code_2025 | GSoC 2025 projects]]&lt;br /&gt;
&lt;br /&gt;
= Project Overview =&lt;br /&gt;
&lt;br /&gt;
* '''Project Name:''' Upgrade the AQM Evaluation Suite for ns-3&lt;br /&gt;
* '''Student:''' David Lin&lt;br /&gt;
* '''Mentors:''' Mohit P. Tahiliani, Aniket Singh and Tom Henderson&lt;br /&gt;
* '''Google Page:''' [https://summerofcode.withgoogle.com/programs/2025/projects/d7sZPqy6 LINK]&lt;br /&gt;
* '''Project Proposal:''' [https://davidzylin.notion.site/Proposal-Upgrade-the-AQM-Evaluation-Suite-for-ns-3-1bbad0d7128d80be9d7df771f053491e?pvs=143 LINK]&lt;br /&gt;
* '''Project Goals:''' The AQM Evaluation Suite is an automated framework based on RFC 7928 that simplifies simulation setup, topology creation, traffic generation, execution, and results visualization of AQM algorithms in ns-3. Originally developed in 2017 and maintained until 2019, the suite now needs an upgrade to: (1) Migrate its build system from waf to CMake (2) Integrate support for state-of-the-art AQM algorithms and enhanced ECN functionalities (3) Update simulation examples to reflect modern traffic control models (4) Package and publish the suite on the ns-3 App Store&lt;br /&gt;
* '''Repository:''' [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev LINK]&lt;br /&gt;
* '''About Me:''' I'm a CS undergrad student at the University of Toronto. I've been deeply passionate about computer network and systems in general, it's my honour to work with such a wonderful community like ns-3!&lt;br /&gt;
&lt;br /&gt;
= Milestones =&lt;br /&gt;
&lt;br /&gt;
* CMake Migration&lt;br /&gt;
** Migrate the AQM Evaluation Suite’s build system from Waf to CMake&lt;br /&gt;
&lt;br /&gt;
* TCP &amp;amp; ECN Enhancements&lt;br /&gt;
** Upgrading the configuration defaults, including replacing TCP BIC with TCP Cubic in the evaluation suite. ECN support will be added by incorporating new tests and scenarios that utilize ECN signaling and feedback mechanisms. If other configuration defaults require updating, those changes will also be made.&lt;br /&gt;
&lt;br /&gt;
* Upgrade AQM Algorithms&lt;br /&gt;
** Support newer AQM algorithms. Parameter configurations will be added following RFC 7928 guidelines, and new scenarios will be implemented to demonstrate modern traffic control use cases.&lt;br /&gt;
&lt;br /&gt;
* Packaging&lt;br /&gt;
** The module will be prepared for submission to the ns-3 App Store or into the mainline, including compliance with metadata and technical requirements.&lt;br /&gt;
&lt;br /&gt;
= Weekly Updates =&lt;br /&gt;
&lt;br /&gt;
* '''Community Bonding Period (May 8-31, 2025)'''&lt;br /&gt;
** Migrated the existing AQM Evaluation Suite codebase from [https://github.com/aqm-eval-suite/ns-3-dev-git GitHub] to the new [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev GitLab] repository for centralized development.&lt;br /&gt;
** Conducted an in-depth analysis of the original AQM Evaluation Suite paper. Extracted key highlights and formulated a structured list of [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev/-/issues/1 action items] to align with recent advancements in ns-3.&lt;br /&gt;
** The original aqm-eval-suite was based on ns-3.30, and during the migration process, I identified an issue in the AggressiveSender scenario starting from ns-3.41, where aggressive TCP variants (BIC, HighSpeed, YeAH) no longer matched prior results (for more detailed comparisons, please see [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev/-/issues/6 #6]). Comparing with the examples from tcp-cubit, I discovered enabling pacing through &amp;lt;code&amp;gt;Config::SetDefault(&amp;quot;ns3::TcpSocketState::EnablePacing&amp;quot;, BooleanValue(true));&amp;lt;/code&amp;gt; restores expected behaviour and notably, NewReno remains unaffected.&lt;br /&gt;
&lt;br /&gt;
* '''Week 1 (June 1-7, 2025)'''&lt;br /&gt;
&lt;br /&gt;
** ns-3 has transitioned from Waf to CMake as the primary build system, but the AQM evaluation suite still uses Waf configuration. I've migrated the existing build system from Waf to CMake for compatibility with latest version of ns-3 ([https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev/-/merge_requests/1 Changes]). Ensured successful compilation across supported platforms and passed all tests.&lt;br /&gt;
** The original paper for AQM Evaluation Suite uses TCP BIC for the aggressive sender as TCP CUBIC wasn't implemented in ns-3; However, TCP CUBIC is now supported in ns-3. I've added support for TCP CUBIC in the AQM Evaluation Suite and replaced TCP BIC with TCP CUBIC for default aggressive congestion control in the examples. This addressed the limitation of the paper and aligns with the requirements from RFC 7928;&lt;br /&gt;
** The original paper for AQM Evaluation Suite states &amp;quot;TCP NewReno is the default congestion control in ns-3&amp;quot; but latest ns-3 uses CUBIC as default. I've investigated and validated ([https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev/-/work_items/4 #4]) that TCP NewReno is indeed explicitly configured to eliminate surprises due to version upgrades as latest ns-3 uses CUBIC as default.&lt;br /&gt;
&lt;br /&gt;
* '''Week 2 (June 8-14, 2025)'''&lt;br /&gt;
** The original paper for AQM Evaluation Suite had the limitation that ECN support was under development, whereas now ns-3 has ECN support available. I've evaluated ECN support for AQM algorithms as outlined in RFC 7928 §4.5, and I've implemented the changes such that ECN was activated both at the queue level (e.g., for RED) and at the TCP sender level, based on ns-3 documentation and examples. For supported scenarios, ECN can be enabled through the &amp;lt;code&amp;gt;--ecn=true&amp;lt;/code&amp;gt; flag. Results confirm that ECN configurations are taking effect, as the queue delay v.s. good-put shows that the algorithms that support ECN have values more concentrated around the mean, resulting in a smaller ellipsoid. This indicates a reduction in variance and a tighter Gaussian distribution, with the data clustering more closely around the center, which is the effect of ECN. Pfifo remains identical as the algorithm doesn't support ECN. For the comparisons, please see [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev/-/merge_requests/4 !4].&lt;br /&gt;
&lt;br /&gt;
* '''Week 3 (June 15-21, 2025)'''&lt;br /&gt;
** Originally, the AQM Evaluation Suite saves each run under the &amp;lt;code&amp;gt;aqm-eval-output&amp;lt;/code&amp;gt; folder, and each run will be overwritten by the subsequent runs. I've redesigned the behaviour so that each run will be saved separately, each run will create the &amp;lt;code&amp;gt;aqm-eval-output/{timestamp}&amp;lt;/code&amp;gt; folder, and will also have a &amp;lt;code&amp;gt;run_config.json&amp;lt;/code&amp;gt; file to record the configuration of each run.&lt;br /&gt;
** After the paper has been published, there were additional AQM algorithms that are implemented in ns-3, they are &amp;lt;code&amp;gt;ns3::CobaltQueueDisc&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ns3::FqCobaltQueueDisc&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ns3::FqCoDelQueueDisc&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ns3::FqPieQueueDisc&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ns3::TbfQueueDisc&amp;lt;/code&amp;gt;. The new AQM algorithms that support ECN has also been enabled.&lt;br /&gt;
&lt;br /&gt;
* '''Week 4 (June 22-28, 2025)'''&lt;br /&gt;
** Improved the robustness and usability of the evaluation workflow by addressing the suite’s external tool dependencies. The AQM Evaluation Suite currently relies on several system packages—including Python, GNUplot, and ImageMagick—for visualizing simulation results. However, missing packages would result in errors or incomplete runs. The suite now proactively checks for the presence of these dependencies at runtime: if any are missing, a warning is logged, and the test execution will be terminated.&lt;br /&gt;
** Refactored queue delay measurement logic by removing the redundant &amp;lt;code&amp;gt;EvalTimestampTag&amp;lt;/code&amp;gt; class. Now, queue delay calculations leverage the timestamp embedded in QueueDiscItem, streamlining the codebase and eliminating duplicate logic.&lt;br /&gt;
** Extracted output file/directory management from inline system calls (mkdir -p, string concatenation) into a dedicated OutputManager - This eliminates ~15 hardcoded mkdir calls, centralizes path resolution logic, implements proper file handle management, and decouples output structure from simulation logic through externalized configuration.&lt;br /&gt;
&lt;br /&gt;
* '''Week 5 (June 29-July 5, 2025)'''&lt;br /&gt;
** Migrated the AQM Evaluation Suite codebase to the [https://gitlab.com/nitk-surathkal/aqm-evaluation-suite repository] as a contrib module.&lt;br /&gt;
** Updated all sources, scripts, and documentation to reflect the new repository structure and dependencies, including the &amp;lt;code&amp;gt;README.md&amp;lt;/code&amp;gt; for the new module and sphinx documentation. &lt;br /&gt;
** Prepared the suite for integration and packaging with the upcoming ns-allinone-3.45 release, including running compatibility tests and verifying example workflows and ensured out-of-the-box support for ns-allinone-3.45 distribution&lt;br /&gt;
** Cleaned up the commit history using interactive rebase to squash minor commits and applied a centralized commit message format consistent with ns-3 project practices, setting it as the new master branch.&lt;br /&gt;
&lt;br /&gt;
* '''Week 6 (July 6-July 12, 2025)'''&lt;br /&gt;
** Refactored the contrib codebase repository for maintainability and internal review, checkpointing the first half milestone with the [https://gitlab.com/nitk-surathkal/aqm-evaluation-suite/-/merge_requests/2 merge request]&lt;br /&gt;
** After internal testing, Aniket found that the command &amp;lt;code&amp;gt;magick&amp;lt;/code&amp;gt; used by the AQM Evaluation Suite runner shows an error. After investigation, the command &amp;lt;code&amp;gt;convert&amp;lt;/code&amp;gt; was only deprecated in ImageMagick 7, and Aniket had version 6, where the &amp;lt;code&amp;gt;magick&amp;lt;/code&amp;gt; command doesn't exist yet. I've enhanced the compatibility for ImageMagick command invocation, supporting both &amp;lt;code&amp;gt;convert&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;magick&amp;lt;/code&amp;gt; commands such that it's consistent with the behaviour that ns-3 uses to generate sphinx documentations.&lt;br /&gt;
&lt;br /&gt;
* '''Week 7 (July 13-July 19, 2025)'''&lt;br /&gt;
** The [https://gitlab.com/nitk-surathkal/aqm-evaluation-suite/-/merge_requests/2 merge request] I've submitted is pending review, which I've prioritized addressing the reviews. A few notable problems that I've addressed from the reviewer's comment is 1) Refactored logging, there were originally many calls to &amp;lt;code&amp;gt;cout&amp;lt;/code&amp;gt;, which didn't utilize the [https://www.nsnam.org/docs/manual/html/logging-asserts.html logging module] that comes with ns-3. 2) The sphinx documentation wasn't in the standard format, which I've discovered that there is [https://www.nsnam.org/docs/contributing/html/models.html#documentation-tests-and-examplesl tutorial] and examples on creating documentation for the module.&lt;br /&gt;
** Actively working on standardizing the integration of custom AQM algorithms, which is one of the key feature in order to ensure a smooth developer experience. Currently the built-in AQM algorithms are hard-coded in multiple places, for example in the runner and helper, as well as the Python scripts. This makes adding new AQM algorithms hard as there are multiple individual copies saved in different places. I'm addressing this issue by creating a singleton registry of all the AQM algorithms with the complete metadata, and reference this as source of truth in other places. Yet there is one difficulty that still remains is that there appears to be some discrepancy between the output data of the original implementation and the new implementation, despite the configurations should be unchanged, which I'm still investigating.&lt;br /&gt;
&lt;br /&gt;
* '''Week 8 (July 20-July 26, 2025)'''&lt;br /&gt;
** The [https://gitlab.com/nitk-surathkal/aqm-evaluation-suite/-/merge_requests/2 MR] that contains the major upgrade to the aqm-eval-suite has been merged in the contributed module repository, which is a big milestone.&lt;br /&gt;
** The [https://gitlab.com/nitk-surathkal/aqm-evaluation-suite/-/merge_requests/3 MR] for the central AQM registry is ready for review, after fixing a few bugs related to how the AQM was registered in the registry, I though I'd reflect on why it was designed this way. As previously described it was hard to modify the AQM algorithms, as they are scattered around. The design principles originally was to allow the user to add custom AQM algorithms with flexibility, ideally at the example level. I've considered multiple designs such as using a config file, however it might require parsing structured files which then requires external dependencies, there is also one main difficulty to achieve the example level registry without config file is that the aqm-eval-runner runs child processes and the aqm registry needs to be synchronized for correct processing. The current design, we simply treat the aqm registered in aqm-registry.cc as source of truth for all registered algorithms, and is the only place where change is needed, sort of like a config file.&lt;br /&gt;
** Started the investigation of multi-bottleneck topology upgrade, the changes is also harder than anticipated. I've tried some simple approaches and the current challenges is that the current EvalutionTopology class is fixed to the dumbbell topology and is used in all examples, which leads to another problem of how we should present this option to the user, should it be additional examples with the multi-bottleneck topology or should it also be a flag like how we enable ECN. Additionally, the current tracing are also based on the assumption of single bottleneck such as the queue delay, if we have multiple queues how should we present this visually, maybe potentially with multiple graphs? Nevertheless I've been working on creating a good abstraction as the BaseEvaluationTopology which can be derived to either DumbbellTopology or MultiBottleneck, I think this is a good starting point as it can provide a standardized API to use in the examples in the future.&lt;br /&gt;
&lt;br /&gt;
= Resources =&lt;br /&gt;
&lt;br /&gt;
* AQM Evaluation Suite [[https://dl.acm.org/doi/abs/10.1145/3067665.3067674 Paper]] [[https://aqm-eval-suite.github.io/ Implementation]]&lt;br /&gt;
* [https://tools.ietf.org/html/rfc7928 RFC 7928]&lt;br /&gt;
* [https://www.nsnam.org/docs/models/html/traffic-control-layer.html Traffic Control Model in ns-3]&lt;/div&gt;</summary>
		<author><name>Davidzylin</name></author>
	</entry>
	<entry>
		<id>https://www.nsnam.org/mediawiki/index.php?title=GSOC2025AqmEvaluation&amp;diff=13638</id>
		<title>GSOC2025AqmEvaluation</title>
		<link rel="alternate" type="text/html" href="https://www.nsnam.org/mediawiki/index.php?title=GSOC2025AqmEvaluation&amp;diff=13638"/>
		<updated>2025-08-03T19:26:05Z</updated>

		<summary type="html">&lt;p&gt;Davidzylin: /* Weekly Updates */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TOC}}&lt;br /&gt;
&lt;br /&gt;
Back to [[Summer_Projects#Google_Summer_of_Code_2025 | GSoC 2025 projects]]&lt;br /&gt;
&lt;br /&gt;
= Project Overview =&lt;br /&gt;
&lt;br /&gt;
* '''Project Name:''' Upgrade the AQM Evaluation Suite for ns-3&lt;br /&gt;
* '''Student:''' David Lin&lt;br /&gt;
* '''Mentors:''' Mohit P. Tahiliani, Aniket Singh and Tom Henderson&lt;br /&gt;
* '''Google Page:''' [https://summerofcode.withgoogle.com/programs/2025/projects/d7sZPqy6 LINK]&lt;br /&gt;
* '''Project Proposal:''' [https://davidzylin.notion.site/Proposal-Upgrade-the-AQM-Evaluation-Suite-for-ns-3-1bbad0d7128d80be9d7df771f053491e?pvs=143 LINK]&lt;br /&gt;
* '''Project Goals:''' The AQM Evaluation Suite is an automated framework based on RFC 7928 that simplifies simulation setup, topology creation, traffic generation, execution, and results visualization of AQM algorithms in ns-3. Originally developed in 2017 and maintained until 2019, the suite now needs an upgrade to: (1) Migrate its build system from waf to CMake (2) Integrate support for state-of-the-art AQM algorithms and enhanced ECN functionalities (3) Update simulation examples to reflect modern traffic control models (4) Package and publish the suite on the ns-3 App Store&lt;br /&gt;
* '''Repository:''' [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev LINK]&lt;br /&gt;
* '''About Me:''' I'm a CS undergrad student at the University of Toronto. I've been deeply passionate about computer network and systems in general, it's my honour to work with such a wonderful community like ns-3!&lt;br /&gt;
&lt;br /&gt;
= Milestones =&lt;br /&gt;
&lt;br /&gt;
* CMake Migration&lt;br /&gt;
** Migrate the AQM Evaluation Suite’s build system from Waf to CMake&lt;br /&gt;
&lt;br /&gt;
* TCP &amp;amp; ECN Enhancements&lt;br /&gt;
** Upgrading the configuration defaults, including replacing TCP BIC with TCP Cubic in the evaluation suite. ECN support will be added by incorporating new tests and scenarios that utilize ECN signaling and feedback mechanisms. If other configuration defaults require updating, those changes will also be made.&lt;br /&gt;
&lt;br /&gt;
* Upgrade AQM Algorithms&lt;br /&gt;
** Support newer AQM algorithms. Parameter configurations will be added following RFC 7928 guidelines, and new scenarios will be implemented to demonstrate modern traffic control use cases.&lt;br /&gt;
&lt;br /&gt;
* Packaging&lt;br /&gt;
** The module will be prepared for submission to the ns-3 App Store or into the mainline, including compliance with metadata and technical requirements.&lt;br /&gt;
&lt;br /&gt;
= Weekly Updates =&lt;br /&gt;
&lt;br /&gt;
* '''Community Bonding Period (May 8-31, 2025)'''&lt;br /&gt;
** Migrated the existing AQM Evaluation Suite codebase from [https://github.com/aqm-eval-suite/ns-3-dev-git GitHub] to the new [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev GitLab] repository for centralized development.&lt;br /&gt;
** Conducted an in-depth analysis of the original AQM Evaluation Suite paper. Extracted key highlights and formulated a structured list of [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev/-/issues/1 action items] to align with recent advancements in ns-3.&lt;br /&gt;
** The original aqm-eval-suite was based on ns-3.30, and during the migration process, I identified an issue in the AggressiveSender scenario starting from ns-3.41, where aggressive TCP variants (BIC, HighSpeed, YeAH) no longer matched prior results (for more detailed comparisons, please see [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev/-/issues/6 #6]). Comparing with the examples from tcp-cubit, I discovered enabling pacing through &amp;lt;code&amp;gt;Config::SetDefault(&amp;quot;ns3::TcpSocketState::EnablePacing&amp;quot;, BooleanValue(true));&amp;lt;/code&amp;gt; restores expected behaviour and notably, NewReno remains unaffected.&lt;br /&gt;
&lt;br /&gt;
* '''Week 1 (June 1-7, 2025)'''&lt;br /&gt;
&lt;br /&gt;
** ns-3 has transitioned from Waf to CMake as the primary build system, but the AQM evaluation suite still uses Waf configuration. I've migrated the existing build system from Waf to CMake for compatibility with latest version of ns-3 ([https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev/-/merge_requests/1 Changes]). Ensured successful compilation across supported platforms and passed all tests.&lt;br /&gt;
** The original paper for AQM Evaluation Suite uses TCP BIC for the aggressive sender as TCP CUBIC wasn't implemented in ns-3; However, TCP CUBIC is now supported in ns-3. I've added support for TCP CUBIC in the AQM Evaluation Suite and replaced TCP BIC with TCP CUBIC for default aggressive congestion control in the examples. This addressed the limitation of the paper and aligns with the requirements from RFC 7928;&lt;br /&gt;
** The original paper for AQM Evaluation Suite states &amp;quot;TCP NewReno is the default congestion control in ns-3&amp;quot; but latest ns-3 uses CUBIC as default. I've investigated and validated ([https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev/-/work_items/4 #4]) that TCP NewReno is indeed explicitly configured to eliminate surprises due to version upgrades as latest ns-3 uses CUBIC as default.&lt;br /&gt;
&lt;br /&gt;
* '''Week 2 (June 8-14, 2025)'''&lt;br /&gt;
** The original paper for AQM Evaluation Suite had the limitation that ECN support was under development, whereas now ns-3 has ECN support available. I've evaluated ECN support for AQM algorithms as outlined in RFC 7928 §4.5, and I've implemented the changes such that ECN was activated both at the queue level (e.g., for RED) and at the TCP sender level, based on ns-3 documentation and examples. For supported scenarios, ECN can be enabled through the &amp;lt;code&amp;gt;--ecn=true&amp;lt;/code&amp;gt; flag. Results confirm that ECN configurations are taking effect, as the queue delay v.s. good-put shows that the algorithms that support ECN have values more concentrated around the mean, resulting in a smaller ellipsoid. This indicates a reduction in variance and a tighter Gaussian distribution, with the data clustering more closely around the center, which is the effect of ECN. Pfifo remains identical as the algorithm doesn't support ECN. For the comparisons, please see [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev/-/merge_requests/4 !4].&lt;br /&gt;
&lt;br /&gt;
* '''Week 3 (June 15-21, 2025)'''&lt;br /&gt;
** Originally, the AQM Evaluation Suite saves each run under the &amp;lt;code&amp;gt;aqm-eval-output&amp;lt;/code&amp;gt; folder, and each run will be overwritten by the subsequent runs. I've redesigned the behaviour so that each run will be saved separately, each run will create the &amp;lt;code&amp;gt;aqm-eval-output/{timestamp}&amp;lt;/code&amp;gt; folder, and will also have a &amp;lt;code&amp;gt;run_config.json&amp;lt;/code&amp;gt; file to record the configuration of each run.&lt;br /&gt;
** After the paper has been published, there were additional AQM algorithms that are implemented in ns-3, they are &amp;lt;code&amp;gt;ns3::CobaltQueueDisc&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ns3::FqCobaltQueueDisc&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ns3::FqCoDelQueueDisc&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ns3::FqPieQueueDisc&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ns3::TbfQueueDisc&amp;lt;/code&amp;gt;. The new AQM algorithms that support ECN has also been enabled.&lt;br /&gt;
&lt;br /&gt;
* '''Week 4 (June 22-28, 2025)'''&lt;br /&gt;
** Improved the robustness and usability of the evaluation workflow by addressing the suite’s external tool dependencies. The AQM Evaluation Suite currently relies on several system packages—including Python, GNUplot, and ImageMagick—for visualizing simulation results. However, missing packages would result in errors or incomplete runs. The suite now proactively checks for the presence of these dependencies at runtime: if any are missing, a warning is logged, and the test execution will be terminated.&lt;br /&gt;
** Refactored queue delay measurement logic by removing the redundant &amp;lt;code&amp;gt;EvalTimestampTag&amp;lt;/code&amp;gt; class. Now, queue delay calculations leverage the timestamp embedded in QueueDiscItem, streamlining the codebase and eliminating duplicate logic.&lt;br /&gt;
** Extracted output file/directory management from inline system calls (mkdir -p, string concatenation) into a dedicated OutputManager - This eliminates ~15 hardcoded mkdir calls, centralizes path resolution logic, implements proper file handle management, and decouples output structure from simulation logic through externalized configuration.&lt;br /&gt;
&lt;br /&gt;
* '''Week 5 (June 29-July 5, 2025)'''&lt;br /&gt;
** Migrated the AQM Evaluation Suite codebase to the [https://gitlab.com/nitk-surathkal/aqm-evaluation-suite repository] as a contrib module.&lt;br /&gt;
** Updated all sources, scripts, and documentation to reflect the new repository structure and dependencies, including the &amp;lt;code&amp;gt;README.md&amp;lt;/code&amp;gt; for the new module and sphinx documentation. &lt;br /&gt;
** Prepared the suite for integration and packaging with the upcoming ns-allinone-3.45 release, including running compatibility tests and verifying example workflows and ensured out-of-the-box support for ns-allinone-3.45 distribution&lt;br /&gt;
** Cleaned up the commit history using interactive rebase to squash minor commits and applied a centralized commit message format consistent with ns-3 project practices, setting it as the new master branch.&lt;br /&gt;
&lt;br /&gt;
* '''Week 6 (July 6-July 12, 2025)'''&lt;br /&gt;
** Refactored the contrib codebase repository for maintainability and internal review, checkpointing the first half milestone with the [https://gitlab.com/nitk-surathkal/aqm-evaluation-suite/-/merge_requests/2 merge request]&lt;br /&gt;
** After internal testing, Aniket found that the command &amp;lt;code&amp;gt;magick&amp;lt;/code&amp;gt; used by the AQM Evaluation Suite runner shows an error. After investigation, the command &amp;lt;code&amp;gt;convert&amp;lt;/code&amp;gt; was only deprecated in ImageMagick 7, and Aniket had version 6, where the &amp;lt;code&amp;gt;magick&amp;lt;/code&amp;gt; command doesn't exist yet. I've enhanced the compatibility for ImageMagick command invocation, supporting both &amp;lt;code&amp;gt;convert&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;magick&amp;lt;/code&amp;gt; commands such that it's consistent with the behaviour that ns-3 uses to generate sphinx documentations.&lt;br /&gt;
&lt;br /&gt;
* '''Week 7 (July 13-July 19, 2025)'''&lt;br /&gt;
** The [https://gitlab.com/nitk-surathkal/aqm-evaluation-suite/-/merge_requests/2 merge request] I've submitted is pending review, which I've prioritized addressing the reviews. A few notable problems that I've addressed from the reviewer's comment is 1) Refactored logging, there were originally many calls to &amp;lt;code&amp;gt;cout&amp;lt;/code&amp;gt;, which didn't utilize the [https://www.nsnam.org/docs/manual/html/logging-asserts.html logging module] that comes with ns-3. 2) The sphinx documentation wasn't in the standard format, which I've discovered that there is [https://www.nsnam.org/docs/contributing/html/models.html#documentation-tests-and-examplesl tutorial] and examples on creating documentation for the module.&lt;br /&gt;
** Actively working on standardizing the integration of custom AQM algorithms, which is one of the key feature in order to ensure a smooth developer experience. Currently the built-in AQM algorithms are hard-coded in multiple places, for example in the runner and helper, as well as the Python scripts. This makes adding new AQM algorithms hard as there are multiple individual copies saved in different places. I'm addressing this issue by creating a singleton registry of all the AQM algorithms with the complete metadata, and reference this as source of truth in other places. Yet there is one difficulty that still remains is that there appears to be some discrepancy between the output data of the original implementation and the new implementation, despite the configurations should be unchanged, which I'm still investigating.&lt;br /&gt;
&lt;br /&gt;
* '''Week 8 (July 20-July 26, 2025)'''&lt;br /&gt;
** The https://gitlab.com/nitk-surathkal/aqm-evaluation-suite/-/merge_requests/2 MR] that contains the major upgrade to the aqm-eval-suite has been merged in the contributed module repository, which is a big milestone.&lt;br /&gt;
** The [https://gitlab.com/nitk-surathkal/aqm-evaluation-suite/-/merge_requests/3 MR] for the central AQM registry is ready for review, after fixing a few bugs related to how the AQM was registered in the registry, I though I'd reflect on why it was designed this way. As previously described it was hard to modify the AQM algorithms, as they are scattered around. The design principles originally was to allow the user to add custom AQM algorithms with flexibility, ideally at the example level. I've considered multiple designs such as using a config file, however it might require parsing structured files which then requires external dependencies, there is also one main difficulty to achieve the example level registry without config file is that the aqm-eval-runner runs child processes and the aqm registry needs to be synchronized for correct processing. The current design, we simply treat the aqm registered in aqm-registry.cc as source of truth for all registered algorithms, and is the only place where change is needed, sort of like a config file.&lt;br /&gt;
** Started the investigation of multi-bottleneck topology upgrade, the changes is also harder than anticipated. I've tried some simple approaches and the current challenges is that the current EvalutionTopology class is fixed to the dumbbell topology and is used in all examples, which leads to another problem of how we should present this option to the user, should it be additional examples with the multi-bottleneck topology or should it also be a flag like how we enable ECN. Additionally, the current tracing are also based on the assumption of single bottleneck such as the queue delay, if we have multiple queues how should we present this visually, maybe potentially with multiple graphs? Nevertheless I've been working on creating a good abstraction as the BaseEvaluationTopology which can be derived to either DumbbellTopology or MultiBottleneck, I think this is a good starting point as it can provide a standardized API to use in the examples in the future.&lt;br /&gt;
&lt;br /&gt;
= Resources =&lt;br /&gt;
&lt;br /&gt;
* AQM Evaluation Suite [[https://dl.acm.org/doi/abs/10.1145/3067665.3067674 Paper]] [[https://aqm-eval-suite.github.io/ Implementation]]&lt;br /&gt;
* [https://tools.ietf.org/html/rfc7928 RFC 7928]&lt;br /&gt;
* [https://www.nsnam.org/docs/models/html/traffic-control-layer.html Traffic Control Model in ns-3]&lt;/div&gt;</summary>
		<author><name>Davidzylin</name></author>
	</entry>
	<entry>
		<id>https://www.nsnam.org/mediawiki/index.php?title=GSOC2025AqmEvaluation&amp;diff=13637</id>
		<title>GSOC2025AqmEvaluation</title>
		<link rel="alternate" type="text/html" href="https://www.nsnam.org/mediawiki/index.php?title=GSOC2025AqmEvaluation&amp;diff=13637"/>
		<updated>2025-08-03T06:03:40Z</updated>

		<summary type="html">&lt;p&gt;Davidzylin: /* Weekly Updates */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TOC}}&lt;br /&gt;
&lt;br /&gt;
Back to [[Summer_Projects#Google_Summer_of_Code_2025 | GSoC 2025 projects]]&lt;br /&gt;
&lt;br /&gt;
= Project Overview =&lt;br /&gt;
&lt;br /&gt;
* '''Project Name:''' Upgrade the AQM Evaluation Suite for ns-3&lt;br /&gt;
* '''Student:''' David Lin&lt;br /&gt;
* '''Mentors:''' Mohit P. Tahiliani, Aniket Singh and Tom Henderson&lt;br /&gt;
* '''Google Page:''' [https://summerofcode.withgoogle.com/programs/2025/projects/d7sZPqy6 LINK]&lt;br /&gt;
* '''Project Proposal:''' [https://davidzylin.notion.site/Proposal-Upgrade-the-AQM-Evaluation-Suite-for-ns-3-1bbad0d7128d80be9d7df771f053491e?pvs=143 LINK]&lt;br /&gt;
* '''Project Goals:''' The AQM Evaluation Suite is an automated framework based on RFC 7928 that simplifies simulation setup, topology creation, traffic generation, execution, and results visualization of AQM algorithms in ns-3. Originally developed in 2017 and maintained until 2019, the suite now needs an upgrade to: (1) Migrate its build system from waf to CMake (2) Integrate support for state-of-the-art AQM algorithms and enhanced ECN functionalities (3) Update simulation examples to reflect modern traffic control models (4) Package and publish the suite on the ns-3 App Store&lt;br /&gt;
* '''Repository:''' [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev LINK]&lt;br /&gt;
* '''About Me:''' I'm a CS undergrad student at the University of Toronto. I've been deeply passionate about computer network and systems in general, it's my honour to work with such a wonderful community like ns-3!&lt;br /&gt;
&lt;br /&gt;
= Milestones =&lt;br /&gt;
&lt;br /&gt;
* CMake Migration&lt;br /&gt;
** Migrate the AQM Evaluation Suite’s build system from Waf to CMake&lt;br /&gt;
&lt;br /&gt;
* TCP &amp;amp; ECN Enhancements&lt;br /&gt;
** Upgrading the configuration defaults, including replacing TCP BIC with TCP Cubic in the evaluation suite. ECN support will be added by incorporating new tests and scenarios that utilize ECN signaling and feedback mechanisms. If other configuration defaults require updating, those changes will also be made.&lt;br /&gt;
&lt;br /&gt;
* Upgrade AQM Algorithms&lt;br /&gt;
** Support newer AQM algorithms. Parameter configurations will be added following RFC 7928 guidelines, and new scenarios will be implemented to demonstrate modern traffic control use cases.&lt;br /&gt;
&lt;br /&gt;
* Packaging&lt;br /&gt;
** The module will be prepared for submission to the ns-3 App Store or into the mainline, including compliance with metadata and technical requirements.&lt;br /&gt;
&lt;br /&gt;
= Weekly Updates =&lt;br /&gt;
&lt;br /&gt;
* '''Community Bonding Period (May 8-31, 2025)'''&lt;br /&gt;
** Migrated the existing AQM Evaluation Suite codebase from [https://github.com/aqm-eval-suite/ns-3-dev-git GitHub] to the new [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev GitLab] repository for centralized development.&lt;br /&gt;
** Conducted an in-depth analysis of the original AQM Evaluation Suite paper. Extracted key highlights and formulated a structured list of [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev/-/issues/1 action items] to align with recent advancements in ns-3.&lt;br /&gt;
** The original aqm-eval-suite was based on ns-3.30, and during the migration process, I identified an issue in the AggressiveSender scenario starting from ns-3.41, where aggressive TCP variants (BIC, HighSpeed, YeAH) no longer matched prior results (for more detailed comparisons, please see [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev/-/issues/6 #6]). Comparing with the examples from tcp-cubit, I discovered enabling pacing through &amp;lt;code&amp;gt;Config::SetDefault(&amp;quot;ns3::TcpSocketState::EnablePacing&amp;quot;, BooleanValue(true));&amp;lt;/code&amp;gt; restores expected behaviour and notably, NewReno remains unaffected.&lt;br /&gt;
&lt;br /&gt;
* '''Week 1 (June 1-7, 2025)'''&lt;br /&gt;
&lt;br /&gt;
** ns-3 has transitioned from Waf to CMake as the primary build system, but the AQM evaluation suite still uses Waf configuration. I've migrated the existing build system from Waf to CMake for compatibility with latest version of ns-3 ([https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev/-/merge_requests/1 Changes]). Ensured successful compilation across supported platforms and passed all tests.&lt;br /&gt;
** The original paper for AQM Evaluation Suite uses TCP BIC for the aggressive sender as TCP CUBIC wasn't implemented in ns-3; However, TCP CUBIC is now supported in ns-3. I've added support for TCP CUBIC in the AQM Evaluation Suite and replaced TCP BIC with TCP CUBIC for default aggressive congestion control in the examples. This addressed the limitation of the paper and aligns with the requirements from RFC 7928;&lt;br /&gt;
** The original paper for AQM Evaluation Suite states &amp;quot;TCP NewReno is the default congestion control in ns-3&amp;quot; but latest ns-3 uses CUBIC as default. I've investigated and validated ([https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev/-/work_items/4 #4]) that TCP NewReno is indeed explicitly configured to eliminate surprises due to version upgrades as latest ns-3 uses CUBIC as default.&lt;br /&gt;
&lt;br /&gt;
* '''Week 2 (June 8-14, 2025)'''&lt;br /&gt;
** The original paper for AQM Evaluation Suite had the limitation that ECN support was under development, whereas now ns-3 has ECN support available. I've evaluated ECN support for AQM algorithms as outlined in RFC 7928 §4.5, and I've implemented the changes such that ECN was activated both at the queue level (e.g., for RED) and at the TCP sender level, based on ns-3 documentation and examples. For supported scenarios, ECN can be enabled through the &amp;lt;code&amp;gt;--ecn=true&amp;lt;/code&amp;gt; flag. Results confirm that ECN configurations are taking effect, as the queue delay v.s. good-put shows that the algorithms that support ECN have values more concentrated around the mean, resulting in a smaller ellipsoid. This indicates a reduction in variance and a tighter Gaussian distribution, with the data clustering more closely around the center, which is the effect of ECN. Pfifo remains identical as the algorithm doesn't support ECN. For the comparisons, please see [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev/-/merge_requests/4 !4].&lt;br /&gt;
&lt;br /&gt;
* '''Week 3 (June 15-21, 2025)'''&lt;br /&gt;
** Originally, the AQM Evaluation Suite saves each run under the &amp;lt;code&amp;gt;aqm-eval-output&amp;lt;/code&amp;gt; folder, and each run will be overwritten by the subsequent runs. I've redesigned the behaviour so that each run will be saved separately, each run will create the &amp;lt;code&amp;gt;aqm-eval-output/{timestamp}&amp;lt;/code&amp;gt; folder, and will also have a &amp;lt;code&amp;gt;run_config.json&amp;lt;/code&amp;gt; file to record the configuration of each run.&lt;br /&gt;
** After the paper has been published, there were additional AQM algorithms that are implemented in ns-3, they are &amp;lt;code&amp;gt;ns3::CobaltQueueDisc&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ns3::FqCobaltQueueDisc&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ns3::FqCoDelQueueDisc&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ns3::FqPieQueueDisc&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ns3::TbfQueueDisc&amp;lt;/code&amp;gt;. The new AQM algorithms that support ECN has also been enabled.&lt;br /&gt;
&lt;br /&gt;
* '''Week 4 (June 22-28, 2025)'''&lt;br /&gt;
** Improved the robustness and usability of the evaluation workflow by addressing the suite’s external tool dependencies. The AQM Evaluation Suite currently relies on several system packages—including Python, GNUplot, and ImageMagick—for visualizing simulation results. However, missing packages would result in errors or incomplete runs. The suite now proactively checks for the presence of these dependencies at runtime: if any are missing, a warning is logged, and the test execution will be terminated.&lt;br /&gt;
** Refactored queue delay measurement logic by removing the redundant &amp;lt;code&amp;gt;EvalTimestampTag&amp;lt;/code&amp;gt; class. Now, queue delay calculations leverage the timestamp embedded in QueueDiscItem, streamlining the codebase and eliminating duplicate logic.&lt;br /&gt;
** Extracted output file/directory management from inline system calls (mkdir -p, string concatenation) into a dedicated OutputManager - This eliminates ~15 hardcoded mkdir calls, centralizes path resolution logic, implements proper file handle management, and decouples output structure from simulation logic through externalized configuration.&lt;br /&gt;
&lt;br /&gt;
* '''Week 5 (June 29-July 5, 2025)'''&lt;br /&gt;
** Migrated the AQM Evaluation Suite codebase to the [https://gitlab.com/nitk-surathkal/aqm-evaluation-suite repository] as a contrib module.&lt;br /&gt;
** Updated all sources, scripts, and documentation to reflect the new repository structure and dependencies, including the &amp;lt;code&amp;gt;README.md&amp;lt;/code&amp;gt; for the new module and sphinx documentation. &lt;br /&gt;
** Prepared the suite for integration and packaging with the upcoming ns-allinone-3.45 release, including running compatibility tests and verifying example workflows and ensured out-of-the-box support for ns-allinone-3.45 distribution&lt;br /&gt;
** Cleaned up the commit history using interactive rebase to squash minor commits and applied a centralized commit message format consistent with ns-3 project practices, setting it as the new master branch.&lt;br /&gt;
&lt;br /&gt;
* '''Week 6 (July 6-July 12, 2025)'''&lt;br /&gt;
** Refactored the contrib codebase repository for maintainability and internal review, checkpointing the first half milestone with the [https://gitlab.com/nitk-surathkal/aqm-evaluation-suite/-/merge_requests/2 merge request]&lt;br /&gt;
** After internal testing, Aniket found that the command &amp;lt;code&amp;gt;magick&amp;lt;/code&amp;gt; used by the AQM Evaluation Suite runner shows an error. After investigation, the command &amp;lt;code&amp;gt;convert&amp;lt;/code&amp;gt; was only deprecated in ImageMagick 7, and Aniket had version 6, where the &amp;lt;code&amp;gt;magick&amp;lt;/code&amp;gt; command doesn't exist yet. I've enhanced the compatibility for ImageMagick command invocation, supporting both &amp;lt;code&amp;gt;convert&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;magick&amp;lt;/code&amp;gt; commands such that it's consistent with the behaviour that ns-3 uses to generate sphinx documentations.&lt;br /&gt;
&lt;br /&gt;
* '''Week 7 (July 13-July 19, 2025)'''&lt;br /&gt;
** The [https://gitlab.com/nitk-surathkal/aqm-evaluation-suite/-/merge_requests/2 merge request] I've submitted is pending review, which I've prioritized addressing the reviews. A few notable problems that I've addressed from the reviewer's comment is 1) Refactored logging, there were originally many calls to &amp;lt;code&amp;gt;cout&amp;lt;/code&amp;gt;, which didn't utilize the [https://www.nsnam.org/docs/manual/html/logging-asserts.html logging module] that comes with ns-3. 2) The sphinx documentation wasn't in the standard format, which I've discovered that there is [https://www.nsnam.org/docs/contributing/html/models.html#documentation-tests-and-examplesl tutorial] and examples on creating documentation for the module.&lt;br /&gt;
** Actively working on standardizing the integration of custom AQM algorithms, which is one of the key feature in order to ensure a smooth developer experience. Currently the built-in AQM algorithms are hard-coded in multiple places, for example in the runner and helper, as well as the Python scripts. This makes adding new AQM algorithms hard as there are multiple individual copies saved in different places. I'm addressing this issue by creating a singleton registry of all the AQM algorithms with the complete metadata, and reference this as source of truth in other places. Yet there is one difficulty that still remains is that there appears to be some discrepancy between the output data of the original implementation and the new implementation, despite the configurations should be unchanged, which I'm still investigating.&lt;br /&gt;
&lt;br /&gt;
* '''Week 8 (July 20-July 26, 2025)'''&lt;br /&gt;
&lt;br /&gt;
= Resources =&lt;br /&gt;
&lt;br /&gt;
* AQM Evaluation Suite [[https://dl.acm.org/doi/abs/10.1145/3067665.3067674 Paper]] [[https://aqm-eval-suite.github.io/ Implementation]]&lt;br /&gt;
* [https://tools.ietf.org/html/rfc7928 RFC 7928]&lt;br /&gt;
* [https://www.nsnam.org/docs/models/html/traffic-control-layer.html Traffic Control Model in ns-3]&lt;/div&gt;</summary>
		<author><name>Davidzylin</name></author>
	</entry>
	<entry>
		<id>https://www.nsnam.org/mediawiki/index.php?title=GSOC2025AqmEvaluation&amp;diff=13636</id>
		<title>GSOC2025AqmEvaluation</title>
		<link rel="alternate" type="text/html" href="https://www.nsnam.org/mediawiki/index.php?title=GSOC2025AqmEvaluation&amp;diff=13636"/>
		<updated>2025-08-03T06:03:34Z</updated>

		<summary type="html">&lt;p&gt;Davidzylin: /* Weekly Updates */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TOC}}&lt;br /&gt;
&lt;br /&gt;
Back to [[Summer_Projects#Google_Summer_of_Code_2025 | GSoC 2025 projects]]&lt;br /&gt;
&lt;br /&gt;
= Project Overview =&lt;br /&gt;
&lt;br /&gt;
* '''Project Name:''' Upgrade the AQM Evaluation Suite for ns-3&lt;br /&gt;
* '''Student:''' David Lin&lt;br /&gt;
* '''Mentors:''' Mohit P. Tahiliani, Aniket Singh and Tom Henderson&lt;br /&gt;
* '''Google Page:''' [https://summerofcode.withgoogle.com/programs/2025/projects/d7sZPqy6 LINK]&lt;br /&gt;
* '''Project Proposal:''' [https://davidzylin.notion.site/Proposal-Upgrade-the-AQM-Evaluation-Suite-for-ns-3-1bbad0d7128d80be9d7df771f053491e?pvs=143 LINK]&lt;br /&gt;
* '''Project Goals:''' The AQM Evaluation Suite is an automated framework based on RFC 7928 that simplifies simulation setup, topology creation, traffic generation, execution, and results visualization of AQM algorithms in ns-3. Originally developed in 2017 and maintained until 2019, the suite now needs an upgrade to: (1) Migrate its build system from waf to CMake (2) Integrate support for state-of-the-art AQM algorithms and enhanced ECN functionalities (3) Update simulation examples to reflect modern traffic control models (4) Package and publish the suite on the ns-3 App Store&lt;br /&gt;
* '''Repository:''' [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev LINK]&lt;br /&gt;
* '''About Me:''' I'm a CS undergrad student at the University of Toronto. I've been deeply passionate about computer network and systems in general, it's my honour to work with such a wonderful community like ns-3!&lt;br /&gt;
&lt;br /&gt;
= Milestones =&lt;br /&gt;
&lt;br /&gt;
* CMake Migration&lt;br /&gt;
** Migrate the AQM Evaluation Suite’s build system from Waf to CMake&lt;br /&gt;
&lt;br /&gt;
* TCP &amp;amp; ECN Enhancements&lt;br /&gt;
** Upgrading the configuration defaults, including replacing TCP BIC with TCP Cubic in the evaluation suite. ECN support will be added by incorporating new tests and scenarios that utilize ECN signaling and feedback mechanisms. If other configuration defaults require updating, those changes will also be made.&lt;br /&gt;
&lt;br /&gt;
* Upgrade AQM Algorithms&lt;br /&gt;
** Support newer AQM algorithms. Parameter configurations will be added following RFC 7928 guidelines, and new scenarios will be implemented to demonstrate modern traffic control use cases.&lt;br /&gt;
&lt;br /&gt;
* Packaging&lt;br /&gt;
** The module will be prepared for submission to the ns-3 App Store or into the mainline, including compliance with metadata and technical requirements.&lt;br /&gt;
&lt;br /&gt;
= Weekly Updates =&lt;br /&gt;
&lt;br /&gt;
* '''Community Bonding Period (May 8-31, 2025)'''&lt;br /&gt;
** Migrated the existing AQM Evaluation Suite codebase from [https://github.com/aqm-eval-suite/ns-3-dev-git GitHub] to the new [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev GitLab] repository for centralized development.&lt;br /&gt;
** Conducted an in-depth analysis of the original AQM Evaluation Suite paper. Extracted key highlights and formulated a structured list of [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev/-/issues/1 action items] to align with recent advancements in ns-3.&lt;br /&gt;
** The original aqm-eval-suite was based on ns-3.30, and during the migration process, I identified an issue in the AggressiveSender scenario starting from ns-3.41, where aggressive TCP variants (BIC, HighSpeed, YeAH) no longer matched prior results (for more detailed comparisons, please see [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev/-/issues/6 #6]). Comparing with the examples from tcp-cubit, I discovered enabling pacing through &amp;lt;code&amp;gt;Config::SetDefault(&amp;quot;ns3::TcpSocketState::EnablePacing&amp;quot;, BooleanValue(true));&amp;lt;/code&amp;gt; restores expected behaviour and notably, NewReno remains unaffected.&lt;br /&gt;
&lt;br /&gt;
* '''Week 1 (June 1-7, 2025)'''&lt;br /&gt;
&lt;br /&gt;
** ns-3 has transitioned from Waf to CMake as the primary build system, but the AQM evaluation suite still uses Waf configuration. I've migrated the existing build system from Waf to CMake for compatibility with latest version of ns-3 ([https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev/-/merge_requests/1 Changes]). Ensured successful compilation across supported platforms and passed all tests.&lt;br /&gt;
** The original paper for AQM Evaluation Suite uses TCP BIC for the aggressive sender as TCP CUBIC wasn't implemented in ns-3; However, TCP CUBIC is now supported in ns-3. I've added support for TCP CUBIC in the AQM Evaluation Suite and replaced TCP BIC with TCP CUBIC for default aggressive congestion control in the examples. This addressed the limitation of the paper and aligns with the requirements from RFC 7928;&lt;br /&gt;
** The original paper for AQM Evaluation Suite states &amp;quot;TCP NewReno is the default congestion control in ns-3&amp;quot; but latest ns-3 uses CUBIC as default. I've investigated and validated ([https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev/-/work_items/4 #4]) that TCP NewReno is indeed explicitly configured to eliminate surprises due to version upgrades as latest ns-3 uses CUBIC as default.&lt;br /&gt;
&lt;br /&gt;
* '''Week 2 (June 8-14, 2025)'''&lt;br /&gt;
** The original paper for AQM Evaluation Suite had the limitation that ECN support was under development, whereas now ns-3 has ECN support available. I've evaluated ECN support for AQM algorithms as outlined in RFC 7928 §4.5, and I've implemented the changes such that ECN was activated both at the queue level (e.g., for RED) and at the TCP sender level, based on ns-3 documentation and examples. For supported scenarios, ECN can be enabled through the &amp;lt;code&amp;gt;--ecn=true&amp;lt;/code&amp;gt; flag. Results confirm that ECN configurations are taking effect, as the queue delay v.s. good-put shows that the algorithms that support ECN have values more concentrated around the mean, resulting in a smaller ellipsoid. This indicates a reduction in variance and a tighter Gaussian distribution, with the data clustering more closely around the center, which is the effect of ECN. Pfifo remains identical as the algorithm doesn't support ECN. For the comparisons, please see [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev/-/merge_requests/4 !4].&lt;br /&gt;
&lt;br /&gt;
* '''Week 3 (June 15-21, 2025)'''&lt;br /&gt;
** Originally, the AQM Evaluation Suite saves each run under the &amp;lt;code&amp;gt;aqm-eval-output&amp;lt;/code&amp;gt; folder, and each run will be overwritten by the subsequent runs. I've redesigned the behaviour so that each run will be saved separately, each run will create the &amp;lt;code&amp;gt;aqm-eval-output/{timestamp}&amp;lt;/code&amp;gt; folder, and will also have a &amp;lt;code&amp;gt;run_config.json&amp;lt;/code&amp;gt; file to record the configuration of each run.&lt;br /&gt;
** After the paper has been published, there were additional AQM algorithms that are implemented in ns-3, they are &amp;lt;code&amp;gt;ns3::CobaltQueueDisc&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ns3::FqCobaltQueueDisc&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ns3::FqCoDelQueueDisc&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ns3::FqPieQueueDisc&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ns3::TbfQueueDisc&amp;lt;/code&amp;gt;. The new AQM algorithms that support ECN has also been enabled.&lt;br /&gt;
&lt;br /&gt;
* '''Week 4 (June 22-28, 2025)'''&lt;br /&gt;
** Improved the robustness and usability of the evaluation workflow by addressing the suite’s external tool dependencies. The AQM Evaluation Suite currently relies on several system packages—including Python, GNUplot, and ImageMagick—for visualizing simulation results. However, missing packages would result in errors or incomplete runs. The suite now proactively checks for the presence of these dependencies at runtime: if any are missing, a warning is logged, and the test execution will be terminated.&lt;br /&gt;
** Refactored queue delay measurement logic by removing the redundant &amp;lt;code&amp;gt;EvalTimestampTag&amp;lt;/code&amp;gt; class. Now, queue delay calculations leverage the timestamp embedded in QueueDiscItem, streamlining the codebase and eliminating duplicate logic.&lt;br /&gt;
** Extracted output file/directory management from inline system calls (mkdir -p, string concatenation) into a dedicated OutputManager - This eliminates ~15 hardcoded mkdir calls, centralizes path resolution logic, implements proper file handle management, and decouples output structure from simulation logic through externalized configuration.&lt;br /&gt;
&lt;br /&gt;
* '''Week 5 (June 29-July 5, 2025)'''&lt;br /&gt;
** Migrated the AQM Evaluation Suite codebase to the [https://gitlab.com/nitk-surathkal/aqm-evaluation-suite repository] as a contrib module.&lt;br /&gt;
** Updated all sources, scripts, and documentation to reflect the new repository structure and dependencies, including the &amp;lt;code&amp;gt;README.md&amp;lt;/code&amp;gt; for the new module and sphinx documentation. &lt;br /&gt;
** Prepared the suite for integration and packaging with the upcoming ns-allinone-3.45 release, including running compatibility tests and verifying example workflows and ensured out-of-the-box support for ns-allinone-3.45 distribution&lt;br /&gt;
** Cleaned up the commit history using interactive rebase to squash minor commits and applied a centralized commit message format consistent with ns-3 project practices, setting it as the new master branch.&lt;br /&gt;
&lt;br /&gt;
* '''Week 6 (July 6-July 12, 2025)'''&lt;br /&gt;
** Refactored the contrib codebase repository for maintainability and internal review, checkpointing the first half milestone with the [https://gitlab.com/nitk-surathkal/aqm-evaluation-suite/-/merge_requests/2 merge request]&lt;br /&gt;
** After internal testing, Aniket found that the command &amp;lt;code&amp;gt;magick&amp;lt;/code&amp;gt; used by the AQM Evaluation Suite runner shows an error. After investigation, the command &amp;lt;code&amp;gt;convert&amp;lt;/code&amp;gt; was only deprecated in ImageMagick 7, and Aniket had version 6, where the &amp;lt;code&amp;gt;magick&amp;lt;/code&amp;gt; command doesn't exist yet. I've enhanced the compatibility for ImageMagick command invocation, supporting both &amp;lt;code&amp;gt;convert&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;magick&amp;lt;/code&amp;gt; commands such that it's consistent with the behaviour that ns-3 uses to generate sphinx documentations.&lt;br /&gt;
&lt;br /&gt;
* '''Week 7 (July 13-July 19, 2025)'''&lt;br /&gt;
** The [https://gitlab.com/nitk-surathkal/aqm-evaluation-suite/-/merge_requests/2 merge request] I've submitted is pending review, which I've prioritized addressing the reviews. A few notable problems that I've addressed from the reviewer's comment is 1) Refactored logging, there were originally many calls to &amp;lt;code&amp;gt;cout&amp;lt;/code&amp;gt;, which didn't utilize the [https://www.nsnam.org/docs/manual/html/logging-asserts.html logging module] that comes with ns-3. 2) The sphinx documentation wasn't in the standard format, which I've discovered that there is [https://www.nsnam.org/docs/contributing/html/models.html#documentation-tests-and-examplesl tutorial] and examples on creating documentation for the module.&lt;br /&gt;
** Actively working on standardizing the integration of custom AQM algorithms, which is one of the key feature in order to ensure a smooth developer experience. Currently the built-in AQM algorithms are hard-coded in multiple places, for example in the runner and helper, as well as the Python scripts. This makes adding new AQM algorithms hard as there are multiple individual copies saved in different places. I'm addressing this issue by creating a singleton registry of all the AQM algorithms with the complete metadata, and reference this as source of truth in other places. Yet there is one difficulty that still remains is that there appears to be some discrepancy between the output data of the original implementation and the new implementation, despite the configurations should be unchanged, which I'm still investigating.&lt;br /&gt;
&lt;br /&gt;
* '''Week 9 (July 20-July 26, 2025)'''&lt;br /&gt;
&lt;br /&gt;
= Resources =&lt;br /&gt;
&lt;br /&gt;
* AQM Evaluation Suite [[https://dl.acm.org/doi/abs/10.1145/3067665.3067674 Paper]] [[https://aqm-eval-suite.github.io/ Implementation]]&lt;br /&gt;
* [https://tools.ietf.org/html/rfc7928 RFC 7928]&lt;br /&gt;
* [https://www.nsnam.org/docs/models/html/traffic-control-layer.html Traffic Control Model in ns-3]&lt;/div&gt;</summary>
		<author><name>Davidzylin</name></author>
	</entry>
	<entry>
		<id>https://www.nsnam.org/mediawiki/index.php?title=GSOC2025AqmEvaluation&amp;diff=13633</id>
		<title>GSOC2025AqmEvaluation</title>
		<link rel="alternate" type="text/html" href="https://www.nsnam.org/mediawiki/index.php?title=GSOC2025AqmEvaluation&amp;diff=13633"/>
		<updated>2025-07-25T02:52:56Z</updated>

		<summary type="html">&lt;p&gt;Davidzylin: /* Weekly Updates */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TOC}}&lt;br /&gt;
&lt;br /&gt;
Back to [[Summer_Projects#Google_Summer_of_Code_2025 | GSoC 2025 projects]]&lt;br /&gt;
&lt;br /&gt;
= Project Overview =&lt;br /&gt;
&lt;br /&gt;
* '''Project Name:''' Upgrade the AQM Evaluation Suite for ns-3&lt;br /&gt;
* '''Student:''' David Lin&lt;br /&gt;
* '''Mentors:''' Mohit P. Tahiliani, Aniket Singh and Tom Henderson&lt;br /&gt;
* '''Google Page:''' [https://summerofcode.withgoogle.com/programs/2025/projects/d7sZPqy6 LINK]&lt;br /&gt;
* '''Project Proposal:''' [https://davidzylin.notion.site/Proposal-Upgrade-the-AQM-Evaluation-Suite-for-ns-3-1bbad0d7128d80be9d7df771f053491e?pvs=143 LINK]&lt;br /&gt;
* '''Project Goals:''' The AQM Evaluation Suite is an automated framework based on RFC 7928 that simplifies simulation setup, topology creation, traffic generation, execution, and results visualization of AQM algorithms in ns-3. Originally developed in 2017 and maintained until 2019, the suite now needs an upgrade to: (1) Migrate its build system from waf to CMake (2) Integrate support for state-of-the-art AQM algorithms and enhanced ECN functionalities (3) Update simulation examples to reflect modern traffic control models (4) Package and publish the suite on the ns-3 App Store&lt;br /&gt;
* '''Repository:''' [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev LINK]&lt;br /&gt;
* '''About Me:''' I'm a CS undergrad student at the University of Toronto. I've been deeply passionate about computer network and systems in general, it's my honour to work with such a wonderful community like ns-3!&lt;br /&gt;
&lt;br /&gt;
= Milestones =&lt;br /&gt;
&lt;br /&gt;
* CMake Migration&lt;br /&gt;
** Migrate the AQM Evaluation Suite’s build system from Waf to CMake&lt;br /&gt;
&lt;br /&gt;
* TCP &amp;amp; ECN Enhancements&lt;br /&gt;
** Upgrading the configuration defaults, including replacing TCP BIC with TCP Cubic in the evaluation suite. ECN support will be added by incorporating new tests and scenarios that utilize ECN signaling and feedback mechanisms. If other configuration defaults require updating, those changes will also be made.&lt;br /&gt;
&lt;br /&gt;
* Upgrade AQM Algorithms&lt;br /&gt;
** Support newer AQM algorithms. Parameter configurations will be added following RFC 7928 guidelines, and new scenarios will be implemented to demonstrate modern traffic control use cases.&lt;br /&gt;
&lt;br /&gt;
* Packaging&lt;br /&gt;
** The module will be prepared for submission to the ns-3 App Store or into the mainline, including compliance with metadata and technical requirements.&lt;br /&gt;
&lt;br /&gt;
= Weekly Updates =&lt;br /&gt;
&lt;br /&gt;
* '''Community Bonding Period (May 8-31, 2025)'''&lt;br /&gt;
** Migrated the existing AQM Evaluation Suite codebase from [https://github.com/aqm-eval-suite/ns-3-dev-git GitHub] to the new [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev GitLab] repository for centralized development.&lt;br /&gt;
** Conducted an in-depth analysis of the original AQM Evaluation Suite paper. Extracted key highlights and formulated a structured list of [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev/-/issues/1 action items] to align with recent advancements in ns-3.&lt;br /&gt;
** The original aqm-eval-suite was based on ns-3.30, and during the migration process, I identified an issue in the AggressiveSender scenario starting from ns-3.41, where aggressive TCP variants (BIC, HighSpeed, YeAH) no longer matched prior results (for more detailed comparisons, please see [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev/-/issues/6 #6]). Comparing with the examples from tcp-cubit, I discovered enabling pacing through &amp;lt;code&amp;gt;Config::SetDefault(&amp;quot;ns3::TcpSocketState::EnablePacing&amp;quot;, BooleanValue(true));&amp;lt;/code&amp;gt; restores expected behaviour and notably, NewReno remains unaffected.&lt;br /&gt;
&lt;br /&gt;
* '''Week 1 (June 1-7, 2025)'''&lt;br /&gt;
&lt;br /&gt;
** ns-3 has transitioned from Waf to CMake as the primary build system, but the AQM evaluation suite still uses Waf configuration. I've migrated the existing build system from Waf to CMake for compatibility with latest version of ns-3 ([https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev/-/merge_requests/1 Changes]). Ensured successful compilation across supported platforms and passed all tests.&lt;br /&gt;
** The original paper for AQM Evaluation Suite uses TCP BIC for the aggressive sender as TCP CUBIC wasn't implemented in ns-3; However, TCP CUBIC is now supported in ns-3. I've added support for TCP CUBIC in the AQM Evaluation Suite and replaced TCP BIC with TCP CUBIC for default aggressive congestion control in the examples. This addressed the limitation of the paper and aligns with the requirements from RFC 7928;&lt;br /&gt;
** The original paper for AQM Evaluation Suite states &amp;quot;TCP NewReno is the default congestion control in ns-3&amp;quot; but latest ns-3 uses CUBIC as default. I've investigated and validated ([https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev/-/work_items/4 #4]) that TCP NewReno is indeed explicitly configured to eliminate surprises due to version upgrades as latest ns-3 uses CUBIC as default.&lt;br /&gt;
&lt;br /&gt;
* '''Week 2 (June 8-14, 2025)'''&lt;br /&gt;
** The original paper for AQM Evaluation Suite had the limitation that ECN support was under development, whereas now ns-3 has ECN support available. I've evaluated ECN support for AQM algorithms as outlined in RFC 7928 §4.5, and I've implemented the changes such that ECN was activated both at the queue level (e.g., for RED) and at the TCP sender level, based on ns-3 documentation and examples. For supported scenarios, ECN can be enabled through the &amp;lt;code&amp;gt;--ecn=true&amp;lt;/code&amp;gt; flag. Results confirm that ECN configurations are taking effect, as the queue delay v.s. good-put shows that the algorithms that support ECN have values more concentrated around the mean, resulting in a smaller ellipsoid. This indicates a reduction in variance and a tighter Gaussian distribution, with the data clustering more closely around the center, which is the effect of ECN. Pfifo remains identical as the algorithm doesn't support ECN. For the comparisons, please see [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev/-/merge_requests/4 !4].&lt;br /&gt;
&lt;br /&gt;
* '''Week 3 (June 15-21, 2025)'''&lt;br /&gt;
** Originally, the AQM Evaluation Suite saves each run under the &amp;lt;code&amp;gt;aqm-eval-output&amp;lt;/code&amp;gt; folder, and each run will be overwritten by the subsequent runs. I've redesigned the behaviour so that each run will be saved separately, each run will create the &amp;lt;code&amp;gt;aqm-eval-output/{timestamp}&amp;lt;/code&amp;gt; folder, and will also have a &amp;lt;code&amp;gt;run_config.json&amp;lt;/code&amp;gt; file to record the configuration of each run.&lt;br /&gt;
** After the paper has been published, there were additional AQM algorithms that are implemented in ns-3, they are &amp;lt;code&amp;gt;ns3::CobaltQueueDisc&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ns3::FqCobaltQueueDisc&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ns3::FqCoDelQueueDisc&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ns3::FqPieQueueDisc&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ns3::TbfQueueDisc&amp;lt;/code&amp;gt;. The new AQM algorithms that support ECN has also been enabled.&lt;br /&gt;
&lt;br /&gt;
* '''Week 4 (June 22-28, 2025)'''&lt;br /&gt;
** Improved the robustness and usability of the evaluation workflow by addressing the suite’s external tool dependencies. The AQM Evaluation Suite currently relies on several system packages—including Python, GNUplot, and ImageMagick—for visualizing simulation results. However, missing packages would result in errors or incomplete runs. The suite now proactively checks for the presence of these dependencies at runtime: if any are missing, a warning is logged, and the test execution will be terminated.&lt;br /&gt;
** Refactored queue delay measurement logic by removing the redundant &amp;lt;code&amp;gt;EvalTimestampTag&amp;lt;/code&amp;gt; class. Now, queue delay calculations leverage the timestamp embedded in QueueDiscItem, streamlining the codebase and eliminating duplicate logic.&lt;br /&gt;
** Extracted output file/directory management from inline system calls (mkdir -p, string concatenation) into a dedicated OutputManager - This eliminates ~15 hardcoded mkdir calls, centralizes path resolution logic, implements proper file handle management, and decouples output structure from simulation logic through externalized configuration.&lt;br /&gt;
&lt;br /&gt;
* '''Week 5 (June 29-July 5, 2025)'''&lt;br /&gt;
** Migrated the AQM Evaluation Suite codebase to the [https://gitlab.com/nitk-surathkal/aqm-evaluation-suite repository] as a contrib module.&lt;br /&gt;
** Updated all sources, scripts, and documentation to reflect the new repository structure and dependencies, including the &amp;lt;code&amp;gt;README.md&amp;lt;/code&amp;gt; for the new module and sphinx documentation. &lt;br /&gt;
** Prepared the suite for integration and packaging with the upcoming ns-allinone-3.45 release, including running compatibility tests and verifying example workflows and ensured out-of-the-box support for ns-allinone-3.45 distribution&lt;br /&gt;
** Cleaned up the commit history using interactive rebase to squash minor commits and applied a centralized commit message format consistent with ns-3 project practices, setting it as the new master branch.&lt;br /&gt;
&lt;br /&gt;
* '''Week 6 (July 6-July 12, 2025)'''&lt;br /&gt;
** Refactored the contrib codebase repository for maintainability and internal review, checkpointing the first half milestone with the [https://gitlab.com/nitk-surathkal/aqm-evaluation-suite/-/merge_requests/2 merge request]&lt;br /&gt;
** After internal testing, Aniket found that the command &amp;lt;code&amp;gt;magick&amp;lt;/code&amp;gt; used by the AQM Evaluation Suite runner shows an error. After investigation, the command &amp;lt;code&amp;gt;convert&amp;lt;/code&amp;gt; was only deprecated in ImageMagick 7, and Aniket had version 6, where the &amp;lt;code&amp;gt;magick&amp;lt;/code&amp;gt; command doesn't exist yet. I've enhanced the compatibility for ImageMagick command invocation, supporting both &amp;lt;code&amp;gt;convert&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;magick&amp;lt;/code&amp;gt; commands such that it's consistent with the behaviour that ns-3 uses to generate sphinx documentations.&lt;br /&gt;
&lt;br /&gt;
* '''Week 7 (July 13-July 19, 2025)'''&lt;br /&gt;
** The [https://gitlab.com/nitk-surathkal/aqm-evaluation-suite/-/merge_requests/2 merge request] I've submitted is pending review, which I've prioritized addressing the reviews. A few notable problems that I've addressed from the reviewer's comment is 1) Refactored logging, there were originally many calls to &amp;lt;code&amp;gt;cout&amp;lt;/code&amp;gt;, which didn't utilize the [https://www.nsnam.org/docs/manual/html/logging-asserts.html logging module] that comes with ns-3. 2) The sphinx documentation wasn't in the standard format, which I've discovered that there is [https://www.nsnam.org/docs/contributing/html/models.html#documentation-tests-and-examplesl tutorial] and examples on creating documentation for the module.&lt;br /&gt;
** Actively working on standardizing the integration of custom AQM algorithms, which is one of the key feature in order to ensure a smooth developer experience. Currently the built-in AQM algorithms are hard-coded in multiple places, for example in the runner and helper, as well as the Python scripts. This makes adding new AQM algorithms hard as there are multiple individual copies saved in different places. I'm addressing this issue by creating a singleton registry of all the AQM algorithms with the complete metadata, and reference this as source of truth in other places. Yet there is one difficulty that still remains is that there appears to be some discrepancy between the output data of the original implementation and the new implementation, despite the configurations should be unchanged, which I'm still investigating.&lt;br /&gt;
&lt;br /&gt;
= Resources =&lt;br /&gt;
&lt;br /&gt;
* AQM Evaluation Suite [[https://dl.acm.org/doi/abs/10.1145/3067665.3067674 Paper]] [[https://aqm-eval-suite.github.io/ Implementation]]&lt;br /&gt;
* [https://tools.ietf.org/html/rfc7928 RFC 7928]&lt;br /&gt;
* [https://www.nsnam.org/docs/models/html/traffic-control-layer.html Traffic Control Model in ns-3]&lt;/div&gt;</summary>
		<author><name>Davidzylin</name></author>
	</entry>
	<entry>
		<id>https://www.nsnam.org/mediawiki/index.php?title=GSOC2025AqmEvaluation&amp;diff=13632</id>
		<title>GSOC2025AqmEvaluation</title>
		<link rel="alternate" type="text/html" href="https://www.nsnam.org/mediawiki/index.php?title=GSOC2025AqmEvaluation&amp;diff=13632"/>
		<updated>2025-07-25T02:47:38Z</updated>

		<summary type="html">&lt;p&gt;Davidzylin: /* Weekly Updates */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TOC}}&lt;br /&gt;
&lt;br /&gt;
Back to [[Summer_Projects#Google_Summer_of_Code_2025 | GSoC 2025 projects]]&lt;br /&gt;
&lt;br /&gt;
= Project Overview =&lt;br /&gt;
&lt;br /&gt;
* '''Project Name:''' Upgrade the AQM Evaluation Suite for ns-3&lt;br /&gt;
* '''Student:''' David Lin&lt;br /&gt;
* '''Mentors:''' Mohit P. Tahiliani, Aniket Singh and Tom Henderson&lt;br /&gt;
* '''Google Page:''' [https://summerofcode.withgoogle.com/programs/2025/projects/d7sZPqy6 LINK]&lt;br /&gt;
* '''Project Proposal:''' [https://davidzylin.notion.site/Proposal-Upgrade-the-AQM-Evaluation-Suite-for-ns-3-1bbad0d7128d80be9d7df771f053491e?pvs=143 LINK]&lt;br /&gt;
* '''Project Goals:''' The AQM Evaluation Suite is an automated framework based on RFC 7928 that simplifies simulation setup, topology creation, traffic generation, execution, and results visualization of AQM algorithms in ns-3. Originally developed in 2017 and maintained until 2019, the suite now needs an upgrade to: (1) Migrate its build system from waf to CMake (2) Integrate support for state-of-the-art AQM algorithms and enhanced ECN functionalities (3) Update simulation examples to reflect modern traffic control models (4) Package and publish the suite on the ns-3 App Store&lt;br /&gt;
* '''Repository:''' [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev LINK]&lt;br /&gt;
* '''About Me:''' I'm a CS undergrad student at the University of Toronto. I've been deeply passionate about computer network and systems in general, it's my honour to work with such a wonderful community like ns-3!&lt;br /&gt;
&lt;br /&gt;
= Milestones =&lt;br /&gt;
&lt;br /&gt;
* CMake Migration&lt;br /&gt;
** Migrate the AQM Evaluation Suite’s build system from Waf to CMake&lt;br /&gt;
&lt;br /&gt;
* TCP &amp;amp; ECN Enhancements&lt;br /&gt;
** Upgrading the configuration defaults, including replacing TCP BIC with TCP Cubic in the evaluation suite. ECN support will be added by incorporating new tests and scenarios that utilize ECN signaling and feedback mechanisms. If other configuration defaults require updating, those changes will also be made.&lt;br /&gt;
&lt;br /&gt;
* Upgrade AQM Algorithms&lt;br /&gt;
** Support newer AQM algorithms. Parameter configurations will be added following RFC 7928 guidelines, and new scenarios will be implemented to demonstrate modern traffic control use cases.&lt;br /&gt;
&lt;br /&gt;
* Packaging&lt;br /&gt;
** The module will be prepared for submission to the ns-3 App Store or into the mainline, including compliance with metadata and technical requirements.&lt;br /&gt;
&lt;br /&gt;
= Weekly Updates =&lt;br /&gt;
&lt;br /&gt;
* '''Community Bonding Period (May 8-31, 2025)'''&lt;br /&gt;
** Migrated the existing AQM Evaluation Suite codebase from [https://github.com/aqm-eval-suite/ns-3-dev-git GitHub] to the new [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev GitLab] repository for centralized development.&lt;br /&gt;
** Conducted an in-depth analysis of the original AQM Evaluation Suite paper. Extracted key highlights and formulated a structured list of [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev/-/issues/1 action items] to align with recent advancements in ns-3.&lt;br /&gt;
** The original aqm-eval-suite was based on ns-3.30, and during the migration process, I identified an issue in the AggressiveSender scenario starting from ns-3.41, where aggressive TCP variants (BIC, HighSpeed, YeAH) no longer matched prior results (for more detailed comparisons, please see [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev/-/issues/6 #6]). Comparing with the examples from tcp-cubit, I discovered enabling pacing through &amp;lt;code&amp;gt;Config::SetDefault(&amp;quot;ns3::TcpSocketState::EnablePacing&amp;quot;, BooleanValue(true));&amp;lt;/code&amp;gt; restores expected behaviour and notably, NewReno remains unaffected.&lt;br /&gt;
&lt;br /&gt;
* '''Week 1 (June 1-7, 2025)'''&lt;br /&gt;
&lt;br /&gt;
** ns-3 has transitioned from Waf to CMake as the primary build system, but the AQM evaluation suite still uses Waf configuration. I've migrated the existing build system from Waf to CMake for compatibility with latest version of ns-3 ([https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev/-/merge_requests/1 Changes]). Ensured successful compilation across supported platforms and passed all tests.&lt;br /&gt;
** The original paper for AQM Evaluation Suite uses TCP BIC for the aggressive sender as TCP CUBIC wasn't implemented in ns-3; However, TCP CUBIC is now supported in ns-3. I've added support for TCP CUBIC in the AQM Evaluation Suite and replaced TCP BIC with TCP CUBIC for default aggressive congestion control in the examples. This addressed the limitation of the paper and aligns with the requirements from RFC 7928;&lt;br /&gt;
** The original paper for AQM Evaluation Suite states &amp;quot;TCP NewReno is the default congestion control in ns-3&amp;quot; but latest ns-3 uses CUBIC as default. I've investigated and validated ([https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev/-/work_items/4 #4]) that TCP NewReno is indeed explicitly configured to eliminate surprises due to version upgrades as latest ns-3 uses CUBIC as default.&lt;br /&gt;
&lt;br /&gt;
* '''Week 2 (June 8-14, 2025)'''&lt;br /&gt;
** The original paper for AQM Evaluation Suite had the limitation that ECN support was under development, whereas now ns-3 has ECN support available. I've evaluated ECN support for AQM algorithms as outlined in RFC 7928 §4.5, and I've implemented the changes such that ECN was activated both at the queue level (e.g., for RED) and at the TCP sender level, based on ns-3 documentation and examples. For supported scenarios, ECN can be enabled through the &amp;lt;code&amp;gt;--ecn=true&amp;lt;/code&amp;gt; flag. Results confirm that ECN configurations are taking effect, as the queue delay v.s. good-put shows that the algorithms that support ECN have values more concentrated around the mean, resulting in a smaller ellipsoid. This indicates a reduction in variance and a tighter Gaussian distribution, with the data clustering more closely around the center, which is the effect of ECN. Pfifo remains identical as the algorithm doesn't support ECN. For the comparisons, please see [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev/-/merge_requests/4 !4].&lt;br /&gt;
&lt;br /&gt;
* '''Week 3 (June 15-21, 2025)'''&lt;br /&gt;
** Originally, the AQM Evaluation Suite saves each run under the &amp;lt;code&amp;gt;aqm-eval-output&amp;lt;/code&amp;gt; folder, and each run will be overwritten by the subsequent runs. I've redesigned the behaviour so that each run will be saved separately, each run will create the &amp;lt;code&amp;gt;aqm-eval-output/{timestamp}&amp;lt;/code&amp;gt; folder, and will also have a &amp;lt;code&amp;gt;run_config.json&amp;lt;/code&amp;gt; file to record the configuration of each run.&lt;br /&gt;
** After the paper has been published, there were additional AQM algorithms that are implemented in ns-3, they are &amp;lt;code&amp;gt;ns3::CobaltQueueDisc&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ns3::FqCobaltQueueDisc&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ns3::FqCoDelQueueDisc&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ns3::FqPieQueueDisc&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ns3::TbfQueueDisc&amp;lt;/code&amp;gt;. The new AQM algorithms that support ECN has also been enabled.&lt;br /&gt;
&lt;br /&gt;
* '''Week 4 (June 22-28, 2025)'''&lt;br /&gt;
** Improved the robustness and usability of the evaluation workflow by addressing the suite’s external tool dependencies. The AQM Evaluation Suite currently relies on several system packages—including Python, GNUplot, and ImageMagick—for visualizing simulation results. However, missing packages would result in errors or incomplete runs. The suite now proactively checks for the presence of these dependencies at runtime: if any are missing, a warning is logged, and the test execution will be terminated.&lt;br /&gt;
** Refactored queue delay measurement logic by removing the redundant &amp;lt;code&amp;gt;EvalTimestampTag&amp;lt;/code&amp;gt; class. Now, queue delay calculations leverage the timestamp embedded in QueueDiscItem, streamlining the codebase and eliminating duplicate logic.&lt;br /&gt;
** Extracted output file/directory management from inline system calls (mkdir -p, string concatenation) into a dedicated OutputManager - This eliminates ~15 hardcoded mkdir calls, centralizes path resolution logic, implements proper file handle management, and decouples output structure from simulation logic through externalized configuration.&lt;br /&gt;
&lt;br /&gt;
* '''Week 5 (June 29-July 5, 2025)'''&lt;br /&gt;
** Migrated the AQM Evaluation Suite codebase to the [https://gitlab.com/nitk-surathkal/aqm-evaluation-suite repository] as a contrib module.&lt;br /&gt;
** Updated all sources, scripts, and documentation to reflect the new repository structure and dependencies, including the &amp;lt;code&amp;gt;README.md&amp;lt;/code&amp;gt; for the new module and sphinx documentation. &lt;br /&gt;
** Prepared the suite for integration and packaging with the upcoming ns-allinone-3.45 release, including running compatibility tests and verifying example workflows and ensured out-of-the-box support for ns-allinone-3.45 distribution&lt;br /&gt;
** Cleaned up the commit history using interactive rebase to squash minor commits and applied a centralized commit message format consistent with ns-3 project practices, setting it as the new master branch.&lt;br /&gt;
&lt;br /&gt;
* '''Week 6 (July 6-July 12, 2025)'''&lt;br /&gt;
** Refactored the contrib codebase repository for maintainability and internal review, checkpointing the first half milestone with the [https://gitlab.com/nitk-surathkal/aqm-evaluation-suite/-/merge_requests/2 merge request]&lt;br /&gt;
** After internal testing, Aniket found that the command &amp;lt;code&amp;gt;magick&amp;lt;/code&amp;gt; used by the AQM Evaluation Suite runner shows an error. After investigation, the command &amp;lt;code&amp;gt;convert&amp;lt;/code&amp;gt; was only deprecated in ImageMagick 7, and Aniket had version 6, where the &amp;lt;code&amp;gt;magick&amp;lt;/code&amp;gt; command doesn't exist yet. I've enhanced the compatibility for ImageMagick command invocation, supporting both &amp;lt;code&amp;gt;convert&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;magick&amp;lt;/code&amp;gt; commands such that it's consistent with the behaviour that ns-3 uses to generate sphinx documentations.&lt;br /&gt;
&lt;br /&gt;
* '''Week 7 (July 13-July 19, 2025)'''&lt;br /&gt;
** The [https://gitlab.com/nitk-surathkal/aqm-evaluation-suite/-/merge_requests/2 merge request] I've submitted is pending review, which I've prioritized addressing the reviews. A few notable problems that I've addressed from the reviewer's comment is 1) Refactored logging, there were originally many calls to &amp;lt;code&amp;gt;cout&amp;lt;/code&amp;gt;, which didn't utilize the [https://www.nsnam.org/docs/manual/html/logging-asserts.html logging module] that comes with ns-3. 2) The sphinx documentation wasn't in the standard format, which I've discovered that there is [https://www.nsnam.org/docs/contributing/html/models.html#documentation-tests-and-examplesl tutorial] and examples on creating documentation for the module.&lt;br /&gt;
&lt;br /&gt;
= Resources =&lt;br /&gt;
&lt;br /&gt;
* AQM Evaluation Suite [[https://dl.acm.org/doi/abs/10.1145/3067665.3067674 Paper]] [[https://aqm-eval-suite.github.io/ Implementation]]&lt;br /&gt;
* [https://tools.ietf.org/html/rfc7928 RFC 7928]&lt;br /&gt;
* [https://www.nsnam.org/docs/models/html/traffic-control-layer.html Traffic Control Model in ns-3]&lt;/div&gt;</summary>
		<author><name>Davidzylin</name></author>
	</entry>
	<entry>
		<id>https://www.nsnam.org/mediawiki/index.php?title=GSOC2025AqmEvaluation&amp;diff=13631</id>
		<title>GSOC2025AqmEvaluation</title>
		<link rel="alternate" type="text/html" href="https://www.nsnam.org/mediawiki/index.php?title=GSOC2025AqmEvaluation&amp;diff=13631"/>
		<updated>2025-07-22T18:55:44Z</updated>

		<summary type="html">&lt;p&gt;Davidzylin: /* Weekly Updates */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TOC}}&lt;br /&gt;
&lt;br /&gt;
Back to [[Summer_Projects#Google_Summer_of_Code_2025 | GSoC 2025 projects]]&lt;br /&gt;
&lt;br /&gt;
= Project Overview =&lt;br /&gt;
&lt;br /&gt;
* '''Project Name:''' Upgrade the AQM Evaluation Suite for ns-3&lt;br /&gt;
* '''Student:''' David Lin&lt;br /&gt;
* '''Mentors:''' Mohit P. Tahiliani, Aniket Singh and Tom Henderson&lt;br /&gt;
* '''Google Page:''' [https://summerofcode.withgoogle.com/programs/2025/projects/d7sZPqy6 LINK]&lt;br /&gt;
* '''Project Proposal:''' [https://davidzylin.notion.site/Proposal-Upgrade-the-AQM-Evaluation-Suite-for-ns-3-1bbad0d7128d80be9d7df771f053491e?pvs=143 LINK]&lt;br /&gt;
* '''Project Goals:''' The AQM Evaluation Suite is an automated framework based on RFC 7928 that simplifies simulation setup, topology creation, traffic generation, execution, and results visualization of AQM algorithms in ns-3. Originally developed in 2017 and maintained until 2019, the suite now needs an upgrade to: (1) Migrate its build system from waf to CMake (2) Integrate support for state-of-the-art AQM algorithms and enhanced ECN functionalities (3) Update simulation examples to reflect modern traffic control models (4) Package and publish the suite on the ns-3 App Store&lt;br /&gt;
* '''Repository:''' [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev LINK]&lt;br /&gt;
* '''About Me:''' I'm a CS undergrad student at the University of Toronto. I've been deeply passionate about computer network and systems in general, it's my honour to work with such a wonderful community like ns-3!&lt;br /&gt;
&lt;br /&gt;
= Milestones =&lt;br /&gt;
&lt;br /&gt;
* CMake Migration&lt;br /&gt;
** Migrate the AQM Evaluation Suite’s build system from Waf to CMake&lt;br /&gt;
&lt;br /&gt;
* TCP &amp;amp; ECN Enhancements&lt;br /&gt;
** Upgrading the configuration defaults, including replacing TCP BIC with TCP Cubic in the evaluation suite. ECN support will be added by incorporating new tests and scenarios that utilize ECN signaling and feedback mechanisms. If other configuration defaults require updating, those changes will also be made.&lt;br /&gt;
&lt;br /&gt;
* Upgrade AQM Algorithms&lt;br /&gt;
** Support newer AQM algorithms. Parameter configurations will be added following RFC 7928 guidelines, and new scenarios will be implemented to demonstrate modern traffic control use cases.&lt;br /&gt;
&lt;br /&gt;
* Packaging&lt;br /&gt;
** The module will be prepared for submission to the ns-3 App Store or into the mainline, including compliance with metadata and technical requirements.&lt;br /&gt;
&lt;br /&gt;
= Weekly Updates =&lt;br /&gt;
&lt;br /&gt;
* '''Community Bonding Period (May 8-31, 2025)'''&lt;br /&gt;
** Migrated the existing AQM Evaluation Suite codebase from [https://github.com/aqm-eval-suite/ns-3-dev-git GitHub] to the new [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev GitLab] repository for centralized development.&lt;br /&gt;
** Conducted an in-depth analysis of the original AQM Evaluation Suite paper. Extracted key highlights and formulated a structured list of [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev/-/issues/1 action items] to align with recent advancements in ns-3.&lt;br /&gt;
** The original aqm-eval-suite was based on ns-3.30, and during the migration process, I identified an issue in the AggressiveSender scenario starting from ns-3.41, where aggressive TCP variants (BIC, HighSpeed, YeAH) no longer matched prior results (for more detailed comparisons, please see [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev/-/issues/6 #6]). Comparing with the examples from tcp-cubit, I discovered enabling pacing through &amp;lt;code&amp;gt;Config::SetDefault(&amp;quot;ns3::TcpSocketState::EnablePacing&amp;quot;, BooleanValue(true));&amp;lt;/code&amp;gt; restores expected behaviour and notably, NewReno remains unaffected.&lt;br /&gt;
&lt;br /&gt;
* '''Week 1 (June 1-7, 2025)'''&lt;br /&gt;
&lt;br /&gt;
** ns-3 has transitioned from Waf to CMake as the primary build system, but the AQM evaluation suite still uses Waf configuration. I've migrated the existing build system from Waf to CMake for compatibility with latest version of ns-3 ([https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev/-/merge_requests/1 Changes]). Ensured successful compilation across supported platforms and passed all tests.&lt;br /&gt;
** The original paper for AQM Evaluation Suite uses TCP BIC for the aggressive sender as TCP CUBIC wasn't implemented in ns-3; However, TCP CUBIC is now supported in ns-3. I've added support for TCP CUBIC in the AQM Evaluation Suite and replaced TCP BIC with TCP CUBIC for default aggressive congestion control in the examples. This addressed the limitation of the paper and aligns with the requirements from RFC 7928;&lt;br /&gt;
** The original paper for AQM Evaluation Suite states &amp;quot;TCP NewReno is the default congestion control in ns-3&amp;quot; but latest ns-3 uses CUBIC as default. I've investigated and validated ([https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev/-/work_items/4 #4]) that TCP NewReno is indeed explicitly configured to eliminate surprises due to version upgrades as latest ns-3 uses CUBIC as default.&lt;br /&gt;
&lt;br /&gt;
* '''Week 2 (June 8-14, 2025)'''&lt;br /&gt;
** The original paper for AQM Evaluation Suite had the limitation that ECN support was under development, whereas now ns-3 has ECN support available. I've evaluated ECN support for AQM algorithms as outlined in RFC 7928 §4.5, and I've implemented the changes such that ECN was activated both at the queue level (e.g., for RED) and at the TCP sender level, based on ns-3 documentation and examples. For supported scenarios, ECN can be enabled through the &amp;lt;code&amp;gt;--ecn=true&amp;lt;/code&amp;gt; flag. Results confirm that ECN configurations are taking effect, as the queue delay v.s. good-put shows that the algorithms that support ECN have values more concentrated around the mean, resulting in a smaller ellipsoid. This indicates a reduction in variance and a tighter Gaussian distribution, with the data clustering more closely around the center, which is the effect of ECN. Pfifo remains identical as the algorithm doesn't support ECN. For the comparisons, please see [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev/-/merge_requests/4 !4].&lt;br /&gt;
&lt;br /&gt;
* '''Week 3 (June 15-21, 2025)'''&lt;br /&gt;
** Originally, the AQM Evaluation Suite saves each run under the &amp;lt;code&amp;gt;aqm-eval-output&amp;lt;/code&amp;gt; folder, and each run will be overwritten by the subsequent runs. I've redesigned the behaviour so that each run will be saved separately, each run will create the &amp;lt;code&amp;gt;aqm-eval-output/{timestamp}&amp;lt;/code&amp;gt; folder, and will also have a &amp;lt;code&amp;gt;run_config.json&amp;lt;/code&amp;gt; file to record the configuration of each run.&lt;br /&gt;
** After the paper has been published, there were additional AQM algorithms that are implemented in ns-3, they are &amp;lt;code&amp;gt;ns3::CobaltQueueDisc&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ns3::FqCobaltQueueDisc&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ns3::FqCoDelQueueDisc&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ns3::FqPieQueueDisc&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ns3::TbfQueueDisc&amp;lt;/code&amp;gt;. The new AQM algorithms that support ECN has also been enabled.&lt;br /&gt;
&lt;br /&gt;
* '''Week 4 (June 22-28, 2025)'''&lt;br /&gt;
** Improved the robustness and usability of the evaluation workflow by addressing the suite’s external tool dependencies. The AQM Evaluation Suite currently relies on several system packages—including Python, GNUplot, and ImageMagick—for visualizing simulation results. However, missing packages would result in errors or incomplete runs. The suite now proactively checks for the presence of these dependencies at runtime: if any are missing, a warning is logged, and the test execution will be terminated.&lt;br /&gt;
** Refactored queue delay measurement logic by removing the redundant &amp;lt;code&amp;gt;EvalTimestampTag&amp;lt;/code&amp;gt; class. Now, queue delay calculations leverage the timestamp embedded in QueueDiscItem, streamlining the codebase and eliminating duplicate logic.&lt;br /&gt;
** Extracted output file/directory management from inline system calls (mkdir -p, string concatenation) into a dedicated OutputManager - This eliminates ~15 hardcoded mkdir calls, centralizes path resolution logic, implements proper file handle management, and decouples output structure from simulation logic through externalized configuration.&lt;br /&gt;
&lt;br /&gt;
* '''Week 5 (June 29-July 5, 2025)'''&lt;br /&gt;
** Migrated the AQM Evaluation Suite codebase to the [https://gitlab.com/nitk-surathkal/aqm-evaluation-suite repository] as a contrib module.&lt;br /&gt;
** Updated all sources, scripts, and documentation to reflect the new repository structure and dependencies, including the &amp;lt;code&amp;gt;README.md&amp;lt;/code&amp;gt; for the new module and sphinx documentation. &lt;br /&gt;
** Prepared the suite for integration and packaging with the upcoming ns-allinone-3.45 release, including running compatibility tests and verifying example workflows and ensured out-of-the-box support for ns-allinone-3.45 distribution&lt;br /&gt;
** Cleaned up the commit history using interactive rebase to squash minor commits and applied a centralized commit message format consistent with ns-3 project practices, setting it as the new master branch.&lt;br /&gt;
&lt;br /&gt;
* '''Week 6 (July 6-July 12, 2025)'''&lt;br /&gt;
** Refactored the contrib codebase repository for maintainability and internal review, checkpointing the first half milestone with the [https://gitlab.com/nitk-surathkal/aqm-evaluation-suite/-/merge_requests/2 merge request]&lt;br /&gt;
** After internal testing, Aniket found that the command &amp;lt;code&amp;gt;magick&amp;lt;/code&amp;gt; used by the AQM Evaluation Suite runner shows an error. After investigation, the command &amp;lt;code&amp;gt;convert&amp;lt;/code&amp;gt; was only deprecated in ImageMagick 7, and Aniket had version 6, where the &amp;lt;code&amp;gt;magick&amp;lt;/code&amp;gt; command doesn't exist yet. I've enhanced the compatibility for ImageMagick command invocation, supporting both &amp;lt;code&amp;gt;convert&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;magick&amp;lt;/code&amp;gt; commands such that it's consistent with the behaviour that ns-3 uses to generate sphinx documentations.&lt;br /&gt;
&lt;br /&gt;
* '''Week 7 (July 13-July 19, 2025)'''&lt;br /&gt;
&lt;br /&gt;
= Resources =&lt;br /&gt;
&lt;br /&gt;
* AQM Evaluation Suite [[https://dl.acm.org/doi/abs/10.1145/3067665.3067674 Paper]] [[https://aqm-eval-suite.github.io/ Implementation]]&lt;br /&gt;
* [https://tools.ietf.org/html/rfc7928 RFC 7928]&lt;br /&gt;
* [https://www.nsnam.org/docs/models/html/traffic-control-layer.html Traffic Control Model in ns-3]&lt;/div&gt;</summary>
		<author><name>Davidzylin</name></author>
	</entry>
	<entry>
		<id>https://www.nsnam.org/mediawiki/index.php?title=GSOC2025AqmEvaluation&amp;diff=13609</id>
		<title>GSOC2025AqmEvaluation</title>
		<link rel="alternate" type="text/html" href="https://www.nsnam.org/mediawiki/index.php?title=GSOC2025AqmEvaluation&amp;diff=13609"/>
		<updated>2025-07-16T16:30:54Z</updated>

		<summary type="html">&lt;p&gt;Davidzylin: /* Weekly Updates */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TOC}}&lt;br /&gt;
&lt;br /&gt;
Back to [[Summer_Projects#Google_Summer_of_Code_2025 | GSoC 2025 projects]]&lt;br /&gt;
&lt;br /&gt;
= Project Overview =&lt;br /&gt;
&lt;br /&gt;
* '''Project Name:''' Upgrade the AQM Evaluation Suite for ns-3&lt;br /&gt;
* '''Student:''' David Lin&lt;br /&gt;
* '''Mentors:''' Mohit P. Tahiliani, Aniket Singh and Tom Henderson&lt;br /&gt;
* '''Google Page:''' [https://summerofcode.withgoogle.com/programs/2025/projects/d7sZPqy6 LINK]&lt;br /&gt;
* '''Project Proposal:''' [https://davidzylin.notion.site/Proposal-Upgrade-the-AQM-Evaluation-Suite-for-ns-3-1bbad0d7128d80be9d7df771f053491e?pvs=143 LINK]&lt;br /&gt;
* '''Project Goals:''' The AQM Evaluation Suite is an automated framework based on RFC 7928 that simplifies simulation setup, topology creation, traffic generation, execution, and results visualization of AQM algorithms in ns-3. Originally developed in 2017 and maintained until 2019, the suite now needs an upgrade to: (1) Migrate its build system from waf to CMake (2) Integrate support for state-of-the-art AQM algorithms and enhanced ECN functionalities (3) Update simulation examples to reflect modern traffic control models (4) Package and publish the suite on the ns-3 App Store&lt;br /&gt;
* '''Repository:''' [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev LINK]&lt;br /&gt;
* '''About Me:''' I'm a CS undergrad student at the University of Toronto. I've been deeply passionate about computer network and systems in general, it's my honour to work with such a wonderful community like ns-3!&lt;br /&gt;
&lt;br /&gt;
= Milestones =&lt;br /&gt;
&lt;br /&gt;
* CMake Migration&lt;br /&gt;
** Migrate the AQM Evaluation Suite’s build system from Waf to CMake&lt;br /&gt;
&lt;br /&gt;
* TCP &amp;amp; ECN Enhancements&lt;br /&gt;
** Upgrading the configuration defaults, including replacing TCP BIC with TCP Cubic in the evaluation suite. ECN support will be added by incorporating new tests and scenarios that utilize ECN signaling and feedback mechanisms. If other configuration defaults require updating, those changes will also be made.&lt;br /&gt;
&lt;br /&gt;
* Upgrade AQM Algorithms&lt;br /&gt;
** Support newer AQM algorithms. Parameter configurations will be added following RFC 7928 guidelines, and new scenarios will be implemented to demonstrate modern traffic control use cases.&lt;br /&gt;
&lt;br /&gt;
* Packaging&lt;br /&gt;
** The module will be prepared for submission to the ns-3 App Store or into the mainline, including compliance with metadata and technical requirements.&lt;br /&gt;
&lt;br /&gt;
= Weekly Updates =&lt;br /&gt;
&lt;br /&gt;
* '''Community Bonding Period (May 8-31, 2025)'''&lt;br /&gt;
** Migrated the existing AQM Evaluation Suite codebase from [https://github.com/aqm-eval-suite/ns-3-dev-git GitHub] to the new [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev GitLab] repository for centralized development.&lt;br /&gt;
** Conducted an in-depth analysis of the original AQM Evaluation Suite paper. Extracted key highlights and formulated a structured list of [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev/-/issues/1 action items] to align with recent advancements in ns-3.&lt;br /&gt;
** The original aqm-eval-suite was based on ns-3.30, and during the migration process, I identified an issue in the AggressiveSender scenario starting from ns-3.41, where aggressive TCP variants (BIC, HighSpeed, YeAH) no longer matched prior results (for more detailed comparisons, please see [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev/-/issues/6 #6]). Comparing with the examples from tcp-cubit, I discovered enabling pacing through &amp;lt;code&amp;gt;Config::SetDefault(&amp;quot;ns3::TcpSocketState::EnablePacing&amp;quot;, BooleanValue(true));&amp;lt;/code&amp;gt; restores expected behaviour and notably, NewReno remains unaffected.&lt;br /&gt;
&lt;br /&gt;
* '''Week 1 (June 1-7, 2025)'''&lt;br /&gt;
&lt;br /&gt;
** ns-3 has transitioned from Waf to CMake as the primary build system, but the AQM evaluation suite still uses Waf configuration. I've migrated the existing build system from Waf to CMake for compatibility with latest version of ns-3 ([https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev/-/merge_requests/1 Changes]). Ensured successful compilation across supported platforms and passed all tests.&lt;br /&gt;
** The original paper for AQM Evaluation Suite uses TCP BIC for the aggressive sender as TCP CUBIC wasn't implemented in ns-3; However, TCP CUBIC is now supported in ns-3. I've added support for TCP CUBIC in the AQM Evaluation Suite and replaced TCP BIC with TCP CUBIC for default aggressive congestion control in the examples. This addressed the limitation of the paper and aligns with the requirements from RFC 7928;&lt;br /&gt;
** The original paper for AQM Evaluation Suite states &amp;quot;TCP NewReno is the default congestion control in ns-3&amp;quot; but latest ns-3 uses CUBIC as default. I've investigated and validated ([https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev/-/work_items/4 #4]) that TCP NewReno is indeed explicitly configured to eliminate surprises due to version upgrades as latest ns-3 uses CUBIC as default.&lt;br /&gt;
&lt;br /&gt;
* '''Week 2 (June 8-14, 2025)'''&lt;br /&gt;
** The original paper for AQM Evaluation Suite had the limitation that ECN support was under development, whereas now ns-3 has ECN support available. I've evaluated ECN support for AQM algorithms as outlined in RFC 7928 §4.5, and I've implemented the changes such that ECN was activated both at the queue level (e.g., for RED) and at the TCP sender level, based on ns-3 documentation and examples. For supported scenarios, ECN can be enabled through the &amp;lt;code&amp;gt;--ecn=true&amp;lt;/code&amp;gt; flag. Results confirm that ECN configurations are taking effect, as the queue delay v.s. good-put shows that the algorithms that support ECN have values more concentrated around the mean, resulting in a smaller ellipsoid. This indicates a reduction in variance and a tighter Gaussian distribution, with the data clustering more closely around the center, which is the effect of ECN. Pfifo remains identical as the algorithm doesn't support ECN. For the comparisons, please see [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev/-/merge_requests/4 !4].&lt;br /&gt;
&lt;br /&gt;
* '''Week 3 (June 15-21, 2025)'''&lt;br /&gt;
** Originally, the AQM Evaluation Suite saves each run under the &amp;lt;code&amp;gt;aqm-eval-output&amp;lt;/code&amp;gt; folder, and each run will be overwritten by the subsequent runs. I've redesigned the behaviour so that each run will be saved separately, each run will create the &amp;lt;code&amp;gt;aqm-eval-output/{timestamp}&amp;lt;/code&amp;gt; folder, and will also have a &amp;lt;code&amp;gt;run_config.json&amp;lt;/code&amp;gt; file to record the configuration of each run.&lt;br /&gt;
** After the paper has been published, there were additional AQM algorithms that are implemented in ns-3, they are &amp;lt;code&amp;gt;ns3::CobaltQueueDisc&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ns3::FqCobaltQueueDisc&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ns3::FqCoDelQueueDisc&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ns3::FqPieQueueDisc&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ns3::TbfQueueDisc&amp;lt;/code&amp;gt;. The new AQM algorithms that support ECN has also been enabled.&lt;br /&gt;
&lt;br /&gt;
* '''Week 4 (June 22-28, 2025)'''&lt;br /&gt;
** Improved the robustness and usability of the evaluation workflow by addressing the suite’s external tool dependencies. The AQM Evaluation Suite currently relies on several system packages—including Python, GNUplot, and ImageMagick—for visualizing simulation results. However, missing packages would result in errors or incomplete runs. The suite now proactively checks for the presence of these dependencies at runtime: if any are missing, a warning is logged, and the test execution will be terminated.&lt;br /&gt;
** Refactored queue delay measurement logic by removing the redundant &amp;lt;code&amp;gt;EvalTimestampTag&amp;lt;/code&amp;gt; class. Now, queue delay calculations leverage the timestamp embedded in QueueDiscItem, streamlining the codebase and eliminating duplicate logic.&lt;br /&gt;
** Extracted output file/directory management from inline system calls (mkdir -p, string concatenation) into a dedicated OutputManager - This eliminates ~15 hardcoded mkdir calls, centralizes path resolution logic, implements proper file handle management, and decouples output structure from simulation logic through externalized configuration.&lt;br /&gt;
&lt;br /&gt;
* '''Week 5 (June 29-July 5, 2025)'''&lt;br /&gt;
** Migrated the AQM Evaluation Suite codebase to the [https://gitlab.com/nitk-surathkal/aqm-evaluation-suite repository] as a contrib module.&lt;br /&gt;
** Updated all sources, scripts, and documentation to reflect the new repository structure and dependencies, including the &amp;lt;code&amp;gt;README.md&amp;lt;/code&amp;gt; for the new module and sphinx documentation. &lt;br /&gt;
** Prepared the suite for integration and packaging with the upcoming ns-allinone-3.45 release, including running compatibility tests and verifying example workflows and ensured out-of-the-box support for ns-allinone-3.45 distribution&lt;br /&gt;
** Cleaned up the commit history using interactive rebase to squash minor commits and applied a centralized commit message format consistent with ns-3 project practices, setting it as the new master branch.&lt;br /&gt;
&lt;br /&gt;
* '''Week 6 (July 6-July 12, 2025)'''&lt;br /&gt;
** Refactored the contrib codebase repository for maintainability and internal review, checkpointing the first half milestone with the [https://gitlab.com/nitk-surathkal/aqm-evaluation-suite/-/merge_requests/2 merge request]&lt;br /&gt;
** After internal testing, Aniket found that the command &amp;lt;code&amp;gt;magick&amp;lt;/code&amp;gt; used by the AQM Evaluation Suite runner shows an error. After investigation, the command &amp;lt;code&amp;gt;convert&amp;lt;/code&amp;gt; was only deprecated in ImageMagick 7, and Aniket had version 6, where the &amp;lt;code&amp;gt;magick&amp;lt;/code&amp;gt; command doesn't exist yet. I've enhanced the compatibility for ImageMagick command invocation, supporting both &amp;lt;code&amp;gt;convert&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;magick&amp;lt;/code&amp;gt; commands such that it's consistent with the behaviour that ns-3 uses to generate sphinx documentations.&lt;br /&gt;
&lt;br /&gt;
= Resources =&lt;br /&gt;
&lt;br /&gt;
* AQM Evaluation Suite [[https://dl.acm.org/doi/abs/10.1145/3067665.3067674 Paper]] [[https://aqm-eval-suite.github.io/ Implementation]]&lt;br /&gt;
* [https://tools.ietf.org/html/rfc7928 RFC 7928]&lt;br /&gt;
* [https://www.nsnam.org/docs/models/html/traffic-control-layer.html Traffic Control Model in ns-3]&lt;/div&gt;</summary>
		<author><name>Davidzylin</name></author>
	</entry>
	<entry>
		<id>https://www.nsnam.org/mediawiki/index.php?title=GSOC2025AqmEvaluation&amp;diff=13607</id>
		<title>GSOC2025AqmEvaluation</title>
		<link rel="alternate" type="text/html" href="https://www.nsnam.org/mediawiki/index.php?title=GSOC2025AqmEvaluation&amp;diff=13607"/>
		<updated>2025-07-16T03:06:24Z</updated>

		<summary type="html">&lt;p&gt;Davidzylin: /* Weekly Updates */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TOC}}&lt;br /&gt;
&lt;br /&gt;
Back to [[Summer_Projects#Google_Summer_of_Code_2025 | GSoC 2025 projects]]&lt;br /&gt;
&lt;br /&gt;
= Project Overview =&lt;br /&gt;
&lt;br /&gt;
* '''Project Name:''' Upgrade the AQM Evaluation Suite for ns-3&lt;br /&gt;
* '''Student:''' David Lin&lt;br /&gt;
* '''Mentors:''' Mohit P. Tahiliani, Aniket Singh and Tom Henderson&lt;br /&gt;
* '''Google Page:''' [https://summerofcode.withgoogle.com/programs/2025/projects/d7sZPqy6 LINK]&lt;br /&gt;
* '''Project Proposal:''' [https://davidzylin.notion.site/Proposal-Upgrade-the-AQM-Evaluation-Suite-for-ns-3-1bbad0d7128d80be9d7df771f053491e?pvs=143 LINK]&lt;br /&gt;
* '''Project Goals:''' The AQM Evaluation Suite is an automated framework based on RFC 7928 that simplifies simulation setup, topology creation, traffic generation, execution, and results visualization of AQM algorithms in ns-3. Originally developed in 2017 and maintained until 2019, the suite now needs an upgrade to: (1) Migrate its build system from waf to CMake (2) Integrate support for state-of-the-art AQM algorithms and enhanced ECN functionalities (3) Update simulation examples to reflect modern traffic control models (4) Package and publish the suite on the ns-3 App Store&lt;br /&gt;
* '''Repository:''' [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev LINK]&lt;br /&gt;
* '''About Me:''' I'm a CS undergrad student at the University of Toronto. I've been deeply passionate about computer network and systems in general, it's my honour to work with such a wonderful community like ns-3!&lt;br /&gt;
&lt;br /&gt;
= Milestones =&lt;br /&gt;
&lt;br /&gt;
* CMake Migration&lt;br /&gt;
** Migrate the AQM Evaluation Suite’s build system from Waf to CMake&lt;br /&gt;
&lt;br /&gt;
* TCP &amp;amp; ECN Enhancements&lt;br /&gt;
** Upgrading the configuration defaults, including replacing TCP BIC with TCP Cubic in the evaluation suite. ECN support will be added by incorporating new tests and scenarios that utilize ECN signaling and feedback mechanisms. If other configuration defaults require updating, those changes will also be made.&lt;br /&gt;
&lt;br /&gt;
* Upgrade AQM Algorithms&lt;br /&gt;
** Support newer AQM algorithms. Parameter configurations will be added following RFC 7928 guidelines, and new scenarios will be implemented to demonstrate modern traffic control use cases.&lt;br /&gt;
&lt;br /&gt;
* Packaging&lt;br /&gt;
** The module will be prepared for submission to the ns-3 App Store or into the mainline, including compliance with metadata and technical requirements.&lt;br /&gt;
&lt;br /&gt;
= Weekly Updates =&lt;br /&gt;
&lt;br /&gt;
* '''Community Bonding Period (May 8-31, 2025)'''&lt;br /&gt;
** Migrated the existing AQM Evaluation Suite codebase from [https://github.com/aqm-eval-suite/ns-3-dev-git GitHub] to the new [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev GitLab] repository for centralized development.&lt;br /&gt;
** Conducted an in-depth analysis of the original AQM Evaluation Suite paper. Extracted key highlights and formulated a structured list of [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev/-/issues/1 action items] to align with recent advancements in ns-3.&lt;br /&gt;
** The original aqm-eval-suite was based on ns-3.30, and during the migration process, I identified an issue in the AggressiveSender scenario starting from ns-3.41, where aggressive TCP variants (BIC, HighSpeed, YeAH) no longer matched prior results (for more detailed comparisons, please see [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev/-/issues/6 #6]). Comparing with the examples from tcp-cubit, I discovered enabling pacing through &amp;lt;code&amp;gt;Config::SetDefault(&amp;quot;ns3::TcpSocketState::EnablePacing&amp;quot;, BooleanValue(true));&amp;lt;/code&amp;gt; restores expected behaviour and notably, NewReno remains unaffected.&lt;br /&gt;
&lt;br /&gt;
* '''Week 1 (June 1-7, 2025)'''&lt;br /&gt;
&lt;br /&gt;
** ns-3 has transitioned from Waf to CMake as the primary build system, but the AQM evaluation suite still uses Waf configuration. I've migrated the existing build system from Waf to CMake for compatibility with latest version of ns-3 ([https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev/-/merge_requests/1 Changes]). Ensured successful compilation across supported platforms and passed all tests.&lt;br /&gt;
** The original paper for AQM Evaluation Suite uses TCP BIC for the aggressive sender as TCP CUBIC wasn't implemented in ns-3; However, TCP CUBIC is now supported in ns-3. I've added support for TCP CUBIC in the AQM Evaluation Suite and replaced TCP BIC with TCP CUBIC for default aggressive congestion control in the examples. This addressed the limitation of the paper and aligns with the requirements from RFC 7928;&lt;br /&gt;
** The original paper for AQM Evaluation Suite states &amp;quot;TCP NewReno is the default congestion control in ns-3&amp;quot; but latest ns-3 uses CUBIC as default. I've investigated and validated ([https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev/-/work_items/4 #4]) that TCP NewReno is indeed explicitly configured to eliminate surprises due to version upgrades as latest ns-3 uses CUBIC as default.&lt;br /&gt;
&lt;br /&gt;
* '''Week 2 (June 8-14, 2025)'''&lt;br /&gt;
** The original paper for AQM Evaluation Suite had the limitation that ECN support was under development, whereas now ns-3 has ECN support available. I've evaluated ECN support for AQM algorithms as outlined in RFC 7928 §4.5, and I've implemented the changes such that ECN was activated both at the queue level (e.g., for RED) and at the TCP sender level, based on ns-3 documentation and examples. For supported scenarios, ECN can be enabled through the &amp;lt;code&amp;gt;--ecn=true&amp;lt;/code&amp;gt; flag. Results confirm that ECN configurations are taking effect, as the queue delay v.s. good-put shows that the algorithms that support ECN have values more concentrated around the mean, resulting in a smaller ellipsoid. This indicates a reduction in variance and a tighter Gaussian distribution, with the data clustering more closely around the center, which is the effect of ECN. Pfifo remains identical as the algorithm doesn't support ECN. For the comparisons, please see [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev/-/merge_requests/4 !4].&lt;br /&gt;
&lt;br /&gt;
* '''Week 3 (June 15-21, 2025)'''&lt;br /&gt;
** Originally, the AQM Evaluation Suite saves each run under the &amp;lt;code&amp;gt;aqm-eval-output&amp;lt;/code&amp;gt; folder, and each run will be overwritten by the subsequent runs. I've redesigned the behaviour so that each run will be saved separately, each run will create the &amp;lt;code&amp;gt;aqm-eval-output/{timestamp}&amp;lt;/code&amp;gt; folder, and will also have a &amp;lt;code&amp;gt;run_config.json&amp;lt;/code&amp;gt; file to record the configuration of each run.&lt;br /&gt;
** After the paper has been published, there were additional AQM algorithms that are implemented in ns-3, they are &amp;lt;code&amp;gt;ns3::CobaltQueueDisc&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ns3::FqCobaltQueueDisc&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ns3::FqCoDelQueueDisc&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ns3::FqPieQueueDisc&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ns3::TbfQueueDisc&amp;lt;/code&amp;gt;. The new AQM algorithms that support ECN has also been enabled.&lt;br /&gt;
&lt;br /&gt;
* '''Week 4 (June 22-28, 2025)'''&lt;br /&gt;
** Improved the robustness and usability of the evaluation workflow by addressing the suite’s external tool dependencies. The AQM Evaluation Suite currently relies on several system packages—including Python, GNUplot, and ImageMagick—for visualizing simulation results. However, missing packages would result in errors or incomplete runs. The suite now proactively checks for the presence of these dependencies at runtime: if any are missing, a warning is logged, and the test execution will be terminated.&lt;br /&gt;
** Refactored queue delay measurement logic by removing the redundant &amp;lt;code&amp;gt;EvalTimestampTag&amp;lt;/code&amp;gt; class. Now, queue delay calculations leverage the timestamp embedded in QueueDiscItem, streamlining the codebase and eliminating duplicate logic.&lt;br /&gt;
** Extracted output file/directory management from inline system calls (mkdir -p, string concatenation) into a dedicated OutputManager - This eliminates ~15 hardcoded mkdir calls, centralizes path resolution logic, implements proper file handle management, and decouples output structure from simulation logic through externalized configuration.&lt;br /&gt;
&lt;br /&gt;
* '''Week 5 (June 29-July 5, 2025)'''&lt;br /&gt;
** Migrated the AQM Evaluation Suite codebase to the [https://gitlab.com/nitk-surathkal/aqm-evaluation-suite repository] as a contrib module&lt;br /&gt;
** Updated all sources, scripts, and documentation to reflect the new repository structure and dependencies&lt;br /&gt;
** Prepared the suite for integration and packaging with the upcoming ns-allinone-3.45 release, including running compatibility tests and verifying example workflows and ensured out-of-the-box support for ns-allinone-3.45 distribution&lt;br /&gt;
** Cleaned up the commit history using interactive rebase to squash minor commits and applied a centralized commit message format consistent with ns-3 project practices&lt;br /&gt;
&lt;br /&gt;
* '''Week 6 (July 6-July 12, 2025)'''&lt;br /&gt;
** Refactored the contrib codebase repository for maintainability and internal review, checkpointing the first half milestone&lt;br /&gt;
** Enhanced compatibility for ImageMagick command invocation, supporting both &amp;lt;code&amp;gt;convert&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;magick&amp;lt;/code&amp;gt; commands&lt;br /&gt;
&lt;br /&gt;
= Resources =&lt;br /&gt;
&lt;br /&gt;
* AQM Evaluation Suite [[https://dl.acm.org/doi/abs/10.1145/3067665.3067674 Paper]] [[https://aqm-eval-suite.github.io/ Implementation]]&lt;br /&gt;
* [https://tools.ietf.org/html/rfc7928 RFC 7928]&lt;br /&gt;
* [https://www.nsnam.org/docs/models/html/traffic-control-layer.html Traffic Control Model in ns-3]&lt;/div&gt;</summary>
		<author><name>Davidzylin</name></author>
	</entry>
	<entry>
		<id>https://www.nsnam.org/mediawiki/index.php?title=GSOC2025AqmEvaluation&amp;diff=13605</id>
		<title>GSOC2025AqmEvaluation</title>
		<link rel="alternate" type="text/html" href="https://www.nsnam.org/mediawiki/index.php?title=GSOC2025AqmEvaluation&amp;diff=13605"/>
		<updated>2025-07-11T15:07:05Z</updated>

		<summary type="html">&lt;p&gt;Davidzylin: /* Weekly Updates */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TOC}}&lt;br /&gt;
&lt;br /&gt;
Back to [[Summer_Projects#Google_Summer_of_Code_2025 | GSoC 2025 projects]]&lt;br /&gt;
&lt;br /&gt;
= Project Overview =&lt;br /&gt;
&lt;br /&gt;
* '''Project Name:''' Upgrade the AQM Evaluation Suite for ns-3&lt;br /&gt;
* '''Student:''' David Lin&lt;br /&gt;
* '''Mentors:''' Mohit P. Tahiliani, Aniket Singh and Tom Henderson&lt;br /&gt;
* '''Google Page:''' [https://summerofcode.withgoogle.com/programs/2025/projects/d7sZPqy6 LINK]&lt;br /&gt;
* '''Project Proposal:''' [https://davidzylin.notion.site/Proposal-Upgrade-the-AQM-Evaluation-Suite-for-ns-3-1bbad0d7128d80be9d7df771f053491e?pvs=143 LINK]&lt;br /&gt;
* '''Project Goals:''' The AQM Evaluation Suite is an automated framework based on RFC 7928 that simplifies simulation setup, topology creation, traffic generation, execution, and results visualization of AQM algorithms in ns-3. Originally developed in 2017 and maintained until 2019, the suite now needs an upgrade to: (1) Migrate its build system from waf to CMake (2) Integrate support for state-of-the-art AQM algorithms and enhanced ECN functionalities (3) Update simulation examples to reflect modern traffic control models (4) Package and publish the suite on the ns-3 App Store&lt;br /&gt;
* '''Repository:''' [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev LINK]&lt;br /&gt;
* '''About Me:''' I'm a CS undergrad student at the University of Toronto. I've been deeply passionate about computer network and systems in general, it's my honour to work with such a wonderful community like ns-3!&lt;br /&gt;
&lt;br /&gt;
= Milestones =&lt;br /&gt;
&lt;br /&gt;
* CMake Migration&lt;br /&gt;
** Migrate the AQM Evaluation Suite’s build system from Waf to CMake&lt;br /&gt;
&lt;br /&gt;
* TCP &amp;amp; ECN Enhancements&lt;br /&gt;
** Upgrading the configuration defaults, including replacing TCP BIC with TCP Cubic in the evaluation suite. ECN support will be added by incorporating new tests and scenarios that utilize ECN signaling and feedback mechanisms. If other configuration defaults require updating, those changes will also be made.&lt;br /&gt;
&lt;br /&gt;
* Upgrade AQM Algorithms&lt;br /&gt;
** Support newer AQM algorithms. Parameter configurations will be added following RFC 7928 guidelines, and new scenarios will be implemented to demonstrate modern traffic control use cases.&lt;br /&gt;
&lt;br /&gt;
* Packaging&lt;br /&gt;
** The module will be prepared for submission to the ns-3 App Store or into the mainline, including compliance with metadata and technical requirements.&lt;br /&gt;
&lt;br /&gt;
= Weekly Updates =&lt;br /&gt;
&lt;br /&gt;
* '''Community Bonding Period (May 8-31, 2025)'''&lt;br /&gt;
** Migrated the existing AQM Evaluation Suite codebase from [https://github.com/aqm-eval-suite/ns-3-dev-git GitHub] to the new [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev GitLab] repository for centralized development.&lt;br /&gt;
** Conducted an in-depth analysis of the original AQM Evaluation Suite paper. Extracted key highlights and formulated a structured list of [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev/-/issues/1 action items] to align with recent advancements in ns-3.&lt;br /&gt;
** The original aqm-eval-suite was based on ns-3.30, and during the migration process, I identified an issue in the AggressiveSender scenario starting from ns-3.41, where aggressive TCP variants (BIC, HighSpeed, YeAH) no longer matched prior results (for more detailed comparisons, please see [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev/-/issues/6 #6]). Comparing with the examples from tcp-cubit, I discovered enabling pacing through &amp;lt;code&amp;gt;Config::SetDefault(&amp;quot;ns3::TcpSocketState::EnablePacing&amp;quot;, BooleanValue(true));&amp;lt;/code&amp;gt; restores expected behaviour and notably, NewReno remains unaffected.&lt;br /&gt;
&lt;br /&gt;
* '''Week 1 (June 1-7, 2025)'''&lt;br /&gt;
&lt;br /&gt;
** ns-3 has transitioned from Waf to CMake as the primary build system, but the AQM evaluation suite still uses Waf configuration. I've migrated the existing build system from Waf to CMake for compatibility with latest version of ns-3 ([https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev/-/merge_requests/1 Changes]). Ensured successful compilation across supported platforms and passed all tests.&lt;br /&gt;
** The original paper for AQM Evaluation Suite uses TCP BIC for the aggressive sender as TCP CUBIC wasn't implemented in ns-3; However, TCP CUBIC is now supported in ns-3. I've added support for TCP CUBIC in the AQM Evaluation Suite and replaced TCP BIC with TCP CUBIC for default aggressive congestion control in the examples. This addressed the limitation of the paper and aligns with the requirements from RFC 7928;&lt;br /&gt;
** The original paper for AQM Evaluation Suite states &amp;quot;TCP NewReno is the default congestion control in ns-3&amp;quot; but latest ns-3 uses CUBIC as default. I've investigated and validated ([https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev/-/work_items/4 #4]) that TCP NewReno is indeed explicitly configured to eliminate surprises due to version upgrades as latest ns-3 uses CUBIC as default.&lt;br /&gt;
&lt;br /&gt;
* '''Week 2 (June 8-14, 2025)'''&lt;br /&gt;
** The original paper for AQM Evaluation Suite had the limitation that ECN support was under development, whereas now ns-3 has ECN support available. I've evaluated ECN support for AQM algorithms as outlined in RFC 7928 §4.5, and I've implemented the changes such that ECN was activated both at the queue level (e.g., for RED) and at the TCP sender level, based on ns-3 documentation and examples. For supported scenarios, ECN can be enabled through the &amp;lt;code&amp;gt;--ecn=true&amp;lt;/code&amp;gt; flag. Results confirm that ECN configurations are taking effect, as the queue delay v.s. good-put shows that the algorithms that support ECN have values more concentrated around the mean, resulting in a smaller ellipsoid. This indicates a reduction in variance and a tighter Gaussian distribution, with the data clustering more closely around the center, which is the effect of ECN. Pfifo remains identical as the algorithm doesn't support ECN. For the comparisons, please see [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev/-/merge_requests/4 !4].&lt;br /&gt;
&lt;br /&gt;
* '''Week 3 (June 15-21, 2025)'''&lt;br /&gt;
** Originally, the AQM Evaluation Suite saves each run under the &amp;lt;code&amp;gt;aqm-eval-output&amp;lt;/code&amp;gt; folder, and each run will be overwritten by the subsequent runs. I've redesigned the behaviour so that each run will be saved separately, each run will create the &amp;lt;code&amp;gt;aqm-eval-output/{timestamp}&amp;lt;/code&amp;gt; folder, and will also have a &amp;lt;code&amp;gt;run_config.json&amp;lt;/code&amp;gt; file to record the configuration of each run.&lt;br /&gt;
** After the paper has been published, there were additional AQM algorithms that are implemented in ns-3, they are &amp;lt;code&amp;gt;ns3::CobaltQueueDisc&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ns3::FqCobaltQueueDisc&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ns3::FqCoDelQueueDisc&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ns3::FqPieQueueDisc&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ns3::TbfQueueDisc&amp;lt;/code&amp;gt;. The new AQM algorithms that support ECN has also been enabled.&lt;br /&gt;
&lt;br /&gt;
* '''Week 4 (June 22-28, 2025)'''&lt;br /&gt;
** Improved the robustness and usability of the evaluation workflow by addressing the suite’s external tool dependencies. The AQM Evaluation Suite currently relies on several system packages—including Python, GNUplot, and ImageMagick—for visualizing simulation results. However, missing packages would result in errors or incomplete runs. The suite now proactively checks for the presence of these dependencies at runtime: if any are missing, a warning is logged, and the test execution will be terminated.&lt;br /&gt;
** Refactored queue delay measurement logic by removing the redundant &amp;lt;code&amp;gt;EvalTimestampTag&amp;lt;/code&amp;gt; class. Now, queue delay calculations leverage the timestamp embedded in QueueDiscItem, streamlining the codebase and eliminating duplicate logic.&lt;br /&gt;
** Extracted output file/directory management from inline system calls (mkdir -p, string concatenation) into a dedicated OutputManager - This eliminates ~15 hardcoded mkdir calls, centralizes path resolution logic, implements proper file handle management, and decouples output structure from simulation logic through externalized configuration.&lt;br /&gt;
&lt;br /&gt;
* '''Week 5 (June 29-July 5, 2025)'''&lt;br /&gt;
** Migrated the AQM Evaluation Suite codebase to the [https://gitlab.com/nitk-surathkal/aqm-evaluation-suite repository] as a contrib module&lt;br /&gt;
** Updated all sources, scripts, and documentation to reflect the new repository structure and dependencies&lt;br /&gt;
** Prepared the suite for integration and packaging with the upcoming ns-allinone-3.45 release, including running compatibility tests and verifying example workflows and ensured out-of-the-box support for ns-allinone-3.45 distribution&lt;br /&gt;
** Cleaned up the commit history using interactive rebase to squash minor commits and applied a centralized commit message format consistent with ns-3 project practices&lt;br /&gt;
&lt;br /&gt;
* '''Week 6 (July 6-July 12, 2025)'''&lt;br /&gt;
&lt;br /&gt;
= Resources =&lt;br /&gt;
&lt;br /&gt;
* AQM Evaluation Suite [[https://dl.acm.org/doi/abs/10.1145/3067665.3067674 Paper]] [[https://aqm-eval-suite.github.io/ Implementation]]&lt;br /&gt;
* [https://tools.ietf.org/html/rfc7928 RFC 7928]&lt;br /&gt;
* [https://www.nsnam.org/docs/models/html/traffic-control-layer.html Traffic Control Model in ns-3]&lt;/div&gt;</summary>
		<author><name>Davidzylin</name></author>
	</entry>
	<entry>
		<id>https://www.nsnam.org/mediawiki/index.php?title=GSOC2025AqmEvaluation&amp;diff=13596</id>
		<title>GSOC2025AqmEvaluation</title>
		<link rel="alternate" type="text/html" href="https://www.nsnam.org/mediawiki/index.php?title=GSOC2025AqmEvaluation&amp;diff=13596"/>
		<updated>2025-07-06T05:15:54Z</updated>

		<summary type="html">&lt;p&gt;Davidzylin: /* Weekly Updates */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TOC}}&lt;br /&gt;
&lt;br /&gt;
Back to [[Summer_Projects#Google_Summer_of_Code_2025 | GSoC 2025 projects]]&lt;br /&gt;
&lt;br /&gt;
= Project Overview =&lt;br /&gt;
&lt;br /&gt;
* '''Project Name:''' Upgrade the AQM Evaluation Suite for ns-3&lt;br /&gt;
* '''Student:''' David Lin&lt;br /&gt;
* '''Mentors:''' Mohit P. Tahiliani, Aniket Singh and Tom Henderson&lt;br /&gt;
* '''Google Page:''' [https://summerofcode.withgoogle.com/programs/2025/projects/d7sZPqy6 LINK]&lt;br /&gt;
* '''Project Proposal:''' [https://davidzylin.notion.site/Proposal-Upgrade-the-AQM-Evaluation-Suite-for-ns-3-1bbad0d7128d80be9d7df771f053491e?pvs=143 LINK]&lt;br /&gt;
* '''Project Goals:''' The AQM Evaluation Suite is an automated framework based on RFC 7928 that simplifies simulation setup, topology creation, traffic generation, execution, and results visualization of AQM algorithms in ns-3. Originally developed in 2017 and maintained until 2019, the suite now needs an upgrade to: (1) Migrate its build system from waf to CMake (2) Integrate support for state-of-the-art AQM algorithms and enhanced ECN functionalities (3) Update simulation examples to reflect modern traffic control models (4) Package and publish the suite on the ns-3 App Store&lt;br /&gt;
* '''Repository:''' [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev LINK]&lt;br /&gt;
* '''About Me:''' I'm a CS undergrad student at the University of Toronto. I've been deeply passionate about computer network and systems in general, it's my honour to work with such a wonderful community like ns-3!&lt;br /&gt;
&lt;br /&gt;
= Milestones =&lt;br /&gt;
&lt;br /&gt;
* CMake Migration&lt;br /&gt;
** Migrate the AQM Evaluation Suite’s build system from Waf to CMake&lt;br /&gt;
&lt;br /&gt;
* TCP &amp;amp; ECN Enhancements&lt;br /&gt;
** Upgrading the configuration defaults, including replacing TCP BIC with TCP Cubic in the evaluation suite. ECN support will be added by incorporating new tests and scenarios that utilize ECN signaling and feedback mechanisms. If other configuration defaults require updating, those changes will also be made.&lt;br /&gt;
&lt;br /&gt;
* Upgrade AQM Algorithms&lt;br /&gt;
** Support newer AQM algorithms. Parameter configurations will be added following RFC 7928 guidelines, and new scenarios will be implemented to demonstrate modern traffic control use cases.&lt;br /&gt;
&lt;br /&gt;
* Packaging&lt;br /&gt;
** The module will be prepared for submission to the ns-3 App Store or into the mainline, including compliance with metadata and technical requirements.&lt;br /&gt;
&lt;br /&gt;
= Weekly Updates =&lt;br /&gt;
&lt;br /&gt;
* '''Community Bonding Period (May 8-31, 2025)'''&lt;br /&gt;
** Migrated the existing AQM Evaluation Suite codebase from [https://github.com/aqm-eval-suite/ns-3-dev-git GitHub] to the new [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev GitLab] repository for centralized development.&lt;br /&gt;
** Conducted an in-depth analysis of the original AQM Evaluation Suite paper. Extracted key highlights and formulated a structured list of [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev/-/issues/1 action items] to align with recent advancements in ns-3.&lt;br /&gt;
** The original aqm-eval-suite was based on ns-3.30, and during the migration process, I identified an issue in the AggressiveSender scenario starting from ns-3.41, where aggressive TCP variants (BIC, HighSpeed, YeAH) no longer matched prior results (for more detailed comparisons, please see [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev/-/issues/6 #6]). Comparing with the examples from tcp-cubit, I discovered enabling pacing through &amp;lt;code&amp;gt;Config::SetDefault(&amp;quot;ns3::TcpSocketState::EnablePacing&amp;quot;, BooleanValue(true));&amp;lt;/code&amp;gt; restores expected behaviour and notably, NewReno remains unaffected.&lt;br /&gt;
&lt;br /&gt;
* '''Week 1 (June 1-7, 2025)'''&lt;br /&gt;
&lt;br /&gt;
** ns-3 has transitioned from Waf to CMake as the primary build system, but the AQM evaluation suite still uses Waf configuration. I've migrated the existing build system from Waf to CMake for compatibility with latest version of ns-3 ([https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev/-/merge_requests/1 Changes]). Ensured successful compilation across supported platforms and passed all tests.&lt;br /&gt;
** The original paper for AQM Evaluation Suite uses TCP BIC for the aggressive sender as TCP CUBIC wasn't implemented in ns-3; However, TCP CUBIC is now supported in ns-3. I've added support for TCP CUBIC in the AQM Evaluation Suite and replaced TCP BIC with TCP CUBIC for default aggressive congestion control in the examples. This addressed the limitation of the paper and aligns with the requirements from RFC 7928;&lt;br /&gt;
** The original paper for AQM Evaluation Suite states &amp;quot;TCP NewReno is the default congestion control in ns-3&amp;quot; but latest ns-3 uses CUBIC as default. I've investigated and validated ([https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev/-/work_items/4 #4]) that TCP NewReno is indeed explicitly configured to eliminate surprises due to version upgrades as latest ns-3 uses CUBIC as default.&lt;br /&gt;
&lt;br /&gt;
* '''Week 2 (June 8-14, 2025)'''&lt;br /&gt;
** The original paper for AQM Evaluation Suite had the limitation that ECN support was under development, whereas now ns-3 has ECN support available. I've evaluated ECN support for AQM algorithms as outlined in RFC 7928 §4.5, and I've implemented the changes such that ECN was activated both at the queue level (e.g., for RED) and at the TCP sender level, based on ns-3 documentation and examples. For supported scenarios, ECN can be enabled through the &amp;lt;code&amp;gt;--ecn=true&amp;lt;/code&amp;gt; flag. Results confirm that ECN configurations are taking effect, as the queue delay v.s. good-put shows that the algorithms that support ECN have values more concentrated around the mean, resulting in a smaller ellipsoid. This indicates a reduction in variance and a tighter Gaussian distribution, with the data clustering more closely around the center, which is the effect of ECN. Pfifo remains identical as the algorithm doesn't support ECN. For the comparisons, please see [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev/-/merge_requests/4 !4].&lt;br /&gt;
&lt;br /&gt;
* '''Week 3 (June 15-21, 2025)'''&lt;br /&gt;
** Originally, the AQM Evaluation Suite saves each run under the &amp;lt;code&amp;gt;aqm-eval-output&amp;lt;/code&amp;gt; folder, and each run will be overwritten by the subsequent runs. I've redesigned the behaviour so that each run will be saved separately, each run will create the &amp;lt;code&amp;gt;aqm-eval-output/{timestamp}&amp;lt;/code&amp;gt; folder, and will also have a &amp;lt;code&amp;gt;run_config.json&amp;lt;/code&amp;gt; file to record the configuration of each run.&lt;br /&gt;
** After the paper has been published, there were additional AQM algorithms that are implemented in ns-3, they are &amp;lt;code&amp;gt;ns3::CobaltQueueDisc&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ns3::FqCobaltQueueDisc&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ns3::FqCoDelQueueDisc&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ns3::FqPieQueueDisc&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ns3::TbfQueueDisc&amp;lt;/code&amp;gt;. The new AQM algorithms that support ECN has also been enabled.&lt;br /&gt;
&lt;br /&gt;
* '''Week 4 (June 22-28, 2025)'''&lt;br /&gt;
** Improved the robustness and usability of the evaluation workflow by addressing the suite’s external tool dependencies. The AQM Evaluation Suite currently relies on several system packages—including Python, GNUplot, and ImageMagick—for visualizing simulation results. However, missing packages would result in errors or incomplete runs. The suite now proactively checks for the presence of these dependencies at runtime: if any are missing, a warning is logged, and the test execution will be terminated.&lt;br /&gt;
** Refactored queue delay measurement logic by removing the redundant &amp;lt;code&amp;gt;EvalTimestampTag&amp;lt;/code&amp;gt; class. Now, queue delay calculations leverage the timestamp embedded in QueueDiscItem, streamlining the codebase and eliminating duplicate logic.&lt;br /&gt;
** Extracted output file/directory management from inline system calls (mkdir -p, string concatenation) into a dedicated OutputManager - This eliminates ~15 hardcoded mkdir calls, centralizes path resolution logic, implements proper file handle management, and decouples output structure from simulation logic through externalized configuration.&lt;br /&gt;
&lt;br /&gt;
* '''Week 5 (June 29-July 5, 2025)'''&lt;br /&gt;
** Migrated the AQM Evaluation Suite codebase to the [https://gitlab.com/nitk-surathkal/aqm-evaluation-suite repository] as a contrib module&lt;br /&gt;
** Updated all sources, scripts, and documentation to reflect the new repository structure and dependencies&lt;br /&gt;
** Prepared the suite for integration and packaging with the upcoming ns-allinone-3.45 release, including running compatibility tests and verifying example workflows and ensured out-of-the-box support for ns-allinone-3.45 distribution&lt;br /&gt;
** Cleaned up the commit history using interactive rebase to squash minor commits and applied a centralized commit message format consistent with ns-3 project practices&lt;br /&gt;
&lt;br /&gt;
= Resources =&lt;br /&gt;
&lt;br /&gt;
* AQM Evaluation Suite [[https://dl.acm.org/doi/abs/10.1145/3067665.3067674 Paper]] [[https://aqm-eval-suite.github.io/ Implementation]]&lt;br /&gt;
* [https://tools.ietf.org/html/rfc7928 RFC 7928]&lt;br /&gt;
* [https://www.nsnam.org/docs/models/html/traffic-control-layer.html Traffic Control Model in ns-3]&lt;/div&gt;</summary>
		<author><name>Davidzylin</name></author>
	</entry>
	<entry>
		<id>https://www.nsnam.org/mediawiki/index.php?title=GSOC2025AqmEvaluation&amp;diff=13595</id>
		<title>GSOC2025AqmEvaluation</title>
		<link rel="alternate" type="text/html" href="https://www.nsnam.org/mediawiki/index.php?title=GSOC2025AqmEvaluation&amp;diff=13595"/>
		<updated>2025-07-06T05:14:30Z</updated>

		<summary type="html">&lt;p&gt;Davidzylin: /* Weekly Updates */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TOC}}&lt;br /&gt;
&lt;br /&gt;
Back to [[Summer_Projects#Google_Summer_of_Code_2025 | GSoC 2025 projects]]&lt;br /&gt;
&lt;br /&gt;
= Project Overview =&lt;br /&gt;
&lt;br /&gt;
* '''Project Name:''' Upgrade the AQM Evaluation Suite for ns-3&lt;br /&gt;
* '''Student:''' David Lin&lt;br /&gt;
* '''Mentors:''' Mohit P. Tahiliani, Aniket Singh and Tom Henderson&lt;br /&gt;
* '''Google Page:''' [https://summerofcode.withgoogle.com/programs/2025/projects/d7sZPqy6 LINK]&lt;br /&gt;
* '''Project Proposal:''' [https://davidzylin.notion.site/Proposal-Upgrade-the-AQM-Evaluation-Suite-for-ns-3-1bbad0d7128d80be9d7df771f053491e?pvs=143 LINK]&lt;br /&gt;
* '''Project Goals:''' The AQM Evaluation Suite is an automated framework based on RFC 7928 that simplifies simulation setup, topology creation, traffic generation, execution, and results visualization of AQM algorithms in ns-3. Originally developed in 2017 and maintained until 2019, the suite now needs an upgrade to: (1) Migrate its build system from waf to CMake (2) Integrate support for state-of-the-art AQM algorithms and enhanced ECN functionalities (3) Update simulation examples to reflect modern traffic control models (4) Package and publish the suite on the ns-3 App Store&lt;br /&gt;
* '''Repository:''' [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev LINK]&lt;br /&gt;
* '''About Me:''' I'm a CS undergrad student at the University of Toronto. I've been deeply passionate about computer network and systems in general, it's my honour to work with such a wonderful community like ns-3!&lt;br /&gt;
&lt;br /&gt;
= Milestones =&lt;br /&gt;
&lt;br /&gt;
* CMake Migration&lt;br /&gt;
** Migrate the AQM Evaluation Suite’s build system from Waf to CMake&lt;br /&gt;
&lt;br /&gt;
* TCP &amp;amp; ECN Enhancements&lt;br /&gt;
** Upgrading the configuration defaults, including replacing TCP BIC with TCP Cubic in the evaluation suite. ECN support will be added by incorporating new tests and scenarios that utilize ECN signaling and feedback mechanisms. If other configuration defaults require updating, those changes will also be made.&lt;br /&gt;
&lt;br /&gt;
* Upgrade AQM Algorithms&lt;br /&gt;
** Support newer AQM algorithms. Parameter configurations will be added following RFC 7928 guidelines, and new scenarios will be implemented to demonstrate modern traffic control use cases.&lt;br /&gt;
&lt;br /&gt;
* Packaging&lt;br /&gt;
** The module will be prepared for submission to the ns-3 App Store or into the mainline, including compliance with metadata and technical requirements.&lt;br /&gt;
&lt;br /&gt;
= Weekly Updates =&lt;br /&gt;
&lt;br /&gt;
* '''Community Bonding Period (May 8-31, 2025)'''&lt;br /&gt;
** Migrated the existing AQM Evaluation Suite codebase from [https://github.com/aqm-eval-suite/ns-3-dev-git GitHub] to the new [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev GitLab] repository for centralized development.&lt;br /&gt;
** Conducted an in-depth analysis of the original AQM Evaluation Suite paper. Extracted key highlights and formulated a structured list of [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev/-/issues/1 action items] to align with recent advancements in ns-3.&lt;br /&gt;
** The original aqm-eval-suite was based on ns-3.30, and during the migration process, I identified an issue in the AggressiveSender scenario starting from ns-3.41, where aggressive TCP variants (BIC, HighSpeed, YeAH) no longer matched prior results (for more detailed comparisons, please see [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev/-/issues/6 #6]). Comparing with the examples from tcp-cubit, I discovered enabling pacing through &amp;lt;code&amp;gt;Config::SetDefault(&amp;quot;ns3::TcpSocketState::EnablePacing&amp;quot;, BooleanValue(true));&amp;lt;/code&amp;gt; restores expected behaviour and notably, NewReno remains unaffected.&lt;br /&gt;
&lt;br /&gt;
* '''Week 1 (June 1-7, 2025)'''&lt;br /&gt;
&lt;br /&gt;
** ns-3 has transitioned from Waf to CMake as the primary build system, but the AQM evaluation suite still uses Waf configuration. I've migrated the existing build system from Waf to CMake for compatibility with latest version of ns-3 ([https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev/-/merge_requests/1 Changes]). Ensured successful compilation across supported platforms and passed all tests.&lt;br /&gt;
** The original paper for AQM Evaluation Suite uses TCP BIC for the aggressive sender as TCP CUBIC wasn't implemented in ns-3; However, TCP CUBIC is now supported in ns-3. I've added support for TCP CUBIC in the AQM Evaluation Suite and replaced TCP BIC with TCP CUBIC for default aggressive congestion control in the examples. This addressed the limitation of the paper and aligns with the requirements from RFC 7928;&lt;br /&gt;
** The original paper for AQM Evaluation Suite states &amp;quot;TCP NewReno is the default congestion control in ns-3&amp;quot; but latest ns-3 uses CUBIC as default. I've investigated and validated ([https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev/-/work_items/4 #4]) that TCP NewReno is indeed explicitly configured to eliminate surprises due to version upgrades as latest ns-3 uses CUBIC as default.&lt;br /&gt;
&lt;br /&gt;
* '''Week 2 (June 8-14, 2025)'''&lt;br /&gt;
** The original paper for AQM Evaluation Suite had the limitation that ECN support was under development, whereas now ns-3 has ECN support available. I've evaluated ECN support for AQM algorithms as outlined in RFC 7928 §4.5, and I've implemented the changes such that ECN was activated both at the queue level (e.g., for RED) and at the TCP sender level, based on ns-3 documentation and examples. For supported scenarios, ECN can be enabled through the &amp;lt;code&amp;gt;--ecn=true&amp;lt;/code&amp;gt; flag. Results confirm that ECN configurations are taking effect, as the queue delay v.s. good-put shows that the algorithms that support ECN have values more concentrated around the mean, resulting in a smaller ellipsoid. This indicates a reduction in variance and a tighter Gaussian distribution, with the data clustering more closely around the center, which is the effect of ECN. Pfifo remains identical as the algorithm doesn't support ECN. For the comparisons, please see [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev/-/merge_requests/4 !4].&lt;br /&gt;
&lt;br /&gt;
* '''Week 3 (June 15-21, 2025)'''&lt;br /&gt;
** Originally, the AQM Evaluation Suite saves each run under the &amp;lt;code&amp;gt;aqm-eval-output&amp;lt;/code&amp;gt; folder, and each run will be overwritten by the subsequent runs. I've redesigned the behaviour so that each run will be saved separately, each run will create the &amp;lt;code&amp;gt;aqm-eval-output/{timestamp}&amp;lt;/code&amp;gt; folder, and will also have a &amp;lt;code&amp;gt;run_config.json&amp;lt;/code&amp;gt; file to record the configuration of each run.&lt;br /&gt;
** After the paper has been published, there were additional AQM algorithms that are implemented in ns-3, they are &amp;lt;code&amp;gt;ns3::CobaltQueueDisc&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ns3::FqCobaltQueueDisc&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ns3::FqCoDelQueueDisc&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ns3::FqPieQueueDisc&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ns3::TbfQueueDisc&amp;lt;/code&amp;gt;. The new AQM algorithms that support ECN has also been enabled.&lt;br /&gt;
&lt;br /&gt;
* '''Week 4 (June 22-28, 2025)'''&lt;br /&gt;
** Improved the robustness and usability of the evaluation workflow by addressing the suite’s external tool dependencies. The AQM Evaluation Suite currently relies on several system packages—including Python, GNUplot, and ImageMagick—for visualizing simulation results. However, missing packages would result in errors or incomplete runs. The suite now proactively checks for the presence of these dependencies at runtime: if any are missing, a warning is logged, and the test execution will be terminated.&lt;br /&gt;
** Refactored queue delay measurement logic by removing the redundant &amp;lt;code&amp;gt;EvalTimestampTag&amp;lt;/code&amp;gt; class. Now, queue delay calculations leverage the timestamp embedded in QueueDiscItem, streamlining the codebase and eliminating duplicate logic.&lt;br /&gt;
** Extracted output file/directory management from inline system calls (mkdir -p, string concatenation) into a dedicated OutputManager - This eliminates ~15 hardcoded mkdir calls, centralizes path resolution logic, implements proper file handle management, and decouples output structure from simulation logic through externalized configuration.&lt;br /&gt;
&lt;br /&gt;
* '''Week 5 (June 29-July 5, 2025)'''&lt;br /&gt;
** Migrated the AQM Evaluation Suite codebase to the [https://gitlab.com/nitk-surathkal/aqm-evaluation-suite repository] as a contrib module&lt;br /&gt;
** Updated all sources, scripts, and documentation to reflect the new repository structure and dependencies&lt;br /&gt;
** Prepared the suite for integration and packaging with the upcoming ns-allinone-3.45 release, including running compatibility tests and verifying example workflows and ensured out-of-the-box support for ns-allinone-3.45 distribution&lt;br /&gt;
&lt;br /&gt;
= Resources =&lt;br /&gt;
&lt;br /&gt;
* AQM Evaluation Suite [[https://dl.acm.org/doi/abs/10.1145/3067665.3067674 Paper]] [[https://aqm-eval-suite.github.io/ Implementation]]&lt;br /&gt;
* [https://tools.ietf.org/html/rfc7928 RFC 7928]&lt;br /&gt;
* [https://www.nsnam.org/docs/models/html/traffic-control-layer.html Traffic Control Model in ns-3]&lt;/div&gt;</summary>
		<author><name>Davidzylin</name></author>
	</entry>
	<entry>
		<id>https://www.nsnam.org/mediawiki/index.php?title=GSOC2025AqmEvaluation&amp;diff=13594</id>
		<title>GSOC2025AqmEvaluation</title>
		<link rel="alternate" type="text/html" href="https://www.nsnam.org/mediawiki/index.php?title=GSOC2025AqmEvaluation&amp;diff=13594"/>
		<updated>2025-07-06T05:11:58Z</updated>

		<summary type="html">&lt;p&gt;Davidzylin: /* Weekly Updates */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TOC}}&lt;br /&gt;
&lt;br /&gt;
Back to [[Summer_Projects#Google_Summer_of_Code_2025 | GSoC 2025 projects]]&lt;br /&gt;
&lt;br /&gt;
= Project Overview =&lt;br /&gt;
&lt;br /&gt;
* '''Project Name:''' Upgrade the AQM Evaluation Suite for ns-3&lt;br /&gt;
* '''Student:''' David Lin&lt;br /&gt;
* '''Mentors:''' Mohit P. Tahiliani, Aniket Singh and Tom Henderson&lt;br /&gt;
* '''Google Page:''' [https://summerofcode.withgoogle.com/programs/2025/projects/d7sZPqy6 LINK]&lt;br /&gt;
* '''Project Proposal:''' [https://davidzylin.notion.site/Proposal-Upgrade-the-AQM-Evaluation-Suite-for-ns-3-1bbad0d7128d80be9d7df771f053491e?pvs=143 LINK]&lt;br /&gt;
* '''Project Goals:''' The AQM Evaluation Suite is an automated framework based on RFC 7928 that simplifies simulation setup, topology creation, traffic generation, execution, and results visualization of AQM algorithms in ns-3. Originally developed in 2017 and maintained until 2019, the suite now needs an upgrade to: (1) Migrate its build system from waf to CMake (2) Integrate support for state-of-the-art AQM algorithms and enhanced ECN functionalities (3) Update simulation examples to reflect modern traffic control models (4) Package and publish the suite on the ns-3 App Store&lt;br /&gt;
* '''Repository:''' [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev LINK]&lt;br /&gt;
* '''About Me:''' I'm a CS undergrad student at the University of Toronto. I've been deeply passionate about computer network and systems in general, it's my honour to work with such a wonderful community like ns-3!&lt;br /&gt;
&lt;br /&gt;
= Milestones =&lt;br /&gt;
&lt;br /&gt;
* CMake Migration&lt;br /&gt;
** Migrate the AQM Evaluation Suite’s build system from Waf to CMake&lt;br /&gt;
&lt;br /&gt;
* TCP &amp;amp; ECN Enhancements&lt;br /&gt;
** Upgrading the configuration defaults, including replacing TCP BIC with TCP Cubic in the evaluation suite. ECN support will be added by incorporating new tests and scenarios that utilize ECN signaling and feedback mechanisms. If other configuration defaults require updating, those changes will also be made.&lt;br /&gt;
&lt;br /&gt;
* Upgrade AQM Algorithms&lt;br /&gt;
** Support newer AQM algorithms. Parameter configurations will be added following RFC 7928 guidelines, and new scenarios will be implemented to demonstrate modern traffic control use cases.&lt;br /&gt;
&lt;br /&gt;
* Packaging&lt;br /&gt;
** The module will be prepared for submission to the ns-3 App Store or into the mainline, including compliance with metadata and technical requirements.&lt;br /&gt;
&lt;br /&gt;
= Weekly Updates =&lt;br /&gt;
&lt;br /&gt;
* '''Community Bonding Period (May 8-31, 2025)'''&lt;br /&gt;
** Migrated the existing AQM Evaluation Suite codebase from [https://github.com/aqm-eval-suite/ns-3-dev-git GitHub] to the new [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev GitLab] repository for centralized development.&lt;br /&gt;
** Conducted an in-depth analysis of the original AQM Evaluation Suite paper. Extracted key highlights and formulated a structured list of [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev/-/issues/1 action items] to align with recent advancements in ns-3.&lt;br /&gt;
** The original aqm-eval-suite was based on ns-3.30, and during the migration process, I identified an issue in the AggressiveSender scenario starting from ns-3.41, where aggressive TCP variants (BIC, HighSpeed, YeAH) no longer matched prior results (for more detailed comparisons, please see [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev/-/issues/6 #6]). Comparing with the examples from tcp-cubit, I discovered enabling pacing through &amp;lt;code&amp;gt;Config::SetDefault(&amp;quot;ns3::TcpSocketState::EnablePacing&amp;quot;, BooleanValue(true));&amp;lt;/code&amp;gt; restores expected behaviour and notably, NewReno remains unaffected.&lt;br /&gt;
&lt;br /&gt;
* '''Week 1 (June 1-7, 2025)'''&lt;br /&gt;
&lt;br /&gt;
** ns-3 has transitioned from Waf to CMake as the primary build system, but the AQM evaluation suite still uses Waf configuration. I've migrated the existing build system from Waf to CMake for compatibility with latest version of ns-3 ([https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev/-/merge_requests/1 Changes]). Ensured successful compilation across supported platforms and passed all tests.&lt;br /&gt;
** The original paper for AQM Evaluation Suite uses TCP BIC for the aggressive sender as TCP CUBIC wasn't implemented in ns-3; However, TCP CUBIC is now supported in ns-3. I've added support for TCP CUBIC in the AQM Evaluation Suite and replaced TCP BIC with TCP CUBIC for default aggressive congestion control in the examples. This addressed the limitation of the paper and aligns with the requirements from RFC 7928;&lt;br /&gt;
** The original paper for AQM Evaluation Suite states &amp;quot;TCP NewReno is the default congestion control in ns-3&amp;quot; but latest ns-3 uses CUBIC as default. I've investigated and validated ([https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev/-/work_items/4 #4]) that TCP NewReno is indeed explicitly configured to eliminate surprises due to version upgrades as latest ns-3 uses CUBIC as default.&lt;br /&gt;
&lt;br /&gt;
* '''Week 2 (June 8-14, 2025)'''&lt;br /&gt;
** The original paper for AQM Evaluation Suite had the limitation that ECN support was under development, whereas now ns-3 has ECN support available. I've evaluated ECN support for AQM algorithms as outlined in RFC 7928 §4.5, and I've implemented the changes such that ECN was activated both at the queue level (e.g., for RED) and at the TCP sender level, based on ns-3 documentation and examples. For supported scenarios, ECN can be enabled through the &amp;lt;code&amp;gt;--ecn=true&amp;lt;/code&amp;gt; flag. Results confirm that ECN configurations are taking effect, as the queue delay v.s. good-put shows that the algorithms that support ECN have values more concentrated around the mean, resulting in a smaller ellipsoid. This indicates a reduction in variance and a tighter Gaussian distribution, with the data clustering more closely around the center, which is the effect of ECN. Pfifo remains identical as the algorithm doesn't support ECN. For the comparisons, please see [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev/-/merge_requests/4 !4].&lt;br /&gt;
&lt;br /&gt;
* '''Week 3 (June 15-21, 2025)'''&lt;br /&gt;
** Originally, the AQM Evaluation Suite saves each run under the &amp;lt;code&amp;gt;aqm-eval-output&amp;lt;/code&amp;gt; folder, and each run will be overwritten by the subsequent runs. I've redesigned the behaviour so that each run will be saved separately, each run will create the &amp;lt;code&amp;gt;aqm-eval-output/{timestamp}&amp;lt;/code&amp;gt; folder, and will also have a &amp;lt;code&amp;gt;run_config.json&amp;lt;/code&amp;gt; file to record the configuration of each run.&lt;br /&gt;
** After the paper has been published, there were additional AQM algorithms that are implemented in ns-3, they are &amp;lt;code&amp;gt;ns3::CobaltQueueDisc&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ns3::FqCobaltQueueDisc&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ns3::FqCoDelQueueDisc&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ns3::FqPieQueueDisc&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ns3::TbfQueueDisc&amp;lt;/code&amp;gt;. The new AQM algorithms that support ECN has also been enabled.&lt;br /&gt;
&lt;br /&gt;
* '''Week 4 (June 22-28, 2025)'''&lt;br /&gt;
** Improved the robustness and usability of the evaluation workflow by addressing the suite’s external tool dependencies. The AQM Evaluation Suite currently relies on several system packages—including Python, GNUplot, and ImageMagick—for visualizing simulation results. However, missing packages would result in errors or incomplete runs. The suite now proactively checks for the presence of these dependencies at runtime: if any are missing, a warning is logged, and the test execution will be terminated.&lt;br /&gt;
** Refactored queue delay measurement logic by removing the redundant &amp;lt;code&amp;gt;EvalTimestampTag&amp;lt;/code&amp;gt; class. Now, queue delay calculations leverage the timestamp embedded in QueueDiscItem, streamlining the codebase and eliminating duplicate logic.&lt;br /&gt;
** Extracted output file/directory management from inline system calls (mkdir -p, string concatenation) into a dedicated OutputManager - This eliminates ~15 hardcoded mkdir calls, centralizes path resolution logic, implements proper file handle management, and decouples output structure from simulation logic through externalized configuration.&lt;br /&gt;
&lt;br /&gt;
* '''Week 5 (June 29-July 5, 2025)'''&lt;br /&gt;
&lt;br /&gt;
= Resources =&lt;br /&gt;
&lt;br /&gt;
* AQM Evaluation Suite [[https://dl.acm.org/doi/abs/10.1145/3067665.3067674 Paper]] [[https://aqm-eval-suite.github.io/ Implementation]]&lt;br /&gt;
* [https://tools.ietf.org/html/rfc7928 RFC 7928]&lt;br /&gt;
* [https://www.nsnam.org/docs/models/html/traffic-control-layer.html Traffic Control Model in ns-3]&lt;/div&gt;</summary>
		<author><name>Davidzylin</name></author>
	</entry>
	<entry>
		<id>https://www.nsnam.org/mediawiki/index.php?title=GSOC2025AqmEvaluation&amp;diff=13588</id>
		<title>GSOC2025AqmEvaluation</title>
		<link rel="alternate" type="text/html" href="https://www.nsnam.org/mediawiki/index.php?title=GSOC2025AqmEvaluation&amp;diff=13588"/>
		<updated>2025-07-04T02:58:13Z</updated>

		<summary type="html">&lt;p&gt;Davidzylin: /* Weekly Updates */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TOC}}&lt;br /&gt;
&lt;br /&gt;
Back to [[Summer_Projects#Google_Summer_of_Code_2025 | GSoC 2025 projects]]&lt;br /&gt;
&lt;br /&gt;
= Project Overview =&lt;br /&gt;
&lt;br /&gt;
* '''Project Name:''' Upgrade the AQM Evaluation Suite for ns-3&lt;br /&gt;
* '''Student:''' David Lin&lt;br /&gt;
* '''Mentors:''' Mohit P. Tahiliani, Aniket Singh and Tom Henderson&lt;br /&gt;
* '''Google Page:''' [https://summerofcode.withgoogle.com/programs/2025/projects/d7sZPqy6 LINK]&lt;br /&gt;
* '''Project Proposal:''' [https://davidzylin.notion.site/Proposal-Upgrade-the-AQM-Evaluation-Suite-for-ns-3-1bbad0d7128d80be9d7df771f053491e?pvs=143 LINK]&lt;br /&gt;
* '''Project Goals:''' The AQM Evaluation Suite is an automated framework based on RFC 7928 that simplifies simulation setup, topology creation, traffic generation, execution, and results visualization of AQM algorithms in ns-3. Originally developed in 2017 and maintained until 2019, the suite now needs an upgrade to: (1) Migrate its build system from waf to CMake (2) Integrate support for state-of-the-art AQM algorithms and enhanced ECN functionalities (3) Update simulation examples to reflect modern traffic control models (4) Package and publish the suite on the ns-3 App Store&lt;br /&gt;
* '''Repository:''' [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev LINK]&lt;br /&gt;
* '''About Me:''' I'm a CS undergrad student at the University of Toronto. I've been deeply passionate about computer network and systems in general, it's my honour to work with such a wonderful community like ns-3!&lt;br /&gt;
&lt;br /&gt;
= Milestones =&lt;br /&gt;
&lt;br /&gt;
* CMake Migration&lt;br /&gt;
** Migrate the AQM Evaluation Suite’s build system from Waf to CMake&lt;br /&gt;
&lt;br /&gt;
* TCP &amp;amp; ECN Enhancements&lt;br /&gt;
** Upgrading the configuration defaults, including replacing TCP BIC with TCP Cubic in the evaluation suite. ECN support will be added by incorporating new tests and scenarios that utilize ECN signaling and feedback mechanisms. If other configuration defaults require updating, those changes will also be made.&lt;br /&gt;
&lt;br /&gt;
* Upgrade AQM Algorithms&lt;br /&gt;
** Support newer AQM algorithms. Parameter configurations will be added following RFC 7928 guidelines, and new scenarios will be implemented to demonstrate modern traffic control use cases.&lt;br /&gt;
&lt;br /&gt;
* Packaging&lt;br /&gt;
** The module will be prepared for submission to the ns-3 App Store or into the mainline, including compliance with metadata and technical requirements.&lt;br /&gt;
&lt;br /&gt;
= Weekly Updates =&lt;br /&gt;
&lt;br /&gt;
* '''Community Bonding Period (May 8-31, 2025)'''&lt;br /&gt;
** Migrated the existing AQM Evaluation Suite codebase from [https://github.com/aqm-eval-suite/ns-3-dev-git GitHub] to the new [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev GitLab] repository for centralized development.&lt;br /&gt;
** Conducted an in-depth analysis of the original AQM Evaluation Suite paper. Extracted key highlights and formulated a structured list of [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev/-/issues/1 action items] to align with recent advancements in ns-3.&lt;br /&gt;
** The original aqm-eval-suite was based on ns-3.30, and during the migration process, I identified an issue in the AggressiveSender scenario starting from ns-3.41, where aggressive TCP variants (BIC, HighSpeed, YeAH) no longer matched prior results (for more detailed comparisons, please see [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev/-/issues/6 #6]). Comparing with the examples from tcp-cubit, I discovered enabling pacing through &amp;lt;code&amp;gt;Config::SetDefault(&amp;quot;ns3::TcpSocketState::EnablePacing&amp;quot;, BooleanValue(true));&amp;lt;/code&amp;gt; restores expected behaviour and notably, NewReno remains unaffected.&lt;br /&gt;
&lt;br /&gt;
* '''Week 1 (June 1-7, 2025)'''&lt;br /&gt;
&lt;br /&gt;
** ns-3 has transitioned from Waf to CMake as the primary build system, but the AQM evaluation suite still uses Waf configuration. I've migrated the existing build system from Waf to CMake for compatibility with latest version of ns-3 ([https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev/-/merge_requests/1 Changes]). Ensured successful compilation across supported platforms and passed all tests.&lt;br /&gt;
** The original paper for AQM Evaluation Suite uses TCP BIC for the aggressive sender as TCP CUBIC wasn't implemented in ns-3; However, TCP CUBIC is now supported in ns-3. I've added support for TCP CUBIC in the AQM Evaluation Suite and replaced TCP BIC with TCP CUBIC for default aggressive congestion control in the examples. This addressed the limitation of the paper and aligns with the requirements from RFC 7928;&lt;br /&gt;
** The original paper for AQM Evaluation Suite states &amp;quot;TCP NewReno is the default congestion control in ns-3&amp;quot; but latest ns-3 uses CUBIC as default. I've investigated and validated ([https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev/-/work_items/4 #4]) that TCP NewReno is indeed explicitly configured to eliminate surprises due to version upgrades as latest ns-3 uses CUBIC as default.&lt;br /&gt;
&lt;br /&gt;
* '''Week 2 (June 8-14, 2025)'''&lt;br /&gt;
** The original paper for AQM Evaluation Suite had the limitation that ECN support was under development, whereas now ns-3 has ECN support available. I've evaluated ECN support for AQM algorithms as outlined in RFC 7928 §4.5, and I've implemented the changes such that ECN was activated both at the queue level (e.g., for RED) and at the TCP sender level, based on ns-3 documentation and examples. For supported scenarios, ECN can be enabled through the &amp;lt;code&amp;gt;--ecn=true&amp;lt;/code&amp;gt; flag. Results confirm that ECN configurations are taking effect, as the queue delay v.s. good-put shows that the algorithms that support ECN have values more concentrated around the mean, resulting in a smaller ellipsoid. This indicates a reduction in variance and a tighter Gaussian distribution, with the data clustering more closely around the center, which is the effect of ECN. Pfifo remains identical as the algorithm doesn't support ECN. For the comparisons, please see [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev/-/merge_requests/4 !4].&lt;br /&gt;
&lt;br /&gt;
* '''Week 3 (June 15-21, 2025)'''&lt;br /&gt;
** Originally, the AQM Evaluation Suite saves each run under the &amp;lt;code&amp;gt;aqm-eval-output&amp;lt;/code&amp;gt; folder, and each run will be overwritten by the subsequent runs. I've redesigned the behaviour so that each run will be saved separately, each run will create the &amp;lt;code&amp;gt;aqm-eval-output/{timestamp}&amp;lt;/code&amp;gt; folder, and will also have a &amp;lt;code&amp;gt;run_config.json&amp;lt;/code&amp;gt; file to record the configuration of each run.&lt;br /&gt;
** After the paper has been published, there were additional AQM algorithms that are implemented in ns-3, they are &amp;lt;code&amp;gt;ns3::CobaltQueueDisc&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ns3::FqCobaltQueueDisc&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ns3::FqCoDelQueueDisc&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ns3::FqPieQueueDisc&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ns3::TbfQueueDisc&amp;lt;/code&amp;gt;. The new AQM algorithms that support ECN has also been enabled.&lt;br /&gt;
&lt;br /&gt;
* '''Week 4 (June 22-28, 2025)'''&lt;br /&gt;
** Improved the robustness and usability of the evaluation workflow by addressing the suite’s external tool dependencies. The AQM Evaluation Suite currently relies on several system packages—including Python, GNUplot, and ImageMagick—for visualizing simulation results. However, missing packages would result in errors or incomplete runs. The suite now proactively checks for the presence of these dependencies at runtime: if any are missing, a warning is logged, and the test execution will be terminated.&lt;br /&gt;
** Refactored queue delay measurement logic by removing the redundant &amp;lt;code&amp;gt;EvalTimestampTag&amp;lt;/code&amp;gt; class. Now, queue delay calculations leverage the timestamp embedded in QueueDiscItem, streamlining the codebase and eliminating duplicate logic.&lt;br /&gt;
** Extracted output file/directory management from inline system calls (mkdir -p, string concatenation) into a dedicated OutputManager - This eliminates ~15 hardcoded mkdir calls, centralizes path resolution logic, implements proper file handle management, and decouples output structure from simulation logic through externalized configuration.&lt;br /&gt;
&lt;br /&gt;
= Resources =&lt;br /&gt;
&lt;br /&gt;
* AQM Evaluation Suite [[https://dl.acm.org/doi/abs/10.1145/3067665.3067674 Paper]] [[https://aqm-eval-suite.github.io/ Implementation]]&lt;br /&gt;
* [https://tools.ietf.org/html/rfc7928 RFC 7928]&lt;br /&gt;
* [https://www.nsnam.org/docs/models/html/traffic-control-layer.html Traffic Control Model in ns-3]&lt;/div&gt;</summary>
		<author><name>Davidzylin</name></author>
	</entry>
	<entry>
		<id>https://www.nsnam.org/mediawiki/index.php?title=GSOC2025AqmEvaluation&amp;diff=13587</id>
		<title>GSOC2025AqmEvaluation</title>
		<link rel="alternate" type="text/html" href="https://www.nsnam.org/mediawiki/index.php?title=GSOC2025AqmEvaluation&amp;diff=13587"/>
		<updated>2025-07-04T02:55:18Z</updated>

		<summary type="html">&lt;p&gt;Davidzylin: /* Weekly Updates */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TOC}}&lt;br /&gt;
&lt;br /&gt;
Back to [[Summer_Projects#Google_Summer_of_Code_2025 | GSoC 2025 projects]]&lt;br /&gt;
&lt;br /&gt;
= Project Overview =&lt;br /&gt;
&lt;br /&gt;
* '''Project Name:''' Upgrade the AQM Evaluation Suite for ns-3&lt;br /&gt;
* '''Student:''' David Lin&lt;br /&gt;
* '''Mentors:''' Mohit P. Tahiliani, Aniket Singh and Tom Henderson&lt;br /&gt;
* '''Google Page:''' [https://summerofcode.withgoogle.com/programs/2025/projects/d7sZPqy6 LINK]&lt;br /&gt;
* '''Project Proposal:''' [https://davidzylin.notion.site/Proposal-Upgrade-the-AQM-Evaluation-Suite-for-ns-3-1bbad0d7128d80be9d7df771f053491e?pvs=143 LINK]&lt;br /&gt;
* '''Project Goals:''' The AQM Evaluation Suite is an automated framework based on RFC 7928 that simplifies simulation setup, topology creation, traffic generation, execution, and results visualization of AQM algorithms in ns-3. Originally developed in 2017 and maintained until 2019, the suite now needs an upgrade to: (1) Migrate its build system from waf to CMake (2) Integrate support for state-of-the-art AQM algorithms and enhanced ECN functionalities (3) Update simulation examples to reflect modern traffic control models (4) Package and publish the suite on the ns-3 App Store&lt;br /&gt;
* '''Repository:''' [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev LINK]&lt;br /&gt;
* '''About Me:''' I'm a CS undergrad student at the University of Toronto. I've been deeply passionate about computer network and systems in general, it's my honour to work with such a wonderful community like ns-3!&lt;br /&gt;
&lt;br /&gt;
= Milestones =&lt;br /&gt;
&lt;br /&gt;
* CMake Migration&lt;br /&gt;
** Migrate the AQM Evaluation Suite’s build system from Waf to CMake&lt;br /&gt;
&lt;br /&gt;
* TCP &amp;amp; ECN Enhancements&lt;br /&gt;
** Upgrading the configuration defaults, including replacing TCP BIC with TCP Cubic in the evaluation suite. ECN support will be added by incorporating new tests and scenarios that utilize ECN signaling and feedback mechanisms. If other configuration defaults require updating, those changes will also be made.&lt;br /&gt;
&lt;br /&gt;
* Upgrade AQM Algorithms&lt;br /&gt;
** Support newer AQM algorithms. Parameter configurations will be added following RFC 7928 guidelines, and new scenarios will be implemented to demonstrate modern traffic control use cases.&lt;br /&gt;
&lt;br /&gt;
* Packaging&lt;br /&gt;
** The module will be prepared for submission to the ns-3 App Store or into the mainline, including compliance with metadata and technical requirements.&lt;br /&gt;
&lt;br /&gt;
= Weekly Updates =&lt;br /&gt;
&lt;br /&gt;
* '''Community Bonding Period (May 8-31, 2025)'''&lt;br /&gt;
** Migrated the existing AQM Evaluation Suite codebase from [https://github.com/aqm-eval-suite/ns-3-dev-git GitHub] to the new [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev GitLab] repository for centralized development.&lt;br /&gt;
** Conducted an in-depth analysis of the original AQM Evaluation Suite paper. Extracted key highlights and formulated a structured list of [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev/-/issues/1 action items] to align with recent advancements in ns-3.&lt;br /&gt;
** The original aqm-eval-suite was based on ns-3.30, and during the migration process, I identified an issue in the AggressiveSender scenario starting from ns-3.41, where aggressive TCP variants (BIC, HighSpeed, YeAH) no longer matched prior results (for more detailed comparisons, please see [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev/-/issues/6 #6]). Comparing with the examples from tcp-cubit, I discovered enabling pacing through &amp;lt;code&amp;gt;Config::SetDefault(&amp;quot;ns3::TcpSocketState::EnablePacing&amp;quot;, BooleanValue(true));&amp;lt;/code&amp;gt; restores expected behaviour and notably, NewReno remains unaffected.&lt;br /&gt;
&lt;br /&gt;
* '''Week 1 (June 1-7, 2025)'''&lt;br /&gt;
&lt;br /&gt;
** ns-3 has transitioned from Waf to CMake as the primary build system, but the AQM evaluation suite still uses Waf configuration. I've migrated the existing build system from Waf to CMake for compatibility with latest version of ns-3 ([https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev/-/merge_requests/1 Changes]). Ensured successful compilation across supported platforms and passed all tests.&lt;br /&gt;
** The original paper for AQM Evaluation Suite uses TCP BIC for the aggressive sender as TCP CUBIC wasn't implemented in ns-3; However, TCP CUBIC is now supported in ns-3. I've added support for TCP CUBIC in the AQM Evaluation Suite and replaced TCP BIC with TCP CUBIC for default aggressive congestion control in the examples. This addressed the limitation of the paper and aligns with the requirements from RFC 7928;&lt;br /&gt;
** The original paper for AQM Evaluation Suite states &amp;quot;TCP NewReno is the default congestion control in ns-3&amp;quot; but latest ns-3 uses CUBIC as default. I've investigated and validated ([https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev/-/work_items/4 #4]) that TCP NewReno is indeed explicitly configured to eliminate surprises due to version upgrades as latest ns-3 uses CUBIC as default.&lt;br /&gt;
&lt;br /&gt;
* '''Week 2 (June 8-14, 2025)'''&lt;br /&gt;
** The original paper for AQM Evaluation Suite had the limitation that ECN support was under development, whereas now ns-3 has ECN support available. I've evaluated ECN support for AQM algorithms as outlined in RFC 7928 §4.5, and I've implemented the changes such that ECN was activated both at the queue level (e.g., for RED) and at the TCP sender level, based on ns-3 documentation and examples. For supported scenarios, ECN can be enabled through the &amp;lt;code&amp;gt;--ecn=true&amp;lt;/code&amp;gt; flag. Results confirm that ECN configurations are taking effect, as the queue delay v.s. good-put shows that the algorithms that support ECN have values more concentrated around the mean, resulting in a smaller ellipsoid. This indicates a reduction in variance and a tighter Gaussian distribution, with the data clustering more closely around the center, which is the effect of ECN. Pfifo remains identical as the algorithm doesn't support ECN. For the comparisons, please see [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev/-/merge_requests/4 !4].&lt;br /&gt;
&lt;br /&gt;
* '''Week 3 (June 15-21, 2025)'''&lt;br /&gt;
** Originally, the AQM Evaluation Suite saves each run under the &amp;lt;code&amp;gt;aqm-eval-output&amp;lt;/code&amp;gt; folder, and each run will be overwritten by the subsequent runs. I've redesigned the behaviour so that each run will be saved separately, each run will create the &amp;lt;code&amp;gt;aqm-eval-output/{timestamp}&amp;lt;/code&amp;gt; folder, and will also have a &amp;lt;code&amp;gt;run_config.json&amp;lt;/code&amp;gt; file to record the configuration of each run.&lt;br /&gt;
** After the paper has been published, there were additional AQM algorithms that are implemented in ns-3, they are &amp;lt;code&amp;gt;ns3::CobaltQueueDisc&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ns3::FqCobaltQueueDisc&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ns3::FqCoDelQueueDisc&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ns3::FqPieQueueDisc&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ns3::TbfQueueDisc&amp;lt;/code&amp;gt;. The new AQM algorithms that support ECN has also been enabled.&lt;br /&gt;
&lt;br /&gt;
* '''Week 4 (June 22-28, 2025)'''&lt;br /&gt;
** Improved the robustness and usability of the evaluation workflow by addressing the suite’s external tool dependencies. The AQM Evaluation Suite currently relies on several system packages—including Python, GNUplot, and ImageMagick—for visualizing simulation results. However, missing packages would result in errors or incomplete runs. The suite now proactively checks for the presence of these dependencies at runtime: if any are missing, a warning is logged, and the test execution will be terminated.&lt;br /&gt;
** Refactored queue delay measurement logic by removing the redundant &amp;lt;code&amp;gt;EvalTimestampTag&amp;lt;/code&amp;gt; class. Now, queue delay calculations leverage the timestamp embedded in QueueDiscItem, streamlining the codebase and eliminating duplicate logic.&lt;br /&gt;
&lt;br /&gt;
= Resources =&lt;br /&gt;
&lt;br /&gt;
* AQM Evaluation Suite [[https://dl.acm.org/doi/abs/10.1145/3067665.3067674 Paper]] [[https://aqm-eval-suite.github.io/ Implementation]]&lt;br /&gt;
* [https://tools.ietf.org/html/rfc7928 RFC 7928]&lt;br /&gt;
* [https://www.nsnam.org/docs/models/html/traffic-control-layer.html Traffic Control Model in ns-3]&lt;/div&gt;</summary>
		<author><name>Davidzylin</name></author>
	</entry>
	<entry>
		<id>https://www.nsnam.org/mediawiki/index.php?title=GSOC2025AqmEvaluation&amp;diff=13586</id>
		<title>GSOC2025AqmEvaluation</title>
		<link rel="alternate" type="text/html" href="https://www.nsnam.org/mediawiki/index.php?title=GSOC2025AqmEvaluation&amp;diff=13586"/>
		<updated>2025-07-04T02:01:23Z</updated>

		<summary type="html">&lt;p&gt;Davidzylin: /* Weekly Updates */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TOC}}&lt;br /&gt;
&lt;br /&gt;
Back to [[Summer_Projects#Google_Summer_of_Code_2025 | GSoC 2025 projects]]&lt;br /&gt;
&lt;br /&gt;
= Project Overview =&lt;br /&gt;
&lt;br /&gt;
* '''Project Name:''' Upgrade the AQM Evaluation Suite for ns-3&lt;br /&gt;
* '''Student:''' David Lin&lt;br /&gt;
* '''Mentors:''' Mohit P. Tahiliani, Aniket Singh and Tom Henderson&lt;br /&gt;
* '''Google Page:''' [https://summerofcode.withgoogle.com/programs/2025/projects/d7sZPqy6 LINK]&lt;br /&gt;
* '''Project Proposal:''' [https://davidzylin.notion.site/Proposal-Upgrade-the-AQM-Evaluation-Suite-for-ns-3-1bbad0d7128d80be9d7df771f053491e?pvs=143 LINK]&lt;br /&gt;
* '''Project Goals:''' The AQM Evaluation Suite is an automated framework based on RFC 7928 that simplifies simulation setup, topology creation, traffic generation, execution, and results visualization of AQM algorithms in ns-3. Originally developed in 2017 and maintained until 2019, the suite now needs an upgrade to: (1) Migrate its build system from waf to CMake (2) Integrate support for state-of-the-art AQM algorithms and enhanced ECN functionalities (3) Update simulation examples to reflect modern traffic control models (4) Package and publish the suite on the ns-3 App Store&lt;br /&gt;
* '''Repository:''' [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev LINK]&lt;br /&gt;
* '''About Me:''' I'm a CS undergrad student at the University of Toronto. I've been deeply passionate about computer network and systems in general, it's my honour to work with such a wonderful community like ns-3!&lt;br /&gt;
&lt;br /&gt;
= Milestones =&lt;br /&gt;
&lt;br /&gt;
* CMake Migration&lt;br /&gt;
** Migrate the AQM Evaluation Suite’s build system from Waf to CMake&lt;br /&gt;
&lt;br /&gt;
* TCP &amp;amp; ECN Enhancements&lt;br /&gt;
** Upgrading the configuration defaults, including replacing TCP BIC with TCP Cubic in the evaluation suite. ECN support will be added by incorporating new tests and scenarios that utilize ECN signaling and feedback mechanisms. If other configuration defaults require updating, those changes will also be made.&lt;br /&gt;
&lt;br /&gt;
* Upgrade AQM Algorithms&lt;br /&gt;
** Support newer AQM algorithms. Parameter configurations will be added following RFC 7928 guidelines, and new scenarios will be implemented to demonstrate modern traffic control use cases.&lt;br /&gt;
&lt;br /&gt;
* Packaging&lt;br /&gt;
** The module will be prepared for submission to the ns-3 App Store or into the mainline, including compliance with metadata and technical requirements.&lt;br /&gt;
&lt;br /&gt;
= Weekly Updates =&lt;br /&gt;
&lt;br /&gt;
* '''Community Bonding Period (May 8-31, 2025)'''&lt;br /&gt;
** Migrated the existing AQM Evaluation Suite codebase from [https://github.com/aqm-eval-suite/ns-3-dev-git GitHub] to the new [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev GitLab] repository for centralized development.&lt;br /&gt;
** Conducted an in-depth analysis of the original AQM Evaluation Suite paper. Extracted key highlights and formulated a structured list of [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev/-/issues/1 action items] to align with recent advancements in ns-3.&lt;br /&gt;
** The original aqm-eval-suite was based on ns-3.30, and during the migration process, I identified an issue in the AggressiveSender scenario starting from ns-3.41, where aggressive TCP variants (BIC, HighSpeed, YeAH) no longer matched prior results (for more detailed comparisons, please see [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev/-/issues/6 #6]). Comparing with the examples from tcp-cubit, I discovered enabling pacing through &amp;lt;code&amp;gt;Config::SetDefault(&amp;quot;ns3::TcpSocketState::EnablePacing&amp;quot;, BooleanValue(true));&amp;lt;/code&amp;gt; restores expected behaviour and notably, NewReno remains unaffected.&lt;br /&gt;
&lt;br /&gt;
* '''Week 1 (June 1-7, 2025)'''&lt;br /&gt;
&lt;br /&gt;
** ns-3 has transitioned from Waf to CMake as the primary build system, but the AQM evaluation suite still uses Waf configuration. I've migrated the existing build system from Waf to CMake for compatibility with latest version of ns-3 ([https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev/-/merge_requests/1 Changes]). Ensured successful compilation across supported platforms and passed all tests.&lt;br /&gt;
** The original paper for AQM Evaluation Suite uses TCP BIC for the aggressive sender as TCP CUBIC wasn't implemented in ns-3; However, TCP CUBIC is now supported in ns-3. I've added support for TCP CUBIC in the AQM Evaluation Suite and replaced TCP BIC with TCP CUBIC for default aggressive congestion control in the examples. This addressed the limitation of the paper and aligns with the requirements from RFC 7928;&lt;br /&gt;
** The original paper for AQM Evaluation Suite states &amp;quot;TCP NewReno is the default congestion control in ns-3&amp;quot; but latest ns-3 uses CUBIC as default. I've investigated and validated ([https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev/-/work_items/4 #4]) that TCP NewReno is indeed explicitly configured to eliminate surprises due to version upgrades as latest ns-3 uses CUBIC as default.&lt;br /&gt;
&lt;br /&gt;
* '''Week 2 (June 8-14, 2025)'''&lt;br /&gt;
** The original paper for AQM Evaluation Suite had the limitation that ECN support was under development, whereas now ns-3 has ECN support available. I've evaluated ECN support for AQM algorithms as outlined in RFC 7928 §4.5, and I've implemented the changes such that ECN was activated both at the queue level (e.g., for RED) and at the TCP sender level, based on ns-3 documentation and examples. For supported scenarios, ECN can be enabled through the &amp;lt;code&amp;gt;--ecn=true&amp;lt;/code&amp;gt; flag. Results confirm that ECN configurations are taking effect, as the queue delay v.s. good-put shows that the algorithms that support ECN have values more concentrated around the mean, resulting in a smaller ellipsoid. This indicates a reduction in variance and a tighter Gaussian distribution, with the data clustering more closely around the center, which is the effect of ECN. Pfifo remains identical as the algorithm doesn't support ECN. For the comparisons, please see [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev/-/merge_requests/4 !4].&lt;br /&gt;
&lt;br /&gt;
* '''Week 3 (June 15-21, 2025)'''&lt;br /&gt;
** Originally, the AQM Evaluation Suite saves each run under the &amp;lt;code&amp;gt;aqm-eval-output&amp;lt;/code&amp;gt; folder, and each run will be overwritten by the subsequent runs. I've redesigned the behaviour so that each run will be saved separately, each run will create the &amp;lt;code&amp;gt;aqm-eval-output/{timestamp}&amp;lt;/code&amp;gt; folder, and will also have a &amp;lt;code&amp;gt;run_config.json&amp;lt;/code&amp;gt; file to record the configuration of each run.&lt;br /&gt;
** After the paper has been published, there were additional AQM algorithms that are implemented in ns-3, they are &amp;lt;code&amp;gt;ns3::CobaltQueueDisc&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ns3::FqCobaltQueueDisc&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ns3::FqCoDelQueueDisc&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ns3::FqPieQueueDisc&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ns3::TbfQueueDisc&amp;lt;/code&amp;gt;. The new AQM algorithms that support ECN has also been enabled.&lt;br /&gt;
&lt;br /&gt;
* '''Week 4 (June 22-28, 2025)'''&lt;br /&gt;
** Improved the robustness and usability of the evaluation workflow by addressing the suite’s external tool dependencies. The AQM Evaluation Suite currently relies on several system packages—including Python, GNUplot, and ImageMagick—for visualizing simulation results. However, missing packages would result in errors or incomplete runs. The suite now proactively checks for the presence of these dependencies at runtime: if any are missing, a warning is logged, and the test execution will be terminated.&lt;br /&gt;
**&lt;br /&gt;
&lt;br /&gt;
= Resources =&lt;br /&gt;
&lt;br /&gt;
* AQM Evaluation Suite [[https://dl.acm.org/doi/abs/10.1145/3067665.3067674 Paper]] [[https://aqm-eval-suite.github.io/ Implementation]]&lt;br /&gt;
* [https://tools.ietf.org/html/rfc7928 RFC 7928]&lt;br /&gt;
* [https://www.nsnam.org/docs/models/html/traffic-control-layer.html Traffic Control Model in ns-3]&lt;/div&gt;</summary>
		<author><name>Davidzylin</name></author>
	</entry>
	<entry>
		<id>https://www.nsnam.org/mediawiki/index.php?title=GSOC2025AqmEvaluation&amp;diff=13583</id>
		<title>GSOC2025AqmEvaluation</title>
		<link rel="alternate" type="text/html" href="https://www.nsnam.org/mediawiki/index.php?title=GSOC2025AqmEvaluation&amp;diff=13583"/>
		<updated>2025-06-27T04:10:59Z</updated>

		<summary type="html">&lt;p&gt;Davidzylin: /* Weekly Updates */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TOC}}&lt;br /&gt;
&lt;br /&gt;
Back to [[Summer_Projects#Google_Summer_of_Code_2025 | GSoC 2025 projects]]&lt;br /&gt;
&lt;br /&gt;
= Project Overview =&lt;br /&gt;
&lt;br /&gt;
* '''Project Name:''' Upgrade the AQM Evaluation Suite for ns-3&lt;br /&gt;
* '''Student:''' David Lin&lt;br /&gt;
* '''Mentors:''' Mohit P. Tahiliani, Aniket Singh and Tom Henderson&lt;br /&gt;
* '''Google Page:''' [https://summerofcode.withgoogle.com/programs/2025/projects/d7sZPqy6 LINK]&lt;br /&gt;
* '''Project Proposal:''' [https://davidzylin.notion.site/Proposal-Upgrade-the-AQM-Evaluation-Suite-for-ns-3-1bbad0d7128d80be9d7df771f053491e?pvs=143 LINK]&lt;br /&gt;
* '''Project Goals:''' The AQM Evaluation Suite is an automated framework based on RFC 7928 that simplifies simulation setup, topology creation, traffic generation, execution, and results visualization of AQM algorithms in ns-3. Originally developed in 2017 and maintained until 2019, the suite now needs an upgrade to: (1) Migrate its build system from waf to CMake (2) Integrate support for state-of-the-art AQM algorithms and enhanced ECN functionalities (3) Update simulation examples to reflect modern traffic control models (4) Package and publish the suite on the ns-3 App Store&lt;br /&gt;
* '''Repository:''' [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev LINK]&lt;br /&gt;
* '''About Me:''' I'm a CS undergrad student at the University of Toronto. I've been deeply passionate about computer network and systems in general, it's my honour to work with such a wonderful community like ns-3!&lt;br /&gt;
&lt;br /&gt;
= Milestones =&lt;br /&gt;
&lt;br /&gt;
* CMake Migration&lt;br /&gt;
** Migrate the AQM Evaluation Suite’s build system from Waf to CMake&lt;br /&gt;
&lt;br /&gt;
* TCP &amp;amp; ECN Enhancements&lt;br /&gt;
** Upgrading the configuration defaults, including replacing TCP BIC with TCP Cubic in the evaluation suite. ECN support will be added by incorporating new tests and scenarios that utilize ECN signaling and feedback mechanisms. If other configuration defaults require updating, those changes will also be made.&lt;br /&gt;
&lt;br /&gt;
* Upgrade AQM Algorithms&lt;br /&gt;
** Support newer AQM algorithms. Parameter configurations will be added following RFC 7928 guidelines, and new scenarios will be implemented to demonstrate modern traffic control use cases.&lt;br /&gt;
&lt;br /&gt;
* Packaging&lt;br /&gt;
** The module will be prepared for submission to the ns-3 App Store or into the mainline, including compliance with metadata and technical requirements.&lt;br /&gt;
&lt;br /&gt;
= Weekly Updates =&lt;br /&gt;
&lt;br /&gt;
* '''Community Bonding Period (May 8-31, 2025)'''&lt;br /&gt;
** Migrated the existing AQM Evaluation Suite codebase from [https://github.com/aqm-eval-suite/ns-3-dev-git GitHub] to the new [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev GitLab] repository for centralized development.&lt;br /&gt;
** Conducted an in-depth analysis of the original AQM Evaluation Suite paper. Extracted key highlights and formulated a structured list of [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev/-/issues/1 action items] to align with recent advancements in ns-3.&lt;br /&gt;
** The original aqm-eval-suite was based on ns-3.30, and during the migration process, I identified an issue in the AggressiveSender scenario starting from ns-3.41, where aggressive TCP variants (BIC, HighSpeed, YeAH) no longer matched prior results (for more detailed comparisons, please see [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev/-/issues/6 #6]). Comparing with the examples from tcp-cubit, I discovered enabling pacing through &amp;lt;code&amp;gt;Config::SetDefault(&amp;quot;ns3::TcpSocketState::EnablePacing&amp;quot;, BooleanValue(true));&amp;lt;/code&amp;gt; restores expected behaviour and notably, NewReno remains unaffected.&lt;br /&gt;
&lt;br /&gt;
* '''Week 1 (June 1-7, 2025)'''&lt;br /&gt;
&lt;br /&gt;
** ns-3 has transitioned from Waf to CMake as the primary build system, but the AQM evaluation suite still uses Waf configuration. I've migrated the existing build system from Waf to CMake for compatibility with latest version of ns-3 ([https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev/-/merge_requests/1 Changes]). Ensured successful compilation across supported platforms and passed all tests.&lt;br /&gt;
** The original paper for AQM Evaluation Suite uses TCP BIC for the aggressive sender as TCP CUBIC wasn't implemented in ns-3; However, TCP CUBIC is now supported in ns-3. I've added support for TCP CUBIC in the AQM Evaluation Suite and replaced TCP BIC with TCP CUBIC for default aggressive congestion control in the examples. This addressed the limitation of the paper and aligns with the requirements from RFC 7928;&lt;br /&gt;
** The original paper for AQM Evaluation Suite states &amp;quot;TCP NewReno is the default congestion control in ns-3&amp;quot; but latest ns-3 uses CUBIC as default. I've investigated and validated ([https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev/-/work_items/4 #4]) that TCP NewReno is indeed explicitly configured to eliminate surprises due to version upgrades as latest ns-3 uses CUBIC as default.&lt;br /&gt;
&lt;br /&gt;
* '''Week 2 (June 8-14, 2025)'''&lt;br /&gt;
** The original paper for AQM Evaluation Suite had the limitation that ECN support was under development, whereas now ns-3 has ECN support available. I've evaluated ECN support for AQM algorithms as outlined in RFC 7928 §4.5, and I've implemented the changes such that ECN was activated both at the queue level (e.g., for RED) and at the TCP sender level, based on ns-3 documentation and examples. For supported scenarios, ECN can be enabled through the &amp;lt;code&amp;gt;--ecn=true&amp;lt;/code&amp;gt; flag. Results confirm that ECN configurations are taking effect, as the queue delay v.s. good-put shows that the algorithms that support ECN have values more concentrated around the mean, resulting in a smaller ellipsoid. This indicates a reduction in variance and a tighter Gaussian distribution, with the data clustering more closely around the center, which is the effect of ECN. Pfifo remains identical as the algorithm doesn't support ECN. For the comparisons, please see [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev/-/merge_requests/4 !4].&lt;br /&gt;
&lt;br /&gt;
* '''Week 3 (June 15-21, 2025)'''&lt;br /&gt;
** Originally, the AQM Evaluation Suite saves each run under the &amp;lt;code&amp;gt;aqm-eval-output&amp;lt;/code&amp;gt; folder, and each run will be overwritten by the subsequent runs. I've redesigned the behaviour so that each run will be saved separately, each run will create the &amp;lt;code&amp;gt;aqm-eval-output/{timestamp}&amp;lt;/code&amp;gt; folder, and will also have a &amp;lt;code&amp;gt;run_config.json&amp;lt;/code&amp;gt; file to record the configuration of each run.&lt;br /&gt;
** After the paper has been published, there were additional AQM algorithms that are implemented in ns-3, they are &amp;lt;code&amp;gt;ns3::CobaltQueueDisc&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ns3::FqCobaltQueueDisc&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ns3::FqCoDelQueueDisc&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ns3::FqPieQueueDisc&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;ns3::TbfQueueDisc&amp;lt;/code&amp;gt;. The new AQM algorithms that support ECN has also been enabled.&lt;br /&gt;
&lt;br /&gt;
* '''Week 4 (June 22-28, 2025)'''&lt;br /&gt;
&lt;br /&gt;
= Resources =&lt;br /&gt;
&lt;br /&gt;
* AQM Evaluation Suite [[https://dl.acm.org/doi/abs/10.1145/3067665.3067674 Paper]] [[https://aqm-eval-suite.github.io/ Implementation]]&lt;br /&gt;
* [https://tools.ietf.org/html/rfc7928 RFC 7928]&lt;br /&gt;
* [https://www.nsnam.org/docs/models/html/traffic-control-layer.html Traffic Control Model in ns-3]&lt;/div&gt;</summary>
		<author><name>Davidzylin</name></author>
	</entry>
	<entry>
		<id>https://www.nsnam.org/mediawiki/index.php?title=Summer_Projects&amp;diff=13579</id>
		<title>Summer Projects</title>
		<link rel="alternate" type="text/html" href="https://www.nsnam.org/mediawiki/index.php?title=Summer_Projects&amp;diff=13579"/>
		<updated>2025-06-22T20:10:14Z</updated>

		<summary type="html">&lt;p&gt;Davidzylin: /* Google Summer of Code 2025 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TOC}}&lt;br /&gt;
&lt;br /&gt;
The project coordinates a few summer coding programs in which student developers are paired with mentors to produce code over the summer.&lt;br /&gt;
&lt;br /&gt;
= Google Summer of Code 2025 =&lt;br /&gt;
&lt;br /&gt;
We are happy to announce that the following five projects have been accepted:&lt;br /&gt;
&lt;br /&gt;
* '''David Lin''', [[GSOC2025AqmEvaluation | Upgrade the AQM Evaluation Suite for ns-3]], mentored by Mohit P. Tahiliani, Aniket Singh and Tom Henderson&lt;br /&gt;
* '''Aditya Ruhela''', [[GSOC2025IcmpSocket | ICMP socket and generate/handle ICMP messages (host/net unreachable)]], mentored by Tommaso Pecorella and Alberto Gallegos Ramonet&lt;br /&gt;
* '''Boh Jie Qi''', [[GSOC20256LoWPAN | 6LoWPAN Neighbor Discovery Protocol]], mentored by Tommaso Pecorella and Adnan Rashid&lt;br /&gt;
* '''Shashwat Patni''', [[GSOC2025Ipv6GlobalRouting | IPv6 Global Routing]], mentored by Tommaso Pecorella and Manoj Kumar Rana&lt;br /&gt;
* '''Thiago Miyazaki''', [[GSOC2025Ntn | NTN Helper and a LEO example for 5G NR]], mentored by Gabriel Ferreira and Amir Ashtari Gargari&lt;br /&gt;
&lt;br /&gt;
* [[GSOC2025Projects | Project Ideas Page]]&lt;br /&gt;
* [[GSOC2025ContributorGuide | ns-3's GSoC Contributor Guide]]&lt;br /&gt;
&lt;br /&gt;
= Google Summer of Code 2024 =&lt;br /&gt;
&lt;br /&gt;
The organizational admins were Tommaso Pecorella, Mohit Tahiliani, and Tom Henderson.&lt;br /&gt;
&lt;br /&gt;
We had three successful student projects, summarized on the pages linked below:&lt;br /&gt;
&lt;br /&gt;
* '''Joao Albuquerque''', [[GSOC2024Channels5G | 5G NR Module Benchmark and Analysis for Distinct Channel Models]], mentored by Biljana Bojovic, Amir Ashtari, and Gabriel Ferreira: '''''[[GSOC2024Channels5GFinalReport | Final report]]'''''&lt;br /&gt;
* '''Kavya Bhat''', [[GSOC2024DHCPv6 | DHCPv6]], mentored by Tommaso Pecorella, Alberto Gallegos Ramonet, and Manoj Kumar Rana: '''''[[GSOC2024DHCPv6FinalReport | Final report]]'''''&lt;br /&gt;
* '''Hyerin Kim''',  [[GSOC2024RLUsability5G | Enhancement of RL Approach Accessibility in NR]], mentored by Katerina Koutlia, Amir Ashtari, Biljana Bojovic, and Gabriel Ferreira: '''''[[GSOC2024RLUsability5GFinalReport | Final report]]'''''&lt;br /&gt;
&lt;br /&gt;
* [[GSOC2024Projects | Project Ideas Page]]&lt;br /&gt;
* [[GSOC2024ContributorGuide | ns-3's GSoC Contributor Guide]]&lt;br /&gt;
&lt;br /&gt;
= Google Summer of Code 2023 =&lt;br /&gt;
&lt;br /&gt;
The organizational admins were Tommaso Pecorella, Mohit Tahiliani, and Tom Henderson.&lt;br /&gt;
&lt;br /&gt;
We had three successful student projects for 2023; you can read their final reports below:&lt;br /&gt;
&lt;br /&gt;
* '''Giovanni Grieco''', [[GSOC20235GUsability | IUNS-3 5G NR: Improving the Usability of ns-3's 5G NR Module]], mentored by Tom Henderson, Katerina Koutlia, and Biljana Bojovic:  '''''[[GSOC20235GUsabilityFinalReport | Final report]]'''''&lt;br /&gt;
* '''Raghuram Kannan''', [[GSOC2023NetAnim | Dynamic device registration for NetAnim simulation animations]], mentored by Tommaso Pecorella and Manoj Kumar Rana: '''''[[GSOC2023NetAnimFinalReport | Final report]]'''''&lt;br /&gt;
* '''Muyuan Shen''', [[GSOC2023ns3-ai | ns3-ai enhancements]], mentored by Collin Brady and Hao Yin: '''''[[GSOC2023ns3-aiFinalReport | Final report]]'''''&lt;br /&gt;
&lt;br /&gt;
We reviewed seven proposals, which were evaluated by a committee that includes most of the mentors listed on the Project Ideas page.  For future reference, below is our ideas page and contributor's guide.&lt;br /&gt;
&lt;br /&gt;
* [[GSOC2023Projects | Project Ideas Page]]&lt;br /&gt;
* [[GSOC2023ContributorGuide | ns-3's GSoC Contributor Guide]]&lt;br /&gt;
&lt;br /&gt;
= Google Summer of Code 2022 =&lt;br /&gt;
&lt;br /&gt;
The organizational admins were Tommaso Pecorella, Mohit Tahiliani, and Tom Henderson.&lt;br /&gt;
&lt;br /&gt;
Two contributors completed projects with ns-3 in the 2022 Google Summer of Code.&lt;br /&gt;
&lt;br /&gt;
* '''Matteo Pagin''', [[GSOC2022Channel | A simplified channel and beamforming model for ns-3]], mentored by Sandra Lagen, Biljana Bojovic, and Michele Polese  '''''[https://pagmatt.github.io/blog/2022/gsoc2022 Final Report]'''''&lt;br /&gt;
* '''Zhiheng Dong''', [[GSOC2022PerfectArp | Perfect ARP and NDP]], mentored by Tommaso Pecorella, Ameya Deshpande,and Manoj Kumar Rana '''''[[GSOC2022NeighborCacheFinalReport | Final Report]]'''''&lt;br /&gt;
&lt;br /&gt;
One additional project was started but did not progress past the midterm evaluation:&lt;br /&gt;
&lt;br /&gt;
* '''Akash Mondal''', [[GSOC2022TCPMaximumSegmentSize | TCP maximum segment size (MSS) improvements]], mentored by Mohit Tahiliani, Bhaskar Kataria, and Vivek Jain&lt;br /&gt;
&lt;br /&gt;
We received seven proposals, which were evaluated by a committee that includes most of the mentors listed on the Project Ideas page.  For future reference, below is our ideas page and contributor's guide.&lt;br /&gt;
&lt;br /&gt;
* [[GSOC2022Projects | Project Ideas Page]]&lt;br /&gt;
* [[GSOC2022ContributorGuide | ns-3's GSoC Contributor Guide]]&lt;br /&gt;
&lt;br /&gt;
= ns-3 Summer of Code 2022 =&lt;br /&gt;
&lt;br /&gt;
ns-3 Summer of Code (NSoC) is a program that runs in parallel to Google Summer of Code.  Unlike GSoC, it is not funded, but we aim to operate it similarly to GSoC.    &lt;br /&gt;
&lt;br /&gt;
* '''Chandrakant Jena,''' ''Ping and Ping6 Enhancements for ns-3:'' '''''[[NSOC2022Ping | project wiki page ]]''''' mentored by Tommaso Pecorella and Tom Henderson&lt;br /&gt;
&lt;br /&gt;
The project by Chandrakant was completed successfully in December 2022, with six commits made to ns-3-dev starting with [https://gitlab.com/nsnam/ns-3-dev/-/commit/da107e04eeb0c12631eadda6a30ad1a33b7f0931 commit da107e04].  The project added a '''[https://www.nsnam.org/docs/doxygen/d6/dbe/classns3_1_1_ping.html new Ping application]''', helper class, example program, unit test, and [https://www.nsnam.org/docs/models/html/internet-apps.html#ping documentation].&lt;br /&gt;
&lt;br /&gt;
= Google Summer of Code 2021 =&lt;br /&gt;
&lt;br /&gt;
Three students successfully completed projects in [https://summerofcode.withgoogle.com/organizations/4672908493848576/ Google Summer of Code 2021].&lt;br /&gt;
&lt;br /&gt;
* '''Parth Pratim Chatterjee,''' ''Direct Code Execution Modernization:'' '''''[[GSOC2021DCE | project wiki page]]''''' '''--''' '''''[https://ns-3-dce-linux-upgrade.github.io/ Final report]'''''&lt;br /&gt;
* '''Ameya Deshpande,''' ''IPv6 Nix-Vector Routing:'' '''''[[GSOC2021NixVector | project wiki page]]''''' '''--''' '''''[https://www.nsnam.org/wiki/GSOC2021NixVectorFinalReport Final report]'''''&lt;br /&gt;
* '''Akshit Patel,''' ''Add logging support to Simulation Execution Manager (SEM):'' '''''[[GSOC2021SEM | project wiki page]]''''' '''--''' '''''[https://akshitpatel01.github.io/GSoC-2021-Report/ Final report]'''''&lt;br /&gt;
&lt;br /&gt;
For reference, below were the 2021 project ideas and the 2021 student guide:&lt;br /&gt;
&lt;br /&gt;
* [[GSOC2021StudentGuide | Student Guide]]&lt;br /&gt;
* [[GSOC2021Projects | Project Ideas Page]]&lt;br /&gt;
&lt;br /&gt;
= ns-3 Summer of Code 2021 =&lt;br /&gt;
&lt;br /&gt;
ns-3 Summer of Code (NSoC) is a program that runs in parallel to Google Summer of Code.  Unlike GSoC, it is not funded, but we aim to operate it similarly to GSoC.  The commitments are similar; students and mentors are expected to define and work towards a mergeable project goal by the end of the summer.  The program is offered to 'honorable mention' GSoC proposals (i.e., proposals that we would have selected had we received more student slots from Google) and for other reasons such as a contributor's ineligibility for GSoC.&lt;br /&gt;
&lt;br /&gt;
* '''Nitya Chandra,''' ''Enable IPv6 support for ad-hoc routing protocols in ns-3:'' '''''[[NSOC2021Ipv6 | project wiki page ]]''''' '''Note: project did not complete'''&lt;br /&gt;
&lt;br /&gt;
= Google Summer of Code 2020 =&lt;br /&gt;
&lt;br /&gt;
Four students successfully completed [https://summerofcode.withgoogle.com/ Google Summer of Code 2020] projects:&lt;br /&gt;
&lt;br /&gt;
* '''Shivamani Patil,''' ''App Store Improvements:'' '''''[https://shivamanipatil.github.io/gsoc-2020-report/ final report], [[GSOC2020AppStore | project wiki page]]'''''&lt;br /&gt;
* '''Ananthakrishan S,''' ''NetDevice up/down consistency and event chain:'' '''''[https://ananthu-dev.github.io/net-device-consistency-gsoc-2020/ final report], [[GSOC2020NetDevice | project wiki page]]'''''&lt;br /&gt;
* '''Bhaskar Kataria,''' ''SCE AQMs and TCP along with CNQ-CodelAF and LFQ'' '''''[https://bhaskar792.github.io/GSoC-2020-Report/ final report], [[GSOC2020AQM | project wiki page]]'''''&lt;br /&gt;
* '''Deepak K,''' ''TCP Prague model for ns-3'', '''''[https://deepakkavoor.github.io/gsoc-2020-prague/ final report], [[GSOC2020Prague | project wiki page]]'''''&lt;br /&gt;
&lt;br /&gt;
For reference, below were the 2020 project ideas and the 2020 student guide:&lt;br /&gt;
&lt;br /&gt;
* [[GSOC2020StudentGuide | Student Guide]]&lt;br /&gt;
* [[GSOC2020Projects | Project Ideas Page]]&lt;br /&gt;
&lt;br /&gt;
= ns-3 Summer of Code 2020 =&lt;br /&gt;
&lt;br /&gt;
These projects are unfunded but are mentored in a manner similar to GSoC, at a lesser pace than the 12-week GSoC program.&lt;br /&gt;
&lt;br /&gt;
* Muhammad Iqbal Rochman, [[NSOC2020WifiPHY | Wi-Fi PHY Restructure]]  '''Note:''' This project successfully completed.&lt;br /&gt;
* Harsha Sharma, [[NSOC2020L4SEvaluation | L4S evaluation framework]]  '''Note:''' This project continued through fall 2020 but did not yet merge.&lt;br /&gt;
* Rahul Bothra, [[NSOC2020Routing | Routing for community wireless networks]] '''Note:''' Project discontinued in August 2020.&lt;br /&gt;
&lt;br /&gt;
= Google Summer of Code 2019 =&lt;br /&gt;
&lt;br /&gt;
ns-3 participated in Google Summer of Code 2019 with four student projects:&lt;br /&gt;
&lt;br /&gt;
* Apoorva Bhargava, [[GSOC2019TCPTestingAndAlignment | Testing and Alignment of ns-3 TCP with Linux TCP]]&lt;br /&gt;
* Mishal Shah, [[GSOC2019AppStore | Improving the ns-3 AppStore and linking with bake]]&lt;br /&gt;
* Tommaso Zugno, [[GSOC2019ThreeGPPChannel | Integration of the 3GPP TR 38.901 channel model in the ns-3 spectrum module]]&lt;br /&gt;
* Liangcheng Yu, [[GSOC2019DCN | Framework of Studying Flow Completion Time Minimization for Data Center Networks in ns-3]]&lt;br /&gt;
&lt;br /&gt;
Below are project ideas and the 2019 student guide:&lt;br /&gt;
&lt;br /&gt;
* [[GSOC2019StudentGuide | ns-3 GSoC student guide]]&lt;br /&gt;
* [[GSOC2019Projects | Project Ideas Page]]&lt;br /&gt;
&lt;br /&gt;
= European Space Agency Summer of Code in Space (SOCIS) 2019 =&lt;br /&gt;
&lt;br /&gt;
ns-3 ultimately was not selected for funding for SOCIS 2019.  Below is an archive of our student guide, for future reference.&lt;br /&gt;
&lt;br /&gt;
* [[SOCIS2019 | ns-3 SOCIS student guide]]&lt;br /&gt;
&lt;br /&gt;
= Google Summer of Code 2018 =&lt;br /&gt;
&lt;br /&gt;
ns-3 participated in the 2018 edition of Google Summer of Code, with five students:&lt;br /&gt;
&lt;br /&gt;
* WenYing Dai, [[GSOC2018AccECN_ECN++ | Implementation of AccECN and ECN++ in ns-3]]&lt;br /&gt;
* Muhammad Iqbal CR, [[GSOC2018Coexistence | Merging and Improvement of LTE and Wi-Fi Coexistence Module]]&lt;br /&gt;
* Sourabh Jain, [[GSoC2018_DCE_Upgrade | Direct Code Execution upgrade]]&lt;br /&gt;
* Davide Magrin, [[GSoC2018:_A_Simulation_Execution_Manager_for_ns-3 | A simulation execution manager for ns-3]]&lt;br /&gt;
* Jude Niroshan, [[GSoC2018:Trust-based_routing_protocols_framework | Trust-based routing protocols framework]]&lt;br /&gt;
&lt;br /&gt;
* [[GSOC2018Projects | Project Ideas Page]]&lt;br /&gt;
* [[GSOC2018StudentGuide | Student Application Guide]]&lt;br /&gt;
&lt;br /&gt;
= European Space Agency Summer of Code in Space (SOCIS) 2017 =&lt;br /&gt;
&lt;br /&gt;
ns-3 has been accepted to the 2017 ESA Summer of Code in Space, with student Pasquale Imputato (mentored by Tommaso Pecorella).  The project successfully completed in October 2017 (details in the below wiki project page).&lt;br /&gt;
&lt;br /&gt;
* [[SOCIS2017 | project page]]&lt;br /&gt;
* [https://codereview.appspot.com/330220043/ Final code review]&lt;br /&gt;
&lt;br /&gt;
The original project ideas page is posted below.&lt;br /&gt;
&lt;br /&gt;
* [[SOCIS2017Projects#Project_Ideas | Project Ideas page]]&lt;br /&gt;
&lt;br /&gt;
= Google Summer of Code 2017 =&lt;br /&gt;
&lt;br /&gt;
ns-3 was fortunate to mentor five outstanding students for the 2017 edition of [https://developers.google.com/open-source/gsoc/ Google Summer of Code].&lt;br /&gt;
&lt;br /&gt;
* [[GSOC2017AcceptedProjects | Accepted Projects]]&lt;br /&gt;
== Final reports ==&lt;br /&gt;
* [http://mailman.isi.edu/pipermail/ns-developers/2017-August/013916.html ns-3 App Store] by Abhijith Anilkumar&lt;br /&gt;
* [https://www.nsnam.org/wiki/GSOC2017Lte#Project_summary Enabling LTE CA handover to secondary cell] by Alexander Krotov&lt;br /&gt;
* [http://mailman.isi.edu/pipermail/ns-developers/2017-September/013929.html TCP Prague] by Shravya Ks&lt;br /&gt;
* [http://mailman.isi.edu/pipermail/ns-developers/2017-September/013918.html LTE and IPv6 support] by Manoj Kumar Rana&lt;br /&gt;
* [http://mailman.isi.edu/pipermail/ns-developers/2017-September/013921.html TBF and HHF] by Surya Seetharaman&lt;br /&gt;
&lt;br /&gt;
== Phase 2 reports ==&lt;br /&gt;
* [http://mailman.isi.edu/pipermail/ns-developers/2017-July/014038.html BCube and FatTree topology helpers (component of TCP Prague project)]&lt;br /&gt;
* [http://mailman.isi.edu/pipermail/ns-developers/2017-August/014054.html Implementation of TBF and HHF]&lt;br /&gt;
* [http://mailman.isi.edu/pipermail/ns-developers/2017-July/014047.html Enabling LTE CA handover to secondary cell, Phase 2]&lt;br /&gt;
* [http://mailman.isi.edu/pipermail/ns-developers/2017-July/014042.html ns-3 App Store]&lt;br /&gt;
* [http://mailman.isi.edu/pipermail/ns-developers/2017-July/014049.html Mobile IPv6 implementation with LTE support (report)]&lt;br /&gt;
* [http://mailman.isi.edu/pipermail/ns-developers/2017-August/014058.html Mobile IPv6 implementation with LTE support (review request)]&lt;br /&gt;
== Phase 1 reports ==&lt;br /&gt;
* [http://mailman.isi.edu/pipermail/ns-developers/2017-June/013980.html Data Center TCP (component of TCP Prague project)]&lt;br /&gt;
* [http://mailman.isi.edu/pipermail/ns-developers/2017-June/013982.html Implementation of TBF and HHF traffic control]&lt;br /&gt;
* [http://mailman.isi.edu/pipermail/ns-developers/2017-June/013983.html Enabling LTE CA handover to secondary cell, Phase 1]&lt;br /&gt;
* [http://mailman.isi.edu/pipermail/ns-developers/2017-June/013985.html ns-3 App Store]&lt;br /&gt;
* [http://mailman.isi.edu/pipermail/ns-developers/2017-June/013987.html Mobile IPv6 implementation with LTE support]&lt;br /&gt;
== Background ==&lt;br /&gt;
Below is some information that was used during the application phase.&lt;br /&gt;
&lt;br /&gt;
* [[GSOC2017Projects | Project Ideas Page]]&lt;br /&gt;
* [[GSOC2017StudentGuide | Student Application Guide]]&lt;br /&gt;
&lt;br /&gt;
= European Space Agency Summer of Code in Space (SOCIS) 2016 =&lt;br /&gt;
&lt;br /&gt;
ns-3 had one student (Michael Di Perna) successfully complete the 2016 [http://sophia.estec.esa.int/socis/ ESA Summer of Code in Space].  &lt;br /&gt;
&lt;br /&gt;
* [[SOCIS2016 | Project page]] for Optical Satellite Systems project&lt;br /&gt;
* [[SOCIS2016Projects#Project_Ideas | Project Ideas page]]&lt;br /&gt;
&lt;br /&gt;
= Mentored summer projects 2016 =&lt;br /&gt;
&lt;br /&gt;
ns-3 maintainers will mentor additional summer projects (that students will work on using their own sources of funding) on a best-effort basis.  Students interested in this option should review the GSoC or SOCIS ideas page, or propose their own.&lt;br /&gt;
&lt;br /&gt;
* See [[MentoredProjects2016]]&lt;br /&gt;
&lt;br /&gt;
= Google Summer of Code 2016 =&lt;br /&gt;
&lt;br /&gt;
ns-3 was not selected for the 2016 [https://developers.google.com/open-source/gsoc/ Google Summer of Code].  We mentored two summer projects outside of GSoC.  Below were our materials prepared for our GSoC organizational application.&lt;br /&gt;
* [[GSOC2016Projects | Project ideas page]]&lt;br /&gt;
* [[GSOCStudentGuide | Student guide]]&lt;br /&gt;
&lt;br /&gt;
= Google Summer of Code 2015 =&lt;br /&gt;
&lt;br /&gt;
ns-3 was selected to participate in the 2015 [http://www.google-melange.com/gsoc/homepage/google/gsoc2015 Google Summer of Code].  More information can be found on our Project Ideas page and our Student Guide.&lt;br /&gt;
&lt;br /&gt;
* [[GSOC2015AcceptedProjects | Accepted projects]]&lt;br /&gt;
* [[GSOC2015Projects | Project ideas page]]&lt;br /&gt;
* [[GSOC2015StudentGuide | Student guide]]&lt;br /&gt;
&lt;br /&gt;
This year's students were announced on April 27, and all four successfully completed the program:&lt;br /&gt;
&lt;br /&gt;
* Melchiorre Danilo Abrignani, [[GSOC2015LTECA | Carrier Aggregation support for the LTE module]]&lt;br /&gt;
* Matthieu Coudron, [[GSOC2015MpTcpImplementation | Implementing multipath TCP (MPTCP) in ns3]]&lt;br /&gt;
* Natale Patriciello, [[GSOC2015TCPTest | TCP layer refactoring with automated test on RFC compliance and validation]]&lt;br /&gt;
* Vishwesh Rege, [[GSOC2015LrWpanMac | 802.15.4 realistic MAC and Energy Model]]&lt;br /&gt;
&lt;br /&gt;
= European Space Agency Summer of Code in Space (SOCIS) 2015 =&lt;br /&gt;
&lt;br /&gt;
ns-3 has been accepted to the 2015 [http://sophia.estec.esa.int/socis2015/ ESA Summer of Code in Space].  The ns-3 project had one student in SOCIS in each of 2013, 2014 and 2015.  However, the satellite channel models project for 2015 [[SOCIS2015 | Satellite channel models]] did not successfully complete.&lt;br /&gt;
&lt;br /&gt;
* [[SOCIS2015Projects | Project ideas page]] (for reference)&lt;br /&gt;
&lt;br /&gt;
= Mentored summer projects =&lt;br /&gt;
&lt;br /&gt;
ns-3 maintainers will mentor additional summer projects (that students will work on using their own sources of funding) on a best-effort basis.  Students interested in this option should review the GSoC or SOCIS ideas page, or propose their own.&lt;br /&gt;
&lt;br /&gt;
We have one such mentored project in 2015:&lt;br /&gt;
&lt;br /&gt;
* Saswat Mishra, [[NeighborDiscoveryProject | Neighbor Discovery enhancements]]&lt;br /&gt;
&lt;br /&gt;
= Past summer projects =&lt;br /&gt;
&lt;br /&gt;
* [[GSOC2014AcceptedProjects | GSoC 2014 Accepted Projects]]&lt;br /&gt;
* [[SOCIS2014TCP | SOCIS 2014 Accepted Project]]&lt;br /&gt;
* [[MentoredProjects2014 | 2014 Mentored Projects]]&lt;br /&gt;
* [[SOCIS2013BundleProtocolProject | SOCIS 2013 Accepted Project]]&lt;br /&gt;
* [[GSOC2013AcceptedProjects | GSoC 2013 Accepted Projects]]&lt;br /&gt;
* [[GSOC2012AcceptedProjects |GSoC 2012 Accepted Projects]]&lt;br /&gt;
* [[NSOC2011AcceptedProjects |NSoC 2011 Accepted Projects]]&lt;br /&gt;
* [[GSOC2010AcceptedProjects |GSoC 2010 Accepted Projects]]&lt;br /&gt;
* [[GSOC2009AcceptedProjects |GSoC 2009 Accepted Projects]]&lt;br /&gt;
* [https://developers.google.com/open-source/soc/2008/?csw=1#ns3 GSoC 2008 Accepted Projects]&lt;/div&gt;</summary>
		<author><name>Davidzylin</name></author>
	</entry>
	<entry>
		<id>https://www.nsnam.org/mediawiki/index.php?title=GSOC2025AqmEvaluation&amp;diff=13578</id>
		<title>GSOC2025AqmEvaluation</title>
		<link rel="alternate" type="text/html" href="https://www.nsnam.org/mediawiki/index.php?title=GSOC2025AqmEvaluation&amp;diff=13578"/>
		<updated>2025-06-22T20:06:11Z</updated>

		<summary type="html">&lt;p&gt;Davidzylin: /* Weekly Updates */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TOC}}&lt;br /&gt;
&lt;br /&gt;
Back to [[Summer_Projects#Google_Summer_of_Code_2025 | GSoC 2025 projects]]&lt;br /&gt;
&lt;br /&gt;
= Project Overview =&lt;br /&gt;
&lt;br /&gt;
* '''Project Name:''' Upgrade the AQM Evaluation Suite for ns-3&lt;br /&gt;
* '''Student:''' David Lin&lt;br /&gt;
* '''Mentors:''' Mohit P. Tahiliani, Aniket Singh and Tom Henderson&lt;br /&gt;
* '''Google Page:''' [https://summerofcode.withgoogle.com/programs/2025/projects/d7sZPqy6 LINK]&lt;br /&gt;
* '''Project Proposal:''' [https://davidzylin.notion.site/Proposal-Upgrade-the-AQM-Evaluation-Suite-for-ns-3-1bbad0d7128d80be9d7df771f053491e?pvs=143 LINK]&lt;br /&gt;
* '''Project Goals:''' The AQM Evaluation Suite is an automated framework based on RFC 7928 that simplifies simulation setup, topology creation, traffic generation, execution, and results visualization of AQM algorithms in ns-3. Originally developed in 2017 and maintained until 2019, the suite now needs an upgrade to: (1) Migrate its build system from waf to CMake (2) Integrate support for state-of-the-art AQM algorithms and enhanced ECN functionalities (3) Update simulation examples to reflect modern traffic control models (4) Package and publish the suite on the ns-3 App Store&lt;br /&gt;
* '''Repository:''' [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev LINK]&lt;br /&gt;
* '''About Me:''' I'm a CS undergrad student at the University of Toronto. I've been deeply passionate about computer network and systems in general, it's my honour to work with such a wonderful community like ns-3!&lt;br /&gt;
&lt;br /&gt;
= Milestones =&lt;br /&gt;
&lt;br /&gt;
* CMake Migration&lt;br /&gt;
** Migrate the AQM Evaluation Suite’s build system from Waf to CMake&lt;br /&gt;
&lt;br /&gt;
* TCP &amp;amp; ECN Enhancements&lt;br /&gt;
** Upgrading the configuration defaults, including replacing TCP BIC with TCP Cubic in the evaluation suite. ECN support will be added by incorporating new tests and scenarios that utilize ECN signaling and feedback mechanisms. If other configuration defaults require updating, those changes will also be made.&lt;br /&gt;
&lt;br /&gt;
* Upgrade AQM Algorithms&lt;br /&gt;
** Support newer AQM algorithms. Parameter configurations will be added following RFC 7928 guidelines, and new scenarios will be implemented to demonstrate modern traffic control use cases.&lt;br /&gt;
&lt;br /&gt;
* Packaging&lt;br /&gt;
** The module will be prepared for submission to the ns-3 App Store or into the mainline, including compliance with metadata and technical requirements.&lt;br /&gt;
&lt;br /&gt;
= Weekly Updates =&lt;br /&gt;
&lt;br /&gt;
* '''Community Bonding Period (May 8-31, 2025)'''&lt;br /&gt;
** Migrated the existing AQM Evaluation Suite codebase from [https://github.com/aqm-eval-suite/ns-3-dev-git GitHub] to the new [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev GitLab] repository for centralized development.&lt;br /&gt;
** Conducted an in-depth analysis of the original AQM Evaluation Suite paper. Extracted key highlights and formulated a structured list of [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev/-/issues/1 action items] to align with recent advancements in ns-3.&lt;br /&gt;
** The original aqm-eval-suite was based on ns-3.30, and during the migration process, I identified an issue in the AggressiveSender scenario starting from ns-3.41, where aggressive TCP variants (BIC, HighSpeed, YeAH) no longer matched prior results (for more detailed comparisons, please see [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev/-/issues/6 #6]). Comparing with the examples from tcp-cubit, I discovered enabling pacing through &amp;lt;code&amp;gt;Config::SetDefault(&amp;quot;ns3::TcpSocketState::EnablePacing&amp;quot;, BooleanValue(true));&amp;lt;/code&amp;gt; restores expected behaviour and notably, NewReno remains unaffected.&lt;br /&gt;
&lt;br /&gt;
* '''Week 1 (June 1-7, 2025)'''&lt;br /&gt;
&lt;br /&gt;
** ns-3 has transitioned from Waf to CMake as the primary build system, but the AQM evaluation suite still uses Waf configuration. I've migrated the existing build system from Waf to CMake for compatibility with latest version of ns-3 ([https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev/-/merge_requests/1 Changes]). Ensured successful compilation across supported platforms and passed all tests.&lt;br /&gt;
** The original paper for AQM Evaluation Suite uses TCP BIC for the aggressive sender as TCP CUBIC wasn't implemented in ns-3; However, TCP CUBIC is now supported in ns-3. I've added support for TCP CUBIC in the AQM Evaluation Suite and replaced TCP BIC with TCP CUBIC for default aggressive congestion control in the examples. This addressed the limitation of the paper and aligns with the requirements from RFC 7928;&lt;br /&gt;
** The original paper for AQM Evaluation Suite states &amp;quot;TCP NewReno is the default congestion control in ns-3&amp;quot; but latest ns-3 uses CUBIC as default. I've investigated and validated ([https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev/-/work_items/4 #4]) that TCP NewReno is indeed explicitly configured to eliminate surprises due to version upgrades as latest ns-3 uses CUBIC as default.&lt;br /&gt;
&lt;br /&gt;
* '''Week 2 (June 8-14, 2025)'''&lt;br /&gt;
** The original paper for AQM Evaluation Suite had the limitation that ECN support was under development, whereas now ns-3 has ECN support available. I've evaluated ECN support for AQM algorithms as outlined in RFC 7928 §4.5, and I've implemented the changes such that ECN was activated both at the queue level (e.g., for RED) and at the TCP sender level, based on ns-3 documentation and examples. For supported scenarios, ECN can be enabled through the &amp;lt;code&amp;gt;--ecn=true&amp;lt;/code&amp;gt; flag. Results confirm that ECN configurations are taking effect, as the queue delay v.s. good-put shows that the algorithms that support ECN have values more concentrated around the mean, resulting in a smaller ellipsoid. This indicates a reduction in variance and a tighter Gaussian distribution, with the data clustering more closely around the center, which is the effect of ECN. Pfifo remains identical as the algorithm doesn't support ECN. For the comparisons, please see [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev/-/merge_requests/4 !4].&lt;br /&gt;
&lt;br /&gt;
* '''Week 3 (June 15-21, 2025)'''&lt;br /&gt;
** Originally, the AQM Evaluation Suite saves each run under the &amp;lt;code&amp;gt;aqm-eval-output&amp;lt;/code&amp;gt; folder, and each run will be overwritten by the subsequent runs. I've redesigned the behaviour so that each run will be saved separately, each run will create the &amp;lt;code&amp;gt;aqm-eval-output/{timestamp}&amp;lt;/code&amp;gt; folder, and will also have a &amp;lt;code&amp;gt;run_config.json&amp;lt;/code&amp;gt; file to record the configuration of each run.&lt;br /&gt;
&lt;br /&gt;
= Resources =&lt;br /&gt;
&lt;br /&gt;
* AQM Evaluation Suite [[https://dl.acm.org/doi/abs/10.1145/3067665.3067674 Paper]] [[https://aqm-eval-suite.github.io/ Implementation]]&lt;br /&gt;
* [https://tools.ietf.org/html/rfc7928 RFC 7928]&lt;br /&gt;
* [https://www.nsnam.org/docs/models/html/traffic-control-layer.html Traffic Control Model in ns-3]&lt;/div&gt;</summary>
		<author><name>Davidzylin</name></author>
	</entry>
	<entry>
		<id>https://www.nsnam.org/mediawiki/index.php?title=GSOC2025AqmEvaluation&amp;diff=13577</id>
		<title>GSOC2025AqmEvaluation</title>
		<link rel="alternate" type="text/html" href="https://www.nsnam.org/mediawiki/index.php?title=GSOC2025AqmEvaluation&amp;diff=13577"/>
		<updated>2025-06-21T23:57:59Z</updated>

		<summary type="html">&lt;p&gt;Davidzylin: /* Weekly Updates */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TOC}}&lt;br /&gt;
&lt;br /&gt;
Back to [[Summer_Projects#Google_Summer_of_Code_2025 | GSoC 2025 projects]]&lt;br /&gt;
&lt;br /&gt;
= Project Overview =&lt;br /&gt;
&lt;br /&gt;
* '''Project Name:''' Upgrade the AQM Evaluation Suite for ns-3&lt;br /&gt;
* '''Student:''' David Lin&lt;br /&gt;
* '''Mentors:''' Mohit P. Tahiliani, Aniket Singh and Tom Henderson&lt;br /&gt;
* '''Google Page:''' [https://summerofcode.withgoogle.com/programs/2025/projects/d7sZPqy6 LINK]&lt;br /&gt;
* '''Project Proposal:''' [https://davidzylin.notion.site/Proposal-Upgrade-the-AQM-Evaluation-Suite-for-ns-3-1bbad0d7128d80be9d7df771f053491e?pvs=143 LINK]&lt;br /&gt;
* '''Project Goals:''' The AQM Evaluation Suite is an automated framework based on RFC 7928 that simplifies simulation setup, topology creation, traffic generation, execution, and results visualization of AQM algorithms in ns-3. Originally developed in 2017 and maintained until 2019, the suite now needs an upgrade to: (1) Migrate its build system from waf to CMake (2) Integrate support for state-of-the-art AQM algorithms and enhanced ECN functionalities (3) Update simulation examples to reflect modern traffic control models (4) Package and publish the suite on the ns-3 App Store&lt;br /&gt;
* '''Repository:''' [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev LINK]&lt;br /&gt;
* '''About Me:''' I'm a CS undergrad student at the University of Toronto. I've been deeply passionate about computer network and systems in general, it's my honour to work with such a wonderful community like ns-3!&lt;br /&gt;
&lt;br /&gt;
= Milestones =&lt;br /&gt;
&lt;br /&gt;
* CMake Migration&lt;br /&gt;
** Migrate the AQM Evaluation Suite’s build system from Waf to CMake&lt;br /&gt;
&lt;br /&gt;
* TCP &amp;amp; ECN Enhancements&lt;br /&gt;
** Upgrading the configuration defaults, including replacing TCP BIC with TCP Cubic in the evaluation suite. ECN support will be added by incorporating new tests and scenarios that utilize ECN signaling and feedback mechanisms. If other configuration defaults require updating, those changes will also be made.&lt;br /&gt;
&lt;br /&gt;
* Upgrade AQM Algorithms&lt;br /&gt;
** Support newer AQM algorithms. Parameter configurations will be added following RFC 7928 guidelines, and new scenarios will be implemented to demonstrate modern traffic control use cases.&lt;br /&gt;
&lt;br /&gt;
* Packaging&lt;br /&gt;
** The module will be prepared for submission to the ns-3 App Store or into the mainline, including compliance with metadata and technical requirements.&lt;br /&gt;
&lt;br /&gt;
= Weekly Updates =&lt;br /&gt;
&lt;br /&gt;
* '''Community Bonding Period (May 8-31, 2025)'''&lt;br /&gt;
** Migrated the existing AQM Evaluation Suite codebase from [https://github.com/aqm-eval-suite/ns-3-dev-git GitHub] to the new [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev GitLab] repository for centralized development.&lt;br /&gt;
** Conducted an in-depth analysis of the original AQM Evaluation Suite paper. Extracted key highlights and formulated a structured list of [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev/-/issues/1 action items] to align with recent advancements in ns-3.&lt;br /&gt;
** The original aqm-eval-suite was based on ns-3.30, and during the migration process, I identified an issue in the AggressiveSender scenario starting from ns-3.41, where aggressive TCP variants (BIC, HighSpeed, YeAH) no longer matched prior results (for more detailed comparisons, please see [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev/-/issues/6 #6]). Comparing with the examples from tcp-cubit, I discovered enabling pacing through &amp;lt;code&amp;gt;Config::SetDefault(&amp;quot;ns3::TcpSocketState::EnablePacing&amp;quot;, BooleanValue(true));&amp;lt;/code&amp;gt; restores expected behaviour and notably, NewReno remains unaffected.&lt;br /&gt;
&lt;br /&gt;
* '''Week 1 (June 1-7, 2025)'''&lt;br /&gt;
&lt;br /&gt;
** ns-3 has transitioned from Waf to CMake as the primary build system, but the AQM evaluation suite still uses Waf configuration. I've migrated the existing build system from Waf to CMake for compatibility with latest version of ns-3 ([https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev/-/merge_requests/1 Changes]). Ensured successful compilation across supported platforms and passed all tests.&lt;br /&gt;
** The original paper for AQM Evaluation Suite uses TCP BIC for the aggressive sender as TCP CUBIC wasn't implemented in ns-3; However, TCP CUBIC is now supported in ns-3. I've added support for TCP CUBIC in the AQM Evaluation Suite and replaced TCP BIC with TCP CUBIC for default aggressive congestion control in the examples. This addressed the limitation of the paper and aligns with the requirements from RFC 7928;&lt;br /&gt;
** The original paper for AQM Evaluation Suite states &amp;quot;TCP NewReno is the default congestion control in ns-3&amp;quot; but latest ns-3 uses CUBIC as default. I've investigated and validated ([https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev/-/work_items/4 #4]) that TCP NewReno is indeed explicitly configured to eliminate surprises due to version upgrades as latest ns-3 uses CUBIC as default.&lt;br /&gt;
&lt;br /&gt;
* '''Week 2 (June 8-14, 2025)'''&lt;br /&gt;
** The original paper for AQM Evaluation Suite had the limitation that ECN support was under development, whereas now ns-3 has ECN support available. I've evaluated ECN support for AQM algorithms as outlined in RFC 7928 §4.5, and I've implemented the changes such that ECN was activated both at the queue level (e.g., for RED) and at the TCP sender level, based on ns-3 documentation and examples. For supported scenarios, ECN can be enabled through the &amp;lt;code&amp;gt;--ecn=true&amp;lt;/code&amp;gt; flag. Results confirm that ECN configurations are taking effect, as the queue delay v.s. good-put shows that the algorithms that support ECN have values more concentrated around the mean, resulting in a smaller ellipsoid. This indicates a reduction in variance and a tighter Gaussian distribution, with the data clustering more closely around the center, which is the effect of ECN. Pfifo remains identical as the algorithm doesn't support ECN. For the comparisons, please see [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev/-/merge_requests/4 !4].&lt;br /&gt;
&lt;br /&gt;
* '''Week 3 (June 15-21, 2025)'''&lt;br /&gt;
&lt;br /&gt;
= Resources =&lt;br /&gt;
&lt;br /&gt;
* AQM Evaluation Suite [[https://dl.acm.org/doi/abs/10.1145/3067665.3067674 Paper]] [[https://aqm-eval-suite.github.io/ Implementation]]&lt;br /&gt;
* [https://tools.ietf.org/html/rfc7928 RFC 7928]&lt;br /&gt;
* [https://www.nsnam.org/docs/models/html/traffic-control-layer.html Traffic Control Model in ns-3]&lt;/div&gt;</summary>
		<author><name>Davidzylin</name></author>
	</entry>
	<entry>
		<id>https://www.nsnam.org/mediawiki/index.php?title=GSOC2025AqmEvaluation&amp;diff=13576</id>
		<title>GSOC2025AqmEvaluation</title>
		<link rel="alternate" type="text/html" href="https://www.nsnam.org/mediawiki/index.php?title=GSOC2025AqmEvaluation&amp;diff=13576"/>
		<updated>2025-06-21T23:57:38Z</updated>

		<summary type="html">&lt;p&gt;Davidzylin: /* Weekly Updates */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TOC}}&lt;br /&gt;
&lt;br /&gt;
Back to [[Summer_Projects#Google_Summer_of_Code_2025 | GSoC 2025 projects]]&lt;br /&gt;
&lt;br /&gt;
= Project Overview =&lt;br /&gt;
&lt;br /&gt;
* '''Project Name:''' Upgrade the AQM Evaluation Suite for ns-3&lt;br /&gt;
* '''Student:''' David Lin&lt;br /&gt;
* '''Mentors:''' Mohit P. Tahiliani, Aniket Singh and Tom Henderson&lt;br /&gt;
* '''Google Page:''' [https://summerofcode.withgoogle.com/programs/2025/projects/d7sZPqy6 LINK]&lt;br /&gt;
* '''Project Proposal:''' [https://davidzylin.notion.site/Proposal-Upgrade-the-AQM-Evaluation-Suite-for-ns-3-1bbad0d7128d80be9d7df771f053491e?pvs=143 LINK]&lt;br /&gt;
* '''Project Goals:''' The AQM Evaluation Suite is an automated framework based on RFC 7928 that simplifies simulation setup, topology creation, traffic generation, execution, and results visualization of AQM algorithms in ns-3. Originally developed in 2017 and maintained until 2019, the suite now needs an upgrade to: (1) Migrate its build system from waf to CMake (2) Integrate support for state-of-the-art AQM algorithms and enhanced ECN functionalities (3) Update simulation examples to reflect modern traffic control models (4) Package and publish the suite on the ns-3 App Store&lt;br /&gt;
* '''Repository:''' [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev LINK]&lt;br /&gt;
* '''About Me:''' I'm a CS undergrad student at the University of Toronto. I've been deeply passionate about computer network and systems in general, it's my honour to work with such a wonderful community like ns-3!&lt;br /&gt;
&lt;br /&gt;
= Milestones =&lt;br /&gt;
&lt;br /&gt;
* CMake Migration&lt;br /&gt;
** Migrate the AQM Evaluation Suite’s build system from Waf to CMake&lt;br /&gt;
&lt;br /&gt;
* TCP &amp;amp; ECN Enhancements&lt;br /&gt;
** Upgrading the configuration defaults, including replacing TCP BIC with TCP Cubic in the evaluation suite. ECN support will be added by incorporating new tests and scenarios that utilize ECN signaling and feedback mechanisms. If other configuration defaults require updating, those changes will also be made.&lt;br /&gt;
&lt;br /&gt;
* Upgrade AQM Algorithms&lt;br /&gt;
** Support newer AQM algorithms. Parameter configurations will be added following RFC 7928 guidelines, and new scenarios will be implemented to demonstrate modern traffic control use cases.&lt;br /&gt;
&lt;br /&gt;
* Packaging&lt;br /&gt;
** The module will be prepared for submission to the ns-3 App Store or into the mainline, including compliance with metadata and technical requirements.&lt;br /&gt;
&lt;br /&gt;
= Weekly Updates =&lt;br /&gt;
&lt;br /&gt;
* '''Community Bonding Period (May 8-31, 2025)'''&lt;br /&gt;
** Migrated the existing AQM Evaluation Suite codebase from [https://github.com/aqm-eval-suite/ns-3-dev-git GitHub] to the new [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev GitLab] repository for centralized development.&lt;br /&gt;
** Conducted an in-depth analysis of the original AQM Evaluation Suite paper. Extracted key highlights and formulated a structured list of [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev/-/issues/1 action items] to align with recent advancements in ns-3.&lt;br /&gt;
** The original aqm-eval-suite was based on ns-3.30, and during the migration process, I identified an issue in the AggressiveSender scenario starting from ns-3.41, where aggressive TCP variants (BIC, HighSpeed, YeAH) no longer matched prior results (for more detailed comparisons, please see [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev/-/issues/6 #6]). Comparing with the examples from tcp-cubit, I discovered enabling pacing through &amp;lt;code&amp;gt;Config::SetDefault(&amp;quot;ns3::TcpSocketState::EnablePacing&amp;quot;, BooleanValue(true));&amp;lt;/code&amp;gt; restores expected behaviour and notably, NewReno remains unaffected.&lt;br /&gt;
&lt;br /&gt;
* '''Week 1 (June 1-7, 2025)'''&lt;br /&gt;
&lt;br /&gt;
** ns-3 has transitioned from Waf to CMake as the primary build system, but the AQM evaluation suite still uses Waf configuration. I've migrated the existing build system from Waf to CMake for compatibility with latest version of ns-3 ([https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev/-/merge_requests/1 Changes]). Ensured successful compilation across supported platforms and passed all tests.&lt;br /&gt;
** The original paper for AQM Evaluation Suite uses TCP BIC for the aggressive sender as TCP CUBIC wasn't implemented in ns-3; However, TCP CUBIC is now supported in ns-3. I've added support for TCP CUBIC in the AQM Evaluation Suite and replaced TCP BIC with TCP CUBIC for default aggressive congestion control in the examples. This addressed the limitation of the paper and aligns with the requirements from RFC 7928;&lt;br /&gt;
** The original paper for AQM Evaluation Suite states &amp;quot;TCP NewReno is the default congestion control in ns-3&amp;quot; but latest ns-3 uses CUBIC as default. I've investigated and validated ([https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev/-/work_items/4 #4]) that TCP NewReno is indeed explicitly configured to eliminate surprises due to version upgrades as latest ns-3 uses CUBIC as default.&lt;br /&gt;
&lt;br /&gt;
* '''Week 2 (June 8-14, 2025)'''&lt;br /&gt;
** The original paper for AQM Evaluation Suite had the limitation that ECN support was under development, whereas now ns-3 has ECN support available. I've evaluated ECN support for AQM algorithms as outlined in RFC 7928 §4.5, and I've implemented the changes such that ECN was activated both at the queue level (e.g., for RED) and at the TCP sender level, based on ns-3 documentation and examples. For supported scenarios, ECN can be enabled through the &amp;lt;code&amp;gt;--ecn=true&amp;lt;/code&amp;gt; flag. Results confirm that ECN configurations are taking effect, as the queue delay v.s. good-put shows that the algorithms that support ECN have values more concentrated around the mean, resulting in a smaller ellipsoid. This indicates a reduction in variance and a tighter Gaussian distribution, with the data clustering more closely around the center, which is the effect of ECN. Pfifo remains identical as the algorithm doesn't support ECN. For the comparisons, please see [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev/-/merge_requests/4 !4]&lt;br /&gt;
&lt;br /&gt;
* '''Week 3 (June 15-21, 2025)'''&lt;br /&gt;
&lt;br /&gt;
= Resources =&lt;br /&gt;
&lt;br /&gt;
* AQM Evaluation Suite [[https://dl.acm.org/doi/abs/10.1145/3067665.3067674 Paper]] [[https://aqm-eval-suite.github.io/ Implementation]]&lt;br /&gt;
* [https://tools.ietf.org/html/rfc7928 RFC 7928]&lt;br /&gt;
* [https://www.nsnam.org/docs/models/html/traffic-control-layer.html Traffic Control Model in ns-3]&lt;/div&gt;</summary>
		<author><name>Davidzylin</name></author>
	</entry>
	<entry>
		<id>https://www.nsnam.org/mediawiki/index.php?title=GSOC2025AqmEvaluation&amp;diff=13575</id>
		<title>GSOC2025AqmEvaluation</title>
		<link rel="alternate" type="text/html" href="https://www.nsnam.org/mediawiki/index.php?title=GSOC2025AqmEvaluation&amp;diff=13575"/>
		<updated>2025-06-21T23:54:43Z</updated>

		<summary type="html">&lt;p&gt;Davidzylin: /* Weekly Updates */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TOC}}&lt;br /&gt;
&lt;br /&gt;
Back to [[Summer_Projects#Google_Summer_of_Code_2025 | GSoC 2025 projects]]&lt;br /&gt;
&lt;br /&gt;
= Project Overview =&lt;br /&gt;
&lt;br /&gt;
* '''Project Name:''' Upgrade the AQM Evaluation Suite for ns-3&lt;br /&gt;
* '''Student:''' David Lin&lt;br /&gt;
* '''Mentors:''' Mohit P. Tahiliani, Aniket Singh and Tom Henderson&lt;br /&gt;
* '''Google Page:''' [https://summerofcode.withgoogle.com/programs/2025/projects/d7sZPqy6 LINK]&lt;br /&gt;
* '''Project Proposal:''' [https://davidzylin.notion.site/Proposal-Upgrade-the-AQM-Evaluation-Suite-for-ns-3-1bbad0d7128d80be9d7df771f053491e?pvs=143 LINK]&lt;br /&gt;
* '''Project Goals:''' The AQM Evaluation Suite is an automated framework based on RFC 7928 that simplifies simulation setup, topology creation, traffic generation, execution, and results visualization of AQM algorithms in ns-3. Originally developed in 2017 and maintained until 2019, the suite now needs an upgrade to: (1) Migrate its build system from waf to CMake (2) Integrate support for state-of-the-art AQM algorithms and enhanced ECN functionalities (3) Update simulation examples to reflect modern traffic control models (4) Package and publish the suite on the ns-3 App Store&lt;br /&gt;
* '''Repository:''' [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev LINK]&lt;br /&gt;
* '''About Me:''' I'm a CS undergrad student at the University of Toronto. I've been deeply passionate about computer network and systems in general, it's my honour to work with such a wonderful community like ns-3!&lt;br /&gt;
&lt;br /&gt;
= Milestones =&lt;br /&gt;
&lt;br /&gt;
* CMake Migration&lt;br /&gt;
** Migrate the AQM Evaluation Suite’s build system from Waf to CMake&lt;br /&gt;
&lt;br /&gt;
* TCP &amp;amp; ECN Enhancements&lt;br /&gt;
** Upgrading the configuration defaults, including replacing TCP BIC with TCP Cubic in the evaluation suite. ECN support will be added by incorporating new tests and scenarios that utilize ECN signaling and feedback mechanisms. If other configuration defaults require updating, those changes will also be made.&lt;br /&gt;
&lt;br /&gt;
* Upgrade AQM Algorithms&lt;br /&gt;
** Support newer AQM algorithms. Parameter configurations will be added following RFC 7928 guidelines, and new scenarios will be implemented to demonstrate modern traffic control use cases.&lt;br /&gt;
&lt;br /&gt;
* Packaging&lt;br /&gt;
** The module will be prepared for submission to the ns-3 App Store or into the mainline, including compliance with metadata and technical requirements.&lt;br /&gt;
&lt;br /&gt;
= Weekly Updates =&lt;br /&gt;
&lt;br /&gt;
* '''Community Bonding Period (May 8-31, 2025)'''&lt;br /&gt;
** Migrated the existing AQM Evaluation Suite codebase from [https://github.com/aqm-eval-suite/ns-3-dev-git GitHub] to the new [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev GitLab] repository for centralized development.&lt;br /&gt;
** Conducted an in-depth analysis of the original AQM Evaluation Suite paper. Extracted key highlights and formulated a structured list of [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev/-/issues/1 action items] to align with recent advancements in ns-3.&lt;br /&gt;
** The original aqm-eval-suite was based on ns-3.30, and during the migration process, I identified an issue in the AggressiveSender scenario starting from ns-3.41, where aggressive TCP variants (BIC, HighSpeed, YeAH) no longer matched prior results (for more detailed comparisons, please see [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev/-/issues/6 #6]). Comparing with the examples from tcp-cubit, I discovered enabling pacing through &amp;lt;code&amp;gt;Config::SetDefault(&amp;quot;ns3::TcpSocketState::EnablePacing&amp;quot;, BooleanValue(true));&amp;lt;/code&amp;gt; restores expected behaviour and notably, NewReno remains unaffected.&lt;br /&gt;
&lt;br /&gt;
* '''Week 1 (June 1-7, 2025)'''&lt;br /&gt;
&lt;br /&gt;
** ns-3 has transitioned from Waf to CMake as the primary build system, but the AQM evaluation suite still uses Waf configuration. I've migrated the existing build system from Waf to CMake for compatibility with latest version of ns-3 ([https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev/-/merge_requests/1 Changes]). Ensured successful compilation across supported platforms and passed all tests.&lt;br /&gt;
** The original paper for AQM Evaluation Suite uses TCP BIC for the aggressive sender as TCP CUBIC wasn't implemented in ns-3; However, TCP CUBIC is now supported in ns-3. I've added support for TCP CUBIC in the AQM Evaluation Suite and replaced TCP BIC with TCP CUBIC for default aggressive congestion control in the examples. This addressed the limitation of the paper and aligns with the requirements from RFC 7928;&lt;br /&gt;
** Investigated and validated ([https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev/-/work_items/4 #4]) that TCP NewReno is indeed explicitly configured to eliminate surprises due to version upgrades as latest ns-3 uses CUBIC as default.&lt;br /&gt;
&lt;br /&gt;
* '''Week 2 (June 8-14, 2025)'''&lt;br /&gt;
** The original paper for AQM Evaluation Suite had the limitation that ECN support was under development, whereas now ns-3 has ECN support available. I've evaluated ECN support for AQM algorithms as outlined in RFC 7928 §4.5, and I've implemented the changes such that ECN was activated both at the queue level (e.g., for RED) and at the TCP sender level, based on ns-3 documentation and examples. For supported scenarios, ECN can be enabled through the &amp;lt;code&amp;gt;--ecn=true&amp;lt;/code&amp;gt; flag. Results confirm that ECN configurations are taking effect, as the queue delay v.s. good-put shows that the algorithms that support ECN have values more concentrated around the mean, resulting in a smaller ellipsoid. This indicates a reduction in variance and a tighter Gaussian distribution, with the data clustering more closely around the center, which is the effect of ECN. Pfifo remains identical as the algorithm doesn't support ECN. For the comparisons, please see [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev/-/merge_requests/4 !4]&lt;br /&gt;
&lt;br /&gt;
* '''Week 3 (June 15-21, 2025)'''&lt;br /&gt;
&lt;br /&gt;
= Resources =&lt;br /&gt;
&lt;br /&gt;
* AQM Evaluation Suite [[https://dl.acm.org/doi/abs/10.1145/3067665.3067674 Paper]] [[https://aqm-eval-suite.github.io/ Implementation]]&lt;br /&gt;
* [https://tools.ietf.org/html/rfc7928 RFC 7928]&lt;br /&gt;
* [https://www.nsnam.org/docs/models/html/traffic-control-layer.html Traffic Control Model in ns-3]&lt;/div&gt;</summary>
		<author><name>Davidzylin</name></author>
	</entry>
	<entry>
		<id>https://www.nsnam.org/mediawiki/index.php?title=GSOC2025AqmEvaluation&amp;diff=13574</id>
		<title>GSOC2025AqmEvaluation</title>
		<link rel="alternate" type="text/html" href="https://www.nsnam.org/mediawiki/index.php?title=GSOC2025AqmEvaluation&amp;diff=13574"/>
		<updated>2025-06-21T23:53:44Z</updated>

		<summary type="html">&lt;p&gt;Davidzylin: /* Weekly Updates */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TOC}}&lt;br /&gt;
&lt;br /&gt;
Back to [[Summer_Projects#Google_Summer_of_Code_2025 | GSoC 2025 projects]]&lt;br /&gt;
&lt;br /&gt;
= Project Overview =&lt;br /&gt;
&lt;br /&gt;
* '''Project Name:''' Upgrade the AQM Evaluation Suite for ns-3&lt;br /&gt;
* '''Student:''' David Lin&lt;br /&gt;
* '''Mentors:''' Mohit P. Tahiliani, Aniket Singh and Tom Henderson&lt;br /&gt;
* '''Google Page:''' [https://summerofcode.withgoogle.com/programs/2025/projects/d7sZPqy6 LINK]&lt;br /&gt;
* '''Project Proposal:''' [https://davidzylin.notion.site/Proposal-Upgrade-the-AQM-Evaluation-Suite-for-ns-3-1bbad0d7128d80be9d7df771f053491e?pvs=143 LINK]&lt;br /&gt;
* '''Project Goals:''' The AQM Evaluation Suite is an automated framework based on RFC 7928 that simplifies simulation setup, topology creation, traffic generation, execution, and results visualization of AQM algorithms in ns-3. Originally developed in 2017 and maintained until 2019, the suite now needs an upgrade to: (1) Migrate its build system from waf to CMake (2) Integrate support for state-of-the-art AQM algorithms and enhanced ECN functionalities (3) Update simulation examples to reflect modern traffic control models (4) Package and publish the suite on the ns-3 App Store&lt;br /&gt;
* '''Repository:''' [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev LINK]&lt;br /&gt;
* '''About Me:''' I'm a CS undergrad student at the University of Toronto. I've been deeply passionate about computer network and systems in general, it's my honour to work with such a wonderful community like ns-3!&lt;br /&gt;
&lt;br /&gt;
= Milestones =&lt;br /&gt;
&lt;br /&gt;
* CMake Migration&lt;br /&gt;
** Migrate the AQM Evaluation Suite’s build system from Waf to CMake&lt;br /&gt;
&lt;br /&gt;
* TCP &amp;amp; ECN Enhancements&lt;br /&gt;
** Upgrading the configuration defaults, including replacing TCP BIC with TCP Cubic in the evaluation suite. ECN support will be added by incorporating new tests and scenarios that utilize ECN signaling and feedback mechanisms. If other configuration defaults require updating, those changes will also be made.&lt;br /&gt;
&lt;br /&gt;
* Upgrade AQM Algorithms&lt;br /&gt;
** Support newer AQM algorithms. Parameter configurations will be added following RFC 7928 guidelines, and new scenarios will be implemented to demonstrate modern traffic control use cases.&lt;br /&gt;
&lt;br /&gt;
* Packaging&lt;br /&gt;
** The module will be prepared for submission to the ns-3 App Store or into the mainline, including compliance with metadata and technical requirements.&lt;br /&gt;
&lt;br /&gt;
= Weekly Updates =&lt;br /&gt;
&lt;br /&gt;
* '''Community Bonding Period (May 8-31, 2025)'''&lt;br /&gt;
** Migrated the existing AQM Evaluation Suite codebase from [https://github.com/aqm-eval-suite/ns-3-dev-git GitHub] to the new [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev GitLab] repository for centralized development.&lt;br /&gt;
** Conducted an in-depth analysis of the original AQM Evaluation Suite paper. Extracted key highlights and formulated a structured list of [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev/-/issues/1 action items] to align with recent advancements in ns-3.&lt;br /&gt;
** The original aqm-eval-suite was based on ns-3.30, and during the migration process, I identified an issue in the AggressiveSender scenario starting from ns-3.41, where aggressive TCP variants (BIC, HighSpeed, YeAH) no longer matched prior results (for more detailed comparisons, please see [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev/-/issues/6 #6]). Comparing with the examples from tcp-cubit, I discovered enabling pacing through &amp;lt;code&amp;gt;Config::SetDefault(&amp;quot;ns3::TcpSocketState::EnablePacing&amp;quot;, BooleanValue(true));&amp;lt;/code&amp;gt; restores expected behaviour and notably, NewReno remains unaffected.&lt;br /&gt;
&lt;br /&gt;
* '''Week 1 (June 1-7, 2025)'''&lt;br /&gt;
&lt;br /&gt;
** ns-3 has transitioned from Waf to CMake as the primary build system, but the AQM evaluation suite still uses Waf configuration. I've migrated the existing build system from Waf to CMake for compatibility with latest version of ns-3 ([https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev/-/merge_requests/1 Changes]). Ensured successful compilation across supported platforms and passed all tests.&lt;br /&gt;
** The original paper for AQM Evaluation Suite uses TCP BIC for the aggressive sender as TCP CUBIC wasn't implemented in ns-3; However, TCP CUBIC is now supported in ns-3. I've added support for TCP CUBIC in the AQM Evaluation Suite and replaced TCP BIC with TCP CUBIC for default aggressive congestion control in the examples. This addressed the limitation of the paper and aligns with the requirements from RFC 7928;&lt;br /&gt;
** Investigated and validated ([https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev/-/work_items/4 #4]) that TCP NewReno is indeed explicitly configured to eliminate surprises due to version upgrades as latest ns-3 uses CUBIC as default.&lt;br /&gt;
&lt;br /&gt;
* '''Week 2 (June 8-14, 2025)'''&lt;br /&gt;
** The original paper for AQM Evaluation Suite had the limitation that ECN support was under development, whereas now ns-3 has ECN support available. I've evaluated ECN support for AQM algorithms as outlined in RFC 7928 §4.5, and I've implemented the changes such that ECN was activated both at the queue level (e.g., for RED) and at the TCP sender level, based on ns-3 documentation and examples. For supported scenarios (RED, etc.), ECN can be enabled through the &amp;lt;code&amp;gt;--ecn=true&amp;lt;/code&amp;gt; flag. Results confirm that ECN configurations are taking effect, as the queue delay v.s. good-put shows that the algorithms that support ECN have values more concentrated around the mean, resulting in a smaller ellipsoid. This indicates a reduction in variance and a tighter Gaussian distribution, with the data clustering more closely around the center, which is the effect of ECN. Pfifo remains identical as the algorithm doesn't support ECN.&lt;br /&gt;
&lt;br /&gt;
* '''Week 3 (June 15-21, 2025)'''&lt;br /&gt;
&lt;br /&gt;
= Resources =&lt;br /&gt;
&lt;br /&gt;
* AQM Evaluation Suite [[https://dl.acm.org/doi/abs/10.1145/3067665.3067674 Paper]] [[https://aqm-eval-suite.github.io/ Implementation]]&lt;br /&gt;
* [https://tools.ietf.org/html/rfc7928 RFC 7928]&lt;br /&gt;
* [https://www.nsnam.org/docs/models/html/traffic-control-layer.html Traffic Control Model in ns-3]&lt;/div&gt;</summary>
		<author><name>Davidzylin</name></author>
	</entry>
	<entry>
		<id>https://www.nsnam.org/mediawiki/index.php?title=GSOC2025AqmEvaluation&amp;diff=13573</id>
		<title>GSOC2025AqmEvaluation</title>
		<link rel="alternate" type="text/html" href="https://www.nsnam.org/mediawiki/index.php?title=GSOC2025AqmEvaluation&amp;diff=13573"/>
		<updated>2025-06-21T23:48:38Z</updated>

		<summary type="html">&lt;p&gt;Davidzylin: /* Weekly Updates */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TOC}}&lt;br /&gt;
&lt;br /&gt;
Back to [[Summer_Projects#Google_Summer_of_Code_2025 | GSoC 2025 projects]]&lt;br /&gt;
&lt;br /&gt;
= Project Overview =&lt;br /&gt;
&lt;br /&gt;
* '''Project Name:''' Upgrade the AQM Evaluation Suite for ns-3&lt;br /&gt;
* '''Student:''' David Lin&lt;br /&gt;
* '''Mentors:''' Mohit P. Tahiliani, Aniket Singh and Tom Henderson&lt;br /&gt;
* '''Google Page:''' [https://summerofcode.withgoogle.com/programs/2025/projects/d7sZPqy6 LINK]&lt;br /&gt;
* '''Project Proposal:''' [https://davidzylin.notion.site/Proposal-Upgrade-the-AQM-Evaluation-Suite-for-ns-3-1bbad0d7128d80be9d7df771f053491e?pvs=143 LINK]&lt;br /&gt;
* '''Project Goals:''' The AQM Evaluation Suite is an automated framework based on RFC 7928 that simplifies simulation setup, topology creation, traffic generation, execution, and results visualization of AQM algorithms in ns-3. Originally developed in 2017 and maintained until 2019, the suite now needs an upgrade to: (1) Migrate its build system from waf to CMake (2) Integrate support for state-of-the-art AQM algorithms and enhanced ECN functionalities (3) Update simulation examples to reflect modern traffic control models (4) Package and publish the suite on the ns-3 App Store&lt;br /&gt;
* '''Repository:''' [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev LINK]&lt;br /&gt;
* '''About Me:''' I'm a CS undergrad student at the University of Toronto. I've been deeply passionate about computer network and systems in general, it's my honour to work with such a wonderful community like ns-3!&lt;br /&gt;
&lt;br /&gt;
= Milestones =&lt;br /&gt;
&lt;br /&gt;
* CMake Migration&lt;br /&gt;
** Migrate the AQM Evaluation Suite’s build system from Waf to CMake&lt;br /&gt;
&lt;br /&gt;
* TCP &amp;amp; ECN Enhancements&lt;br /&gt;
** Upgrading the configuration defaults, including replacing TCP BIC with TCP Cubic in the evaluation suite. ECN support will be added by incorporating new tests and scenarios that utilize ECN signaling and feedback mechanisms. If other configuration defaults require updating, those changes will also be made.&lt;br /&gt;
&lt;br /&gt;
* Upgrade AQM Algorithms&lt;br /&gt;
** Support newer AQM algorithms. Parameter configurations will be added following RFC 7928 guidelines, and new scenarios will be implemented to demonstrate modern traffic control use cases.&lt;br /&gt;
&lt;br /&gt;
* Packaging&lt;br /&gt;
** The module will be prepared for submission to the ns-3 App Store or into the mainline, including compliance with metadata and technical requirements.&lt;br /&gt;
&lt;br /&gt;
= Weekly Updates =&lt;br /&gt;
&lt;br /&gt;
* '''Community Bonding Period (May 8-31, 2025)'''&lt;br /&gt;
** Migrated the existing AQM Evaluation Suite codebase from [https://github.com/aqm-eval-suite/ns-3-dev-git GitHub] to the new [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev GitLab] repository for centralized development.&lt;br /&gt;
** Conducted an in-depth analysis of the original AQM Evaluation Suite paper. Extracted key highlights and formulated a structured list of [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev/-/issues/1 action items] to align with recent advancements in ns-3.&lt;br /&gt;
** The original aqm-eval-suite was based on ns-3.30, and during the migration process, I identified an issue in the AggressiveSender scenario starting from ns-3.41, where aggressive TCP variants (BIC, HighSpeed, YeAH) no longer matched prior results (for more detailed comparisons, please see [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev/-/issues/6 #6]). Comparing with the examples from tcp-cubit, I discovered enabling pacing through &amp;lt;code&amp;gt;Config::SetDefault(&amp;quot;ns3::TcpSocketState::EnablePacing&amp;quot;, BooleanValue(true));&amp;lt;/code&amp;gt; restores expected behaviour and notably, NewReno remains unaffected.&lt;br /&gt;
&lt;br /&gt;
* '''Week 1 (June 1-7, 2025)'''&lt;br /&gt;
&lt;br /&gt;
** ns-3 has transitioned from Waf to CMake as the primary build system, but the AQM evaluation suite still uses Waf configuration. I've migrated the existing build system from Waf to CMake for compatibility with latest version of ns-3 ([https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev/-/merge_requests/1 Changes]). Ensured successful compilation across supported platforms and passed all tests.&lt;br /&gt;
** The original paper for AQM Evaluation Suite uses TCP BIC for the aggressive sender as TCP CUBIC wasn't implemented in ns-3; However, TCP CUBIC is now supported in ns-3. I've added support for TCP CUBIC in the AQM Evaluation Suite and replaced TCP BIC with TCP CUBIC for default aggressive congestion control in the examples. This addressed the limitation of the paper and aligns with the requirements from RFC 7928;&lt;br /&gt;
** Investigated and validated ([https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev/-/work_items/4 #4]) that TCP NewReno is indeed explicitly configured to eliminate surprises due to version upgrades as latest ns-3 uses CUBIC as default.&lt;br /&gt;
&lt;br /&gt;
* '''Week 2 (June 8-14, 2025)'''&lt;br /&gt;
** Began evaluating ECN support for AQM algorithms as outlined in RFC 7928 §4.5. ECN was activated both at the queue level (e.g., for RED) and at the TCP sender level, based on ns-3 documentation. For any scenario, ECN can be enabled through the &amp;lt;code&amp;gt;--ecn=true&amp;lt;/code&amp;gt; flag. Results confirm that ECN configurations are taking effect.&lt;br /&gt;
&lt;br /&gt;
* '''Week 3 (June 15-21, 2025)'''&lt;br /&gt;
&lt;br /&gt;
= Resources =&lt;br /&gt;
&lt;br /&gt;
* AQM Evaluation Suite [[https://dl.acm.org/doi/abs/10.1145/3067665.3067674 Paper]] [[https://aqm-eval-suite.github.io/ Implementation]]&lt;br /&gt;
* [https://tools.ietf.org/html/rfc7928 RFC 7928]&lt;br /&gt;
* [https://www.nsnam.org/docs/models/html/traffic-control-layer.html Traffic Control Model in ns-3]&lt;/div&gt;</summary>
		<author><name>Davidzylin</name></author>
	</entry>
	<entry>
		<id>https://www.nsnam.org/mediawiki/index.php?title=GSOC2025AqmEvaluation&amp;diff=13572</id>
		<title>GSOC2025AqmEvaluation</title>
		<link rel="alternate" type="text/html" href="https://www.nsnam.org/mediawiki/index.php?title=GSOC2025AqmEvaluation&amp;diff=13572"/>
		<updated>2025-06-21T23:45:22Z</updated>

		<summary type="html">&lt;p&gt;Davidzylin: /* Weekly Updates */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TOC}}&lt;br /&gt;
&lt;br /&gt;
Back to [[Summer_Projects#Google_Summer_of_Code_2025 | GSoC 2025 projects]]&lt;br /&gt;
&lt;br /&gt;
= Project Overview =&lt;br /&gt;
&lt;br /&gt;
* '''Project Name:''' Upgrade the AQM Evaluation Suite for ns-3&lt;br /&gt;
* '''Student:''' David Lin&lt;br /&gt;
* '''Mentors:''' Mohit P. Tahiliani, Aniket Singh and Tom Henderson&lt;br /&gt;
* '''Google Page:''' [https://summerofcode.withgoogle.com/programs/2025/projects/d7sZPqy6 LINK]&lt;br /&gt;
* '''Project Proposal:''' [https://davidzylin.notion.site/Proposal-Upgrade-the-AQM-Evaluation-Suite-for-ns-3-1bbad0d7128d80be9d7df771f053491e?pvs=143 LINK]&lt;br /&gt;
* '''Project Goals:''' The AQM Evaluation Suite is an automated framework based on RFC 7928 that simplifies simulation setup, topology creation, traffic generation, execution, and results visualization of AQM algorithms in ns-3. Originally developed in 2017 and maintained until 2019, the suite now needs an upgrade to: (1) Migrate its build system from waf to CMake (2) Integrate support for state-of-the-art AQM algorithms and enhanced ECN functionalities (3) Update simulation examples to reflect modern traffic control models (4) Package and publish the suite on the ns-3 App Store&lt;br /&gt;
* '''Repository:''' [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev LINK]&lt;br /&gt;
* '''About Me:''' I'm a CS undergrad student at the University of Toronto. I've been deeply passionate about computer network and systems in general, it's my honour to work with such a wonderful community like ns-3!&lt;br /&gt;
&lt;br /&gt;
= Milestones =&lt;br /&gt;
&lt;br /&gt;
* CMake Migration&lt;br /&gt;
** Migrate the AQM Evaluation Suite’s build system from Waf to CMake&lt;br /&gt;
&lt;br /&gt;
* TCP &amp;amp; ECN Enhancements&lt;br /&gt;
** Upgrading the configuration defaults, including replacing TCP BIC with TCP Cubic in the evaluation suite. ECN support will be added by incorporating new tests and scenarios that utilize ECN signaling and feedback mechanisms. If other configuration defaults require updating, those changes will also be made.&lt;br /&gt;
&lt;br /&gt;
* Upgrade AQM Algorithms&lt;br /&gt;
** Support newer AQM algorithms. Parameter configurations will be added following RFC 7928 guidelines, and new scenarios will be implemented to demonstrate modern traffic control use cases.&lt;br /&gt;
&lt;br /&gt;
* Packaging&lt;br /&gt;
** The module will be prepared for submission to the ns-3 App Store or into the mainline, including compliance with metadata and technical requirements.&lt;br /&gt;
&lt;br /&gt;
= Weekly Updates =&lt;br /&gt;
&lt;br /&gt;
* '''Community Bonding Period (May 8-31, 2025)'''&lt;br /&gt;
** Migrated the existing AQM Evaluation Suite codebase from [https://github.com/aqm-eval-suite/ns-3-dev-git GitHub] to the new [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev GitLab] repository for centralized development.&lt;br /&gt;
** Conducted an in-depth analysis of the original AQM Evaluation Suite paper. Extracted key highlights and formulated a structured list of [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev/-/issues/1 action items] to align with recent advancements in ns-3.&lt;br /&gt;
** The original aqm-eval-suite was based on ns-3.30, and during the migration process, I identified an issue in the AggressiveSender scenario starting from ns-3.41, where aggressive TCP variants (BIC, HighSpeed, YeAH) no longer matched prior results (for more detailed comparisons, please see [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev/-/issues/6 #6]). Comparing with the examples from tcp-cubit, I discovered enabling pacing through &amp;lt;code&amp;gt;Config::SetDefault(&amp;quot;ns3::TcpSocketState::EnablePacing&amp;quot;, BooleanValue(true));&amp;lt;/code&amp;gt; restores expected behaviour and notably, NewReno remains unaffected.&lt;br /&gt;
&lt;br /&gt;
* '''Week 1 (June 1-7, 2025)'''&lt;br /&gt;
&lt;br /&gt;
** ns-3 has transitioned from Waf to CMake as the primary build system, but the AQM evaluation suite still uses Waf configuration. I've migrated the existing build system from Waf to CMake for compatibility with latest version of ns-3 ([https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev/-/merge_requests/1 Changes]). Ensured successful compilation across supported platforms and passed all tests.&lt;br /&gt;
** Added support for TCP CUBIC in the AQM Evaluation Suite and replaced TCP BIC with TCP CUBIC for default aggressive congestion control in the examples.&lt;br /&gt;
** Investigated and validated ([https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev/-/work_items/4 #4]) that TCP NewReno is indeed explicitly configured to eliminate surprises due to version upgrades as latest ns-3 uses CUBIC as default.&lt;br /&gt;
&lt;br /&gt;
* '''Week 2 (June 8-14, 2025)'''&lt;br /&gt;
** Began evaluating ECN support for AQM algorithms as outlined in RFC 7928 §4.5. ECN was activated both at the queue level (e.g., for RED) and at the TCP sender level, based on ns-3 documentation. For any scenario, ECN can be enabled through the &amp;lt;code&amp;gt;--ecn=true&amp;lt;/code&amp;gt; flag. Results confirm that ECN configurations are taking effect.&lt;br /&gt;
&lt;br /&gt;
* '''Week 3 (June 15-21, 2025)'''&lt;br /&gt;
&lt;br /&gt;
= Resources =&lt;br /&gt;
&lt;br /&gt;
* AQM Evaluation Suite [[https://dl.acm.org/doi/abs/10.1145/3067665.3067674 Paper]] [[https://aqm-eval-suite.github.io/ Implementation]]&lt;br /&gt;
* [https://tools.ietf.org/html/rfc7928 RFC 7928]&lt;br /&gt;
* [https://www.nsnam.org/docs/models/html/traffic-control-layer.html Traffic Control Model in ns-3]&lt;/div&gt;</summary>
		<author><name>Davidzylin</name></author>
	</entry>
	<entry>
		<id>https://www.nsnam.org/mediawiki/index.php?title=GSOC2025AqmEvaluation&amp;diff=13571</id>
		<title>GSOC2025AqmEvaluation</title>
		<link rel="alternate" type="text/html" href="https://www.nsnam.org/mediawiki/index.php?title=GSOC2025AqmEvaluation&amp;diff=13571"/>
		<updated>2025-06-21T23:14:36Z</updated>

		<summary type="html">&lt;p&gt;Davidzylin: /* Project Overview */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TOC}}&lt;br /&gt;
&lt;br /&gt;
Back to [[Summer_Projects#Google_Summer_of_Code_2025 | GSoC 2025 projects]]&lt;br /&gt;
&lt;br /&gt;
= Project Overview =&lt;br /&gt;
&lt;br /&gt;
* '''Project Name:''' Upgrade the AQM Evaluation Suite for ns-3&lt;br /&gt;
* '''Student:''' David Lin&lt;br /&gt;
* '''Mentors:''' Mohit P. Tahiliani, Aniket Singh and Tom Henderson&lt;br /&gt;
* '''Google Page:''' [https://summerofcode.withgoogle.com/programs/2025/projects/d7sZPqy6 LINK]&lt;br /&gt;
* '''Project Proposal:''' [https://davidzylin.notion.site/Proposal-Upgrade-the-AQM-Evaluation-Suite-for-ns-3-1bbad0d7128d80be9d7df771f053491e?pvs=143 LINK]&lt;br /&gt;
* '''Project Goals:''' The AQM Evaluation Suite is an automated framework based on RFC 7928 that simplifies simulation setup, topology creation, traffic generation, execution, and results visualization of AQM algorithms in ns-3. Originally developed in 2017 and maintained until 2019, the suite now needs an upgrade to: (1) Migrate its build system from waf to CMake (2) Integrate support for state-of-the-art AQM algorithms and enhanced ECN functionalities (3) Update simulation examples to reflect modern traffic control models (4) Package and publish the suite on the ns-3 App Store&lt;br /&gt;
* '''Repository:''' [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev LINK]&lt;br /&gt;
* '''About Me:''' I'm a CS undergrad student at the University of Toronto. I've been deeply passionate about computer network and systems in general, it's my honour to work with such a wonderful community like ns-3!&lt;br /&gt;
&lt;br /&gt;
= Milestones =&lt;br /&gt;
&lt;br /&gt;
* CMake Migration&lt;br /&gt;
** Migrate the AQM Evaluation Suite’s build system from Waf to CMake&lt;br /&gt;
&lt;br /&gt;
* TCP &amp;amp; ECN Enhancements&lt;br /&gt;
** Upgrading the configuration defaults, including replacing TCP BIC with TCP Cubic in the evaluation suite. ECN support will be added by incorporating new tests and scenarios that utilize ECN signaling and feedback mechanisms. If other configuration defaults require updating, those changes will also be made.&lt;br /&gt;
&lt;br /&gt;
* Upgrade AQM Algorithms&lt;br /&gt;
** Support newer AQM algorithms. Parameter configurations will be added following RFC 7928 guidelines, and new scenarios will be implemented to demonstrate modern traffic control use cases.&lt;br /&gt;
&lt;br /&gt;
* Packaging&lt;br /&gt;
** The module will be prepared for submission to the ns-3 App Store or into the mainline, including compliance with metadata and technical requirements.&lt;br /&gt;
&lt;br /&gt;
= Weekly Updates =&lt;br /&gt;
&lt;br /&gt;
* '''Community Bonding Period (May 8-31, 2025)'''&lt;br /&gt;
** Migrated the existing AQM Evaluation Suite codebase from [https://github.com/aqm-eval-suite/ns-3-dev-git GitHub] to the new [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev GitLab] repository for centralized development.&lt;br /&gt;
** Conducted an in-depth analysis of the original AQM Evaluation Suite paper. Extracted key highlights and formulated a structured list of [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev/-/issues/1 action items] to align with recent advancements in ns-3.&lt;br /&gt;
** Identified a regression in the AggressiveSender scenario starting in ns-3.41, where aggressive TCP variants (BIC, HighSpeed, YeAH) no longer matched prior results. Discovered enabling pacing restores expected behaviour and notably, NewReno remains unaffected.&lt;br /&gt;
&lt;br /&gt;
* '''Week 1 (June 1-7, 2025)'''&lt;br /&gt;
** Migrated the existing build system from Waf to CMake for compatibility with latest version of ns-3 ([https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev/-/merge_requests/1 Changes]). Ensured successful compilation across supported platforms and passed all tests.&lt;br /&gt;
** Added support for TCP CUBIC in the AQM Evaluation Suite and replaced TCP BIC with TCP CUBIC for default aggressive congestion control in the examples.&lt;br /&gt;
** Investigated and validated ([https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev/-/work_items/4 #4]) that TCP NewReno is indeed explicitly configured to eliminate surprises due to version upgrades as latest ns-3 uses CUBIC as default.&lt;br /&gt;
&lt;br /&gt;
* '''Week 2 (June 8-14, 2025)'''&lt;br /&gt;
** Began evaluating ECN support for AQM algorithms as outlined in RFC 7928 §4.5. ECN was activated both at the queue level (e.g., for RED) and at the TCP sender level, based on ns-3 documentation. For any scenario, ECN can be enabled through the &amp;lt;code&amp;gt;--ecn=true&amp;lt;/code&amp;gt; flag. Results confirm that ECN configurations are taking effect.&lt;br /&gt;
&lt;br /&gt;
* '''Week 3 (June 15-21, 2025)'''&lt;br /&gt;
&lt;br /&gt;
= Resources =&lt;br /&gt;
&lt;br /&gt;
* AQM Evaluation Suite [[https://dl.acm.org/doi/abs/10.1145/3067665.3067674 Paper]] [[https://aqm-eval-suite.github.io/ Implementation]]&lt;br /&gt;
* [https://tools.ietf.org/html/rfc7928 RFC 7928]&lt;br /&gt;
* [https://www.nsnam.org/docs/models/html/traffic-control-layer.html Traffic Control Model in ns-3]&lt;/div&gt;</summary>
		<author><name>Davidzylin</name></author>
	</entry>
	<entry>
		<id>https://www.nsnam.org/mediawiki/index.php?title=GSOC2025AqmEvaluation&amp;diff=13563</id>
		<title>GSOC2025AqmEvaluation</title>
		<link rel="alternate" type="text/html" href="https://www.nsnam.org/mediawiki/index.php?title=GSOC2025AqmEvaluation&amp;diff=13563"/>
		<updated>2025-06-20T04:24:25Z</updated>

		<summary type="html">&lt;p&gt;Davidzylin: /* Weekly Updates */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TOC}}&lt;br /&gt;
&lt;br /&gt;
Back to [[Summer_Projects#Google_Summer_of_Code_2025 | GSoC 2025 projects]]&lt;br /&gt;
&lt;br /&gt;
= Project Overview =&lt;br /&gt;
&lt;br /&gt;
* '''Project Name:''' Upgrade the AQM Evaluation Suite for ns-3&lt;br /&gt;
* '''Student:''' David Lin&lt;br /&gt;
* '''Mentors:''' Mohit Tahiliani and Tom Henderson&lt;br /&gt;
* '''Google Page:''' [https://summerofcode.withgoogle.com/programs/2025/projects/d7sZPqy6 LINK]&lt;br /&gt;
* '''Project Proposal:''' [https://davidzylin.notion.site/Proposal-Upgrade-the-AQM-Evaluation-Suite-for-ns-3-1bbad0d7128d80be9d7df771f053491e?pvs=143 LINK]&lt;br /&gt;
* '''Project Goals:''' The AQM Evaluation Suite is an automated framework based on RFC 7928 that simplifies simulation setup, topology creation, traffic generation, execution, and results visualization of AQM algorithms in ns-3. Originally developed in 2017 and maintained until 2019, the suite now needs an upgrade to: (1) Migrate its build system from waf to CMake (2) Integrate support for state-of-the-art AQM algorithms and enhanced ECN functionalities (3) Update simulation examples to reflect modern traffic control models (4) Package and publish the suite on the ns-3 App Store&lt;br /&gt;
* '''Repository:''' [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev LINK]&lt;br /&gt;
* '''About Me:''' I'm a CS undergrad student at the University of Toronto. I've been deeply passionate about computer network and systems in general, it's my honour to work with such a wonderful community like ns-3!&lt;br /&gt;
&lt;br /&gt;
= Milestones =&lt;br /&gt;
&lt;br /&gt;
* CMake Migration&lt;br /&gt;
** Migrate the AQM Evaluation Suite’s build system from Waf to CMake&lt;br /&gt;
&lt;br /&gt;
* TCP &amp;amp; ECN Enhancements&lt;br /&gt;
** Upgrading the configuration defaults, including replacing TCP BIC with TCP Cubic in the evaluation suite. ECN support will be added by incorporating new tests and scenarios that utilize ECN signaling and feedback mechanisms. If other configuration defaults require updating, those changes will also be made.&lt;br /&gt;
&lt;br /&gt;
* Upgrade AQM Algorithms&lt;br /&gt;
** Support newer AQM algorithms. Parameter configurations will be added following RFC 7928 guidelines, and new scenarios will be implemented to demonstrate modern traffic control use cases.&lt;br /&gt;
&lt;br /&gt;
* Packaging&lt;br /&gt;
** The module will be prepared for submission to the ns-3 App Store or into the mainline, including compliance with metadata and technical requirements.&lt;br /&gt;
&lt;br /&gt;
= Weekly Updates =&lt;br /&gt;
&lt;br /&gt;
* '''Community Bonding Period (May 8-31, 2025)'''&lt;br /&gt;
** Migrated the existing AQM Evaluation Suite codebase from [https://github.com/aqm-eval-suite/ns-3-dev-git GitHub] to the new [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev GitLab] repository for centralized development.&lt;br /&gt;
** Conducted an in-depth analysis of the original AQM Evaluation Suite paper. Extracted key highlights and formulated a structured list of [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev/-/issues/1 action items] to align with recent advancements in ns-3.&lt;br /&gt;
** Identified a regression in the AggressiveSender scenario starting in ns-3.41, where aggressive TCP variants (BIC, HighSpeed, YeAH) no longer matched prior results. Discovered enabling pacing restores expected behaviour and notably, NewReno remains unaffected.&lt;br /&gt;
&lt;br /&gt;
* '''Week 1 (June 1-7, 2025)'''&lt;br /&gt;
** Migrated the existing build system from Waf to CMake for compatibility with latest version of ns-3 ([https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev/-/merge_requests/1 Changes]). Ensured successful compilation across supported platforms and passed all tests.&lt;br /&gt;
** Added support for TCP CUBIC in the AQM Evaluation Suite and replaced TCP BIC with TCP CUBIC for default aggressive congestion control in the examples.&lt;br /&gt;
** Investigated and validated ([https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev/-/work_items/4 #4]) that TCP NewReno is indeed explicitly configured to eliminate surprises due to version upgrades as latest ns-3 uses CUBIC as default.&lt;br /&gt;
&lt;br /&gt;
* '''Week 2 (June 8-14, 2025)'''&lt;br /&gt;
** Began evaluating ECN support for AQM algorithms as outlined in RFC 7928 §4.5. ECN was activated both at the queue level (e.g., for RED) and at the TCP sender level, based on ns-3 documentation. For any scenario, ECN can be enabled through the &amp;lt;code&amp;gt;--ecn=true&amp;lt;/code&amp;gt; flag. Results confirm that ECN configurations are taking effect.&lt;br /&gt;
&lt;br /&gt;
* '''Week 3 (June 15-21, 2025)'''&lt;br /&gt;
&lt;br /&gt;
= Resources =&lt;br /&gt;
&lt;br /&gt;
* AQM Evaluation Suite [[https://dl.acm.org/doi/abs/10.1145/3067665.3067674 Paper]] [[https://aqm-eval-suite.github.io/ Implementation]]&lt;br /&gt;
* [https://tools.ietf.org/html/rfc7928 RFC 7928]&lt;br /&gt;
* [https://www.nsnam.org/docs/models/html/traffic-control-layer.html Traffic Control Model in ns-3]&lt;/div&gt;</summary>
		<author><name>Davidzylin</name></author>
	</entry>
	<entry>
		<id>https://www.nsnam.org/mediawiki/index.php?title=GSOC2025AqmEvaluation&amp;diff=13562</id>
		<title>GSOC2025AqmEvaluation</title>
		<link rel="alternate" type="text/html" href="https://www.nsnam.org/mediawiki/index.php?title=GSOC2025AqmEvaluation&amp;diff=13562"/>
		<updated>2025-06-20T04:14:15Z</updated>

		<summary type="html">&lt;p&gt;Davidzylin: /* Weekly Updates */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TOC}}&lt;br /&gt;
&lt;br /&gt;
Back to [[Summer_Projects#Google_Summer_of_Code_2025 | GSoC 2025 projects]]&lt;br /&gt;
&lt;br /&gt;
= Project Overview =&lt;br /&gt;
&lt;br /&gt;
* '''Project Name:''' Upgrade the AQM Evaluation Suite for ns-3&lt;br /&gt;
* '''Student:''' David Lin&lt;br /&gt;
* '''Mentors:''' Mohit Tahiliani and Tom Henderson&lt;br /&gt;
* '''Google Page:''' [https://summerofcode.withgoogle.com/programs/2025/projects/d7sZPqy6 LINK]&lt;br /&gt;
* '''Project Proposal:''' [https://davidzylin.notion.site/Proposal-Upgrade-the-AQM-Evaluation-Suite-for-ns-3-1bbad0d7128d80be9d7df771f053491e?pvs=143 LINK]&lt;br /&gt;
* '''Project Goals:''' The AQM Evaluation Suite is an automated framework based on RFC 7928 that simplifies simulation setup, topology creation, traffic generation, execution, and results visualization of AQM algorithms in ns-3. Originally developed in 2017 and maintained until 2019, the suite now needs an upgrade to: (1) Migrate its build system from waf to CMake (2) Integrate support for state-of-the-art AQM algorithms and enhanced ECN functionalities (3) Update simulation examples to reflect modern traffic control models (4) Package and publish the suite on the ns-3 App Store&lt;br /&gt;
* '''Repository:''' [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev LINK]&lt;br /&gt;
* '''About Me:''' I'm a CS undergrad student at the University of Toronto. I've been deeply passionate about computer network and systems in general, it's my honour to work with such a wonderful community like ns-3!&lt;br /&gt;
&lt;br /&gt;
= Milestones =&lt;br /&gt;
&lt;br /&gt;
* CMake Migration&lt;br /&gt;
** Migrate the AQM Evaluation Suite’s build system from Waf to CMake&lt;br /&gt;
&lt;br /&gt;
* TCP &amp;amp; ECN Enhancements&lt;br /&gt;
** Upgrading the configuration defaults, including replacing TCP BIC with TCP Cubic in the evaluation suite. ECN support will be added by incorporating new tests and scenarios that utilize ECN signaling and feedback mechanisms. If other configuration defaults require updating, those changes will also be made.&lt;br /&gt;
&lt;br /&gt;
* Upgrade AQM Algorithms&lt;br /&gt;
** Support newer AQM algorithms. Parameter configurations will be added following RFC 7928 guidelines, and new scenarios will be implemented to demonstrate modern traffic control use cases.&lt;br /&gt;
&lt;br /&gt;
* Packaging&lt;br /&gt;
** The module will be prepared for submission to the ns-3 App Store or into the mainline, including compliance with metadata and technical requirements.&lt;br /&gt;
&lt;br /&gt;
= Weekly Updates =&lt;br /&gt;
&lt;br /&gt;
* '''Community Bonding Period'''&lt;br /&gt;
** Migrated the existing AQM Evaluation Suite codebase from [https://github.com/aqm-eval-suite/ns-3-dev-git GitHub] to the new [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev GitLab] repository for centralized development.&lt;br /&gt;
** Conducted an in-depth analysis of the original AQM Evaluation Suite paper. Extracted key highlights and formulated a structured list of [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev/-/issues/1 action items] to align with recent advancements in ns-3.&lt;br /&gt;
** Identified a regression in the AggressiveSender scenario starting in ns-3.41, where aggressive TCP variants (BIC, HighSpeed, YeAH) no longer matched prior results. Discovered enabling pacing restores expected behaviour and notably, NewReno remains unaffected.&lt;br /&gt;
&lt;br /&gt;
* '''Week 1 (June 1-7, 2025)'''&lt;br /&gt;
** Migrated the existing build system from Waf to CMake for compatibility with latest version of ns-3 ([https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev/-/merge_requests/1 Changes]). Ensured successful compilation across supported platforms and passed all tests.&lt;br /&gt;
** Added support for TCP CUBIC in the AQM Evaluation Suite and replaced TCP BIC with TCP CUBIC for default aggressive congestion control in the examples.&lt;br /&gt;
** Investigated and validated ([https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev/-/work_items/4 #4]) that TCP NewReno is indeed explicitly configured to eliminate surprises due to version upgrades as latest ns-3 uses CUBIC as default.&lt;br /&gt;
&lt;br /&gt;
* '''Week 2 (June 8-14, 2025)'''&lt;br /&gt;
** Began evaluating ECN support for AQM algorithms as outlined in RFC 7928 §4.5. ECN was activated both at the queue level (e.g., for RED) and at the TCP sender level, based on ns-3 documentation. For any scenario, ECN can be enabled through the &amp;lt;code&amp;gt;--ecn=true&amp;lt;/code&amp;gt; flag. Results confirm that ECN configurations are taking effect.&lt;br /&gt;
&lt;br /&gt;
* '''Week 3 (June 15-21, 2025)'''&lt;br /&gt;
&lt;br /&gt;
= Resources =&lt;br /&gt;
&lt;br /&gt;
* AQM Evaluation Suite [[https://dl.acm.org/doi/abs/10.1145/3067665.3067674 Paper]] [[https://aqm-eval-suite.github.io/ Implementation]]&lt;br /&gt;
* [https://tools.ietf.org/html/rfc7928 RFC 7928]&lt;br /&gt;
* [https://www.nsnam.org/docs/models/html/traffic-control-layer.html Traffic Control Model in ns-3]&lt;/div&gt;</summary>
		<author><name>Davidzylin</name></author>
	</entry>
	<entry>
		<id>https://www.nsnam.org/mediawiki/index.php?title=GSOC2025AqmEvaluation&amp;diff=13561</id>
		<title>GSOC2025AqmEvaluation</title>
		<link rel="alternate" type="text/html" href="https://www.nsnam.org/mediawiki/index.php?title=GSOC2025AqmEvaluation&amp;diff=13561"/>
		<updated>2025-06-20T03:31:03Z</updated>

		<summary type="html">&lt;p&gt;Davidzylin: /* Weekly Updates */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TOC}}&lt;br /&gt;
&lt;br /&gt;
Back to [[Summer_Projects#Google_Summer_of_Code_2025 | GSoC 2025 projects]]&lt;br /&gt;
&lt;br /&gt;
= Project Overview =&lt;br /&gt;
&lt;br /&gt;
* '''Project Name:''' Upgrade the AQM Evaluation Suite for ns-3&lt;br /&gt;
* '''Student:''' David Lin&lt;br /&gt;
* '''Mentors:''' Mohit Tahiliani and Tom Henderson&lt;br /&gt;
* '''Google Page:''' [https://summerofcode.withgoogle.com/programs/2025/projects/d7sZPqy6 LINK]&lt;br /&gt;
* '''Project Proposal:''' [https://davidzylin.notion.site/Proposal-Upgrade-the-AQM-Evaluation-Suite-for-ns-3-1bbad0d7128d80be9d7df771f053491e?pvs=143 LINK]&lt;br /&gt;
* '''Project Goals:''' The AQM Evaluation Suite is an automated framework based on RFC 7928 that simplifies simulation setup, topology creation, traffic generation, execution, and results visualization of AQM algorithms in ns-3. Originally developed in 2017 and maintained until 2019, the suite now needs an upgrade to: (1) Migrate its build system from waf to CMake (2) Integrate support for state-of-the-art AQM algorithms and enhanced ECN functionalities (3) Update simulation examples to reflect modern traffic control models (4) Package and publish the suite on the ns-3 App Store&lt;br /&gt;
* '''Repository:''' [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev LINK]&lt;br /&gt;
* '''About Me:''' I'm a CS undergrad student at the University of Toronto. I've been deeply passionate about computer network and systems in general, it's my honour to work with such a wonderful community like ns-3!&lt;br /&gt;
&lt;br /&gt;
= Milestones =&lt;br /&gt;
&lt;br /&gt;
* CMake Migration&lt;br /&gt;
** Migrate the AQM Evaluation Suite’s build system from Waf to CMake&lt;br /&gt;
&lt;br /&gt;
* TCP &amp;amp; ECN Enhancements&lt;br /&gt;
** Upgrading the configuration defaults, including replacing TCP BIC with TCP Cubic in the evaluation suite. ECN support will be added by incorporating new tests and scenarios that utilize ECN signaling and feedback mechanisms. If other configuration defaults require updating, those changes will also be made.&lt;br /&gt;
&lt;br /&gt;
* Upgrade AQM Algorithms&lt;br /&gt;
** Support newer AQM algorithms. Parameter configurations will be added following RFC 7928 guidelines, and new scenarios will be implemented to demonstrate modern traffic control use cases.&lt;br /&gt;
&lt;br /&gt;
* Packaging&lt;br /&gt;
** The module will be prepared for submission to the ns-3 App Store or into the mainline, including compliance with metadata and technical requirements.&lt;br /&gt;
&lt;br /&gt;
= Weekly Updates =&lt;br /&gt;
&lt;br /&gt;
* '''Community Bonding Period'''&lt;br /&gt;
** Migrated the existing AQM Evaluation Suite codebase from [https://github.com/aqm-eval-suite/ns-3-dev-git GitHub] to the new [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev GitLab] repository for centralized development.&lt;br /&gt;
** Conducted an in-depth analysis of the original AQM Evaluation Suite paper. Extracted key highlights and formulated a structured list of [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev/-/issues/1 action items] to align with recent advancements in ns-3.&lt;br /&gt;
** Identified a regression in the AggressiveSender scenario starting in ns-3.41, where aggressive TCP variants (BIC, HighSpeed, YeAH) no longer matched prior results. Discovered enabling pacing restores expected behaviour and notably, NewReno remains unaffected.&lt;br /&gt;
&lt;br /&gt;
* '''Week 1 (June 1-7, 2025)'''&lt;br /&gt;
** Migrated the existing build system from Waf to CMake for compatibility with latest version of ns-3 ([https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev/-/merge_requests/1 Changes]). Ensured successful compilation across supported platforms and passed all tests.&lt;br /&gt;
** Added support for TCP CUBIC in the AQM Evaluation Suite and replaced TCP BIC with TCP CUBIC for default aggressive congestion control in the examples.&lt;br /&gt;
** Investigated and validated ([https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev/-/work_items/4 #4]) that TCP NewReno is indeed explicitly configured to eliminate surprises due to version upgrades as latest ns-3 uses CUBIC as default.&lt;br /&gt;
&lt;br /&gt;
* '''Week 2 (June 8-14, 2025)'''&lt;br /&gt;
** Began evaluating ECN support for AQM algorithms as outlined in RFC 7928 §4.5. ECN was activated both at the queue level (e.g., for RED) and at the TCP sender level, based on ns-3 documentation. For any scenario, ECN can be enabled through the ```--ecn=true``` flag. Results confirm that ECN configurations are taking effect.&lt;br /&gt;
&lt;br /&gt;
* '''Week 3 (June 15-21, 2025)'''&lt;br /&gt;
&lt;br /&gt;
= Resources =&lt;br /&gt;
&lt;br /&gt;
* AQM Evaluation Suite [[https://dl.acm.org/doi/abs/10.1145/3067665.3067674 Paper]] [[https://aqm-eval-suite.github.io/ Implementation]]&lt;br /&gt;
* [https://tools.ietf.org/html/rfc7928 RFC 7928]&lt;br /&gt;
* [https://www.nsnam.org/docs/models/html/traffic-control-layer.html Traffic Control Model in ns-3]&lt;/div&gt;</summary>
		<author><name>Davidzylin</name></author>
	</entry>
	<entry>
		<id>https://www.nsnam.org/mediawiki/index.php?title=GSOC2025AqmEvaluation&amp;diff=13556</id>
		<title>GSOC2025AqmEvaluation</title>
		<link rel="alternate" type="text/html" href="https://www.nsnam.org/mediawiki/index.php?title=GSOC2025AqmEvaluation&amp;diff=13556"/>
		<updated>2025-06-17T21:26:38Z</updated>

		<summary type="html">&lt;p&gt;Davidzylin: /* Weekly Updates */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TOC}}&lt;br /&gt;
&lt;br /&gt;
Back to [[Summer_Projects#Google_Summer_of_Code_2025 | GSoC 2025 projects]]&lt;br /&gt;
&lt;br /&gt;
= Project Overview =&lt;br /&gt;
&lt;br /&gt;
* '''Project Name:''' Upgrade the AQM Evaluation Suite for ns-3&lt;br /&gt;
* '''Student:''' David Lin&lt;br /&gt;
* '''Mentors:''' Mohit Tahiliani and Tom Henderson&lt;br /&gt;
* '''Google Page:''' [https://summerofcode.withgoogle.com/programs/2025/projects/d7sZPqy6 LINK]&lt;br /&gt;
* '''Project Proposal:''' [https://davidzylin.notion.site/Proposal-Upgrade-the-AQM-Evaluation-Suite-for-ns-3-1bbad0d7128d80be9d7df771f053491e?pvs=143 LINK]&lt;br /&gt;
* '''Project Goals:''' The AQM Evaluation Suite is an automated framework based on RFC 7928 that simplifies simulation setup, topology creation, traffic generation, execution, and results visualization of AQM algorithms in ns-3. Originally developed in 2017 and maintained until 2019, the suite now needs an upgrade to: (1) Migrate its build system from waf to CMake (2) Integrate support for state-of-the-art AQM algorithms and enhanced ECN functionalities (3) Update simulation examples to reflect modern traffic control models (4) Package and publish the suite on the ns-3 App Store&lt;br /&gt;
* '''Repository:''' [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev LINK]&lt;br /&gt;
* '''About Me:''' I'm a CS undergrad student at the University of Toronto. I've been deeply passionate about computer network and systems in general, it's my honour to work with such a wonderful community like ns-3!&lt;br /&gt;
&lt;br /&gt;
= Milestones =&lt;br /&gt;
&lt;br /&gt;
* CMake Migration&lt;br /&gt;
** Migrate the AQM Evaluation Suite’s build system from Waf to CMake&lt;br /&gt;
&lt;br /&gt;
* TCP &amp;amp; ECN Enhancements&lt;br /&gt;
** Upgrading the configuration defaults, including replacing TCP BIC with TCP Cubic in the evaluation suite. ECN support will be added by incorporating new tests and scenarios that utilize ECN signaling and feedback mechanisms. If other configuration defaults require updating, those changes will also be made.&lt;br /&gt;
&lt;br /&gt;
* Upgrade AQM Algorithms&lt;br /&gt;
** Support newer AQM algorithms. Parameter configurations will be added following RFC 7928 guidelines, and new scenarios will be implemented to demonstrate modern traffic control use cases.&lt;br /&gt;
&lt;br /&gt;
* Packaging&lt;br /&gt;
** The module will be prepared for submission to the ns-3 App Store or into the mainline, including compliance with metadata and technical requirements.&lt;br /&gt;
&lt;br /&gt;
= Weekly Updates =&lt;br /&gt;
&lt;br /&gt;
* '''Community Bonding Period'''&lt;br /&gt;
** Migrated the existing AQM Evaluation Suite codebase from [https://github.com/aqm-eval-suite/ns-3-dev-git GitHub] to the new [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev GitLab] repository for centralized development.&lt;br /&gt;
** Conducted an in-depth analysis of the original AQM Evaluation Suite paper. Extracted key highlights and formulated a structured list of [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev/-/issues/1 action items] to align with recent advancements in ns-3.&lt;br /&gt;
** Identified a regression in the AggressiveSender scenario starting in ns-3.41, where aggressive TCP variants (BIC, HighSpeed, YeAH) no longer matched prior results. Discovered enabling pacing restores expected behaviour and notably, NewReno remains unaffected.&lt;br /&gt;
&lt;br /&gt;
* '''Week 1'''&lt;br /&gt;
** Migrated the existing build system from Waf to CMake for compatibility with latest version of ns-3 ([https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev/-/merge_requests/1 Changes]). Ensured successful compilation across supported platforms and passed all tests.&lt;br /&gt;
** Added support for TCP CUBIC in the AQM Evaluation Suite and replaced TCP BIC with TCP CUBIC for default aggressive congestion control in the examples.&lt;br /&gt;
** Investigated and validated ([https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev/-/work_items/4 #4]) that TCP NewReno is indeed explicitly configured to eliminate surprises due to version upgrades as latest ns-3 uses CUBIC as default.&lt;br /&gt;
&lt;br /&gt;
* '''Week 2'''&lt;br /&gt;
&lt;br /&gt;
= Resources =&lt;br /&gt;
&lt;br /&gt;
* AQM Evaluation Suite [[https://dl.acm.org/doi/abs/10.1145/3067665.3067674 Paper]] [[https://aqm-eval-suite.github.io/ Implementation]]&lt;br /&gt;
* [https://tools.ietf.org/html/rfc7928 RFC 7928]&lt;br /&gt;
* [https://www.nsnam.org/docs/models/html/traffic-control-layer.html Traffic Control Model in ns-3]&lt;/div&gt;</summary>
		<author><name>Davidzylin</name></author>
	</entry>
	<entry>
		<id>https://www.nsnam.org/mediawiki/index.php?title=GSOC2025AqmEvaluation&amp;diff=13546</id>
		<title>GSOC2025AqmEvaluation</title>
		<link rel="alternate" type="text/html" href="https://www.nsnam.org/mediawiki/index.php?title=GSOC2025AqmEvaluation&amp;diff=13546"/>
		<updated>2025-06-12T05:46:29Z</updated>

		<summary type="html">&lt;p&gt;Davidzylin: /* Weekly Updates */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TOC}}&lt;br /&gt;
&lt;br /&gt;
Back to [[Summer_Projects#Google_Summer_of_Code_2025 | GSoC 2025 projects]]&lt;br /&gt;
&lt;br /&gt;
= Project Overview =&lt;br /&gt;
&lt;br /&gt;
* '''Project Name:''' Upgrade the AQM Evaluation Suite for ns-3&lt;br /&gt;
* '''Student:''' David Lin&lt;br /&gt;
* '''Mentors:''' Mohit Tahiliani and Tom Henderson&lt;br /&gt;
* '''Google Page:''' [https://summerofcode.withgoogle.com/programs/2025/projects/d7sZPqy6 LINK]&lt;br /&gt;
* '''Project Proposal:''' [https://davidzylin.notion.site/Proposal-Upgrade-the-AQM-Evaluation-Suite-for-ns-3-1bbad0d7128d80be9d7df771f053491e?pvs=143 LINK]&lt;br /&gt;
* '''Project Goals:''' The AQM Evaluation Suite is an automated framework based on RFC 7928 that simplifies simulation setup, topology creation, traffic generation, execution, and results visualization of AQM algorithms in ns-3. Originally developed in 2017 and maintained until 2019, the suite now needs an upgrade to: (1) Migrate its build system from waf to CMake (2) Integrate support for state-of-the-art AQM algorithms and enhanced ECN functionalities (3) Update simulation examples to reflect modern traffic control models (4) Package and publish the suite on the ns-3 App Store&lt;br /&gt;
* '''Repository:''' [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev LINK]&lt;br /&gt;
* '''About Me:''' I'm a CS undergrad student at the University of Toronto. I've been deeply passionate about computer network and systems in general, it's my honour to work with such a wonderful community like ns-3!&lt;br /&gt;
&lt;br /&gt;
= Milestones =&lt;br /&gt;
&lt;br /&gt;
* CMake Migration&lt;br /&gt;
** Migrate the AQM Evaluation Suite’s build system from Waf to CMake&lt;br /&gt;
&lt;br /&gt;
* TCP &amp;amp; ECN Enhancements&lt;br /&gt;
** Upgrading the configuration defaults, including replacing TCP BIC with TCP Cubic in the evaluation suite. ECN support will be added by incorporating new tests and scenarios that utilize ECN signaling and feedback mechanisms. If other configuration defaults require updating, those changes will also be made.&lt;br /&gt;
&lt;br /&gt;
* Upgrade AQM Algorithms&lt;br /&gt;
** Support newer AQM algorithms. Parameter configurations will be added following RFC 7928 guidelines, and new scenarios will be implemented to demonstrate modern traffic control use cases.&lt;br /&gt;
&lt;br /&gt;
* Packaging&lt;br /&gt;
** The module will be prepared for submission to the ns-3 App Store or into the mainline, including compliance with metadata and technical requirements.&lt;br /&gt;
&lt;br /&gt;
= Weekly Updates =&lt;br /&gt;
&lt;br /&gt;
* '''Community Bonding Period'''&lt;br /&gt;
** Migrated the existing AQM Evaluation Suite codebase from [https://github.com/aqm-eval-suite/ns-3-dev-git GitHub] to the new [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev GitLab] repository for centralized development.&lt;br /&gt;
** Conducted an in-depth analysis of the original AQM Evaluation Suite paper. Extracted key highlights and formulated a structured list of [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev/-/issues/1 action items] to align with recent advancements in ns-3.&lt;br /&gt;
** Identified a regression in the AggressiveSender scenario starting in ns-3.41, where aggressive TCP variants (BIC, HighSpeed, YeAH) no longer matched prior results. Discovered enabling pacing restores expected behaviour and notably, NewReno remains unaffected.&lt;br /&gt;
&lt;br /&gt;
* '''Week 1'''&lt;br /&gt;
** Migrated the existing build system from Waf to CMake for compatibility with latest version of ns-3 ([https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev/-/merge_requests/1 Changes]). Ensured successful compilation across supported platforms and passed all tests.&lt;br /&gt;
** Added support for TCP CUBIC in the AQM Evaluation Suite and replaced TCP BIC with TCP CUBIC for default aggressive congestion control in the examples.&lt;br /&gt;
** Investigated and validated ([https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev/-/work_items/4 #4]) that TCP NewReno is indeed explicitly configured to eliminate surprises due to version upgrades as latest ns-3 uses CUBIC as default.&lt;br /&gt;
&lt;br /&gt;
= Resources =&lt;br /&gt;
&lt;br /&gt;
* AQM Evaluation Suite [[https://dl.acm.org/doi/abs/10.1145/3067665.3067674 Paper]] [[https://aqm-eval-suite.github.io/ Implementation]]&lt;br /&gt;
* [https://tools.ietf.org/html/rfc7928 RFC 7928]&lt;br /&gt;
* [https://www.nsnam.org/docs/models/html/traffic-control-layer.html Traffic Control Model in ns-3]&lt;/div&gt;</summary>
		<author><name>Davidzylin</name></author>
	</entry>
	<entry>
		<id>https://www.nsnam.org/mediawiki/index.php?title=GSOC2025AqmEvaluation&amp;diff=13539</id>
		<title>GSOC2025AqmEvaluation</title>
		<link rel="alternate" type="text/html" href="https://www.nsnam.org/mediawiki/index.php?title=GSOC2025AqmEvaluation&amp;diff=13539"/>
		<updated>2025-06-07T19:22:31Z</updated>

		<summary type="html">&lt;p&gt;Davidzylin: /* Weekly Update */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TOC}}&lt;br /&gt;
&lt;br /&gt;
Back to [[Summer_Projects#Google_Summer_of_Code_2025 | GSoC 2025 projects]]&lt;br /&gt;
&lt;br /&gt;
= Project Overview =&lt;br /&gt;
&lt;br /&gt;
* '''Project Name:''' Upgrade the AQM Evaluation Suite for ns-3&lt;br /&gt;
* '''Student:''' David Lin&lt;br /&gt;
* '''Mentors:''' Mohit Tahiliani and Tom Henderson&lt;br /&gt;
* '''Google Page:''' [https://summerofcode.withgoogle.com/programs/2025/projects/d7sZPqy6 LINK]&lt;br /&gt;
* '''Project Proposal:''' [https://davidzylin.notion.site/Proposal-Upgrade-the-AQM-Evaluation-Suite-for-ns-3-1bbad0d7128d80be9d7df771f053491e?pvs=143 LINK]&lt;br /&gt;
* '''Project Goals:''' The AQM Evaluation Suite is an automated framework based on RFC 7928 that simplifies simulation setup, topology creation, traffic generation, execution, and results visualization of AQM algorithms in ns-3. Originally developed in 2017 and maintained until 2019, the suite now needs an upgrade to: (1) Migrate its build system from waf to CMake (2) Integrate support for state-of-the-art AQM algorithms and enhanced ECN functionalities (3) Update simulation examples to reflect modern traffic control models (4) Package and publish the suite on the ns-3 App Store&lt;br /&gt;
* '''Repository:''' [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev LINK]&lt;br /&gt;
* '''About Me:''' I'm a CS undergrad student at the University of Toronto. I've been deeply passionate about computer network and systems in general, it's my honour to work with such a wonderful community like ns-3!&lt;br /&gt;
&lt;br /&gt;
= Milestones =&lt;br /&gt;
&lt;br /&gt;
* CMake Migration&lt;br /&gt;
** Migrate the AQM Evaluation Suite’s build system from Waf to CMake&lt;br /&gt;
&lt;br /&gt;
* TCP &amp;amp; ECN Enhancements&lt;br /&gt;
** Upgrading the configuration defaults, including replacing TCP BIC with TCP Cubic in the evaluation suite. ECN support will be added by incorporating new tests and scenarios that utilize ECN signaling and feedback mechanisms. If other configuration defaults require updating, those changes will also be made.&lt;br /&gt;
&lt;br /&gt;
* Upgrade AQM Algorithms&lt;br /&gt;
** Support newer AQM algorithms. Parameter configurations will be added following RFC 7928 guidelines, and new scenarios will be implemented to demonstrate modern traffic control use cases.&lt;br /&gt;
&lt;br /&gt;
* Packaging&lt;br /&gt;
** The module will be prepared for submission to the ns-3 App Store or into the mainline, including compliance with metadata and technical requirements.&lt;br /&gt;
&lt;br /&gt;
= Weekly Updates =&lt;br /&gt;
&lt;br /&gt;
* '''Community Bonding Period'''&lt;br /&gt;
** Migrated the existing AQM Evaluation Suite codebase from [https://github.com/aqm-eval-suite/ns-3-dev-git GitHub] to the new [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev GitLab] repository for centralized development.&lt;br /&gt;
** Conducted an in-depth analysis of the original AQM Evaluation Suite paper. Extracted key highlights and formulated a structured list of [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev/-/issues/1 action items] to align with recent advancements in ns-3.&lt;br /&gt;
** Identified a regression in the AggressiveSender scenario starting in ns-3.41, where aggressive TCP variants (BIC, HighSpeed, YeAH) no longer matched prior results. Discovered enabling pacing restores expected behaviour and notably, NewReno remains unaffected.&lt;br /&gt;
&lt;br /&gt;
* '''Week 1'''&lt;br /&gt;
** Migrated the existing build system from Waf to CMake for compatibility with latest version of ns-3 ([https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev/-/merge_requests/1 Changes]). Ensured successful compilation across supported platforms and passed all tests.&lt;br /&gt;
** Added support for TCP CUBIC in the AQM Evaluation Suite and replaced TCP BIC with TCP CUBIC for default aggressive congestion control in the examples.&lt;br /&gt;
&lt;br /&gt;
= Resources =&lt;br /&gt;
&lt;br /&gt;
* AQM Evaluation Suite [[https://dl.acm.org/doi/abs/10.1145/3067665.3067674 Paper]] [[https://aqm-eval-suite.github.io/ Implementation]]&lt;br /&gt;
* [https://tools.ietf.org/html/rfc7928 RFC 7928]&lt;br /&gt;
* [https://www.nsnam.org/docs/models/html/traffic-control-layer.html Traffic Control Model in ns-3]&lt;/div&gt;</summary>
		<author><name>Davidzylin</name></author>
	</entry>
	<entry>
		<id>https://www.nsnam.org/mediawiki/index.php?title=GSOC2025AqmEvaluation&amp;diff=13538</id>
		<title>GSOC2025AqmEvaluation</title>
		<link rel="alternate" type="text/html" href="https://www.nsnam.org/mediawiki/index.php?title=GSOC2025AqmEvaluation&amp;diff=13538"/>
		<updated>2025-06-07T18:35:18Z</updated>

		<summary type="html">&lt;p&gt;Davidzylin: /* Weekly Update */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TOC}}&lt;br /&gt;
&lt;br /&gt;
Back to [[Summer_Projects#Google_Summer_of_Code_2025 | GSoC 2025 projects]]&lt;br /&gt;
&lt;br /&gt;
= Project Overview =&lt;br /&gt;
&lt;br /&gt;
* '''Project Name:''' Upgrade the AQM Evaluation Suite for ns-3&lt;br /&gt;
* '''Student:''' David Lin&lt;br /&gt;
* '''Mentors:''' Mohit Tahiliani and Tom Henderson&lt;br /&gt;
* '''Google Page:''' [https://summerofcode.withgoogle.com/programs/2025/projects/d7sZPqy6 LINK]&lt;br /&gt;
* '''Project Proposal:''' [https://davidzylin.notion.site/Proposal-Upgrade-the-AQM-Evaluation-Suite-for-ns-3-1bbad0d7128d80be9d7df771f053491e?pvs=143 LINK]&lt;br /&gt;
* '''Project Goals:''' The AQM Evaluation Suite is an automated framework based on RFC 7928 that simplifies simulation setup, topology creation, traffic generation, execution, and results visualization of AQM algorithms in ns-3. Originally developed in 2017 and maintained until 2019, the suite now needs an upgrade to: (1) Migrate its build system from waf to CMake (2) Integrate support for state-of-the-art AQM algorithms and enhanced ECN functionalities (3) Update simulation examples to reflect modern traffic control models (4) Package and publish the suite on the ns-3 App Store&lt;br /&gt;
* '''Repository:''' [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev LINK]&lt;br /&gt;
* '''About Me:''' I'm a CS undergrad student at the University of Toronto. I've been deeply passionate about computer network and systems in general, it's my honour to work with such a wonderful community like ns-3!&lt;br /&gt;
&lt;br /&gt;
= Milestones =&lt;br /&gt;
&lt;br /&gt;
* CMake Migration&lt;br /&gt;
** Migrate the AQM Evaluation Suite’s build system from Waf to CMake&lt;br /&gt;
&lt;br /&gt;
* TCP &amp;amp; ECN Enhancements&lt;br /&gt;
** Upgrading the configuration defaults, including replacing TCP BIC with TCP Cubic in the evaluation suite. ECN support will be added by incorporating new tests and scenarios that utilize ECN signaling and feedback mechanisms. If other configuration defaults require updating, those changes will also be made.&lt;br /&gt;
&lt;br /&gt;
* Upgrade AQM Algorithms&lt;br /&gt;
** Support newer AQM algorithms. Parameter configurations will be added following RFC 7928 guidelines, and new scenarios will be implemented to demonstrate modern traffic control use cases.&lt;br /&gt;
&lt;br /&gt;
* Packaging&lt;br /&gt;
** The module will be prepared for submission to the ns-3 App Store or into the mainline, including compliance with metadata and technical requirements.&lt;br /&gt;
&lt;br /&gt;
= Weekly Update =&lt;br /&gt;
&lt;br /&gt;
* '''Community Bonding Period'''&lt;br /&gt;
** Migrated the existing AQM Evaluation Suite codebase from [https://github.com/aqm-eval-suite/ns-3-dev-git GitHub] to the new [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev GitLab] repository for centralized development.&lt;br /&gt;
** Conducted an in-depth analysis of the original AQM Evaluation Suite paper. Extracted key highlights and formulated a structured list of [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev/-/issues/1 action items] to align with recent advancements in ns-3.&lt;br /&gt;
** Identified a regression in the AggressiveSender scenario starting in ns-3.41, where aggressive TCP variants (BIC, HighSpeed, YeAH) no longer matched prior results. Discovered enabling pacing restores expected behaviour and notably, NewReno remains unaffected.&lt;br /&gt;
&lt;br /&gt;
= Resources =&lt;br /&gt;
&lt;br /&gt;
* AQM Evaluation Suite [[https://dl.acm.org/doi/abs/10.1145/3067665.3067674 Paper]] [[https://aqm-eval-suite.github.io/ Implementation]]&lt;br /&gt;
* [https://tools.ietf.org/html/rfc7928 RFC 7928]&lt;br /&gt;
* [https://www.nsnam.org/docs/models/html/traffic-control-layer.html Traffic Control Model in ns-3]&lt;/div&gt;</summary>
		<author><name>Davidzylin</name></author>
	</entry>
	<entry>
		<id>https://www.nsnam.org/mediawiki/index.php?title=GSOC2025AqmEvaluation&amp;diff=13537</id>
		<title>GSOC2025AqmEvaluation</title>
		<link rel="alternate" type="text/html" href="https://www.nsnam.org/mediawiki/index.php?title=GSOC2025AqmEvaluation&amp;diff=13537"/>
		<updated>2025-06-07T18:28:28Z</updated>

		<summary type="html">&lt;p&gt;Davidzylin: /* Weekly Update */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TOC}}&lt;br /&gt;
&lt;br /&gt;
Back to [[Summer_Projects#Google_Summer_of_Code_2025 | GSoC 2025 projects]]&lt;br /&gt;
&lt;br /&gt;
= Project Overview =&lt;br /&gt;
&lt;br /&gt;
* '''Project Name:''' Upgrade the AQM Evaluation Suite for ns-3&lt;br /&gt;
* '''Student:''' David Lin&lt;br /&gt;
* '''Mentors:''' Mohit Tahiliani and Tom Henderson&lt;br /&gt;
* '''Google Page:''' [https://summerofcode.withgoogle.com/programs/2025/projects/d7sZPqy6 LINK]&lt;br /&gt;
* '''Project Proposal:''' [https://davidzylin.notion.site/Proposal-Upgrade-the-AQM-Evaluation-Suite-for-ns-3-1bbad0d7128d80be9d7df771f053491e?pvs=143 LINK]&lt;br /&gt;
* '''Project Goals:''' The AQM Evaluation Suite is an automated framework based on RFC 7928 that simplifies simulation setup, topology creation, traffic generation, execution, and results visualization of AQM algorithms in ns-3. Originally developed in 2017 and maintained until 2019, the suite now needs an upgrade to: (1) Migrate its build system from waf to CMake (2) Integrate support for state-of-the-art AQM algorithms and enhanced ECN functionalities (3) Update simulation examples to reflect modern traffic control models (4) Package and publish the suite on the ns-3 App Store&lt;br /&gt;
* '''Repository:''' [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev LINK]&lt;br /&gt;
* '''About Me:''' I'm a CS undergrad student at the University of Toronto. I've been deeply passionate about computer network and systems in general, it's my honour to work with such a wonderful community like ns-3!&lt;br /&gt;
&lt;br /&gt;
= Milestones =&lt;br /&gt;
&lt;br /&gt;
* CMake Migration&lt;br /&gt;
** Migrate the AQM Evaluation Suite’s build system from Waf to CMake&lt;br /&gt;
&lt;br /&gt;
* TCP &amp;amp; ECN Enhancements&lt;br /&gt;
** Upgrading the configuration defaults, including replacing TCP BIC with TCP Cubic in the evaluation suite. ECN support will be added by incorporating new tests and scenarios that utilize ECN signaling and feedback mechanisms. If other configuration defaults require updating, those changes will also be made.&lt;br /&gt;
&lt;br /&gt;
* Upgrade AQM Algorithms&lt;br /&gt;
** Support newer AQM algorithms. Parameter configurations will be added following RFC 7928 guidelines, and new scenarios will be implemented to demonstrate modern traffic control use cases.&lt;br /&gt;
&lt;br /&gt;
* Packaging&lt;br /&gt;
** The module will be prepared for submission to the ns-3 App Store or into the mainline, including compliance with metadata and technical requirements.&lt;br /&gt;
&lt;br /&gt;
= Weekly Update =&lt;br /&gt;
&lt;br /&gt;
* '''Community Bonding Period'''&lt;br /&gt;
** Migrated the existing AQM Evaluation Suite codebase from [https://github.com/aqm-eval-suite/ns-3-dev-git GitHub] to the new [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev GitLab] repository for centralized development.&lt;br /&gt;
** Conducted an in-depth analysis of the original AQM Evaluation Suite paper. Extracted key highlights and formulated a structured list of [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev/-/issues/1 action items] to align with recent advancements in ns-3.&lt;br /&gt;
&lt;br /&gt;
= Resources =&lt;br /&gt;
&lt;br /&gt;
* AQM Evaluation Suite [[https://dl.acm.org/doi/abs/10.1145/3067665.3067674 Paper]] [[https://aqm-eval-suite.github.io/ Implementation]]&lt;br /&gt;
* [https://tools.ietf.org/html/rfc7928 RFC 7928]&lt;br /&gt;
* [https://www.nsnam.org/docs/models/html/traffic-control-layer.html Traffic Control Model in ns-3]&lt;/div&gt;</summary>
		<author><name>Davidzylin</name></author>
	</entry>
	<entry>
		<id>https://www.nsnam.org/mediawiki/index.php?title=GSOC2025AqmEvaluation&amp;diff=13536</id>
		<title>GSOC2025AqmEvaluation</title>
		<link rel="alternate" type="text/html" href="https://www.nsnam.org/mediawiki/index.php?title=GSOC2025AqmEvaluation&amp;diff=13536"/>
		<updated>2025-06-07T18:28:04Z</updated>

		<summary type="html">&lt;p&gt;Davidzylin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TOC}}&lt;br /&gt;
&lt;br /&gt;
Back to [[Summer_Projects#Google_Summer_of_Code_2025 | GSoC 2025 projects]]&lt;br /&gt;
&lt;br /&gt;
= Project Overview =&lt;br /&gt;
&lt;br /&gt;
* '''Project Name:''' Upgrade the AQM Evaluation Suite for ns-3&lt;br /&gt;
* '''Student:''' David Lin&lt;br /&gt;
* '''Mentors:''' Mohit Tahiliani and Tom Henderson&lt;br /&gt;
* '''Google Page:''' [https://summerofcode.withgoogle.com/programs/2025/projects/d7sZPqy6 LINK]&lt;br /&gt;
* '''Project Proposal:''' [https://davidzylin.notion.site/Proposal-Upgrade-the-AQM-Evaluation-Suite-for-ns-3-1bbad0d7128d80be9d7df771f053491e?pvs=143 LINK]&lt;br /&gt;
* '''Project Goals:''' The AQM Evaluation Suite is an automated framework based on RFC 7928 that simplifies simulation setup, topology creation, traffic generation, execution, and results visualization of AQM algorithms in ns-3. Originally developed in 2017 and maintained until 2019, the suite now needs an upgrade to: (1) Migrate its build system from waf to CMake (2) Integrate support for state-of-the-art AQM algorithms and enhanced ECN functionalities (3) Update simulation examples to reflect modern traffic control models (4) Package and publish the suite on the ns-3 App Store&lt;br /&gt;
* '''Repository:''' [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev LINK]&lt;br /&gt;
* '''About Me:''' I'm a CS undergrad student at the University of Toronto. I've been deeply passionate about computer network and systems in general, it's my honour to work with such a wonderful community like ns-3!&lt;br /&gt;
&lt;br /&gt;
= Milestones =&lt;br /&gt;
&lt;br /&gt;
* CMake Migration&lt;br /&gt;
** Migrate the AQM Evaluation Suite’s build system from Waf to CMake&lt;br /&gt;
&lt;br /&gt;
* TCP &amp;amp; ECN Enhancements&lt;br /&gt;
** Upgrading the configuration defaults, including replacing TCP BIC with TCP Cubic in the evaluation suite. ECN support will be added by incorporating new tests and scenarios that utilize ECN signaling and feedback mechanisms. If other configuration defaults require updating, those changes will also be made.&lt;br /&gt;
&lt;br /&gt;
* Upgrade AQM Algorithms&lt;br /&gt;
** Support newer AQM algorithms. Parameter configurations will be added following RFC 7928 guidelines, and new scenarios will be implemented to demonstrate modern traffic control use cases.&lt;br /&gt;
&lt;br /&gt;
* Packaging&lt;br /&gt;
** The module will be prepared for submission to the ns-3 App Store or into the mainline, including compliance with metadata and technical requirements.&lt;br /&gt;
&lt;br /&gt;
= Weekly Update =&lt;br /&gt;
&lt;br /&gt;
* Community Bonding Period&lt;br /&gt;
** Migrated the existing AQM Evaluation Suite codebase from [https://github.com/aqm-eval-suite/ns-3-dev-git GitHub] to the new [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev GitLab] repository for centralized development.&lt;br /&gt;
** Conducted an in-depth analysis of the original AQM Evaluation Suite paper. Extracted key highlights and formulated a structured list of [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev/-/issues/1 action items] to align with recent advancements in ns-3.&lt;br /&gt;
&lt;br /&gt;
= Resources =&lt;br /&gt;
&lt;br /&gt;
* AQM Evaluation Suite [[https://dl.acm.org/doi/abs/10.1145/3067665.3067674 Paper]] [[https://aqm-eval-suite.github.io/ Implementation]]&lt;br /&gt;
* [https://tools.ietf.org/html/rfc7928 RFC 7928]&lt;br /&gt;
* [https://www.nsnam.org/docs/models/html/traffic-control-layer.html Traffic Control Model in ns-3]&lt;/div&gt;</summary>
		<author><name>Davidzylin</name></author>
	</entry>
	<entry>
		<id>https://www.nsnam.org/mediawiki/index.php?title=GSOC2025AqmEvaluation&amp;diff=13527</id>
		<title>GSOC2025AqmEvaluation</title>
		<link rel="alternate" type="text/html" href="https://www.nsnam.org/mediawiki/index.php?title=GSOC2025AqmEvaluation&amp;diff=13527"/>
		<updated>2025-05-31T18:13:50Z</updated>

		<summary type="html">&lt;p&gt;Davidzylin: /* Milestones */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TOC}}&lt;br /&gt;
&lt;br /&gt;
Back to [[Summer_Projects#Google_Summer_of_Code_2025 | GSoC 2025 projects]]&lt;br /&gt;
&lt;br /&gt;
= Project Overview =&lt;br /&gt;
&lt;br /&gt;
* '''Project Name:''' Upgrade the AQM Evaluation Suite for ns-3&lt;br /&gt;
* '''Student:''' David Lin&lt;br /&gt;
* '''Mentors:''' Mohit Tahiliani and Tom Henderson&lt;br /&gt;
* '''Google Page:''' [https://summerofcode.withgoogle.com/programs/2025/projects/d7sZPqy6 LINK]&lt;br /&gt;
* '''Project Proposal:''' [https://davidzylin.notion.site/Proposal-Upgrade-the-AQM-Evaluation-Suite-for-ns-3-1bbad0d7128d80be9d7df771f053491e?pvs=143 LINK]&lt;br /&gt;
* '''Project Goals:''' The AQM Evaluation Suite is an automated framework based on RFC 7928 that simplifies simulation setup, topology creation, traffic generation, execution, and results visualization of AQM algorithms in ns-3. Originally developed in 2017 and maintained until 2019, the suite now needs an upgrade to: (1) Migrate its build system from waf to CMake (2) Integrate support for state-of-the-art AQM algorithms and enhanced ECN functionalities (3) Update simulation examples to reflect modern traffic control models (4) Package and publish the suite on the ns-3 App Store&lt;br /&gt;
* '''Repository:''' [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev LINK]&lt;br /&gt;
* '''About Me:''' I'm a CS undergrad student at the University of Toronto. I've been deeply passionate about computer network and systems in general, it's my honour to work with such a wonderful community like ns-3!&lt;br /&gt;
&lt;br /&gt;
= Milestones =&lt;br /&gt;
&lt;br /&gt;
* CMake Migration&lt;br /&gt;
** Migrate the AQM Evaluation Suite’s build system from Waf to CMake&lt;br /&gt;
&lt;br /&gt;
* TCP &amp;amp; ECN Enhancements&lt;br /&gt;
** Upgrading the configuration defaults, including replacing TCP BIC with TCP Cubic in the evaluation suite. ECN support will be added by incorporating new tests and scenarios that utilize ECN signaling and feedback mechanisms. If other configuration defaults require updating, those changes will also be made.&lt;br /&gt;
&lt;br /&gt;
* Upgrade AQM Algorithms&lt;br /&gt;
** Support newer AQM algorithms. Parameter configurations will be added following RFC 7928 guidelines, and new scenarios will be implemented to demonstrate modern traffic control use cases.&lt;br /&gt;
&lt;br /&gt;
* Packaging&lt;br /&gt;
** The module will be prepared for submission to the ns-3 App Store or into the mainline, including compliance with metadata and technical requirements.&lt;br /&gt;
&lt;br /&gt;
= Weekly Update =&lt;br /&gt;
&lt;br /&gt;
= Resources =&lt;br /&gt;
&lt;br /&gt;
* AQM Evaluation Suite [[https://dl.acm.org/doi/abs/10.1145/3067665.3067674 Paper]] [[https://aqm-eval-suite.github.io/ Implementation]]&lt;br /&gt;
* [https://tools.ietf.org/html/rfc7928 RFC 7928]&lt;br /&gt;
* [https://www.nsnam.org/docs/models/html/traffic-control-layer.html Traffic Control Model in ns-3]&lt;/div&gt;</summary>
		<author><name>Davidzylin</name></author>
	</entry>
	<entry>
		<id>https://www.nsnam.org/mediawiki/index.php?title=GSOC2025AqmEvaluation&amp;diff=13514</id>
		<title>GSOC2025AqmEvaluation</title>
		<link rel="alternate" type="text/html" href="https://www.nsnam.org/mediawiki/index.php?title=GSOC2025AqmEvaluation&amp;diff=13514"/>
		<updated>2025-05-25T06:51:33Z</updated>

		<summary type="html">&lt;p&gt;Davidzylin: /* Milestones */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TOC}}&lt;br /&gt;
&lt;br /&gt;
Back to [[Summer_Projects#Google_Summer_of_Code_2025 | GSoC 2025 projects]]&lt;br /&gt;
&lt;br /&gt;
= Project Overview =&lt;br /&gt;
&lt;br /&gt;
* '''Project Name:''' Upgrade the AQM Evaluation Suite for ns-3&lt;br /&gt;
* '''Student:''' David Lin&lt;br /&gt;
* '''Mentors:''' Mohit Tahiliani and Tom Henderson&lt;br /&gt;
* '''Google Page:''' [https://summerofcode.withgoogle.com/programs/2025/projects/d7sZPqy6 LINK]&lt;br /&gt;
* '''Project Proposal:''' [https://davidzylin.notion.site/Proposal-Upgrade-the-AQM-Evaluation-Suite-for-ns-3-1bbad0d7128d80be9d7df771f053491e?pvs=143 LINK]&lt;br /&gt;
* '''Project Goals:''' The AQM Evaluation Suite is an automated framework based on RFC 7928 that simplifies simulation setup, topology creation, traffic generation, execution, and results visualization of AQM algorithms in ns-3. Originally developed in 2017 and maintained until 2019, the suite now needs an upgrade to: (1) Migrate its build system from waf to CMake (2) Integrate support for state-of-the-art AQM algorithms and enhanced ECN functionalities (3) Update simulation examples to reflect modern traffic control models (4) Package and publish the suite on the ns-3 App Store&lt;br /&gt;
* '''Repository:''' [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev LINK]&lt;br /&gt;
* '''About Me:''' I'm a CS undergrad student at the University of Toronto. I've been deeply passionate about computer network and systems in general, it's my honour to work with such a wonderful community like ns-3!&lt;br /&gt;
&lt;br /&gt;
= Milestones =&lt;br /&gt;
&lt;br /&gt;
* CMake Migration ([https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev/-/milestones/1 GitLab])&lt;br /&gt;
** Migrate the AQM Evaluation Suite’s build system from Waf to CMake&lt;br /&gt;
&lt;br /&gt;
* TCP &amp;amp; ECN Enhancements&lt;br /&gt;
** Upgrading the configuration defaults, including replacing TCP BIC with TCP Cubic in the evaluation suite. ECN support will be added by incorporating new tests and scenarios that utilize ECN signaling and feedback mechanisms. If other configuration defaults require updating, those changes will also be made.&lt;br /&gt;
&lt;br /&gt;
* Upgrade AQM Algorithms&lt;br /&gt;
** Support newer AQM algorithms. Parameter configurations will be added following RFC 7928 guidelines, and new scenarios will be implemented to demonstrate modern traffic control use cases.&lt;br /&gt;
&lt;br /&gt;
* Packaging&lt;br /&gt;
** The module will be prepared for submission to the ns-3 App Store or into the mainline, including compliance with metadata and technical requirements.&lt;br /&gt;
&lt;br /&gt;
= Weekly Update =&lt;br /&gt;
&lt;br /&gt;
= Resources =&lt;br /&gt;
&lt;br /&gt;
* AQM Evaluation Suite [[https://dl.acm.org/doi/abs/10.1145/3067665.3067674 Paper]] [[https://aqm-eval-suite.github.io/ Implementation]]&lt;br /&gt;
* [https://tools.ietf.org/html/rfc7928 RFC 7928]&lt;br /&gt;
* [https://www.nsnam.org/docs/models/html/traffic-control-layer.html Traffic Control Model in ns-3]&lt;/div&gt;</summary>
		<author><name>Davidzylin</name></author>
	</entry>
	<entry>
		<id>https://www.nsnam.org/mediawiki/index.php?title=GSOC2025AqmEvaluation&amp;diff=13501</id>
		<title>GSOC2025AqmEvaluation</title>
		<link rel="alternate" type="text/html" href="https://www.nsnam.org/mediawiki/index.php?title=GSOC2025AqmEvaluation&amp;diff=13501"/>
		<updated>2025-05-24T17:34:28Z</updated>

		<summary type="html">&lt;p&gt;Davidzylin: /* Milestones */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TOC}}&lt;br /&gt;
&lt;br /&gt;
Back to [[Summer_Projects#Google_Summer_of_Code_2025 | GSoC 2025 projects]]&lt;br /&gt;
&lt;br /&gt;
= Project Overview =&lt;br /&gt;
&lt;br /&gt;
* '''Project Name:''' Upgrade the AQM Evaluation Suite for ns-3&lt;br /&gt;
* '''Student:''' David Lin&lt;br /&gt;
* '''Mentors:''' Mohit Tahiliani and Tom Henderson&lt;br /&gt;
* '''Google Page:''' [https://summerofcode.withgoogle.com/programs/2025/projects/d7sZPqy6 LINK]&lt;br /&gt;
* '''Project Proposal:''' [https://davidzylin.notion.site/Proposal-Upgrade-the-AQM-Evaluation-Suite-for-ns-3-1bbad0d7128d80be9d7df771f053491e?pvs=143 LINK]&lt;br /&gt;
* '''Project Goals:''' The AQM Evaluation Suite is an automated framework based on RFC 7928 that simplifies simulation setup, topology creation, traffic generation, execution, and results visualization of AQM algorithms in ns-3. Originally developed in 2017 and maintained until 2019, the suite now needs an upgrade to: (1) Migrate its build system from waf to CMake (2) Integrate support for state-of-the-art AQM algorithms and enhanced ECN functionalities (3) Update simulation examples to reflect modern traffic control models (4) Package and publish the suite on the ns-3 App Store&lt;br /&gt;
* '''Repository:''' [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev LINK]&lt;br /&gt;
* '''About Me:''' I'm a CS undergrad student at the University of Toronto. I've been deeply passionate about computer network and systems in general, it's my honour to work with such a wonderful community like ns-3!&lt;br /&gt;
&lt;br /&gt;
= Milestones =&lt;br /&gt;
&lt;br /&gt;
* CMake Migration&lt;br /&gt;
** Migrate the AQM Evaluation Suite’s build system from Waf to CMake&lt;br /&gt;
&lt;br /&gt;
* TCP &amp;amp; ECN Enhancements&lt;br /&gt;
** Upgrading the configuration defaults, including replacing TCP BIC with TCP Cubic in the evaluation suite. ECN support will be added by incorporating new tests and scenarios that utilize ECN signaling and feedback mechanisms. If other configuration defaults require updating, those changes will also be made.&lt;br /&gt;
&lt;br /&gt;
* Upgrade AQM Algorithms&lt;br /&gt;
** Support newer AQM algorithms. Parameter configurations will be added following RFC 7928 guidelines, and new scenarios will be implemented to demonstrate modern traffic control use cases.&lt;br /&gt;
&lt;br /&gt;
* Packaging&lt;br /&gt;
** The module will be prepared for submission to the ns-3 App Store or into the mainline, including compliance with metadata and technical requirements.&lt;br /&gt;
&lt;br /&gt;
= Weekly Update =&lt;br /&gt;
&lt;br /&gt;
= Resources =&lt;br /&gt;
&lt;br /&gt;
* AQM Evaluation Suite [[https://dl.acm.org/doi/abs/10.1145/3067665.3067674 Paper]] [[https://aqm-eval-suite.github.io/ Implementation]]&lt;br /&gt;
* [https://tools.ietf.org/html/rfc7928 RFC 7928]&lt;br /&gt;
* [https://www.nsnam.org/docs/models/html/traffic-control-layer.html Traffic Control Model in ns-3]&lt;/div&gt;</summary>
		<author><name>Davidzylin</name></author>
	</entry>
	<entry>
		<id>https://www.nsnam.org/mediawiki/index.php?title=GSOC2025AqmEvaluation&amp;diff=13500</id>
		<title>GSOC2025AqmEvaluation</title>
		<link rel="alternate" type="text/html" href="https://www.nsnam.org/mediawiki/index.php?title=GSOC2025AqmEvaluation&amp;diff=13500"/>
		<updated>2025-05-24T17:26:52Z</updated>

		<summary type="html">&lt;p&gt;Davidzylin: /* Milestones */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TOC}}&lt;br /&gt;
&lt;br /&gt;
Back to [[Summer_Projects#Google_Summer_of_Code_2025 | GSoC 2025 projects]]&lt;br /&gt;
&lt;br /&gt;
= Project Overview =&lt;br /&gt;
&lt;br /&gt;
* '''Project Name:''' Upgrade the AQM Evaluation Suite for ns-3&lt;br /&gt;
* '''Student:''' David Lin&lt;br /&gt;
* '''Mentors:''' Mohit Tahiliani and Tom Henderson&lt;br /&gt;
* '''Google Page:''' [https://summerofcode.withgoogle.com/programs/2025/projects/d7sZPqy6 LINK]&lt;br /&gt;
* '''Project Proposal:''' [https://davidzylin.notion.site/Proposal-Upgrade-the-AQM-Evaluation-Suite-for-ns-3-1bbad0d7128d80be9d7df771f053491e?pvs=143 LINK]&lt;br /&gt;
* '''Project Goals:''' The AQM Evaluation Suite is an automated framework based on RFC 7928 that simplifies simulation setup, topology creation, traffic generation, execution, and results visualization of AQM algorithms in ns-3. Originally developed in 2017 and maintained until 2019, the suite now needs an upgrade to: (1) Migrate its build system from waf to CMake (2) Integrate support for state-of-the-art AQM algorithms and enhanced ECN functionalities (3) Update simulation examples to reflect modern traffic control models (4) Package and publish the suite on the ns-3 App Store&lt;br /&gt;
* '''Repository:''' [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev LINK]&lt;br /&gt;
* '''About Me:''' I'm a CS undergrad student at the University of Toronto. I've been deeply passionate about computer network and systems in general, it's my honour to work with such a wonderful community like ns-3!&lt;br /&gt;
&lt;br /&gt;
= Milestones =&lt;br /&gt;
&lt;br /&gt;
* CMake Migration&lt;br /&gt;
** Migrate the AQM Evaluation Suite’s build system from Waf to CMake&lt;br /&gt;
&lt;br /&gt;
* TCP &amp;amp; ECN Enhancements&lt;br /&gt;
** Upgrading the configuration defaults, including replacing TCP BIC with TCP Cubic in the evaluation suite. ECN support will be added by incorporating new tests and scenarios that utilize ECN signaling and feedback mechanisms. If other configuration defaults require updating, those changes will also be made.&lt;br /&gt;
&lt;br /&gt;
* Upgrade AQM Algorithms&lt;br /&gt;
** Support newer AQM algorithms such as DualPI2 and L4S variants. Parameter configurations will be added following RFC 7928 guidelines, and new scenarios will be implemented to demonstrate modern traffic control use cases.&lt;br /&gt;
&lt;br /&gt;
* Packaging&lt;br /&gt;
** The module will be prepared for submission to the ns-3 App Store or into the mainline, including compliance with metadata and technical requirements.&lt;br /&gt;
&lt;br /&gt;
= Weekly Update =&lt;br /&gt;
&lt;br /&gt;
= Resources =&lt;br /&gt;
&lt;br /&gt;
* AQM Evaluation Suite [[https://dl.acm.org/doi/abs/10.1145/3067665.3067674 Paper]] [[https://aqm-eval-suite.github.io/ Implementation]]&lt;br /&gt;
* [https://tools.ietf.org/html/rfc7928 RFC 7928]&lt;br /&gt;
* [https://www.nsnam.org/docs/models/html/traffic-control-layer.html Traffic Control Model in ns-3]&lt;/div&gt;</summary>
		<author><name>Davidzylin</name></author>
	</entry>
	<entry>
		<id>https://www.nsnam.org/mediawiki/index.php?title=GSOC2025AqmEvaluation&amp;diff=13499</id>
		<title>GSOC2025AqmEvaluation</title>
		<link rel="alternate" type="text/html" href="https://www.nsnam.org/mediawiki/index.php?title=GSOC2025AqmEvaluation&amp;diff=13499"/>
		<updated>2025-05-24T16:50:19Z</updated>

		<summary type="html">&lt;p&gt;Davidzylin: /* Resources */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TOC}}&lt;br /&gt;
&lt;br /&gt;
Back to [[Summer_Projects#Google_Summer_of_Code_2025 | GSoC 2025 projects]]&lt;br /&gt;
&lt;br /&gt;
= Project Overview =&lt;br /&gt;
&lt;br /&gt;
* '''Project Name:''' Upgrade the AQM Evaluation Suite for ns-3&lt;br /&gt;
* '''Student:''' David Lin&lt;br /&gt;
* '''Mentors:''' Mohit Tahiliani and Tom Henderson&lt;br /&gt;
* '''Google Page:''' [https://summerofcode.withgoogle.com/programs/2025/projects/d7sZPqy6 LINK]&lt;br /&gt;
* '''Project Proposal:''' [https://davidzylin.notion.site/Proposal-Upgrade-the-AQM-Evaluation-Suite-for-ns-3-1bbad0d7128d80be9d7df771f053491e?pvs=143 LINK]&lt;br /&gt;
* '''Project Goals:''' The AQM Evaluation Suite is an automated framework based on RFC 7928 that simplifies simulation setup, topology creation, traffic generation, execution, and results visualization of AQM algorithms in ns-3. Originally developed in 2017 and maintained until 2019, the suite now needs an upgrade to: (1) Migrate its build system from waf to CMake (2) Integrate support for state-of-the-art AQM algorithms and enhanced ECN functionalities (3) Update simulation examples to reflect modern traffic control models (4) Package and publish the suite on the ns-3 App Store&lt;br /&gt;
* '''Repository:''' [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev LINK]&lt;br /&gt;
* '''About Me:''' I'm a CS undergrad student at the University of Toronto. I've been deeply passionate about computer network and systems in general, it's my honour to work with such a wonderful community like ns-3!&lt;br /&gt;
&lt;br /&gt;
= Milestones =&lt;br /&gt;
&lt;br /&gt;
= Weekly Update =&lt;br /&gt;
&lt;br /&gt;
= Resources =&lt;br /&gt;
&lt;br /&gt;
* AQM Evaluation Suite [[https://dl.acm.org/doi/abs/10.1145/3067665.3067674 Paper]] [[https://aqm-eval-suite.github.io/ Implementation]]&lt;br /&gt;
* [https://tools.ietf.org/html/rfc7928 RFC 7928]&lt;br /&gt;
* [https://www.nsnam.org/docs/models/html/traffic-control-layer.html Traffic Control Model in ns-3]&lt;/div&gt;</summary>
		<author><name>Davidzylin</name></author>
	</entry>
	<entry>
		<id>https://www.nsnam.org/mediawiki/index.php?title=GSOC2025AqmEvaluation&amp;diff=13498</id>
		<title>GSOC2025AqmEvaluation</title>
		<link rel="alternate" type="text/html" href="https://www.nsnam.org/mediawiki/index.php?title=GSOC2025AqmEvaluation&amp;diff=13498"/>
		<updated>2025-05-24T16:49:32Z</updated>

		<summary type="html">&lt;p&gt;Davidzylin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TOC}}&lt;br /&gt;
&lt;br /&gt;
Back to [[Summer_Projects#Google_Summer_of_Code_2025 | GSoC 2025 projects]]&lt;br /&gt;
&lt;br /&gt;
= Project Overview =&lt;br /&gt;
&lt;br /&gt;
* '''Project Name:''' Upgrade the AQM Evaluation Suite for ns-3&lt;br /&gt;
* '''Student:''' David Lin&lt;br /&gt;
* '''Mentors:''' Mohit Tahiliani and Tom Henderson&lt;br /&gt;
* '''Google Page:''' [https://summerofcode.withgoogle.com/programs/2025/projects/d7sZPqy6 LINK]&lt;br /&gt;
* '''Project Proposal:''' [https://davidzylin.notion.site/Proposal-Upgrade-the-AQM-Evaluation-Suite-for-ns-3-1bbad0d7128d80be9d7df771f053491e?pvs=143 LINK]&lt;br /&gt;
* '''Project Goals:''' The AQM Evaluation Suite is an automated framework based on RFC 7928 that simplifies simulation setup, topology creation, traffic generation, execution, and results visualization of AQM algorithms in ns-3. Originally developed in 2017 and maintained until 2019, the suite now needs an upgrade to: (1) Migrate its build system from waf to CMake (2) Integrate support for state-of-the-art AQM algorithms and enhanced ECN functionalities (3) Update simulation examples to reflect modern traffic control models (4) Package and publish the suite on the ns-3 App Store&lt;br /&gt;
* '''Repository:''' [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev LINK]&lt;br /&gt;
* '''About Me:''' I'm a CS undergrad student at the University of Toronto. I've been deeply passionate about computer network and systems in general, it's my honour to work with such a wonderful community like ns-3!&lt;br /&gt;
&lt;br /&gt;
= Milestones =&lt;br /&gt;
&lt;br /&gt;
= Weekly Update =&lt;br /&gt;
&lt;br /&gt;
= Resources =&lt;/div&gt;</summary>
		<author><name>Davidzylin</name></author>
	</entry>
	<entry>
		<id>https://www.nsnam.org/mediawiki/index.php?title=GSOC2025AqmEvaluation&amp;diff=13496</id>
		<title>GSOC2025AqmEvaluation</title>
		<link rel="alternate" type="text/html" href="https://www.nsnam.org/mediawiki/index.php?title=GSOC2025AqmEvaluation&amp;diff=13496"/>
		<updated>2025-05-21T22:51:53Z</updated>

		<summary type="html">&lt;p&gt;Davidzylin: /* Project Overview */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TOC}}&lt;br /&gt;
&lt;br /&gt;
Back to [[Summer_Projects#Google_Summer_of_Code_2025 | GSoC 2025 projects]]&lt;br /&gt;
&lt;br /&gt;
= Project Overview =&lt;br /&gt;
&lt;br /&gt;
* '''Project Name:''' Upgrade the AQM Evaluation Suite for ns-3&lt;br /&gt;
* '''Student:''' David Lin&lt;br /&gt;
* '''Mentors:''' Mohit Tahiliani and Tom Henderson&lt;br /&gt;
* '''Google Page:''' [https://summerofcode.withgoogle.com/programs/2025/projects/d7sZPqy6 LINK]&lt;br /&gt;
* '''Project Proposal:''' [https://davidzylin.notion.site/Proposal-Upgrade-the-AQM-Evaluation-Suite-for-ns-3-1bbad0d7128d80be9d7df771f053491e?pvs=143 LINK]&lt;br /&gt;
* '''Project Goals:''' The AQM Evaluation Suite is an automated framework based on RFC 7928 that simplifies simulation setup, topology creation, traffic generation, execution, and results visualization of AQM algorithms in ns-3. Originally developed in 2017 and maintained until 2019, the suite now needs an upgrade to: (1) Migrate its build system from waf to CMake (2) Integrate support for state-of-the-art AQM algorithms and enhanced ECN functionalities (3) Update simulation examples to reflect modern traffic control models (4) Package and publish the suite on the ns-3 App Store&lt;br /&gt;
* '''Repository:''' [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev LINK]&lt;br /&gt;
* '''About Me:''' I'm a CS undergrad student at the University of Toronto. I've been deeply passionate about computer network and systems in general, it's my honour to work with such a wonderful community like ns-3!&lt;br /&gt;
&lt;br /&gt;
= Milestones =&lt;br /&gt;
&lt;br /&gt;
= Weekly Update =&lt;/div&gt;</summary>
		<author><name>Davidzylin</name></author>
	</entry>
	<entry>
		<id>https://www.nsnam.org/mediawiki/index.php?title=GSOC2025AqmEvaluation&amp;diff=13495</id>
		<title>GSOC2025AqmEvaluation</title>
		<link rel="alternate" type="text/html" href="https://www.nsnam.org/mediawiki/index.php?title=GSOC2025AqmEvaluation&amp;diff=13495"/>
		<updated>2025-05-21T22:50:26Z</updated>

		<summary type="html">&lt;p&gt;Davidzylin: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TOC}}&lt;br /&gt;
&lt;br /&gt;
Back to [[Summer_Projects#Google_Summer_of_Code_2025 | GSoC 2025 projects]]&lt;br /&gt;
&lt;br /&gt;
= Project Overview =&lt;br /&gt;
&lt;br /&gt;
* '''Project Name:''' Upgrade the AQM Evaluation Suite for ns-3&lt;br /&gt;
* '''Student:''' David Lin&lt;br /&gt;
* '''Mentors:''' Mohit Tahiliani and Tom Henderson&lt;br /&gt;
* '''Google page:''' [https://summerofcode.withgoogle.com/programs/2025/projects/d7sZPqy6 LINK]&lt;br /&gt;
* '''Project Goals:''' The AQM Evaluation Suite is an automated framework based on RFC 7928 that simplifies simulation setup, topology creation, traffic generation, execution, and results visualization of AQM algorithms in ns-3. Originally developed in 2017 and maintained until 2019, the suite now needs an upgrade to: (1) Migrate its build system from waf to CMake (2) Integrate support for state-of-the-art AQM algorithms and enhanced ECN functionalities (3) Update simulation examples to reflect modern traffic control models (4) Package and publish the suite on the ns-3 App Store&lt;br /&gt;
* '''Repository:''' [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev LINK]&lt;br /&gt;
* '''About Me:''' I'm a CS undergrad student at the University of Toronto. I've been deeply passionate about computer network and systems in general, it's my honour to work with such a wonderful community like ns-3!&lt;br /&gt;
&lt;br /&gt;
= Milestones =&lt;br /&gt;
&lt;br /&gt;
= Weekly Update =&lt;/div&gt;</summary>
		<author><name>Davidzylin</name></author>
	</entry>
	<entry>
		<id>https://www.nsnam.org/mediawiki/index.php?title=GSOC2025AqmEvaluation&amp;diff=13494</id>
		<title>GSOC2025AqmEvaluation</title>
		<link rel="alternate" type="text/html" href="https://www.nsnam.org/mediawiki/index.php?title=GSOC2025AqmEvaluation&amp;diff=13494"/>
		<updated>2025-05-21T22:49:27Z</updated>

		<summary type="html">&lt;p&gt;Davidzylin: /* Project Overview */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TOC}}&lt;br /&gt;
&lt;br /&gt;
Back to [[Summer_Projects#Google_Summer_of_Code_2025 | GSoC 2025 projects]]&lt;br /&gt;
&lt;br /&gt;
= Project Overview =&lt;br /&gt;
&lt;br /&gt;
* '''Project Name:''' Upgrade the AQM Evaluation Suite for ns-3&lt;br /&gt;
* '''Student:''' David Lin&lt;br /&gt;
* '''Mentors:''' Mohit Tahiliani and Tom Henderson&lt;br /&gt;
* '''Google page:''' [https://summerofcode.withgoogle.com/programs/2025/projects/d7sZPqy6 LINK]&lt;br /&gt;
* '''Project Goals:''' The AQM Evaluation Suite is an automated framework based on RFC 7928 that simplifies simulation setup, topology creation, traffic generation, execution, and results visualization of AQM algorithms in ns-3. Originally developed in 2017 and maintained until 2019, the suite now needs an upgrade to: (1) Migrate its build system from waf to CMake (2) Integrate support for state-of-the-art AQM algorithms and enhanced ECN functionalities (3) Update simulation examples to reflect modern traffic control models (4) Package and publish the suite on the ns-3 App Store&lt;br /&gt;
* '''Repository:''' [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev LINK]&lt;br /&gt;
* '''About Me:''' I'm a CS undergrad student at the University of Toronto. I've been deeply passionate about computer network and systems in general, it's my honour to work with such a wonderful community like ns-3!&lt;br /&gt;
&lt;br /&gt;
= Milestones =&lt;/div&gt;</summary>
		<author><name>Davidzylin</name></author>
	</entry>
	<entry>
		<id>https://www.nsnam.org/mediawiki/index.php?title=GSOC2025AqmEvaluation&amp;diff=13493</id>
		<title>GSOC2025AqmEvaluation</title>
		<link rel="alternate" type="text/html" href="https://www.nsnam.org/mediawiki/index.php?title=GSOC2025AqmEvaluation&amp;diff=13493"/>
		<updated>2025-05-21T22:46:10Z</updated>

		<summary type="html">&lt;p&gt;Davidzylin: /* Project Overview */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TOC}}&lt;br /&gt;
&lt;br /&gt;
Back to [[Summer_Projects#Google_Summer_of_Code_2025 | GSoC 2025 projects]]&lt;br /&gt;
&lt;br /&gt;
= Project Overview =&lt;br /&gt;
&lt;br /&gt;
* '''Project Name:''' Upgrade the AQM Evaluation Suite for ns-3&lt;br /&gt;
* '''Student:''' David Lin&lt;br /&gt;
* '''Mentors:''' Mohit Tahiliani and Tom Henderson&lt;br /&gt;
* '''Google page:''' [https://summerofcode.withgoogle.com/programs/2025/projects/d7sZPqy6 LINK]&lt;br /&gt;
* '''Project Goals:''' The AQM Evaluation Suite is an automated framework based on RFC 7928 that simplifies simulation setup, topology creation, traffic generation, execution, and results visualization of AQM algorithms in ns-3. Originally developed in 2017 and maintained until 2019, the suite now needs an upgrade to: - Migrate its build system from waf to CMake - Integrate support for state-of-the-art AQM algorithms and enhanced ECN functionalities - Update simulation examples to reflect modern traffic control models and data center load balancing scenarios - Package and publish the suite on the ns-3 App Store&lt;br /&gt;
* '''Repository:''' [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev LINK]&lt;br /&gt;
* '''About Me:'''&lt;br /&gt;
&lt;br /&gt;
= Milestones =&lt;/div&gt;</summary>
		<author><name>Davidzylin</name></author>
	</entry>
	<entry>
		<id>https://www.nsnam.org/mediawiki/index.php?title=GSOC2025AqmEvaluation&amp;diff=13491</id>
		<title>GSOC2025AqmEvaluation</title>
		<link rel="alternate" type="text/html" href="https://www.nsnam.org/mediawiki/index.php?title=GSOC2025AqmEvaluation&amp;diff=13491"/>
		<updated>2025-05-20T22:57:32Z</updated>

		<summary type="html">&lt;p&gt;Davidzylin: /* Project Overview */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TOC}}&lt;br /&gt;
&lt;br /&gt;
Back to [[Summer_Projects#Google_Summer_of_Code_2025 | GSoC 2025 projects]]&lt;br /&gt;
&lt;br /&gt;
= Project Overview =&lt;br /&gt;
&lt;br /&gt;
* '''Project Name:''' Upgrade the AQM Evaluation Suite for ns-3&lt;br /&gt;
* '''Student:''' David Lin&lt;br /&gt;
* '''Mentors:''' Mohit Tahiliani and Tom Henderson&lt;br /&gt;
* '''Google page:''' [https://summerofcode.withgoogle.com/programs/2025/projects/d7sZPqy6 LINK]&lt;br /&gt;
* '''Project Goals:''' &lt;br /&gt;
* '''Repository:''' [https://gitlab.com/gsoc2025aqmevaluation/ns-3-dev LINK]&lt;br /&gt;
* '''About Me:'''&lt;br /&gt;
&lt;br /&gt;
= Milestones =&lt;/div&gt;</summary>
		<author><name>Davidzylin</name></author>
	</entry>
	<entry>
		<id>https://www.nsnam.org/mediawiki/index.php?title=GSOC2025AqmEvaluation&amp;diff=13490</id>
		<title>GSOC2025AqmEvaluation</title>
		<link rel="alternate" type="text/html" href="https://www.nsnam.org/mediawiki/index.php?title=GSOC2025AqmEvaluation&amp;diff=13490"/>
		<updated>2025-05-20T22:51:13Z</updated>

		<summary type="html">&lt;p&gt;Davidzylin: /* Project Overview */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{TOC}}&lt;br /&gt;
&lt;br /&gt;
Back to [[Summer_Projects#Google_Summer_of_Code_2025 | GSoC 2025 projects]]&lt;br /&gt;
&lt;br /&gt;
= Project Overview =&lt;br /&gt;
&lt;br /&gt;
* '''Project Name:''' Upgrade the AQM Evaluation Suite for ns-3&lt;br /&gt;
* '''Student:''' David Lin&lt;br /&gt;
* '''Mentors:''' Mohit Tahiliani and Tom Henderson&lt;br /&gt;
* '''Google page:''' [https://summerofcode.withgoogle.com/programs/2025/projects/d7sZPqy6 LINK]&lt;br /&gt;
* '''Project Goals:''' &lt;br /&gt;
* '''Repository:''' &lt;br /&gt;
* '''About Me:'''&lt;br /&gt;
&lt;br /&gt;
= Milestones =&lt;/div&gt;</summary>
		<author><name>Davidzylin</name></author>
	</entry>
</feed>