osd-contiki/examples/osd/native-border-router
Ralf Schlatterbeck 04bbba6c12 Multi-platform support, osd-merkur-{128,256}
Rename guhRF platform to osd-merkur-256, previous osd-merkur platform is
now osd-merkur-128. Also check that everything is consistent.
Add both platforms to the regression tests.
Move redundant files in platform dev directory of both platforms to
cpu/avr/dev. Note that this probably needs some rework. Already
discovered some inconsistency in io definitions of both devices in the
avr/io.h includes. Added a workaround in the obvious cases.
The platform makefiles now set correct parameters for bootloader and for
reading mac-address from flash memory.
Factor the flash programming into cpu/avr and platform/osd-merkur* and
rework *all* osd example makefiles to use the new settings. Also update
all the flash.sh and run.sh to use the new settings.
The suli ledstrip modules (and osd example) have also been removed.
2016-04-22 17:59:40 +02:00
..
border-router-cmds.c initial upload 2014-12-31 09:55:31 +01:00
border-router-cmds.h initial upload 2014-12-31 09:55:31 +01:00
border-router-rdc.c initial upload 2014-12-31 09:55:31 +01:00
border-router.c initial upload 2014-12-31 09:55:31 +01:00
border-router.h initial upload 2014-12-31 09:55:31 +01:00
httpd-simple.c initial upload 2014-12-31 09:55:31 +01:00
httpd-simple.h initial upload 2014-12-31 09:55:31 +01:00
Makefile Multi-platform support, osd-merkur-{128,256} 2016-04-22 17:59:40 +02:00
project-conf.h initial upload 2014-12-31 09:55:31 +01:00
README.md add linux documentaion 2016-02-25 13:58:07 +01:00
slip-config.c initial upload 2014-12-31 09:55:31 +01:00
slip-dev.c initial upload 2014-12-31 09:55:31 +01:00
tun-bridge.c bugfix native boarder router 2016-02-25 13:37:08 +01: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).

Linux: apt-get install ncurses-dev make

sudo ./border-router.native -B 38400 -s /dev/ttyUSB0 aaaa::/64