28
June 2008 WEI short course - L10 IP v6 1 Wireless Embedded InterNetworking Foundations of Ubiquitous Sensor Networks IPv6 Extensions for Low power embedded networks David E. Culler University of California, Berkeley

David E. Culler University of California, Berkeley

  • Upload
    odette

  • View
    25

  • Download
    0

Embed Size (px)

DESCRIPTION

Wireless Embedded InterNet working Foundations of Ubiquitous Sensor Networks IPv6 Extensions for Low power embedded networks. David E. Culler University of California, Berkeley. Deluge. Drip. Dip. GAF. SPIN. GDI. Redwoods. North Sea. Volcano. Golden Gate Bridge. Drain. Flush. - PowerPoint PPT Presentation

Citation preview

Page 1: David E. Culler University of California, Berkeley

June 2008 WEI short course - L10 IPv6 1

Wireless Embedded InterNetworking

Foundations of Ubiquitous Sensor Networks

IPv6 Extensions for Low power embedded networks

David E. CullerUniversity of California, Berkeley

Page 2: David E. Culler University of California, Berkeley

June 2008 WEI short course - L10 IPv6 2

Decade of Research w/o an ArchitectureWireless Sensor Networks

LinkLinkLinkLink

NetworkNetworkNetworkNetwork

TransportTransportTransportTransport

ApplicationApplicationApplicationApplication

2002 2003 2004 2005 2006 2007

SPIN

SPIN

SPIN

SPIN

1999 2000 2001 2008

Bro

ad

cast

Sto

rmB

road

cast

Sto

rmB

road

cast

Sto

rmB

road

cast

Sto

rm

Tin

yO

S 0

.6Tin

yO

S 0

.6Tin

yO

S 0

.6Tin

yO

S 0

.6

WooM

AC

WooM

AC

WooM

AC

WooM

AC

GA

FG

AF

GA

FG

AF

S-M

AC

S-M

AC

S-M

AC

S-M

AC

Alo

ha P

SA

loh

a P

SA

loh

a P

SA

loh

a P

S

PS

FQPS

FQPS

FQPS

FQ

GD

IG

DI

GD

IG

DI

CO

DA

CO

DA

CO

DA

CO

DA

Min

tRou

teM

intR

ou

teM

intR

ou

teM

intR

ou

te

T-M

AC

T-M

AC

T-M

AC

T-M

AC

RM

ST

RM

ST

RM

ST

RM

ST

B-M

AC

B-M

AC

B-M

AC

B-M

AC

Mu

ltih

op

LQI

Mu

ltih

op

LQI

Mu

ltih

op

LQI

Mu

ltih

op

LQI

Fusi

on

Fusi

on

Fusi

on

Fusi

on

Delu

ge

Delu

ge

Delu

ge

Delu

ge

FPS

FPS

FPS

FPS

Wis

eM

AC

Wis

eM

AC

Wis

eM

AC

Wis

eM

AC

SP

SPSP

SP

Dri

pD

rip

Dri

pD

rip

Dra

inD

rain

Dra

inD

rain

BV

RB

VR

BV

RB

VR

Red

wood

sR

ed

wood

sR

ed

wood

sR

ed

wood

s

Nort

h S

ea

Nort

h S

ea

Nort

h S

ea

Nort

h S

ea

SC

P-M

AC

SC

P-M

AC

SC

P-M

AC

SC

P-M

AC

PED

AM

AC

SPED

AM

AC

SPED

AM

AC

SPED

AM

AC

S

X-M

AC

X-M

AC

X-M

AC

X-M

AC

Volc

an

oV

olc

an

oV

olc

an

oV

olc

an

o

CTP

CTP

CTP

CTP

Flu

shFl

ush

Flu

shFl

ush

Gold

en

Gate

Bri

dg

eG

old

en

Gate

Bri

dg

eG

old

en

Gate

Bri

dg

eG

old

en

Gate

Bri

dg

e

S4

S4S4

S4

Dip

DipDip

Dip

Page 3: David E. Culler University of California, Berkeley

