Feature #2201
Updated by Junxiao Shi over 10 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 self-signed
* ndn:/Z/A/nrd signed by ndn:/Z/A
* ndn:/Z/A/B/C signed by ndn:/Z/A
* ndn:/Z/A/B/C/D/E/nrd signed by ndn:/Z/A/B/C
* ndn:/Z/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 a trust anchor for prefix registration using `ndn:/localhop/nfd/rib` command prefix
* set broadcast strategy for ndn:/
4. start NFD (including RIB Daemon) on A,B
5. start ndns server repo-ng on A, and publish put all certificates generated in step 1 from this ndns server 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 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
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. start ndnpingserver for ndn:/Z/A/H on A, defer 5 seconds
14. inspect RIB on B, fail the test case if Route for ndn:/Z/A toward A does not exist
15. stop ndnpingserver from step 8, defer 5 seconds
16. inspect RIB on B, fail the test case if Route for ndn:/Z/A toward A does not exist
17. stop ndnpingserver from step 13, defer 5 seconds
18. inspect RIB on B, fail the test case if Route for ndn:/Z/A toward A exists
19. start ndnpingserver for ndn:/Z/A/B/C/D on A, defer 5 seconds
20. inspect RIB on B, fail the test case if Route for ndn:/Z/A toward A exists, fail the test case if Route for ndn:/Z/A/B/C toward A does not exist
21. stop ndnpingserver from step 19
22. start ndnpingserver for ndn:/Z/A/B/C/D/E on A, defer 5 seconds
23. inspect RIB on B, fail the test case if Route for ndn:/Z/A toward A exists, 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/B/C/D/E toward A does not exist
24. defer 80 seconds
25. inspect RIB on B, fail the test case if Route for ndn:/Z/A/B/C/D/E toward A does not exist
26. start ndnpingserver for ndn:/Z/F/I on A, defer 5 seconds
26. inspect RIB on B, fail the test case if Route for ndn:/Z/F toward A exists