GSOC2023NetAnim
Main Page - Roadmap - Summer Projects - Project Ideas - Developer FAQ - Tools - Related Projects
HOWTOs - Installation - Troubleshooting - User FAQ - Samples - Models - Education - Contributed Code - Papers
Back to GSoC 2023 projects
Project Overview
- Project Name: Dynamic device registration for NetAnim simulation animations
- Student: Raghuram Kannan
- Mentors: Tommaso Pecorella and Manoj Kumar Rana
- Google page: https://summerofcode.withgoogle.com/programs/2023/projects/EpacH0ct
- Project Goals: The project aims to refactor the NetAnim module such that each module willing to use NetAnim will have a .cc and .h file responsible for communication with the NetAnim module, enabled only if NetAnim is active. This will break the dependencies and will allow more flexibility for out-of-tree modules and modules migrating to the AppStore.
- Repository: https://gitlab.com/raghuramkannan40/ns-3-dev/-/tree/GSoC-23
- Design Doc: https://docs.google.com/document/d/1Pc09up2v3_t_R9VsuxGasoVQT8ziMHRn8ozGXbll014/edit?usp=sharing
- About Me: I am a Pre-Final year undergraduate student pursuing Electronics and Communication Engineering at the National Institute of Technology Karnataka, Surathkal, India. I am currently exploring the domain of computer networks and operating systems.
Milestones
The GSoC period is divided into two phases. Following are the deliverables according to the proposal:
Phase 1
Duration: Week 1 to Week 6
- Refactor the Csma module and test to see if it works the same as before.
- Refactor the Point-to-Point module and test to see if it works the same as before.
- Refactor the LTE module and test to see if it works the same as before.
Phase 2
Duration: Week 7 to Week 12
- Refactor the Wimax module and test to see if it works the same as before.
- Refactor the Wi-Fi and Internet module and test them to see if it works the same as before.
- Refactor the Uan and Wave module and test them to see if it works the same as before.
- Testing and documentation of work done
Weekly Reports
Community Bonding Period
Duration: May 4 - May 28
- Discussed the proposal ideas and any potential blockers.
- Decided to convert AnimationInterface into a singleton with a proxy in between.
- Added a define for NetAnim in CMake to let us know if NetAnim has been compiled successfully.
- Discussed the need for CreateObject() for the NetDeviceAnim Class (The new class added to the respective net-device modules to connect to NetAnim).
Weekly Report
Week 1 (May 29 - June 4):
- Converted AnimUidPacketInfoMap into a map of net-devices in MR [1].
- Made AnimationInterface into a singleton with a proxy in between as discussed in the Community Bonding Period in MR [2].
- Added a define for NetAnim in CMake in MR [3].
Week 2 (June 5 - June 11):
- Used another approach to convert AnimationInterface into a singleton using the template present in singleton.h because the previous approach had the following issues:
- Exposed the singleton class.
- Duplicate API.
- Forwarding implementation in the AnimationInterface class in a public header.
- Moved the declaration and implementation of the Singleton class to the animation-interface.cc file similar to type-id.cc.
- Added comments for Doxygen for the new function declarations.
Week 3 (June 12 - June 18):
- Started writing an SRS Document for the Project to define the approach.
- Working on issues with MR [4].
- Started working on the first Milestone in Phase 1.
Week 4 (June 19 - June 25):
- Completed the refactoring of the csma module and tested to see if it works the same as before.
- Completed writing the SRS report.
Week 5 (June 26 - July 01):
- Working on doxygen-related issues in MR [5].
- Presented the current state of the project at WNS3 2023.
Week 6 (July 2 - July 8):
- Working on pipeline issues with the proxy-csma-anim branch
- Discussed the need of moving OuputCsmaPacket()
- Discussed if there is a need to Dynamically Register Net-Devices.
Week 7 (Jul 9 - Jul 15):
- Moved the OutputCsmaPacket() and PurgePendingPackets() to the CsmaNetDeviceAnim
Week 8 (Jul 16 - Jul 22):
- Created a MR [6] for the Csma Refactor.
- Started working on the Point-to-Point module.
Week 9 (Jul 23 - Jul 29):
- Fixed issues with MR [7].
- Added suggested changes in the comments of MR.
Week 10 (Jul 30 - Aug 5):
- Completed Refactoring the Point-to-Point module (Branch - [8]) .
- Started working on Refactoring the LTE module.
Week 11 (Aug 6 - Aug 12):
- Partially Refactored the LTE module with issues due to unavailable Trace Sources (Branch - [9]).
- Started working on Refactoring the Wi-Fi module.
Week 12 - Week 13 (Aug 13 - Aug 26):
- Took a break to prepare for the upcoming placement season on campus.
Week 14 (Aug 28 - Sep 2):
- Worked on the design issues with the current approach (Singleton + proxy).
Week 15 (Sep 3 - Sep 9):
- Decided to use a proxy class which will be added to core instead of using the Singleton + proxy approach.
- Started implementing the proxy class in the core module.
Week 16 (Sep 10 - Sep 16):
- Refactored and tested the csma and point-to-point modules with the core-proxy approach.
Week 17 (Sep 17 - Sep 23):
- Started refactoring the LTE module with core-proxy approach.
- Also, Started refactoring the Wi-Fi module.
Week 18 (Sep 26 - Oct 02):
- Ran into some issues while refactoring LTE due to the early call of DoInitialize().
- Started working on the final project report for GSoC