#include "net/rpl/rpl.h"
#include "lib/list.h"
#include "net/ip/uip.h"
#include "sys/contiki-clock.h"
#include "sys/ctimer.h"
#include "net/ipv6/uip-ds6.h"
#include "uip-mcast6.h"
Data Structures | |
struct | rpl_dio |
Typedefs | |
typedef struct rpl_dio | rpl_dio_t |
Variables | |
rpl_instance_t * | default_instance |
rpl_instance_t | instance_table [] |
#define BASE_RANK 0 |
#define DAG_RANK | ( | fixpt_rank, | |
instance | |||
) | ((fixpt_rank) / (instance)->min_hoprankinc) |
Referenced by acceptable_rank(), best_parent(), dao_input(), new_dio_interval(), and rpl_process_parent_event().
#define DAO_EXPIRATION_TIMEOUT 60 |
Referenced by dao_input().
#define INFINITE_RANK 0xffff |
Referenced by acceptable_rank(), best_parent(), calculate_rank(), create_dag_callback(), dao_input(), dio_output(), global_repair(), rpl_alloc_dag(), rpl_ipv6_neighbor_callback(), rpl_local_repair(), rpl_move_parent(), rpl_nullify_parent(), rpl_process_dio(), rpl_process_parent_event(), and rpl_select_dag().
#define ROOT_RANK | ( | instance | ) | (instance)->min_hoprankinc |
Referenced by new_dio_interval(), rpl_process_dio(), rpl_purge_routes(), rpl_repair_root(), rpl_select_dag(), and rpl_set_root().
#define RPL_CODE_DAO 0x02 /* Destination Advertisement Option */ |
Referenced by dao_input(), and dao_output_target().
#define RPL_CODE_DAO_ACK 0x03 /* DAO acknowledgment */ |
Referenced by dao_ack_output().
#define RPL_CODE_DIO 0x01 /* DAG Information Option */ |
Referenced by dio_output().
#define RPL_CODE_DIS 0x00 /* DAG Information Solicitation */ |
Referenced by dis_output().
#define RPL_CODE_SEC_DAO 0x82 /* Secure DAO */ |
#define RPL_CODE_SEC_DAO_ACK 0x83 /* Secure DAO ACK */ |
#define RPL_CODE_SEC_DIO 0x81 /* Secure DIO */ |
#define RPL_CODE_SEC_DIS 0x80 /* Secure DIS */ |
#define RPL_DAG_MC_ETX_DIVISOR 256 |
Referenced by best_parent(), calculate_path_metric(), calculate_rank(), make_neighbor(), make_route(), neighbor_link_callback(), and rpl_add_parent().
#define RPL_DAO_D_FLAG 0x40 /* DODAG ID present */ |
Referenced by dao_input(), and dao_output_target().
#define RPL_DAO_K_FLAG 0x80 /* DAO ACK requested */ |
Referenced by dao_input(), and dao_output_target().
#define RPL_DAO_LATENCY (CLOCK_SECOND * 4) |
Referenced by rpl_schedule_dao().
#define RPL_DIO_INTERVAL_DOUBLINGS 8 |
#define RPL_DIO_INTERVAL_MIN 12 |
#define RPL_DIO_REDUNDANCY 10 |
#define RPL_DIS_INTERVAL 60 |
Referenced by handle_periodic_timer(), and rpl_reset_periodic_timer().
#define RPL_DIS_SEND 1 |
#define RPL_DIS_START_DELAY 5 |
Referenced by rpl_reset_periodic_timer().
#define RPL_HDR_OPT_DOWN 0x80 |
Referenced by rpl_invert_header(), rpl_update_header_empty(), rpl_update_header_final(), and rpl_verify_header().
#define RPL_HDR_OPT_DOWN_SHIFT 7 |
#define RPL_HDR_OPT_FWD_ERR 0x20 |
Referenced by rpl_update_header_empty(), and rpl_verify_header().
#define RPL_HDR_OPT_FWD_ERR_SHIFT 5 |
#define RPL_HDR_OPT_LEN 4 |
Referenced by rpl_verify_header(), and set_rpl_opt().
#define RPL_HDR_OPT_RANK_ERR 0x40 |
Referenced by rpl_verify_header().
#define RPL_HDR_OPT_RANK_ERR_SHIFT 6 |
#define RPL_HOP_BY_HOP_LEN (RPL_HDR_OPT_LEN + 2 + 2) |
Referenced by rpl_invert_header(), rpl_update_header_empty(), rpl_update_header_final(), and set_rpl_opt().
#define RPL_INSTANCE_D_FLAG 0x40 |
#define RPL_INSTANCE_LOCAL_FLAG 0x80 |
#define RPL_LIFETIME | ( | instance, | |
lifetime | |||
) | ((unsigned long)(instance)->lifetime_unit * (lifetime)) |
Referenced by dao_input(), rpl_add_route(), rpl_process_dio(), and rpl_set_default_route().
#define RPL_LOLLIPOP_CIRCULAR_REGION 127 |
Referenced by lollipop_greater_than().
#define RPL_LOLLIPOP_INCREMENT | ( | counter | ) |
Referenced by dao_output_target(), dio_output(), global_repair(), rpl_process_dio(), rpl_repair_root(), rpl_select_dag(), and rpl_set_root().
#define RPL_LOLLIPOP_INIT (RPL_LOLLIPOP_MAX_VALUE - RPL_LOLLIPOP_SEQUENCE_WINDOWS + 1) |
Referenced by rpl_join_instance(), and rpl_set_root().
#define RPL_LOLLIPOP_IS_INIT | ( | counter | ) | ((counter) > RPL_LOLLIPOP_CIRCULAR_REGION) |
#define RPL_LOLLIPOP_MAX_VALUE 255 |
Referenced by lollipop_greater_than().
#define RPL_LOLLIPOP_SEQUENCE_WINDOWS 16 |
Referenced by lollipop_greater_than().
#define RPL_MAX_RANKINC (7 * RPL_MIN_HOPRANKINC) |
Referenced by dio_input(), and rpl_set_root().
#define RPL_MCAST_LIFETIME 3 |
Referenced by handle_dao_timer().
#define RPL_MIN_HOPRANKINC 256 |
Referenced by best_parent(), dio_input(), and rpl_set_root().
#define RPL_MOP_DEFAULT RPL_MOP_STORING_NO_MULTICAST |
Referenced by rpl_process_dio(), and rpl_set_root().
#define RPL_MOP_NO_DOWNWARD_ROUTES 0 |
Referenced by rpl_join_instance(), rpl_select_dag(), and should_send_dao().
#define RPL_MOP_NON_STORING 1 |
#define RPL_MOP_STORING_MULTICAST 3 |
Referenced by handle_dao_timer().
#define RPL_MOP_STORING_NO_MULTICAST 2 |
Referenced by rpl_process_dio().
#define RPL_OPTION_DAG_CONF 4 |
Referenced by dio_input(), and dio_output().
#define RPL_OPTION_DAG_METRIC_CONTAINER 2 |
Referenced by dio_input(), and dio_output().
#define RPL_OPTION_PAD1 0 |
Referenced by dao_input(), and dio_input().
#define RPL_OPTION_PADN 1 |
#define RPL_OPTION_PREFIX_INFO 8 |
Referenced by dio_input(), and dio_output().
#define RPL_OPTION_ROUTE_INFO 3 |
Referenced by dio_input().
#define RPL_OPTION_SOLICITED_INFO 7 |
#define RPL_OPTION_TARGET 5 |
Referenced by dao_input(), and dao_output_target().
#define RPL_OPTION_TARGET_DESC 9 |
#define RPL_OPTION_TRANSIT 6 |
Referenced by dao_input(), and dao_output_target().
#define RPL_ROUTE_FROM_DIO 3 |
#define RPL_ROUTE_FROM_INTERNAL 0 |
Referenced by rpl_add_route().
#define RPL_ROUTE_FROM_MULTICAST_DAO 2 |
Referenced by dao_input().
#define RPL_ROUTE_FROM_UNICAST_DAO 1 |
Referenced by dao_input().
#define RPL_STAT | ( | code | ) |
Referenced by dao_input(), dio_input(), global_repair(), rpl_alloc_dag(), rpl_local_repair(), and rpl_select_dag().
#define RPL_ZERO_LIFETIME 0 |
Referenced by dao_input(), rpl_nullify_parent(), rpl_purge_routes(), and rpl_select_dag().
#define uip_create_linklocal_rplnodes_mcast | ( | addr | ) | uip_ip6addr((addr), 0xff02, 0, 0, 0, 0, 0, 0, 0x001a) |
Set IP address addr to the link-local, all-rpl-nodes multicast address.
Referenced by dio_output(), dis_output(), and rpl_init().
#define uip_is_addr_linklocal_rplnodes_mcast | ( | addr | ) |
Is IPv6 address addr the link-local, all-RPL-nodes multicast address?
void rpl_join_dag | ( | uip_ipaddr_t * | from, |
rpl_dio_t * | dio | ||
) |
void rpl_poison_routes | ( | rpl_dag_t * | , |
rpl_parent_t * | |||
) |