Project

General

Profile

Feature #4327

Updated by Eric Newberry 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 -- B -- A -- D 

 1. Start NFD on A, B, C, and D. 
 2. Route for `/arizona/cs` set toward B on C, toward A on C B, and toward D on A. Route for `/ucla/cs` set toward A B on C and C, toward D on A. Route for `/ucsd/caida` set toward A on C B, and toward D on A. 
 3. On A, B, set the strategy for the `/arizona/cs` namespace to the `CongestionMarkStrategy` to introduce a congestion mark (value=1) to traversing Interests under this namespace, overriding any previously-set congestion marks. namespace. 
 4. Capture packets received on C from link B to C, on B from link C to B and link A to B, on A from link B to A and link D starts a producer for `/arizona/cs`. This producer will copy any congestion marks to A, and on a received Interest D from link A to any Data packets produced as a result. D. 
 5. D starts a producer for `/ucla/cs`. `/arizona/cs`. This producer will copy any congestion marks on a received Interest to any Data packets produced as a result. 
 6. D starts a producer for `/ucsd/caida`. `/ucla/cs`. This producer will copy any congestion marks on a received Interest to any Data packets produced as a result. 
 7. Start a consumer on C that sends an Interest for `/arizona/cs`. 
 8. A will add a B adds the congestion mark (value=1) to the traversing Interest to indicate congestion. 
 9. D A will propagate the congestion mark on the outgoing Interest, if it exists. 
 10. If the consumer on C did not receive a Data satisfying its the Interest within the timeout or that did not contain a congestion mark (with value=1), timeout, fail the test. 
 11. Start a consumer on C that sends an Interest for `/ucla/cs`. 
 12. If the consumer on C did not receive a Data satisfying its the Interest within the timeout, fail the test. 
 13. On C, set the strategy for the `/ucsd/caida` namespace Parse capture from link C to the `CongestionMarkStrategy` B (on B) to introduce a check if Interest for `/arizona/cs` without congestion mark (value=2) to traversing Interests under this namespace, overriding any previously-set congestion marks. was received. If not, fail the test. 
 14. On A, set the strategy for the `/ucsd/caida` namespace Parse capture from link B to the `CongestionMarkStrategy` A (on A) to introduce check if Interest for `/arizona/cs` with a congestion mark (value=3) to traversing Interests under this namespace, overriding any previously-set congestion marks. (value=1) was received. If not, fail the test. 
 15. Start a consumer on C that sends an Parse capture from link A to D (on D) to check if Interest for `/arizona/cs`. `/arizona/cs` with a congestion mark (value=1) was received. If not, fail the test. 
 16. C will add Parse capture from link D to A (on A) to check if Data under `/arizona/cs` prefix with a congestion mark (value=2) to (value=1) was received. If not, fail the traversing Interest to indicate congestion. test. 
 17. Parse capture from link A will override the to B (on B) to check if Data under `/arizona/cs` prefix with a congestion mark (setting value=3) on (value=1) was received. If not, fail the traversing Interest. test. 
 18. Parse capture from link B to C (on C) to check if Data under `/arizona/cs` prefix with a congestion mark (value=1) was received. If not, fail the consumer on test. 
 19. Parse capture from link C did not receive a Data satisfying its to B (on B) to check if Interest within for `/ucla/cs` without congestion mark was received. If not, fail the timeout or that did not contain a test. 
 20. Parse capture from link B to A (on A) to check if Interest for `/ucla/cs` without congestion mark (with value=3), was received. If not, fail the test. 
 21. Parse capture from link A to D (on D) to check if Interest for `/ucla/cs` without congestion mark was received. If not, fail the test. 

 This test case could be extended to check for Data packet congestion mark propagation in the reverse direction, but this is not currently supported (see #4290). Additionally, NFD will currently not add a congestion mark to packets at any time in the current implementation (unless it is propagating an existing mark) - this must be implemented for the Interest component of this test case to work.

Back