nfd forwarding pipelines junxiao shi, 2014-01-27 1
TRANSCRIPT
![Page 1: NFD forwarding pipelines Junxiao Shi, 2014-01-27 1](https://reader035.vdocuments.us/reader035/viewer/2022062407/56649d8b5503460f94a71c2b/html5/thumbnails/1.jpg)
1
NFD forwarding pipelines
Junxiao Shi, 2014-01-27
![Page 2: NFD forwarding pipelines Junxiao Shi, 2014-01-27 1](https://reader035.vdocuments.us/reader035/viewer/2022062407/56649d8b5503460f94a71c2b/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 Junxiao Shi, 2014-01-27 1](https://reader035.vdocuments.us/reader035/viewer/2022062407/56649d8b5503460f94a71c2b/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 Junxiao Shi, 2014-01-27 1](https://reader035.vdocuments.us/reader035/viewer/2022062407/56649d8b5503460f94a71c2b/html5/thumbnails/4.jpg)
4
Legend in diagrams
building block
pipeline
tables feature
strategy
face feature
![Page 5: NFD forwarding pipelines Junxiao Shi, 2014-01-27 1](https://reader035.vdocuments.us/reader035/viewer/2022062407/56649d8b5503460f94a71c2b/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 Junxiao Shi, 2014-01-27 1](https://reader035.vdocuments.us/reader035/viewer/2022062407/56649d8b5503460f94a71c2b/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 Interestdetect loop
Interest loop
Y
insert InRecord
foreachnexthop
![Page 7: NFD forwarding pipelines Junxiao Shi, 2014-01-27 1](https://reader035.vdocuments.us/reader035/viewer/2022062407/56649d8b5503460f94a71c2b/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 Junxiao Shi, 2014-01-27 1](https://reader035.vdocuments.us/reader035/viewer/2022062407/56649d8b5503460f94a71c2b/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 Junxiao Shi, 2014-01-27 1](https://reader035.vdocuments.us/reader035/viewer/2022062407/56649d8b5503460f94a71c2b/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 Junxiao Shi, 2014-01-27 1](https://reader035.vdocuments.us/reader035/viewer/2022062407/56649d8b5503460f94a71c2b/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 Junxiao Shi, 2014-01-27 1](https://reader035.vdocuments.us/reader035/viewer/2022062407/56649d8b5503460f94a71c2b/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 Junxiao Shi, 2014-01-27 1](https://reader035.vdocuments.us/reader035/viewer/2022062407/56649d8b5503460f94a71c2b/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 Junxiao Shi, 2014-01-27 1](https://reader035.vdocuments.us/reader035/viewer/2022062407/56649d8b5503460f94a71c2b/html5/thumbnails/13.jpg)
13
Interest unsatisfied pipeline
invoke PIT unsatisfied callback
cancel strategy timers PIT delete
![Page 14: NFD forwarding pipelines Junxiao Shi, 2014-01-27 1](https://reader035.vdocuments.us/reader035/viewer/2022062407/56649d8b5503460f94a71c2b/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 Junxiao Shi, 2014-01-27 1](https://reader035.vdocuments.us/reader035/viewer/2022062407/56649d8b5503460f94a71c2b/html5/thumbnails/15.jpg)
15
outgoing Data pipeline
traffic manager send Data
![Page 16: NFD forwarding pipelines Junxiao Shi, 2014-01-27 1](https://reader035.vdocuments.us/reader035/viewer/2022062407/56649d8b5503460f94a71c2b/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 Junxiao Shi, 2014-01-27 1](https://reader035.vdocuments.us/reader035/viewer/2022062407/56649d8b5503460f94a71c2b/html5/thumbnails/17.jpg)
17
Data unsolicited pipeline
accept to cache?
Y
CS insert
![Page 18: NFD forwarding pipelines Junxiao Shi, 2014-01-27 1](https://reader035.vdocuments.us/reader035/viewer/2022062407/56649d8b5503460f94a71c2b/html5/thumbnails/18.jpg)
18
PIT delete pipeline
cancel strategy timers PIT delete
![Page 19: NFD forwarding pipelines Junxiao Shi, 2014-01-27 1](https://reader035.vdocuments.us/reader035/viewer/2022062407/56649d8b5503460f94a71c2b/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 Junxiao Shi, 2014-01-27 1](https://reader035.vdocuments.us/reader035/viewer/2022062407/56649d8b5503460f94a71c2b/html5/thumbnails/20.jpg)
20
broadcast strategy
• Provide a strategy that sends Interest to all nexthops in FIB entry
![Page 21: NFD forwarding pipelines Junxiao Shi, 2014-01-27 1](https://reader035.vdocuments.us/reader035/viewer/2022062407/56649d8b5503460f94a71c2b/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 Junxiao Shi, 2014-01-27 1](https://reader035.vdocuments.us/reader035/viewer/2022062407/56649d8b5503460f94a71c2b/html5/thumbnails/22.jpg)
22
best route strategy
• Provide a strategy that sends Interest to the first nexthop in FIB entry