GSOC20256LoWPAN: Difference between revisions

From Nsnam
Jump to navigation Jump to search
 
(8 intermediate revisions by the same user not shown)
Line 15: Line 15:


= Milestones =
= Milestones =
'''Phase 1: Code Cleanup + Implementation with 6LBR and 6LN'''
'''Phase 1: Code Cleanup + Implementation with 6LBR and 6LN'''<br />
[https://gitlab.com/nsnam/ns-3-dev/-/merge_requests/2482 Pull Request]
* Code Refactoring   
* Code Refactoring   
** Helper methods to parse and validate packets: Extract helper methods for parsing and validating ND packets to improve modularity and readability. <br />
** Helper methods to parse and validate packets: Extract helper methods for parsing and validating ND packets to improve modularity and readability. <br />
Line 26: Line 27:
* Documentation
* Documentation
** Create detailed flowcharts to visualize key functions and message handling paths in the 6LoWPAN ND protocol logic
** Create detailed flowcharts to visualize key functions and message handling paths in the 6LoWPAN ND protocol logic
** Create report documenting design choices
** Add Sphinx documentation detailing 6LoWPAN
* Features
** Add working ROVR generation and validation
* Tests
** Unit tests for packet parsing and packet validation
** Tests for address registration of 1-10 6LNs with 1 6LBR
**


'''Phase 2: Implementation of EDAR/EDAC messages for multi-hop DAD'''
'''Phase 2: Implementation of EDAR/EDAC messages for multi-hop DAD'''
* Bug Fixes 
* Documentation
* Features
** Add 6LR
** Add working Transaction ID validation (RFC8505 5.2)
**
* Tests


* Additions:
'''Extra'''
** Add the all fields in the EARO used in Send-NS(EARO) and Receive-NA(EARO) message as defined in [https://datatracker.ietf.org/doc/html/draft-ietf-6lo-updating-rfc-8928-02 the following document]
* Add the all fields in the EARO used in Send-NS(EARO) and Receive-NA(EARO) message as defined in [https://datatracker.ietf.org/doc/html/draft-ietf-6lo-updating-rfc-8928-02 the following document]
* Add support for RFC8505 EARO fields in packet dissection in Wireshark
* Document tweaks made to address registration delays


= Readings =
= Readings =

Latest revision as of 14:56, 30 June 2025

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: 6LoWPAN Neighbor Discovery Protocol
  • Student: Boh Jie Qi
  • Mentors: Tommaso Pecorella and Adnan Rashid
  • Google page: link
  • Proposal: link
  • Project Goals: The 6LoWPAN-ND (RFCs 4944, 6775, and 8505) is a replacement for IPv6 DAD and NDP for 6LoWPAN networks, and it is important to ensure address uniqueness across a network that can potentially use different MAC/PHY layers. There is a model for 6LoWPAN-ND, but it is still not merged in the main ns-3 branch. The goal is to clean up the implementation, remove an actual limitation due to a questionable assumption, and to add the support for multi-hop operations (EDAR and EDAC messages).
  • Repository: repo
  • About Me: I am a pre-final undergraduate student at the National University of Singapore, and am super excited to be able to work with everyone at ns-3!

Milestones

Phase 1: Code Cleanup + Implementation with 6LBR and 6LN
Pull Request

  • Code Refactoring
    • Helper methods to parse and validate packets: Extract helper methods for parsing and validating ND packets to improve modularity and readability.
    • General code cleanup: Restructure code in sixlowpan-nd-protocol.h/cc and remove unnecessary comments
  • Bug Fixes
    • Disabling DAD: Disable DAD when necessary to comply with 6LoWPAN ND scenarios that bypass traditional IPv6 DAD
    • Address Registration Fixes: Analyse address registration flow, identify and fix bugs to ensure working address bootstrapping between singular 6LN and 6LBR
  • Documentation
    • Create detailed flowcharts to visualize key functions and message handling paths in the 6LoWPAN ND protocol logic
    • Create report documenting design choices
    • Add Sphinx documentation detailing 6LoWPAN
  • Features
    • Add working ROVR generation and validation
  • Tests
    • Unit tests for packet parsing and packet validation
    • Tests for address registration of 1-10 6LNs with 1 6LBR

Phase 2: Implementation of EDAR/EDAC messages for multi-hop DAD

  • Bug Fixes
  • Documentation
  • Features
    • Add 6LR
    • Add working Transaction ID validation (RFC8505 5.2)
  • Tests

Extra

  • Add the all fields in the EARO used in Send-NS(EARO) and Receive-NA(EARO) message as defined in the following document
  • Add support for RFC8505 EARO fields in packet dissection in Wireshark
  • Document tweaks made to address registration delays

Readings

RFC4861 Neighbor Discovery for IP version 6 (IPv6)
RFC6775 Neighbor Discovery Optimization for IPv6 over Low-Power Wireless Personal Area Networks (6LoWPANs)
RFC8505 Registration Extensions for IPv6 over Low-Power Wireless Personal Area Network (6LoWPAN) Neighbor Discovery
RFC5175 IPv6 Router Advertisement Flags Option
Is 6LoWPAN-ND necessary? (Spoiler alert: Yes)