Project

General

Profile

Feature #3157

Updated by Junxiao Shi over 8 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

Back