June 2008 WEI short course - L10 IPv6 3

Sensornet Concepts

• Cross-layer compression

• Cross-layer visibility

• Piggybacking

• Optimization for bidirectional links

• Trickle

• ...

All within an IP frameworkAll within an IP frameworkAll within an IP frameworkAll within an IP framework

Page 4: David E. Culler University of California, Berkeley

June 2008 WEI short course - L10 IPv6 4

PrefixPrefix IIDIID

ICMPv6ICMPv6ICMPv6ICMPv6

IPv6 IPv6 BaseBase

IPv6 IPv6 BaseBase

HbH HbH OptOpt

HbH HbH OptOpt RoutingRoutingRoutingRouting FragmeFragme

ntnt

FragmeFragmentnt Dst OptDst OptDst OptDst Opt

128 bits

And a decade of progress

• Large uninterpreted addresses

• Autoconfiguration and management

• Layer 2 bootstrapping and discovery

• Protocol options framework

Page 5: David E. Culler University of California, Berkeley

June 2008 WEI short course - L10 IPv6 5

IP Link ⇒ Broadcast DomainIP Link ⇒ Broadcast DomainIP Link ⇒ Broadcast DomainIP Link ⇒ Broadcast Domain

Structured DecompositionStructured DecompositionStructured DecompositionStructured Decomposition

Embedded IPv6 in Concept

IP Link ⇒ Always OnIP Link ⇒ Always OnIP Link ⇒ Always OnIP Link ⇒ Always OnRetain illusion even when always off

Retain strict modularitySome key cross-layer visibility

IPv6 can support a semi-broadcast link with few changes

IP Link ⇒ “Reliable”IP Link ⇒ “Reliable”IP Link ⇒ “Reliable”IP Link ⇒ “Reliable”Retain best-effort reliability over unreliable links

Page 6: David E. Culler University of California, Berkeley

June 2008 WEI short course - L10 IPv6 6

Solution by Layers

LinkLinkLinkLink•Sending frames between neighboring nodes

NetworkNetworkNetworkNetwork•Configuring large numbers of interfaces

•Efficient transmission of IPv6 datagrams

•Delivering datagrams over multiple hops

•Selecting bi-directional links and forming routes

TransportTransportTransportTransport•Delivering messages between app endpoints

Page 7: David E. Culler University of California, Berkeley

June 2008 WEI short course - L10 IPv6 7

LinkEnabling Communication Between Neighboring Nodes

Minimize idle listeningMinimize idle listeningMinimize idle listeningMinimize idle listening

•Sampled Listening•DARPA, Aloha-PS, B-MAC, X-MAC•Always-on illusion, transmission overhead

•Scheduled•S-MAC, T-MAC, PEDAMACS, TSMP, FPS•Low power when in sync, node join problem

•Hybrid•WiseMAC, SCP-MAC•Always-on and low power

•Abstractions•SP•Implement mechanisms, not policies

NetworkNetworkNetworkNetwork

AbstractionAbstractionAbstractionAbstraction

LinkLinkLinkLink

Page 8: David E. Culler University of California, Berkeley

June 2008 WEI short course - L10 IPv6 8

NetNetNetNet

Link Media MgmtEnabling Communication Between Neighboring Nodes

PhyPhyPhyPhy

LinkLinkLinkLink

Media Management ControlMedia Management ControlMedia Management ControlMedia Management Control

Remote MediaRemote MediaRemote MediaRemote Media Link StatsLink StatsLink StatsLink StatsNeighbor Table

Addr Period Phase Pending RSSI PRR

Local MediaLocal MediaLocal MediaLocal Media

Sample Period

Sample Phase

DatDataa

DatDataa AckAckAckAck

AbstractionAbstractionAbstractionAbstractionProvide the mechanisms

Upper layers define the policy

Page 9: David E. Culler University of California, Berkeley

June 2008 WEI short course - L10 IPv6 9

Link - reviewEnabling Communication Between Neighboring Nodes

