RDI Import Tests for IDRP in GateD

Group 1 Basic RDI (ADVFT_RDI) 2 machine tests

External Peers with Delta routes


The "top-level" match conditions (no ADVFT_PS tests; in the
parser, this means that "idrp_import_optional_info" is empty):


Test 1 External peers, no route passage

Setup

  1. Each node have distinct static routes defined in the address document.
    
    
  2. Each node has the following import statement in each configuration file
    
    import proto idrp rdi aa {
    	ip all restrict;
    	all restrict;
          	};
    
    
    where the RDI parameter aa is set to be the RDI of the other machine.
    
    
  3. Two machines configured as external peers of each other.
    
    (For addresses of the machines see addresses
    document) 
    

Expected Result

No routes imported from the other machine (no change to the routing tables).

Test 2 External peers, all routes passed


Setup


  1. Each node have distinct static routes defined in the address document.
    
    
  2. Each node has the following import statement in each configuration file
    
    import proto idrp rdi aa  {
    		         all;
    			ip all;
    		      	 };
    

    where the RDI parameter aa is set to be the RDI of the other machine. This differs from differs from Test 1 by having an "all" instead of an "all restrict".

  3. Two machines configured as external peers of each other.

Expected Result

All routes of the "other" machine will be imported. The routing table on each machine should have *all* of the statics of both config files.

Test 3 External peers with nlri specified

Setup


  1. Each node have distinct static routes defined in the address document.
    
    
  2. Each node has the following import statement in each configuration file
    
    import proto idrp rdi aa  {
    		ip 128.1;  # 1st IP nlri of node's configuration 	
    		ip 128.2;  # 2nd IP nlri of node's configuration 	
    		ip 128.3;  # 3rd IP nlri of node's configuration 	
    		osi 49.0101;  # 1st nlri of node's configuration
    		osi 49.0102;  # 2nd nlri of node's configuration
    		osi 49.0103;  # 3rd nlri of node's configuration
    		all restrict;
    		ip all restrict; 
    	      	 };
    
    
    where the RDI parameter aa is set to be the RDI of the other machine.
  3. Two machines configured as external peers of each other.

Expected Result

All routes of the "other" machine will be imported. The routing table on each machine should have *all* of the statics of both config files.

Test 4 External peers with specified nlri restricted

Setup


  1. Each node have distinct static routes defined in the address document.
    
    
  2. Each node has the following import statement in each configuration file
    Machine A 
    
    import proto idrp rdi aa  {
    	ip 128.1 restrict;  # 1st IP nlri of node's configuration 	
    	ip 128.2 restrict;  # 2nd IP nlri of node's configuration 	
    	ip 128.3 restrict;  # 3rd IP nlri of node's configuration 	
    	osi 49.0101 restrict;  # 1st nlri of node's configuration
    	osi 49.0102 restrict;  # 2nd nlri of node's configuration
    	osi 49.0103 restrict;  # 3rd nlri of node's configuration
    	all;
    	ip all; 
    	};
    
    

    where the RDI parameter aa is set to be the RDI of the other machine.

  3. Two machines configured as external peers of each other.

Expected Result


All routes of the "other" machine will be imported.  The routing table on each machine should have *all* of the statics of both config files.

External Peer tests repeated with Rib Refresh

Test 5 External peers with no routes passed

This test repeats Test 1 using a Rib Refresh to update routes.

Test 6 External peers with all routes passed

This test repeats Test 2 using a Rib Refresh to update routes.

Test 7 External peers with some routes passed (nlri & all)

This test repeats Test 3 using a Rib Refresh to update routes.

Test 8 External peers with some routes passed (nlri & all restrict)

This test repeats Test 4 using a Rib Refresh to update routes.

Internal Peer Tests with Delta Routes

Test 9 Internal peers, no routes pass


Setup


  1. Each node have distinct static routes defined in the address document.
    
    
  2. Each node has the following import statement in each configuration file
      
    
    
    import proto idrp rdi aa  {
    			ip all restrict;
    		         all restrict;
    		      	 };
    
    where the RDI parameter aa is set to be the RDI of the other machine.
    
    
  3. Two machines configured as internal peers of each other.
    
    

Expected Result

All routes of the "other" machine will be imported. The routing table on each machine should have *none* of the statics of both config files.



Test 10 Internal peers, all routes pass


Setup


  1. Each node have distinct static routes defined in the address document.
    
    
    import proto idrp rdi aa  {
    			ip all;
    		         all;
    		      	 };
    
    where the RDI parameter aa is set to be the RDI of the other machine. This differs from differs from Test 9 by having an "all" instead of an "all restrict".
    
    
  2. Two machines configured as internal peers of each other.
    
    

Expected Result

All routes of the "other" machine will be imported.  The routing table on each machine should have *none* of the statics of
both config files.



