NFD forwarding pipelines Junxiao Shi Teng Liang 2018

  • Slides: 19
Download presentation
NFD forwarding pipelines Junxiao Shi, Teng Liang 2018 -04 -11 1

NFD forwarding pipelines Junxiao Shi, Teng Liang 2018 -04 -11 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 loop Content. Store miss Content. Store hit outgoing

Pipelines • • • incoming Interest loop Content. Store miss Content. Store hit outgoing Interest finalize • • • incoming Data unsolicited outgoing Data incoming Nack outgoing Nack 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

Pipelines Overall Workflow Strategy: update PIT entry expiry timer Interest loop incoming Interest Strategy:

Pipelines Overall Workflow Strategy: update PIT entry expiry timer Interest loop incoming Interest Strategy: after receive Interest outgoing Interest Content. Store miss Content. Store hit Interest finalize Strategy: after Cs Hit Strategy: after receive Data incoming Data Strategy: before satisfy Interest expiry timer outgoing Data unsolicited incoming Nack Strategy: after receive Nack outgoing Nack 5

incoming Interest pipeline receive Interest PIT insert violates /localhost? detect duplicate Nonce in PIT

incoming Interest pipeline receive Interest PIT insert violates /localhost? detect duplicate Nonce in PIT entry N Y (drop) detect duplicate Nonce with Dead Nonce List Cancel expiry timer N Y Y Interest loop is pending? N N CS lookup N reaching producer region? Y N Y Content. Store miss Content. Store hit strip forwarding hint 6

detect duplicate Nonce • If the Name+Nonce of the incoming Interest appear in Dead

detect duplicate Nonce • If the Name+Nonce of the incoming Interest appear in Dead Nonce List, or any In. Record or Out. Record in PIT entry contains the same Nonce as the incoming Interest, a duplicate Nonce is detected. • If the duplicate Nonce is found in In. Record only, this is a multi-path arrival, and not a loop. • If the duplicate Nonce is found in Out. Record 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 In. Record. 7

Interest loop pipeline Is point-to-point face? Y reason=Duplicate send Nack N (drop) • Process

Interest loop pipeline Is point-to-point face? Y reason=Duplicate send Nack N (drop) • Process an Interest that has been considered looped. • Keep this simple for now: unconditionally send Nack-Duplicate when duplicate Nonce is detected. • Don't enter outgoing Nack pipeline: in-record isn't inserted yet. • In the future, strategy could be invoked, because duplicate Nonce may be multi-path arrival instead of loop. 8

Content. Store hit pipeline Interest finalize timer event set PIT expiry timer to now

Content. Store hit pipeline Interest finalize timer event set PIT expiry timer to now Strategy: after CS hit • Dispatch matched Data in CS to strategy • Given PIT entry and incoming Interest, determine which strategy should process this matched Data, and trigger that strategy 9

Content. Store miss pipeline • This pipeline is entered when an incoming Interest •

Content. Store miss pipeline • This pipeline is entered when an incoming Interest • is pending (so Content. Store lookup is unnecessary), or • is miss from Content. Store • This pipeline will start forwarding the Interest set PIT expiry timer to the time that the last PIT in-record expires insert In. Record Strategy: after receive Interest N has Next. Hop. Face. Id? Y chosen Next. Hop face exists? N (drop) Y outgoing Interest • Given PIT entry and incoming Interest, determine which strategy should process this Interest, and trigger that strategy 10

outgoing Interest pipeline insert Out. Record send Interest 11

outgoing Interest pipeline insert Out. Record send Interest 11

Interest finalize pipeline need Dead Nonce List insert? Y Dead Nonce List insert N

Interest finalize pipeline need Dead Nonce List insert? Y Dead Nonce List insert N PIT delete • Dead Nonce List insertion is needed if: • Interest is unsatisified, OR • Interest has Must. Be. Fresh=yes and Data Freshness. Period is shorter than 6 seconds • Nonces in Out. Records are inserted to Dead Nonce List. 12

Incoming Data pipeline Receive Data N Data unsolicited N Violates localhost? Y (drop) PIT

Incoming Data pipeline Receive Data N Data unsolicited N Violates localhost? Y (drop) PIT match? foreach PIT entry Y set PIT expiry timer to now CS insert Y Only one PIT matched? set PIT expiry timer to now Strategy: after receive Data mark PIT satisfied Dead Nonce List insert if needed Clear PIT out records Remember pending downstreams Strategy: before satisfy Interest N mark PIT satisfied Dead Nonce List insert if needed Clear PIT in and out records outgoing Data 13

Dispatch incoming Data to strategy • Given PIT entry, determine which strategy should process

Dispatch incoming Data to strategy • Given PIT entry, determine which strategy should process this Data, and trigger that strategy • Strategies can use strategy: : send. Data. To. All helper function to send Data to all matched out Faces. 14

Data unsolicited pipeline accept to cache? N (drop) Y CS insert 15

Data unsolicited pipeline accept to cache? N (drop) Y CS insert 15

outgoing Data pipeline violates /localhost? Y (drop) N traffic manager send Data 16

outgoing Data pipeline violates /localhost? Y (drop) N traffic manager send Data 16

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 17

Incoming Nack pipeline is point-to-point face? receive Nack N (drop) Y PIT match N

Incoming Nack pipeline is point-to-point face? receive Nack N (drop) Y PIT match N (drop) Y has out-record with correct Nonce? N (drop) Y mark out-record as Nacked Strategy: after receive Nack 18

Outgoing Nack pipeline Strategy: send Nack has inrecord? Y Is point-to-point face? N N

Outgoing Nack pipeline Strategy: send Nack has inrecord? Y Is point-to-point face? N N (drop) Y erase in-record send Nack 19