Test Case - automatic prefix propagation test scenario

Topology

A--B

A is a NDN host while B is the remote hub / gateway router. IPv4 udp tunnel is used.

Script is invoked on host A. It can control B via ssh

Description

The script test automatic prefix propagation procedure. In case of a failure, the detailed log can be found under: test_auto_prefix_propagate/logs/auto_prefix_propagate.log

Steps

  1. generate certificates on A for these identities, in RIB daemon's KeyChain: ndn:/Z/A self-signed ndn:/Z/A/nrd signed by ndn:/Z/A ndn:/Z/A/B/C signed by ndn:/Z/A ndn:/Z/F self-signed

  2. configure NFD on A: enable automatic prefix propagation set automatic prefix propagation refresh time to 15 seconds put all certificates generated in step 1 except ndn:/Z/A into NFD's KeyChain

  3. configure NFD on B: set UDP face timeout to 35 seconds enable acceptance of prefix registration using ndn:/localhop/nfd/rib command prefix make ndn:/Z/A the trust anchor for prefix registration using ndn:/localhop/nfd/rib command prefix set multicast strategy for ndn:/

  4. start NFD on A,B

  5. start repo-ng on A to listen on ndn:/ prefix, and put all certificates generated in step 1 into this repo via TCP bulk insert protocol

  6. start nfd-autoreg --prefix=/Z on B

  7. execute nfdc on A to create a face toward B over UDP

  8. start ndnpingserver for ndn:/Z/A/G on A, defer 5 seconds

  9. inspect RIB on B, fail the test case if route for ndn:/Z/A toward A exists

  10. execute nfdc on A to register a route for ndn:/localhop/nfd on the face created in step 7, defer 5 seconds

  11. inspect RIB on B, fail the test case if route for ndn:/Z/A toward A does not exist

  12. start ndnpingserver for ndn:/Z/A/H on A, defer 5 seconds

  13. inspect RIB on B, fail the test case if route for ndn:/Z/A toward A does not exist

  14. stop ndnpingserver from step 8, defer 5 seconds

  15. inspect RIB on B, fail the test case if route for ndn:/Z/A toward A does not exist

  16. stop ndnpingserver from step 13, defer 5 seconds

  17. inspect RIB on B, fail the test case if route for ndn:/Z/A toward A exists

  18. start ndnpingserver for ndn:/Z/A/B/C/D on A, defer 5 seconds

  19. inspect RIB on B, fail the test case if route for ndn:/Z/A/B/C toward A exists, fail the test case if route for ndn:/Z/A toward A does not exist

  20. defer 80 seconds

  21. inspect RIB on B, fail the test case if route for ndn:/Z/A toward A does not exist

  22. start ndnpingserver for ndn:/Z/F/I on A, defer 5 seconds

  23. inspect RIB on B, fail the test case if route for ndn:/Z/F toward A exists

Return value

PASS of all tests finished successfully.