https://www.nsnam.org/mediawiki/api.php?action=feedcontributions&user=Mmiozzo&feedformat=atomNsnam - User contributions [en]2024-03-28T23:14:27ZUser contributionsMediaWiki 1.24.1https://www.nsnam.org/mediawiki/index.php?title=GSOC2013Projects&diff=7503GSOC2013Projects2013-04-09T15:12:27Z<p>Mmiozzo: </p>
<hr />
<div>{{TOC}}<br />
<br />
* [http://socghop.appspot.com/document/show/gsoc_program/google/gsoc2012/faqs GSoC Frequently Asked Questions]<br />
* [http://en.flossmanuals.net/gsocmentoring/ GSoC Mentor guide]<br />
* [http://en.flossmanuals.net/GSoCStudentGuide/ GSoC student guide]<br />
* [[GSOC2013StudentGuide |ns-3's GSoC Student guide]]<br />
* [[GSOCMentorGuide | ns-3's GSoC Mentor guide]]<br />
* [[GSOC2013PatchRequirement | Patch Requirement Guidelines]]<br />
* [[GSOC2013StudentApplicationTemplate |GSoC Student application template]]<br />
* [[GSOC2012Projects |GSoC 2012 page]] | [[GSOC2012AcceptedProjects |GSoC 2012 Accepted Projects]]<br />
* [[GSOC2011Projects |NSoC 2011 Ideas page]] | [[NSOC2011AcceptedProjects |NSoC 2011 Accepted Projects]]<br />
* [[GSOC2010Projects |GSoC 2010 Ideas page]] | [[GSOC2010AcceptedProjects |GSoC 2010 Accepted Projects]]<br />
* [[GSOC2009Projects |GSoC 2009 Ideas page]] | [[GSOC2009AcceptedProjects |GSoC 2009 Accepted Projects]]<br />
* [[GSOC2010OAReport |GSoC Organization Administrator guide]]<br />
* ''Get in contact with the ns-3 team'': [http://mailman.isi.edu/mailman/listinfo/ns-developers ns-developers mailing list] | ''IRC'' #ns-3 on freenode.net<br />
<br />
= GSoC 2013 Ideas =<br />
<br />
This webpage highlights project ideas for ns-3's Google Summer of Code 2013 effort.<br />
<br />
GSOC 2012 Timeline is:<br />
* March 18 - 19:00 UTC: Mentoring organizations can begin submitting applications to Google.<br />
* March 29 - 19:00 UTC: Mentoring organization application deadline.<br />
* April 8 - 19:00 UTC: List of accepted mentoring organizations published on the Google Summer of Code 2013 site.<br />
* April 9-21: Would-be student participants discuss application ideas with mentoring organizations.<br />
* April 22 - 19:00 UTC: Student application period opens.<br />
* May 3 - 19:00 UTC: Student application deadline.<br />
Full timeline is here: http://www.google-melange.com/gsoc/events/google/gsoc2013<br />
<br />
While discussions about ideas can be done earlier, please note that ns-3 will not receive an answer to its GSOC application before April 8. <br />
<br />
== About the ns-3 project ==<br />
<br />
ns-3 is a discrete-event network simulator, with a particular emphasis on network research and education.<br />
<br />
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.<br />
<br />
ns-3 has been in development since 2005 and has been making quarterly releases since June 2008 (our last release was ns-3.10 in January 2011). ns-3 is replacing the popular ns-2 tool which was developed in the 1997-2000 timeframe but became out of date and unmaintained. The tool is coming into wide use; our web server logged almost 51,000 successful downloads of our released software between January 2011 and January 2012, and we have a users mailing list of about 2392 members now averaging 574 posts per month. The code base has a total of 113 authors and 25 maintainers.<br />
<br />
Our GSoC organizational admin is [mailto:suresh.lalith@gmail.com Lalith Suresh] and our backup org admin is [mailto:tomhend@u.washington.edu Tom Henderson]. The project has participated in past GSoCs during 2008-10 and 2012.<br />
<br />
Mentors will be paired with students based on the projects that are selected. Mentors from companies are welcome, if the employer will permit the mentor sufficient time to perform the mentoring. Prospective mentors should notify Lalith Suresh of interest. Mentors familiar with ns-3 development practices will be preferred, to improve the chances of student code merge.<br />
<br />
== Getting started ==<br />
<br />
For students interested in applying to ns-3 for GSOC, go through the following list to get started:<br />
* Read the official [http://en.flossmanuals.net/GSoCStudentGuide/ GSoC student guide].<br />
* Read [[GSOC2013StudentGuide |ns-3's GSoC Student guide]].<br />
* Look through our ideas list below to see if you find a project that interests you.<br />
* Look through the [[GSOC2013StudentApplicationTemplate |GSoC Student application template]] to start preparing your proposal.<br />
* Next, proceed to get in touch with the developers on the mailing list and refine your proposal.<br />
* In parallel, make sure you prepare a patch as per the [[GSOC2013PatchRequirement | Patch Requirement Guidelines]]. Your application to ns-3 will not be considered if you do not fulfill this requirement.<br />
<br />
<br />
== Project Ideas ==<br />
<br />
The following are a list of project proposals from the ns-3 team for Google Summer of Code 2013. Applicants are however free to propose their own ideas. In addition, please note that these ideas are not limited to GSoC, anyone is welcome to work on them. Please email the [http://mailman.isi.edu/mailman/listinfo/ns-developers ns-developers list] if you have an idea that you'd like to work on. Applicants are encouraged to look over this list, pick one that especially interests them, think about it, and discuss potential approaches on the [http://mailman.isi.edu/mailman/listinfo/ns-developers ns-developers list]. Previous experience with the Google Summer of Code programmes suggest that the more you discuss and refine your proposal on the mailing list beforehand, the more stronger a proposal it will develop into, and the higher your chances of being accepted into the programme.<br />
<br />
<blockquote><br />
Each project idea within a particular priority has been tagged with the following properties:<br />
* ''Required Experience:'' Languages, concepts, or packages with which applicants must be familiar.<br />
* ''Bonus Experience:'' Other experience or familiarity which would be greatly helpful to applicants for this project.<br />
* ''Interests:'' Areas of particular relevance to this project, and an indicator of where successful students might apply their experiences coming out of this project.<br />
* ''Difficulty:'' easy, medium or difficult<br />
* ''Recommended reading:'' pointers to documentation, papers, specific bugs, etc.<br />
<br />
Note that all of the projects require some experience and comfort with C++. Project ideas for which C++ is noted as a required experience will require more and deeper familiarity with the language. A similar notion applies to computer networking, BSD sockets, etc: Familiarity is strongly preferred, but is not required except where explicitly noted due to the topic being more advanced in that regard.<br />
</blockquote><br />
<br />
= Guidelines for project ideas =<br />
<br />
For mentors who're adding project ideas to the list below, please ensure that:<br />
<br />
* The projects are sized such that there can be a code merge by the end of the coding period. The scope of the project should be such that it is very difficult to not have a code merge by the end of the summer.<br />
* The proposed projects are not too open-ended. That is, if the deliverables or a clear path to the same are not well understood, it is better kept outside GSOC.<br />
* There should be a clear merge path to one of the main project code repositories (ns-3-dev, ns-3-dce, bake) by the end of the summer, either because the patches directly apply or they directly apply to an ns-3 module that is in the process of merging with ns-3-dev.<br />
<br />
= Project Ideas =<br />
<br />
=== Vehicular Ad-hoc Networks ===<br />
<br />
Mentors: [mailto:guillaume.remy@ieee.org Guillaume Rémy]<br />
<br />
* '''Wireless Access in Vehicular Environments (WAVE)''' The IEEE 1609 Family of Standards for Wireless Access in Vehicular Environments (WAVE) defines the architecture, communications model, management structure, security mechanisms, and physical access for wireless communications in the vehicular environment. Some components of this specification has already been implemented for ns-3. However, we are still far from the simulation of WAVE on ns-3. The current status is as follows and it is up to the student to decide how much he/she wants to implement:<br />
# The PHY is ready as-is: the 5 MHz and 10 Mhz channel options (i.e., 802.11p) are already implemented, with a corresponding error model. However, there is an alternative solution that implements 802.11 layers: PhySim [4], that does a more accurate job and is more appropriate for vehicular network simulations. Depending on the skills of the student, it could be possible to properly integrate PhySim in the latest NS-3 version, and start WAVE implementation on top of it.<br />
# The MAC needs to be modified. First, some trivial reworking is needed [1], and the rest depends on what the student wishes to implement. One possible approach is to use [2] as a guideline for implementing what is discussed in [3]. The most complex piece to implement are the channel switch logic (the execution of the channel switch command is already implemented)<br />
# higher layers: nothing specific to WAVE is currently available.<br />
# mobility models: no mobility model specific for vehicular scenarios is included in ns-3. But given that ns-3 can work with ns-2 mobility traces, it should be possible to find a mobility trace generator for vehicular scenarios that can be reused with ns-3 (e.g. SUMO).<br />
** ''Required experience:'' C++.<br />
** ''Bonus experience:'' Wireless networking, WAVE.<br />
** ''Interests:'' Wireless networking, VANETs.<br />
** ''Difficulty:'' medium to hard, depending on what the student proposes to implement.<br />
** ''Recommended reading''<br />
*** [0] http://www.nsnam.org/bugzilla/show_bug.cgi?id=700#c11<br />
*** [1] http://www.nsnam.org/bugzilla/show_bug.cgi?id=945<br />
*** [2] http://www.nsnam.org/bugzilla/show_bug.cgi?id=978#c16<br />
*** [3] http://www.nsnam.org/bugzilla/attachment.cgi?id=968<br />
*** [4] http://dsn.tm.kit.edu/english/ns3-physim.php<br />
<br />
<br />
=== 802.15.4 Energy Model ===<br />
<br />
Mentors: [mailto:tommaso.pecorella@unifi.it Tommaso Pecorella]<br />
<br />
* '''802.15.4 Energy Model:''' The lr-wpan model is an 802.15.4 PHY and MAC model currently in development. The model is not actually linked with the energy model. Hence it is not possible to simulate correctly the energy discharge of a Wireless Sensor Node correctly. The goal is to develop the missing classes needed to link the two modules, and to validate the results against the literature models.<br />
** ''Required Experience:'' C++, WSN<br />
** ''Bonus Experience:'' ns-3 Energy model<br />
** ''Interests:'' WSN, Battery discharge<br />
** ''Difficulty:'' easy<br />
** ''Recommended reading:''<br />
*** [http://www.sics.se/~adam/dunkels07softwarebased.pdf Software-based On-line Energy Estimation for Sensor Nodes] <br />
*** [http://cds.unibe.ch/research/pub_files/HBNH11.pdf On the Accuracy of Software-based Energy Estimation Techniques]<br />
<br />
<br />
=== 802.15.4 Bootstrap ===<br />
<br />
Mentors: [mailto:tommaso.pecorella@unifi.it Tommaso Pecorella]<br />
<br />
* '''802.15.4 Bootstrap:''' The lr-wpan model is an 802.15.4 PHY and MAC model currently in development. The model is able to simulate an 802.15.4 network in ad-hoc mode, much like Contiki-os nodes do. An useful extension is to fully support the node bootstrap phase, including node association and beacon request/reply. The goal of the project is to enhance the lr-wpan module so to use beacons in the bootstrap phase along with network scanning and pan-id resolution for in-range coordinators.<br />
** ''Required Experience:'' C++, WSN<br />
** ''Bonus Experience:'' 802.15.4 standard<br />
** ''Interests:'' WSN<br />
** ''Difficulty:'' medium<br />
** ''Recommended reading:''<br />
*** [http://standards.ieee.org/getieee802/download/802.15.4-2011.pdf 802.15.4 Standard]<br />
<br />
<br />
<br />
=== 802.15.4 Beacon-enabled mode ===<br />
<br />
Mentors: [mailto:tommaso.pecorella@unifi.it Tommaso Pecorella]<br />
<br />
* '''802.15.4 Beacon-enabled mode:''' The lr-wpan model is an 802.15.4 PHY and MAC model currently in development. The model is able to simulate an 802.15.4 network in ad-hoc mode, much like Contiki-os nodes do. Unlike Contiki-os, the model could benefit from supporting beacon-enabled mode of operation. The beacon-enabled mode is a fully slotted transmission mode, with guaranteed slots and bound performances, unlike the ad-hoc mode. This is especially important because the L3 routing protocols might be strongly affected by the lower-layer topology. Hence it is of paramount importance to be able to simulate both in ns-3. The goal of the project is to develop the new beacon-enabled MAC layer for the lr-wpan module. <br />
** ''Required Experience:'' C++, WSN<br />
** ''Bonus Experience:'' 802.15.4 standard<br />
** ''Interests:'' WSN<br />
** ''Difficulty:'' medium/hard<br />
** ''Recommended reading:''<br />
*** [http://standards.ieee.org/getieee802/download/802.15.4-2011.pdf 802.15.4 Standard]<br />
<br />
<br />
=== Simulating the Internet of Things in NS-3 === <br />
Mentors: [mailto:peter.kourzanov@gmail.com Peter Kourzanov], [mailto:hong.r.li@nxp.com Hong.R. Li]<br />
<br />
In this project we hope to improve the Wireless Personal Area Network (WPAN) support in NS-3. In particular, the aim is to bring higher-level ZB models [7] and the underlying 802.15.4 Low-Rate WPAN (LR-WPAN) models [6] in NS-3 to the level at which large-scale simulations can be validated against real-system test-beds. In particular, current NS-3 work mentions missing support for the beaconing (i.e., slotted) mode [2], no support for ZB and ZBP standards [1], as well as lack of validation against real Hardware (HW) [2]. Older, but mature ZB 2003 code from NS-2 [5] can be taken as a starting point, although we expect that a significant effort shall be spent on porting it to NS-3 and upgrading it from ZB 2003 to ZBP 2007/2012 compliance. Alternatively, a new implementation of ZBP and/or extensions for ZBP 2012 and ZBGP might need to be developed for NS-3. This project can be executed on the premises of NXP Semiconductors Research in Eindhoven (Netherlands), Sheffield (United Kingdom) and/or in Singapore which in this case will donate a WSN test-bed for experimentation and validation. The work can be partially (excluding validation) executed remotely, with no access to the test-bed.The resulting code shall be contributed to the NS-3 community.<br />
** ''Required experience'' : C++<br />
** ''Bonus experience'' : NS-2, WSN, Matlab<br />
** ''Interests'' : ZB, embedded, wireless, sensor networks<br />
** ''Difficulty'' : medium<br />
** ''Recommended reading'' :<br />
**# LR-WPAN [http://www.nsnam.org/wiki/index.php/Lr-wpan status page]<br />
**# LR-WPAN [http://code.nsnam.org/tomh/ns-3-lr-wpan/file/735b14afde8e/lr-wpan-documentation.pdf model-library document]<br />
**# Preliminary LR-WPAN [http://code.nsnam.org/tomh/ns-3-lr-wpan code] for NS-3<br />
**# Preliminary IPv6 over Low-power WPAN (6LoWPAN) [http://code.nsnam.org/tpecorella/ns-3-6LoWPAN code] for NS-3<br />
**# Mature [http://cint.ccny.cuny.edu/awnl/Software implementation] of ZB 2003 in [http://www.isi.edu/nsnam/ns NS-2] (included in version 2.35)<br />
**#* original [http://cint.ccny.cuny.edu/awnl/Software/WPAN_ZBR_pub.pdf presentation] from CUNY<br />
**#* adaptation and bug-fixes from [http://www.ee.washington.edu/research/funlab/802_15_4 Funlab]<br />
**# [http://en.wikipedia.org/wiki/IEEE_802.15.4 LR-WPAN] page on Wikipedia<br />
**# [http://en.wikipedia.org/wiki/ZigBee ZB] page on Wikipedia<br />
<br />
<br />
=== Neighbor Discovery Optimization for Low Power and Lossy Networks (6LoWPAN-nd) ===<br />
<br />
Mentors: [mailto:tommaso.pecorella@unifi.it Tommaso Pecorella]<br />
<br />
* '''6LoWPAN-nd implementation and testing:''' [http://tools.ietf.org/html/draft-ietf-6lowpan-nd-18 6LoWPAN-nd] is novel draft protocol from IETF's [http://tools.ietf.org/wg/6lowpan/ LoWPAN WG]. The protocol aims at defining new and optimized methods to perform Neighbor Discovery and Node Bootstrap for Wireless Sensor Networks and it will be the counterpart of the 6LoWPAN IPv6 header compression strandard. 6LoWPAN-nd is not currently implemented in ns-3, while 6LoWPAN compression and 802.15.4 stacks are in advanced development status. In order to simulate a real Wireless Sensor Network 6LoWPAN-nd should be developed and tested. <br />
** ''Required Experience:'' C++, IPv6, RPL<br />
** ''Bonus Experience:'' WSN networking<br />
** ''Interests:'' WSN, IPv6, node bootstrap, efficient packet compression <br />
** ''Difficulty:'' hard<br />
** ''Recommended reading:''<br />
*** [http://tools.ietf.org/html/rfc4919 RFC 4919] IPv6 over Low-Power Wireless Personal Area Networks (6LoWPANs): Overview, Assumptions, Problem Statement, and Goals<br />
*** [http://tools.ietf.org/html/draft-ietf-6lowpan-nd-18 6LoWPAN-nd] Neighbor Discovery Optimization for Low Power and Lossy Networks<br />
<br />
<br />
=== RPL protocol Metric and Constraints ===<br />
<br />
Mentors: [mailto:tommaso.pecorella@unifi.it Tommaso Pecorella]<br />
<br />
* '''RPL protocol Metric and Constraints:''' The [http://tools.ietf.org/wg/roll/ RPL protocol] is a flexible routing protocol for Wireless Sensor Networks. The actual ns-3 module is implementing only some basic metrics such as Hop Count and ETX.The RPL module is in active development and it is not publicly available, however the code will be provided to the student before the program start.The goal of the idea is to extend the actual implementation so to support other metric kinds and options (additive, min-max, etc.).<br />
** ''Required Experience:'' C++, IPv6,<br />
** ''Bonus Experience:'' RPL protocol<br />
** ''Interests:'' WSN, routing <br />
** ''Difficulty:'' medium<br />
** ''Recommended reading:''<br />
*** [http://tools.ietf.org/html/rfc6550 RFC 6550] RPL: IPv6 Routing Protocol for Low-Power and Lossy Networks<br />
*** [http://tools.ietf.org/html/rfc6551 RFC 6551] Routing Metrics Used for Path alculation in Low-Power and Lossy Networks<br />
<br />
<br />
=== IPv6 stack validation and improvements ===<br />
<br />
Mentors: [mailto:tommaso.pecorella@unifi.it Tommaso Pecorella]<br />
<br />
* '''IPv6 stack validation and improvements:''' IPv6 use is going to increase dramatically in the next years. Various international projects are required to use IPv6 (e.g., EU FP7, EU 2020, etc.). Hence, simulations should be run on IPv6 rather than IPv4, and it is becoming an imperative action to have a reliable, full-featured IPv6 stack for ns-3. IPv6 stack for ns-3 works, but it lacks a number of interesting and useful features. A few missing features are (the list is not exhaustive):<br />
*# There is no [http://en.wikipedia.org/wiki/Path_MTU_discovery path MTU discovery] see also [http://tools.ietf.org/html/rfc1981 RFC 1981].<br />
*# Flow Monitor module does not work on the IPv6 stack<br />
*# FlowLabel header field is not currenly used<br />
*# IPSec is not supported<br />
* The candidate should check the missing features and select a set to develop and test. A general test of the IPv6 stack to be done against a reference Linux implementation is a premium.<br />
** ''Required Experience:'' C++, TCP/IP networking<br />
** ''Bonus Experience:'' IPv6 protocols<br />
** ''Interests:'' IPv6 internetworking<br />
** ''Difficulty:'' easy / medium, depending on the features implemented<br />
** ''Recommended reading:''<br />
*** [http://www.ietf.org/rfc/rfc4294.txt RFC 4294 - IPv6 Node Requirements]<br />
*** [http://tools.ietf.org/html/rfc1981 RFC 1981 - Path MTU Discovery for IP version 6]<br />
*** ns-3 Flowmon module documentation<br />
*** [http://tools.ietf.org/html/rfc6437 RFC 6437 - IPv6 Flow Label Specification]<br />
*** [http://tools.ietf.org/html/rfc4302 RFC 4302 - IP Authentication Header]<br />
*** [http://tools.ietf.org/html/rfc4303 RFC 4303 - IP Encapsulating Security Payload (ESP)]<br />
<br />
<br />
=== Multicast IPv6 traffic support ===<br />
<br />
Mentors: [mailto:tommaso.pecorella@unifi.it Tommaso Pecorella]<br />
<br />
* '''Multicast IPv6 traffic:''' Multicast traffic support is of paramount importance for IPv6 networks. While Multicast traffic is used everyday with local addresses, and ns-3 is supporting it, MLDv2 and PIM are missing. As a consequence global multicast routes must be manually set in routers, which is cumbersome, error-prone and not suitable for realistic scenarios, where the users are joining/leaving multicast groups on the fly. The implementor will have to both modify the actual routing protocols so to enable dynamic multicast routes support and to actually develop the MLDv2 and/or the PIM protocol modules.<br />
** ''Required Experience:'' C++, IPv6,<br />
** ''Bonus Experience:'' Multicast routing protocols (MLDv2/IGMPv3 and PIM)<br />
** ''Interests:'' routing, multicast<br />
** ''Difficulty:'' medium/hard<br />
** ''Recommended reading:''<br />
*** [http://www.h3c.com/portal/Products___Solutions/Products/Switches/H3C_S5500-SI_Series_Switches/White_Paper/200806/688942_57_0.htm Multicast Technology White Paper]<br />
*** [http://www.alliedtelesis.co.nz/documentation/at9800/291/pdf/ipv6mu.pdf IPv6 Multicasting]<br />
*** All the relevant RFCs (search in [http://www.rfc-editor.org/search/rfc_search.php RFC Editor search engine])<br />
<br />
<br />
=== High performance ns-3 emulation with Direct NIC Access ===<br />
<br />
Mentors: [mailto:jose.nunez@cttc.cat José Nuñez]<br />
<br />
The current ns-3 emulation framework has certain limitations in terms of throughput performance, due to the computationally intensive polling between the user space ns-3 instance and the kernel. One reason for this limitation is the use of PF_INET sockets. An alternative that is expected to yield better performance is the use of PF_RING sockets. <br />
As part of this project, the student shall integrate the use of PF_RING sockets into the ns-3 emulation framework. For example, the student could create a new class HighSpeedEmuNetDevice using PF_RING sockets, and then do some profiling to verify the improvement in performance with respect to the existing ns-3 EmuNetDevice.<br />
* ''Required Experience:'' C++, Linux <br />
* ''Interests:'' network performance, emulation<br />
* ''Difficulty:'' hard<br />
* ''Recommended reading:''<br />
** http://www.ntop.org/products/pf_ring/libzero-for-dna/<br />
<br />
<br />
=== LTE Idle Mode Procedures ===<br />
<br />
Mentors: [mailto:jaime.ferragut@cttc.es Jaime Ferragut] [mailto:nicola.baldo@cttc.es Nicola Baldo]<br />
<br />
* The current ns-3 LTE module does not support idle mode procedures. As part of the GSoC, a student could consider implementing one or more of the following procedures: Cell selection and reselection, Paging, Tracking Area Update.<br />
* ''Required Experience:'' C++, LTE<br />
* ''Interests:'' mobility management<br />
* ''Difficulty:'' medium/hard<br />
* ''Recommended reading:''<br />
** 3GPP TS 36.300 "E-UTRA and E-UTRAN overall description", section 10.1.1 "Mobility Management in ECM-IDLE"<br />
** 3GPP TS 36.304 "User Equipment (UE) procedures in idle mode"<br />
** 3GPP TS 24.301 "Non-Access-Stratum (NAS) protocol for Evolved Packet System (EPS)"<br />
<br />
<br />
=== Decouple traffic generators from sockets ===<br />
<br />
Mentors: [mailto:tomh@tomh.org Tom Henderson] [mailto:rivanvx@gmail.com Vedran Miletić]<br />
<br />
* ns-3 uses applications that are part traffic generator, part socket-based application. The traffic generation part is not decoupled from the sockets API, making it hard to use applications over non-socket APIs such as future sensor networks. This project would work on a cleaner separation between traffic generator (OnOffApplication) and sockets.<br />
* ''Required Experience:'' C++, sockets API<br />
* ''Interests:'' <br />
* ''Difficulty:'' easy/medium<br />
* ''Recommended reading:''<br />
** Unix Network Programming (Stevens) or equivalent<br />
<br />
<br />
=== ARP and NDisc cache visibility ===<br />
<br />
Mentors: [mailto:tomh@tomh.org Tom Henderson] [mailto:rivanvx@gmail.com Vedran Miletić]<br />
<br />
* There is no API for reading and manipulating the IPv4 ARP and IPv6 Neighbor Discovery caches. Something similar to how PrintRoutes is done for IPv4 would be useful. Additional work on this project could focus on IP address handling for interfaces (bugs 757 and 760), and bug 187 (enabling perfect ARP).<br />
* ''Required Experience:'' C++<br />
* ''Interests:'' IPv4 and Ipv6<br />
* ''Difficulty:'' easy/medium<br />
* ''Recommended reading:''<br />
** source code in src/internet, and the bugs mentioned above<br />
<br />
<br />
=== INSTOOLS for ns-3 ===<br />
<br />
Mentors: [mailto:tomh@tomh.org Tom Henderson]<br />
<br />
'''INSTOOLS for ns-3:''' [http://groups.geni.net/geni/wiki/InstrumentationTools INSTOOLS] is a software instrumentation package for GENI experiments. It logs a lot of artifacts of experiments, such as ARP and IP routing tables, Netflow graphs, etc, to databases. The aim of this project is to instrument ns-3 nodes to capture as much of this data as is applicable. A bonus is to try to integrate further with ProtoGENI and INSTOOLS such as making the ns-3 data archived just like it was a GENI experiment.<br />
* ''Required Experience:'' Familiarity with Linux networking and with C++ programming. <br />
* ''Bonus Experience:'' Experience with GENI and/or Emulab<br />
* ''Interests:'' Simulator tool development, integration with testbed experiments<br />
* ''Difficulty:'' Medium<br />
* ''Recommended Reading:'' http://groups.geni.net/geni/wiki/InstrumentationTools<br />
<br />
<br />
=== bufferbloat-related models ===<br />
<br />
Mentors: [mailto:tomh@tomh.org Tom Henderson]<br />
<br />
'''bufferbloat models:''' [https://www.youtube.com/watch?v=-D-cJNtKwuw Bufferbloat] is an interesting contemporary research topic. <br />
This project proposal is to develop models, examples, and visualizations around the bufferbloat problem. Some technical solutions include Linux Byte Queue Limits (BQL) and active queue management (AQM) techniques (we just have RED queues in ns-3-dev but no models yet for the others).<br />
Note: There is already some ns-3 code available (see below) but the authors have not<br />
updated it for a while; this could be a starting point. Also, work could<br />
be done on using actual Linux code in the ns-3 Direct Code Execution (DCE)<br />
project.<br />
* ''Interests:'' Internet performance, linux kernel networking <br />
* ''Difficulty:'' easy to hard, depending on the depth of the project<br />
* ''Recommended reading:'' <br />
** http://gettys.wordpress.com/category/bufferbloat/<br />
** [http://www.bufferbloat.net/projects/cerowrt CeroWrt]<br />
** [http://www.ietf.org/proceedings/86/slides/slides-86-iccrg-3.pdf ICCRG presentation]<br />
** [http://pollere.net/CoDel.html ns-2 code]<br />
** [https://codereview.appspot.com/6463048/ ns-3 code review]<br />
<br />
<br />
=== High performance ns-3 emulation with Direct NIC Access (2) ===<br />
Mentors: [mailto:tazaki@sfc.wide.ad.jp Hajime Tazaki]<br />
<br />
The current ns-3 emulation framework has certain limitations in terms of throughput performance, due to the computationally intensive polling between the user space ns-3 instance and the kernel. One reason for this limitation is the use of PF_INET sockets. An alternative that is expected to yield better performance is the use of netmap packet I/O.<br />
<br />
The target of this project would be:<br />
<br />
# Identifying the bottle of ns-3. Using profiler (oprofile etc) would be the start point.<br />
# Introducing netmap interface as a FdNetDeviceHelper.<br />
# Performance comparison between existing one (i.e., EmuNetDevice) with the netmap one.<br />
# Creating a patch for fdnetdevice module (and ask reviews).<br />
# Documentation including how netmap should be installed/configured. Though netmap supports FreeBSD platform, it is fine to start only with Linux version in this project.<br />
<br />
* ''Required Experience:'' C++, Linux, Profiling (e.g., gprof/oprofile)<br />
* ''Interests:'' network performance, emulation<br />
* ''Difficulty:'' hard<br />
* ''Recommended reading:''<br />
** [http://info.iet.unipi.it/~luigi/netmap/ netmap]<br />
** Luigi Rizzo, [http://info.iet.unipi.it/~luigi/papers/20120503-netmap-atc12.pdf netmap: a novel framework for fast packet I/O], Usenix ATC'12, June 2012<br />
** Luigi Rizzo, [http://queue.acm.org/detail.cfm?id=2103536 Revisiting network I/O APIs: The netmap Framework], Communications of the ACM, March 2012<br />
** [http://nepi.inria.fr/wiki/FdNetDevice FdNetDevice] (will be merged at ns-3.17)<br />
<br />
=== Linux SCTP support over DCE ===<br />
Mentors: [mailto:tazaki@sfc.wide.ad.jp Hajime Tazaki]<br />
<br />
Stream Control Transmission Protocol (SCTP) is an alternate transport protocol rather than traditional TCP and UDP. It covers a broad feature for application messaging, but one of interesting feature is using multiple streams in a single session. Almost none of applications are using SCTP at this moment in fact, but it is used in the back-end of LTE.<br />
<br />
In this project, instead of implementing huge amount of specification of SCTP (134 pages in RFC 2960), we reuse existing Linux implementation over Direct Code Execution (DCE). DCE allows us to simulate existing implementation over ns-3 without (ideally) modifying original code.<br />
<br />
The target of this project would be:<br />
<br />
# Modifying DCE Linux module to support SCTP<br />
## enabling CONFIG_IP_SCTP option (and related one) and build it (I have incomplete patch)<br />
## writing simple SCTP program (I also have)<br />
## writing sample scenario script using above SCTP program (I also have)<br />
# Implement missing part of DCE Linux module to run SCTP code over ns-3<br />
# Implement DCE Cradle wrapper socket for SCTP (optional)<br />
# Create patch for ns-3-dce (and code review)<br />
<br />
* ''Required Experience:'' C/C++, Linux, Kernel<br />
* ''Interests:'' transport protocol, Direct Code Execution<br />
* ''Difficulty:'' medium<br />
* ''Recommended reading:''<br />
** [http://tools.ietf.org/html/rfc3286 RFC 3286] An Introduction to the Stream Control Transmission Protocol]<br />
** [http://lksctp.sourceforge.net Linux Kernel Stream Control Transmission Protocol Tools (lksctp-tools)]<br />
** [http://linux.die.net/man/7/sctp sctp(7) - Linux man page]<br />
** [http://code.nsnam.org/ns-3-dce/file/456bb670b7d2/example/dce-dccp.cc DCE DCCP protocol example simulation scenario]<br />
** [http://www.nsnam.org/projects/direct-code-execution/ Direct Code Execution]<br />
** [https://github.com/thehajime/net-next-sim DCE Linux module]<br />
** [https://sites.google.com/site/thehajime/Home/wns3-2013-tazaki.pdf?attredirects=0 DCE Cradle]<br />
<br />
<br />
=== Road Topology Model ===<br />
Mentors: [mailto:loulloudes.n@cs.ucy.ac.cy Nicholas Loulloudes]<br />
<br />
<br />
Envisioned protocols, services and applications that will be developed and deployed on VANET-enabled vehicles, will require knowledge of the underlying road topology. Since the ns-3 community aims at supporting network simulations for the vehicular environments, it is important to develop a road-topology model in ns-3. Currently, vehicle movement in ns-3 is simulated by utilizing traces in the ns-2 mobility format. These traces can be generated and exported using a number of traffic simulators such as SUMO[1], VanetMobiSim[2], etc. However, given the simplicity of the ns-2 mobility format (x-y-z coordinates), nodes in the simulation are agnostic of the underlying road topology map, and hence they cannot evaluate if for example they are moving on an arterial road, or a city road or they are stopped at an intersection. A solution to this, is to provide the ability to import in ns-3 a map of the simulated area either from a public repository such as OpenStreetMap.org [3], or TigerMaps[4] or from a traffic simulator such as SUMO[3]. By parsing the map file before the simulation start, the road topology model can be populated with information such as: the structure of the road network (roads and junctions), speed limits / one-way streets, number of lanes, traffic lights etc. In addition, the necessary mechanisms should be developed, to enable each node in the simulation (i.e a vehicle) , to identify its whereabouts on the road-topology based on its current geographic coordinates. <br />
* Interests: VANETs. realistic simulations<br />
* Required experience: C++, XML, Python<br />
* Bonus experience: Python, Perl, Graph theory <br />
* Difficulty: medium <br />
* Recommended reading:<br />
** [1] http://sumo.sourceforge.net/ <br />
** [2] http://vanet.eurecom.fr/ <br />
** [3] http://www.openstreetmap.org/ <br />
** [4] http://www.census.gov/geo/maps-data/data/tiger.html<br />
<br />
<br />
<br />
=== Improve ns-3 support to sensor networks, RIOT adaptation ===<br />
<br />
Mentors: [mailto:daniel.camara@inria.fr Daniel Camara]<br />
<br />
The wireless sensor networks field is a rising star in research, the number of applications, and problems, related to this field increases every day. In fact, a whole new set or research other fields such as: smart cities, internet of the things, vehicular networks and public safety networks rely heavily on wireless sensor networks. This project intends to improve the support of ns-3 to this important and challenging research field. RIOT[1] is a brand new operating system for wireless sensor networks. It has a series of interesting characteristics that makes it a perfect candidate to became THE standard OS for small sensor devices. <br />
<br />
This project intends to enable the execution of several instances of RIOT OS, over the same machine, and link these instances using ns-3. Why to simulate a sensor devices if we can emulate a whole network using a real sensor OS? Not only the simulations will be more realistic, but also we will be sure that the applications developed over this simulation environment will run seamless over real sensor nodes. The importance of this project is two folded. Without a shadow of a doubt it will be important and useful for the ns-3 community. However, up today RIOT still does not have a standard simulation environment. This project will provide RIOT users an invaluable access to the whole power of ns-3 simulations. It will be a tool that will be certainly used on all future developments and tests of RIOT.<br />
<br />
The target of this project would be:<br />
<br />
# Create a RIOT interface at ns-3<br />
# Create a ns-3 architecture for RIOT<br />
# Link these two parts taking into account:<br />
## Real time/non-real time simulations (ns-3 clock should be used to control RIOT machines)<br />
## Implement an interrupt handler for creating ns-3 events on the ns-3 scheduler<br />
## Interaction between ns-3 and RIOT schedulers<br />
## Implement the communication between RIOT nodes<br />
## Implement the RIOT Physical layer<br />
## Provide mechanisms to interconnect RIOT machines using RIOT mac and standard ns-3 PHY-MAC layers<br />
# Provide tests<br />
# Provide examples of execution<br />
# Provide a good documentation support of the project<br />
<br />
* ''Support:'' The RIOT developers are quite interested on this project, since it will make their life easier ;), this means we will have full access to them and any doubts we may have about the operating system itself should be fast addressed by them.<br />
<br />
* ''Required Experience:'' C/C++<br />
<br />
* ''Interests:'' Sensor networks, simulation, operating systems<br />
<br />
* ''Difficulty:'' medium<br />
<br />
* ''Recommended reading:''<br />
<br />
** [1] E. Baccelli, O. Hahm, M. Wählisch, M. Günes, T. C. Schmidt, [http://hal.inria.fr/hal-00768685/ RIOT: One OS to Rule Them All in the IoT], INRIA Research Report N° 8176, Project-Team HiPERCOM, ISSN 0249-6399 ISRN INRIA/RR--8176--FR+ENG, December 2012<br />
<br />
** [2] Heiko Will, Kaspar Schleiser, Jochen Schiller, [http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.173.1862 A Real-Time Kernel for Wireless Sensor Networks Employed in Rescue Scenarios] The 4th IEEE International Workshop on Practical Issues In Building Sensor Network Applications (SenseApp 2009) Zürich, Switzerland; 20-23 October 2009<br />
<br />
<br />
=== Extension Of The LTE HO Algorithm And UE Measurements Support ===<br />
<br />
Mentors: [mailto:nicola.baldo@cttc.es Nicola Baldo] [mailto:marco.miozzo@cttc.es Marco Miozzo] [mailto:mrequena@cttc.es Manuel Requena]<br />
<br />
*The ns-3 LTE module provides only basic functionality for supporting HO decision making algorithms. In detail, the UE measurements already includes only 2 events from the 6 defined by 3GPP. The project aims at overcome this limitation of the module in order to provide HO algorithms, and in general RRM ones, the comprehensive set of triggers for performing smart HO, load balancing and QoS management. The project can be divided in three steps in order to make it tunable according to the effort and time constraints:<br />
<br />
** a) Implementation of intra-freq UE measurements report triggering (already A2 and A4 done and can be taken as example)<br />
** b) Refinement of the HO procedure (reference model [5] and SotA [6], evaluation of student's proposals)<br />
** c) Implementation of inter-freq UE measurements: task devoted to the extension of the measurements to other frequencies respect the one of the serving cell (imply work on Mac, Scheduler and Phy layer)<br />
* ''Required Experience:'' C++, LTE<br />
* ''Interests:'' LTE, 3GPP, RRM<br />
* ''Difficulty:'' <br />
** a) easy<br />
** b) medium<br />
** c) hard<br />
<br />
* ''Recommended reading:''<br />
<br />
** [1] http://iptechwiki.cttc.es/LTE-EPC_Network_Simulator_%28LENA%29<br />
** [2] TS 36.300 section 22.3.3 Intra-LTE/frequency Automatic Neighbour Relation Function<br />
** [3] TS 36.331 section 5.5 Measurements<br />
** [4] TS 36.133, Section 8.2 UE Measurements Procedures in RRC_CONNECTED State<br />
** [5] "Evaluation of the Automatic Neighbor Relation Function in a Dense Urban Scenario", C.M. Mueller, H. Bakker, L. Ewe Inst. of Commun. Networks & Comput. Eng., Univ. of Stuttgart, Stuttgart, Germany 06/2011; DOI:10.1109/VETECS.2011.5956375 In proceeding of: Vehicular Technology Conference (VTC Spring), 2011 IEEE 73rd<br />
** [6] "Energy-Efficient Mobility Management for the Integrated Macrocell-Femtocell LTE Network", D. Xenakis, N. Passas, L. Di Gregorio and Ch. Verikoukis, presented at BeFemto Femto Winter School, Feb 2012, Barcelona, Spain<br />
*** http://sites.cttc.es/femtoschool/images/presentations/16_dionysisxenakis_univathens_energyefficientmobilitymanagement.pdf<br />
*** https://www.youtube.com/watch?v=H0hNrLh6mUw&list=PL551D6BB1392B03EE</div>Mmiozzohttps://www.nsnam.org/mediawiki/index.php?title=GSOC2011Projects&diff=5274GSOC2011Projects2011-03-04T17:15:51Z<p>Mmiozzo: /* Priority Project Ideas */</p>
<hr />
<div>{{TOC}}<br />
<br />
<div style="float: left; width: 50%"><br />
<br />
* [http://www.google-melange.com/document/show/gsoc_program/google/gsoc2011/faqs GSoC Frequently Asked Questions]<br />
* [http://en.flossmanuals.net/GSoCMentoringGuide GSoC Mentors Guide]<br />
* [http://www.booki.cc/gsocstudentguide/_v/1.0/what-is-google-summer-of-code/ Official GSoC Student Guide]<br />
* [[GS02011StudentGuide |ns-3 GSoC Student guide]]<br />
* [[GS02011StudentApplicationTemplate |GSoC Student application template]]<br />
* [[GSOC2011Projects |GSoC 2011 Ideas page]]<br />
* [[GSOC2010Projects |GSoC 2010 Ideas page]] | [[GSOC2010AcceptedProjects |GSoC 2010 Accepted Projects]]<br />
* [[GSOC2009Projects |GSoC 2009 Ideas page]] | [[GSOC2009AcceptedProjects |GSoC 2009 Accepted Projects]]<br />
* [[GSOC2010OAReport |GSoC Organization Administrator guide]]<br />
* ''Get in contact with the ns-3 team'': [http://mailman.isi.edu/mailman/listinfo/ns-developers ns-developers mailing list] | ''IRC'' #ns-3 on freenode.net<br />
</div><div style="float: left; width: 50%"><br />
[[Image:Ns3GSOC2011Flyer.jpg]]<br />
</div><br />
<p><br />
<br />
= GSoC 2011 Ideas =<br />
<br />
This webpage highlights project ideas for ns-3's [http://code.google.com/soc Google Summer of Code] 2011 effort.<br />
<br />
<br />
== About the ns-3 project ==<br />
<br />
ns-3 is a discrete-event network simulator, with a particular emphasis on network research and education. <br />
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.<br />
<br />
ns-3 has been in development since 2005 and has been making quarterly releases since June 2008 (our last release was ns-3.10 in January 2011). ns-3 is replacing the popular ns-2 tool which was developed in the 1997-2000 timeframe but became out of date and unmaintained. The tool is coming into wide use; our web server logged almost 71000 successful downloads of our released software between January 2010 and January 2011, and we have a users mailing list of about 900 members now averaging 200-300 posts per month.<br />
<br />
Our GSOC organizational admin is [mailto:suresh.lalith@gmail.com Lalith Suresh] and our backup org admin is [mailto:tomhend@u.washington.edu Tom Henderson].<br />
<br />
== Project Ideas ==<br />
<br />
The following are project ideas which the ns-3 team has identified as important and is most interested in working on as part of the 2011 Google Summer of Code. GSoC applicants are however free to propose their own ideas. In addition, please note that these ideas are not limited to Google Summer of Code, anyone is welcome to work on them. Please email the [http://mailman.isi.edu/mailman/listinfo/ns-developers ns-developers list] if you have an idea that you'd like to work on. GSoC applicants are encouraged to look over this list, pick one that especially interests them, think about it, and discuss potential approaches on the [http://mailman.isi.edu/mailman/listinfo/ns-developers ns-developers list]. Previous experience suggests that the more you discuss and refine your proposal on the mailing list beforehand, the more stronger a proposal it will develop into, and the higher your chances of being ranked high.<br />
<br />
<blockquote><br />
Each project idea has been tagged with the following properties:<br />
* ''Required Experience:'' Languages, concepts, or packages with which applicants must be familiar.<br />
* ''Bonus Experience:'' Other experience or familiarity which would be greatly helpful to applicants for this project.<br />
* ''Interests:'' Areas of particular relevance to this project, and an indicator of where successful students might apply their experiences coming out of this project.<br />
* ''Difficulty:'' easy, medium or difficult<br />
* ''Recommended reading:'' pointers to documentation, papers, specific bugs, etc.<br />
<br />
Note that all of the projects require some experience and comfort with C++. Project ideas for which C++ is noted as a required experience will require more and deeper familiarity with the language. A similar notion applies to computer networking, BSD sockets, etc: Familiarity is strongly preferred, but is not required except where explicitly noted due to the topic being more advanced in that regard.<br />
</blockquote><br />
<br />
<br />
=== Priority Project Ideas ===<br />
---------<br />
<br />
The following are work areas the ns-3 project has identified as the highest priorities, has several mentors available, and would be especially interested in having students work on. <br />
<br />
<blockquote><br />
<br />
==== Antenna Models ====<br />
<br />
Mentors: [mailto:ruben@net.t-labs.tu-berlin.de Ruben Merz]<br />
<br />
* '''Antenna Radiation Patterns''' This project would implement support for antenna radiation patterns in the physical layer of ns-3. In addition to enhancing the realism of the ns-3 physical layer, this would also enable to implement directional antennas in ns-3. This project can have a large impact on the ns-3 simulator as it would allow several wireless physical layers to benefit from it, namely 802.11, WiMAX and LTE. If time permits, validation with an 802.11 testbed is envisioned.<br />
** ''Required Experience:'' C++, some knowledge of radio propagation is a plus<br />
** ''Bonus Experience:'' physical layer modeling and simulation, wireless networking<br />
** ''Interests:'' wireless networking, physical layer modeling and simulation<br />
** ''Difficulty'': medium<br />
** ''Recommended readings'': ns-3 propagation models (files <code>*propagation*.{cc,h}</code>), [http://www.ece.cmu.edu/~andersoe/papers/simulation-wiopt.pdf The Impact of Directional Antenna Models on Simulation Accuracy]<br />
<br />
<br />
==== Model Store ====<br />
<br />
Mentors: TBD<br />
<br />
* '''Model Store.''' The recent ns-3 developers meeting identified a high priority project need to extend the overall build and packaging system for ns-3 to support a user-contributed "model store" inspired by the iPhone App Store. Presently, ns-3 has a monolithic build system and model contributors from outside the project have the choice of trying to integrate their code into the main tree, or else maintaining it (or not) as an independent third-party archive. However, from a maintenance perspective, the project cannot accept maintenance of all contributed models in the long term, and users also do not want to download and build an ever growing code base that may contain many models of no interest to them. Yet we do not want this maintenance and build time bottleneck to stifle user contributions. What we envision is a student project to develop a system and template for future contributors that will allow third-party developers to package, distribute, and update ns-3 protocol models and manage dependencies between models and the core of ns-3.<br />
* ''[[App Store Technical Requirements]]''<br />
* ''Required Experience:'' Python (ns-3 build system is Python-based)<br />
* ''Bonus Experience:'' Packaging frameworks, C++<br />
* ''Interests:'' Build systems, packaging<br />
* ''Difficulty:'' Medium to high<br />
* ''Recommended reading:'' ns-3's waf build system, package management tools, Firefox plugin management, Apple App Store<br />
<br />
<br />
==== Vehicular Ad-hoc Networks ====<br />
<br />
Mentors: [mailto:g.remy00@gmail.com Guillaume Rémy]<br />
<br />
* '''Wireless Access in Vehicular Environments (WAVE)''' The IEEE 1609 Family of Standards for Wireless Access in Vehicular Environments (WAVE) defines the architecture, communications model, management structure, security mechanisms, and physical access for wireless communications in the vehicular environment. Some components of this specification has already been implemented for ns-3. However, we are still far from the simulation of WAVE on ns-3. The current status is as follows and it is up to the student to decide how much he/she wants to implement: 1) The PHY is ready as-is: the 5 MHz and 10 Mhz channel options (i.e., 802.11p) are already implemented, with a corresponding error model. 2) As for the PHY-specific parameters (slot duration etc.), currently only coverage class 0 is supported [0]. 3) The MAC needs to be modified. First, some trivial reworking is needed [1], and the rest depends on what the student wishes to implement. One possible approach is to use [2] as a guideline for implementing what is discussed in [3]. The most complex piece to implement are the channel switch logic (the execution of the channel switch command is already implemented) 4) higher layers: nothing specific to WAVE is currently available. 5) mobility models: no mobility model specific for vehicular scenarios is included in ns-3. But given that ns-3 can work with ns-2 mobility traces, it should be possible to find a mobility trace generator for vehicular scenarios that can be reused with ns-3.<br />
** ''Required experience:'' C++.<br />
** ''Bonus experience:'' Wireless networking, WAVE.<br />
** ''Interests:'' Wireless networking, VANETs.<br />
** ''Difficulty:'' medium to hard, depending on what the student proposes to implement.<br />
** ''Recommended reading'' <br />
*** [0] http://www.nsnam.org/bugzilla/show_bug.cgi?id=700#c11<br />
*** [1] http://www.nsnam.org/bugzilla/show_bug.cgi?id=945<br />
*** [2] http://www.nsnam.org/bugzilla/show_bug.cgi?id=978#c16<br />
*** [3] http://www.nsnam.org/bugzilla/attachment.cgi?id=968<br />
<br />
<br />
==== Long Term Evolution ====<br />
<br />
Mentors: [mailto:peppe@giuseppepiro.com Giuseppe Piro]<br />
<br />
* '''LTE networks''' Long Term Evolution represents an emerging and promising technology for providing broadband ubiquitous Internet access. Recently a basic LTE module, which includes both PHY and MAC layers, has been developed for ns-3. However, LTE is a very complex standard, and for this reason at this time it is not possible yet to simulate a complete LTE system. Possible aspects of the LTE networks that can be developed are: periodic and aperiodic CQI feedbacks management, a more complete AMC module, frequency-time correlated channel models for both pedestrian and vehicular environment, PHY error model based on BLER curves, uplink, packet scheduling and other MAC functionalities.<br />
** ''Required experience:'' C++, generic understanding of PHY and MAC layers.<br />
** ''Bonus experience:'' ns-3, LTE.<br />
** ''Interests:'' 4G mobile communications.<br />
** ''Difficulty:'' medium to hard, depending on what the student proposes to implement.<br />
** ''Recommended reading'' <br />
*** Stefania Sesia, Matthew P. J. Baker, Issam Toufik, "Longng term evolution: from theory to practice", John Wiley and Sons, 2009<br />
*** Giuseppe Piro, Nicola Baldo, and Marco Miozzo", An LTE module for the ns-3 network simulator", Proc. of Workshop on NS-3, Barcelona, Spain, Mar., 2011.<br />
<br />
<br />
==== Satellite network stack ====<br />
<br />
Mentors: [mailto:tommaso.pecorella@unifi.it Tommaso Pecorella]<br />
<br />
* '''Satellite networks''' ns-2 incorporates support for satellite network simulations (http://ala.isti.cnr.it/wnlab/tdmadama). Since that work some relevant standards have been approved, particularly by ETSI. This project would investigate the architecture needed to support ETSI-BSM interfaces and some simple satellite return links, like bent-pipe and basic DVB-RCS.<br />
** ''Required Experience:'' C/C++<br />
** ''Bonus Experience:'' Satellite communication protocols, ns-2, basic UML<br />
** ''Interests:'' Satellite systems, Bandwidth-on-demand, control theory<br />
** ''Difficulty'': medium to difficult (depending on the implementation details the student want to include)<br />
** ''Recommended reading:'' <br />
*** [http://www.etsi.org/website/technologies/broadbandsatmultimedia.aspx Broadband Satellite Multimedia] <br />
*** [http://en.wikipedia.org/wiki/DVB-RCS Digital Video Broadcasting - Return Channel via Satellite]<br />
*** [http://en.wikipedia.org/wiki/DVB-S2 Digital Video Broadcasting - Satellite - Second Generation]<br />
<br />
<br />
==== Advanced Queues for NS-3 ====<br />
<br />
Mentors: TBD or [mailto:duy@soe.ucsc.edu Duy Nguyen]<br />
<br />
* '''Advanced Queue Management''' ns-3 currently has very limited support for more advanced queuing disciplines. The goal of this project is to provide fresh implementation of RED queue to ns-3 by surveying RED queue implementation in ns-2, Linux Kernel (if applicable), and, especially, Sally's RED paper. The preferred outcome of this project will be NS-3 Simulator Tests for RED Technical Report (similar to NS Simulator Tests for RED Technical Report) with extensive validation test cases and providing a framework for other advanced queuing development in ns-3<br />
** ''Required Experience:'' C/C++, knowledge of queuing theory<br />
** ''Bonus Experience:'' ns-2 queues, Linux queues<br />
** ''Interests:'' Advanced queuing models and simulations, queuing theory<br />
** ''Difficulty'': medium to difficult <br />
** ''Recommended reading:'' <br />
*** [http://groups.google.com/group/ns-3-reviews/browse_thread/thread/6359c7c94a334f03 Current Progress on Queues in ns-3] <br />
*** [http://icir.org/floyd/red.html General Information on RED]<br />
*** [http://sourceforge.net/projects/nsnam/files/ns-2/2.34/ See ns-2.34/queue/* ]<br />
*** [http://icir.org/floyd/papers/red/red.html Sally's RED paper]<br />
*** [http://icir.org/floyd/papers/redsims.ps NS Simulator Tests for RED Technical Report]<br />
*** [http://code.nsnam.org/duy/ns-3-dev-queues/ If can be useful]<br />
<br />
<br />
==== Click Modular Router ====<br />
<br />
Mentors: [mailto:suresh.lalith@gmail.com Lalith Suresh] and [mailto:ruben@net.t-labs.tu-berlin.de Ruben Merz]<br />
<br />
* '''Click MAC Extensions for ns-3-click''' Last year's GSoC saw the integration of the Click Modular router with ns-3. However, one of the limitations of the implementation was that the usage of Click was confined to layer 3 only so as to allow all of ns-3's network device types to work under Click. Click's Wifi MAC specific elements cannot be used with ns-3-click yet. This project would involve keeping ns-3-click compatible with Click's Wifi MAC layer elements. Some possible steps in this direction are: 1) Implementing full Radiotap and/or atheros-descriptor header support for ns-3, 2) Implementing a ClickWifiMac abstraction that acts as a MAC high model for a NetDevice, connecting Click's interfaces directly to the lower MAC layers, 3) possibly implementing tx-queue feedback. Getting step 2 right can be a little tricky. Helpers will also be required to ease the end user's life. The above should be implemented as an alternate run-mode for ns-3-click operation. This should then be extensively tested and validated against some stock Click graphs.<br />
** ''Required Experience:'' C++.<br />
** ''Bonus Experience:'' Click, routing architectures, wireless networking.<br />
** ''Interests:'' Routing architectures, protocol development.<br />
** ''Difficulty:'' Medium.<br />
** ''Recommended Reading:''<br />
*** [http://portal.acm.org/citation.cfm?id=570772 NS-Click original paper]<br />
*** [http://read.cs.ucla.edu/click/nsclick NS-Click webpage]<br />
*** [https://www.pats.ua.ac.be/software/nsmadwifi Integration of ns-2 wireless features and Click]<br />
<br />
<br />
<br />
==== TinyOS code execution in ns-3 ====<br />
<br />
Mentors: [mailto:marco.miozzo@cttc.es Marco Miozzo] (CTTC), [mailto:nicola.baldo@cttc.es Nicola Baldo] (CTTC), [mailto:nicola.bui@patavinatech.com Nicola Bui] (Patavina Technologies)<br />
<br />
* '''TinyOS code execution in ns-3''' TinyOS is one of the most used operating system for wireless sensor networks; however the only tool available for simulating tinyOS code is TOSSIM, which supports the MicaZ platform only. The objective of this project is to allow the execution of TinyOS code within the ns-3 simulator, by simulating the hardware interfaces (radio, timers, etc.) of actual sensor platforms. To achieve this, the student will be asked to develop a phy/mac module that leverage on the Spectrum framework for channel modelling and that offers telosb-like interfaces to TinyOS.<br />
For the 2011 GSoC, we propose to focus on telosb hardware, since it is one of the most used research platform and mentors have strong expertise on it. The improvements with respect to TOSSIM are the possibility of testing real sensor application within mixed technology scenarios: i.e.: inter-technology interference in the ISM bands and interoperability (as a possible future extension).<br />
* ''Required Experience:'' ns-3, C++, C, TinyOS<br />
* ''Bonus Experience:'' nesC, telosb<br />
* ''Interests:'' wireless sensor networks<br />
* ''Difficulty:'' High<br />
* ''Recommended reading:''<br />
** [http://www.tinyos.net/ TinyOS website]<br />
** [http://docs.tinyos.net/index.php/TinyOS_Tutorials TinyOS tutorials]<br />
** [http://nescc.sourceforge.net/ nesC]<br />
<br />
=== Additional Project Ideas ===<br />
---------<br />
<br />
The following are additional project ideas that the ns-3 team has highlighted as important projects to support, and are suggested for students to extend. Not all of them have specific mentors assigned yet but we would seek out mentors from our mentor pool if high quality applications came in on these topics (or any ns-3 topic, for that matter).<br />
<br />
<blockquote><br />
<br />
==== General ====<br />
<br />
Mentors: WANTED, contact [mailto:boyko@iitp.ru Pavel Boyko]<br />
<br />
* '''Failure and Recovery Models'''<br />
** ''Description'': Introduce the concept of node, device and link failure and recovery to NS-3. Implement. <br />
** ''Required Experience:'' C++, basic software architecture, basic UML<br />
** ''Bonus Experience:'' ns-3 programming, contributions to open source projects.<br />
** ''Interests:'' modelling, software engineering, C++ programming<br />
** ''Difficulty:'' medium, the most difficult part is to define "correct" failure&recovery model<br />
<br />
==== Mobility ====<br />
<br />
Mentors: WANTED, contact [mailto:boyko@iitp.ru Pavel Boyko]<br />
<br />
* '''Coordinate Systems'''<br />
** ''Description'': Introduce the concept of coordinate system to NS-3. Implement [http://en.wikipedia.org/wiki/Geographic_coordinate_system geographic], [http://en.wikipedia.org/wiki/Geocentric_coordinates geocentric] and local Cartesian ([http://en.wikipedia.org/wiki/Map_projection projected]) coordinate systems. <br />
** ''Required Experience:'' C++, basic software architecture, basic UML, basic math<br />
** ''Bonus Experience:'' ns-3 programming, contributions to open source projects.<br />
** ''Interests:'' software engineering, C++ programming, geographic information systems<br/><br />
** ''Difficulty:'' easy<br />
<br />
<br />
Mentors: WANTED, contact [mailto:boyko@iitp.ru Pavel Boyko]<br />
<br />
* '''Satellite Mobility Model'''<br />
** ''Description'': Implement LEO/MEO satellite mobility model for NS-3.<br />
** ''Required Experience:'' C++, basic math, orbit mechanics is a plus<br />
** ''Bonus Experience:'' ns-3 programming, contributions to open source projects.<br />
** ''Interests:'' satellite communications, C++ programming<br/><br />
** ''Difficulty:'' medium<br />
** ''Reading:'' [http://imj.ucsb.edu/papers/172.pdf A SATELLITE MOBILITY MODEL FOR QUALNET NETWORK SIMULATIONS]<br />
** ''Reading:'' [http://www.isi.edu/nsnam/ns/doc/node197.html ns-2 LEO satellite models]<br />
<br />
==== Routing ====<br />
<br />
* '''Generalized Router Models/Structure.''' Many simulators, including ns-3, do not provide high fidelity models of Internet routers. For instance, intra-device latencies and input queuing behavior are not modeled. This project would adapt recent results on [http://www.cs.ucsb.edu/~rchertov/papers/infocom08.pdf empirical router testing] to develop a new, more detailed Router node type for ns-3.<br />
** ''Required Experience:''<br />
** ''Bonus Experience:'' Routing architectures, routing protocols, queueing theory, statistics<br />
** ''Interests:'' High fidelity simulation, queueing theory, statistics, data driven model development<br />
** ''Difficulty:'' medium-to-high, because there may be a dependency on Click router<br />
<br />
<br />
Mentors: WANTED, contact [mailto:aachurin@gmail.com Andrey Churin]<br />
<br />
* '''MPLS'''<br />
** ''Description'': Implement basic MPLS + LDP + RSVP stack model. <br />
** ''Required Experience:'' C++<br />
** ''Bonus Experience:'' ns-3 programming, contributions to open source projects.<br />
** ''Interests:'' MPLS, C++ programming<br/><br />
** ''Difficulty:'' medium<br />
** ''Reading:'' [http://code.google.com/p/ns3-mpls/source/checkout MPLS+LDP model by Andrey Churin], unfinished. Related RFC.<br />
<br />
==== MAC and PHY Models ====<br />
<br />
Mentors: [mailto:ruben@net.t-labs.tu-berlin.de Ruben Merz]<br />
<br />
* '''CSMA/CD and Aloha'''<br />
** ''Description'': Implement a CSMA/CD MAC protocol. Optionally, implement slotted aloha. A good reference describing the CSMA/CD and aloha protocols as well as basic theoretical results about these protocols is "Computer Networking: A Top-Down Approach.".<br />
** ''Required Experience:'' basic C++, know what aloha and CSMA/CD are.<br />
** ''Bonus Experience:'' ns-3 programming, contributions to open source projects.<br />
** ''Interests:'' networking, C++ programming<br/><br />
** ''Difficulty:'' easy<br />
** ''Recommended reading:'' [http://www.scribd.com/doc/5367449/Computer-Networking-A-TopDown-Approach-Featuring-The-Internet-aa Computer Networking: a top down approach], chapter 5.<br />
<br />
Mentors: TBD<br />
<br />
* '''SNS for ns-3 Wifi.''' [http://www.cs.cornell.edu/people/egs/sns/ Staged Network Simulations (SNS)] is a patch for the ns-2 wireless models which provides for function approximation and caching. That mechanism greatly speeds up the many calculations required in mobile wireless simulations. This project would incorporate those techniques into the ns-3 WiFi model.<br />
** ''Required Experience:''<br />
** ''Bonus Experience:'' Software profiling, software tuning<br />
** ''Interests:'' Approximation, caching, software profiling, high performance computing, scientific computing<br />
** ''Difficulty:'' depends on what functionality the student proposes to implement<br />
<br />
==== Applications and Systems ====<br />
<br />
* '''Large Scale Topology Generation and Management.''' ns-2 incorporates support for [http://www.isi.edu/nsnam/ns/ns-topogen.html various topology generators], which would be useful to also support in ns-3. This project would investigate porting topology generators or mapping their output to ns-3 simulations. It would also touch on the problem of coherent IP addressing in generated topologies. In particular, [http://www.cs.utah.edu/flux/papers/ipassign-ftn2005-04-base.html recent work] by the Emulab project may be useful in this regard.<br />
** ''Required Experience:''<br />
** ''Bonus Experience:'' Graph theory, network management, Internet topology<br />
** ''Interests:'' Internet topology, Internet autonomous systems, graph theory<br />
** ''Difficulty:'' depends on what functionality the student proposes to implement<br />
<br />
<br />
Mentors: WANTED, contact [mailto:boyko@iitp.ru Pavel Boyko]<br />
<br />
* '''VoIP Toolkit'''<br />
** ''Description'': Implement VoIP quality testing toolkit. Depending on author's skills and resources it can include<br />
*** RTP model + sender and receiver applications measuring delay, jitter, packet loss and [http://www.itu.int/ITU-T/studygroups/com12/emodelv1/index.htm MOS] <br />
*** SIP model measuring [http://en.wikipedia.org/wiki/Call_Setup_Success_Rate call setup success rate], call dropping rate, etc.<br />
*** Application for sending and receiving real audio samples over simulated network to allow subjective QoS estimation<br />
*** Video support<br />
*** etc... <br />
** ''Required Experience:'' C++, basic VoIP understanding<br />
** ''Bonus Experience:'' ns-3 programming, contributions to open source projects.<br />
** ''Interests:'' VoIP, software engineering, C++ programming<br/><br />
** ''Difficulty:'' medium<br />
<br />
* '''SNMP Agent'''<br />
** ''Description'': Implement SNMP agent inside ns-3 to allow monitor, visualize and control simulated network using any available SNMP manager<br />
** ''Required Experience:'' C++, basic SNMP understanding<br />
** ''Bonus Experience:'' fun, ns-3 programming, contributions to open source projects.<br />
** ''Interests:'' Network management, SNMP, C++ programming<br/><br />
** ''Difficulty:'' medium<br />
<br />
<br />
</blockquote><br />
<br />
<br />
<br />
[[Category:GSoC]]</div>Mmiozzohttps://www.nsnam.org/mediawiki/index.php?title=GSOC2011Projects&diff=5273GSOC2011Projects2011-03-04T17:04:14Z<p>Mmiozzo: /* Priority Project Ideas */</p>
<hr />
<div>{{TOC}}<br />
<br />
<div style="float: left; width: 50%"><br />
<br />
* [http://www.google-melange.com/document/show/gsoc_program/google/gsoc2011/faqs GSoC Frequently Asked Questions]<br />
* [http://en.flossmanuals.net/GSoCMentoringGuide GSoC Mentors Guide]<br />
* [http://www.booki.cc/gsocstudentguide/_v/1.0/what-is-google-summer-of-code/ Official GSoC Student Guide]<br />
* [[GS02011StudentGuide |ns-3 GSoC Student guide]]<br />
* [[GS02011StudentApplicationTemplate |GSoC Student application template]]<br />
* [[GSOC2011Projects |GSoC 2011 Ideas page]]<br />
* [[GSOC2010Projects |GSoC 2010 Ideas page]] | [[GSOC2010AcceptedProjects |GSoC 2010 Accepted Projects]]<br />
* [[GSOC2009Projects |GSoC 2009 Ideas page]] | [[GSOC2009AcceptedProjects |GSoC 2009 Accepted Projects]]<br />
* [[GSOC2010OAReport |GSoC Organization Administrator guide]]<br />
* ''Get in contact with the ns-3 team'': [http://mailman.isi.edu/mailman/listinfo/ns-developers ns-developers mailing list] | ''IRC'' #ns-3 on freenode.net<br />
</div><div style="float: left; width: 50%"><br />
[[Image:Ns3GSOC2011Flyer.jpg]]<br />
</div><br />
<p><br />
<br />
= GSoC 2011 Ideas =<br />
<br />
This webpage highlights project ideas for ns-3's [http://code.google.com/soc Google Summer of Code] 2011 effort.<br />
<br />
<br />
== About the ns-3 project ==<br />
<br />
ns-3 is a discrete-event network simulator, with a particular emphasis on network research and education. <br />
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.<br />
<br />
ns-3 has been in development since 2005 and has been making quarterly releases since June 2008 (our last release was ns-3.10 in January 2011). ns-3 is replacing the popular ns-2 tool which was developed in the 1997-2000 timeframe but became out of date and unmaintained. The tool is coming into wide use; our web server logged almost 71000 successful downloads of our released software between January 2010 and January 2011, and we have a users mailing list of about 900 members now averaging 200-300 posts per month.<br />
<br />
Our GSOC organizational admin is [mailto:suresh.lalith@gmail.com Lalith Suresh] and our backup org admin is [mailto:tomhend@u.washington.edu Tom Henderson].<br />
<br />
== Project Ideas ==<br />
<br />
The following are project ideas which the ns-3 team has identified as important and is most interested in working on as part of the 2011 Google Summer of Code. GSoC applicants are however free to propose their own ideas. In addition, please note that these ideas are not limited to Google Summer of Code, anyone is welcome to work on them. Please email the [http://mailman.isi.edu/mailman/listinfo/ns-developers ns-developers list] if you have an idea that you'd like to work on. GSoC applicants are encouraged to look over this list, pick one that especially interests them, think about it, and discuss potential approaches on the [http://mailman.isi.edu/mailman/listinfo/ns-developers ns-developers list]. Previous experience suggests that the more you discuss and refine your proposal on the mailing list beforehand, the more stronger a proposal it will develop into, and the higher your chances of being ranked high.<br />
<br />
<blockquote><br />
Each project idea has been tagged with the following properties:<br />
* ''Required Experience:'' Languages, concepts, or packages with which applicants must be familiar.<br />
* ''Bonus Experience:'' Other experience or familiarity which would be greatly helpful to applicants for this project.<br />
* ''Interests:'' Areas of particular relevance to this project, and an indicator of where successful students might apply their experiences coming out of this project.<br />
* ''Difficulty:'' easy, medium or difficult<br />
* ''Recommended reading:'' pointers to documentation, papers, specific bugs, etc.<br />
<br />
Note that all of the projects require some experience and comfort with C++. Project ideas for which C++ is noted as a required experience will require more and deeper familiarity with the language. A similar notion applies to computer networking, BSD sockets, etc: Familiarity is strongly preferred, but is not required except where explicitly noted due to the topic being more advanced in that regard.<br />
</blockquote><br />
<br />
<br />
=== Priority Project Ideas ===<br />
---------<br />
<br />
The following are work areas the ns-3 project has identified as the highest priorities, has several mentors available, and would be especially interested in having students work on. <br />
<br />
<blockquote><br />
<br />
==== Antenna Models ====<br />
<br />
Mentors: [mailto:ruben@net.t-labs.tu-berlin.de Ruben Merz]<br />
<br />
* '''Antenna Radiation Patterns''' This project would implement support for antenna radiation patterns in the physical layer of ns-3. In addition to enhancing the realism of the ns-3 physical layer, this would also enable to implement directional antennas in ns-3. This project can have a large impact on the ns-3 simulator as it would allow several wireless physical layers to benefit from it, namely 802.11, WiMAX and LTE. If time permits, validation with an 802.11 testbed is envisioned.<br />
** ''Required Experience:'' C++, some knowledge of radio propagation is a plus<br />
** ''Bonus Experience:'' physical layer modeling and simulation, wireless networking<br />
** ''Interests:'' wireless networking, physical layer modeling and simulation<br />
** ''Difficulty'': medium<br />
** ''Recommended readings'': ns-3 propagation models (files <code>*propagation*.{cc,h}</code>), [http://www.ece.cmu.edu/~andersoe/papers/simulation-wiopt.pdf The Impact of Directional Antenna Models on Simulation Accuracy]<br />
<br />
<br />
==== Model Store ====<br />
<br />
Mentors: TBD<br />
<br />
* '''Model Store.''' The recent ns-3 developers meeting identified a high priority project need to extend the overall build and packaging system for ns-3 to support a user-contributed "model store" inspired by the iPhone App Store. Presently, ns-3 has a monolithic build system and model contributors from outside the project have the choice of trying to integrate their code into the main tree, or else maintaining it (or not) as an independent third-party archive. However, from a maintenance perspective, the project cannot accept maintenance of all contributed models in the long term, and users also do not want to download and build an ever growing code base that may contain many models of no interest to them. Yet we do not want this maintenance and build time bottleneck to stifle user contributions. What we envision is a student project to develop a system and template for future contributors that will allow third-party developers to package, distribute, and update ns-3 protocol models and manage dependencies between models and the core of ns-3.<br />
* ''[[App Store Technical Requirements]]''<br />
* ''Required Experience:'' Python (ns-3 build system is Python-based)<br />
* ''Bonus Experience:'' Packaging frameworks, C++<br />
* ''Interests:'' Build systems, packaging<br />
* ''Difficulty:'' Medium to high<br />
* ''Recommended reading:'' ns-3's waf build system, package management tools, Firefox plugin management, Apple App Store<br />
<br />
<br />
==== Vehicular Ad-hoc Networks ====<br />
<br />
Mentors: [mailto:g.remy00@gmail.com Guillaume Rémy]<br />
<br />
* '''Wireless Access in Vehicular Environments (WAVE)''' The IEEE 1609 Family of Standards for Wireless Access in Vehicular Environments (WAVE) defines the architecture, communications model, management structure, security mechanisms, and physical access for wireless communications in the vehicular environment. Some components of this specification has already been implemented for ns-3. However, we are still far from the simulation of WAVE on ns-3. The current status is as follows and it is up to the student to decide how much he/she wants to implement: 1) The PHY is ready as-is: the 5 MHz and 10 Mhz channel options (i.e., 802.11p) are already implemented, with a corresponding error model. 2) As for the PHY-specific parameters (slot duration etc.), currently only coverage class 0 is supported [0]. 3) The MAC needs to be modified. First, some trivial reworking is needed [1], and the rest depends on what the student wishes to implement. One possible approach is to use [2] as a guideline for implementing what is discussed in [3]. The most complex piece to implement are the channel switch logic (the execution of the channel switch command is already implemented) 4) higher layers: nothing specific to WAVE is currently available. 5) mobility models: no mobility model specific for vehicular scenarios is included in ns-3. But given that ns-3 can work with ns-2 mobility traces, it should be possible to find a mobility trace generator for vehicular scenarios that can be reused with ns-3.<br />
** ''Required experience:'' C++.<br />
** ''Bonus experience:'' Wireless networking, WAVE.<br />
** ''Interests:'' Wireless networking, VANETs.<br />
** ''Difficulty:'' medium to hard, depending on what the student proposes to implement.<br />
** ''Recommended reading'' <br />
*** [0] http://www.nsnam.org/bugzilla/show_bug.cgi?id=700#c11<br />
*** [1] http://www.nsnam.org/bugzilla/show_bug.cgi?id=945<br />
*** [2] http://www.nsnam.org/bugzilla/show_bug.cgi?id=978#c16<br />
*** [3] http://www.nsnam.org/bugzilla/attachment.cgi?id=968<br />
<br />
<br />
==== Long Term Evolution ====<br />
<br />
Mentors: [mailto:peppe@giuseppepiro.com Giuseppe Piro]<br />
<br />
* '''LTE networks''' Long Term Evolution represents an emerging and promising technology for providing broadband ubiquitous Internet access. Recently a basic LTE module, which includes both PHY and MAC layers, has been developed for ns-3. However, LTE is a very complex standard, and for this reason at this time it is not possible yet to simulate a complete LTE system. Possible aspects of the LTE networks that can be developed are: periodic and aperiodic CQI feedbacks management, a more complete AMC module, frequency-time correlated channel models for both pedestrian and vehicular environment, PHY error model based on BLER curves, uplink, packet scheduling and other MAC functionalities.<br />
** ''Required experience:'' C++, generic understanding of PHY and MAC layers.<br />
** ''Bonus experience:'' ns-3, LTE.<br />
** ''Interests:'' 4G mobile communications.<br />
** ''Difficulty:'' medium to hard, depending on what the student proposes to implement.<br />
** ''Recommended reading'' <br />
*** Stefania Sesia, Matthew P. J. Baker, Issam Toufik, "Longng term evolution: from theory to practice", John Wiley and Sons, 2009<br />
*** Giuseppe Piro, Nicola Baldo, and Marco Miozzo", An LTE module for the ns-3 network simulator", Proc. of Workshop on NS-3, Barcelona, Spain, Mar., 2011.<br />
<br />
<br />
==== Satellite network stack ====<br />
<br />
Mentors: [mailto:tommaso.pecorella@unifi.it Tommaso Pecorella]<br />
<br />
* '''Satellite networks''' ns-2 incorporates support for satellite network simulations (http://ala.isti.cnr.it/wnlab/tdmadama). Since that work some relevant standards have been approved, particularly by ETSI. This project would investigate the architecture needed to support ETSI-BSM interfaces and some simple satellite return links, like bent-pipe and basic DVB-RCS.<br />
** ''Required Experience:'' C/C++<br />
** ''Bonus Experience:'' Satellite communication protocols, ns-2, basic UML<br />
** ''Interests:'' Satellite systems, Bandwidth-on-demand, control theory<br />
** ''Difficulty'': medium to difficult (depending on the implementation details the student want to include)<br />
** ''Recommended reading:'' <br />
*** [http://www.etsi.org/website/technologies/broadbandsatmultimedia.aspx Broadband Satellite Multimedia] <br />
*** [http://en.wikipedia.org/wiki/DVB-RCS Digital Video Broadcasting - Return Channel via Satellite]<br />
*** [http://en.wikipedia.org/wiki/DVB-S2 Digital Video Broadcasting - Satellite - Second Generation]<br />
<br />
<br />
==== Advanced Queues for NS-3 ====<br />
<br />
Mentors: TBD or [mailto:duy@soe.ucsc.edu Duy Nguyen]<br />
<br />
* '''Advanced Queue Management''' ns-3 currently has very limited support for more advanced queuing disciplines. The goal of this project is to provide fresh implementation of RED queue to ns-3 by surveying RED queue implementation in ns-2, Linux Kernel (if applicable), and, especially, Sally's RED paper. The preferred outcome of this project will be NS-3 Simulator Tests for RED Technical Report (similar to NS Simulator Tests for RED Technical Report) with extensive validation test cases and providing a framework for other advanced queuing development in ns-3<br />
** ''Required Experience:'' C/C++, knowledge of queuing theory<br />
** ''Bonus Experience:'' ns-2 queues, Linux queues<br />
** ''Interests:'' Advanced queuing models and simulations, queuing theory<br />
** ''Difficulty'': medium to difficult <br />
** ''Recommended reading:'' <br />
*** [http://groups.google.com/group/ns-3-reviews/browse_thread/thread/6359c7c94a334f03 Current Progress on Queues in ns-3] <br />
*** [http://icir.org/floyd/red.html General Information on RED]<br />
*** [http://sourceforge.net/projects/nsnam/files/ns-2/2.34/ See ns-2.34/queue/* ]<br />
*** [http://icir.org/floyd/papers/red/red.html Sally's RED paper]<br />
*** [http://icir.org/floyd/papers/redsims.ps NS Simulator Tests for RED Technical Report]<br />
*** [http://code.nsnam.org/duy/ns-3-dev-queues/ If can be useful]<br />
<br />
<br />
==== Click Modular Router ====<br />
<br />
Mentors: [mailto:suresh.lalith@gmail.com Lalith Suresh] and [mailto:ruben@net.t-labs.tu-berlin.de Ruben Merz]<br />
<br />
* '''Click MAC Extensions for ns-3-click''' Last year's GSoC saw the integration of the Click Modular router with ns-3. However, one of the limitations of the implementation was that the usage of Click was confined to layer 3 only so as to allow all of ns-3's network device types to work under Click. Click's Wifi MAC specific elements cannot be used with ns-3-click yet. This project would involve keeping ns-3-click compatible with Click's Wifi MAC layer elements. Some possible steps in this direction are: 1) Implementing full Radiotap and/or atheros-descriptor header support for ns-3, 2) Implementing a ClickWifiMac abstraction that acts as a MAC high model for a NetDevice, connecting Click's interfaces directly to the lower MAC layers, 3) possibly implementing tx-queue feedback. Getting step 2 right can be a little tricky. Helpers will also be required to ease the end user's life. The above should be implemented as an alternate run-mode for ns-3-click operation. This should then be extensively tested and validated against some stock Click graphs.<br />
** ''Required Experience:'' C++.<br />
** ''Bonus Experience:'' Click, routing architectures, wireless networking.<br />
** ''Interests:'' Routing architectures, protocol development.<br />
** ''Difficulty:'' Medium.<br />
** ''Recommended Reading:''<br />
*** [http://portal.acm.org/citation.cfm?id=570772 NS-Click original paper]<br />
*** [http://read.cs.ucla.edu/click/nsclick NS-Click webpage]<br />
*** [https://www.pats.ua.ac.be/software/nsmadwifi Integration of ns-2 wireless features and Click]<br />
<br />
<br />
<br />
==== TinyOS code execution in ns-3 ====<br />
<br />
Mentors: Marco Miozzo (CTTC), Nicola Baldo (CTTC), Nicola Bui (Patavina Technologies)<br />
<br />
* '''TinyOS code execution in ns-3''' TinyOS is one of the most used operating system for wireless sensor networks; however the only tool available for simulating tinyOS code is TOSSIM, which supports the MicaZ platform only. The objective of this project is to allow the execution of TinyOS code within the ns-3 simulator, by simulating the hardware interfaces (radio, timers, etc.) of actual sensor platforms. To achieve this, the student will be asked to develop a phy/mac module that leverage on the Spectrum framework for channel modelling and that offers telosb-like interfaces to TinyOS.<br />
For the 2011 GSoC, we propose to focus on telosb hardware, since it is one of the most used research platform and mentors have strong expertise on it. The improvements with respect to TOSSIM are the possibility of testing real sensor application within mixed technology scenarios: i.e.: inter-technology interference in the ISM bands and interoperability (as a possible future extension).<br />
* ''Required Experience:'' ns-3, C++, C, TinyOS<br />
* ''Bonus Experience:'' nesC, telosb<br />
* ''Interests:'' wireless sensor networks<br />
* ''Difficulty:'' High<br />
* ''Recommended reading:''<br />
** [http://www.tinyos.net/ TinyOS website]<br />
** [http://docs.tinyos.net/index.php/TinyOS_Tutorials TinyOS tutorials]<br />
** [http://nescc.sourceforge.net/ nesC]<br />
<br />
=== Additional Project Ideas ===<br />
---------<br />
<br />
The following are additional project ideas that the ns-3 team has highlighted as important projects to support, and are suggested for students to extend. Not all of them have specific mentors assigned yet but we would seek out mentors from our mentor pool if high quality applications came in on these topics (or any ns-3 topic, for that matter).<br />
<br />
<blockquote><br />
<br />
==== General ====<br />
<br />
Mentors: WANTED, contact [mailto:boyko@iitp.ru Pavel Boyko]<br />
<br />
* '''Failure and Recovery Models'''<br />
** ''Description'': Introduce the concept of node, device and link failure and recovery to NS-3. Implement. <br />
** ''Required Experience:'' C++, basic software architecture, basic UML<br />
** ''Bonus Experience:'' ns-3 programming, contributions to open source projects.<br />
** ''Interests:'' modelling, software engineering, C++ programming<br />
** ''Difficulty:'' medium, the most difficult part is to define "correct" failure&recovery model<br />
<br />
==== Mobility ====<br />
<br />
Mentors: WANTED, contact [mailto:boyko@iitp.ru Pavel Boyko]<br />
<br />
* '''Coordinate Systems'''<br />
** ''Description'': Introduce the concept of coordinate system to NS-3. Implement [http://en.wikipedia.org/wiki/Geographic_coordinate_system geographic], [http://en.wikipedia.org/wiki/Geocentric_coordinates geocentric] and local Cartesian ([http://en.wikipedia.org/wiki/Map_projection projected]) coordinate systems. <br />
** ''Required Experience:'' C++, basic software architecture, basic UML, basic math<br />
** ''Bonus Experience:'' ns-3 programming, contributions to open source projects.<br />
** ''Interests:'' software engineering, C++ programming, geographic information systems<br/><br />
** ''Difficulty:'' easy<br />
<br />
<br />
Mentors: WANTED, contact [mailto:boyko@iitp.ru Pavel Boyko]<br />
<br />
* '''Satellite Mobility Model'''<br />
** ''Description'': Implement LEO/MEO satellite mobility model for NS-3.<br />
** ''Required Experience:'' C++, basic math, orbit mechanics is a plus<br />
** ''Bonus Experience:'' ns-3 programming, contributions to open source projects.<br />
** ''Interests:'' satellite communications, C++ programming<br/><br />
** ''Difficulty:'' medium<br />
** ''Reading:'' [http://imj.ucsb.edu/papers/172.pdf A SATELLITE MOBILITY MODEL FOR QUALNET NETWORK SIMULATIONS]<br />
** ''Reading:'' [http://www.isi.edu/nsnam/ns/doc/node197.html ns-2 LEO satellite models]<br />
<br />
==== Routing ====<br />
<br />
* '''Generalized Router Models/Structure.''' Many simulators, including ns-3, do not provide high fidelity models of Internet routers. For instance, intra-device latencies and input queuing behavior are not modeled. This project would adapt recent results on [http://www.cs.ucsb.edu/~rchertov/papers/infocom08.pdf empirical router testing] to develop a new, more detailed Router node type for ns-3.<br />
** ''Required Experience:''<br />
** ''Bonus Experience:'' Routing architectures, routing protocols, queueing theory, statistics<br />
** ''Interests:'' High fidelity simulation, queueing theory, statistics, data driven model development<br />
** ''Difficulty:'' medium-to-high, because there may be a dependency on Click router<br />
<br />
<br />
Mentors: WANTED, contact [mailto:aachurin@gmail.com Andrey Churin]<br />
<br />
* '''MPLS'''<br />
** ''Description'': Implement basic MPLS + LDP + RSVP stack model. <br />
** ''Required Experience:'' C++<br />
** ''Bonus Experience:'' ns-3 programming, contributions to open source projects.<br />
** ''Interests:'' MPLS, C++ programming<br/><br />
** ''Difficulty:'' medium<br />
** ''Reading:'' [http://code.google.com/p/ns3-mpls/source/checkout MPLS+LDP model by Andrey Churin], unfinished. Related RFC.<br />
<br />
==== MAC and PHY Models ====<br />
<br />
Mentors: [mailto:ruben@net.t-labs.tu-berlin.de Ruben Merz]<br />
<br />
* '''CSMA/CD and Aloha'''<br />
** ''Description'': Implement a CSMA/CD MAC protocol. Optionally, implement slotted aloha. A good reference describing the CSMA/CD and aloha protocols as well as basic theoretical results about these protocols is "Computer Networking: A Top-Down Approach.".<br />
** ''Required Experience:'' basic C++, know what aloha and CSMA/CD are.<br />
** ''Bonus Experience:'' ns-3 programming, contributions to open source projects.<br />
** ''Interests:'' networking, C++ programming<br/><br />
** ''Difficulty:'' easy<br />
** ''Recommended reading:'' [http://www.scribd.com/doc/5367449/Computer-Networking-A-TopDown-Approach-Featuring-The-Internet-aa Computer Networking: a top down approach], chapter 5.<br />
<br />
Mentors: TBD<br />
<br />
* '''SNS for ns-3 Wifi.''' [http://www.cs.cornell.edu/people/egs/sns/ Staged Network Simulations (SNS)] is a patch for the ns-2 wireless models which provides for function approximation and caching. That mechanism greatly speeds up the many calculations required in mobile wireless simulations. This project would incorporate those techniques into the ns-3 WiFi model.<br />
** ''Required Experience:''<br />
** ''Bonus Experience:'' Software profiling, software tuning<br />
** ''Interests:'' Approximation, caching, software profiling, high performance computing, scientific computing<br />
** ''Difficulty:'' depends on what functionality the student proposes to implement<br />
<br />
==== Applications and Systems ====<br />
<br />
* '''Large Scale Topology Generation and Management.''' ns-2 incorporates support for [http://www.isi.edu/nsnam/ns/ns-topogen.html various topology generators], which would be useful to also support in ns-3. This project would investigate porting topology generators or mapping their output to ns-3 simulations. It would also touch on the problem of coherent IP addressing in generated topologies. In particular, [http://www.cs.utah.edu/flux/papers/ipassign-ftn2005-04-base.html recent work] by the Emulab project may be useful in this regard.<br />
** ''Required Experience:''<br />
** ''Bonus Experience:'' Graph theory, network management, Internet topology<br />
** ''Interests:'' Internet topology, Internet autonomous systems, graph theory<br />
** ''Difficulty:'' depends on what functionality the student proposes to implement<br />
<br />
<br />
Mentors: WANTED, contact [mailto:boyko@iitp.ru Pavel Boyko]<br />
<br />
* '''VoIP Toolkit'''<br />
** ''Description'': Implement VoIP quality testing toolkit. Depending on author's skills and resources it can include<br />
*** RTP model + sender and receiver applications measuring delay, jitter, packet loss and [http://www.itu.int/ITU-T/studygroups/com12/emodelv1/index.htm MOS] <br />
*** SIP model measuring [http://en.wikipedia.org/wiki/Call_Setup_Success_Rate call setup success rate], call dropping rate, etc.<br />
*** Application for sending and receiving real audio samples over simulated network to allow subjective QoS estimation<br />
*** Video support<br />
*** etc... <br />
** ''Required Experience:'' C++, basic VoIP understanding<br />
** ''Bonus Experience:'' ns-3 programming, contributions to open source projects.<br />
** ''Interests:'' VoIP, software engineering, C++ programming<br/><br />
** ''Difficulty:'' medium<br />
<br />
* '''SNMP Agent'''<br />
** ''Description'': Implement SNMP agent inside ns-3 to allow monitor, visualize and control simulated network using any available SNMP manager<br />
** ''Required Experience:'' C++, basic SNMP understanding<br />
** ''Bonus Experience:'' fun, ns-3 programming, contributions to open source projects.<br />
** ''Interests:'' Network management, SNMP, C++ programming<br/><br />
** ''Difficulty:'' medium<br />
<br />
<br />
</blockquote><br />
<br />
<br />
<br />
[[Category:GSoC]]</div>Mmiozzohttps://www.nsnam.org/mediawiki/index.php?title=DevelMeetingMar2011&diff=5120DevelMeetingMar20112011-01-27T09:44:23Z<p>Mmiozzo: /* Tentative Attendence */</p>
<hr />
<div>{{TOC}}<br />
<br />
= Location =<br />
<br />
Will be held in Barcelona, on March 24th (Thursday) or March 26th (Saturday). That's one day before or after WNS3 collocated with Simutools 2011.<br />
<br />
You can have look at the tentative Simutools program for Thursday here: http://www.simutools.org/2011/Programme/Schedule<br />
<br />
= Tentative Attendence =<br />
<br />
If you'd like to attend, please add your name. If you can only attend a particular day add a note '''Sat. only/Thur. only'''<br />
* Tom Henderson<br />
* Nicola Baldo<br />
* Ruben Merz (Saturday preferred)<br />
* Felipe Perrone (I can perhaps make it on Saturday, but that will be tight. Thursday would work much better for me.)<br />
* Lalith Suresh<br />
* Marco Miozzo<br />
<br />
= Tentative Topics =</div>Mmiozzo