From Nsnam
Jump to: navigation, search

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

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

Check out the Accepted Projects for NSoC 2011!


NSoC 2011 Ideas

This webpage highlights project ideas for ns-3's Summer of Code 2011 effort.

About the ns-3 project

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

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.

Our NSoC organizational admin is Lalith Suresh and our backup org admin is Tom Henderson.

Project Ideas

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 NS-3 Summer of Code. Applicants are however free to propose their own ideas. In addition, please note that these ideas are not limited to NSoC, anyone is welcome to work on them. Please email the 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 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 ranked high.

Each project idea has been tagged with the following properties:

  • Required Experience: Languages, concepts, or packages with which applicants must be familiar.
  • Bonus Experience: Other experience or familiarity which would be greatly helpful to applicants for this project.
  • Interests: Areas of particular relevance to this project, and an indicator of where successful students might apply their experiences coming out of this project.
  • Difficulty: easy, medium or difficult
  • Recommended reading: pointers to documentation, papers, specific bugs, etc.

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.

Priority Project Ideas

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.

Antenna Models

Mentors: Ruben Merz

  • 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.
    • Required Experience: C++, some knowledge of radio propagation is a plus
    • Bonus Experience: physical layer modeling and simulation, wireless networking
    • Interests: wireless networking, physical layer modeling and simulation
    • Difficulty: medium
    • Recommended readings: ns-3 propagation models (files *propagation*.{cc,h}), The Impact of Directional Antenna Models on Simulation Accuracy

Vehicular Ad-hoc Networks

Mentors: Guillaume Rémy

  • 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.

Satellite network stack

Mentors: Tommaso Pecorella

Advanced Queues for NS-3

Mentors: TBD or Duy Nguyen

  • 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

Click Modular Router

Mentors: Lalith Suresh and Ruben Merz

  • 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.

TinyOS code execution in ns-3

Mentors: Marco Miozzo (CTTC), Nicola Baldo (CTTC), Nicola Bui (Patavina Technologies)

  • 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. 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).
    • Required Experience: ns-3, C++, C, TinyOS
    • Bonus Experience: nesC, telosb
    • Interests: wireless sensor networks
    • Difficulty: High
    • Recommended reading:

Long Term Evolution networks

Mentors: Giuseppe Piro

  • 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.
    • Required experience: C++, generic understanding of PHY and MAC layers.
    • Bonus experience: ns-3, LTE.
    • Interests: 4G mobile communications.
    • Difficulty: medium to hard, depending on what the student proposes to implement.
    • Recommended reading
      • Stefania Sesia, Matthew P. J. Baker, Issam Toufik, "Long Term Evolution: from theory to practice", John Wiley and Sons, 2009
      • 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.

LTE Time Division Duplex (TDD) support

Mentors: Nicola Baldo, Marco Miozzo

  • The currently available ns-3 LTE modules supports only the Frequency Division Duplex (FDD) mode of operation. Recently, a lot of interest has emerged for the Time Division Duplex (TDD) operation as well. As part of this project, the student is requested to extend the ns-3 LTE module released by the LENA project to support TDD. The suggested approach is to:
      • extend the MAC layer to handle the TDD frame structure (i.e., the uplink/downlink/special subframe allocation)
      • extend the PHY layer to support TX/RX in a single frequency band, including also the handling of the special subframe.
    • Required experience: C++
    • Bonus experience: ns-3, 3GPP standards
    • Interests: LTE
    • Difficulty: hard
    • Recommended reading

LTE Scheduling with the FemtoForum MAC Scheduler API

