sixlowpan: (GSoC26) Add Trickle-based mesh-under suppression strategy

Adds SixLowPanTrickleSuppression, a Trickle-based (RFC 6206) mesh-under forwarding strategy on top of the framework in !2873. A single Trickle timer per device decides whether and when to rebroadcast, suppressing redundant transmissions while preserving coverage.

Behaviour

  • A packet accepted for forwarding joins a pending set; the first packet starts the timer, later arrivals just join (no restart, so an earlier packet is never starved).
  • Consistent event (Rule 3): overhearing a neighbour rebroadcast a packet we have also seen increments the counter; sustained consistency grows the interval.
  • Transmit (Rule 4): when the timer fires, the pending set is forwarded only if c < k, otherwise the node stays silent.
  • Reset on resolution: the timer restarts only after a successful forward or a discard (MaxForwardingDelay) — arrivals never reset it.

A zero RedundancyConstant disables suppression. The default strategy (SixLowPanSimpleFlooding) is unchanged. The logic is documented in the model docs and class Doxygen.

Tests

sixlowpan-mesh-under gains four Trickle cases (forward when quiet, suppress while covered, k=0 always forwards, flush all pending). All sixlowpan suites pass, including in an optimized build.

AI Disclosure

Claude Code (Opus 4.8) assisted with the implementation.

Merge request reports

Loading