= Berkeley IP Information = Welcome to the project page for blip, the Berkeley IP implementation for low-power networks. We have developed an implementation of IPv6 for TinyOS. It uses 6lowpan/HC-01 header compression, and includes IPv6 neighbor discovery, default route selection, point-to-point routing, and network programming support. It has been tested on micaz, telosb, and epic platforms. Standard tools like `ping6`, `tracert6`, and `nc6` can be used to interact with and troubleshoot a network of blip devices, and pc-side code is written using the standard BSD sockets API (or any other kernel-provided networking interface). A sensor network can also be easily mapped into the public subnet to provide global connectivity. The current codebase has been tested for stability and performance in several deployments with sizes reaching up to 75 nodes, including our testbed (smote), the ACme project, and in various apartments as part of energy audits. Although the routing is designed primarily with static installations in mind, we are reasonably confident the stack's performance and stability. == Getting Started == The first step is to get the code. As of TinyOS 2.1.1, blip is included as a core part of TinyOS. Follow the instructions on [http://docs.tinyos.net] to install TinyOS and your platform toolchain. Once finished, the [http://docs.tinyos.net/index.php/BLIP_Tutorial blip tutorial] explains how to compile and install a blip network. == Release Notes == * release-tinyos-2.1.1 * core integration * system-wire Ieee154 messaging abstraction * blip+AM/dual stack option is available * serial stack bugfixes * routing * DAG numbering/rebuilding * traffic generation * "experimental" multi-driver support * explicit LPL support * "experimental" tcp support * ip extension header architecture * routing driver now compiles/cross-compiles using gnu autotools * statistics interfaces fleshed out * platform support: telosb epic shimmer iris [micaz] * [source:code/b6lowpan/tags/release-3-20-2009] * name change propagated through code: release is stored in `tinyos-2.x-contrib/berkeley/blip` * no longer need separate radvd (advertisement daemon is included in the routing driver) * driver runs a telnet server for route inspection and maintenance * UDP now accessed through a generic component, with passive open handled, provides bind() for active open * Prototype TCP stack (undocumented, several known issues) * NWProg (point-to-point network programming using pieces of Deluge) has been throughly debugged * IP address structures are now much prettier (see ip.h), same as in linux * UDPShell is much improved; new BinaryShell exports similar functionality but saves 4k of code size by removing ascii processing. * [source:code/b6lowpan/tags/release-11-13-2008] * completely revised routing algorithm for improved performance and convergence. * many stability improvements and bug fixes * support for compiling the router for MIPS platforms * prototype RPC protocol and stub generator * [source:code/b6lowpan/tags/release-8-25-2008] * Single-phase UDP and IP interfaces * Elimination of buffer pool * Fragment forwarding without hop-by-hop reassembly * Improved header structure to allow easy insertion/deletion * Network programming support using TFTP-like protocol along with parts of deluge (will be come TFTP in the future). * [source:code/b6lowpan/tags/release-7-15-2008] * initial release == Docs == The docs on this wiki are mostly depreciated, and have been removed. The primary documentation is now maintained as the [http://docs.tinyos.net/index.php/BLIP_Tutorial blip tutorial] * [wiki:blip/CrossCompiling] - how to cross compile the routing code == Mailing List == There is a public users list for b6lowpan users at [https://lists.eecs.berkeley.edu/sympa/info/blip-users]. Currently it is low volume; only release notifications, but you're welcome to use it for any related questions. == Links == * [http://www.ietf.org/rfc/rfc4944.txt RFC4944 - 6LoWPAN] * [http://tinyos.stanford.edu/ttx/2007/viewgraphs/standards-ip.pdf TinyOS meets IP (David Culler)] * [http://www.tinyos.net/tinyos-2.x/doc/txt/tep125.txt TEP125 - Tinyos Framing] == People == * [http://cs.berkeley.edu/~stevedh Stephen Dawson-Haggerty] * [http://cs.berkeley.edu/~arsalan Arsalan Tavakoli]