Changeset 2889
- Timestamp:
- 11/20/09 17:15:48 (4 months ago)
- Location:
- code/b6lowpan/branches/devel/support/sdk/c/blip
- Files:
-
- 8 added
- 17 modified
- 4 moved
-
configure.ac (modified) (3 diffs)
-
driver/Makefile.am (modified) (2 diffs)
-
driver/config.c (modified) (1 diff)
-
driver/mcast.c (modified) (4 diffs)
-
driver/netlink-darwin.c (added)
-
driver/netlink-linux.c (moved) (moved from code/b6lowpan/branches/devel/support/sdk/c/blip/driver/netlink.c)
-
driver/radvd-1.0/config.h.in (modified) (1 diff)
-
driver/radvd-1.0/configure.in (modified) (1 diff)
-
driver/radvd-wrapper.c (modified) (1 diff)
-
driver/router-config.h (moved) (moved from code/b6lowpan/branches/devel/support/sdk/c/blip/driver/config.h) (1 diff)
-
driver/routing-common.c (moved) (moved from code/b6lowpan/branches/devel/support/sdk/c/blip/driver/routing.c) (6 diffs)
-
driver/routing-darwin.c (added)
-
driver/routing-linux.c (added)
-
driver/routing.h (modified) (2 diffs)
-
driver/serial_tun.c (modified) (8 diffs)
-
driver/tun_dev_darwin.c (added)
-
driver/tun_dev_linux.c (moved) (moved from code/b6lowpan/branches/devel/support/sdk/c/blip/driver/tun_dev.c)
-
driver/tun_ioctls_darwin.h (added)
-
lib6lowpan/6lowpan.h (modified) (2 diffs)
-
lib6lowpan/Makefile.am (modified) (1 diff)
-
lib6lowpan/blip-pc-includes.h (added)
-
lib6lowpan/blip-tinyos-includes.h (added)
-
lib6lowpan/ip.h (modified) (1 diff)
-
lib6lowpan/lib6lowpan-includes.h (added)
-
lib6lowpan/lib6lowpan.c (modified) (1 diff)
-
lib6lowpan/lib6lowpan.h (modified) (1 diff)
-
lib6lowpan/lib6lowpanFrag.c (modified) (1 diff)
-
lib6lowpan/nwbyte.h (modified) (1 diff)
-
serial_tun.conf (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
code/b6lowpan/branches/devel/support/sdk/c/blip/configure.ac
r2387 r2889 1 1 AC_INIT([blip], [2.1], [stevedh@eecs.berkeley.edu]) 2 AC_CANONICAL_SYSTEM 3 echo $ac_n "building for architecture""... $ac_c" 1>&6 4 case "$target" in 5 *linux*) 6 AC_MSG_RESULT(linux) 7 arch=linux 8 ;; 9 *darwin*) 10 AC_MSG_RESULT(darwin) 11 arch=darwin 12 ;; 13 *) 14 AC_MSG_RESULT(unknown) 15 AC_MSG_ERROR([currently only Linux and OSX are supported]) 16 ;; 17 esac 18 dnl AC_DEFINE([PLATFORM], [${arch}]) 19 20 dnl check programs 2 21 AM_INIT_AUTOMAKE([-Wall -Werror foreign]) 3 22 AC_PROG_RANLIB … … 11 30 ]) 12 31 32 dnl check various platform include files 33 AC_CHECK_HEADERS([stdint.h inttypes.h]) 34 AC_CHECK_HEADERS([netinet/in.h ]) 35 AC_CHECK_HEADERS([linux/if_tun.h]) 36 AC_CHECK_HEADERS([arpa/inet.h]) 37 AC_CHECK_HEADERS([sys/socket.h net/route.h net/if.h], [], [], 38 [[#if HAVE_SYS_SOCKET_H 39 #include <sys/socket.h> 40 #endif 41 42 #if HAVE_NET_ROUTE_H 43 #include <net/route.h> 44 #endif]]) 45 46 AC_MSG_CHECKING(whether struct in6_addr has u6_addrXX and defines s6_addrXX) 47 AC_TRY_COMPILE([#include <netinet/in.h>], [static struct in6_addr in6_u; 48 int u = in6_u.s6_addr16;], [AC_MSG_RESULT(yes); AC_DEFINE([HAVE_IN6_ADDR_S6_ADDR], 49 1, [whether struct in6_addr has u6_addrXX and defines s6_addrXX])], 50 AC_MSG_RESULT(no)) 51 52 AC_MSG_CHECKING(for SIOCADDRT) 53 AC_TRY_COMPILE([#include <sys/ioctl.h>], [int x = SIOCADDRT;], 54 [AC_MSG_RESULT(yes); AC_DEFINE([HAVE_SIOCADDRT], 1, [weather the SIOCADDRT ioctl is defined])], 55 AC_MSG_RESULT(no)) 56 57 dnl sockoption for joining an ipv6 group 58 AC_MSG_CHECKING(if IPV6_JOIN_GROUP is defined) 59 AC_TRY_COMPILE([#include <netinet/in.h>], [int x = IPV6_JOIN_GROUP;], 60 [AC_MSG_RESULT(yes); AC_DEFINE([HAVE_IPV6_JOIN_GROUP], 1, 61 [weather IPV6_JOIN_GROUP is defined])], 62 AC_MSG_RESULT(no)) 63 64 AC_MSG_CHECKING(if IPV6_ADD_MEMBERSHIP is defined) 65 AC_TRY_COMPILE([#include <netinet/in.h>], [int x = IPV6_ADD_MEMBERSHIP;], 66 [AC_MSG_RESULT(yes); AC_DEFINE([HAVE_IPV6_ADD_MEMBERSHIP], 1, 67 [weather IPV6_ADD_MEMBERSHIP is defined])], 68 AC_MSG_RESULT(no)) 69 70 dnl if htons requires -lc 71 dnl AC_MSG_CHECKING(if htons requires -lc) 72 dnl AC_TRY_COMPILE([#include <arpa/inet.h>], [int x = htons(10);], 73 dnl [AC_MSG_RESULT(no)], 74 dnl [AC_MSG_RESULT(yes); LDFLAGS+=-lc]) 75 76 dnl Check where to put the pidfile 77 AC_MSG_CHECKING(where to put seqno file) 78 AC_ARG_WITH(seqfile, 79 [AC_HELP_STRING([--with-seqfile], [Path to the radvd pidfile (/var/run/ip-driver.seq)])], 80 PATH_BLIP_SEQFILE=$withval, 81 PATH_BLIP_SEQFILE=/var/run/ip-driver.seq.pid) 82 AC_MSG_RESULT($PATH_BLIP_SEQFILE) 83 AC_SUBST(PATH_BLIP_SEQFILE) 84 13 85 AC_ARG_ENABLE([lpl], 14 86 [AS_HELP_STRING([--enable-lpl], [assume LPL is in use])], … … 16 88 []) 17 89 18 90 AC_LINK_FILES(driver/tun_dev_${arch}.c, driver/tun_dev.c) 91 AC_LINK_FILES(driver/routing-${arch}.c, driver/routing-platform.c) 92 AC_LINK_FILES(driver/netlink-${arch}.c, driver/netlink.c) 19 93 AC_CONFIG_SUBDIRS([driver/radvd-1.0]) 20 94 AC_OUTPUT -
code/b6lowpan/branches/devel/support/sdk/c/blip/driver/Makefile.am
r2387 r2889 2 2 # SUBDIRS = radvd-1.0 3 3 4 DEFS = -DPATH_BLIP_SEQFILE=\"$(PATH_BLIP_SEQFILE)\" 5 4 6 sbin_PROGRAMS = ip-driver 5 7 8 ip_driver_LDFLAGS = @LDFLAGS@ -lc 9 6 10 radvddir = radvd-1.0 7 ip_driver_SOURCES=serial_tun.c tun_dev.c hashtable.c routing .c nwstate.c \11 ip_driver_SOURCES=serial_tun.c tun_dev.c hashtable.c routing-common.c nwstate.c \ 8 12 logging.c config.c radvd-wrapper.c vty/vty.c vty/vty-util.c vty/vty.h \ 9 netlink.c mcast.c \13 netlink.c mcast.c routing-platform.c\ 10 14 $(radvddir)/log.c $(radvddir)/socket.c $(radvddir)/recv.c $(radvddir)/util.c $(radvddir)/radvd.h \ 11 15 $(radvddir)/defaults.h $(radvddir)/pathnames.h \ … … 13 17 $(radvddir)/timer.c $(radvddir)/send.c $(radvddir)/process.c $(radvddir)/interface.c \ 14 18 $(radvddir)/device.c $(radvddir)/device-common.c $(radvddir)/gram.h \ 15 config.h hashtable.h hashtable_private.h \19 router-config.h hashtable.h hashtable_private.h \ 16 20 logging.h mcast.h netlink.h nwstate.h \ 17 21 routing.h tun_dev.h -
code/b6lowpan/branches/devel/support/sdk/c/blip/driver/config.c
r2410 r2889 32 32 33 33 #include <lib6lowpan/ip.h> 34 #include " config.h"34 #include "router-config.h" 35 35 #include "logging.h" 36 36 #include "vty/vty.h" -
code/b6lowpan/branches/devel/support/sdk/c/blip/driver/mcast.c
r2387 r2889 27 27 #include <unistd.h> 28 28 29 #include <net/if.h> 30 #include <sys/socket.h> 31 #include <sys/ioctl.h> 32 #include <netinet/in.h> 33 #include <netinet/ip.h> 34 #include <arpa/inet.h> 29 // includes all the plaform defs 30 #include <lib6lowpan/lib6lowpan.h> 35 31 36 32 #include "mcast.h" 37 33 #include "logging.h" 34 35 #if HAVE_IPV6_ADD_MEMBERSHIP 36 #define IPV6_JOIN IPv6_ADD_MEMBERSHIP 37 #else 38 # if HAVE_IPV6_JOIN_GROUP 39 # define IPV6_JOIN IPV6_JOIN_GROUP 40 # endif 41 #endif 38 42 39 43 int __mcast_sock; … … 87 91 } 88 92 93 #if 0 89 94 /* bind it to the device we're going to join the link-local 90 95 multicast group on */ … … 96 101 goto fail; 97 102 } 103 #endif 98 104 99 105 /* the loopback on linux doesn't support multicast. that's okay, … … 128 134 join.ipv6mr_interface = ifindex; 129 135 130 if (setsockopt(__mcast_sock, IPPROTO_IPV6, IPV6_ ADD_MEMBERSHIP, &join, sizeof(join)) < 0) {136 if (setsockopt(__mcast_sock, IPPROTO_IPV6, IPV6_JOIN, &join, sizeof(join)) < 0) { 131 137 log_fatal_perror("error joining group"); 132 138 goto fail; -
code/b6lowpan/branches/devel/support/sdk/c/blip/driver/radvd-1.0/config.h.in
r2387 r2889 79 79 #undef PACKAGE_TARNAME 80 80 81 /* Define to the home page for this package. */ 82 #undef PACKAGE_URL 83 81 84 /* Define to the version of this package. */ 82 85 #undef PACKAGE_VERSION -
code/b6lowpan/branches/devel/support/sdk/c/blip/driver/radvd-1.0/configure.in
r2387 r2889 30 30 AC_MSG_RESULT(bsd44) 31 31 arch=bsd44 32 ;; 33 *darwin*) 34 AC_MSG_RESULT(darwin) 35 arch=darwin 32 36 ;; 33 37 *) -
code/b6lowpan/branches/devel/support/sdk/c/blip/driver/radvd-wrapper.c
r2387 r2889 51 51 52 52 #include "logging.h" 53 #include " config.h"53 #include "router-config.h" 54 54 55 55 struct Interface *iface; -
code/b6lowpan/branches/devel/support/sdk/c/blip/driver/router-config.h
r2410 r2889 27 27 #define _CONFIG_H 28 28 29 #include <netinet/in.h> 30 #include <net/if.h> 29 // #include <lib6lowpan/lib6lowpan.h> 31 30 32 31 struct config { -
code/b6lowpan/branches/devel/support/sdk/c/blip/driver/routing-common.c
r2443 r2889 24 24 #include <stdio.h> 25 25 #include <stdlib.h> 26 #include <sys/socket.h> 26 27 #include <net/if.h> 27 28 #include <arpa/inet.h> … … 40 41 #include "netlink.h" 41 42 42 staticieee154_saddr_t my_short_addr;43 staticuint16_t current_seqno;43 ieee154_saddr_t my_short_addr; 44 uint16_t current_seqno; 44 45 extern struct in6_addr __my_address; 45 46 … … 49 50 char report_buf[ROUTMSGSIZ]; 50 51 51 /*52 * Call to setup routing tables.53 *54 */55 int routing_init(struct config *c, char *tun_name) {56 FILE *fd;57 char buf[256];58 my_short_addr = ntohs(__my_address.s6_addr16[7]);59 strncpy(proxy_dev, c->proxy_dev, IFNAMSIZ);60 strncpy(tun_dev, tun_name, IFNAMSIZ);61 62 // set up the network state data structures63 nw_init();64 65 // start a netlink session to the kernel66 nl_init();67 68 mcast_sock = mcast_start(proxy_dev);;69 70 if ((fd = fopen("/proc/sys/net/ipv6/conf/all/forwarding", "w")) == NULL) {71 log_fatal_perror("enable forwarding");72 return -1;73 }74 fprintf(fd, "1");75 fclose(fd);76 77 snprintf(buf, sizeof(buf), "/proc/sys/net/ipv6/conf/%s/proxy_ndp", proxy_dev);78 if ((fd = fopen(buf, "w")) == NULL) {79 warn("unable to enable IPv6 ND proxy on %s\n", proxy_dev);80 } else {81 fprintf(fd, "1");82 fclose(fd);83 }84 85 if ((fd = fopen("/var/run/ip-driver.seq", "r")) != NULL) {86 if (fscanf(fd, "%hi\n", ¤t_seqno) != 1) {87 current_seqno = 0;88 }89 fclose(fd);90 }91 92 return (mcast_sock >= 0) ? 0 : -1;93 }94 52 95 53 int routing_add_fds(fd_set *fds) { … … 99 57 return mcast_sock; 100 58 } 101 102 int route_cmd(int cmd, struct in6_addr *dest, char *dev) {103 struct in6_rtmsg rt;104 memset((char *) &rt, 0, sizeof(struct in6_rtmsg));105 memcpy(&rt.rtmsg_dst, dest, sizeof(struct in6_addr));106 107 rt.rtmsg_flags = RTF_UP | RTF_HOST;108 rt.rtmsg_metric = 1;109 rt.rtmsg_dst_len = 128;110 rt.rtmsg_ifindex = if_nametoindex(dev);111 112 return ioctl(mcast_sock, cmd, &rt);113 }114 115 59 116 60 int routing_process(fd_set *fds) { … … 260 204 261 205 /* 262 * Identical to routing_insert_route, except allows for a detour route263 */264 /*uint8_t routing_insert_route_indirect(struct split_ip_msg *orig, ip6_addr_t detour) {265 int offset = 0;266 path_t *path = nw_get_route(my_short_addr, l2fromIP(detour));267 path_t *path_second = nw_get_route(l2fromIP(detour), l2fromIP(orig->hdr.dst_addr));268 path_t *i;269 struct generic_header *g_hdr = (struct generic_header *)malloc(sizeof(struct generic_header));270 struct source_header *sh;271 272 debug("routing_insert_route_indirect len1: 0x%x, len2: 0x%x\n", path->length, path_second->length);273 274 if (ntoh16(orig->hdr.plen) + sizeof(struct source_header) + ((path->length + path_second->length) * sizeof(uint16_t)) + sizeof(struct ip6_hdr) > INET_MTU) {275 warn("packet plus source header too long\n");276 return 1;277 }278 279 sh = (struct source_header *)malloc(sizeof(struct source_header) + (path->length + path_second->length)*sizeof(uint16_t));280 if (sh == NULL || g_hdr == NULL) return 1;281 282 sh->nxt_hdr = orig->hdr.nxt_hdr;283 sh->len = sizeof(struct source_header) + ((path->length + path_second->length) * sizeof(uint16_t));284 sh->dispatch = IP_EXT_SOURCE_DISPATCH;285 sh->current = 0;286 orig->hdr.nxt_hdr = NXTHDR_SOURCE;287 288 fprintf(stderr, "to 0x%x [%i]: ", noths(orig->hdr.ip6_dst.s6_addr16[7]), path->length + path_second->length);289 for (i = path; i != NULL; i = i->next) {290 fprintf(stderr, "0x%x ", i->node);291 sh->hops[offset++] = hton16(i->node);292 }293 for (i = path_second; i != NULL; i = i->next) {294 fprintf(stderr, "0x%x ", i->node);295 sh->hops[offset++] = hton16(i->node);296 }297 298 fprintf(stderr, "\n");299 300 orig->hdr.plen = hton16(ntoh16(orig->hdr.plen) + sh->len);301 302 g_hdr->payload_malloced = 1;303 g_hdr->len = sh->len;304 g_hdr->hdr.sh = sh;305 g_hdr->next = orig->headers;306 orig->headers = g_hdr;307 308 nw_free_path(path);309 nw_free_path(path_second);310 311 return 0;312 }313 */314 315 /*316 206 */ 317 207 uint8_t routing_insert_route(struct split_ip_msg *orig) { … … 418 308 FILE *fd; 419 309 ++current_seqno; 420 if ((fd = fopen( "/var/run/ip-driver.seq", "w")) != NULL) {310 if ((fd = fopen(PATH_BLIP_SEQFILE, "w")) != NULL) { 421 311 fprintf(fd, "%hi\n", current_seqno); 422 312 fclose(fd); -
code/b6lowpan/branches/devel/support/sdk/c/blip/driver/routing.h
r2387 r2889 26 26 #include <string.h> 27 27 #include "nwstate.h" 28 #include "config.h" 28 #include "router-config.h" 29 30 #if ! HAVE_SIOCADDRT 31 #define SIOCADDRT 1 32 #define SIOCDELRT 2 33 #endif 29 34 30 35 enum { … … 49 54 }; 50 55 56 /* 57 * These two are platform-specific 58 * 59 * They should be in a file named routing-{arch}.c, which is linked to 60 * routing-platform.c by configure. 61 */ 51 62 int routing_init(struct config *c, char *tun_dev); 63 int route_cmd(int cmd, struct in6_addr *dest, char *dev); 52 64 53 65 /* -
code/b6lowpan/branches/devel/support/sdk/c/blip/driver/serial_tun.c
r2847 r2889 167 167 printf(" nxthdr: 0x%x hlim: 0x%x plen: %i\n", msg->hdr.nxt_hdr, msg->hdr.hlim, ntohs(msg->hdr.plen)); 168 168 printf(" src: "); 169 for (i = 0; i < 16; i++) printf("0x% x ", msg->hdr.ip6_src.s6_addr[i]);169 for (i = 0; i < 16; i++) printf("0x%hhx ", msg->hdr.ip6_src.s6_addr[i]); 170 170 printf("\n"); 171 171 printf(" dst: "); 172 for (i = 0; i < 16; i++) printf("0x% x ", msg->hdr.ip6_dst.s6_addr[i]);172 for (i = 0; i < 16; i++) printf("0x%hhx ", msg->hdr.ip6_dst.s6_addr[i]); 173 173 printf("\n"); 174 174 … … 472 472 debug("next hop: 0x%x\n", dest); 473 473 flow_insert_label(msg); 474 print_ip_packet(msg);475 474 476 475 fifo_report(msg, dest, nxt_hdr); … … 926 925 } 927 926 debug("tun_read: read 0x%x bytes\n", len); 927 log_dump_serial_packet(&msg->pi, len); 928 928 929 929 if ((msg->hdr.vlfc[0] >> 4) != IPV6_VERSION) { … … 1217 1217 } else if (strcmp(argv[1], "lpl") == 0) { 1218 1218 if (val < 0 || val > 4096) { 1219 VTY_printf("diallowing lpl interval of %i\r\n" );1219 VTY_printf("diallowing lpl interval of %i\r\n", val); 1220 1220 } else { 1221 1221 driver_config.lpl_interval = val; … … 1382 1382 1383 1383 if (!opt_listenonly) { 1384 int more_data ;1384 int more_data = 0; 1385 1385 /* check for data */ 1386 do { 1387 more_data = tun_input(); 1388 more_data = serial_input() || more_data ; 1389 } while (more_data); 1386 if (FD_ISSET(tun_fd, &fs)) tun_input(); 1387 if (FD_ISSET(pan_fd, &fs)) serial_input(); 1388 /* do { */ 1389 /* more_data = serial_input() || more_data ; */ 1390 /* } while (more_data); */ 1390 1391 } 1391 1392 … … 1466 1467 dev[0] = 0; 1467 1468 if (opt_listenonly) { 1468 tun_fd = -1;1469 1469 #ifndef SF_SRC 1470 1470 ser_src = NULL; … … 1485 1485 } 1486 1486 1487 1488 1487 for (i = 0; i < N_RECONSTRUCTIONS; i++) { 1489 1488 reconstructions[i].timeout = T_UNUSED; … … 1495 1494 1, stderr_msg); 1496 1495 if (!ser_src) { 1497 fatal("Couldn't open serial portat %s:%s\n", argv[optind], argv[optind + 1]);1496 log_fatal_perror("Couldn't open serial port");// at %s:%s\n", argv[optind], argv[optind + 1]); 1498 1497 exit(1); 1499 1498 } -
code/b6lowpan/branches/devel/support/sdk/c/blip/lib6lowpan/6lowpan.h
r2387 r2889 32 32 #define __6LOWPAN_H__ 33 33 34 #include <stdint.h> 34 #include "lib6lowpan-includes.h" 35 35 36 /* 36 37 * Typedefs and static library data. … … 38 39 typedef uint8_t ip6_addr_t [16]; 39 40 typedef uint16_t cmpr_ip6_addr_t; 40 #ifdef PC 41 #include "../config.h" 42 typedef uint16_t ieee154_saddr_t; 43 typedef uint16_t hw_pan_t; 44 enum { 45 HW_BROADCAST_ADDR = 0xffff, 46 }; 47 #else 48 #include <Ieee154.h> 49 #endif 41 50 42 51 43 /* -
code/b6lowpan/branches/devel/support/sdk/c/blip/lib6lowpan/Makefile.am
r2387 r2889 5 5 noinst_lib6lowpandir = $(includedir)/lib6lowpan-2.1.1 6 6 noinst_lib6lowpan_HEADERS = 6lowpan.h devconf.h IEEE154Packet.h in_cksum.h \ 7 ip.h ip_malloc.h lib6lowpan.h TrackFlows.h 7 ip.h ip_malloc.h lib6lowpan.h TrackFlows.h nwbyte.h 8 8 lib6lowpan_a_SOURCES = lib6lowpan.c lib6lowpanIP.c lib6lowpanFrag.c $(lib6lowpan_HEADERS) 9 9 -
code/b6lowpan/branches/devel/support/sdk/c/blip/lib6lowpan/ip.h
r2387 r2889 23 23 #define _IP_H_ 24 24 25 #include "lib6lowpan-includes.h" 26 #include "6lowpan.h" 27 25 28 /* 26 29 * define message structures for internet communication 27 30 * 28 31 */ 29 30 #ifdef PC31 #include <linux/if_tun.h>32 #include <netinet/in.h>33 #endif34 35 #include "6lowpan.h"36 32 37 33 enum { -
code/b6lowpan/branches/devel/support/sdk/c/blip/lib6lowpan/lib6lowpan.c
r2387 r2889 20 20 * 21 21 */ 22 #include "6lowpan.h"23 #include "ip.h"24 22 #include "lib6lowpan.h" 25 23 -
code/b6lowpan/branches/devel/support/sdk/c/blip/lib6lowpan/lib6lowpan.h
r2387 r2889 22 22 #ifndef _LIB6LOWPAN_H_ 23 23 #define _LIB6LOWPAN_H_ 24 #include <stdint.h> 25 #include <stddef.h> 26 24 25 #include "lib6lowpan-includes.h" 27 26 #include "6lowpan.h" 28 27 #include "ip.h" 29 #include "nwbyte.h"30 28 31 29 -
code/b6lowpan/branches/devel/support/sdk/c/blip/lib6lowpan/lib6lowpanFrag.c
r2387 r2889 29 29 #include <stdio.h> 30 30 31 #include "ip.h"32 31 #include "ip_malloc.h" 33 #include "6lowpan.h"34 32 #include "lib6lowpan.h" 35 33 -
code/b6lowpan/branches/devel/support/sdk/c/blip/lib6lowpan/nwbyte.h
r2414 r2889 11 11 #if defined(PC) 12 12 // use library versions if on linux 13 #include <netinet/in.h>14 #include <endian.h>15 16 13 #define ntoh16(X) ntohs(X) 17 14 #define hton16(X) htons(X) -
code/b6lowpan/branches/devel/support/sdk/c/blip/serial_tun.conf
r2418 r2889 7 7 # set the debug level of the output 8 8 # choices are DEBUG, INFO, WARN, ERROR, and FATAL 9 #log DEBUG9 log DEBUG 10 10 11 11 # set the address of the router's 802.15.4 interface. The interface
