24
TinyOS Network Protocol Working Group (net2) Progress Report Omprakash Gnawali Speaking on behalf of the WG TTX5 2/22/2008

TinyOS Network Protocol Working Group (net2) Progress Report Omprakash Gnawali Speaking on behalf of the WG TTX5 2/22/2008

Embed Size (px)

Citation preview

Page 1: TinyOS Network Protocol Working Group (net2) Progress Report Omprakash Gnawali Speaking on behalf of the WG TTX5 2/22/2008

TinyOS Network Protocol Working Group (net2)

Progress Report

Omprakash GnawaliSpeaking on behalf of the WG

TTX52/22/2008

Page 2: TinyOS Network Protocol Working Group (net2) Progress Report Omprakash Gnawali Speaking on behalf of the WG TTX5 2/22/2008

net2 Charter

• Define the interfaces to basic network protocols in t2, such as collection and dissemination

• Produce reference implementations of those protocols

Page 3: TinyOS Network Protocol Working Group (net2) Progress Report Omprakash Gnawali Speaking on behalf of the WG TTX5 2/22/2008

net2 Protocols

Released

Beta

Alpha

Collection Dissemination IETF Other

CTP LQI

Drip

DIP

6lowpanTYMO

ZigBee

Deluge

Page 4: TinyOS Network Protocol Working Group (net2) Progress Report Omprakash Gnawali Speaking on behalf of the WG TTX5 2/22/2008

Collection Tree Protocol (tos/lib/net/ctp)

TEP 119, 123, 124

Page 5: TinyOS Network Protocol Working Group (net2) Progress Report Omprakash Gnawali Speaking on behalf of the WG TTX5 2/22/2008

MultihopLqi(tos/lib/net/lqi)

• Alternative collection layer (1.x port)

• Same interfaces as CTP (TEP 119)

• Only works on CC2420-based platforms– micaz, telosa, telosb, imote2

• Lightweight alternative– Smaller RAM (by ~ 1KB)– Smaller code footprint (by ~ 4.5 KB)– Not as efficient or robust as CTP

Page 6: TinyOS Network Protocol Working Group (net2) Progress Report Omprakash Gnawali Speaking on behalf of the WG TTX5 2/22/2008

CTP

Page 7: TinyOS Network Protocol Working Group (net2) Progress Report Omprakash Gnawali Speaking on behalf of the WG TTX5 2/22/2008

MultiHopLQI

Page 8: TinyOS Network Protocol Working Group (net2) Progress Report Omprakash Gnawali Speaking on behalf of the WG TTX5 2/22/2008

Link Quality Estimation

Unacked

PRR

LQI

Page 9: TinyOS Network Protocol Working Group (net2) Progress Report Omprakash Gnawali Speaking on behalf of the WG TTX5 2/22/2008

Four bit link estimation (tos/lib/net/4bitle)

WHITEPackets on this channel experience few errors

ACKA packet transmission on this link was acknowledged

PINKeep this link in the table

COMPAREIs this a useful link?

For details, see HotNets ’07 paper

Page 10: TinyOS Network Protocol Working Group (net2) Progress Report Omprakash Gnawali Speaking on behalf of the WG TTX5 2/22/2008

Using Collection

• Include LQI or CTP collectionC component

• “Send” interface to send pkts to the sinkcommand error_t send(msg, len)

• A sink receives the CTP pkts using the “Receive” interface

event message_t* receive(msg, payload, len)

Page 11: TinyOS Network Protocol Working Group (net2) Progress Report Omprakash Gnawali Speaking on behalf of the WG TTX5 2/22/2008

Dissemination

• Delivers a shared variable to every node in a network– Eventual consistency with high scalability and

efficiency

• Many uses– Reconfiguring a network– Injecting small queries– Substrate for more complex protocols (e.g., Deluge)

• TEP 118

Page 12: TinyOS Network Protocol Working Group (net2) Progress Report Omprakash Gnawali Speaking on behalf of the WG TTX5 2/22/2008

Drip Implementation(tos/lib/net/drip)

• Variables exchange separate metadata

• Simple implementation– Small code size– Cost scales O(n) with number of items

Page 13: TinyOS Network Protocol Working Group (net2) Progress Report Omprakash Gnawali Speaking on behalf of the WG TTX5 2/22/2008

DIP: Scalable Dissemination(tos/lib/net/dip)

• Scaling beyond a few items– Many configuration parameters in the system– Sometimes many variables change, sometimes only a

few– Want fast detection and dissemination when things

are new, but cheap maintenance with steady state

• Offers the same dissemination interface as Drip

Page 14: TinyOS Network Protocol Working Group (net2) Progress Report Omprakash Gnawali Speaking on behalf of the WG TTX5 2/22/2008

DIP Implementation

• Use Trickle to suppress and control transmit window

