RPL: IPv6 Routing Protocol for Low Power and Lossy Networks - - PowerPoint PPT Presentation

rpl ipv6 routing protocol for low power and lossy networks
SMART_READER_LITE
LIVE PREVIEW

RPL: IPv6 Routing Protocol for Low Power and Lossy Networks - - PowerPoint PPT Presentation

RPL: IPv6 Routing Protocol for Low Power and Lossy Networks (draft-ietf-roll-rpl-04) RPL Design Team ROLL WG Meeting 76th IETF Meeting Hiroshima, Japan 11/10/2009 76th IETF Meeting - ROLL WG 1 Outline Basic Approach Mechanism


slide-1
SLIDE 1

76th IETF Meeting - ROLL WG 11/10/2009

RPL: IPv6 Routing Protocol for Low Power and Lossy Networks

RPL Design Team

ROLL WG Meeting 76th IETF Meeting Hiroshima, Japan 1

(draft-ietf-roll-rpl-04)

slide-2
SLIDE 2

76th IETF Meeting - ROLL WG 11/10/2009

Outline

  • Basic Approach
  • Mechanism Details (draft-03 vs. draft-04)
  • Open Issues
  • Next Steps

2

slide-3
SLIDE 3

76th IETF Meeting - ROLL WG 11/10/2009

Basic Approach

3

slide-4
SLIDE 4

76th IETF Meeting - ROLL WG 11/10/2009

Overview

  • Assumption: most traffic flows through few nodes
  • many-to-one
  • ne-to-many
  • baseline required by all requirements drafts
  • Approach: build DAG(s) rooted at these nodes
  • Up towards the DAG root for many-to-one
  • Down away from the DAG root for one-to-many
  • Use the DAG to detect and avoid loops
  • Allow point-to-point via up* down*

4

Up Down

slide-5
SLIDE 5

76th IETF Meeting - ROLL WG 11/10/2009

Definitions

  • Instance
  • Defines the optimization objective when forming paths towards roots
  • Link properties: (Reliability, Latency), Node properties: (Powered or not)
  • Objective: optimize paths based on one or more metrics
  • Scope: RPL network
  • Composed of one or more disjoint DODAGs

5

Instance

slide-6
SLIDE 6

76th IETF Meeting - ROLL WG 11/10/2009

Definitions

  • DODAG
  • Defines a DAG that forms paths to a single logical root
  • Scope: within an Instance

6

DODAG

slide-7
SLIDE 7

76th IETF Meeting - ROLL WG 11/10/2009

Sequence N Sequence N+1

Definitions

  • DODAG Iteration
  • A DODAG constructed using a particular sequence
  • Scope: within a DODAG

7

slide-8
SLIDE 8

76th IETF Meeting - ROLL WG 11/10/2009

Sequence N Sequence N+1

Definitions

  • Node Rank
  • Defines a node’s relative position within a DODAG
  • Scope: within a DODAG Iteration

8

Rank = 0 Rank = 1 Rank = 1 Rank = 2 Rank = 3 Rank = 3

slide-9
SLIDE 9

76th IETF Meeting - ROLL WG 11/10/2009

Definitions

  • Instance: defines optimization objective for the network
  • DODAG: a disjoint DAG within an Instance
  • DAG Iteration: a DODAG built with a particular sequence number
  • Rank: position within a DODAG Iteration
  • Objective Function: identifies metrics, constraints, and objectives
  • Objective Code Point: identifies Objective Function

9

slide-10
SLIDE 10

76th IETF Meeting - ROLL WG 11/10/2009

DAG Construction

  • Distance-Vector
  • advertise path cost to root
  • choose parents that minimize path cost
  • but be careful about loops & count-to-infinity
  • Assign every node a Rank
  • Rank strictly decreasing towards root

10

Rank = 0 Rank = 1 Rank = 1 Rank = 2 Rank = 3 Rank = 3

slide-11
SLIDE 11

76th IETF Meeting - ROLL WG 11/10/2009

Route Construction

  • Up routes towards nodes of decreasing rank
  • DAG parents
  • Down routes towards nodes of increasing rank
  • Nodes inform parents of their presence and reachability to descendants.
  • Record route/source route for nodes that cannot maintain any down

routes.

11

slide-12
SLIDE 12

76th IETF Meeting - ROLL WG 11/10/2009

Forwarding Rules

  • All routes: up*down* along DODAG
  • When going up
  • always forward to lower rank when possible
  • may forward to sibling if no lower rank exists
  • When going down
  • forward based on down routes

12

