NFD forwarding pipelines

Post on 23-Feb-2016

51 views 0 download

Tags:

description

NFD forwarding pipelines. Junxiao Shi, 2014-01-27. Overview. Forwarding consists of pipelines and strategies Pipeline: a series of steps that operate on a packet or a PIT entry Strategy: a decision maker on whether, when, and where to forward an Interest. Pipelines. incoming Interest - PowerPoint PPT Presentation

transcript

1

NFD forwarding pipelines

Junxiao Shi, 2014-01-27

2

Overview• Forwarding consists of pipelines and strategies• Pipeline: a series of steps that operate on a packet or a PIT entry• Strategy: a decision maker on whether, when, and where to forward

an Interest

3

Pipelines• incoming Interest• Interest loop• outgoing Interest• Interest rebuff• Interest unsatisfied• incoming Data• Data unsolicited• outgoing Data• PIT delete

4

Legend in diagrams

building block

pipeline

tables feature

strategy

face feature

5

incoming Interest

incoming Data

outgoing Interest

outgoing Data

strategy API

original strategy

broadcast strategy

Interest rebuff

Interest unsatisfied

Interest loop

PIT delete

best route strategy

Data unsolicited

6

incoming Interest pipeline

CS lookup

outgoing Data

PIT insert cancel unsatisfy / straggler timers

app-chosen

nexthops?

FIB lookup dispatch to strategy

outgoing Interest

Y Y

receive Interest detect loop

Interest loop

Y

insert InRecord

foreachnexthop

7

forward according to app-chosen nexthops• Given incoming Interest, if its local control header contains nexthops

chosen by application, forward to these nexthops• Strategy is not used; outgoing Interest pipeline is still used

8

dispatch incoming Interest to strategy• Given FIB entry and incoming Interest, determine which strategy

should process this Interest, and trigger that strategy

9

outgoing Interest pipeline

insert OutRecordpick Interest send Interestset PIT

unsatisfy timer

Interest unsatisfied

timer event

10

pick outgoing Interest packet• Given PIT entry and nexthop, decide the guiders on the outgoing

Interest• Nonce and InterestLifetime come from an InRecord with longest remaining

lifetime, however InRecord with same Face as the nexthop cannot be used• InterestLifetime is carried from the original packet without deducting the time

elapsed• Scope is the most relaxed among all unexpired InRecords

11

Interest rebuff pipeline• Process an Interest that has been decided that it has nowhere to go

set PIT unsatisfy timer

Interest unsatisfied

timer event

12

Interest loop pipeline• Process an Interest that has been considered looped• This pipeline is currently empty, which means Interest packet is dropped.

NACK support could be added here

13

Interest unsatisfied pipeline

invoke PIT unsatisfied callback

cancel strategy timers PIT delete

14

incoming Data pipeline

PIT match

receive Data

Y

CS insert

outgoing Data

invoke PIT satisfy callback

cancel unsatisfy / straggler timers

mark PIT satisfied

set PIT straggler timer

foreachPIT entry

foreachpendingdownstream

Data unsolicited PIT delete

timer event

15

outgoing Data pipeline

traffic manager send Data

16

Pass-through traffic manager• Goal: provide a traffic manager that does nothing and merely passes

Data packet to the next step

17

Data unsolicited pipeline

accept to cache?

Y

CS insert

18

PIT delete pipeline

cancel strategy timers PIT delete

19

strategy API• Provide APIs between strategy and other parts of forwarder• triggers: call into strategy• actions: call from strategy• attributes: information exposed to strategy

20

broadcast strategy• Provide a strategy that sends Interest to all nexthops in FIB entry

21

original strategy• Provide a strategy that sends Interest to the fastest nexthop in FIB

entry, and use incremental adjustment to determine RTO• aka ccnd strategy

22

best route strategy• Provide a strategy that sends Interest to the first nexthop in FIB entry