Shell: added ability to trigger a RPL DTSN increment
This commit is contained in:
parent
9a409bf264
commit
96032fa47b
@ -180,6 +180,21 @@ find_objective_function(rpl_ocp_t ocp)
|
|||||||
}
|
}
|
||||||
/*---------------------------------------------------------------------------*/
|
/*---------------------------------------------------------------------------*/
|
||||||
void
|
void
|
||||||
|
rpl_refresh_routes(const char *str)
|
||||||
|
{
|
||||||
|
if(rpl_dag_root_is_root()) {
|
||||||
|
LOG_WARN("incrementing DTSN (%s), current %u)\n",
|
||||||
|
str, curr_instance.dtsn_out);
|
||||||
|
if(LOG_INFO_ENABLED) {
|
||||||
|
rpl_neighbor_print_list("Refresh routes (before)");
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Increment DTSN */
|
||||||
|
RPL_LOLLIPOP_INCREMENT(curr_instance.dtsn_out);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/*---------------------------------------------------------------------------*/
|
||||||
|
void
|
||||||
rpl_global_repair(const char *str)
|
rpl_global_repair(const char *str)
|
||||||
{
|
{
|
||||||
if(rpl_dag_root_is_root()) {
|
if(rpl_dag_root_is_root()) {
|
||||||
|
@ -126,6 +126,13 @@ int rpl_is_reachable(void);
|
|||||||
*/
|
*/
|
||||||
int rpl_lollipop_greater_than(int a, int b);
|
int rpl_lollipop_greater_than(int a, int b);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Triggers a route fresh via DTSN increment
|
||||||
|
*
|
||||||
|
* \param str a textual description of the cause for refresh
|
||||||
|
*/
|
||||||
|
void rpl_refresh_routes(const char *str);
|
||||||
|
|
||||||
/** @} */
|
/** @} */
|
||||||
|
|
||||||
#endif /* RPL_H */
|
#endif /* RPL_H */
|
||||||
|
@ -412,6 +412,17 @@ PT_THREAD(cmd_rpl_local_repair(struct pt *pt, shell_output_func output, char *ar
|
|||||||
|
|
||||||
PT_END(pt);
|
PT_END(pt);
|
||||||
}
|
}
|
||||||
|
/*---------------------------------------------------------------------------*/
|
||||||
|
static
|
||||||
|
PT_THREAD(cmd_rpl_refresh_routes(struct pt *pt, shell_output_func output, char *args))
|
||||||
|
{
|
||||||
|
PT_BEGIN(pt);
|
||||||
|
|
||||||
|
SHELL_OUTPUT(output, "Triggering routes refresh\n")
|
||||||
|
rpl_refresh_routes("Shell");
|
||||||
|
|
||||||
|
PT_END(pt);
|
||||||
|
}
|
||||||
#endif /* UIP_CONF_IPV6_RPL */
|
#endif /* UIP_CONF_IPV6_RPL */
|
||||||
/*---------------------------------------------------------------------------*/
|
/*---------------------------------------------------------------------------*/
|
||||||
static
|
static
|
||||||
@ -721,6 +732,7 @@ struct shell_command_t shell_commands[] = {
|
|||||||
#if UIP_CONF_IPV6_RPL
|
#if UIP_CONF_IPV6_RPL
|
||||||
{ "rpl-set-root", cmd_rpl_set_root, "'> rpl-set-root 0/1 [prefix]': Sets node as root (1) or not (0). A /64 prefix can be optionally specified." },
|
{ "rpl-set-root", cmd_rpl_set_root, "'> rpl-set-root 0/1 [prefix]': Sets node as root (1) or not (0). A /64 prefix can be optionally specified." },
|
||||||
{ "rpl-local-repair", cmd_rpl_local_repair, "'> rpl-local-repair': Triggers a RPL local repair" },
|
{ "rpl-local-repair", cmd_rpl_local_repair, "'> rpl-local-repair': Triggers a RPL local repair" },
|
||||||
|
{ "rpl-refresh-routes", cmd_rpl_refresh_routes, "'> rpl-refresh-routes': Refreshes all routes through a DTSN increment" },
|
||||||
{ "rpl-global-repair", cmd_rpl_global_repair, "'> rpl-global-repair': Triggers a RPL global repair" },
|
{ "rpl-global-repair", cmd_rpl_global_repair, "'> rpl-global-repair': Triggers a RPL global repair" },
|
||||||
#endif /* UIP_CONF_IPV6_RPL */
|
#endif /* UIP_CONF_IPV6_RPL */
|
||||||
#if ROUTING_CONF_RPL_LITE
|
#if ROUTING_CONF_RPL_LITE
|
||||||
|
Loading…
Reference in New Issue
Block a user