NFD forwarding pipelines Junxiao Shi 2014 01 29

  • Slides: 19
Download presentation
NFD forwarding pipelines Junxiao Shi, 2014 -01 -29 1

NFD forwarding pipelines Junxiao Shi, 2014 -01 -29 1

Overview • Forwarding consists of pipelines and strategies • Pipeline: a series of steps

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 2

Pipelines • incoming Interest • Interest loop • outgoing Interest • Interest rebuff •

Pipelines • incoming Interest • Interest loop • outgoing Interest • Interest rebuff • Interest unsatisfied • incoming Data • Data unsolicited • outgoing Data 3

Legend in diagrams pipeline building block strategy tables feature face feature 4

Legend in diagrams pipeline building block strategy tables feature face feature 4

incoming Interest loop incoming Data unsolicited strategy API broadcast strategy original strategy best route

incoming Interest loop incoming Data unsolicited strategy API broadcast strategy original strategy best route strategy outgoing Interest rebuff Interest unsatisfied outgoing Data 5

incoming Interest pipeline Interest loop Y receive Interest PIT insert CS lookup Y outgoing

incoming Interest pipeline Interest loop Y receive Interest PIT insert CS lookup Y outgoing Data detect loop insert In. Record appchosen nexthops ? Y FIB lookup foreach nexthop cancel unsatisfy & straggler timer dispatch to strategy outgoing Interest 6

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

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 7

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

dispatch incoming Interest to strategy • Given FIB entry and incoming Interest, determine which strategy should process this Interest, and trigger that strategy 8

Interest loop pipeline • Process an Interest that has been considered looped • This

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 9

outgoing Interest pipeline pick Interest insert Out. Record set PIT unsatisfy timer send Interest

outgoing Interest pipeline pick Interest insert Out. Record set PIT unsatisfy timer send Interest timer event Interest unsatisfied 10

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

pick outgoing Interest packet • Given PIT entry and nexthop, decide the guiders on the outgoing Interest • Nonce and Interest. Lifetime come from an In. Record with longest remaining lifetime, however In. Record with same Face as the nexthop cannot be used • Interest. Lifetime is carried from the original packet without deducting the time elapsed • Scope is the most relaxed among all unexpired In. Records • The last incoming Interest is picked • This is a simple choice until we understand the effect of guiders better 11

set PIT unsatisfy timer • Given PIT entry, set an unsatisfy timer which fires

set PIT unsatisfy timer • Given PIT entry, set an unsatisfy timer which fires when Interest. Lifetime expires for all unexpired In. Records • When the unsatisfy timer fires, Interest unsatisfied pipeline is entered 12

Interest rebuff pipeline • Process an Interest that has been decided that it has

Interest rebuff pipeline • Process an Interest that has been decided that it has nowhere to go set PIT straggler timer event PIT delete 13

Interest unsatisfied pipeline invoke PIT unsatisfied callback PIT delete 14

Interest unsatisfied pipeline invoke PIT unsatisfied callback PIT delete 14

incoming Data pipeline receive Data PIT match Data unsolicited PIT delete timer event Y

incoming Data pipeline receive Data PIT match Data unsolicited PIT delete timer event Y CS insert foreach cancel unsatisfy PIT entry & straggler timer invoke PIT satisfy callback mark PIT satisfied foreach pending downstream set PIT straggler timer outgoing Data 15

set PIT straggler timer • Given PIT entry, set a straggler timer which fires

set PIT straggler timer • Given PIT entry, set a straggler timer which fires after a short time • Tstraggler = 100 ms • 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 16

Data unsolicited pipeline accept to cache? Y CS insert 17

Data unsolicited pipeline accept to cache? Y CS insert 17

outgoing Data pipeline traffic manager send Data 18

outgoing Data pipeline traffic manager send Data 18

Pass-through traffic manager • Provide a traffic manager that does nothing and merely passes

Pass-through traffic manager • Provide a traffic manager that does nothing and merely passes Data packet to the next step 19