- nack-test.sh
- README.md
- test_nack.py
test_nack/README.md
Test Nack scenario
Topology
B
|
A--D
|
C
Steps
- Start NFD on A, B, C, and D
- Configure NFD on A, C, and D to use best-route strategy
- Configure NFD on B to use best-route v1 strategy, which will not transmit or process Nacks
- On A, create a route for prefix /P toward B and C: set the cost toward B to be 10. set the cost toward C to be 20.
- On D, create a face to A and a route for prefix /P toward A.
- On D, express an Interest for /P/1 with InterestLifetime=4000ms and no consumer retransmission; wait 8000ms since expressing Interest, fail the scenario if Nack comes back;
- On D, express an Interest for /P/2 with InterestLifetime=4000ms, and retransmit with a new Nonce after 200ms; wait 8000ms since expressing first Interest, fail the scenario if Nack comes back; reason: A shouldn't return a Nack when some upstream times out, even if some other upstream returns Nack;
- Configure NFD on B to use best-route strategy
- On B and C, configure unidirectional link delay toward A as 500ms
- On D, express an Interest for /P/3 with InterestLifetime=4000ms, and retransmit with nonce2 after 200ms; wait 3000ms since expressing first Interest, expect exactly one Nack comes back where Reason is NoRoute and Nonce equals nonce2, otherwise fail the scenario; reason: A should return a Nack after both upstreams have returned Nack. Use ndndump on D to record traffic for analysis
- On B, configure unidirectional link delay toward A as 1000ms
- On D, express an Interest for /P/4 with InterestLifetime=4000ms, and retransmit with nonce2 after 200ms; wait 3000ms since expressing first Interest, expect exactly one Nack comes back where Reason is NoRoute and Nonce equals nonce2, otherwise fail the scenario; reason: the Nack should carry the latest incoming Nonce from downstream, not the Nonce from last incoming Nack. Use ndndump on D to record traffic for analysis