Back to NSoC 2021 projects
- Project Name: Enable IPv6 support for ad-hoc routing protocols in ns-3
- Student: Nitya Chandra
- Mentors: Tommaso Pecorella, Mohit P. Tahiliani
- Project Goals: This project aims to extend IPv6 support to Ad hoc Routing Protocols with minimal code duplication from the existing IPv4 impementation. The main problem to tackle here is to enable the IPv6 support with a viable solution to the diamond inheritance problem(encountered if we directly inherit classes form same base class). The users would be able to use IPv6 configurations similar to some already existing protocol implementations in ns-3.
- Repository: https://gitlab.com/nityachandra6/ns-3-dev
- About Me: I’m a junior undergraduate student at Atal Bihari Vajpayee Indian Institute of Information Technology and Management(IIITM) Gwalior, India. My areas of interest include Computer Networks and I like solving problems (competitive programming). I'm new to open source software and look forward for exciting summer ahead.
- Project Proposal: link
Duration: June 6 - June 12
- Discussed the proposal ideas and any potential issues.
- Worked towards refactoring the existing IPv4 implementation of AODV routing Protocol using aggregation, friend class declarations and inheritance.
- Started with moving one function to the aggregated class(aodv::RoutingProtocol) from the aggregating class(aodv::Ipv4RoutingProtocol). The latter is the new introduced class to suffice the IPv4 specific implementation. Similar would be done in the coming weeks for the IPv6 variant.
- This(refactoring IPv4) would, after completion, work the same way to the users as it works now. No change in the behaviour of the protocol, only the underlying implementation would change.
Duration: June 13 - June 19
- Couldn't work much, had some medical issues.
Duration: June 20 - June 26
- Segregated some functions successfully from the aodv::Ipv4RoutingProtocol to aodv::RoutingProtocol.
- Had some problems hooking the functions of aodv::Ipv4RoutignProtocol from within the member functions of aodv::RoutingProtocol.
- Tried some ways of fixing it, like hooking it from a new aodv::Ipv4RoutingProtocol object, none helped.
- Discussed with Tommaso(mentor) and got some insights on how to proceed further.
Coming week plans
- Would try proper object creation from the AodvHelper and then continue with the refactoring.