diff --git a/sys/shell/commands/sc_fib.c b/sys/shell/commands/sc_fib.c index 492941a1b421a2e0ed24b03d098cb07241fbc3c1..f96017a81754919f1be6585c07941d16ebfa4f7a 100644 --- a/sys/shell/commands/sc_fib.c +++ b/sys/shell/commands/sc_fib.c @@ -101,6 +101,16 @@ static void _fib_add(const char *dest, const char *next, kernel_pid_t pid, uint3 nxt_size = INADDRSZ; } + /* Set the prefix flag for a network */ + dst_flags |= FIB_FLAG_NET_PREFIX; + for (size_t i = 0; i < dst_size; ++i) { + if (dst[i] != 0) { + /* and clear the bit if its not the default route */ + dst_flags = (dst_flags & ~FIB_FLAG_NET_PREFIX); + break; + } + } + fib_add_entry(&gnrc_ipv6_fib_table, pid, dst, dst_size, dst_flags, nxt, nxt_size, nxt_flags, lifetime); }