Presentation is loading. Please wait.

Presentation is loading. Please wait.

NFD forwarding pipelines Junxiao Shi, 2015-08-14 1.

Similar presentations


Presentation on theme: "NFD forwarding pipelines Junxiao Shi, 2015-08-14 1."— Presentation transcript:

1 NFD forwarding pipelines Junxiao Shi, 2015-08-14 1

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 2

3 Pipelines incoming Interest ContentStore miss ContentStore hit Interest loop outgoing Interest Interest reject Interest unsatisfied Interest finalize incoming Data Data unsolicited outgoing Data 3

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

5 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 strategy

6 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 hit

7 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 N

8 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. 8

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

10 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 Interest 10

11 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 Y

12 set PIT unsatisfy timer Given 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 12

13 determine whether in producer region Input: regionNames: the router's region names, from configuration interest Algorithm: 1.foreach delegation in Link: 1.foreach regionName in regionNames: 1.if delegation Name is a prefix of regionName, return true and abort these steps 2.return false Note: We consider all delegations, not just SelectedDelegation, to maximize flexibility. This is cheap because there's no table lookup. 13

14 determine whether in default- free zone Input: interest, with Link but without SelectedDelegation FIB lookup result for the first delegation Algorithm: 1.if FIB lookup result is the root entry (ndn:/), and the entry has at least one nexthop record, return false 2.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. 14

15 choose and set SelectedDelegation Input: interest, with Link but without SelectedDelegation FIB Algorithm: 1.foreach delegation in Link, sorted by increasing Preference 1.lookup FIB with delegation Name 2.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 2.lookup FIB with Interest Name Note: 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. 15

16 16 outgoing Data set PIT straggler timer timer event Interest finalize ContentStore hit pipeline

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

18 outgoing Interest pipeline 18 insert OutRecord pick Interest send Interest violates /localhost? Y (drop) violates /localhop? (drop) Y NN

19 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 picked This is a simple choice until we understand the effect of guiders better 19

20 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 finalize

21 Interest unsatisfied pipeline 21 invoke PIT unsatisfied callback Interest finalize

22 Interest finalize pipeline 22 PIT delete Dead Nonce List insert need Dead Nonce List insert? Y N

23 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 seconds Nonces in OutRecords are inserted to Dead Nonce List. 23

24 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 N

25 set PIT straggler timer Given PIT entry, set a straggler timer which fires after a short time T 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 25

26 Data unsolicited pipeline 26 accept to cache? Y CS insert N

27 outgoing Data pipeline 27 traffic managersend Data violates /localhost? Y (drop) N

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


Download ppt "NFD forwarding pipelines Junxiao Shi, 2015-08-14 1."

Similar presentations


Ads by Google