OptimizationsOptimizationsPower – Channel Utilization – Average Latency – ThroughputPower – Channel Utilization – Average Latency – Throughput

OptimizationsOptimizationsPower – Channel Utilization – Average Latency – ThroughputPower – Channel Utilization – Average Latency – Throughput

StreamingStreaming SchedulingScheduling

Repairing 15.4 AcksRepairing 15.4 AcksFalse Positives – Security – PayloadFalse Positives – Security – Payload

Repairing 15.4 AcksRepairing 15.4 AcksFalse Positives – Security – PayloadFalse Positives – Security – Payload

15.4 HDR15.4 HDR15.4 HDR15.4 HDR PANPANPANPAN DSTDSTDSTDST SRCSRCSRCSRC SECSECSECSEC TimingTimingTimingTiming PayloadPayloadPayloadPayload 15.4 FTR15.4 FTR15.4 FTR15.4 FTR

Sampled ListeningSampled ListeningStateless – Low Latency – Always On Abstraction – RobustStateless – Low Latency – Always On Abstraction – Robust

Sampled ListeningSampled ListeningStateless – Low Latency – Always On Abstraction – RobustStateless – Low Latency – Always On Abstraction – Robust

Page 10: David E. Culler University of California, Berkeley

June 2008 WEI short course - L10 IPv6 10

AdaptationEfficient Transmission of IPv6 Datagrams

Problem: Small Link MTU, Large IPv6 Problem: Small Link MTU, Large IPv6 DatagramsDatagrams

Problem: Small Link MTU, Large IPv6 Problem: Small Link MTU, Large IPv6 DatagramsDatagrams

•Adaptation Layers•ATM, FireWire, BNEP•Datagram Segmentation, Subnetwork Forwarding

•Header Compression•Flow-based (IPHC, ROHC)•Stateless, shared context (STHD, HHC)

802.15.4 Link802.15.4 Link802.15.4 Link802.15.4 LinkIPv6 DatagramIPv6 Datagram(up to 1280 bytes)(up to 1280 bytes)

IPv6 DatagramIPv6 Datagram(up to 1280 bytes)(up to 1280 bytes) 127 Byte MTU

250 kbps

Page 11: David E. Culler University of California, Berkeley

June 2008 WEI short course - L10 IPv6 11

AutoconfigurationConfiguring Large Numbers of Interfaces

Cur Hop Limit

Managed Addr Config

Other Config

Router Lifetime

Reachable Time

Prefix Length

Autonomous Config

Valid Lifetime

Preferred Lifetime

Prefix

ICMPv6 HdrICMPv6 HdrICMPv6 HdrICMPv6 Hdr Router AdvRouter AdvRouter AdvRouter Adv Prefix InfoPrefix InfoPrefix InfoPrefix Info

RFC 4861 – Neighbor DiscoveryRFC 4861 – Neighbor DiscoveryRFC 4862 – Stateless Addr RFC 4862 – Stateless Addr AutoconfAutoconfRFC 3315 – DHCPv6RFC 3315 – DHCPv6

Existing Options New Options

Network ID

Sequence Number

Router Hops

Flags

MHop MHop InfoInfo

MHop MHop InfoInfo

Page 12: David E. Culler University of California, Berkeley

June 2008 WEI short course - L10 IPv6 12

AutoconfigurationConfiguring Large Numbers of Interfaces

StatelessStatelessRFC 4861 + 4862RFC 4861 + 4862

StatelessStatelessRFC 4861 + 4862RFC 4861 + 4862

DHCPv6DHCPv6RFC 3315RFC 3315DHCPv6DHCPv6RFC 3315RFC 3315

L2e 00-17-3B-00-39-12-58-28

L2s 0x0001

L3 2001:abcd::1

L2e 00-17-3B-00-57-17-58-39

L2s 0x0023

L3

L2e 00-17-3B-00-79-49-66-23

L2s 0x0092

L3

L2e 00-17-3B-00-57-17-58-39

L2s

L3

L2e 00-17-3B-00-79-49-66-23

L2s

L3

2001:abcd::230x0023

