|
#define | SEED_ID_S1(dst, src) { (*(uint16_t *)&(dst)->id) = (src); (dst)->s = 1; } |
| Set the seed id to a 16 bit constant dst: seed_id_t to set to the constant src: 16 bit integer to set.
|
|
#define | SEED_ID_S2(dst, src) { (*(uint64_t *)&(dst)->id) = (src); (dst)->s = 2; } |
| Set the seed id to a 64 bit constant dst: seed_id_t to set to the constant src: 64 bit integer to set.
|
|
#define | SEED_ID_S3(dst, l, h) { (*(uint64_t *)&(dst)->id) = (l); (*(uint64_t *)&(dst)->id[8]) = (h); (dst)->s = 3; } |
| Set the seed id to a 128 bit constant dst: seed_id_t to set to the constant l: Lower 64 bits of the seed id to set h: Upper 64 bits of the seed id to set.
|
|
#define | seed_id_cmp(a, b) (memcmp((a)->id, (b)->id, sizeof(uint8_t) * 16) == 0) |
| Compare two contiki seed ids represented as seed_id_t types a: First value to compare b: Second value to compare.
|
|
#define | seed_id_cpy(a, b) (memcpy((a), (b), sizeof(seed_id_t))) |
| Copy one seed_id_t into another. More...
|
|
#define | seed_id_clr(a) (memset((a), 0, sizeof(seed_id_t))) |
| Clear a seed id value to zero a: Value to clear.
|
|
#define | MSG_SET_IS_USED(h) ((h)->seed != NULL) |
| Get the state of the used flag in the buffered message set entry h: pointer to the message set entry.
|
|
#define | MSG_SET_CLEAR_USED(h) ((h)->seed = NULL) |
| Clear the state of the used flag in the buffered message set entry h: pointer to the message set entry.
|
|
#define | SEQ_VAL_IS_EQ(i1, i2) ((i1) == (i2)) |
| s1 is said to be equal s2 if SEQ_VAL_IS_EQ(s1, s2) == 1
|
|
#define | SEQ_VAL_IS_LT(i1, i2) |
| s1 is said to be less than s2 if 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) (((s) + (n)) % 0x100) |
| Add n to s: (s + n) modulo (2 ^ SERIAL_BITS) => ((s + n) % 0x8000)
|
|
#define | SEED_SET_IS_USED(h) (((h)->domain != NULL)) |
| Get the state of the used flag in the buffered message set entry h: pointer to the message set entry.
|
|
#define | SEED_SET_CLEAR_USED(h) ((h)->domain = NULL) |
| Clear the state of the used flag in the buffered message set entry h: pointer to the message set entry.
|
|
#define | DOMAIN_SET_IS_USED(h) (uip_is_addr_mcast(&(h)->data_addr)) |
| Get the state of the used flag in the buffered message set entry h: pointer to the message set entry.
|
|
#define | DOMAIN_SET_CLEAR_USED(h) (memset(&(h)->data_addr, 0, sizeof(uip_ip6addr_t))) |
| Clear the state of the used flag in the buffered message set entry h: pointer to the message set entry.
|
|
#define | HBH_GET_S(h) (((h)->flags & 0xC0) >> 6) |
| Get the MPL Parametrization for a multicast HBHO header m: pointer to the HBHO header.
|
|
#define | HBH_SET_S(h, s) ((h)->flags |= ((s & 0x03) << 6)) |
| Set the MPL Parametrization bit for a multicast HBHO header m: pointer to the HBHO header.
|
|
#define | HBH_CLR_S(h) ((h)->flags &= ~0xC0) |
| Clear the MPL Parametrization bit for a multicast HBHO header m: pointer to the HBHO header.
|
|
#define | HBH_GET_M(h) (((h)->flags & 0x20) == 0x20) |
| Get the MPL Parametrization for a multicast HBHO header m: pointer to the HBHO header.
|
|
#define | HBH_SET_M(h) ((h)->flags |= 0x20) |
| Set the MPL Parametrization bit for a multicast HBHO header m: pointer to the HBHO header.
|
|
#define | HBH_GET_V(h) (((h)->flags & 0x10) == 0x10) |
| Get the MPL Parametrization for a multicast HBHO header m: pointer to the HBHO header.
|
|
#define | HBH_CLR_V(h) ((h)->flags &= ~0x10) |
| Set the MPL Parametrization bit for a multicast HBHO header m: pointer to the HBHO header.
|
|
#define | SEED_INFO_GET_S(h) ((h)->bm_len_S & 0x03) |
| Get the S bits in the length/S field in the seed info header h: pointer to the seed info struct.
|
|
#define | SEED_INFO_CLR_S(h) ((h)->bm_len_S &= ~0x03) |
| Clear the S bits within the length/S field in the seed info header h: pointer to the seed info struct.
|
|
#define | SEED_INFO_SET_S(h, s) ((h)->bm_len_S |= (s & 0x03)) |
| Set the S bits within the seed info struct. More...
|
|
#define | SEED_INFO_GET_LEN(h) ((h)->bm_len_S >> 2) |
| Get the length bits from the seed info struct. More...
|
|
#define | SEED_INFO_CLR_LEN(h) ((h)->bm_len_S &= 0x03) |
| Clear the length bits in the seed info struct. More...
|
|
#define | SEED_INFO_SET_LEN(h, l) ((h)->bm_len_S |= (l << 2)) |
| Set the length bits in the seed info struct. More...
|
|
#define | mpl_control_trickle_timer_start(t) { (t)->e = 0; trickle_timer_set(&(t)->tt, control_message_expiration, (t)); } |
| Start the trickle timer for a control message t: Pointer to set that should be reset.
|
|
#define | mpl_data_trickle_timer_start(t) { (t)->e = 0; trickle_timer_set(&(t)->tt, data_message_expiration, (t)); } |
| Start the trickle timer for a data message t: Pointer to set that should be reset.
|
|
#define | mpl_trickle_timer_inconsistency(t) { (t)->e = 0; trickle_timer_inconsistency(&(t)->tt); } |
| Call inconsistency on the provided timer t: Pointer to set that should be reset.
|
|
#define | mpl_trickle_timer_reset(t) { (t)->e = 0; trickle_timer_reset_event(&(t)->tt); } |
| Reset the trickle timer and expiration count for the set t: Pointer to set that should be reset.
|
|
#define | BIT_VECTOR_SET_BIT(v, b) (v[b / 8] |= (0x80 >> b % 8)) |
| Set a single bit within a bit vector that spans multiple bytes v: The bit vector b: The 0-indexed bit to set.
|
|
#define | BIT_VECTOR_GET_BIT(v, b) ((v[b / 8] & (0x80 >> b % 8)) == (0x80 >> b % 8)) |
| Get the value of a bit in a bit vector v: The bit vector b: The 0-indexed bit to get.
|
|
#define | UIP_ADDR_MAKE_LINK_LOCAL(a) (((uip_ip6addr_t *)a)->u8[1] = UIP_MCAST6_SCOPE_LINK_LOCAL) |
| Modify an ipv6 address to give it link local scope a: uip_ip6addr_t address to modify.
|
|
#define | MPL_IP_HOP_LIMIT 0xFF |
| Hop limit for ICMP messages.
|
|
#define | MPL_SEED_ID_TYPE 0 |
| Seed ID Length The MPL Protocol requires that each seed is identified by an ID that is unique to the MPL domain. More...
|
|
#define | MPL_SEED_ID_L 0x00 |
| Seed ID Alias Points to MPL_CONF_SEED_ID_L. More...
|
|
#define | MPL_SEED_ID_H 0x00 |
| Seed ID High Bits If the Seed ID Length setting is 3, this setting defines the upper 64 bits for the seed id. More...
|
|
#define | MPL_SUB_TO_ALL_FORWARDERS 1 |
| Subscribe to All MPL Forwarders By default, an MPL forwarder will subscribe to the ALL_MPL_FORWARDERS address with realm-local scope: FF03::FC. More...
|
|
#define | MPL_DOMAIN_SET_SIZE 1 |
| Domain Set Size MPL Forwarders maintain a Domain Set which maps MPL domains to trickle timers. More...
|
|
#define | MPL_SEED_SET_SIZE 2 |
| Seed Set Size MPL Forwarders maintain a Seed Set to keep track of the MPL messages that a particular seed has sent recently. More...
|
|
#define | MPL_BUFFERED_MESSAGE_SET_SIZE 6 |
| Buffered Message Set Size MPL Forwarders maintain a buffer of data messages that are periodically forwarded around the MPL domain. More...
|
|
#define | MPL_PROACTIVE_FORWARDING 0 |
| MPL Forwarding Strategy Two forwarding strategies are defined for MPL. More...
|
|
#define | MPL_SEED_SET_ENTRY_LIFETIME 30 |
| Seed Set Entry Lifetime MPL Seed set entries remain in the seed set for a set period of time after the last message that was received by that seed. More...
|
|
#define | MPL_DATA_MESSAGE_TIMER_EXPIRATIONS 5 |
| Data Message Timer Expirations MPL data message trickle timers are stopped after they expire a set number of times. More...
|
|
#define | MPL_CONTROL_MESSAGE_TIMER_EXPIRATIONS 10 |
| Control Message Timer Expirations An MPL Forwarder forwards MPL messages for a particular domain using a trickle timer which is mapped using the Domain Set. More...
|
|
IPv6 multicast according to the algorithm in RFC7731.