SOCIS2017

From Nsnam
Revision as of 07:52, 1 August 2017 by Pasquimp (Talk | contribs)

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

Return to Summer Projects page.

Project overview

  • Project name: High Performance Emulation of Real Devices in ns-3
  • Abstract: The goal of the project is the improvement of the emulation performance of the simulator. The project introduces a device in ns-3 that uses the netmap primitives to process the incoming and outgoing traffic. netmap is a fast packets processing that bypass the host networking stack and gains direct access to network device. Also, the project introduces a flow control mechanism between the traffic control of ns-3 and the device ring. Finally, the project introduces a performance evaluation of the introduced device in ns-3 in emulation scenarios on real device.
  • About me: I am a PhD student in Information Technology and Electrical Engineering at University of Naples Federico II

Approach

In the first step the project introduces netmap in ns-3 to gain direct access to network device. netmap allows to bypass the host networking stack and to map the device memory in user space area. In the second step the project introduces a realistic flow control mechanism between the traffic control of ns-3 and the real devices ring. Finally, the project implements the required optimisation to gain the performance improvement on real device emulation scenarios.

Deliverables

The coding period has been divided in three phases. The deliverables at the end of each phase is as mentioned below

Phase 1

  • netmap integration into ns-3
  • new device and its helper that uses netmap primitives
  • test
  • documentation

Phase 2

  • flow control mechanism
  • basic examples and initial performance evaluation
  • test
  • documentation
  • intermediate code review

Phase 3

  • required optimisations
  • examples extension and performance evaluation
  • refinement of the whole project
  • test
  • documentation
  • final code review

Weekly Reports

Below the detailed report of the activity

Community Bonding Period (July 3-July 16)

During the community bonding period, I communicated with the mentor to refine the project and its schedule. Also, during this period I improved my knowledge of the fd-net-device module and of netmap.

Week 1 (July 17-July 23)

During the first week, I have implemented the extensions in the fd-net-device model and its helpers to support the netmap emulation mode. More specifically, I have

  • inserted the check for the netmap installation in the fd-net-device module wscript;
  • implemented the requested changes in the FdNetDevice to support its specializations;
  • introduced the new device as derived class of the FdNetDevice class;
  • introduced an helper function in the EmuFdNetDeviceHelper to set the netmap emulation mode;
  • implemented an extension of the raw socket creator to open a netmap fd.

Week 2 (June 24-July 30)

I started the implementation of the methods of the new device. I have

  • implemented the method to switch the emulated interface in netmap mode;
  • implemented a write method to copy a packet in the netmap transmission ring;
  • introduced an example to ping a real host through a real interface in netmap emulated mode.

Week 3 (July 31-August 6)

Week 4 (August 7-August 13)

Week 5 (August 14-August 20)

Week 6 (August 21-August 27)

Week 7 (August 28-September 3)

Wrapping Up (September 4-September 17)