L2e 00-17-3B-00-39-12-58-28

L2s 0x0001

L3 2001:abcd::1

RequestRequestRequestRequest

ResponsResponsee

ResponsResponsee

RequestRequestRequestRequest

ResponsResponsee

ResponsResponsee

2001:abcd::920x0092

2001:abcd::92

2001:abcd::23

Page 13: David E. Culler University of California, Berkeley

June 2008 WEI short course - L10 IPv6 13

AutoconfigurationConfiguring Large Numbers of Interfaces

Cur Hop Limit

Managed Addr Config

Other Config

Router Lifetime

Reachable Time

Prefix Length

Autonomous Config

Valid Lifetime

Preferred Lifetime

Prefix

ICMPv6 HdrICMPv6 HdrICMPv6 HdrICMPv6 Hdr Router AdvRouter AdvRouter AdvRouter Adv Prefix InfoPrefix InfoPrefix InfoPrefix Info

RFC 4861 – Neighbor DiscoveryRFC 4861 – Neighbor DiscoveryRFC 4862 – Stateless Addr RFC 4862 – Stateless Addr AutoconfAutoconfRFC 3315 – DHCPv6RFC 3315 – DHCPv6

Existing Options New Options

Network ID

Sequence Number

Router Hops

Flags

MHop MHop InfoInfo

MHop MHop InfoInfo

Trickle

Page 14: David E. Culler University of California, Berkeley

June 2008 WEI short course - L10 IPv6 14

AutoconfigurationConfiguring Large Numbers of Interfaces

LinkLinkLinkLink

NetNetNetNet

TranTranTranTran

AppAppAppApp

Media Management ControlMedia Management ControlMedia Management ControlMedia Management Control

Remote MediaRemote MediaRemote MediaRemote Media Link StatsLink StatsLink StatsLink StatsNeighbor Table

Addr Period Phase Pending RSSI PRR

Local MediaLocal MediaLocal MediaLocal Media

Sample Period

Sample Phase

6Lo

WPA

N A

dap

tati

on

6Lo

WPA

N A

dap

tati

on

6Lo

WPA

N A

dap

tati

on

6Lo

WPA

N A

dap

tati

on

StatelesStatelesss

AutoconAutoconff

StatelesStatelesss

AutoconAutoconff

AutoconAutoconff

AutoconAutoconff

DHCPv6DHCPv6DHCPv6DHCPv6

ICMPvICMPv66

ICMPvICMPv66

DatDataa

DatDataa AckAckAckAck

Page 15: David E. Culler University of California, Berkeley

June 2008 WEI short course - L10 IPv6 15

Routing & Forwarding

NetNetNetNet

RouterRouterRouterRouterRouting Routing ProtocolProtocol

Routing Routing ProtocolProtocol

Routing Routing TableTable

Routing Routing TableTablePrefix Next

ICMPvICMPv66

ICMPvICMPv66

LinkLinkLinkLink

Media Management ControlMedia Management ControlMedia Management ControlMedia Management ControlRemote MediaRemote MediaRemote MediaRemote Media Link StatsLink StatsLink StatsLink Stats

Neighbor Table

Addr Period Phase Pending RSSI PRR

Local MediaLocal MediaLocal MediaLocal Media

Sample Period

Sample Phase

DatDataa

DatDataa AckAckAckAck

ForwarderForwarderForwarderForwarderMulticastMulticastMulticastMulticast

Send Send ManageManage

rr

Send Send ManageManage

rr

BufferBufferBufferBufferUnicastUnicastUnicastUnicast

QueueQueueQueueQueue Forwarding Forwarding TableTable

Forwarding Forwarding TableTablePrefix Next

Default

Send Send ManageManage

rr

Send Send ManageManage

rr

Delivering datagrams over multiple hopsDelivering datagrams over multiple hopsDelivering datagrams over multiple hopsDelivering datagrams over multiple hops

Page 16: David E. Culler University of California, Berkeley

June 2008 WEI short course - L10 IPv6 16

ForwardingDelivering Datagrams Over Multiple Hops

