Skip to content

RPL for {Linux, LWIP, Embedded OS}. A mesh routing protocol implementation designed to scale, yet resource optimal. Primary factor for optimization is to reduce network control overhead.

License

whitefield-framework/tripple

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Tripple - RPL routing protocol implementation

Build Status Join the chat at https://gitter.im/whitefield-fw

RPL(pronounced ripple) is a routing protocol standardized in IETF for Low-Power and Lossy Networks. This implementation aims to work consistently across, Linux, LWIP and other embedded OS.

The primary mission is to ensure most optimal network overhead with tunable parameters towards RPL performance. The implementation will use latest RPL extensions (deemed RPLv2) for its handling.

The aim also is to produce a feature-rich implementation which could be used on relatively non-constrained environments, however, still be more resource optimal as compared to other routing protocols.

Alt text

Features Description Target Phase
Non-storing MOP Basic requirement. Support for optimized 6LoRH for reduced routing header control overhead P1
Storing MOP Basic requirement. Supporting optimized routing table, prefix table for lower RAM utilization. P1
Loop detection and avoidance Handling of RPI for loops detection/avoidance P1
Multiple instances Support multiple instances with different objective functions P2
Multiple DODAGs per instance For optimal load balancing using multi-BR solution details P2
Support for multiple prefixes Basic Requirement P1
Improved Route Invalidation Results in lower stale routes in the network. Also reduces route invalidation control overhead. Details P1
Objective Functions Plugin based objective function support. OF0 and OF1(MRHOF) to be supported. P1
Ability for routers to disable joining This would result in more balanced networks. Nodes would respect upstream routers resource constraints. Details P2
Topology mgmt interfaces APIs to export events like node join/remove/path-switch/metric-change. A BR would be able to plot a graph based network for monitoring purpose based on this exported metadata P1
Multiple interfaces support Ability to use multiple link layer interfaces P1
Rich metrics support Ability to use metric information (LQI, RSSI, other L2 feedback) exported from link-layer P1 (extn in P2)
Capabilities support Runtime detection of nodes capabilities P3
Balanced networks Support for more balanced networks resulting in better energy utilization and increased network lifetimes P3
Multicast support Optimized multicast address advertisement support P3
Target aggregation Sending multiple targets in DAO to reduce control overhead P3
Adjacency Probing To check if the preferred parents are still available in case of sparse traffic P3
Reduced DIO control overhead Reducing control options in DIO such as Configuration Option, Prefix Option and using a sequence counter to check the version P3
Advanced Features Description Target Phase
Multipath routing Support for multiple preferred parents and load balancing of data traffic P3
AODV-RPL Improved P2P support P4
Support for RULs RPL Unaware leaves could be very resource-constrained leaf nodes P4
Support for IPv4 Supporting IPv4 based RPL P4
Hybrid storing, non-storing RPL instances Support for DAO projection P4
Support for 6LoRH Reduced data plane control overhead by compressing SRH and RPI headers P4
Support for GHC Generic header compression for reduced control overhead P4
Framework Features Description
Integrate with Linux, LWIP, Embedded OSes
Improved RAM handling Decoupling routing table and prefix table.
Realistic testing Benchmarks based on Whitefield simulation

About

RPL for {Linux, LWIP, Embedded OS}. A mesh routing protocol implementation designed to scale, yet resource optimal. Primary factor for optimization is to reduce network control overhead.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published