diff --git a/doc/Doxyfile b/doc/Doxyfile
index 06487cd7b..63675d0c7 100644
--- a/doc/Doxyfile
+++ b/doc/Doxyfile
@@ -1,225 +1,450 @@
-# Doxyfile 1.4.1
-
-#---------------------------------------------------------------------------
-# Project related configuration options
-#---------------------------------------------------------------------------
-PROJECT_NAME = "Contiki 2.2.1"
-PROJECT_NUMBER =
-OUTPUT_DIRECTORY = .
-CREATE_SUBDIRS = NO
-OUTPUT_LANGUAGE = English
-USE_WINDOWS_ENCODING = NO
-BRIEF_MEMBER_DESC = YES
-REPEAT_BRIEF = YES
-ABBREVIATE_BRIEF =
-ALWAYS_DETAILED_SEC = NO
-INLINE_INHERITED_MEMB = NO
-FULL_PATH_NAMES = YES
-STRIP_FROM_PATH = $(docroot)
-STRIP_FROM_INC_PATH = $(docroot)
-SHORT_NAMES = YES
-JAVADOC_AUTOBRIEF = YES
-MULTILINE_CPP_IS_BRIEF = NO
-DETAILS_AT_TOP = YES
-INHERIT_DOCS = YES
-DISTRIBUTE_GROUP_DOC = NO
-TAB_SIZE = 8
-ALIASES =
-OPTIMIZE_OUTPUT_FOR_C = YES
-OPTIMIZE_OUTPUT_JAVA = NO
-SUBGROUPING = YES
-#---------------------------------------------------------------------------
-# Build related configuration options
-#---------------------------------------------------------------------------
-EXTRACT_ALL = NO
-EXTRACT_PRIVATE = NO
-EXTRACT_STATIC = NO
-EXTRACT_LOCAL_CLASSES = NO
-EXTRACT_LOCAL_METHODS = NO
-HIDE_UNDOC_MEMBERS = YES
-HIDE_UNDOC_CLASSES = YES
-HIDE_FRIEND_COMPOUNDS = NO
-HIDE_IN_BODY_DOCS = NO
-INTERNAL_DOCS = NO
-CASE_SENSE_NAMES = YES
-HIDE_SCOPE_NAMES = NO
-SHOW_INCLUDE_FILES = YES
-INLINE_INFO = YES
-SORT_MEMBER_DOCS = YES
-SORT_BRIEF_DOCS = NO
-SORT_BY_SCOPE_NAME = NO
-GENERATE_TODOLIST = YES
-GENERATE_TESTLIST = YES
-GENERATE_BUGLIST = NO
-GENERATE_DEPRECATEDLIST= NO
-ENABLED_SECTIONS =
-MAX_INITIALIZER_LINES = 30
-SHOW_USED_FILES = NO
-SHOW_DIRECTORIES = YES
-FILE_VERSION_FILTER =
-#---------------------------------------------------------------------------
-# configuration options related to warning and progress messages
-#---------------------------------------------------------------------------
-QUIET = NO
-WARNINGS = YES
-WARN_IF_UNDOCUMENTED = NO
-WARN_IF_DOC_ERROR = YES
-WARN_NO_PARAMDOC = NO
-WARN_FORMAT = "$file:$line: $text"
-WARN_LOGFILE = doxygen.log
-#---------------------------------------------------------------------------
-# configuration options related to the input files
-#---------------------------------------------------------------------------
-INPUT = $(docsrc)
-
-FILE_PATTERNS = *.h *.c *.doc.html
-RECURSIVE = NO
-EXCLUDE =
-EXCLUDE_SYMLINKS = NO
-EXCLUDE_PATTERNS =
-EXAMPLE_PATH = . ../examples/rime ../examples/multi-threading
-EXAMPLE_PATTERNS =
-EXAMPLE_RECURSIVE = NO
-IMAGE_PATH =
-INPUT_FILTER =
-FILTER_PATTERNS =
-FILTER_SOURCE_FILES = NO
-#---------------------------------------------------------------------------
-# configuration options related to source browsing
-#---------------------------------------------------------------------------
-SOURCE_BROWSER = YES
-INLINE_SOURCES = NO
-STRIP_CODE_COMMENTS = NO
-REFERENCED_BY_RELATION = YES
-REFERENCES_RELATION = YES
-VERBATIM_HEADERS = YES
-#---------------------------------------------------------------------------
-# configuration options related to the alphabetical class index
-#---------------------------------------------------------------------------
-ALPHABETICAL_INDEX = YES
-COLS_IN_ALPHA_INDEX = 5
-IGNORE_PREFIX =
-#---------------------------------------------------------------------------
-# configuration options related to the HTML output
-#---------------------------------------------------------------------------
-GENERATE_HTML = YES
-HTML_OUTPUT = html
-HTML_FILE_EXTENSION = .html
-HTML_HEADER =
-HTML_FOOTER =
-HTML_STYLESHEET =
-HTML_ALIGN_MEMBERS = YES
-GENERATE_HTMLHELP = YES
-CHM_FILE =
-HHC_LOCATION =
-GENERATE_CHI = YES
-BINARY_TOC = YES
-TOC_EXPAND = YES
-DISABLE_INDEX = NO
-ENUM_VALUES_PER_LINE = 4
-GENERATE_TREEVIEW = YES
-TREEVIEW_WIDTH = 250
-#---------------------------------------------------------------------------
-# configuration options related to the LaTeX output
-#---------------------------------------------------------------------------
-GENERATE_LATEX = $(doclatex)
-LATEX_OUTPUT = latex
-LATEX_CMD_NAME = latex
-MAKEINDEX_CMD_NAME = makeindex
-COMPACT_LATEX = YES
-PAPER_TYPE = a4wide
-EXTRA_PACKAGES =
-LATEX_HEADER =
-PDF_HYPERLINKS = YES
-USE_PDFLATEX = YES
-LATEX_BATCHMODE = NO
-LATEX_HIDE_INDICES = NO
-#---------------------------------------------------------------------------
-# configuration options related to the RTF output
-#---------------------------------------------------------------------------
-GENERATE_RTF = NO
-RTF_OUTPUT = rtf
-COMPACT_RTF = NO
-RTF_HYPERLINKS = NO
-RTF_STYLESHEET_FILE =
-RTF_EXTENSIONS_FILE =
-#---------------------------------------------------------------------------
-# configuration options related to the man page output
-#---------------------------------------------------------------------------
-GENERATE_MAN = NO
-MAN_OUTPUT = man
-MAN_EXTENSION = .3
-MAN_LINKS = NO
-#---------------------------------------------------------------------------
-# configuration options related to the XML output
-#---------------------------------------------------------------------------
-GENERATE_XML = NO
-XML_OUTPUT = xml
-XML_SCHEMA =
-XML_DTD =
-XML_PROGRAMLISTING = YES
-#---------------------------------------------------------------------------
-# configuration options for the AutoGen Definitions output
-#---------------------------------------------------------------------------
-GENERATE_AUTOGEN_DEF = NO
-#---------------------------------------------------------------------------
-# configuration options related to the Perl module output
-#---------------------------------------------------------------------------
-GENERATE_PERLMOD = NO
-PERLMOD_LATEX = NO
-PERLMOD_PRETTY = YES
-PERLMOD_MAKEVAR_PREFIX =
-#---------------------------------------------------------------------------
-# Configuration options related to the preprocessor
-#---------------------------------------------------------------------------
-ENABLE_PREPROCESSING = YES
-MACRO_EXPANSION = NO
-EXPAND_ONLY_PREDEF = NO
-SEARCH_INCLUDES = YES
-INCLUDE_PATH =
-INCLUDE_FILE_PATTERNS =
-PREDEFINED = CC_FUNCTION_POINTER_ARGS \
- UIP_UDP \
- WITH_LOADER_ARCH \
- DOXYGEN \
- "ASCCMD(name, flags, args)=void CMD_ASCII(name)"
-EXPAND_AS_DEFINED =
-SKIP_FUNCTION_MACROS = YES
-#---------------------------------------------------------------------------
-# Configuration::additions related to external references
-#---------------------------------------------------------------------------
-TAGFILES =
-GENERATE_TAGFILE =
-ALLEXTERNALS = NO
-EXTERNAL_GROUPS = YES
-PERL_PATH = /usr/bin/perl
-#---------------------------------------------------------------------------
-# Configuration options related to the dot tool
-#---------------------------------------------------------------------------
-CLASS_DIAGRAMS = NO
-HIDE_UNDOC_RELATIONS = YES
-HAVE_DOT = NO
-CLASS_GRAPH = NO
-COLLABORATION_GRAPH = NO
-GROUP_GRAPHS = NO
-UML_LOOK = NO
-TEMPLATE_RELATIONS = NO
-INCLUDE_GRAPH = NO
-INCLUDED_BY_GRAPH = NO
-CALL_GRAPH = NO
-GRAPHICAL_HIERARCHY = NO
-DIRECTORY_GRAPH = NO
-DOT_IMAGE_FORMAT = png
-DOT_PATH =
-DOTFILE_DIRS =
-MAX_DOT_GRAPH_WIDTH = 1024
-MAX_DOT_GRAPH_HEIGHT = 1024
-MAX_DOT_GRAPH_DEPTH = 0
-DOT_TRANSPARENT = NO
-DOT_MULTI_TARGETS = NO
-GENERATE_LEGEND = YES
-DOT_CLEANUP = YES
-#---------------------------------------------------------------------------
-# Configuration::additions related to the search engine
-#---------------------------------------------------------------------------
-SEARCHENGINE = NO
+# Doxyfile 1.4.1
+
+#---------------------------------------------------------------------------
+# Project related configuration options
+#---------------------------------------------------------------------------
+PROJECT_NAME = "Contiki 2.1"
+PROJECT_NUMBER =
+OUTPUT_DIRECTORY = .
+CREATE_SUBDIRS = NO
+OUTPUT_LANGUAGE = English
+USE_WINDOWS_ENCODING = NO
+BRIEF_MEMBER_DESC = YES
+REPEAT_BRIEF = YES
+ABBREVIATE_BRIEF =
+ALWAYS_DETAILED_SEC = NO
+INLINE_INHERITED_MEMB = NO
+FULL_PATH_NAMES = YES
+STRIP_FROM_PATH = ../
+STRIP_FROM_INC_PATH =
+SHORT_NAMES = YES
+JAVADOC_AUTOBRIEF = YES
+MULTILINE_CPP_IS_BRIEF = NO
+DETAILS_AT_TOP = YES
+INHERIT_DOCS = YES
+DISTRIBUTE_GROUP_DOC = NO
+TAB_SIZE = 8
+ALIASES =
+OPTIMIZE_OUTPUT_FOR_C = YES
+OPTIMIZE_OUTPUT_JAVA = NO
+SUBGROUPING = YES
+#---------------------------------------------------------------------------
+# Build related configuration options
+#---------------------------------------------------------------------------
+EXTRACT_ALL = NO
+EXTRACT_PRIVATE = NO
+EXTRACT_STATIC = YES
+EXTRACT_LOCAL_CLASSES = NO
+EXTRACT_LOCAL_METHODS = NO
+HIDE_UNDOC_MEMBERS = YES
+HIDE_UNDOC_CLASSES = YES
+HIDE_FRIEND_COMPOUNDS = NO
+HIDE_IN_BODY_DOCS = NO
+INTERNAL_DOCS = NO
+CASE_SENSE_NAMES = YES
+HIDE_SCOPE_NAMES = NO
+SHOW_INCLUDE_FILES = YES
+INLINE_INFO = YES
+SORT_MEMBER_DOCS = YES
+SORT_BRIEF_DOCS = NO
+SORT_BY_SCOPE_NAME = NO
+GENERATE_TODOLIST = YES
+GENERATE_TESTLIST = YES
+GENERATE_BUGLIST = NO
+GENERATE_DEPRECATEDLIST= NO
+ENABLED_SECTIONS =
+MAX_INITIALIZER_LINES = 30
+SHOW_USED_FILES = NO
+SHOW_DIRECTORIES = YES
+FILE_VERSION_FILTER =
+#---------------------------------------------------------------------------
+# configuration options related to warning and progress messages
+#---------------------------------------------------------------------------
+QUIET = NO
+WARNINGS = YES
+WARN_IF_UNDOCUMENTED = NO
+WARN_IF_DOC_ERROR = YES
+WARN_NO_PARAMDOC = NO
+WARN_FORMAT = "$file:$line: $text"
+WARN_LOGFILE =
+#---------------------------------------------------------------------------
+# configuration options related to the input files
+#---------------------------------------------------------------------------
+INPUT = contiki-mainpage.txt net.txt dev.txt \
+ mem.txt \
+ sys.txt \
+ lib.txt \
+ platform.txt \
+ uip-doc.txt \
+ uip6-doc.txt \
+ tutorials.txt \
+ tutorial-raven.txt \
+ sicslowpan-doc.txt \
+ rime-doc.txt \
+ code-style.txt \
+ examples.txt \
+ sicslowmac-doc.txt \
+ uip-doc.txt build-system.txt \
+ pt-doc.txt \
+ ../apps/program-handler/program-handler.c \
+ ../core/sys/process.c \
+ ../core/sys/process.h \
+ ../core/sys/cc.h \
+ ../core/sys/etimer.c \
+ ../core/sys/etimer.h \
+ ../core/sys/procinit.h \
+ ../core/sys/procinit.c \
+ ../core/sys/arg.c \
+ ../core/sys/dsc.h \
+ ../core/sys/loader.h \
+ ../core/sys/pt.h \
+ ../core/sys/lc.h \
+ ../core/sys/lc-switch.h \
+ ../core/sys/lc-addrlabels.h \
+ ../core/sys/pt-sem.h \
+ ../core/sys/clock.h \
+ ../core/sys/mt.h \
+ ../core/sys/mt.c \
+ ../core/dev/eeprom.h \
+ ../core/dev/radio.h \
+ ../core/loader/elfloader.h \
+ ../core/loader/elfloader-arch.h \
+ ../cpu/avr/radio/rf230/at86rf230_registermap.h \
+ ../cpu/avr/radio/rf230/frame.c \
+ ../cpu/avr/radio/rf230/frame.h \
+ ../cpu/avr/radio/rf230/hal.c \
+ ../cpu/avr/radio/rf230/hal.h \
+ ../cpu/avr/radio/rf230/radio.c \
+ ../cpu/avr/radio/rf230/radio.h \
+ ../core/cfs/cfs.h \
+ ../core/ctk/ctk.h \
+ ../core/ctk/ctk.c \
+ ../core/ctk/ctk-draw.h \
+ ../core/sys/timer.h \
+ ../core/sys/timer.c \
+ ../core/sys/timesynch.h \
+ ../core/sys/timesynch.c \
+ ../core/net/uip.h \
+ ../core/net/uip.c \
+ ../core/net/uip6.c \
+ ../core/net/uip-nd6.h \
+ ../core/net/uip-nd6.c \
+ ../core/net/uip-nd6-io.c \
+ ../core/net/uip-netif.c \
+ ../core/net/uip-netif.h \
+ ../core/net/uip-icmp6.h \
+ ../core/net/uip-icmp6.c \
+ ../core/net/uipopt.h \
+ ../core/net/uip_arp.h \
+ ../core/net/uip_arp.c \
+ ../core/net/uip-split.h \
+ ../core/net/uip-split.c \
+ ../core/net/uip-fw.h \
+ ../core/net/uip-fw.c \
+ ../core/net/uiplib.h \
+ ../core/net/uiplib.c \
+ ../core/net/resolv.h \
+ ../core/net/resolv.c \
+ ../core/net/psock.h \
+ ../core/net/psock.c \
+ ../core/net/sicslowpan.h \
+ ../core/net/sicslowpan.c \
+ ../core/net/tcpip.h \
+ ../core/net/tcpip.c \
+ ../core/net/mac/mac.h \
+ ../core/net/mac/nullmac.h \
+ ../core/net/mac/nullmac.c \
+ ../core/net/mac/xmac.h \
+ ../core/net/mac/xmac.c \
+ ../core/net/rime.h \
+ ../core/net/rime/abc.h \
+ ../core/net/rime/abc.c \
+ ../core/net/rime/ctimer.h \
+ ../core/net/rime/ctimer.c \
+ ../core/net/rime/ibc.h \
+ ../core/net/rime/ibc.c \
+ ../core/net/rime/ipolite.h \
+ ../core/net/rime/ipolite.c \
+ ../core/net/rime/mesh.h \
+ ../core/net/rime/mesh.c \
+ ../core/net/rime/mh.h \
+ ../core/net/rime/mh.c \
+ ../core/net/rime/neighbor-discovery.h \
+ ../core/net/rime/neighbor-discovery.c \
+ ../core/net/rime/neighbor.h \
+ ../core/net/rime/neighbor.c \
+ ../core/net/rime/nf.h \
+ ../core/net/rime/nf.c \
+ ../core/net/rime/polite.h \
+ ../core/net/rime/polite.c \
+ ../core/net/rime/queuebuf.h \
+ ../core/net/rime/queuebuf.c \
+ ../core/net/rime/rimeaddr.h \
+ ../core/net/rime/rimeaddr.c \
+ ../core/net/rime/rimebuf.h \
+ ../core/net/rime/rimebuf.c \
+ ../core/net/rime/rimestats.h \
+ ../core/net/rime/rimestats.c \
+ ../core/net/rime/rmh.h \
+ ../core/net/rime/rmh.c \
+ ../core/net/rime/route-discovery.h \
+ ../core/net/rime/route-discovery.c \
+ ../core/net/rime/route.h \
+ ../core/net/rime/route.c \
+ ../core/net/rime/ruc.h \
+ ../core/net/rime/ruc.c \
+ ../core/net/rime/rucb.h \
+ ../core/net/rime/rucb.c \
+ ../core/net/rime/sabc.h \
+ ../core/net/rime/sabc.c \
+ ../core/net/rime/sibc.h \
+ ../core/net/rime/sibc.c \
+ ../core/net/rime/suc.h \
+ ../core/net/rime/suc.c \
+ ../core/net/rime/collect.h \
+ ../core/net/rime/collect.c \
+ ../core/net/rime/trickle.h \
+ ../core/net/rime/trickle.c \
+ ../core/net/rime/uc.h \
+ ../core/net/rime/uc.c \
+ ../core/net/rime/rudolph0.h \
+ ../core/net/rime/rudolph0.c \
+ ../core/net/rime/rudolph1.h \
+ ../core/net/rime/rudolph1.c \
+ ../cpu/avr/radio/mac/mac.c \
+ ../cpu/avr/radio/mac/mac.h \
+ ../cpu/avr/radio/mac/sicslowmac.c \
+ ../cpu/avr/radio/mac/sicslowmac.h \
+ ../cpu/avr/radio/ieee-manager/ieee-15-4-manager.c \
+ ../cpu/avr/radio/ieee-manager/ieee-15-4-manager.h \
+ ../core/lib/petsciiconv.h \
+ ../core/lib/memb.h \
+ ../core/lib/memb.c \
+ ../core/lib/mmem.h \
+ ../core/lib/mmem.c \
+ ../core/lib/list.h \
+ ../core/lib/list.c \
+ ../core/lib/me.h \
+ ../core/lib/me.c \
+ ../core/lib/crc16.h \
+ ../core/lib/crc16.c \
+ ../platform/sky/doc/sky.txt \
+ ../platform/esb/doc/esb.txt \
+ ../platform/esb/doc/slipintro.txt \
+ ../platform/esb/dev/beep.h \
+ ../platform/esb/dev/eeprom.c \
+ ../platform/esb/dev/rs232.h \
+ ../platform/esb/dev/rs232.c \
+ ../platform/esb/dev/tr1001.c \
+ ../cpu/avr/dev/usb/serial/cdc_task.c \
+ ../cpu/avr/dev/usb/serial/cdc_task.h \
+ ../cpu/avr/dev/usb/serial/uart_usb_lib.c \
+ ../cpu/avr/dev/usb/serial/uart_usb_lib.h \
+ ../cpu/avr/dev/usb/rndis/ndis.h \
+ ../cpu/avr/dev/usb/rndis/rndis.c \
+ ../cpu/avr/dev/usb/rndis/rndis_protocol.h \
+ ../cpu/avr/dev/usb/rndis/rndis_task.c \
+ ../cpu/avr/dev/usb/rndis/rndis_task.h \
+ ../cpu/avr/dev/usb/storage/avr_flash.c \
+ ../cpu/avr/dev/usb/storage/ctrl_access.c \
+ ../cpu/avr/dev/usb/storage/scsi_decoder.c \
+ ../cpu/avr/dev/usb/storage/storage_task.c \
+ ../cpu/avr/dev/usb/storage/avr_flash.h \
+ ../cpu/avr/dev/usb/storage/conf_access.h \
+ ../cpu/avr/dev/usb/storage/ctrl_access.h \
+ ../cpu/avr/dev/usb/storage/ctrl_status.h \
+ ../cpu/avr/dev/usb/storage/storage_task.h \
+ ../cpu/avr/dev/usb/conf_usb.h \
+ ../cpu/avr/dev/usb/usb_descriptors.c \
+ ../cpu/avr/dev/usb/usb_descriptors.h \
+ ../cpu/avr/dev/usb/usb_specific_request.c \
+ ../cpu/avr/dev/usb/usb_specific_request.h \
+ ../cpu/avr/dev/usb/usb_standard_request.c \
+ ../cpu/avr/dev/usb/usb_drv.h \
+ ../cpu/avr/dev/usb/usb_drv.c \
+ ../cpu/avr/dev/usb/usb_task.h \
+ ../cpu/avr/dev/usb/usb_task.c \
+ ../platform/avr-ravenusb/sicslow_ethernet.c \
+ ../platform/avr-ravenusb/sicslow_ethernet.h \
+ ../platform/avr-ravenusb/contiki-raven-default-init-net.c \
+ ../platform/avr-ravenusb/contiki-raven-main-net.c \
+ ../platform/avr-ravenusb/contiki-raven.h \
+ ravenusbstick-docs.txt \
+ ../platform/avr-ravenlcd/adc.c \
+ ../platform/avr-ravenlcd/beep.c \
+ ../platform/avr-ravenlcd/key.c \
+ ../platform/avr-ravenlcd/lcd.c \
+ ../platform/avr-ravenlcd/menu.c \
+ ../platform/avr-ravenlcd/raven3290.c \
+ ../platform/avr-ravenlcd/sleep.c \
+ ../platform/avr-ravenlcd/temp.c \
+ ../platform/avr-ravenlcd/timer.c \
+ ../platform/avr-ravenlcd/uart.c \
+ ../platform/avr-ravenlcd/adc.h \
+ ../platform/avr-ravenlcd/beep.h \
+ ../platform/avr-ravenlcd/key.h \
+ ../platform/avr-ravenlcd/lcd.h \
+ ../platform/avr-ravenlcd/menu.h \
+ ../platform/avr-ravenlcd/main.h \
+ ../platform/avr-ravenlcd/sleep.h \
+ ../platform/avr-ravenlcd/temp.h \
+ ../platform/avr-ravenlcd/timer.h \
+ ../platform/avr-ravenlcd/uart.h
+
+
+FILE_PATTERNS =
+RECURSIVE = NO
+EXCLUDE =
+EXCLUDE_SYMLINKS = NO
+EXCLUDE_PATTERNS =
+EXAMPLE_PATH = . ../examples/rime
+EXAMPLE_PATTERNS =
+EXAMPLE_RECURSIVE = NO
+IMAGE_PATH = ./pics
+INPUT_FILTER =
+FILTER_PATTERNS =
+FILTER_SOURCE_FILES = NO
+#---------------------------------------------------------------------------
+# configuration options related to source browsing
+#---------------------------------------------------------------------------
+SOURCE_BROWSER = YES
+INLINE_SOURCES = NO
+STRIP_CODE_COMMENTS = NO
+REFERENCED_BY_RELATION = YES
+REFERENCES_RELATION = YES
+VERBATIM_HEADERS = YES
+#---------------------------------------------------------------------------
+# configuration options related to the alphabetical class index
+#---------------------------------------------------------------------------
+ALPHABETICAL_INDEX = YES
+COLS_IN_ALPHA_INDEX = 5
+IGNORE_PREFIX =
+#---------------------------------------------------------------------------
+# configuration options related to the HTML output
+#---------------------------------------------------------------------------
+GENERATE_HTML = YES
+HTML_OUTPUT = html
+HTML_FILE_EXTENSION = .html
+HTML_HEADER =
+HTML_FOOTER =
+HTML_STYLESHEET =
+HTML_ALIGN_MEMBERS = YES
+GENERATE_HTMLHELP = YES
+CHM_FILE =
+HHC_LOCATION =
+GENERATE_CHI = YES
+BINARY_TOC = YES
+TOC_EXPAND = YES
+DISABLE_INDEX = NO
+ENUM_VALUES_PER_LINE = 4
+GENERATE_TREEVIEW = YES
+TREEVIEW_WIDTH = 250
+#---------------------------------------------------------------------------
+# configuration options related to the LaTeX output
+#---------------------------------------------------------------------------
+GENERATE_LATEX = YES
+LATEX_OUTPUT = latex
+LATEX_CMD_NAME = latex
+MAKEINDEX_CMD_NAME = makeindex
+COMPACT_LATEX = YES
+PAPER_TYPE = a4wide
+EXTRA_PACKAGES =
+LATEX_HEADER =
+PDF_HYPERLINKS = YES
+USE_PDFLATEX = YES
+LATEX_BATCHMODE = NO
+LATEX_HIDE_INDICES = NO
+#---------------------------------------------------------------------------
+# configuration options related to the RTF output
+#---------------------------------------------------------------------------
+GENERATE_RTF = NO
+RTF_OUTPUT = rtf
+COMPACT_RTF = NO
+RTF_HYPERLINKS = NO
+RTF_STYLESHEET_FILE =
+RTF_EXTENSIONS_FILE =
+#---------------------------------------------------------------------------
+# configuration options related to the man page output
+#---------------------------------------------------------------------------
+GENERATE_MAN = NO
+MAN_OUTPUT = man
+MAN_EXTENSION = .3
+MAN_LINKS = NO
+#---------------------------------------------------------------------------
+# configuration options related to the XML output
+#---------------------------------------------------------------------------
+GENERATE_XML = NO
+XML_OUTPUT = xml
+XML_SCHEMA =
+XML_DTD =
+XML_PROGRAMLISTING = YES
+#---------------------------------------------------------------------------
+# configuration options for the AutoGen Definitions output
+#---------------------------------------------------------------------------
+GENERATE_AUTOGEN_DEF = NO
+#---------------------------------------------------------------------------
+# configuration options related to the Perl module output
+#---------------------------------------------------------------------------
+GENERATE_PERLMOD = NO
+PERLMOD_LATEX = NO
+PERLMOD_PRETTY = YES
+PERLMOD_MAKEVAR_PREFIX =
+#---------------------------------------------------------------------------
+# Configuration options related to the preprocessor
+#---------------------------------------------------------------------------
+ENABLE_PREPROCESSING = YES
+MACRO_EXPANSION = NO
+EXPAND_ONLY_PREDEF = NO
+SEARCH_INCLUDES = YES
+INCLUDE_PATH =
+INCLUDE_FILE_PATTERNS =
+PREDEFINED = CC_FUNCTION_POINTER_ARGS \
+ UIP_UDP \
+ UIP_TCP \
+ UIP_CONF_IPV6 \
+ UIP_CONF_IPV6_REASSEMBLY \
+ UIP_CONF_IPV6_CHECKS \
+ UIP_CONF_IPV6_QUEUE_PKT \
+ SICSLOWPAN_CONF_FRAG \
+ WITH_LOADER_ARCH \
+ DOXYGEN
+EXPAND_AS_DEFINED =
+SKIP_FUNCTION_MACROS = YES
+#---------------------------------------------------------------------------
+# Configuration::additions related to external references
+#---------------------------------------------------------------------------
+TAGFILES =
+GENERATE_TAGFILE =
+ALLEXTERNALS = NO
+EXTERNAL_GROUPS = YES
+PERL_PATH = /usr/bin/perl
+#---------------------------------------------------------------------------
+# Configuration options related to the dot tool
+#---------------------------------------------------------------------------
+CLASS_DIAGRAMS = NO
+HIDE_UNDOC_RELATIONS = YES
+HAVE_DOT = YES
+CLASS_GRAPH = NO
+COLLABORATION_GRAPH = NO
+GROUP_GRAPHS = NO
+UML_LOOK = NO
+TEMPLATE_RELATIONS = NO
+INCLUDE_GRAPH = NO
+INCLUDED_BY_GRAPH = NO
+CALL_GRAPH = NO
+GRAPHICAL_HIERARCHY = NO
+DIRECTORY_GRAPH = NO
+DOT_IMAGE_FORMAT = png
+DOT_PATH =
+DOTFILE_DIRS =
+MAX_DOT_GRAPH_WIDTH = 1024
+MAX_DOT_GRAPH_HEIGHT = 1024
+MAX_DOT_GRAPH_DEPTH = 0
+DOT_TRANSPARENT = NO
+DOT_MULTI_TARGETS = NO
+GENERATE_LEGEND = YES
+DOT_CLEANUP = YES
+#---------------------------------------------------------------------------
+# Configuration::additions related to the search engine
+#---------------------------------------------------------------------------
+SEARCHENGINE = NO
diff --git a/doc/pics/caution.gif b/doc/pics/caution.gif
new file mode 100644
index 000000000..c58de8e86
Binary files /dev/null and b/doc/pics/caution.gif differ
diff --git a/doc/pics/contiki_menu_3290.jpg b/doc/pics/contiki_menu_3290.jpg
new file mode 100644
index 000000000..a5b2699f5
Binary files /dev/null and b/doc/pics/contiki_menu_3290.jpg differ
diff --git a/doc/pics/dataframe.png b/doc/pics/dataframe.png
new file mode 100644
index 000000000..94635e730
Binary files /dev/null and b/doc/pics/dataframe.png differ
diff --git a/doc/pics/fcf.jpg b/doc/pics/fcf.jpg
new file mode 100644
index 000000000..7e6ee985c
Binary files /dev/null and b/doc/pics/fcf.jpg differ
diff --git a/doc/pics/layers.png b/doc/pics/layers.png
new file mode 100644
index 000000000..f603d7a9b
Binary files /dev/null and b/doc/pics/layers.png differ
diff --git a/doc/pics/raven.jpg b/doc/pics/raven.jpg
new file mode 100644
index 000000000..75408a295
Binary files /dev/null and b/doc/pics/raven.jpg differ
diff --git a/doc/pics/raven.png b/doc/pics/raven.png
new file mode 100644
index 000000000..8064f8f46
Binary files /dev/null and b/doc/pics/raven.png differ
diff --git a/doc/pics/raven_detail.jpg b/doc/pics/raven_detail.jpg
new file mode 100644
index 000000000..0639c8e2c
Binary files /dev/null and b/doc/pics/raven_detail.jpg differ
diff --git a/doc/pics/ravenusb_large.jpg b/doc/pics/ravenusb_large.jpg
new file mode 100644
index 000000000..687c5ca15
Binary files /dev/null and b/doc/pics/ravenusb_large.jpg differ
diff --git a/doc/pics/ravenusb_medium.jpg b/doc/pics/ravenusb_medium.jpg
new file mode 100644
index 000000000..879dd7bfb
Binary files /dev/null and b/doc/pics/ravenusb_medium.jpg differ
diff --git a/doc/pics/ravenusb_network_connections.png b/doc/pics/ravenusb_network_connections.png
new file mode 100644
index 000000000..9f35554b9
Binary files /dev/null and b/doc/pics/ravenusb_network_connections.png differ
diff --git a/doc/pics/ravenusb_shortpins.jpg b/doc/pics/ravenusb_shortpins.jpg
new file mode 100644
index 000000000..67cee1f3c
Binary files /dev/null and b/doc/pics/ravenusb_shortpins.jpg differ
diff --git a/doc/pics/tutorial-raven-basic.jpg b/doc/pics/tutorial-raven-basic.jpg
new file mode 100755
index 000000000..f309dc720
Binary files /dev/null and b/doc/pics/tutorial-raven-basic.jpg differ
diff --git a/doc/pics/tutorial-raven-connections.jpg b/doc/pics/tutorial-raven-connections.jpg
new file mode 100755
index 000000000..94e298457
Binary files /dev/null and b/doc/pics/tutorial-raven-connections.jpg differ
diff --git a/doc/pics/tutorial-raven-jtag.jpg b/doc/pics/tutorial-raven-jtag.jpg
new file mode 100755
index 000000000..9d8cf6606
Binary files /dev/null and b/doc/pics/tutorial-raven-jtag.jpg differ
diff --git a/doc/pics/wireshark_color.png b/doc/pics/wireshark_color.png
new file mode 100644
index 000000000..52e0573a6
Binary files /dev/null and b/doc/pics/wireshark_color.png differ
diff --git a/doc/pics/wireshark_explained.png b/doc/pics/wireshark_explained.png
new file mode 100644
index 000000000..994baa77f
Binary files /dev/null and b/doc/pics/wireshark_explained.png differ
diff --git a/doc/ravenusbstick-docs.txt b/doc/ravenusbstick-docs.txt
new file mode 100644
index 000000000..e6b0de295
--- /dev/null
+++ b/doc/ravenusbstick-docs.txt
@@ -0,0 +1,265 @@
+/**
+
+\ingroup platform
+\defgroup usbstick RZRAVEN USB Stick (Jackdaw)
+
+\image html ravenusb_medium.jpg
+
+\section introduction Introduction
+
+This document explains the Raven USB Stick when operated on an IPv6 network. The
+USB Stick allows the computer, and outside networks, to communicate with low-cost
+embedded nodes. The "RZUSBSTICK" hardware, when loaded with the Contiki "ravenusbstick"
+example, forms the complete device described here. This combination of hardware and
+firmware is henceforth referred to as the "Jackdaw".
+
+\section capabilities Capabilities
+
+The Jackdaw supports multiple operating systems, customizing itself to OSes as
+needed. The overall idea for a network interface is to emulate an ethernet interface.
+Data is passed to the Jackdaw as if it was an ethernet port, however the Jackdaw
+passes this data over the air to end nodes.
+
+The Jackdaw can function as an 802.15.4 sniffer, and can sniff the raw 802.15.4 frame
+at the same time it is providing network functionality.
+
+In addition to the network interface, the Jackdaw can enumerate a USB serial port
+at the same time. This serial port can be used to pass debug messages, or to change
+operating parameters as needed. Note that WindowsXP SP2 or lower does not support this,
+the serial port will only be enumerated on Linux or WindowsXP SP3. Windows Vista should
+work with minor modification to the INF files.
+
+Finally the Jackdaw has the ability to show up as a USB mass storage drive. This is used
+to load drivers onto a PC without needing any other hardware, such as a driver disk. The
+amount of storage is very limited at around 59 Kbyte, sufficent for a few driver files.
+
+\section pluging Plugging It In
+
+When plugging the Jackdaw in, several things occur in sequence:
+
+ - Attempt to appear as a network interface with a serial port. If this fails (drivers don't load),
+ it then unmounts itself and waits a few seconds.
+ - Attempt to appear as just a network interface. If this fails as well, it again unmounts itself.
+ - Finally mounts as a mass storage device
+
+If the device has never before been plugged in, you will end up with an unformatted USB mass storage device.
+You can format this as you would a normal drive - on Windows right click and select "format". If the device
+has previously been formatted, or was programmed from a preformatted flash image, you will end up with a new drive
+which contains the drivers needed to have the device work on Windows.
+
+\subsection loaddrivers Loading Drivers
+
+Windows should prompt you for drivers for the device. Simply point it to location "C:\contikisrc\cpu\avr\dev\usb\INF" Where
+the directory "c:\contikisrc" is where the Contiki source code is on your computer.
+
+If you have a Jackdaw with a formatted mass storage section, with the drivers on it, you can simply wait until that drive shows
+up. Then point the Windows "new hardware found" Wizard to this new drive, which should have three .INF files in it.
+
+\section setup Setting Up
+
+\subsection Linux
+
+The Jackdaw has excellent support in Linux. The first thing to check is that it was detected. Plug it in, and check the output of 'dmesg'.
+You should see something like:
+
+\verbatim
+usb 5-2: new full speed USB device using uhci_hcd and address 29
+usb 5-2: configuration #1 chosen from 1 choice
+rndis_host 5-2:1.0: dev can't take 1338 byte packets (max 1338), adjusting MTU to 1280
+usb0: register 'rndis_host' at usb-0000:00:1d.3-2, RNDIS device, 02:12:13:14:15:16
+cdc_acm 5-2:1.2: ttyACM0: USB ACM device
+usb 5-2: New USB device found, idVendor=03eb, idProduct=2021
+usb 5-2: New USB device strings: Mfr=1, Product=2, SerialNumber=3
+usb 5-2: Product: RZRAVEN USB DEMO
+usb 5-2: Manufacturer: Atmel
+usb 5-2: SerialNumber: 1.0.0
+\endverbatim
+
+You can then check that it was assigned a link-local address. Run 'ifconfig' and observe the output, looking for the line about usb0:
+
+\verbatim
+usb0 Link encap:Ethernet HWaddr 02:12:13:14:15:16
+ inet6 addr: fe80::12:13ff:fe14:1516/64 Scope:Link
+ UP BROADCAST RUNNING MULTICAST MTU:1280 Metric:1
+ RX packets:131 errors:131 dropped:0 overruns:0 frame:131
+ TX packets:169 errors:0 dropped:0 overruns:0 carrier:0
+ collisions:0 txqueuelen:1000
+ RX bytes:30429 (29.7 KiB) TX bytes:28290 (27.6 KiB)
+\endverbatim
+
+The address that starts with "fe80" is the link-local address. If this wasn't automatically assigned, you can assign one as such:
+
+\verbatim
+ip -6 address add fe80::12:13ff:fe14:1516/64 scope link dev usb0
+\endverbatim
+
+If you wish to see how to generate router advertisements in Linux see the \ref tutorialraven .
+
+You will also notice the line mentioning ttyACM0, that is the 'debug' interface. You can connect any terminal emulator to it such
+as gtkterm. Simply set the port to "dev/ttyACM0". See the \ref DebugPort section for more information.
+
+\subsection Windows XP
+
+Once the drivers are installed, you should see the device show up in "Network Connections". You should see something like this:
+
+\image html ravenusb_network_connections.png
+
+Right-click on this, and hit "Properties".
+
+Click the "Install" button. Select "Protocol" as the type of network component, and hit "Add". The manufacture is "Microsoft" and the network protocol
+is "TCP/IP version 6". Hit OK.
+
+Then in the window "This connection uses the following items:", uncheck everything EXCEPT "Microsoft TCP/IP version 6". Hit OK and get out
+of that dialog. We can no longer do anything graphically, as WindowsXP doesn't have support for IPv6 through anything but
+the command-line interface.
+
+If you wish to see how to configure Windows to generate router advertisements, see the \ref tutorialraven.
+
+You may additionally see a debug port enumerate. This will show up as a serial port, which can be checked by going to the Device Manager and seeing if an "Atmel Raven USB Debug Port" shows up under "Ports (COM & LPT)". If so, you can connect a terminal emulator such to this port. A simple one that is recommended is "Br@y++ Terminal".
+
+\section DebugPort Debug Port Useage
+
+The Jackdaw enumerates a CDC serial port. This is typically used by USB<-->Serial converters, however in this case it simply emulates a serial port. Since there is no physical serial port, the setting of the baud rate does not matter.
+
+The Jackdaw sends both a LF and CR after every line, so you should disable any terminal emulator options that add extra CR's.
+
+With the port connected, strike the 'h' key to bring up the main menu. It should look something like this:
+
+\verbatim
+********** Jackdaw Menu ******************
+* *
+* Main Menu: *
+* h,? Print this menu *
+* m Print current mode *
+* s Set to sniffer mode *
+* n Set to network mode *
+* 6 Toggle 6lowpan *
+* r Toggle raw mode *
+* u Switch to mass-storage*
+* *
+* Make selection at any time by pressing *
+* your choice on keyboard. *
+******************************************
+\endverbatim
+
+Network mode
+Network mode is the default mode. In this mode addresses inside IP packets will be adjusted to reflect the network they
+are on. For instance inside a Router Advertisement message, the link-layer address on the ethernet side will be 6 bytes.
+On the 802.15.4 side it will be 8 bytes. This allows both systems to accept this IP packet as valid.
+
+Sniffer mode
+In sniffer mode, the IP packets themselves are left unchanged. This means that you won't be able to form a network, as
+the computer's IP stack will not understand why the link-layer addresses are 8 bytes. It is only expecting 6 bytes, as
+it is assuming an ethernet layer.
+
+6lowpan enabled/disabled
+Enabling or Disabling 6lowpan changes if the USBStick will decode 6lowpan messages into valid IPv6 messages and send
+them over the ethernet interface. Enabled by default.
+
+raw mode enabled/disabled
+If raw mode is enabled, every 802.15.4 frame that comes in will be sent to the computer raw. It will be sent as an
+ethernet frame, with the ETHTYPE set to 0x809A. Note this is not an IEEE standard, so to use this device as a
+802.15.4 sniffer needs some extra work, described in the \ref Wireshark section. Also for every 802.15.4 packet
+that is sent out over the RF port is sent out over ethernet as well.
+
+Mass Storage
+This will switch the device to \ref MassStorageMode
+
+\section Wireshark Using Wireshark
+
+When using the Jackdow with 6lowpan, you can
+simply operate Wireshark as normal. Select the interface as the USB Stick, on Linux this will likely be "usb0", and on Windows
+it will just call the interface "Atmel". You will see pure IPv6 packets, with traffic such as ICMPv6, TCP, or UDP.
+
+If you have raw mode enabled (it is by default), you will also see 802.15.4 information. You may see many 802.15.4 packets
+for one IP packet due to fragmentation. You can also put either 'ipv6' or 'wpan' in the filter box at the top of Wireshark
+to filter out everything but IPv6 or 802.15.4 traffic. Also, for received frames the 802.15.4 data will come BEFORE the IPv6
+packet. For transmitted frames, the 802.15.4 data will come AFTER the IPv6 packet. You can see that in the following, where
+messages from the same source are boxed:
+
+\image html wireshark_explained.png
+
+Note that Wireshark does have support for 802.15.4, but you need version 1.1.2 or later. See \ref annex_wireshark for download instructions.
+
+\note 802.15.4 packets transmitted from the Jackdaw will come up as having "Bad FCS". This is because the FCS is added automatically by the
+radio chip, and is not known to the microcontroller on the Jackdaw. Hence some padding bytes are added to allow you to see where the FCS would go.
+The 802.15.4 packet was generated from the IPv6 packet directly. The only way to actually sniff the real over the air data is to use a second Jackdaw
+as just a sniffer.
+
+Also be sure to use the features of wireshark to make life easier! You can colorize packets based on various things, including
+destination and source addresses. The following example colourizes packets destined for different addresses differently, quickly
+letting you see message flow. You could furthur colorize based on the message type, to allow you to see 802.15.4 packets and
+IPv6 packets in different colors. The following example has the 'source_eth' and 'dest_eth' rules at the top of the order, you
+may want to put them lower so you still see other colourizations such as bad TCP, checksum errors, etc.
+
+\image html wireshark_color.png
+
+\section MassStorageMode Mass Storage Mode
+
+The mass storage mode provides a small amount of storage by using part of the internal flash of the AVR. This will get
+erased every time the AVR is reprogrammed.
+
+The Jackdaw can end in mass storage mode in three ways. It can fail all other modes and end up there, it can be forced
+there through the debug port, or it can be forced there through a hardware switch. see the \ref hardwareforce section.
+
+Once in mass storage mode, you will have to format the device. This can be done by right-clicking on it and hitting
+format, or if you attempt to open the drive Windows will ask you to format it. Once it is formatted you can store a few INF
+files on it! If you read the FLASH back from the AVR, you now have an image with a preformatted drive with those INF files
+on it already!
+
+\section hardwareforce Forcing Jackdaw to certain Modes
+
+The Jackdaw has several operating modes, and very limited inputs to switch between them. Hence it auto-switches to what
+it feels is the most useful mode, but it's not always right. Hence an override is provided to allow you to use it in other
+modes.
+
+This override is to short two pads on the back of the Jackdaw. Note that only a somewhat conductive short is needed, a moist finger should be plenty of conductivity. The pads to short are visible below the"A" in the "ATMEL" logo. There will be three pads - only short the two closest to the "ATMEL" logo. Or as below:
+
+\image html ravenusb_shortpins.jpg
+
+Short them when plugging in the Jackdaw, and it enters "reverse logic mode". If it doesn't, you either might have
+not enough conductivity, or you might be shorting to the third pad too much.
+
+In "reverse logic mode" it will stay in the main mode (Network interface + Serial debug port) if it doesn't see the
+driver loading on the host computer. This mode is needed for Windows Vista, where you have to keep the hardware plugged in while
+installing drivers.
+
+If the driver DOES load OK, it will remount itself as a mass storage device. The idea is that you can hold the Jackdaw a specific
+way when plugging in and it will mount as mass storage. Note that it will FIRST mount as a network interface for a few seconds
+before switching.
+
+One problem with this is Windows XP SP2: it will never exit the first (network + debug) mode, and you don't have a debug
+port to switch to mass storage mode. You can either upgrade to SP3, or uncomment this line in platforms\ravenusbstick\contiki-raven-default-init-lowlevel.c:
+
+\code
+#define WINXPSP2
+\endcode
+
+\section Address Translation
+
+Addresses on the 802.15.4 network are 8 bytes long, and addresses on an ethernet network are 6 bytes long. This provides some problems for
+bridging the two networks. This should be done by routing the IP packets between the ethernet and 802.15.4 network, but the current
+code does not have support for routing.
+
+As a temporary solution, addresses are "translated" when passing through the Jackdaw. This generates valid ethernet addresses from the
+802.15.4 addresses, and valid 802.15.4 addresses from ethernet addresses. Note this also includes translating addresses which are
+inside IP packets. Certain messages, such as various neighbor discovery messages, include a link-layer address. An IP stack which
+is expecting an ethernet-sized address will get confused by the different size, and vis-versa.
+
+Details of the translation can be found in the \ref sicslowinterop documentation. It is important to remember this is a temporary solution
+until proper routing is implemented.
+
+\section Annex
+
+\subsection annex_wireshark Wireshark download
+
+\li Check the latest stable release at http://www.wireshark.org/ - it may already be revision 1.1.2 or later.
+\li You can apply a patch to Wireshark sources earlier than 1.1.2 and rebuild it yourself, see https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=2938
+\li You can download the latest sources or prebuild binary from http://www.wireshark.org/download/automated/ - be sure to get SVN revision 26352 or later. For win32 there are three types of binaries, the "normal" installer will have a name like "wireshark-win32-1.1.2-SVN-26354.exe".
+\li You can download a prebuilt version of Wireshark 1.0.3 at http://www.newae.com/download/wireshark-setup-1.0.3-jackdaw.exe
+
+
+\note
+For some reason the author list is crazy, i'm not sure how to stop this! It should follow this text...
+
+*/
diff --git a/doc/sicslowmac-doc.txt b/doc/sicslowmac-doc.txt
new file mode 100644
index 000000000..4d788f82e
--- /dev/null
+++ b/doc/sicslowmac-doc.txt
@@ -0,0 +1,127 @@
+/**
+\addtogroup rf230mac
+@{
+*/
+
+/**
+ * \defgroup macdoc SICSLoWMAC Implementation
+ * @{
+
+ \section macintro 1. Introduction
+
+The phase1 MAC implemented to support the IPv6/6LoWPAN stack within the Contiki
+project is a light weight yet adequate beginning. This phase supports point to
+point data connectivity between a router device and an end device. The router is
+the RZ USB stick from the ATAVRRZRAVEN kit. The end node is the AVR
+Raven from the ATAVRRZRAVEN kit. The picture below shows the complete ATAVRRZRAVEN kit.
+
+ \image html raven.png
+
+The next phases will implement a commissioning concept including scan, and
+beacon generation. These kinds of primitives will allow dynamic network
+formation. Additionally, routing and low power/sleep will be implemented in
+following phases.
+
+ \section macprereqs 2. Prerequisites
+
+See the \ref tutorialraven for required systems setup configuration.
+
+ \section macoverview 3. MAC Overview
+
+This MAC follows the recommendations of RFC4944 with respect to data frames and
+acknowledgements (i.e. all data frames are acknowledged). At the time of this
+writing (phase 1) beacons (frames) and association events are not implemented.
+Additionally, data frames always carry both source and destination addresses.
+PANID compression (intra-pan) is not used so both source and destination PANID's
+are present in the frame.
+
+The SICSLoWMAC supports the IEEE 802.15.4 Data Request primitive and the Data
+Request Indication primitive. The data request primitive constructs a proper
+802.15.4 frame for transmission over the air while the data indication parses a
+received frame for processing in higher layers (6LoWPAN). The source code for
+the mac can be found in the sicslowmac.[c,h] files.
+
+To assemble a frame a MAC header is constructed with certain presumptions:
+-# Long source and destination addresses are used.
+-# A hard coded PANID is used.
+-# A hard coded channel is used.
+-# Acknowledgements are used.
+-# Up to 3 auto retry attempts are used.
+
+These and other variables are defined in mac.h.
+
+Given this data and the output of the 6LoWPAN function, the MAC can construct
+the data frame and the Frame Control Field for transmission.
+
+An IEEE 802.15.4 MAC data frame consists of the fields shown below:
+
+ \image html dataframe.png
+
+The Frame Control Field (FCF) consist of the fields shown below:
+
+ \image html fcf.jpg
+
+ \note The MAC address of each node is expected to be stored in EEPROM and
+retrieved during the initialization process immediately after power on.
+
+ \section macrelationship 4. 6LoWPAN, MAC and Radio Relationship
+
+The output function of the 6LoWPAN layer (sicslowpan.c) is the input function
+to the MAC (sicslowmac.c). The output function of the MAC is the input function
+of the radio (radio.c). When the radio receives a frame over the air it processes
+it in its TRX_END event function. If the frame passes address and CRC filtering
+it is queued in the MAC event queue. Subsequently, when the MAC task is processed,
+the received frame is parsed and handed off to the 6LoWPAN layer via its input
+function. These relationships are depicted below:
+
+ \image html layers.png
+
+ \section maccode 5. Source Code Location
+
+The source code for the MAC, Radio and support functions is located in the path:
+- \\cpu\\avr\\radio
+ - \\rf230
+ - \\mac
+ - \\ieee-manager
+
+-# The \\rf230 folder contains the low level HAL drivers to access and control
+the radio as well as the low level frame formatting and parsing functions.
+-# The \\mac folder contains the MAC layer code, the generic MAC initialization
+functions and the defines mentioned in section 3.
+-# The \\ieee-manager folder contains the access functions for various PIB
+variables and radio functions such as channel setting.
+
+The source code for the Raven platforms is located in the path:
+- \\platform
+ - \\avr-raven
+ - \\avr-ravenlcd
+ - \\avr-ravenusb
+-# The \\avr-raven folder contains the source code to initialize and start the
+raven board.
+-# The \\avr-ravenlcd folder contains the complete source code to initialize
+and start the ATmega3209P on raven board in a user interface capacity. See the
+Doxygen generated documentation for more information.
+-# The \\avr-ravenusb folder contains the source code to initialize and start
+the raven USB stick as a network interface on either Linux or Windows platforms.
+Note that appropriate drivers are located in the path:
+ - \\cpu\\avr\\dev\\usb\\INF
+
+ \section macavrstudio 6. AVR Studio Project Location
+
+There are two projects that utilize the Logo Certified IPv6 and 6LoWPAN layers
+contributed to the Contiki project by Cisco. These are ping-ipv6and webserver-ipv6
+applications. They are located in the following paths:
+- \\examples\\webserver-ipv6
+and
+- \\examples\\ping-ipv6
+
+The ping-ipv6 application will allow the USB stick to ping the Raven board while
+the webserver-ipv6 application will allow the raven board to serve a web page.
+When the ravenlcd-3290 application is programmed into the ATmega3290P on the
+Raven board, the Raven board can ping the USB stick and it can periodically update
+the temperature in the appropriate web page when served.
+
+
+*/
+/** @} */
+/** @} */
\ No newline at end of file
diff --git a/doc/sicslowpan-doc.txt b/doc/sicslowpan-doc.txt
new file mode 100644
index 000000000..b15a704e3
--- /dev/null
+++ b/doc/sicslowpan-doc.txt
@@ -0,0 +1,210 @@
+/**
+\addtogroup uip
+@{
+*/
+
+/**
+ * \defgroup sicslowpan 6LoWPAN implementation
+ * @{
+
+6lowpan is a Working Group in IETF which defines the use of IPv6 on
+IEEE 802.15.4 links.
+
+Our implementation is based on RFC4944 Transmission of IPv6
+Packets over IEEE 802.15.4 Networks, draft-hui-6lowpan-interop-00
+Interoperability Test for 6LoWPAN, and draft-hui-6lowpan-hc-01
+Compression format for IPv6 datagrams in 6lowpan Networks.
+
+