Minimize energy of reliable delivery to Minimize energy of reliable delivery to next hopnext hop

Minimize energy of reliable delivery to Minimize energy of reliable delivery to next hopnext hop

•Reliability & Rate Control•PSFQ, RMST, Fusion, IFRC, Flush•Hop-by-hop for reliability and control•None with goal of minimizing energy•All assume snooping or broadcast

Page 17: David E. Culler University of California, Berkeley

June 2008 WEI short course - L10 IPv6 17

ForwardingDelivering Datagrams Over Multiple Hops

Hop-by-Hop RecoveryHop-by-Hop RecoveryHop-by-Hop RecoveryHop-by-Hop Recovery

Piggyback L3 Information on L2 AcksPiggyback L3 Information on L2 AcksPiggyback L3 Information on L2 AcksPiggyback L3 Information on L2 Acks

15.4 HDR15.4 HDR15.4 HDR15.4 HDR PANPANPANPAN DSTDSTDSTDST SRCSRCSRCSRC SECSECSECSEC TimingTimingTimingTiming Network InfoNetwork InfoNetwork InfoNetwork Info 15.4 FTR15.4 FTR15.4 FTR15.4 FTR

L3 custody transfer ⇒ fewer msg dropsL3 custody transfer ⇒ fewer msg dropsLower power, lower latency, spatial diversityLower power, lower latency, spatial diversity

1) lookup next hop2) transmit message3) if ack, dequeue, goto 54) backoff5) goto 1

Page 18: David E. Culler University of California, Berkeley

June 2008 WEI short course - L10 IPv6 18

ForwardingDelivering Datagrams Over Multiple Hops

Hop-by-Hop Congestion ControlHop-by-Hop Congestion ControlHop-by-Hop Congestion ControlHop-by-Hop Congestion Control

Less contention ⇒ lower powerLess contention ⇒ lower powerNo snooping or added control overheadNo snooping or added control overhead

1) lookup next hop2) transmit message3) if ack3.1) if not queue full, dequeue, goto 63.2) AIMD backoff, goto 65) backoff6) goto 1

1) lookup next hop2) transmit message3) if ack3.1) if not queue full, dequeue, goto 63.2) AIMD backoff, goto 65) backoff6) goto 1

Page 19: David E. Culler University of California, Berkeley

June 2008 WEI short course - L10 IPv6 19

ForwardingDelivering Datagrams Over Multiple Hops

StreamingStreamingStreamingStreaming Quality of ServiceQuality of ServiceQuality of ServiceQuality of Service

Queue ReservationsQueue Reservations

Latency Tolerant vs. UrgentLatency Tolerant vs. Urgent

IPv6IPv6IPv6IPv6 UrgentUrgentUrgentUrgent PayloaPayloadd

PayloaPayloaddIPv6IPv6IPv6IPv6 PayloaPayloa

dd

PayloaPayloadd

•Disable streaming delays•Reduce backoffs•Disable streaming delays•Reduce backoffs

•Guaranteed service for different classes

•Guaranteed service for different classes

•Reduce power•Increase

throughput

•Reduce power•Increase

throughput

Page 20: David E. Culler University of California, Berkeley

June 2008 WEI short course - L10 IPv6 20

RoutingSelecting Bi-Directional Links and Forming Routes

Problem: Inferring a connectivity graphProblem: Inferring a connectivity graphProblem: Inferring a connectivity graphProblem: Inferring a connectivity graph

•MANET•DSDV, AODV, DYMO, OLSR, TBRPF•Any-to-any, shortest path•Distance vector and link state

•Sensornets•Any-to-any (GPSR, NoGeo, GEM, BVR, S4)•Collection (MintRoute, CTP, MultihopLQI)

•Link Discovery vs. Link Estimation•MANET: assume high mobility•Sensornet: assume a more static network

Page 21: David E. Culler University of California, Berkeley

June 2008 WEI short course - L10 IPv6 21

RoutingSelecting Bi-Directional Links and Forming Routes

