Feature #3157
Updated by Junxiao Shi about 9 years ago
Develop an [[IntegrationTests]] scenario to test Nack NACK with best-route strategy. Topology: B | A---D | C Procedure: 1. start NFD on A,B,C,D 2. configure NFD on A,C,D to use best-route strategy 3. configure NFD on B to use best-route v1 strategy, which will not transmit or process Nack NACK 4. on A, create a route for prefix `ndn:/P` toward B and C, where the cost toward B is lower than the cost toward C 5. on D, create a route for prefix `ndn:/P` toward A 6. on D, express an Interest for `ndn:/P/1` with InterestLifetime=4000ms and no consumer retransmission; wait 8000ms since expressing Interest, fail the scenario if Nack NACK comes back; reason: A shouldn't generate a Nack NACK when upstream times out 7. on D, express an Interest for `ndn:/P/2` with InterestLifetime=4000ms, and retransmit with a new Nonce after 200ms; wait 8000ms since expressing first Interest, fail the scenario if Nack NACK comes back; reason: A shouldn't return a Nack NACK when some upstream times out, even if some other upstream returns Nack NACK 8. configure NFD on B to use best-route strategy 9. on B and C, configure unidirectional link delay toward A as 500ms 10. on D, express an Interest for `ndn:/P/3` with InterestLifetime=4000ms, and retransmit with nonce2 after 200ms; wait 3000ms since expressing first Interest, expect exactly one Nack NACK comes back where Reason is NoRoute and Nonce equals nonce2, otherwise fail the scenario; reason: A should return a Nack NACK after both upstreams have returned Nack NACK 11. on B, configure unidirectional link delay toward A as 1000ms 12. on D, express an Interest for `ndn:/P/4` with InterestLifetime=4000ms, and retransmit with nonce2 after 200ms; wait 3000ms since expressing first Interest, expect exactly one Nack NACK comes back where Reason is NoRoute and Nonce equals nonce2, otherwise fail the scenario; reason: the Nack NACK should carry the latest incoming Nonce from downstream, not the Nonce from last incoming Nack NACK