GSOC2017PatchRequirement: Difference between revisions
(Created page with "Please check back in the future for the patch requirement.") |
(patch requirement) |
||
Line 1: | Line 1: | ||
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 a 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: 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] | |||
=== 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. |
Revision as of 03:59, 12 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 a 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: 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:
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.