Test 11 Internal peers, some routes pass (nlri passed, all restricted)


Setup

  • Each peer has an NLRI lists in the import statements which includes all of the "other" peer's static routes.
    If machine A has static routes A1, A2, A3, ...,
    and machine B has statics Bj, then the policies should be:
    
          Machine A:
    
    
          import proto idrp rdi  {
    	     B1; 
    	     B2;
    	     ... Bj; ...
    	     all restrict;
    	     ip all restrict;
    	      };
    
    
    	Machine B:
    
    
          import proto idrp rdi  {
    	     A1;
    	     A2;
    	     ... Aj; ...
    	     all restrict;
    	     ip all restrict;
    	      };
    
     
    
  • Two machines configured as internal peers of each other.
    
    
    

    Test 12 Internal peers, some routes pass (nlri restricted, all )

    
    

    Setup

    
    
    1. Each node have distinct static routes defined in the address document.
      
      
    2. Each peer has an NLRI lists in the import statements which includes all of the "other" peer's static routes.
      If machine A has static routes A1, A2, A3, ...,
      and machine B has statics Bj, then the policies should be:
      
            Machine A:
      
      
            import proto idrp rdi  {
      	     B1 restrict; 
      	     B2;
      	     ... Bj; ...	   # not all Bi's are restricted, but...
      	     ... Bk restrict; ...  # ...some Bi's are
      	     all;
      	     ip all;
      	     };
      
      
      	Machine B:
      
      
            import proto idrp rdi  {
      	     A1;
      	     A2;
      	     ... Aj; ...	   # not all Ai's are restricted, but...
      	     ... Ak restrict; ...  # ...some Ai's are
      	     all;
      	     ip all;
      	     };
      
       
      
    3. Two machines configured as internal peers of each other.
      
      
    
    

    Expected Result

    Only the allowed NLRI will be added to the routing tables; in general, the two routing tables will be different.

    All routes of the "other" machine will be imported. The routing table on each machine should have *all* of the statics of both config files.

    Test 13 Internal peers, no routes pass

    Test 9 run with Rib Refresh instead of Delta routes.

    Test 14 Internal peers, all routes pass

    Test 10 run with Rib Refresh instead of Delta routes.

    Test 15 Internal peers, some routes pass (nlri, all restricted)

    Test 11 run with Rib Refresh instead of Delta routes.

    Test 16 Internal peers, some routes pass (nlri restricted, all )

    Test 12 run with Rib Refresh instead of Delta routes.

    Group 2 Basic RDI tests with gated preference set on import lines

    
    Repeat above tests in Group 1 with these modifications
    to the import stanzas:
    
    1. Group-2A: gated-pref value-1 on import lines
    2. Group-2B: idrp-pref value-3 on import lines
    3. Group-2C: gated-pref value-2 & idrp-pref value-3 on import lines
    Where:

    gated-pref value1 != gated_pref value2.

    idrp-pref value3 != the default IDRP preference which is currently being used.

    Expected Results

    
    Routing tables as for original tests. Gated and/or
    IDRP preferences for *all* imported
    routes will be set as specified in the import stanza. 
    

    Group 3 Basic RDI tests with gated preference set on nlri lines in import

    Set gated-pref on the import lines with value-1. Set idrp-pref on import lines with value-2. Repeat tests 3,4,7,8,11,12,15,16 with

    1. Group-3A: gated-pref set on NLRI lines (value-3)
    2. Group-3B: idrp-pref set on the NLRI lines (value-4)
    3. Group-3C: both gated-pref & idrp-pref set on NLRI lines (value-3 and value-4 set)

    Set-up

    NONE of the "gated-pref" or "idrp-pref" values (value 1-4) should be equal to the defaults. NO NLRI-specific preferences should be equal to any preferences set at the opening of the import stanza. Not all NLRI should have a specific preference. Import stanzas should be set up to allow at least one default value to be generated by a valid import() call.

    Expected Results

    
    Routing tables will be the same as in the original test; preferences should work in
    this manner:
    
    • all imported NLRI which have the given preference set on the NLRI line should have the value shown on that line in the config file;
    • all imported NLRI which have no specific preference set on the NLRI line should have the value shown for the import stanza, if there is one;
    • any imported NLRI which don't have a specific preference set on the NLRI line *and* which are in an import stanza which has no specific preferences set should have the default preferences.
    
    
    

    Basic RDI (ADVFT_RDI) Multi-machine tests

    
    
    1. The tests specified above can be repeated with following topological variants. specified in the Basic IDRP testing document. These multiple machine tests for import are listed below.
    2. The tests for preference can be interesting in that a single machine can now receive the same NLRI from various other machines and, based on policy, select one machine over another (e.g., internal peer over external, etc.).
    3. With "any" as the value of the RDI.