The current Ipv4GlobalRouting module in ns-3 enables users to create complex topologies without needing to manually configure dynamic routing protocols like RIP or OSPF. However, its lack of IPv6 support is a major limitation, particularly as modern networks increasingly migrate to IPv6. This project proposes to implement an Ipv6GlobalRouting module that mirrors the functionality of its IPv4 counterpart, enabling centralized routing table computation without protocol messaging overhead.
Additionally, the project introduces a packet path tracing utility that can be used to inspect the route a packet takes from source to destination based on the computed global routing tables. This aids researchers and developers in debugging and validating network simulations.
Provides parity with IPv4 GlobalRouting for IPv6, making it easier to simulate IPv6 networks.
Reduces complexity and overhead for users not wanting to deploy full routing protocols.
Enhances educational use cases by offering a clear, inspectable routing mechanism.
Enables deterministic routing behavior in IPv6 simulations.
Facilitates debugging with packet path tracing features.
Ipv6GlobalRouting: A class implementing SPF-based centralized routing for IPv6.
Ipv6GlobalRouteManager: Responsible for computing and installing routes.
Support for Various Address Types: Link-local, global, and scoped multicast IPv6 addresses.
Path Tracing Utility: A function like PrintIpv6RoutePath(Ipv6Address src, Ipv6Address dst).
Helper Class: Ipv6GlobalRoutingHelper to simplify simulation setup.
Unit Tests and Examples: Coverage for common and edge cases.
Documentation: Full usage guide and code documentation.
Study Existing Code: Analyze how Ipv4GlobalRouting and NixRouting work, especially their SPF algorithms and route installations.
Abstraction and Reuse: Refactor or reuse core components like GlobalRouter, and create shared modules for IPv4 and IPv6 to reduce duplication.
IPv6 Specifics: Implement LSA building and SPF algorithms with awareness of IPv6 semantics.
Routing Table Installation: Populate routing tables with next-hop information using Ipv6RoutingProtocol interface.
Path Tracing:
Traverse the routing table from source to destination.
Print intermediate nodes and interface addresses.
Possibly integrate with packet tracing or a CLI command.
Helper APIs: Create Ipv6GlobalRoutingHelper similar to existing helpers.
Testing: Develop test cases and validate correctness.
I am a graduate student with strong proficiency in C++, networking concepts, and familiarity with IPv6 addressing. I have studied the architecture of the routing modules. I am passionate about open-source development and simulation tools for research.
Skills:
C++, Python
TCP/IP, IPv4/IPv6
This project is a perfect fit for my interests and skills, and I’m excited to contribute to the ns-3 codebase.
I am fully committed to working 30+ hours per week for GSoC. I will be available to communicate with my mentor regularly and actively participate in the ns-3 community throughout the summer and beyond.
Email: [dsnage...@gmail.com]
Phone: +91 9640143543
Thank you for considering my proposal!