Difference between revisions of "GCI2018Details"

From Nsnam
Jump to: navigation, search
m (About the ns-3 project)
(List of tasks)
Line 68: Line 68:
 
*[mailto:charitha29193@gmail.com Charitha Sangaraju]
 
*[mailto:charitha29193@gmail.com Charitha Sangaraju]
 
*[mailto:gm.nandita@gmail.com Nandita G]
 
*[mailto:gm.nandita@gmail.com Nandita G]
 
== List of tasks ==
 
 
'''Note to students:''' These ideas are not listed in any priority order.
 
 
==== Update the documentation of ns-3 app store ====
 
 
Update the User Guide in ns-3 app store wiki with latest screenshots and workflow, and the current documentation where necessary.
 
 
* ''Component:'' [https://apps.nsnam.org/ ns-3 app store]
 
* ''Category:'' Documentation
 
* ''Level:'' Easy
 
* ''References:''
 
** [https://github.com/abhijithanilkumar/ns-3-AppStore/blob/master/README.md About ns-3 app store]
 
** [https://github.com/abhijithanilkumar/ns-3-AppStore/wiki ns-3 app store documentation]
 
** [https://github.com/abhijithanilkumar/ns-3-AppStore/wiki/User-Guide ns-3 app store User Guide]
 
 
==== Update parse_bake.py in ns-3 app store ====
 
 
Modify ns-3-AppStore/src/util/parse_bake.py to make sure that a bakefile is properly parsed and an app can be edited/created using the data. Make sure creation works, this will be useful when the App Creation process is automated.
 
 
* ''Component:'' [https://apps.nsnam.org/ ns-3 app store]
 
* ''Category:'' Coding
 
* ''Level:'' Medium
 
* ''References:''
 
** [https://github.com/abhijithanilkumar/ns-3-AppStore/blob/master/README.md About ns-3 app store]
 
** [https://github.com/abhijithanilkumar/ns-3-AppStore/wiki ns-3 app store documentation]
 
** [https://github.com/abhijithanilkumar/ns-3-AppStore/blob/master/src/util/parse_bake.py parse_bake.py]
 
 
==== Create a Deploy Script for ns-3 app store ====
 
 
Create a deploy script (shell script) that needs to be run each time a redeployment happens. Preferably, the deploy script should cover everything from pulling from GitHub to restarting the server. This will be useful to setup GitHub webhooks and automate the deployment process.
 
 
* ''Component:'' [https://apps.nsnam.org/ ns-3 app store]
 
* ''Category:'' Coding
 
* ''Level:'' Hard
 
* ''References:''
 
** [https://github.com/abhijithanilkumar/ns-3-AppStore/blob/master/README.md About ns-3 app store]
 
** [https://github.com/abhijithanilkumar/ns-3-AppStore/wiki ns-3 app store documentation]
 
 
==== Add documentation for Point to Point Dumbbell Topology Helper ====
 
 
Add the documentation for Point to Point Dumbbell topology helper in ns-3-dev. This helper is implemented in the point to point layout module in ns-3-dev, but lacks documentation.
 
 
* ''Component:'' [https://code.nsnam.org/index.cgi/ns-3-dev/ ns-3-dev]
 
* ''Category:'' Documentation
 
* ''Level:'' Medium
 
* ''References:''
 
** [http://code.nsnam.org/ns-3-dev/file/6ee403611443/src/point-to-point-layout/model Implementation of Point to Point Dumbbell topology helper]
 
** [http://code.nsnam.org/ns-3-dev/file/6ee403611443/src/point-to-point/doc/point-to-point.rst Sample documentation of Point to Point Network Device]
 
 
==== Add documentation for Point to Point Grid Topology Helper ====
 
 
Add the documentation for Point to Point Grid topology helper in ns-3-dev. This helper is implemented in the point to point layout module in ns-3-dev, but lacks documentation.
 
 
* ''Component:'' [https://code.nsnam.org/index.cgi/ns-3-dev/ ns-3-dev]
 
* ''Category:'' Documentation
 
* ''Level:'' Medium
 
* ''References:''
 
** [http://code.nsnam.org/ns-3-dev/file/6ee403611443/src/point-to-point-layout/model Implementation of Point to Point Grid topology helper]
 
** [http://code.nsnam.org/ns-3-dev/file/6ee403611443/src/point-to-point/doc/point-to-point.rst Sample documentation of Point to Point Network Device]
 
 
==== Add documentation for Point to Point Star Topology Helper ====
 
 
Add the documentation for Point to Point Star topology helper in ns-3-dev. This helper is implemented in the point to point layout module in ns-3-dev, but lacks documentation.
 
 
* ''Component:'' [https://code.nsnam.org/index.cgi/ns-3-dev/ ns-3-dev]
 
* ''Category:'' Documentation
 
* ''Level:'' Medium
 
* ''References:''
 
** [http://code.nsnam.org/ns-3-dev/file/6ee403611443/src/point-to-point-layout/model Implementation of Point to Point Star topology helper]
 
** [http://code.nsnam.org/ns-3-dev/file/6ee403611443/src/point-to-point/doc/point-to-point.rst Sample documentation of Point to Point Network Device]
 
 
==== Create a Script to detect dead links on ns-3 wiki ====
 
 
When ns-developers archives were recently rebuilt, the URLs to old posts have changed, and this can't be easily fixed.  Consequently, hyperlinks to ns-developer mails in ns-3 wiki are broken. Write a script to crawl ns-3 wiki and find all dead links, and sort them so we can find all of the ns-developer dead links. Once detected, fix them either manually or automate the script to fix all dead links.
 
 
* ''Component:'' [https://www.nsnam.org/wiki ns-3 wiki]
 
* ''Category:'' Coding
 
* ''Level:'' Medium
 
* ''References:''
 
** [https://www.nsnam.org/wiki ns-3 wiki]
 
** [https://mailman.isi.edu/pipermail/ns-developers/ ns-developers archives]
 
 
==== Add a new ‘ns-3 training videos’ page in ns-3 wiki ====
 
 
ns-3 Consortium holds an annual meeting every year which comprises of ns-3 training, Workshop on ns-3 and developers meeting. ns-3 training sessions are video recorded and made available to all the users. This task is about creating a new ‘ns-3 training videos’ page on ns-3 wiki. This new page should contain links to all the ns-3 training videos arranged in reverse chronological order. Mention briefly about the video contents along with the link to the video.
 
 
* ''Component:'' [https://www.nsnam.org/wiki ns-3 wiki]
 
* ''Category:'' Design, Outreach
 
* ''Level:'' Easy
 
* ''References:''
 
** [https://www.nsnam.org/wiki ns-3 wiki]
 
** [https://vimeo.com/user29108190 ns-3 training videos]
 
 
==== Improve the Quality and Readability of first.cc and first.py ====
 
 
first.cc and first.py are basic examples provided in the tutorial of ns-3 for the beginners to simulate a point to point network. We need to improve the code readability.
 
 
* ''Component:'' [https://code.nsnam.org/index.cgi/ns-3-dev/ ns-3-dev]
 
* ''Category:'' Coding, Quality Assurance, Documentation
 
* ''Level:'' Easy
 
* ''References:''
 
** [http://code.nsnam.org/ns-3-dev/file/6ee403611443/examples/tutorial Source code of first.cc]
 
** [http://code.nsnam.org/ns-3-dev/file/6ee403611443/examples/tutorial Source code of first.py]
 
 
==== Improve the Quality and Readability of second.cc and second.py ====
 
 
second.cc and second.py are basic examples provided in the tutorial of ns-3 for the beginners. We need to improve the code readability.
 
 
* ''Component:'' [https://code.nsnam.org/index.cgi/ns-3-dev/ ns-3-dev]
 
* ''Category:'' Coding, Quality Assurance, Documentation
 
* ''Level:'' Easy
 
* ''References:''
 
** [http://code.nsnam.org/ns-3-dev/file/6ee403611443/examples/tutorial Source code of second.cc]
 
** [http://code.nsnam.org/ns-3-dev/file/6ee403611443/examples/tutorial Source code of second.py]
 
 
==== Add documentation for Bulk Send Application ====
 
 
Add the documentation for Bulk Send Application in ns-3-dev. This application is implemented in the application module in ns-3-dev, but lacks documentation.
 
 
* ''Component:'' [https://code.nsnam.org/index.cgi/ns-3-dev/ ns-3-dev]
 
* ''Category:'' Research, Documentation
 
* ''Level:'' Medium
 
* ''References:''
 
** [http://code.nsnam.org/ns-3-dev/file/6ee403611443/src/applications/model Source code of Bulk Send Application]
 
** [http://code.nsnam.org/ns-3-dev/file/6ee403611443/src/point-to-point/doc/point-to-point.rst Sample documentation of Point to Point Network Device]
 
 
==== Add documentation for On-Off Application ====
 
 
Add the documentation for On-Off Send Application in ns-3-dev. This application is implemented in the application module in ns-3-dev, but lacks documentation.
 
 
* ''Component:'' [https://code.nsnam.org/index.cgi/ns-3-dev/ ns-3-dev]
 
* ''Category:'' Research, Documentation
 
* ''Level:'' Medium
 
* ''References:''
 
** [http://code.nsnam.org/ns-3-dev/file/6ee403611443/src/applications/model Source code of On-Off Application]
 
** [http://code.nsnam.org/ns-3-dev/file/6ee403611443/src/point-to-point/doc/point-to-point.rst Sample documentation of Point to Point Network Device]
 
 
==== Add documentation for Packet Sink Application ====
 
 
Add the documentation for Packet Sink Application in ns-3-dev. This application is implemented in the application module in ns-3-dev, but lacks documentation.
 
 
* ''Component:'' [https://code.nsnam.org/index.cgi/ns-3-dev/ ns-3-dev]
 
* ''Category:'' Documentation
 
* ''Level:'' Medium
 
* ''References:''
 
** [http://code.nsnam.org/ns-3-dev/file/6ee403611443/src/applications/model Source code of Packet Sink Application]
 
** [http://code.nsnam.org/ns-3-dev/file/6ee403611443/src/point-to-point/doc/point-to-point.rst Sample documentation of Point to Point Network Device]
 
 
==== Add documentation for UDP Echo Client Application ====
 
 
Add the documentation for Udp Echo Client Application in ns-3-dev. This application is implemented in the application module in ns-3-dev, but lacks documentation.
 
 
* ''Component:'' [https://code.nsnam.org/index.cgi/ns-3-dev/ ns-3-dev]
 
* ''Category:'' Research, Documentation
 
* ''Level:'' Medium
 
* ''References:''
 
** [http://code.nsnam.org/ns-3-dev/file/6ee403611443/src/applications/model Source code of UDP Echo Client Application]
 
** [http://code.nsnam.org/ns-3-dev/file/6ee403611443/src/point-to-point/doc/point-to-point.rst Sample documentation of Point to Point Network Device]
 
 
==== Design a Flow Diagram for implementing a basic network topology ====
 
 
We need to make a simple flow diagram which shows the basic steps in simulating a network topology in ns-3.
 
 
* ''Component:'' [https://code.nsnam.org/index.cgi/ns-3-dev/ ns-3-dev]
 
* ''Category:'' Design
 
* ''Level:'' Easy
 
* ''References:''
 
** [https://www.nsnam.org/docs/tutorial/html/building-topologies.html Building Topologies in ns-3 ]
 
 
==== Prepare a DCE Installation Guide ====
 
 
Direct Code Execution (DCE) is a framework for ns-3 that provides facilities to execute, within ns-3, existing implementations of userspace and kernel space network protocols or applications without source code changes. The task is to Design a webpage which acts as a DCE Installation Guide.
 
 
* ''Component:'' [https://github.com/direct-code-execution/ns-3-dce ns-3-dce]
 
* ''Category:'' Design, Documentation
 
* ''Level:'' Medium
 
* ''References:''
 
** [https://ns-3-dce.readthedocs.io/en/latest/getting-started.html ns-3 DCE Getting Started Guide]
 
 
==== Improve the Quality and Readability of tbf-example.cc ====
 
 
tbf-example.cc is the example code provided by ns-3 under traffic-control module. We need to improve the code readability.
 
 
* ''Component:'' [https://code.nsnam.org/index.cgi/ns-3-dev/ ns-3-dev]
 
* ''Category:'' Coding, Quality Assurance, Documentation
 
* ''Level:'' Medium
 
* ''References:''
 
** [http://code.nsnam.org/ns-3-dev/file/6ee403611443/examples/traffic-control Source code of tbf-example.cc]
 
 
==== Improve the Quality and Readability of codel-vs-pfifo-asymmetric.cc ====
 
 
codel-vs-pfifo-asymmetric.cc is the example code provided by ns-3 under traffic-control module. We need to improve the code readability.
 
 
* ''Component:'' [https://code.nsnam.org/index.cgi/ns-3-dev/ ns-3-dev]
 
* ''Category:'' Coding, Quality Assurance, Documentation
 
* ''Level:'' Medium
 
* ''References:''
 
** [http://code.nsnam.org/ns-3-dev/file/6ee403611443/examples/traffic-control Source code of codel-vs-pfifo-asymmetric.cc]
 
 
==== Add documentation for UDP Echo Server Application ====
 
 
Add the documentation for Udp Echo Server Application in ns-3-dev. This application is implemented in the application module in ns-3-dev, but lacks documentation.
 
 
* ''Component:'' [https://code.nsnam.org/index.cgi/ns-3-dev/ ns-3-dev]
 
* ''Category:'' Research, Documentation
 
* ''Level:'' Medium
 
* ''References:''
 
** [http://code.nsnam.org/ns-3-dev/file/6ee403611443/src/applications/model Source code of UDP Echo Server Application]
 
** [http://code.nsnam.org/ns-3-dev/file/6ee403611443/src/point-to-point/doc/point-to-point.rst Sample documentation of Point to Point Network Device]
 
 
==== Add documentation for Auto Rate Fallback model ====
 
 
Add the documentation for Auto Rate Fallback model in ns-3-dev. This model is implemented in the wifi module in ns-3-dev, but lacks documentation.
 
 
* ''Component:'' [https://code.nsnam.org/index.cgi/ns-3-dev/ ns-3-dev]
 
* ''Category:'' Research, Documentation
 
* ''Level:'' Medium
 
* ''References:''
 
** [http://code.nsnam.org/ns-3-dev/file/6ee403611443/src/wifi/model Implementation of Auto Rate Fallback models]
 
** [http://code.nsnam.org/ns-3-dev/file/6ee403611443/src/point-to-point/doc/point-to-point.rst Sample documentation of Point to Point Network Device]
 
 
==== Add documentation for Adaptive Auto Rate Fallback model ====
 
 
Add the documentation for Adaptive Auto Rate Fallback model in ns-3-dev. This model is implemented in the wifi module in ns-3-dev, but lacks documentation.
 
 
* ''Component:'' [https://code.nsnam.org/index.cgi/ns-3-dev/ ns-3-dev]
 
* ''Category:'' Research, Documentation
 
* ''Level:'' Medium
 
* ''References:''
 
** [http://code.nsnam.org/ns-3-dev/file/6ee403611443/src/wifi/model Implementation of Auto Rate Fallback models]
 
** [http://code.nsnam.org/ns-3-dev/file/6ee403611443/src/point-to-point/doc/point-to-point.rst Sample documentation of Point to Point Network Device]
 
 
==== Add documentation for Packet Filter model ====
 
 
Add the documentation for Packet Filter model in ns-3-dev. This model is implemented in the traffic-control module in ns-3-dev, but lacks documentation.
 
 
* ''Component:'' [https://code.nsnam.org/index.cgi/ns-3-dev/ ns-3-dev]
 
* ''Category:'' Research, Documentation
 
* ''Level:'' Hard
 
* ''References:''
 
** [http://code.nsnam.org/ns-3-dev/file/6ee403611443/src/traffic-control/model Implementation of Packet Filter model]
 
** [http://code.nsnam.org/ns-3-dev/file/6ee403611443/src/point-to-point/doc/point-to-point.rst Sample documentation of Point to Point Network Device]
 
 
==== Add documentation for extraction of network metrics ====
 
 
Add an aggregate documentation for extraction of various network metrics like congestion window, queue stats, etc.
 
 
* ''Component:'' [https://code.nsnam.org/index.cgi/ns-3-dev/ ns-3-dev]
 
* ''Category:'' Research, Documentation, Outreach
 
* ''Level:'' Medium
 
* ''References:''
 
** [http://code.nsnam.org/ns-3-dev/file/6ee403611443/examples/tutorial Sample programs where metrics are extracted]
 
 
==== Improve the Quality and Readability of tcp-variants-comparison.cc ====
 
 
tcp-variants-comparison.cc is the example code provided by ns-3 under traffic-control module. We need to improve the code readability.
 
 
* ''Component:'' [https://code.nsnam.org/index.cgi/ns-3-dev/ ns-3-dev]
 
* ''Category:'' Coding, Quality Assurance, Documentation
 
* ''Level:'' Hard
 
* ''References:''
 
** [http://code.nsnam.org/ns-3-dev/file/6ee403611443/examples/tcp Implementation of tcp-variants-comparison.cc]
 
 
==== Improve the Quality and Readability of tcp-pacing.cc ====
 
 
tcp-pacing.cc is the example code provided by ns-3 under traffic-control module. We need to improve the code readability.
 
 
* ''Component:'' [https://code.nsnam.org/index.cgi/ns-3-dev/ ns-3-dev]
 
* ''Category:'' Coding, Quality Assurance, Documentation
 
* ''Level:'' Medium
 
* ''References:''
 
** [http://code.nsnam.org/ns-3-dev/file/6ee403611443/examples/tcp Implementation of tcp-pacing.cc]
 
 
==== Configuring parameter of Linux network stack in ns-3 DCE using sysctl interface ====
 
 
sysctl provides an interface that allows you to examine and change several hundred kernel parameters in Linux or BSD.  ns-3 Direct Code Execution (DCE) provide this interface inside the simulator to configure linux kernel parameters. The task will be to set various parameters in linux kernel using sysctl command.
 
 
* ''Component:'' [https://github.com/direct-code-execution/ns-3-dce ns-3-dce]
 
* ''Category:'' Coding
 
* ''Level:'' Hard
 
* ''References:''
 
** [https://www.nsnam.org/docs/dce/doxygen/classns3_1_1_linux_stack_helper.html LinuxStackHelper Class]
 
 
==== Improve the Quality and Readability of wifi-manager.cc ====
 
 
wifi-manager.cc is an example code provided by ns-3 under wifi module. We need to improve the code readability.
 
 
* ''Component:'' [https://code.nsnam.org/index.cgi/ns-3-dev/ ns-3-dev]
 
* ''Category:'' Coding, Quality Assurance, Documentation
 
* ''Level:'' Hard
 
* ''References:''
 
** [http://code.nsnam.org/ns-3-dev/file/6ee403611443/src/wifi/examples Implementation of wifi-manager.cc]
 

Revision as of 01:47, 19 September 2018

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

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

ns-3's GCI 2018

This webpage highlights project ideas for ns-3's Google Code-In 2018 effort.

The seven week coding period for projects runs from 23 October to 12 December, 2018. The full project timeline is here: https://developers.google.com/open-source/gci/timeline

Important note: ns-3 is applying to Google Code-In as a project but will not learn about acceptance until September 18.

About the ns-3 project

ns-3 is a discrete-event network simulator, with a particular emphasis on network research and education.

Users of ns-3 can construct simulations of computer networks using models of traffic generators, protocols such as TCP/IP, and devices and channels such as WiFi, and analyze or visualize the results. Simulation plays a vital role in the research and education process, because of the ability for simulations to obtain reproducible results (particularly for wireless protocol design), scale to large networks, and study systems that have not yet been implemented. A particular emphasis in ns-3 is the high degree of realism in the models (including frameworks for real application and kernel code) and integration of the tool with virtual machine environments and testbeds; we view that researchers need to move more effortlessly between simulation, testbeds, and live experiments, and ns-3 is designed to facilitate that.

Our Google Code-In organizational admin is Mohit P. Tahiliani and our backup org admin is Tom Henderson.

Mentors will keep track of the students work and provide them constructive feedback. Mentors from companies are welcome, if the employer will permit the mentor sufficient time to perform the mentoring. Prospective mentors should notify Mohit P. Tahiliani or Tom Henderson of interest. Mentors familiar with ns-3 development practices will be preferred, to improve the chances of student code merge.

Students: how to participate

For students interested in applying to ns-3 for GCI, first wait to see if ns-3 will be selected. If so, then go through the following list to get started:

  • Read how GCI works.
  • Read the official Getting Started Guide.
  • Look through our List of tasks below (to be extended) to see if you find a task that interests you. If ns-3 is selected, these tasks will be visible through the GCI dashboard once the program starts on Oct 23.
  • Select appropriate tasks from the following categories: coding, documentation, training, outreach, research, quality assurance, and design.
  • Glance through the ns-3 tutorial, if you have not already done so.
  • Proceed to get in touch with the mentors: ns-developers mailing list | Chat https://ns-3.zulipchat.com/

Mentors: how to participate

The ns-3 project is open to the proposal of new tasks by developers interested in being a GCI mentor. For mentors who're adding tasks to the list below, please ensure that:

  • The tasks must be sized such that they can be completed in 3 - 5 hours by students. Students have 3 days to complete the tasks.
  • The tasks must belong to any one of the following categories: coding, documentation, training, outreach, research, quality assurance, and design, and the respective category must be specified clearly in the description of the task. Note that tasks must not be related to language translation of the project documentation.
  • The task must be sufficiently described i.e., the main aim of the task, complexity of the task, reference links and other relevant information.
  • The tasks must be related to any of the following: ns-3-dev, ns-3-dce, ns-3 app store, ns-3 wiki and bake.

List of mentors

The list of mentors for GCI 2018 (more to be added):