ForwarderForwarderForwarderForwarderMulticastMulticastMulticastMulticast

Send Send ManagerManager

Send Send ManagerManager

BufferBufferBufferBuffer

UnicastUnicastUnicastUnicast

QueueQueueQueueQueue Forwarding TableForwarding TableForwarding TableForwarding Table

Prefix Next

Default

Send Send ManagerManager

Send Send ManagerManager

RouterRouterRouterRouterRouting Routing ProtocolProtocol

Routing Routing ProtocolProtocol

Routing TableRouting TableRouting TableRouting Table

Prefix Next

Page 22: David E. Culler University of California, Berkeley

June 2008 WEI short course - L10 IPv6 22

RoutingSelecting Bi-Directional Links and Forming Routes

Default RoutesDefault RoutesDefault RoutesDefault Routes

Discovering LinksDiscovering LinksDiscovering LinksDiscovering LinksICMPv6 HdrICMPv6 HdrICMPv6 HdrICMPv6 Hdr Router AdvRouter AdvRouter AdvRouter Adv MHop InfoMHop InfoMHop InfoMHop Info

Inferring a Connectivity GraphInferring a Connectivity GraphInferring a Connectivity GraphInferring a Connectivity GraphRouting Routing TableTable

Routing Routing TableTablePrefix Next

Low Routing CostLow Routing Cost

High Routing CostHigh Routing Cost

High ConfidenceHigh Confidence

Low ConfidenceLow Confidence

Selecting a Default RouteSelecting a Default RouteSelecting a Default RouteSelecting a Default RouteRouting Routing TableTable

Routing Routing TableTablePrefix Next

Forwarding Forwarding TableTable

Forwarding Forwarding TableTablePrefix Next

Default

•Top candidateTop candidate•Dynamic re-Dynamic re-routingrouting•Increasing Increasing confidenceconfidence

Page 23: David E. Culler University of California, Berkeley

June 2008 WEI short course - L10 IPv6 23

RoutingSelecting Bi-Directional Links and Forming Routes

IPv6IPv6IPv6IPv6PayloadPayloadPayloadPayload

IPv6IPv6IPv6IPv6PayloadPayloadPayloadPayload

IPv6IPv6IPv6IPv6PayloadPayloadPayloadPayload

Supported Supported CommunicationCommunication

Supported Supported CommunicationCommunication

•Sensornet → External IP•External IP → Sensornet•Sensornet → Sensornet•Direct single hop

Most commonMost commonpatterns in sensornetspatterns in sensornets

Most commonMost commonpatterns in sensornetspatterns in sensornets

Page 24: David E. Culler University of California, Berkeley

June 2008 WEI short course - L10 IPv6 24

Routing & ForwardingSelecting Links and Forming Routes

LinkLinkLinkLink

NetNetNetNet

TranTranTranTran

AppAppAppApp

Media Management ControlMedia Management ControlMedia Management ControlMedia Management Control

Remote MediaRemote MediaRemote MediaRemote Media Link StatsLink StatsLink StatsLink StatsNeighbor Table

Addr Period Phase Pending RSSI PRR

Local MediaLocal MediaLocal MediaLocal Media

Sample Period

Sample Phase

StatelesStatelesss

AutoconAutoconff

StatelesStatelesss

AutoconAutoconff

AutoconAutoconff

AutoconAutoconff

DHCPv6DHCPv6DHCPv6DHCPv6

6Lo

WPA

N A

dap

tati

on

6Lo

WPA

N A

dap

tati

on

6Lo

WPA

N A

dap

tati

on

6Lo

WPA

N A

dap

tati

on

ICMPvICMPv66

ICMPvICMPv66

DatDataa

DatDataa AckAckAckAck

ForwarderForwarderForwarderForwarder

MulticastMulticastMulticastMulticast

Send Send ManageManage

rr

Send Send ManageManage

rr

BufferBufferBufferBufferUnicastUnicastUnicastUnicast

QueueQueueQueueQueue Forwarding Forwarding TableTable

Forwarding Forwarding TableTable

Prefix Next

Default

