|
Statistics |
|
Visitors: 1612044
|
|
|
uIPv6 FAQ
|
|
|
Written by Julien Abeille,
Monday, 29 September 2008 |
General
- What is uIPv6?
uIPv6 is the world's smallest certified IPv6 stack for low-cost networked device such as sensors and actuators.
- Is uIPv6 open source?
uIPv6 is open source, licensed under a 3-clause BSD license that allows it to be used in both closed source and open source projects.
- What is Contiki?
Contiki is the memory-efficient open source operating system for networked embedded devices that includes the uIPv6 stack. In addition, Contiki includes an IPv4 stack (the original uIP stack), TCP and UDP support, as well as the Rime radio communication stack. Contiki also provides standard OS features like threads, timers, random number generator, clock, a file system, and a command line shell. More information on Contiki can be found on this website.
- Does uIPv6 require an operating system?
Although uIPv6 is included in Contiki, uIPv6 itself does not require an operating system. Embedded device with enough resources may chose to run a real time operating system such as FreeRTOS. uIP IPv4 implementation runs on FreeRTOS, and uIPv6 is easily ported to FreeRTOS.
- On what link layers do uIPv6 run?
uIPv6 is not tailored to any particular link layer, but should run on any link layer over which IPv6 is designed. We have tested uIPv6 on IEEE 802.15.4 and Ethernet link layers.
IPv6
- What is IPv6?
Internet Protocol version 6 (IPv6) is a network layer (layer 3) protocol for packet-switched networks. IPv6 is specified by The Internet Engineering Task Force (IETF) in Request for Comments (RFC) documents. The most important RFCs are: the IPv6 Specification (RFC2460), the IPv6 Addressing Architecture (RFC4291), Neighbor Discovery (RFC4861), Internet Control Message Protocol for IPv6 (RFC4443) and Stateless Address Autoconfiguration (RFC4862). More information on IPv6 can be found at http://en.wikipedia.org/wiki/IPv6 and by typing the RFC number at http://www.ietf.org/rfc.html.
- Why should IP be used on constrained devices?
IP allows seamless connectivity (no translation gateway) to other IP-based networks such as LANs and even the Internet. IP is a well-known and open protocol (the specifications are available free of charge) with proven robustness. See also the IP for Smart Objects (IPSO) alliance.
- Why IPv6 instead of IPv4?
The main reasons to use IPv6 instead of IPv4 on constrained devices are its extended address space (2128 instead of 232 for IPv4) and its autoconfiguration capabilities. This makes IPv6 the ideal protocol for large scale deployments of embedded devices, sensors and other smart objects.
- What features of IPv6 does uIPv6 implement?
We implemented all the MUSTs of RFC4294 IPv6 Node Requirements except for Multicast Listener Discovery support and redirect function support. (note: IPSec support that is currently a MUST will become a SHOULD).
- What is the relationship between IPv6 and 6LowPAN?
6LowPAN (IPv6 over Low-Power Wireless Personal Area Networks) is a working group at IETF. It defines an adaption layer for sending IPv6 packets over IEEE 802.15.4. The goal of 6lowpan is to reduce the size of IPv6 packets to make them fit in 127 bytes 802.15.4 frames. 6lowpan consists of a header compression scheme, a fragmentation scheme and a method for forming IPv6 link-local address on 802.15.4 networks.
- Which features of 6lowpan does SICSlowpan implement?
SICSlowpan implements header compression, fragmentation, and addressing as specified in RFC 4944. We support the header compression scenarios defined in draft-hui-6lowpan-interop-00. This draft defines an interoperability scenario which was used between the ArchRock and the Sensinode 6lowpan implementations. We do not implement mesh under-related features, as we target route over techniques. We also implement the new header compression scheme proposed in draft-hui-6lowpan-hc-01.
IPv6 Ready Compliance
- What is the IPv6 Ready Logo Program?
The IPv6 Ready Logo Program is the only certification authority for IPv6. To obtain the IPv6 Ready Logo a stack or device must pass both conformance and interoperability tests. More information at http://www.ipv6ready.org.
- What is TAHI?
TAHI is a joint effort to provide the verification technology for IPv6. They develop conformance tests and interoperability tests for IPv6. These test suites are used by the IPv6 Ready Logo Program for certification purpose.
- Why is the IPv6 Ready Logo important?
Interoperability has always been considered as a critical feature in the Internet community. Obtaining the IPv6 ready Logo ensures that a device or a protocol stack will smoothly be able to connect to any other certified IPv6 network.
- Do vendors consider the IPv6 Ready Logo Program important?
Most, if not all, IPv6 equipment vendors and stack implementers passed the IPv6 Ready tests. Around 500 protocol stacks passed certification, among which Cisco, Juniper, Nokia, Ericsson, HP, Nortel, NEC, Samsung, LG, Microsoft, Apple, as well as open source projects such as Linux and FreeBSD.
- How many tests must an IPv6 stack pass to obtain the IPv6 Ready Logo?
Around 300 tests.
Platform requirements
- What is uIPv6 code size and RAM usage
The uIPv6 code size is approximately 11 KB. The RAM usage is distributed as follow: 0.2KB for general code, 0.3KB for neighbor discovery data structures, 1.3KB for the main buffer. The total RAM usage is thus around 1.8KB. If IPv6 fragmentation is supported an additional buffer of 1.3KB is used. If during the address resolution process per neighbor buffering is supported, an additional 1.3KB of RAM is needed per neighbor.
NOTE: To pass the IPv6 Ready tests, IPv6 fragmentation and per neighbor buffering for a minimum of 2 neighbors are required.
- How much RAM/ROM must my platform have to be able to run a minimal IPv6/6lowpan/802.15.4 Contiki?
35KB of ROM and around 3K of RAM (uIPv6 itself uses about 11KB of ROM and 1.8KB of RAM).
- How much RAM/ROM must my platform have to be able to run full IPv6/6lowpan/802.15.4 Contiki
An IPv6 Ready Contiki OS requires around 40KB of ROM and 10KB of RAM.
- What platforms are currently supported by Contiki/uIPv6?
Contiki with uIPv6 runs on the Atmel Raven, Tmote Sky/TelosB, as well as under simulation, and on a number of other AVR-based and MSP430-based platforms.
- How difficult is it to port Contiki/uIPv6 to my platform?
Contiki is designed to be easy to port and the base system is portable without changes to any platform that has an ANSI C compiler. The difficulty in porting typically lies in drivers for the radio or other communication device.
|
Adam Dunkels
(contact)
|
|
Recent Popular Contiki Articles |
|
|
|
Contiki Development Microblog
|