OpenWSN Firmware
ICMPv6RPL

ICMPv6 RPL implementation. More...

Data Structures

struct  icmpv6rpl_dio_ht
 Header format of a RPL DIO packet. More...
 
struct  icmpv6rpl_dao_ht
 Header format of a RPL DAO packet. More...
 
struct  icmpv6rpl_dao_transit_ht
 Header format of a RPL DAO "Transit Information" option. More...
 
struct  icmpv6rpl_dao_target_ht
 Header format of a RPL DAO "Target" option. More...
 
struct  icmpv6rpl_vars_t
 

Macros

#define TIMER_DIO_TIMEOUT   1700
 
#define TIMER_DAO_TIMEOUT   10000
 
#define MOP_DIO_A   1<<5
 
#define MOP_DIO_B   1<<4
 
#define MOP_DIO_C   1<<3
 
#define PRF_DIO_A   0<<2
 
#define PRF_DIO_B   0<<1
 
#define PRF_DIO_C   0<<0
 
#define G_DIO   1<<7
 
#define FLAG_DAO_A   0<<0
 
#define FLAG_DAO_B   0<<1
 
#define FLAG_DAO_C   0<<2
 
#define FLAG_DAO_D   0<<3
 
#define FLAG_DAO_E   0<<4
 
#define FLAG_DAO_F   0<<5
 
#define D_DAO   1<<6
 
#define K_DAO   0<<7
 
#define E_DAO_Transit_Info   0<<7
 
#define PC1_A_DAO_Transit_Info   0<<7
 
#define PC1_B_DAO_Transit_Info   1<<6
 
#define PC2_A_DAO_Transit_Info   0<<5
 
#define PC2_B_DAO_Transit_Info   0<<4
 
#define PC3_A_DAO_Transit_Info   0<<3
 
#define PC3_B_DAO_Transit_Info   0<<2
 
#define PC4_A_DAO_Transit_Info   0<<1
 
#define PC4_B_DAO_Transit_Info   0<<0
 
#define Prf_A_dio_options   0<<4
 
#define Prf_B_dio_options   0<<3
 
#define MAX_TARGET_PARENTS   0x01
 

Enumerations

enum  { OPTION_ROUTE_INFORMATION_TYPE = 0x03, OPTION_DODAG_CONFIGURATION_TYPE = 0x04, OPTION_TARGET_INFORMATION_TYPE = 0x05, OPTION_TRANSIT_INFORMATION_TYPE = 0x06 }
 

Functions

void icmpv6rpl_init (void)
 Initialize this module. More...
 
void icmpv6rpl_sendDone (OpenQueueEntry_t *msg, owerror_t error)
 Called when DIO/DAO was sent. More...
 
void icmpv6rpl_receive (OpenQueueEntry_t *msg)
 Called when RPL message received. More...
 
uint8_t icmpv6rpl_getRPLIntanceID (void)
 

Detailed Description

ICMPv6 RPL implementation.

Author
Thomas Watteyne watte.nosp@m.yne@.nosp@m.eecs..nosp@m.berk.nosp@m.eley..nosp@m.edu, August 2010

Macro Definition Documentation

#define D_DAO   1<<6
#define E_DAO_Transit_Info   0<<7
#define FLAG_DAO_A   0<<0
#define FLAG_DAO_B   0<<1
#define FLAG_DAO_C   0<<2
#define FLAG_DAO_D   0<<3
#define FLAG_DAO_E   0<<4
#define FLAG_DAO_F   0<<5
#define G_DIO   1<<7
#define K_DAO   0<<7
#define MAX_TARGET_PARENTS   0x01
#define MOP_DIO_A   1<<5
#define MOP_DIO_B   1<<4
#define MOP_DIO_C   1<<3
#define PC1_A_DAO_Transit_Info   0<<7
#define PC1_B_DAO_Transit_Info   1<<6
#define PC2_A_DAO_Transit_Info   0<<5
#define PC2_B_DAO_Transit_Info   0<<4
#define PC3_A_DAO_Transit_Info   0<<3
#define PC3_B_DAO_Transit_Info   0<<2
#define PC4_A_DAO_Transit_Info   0<<1
#define PC4_B_DAO_Transit_Info   0<<0
#define Prf_A_dio_options   0<<4
#define Prf_B_dio_options   0<<3
#define PRF_DIO_A   0<<2
#define PRF_DIO_B   0<<1
#define PRF_DIO_C   0<<0
#define TIMER_DAO_TIMEOUT   10000
#define TIMER_DIO_TIMEOUT   1700

Enumeration Type Documentation

anonymous enum
Enumerator
OPTION_ROUTE_INFORMATION_TYPE 
OPTION_DODAG_CONFIGURATION_TYPE 
OPTION_TARGET_INFORMATION_TYPE 
OPTION_TRANSIT_INFORMATION_TYPE 

Function Documentation

uint8_t icmpv6rpl_getRPLIntanceID ( void  )
void icmpv6rpl_init ( void  )

Initialize this module.

< TODO: put correct value

< TODO: put correct value

< TODO: put correct value

< TODO: put correct value

void icmpv6rpl_receive ( OpenQueueEntry_t msg)

Called when RPL message received.

Parameters
[in]msgPointer to the received message.
void icmpv6rpl_sendDone ( OpenQueueEntry_t msg,
owerror_t  error 
)

Called when DIO/DAO was sent.

Parameters
[in]msgPointer to the message just sent.
[in]errorOutcome of the sending.