NFD forwarding pipelines
description
Transcript of NFD forwarding pipelines
![Page 1: NFD forwarding pipelines](https://reader033.fdocuments.net/reader033/viewer/2022050806/56816271550346895dd2dfe2/html5/thumbnails/1.jpg)
1
NFD forwarding pipelines
Junxiao Shi, 2014-01-27
![Page 2: NFD forwarding pipelines](https://reader033.fdocuments.net/reader033/viewer/2022050806/56816271550346895dd2dfe2/html5/thumbnails/2.jpg)
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
![Page 3: NFD forwarding pipelines](https://reader033.fdocuments.net/reader033/viewer/2022050806/56816271550346895dd2dfe2/html5/thumbnails/3.jpg)
3
Pipelines• incoming Interest• Interest loop• outgoing Interest• Interest rebuff• Interest unsatisfied• incoming Data• Data unsolicited• outgoing Data• PIT delete
![Page 4: NFD forwarding pipelines](https://reader033.fdocuments.net/reader033/viewer/2022050806/56816271550346895dd2dfe2/html5/thumbnails/4.jpg)
4
Legend in diagrams
building block
pipeline
tables feature
strategy
face feature
![Page 5: NFD forwarding pipelines](https://reader033.fdocuments.net/reader033/viewer/2022050806/56816271550346895dd2dfe2/html5/thumbnails/5.jpg)
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
![Page 6: NFD forwarding pipelines](https://reader033.fdocuments.net/reader033/viewer/2022050806/56816271550346895dd2dfe2/html5/thumbnails/6.jpg)
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
![Page 7: NFD forwarding pipelines](https://reader033.fdocuments.net/reader033/viewer/2022050806/56816271550346895dd2dfe2/html5/thumbnails/7.jpg)
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
![Page 8: NFD forwarding pipelines](https://reader033.fdocuments.net/reader033/viewer/2022050806/56816271550346895dd2dfe2/html5/thumbnails/8.jpg)
8
dispatch incoming Interest to strategy• Given FIB entry and incoming Interest, determine which strategy
should process this Interest, and trigger that strategy
![Page 9: NFD forwarding pipelines](https://reader033.fdocuments.net/reader033/viewer/2022050806/56816271550346895dd2dfe2/html5/thumbnails/9.jpg)
9
outgoing Interest pipeline
insert OutRecordpick Interest send Interestset PIT
unsatisfy timer
Interest unsatisfied
timer event
![Page 10: NFD forwarding pipelines](https://reader033.fdocuments.net/reader033/viewer/2022050806/56816271550346895dd2dfe2/html5/thumbnails/10.jpg)
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
![Page 11: NFD forwarding pipelines](https://reader033.fdocuments.net/reader033/viewer/2022050806/56816271550346895dd2dfe2/html5/thumbnails/11.jpg)
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
![Page 12: NFD forwarding pipelines](https://reader033.fdocuments.net/reader033/viewer/2022050806/56816271550346895dd2dfe2/html5/thumbnails/12.jpg)
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
![Page 13: NFD forwarding pipelines](https://reader033.fdocuments.net/reader033/viewer/2022050806/56816271550346895dd2dfe2/html5/thumbnails/13.jpg)
13
Interest unsatisfied pipeline
invoke PIT unsatisfied callback
cancel strategy timers PIT delete
![Page 14: NFD forwarding pipelines](https://reader033.fdocuments.net/reader033/viewer/2022050806/56816271550346895dd2dfe2/html5/thumbnails/14.jpg)
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
![Page 15: NFD forwarding pipelines](https://reader033.fdocuments.net/reader033/viewer/2022050806/56816271550346895dd2dfe2/html5/thumbnails/15.jpg)
15
outgoing Data pipeline
traffic manager send Data
![Page 16: NFD forwarding pipelines](https://reader033.fdocuments.net/reader033/viewer/2022050806/56816271550346895dd2dfe2/html5/thumbnails/16.jpg)
16
Pass-through traffic manager• Goal: provide a traffic manager that does nothing and merely passes
Data packet to the next step
![Page 17: NFD forwarding pipelines](https://reader033.fdocuments.net/reader033/viewer/2022050806/56816271550346895dd2dfe2/html5/thumbnails/17.jpg)
17
Data unsolicited pipeline
accept to cache?
Y
CS insert
![Page 18: NFD forwarding pipelines](https://reader033.fdocuments.net/reader033/viewer/2022050806/56816271550346895dd2dfe2/html5/thumbnails/18.jpg)
18
PIT delete pipeline
cancel strategy timers PIT delete
![Page 19: NFD forwarding pipelines](https://reader033.fdocuments.net/reader033/viewer/2022050806/56816271550346895dd2dfe2/html5/thumbnails/19.jpg)
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
![Page 20: NFD forwarding pipelines](https://reader033.fdocuments.net/reader033/viewer/2022050806/56816271550346895dd2dfe2/html5/thumbnails/20.jpg)
20
broadcast strategy• Provide a strategy that sends Interest to all nexthops in FIB entry
![Page 21: NFD forwarding pipelines](https://reader033.fdocuments.net/reader033/viewer/2022050806/56816271550346895dd2dfe2/html5/thumbnails/21.jpg)
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
![Page 22: NFD forwarding pipelines](https://reader033.fdocuments.net/reader033/viewer/2022050806/56816271550346895dd2dfe2/html5/thumbnails/22.jpg)
22
best route strategy• Provide a strategy that sends Interest to the first nexthop in FIB entry