SOCIS2017
Main Page - Roadmap - Summer Projects - Project Ideas - Developer FAQ - Tools - Related Projects
HOWTOs - Installation - Troubleshooting - User FAQ - Samples - Models - Education - Contributed Code - Papers
Return to Summer Projects page.
Project overview
- Project name: High Performance Emulation of Real Devices in ns-3
- Student: Pasquale Imputato
- Mentor: Tommaso Pecorella
- 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.
- Documentation: https://github.com/pasquimp/ns-3-dev-git/wiki
- 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.