Merge pull request #913 from cetic/pr-rpl-stats

Fix and add more RPL stats
This commit is contained in:
Nicolas Tsiftes 2014-12-19 22:15:38 +01:00
commit f2f49f18f5
3 changed files with 7 additions and 0 deletions

View File

@ -332,6 +332,7 @@ rpl_repair_root(uint8_t instance_id)
PRINTF("RPL: rpl_repair_root triggered but not root\n");
return 0;
}
RPL_STAT(rpl_stats.root_repairs++);
RPL_LOLLIPOP_INCREMENT(instance->current_dag->version);
RPL_LOLLIPOP_INCREMENT(instance->dtsn_out);

View File

@ -137,12 +137,14 @@ rpl_verify_header(int uip_ext_opt_offset)
sender_rank, instance->current_dag->rank,
sender_closer);
if(UIP_EXT_HDR_OPT_RPL_BUF->flags & RPL_HDR_OPT_RANK_ERR) {
RPL_STAT(rpl_stats.loop_errors++);
PRINTF("RPL: Rank error signalled in RPL option!\n");
/* Packet must be dropped and dio trickle timer reset, see RFC6550 - 11.2.2.2 */
rpl_reset_dio_timer(instance);
return 1;
}
PRINTF("RPL: Single error tolerated\n");
RPL_STAT(rpl_stats.loop_warnings++);
UIP_EXT_HDR_OPT_RPL_BUF->flags |= RPL_HDR_OPT_RANK_ERR;
return 0;
}

View File

@ -242,6 +242,10 @@ struct rpl_stats {
uint16_t malformed_msgs;
uint16_t resets;
uint16_t parent_switch;
uint16_t forward_errors;
uint16_t loop_errors;
uint16_t loop_warnings;
uint16_t root_repairs;
};
typedef struct rpl_stats rpl_stats_t;