mirror of
https://github.com/RIOT-OS/RIOT.git
synced 2024-12-29 04:50:03 +01:00
12cd62c689
This implementation is based on RFC 6550 with addition of RFC 6554 (Source Routing Header for RPL). Both can be found under the following links: - http://tools.ietf.org/html/rfc6550 - http://tools.ietf.org/html/rfc6554 The PR provides basic functionality for handling and forwarding packages in non-storing mode. In addition the structure of the previous implemented RPL storing mode is now revised, so that readability and modularity is increased. The following features are implemented: - building function for a SRH and integration in common packets - source-route build algorithm based on the structure of the DODAG - an RPL-based interpretation of the SRH and removal at destination - new structure for RPl-module with extracted beaconing-functionality - leaf nodes are now supported There are some missed goals and should be included in future updates: - building a common routing table structure for different types of routing protocols - routing tables are statically assigned via source code, future update should have an optional variable at build-time, which sets the size of the routing table depending on the desired functionality of a node in the network (root, node, leaf)
43 lines
1013 B
C
43 lines
1013 B
C
/**
|
|
* Copyright (C) 2013 INRIA.
|
|
*
|
|
* This file is subject to the terms and conditions of the GNU Lesser
|
|
* General Public License v2.1. See the file LICENSE in the top level
|
|
* directory for more details.
|
|
*/
|
|
|
|
/**
|
|
* @ingroup rpl
|
|
* @{
|
|
* @file trickle.h
|
|
* @brief Trickle
|
|
*
|
|
* Header-file, which defines all Trickle constants and prototypes
|
|
*
|
|
* @author Eric Engel <eric.engel@fu-berlin.de>
|
|
* @}
|
|
*/
|
|
|
|
#include "vtimer.h"
|
|
#include "thread.h"
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
#define TRICKLE_TIMER_STACKSIZE (KERNEL_CONF_STACKSIZE_MAIN)
|
|
#define TRICKLE_INTERVAL_STACKSIZE (KERNEL_CONF_STACKSIZE_MAIN)
|
|
#define DAO_DELAY_STACKSIZE (KERNEL_CONF_STACKSIZE_MAIN)
|
|
#define RT_STACKSIZE (KERNEL_CONF_STACKSIZE_DEFAULT)
|
|
|
|
void reset_trickletimer(void);
|
|
void init_trickle(void);
|
|
void start_trickle(uint8_t DIOINtMin, uint8_t DIOIntDoubl, uint8_t DIORedundancyConstatnt);
|
|
void trickle_increment_counter(void);
|
|
void delay_dao(void);
|
|
void dao_ack_received(void);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|