go.ligato.io/vpp-agent/v3@v3.5.0/tests/robot/suites/crud/memif_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  ${VARIABLES}=          common
    27  ${ENV}=                common
    28  ${MEMIF11_MAC}=          1a:00:00:11:11:11
    29  ${MEMIF11_SEC_MAC}=      1a:00:00:11:11:12
    30  ${MEMIF21_MAC}=          2a:00:00:22:22:22
    31  ${MEMIF21_SEC_MAC}=      2a:00:00:22:22:23
    32  ${MEMIF12_MAC}=          3a:00:00:33:33:33
    33  ${MEMIF22_MAC}=          4a:00:00:44:44:44
    34  ${IP_1}=                 192.168.1.1
    35  ${IP_2}=                 192.168.1.2
    36  ${IP_3}=                 192.168.2.1
    37  ${IP_4}=                 192.168.2.2
    38  ${IP_5}=                 192.168.10.1
    39  ${IP_6}=                 192.168.10.2
    40  ${PREFIX}=               24
    41  ${WAIT_TIMEOUT}=     20s
    42  ${SYNC_SLEEP}=       3s
    43  
    44  *** Test Cases ***
    45  Configure Environment
    46      [Tags]    setup
    47      Configure Environment 1
    48  
    49  Show Interfaces Before Setup
    50      vpp_term: Show Interfaces    agent_vpp_1
    51  
    52  Add VPP1_memif1 Interface
    53      vpp_term: Interface Not Exists    node=agent_vpp_1    mac=${MEMIF11_MAC}
    54      Put Memif Interface With IP    node=agent_vpp_1    name=vpp1_memif1
    55      ...    mac=${MEMIF11_MAC}    master=true    id=1    ip=${IP_1}
    56      ...    prefix=${PREFIX}    socket=default.sock
    57  
    58  
    59  Check That VPP1_memif1 Is Created But Not Connected
    60      Wait Until Keyword Succeeds   ${WAIT_TIMEOUT}   ${SYNC_SLEEP}
    61      ...    vpp_term: Interface Is Created    node=agent_vpp_1    mac=${MEMIF11_MAC}
    62      Wait Until Keyword Succeeds   ${WAIT_TIMEOUT}   ${SYNC_SLEEP}
    63      ...    vpp_term: Check Memif Interface State     agent_vpp_1    vpp1_memif1
    64      ...    mac=${MEMIF11_MAC}    role=master    id=1    ipv4=${IP_1}/${PREFIX}
    65      ...    connected=0    enabled=1    socket=${AGENT_VPP_1_MEMIF_SOCKET_FOLDER}/default.sock
    66  
    67  Add VPP2_memif1 Interface
    68      vpp_term: Interface Not Exists    node=agent_vpp_2    mac=${MEMIF21_MAC}
    69      Put Memif Interface With IP    node=agent_vpp_2    name=vpp2_memif1
    70      ...    mac=${MEMIF21_MAC}    master=false    id=1    ip=${IP_2}
    71      ...    prefix=${PREFIX}    socket=default.sock
    72  
    73  Check That VPP2_memif1 Is Created And Connected With VPP1_memif1
    74      Wait Until Keyword Succeeds   ${WAIT_TIMEOUT}   ${SYNC_SLEEP}
    75      ...    vpp_term: Interface Is Created    node=agent_vpp_2    mac=${MEMIF21_MAC}
    76      Wait Until Keyword Succeeds   ${WAIT_TIMEOUT}   ${SYNC_SLEEP}
    77      ...    vpp_term: Check Memif Interface State     agent_vpp_2    vpp2_memif1
    78      ...    mac=${MEMIF21_MAC}    role=slave    id=1    ipv4=${IP_2}/${PREFIX}
    79      ...    connected=1    enabled=1    socket=${AGENT_VPP_2_MEMIF_SOCKET_FOLDER}/default.sock
    80      Wait Until Keyword Succeeds   ${WAIT_TIMEOUT}   ${SYNC_SLEEP}
    81      ...    vpp_term: Check Memif Interface State     agent_vpp_1    vpp1_memif1
    82      ...    mac=${MEMIF11_MAC}    role=master    id=1    ipv4=${IP_1}/${PREFIX}
    83      ...    connected=1    enabled=1    socket=${AGENT_VPP_1_MEMIF_SOCKET_FOLDER}/default.sock
    84  
    85  Add VPP1_memif2 Interface
    86      vpp_term: Interface Not Exists    node=agent_vpp_1    mac=${MEMIF12_MAC}
    87      Put Memif Interface With IP    node=agent_vpp_1    name=vpp1_memif2
    88      ...    mac=${MEMIF12_MAC}    master=true    id=2    ip=${IP_3}
    89      ...    prefix=${PREFIX}    socket=default.sock
    90  
    91  Check That VPP1_memif2 Is Created But Not Connected
    92      Wait Until Keyword Succeeds   ${WAIT_TIMEOUT}   ${SYNC_SLEEP}
    93      ...    vpp_term: Interface Is Created    node=agent_vpp_1    mac=${MEMIF12_MAC}
    94      Wait Until Keyword Succeeds   ${WAIT_TIMEOUT}   ${SYNC_SLEEP}
    95      ...    vpp_term: Check Memif Interface State    agent_vpp_1    vpp1_memif2
    96      ...    mac=${MEMIF12_MAC}    role=master    id=2    ipv4=${IP_3}/${PREFIX}
    97      ...    connected=0    enabled=1    socket=${AGENT_VPP_1_MEMIF_SOCKET_FOLDER}/default.sock
    98  
    99  Add VPP2_memif2 Interface
   100      vpp_term: Interface Not Exists    node=agent_vpp_2    mac=${MEMIF22_MAC}
   101      Put Memif Interface With IP    node=agent_vpp_2    name=vpp2_memif2
   102      ...    mac=${MEMIF22_MAC}    master=false    id=2    ip=${IP_4}
   103      ...    prefix=${PREFIX}    socket=default.sock
   104  
   105  Check That VPP2_memif2 Is Created And Connected With VPP1_memif2
   106      Wait Until Keyword Succeeds   ${WAIT_TIMEOUT}   ${SYNC_SLEEP}
   107      ...    vpp_term: Interface Is Created    node=agent_vpp_2    mac=${MEMIF22_MAC}
   108      Wait Until Keyword Succeeds   ${WAIT_TIMEOUT}   ${SYNC_SLEEP}
   109      ...    vpp_term: Check Memif Interface State     agent_vpp_2    vpp2_memif2
   110      ...    mac=${MEMIF22_MAC}    role=slave  id=2    ipv4=${IP_4}/${PREFIX}
   111      ...    connected=1    enabled=1    socket=${AGENT_VPP_2_MEMIF_SOCKET_FOLDER}/default.sock
   112      Wait Until Keyword Succeeds   ${WAIT_TIMEOUT}   ${SYNC_SLEEP}
   113      ...    vpp_term: Check Memif Interface State     agent_vpp_1    vpp1_memif2
   114      ...    mac=${MEMIF12_MAC}    role=master    id=2    ipv4=${IP_3}/${PREFIX}
   115      ...    connected=1    enabled=1    socket=${AGENT_VPP_1_MEMIF_SOCKET_FOLDER}/default.sock
   116  
   117  Check That VPP1_memif1 And VPP2_memif1 Interfaces Are Not Affected By VPP1_memif2 And VPP2_memif2 Interfaces
   118      Wait Until Keyword Succeeds   ${WAIT_TIMEOUT}   ${SYNC_SLEEP}
   119      ...    vpp_term: Check Memif Interface State     agent_vpp_1    vpp1_memif1
   120      ...    mac=${MEMIF11_MAC}    role=master  id=1    ipv4=${IP_1}/${PREFIX}
   121      ...    connected=1    enabled=1    socket=${AGENT_VPP_1_MEMIF_SOCKET_FOLDER}/default.sock
   122      Wait Until Keyword Succeeds   ${WAIT_TIMEOUT}   ${SYNC_SLEEP}
   123      ...    vpp_term: Check Memif Interface State     agent_vpp_2    vpp2_memif1
   124      ...    mac=${MEMIF21_MAC}    role=slave    id=1    ipv4=${IP_2}/${PREFIX}
   125      ...    connected=1    enabled=1    socket=${AGENT_VPP_2_MEMIF_SOCKET_FOLDER}/default.sock
   126  
   127  Update VPP1_memif1 Interface
   128      Put Memif Interface With IP    node=agent_vpp_1    name=vpp1_memif1
   129      ...    mac=${MEMIF11_SEC_MAC}    master=true    id=1    ip=${IP_5}
   130      ...    prefix=${PREFIX}    socket=default.sock
   131  
   132      Wait Until Keyword Succeeds   ${WAIT_TIMEOUT}   ${SYNC_SLEEP}
   133      ...    vpp_term: Interface Is Deleted    node=agent_vpp_1    mac=${MEMIF11_MAC}
   134      Wait Until Keyword Succeeds   ${WAIT_TIMEOUT}   ${SYNC_SLEEP}
   135      ...    vpp_term: Interface Is Created    node=agent_vpp_1    mac=${MEMIF11_SEC_MAC}
   136      Wait Until Keyword Succeeds   ${WAIT_TIMEOUT}   ${SYNC_SLEEP}
   137      ...    vpp_term: Check Memif Interface State     agent_vpp_1    vpp1_memif1
   138      ...    mac=${MEMIF11_SEC_MAC}    role=master    id=1    ipv4=${IP_5}/${PREFIX}
   139      ...    connected=1    enabled=1    socket=${AGENT_VPP_1_MEMIF_SOCKET_FOLDER}/default.sock
   140  
   141  Check That VPP2_memif1 Is Still Configured And Connected
   142      Wait Until Keyword Succeeds   ${WAIT_TIMEOUT}   ${SYNC_SLEEP}
   143      ...    vpp_term: Check Memif Interface State     agent_vpp_2    vpp2_memif1
   144      ...    mac=${MEMIF21_MAC}    role=slave    id=1    ipv4=${IP_2}/${PREFIX}
   145      ...    connected=1    enabled=1    socket=${AGENT_VPP_2_MEMIF_SOCKET_FOLDER}/default.sock
   146  
   147  Check That VPP1_memif2 And VPP2_memif2 Are Not Affected By VPP1_memif1 Update
   148      Wait Until Keyword Succeeds   ${WAIT_TIMEOUT}   ${SYNC_SLEEP}
   149      ...    vpp_term: Check Memif Interface State     agent_vpp_2    vpp2_memif2
   150      ...    mac=${MEMIF22_MAC}    role=slave    id=2    ipv4=${IP_4}/${PREFIX}
   151      ...    connected=1    enabled=1    socket=${AGENT_VPP_2_MEMIF_SOCKET_FOLDER}/default.sock
   152      Wait Until Keyword Succeeds   ${WAIT_TIMEOUT}   ${SYNC_SLEEP}
   153      ...    vpp_term: Check Memif Interface State     agent_vpp_1    vpp1_memif2
   154      ...    mac=${MEMIF12_MAC}    role=master    id=2    ipv4=${IP_3}/${PREFIX}
   155      ...    connected=1    enabled=1    socket=${AGENT_VPP_1_MEMIF_SOCKET_FOLDER}/default.sock
   156  
   157  Update VPP2_memif1 Interface
   158      Put Memif Interface With IP    node=agent_vpp_2    name=vpp2_memif1
   159      ...    mac=${MEMIF21_SEC_MAC}    master=false    id=1    ip=${IP_6}
   160      ...    prefix=${PREFIX}    socket=default.sock
   161  
   162      Wait Until Keyword Succeeds   ${WAIT_TIMEOUT}   ${SYNC_SLEEP}
   163      ...    vpp_term: Interface Is Deleted    node=agent_vpp_2    mac=${MEMIF21_MAC}
   164      Wait Until Keyword Succeeds   ${WAIT_TIMEOUT}   ${SYNC_SLEEP}
   165      ...    vpp_term: Interface Is Created    node=agent_vpp_2    mac=${MEMIF21_SEC_MAC}
   166      Wait Until Keyword Succeeds   ${WAIT_TIMEOUT}   ${SYNC_SLEEP}
   167      ...    vpp_term: Check Memif Interface State     agent_vpp_2    vpp2_memif1
   168      ...    mac=${MEMIF21_SEC_MAC}    role=slave    id=1    ipv4=${IP_6}/${PREFIX}
   169      ...    connected=1    enabled=1    socket=${AGENT_VPP_2_MEMIF_SOCKET_FOLDER}/default.sock
   170  
   171  Check That VPP1_memif1 Is Still Configured And Connected
   172      Wait Until Keyword Succeeds   ${WAIT_TIMEOUT}   ${SYNC_SLEEP}
   173      ...    vpp_term: Check Memif Interface State     agent_vpp_1  vpp1_memif1
   174      ...    mac=${MEMIF11_SEC_MAC}    role=master    id=1    ipv4=${IP_5}/${PREFIX}
   175      ...    connected=1    enabled=1    socket=${AGENT_VPP_1_MEMIF_SOCKET_FOLDER}/default.sock
   176  
   177  Check That VPP1_memif2 And VPP2_memif2 Are Not Affected By VPP2_memif1 Update
   178      Wait Until Keyword Succeeds   ${WAIT_TIMEOUT}   ${SYNC_SLEEP}
   179      ...    vpp_term: Check Memif Interface State     agent_vpp_2    vpp2_memif2
   180      ...    mac=${MEMIF22_MAC}    role=slave    id=2    ipv4=${IP_4}/${PREFIX}
   181      ...    connected=1    enabled=1    socket=${AGENT_VPP_2_MEMIF_SOCKET_FOLDER}/default.sock
   182      Wait Until Keyword Succeeds   ${WAIT_TIMEOUT}   ${SYNC_SLEEP}
   183      ...    vpp_term: Check Memif Interface State     agent_vpp_1    vpp1_memif2
   184      ...    mac=${MEMIF12_MAC}    role=master    id=2    ipv4=${IP_3}/${PREFIX}
   185      ...    connected=1    enabled=1    socket=${AGENT_VPP_1_MEMIF_SOCKET_FOLDER}/default.sock
   186  
   187  Delete VPP1_memif2 Interface
   188      Delete VPP Interface    node=agent_vpp_1    name=vpp1_memif2
   189      vpp_term: Interface Is Deleted    node=agent_vpp_1    mac=${MEMIF12_MAC}
   190  
   191  Check That VPP2_memif2 Interface Is Disconnected
   192      Wait Until Keyword Succeeds   ${WAIT_TIMEOUT}   ${SYNC_SLEEP}
   193      ...    vpp_term: Check Memif Interface State     agent_vpp_2    vpp2_memif2
   194      ...    mac=${MEMIF22_MAC}    role=slave    id=2    ipv4=${IP_4}/${PREFIX}
   195      ...    connected=0    enabled=1    socket=${AGENT_VPP_2_MEMIF_SOCKET_FOLDER}/default.sock
   196  
   197  Check That VPP1_memif1 And VPP2_memif1 Are Not Affected By VPP1_memif2 Delete
   198      Wait Until Keyword Succeeds   ${WAIT_TIMEOUT}   ${SYNC_SLEEP}
   199      ...    vpp_term: Check Memif Interface State     agent_vpp_1    vpp1_memif1
   200      ...    mac=${MEMIF11_SEC_MAC}    role=master    id=1    ipv4=${IP_5}/${PREFIX}
   201      ...    connected=1    enabled=1    socket=${AGENT_VPP_1_MEMIF_SOCKET_FOLDER}/default.sock
   202      Wait Until Keyword Succeeds   ${WAIT_TIMEOUT}   ${SYNC_SLEEP}
   203      ...    vpp_term: Check Memif Interface State     agent_vpp_2    vpp2_memif1
   204      ...    mac=${MEMIF21_SEC_MAC}    role=slave    id=1    ipv4=${IP_6}/${PREFIX}
   205      ...    connected=1    enabled=1    socket=${AGENT_VPP_2_MEMIF_SOCKET_FOLDER}/default.sock
   206  
   207  Delete VPP2_memif2 Interface
   208      Delete VPP Interface    node=agent_vpp_2    name=vpp2_memif2
   209      Wait Until Keyword Succeeds   ${WAIT_TIMEOUT}   ${SYNC_SLEEP}
   210      ...    vpp_term: Interface Is Deleted    node=agent_vpp_2    mac=${MEMIF22_MAC}
   211  
   212  
   213  Check That VPP1_memif1 And VPP2_memif1 Are Not Affected By VPP2_memif2 Delete
   214      Wait Until Keyword Succeeds   ${WAIT_TIMEOUT}   ${SYNC_SLEEP}
   215      ...    vpp_term: Check Memif Interface State     agent_vpp_1    vpp1_memif1
   216      ...    mac=${MEMIF11_SEC_MAC}    role=master    id=1    ipv4=${IP_5}/${PREFIX}
   217      ...    connected=1    enabled=1    socket=${AGENT_VPP_1_MEMIF_SOCKET_FOLDER}/default.sock
   218      Wait Until Keyword Succeeds   ${WAIT_TIMEOUT}   ${SYNC_SLEEP}
   219      ...    vpp_term: Check Memif Interface State     agent_vpp_2    vpp2_memif1
   220      ...    mac=${MEMIF21_SEC_MAC}    role=slave    id=1    ipv4=${IP_6}/${PREFIX}
   221      ...    connected=1    enabled=1    socket=${AGENT_VPP_2_MEMIF_SOCKET_FOLDER}/default.sock
   222  
   223  Show Interfaces And Other Objects After Setup
   224      vpp_term: Show Interfaces    agent_vpp_1
   225      vpp_term: Show Interfaces    agent_vpp_2
   226      Write To Machine    agent_vpp_1_term    show int addr
   227      Write To Machine    agent_vpp_2_term    show int addr
   228      Write To Machine    agent_vpp_1_term    show h
   229      Write To Machine    agent_vpp_2_term    show h
   230      Write To Machine    agent_vpp_1_term    show memif
   231      Write To Machine    agent_vpp_2_term    show memif
   232      Write To Machine    agent_vpp_1_term    show err
   233      Write To Machine    agent_vpp_2_term    show err
   234      vpp_api: Interfaces Dump    agent_vpp_1
   235      vpp_api: Interfaces Dump    agent_vpp_2
   236      Execute In Container    agent_vpp_1    ip a
   237      Execute In Container    agent_vpp_2    ip a
   238  
   239  *** Keywords ***
   240  TestSetup
   241      Make Datastore Snapshots    ${TEST_NAME}_test_setup
   242  
   243  TestTeardown
   244      Make Datastore Snapshots    ${TEST_NAME}_test_teardown
   245