![]() |
Contiki-NG
|
Implementation of the ROLL TM multicast engine. More...
#include "contiki.h"#include "contiki-lib.h"#include "contiki-net.h"#include "net/ipv6/uip-icmp6.h"#include "net/ipv6/multicast/uip-mcast6.h"#include "net/ipv6/multicast/roll-tm.h"#include "dev/watchdog.h"#include <string.h>#include "net/ipv6/uip-debug.h"Go to the source code of this file.
Macros | |
| #define | TRICKLE_TIME(m, d) |
| Convert a timer to a sane clock_time_t value after d doublings m is a value of Imin, d is a number of doublings Careful of overflows. | |
| #define | TRICKLE_IMAX(t) |
| Convert Imax from number of doublings to clock_time_t units for trickle_param t. | |
| #define | TRICKLE_ACTIVE(t) |
| Convert Tactive for a trickle timer to a sane clock_time_t value t is a pointer to the timer Careful of overflows. | |
| #define | TRICKLE_DWELL(t) |
| Convert Tdwell for a trickle timer to a sane clock_time_t value t is a pointer to the timer Careful of overflows. | |
| #define | SUPPRESSION_ENABLED(t) |
| Check if suppression is enabled for trickle_param t t is a pointer to the timer. | |
| #define | SUPPRESSION_DISABLED(t) |
| Check if suppression is disabled for trickle_param t t is a pointer to the timer. | |
| #define | TIMER_CONFIGURE(m) |
| Init trickle_timer[m]. | |
| #define | SEQ_VAL_IS_EQ(i1, i2) |
| s1 is said to be equal s2 iif SEQ_VAL_IS_EQ(s1, s2) == 1 | |
| #define | SEQ_VAL_IS_LT(i1, i2) |
| s1 is said to be less than s2 iif SEQ_VAL_IS_LT(s1, s2) == 1 | |
| #define | SEQ_VAL_IS_GT(i1, i2) |
| s1 is said to be greater than s2 iif SEQ_VAL_IS_LT(s1, s2) == 1 | |
| #define | SEQ_VAL_ADD(s, n) |
| Add n to s: (s + n) modulo (2 ^ SERIAL_BITS) => ((s + n) % 0x8000). | |
| #define | SLIDING_WINDOW_IS_USED(w) |
| Is Occupied sliding window location w w: pointer to a sliding window. | |
| #define | SLIDING_WINDOW_IS_USED_SET(w) |
| Set 'Is Used' bit for window w w: pointer to a sliding window. | |
| #define | SLIDING_WINDOW_IS_USED_CLR(w) |
| Clear 'Is Used' bit for window w w: pointer to a sliding window. | |
| #define | SLIDING_WINDOW_LISTED_SET(w) |
| Set 'Is Seen' bit for window w w: pointer to a sliding window. | |
| #define | SLIDING_WINDOW_LISTED_CLR(w) |
| Clear 'Is Seen' bit for window w w: pointer to a sliding window. | |
| #define | SLIDING_WINDOW_IS_LISTED(w) |
| Is the sliding window at location w listed in current ICMP message? | |
| #define | SLIDING_WINDOW_M_SET(w) |
| Set M bit for window w w: pointer to a sliding window. | |
| #define | SLIDING_WINDOW_M_CLR(w) |
| Clear M bit for window w w: pointer to a sliding window. | |
| #define | SLIDING_WINDOW_GET_M(w) |
| Retrieve trickle parametrization for sliding window at location w w: pointer to a sliding window. | |
| #define | MCAST_PACKET_TTL(p) |
| Get the TTL of a buffered packet p: pointer to a packet buffer. | |
| #define | MCAST_PACKET_USED_SET(p) |
| Set 'Is Used' bit for packet p p: pointer to a packet buffer. | |
| #define | MCAST_PACKET_USED_CLR(p) |
| Clear 'Is Used' bit for packet p p: pointer to a packet buffer. | |
| #define | MCAST_PACKET_IS_USED(p) |
| Is Occupied buffer location p. | |
| #define | MCAST_PACKET_MUST_SEND(p) |
| Must we send this message this pass? | |
| #define | MCAST_PACKET_SEND_SET(p) |
| Set 'Must Send' bit for message p p: pointer to a struct mcast_packet. | |
| #define | MCAST_PACKET_SEND_CLR(p) |
| Clear 'Must Send' bit for message p p: pointer to a struct mcast_packet. | |
| #define | MCAST_PACKET_IS_LISTED(p) |
| Is the message p listed in current ICMP message? | |
| #define | MCAST_PACKET_LISTED_SET(p) |
| Set 'Is Listed' bit for message p p: pointer to a struct mcast_packet. | |
| #define | MCAST_PACKET_LISTED_CLR(p) |
| Clear 'Is Listed' bit for message p p: pointer to a struct mcast_packet. | |
| #define | MCAST_PACKET_FREE(p) |
| Free a multicast packet buffer p: pointer to a struct mcast_packet. | |
| #define | SEQUENCE_LIST_GET_M(l) |
| Get the Trickle Parametrization for an ICMPv6 sequence list l: pointer to a sequence list structure. | |
| #define | SEQUENCE_LIST_GET_S(l) |
| Get the Seed ID Length for an ICMPv6 sequence list l: pointer to a sequence list structure. | |
| #define | HBH_GET_M(h) |
| Get the Trickle Parametrization for a multicast HBHO header m: pointer to the HBHO header. | |
| #define | HBH_SET_M(h) |
| Set the Trickle Parametrization bit for a multicast HBHO header m: pointer to the HBHO header. | |
| #define | HBH_GET_SV_MSB(h) |
| Retrieve the Sequence Value MSB from a multicast HBHO header m: pointer to the HBHO header. | |
Functions | |
| static uint8_t | accept (uint8_t in) |
| Processes an incoming or outgoing multicast message and determines whether it should be dropped or accepted. | |
Variables | |
| const struct uip_mcast6_driver | roll_tm_driver |
| The ROLL TM engine driver. | |
Implementation of the ROLL TM multicast engine.
Definition in file roll-tm.c.