Feature #2201
Updated by Junxiao Shi almost 11 years ago
Develop an [integration test](http://gerrit.named-data.net/#/admin/projects/NFD/integration-tests) for remote prefix registration.
## Topology
A---B
IPv4 UDP tunnel is used.
## Steps
1. generate certificates on A for these identities, in RIB daemon's KeyChain:
* ndn:/Z/A ndn:/A self-signed
* ndn:/Z/A/nrd ndn:/A/nrd signed by ndn:/Z/A ndn:/A
* ndn:/Z/A/B/C ndn:/A/B/C signed by ndn:/Z/A ndn:/A
* ndn:/Z/A/B/C/D/E/nrd ndn:/A/B/C/D/E/nrd signed by ndn:/Z/A/B/C ndn:/A/B/C
* ndn:/Z/F ndn:/F self-signed
2. configure NFD on A:
* enable remote prefix registration
* set remote registration refreshing time to 15 seconds
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 ndn:/A a trust anchor for prefix remote registration using `ndn:/localhop/nfd/rib` command prefix
* set broadcast strategy for ndn:/ UDP face timeout to 35 seconds
4. start NFD (including RIB Daemon) on A,B
5. start repo-ng on A, and put all certificates generated in step 1 into the repository
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 ndn:/A/G on A, defer 5 seconds
9. 6. inspect RIB on B, fail the test case if Route for ndn:/Z/A ndn:/A toward A exists
10. execute nfdc on A to register a Route for ndn:/localhop/nfd on the face created in step 7
11. defer 5 seconds
12. inspect RIB on B, fail the test case if Route for ndn:/Z/A toward A does not exist
13. 7. start ndnpingserver for ndn:/Z/A/H ndn:/A/H on A, defer 5 seconds
14. 8. inspect RIB on B, fail the test case if Route for ndn:/Z/A ndn:/A toward A does not exist
15. 9. stop ndnpingserver from step 8, 5, defer 5 seconds
16. 10. inspect RIB on B, fail the test case if Route for ndn:/Z/A ndn:/A toward A does not exist
17. 11. stop ndnpingserver from step 13, 7, defer 5 seconds
18. 12. inspect RIB on B, fail the test case if Route for ndn:/Z/A ndn:/A toward A exists
19. 13. start ndnpingserver for ndn:/Z/A/B/C/D ndn:/A/B/C/D on A, defer 5 seconds
20. 14. inspect RIB on B, fail the test case if Route for ndn:/Z/A ndn:/A toward A exists, does not exist, fail the test case if Route for ndn:/Z/A/B/C ndn:/A/B/C toward A does not exist exists
21. 15. stop ndnpingserver from step 19 13
22. 16. start ndnpingserver for ndn:/Z/A/B/C/D/E ndn:/A/B/C/D/E on A, defer 5 seconds
23. 17. inspect RIB on B, fail the test case if Route for ndn:/Z/A ndn:/A toward A exists, fail the test case if Route for ndn:/Z/A/B/C ndn:/A/B/C/D/E toward A exists, fail the test case if Route for ndn:/Z/A/B/C/D/E toward A does not exist
24. 18. defer 80 45 seconds
25. 19. inspect RIB on B, fail the test case if Route for ndn:/Z/A/B/C/D/E ndn:/A/B/C/D/E toward A does not exist
26. 20. start ndnpingserver for ndn:/Z/F/I ndn:/F/I on A, defer 5 seconds
26. 21. inspect RIB on B, fail the test case if Route for ndn:/Z/F ndn:/F or ndn:/F/I toward A exists