GSOC2017PatchRequirement: Difference between revisions

From Nsnam
Jump to navigation Jump to search
(Created page with "Please check back in the future for the patch requirement.")
 
 
(3 intermediate revisions by the same user not shown)
Line 1: Line 1:
Please check back in the future for the patch requirement.
As part of their Google Summer of Code 2017 applications to ns-3, we require that students produce a patch for ns-3. This will allow us to gauge your ability to dive into source code, understand it, make a modification, and proceed to build and verify if your modification works.
 
A patch in this regard can be at least one of the following:
 
* If you already have contributed a patch for ns-3 in the past, point us to the relevant commits in our code repository or the bug tracker issue, and your patch requirement is satisfied.
* If not the above, either complete the minimum requirement test given below, or pick a bug in our [https://www.nsnam.org/bugzilla/buglist.cgi?bug_status=__open__&list_id=64089&order=bug_id%20DESC&query_format=specific Bugzilla] that does not already have a patch pending, and try to fix it.
 
== Minimum requirement patch ==
 
=== Setting up the environment ===
 
Perform the following steps (you may want to review our [[Installation]] page):
 
* Download the ns-3.26 release, or clone it from Mercurial:
 
  $: hg clone http://code.nsnam.org/ns-3.26
 
or
  $: wget http://www.nsnam.org/release/ns-allinone-3.26.tar.bz2
 
* Verify if you can build ns-3 and run the program to be patched
 
  $: ./waf configure --disable-python --enable-examples
  $: ./waf build
  $: ./waf --run tcp-bulk-send
 
=== Objective ===
 
The example program 'examples/tcp/tcp-bulk-send.cc' should be modified to output the evolution of the TCP congestion window, in the direction of the file transfer (node 0 to 1), in an [https://en.wikipedia.org/wiki/Unevenly_spaced_time_series unevenly spaced time-series format].  Currently, the example will print out:
 
  $: ./waf --run tcp-bulk-send
  Total Bytes Received: 564248
 
Your patch to this program alone (i.e. do not change ns-3.26 TCP code in any way) should output something like this:
 
  $: ./waf --run tcp-bulk-send
  0.011856s 536
  0.033024s 1072
  0.062768s 1608
  0.092512s 2144
  (...)
  9.98802s 286760
  Total Bytes Received: 564248
 
'''Hint 1:'''  Tracing of the TCP 'CongestionWindow' trace source can be used, either by obtaining a pointer to the socket being used by the BulkSendApplication, or by using a config path to connect to the trace source.  For tutorial on tracing, see:
* [https://www.nsnam.org/tutorials/consortium14/ns-3-training-session-3.pdf Slides]
* [https://vimeo.com/album/2966916/video/101650879 Video]
 
'''Hint 2:''' The ns-3 tutorial section on tracing is relevant to this problem.
 
=== What to submit ===
 
* A patch to tcp-bulk-send.cc that accomplishes the objectives. In your application, point us to a publicly available URL where you've hosted the patch (like a "gist" on github.com for instance).  See also some guidelines [http://www.nsnam.org/developers/contributing-code/submit/ here] about formatting patches for review.  If you need help with this step, contact the ns-3 Org Admin (Tom Henderson) for advice.
 
'''Note:''' Keep your solution private by pasting the link in your application to Google, not posting it on the mailing list.

Latest revision as of 14:08, 25 March 2017

As part of their Google Summer of Code 2017 applications to ns-3, we require that students produce a patch for ns-3. This will allow us to gauge your ability to dive into source code, understand it, make a modification, and proceed to build and verify if your modification works.

A patch in this regard can be at least one of the following:

  • If you already have contributed a patch for ns-3 in the past, point us to the relevant commits in our code repository or the bug tracker issue, and your patch requirement is satisfied.
  • If not the above, either complete the minimum requirement test given below, or pick a bug in our Bugzilla that does not already have a patch pending, and try to fix it.

Minimum requirement patch

Setting up the environment

Perform the following steps (you may want to review our Installation page):

  • Download the ns-3.26 release, or clone it from Mercurial:
 $: hg clone http://code.nsnam.org/ns-3.26

or

 $: wget http://www.nsnam.org/release/ns-allinone-3.26.tar.bz2
  • Verify if you can build ns-3 and run the program to be patched
 $: ./waf configure --disable-python --enable-examples
 $: ./waf build
 $: ./waf --run tcp-bulk-send

Objective

The example program 'examples/tcp/tcp-bulk-send.cc' should be modified to output the evolution of the TCP congestion window, in the direction of the file transfer (node 0 to 1), in an unevenly spaced time-series format. Currently, the example will print out:

 $: ./waf --run tcp-bulk-send
 Total Bytes Received: 564248

Your patch to this program alone (i.e. do not change ns-3.26 TCP code in any way) should output something like this:

 $: ./waf --run tcp-bulk-send
 0.011856s 536
 0.033024s 1072
 0.062768s 1608
 0.092512s 2144
 (...)
 9.98802s 286760
 Total Bytes Received: 564248

Hint 1: Tracing of the TCP 'CongestionWindow' trace source can be used, either by obtaining a pointer to the socket being used by the BulkSendApplication, or by using a config path to connect to the trace source. For tutorial on tracing, see:

Hint 2: The ns-3 tutorial section on tracing is relevant to this problem.

What to submit

  • A patch to tcp-bulk-send.cc that accomplishes the objectives. In your application, point us to a publicly available URL where you've hosted the patch (like a "gist" on github.com for instance). See also some guidelines here about formatting patches for review. If you need help with this step, contact the ns-3 Org Admin (Tom Henderson) for advice.

Note: Keep your solution private by pasting the link in your application to Google, not posting it on the mailing list.