Rank = 0 Rank = 1 Rank = 1 Rank = 2 Rank = 3 Rank = 3

slide-13
SLIDE 13

76th IETF Meeting - ROLL WG 11/10/2009

Metric vs. Rank

  • Metric is used to achieve an optimization goal
  • Rank: path calculation according to objective

metric

  • Scalar that represents relative position within a DAG
  • Strictly increasing from the root
  • Topological constraint to avoid and detect loops
  • Coarse granularity allows siblings (in addition to parents, children)
  • Common language if we want to utilize different OCPs in a DAG

13

slide-14
SLIDE 14

76th IETF Meeting - ROLL WG 11/10/2009

Protocol Mechanisms

14

slide-15
SLIDE 15

76th IETF Meeting - ROLL WG 11/10/2009

Protocol Mechanisms

  • Control Messages
  • Conveyance
  • Loop Avoidance
  • Route Flapping Avoidance
  • Loop Detection & Repair
  • Present proposals from Draft 03 & Draft 04
  • WG Feedback on 03: SIMPLIFY

15

slide-16
SLIDE 16

76th IETF Meeting - ROLL WG 11/10/2009

Draft 03 to 04 Summary

  • Remove binding between RPL and IPv6 ND
  • Remove detach/float/reattach local repair
  • Remove Hold-Up/Down Timer
  • Specify data-path loop detection/repair

16

slide-17
SLIDE 17

76th IETF Meeting - ROLL WG 11/10/2009

Conveyance (draft-03)

  • Bind to IPv6 ND
  • Router Solicitation
  • Router Advertisement
  • DAG Information Option (form the DAG)
  • Neighbor Advertisement
  • Destination Adv Option (form down routes)

17

slide-18
SLIDE 18

76th IETF Meeting - ROLL WG 11/10/2009

Conveyance (draft-04)

  • Create new ICMPv6 type for RPL
  • Use ICMPv6 Code to identify RPL message
  • DIS: DAG Information Solicitation
  • DIO: DAG Information Object
  • DAO: Destination Advertisement Object

18

slide-19
SLIDE 19

76th IETF Meeting - ROLL WG 11/10/2009

Loop Avoidance (draft-03)

  • Loops may occur when node increases Rank
  • Global repair
  • Create new DAG Iteration (use sequence number to rebuild DAG)
  • Sequence number establishes event-horizon
  • Local repair
  • Detach/float/merge within a DAG instance
  • Use DAG Hop Timer to color sub-DAG and reduce advertisements

19

slide-20
SLIDE 20

76th IETF Meeting - ROLL WG 11/10/2009

Loop Avoidance (draft-04)

  • Only global repair for simplicity
  • Must wait for new instance to increase rank
  • Maybe too simple?
  • If no parents exist with lower rank, MUST poison

route by advertising infinite cost

20

slide-21
SLIDE 21

76th IETF Meeting - ROLL WG 11/10/2009

Loop Detection & Repair (draft-03)

  • Not addressed (listed as open issue)

21

slide-22
SLIDE 22

76th IETF Meeting - ROLL WG 11/10/2009

Loop Detection & Repair (draft-04)

  • Up routes must strictly decrease in rank
  • Down routes must strictly increase in rank
  • Generalized to inconsistency detection & repair

22

A B D E C Rank = 4 Rank = 7 Rank = 6 Rank = 6 Rank = 7

slide-23
SLIDE 23

76th IETF Meeting - ROLL WG 11/10/2009

Inconsistency Detection/Repair (draft-04)

  • Pass back to parent if no down route exists
  • Cleanup stale down routes if dgram is passed back

23

A B D E C Rank = 4 Rank = 5 Rank = 6 Rank = 6 Rank = 7

slide-24
SLIDE 24

76th IETF Meeting - ROLL WG 11/10/2009

Loop Detection & Repair (draft-04)

  • Parent routes fail, use siblings (same rank)
  • Allow at most one (?) sibling hop at a time

24

A B D E C Rank = 4 Rank = 5 Rank = 6 Rank = 6 Rank = 7

slide-25
SLIDE 25

76th IETF Meeting - ROLL WG 11/10/2009

Loop Detection & Repair (draft-04)

  • Include routing info in data path to validate DAG
  • Instance ID identifies instance to route along
  • Up/Down Bit to identify up vs. down
  • Sender’s Rank to assert Rank invariant
  • Rank-Error Bit to tolerate single rank error
  • DAO-Error Bit to back-track and cleanup state
  • Sibling Bit to allow at most one sibling hop

25

slide-26
SLIDE 26

