go.ligato.io/vpp-agent/v3@v3.5.0/tests/robot/suites/crudIPv6/inter_vrf_routing_crud_ipv6.robot (about)

     1  *** Settings ***
     2  
     3  Library     OperatingSystem
     4  Library     String
     5  #Library     RequestsLibrary
     6  
     7  Resource     ../../variables/${VARIABLES}_variables.robot
     8  Resource    ../../libraries/all_libs.robot
     9  Resource    ../../libraries/pretty_keywords.robot
    10  
    11  Force Tags        trafficIPv4
    12  Suite Setup       Run Keywords    Discard old results     Test Setup
    13  Suite Teardown    Test Teardown
    14  
    15  *** Variables ***
    16  ${VARIABLES}=          common
    17  ${ENV}=                common
    18  ${WAIT_TIMEOUT}=       20s
    19  ${SYNC_SLEEP}=         2s
    20  ${FINAL_SLEEP}=        1s
    21  ${IP_1}=               fd30::1:b:0:0:1
    22  ${IP_2}=               fd30::1:b:0:0:2
    23  ${IP_3}=               fd31::1:b:0:0:1
    24  ${IP_4}=               fd31::1:b:0:0:2
    25  ${IP_5}=               fd32::1:b:0:0:1
    26  ${IP_6}=               fd32::1:b:0:0:2
    27  ${NET1}=               fd30:0:0:1::
    28  ${NET2}=               fd31:0:0:1::
    29  ${NET3}=               fd32:0:0:1::
    30  
    31  *** Test Cases ***
    32  # Non default VRF table 2 used in Agent VPP Node agent_vpp_2
    33  Start Two Agents And Then Configure With Default And Non Default VRF
    34      Add Agent VPP Node    agent_vpp_1
    35      Add Agent VPP Node    agent_vpp_2
    36  
    37      Create Master memif0 on agent_vpp_1 with IP ${IP_1}, MAC 02:f1:be:90:00:00, key 1 and m0.sock socket
    38      Create Slave memif0 on agent_vpp_2 with IP ${IP_2}, MAC 02:f1:be:90:00:02, key 1 and m0.sock socket
    39  
    40      Create VRF Table    node=agent_vpp_1    id=1    protocol=ipv6
    41      Create VRF Table    node=agent_vpp_1    id=2    protocol=ipv6
    42      Create VRF Table    node=agent_vpp_2    id=1    protocol=ipv6
    43      Create VRF Table    node=agent_vpp_2    id=2    protocol=ipv6
    44  
    45      Create Master memif1 on agent_vpp_1 with VRF 2, IP ${IP_3}, MAC 02:f1:be:90:02:00, key 1 and m1.sock socket
    46      Create Slave memif1 on agent_vpp_2 with VRF 2, IP ${IP_4}, MAC 02:f1:be:90:02:02, key 1 and m1.sock socket
    47  
    48      Create Master memif2 on agent_vpp_1 with VRF 1, IP ${IP_5}, MAC 02:f1:be:90:04:00, key 1 and m2.sock socket
    49      Create Slave memif2 on agent_vpp_2 with VRF 1, IP ${IP_6}, MAC 02:f1:be:90:04:02, key 1 and m2.sock socket
    50  
    51      Wait Until Keyword Succeeds   ${WAIT_TIMEOUT}   ${SYNC_SLEEP}    List of interfaces On agent_vpp_1 Should Contain Interface memif1/1
    52      Wait Until Keyword Succeeds   ${WAIT_TIMEOUT}   ${SYNC_SLEEP}    List of interfaces On agent_vpp_2 Should Contain Interface memif1/1
    53      Wait Until Keyword Succeeds   ${WAIT_TIMEOUT}   ${SYNC_SLEEP}    List of interfaces On agent_vpp_1 Should Contain Interface memif2/1
    54      Wait Until Keyword Succeeds   ${WAIT_TIMEOUT}   ${SYNC_SLEEP}    List of interfaces On agent_vpp_2 Should Contain Interface memif2/1
    55      Wait Until Keyword Succeeds   ${WAIT_TIMEOUT}   ${SYNC_SLEEP}    List of interfaces On agent_vpp_1 Should Contain Interface memif3/1
    56      Wait Until Keyword Succeeds   ${WAIT_TIMEOUT}   ${SYNC_SLEEP}    List of interfaces On agent_vpp_2 Should Contain Interface memif3/1
    57      Wait Until Keyword Succeeds   ${WAIT_TIMEOUT}   ${SYNC_SLEEP}    IP6 Fib Table 0 On agent_vpp_1 Should Contain Route With IP ${IP_1}/128
    58      Wait Until Keyword Succeeds   ${WAIT_TIMEOUT}   ${SYNC_SLEEP}    IP6 Fib Table 2 On agent_vpp_1 Should Contain Route With IP ${IP_3}/128
    59      Wait Until Keyword Succeeds   ${WAIT_TIMEOUT}   ${SYNC_SLEEP}    IP6 Fib Table 0 On agent_vpp_2 Should Contain Route With IP ${IP_2}/128
    60      Wait Until Keyword Succeeds   ${WAIT_TIMEOUT}   ${SYNC_SLEEP}    IP6 Fib Table 2 On agent_vpp_2 Should Contain Route With IP ${IP_4}/128
    61      Wait Until Keyword Succeeds   ${WAIT_TIMEOUT}   ${SYNC_SLEEP}    IP6 Fib Table 1 On agent_vpp_1 Should Contain Route With IP ${IP_5}/128
    62      Wait Until Keyword Succeeds   ${WAIT_TIMEOUT}   ${SYNC_SLEEP}    IP6 Fib Table 1 On agent_vpp_2 Should Contain Route With IP ${IP_6}/128
    63  
    64  Create Route For Inter Vrf Routing
    65      Create Route On agent_vpp_1 With IP ${NET2}/64 With Next Hop ${IP_2} And Vrf Id 0
    66      Create Route On agent_vpp_1 With IP ${NET1}/64 With Next Hop ${IP_4} And Vrf Id 2
    67      Create Route On agent_vpp_2 With IP ${NET2}/64 With Next Hop VRF 2 From Vrf Id 0 And Type 1
    68      Create Route On agent_vpp_2 With IP ${NET1}/64 With Next Hop VRF 0 From Vrf Id 2 And Type 1
    69  
    70  Config Done
    71      No Operation
    72  
    73  Check Inter VRF Routing
    74      Show IP Fib On agent_vpp_1
    75      IP6 Fib Table 0 On agent_vpp_1 Should Contain Route With IP ${NET2}/64
    76      IP6 Fib Table 0 On agent_vpp_1 Should Contain Vrf ipv6 via ${IP_2} memif1/1
    77      Show IP Fib On agent_vpp_2
    78      IP6 Fib Table 2 On agent_vpp_2 Should Contain Route With IP ${NET1}/64
    79      IP6 Fib Table 2 On agent_vpp_2 Should Contain Vrf unicast lookup in ipv6-VRF:
    80      IP6 Fib Table 0 On agent_vpp_2 Should Contain Route With IP ${NET2}/64
    81      IP6 Fib Table 0 On agent_vpp_2 Should Contain Vrf unicast lookup in ipv6-VRF:
    82  
    83  Create Next Route For Inter Vrf Routing
    84      Create Route On agent_vpp_2 With IP ${NET3}/64 With Next Hop VRF 1 From Vrf Id 0 And Type 1
    85      Create Route On agent_vpp_2 With IP ${NET3}/64 With Next Hop VRF 1 From Vrf Id 2 And Type 1
    86      Create Route On agent_vpp_2 With IP ${NET1}/64 With Next Hop VRF 0 From Vrf Id 1 And Type 1
    87      Create Route On agent_vpp_2 With IP ${NET2}/64 With Next Hop VRF 2 From Vrf Id 1 And Type 1
    88  
    89  Check Inter VRF Routing Again
    90      Show IP Fib On agent_vpp_1
    91      IP6 Fib Table 0 On agent_vpp_1 Should Contain Route With IP ${NET2}/64
    92      IP6 Fib Table 0 On agent_vpp_1 Should Contain Vrf ipv6 via ${IP_2} memif1/1
    93      Show IP Fib On agent_vpp_2
    94      IP6 Fib Table 2 On agent_vpp_2 Should Contain Route With IP ${NET1}/64
    95      IP6 Fib Table 2 On agent_vpp_2 Should Contain Vrf unicast lookup in ipv6-VRF:
    96      IP6 Fib Table 0 On agent_vpp_2 Should Contain Route With IP ${NET2}/64
    97      IP6 Fib Table 0 On agent_vpp_2 Should Contain Vrf unicast lookup in ipv6-VRF:
    98  
    99      IP6 Fib Table 2 On agent_vpp_2 Should Contain Route With IP ${NET3}/64
   100      IP6 Fib Table 2 On agent_vpp_2 Should Contain Vrf unicast lookup in ipv6-VRF:
   101      IP6 Fib Table 0 On agent_vpp_2 Should Contain Route With IP ${NET3}/64
   102      IP6 Fib Table 0 On agent_vpp_2 Should Contain Vrf unicast lookup in ipv6-VRF:
   103  
   104      IP6 Fib Table 1 On agent_vpp_2 Should Contain Route With IP ${NET1}/64
   105      IP6 Fib Table 1 On agent_vpp_2 Should Contain Vrf unicast lookup in ipv6-VRF:
   106      IP6 Fib Table 1 On agent_vpp_2 Should Contain Route With IP ${NET2}/64
   107      IP6 Fib Table 1 On agent_vpp_2 Should Contain Vrf unicast lookup in ipv6-VRF:
   108  
   109  Delete Route VRF 1
   110      Delete Route    agent_vpp_2    1    ${NET1}    64
   111      Delete Route    agent_vpp_2    1    ${NET2}    64
   112      Delete Route    agent_vpp_2    0    ${NET3}    64
   113      Delete Route    agent_vpp_2    2    ${NET3}    64
   114  
   115  Check State After Delete
   116      Show IP Fib On agent_vpp_1
   117      IP6 Fib Table 0 On agent_vpp_1 Should Contain Route With IP ${NET2}/64
   118      IP6 Fib Table 0 On agent_vpp_1 Should Contain Vrf ipv6 via ${IP_2} memif1/1
   119      Show IP Fib On agent_vpp_2
   120      IP6 Fib Table 2 On agent_vpp_2 Should Contain Route With IP ${NET1}/64
   121      IP6 Fib Table 2 On agent_vpp_2 Should Contain Vrf unicast lookup in ipv6-VRF:
   122      IP6 Fib Table 0 On agent_vpp_2 Should Contain Route With IP ${NET2}/64
   123      IP6 Fib Table 0 On agent_vpp_2 Should Contain Vrf unicast lookup in ipv6-VRF:
   124  
   125      ${status}=        Run Keyword And Return Status    IP6 Fib Table 2 On agent_vpp_2 Should Contain Route With IP ${NET3}/64
   126      Should Not Be True    ${status}
   127  
   128      ${status}=        Run Keyword And Return Status    IP6 Fib Table 0 On agent_vpp_2 Should Contain Route With IP ${NET3}/64
   129      Should Not Be True    ${status}
   130  
   131      ${status}=        Run Keyword And Return Status    IP6 Fib Table 1 On agent_vpp_2 Should Contain Route With IP ${NET1}/64
   132      Should Not Be True    ${status}
   133  
   134      ${status}=        Run Keyword And Return Status    IP6 Fib Table 1 On agent_vpp_2 Should Contain Route With IP ${NET2}/64
   135      Should Not Be True    ${status}
   136  
   137      ${status}=        Run Keyword And Return Status    IP6 Fib Table 1 On agent_vpp_2 Should Contain Vrf unicast lookup in ipv6-VRF:
   138      Should Not Be True    ${status}
   139  
   140  Update Inter Vrf Route
   141      Create Route On agent_vpp_2 With IP ${NET1}/64 With Next Hop VRF 0 From Vrf Id 1 And Type 1
   142      Create Route On agent_vpp_2 With IP ${NET1}/64 With Next Hop VRF 2 From Vrf Id 1 And Type 1
   143  
   144  Check Route After Update
   145      Show IP Fib On agent_vpp_2
   146      IP6 Fib Table 1 On agent_vpp_2 Should Contain Route With IP ${NET1}/64
   147      IP6 Fib Table 1 On agent_vpp_2 Should Contain Vrf unicast lookup in ipv6-VRF:2
   148  
   149  #can use in debug
   150  #Check Route With Ping
   151  #    Ping On agent_vpp_1 With IP ${IP_4}, Source memif1/1
   152  #    Ping On agent_vpp_1 With IP ${IP_4}, Source memif2/1
   153  #    Ping On agent_vpp_1 With IP ${IP_3}, Source memif1/1
   154  #
   155  
   156  Final Sleep For Manual Checking
   157      Sleep   ${FINAL_SLEEP}
   158  
   159  *** Keywords ***
   160  List of interfaces On ${node} Should Contain Interface ${int}
   161      ${out}=   vpp_term: Show Interfaces    ${node}
   162      Should Match Regexp        ${out}  ${int}
   163  
   164  IP Fib Table ${table_id} On ${node} Should Contain Vrf ${inter_vrf_string}
   165      ${out}=    vpp_term: Show IP Fib Table    ${node}    ${table_id}
   166      Should Contain  ${out}  ${inter_vrf_string}
   167  
   168  IP6 Fib Table ${table_id} On ${node} Should Contain Vrf ${inter_vrf_string}
   169      ${out}=    vpp_term: Show IP6 Fib Table    ${node}    ${table_id}
   170      Should Contain  ${out}  ${inter_vrf_string}