GSOC2021SEM

From Nsnam
Revision as of 07:45, 20 May 2021 by Akshitpatel (Talk | contribs)

Jump to: navigation, search

Main Page - Current Development - Developer FAQ - Tools - Related Projects - Project Ideas - Summer Projects

Installation - Troubleshooting - User FAQ - HOWTOs - Samples - Models - Education - Contributed Code - Papers

Back to GSoC 2021 projects

Project Overview

  • Project Name: Add logging support to Simulation Execution Manager (SEM)
  • Student: Akshit Patel
  • Mentors: Davide Magrin, Mattia Lecci
  • Project Goals: The project's original aim is to add support for ns-3’s built-in logging to SEM and provide users with an interactive dashboard to visualize large ns-3 generated logs. The users will be able to enable specific log components at a specified log level for their ns-3 scripts ran with SEM. The dashboard will consist of an interactive table and a graph with different filter options to easily visualize the logs generated either directly from SEM or by manually passing a log file that is generated from ns-3 simulations. The following features will be added to SEM at the end of this project:
    • Enable logging through simulations using SEM.
    • Enable logging through simulations using SEM command-line interface.
    • Visualize log files (generated by SEM or ns-3 directly) efficiently using a dashboard.
    • Add tests (using pytest) to validate the newly added logging functions/APIs.
  • Future Work: I will be implementing the following tasks during the Gsoc period(in addition to the goals above) if time permits or will be taken care of after the project is over. These are the originally planned additional tasks:
    • Add support for time filtering of logs in ns-3: Ns-3 does not support time filtering of logs as of now. This feature will be useful for the users as the log files generated by ns-3 can be huge and this might directly affect the responsiveness of the SEM dashboard that is to be built.
    • Add additional examples to SEM: As SEM does not provide a large variety of examples, it would be beneficial to add new examples for easier understanding of SEM APIs for new users. Upon further discussion with the mentors, I will be adding additional examples.
  • Repository: RepoLink
  • About Me: I am a final year undergraduate student pursuing Computer Science and Engineering at the National Institute of Technology Karnataka (NITK), India. I am interested in computer networks and operating systems. I have about 2.5 years of experience in C, C++, Python, and GO.


Milestones and Deliverables

The following are the originally planned Milestones and Deliverables at end of each phase(60 hours):

Phase 1

  • Adding the API to enable logging and store the results in a temporary file
  • Adding the function to parse the logs and store the logs in a JSON file.
  • Create a tinyDB database to store the logs for visualization

Phase 2

  • Creating filter buttons for the dashboard.
  • Creating an interactive table as well as a graph for the dashboard.
  • Creating the flask backend

Phase 3

  • Adding the logging support to SEM command-line interface
  • Adding examples for newly added logging system
  • Adding documentation and tests for the newly added logging system.
  • Any pending tasks from the previous deliverables