Send Send ManageManage

rr

Send Send ManageManage

rr

RouterRouterRouterRouter

Routing Routing ProtocolProtocol

Routing Routing ProtocolProtocol

Routing Routing TableTable

Routing Routing TableTablePrefix Next

Page 25: David E. Culler University of California, Berkeley

June 2008 WEI short course - L10 IPv6 25

TransportCommunication Between Application Endpoints

LinkLinkLinkLink

NetNetNetNet

TranTranTranTran

AppAppAppApp

Media Management ControlMedia Management ControlMedia Management ControlMedia Management Control

Remote MediaRemote MediaRemote MediaRemote Media Link StatsLink StatsLink StatsLink StatsNeighbor Table

Addr Period Phase Pending RSSI PRR

Local MediaLocal MediaLocal MediaLocal Media

Sample Period

Sample Phase

RouterRouterRouterRouter

Routing Routing ProtocolProtocol

Routing Routing ProtocolProtocol

Routing Routing TableTable

Routing Routing TableTablePrefix Next

StatelesStatelesss

AutoconAutoconff

StatelesStatelesss

AutoconAutoconff

AutoconAutoconff

AutoconAutoconff

DHCPv6DHCPv6DHCPv6DHCPv6

UDPUDPUDPUDP TCPTCPTCPTCP

6Lo

WPA

N A

dap

tati

on

6Lo

WPA

N A

dap

tati

on

6Lo

WPA

N A

dap

tati

on

6Lo

WPA

N A

dap

tati

on

ICMPvICMPv66

ICMPvICMPv66

DatDataa

DatDataa AckAckAckAck

ForwarderForwarderForwarderForwarder

MulticastMulticastMulticastMulticast

Send Send ManageManage

rr

Send Send ManageManage

rr

BufferBufferBufferBufferUnicastUnicastUnicastUnicast

QueueQueueQueueQueue Forwarding Forwarding TableTable

Forwarding Forwarding TableTable

Prefix Next

Default

Send Send ManageManage

rr

Send Send ManageManage

rr

Page 26: David E. Culler University of California, Berkeley

June 2008 WEI short course - L10 IPv6 26

Programming Interface

BSD Sockets ⇒ Event based UDPBSD Sockets ⇒ Event based UDPBSD Sockets ⇒ Event based UDPBSD Sockets ⇒ Event based UDP

event void Boot.booted() {call Udp.bind( 7 ); }event void Boot.booted() {call Udp.bind( 7 ); } event void Udp.recvfrom( void *buf, uint16_t len, event void Udp.recvfrom( void *buf, uint16_t len, sockaddr_in6_t *from, sockaddr_in6_t *from, link_metadata_t link_metadata_t *linkmsg ) { *linkmsg ) { call Udp.sendto( buf, len, from ); }call Udp.sendto( buf, len, from ); }

event void Boot.booted() {call Udp.bind( 7 ); }event void Boot.booted() {call Udp.bind( 7 ); } event void Udp.recvfrom( void *buf, uint16_t len, event void Udp.recvfrom( void *buf, uint16_t len, sockaddr_in6_t *from, sockaddr_in6_t *from, link_metadata_t link_metadata_t *linkmsg ) { *linkmsg ) { call Udp.sendto( buf, len, from ); }call Udp.sendto( buf, len, from ); }

Page 27: David E. Culler University of California, Berkeley

June 2008 WEI short course - L10 IPv6 27

Programming Interface

BSD Sockets ⇒ Event based TCPBSD Sockets ⇒ Event based TCPBSD Sockets ⇒ Event based TCPBSD Sockets ⇒ Event based TCP

