Skip to content

Test a three-floor RPL network design

Test router and leaf roles, parent Rank and root-held routes before accepting a downward path to a floor-two actuator.

Packet Pete — I check the next hop and the reply before trusting a route., your practice guide

Packet Pete — I check the next hop and the reply before trusting a route.
Predict the reading, then compare it with the measurement.

Contiki-NG Cooja

Third party Tool

Test router and leaf roles, parent Rank and root-held routes before accepting a downward path to a floor-two actuator.

Tier 2 · Free simulator · install required · No account

Version tested: Contiki-NG release/v4.9 c20b12cd, Cooja 4.8 (2022071901), Temurin 17.0.20.1, image sha256:b14d5afb0a2a852d9e72bbed607ead03f6ccc5f4d4dee44f0799110be2f4b609. Date: 2026-09-10.

Download the complete lab packet and follow README.md to run it in the free simulator.

Download the setup and run guide

Get the lab files

Download the complete packet for the simulation and its firmware, or download individual files for inspection. README.md gives the setup and run commands.

  • cooja-rpl-network-design.csc
  • README.md
  • expected-output.txt
  • lab-files.tar.gz

Steps

Screens captured against Contiki-NG Cooja Contiki-NG release/v4.9 c20b12cd, Cooja 4.8 (2022071901), Temurin 17.0.20.1, image sha256:b14d5afb0a2a852d9e72bbed607ead03f6ccc5f4d4dee44f0799110be2f4b609 on 2026-09-10; the tool may have moved on — the text steps are the contract.

  1. 1 Step 1

    Do
    Run the CSC to 180 s. Identify root 1, paired floor routers 2–7 and leaf-only motes 8–10 in Network.
    You will see
    Root 1 is green, routers are yellow, and leaves are magenta. The leaves do not appear as parents of other nodes.
    Why it matters
    Mains and battery roles must be an explicit design decision. Leaf-only firmware prevents the battery-role motes from silently becoming relays.
    Step 1: Network shows the ten real motes and the resulting parent arrows. The orange ring marks the evidence; the numbered badge is outside it.
    Step 1 · Contiki-NG Cooja; numbered callout added to a real capture. Enlarge screenshot (new tab)
  2. 2 Step 2

    Do
    Filter Mote output for ^-- DAG root$|^-- MOP:. Compare root, actuator and floor-router state.
    You will see
    Mote 1 reports DAG root; root and sampled nodes report Non-storing.
    Why it matters
    The mode determines where downward state lives. It must fit upward telemetry and occasional downward commands, not just node count.
    Step 2: The root role and Non-storing state rows are visible. The orange ring marks the evidence; the numbered badge is outside it.
    Step 2 · Contiki-NG Cooja; numbered callout added to a real capture. Enlarge screenshot (new tab)
  3. 3 Step 3

    Do
    Filter for ^-- fd00::(208|209|20a). Read the root’s route links for the three leaves.
    You will see
    Root state maps leaves 8 and 9 through router 3, and leaf 10 through router 5.
    Why it matters
    DAO-derived root-held links are needed for the Non-storing downward path. A parent diagram alone is insufficient.
    Step 3: Root-held source-route links for the three leaf addresses are visible. The orange ring marks the evidence; the numbered badge is outside it.
    Step 3 · Contiki-NG Cooja; numbered callout added to a real capture. Enlarge screenshot (new tab)
  4. 4 Step 4

    Do
    Filter for ^fe80::20[23].*=>. Check floor-two router 4’s upstream candidate and compare the README tie worksheet.
    You will see
    Router 4’s candidate 2 advertises Rank 256 with link metric 135, giving candidate Rank 391.
    Why it matters
    Actual Rank follows the objective function and link evidence, not floor height. A worksheet tie needs explicit stability or hysteresis evidence before choosing.
    Step 4: The measured 256 + 135 = width= 391 candidate row is visible. The orange ring marks the evidence; the numbered badge is outside it." loading="lazy">
    Step 4 · Contiki-NG Cooja; numbered callout added to a real capture. Enlarge screenshot (new tab)
  5. 5 Step 5

    Do
    Filter for Received ping reply from fd00::209. Check the root-initiated probe to the floor-two actuator-role mote 9.
    You will see
    Root 1 receives the reply at 140.140 s, len 4, ttl 63, delay 75 ms.
    Why it matters
    This probes a real downward packet and its return, alongside ordinary upward telemetry. It proves an ICMP path, not actuator mechanics or command authorization.
    Step 5: The root receives the actual two-hop actuator-address ping reply. The orange ring marks the evidence; the numbered badge is outside it.
    Step 5 · Contiki-NG Cooja; numbered callout added to a real capture. Enlarge screenshot (new tab)
  6. 6 Step 6

    Do
    Filter for ^-- Preferred parent|^-- Rank:. Record the final sampled parents and complete the README role, traffic, mode and validation table.
    You will see
    The root Rank is 128; actuator-role mote 9 has parent 3 and Rank 402; floor-two router 4 has parent 2 and Rank 391. The full log has 130 root receptions from all nine clients and replies to all nine.
    Why it matters
    The design can be accepted for these measured mesh paths, with explicit limits for power, memory, external routing, security and future link changes.
    Step 6: Root, actuator and router parent/Rank rows are visible. The orange ring marks the evidence; the numbered badge is outside it.
    Step 6 · Contiki-NG Cooja; numbered callout added to a real capture. Enlarge screenshot (new tab)

Chapter checks

These questions refer to the chapter’s examples. Use the return links to review their answers.

  1. A greenhouse mesh sends sensor readings upward and sends valve commands downward to selected controllers. What is the strongest review habit?

    Return to the chapter’s knowledge check
  2. A greenhouse mesh uses RPL Non-Storing mode so the root can send irrigation-valve schedule updates to bed controllers. The team has DAO logs for one controller and wants to declare the command path proven. What should the reviewer require next?

    Return to the chapter’s knowledge check

Caution

Power roles and floor locations are design assumptions, not battery or building-RF measurements. The actuator-role mote exchanges packets; no physical actuator or application-level command authorization is simulated.

Return to Storing vs Non-Storing Modes · Browse Labs