Project

General

Profile

Feature #4327

Updated by Anonymous over 6 years ago

Implement the congestion mark integration test case proposed by Klaus in #3797 note 57. The below is modified and extended from his note. 

 Topology: 

     C -- A -- D 

 Setup: 

 1. Start NFD on nodes A, C, and D. 
 2. Node D runs the producer for the prefixes `/arizona/cs`,    `/ucla/cs`, and `/ucsd/caida`. The producer app will copy any congestion marks from a received Interest back to the corresponding Data packet. 
 3. The routes for all prefixes are configured as follows: C->A, A->D. 

 TestCase1: 

 1. 
 4. On node A, prefix `/arizona/cs` uses the `CongestionMarkStrategy`, which adds a congestion mark (value=7) to all traversing Interests, overriding any previously-set congestion marks. 
 5. Node C (the consumer) sends an Interest for `/arizona/cs`. 
 2. 6. Node A, on prefix `/arizona/cs` uses the `CongestionMarkStrategy`, and adds A will add a congestion mark (value=7) to the traversing Interest. 
 3. 7. Node D will propagate the congestion mark on the outgoing Interest. Interest, if it exists. Node D will also add the mark to the returning Data packet. 
 4. 8. Check if the consumer app on C receives a Data packet satisfying its Interest, which contains the congestion mark of value=7. Fail if there is a timeout, or missing congestion mark. 

 TestCase2: 

 1. 
 9. Node C sends an Interest for `/ucla/cs`. 
 2. 10. Check that C receives a Data packet which does not contain a congestion mark. Fail if there is a timeout or received congestion mark. 

 TestCase3: 

 1. Node C (the app) sends an Interest for `/arizona/cs`. 
 2. Node 11. On node C, set the strategy for prefix `/ucsd/caida` uses to the `CongestionMarkStrategy` to add introduce a congestion mark (value=2) to    the traversing Interests. Interests, overriding any previously-set congestion marks. 
 3. Node 12. On node A, set the strategy for prefix the `/ucsd/caida` uses namespace to the `CongestionMarkStrategy` to **update** the introduce a congestion mark (to value=3), (value=3), overriding any previously-set congestion marks. This should override the existing mark (value=2). 
 4. 13. Node C (the app) sends an Interest for `/arizona/cs`. 
 14. Node C (the strategy) will add a congestion mark (value=2) to the traversing Interest to indicate congestion. 
 15. Node A will override the congestion mark (setting value=3) on the traversing Interest. 
 16. Check that the consumer on node C receive a Data satisfying its Interest with a congestion mark of value=3. Fail on a timeout or congestion mark of different value. 

 This test case could be extended to check whether congestion marks can be added to Data packets (from inside the forwarding strategy). However, this is not currently supported (see #4290).

Back