Nanostack Border Router is a generic mbed border router implementation that provides the 6LoWPAN ND or Thread border router initialization logic.
source/borderrouter_helpers.c@0:85f4174a8e29, 2017-03-09 (annotated)
- 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?
User | Revision | Line number | New 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 | } |