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 void (*
net_trickle_cb_t
)(struct net_trickle *trickle, bool do_suppress, void *user_data)¶ 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, uint32_t Imin, uint8_t Imax, uint8_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 intervaluser_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 inline 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.
-
typedef void (*