Project

General

Profile

Actions

Feature #2201

closed

Remote prefix registration test scenario

Added by Junxiao Shi over 9 years ago. Updated over 8 years ago.

Status:
Closed
Priority:
Normal
Assignee:
Category:
Integration Tests
Target version:
Start date:
Due date:
% Done:

100%

Estimated time:
6.00 h

Description

Develop an integration test 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 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
  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
  27. inspect RIB on B, fail the test case if Route for ndn:/Z/F toward A exists

Files

result_2049,1.tar (130 KB) result_2049,1.tar Junxiao Shi, 05/24/2015 11:34 AM
result_2049,2.tar (130 KB) result_2049,2.tar Junxiao Shi, 05/26/2015 08:05 AM
result_2049,3.tar (130 KB) result_2049,3.tar Junxiao Shi, 05/27/2015 04:35 AM
20150916133511.tgz (150 KB) 20150916133511.tgz integ 2049,6 with NFD 1704,25 Junxiao Shi, 09/16/2015 08:01 AM
20150916194551.tgz (152 KB) 20150916194551.tgz integ 2049,6 Junxiao Shi, 09/16/2015 05:08 PM
20150917060121-1.tgz (155 KB) 20150917060121-1.tgz integ 2049,7 Junxiao Shi, 09/17/2015 07:01 AM
20150917060201-1.tgz (160 KB) 20150917060201-1.tgz integ 2049,7 with NFD 1704,25 Junxiao Shi, 09/17/2015 07:01 AM
20150917190008.tgz (152 KB) 20150917190008.tgz integ 2049,8 Junxiao Shi, 09/17/2015 03:58 PM

Related issues 3 (0 open3 closed)

Blocked by NFD - Feature #2056: nrd: remote prefix registrationClosedYanbiao Li

Actions
Blocked by NFD - Feature #2964: infoedit: configuration editorClosedYanbiao Li

Actions
Blocks NFD - Feature #3218: Automatic prefix propagation test scenarioClosedYanbiao Li

Actions
Actions #1

Updated by Junxiao Shi over 9 years ago

  • Blocked by Feature #2056: nrd: remote prefix registration added
Actions #2

Updated by Junxiao Shi over 9 years ago

  • Assignee set to Junxiao Shi

I'll write the design after I have better understanding of the mechanism.

After the design is ready, this Task needs to be reassigned for implementation.

Actions #3

Updated by Junxiao Shi over 9 years ago

  • Description updated (diff)
  • Assignee deleted (Junxiao Shi)
Actions #4

Updated by Junxiao Shi over 9 years ago

  • Description updated (diff)
Actions #5

Updated by Junxiao Shi over 9 years ago

  • Blocked by Feature #2237: Remote prefix registration: fetch certificates from requester added
Actions #6

Updated by Junxiao Shi about 9 years ago

  • Blocked by deleted (Feature #2237: Remote prefix registration: fetch certificates from requester)
Actions #7

Updated by Junxiao Shi about 9 years ago

  • Assignee set to Junxiao Shi

I'll update the spec so that it uses nfd-autoreg instead of relying on #2237.

Actions #8

Updated by Alex Afanasyev about 9 years ago

Which strategies should be used on prefixes and which router flags autoreg should use? I think there could be some issues here.

Actions #9

Updated by Junxiao Shi about 9 years ago

  • Description updated (diff)
  • Assignee changed from Junxiao Shi to Yanbiao Li

Changes made to the spec:

  • nfd-autoreg is used to allow B retrieve certificates from A
  • repo-ng is running on A to serve certificates; after #1529 is complete, this shall change to PIB service
  • broadcast strategy is used, to eliminate any possible failures due to strategy
  • ndn:/Z/A/B/C identity is acceptable by A to sign prefix registration commands: according to TR draft, rib identity suffix is optional

This Task is now assigned to @Yanbiao for implementation.

Actions #10

Updated by Junxiao Shi about 9 years ago

  • Description updated (diff)

20150126 conference call decides to use ndns instead of repo-ng to publish certificates, until PIB service is ready.

Actions #11

Updated by Yanbiao Li almost 9 years ago

  • % Done changed from 0 to 90
Actions #12

Updated by Yanbiao Li almost 9 years ago

There is a issue that blocks the implementation.

For current implementation of NDNS, to start a zone /Z, two prefixes /Z/KEY and /Z/NDNS are registered to the local RIB.

To ensure the cert of /Z/A/B/C can be fetched from the NDNS, we should start zone /Z/A. /Z/A/KEY and /Z/A/NDNS are registered to the local RIB. In this case, step 18 will fail because /Z/A/KEY and /Z/A/NDNS still exit in A's RIB, which prevent the unregistration of /Z/A from B's RIB.

We may have 3 solutions:

1\ change the design of integration test so that the name sever will run on another machine (e.g. C).

2\ change the implementation of RemoteRegistrator such that locally registered prefixes ends by /KEY or /NDNS will not trigger remote registration.

3\ change the implementation of NDNS such that we can publish the certs under the root zone /Z and can fetch them through NFD (e.g. registering /Z to the local RIB instead of /Z/KEY and /Z/NDNS).

We should make a decision or find another solution.

Actions #13

Updated by Junxiao Shi almost 9 years ago

All three solutions in note-12 are bad.

This exposes a deeper problem that may continue when certificates are published by PIB service:
http://www.lists.cs.ucla.edu/pipermail/nfd-dev/2015-April/001056.html

Please wait for a conclusion from that discussion before continuing with this Task.

Actions #14

Updated by Junxiao Shi almost 9 years ago

  • Description updated (diff)
  • Target version changed from v0.3 to v0.4

The scenario is changed back to publishing certificates with repo-ng in order to get around the problem in note-12.

This change has been approved in 20150506 conference call, but certificate publishing with repo-ng is specifically for this test, and it's not a recommendation for general usage.

Actions #16

Updated by Yanbiao Li almost 9 years ago

  • Status changed from New to Code review
Actions #19

Updated by Junxiao Shi almost 9 years ago

Actions #20

Updated by Junxiao Shi almost 9 years ago

  • Status changed from Code review to Feedback

In integration-tests:commit:3c4e70310100bbb3bde1b75272c8679e60a60f3d, the shell script code for editing the configuration file is unreadable.

This part needs to be rewritten with infoedit.

Actions #21

Updated by Junxiao Shi over 8 years ago

  • Tracker changed from Task to Feature
Actions #22

Updated by Junxiao Shi over 8 years ago

Yanbiao reveals at 20150819 conference call that he won't work on changing this to use infoedit until #2107 is complete.

Actions #24

Updated by Junxiao Shi over 8 years ago

  • File 20150916194551.tgz added
Actions #25

Updated by Junxiao Shi over 8 years ago

  • File deleted (20150916194551.tgz)
Actions #29

Updated by Junxiao Shi over 8 years ago

  • Status changed from Feedback to Closed
  • % Done changed from 90 to 100
Actions #30

Updated by Junxiao Shi over 8 years ago

  • Blocks Feature #3218: Automatic prefix propagation test scenario added
Actions

Also available in: Atom PDF