Repair a broken RPL parent link without rebuilding the whole DODAG
animation
rpl
routing
protocols
6lowpan
local-repair
intermediate
A guided RPL local repair workbench for independent learners exploring parent loss, route poisoning, loop avoidance, and downward-route updates.
RPL repairDIO + DAORank and loop guard6LoWPAN LLN
Repair a broken RPL parent link without rebuilding the whole DODAG.
Local repair is the small, nearby recovery path in RPL. Step through a parent failure, watch the
affected node detach or advertise a poisoned route, test candidate parents, then see when DIO and
DAO updates are enough and when the root may need a broader global repair.
Stable DODAGRepair phase
E via BPreferred parent
Rank 768Focus rank
Forwarding OKTraffic state
TryPick ETX teaching lens with Inspector focus Router E, then Step from parent loss through repair.
ObserveRouter E moves from No parent to a replacement Preferred parent, and its Rank rises by the selected link cost.
ExplainLocal repair poisons the failed route before Router E adopts a higher valid rank, preventing a descendant from becoming its parent and closing a loop.
Technical boundariesThe sequence fixes neighbor ETX, rank step, and message order; it leaves out Trickle backoff, DAO retries, concurrent failures, lossy control traffic, hysteresis, and global repair.
RPL nodes build upward routes toward a DODAG root. Local repair tries to restore one broken area without changing the whole DODAG version.
What moves
The red link fails, the focus node changes rank and parent, and control messages tell nearby nodes which route is usable.
Try first
Use Step once per stage. Watch whether the chosen candidate has a lower safe path to the root and whether DAO is needed for downlink traffic.
What to notice
Local repair is fast when a safe alternate parent exists. If only descendants or isolated neighbors remain, local repair must stop.
Repair scenario
Choose the kind of failure, then step through the repair evidence.
First task: follow E after its parent B fails, then decide whether C is a loop-safe replacement.
Local repair map
The DODAG is stable. Packets from the focus node flow upward through its preferred parent toward the root.
Repair inspector
Ready to test a local repair.
Candidate parent evidence
Formula trace
Rank(new) = ParentRank + RankIncreaseBefore a failure, E uses B: 512 + 256 = rank 768. During poisoning/detach, E advertises an unusable route until a loop-safe parent is selected.
Loop guard readyDAO checked if down routes exist
Event trace
Quick reference for independent learners
Local repair vocabulary
Preferred parent: the neighbor currently used for upward traffic toward the root.
Rank: a scalar position relative to the root. It must increase as paths move away from the root.
Poison/detach: a way to advertise that the current route is no longer usable, commonly shown with INFINITE_RANK.
DIO and DAO roles
DIO: carries DODAG information, rank, version, and configuration for upward route maintenance.
DIS: can solicit DIO information when a node needs discovery help.
DAO: advertises destination reachability for downward routes when the RPL mode maintains them.
Local or global?
Use local repair when the damaged area has a safe alternate parent.
Stop local repair when every candidate is unreachable, a descendant, or would create a loop.
Use global repair when the root intentionally starts a new DODAG version for broader reconstruction.
Technical accuracy notes and source links
What is simplified
The rank numbers are teaching values based on 256-unit increments. Real calculation depends on the objective function, metrics, constraints, and implementation policy.
The ETX lens is a teaching model for comparing path quality. It is not a complete MRHOF implementation.
Repair timing is not guaranteed by RPL alone. It depends on link-layer detection, Trickle settings, timers, loss, and implementation behavior.
Loop and route caveats
A candidate that depends on the repairing node or its sub-DODAG is unsafe because it can create a loop.
Local repair normally keeps the same DODAG version. A global repair is root-driven and changes the DODAG version number.
DAO behavior differs between storing and non-storing modes; this page shows the reason for refreshing downward route information, not every packet format field.