/
NFD forwarding pipelines NFD forwarding pipelines

NFD forwarding pipelines - PowerPoint Presentation

karlyn-bohler
karlyn-bohler . @karlyn-bohler
Follow
392 views
Uploaded On 2017-01-25

NFD forwarding pipelines - PPT Presentation

Junxiao Shi 20150814 1 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 ID: 513670

pit interest pipeline timer interest pit timer pipeline data nonce incoming entry insert straggler set outgoing strategy contentstore lookup dead fib list

Share:

Link:

Embed:

Download Presentation from below link

Download Presentation The PPT/PDF document "NFD forwarding pipelines" is the property of its rightful owner. Permission is granted to download and print the materials on this web site for personal, non-commercial use only, and to display it on your personal computer provided you do not modify the materials and that you retain all copyright notices contained in the materials. By downloading content from our website, you accept the terms of this agreement.


Presentation Transcript

Slide1

NFD forwarding pipelines

Junxiao Shi, 2015-08-14

1Slide2

Overview

Forwarding consists of pipelines and strategiesPipeline: 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

2Slide3

Pipelines

incoming InterestContentStore

miss

ContentStore

hit

Interest loop

outgoing Interest

Interest rejectInterest unsatisfiedInterest finalizeincoming DataData unsolicitedoutgoing Data

3Slide4

Legend in diagrams

4

building block

pipeline

tables feature

strategy

face featureSlide5

5

incoming Interest

incoming Data

outgoing Interest

outgoing Data

strategy API

ncc

strategy

broadcast strategy

Interest reject

Interest unsatisfied

Interest loop

best route strategy

Data unsolicited

Interest

finalize

ContentStore

miss

ContentStore

hit

access strategySlide6

Pipelines Overall Workflow

6

incoming Interest

incoming Data

outgoing Interest

outgoing Data

after receive Interest

Interest reject

Interest unsatisfied

Interest loop

Data unsolicited

before satisfy Interest

before expire Interest

unsatisfy

timer

straggler

timer

Interest

finalize

ContentStore

miss

ContentStore

hitSlide7

incoming Interest pipeline

7

CS lookup

PIT insert

cancel

unsatisfy

& straggler timer

Y

receive Interest

detect

duplicate Nonce

Interest loop

Y

is pending?

Y

violates /

localhost

?

Y

(drop)

ContentStore

miss

ContentStore

hit

N

N

N

NSlide8

detect duplicate Nonce

If any InRecord or

OutRecord

contains the same Nonce as the incoming Interest, or the Name and Nonce of the incoming Interest appear in Dead Nonce List, a duplicate Nonce is detected.

If the duplicate Nonce is found in

InRecord

only, this is a multi-path arrival, and not a loop.

If the duplicate Nonce is found in OutRecord or Dead Nonce Table, this is either a multi-path arrival or a loop, and these two reasons are indistinguishable.

Nonce is later recorded on an

InRecord

.

8Slide9

Interest loop pipeline

Process an Interest that has been considered loopedThis pipeline is currently empty, which means Interest packet is dropped. NACK could be added here

9Slide10

ContentStore miss pipeline

This pipeline is entered when an incoming Interest

is pending (so

ContentStore

lookup is unnecessary), or

is miss from

ContentStore

This pipeline will start forwarding the Interest10Slide11

ContentStore miss pipeline

11

FIB

lookup with Interest Name

dispatch to strategy

insert

InRecord

set PIT

unsatisfy

timer

Interest unsatisfied

timer event

in producer region?

has Selected

Delegation?

FIB

lookup with

SelectedDelegation

choose and set

SelectedDelegation

Y

N

N

Y

FIB

lookup with first Delegation Name

in default-free zone?

Y

N

has Link object?

N

YSlide12

set PIT unsatisfy

timerGiven PIT entry, set an

unsatisfy

timer which fires when

InterestLifetime

expires for all unexpired

InRecords

When the unsatisfy timer fires, Interest unsatisfied pipeline is entered

12Slide13

determine whether in producer region

Input:regionNames

:

the router's

region names

,

from configuration

interestAlgorithm:foreach delegation in Link:

foreach

regionName

in

regionNames

:if delegation Name is a prefix of region

Name, return true and abort these stepsreturn falseNote:We consider all delegations, not just SelectedDelegation

, to maximize flexibility. This is cheap because there's no table lookup.

13Slide14

determine whether in default-free zone

Input:interest, with Link but without

SelectedDelegation

FIB lookup result for the first delegation

Algorithm:

if FIB lookup result is the root entry (

ndn

:/), and the entry has at least one nexthop record, return false

return true

Note:

FIB lookup will never return "no match", because the FIB always has a root entry, but this entry can have no

nexthop

record.

We consider only the first delegation, to minimize table lookup cost. Checking all delegations probably gives better results, but it requires too many lookups.

14Slide15

choose and set SelectedDelegation

Input:

interest, with Link but without

SelectedDelegation

FIB

Algorithm:

foreach

delegation in Link, sorted by increasing Preferencelookup FIB with delegation Name

if a match (with non-zero

nexthop

records) is found, insert

SelectedDelegation

field with the index of this delegation, return the match, and abort these steps

lookup FIB with Interest NameNote:

This is the only operation that requires multiple table lookups, but it happens only once on an Interest's path at the first default-free router.

15Slide16

16

outgoing Data

set PIT

straggler

timer

timer event

Interest

finalize

ContentStore

hit pipelineSlide17

dispatch incoming Interest to strategy

Given FIB entry and incoming Interest, determine which strategy should process this Interest, and trigger that strategy

17Slide18

outgoing Interest pipeline

18

insert

OutRecord

pick Interest

send Interest

violates /

localhost

?

Y

(drop)

violates /

localhop

?

(drop)

Y

N

NSlide19

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

The last incoming Interest is pickedThis is a simple choice until we understand the effect of guiders better

19Slide20

Interest reject pipeline

Process an Interest that has been decided that it has nowhere to go

20

set PIT straggler timer

timer event

cancel

unsatisfy

& straggler timer

Interest

finalizeSlide21

Interest unsatisfied pipeline

21

invoke PIT unsatisfied callback

Interest

finalizeSlide22

Interest finalize pipeline

22

PIT delete

Dead Nonce List insert

need Dead Nonce List insert?

Y

NSlide23

Dead Nonce List insert

Dead Nonce List insertion is needed if:Interest is

unsatisified

,

OR

Interest

has

MustBeFresh=yes and Data FreshnessPeriod is shorter than 6 secondsNonces in OutRecords

are inserted to Dead Nonce List.

23Slide24

incoming Data pipeline

24

PIT match

receive Data

Y

CS insert

outgoing Data

cancel

unsatisfy

& straggler timer

mark PIT satisfied

set PIT straggler timer

foreach

PIT entry

foreach

pending

downstream

Data unsolicited

timer event

violates /

localhost

?

Y

(drop)

invoke PIT satisfy callback

Interest

finalize

Dead Nonce List insert

need Dead Nonce List insert?

Y

N

N

NSlide25

set PIT straggler timer

Given PIT entry, set a straggler timer which fires after a short timeT

straggler

= 100ms

When the straggler timer fires, PIT entry is deleted

The purpose of retaining PIT entry for a short time is to facilitate loop detection and to collect measurement for non-fastest

upstreams

25Slide26

Data unsolicited pipeline

26

accept to cache?

Y

CS insert

NSlide27

outgoing Data pipeline

27

traffic manager

send Data

violates /

localhost

?

Y

(drop)

NSlide28

Pass-through traffic manager

Provide a traffic manager that does nothing and merely passes Data packet to the next step

28