Mentors: Marco Miozzo, Nicola Baldo

  • The ns-3 LTE module released by the LENA project supports the FemtoForum MAC LTE MAC Scheduler Interface Specification for the implementation of MAC schedulers. Currently, only a simple Round Robin scheduler is supported. As part of this project, the student is requested to implement one or more scheduling algorithms found in the literature on top of the FemtoForum MAC Scheduler API. A few example algorithms are listed below in the references; however, the choice of the algorithm is left to the student. In any case, we stress that the focus of this project should be on the implementation of an alredy defined algorithm (not on the design of a new algorithm).
    • Required experience: C++
    • Bonus experience: ns-3, 3GPP standards
    • Interests: LTE, dynamic packet scheduling, radio resource management
    • Difficulty: hard
    • Recommended reading
      • ns-3 LTE module released by the LENA project
      • FemtoForum MAC LTE MAC Scheduler Interface Specification
      • Stefania Sesia, Matthew P. J. Baker, Issam Toufik, Long Term Evolution: from theory to practice, John Wiley and Sons, 2009
      • B. Sadiq, R. Madan, and A. Sampath, Downlink scheduling for multiclass traffic in LTE, EURASIP Journal on Wireless Communications andNetworking, vol. 2009, Article ID510617, 2009
      • G. Monghal, K. I. Pedersen, I. Z. Kov´acs, and P. E. Mogensen, QoS oriented time and frequency domain packet schedulers for the UTRAN long term evolution, in Proceedings of the IEEEVehicular Technology Conference (VTC 2008), pp. 2532– 2536, 2008.
      • D. López-Pérez, A. Ladanyi, A. Jüttner, H. Rivano and J. Zhang, Optimization Method for the Joint Allocation of Modulation Schemes, Coding Rates, Resource Blocks and Power in Self-Organizing LTE Networks, IEEE INFOCOM (International Conference on Computer Communications), Shanghai, China, April 2011

Model Store

Mentors: Mitch Watrous

  • 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.
  • App Store Technical Requirements
  • Required Experience: Python (ns-3 build system is Python-based)
  • Bonus Experience: Packaging frameworks, C++
  • Interests: Build systems, packaging
  • Difficulty: Medium to high
  • Recommended reading: ns-3's waf build system, package management tools, Firefox plugin management, Apple App Store

LR-WPAN (IEEE 802.15.4-2006)

Mentors: Tom Henderson and Tommaso Pecorella

  • LR-WPAN (802.15.4-2006 standard) is the basis for several low power data networks such as 6LoWPAN and ZigBee. Support for this MAC and PHY is lacking in ns-3. However, a comprehensive model exists for the ns-2 simulator. This project would consist of porting, validating, testing, and documenting the ns-2 LR-WPAN module.

Route visualization and debugging

Mentors: Tom Henderson

  • One of the most prevalent needs among users is the need to understand what routing is doing in the simulation networks, especially for wireless networks. This proposed project would focus on helper classes and utilities to enable future users to more easily visualize and debug the routing code in ns-3 simulations. For wireless routing, ideas on how to distinguish between propagation-related and protocol-related routing failures would be helpful. Implementing approaches across different routing protocols already available in the simulator (AODV, DSDV, OLSR) is preferred. Some kind of support analogous to the traceroute tool is needed. Having some way to visualize routes taken in the network, such as overlaying route traces on a 2-D node display, would be useful. Tools to allow researchers to collect statistics on routing events in a uniform manner would help future routing research efforts.
  • The above list of ideas is somewhat open-ended, so the successful application here will need to clearly state what is being proposed (e.g. example APIs, mock-ups of screenshots), and how it will be scheduled and accomplished within a 10-week project.
    • Required experience: C++
    • Interests: routing protocols
    • Difficulty: medium
    • Recommended reading
      • (none yet)

Simple wireless models

Mentors: Tom Henderson

  • ns-3 has support for detailed wireless device models (WiFi, WiMAX) but is missing some basic wireless models that could be used as building blocks for future devices, could be used when simulations call for more abstract representations of wireless networks. These models could also be used in ns-3 courseware for students.
  • Some initial capabilities suggested include basic parameterization of link budgets (antenna gain, propagation loss, transmit power, etc.) and BER curves based on modulations selected. At the MAC layer, basic MAC protocols (Aloha, TDMA, CSMA-CA, etc.) could be selected. Handling of interference in a computationally efficient manner is also desirable, both at physical layer and at mac layer (hidden/exposed terminal).
  • Validation/testing of these models is a necessary component. It would be preferable for a GSoC project here to not try to shallowly cover all possible wireless models but to perhaps set up a framework for simple wireless and go into more depth on one or more specific models, with testing and validation to back those models up.
    • Required experience: C++, wireless networking
    • Interests: wireless network simulations
    • Difficulty: medium to hard
    • Recommended reading
      • The spectrum framework for ns-3 (Baldo et al.)
      • 802.11 Phy validation (Pei et al.)

