Nanostack Border Router is a generic mbed border router implementation that provides the 6LoWPAN ND or Thread border router initialization logic.

Committer:
mbed_official
Date:
Thu Mar 09 17:47:03 2017 +0000
Revision:
0:85f4174a8e29
Child:
13:993808eb2e9c
Initial commit.
Commit copied from https://github.com/ARMmbed/nanostack-border-router

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mbed_official 0:85f4174a8e29 1 /*
mbed_official 0:85f4174a8e29 2 * Copyright (c) 2016 ARM Limited. All rights reserved.
mbed_official 0:85f4174a8e29 3 */
mbed_official 0:85f4174a8e29 4
mbed_official 0:85f4174a8e29 5 #include <string.h>
mbed_official 0:85f4174a8e29 6 #include <stdlib.h>
mbed_official 0:85f4174a8e29 7 #include <stdio.h>
mbed_official 0:85f4174a8e29 8 #include <ctype.h>
mbed_official 0:85f4174a8e29 9 #include "ip6string.h"
mbed_official 0:85f4174a8e29 10 #include "ns_types.h"
mbed_official 0:85f4174a8e29 11 #include "common_functions.h"
mbed_official 0:85f4174a8e29 12 #include "ns_trace.h"
mbed_official 0:85f4174a8e29 13 #define TRACE_GROUP "app"
mbed_official 0:85f4174a8e29 14
mbed_official 0:85f4174a8e29 15 static char tmp_print_buffer[128] = {0};
mbed_official 0:85f4174a8e29 16
mbed_official 0:85f4174a8e29 17 char *print_ipv6(const void *addr_ptr)
mbed_official 0:85f4174a8e29 18 {
mbed_official 0:85f4174a8e29 19 ip6tos(addr_ptr, tmp_print_buffer);
mbed_official 0:85f4174a8e29 20 return tmp_print_buffer;
mbed_official 0:85f4174a8e29 21 }
mbed_official 0:85f4174a8e29 22
mbed_official 0:85f4174a8e29 23 char *print_ipv6_prefix(const uint8_t *prefix, uint8_t prefix_len)
mbed_official 0:85f4174a8e29 24 {
mbed_official 0:85f4174a8e29 25 char *str = tmp_print_buffer;
mbed_official 0:85f4174a8e29 26 int retval;
mbed_official 0:85f4174a8e29 27 char tmp[40];
mbed_official 0:85f4174a8e29 28 uint8_t addr[16] = {0};
mbed_official 0:85f4174a8e29 29
mbed_official 0:85f4174a8e29 30 if (prefix_len != 0) {
mbed_official 0:85f4174a8e29 31 if (prefix == NULL || prefix_len > 128) {
mbed_official 0:85f4174a8e29 32 return "<err>";
mbed_official 0:85f4174a8e29 33 }
mbed_official 0:85f4174a8e29 34 bitcopy(addr, prefix, prefix_len);
mbed_official 0:85f4174a8e29 35 }
mbed_official 0:85f4174a8e29 36
mbed_official 0:85f4174a8e29 37 ip6tos(addr, tmp);
mbed_official 0:85f4174a8e29 38 retval = snprintf(str, 128, "%s/%u", tmp, prefix_len);
mbed_official 0:85f4174a8e29 39 if (retval <= 0) {
mbed_official 0:85f4174a8e29 40 return "";
mbed_official 0:85f4174a8e29 41 }
mbed_official 0:85f4174a8e29 42 return str;
mbed_official 0:85f4174a8e29 43 }
mbed_official 0:85f4174a8e29 44
mbed_official 0:85f4174a8e29 45 void print_appl_info(void)
mbed_official 0:85f4174a8e29 46 {
mbed_official 0:85f4174a8e29 47 tr_info("Starting NanoStack Border Router...");
mbed_official 0:85f4174a8e29 48 tr_info("Build date: %s %s", __DATE__, __TIME__);
mbed_official 0:85f4174a8e29 49 }