Project

General

Profile

Task #1385

Updated by Junxiao Shi about 10 years ago

Topology: Single host. 

 Steps: 

 1.    Start NFD. 
 2.    Start ndn-traffic-server For FIB, we have to serve `ndn:/` with Content "Z", FreshnessPeriod=10ms. 
     Prefix registration must either use NFD FibMgmt, or use NRD test its longest match feature. The very basic way to test this feature is to have different producers to populate FIB entries and specify CAPTURE flag. 
 3.    Start ndn-traffic-server verify whether the client can get correct data from correct producer.  

 Looping scenario needs to serve `ndn:/A` with Content "A", FreshnessPeriod=10ms. 
     Prefix registration must either use NFD FibMgmt, or use NRD be tested as well. To test looping scenario, we should have two hosts A and specify CAPTURE flag. 
 4.    Start ndn-traffic-server B. And there are two cases.  

 - The first case is, A has a FIB entry that associates some prefix to serve `ndn:/A/B/C` with Content "C", FreshnessPeriod=10ms. 
     Prefix registration must either use NFD FibMgmt, or use NRD a link to B, and specify CAPTURE flag. 
 5.    Start ndn-traffic-server B has a FIB entry that associates the same prefix to serve `ndn:/D/E` the same link to A. If one client on A send an interest with Content "E", FreshnessPeriod=10ms. 
     Prefix registration must either use that particular name, the interest should be dropped at B since NFD FibMgmt, or use NRD and specify CAPTURE flag. 
 6.    Invoke ndn-tlv-peek shouldn't send the interest back with the same link.  
 - The second case should be A has a FIB entry that associates some prefix to request `ndn:/` MustBeFresh=yes. 
     Fail if unanswered. 
     Fail if Content is not "Z". 
 7.    Wait 100ms. 
 8.    Invoke ndn-tlv-peek a link to request `ndn:/F` MustBeFresh=yes. 
     Fail if unanswered. 
     Fail if Content is not "Z". 
 9.    Wait 100ms. 
 10. Invoke ndn-tlv-peek B and B has a FIB entry that associates with the same prefix to request `ndn:/A` MustBeFresh=yes. 
     Fail if unanswered. 
     Fail if Content is not "A". 
 11. Wait 100ms. 
 12. Invoke ndn-tlv-peek another link to request `ndn:/a` MustBeFresh=yes. 
     Fail if unanswered. 
     Fail if Content is not "Z". 
 13. Wait 100ms. 
 14. Invoke ndn-tlv-peek A. In this case, A receives the interest from one face and forward it to request `ndn:/A/B` MustBeFresh=yes. 
     Fail if unanswered. 
     Fail if Content the other face. Once B see the interest again, B should drop the interest since it is not "A". 
 15. Wait 100ms. 
 16. Invoke ndn-tlv-peek already there in B's PIT. 

 Write a script to request `ndn:/A/B/G` MustBeFresh=yes. 
     Fail if unanswered. 
     Fail if Content is not "A". automate the tests described above. 

 The script can assume: 

 * Executing ssh <SSH hostname for host B> on host A gives a terminal of host B with sudo privilege. 
 17. Wait 100ms. 
 18. Invoke ndn-tlv-peek to request `ndn:/A/B/C` MustBeFresh=yes. 
     Fail if unanswered. 
     Fail if Content * The integrated tests repository is not "C". cloned at the same path on host A and B, and has the same version. 
 19. Wait 100ms. 
 20. Invoke ndn-tlv-peek to request `ndn:/A/B/C/P/Q/R/S/T/U/V/W/X/Y/Z` MustBeFresh=yes. 
     Fail if unanswered. 
     Fail if Content is not "C". 
 21. Wait 100ms. 
 22. Invoke ndn-traffic to request `ndn:/D` MustBeFresh=yes Exclude=[,D]. 
     Fail if unanswered. 
     Fail if Content is not "Z". 
 23. Wait 100ms. 
 24. Invoke ndn-traffic to request `ndn:/D` MustBeFresh=yes Exclude=[,E]. 
     Fail if unanswered. 
     Fail if Content is not "Z". 
 25. Wait 100ms. 

 Script can assume necessary * All programs involved are installed and accessible in $PATH, and current $PATH. 
 * Current user has passwordless sudo privilege.

Back