Skip to content

Comparison to existing solutions

sdawans edited this page Feb 18, 2013 · 3 revisions

We decided to start developing 6LBR in Contiki to reduce the learning curve for companies wanting to design their Contiki-based Internet of Things products. Here is a review of the existing solutions at the time 6LBR was initiated to clarify the motivations behind the project.

Existing solutions overview

Contiki Native Border Router

Contiki supports only a single interface; the Border Router example relies on a Fallback interface (which is either connected to a SLIP or a TUN interface): all outgoing non-routable packets are forwarded to the fallback interface, and all incoming packet are injected into the UIP stack. The actual routing of these outgoing packets is transferred to the connected host. In case of a standalone Border Router (for example, an Econotag with an Ethernet controller), there is no such connected host, therefore the default Contiki Border Router cannot be used.

In the case of Native Border Router, the fallback interface is based on a TUN virtual interface, therefore the SmartBridge mode is not possible as the TUN interface strips the Ethernet frame from the transiting packets.

The Grinch

The Grinch provides a solution to the first problem by actually implementing multi-interface support in Contiki, but this is at the expense of extensive modifications in the uIP stack.

6LP-GW

The 6LP-GW is a Border Router bridging IPv6 network with 6LoWPAN-ND based WSN. It requires that all the nodes implement 6LoWPAN-ND and as far as we know it does not use RPL to support multi-hop WSN meshes.

Contiki Bridge

Contiki provides basic bridging functionality (see for example the Raven USB stick in bridge mode), however no filtering capabilities are provided and it still requires a full host connected to it.

CETIC 6LBR

The CETIC 6LBR emulates a second interface with limited impact on the uIP stack which allows to follow closely Contiki evolution and allows to easily contribute bugfixes and evolutions.

To be continued…

Clone this wiki locally