Additional Project Ideas

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).


Mentors: WANTED, contact Pavel Boyko

  • Failure and Recovery Models
    • Description: Introduce the concept of node, device and link failure and recovery to NS-3. Implement.
    • Required Experience: C++, basic software architecture, basic UML
    • Bonus Experience: ns-3 programming, contributions to open source projects.
    • Interests: modelling, software engineering, C++ programming
    • Difficulty: medium, the most difficult part is to define "correct" failure&recovery model


Mentors: WANTED, contact Pavel Boyko

  • Coordinate Systems
    • Description: Introduce the concept of coordinate system to NS-3. Implement geographic, geocentric and local Cartesian (projected) coordinate systems.
    • Required Experience: C++, basic software architecture, basic UML, basic math
    • Bonus Experience: ns-3 programming, contributions to open source projects.
    • Interests: software engineering, C++ programming, geographic information systems
    • Difficulty: easy

Mentors: WANTED, contact Pavel Boyko


  • 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 empirical router testing to develop a new, more detailed Router node type for ns-3.
    • Required Experience:
    • Bonus Experience: Routing architectures, routing protocols, queueing theory, statistics
    • Interests: High fidelity simulation, queueing theory, statistics, data driven model development
    • Difficulty: medium-to-high, because there may be a dependency on Click router

Mentors: WANTED, contact Andrey Churin

  • MPLS
    • Description: Implement basic MPLS + LDP + RSVP stack model.
    • Required Experience: C++
    • Bonus Experience: ns-3 programming, contributions to open source projects.
    • Interests: MPLS, C++ programming
    • Difficulty: medium
    • Reading: MPLS+LDP model by Andrey Churin, unfinished. Related RFC.

MAC and PHY Models

Mentors: Ruben Merz

  • CSMA/CD and Aloha
    • 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.".
    • Required Experience: basic C++, know what aloha and CSMA/CD are.
    • Bonus Experience: ns-3 programming, contributions to open source projects.
    • Interests: networking, C++ programming
    • Difficulty: easy
    • Recommended reading: Computer Networking: a top down approach, chapter 5.

Mentors: TBD

  • SNS for ns-3 Wifi. 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.
    • Required Experience:
    • Bonus Experience: Software profiling, software tuning
    • Interests: Approximation, caching, software profiling, high performance computing, scientific computing
    • Difficulty: depends on what functionality the student proposes to implement

Applications and Systems

  • Large Scale Topology Generation and Management. ns-2 incorporates support for 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, recent work by the Emulab project may be useful in this regard.
    • Required Experience:
    • Bonus Experience: Graph theory, network management, Internet topology
    • Interests: Internet topology, Internet autonomous systems, graph theory
    • Difficulty: depends on what functionality the student proposes to implement

Mentors: WANTED, contact Pavel Boyko

  • VoIP Toolkit
    • Description: Implement VoIP quality testing toolkit. Depending on author's skills and resources it can include
      • RTP model + sender and receiver applications measuring delay, jitter, packet loss and MOS
      • SIP model measuring call setup success rate, call dropping rate, etc.
      • Application for sending and receiving real audio samples over simulated network to allow subjective QoS estimation
      • Video support
      • etc...
    • Required Experience: C++, basic VoIP understanding
    • Bonus Experience: ns-3 programming, contributions to open source projects.
    • Interests: VoIP, software engineering, C++ programming
    • Difficulty: medium
  • SNMP Agent
    • Description: Implement SNMP agent inside ns-3 to allow monitor, visualize and control simulated network using any available SNMP manager
    • Required Experience: C++, basic SNMP understanding
    • Bonus Experience: fun, ns-3 programming, contributions to open source projects.
    • Interests: Network management, SNMP, C++ programming
    • Difficulty: medium