The latest development version of this page may be more current than this released 2.2.1 version.

Trickle Timer Library

Overview

The Trickle timer library implements IETF RFC6206 (Trickle Algorithm).

The Trickle algorithm allows nodes in a lossy shared medium (e.g., low-power and lossy networks) to exchange information in a highly robust, energy efficient, simple, and scalable manner.

API Reference

group trickle

Trickle algorithm library.

Typedefs

typedef net_trickle_cb_t

Trickle timer callback.

The callback is called after Trickle timeout expires.

Parameters
  • trickle: The trickle context to use.

  • do_suppress: Is TX allowed (true) or not (false).

  • user_data: The user data given in net_trickle_start() call.

Functions

int net_trickle_create(struct net_trickle *trickle, u32_t Imin, u8_t Imax, u8_t k)

Create a Trickle timer.

Return

Return 0 if ok and <0 if error.

Parameters
  • trickle: Pointer to Trickle struct.

  • Imin: Imin configuration parameter in ms.

  • Imax: Max number of doublings.

  • k: Redundancy constant parameter. See RFC 6206 for details.

int net_trickle_start(struct net_trickle *trickle, net_trickle_cb_t cb, void *user_data)

Start a Trickle timer.

Return

Return 0 if ok and <0 if error.

Parameters
  • trickle: Pointer to Trickle struct.

  • cb: User callback to call at time T within the current trickle interval

  • user_data: User pointer that is passed to callback.

int net_trickle_stop(struct net_trickle *trickle)

Stop a Trickle timer.

Return

Return 0 if ok and <0 if error.

Parameters
  • trickle: Pointer to Trickle struct.

void net_trickle_consistency(struct net_trickle *trickle)

To be called by the protocol handler when it hears a consistent network transmission.

Parameters
  • trickle: Pointer to Trickle struct.

void net_trickle_inconsistency(struct net_trickle *trickle)

To be called by the protocol handler when it hears an inconsistent network transmission.

Parameters
  • trickle: Pointer to Trickle struct.

static bool net_trickle_is_running(struct net_trickle *trickle)

Check if the Trickle timer is running or not.

Return

Return True if timer is running and False if not.

Parameters
  • trickle: Pointer to Trickle struct.

struct net_trickle
#include <trickle.h>

The variable names are taken directly from RFC 6206 when applicable. Note that the struct members should not be accessed directly but only via the Trickle API.