GSOC2025Ipv6GlobalRouting

From Nsnam
Revision as of 06:39, 24 June 2025 by Shashwatpatni (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Main Page - Roadmap - Summer Projects - Project Ideas - Developer FAQ - Tools - Related Projects

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

Back to GSoC 2025 projects

Project Overview

  • Project Name: IPv6 Global Routing
  • Student: Shashwat Patni
  • Mentors: Tommaso Pecorella and Manoj Kumar Rana
  • Google page: Link
  • Project Goals: The aim of this project is to extend the functionality of GlobalRouting to Ipv6, while maintaining minimal code duplication. Global Routing is based on the OSPFv2 routing protocol and uses the Djikstra Shortest path algorithm to compute paths for a single area network configuration. The problem is that GlobalRouting doesn't work for IPv6, and that's a huge limitation. The goal of the project is to fix that limitation. Deliverables include a working implementation of Ipv6GlobalRouting which handles different Address Types in Ipv6, while also maintaining Minimal Code Duplication.
  • Repository: Link
  • About Me: I am a Pre-final year CS Undergrad student at Bits-Pilani K. K. Birla Goa Campus (BITS Pilani). I like Exploring and Tinkering with code.I am currently exploring the fields of Computer Networks and Distributed Systems. I enjoy solving problems.
  • Proposal: Link
  • Design Doc: Link

Milestones

These are the current Macro Goals for the project:

Note: For each phase , the plan is to work in the following order of classes: Interface Classes -> Setup Classes -> Route Computation Classes

Phase 1:

  • Port existing Ipv4GlobalRouting to generic GlobalRouting
  • Generalize ipv4-global-routing-test-suite and global-route-manager-impl-test-suite
  • Create tests and verify GlobalRouting works for Ipv4 after templatization
  • Design Tests for Ipv6 Specific Properties for GlobalRouting
  • Introduce Type Aliases for IP classes

Phase 2:

  • Extend GlobalRouting to IPv6
  • Handle the Implementation differences of IPv6

Phase 3:

  • Work On suggested Changes
  • Add Documentation For IPv6 GlobalRouting
  • Prepare edge Testcases, Check for Bugs , fix any remaining issues
  • Discuss any new features to GlobalRouting

Weekly Reports

Community Bonding Period

Duration: 8 May - 1 June

  • Working on the patch requirement !2434 :Adds the Print Route-Path Functionality to GlobalRouting.
  • A Design Document has been created to allow for discussions and evolving the design for the project

Week 1

Duration: 2 June - 9 June

This week we

  • Designed Tests For IPv4 GlobalRouting Specifically tests for the GlobalRouteManagerImpl Class
  • Created a draft MR For the tests !2471 for review
  • There was a discussion on if Link Local Addresses or Global Unicast Addresses Should be used as Next Hops in the RoutingTable Entries.

Week 2

Duration: 10 June - 17 June

This Week the plan is to:

  • Start Templatizing the Ipv4GlobalRouting Classes to Generic Classes
  • Create a draft MR for the Same

Currently there are two MRs Open for review !2471 and !2434


Week 3

Duration: 18 June - 23 June

This Week we did the following:

  • Finished Templatizing ipv4-global-routing classes to generic global-routing classes. The CI and tests pass . The latest version of the code is available at GSoC25
  • While Working on tests we found a few bugs in the existing implementation related to Equal Cost Multipath Topologies. We worked on resolving them
  • We discussed if a templateless approach is possible . Templates are bad because they create a learning curve for the model and the compiler errors may be cryptic for new users.A hybrid version with minimal templatization would be better.