uint8_t m_buf[ BUF_SIZE ]; uint8_t m_buf[ BUF_SIZE ]; event void Boot.booted() { event void Boot.booted() {

call Tcp.bind( 7 );call Tcp.bind( 7 ); call Tcp.listen(); } call Tcp.listen(); } event bool Tcp.accept( sockaddr_in6_t *to, void **sendbuf, event bool Tcp.accept( sockaddr_in6_t *to, void **sendbuf,

uint16_t *sendbuf_size ) { uint16_t *sendbuf_size ) { *sendbuf = m_buf;*sendbuf = m_buf;

*sendbuf_size = sizeof(m_buf);*sendbuf_size = sizeof(m_buf); return TRUE; } return TRUE; } event void Tcp.connected() {} event void Tcp.connected() {} event uint16_t Tcp.recv( void *buf, uint16_t len ) { event uint16_t Tcp.recv( void *buf, uint16_t len ) {

return call Tcp.send( buf, len ) == SUCCESS ? len : 0; } return call Tcp.send( buf, len ) == SUCCESS ? len : 0; } event void Tcp.acked() {} event void Tcp.acked() {} event void Tcp.closed() { signal Boot.booted(); }event void Tcp.closed() { signal Boot.booted(); }

uint8_t m_buf[ BUF_SIZE ]; uint8_t m_buf[ BUF_SIZE ]; event void Boot.booted() { event void Boot.booted() {

call Tcp.bind( 7 );call Tcp.bind( 7 ); call Tcp.listen(); } call Tcp.listen(); } event bool Tcp.accept( sockaddr_in6_t *to, void **sendbuf, event bool Tcp.accept( sockaddr_in6_t *to, void **sendbuf,

uint16_t *sendbuf_size ) { uint16_t *sendbuf_size ) { *sendbuf = m_buf;*sendbuf = m_buf;

*sendbuf_size = sizeof(m_buf);*sendbuf_size = sizeof(m_buf); return TRUE; } return TRUE; } event void Tcp.connected() {} event void Tcp.connected() {} event uint16_t Tcp.recv( void *buf, uint16_t len ) { event uint16_t Tcp.recv( void *buf, uint16_t len ) {

return call Tcp.send( buf, len ) == SUCCESS ? len : 0; } return call Tcp.send( buf, len ) == SUCCESS ? len : 0; } event void Tcp.acked() {} event void Tcp.acked() {} event void Tcp.closed() { signal Boot.booted(); }event void Tcp.closed() { signal Boot.booted(); }

Page 28: David E. Culler University of California, Berkeley

June 2008 WEI short course - L10 IPv6 28

Stack Architecture

LinkLinkLinkLink

NetNetNetNet

TranTranTranTran

AppAppAppApp

Media Management ControlMedia Management ControlMedia Management ControlMedia Management Control

Remote MediaRemote MediaRemote MediaRemote Media Link StatsLink StatsLink StatsLink StatsNeighbor Table

Addr Period Phase Pending RSSI PRR

Local MediaLocal MediaLocal MediaLocal Media

Sample Period

Sample Phase

RouterRouterRouterRouter

Routing Routing ProtocolProtocol

Routing Routing ProtocolProtocol

Routing Routing TableTable

Routing Routing TableTablePrefix Next

StatelesStatelesss

AutoconAutoconff

StatelesStatelesss

AutoconAutoconff

AutoconAutoconff

AutoconAutoconff

DHCPv6DHCPv6DHCPv6DHCPv6

UDPUDPUDPUDP TCPTCPTCPTCP

6Lo

WPA

N A

dap

tati

on

6Lo

WPA

N A

dap

tati

on

6Lo

WPA

N A

dap

tati

on

6Lo

WPA

N A

dap

tati

on

ICMPvICMPv66

ICMPvICMPv66

DatDataa

DatDataa AckAckAckAck

????????????

HTTPHTTPHTTPHTTP TelnetTelnetTelnetTelnet SNMPSNMPSNMPSNMP DNSDNSDNSDNS ????????????

ForwarderForwarderForwarderForwarder

MulticastMulticastMulticastMulticast

Send Send ManageManage

rr

Send Send ManageManage

rr

BufferBufferBufferBufferUnicastUnicastUnicastUnicast

QueueQueueQueueQueue Forwarding Forwarding TableTable

Forwarding Forwarding TableTable

Prefix Next

Default

Send Send ManageManage

rr

Send Send ManageManage

rr