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

     1  *** Settings ***
     2  Library      OperatingSystem
     3  #Library      RequestsLibrary
     4  #Library      SSHLibrary      timeout=60s
     5  #Library      String
     6  
     7  Resource     ../../variables/${VARIABLES}_variables.robot
     8  
     9  Resource     ../../libraries/vpp_api.robot
    10  Resource     ../../libraries/vpp_term.robot
    11  Resource     ../../libraries/docker.robot
    12  Resource     ../../libraries/setup-teardown.robot
    13  Resource     ../../libraries/configurations.robot
    14  Resource     ../../libraries/etcdctl.robot
    15  Resource     ../../libraries/linux.robot
    16  
    17  Resource     ../../libraries/interface/interface_generic.robot
    18  
    19  Force Tags        crud     IPv4
    20  Suite Setup       Testsuite Setup
    21  Suite Teardown    Testsuite Teardown
    22  Test Setup        TestSetup
    23  Test Teardown     TestTeardown
    24  
    25  *** Variables ***
    26  ${WAIT_TIMEOUT}=     20s
    27  ${SYNC_SLEEP}=       3s
    28  ${RESYNC_SLEEP}=       45s
    29  ${VARIABLES}=        common
    30  ${ENV}=              common
    31  ${NAME_TAP1}=        vpp1_tap1
    32  ${NAME_TAP2}=        vpp1_tap2
    33  ${MAC_TAP1}=         12:21:21:11:11:11
    34  ${MAC_TAP2}=         22:21:21:22:22:22
    35  ${IP_TAP1}=          20.20.1.1
    36  ${IP_TAP2}=          30.20.1.1
    37  ${IP_STN_RULE_1}=    21.20.1.1
    38  ${IP_STN_RULE_2}=    22.20.1.1
    39  ${PREFIX}=           24
    40  ${MTU}=              4800
    41  ${UP_STATE}=         up
    42  ${RULE_NAME}         rule1
    43  
    44  *** Test Cases ***
    45  Configure Environment
    46      [Tags]    setup
    47      Configure Environment 1
    48  
    49  Show Interfaces Before Setup
    50      Show Interfaces And Other Objects
    51  
    52  Add TAP1 Interface
    53      vpp_term: Interface Not Exists  node=agent_vpp_1    mac=${MAC_TAP1}
    54      Put TAPv2 Interface With IP    node=agent_vpp_1    name=${NAME_TAP1}
    55      ...    mac=${MAC_TAP1}    ip=${IP_TAP1}    prefix=${PREFIX}    host_if_name=linux_${NAME_TAP1}
    56  
    57  Check TAP1 Interface Is Created
    58      ${interfaces}=       vpp_api: Interfaces Dump    node=agent_vpp_1
    59      Wait Until Keyword Succeeds   ${WAIT_TIMEOUT}   ${SYNC_SLEEP}
    60      ...    vpp_term: Interface Is Created    node=agent_vpp_1    mac=${MAC_TAP1}
    61      ${actual_state}=    vpp_term: Check TAP interface State    agent_vpp_1
    62      ...    ${NAME_TAP1}    mac=${MAC_TAP1}    ipv4=${IP_TAP1}/${PREFIX}    state=${UP_STATE}
    63  
    64  Add STN Rule
    65      Put STN Rule    node=agent_vpp_1    interface=${NAME_TAP1}    ip=${IP_STN_RULE_1}
    66  
    67  Check STN Rule Is Created
    68      Wait Until Keyword Succeeds   ${WAIT_TIMEOUT}   ${SYNC_SLEEP}
    69      ...    vpp_term: Check STN Rule State    node=agent_vpp_1    interface=${NAME_TAP1}
    70      ...    ip=${IP_STN_RULE_1}
    71  
    72  Check TAP1 Interface Is Still Configured
    73      ${actual_state}=    vpp_term: Check TAP interface State    agent_vpp_1    ${NAME_TAP1}
    74      ...    mac=${MAC_TAP1}    ipv4=${IP_TAP1}/${PREFIX}    state=${UP_STATE}
    75  
    76  Add TAP2 Interface
    77      vpp_term: Interface Not Exists  node=agent_vpp_1    mac=${MAC_TAP2}
    78      Put TAPv2 Interface With IP    node=agent_vpp_1    name=${NAME_TAP2}    mac=${MAC_TAP2}
    79      ...    ip=${IP_TAP2}    prefix=${PREFIX}    host_if_name=linux_${NAME_TAP2}
    80  
    81  Check TAP2 Interface Is Created
    82      Wait Until Keyword Succeeds   ${WAIT_TIMEOUT}   ${SYNC_SLEEP}
    83      ...    vpp_term: Interface Is Created    node=agent_vpp_1    mac=${MAC_TAP2}
    84      ${actual_state}=    vpp_term: Check TAP interface State    agent_vpp_1    ${NAME_TAP2}
    85      ...    mac=${MAC_TAP2}    ipv4=${IP_TAP2}/${PREFIX}    state=${UP_STATE}
    86  
    87  Add Second STN Rule
    88      Put STN Rule    node=agent_vpp_1    interface=${NAME_TAP2}    ip=${IP_STN_RULE_2}
    89  
    90  Check Second STN Rule
    91      Wait Until Keyword Succeeds   ${WAIT_TIMEOUT}   ${SYNC_SLEEP}
    92      ...    vpp_term: Check STN Rule State    node=agent_vpp_1    interface=${NAME_TAP2}
    93      ...    ip=${IP_STN_RULE_2}
    94  
    95  Delete STN Rule
    96      Delete STN Rule    node=agent_vpp_1     interface=${NAME_TAP2}   ip=${IP_STN_RULE_2}
    97  
    98  Check Deleted STN Rule
    99      Wait Until Keyword Succeeds   ${WAIT_TIMEOUT}   ${SYNC_SLEEP}
   100      ...    vpp_term: Check STN Rule Deleted    node=agent_vpp_1    interface=${NAME_TAP2}
   101      ...    ip=${IP_STN_RULE_2}
   102  
   103  
   104  Add STN Rule Again
   105      Put STN Rule    node=agent_vpp_1    interface=${NAME_TAP2}    ip=${IP_STN_RULE_2}
   106  
   107  Check STN Rule Is Created Again
   108      Wait Until Keyword Succeeds   ${WAIT_TIMEOUT}   ${SYNC_SLEEP}
   109      ...    vpp_term: Check STN Rule State    node=agent_vpp_1    interface=${NAME_TAP2}
   110      ...    ip=${IP_STN_RULE_2}
   111  
   112  Delete STN Rule Again
   113      Delete STN Rule    node=agent_vpp_1     interface=${NAME_TAP2}   ip=${IP_STN_RULE_2}
   114  
   115  Check Deleted STN Rule Again
   116      Wait Until Keyword Succeeds   ${WAIT_TIMEOUT}   ${SYNC_SLEEP}
   117      ...    vpp_term: Check STN Rule Deleted    node=agent_vpp_1    interface=${NAME_TAP2}
   118      ...    ip=${IP_STN_RULE_2}
   119  
   120  Remove VPP
   121      Remove Node     agent_vpp_1
   122      Sleep    3s
   123  
   124  Start VPP
   125      Add Agent VPP Node    agent_vpp_1    vswitch=${TRUE}
   126      Sleep    ${RESYNC_SLEEP}
   127      Show Interfaces And Other Objects
   128  
   129  Check STN Rules Were Created After Resync
   130      Wait Until Keyword Succeeds   ${WAIT_TIMEOUT}   ${SYNC_SLEEP}
   131      ...    vpp_term: Check STN Rule State    node=agent_vpp_1    interface=${NAME_TAP1}
   132      ...    ip=${IP_STN_RULE_1}
   133  
   134  *** Keywords ***
   135  Show Interfaces And Other Objects
   136      vpp_term: Show Interfaces    agent_vpp_1
   137      Write To Machine    agent_vpp_1_term    show int
   138      Write To Machine    agent_vpp_1_term    show stn rules
   139      Write To Machine    agent_vpp_1_term    show int addr
   140      Write To Machine    agent_vpp_1_term    show h
   141      Write To Machine    agent_vpp_1_term    show brl
   142      Write To Machine    agent_vpp_1_term    show br 1 detail
   143      Write To Machine    agent_vpp_1_term    show err
   144      vpp_api: Interfaces Dump    agent_vpp_1
   145      Execute In Container    agent_vpp_1    ip a
   146  
   147  TestSetup
   148      Make Datastore Snapshots    ${TEST_NAME}_test_setup
   149  
   150  TestTeardown
   151      Make Datastore Snapshots    ${TEST_NAME}_test_teardown