76th IETF Meeting - ROLL WG 11/10/2009

Route Flapping Avoidance (draft-03)

  • Use a Hold-Down Timer to delay parent eviction

26

slide-27
SLIDE 27

76th IETF Meeting - ROLL WG 11/10/2009

Route Flapping Avoidance (draft-04)

  • Removed: unclear if needed given other

mechanisms

27

slide-28
SLIDE 28

76th IETF Meeting - ROLL WG 11/10/2009

Draft 03 to 04 Summary

  • Remove binding between RPL and IPv6 ND
  • Remove detach/float/reattach local repair
  • Remove Hold-Up/Down Timer
  • Specify data-path loop detection/repair
  • 93 page 82 pages... and counting

28

slide-29
SLIDE 29

76th IETF Meeting - ROLL WG 11/10/2009

Open Issues

29

slide-30
SLIDE 30

76th IETF Meeting - ROLL WG 11/10/2009

Open Issues

  • Behavior when OF is not supported
  • Local repair
  • Use of siblings
  • Minimum Viable Protocol

30

slide-31
SLIDE 31

76th IETF Meeting - ROLL WG 11/10/2009

Open Issues: OF Not Supported

  • Node wants to join a network, but does not

understand OFx

  • Join and extend network using “default” OCP
  • requires all nodes to implement OF0
  • Join as leaf and log issue
  • allows connectivity but does not extend the network
  • Strong consensus on “join as leaf”, will fix in

draft-05 and close this issue

31

slide-32
SLIDE 32

76th IETF Meeting - ROLL WG 11/10/2009

Open Issues: Local Repair

  • Global repair
  • requires nodes to wait for sequence number
  • delay to repair depends on sequence number refresh rate
  • Local repair
  • nodes can move down in the DAG within an instance
  • risks creating loops and count-to-infinity issues
  • general consensus that important cases exist
  • One proposed mechanism
  • Use DAG Hop Timer to wait for poisoning to occur
  • Another proposed mechanism
  • nodes can move down at most X ranks within a sequence
  • if things are really bad, must wait for new sequence

32

slide-33
SLIDE 33

76th IETF Meeting - ROLL WG 11/10/2009

Open Issues: Utilize Siblings?

  • Only parents
  • Only route to nodes with lower rank
  • Directional sibling links
  • Equal rank may only route one way
  • More receiver diversity
  • Bi-directional sibling links
  • Equal rank nodes may route through each other
  • Even more receiver diversity
  • Loop detection and/or error reporting when siblings have no parents

33

slide-34
SLIDE 34

76th IETF Meeting - ROLL WG 11/10/2009

Open Issues: MVP

  • General consensus: draft 03 is far too complex.
  • Draft 04 removes many mechanisms/knobs/hooks
  • hold-up/down timers, detach/float/reattach local repair
  • Should we simplify more?
  • Nearly orthogonal Instance and DAG concepts
  • Backtracking on DAO errors
  • Utilization of sibling links
  • Objective Control Point generality
  • What is missing?
  • Local repair, Address/Header Compression
  • Tradeoff between defining a feature-limited base architecture and

working “well” out-of-the-box.

34

slide-35
SLIDE 35

76th IETF Meeting - ROLL WG 11/10/2009

Supporting Drafts

  • Metrics
  • Applicability Statements
  • Objective Function specifications
  • Source Routing?
  • Address/Header Compression?

35

slide-36
SLIDE 36

76th IETF Meeting - ROLL WG 11/10/2009

Next Steps

36

slide-37
SLIDE 37

76th IETF Meeting - ROLL WG 11/10/2009

Next Steps

  • State machine
  • Clarify relationship between neighbor set and

candidate parents

  • Specify node operation when OF is not supported
  • Focus on security
  • Many editorial improvements to make the spec

more clear, concise, and organized

37

slide-38
SLIDE 38

76th IETF Meeting - ROLL WG 11/10/2009

End

38

slide-39
SLIDE 39

76th IETF Meeting - ROLL WG 11/10/2009

Open Issues: Inconsistency Detection

  • IPv6 Flow Label?
  • Not compliant with RFC 3697
  • Require end-points to set Flow Label to zero/Instance ID
  • Edge Routers then reset Flow Label to zero/Instance ID
  • Define an IPv6 Hop-by-Hop Option?
  • Requires all routers to process a IPv6 HBH Option header
  • Define a new IPv6 Extension Header?
  • Only processed by RPL routers
  • Requires all end-points to understand new extension header
  • Currently soliciting 6man for feedback

39