RIOT/sys/shell/commands/sc_rpl.c
Cenk Gündoğan a06c667af5 rpl: remove routing table dependent code
This PR removes code depending on a routing table with an entries
size > 0. Currently, all those functions and symbols are compiled into the binary,
even when there is no effective space in the routing table (as it is the
case for normal nodes in non-storing mode)
2015-01-13 13:11:32 +01:00

58 lines
1.7 KiB
C

/*
* Copyright (C) 2014 Oliver Hahm <oliver.hahm@inria.fr>
*
* 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 shell_commands
* @{
* @file sc_rpl.c
* @brief provides shell commands to manage and query RPL
* @author Oliver Hahm <oliver.hahm@inria.fr>
* @}
*/
#include <stdio.h>
#include <stdint.h>
#include "rpl.h"
#if RPL_MAX_ROUTING_ENTRIES != 0
static char addr_str[IPV6_MAX_ADDR_STR_LEN];
#endif
void _rpl_route_handler(int argc, char **argv)
{
(void) argc;
(void) argv;
#if RPL_MAX_ROUTING_ENTRIES != 0
rpl_routing_entry_t *rtable;
rtable = rpl_get_routing_table();
unsigned c = 0;
puts("--------------------------------------------------------------------");
puts("Routing table");
printf(" %-3s %-18s %-18s %s\n", "#", "target", "next hop", "lifetime");
puts("--------------------------------------------------------------------");
for (int i = 0; i < rpl_max_routing_entries; i++) {
if (rtable[i].used) {
c++;
printf(" %03d: %-18s ", i, ipv6_addr_to_str(addr_str, IPV6_MAX_ADDR_STR_LEN,
(&rtable[i].address)));
printf("%-18s ", ipv6_addr_to_str(addr_str, IPV6_MAX_ADDR_STR_LEN,
(&rtable[i].next_hop)));
printf("%d\n", rtable[i].lifetime);
}
}
puts("--------------------------------------------------------------------");
printf(" %u routing table entries\n", c);
#else
puts("No routing table available");
#endif
puts("$");
}