• Use hashes to detect differences and quickly search through version information

• Use version vectors to precisely identify differences

• Use bloom filters to optimize detection

Page 15: TinyOS Network Protocol Working Group (net2) Progress Report Omprakash Gnawali Speaking on behalf of the WG TTX5 2/22/2008

Using Dissemination

• Instantiate Drip or DIP DisseminatorC

components new DisseminatorC(TestMsg, 0xDE00),

• To propagate a variable throughout the networkcommand void DisseminationUpdate.change(newVal)

• To receives updates to a variableevent DisseminationValue.changed() { /* call DisseminationValue.get() and process */}

Must fit in a pkt Unique key

Page 16: TinyOS Network Protocol Working Group (net2) Progress Report Omprakash Gnawali Speaking on behalf of the WG TTX5 2/22/2008

Deluge (tos/lib/net/deluge)

• Re-programming motes over wireless

• Borrows a lot of code from tinyos-1.x.

• Uses Drip for dissemination

• PC-side tools

• Bulk dissemination, flash volume manager, and TOSBoot

• Supported on TelosB and MicaZ motes

Page 17: TinyOS Network Protocol Working Group (net2) Progress Report Omprakash Gnawali Speaking on behalf of the WG TTX5 2/22/2008

How to use Deluge?

• Deluge Basestation mote

– DELUGE_BASESTATION flag during compilation

• Motes

– Include “DelugeC” component

– tosboot image

• Python script to inject image through the base stationtos-deluge /dev/ttyUSB0 telosb -i 1 <filename>

Page 18: TinyOS Network Protocol Working Group (net2) Progress Report Omprakash Gnawali Speaking on behalf of the WG TTX5 2/22/2008

6lowpan(tos/lib/net/6lowpan)

Page 19: TinyOS Network Protocol Working Group (net2) Progress Report Omprakash Gnawali Speaking on behalf of the WG TTX5 2/22/2008

6lowpan Implementation• IPv6 over 802.15.4• 6lowpan stack for TinyOS 2.x• Implemented features:

– 6lowpan fragmentation and fragment reassembly

– IPv6/UDP– IPv6/ICMP echo– supports both compressed and uncompressed

IPv6 and UDP headers• Tested on MicaZ and TelosB

Page 20: TinyOS Network Protocol Working Group (net2) Progress Report Omprakash Gnawali Speaking on behalf of the WG TTX5 2/22/2008

Using 6lowpan

• Idioms from socket programming

• Receive

event void UDPClient.receive(addr, port, *buf, len )   {       /* process the contents of buf */   }

• Send

call UDPClient.sendTo(addr, port, *buf, len)

Page 21: TinyOS Network Protocol Working Group (net2) Progress Report Omprakash Gnawali Speaking on behalf of the WG TTX5 2/22/2008

ZigBee(tos/lib/net/zigbee)

• Set of high level protocols for low power devices• open-ZB IEEE 802.15.4/ZigBee protocol stack • IEEE 802.15.4 Data Link Layer

• Beacon-enabled • Support of Star and Cluster-Tree topologies

• ZigBee Network Layer• Cluster-tree• Address assignment• Tree-routing

• Tested on TelosB motes

Page 22: TinyOS Network Protocol Working Group (net2) Progress Report Omprakash Gnawali Speaking on behalf of the WG TTX5 2/22/2008

TYMO: DYMO on TinyOS(tos/lib/net/tymo)

• Dynamic MANET On-demand (DYMO) routing used for reactive unicast routing

• TYMO is a DYMO implementation in TinyOS

• TYMO different from DYMO– Unimplemented features: multiple interfaces, ..

– Compact header format

Page 23: TinyOS Network Protocol Working Group (net2) Progress Report Omprakash Gnawali Speaking on behalf of the WG TTX5 2/22/2008

Using TYMO

• Uses AM addresses• Include DymoNetworkC component

• AMSend interface for sending pktsCall AMSend.send(destination, *pkt, len)

• Receive interface for receiving pktsevent Receive.receive(msg, *payload, len)

Page 24: TinyOS Network Protocol Working Group (net2) Progress Report Omprakash Gnawali Speaking on behalf of the WG TTX5 2/22/2008

WG members

Jan Beutel (ETH), Andre Cunha (IPP), Rodrigo Fonseca (UCB), Omprakash Gnawali (USC), Matus Harvan (ETH), Jonathan Hui (Arch Rock), Kaisen Lin (UCSD), Kyle Jamieson (MIT), Sukun Kim, Philip Levis (Stanford), Geoffrey Mainland (Harvard), Joe Polastre, Arsalan Tavakoli (UCB), Romain Thouvenin (Amadeus), Gilman Tolle (Arch Rock), Martin Turon (Crossbow), Ning Xu, Kristin Wright