jieqi's archive

GSOC2025: 6LoWPAN Optimised Neighbour Discovery

Introduction

Student: Boh Jie Qi (National University of Singapore)
Mentors: Tommaso Pecorella and Adnan Rashid (Università di Firenze)
Organisation: The ns-3 Network Simulator Project

Overview of LoWPANs, and 6LoWPAN

Conventional LoWPANs (Low-Power Wireless Personal Area Networks) employ IEEE 802.15.4 links, which have characteristics such as low-power consumption, small frame sizes and limited connectivity.
Some examples include a smart home sensor network, where there are temperature, humidity, and motion sensors all running on tiny batteries and communicating wirelessly.

In these types of networks, we can expect small packet sizes, low power consumption (typically in the milliwatt range), and low transfer rates (~250 kbit/s).

An issue arises when we want these devices to work with IPv6 and participate in the Internet of Things: The IPv6 minimum packet size of 1280 octets, far exceeds the maximum frame size defined in 802.15.4 of 127 bytes! (RFC8200)

In order to enable the transport of IPv6 packets, the 6LoWPAN protocol is employed. It behaves as a shim layer, providing features such as packet fragmentation and reassembly, as well as header-compression.

What is 6LoWPAN-ND?

6LoWPAN Optimised Neighbour Discovery (RFCs 4944, 6775, 8505 and 8929) is an L4 optimisation that aims to replace the conventional IPv6 Neighbor Discovery Protocol, which is a core part of IPv6 networks, solving the problem of power-intensive multicast transmissions incurred as part of the IPv6 Neighbour Discovery Protocol and Duplicate Address Detection (DAD), outlined in RFC4861.

There is a model for 6LoWPAN-ND found in /src/sixlowpan, but it is still not merged in the main ns-3 branch. My goal was to help clean up the existing implementation, as well as add support for a new feature.

Implementation is split into 2 phases:

Phase 1:

In phase 1, the end-goal was to achieve a functioning mesh-under topology comprising n 6LNs (6LoWPAN Node) and a single 6LBR (6LoWPAN Border Router).
In the aforementioned topology, the 6LNs should be able to undergo the address registration bootstrapping process, as well as successfully ping the 6LBR.

Phase 2:

In phase 2, the end-goal was to achieve a functioning route-under topology comprising n 6LNs, m 6BBRs and a single 6LBR. The topology more closely mirrors real-world deployments, where a network comprises multiple subnets.
Support for multi-hop Duplicate Address Detection is added in this phase, and 6LNs are able to perform proxy DAD through a 6BBR (6LoWPAN Backbone Router), using EDAR and EDAC messages, as specified in RFCs 6775 and 8505.
Originally, we intended to implement the 6LR, but decided to pivot to implementing the 6BBR, which was introduced in RFC8929, since it is able to modify and perform proxy DAD according to its specifications, making it more suited for our use case. In the aforementioned topology, the 6LNs should be able to undergo the address registration bootstrapping process, as well as successfully ping the 6LBR.

Future Extensions

Limitations of Current Implementation

Acknowledgements

This project was funded by Google Summer of Code (GSOC 2025).
I am deeply grateful to my mentors, and the ns-3 community for their support and help!
This has been an invaluable experience, and it was really cool getting to talk to and learn from industry experts in the domain of computer networks.
Many thanks to Prof Tommaso and Prof Adnan for their unwavering support, and willingness to entertain my odd questions :p