osd-contiki/examples/ipv6/native-border-router
Wojciech Nizinski 5a0d085451 native-border-router: fix for disappearing timer 'uip_ds6_timer_periodic'
When UIP_ND6_SEND_NS is enabled, I've noticed that unreachable
neighbours still remains in REACHABLE state even if lifetime
(nbr->reachable) expired.

During network init 'tcpip_process' is scheduling
'uip_ds6_timer_periodic' is to tick every 100ms and make necessary
expirations.

When MAC addres is received from slip-radio (from 'etimer_process'
context), network is "reinitialized" and timer 'uip_ds6_timer_periodic'
is set again with wrong process.
2017-03-21 13:13:10 +01:00
..
border-router-cmds.c Updated include paths for the moved files under net/ 2014-01-26 23:20:23 +01:00
border-router-cmds.h A massive all-tree automated update of all double inclusion guard #defines that changes from using two underscores as a prefix, which are reserved, to not using two underscores as a prefix 2013-11-24 20:20:11 +01:00
border-router-rdc.c Changed the name of the rimeaddr module to linkaddr 2014-01-29 20:12:24 +01:00
border-router.c native-border-router: fix for disappearing timer 'uip_ds6_timer_periodic' 2017-03-21 13:13:10 +01:00
border-router.h Updated include paths for the moved files under net/ 2014-01-26 23:20:23 +01:00
httpd-simple.c Added native-border-router and slip-radio 2012-01-01 09:29:33 +01:00
httpd-simple.h A massive all-tree automated update of all double inclusion guard #defines that changes from using two underscores as a prefix, which are reserved, to not using two underscores as a prefix 2013-11-24 20:20:11 +01:00
Makefile Change the default IPv6 prefix from aaaa::/64 to fd00::/64 2016-03-07 17:47:44 +01:00
Makefile.target Added native-border-router and slip-radio 2012-01-01 09:29:33 +01:00
project-conf.h A massive all-tree automated update of all double inclusion guard #defines that changes from using two underscores as a prefix, which are reserved, to not using two underscores as a prefix 2013-11-24 20:20:11 +01:00
README.md additional edits to further clarify interface between native-border-router and slip-radio 2015-02-07 10:51:41 -05:00
slip-config.c Fix slip config switch statement 2016-04-20 08:14:08 +00:00
slip-dev.c fixed bug causing lots of packet loss 2013-05-04 13:13:08 -07:00
tun-bridge.c Fixes ret value for output fallback iface in tun-bridge.c 2015-09-22 12:53:04 +02:00

This code connects a 802.15.4 radio over TTY with the full uIPv6 stack of Contiki including 6LoWPAN and 802.15.4 framing / parsing. The native border router also acts as a RPL Root and handles the routing and maintains the RPL network. Finally the native border router connects the full 6LoWPAN/RPL network to the host (linux/os-x) network stack making it possible for applications on the host to transparently reach all the nodes in the 6LoWPAN/RPL network.

This is designed to interact with the a ../slip-radio example running on a mote that is either directly USB/TTY connected, or is remote via a TCP connect. What's on the SLIP interface is really not Serial Line IP, but SLIP framed 15.4 packets.

The border router supports a number of commands on it's stdin. Each are prefixed by !:

  • !G - global RPL repair root.
  • !M - set MAC address (if coming from RADIO, i.e. SLIP link)
  • !C - show channel (if coming from RADIO, i.e. SLIP link)
  • !D - sensor data received
  • !Q - exit

Queries are prefixed by ?:

  • ?M is used for requesting the MAC address from the radio in order to use it for uIP6 and its stateless address auto configuration of its IPv6 address. This will make the native border router have the address that correspond to the MAC address of the slip-radio. (response is !M from the slip-radio)

  • ?C is used for requesting the currently used channel for the slip-radio. The response is !C with a channel number (from the slip-radio).

  • !C is used for setting the channel of the slip-radio (useful if the motes are using another channel than the one used in the slip-radio).