go.ligato.io/vpp-agent/v3@v3.5.0/tests/robot/suites/traffic/libmemif/libmemif_master_trafic2.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/all_libs.robot
    10  
    11  Force Tags        traffic     IPv4    ExpectedFailure
    12  Suite Setup       Testsuite Setup
    13  Suite Teardown    Testsuite Teardown
    14  Test Setup        TestSetup
    15  Test Teardown     TestTeardown
    16  
    17  *** Variables ***
    18  ${VARIABLES}=          common
    19  ${ENV}=                common
    20  ${WAIT_TIMEOUT}=     20s
    21  ${SYNC_SLEEP}=       3s
    22  ${LIBMEMIF_IP1}=       192.168.1.2
    23  ${VPP2MEMIF_IP1}=      192.168.1.2
    24  ${VPP1MEMIF_IP1}=      192.168.1.1
    25  ${LIBMEMIF_IP2}=       192.168.2.2
    26  ${VPP2MEMIF_IP2}=       192.168.2.2
    27  ${VPP1MEMIF_IP2}=       192.168.2.1
    28  # wait for resync vpps after restart
    29  ${RESYNC_WAIT}=        30s
    30  
    31  *** Test Cases ***
    32  Configure Environment
    33      [Tags]    setup
    34      Configure Environment 3
    35  
    36  Show Interfaces Before Setup
    37      vpp_term: Show Interfaces    agent_vpp_1
    38  
    39  Add Memif1 Interface On VPP1
    40      Put Memif Interface With IP    node=agent_vpp_1    name=vpp1_memif1    mac=62:61:61:61:61:61    master=false    id=0    ip=${VPP1MEMIF_IP1}    prefix=24    socket=memif.sock
    41  
    42  Check Memif1 Interface Created On VPP1
    43      Wait Until Keyword Succeeds   ${WAIT_TIMEOUT}   ${SYNC_SLEEP}    vpp_term: Interface Is Created    node=agent_vpp_1    mac=62:61:61:61:61:61
    44      Wait Until Keyword Succeeds   ${WAIT_TIMEOUT}   ${SYNC_SLEEP}    vat_term: Check Memif Interface State     agent_vpp_1  vpp1_memif1  mac=62:61:61:61:61:61  role=slave  id=0  ipv4=${VPP1MEMIF_IP1}/24  connected=0  enabled=1  socket=${AGENT_LIBMEMIF_1_MEMIF_SOCKET_FOLDER}/memif.sock
    45  
    46  Modify Memif1 Interface On VPP1
    47      Put Memif Interface With IP    node=agent_vpp_1    name=vpp1_memif1    mac=62:61:61:61:61:62    master=false    id=0    ip=${VPP1MEMIF_IP2}    prefix=24    socket=memif.sock
    48  
    49  Check Memif1 Interface On VPP1 is Modified
    50      Wait Until Keyword Succeeds   ${WAIT_TIMEOUT}   ${SYNC_SLEEP}    vpp_term: Interface Is Created    node=agent_vpp_1    mac=62:61:61:61:61:62
    51      Wait Until Keyword Succeeds   ${WAIT_TIMEOUT}   ${SYNC_SLEEP}    vat_term: Check Memif Interface State     agent_vpp_1  vpp1_memif1  mac=62:61:61:61:61:62  role=slave  id=0  ipv4=${VPP1MEMIF_IP2}/24  connected=0  enabled=1  socket=${AGENT_LIBMEMIF_1_MEMIF_SOCKET_FOLDER}/memif.sock
    52  
    53  Create And Chek Memif1 On Agent Libmemif 1
    54      ${out}=      lmterm: Issue Command    agent_libmemif_1   conn 0 1
    55      ${out}=      lmterm: Issue Command    agent_libmemif_1    show
    56      Should Contain     ${out}     interface ip: ${LIBMEMIF_IP1}
    57      Should Contain     ${out}     link: up
    58  
    59  Check Memif1 Interface On VPP1 Connected To LibMemif
    60      Wait Until Keyword Succeeds   ${WAIT_TIMEOUT}   ${SYNC_SLEEP}    vpp_term: Interface Is Created    node=agent_vpp_1    mac=62:61:61:61:61:62
    61      Wait Until Keyword Succeeds   ${WAIT_TIMEOUT}   ${SYNC_SLEEP}    vat_term: Check Memif Interface State     agent_vpp_1  vpp1_memif1  mac=62:61:61:61:61:62  role=slave  id=0  ipv4=${VPP1MEMIF_IP2}/24  connected=1  enabled=1  socket=${AGENT_LIBMEMIF_1_MEMIF_SOCKET_FOLDER}/memif.sock
    62  
    63  Modify Memif1 On VPP1 back
    64      Put Memif Interface With IP    node=agent_vpp_1    name=vpp1_memif1    mac=62:61:61:61:61:61    master=false    id=0    ip=${VPP1MEMIF_IP1}    prefix=24    socket=memif.sock
    65  
    66  Check Memif1 on Vpp1 is connected
    67      Wait Until Keyword Succeeds   ${WAIT_TIMEOUT}   ${SYNC_SLEEP}    vat_term: Check Memif Interface State     agent_vpp_1  vpp1_memif1  mac=62:61:61:61:61:61  role=slave  id=0  ipv4=${VPP1MEMIF_IP1}/24  connected=1  enabled=1  socket=${AGENT_LIBMEMIF_1_MEMIF_SOCKET_FOLDER}/memif.sock
    68  
    69  Check Ping VPP1 -> Agent Libmemif 1
    70      vpp_term: Check Ping    agent_vpp_1    ${LIBMEMIF_IP1}
    71  
    72  
    73  Remove VPP Nodes
    74      Remove All VPP Nodes
    75      Sleep    ${SYNC_SLEEP}
    76      Add Agent VPP Node    agent_vpp_1
    77      #Add Agent VPP Node    agent_vpp_2
    78      Sleep    ${RESYNC_WAIT}
    79  
    80  Check Memif1 Interface On VPP1 Connected To LibMemif After Resync
    81      vpp_term: Interface Is Created    node=agent_vpp_1    mac=62:61:61:61:61:61
    82      vat_term: Check Memif Interface State     agent_vpp_1  vpp1_memif1  mac=62:61:61:61:61:61  role=slave  id=0  ipv4=${VPP1MEMIF_IP1}/24  connected=1  enabled=1  socket=${AGENT_LIBMEMIF_1_MEMIF_SOCKET_FOLDER}/memif.sock
    83  
    84  Check Ping VPP1 -> Agent Libmemif 1 After Resync
    85      vpp_term: Check Ping    agent_vpp_1    ${LIBMEMIF_IP1}
    86  
    87  ##############################################################################
    88  
    89  
    90  Delete Memif On Agent Libmemif 1
    91      ${out}=      lmterm: Issue Command    agent_libmemif_1   del 0
    92  
    93  Check Memif1 Interface On VPP1 Disconnected After Master Deleted
    94      Wait Until Keyword Succeeds   ${WAIT_TIMEOUT}   ${SYNC_SLEEP}    vpp_term: Interface Is Created    node=agent_vpp_1    mac=62:61:61:61:61:61
    95      Wait Until Keyword Succeeds   ${WAIT_TIMEOUT}   ${SYNC_SLEEP}    vat_term: Check Memif Interface State     agent_vpp_1  vpp1_memif1  mac=62:61:61:61:61:61  role=slave  id=0  ipv4=${VPP1MEMIF_IP1}/24  connected=0  enabled=1  socket=${AGENT_LIBMEMIF_1_MEMIF_SOCKET_FOLDER}/memif.sock
    96  
    97  Create Memif1 On Agent Libmemif 1 Again
    98      ${out}=      lmterm: Issue Command    agent_libmemif_1   conn 0 1
    99  
   100  Check Memif1 Interface On VPP1 Connected After Master Deleted and Created
   101      Wait Until Keyword Succeeds   ${WAIT_TIMEOUT}   ${SYNC_SLEEP}    vpp_term: Interface Is Created    node=agent_vpp_1    mac=62:61:61:61:61:61
   102      Wait Until Keyword Succeeds   ${WAIT_TIMEOUT}   ${SYNC_SLEEP}    vat_term: Check Memif Interface State     agent_vpp_1  vpp1_memif1  mac=62:61:61:61:61:61  role=slave  id=0  ipv4=${VPP1MEMIF_IP1}/24  connected=1  enabled=1  socket=${AGENT_LIBMEMIF_1_MEMIF_SOCKET_FOLDER}/memif.sock
   103  
   104  Check Ping VPP1 -> Agent Libmemif 1 After Delete and Create
   105      vpp_term: Check Ping    agent_vpp_1    ${LIBMEMIF_IP1}
   106  
   107  ####### Here VPP crashes
   108  #Modify Memif1 Interface On VPP1 While Connected
   109  #    Put Memif Interface With IP    node=agent_vpp_1    name=vpp1_memif1    mac=62:61:61:61:61:62    master=false    id=0    ip=${VPP1MEMIF_IP2}    prefix=24    socket=memif.sock
   110  #    Sleep     ${SYNC_SLEEP}
   111  
   112  #Check Memif1 Interface On VPP1 Modified
   113  #    vpp_term: Interface Is Created    node=agent_vpp_1    mac=62:61:61:61:61:62
   114  #    vat_term: Check Memif Interface State     agent_vpp_1  vpp1_memif1  mac=62:61:61:61:61:62  role=slave  id=0  ipv4=${VPP1MEMIF_IP2}/24  connected=1  enabled=1  socket=${AGENT_LIBMEMIF_1_MEMIF_SOCKET_FOLDER}/memif.sock
   115  #
   116  #Check Ping VPP1 -> Agent Libmemif 1 After Memif1 Modified
   117  #    vpp_term: Check Ping    agent_vpp_1    ${LIBMEMIF_IP1}
   118  
   119  ############################################################
   120  #Delete Memif On Agent Libmemif 1
   121  #    ${out}=      lmterm: Issue Command    agent_libmemif_1   del 0
   122  #
   123  #Modify Memif1 Interface On VPP1 After Slave Delete
   124  #    Put Memif Interface With IP    node=agent_vpp_1    name=vpp1_memif1    mac=62:61:61:61:61:62    master=false    id=0    ip=${VPP1MEMIF_IP2}    prefix=24    socket=memif.sock
   125  #    Sleep     ${SYNC_SLEEP}
   126  
   127  ##### Here VPP crashes
   128  #Check Memif1 Interface On VPP1 Modified After Slave Delete 2
   129  #    vpp_term: Interface Is Created    node=agent_vpp_1    mac=62:61:61:61:61:62
   130  #    vat_term: Check Memif Interface State     agent_vpp_1  vpp1_memif1  mac=62:61:61:61:61:62  role=slave  id=0  ipv4=${VPP1MEMIF_IP2}/24  connected=0  enabled=1  socket=${AGENT_LIBMEMIF_1_MEMIF_SOCKET_FOLDER}/memif.sock
   131  
   132  Remove Agent Libmemif 1
   133       Remove Node      agent_libmemif_1
   134       Sleep    ${SYNC_SLEEP}
   135  
   136  Add Libmemif Node Again
   137      Add Agent Libmemif Node    agent_libmemif_1
   138      Sleep    ${RESYNC_WAIT}
   139  
   140  Create And Check Memif1 On Agent Libmemif 1 After node restart2
   141      ${out_c}=      lmterm: Issue Command    agent_libmemif_1   conn 0 1
   142      ${out}=      lmterm: Issue Command    agent_libmemif_1    show
   143      Should Contain     ${out}     interface ip: ${LIBMEMIF_IP1}
   144      Should Contain     ${out}     link: up
   145  
   146  Check Memif1 Interface On VPP1 Connected After Node Restart2
   147      Wait Until Keyword Succeeds   ${WAIT_TIMEOUT}   ${SYNC_SLEEP}    vpp_term: Interface Is Created    node=agent_vpp_1    mac=62:61:61:61:61:61
   148      Wait Until Keyword Succeeds   ${WAIT_TIMEOUT}   ${SYNC_SLEEP}    vat_term: Check Memif Interface State     agent_vpp_1  vpp1_memif1  mac=62:61:61:61:61:61  role=slave  id=0  ipv4=${VPP1MEMIF_IP1}/24  connected=1  enabled=1  socket=${AGENT_LIBMEMIF_1_MEMIF_SOCKET_FOLDER}/memif.sock
   149      ${out}=      lmterm: Issue Command    agent_libmemif_1    show
   150  
   151  Create Memif2 On Agent Libmemif 1
   152      ${out}=      lmterm: Issue Command    agent_libmemif_1   conn 1 1
   153      #Should Contain     ${out}     INFO: memif connected!
   154  
   155  Check Memif 1 and Memif2 On Agent LibMemif 1
   156      ${out}=      lmterm: Issue Command    agent_libmemif_1    show
   157      Should Contain      ${out}     interface ip: ${LIBMEMIF_IP2}
   158      Should Contain      ${out}     interface ip: ${LIBMEMIF_IP1}
   159      Should Contain      ${out}     link: up
   160      Should Contain      ${out}     link: down
   161  
   162  Check Memif1 Interface On VPP1 Connected After Second Libmemif Added
   163      Wait Until Keyword Succeeds   ${WAIT_TIMEOUT}   ${SYNC_SLEEP}    vpp_term: Interface Is Created    node=agent_vpp_1    mac=62:61:61:61:61:61
   164      Wait Until Keyword Succeeds   ${WAIT_TIMEOUT}   ${SYNC_SLEEP}    vat_term: Check Memif Interface State     agent_vpp_1  vpp1_memif1  mac=62:61:61:61:61:61  role=slave  id=0  ipv4=${VPP1MEMIF_IP1}/24  connected=1  enabled=1  socket=${AGENT_LIBMEMIF_1_MEMIF_SOCKET_FOLDER}/memif.sock
   165      ${out}=      lmterm: Issue Command    agent_libmemif_1    show
   166  
   167  ############################################################################
   168  ##### Here VPP crashes
   169  #Add Memif2 Interface On VPP1
   170  #    Put Memif Interface With IP    node=agent_vpp_1    name=vpp1_memif2    mac=62:61:61:61:51:51    master=false    id=1    ip=${VPP1MEMIF_IP2}    prefix=24    socket=memif.sock
   171  #    Sleep     ${SYNC_SLEEP}
   172  #
   173  #Check Memif2 Interface Created On VPP1
   174  #    vpp_term: Interface Is Created    node=agent_vpp_1    mac=62:61:61:61:51:51
   175  #    vat_term: Check Memif Interface State     agent_vpp_1  vpp1_memif2  mac=62:61:61:61:51:51  role=slave  id=0  ipv4=${VPP1MEMIF_IP2}/24  connected=1  enabled=1  socket=${AGENT_LIBMEMIF_1_MEMIF_SOCKET_FOLDER}/memif.sock
   176  #
   177  #Check Memif 1 and Memif2 On Agent LibMemif 1
   178  #    ${out}=      lmterm: Issue Command    agent_libmemif_1    show
   179  #    Should Contain      ${out}     interface ip: ${LIBMEMIF_IP2}
   180  #    Should Contain      ${out}     interface ip: ${LIBMEMIF_IP1}
   181  #    Should Contain      ${out}     link: up
   182  #    Should Not Contain  ${out}     link: down
   183  
   184  #Delete Memif2 Interface On VPP1 After Resync
   185  #    Delete VPP Interface    node=agent_vpp_1    name=vpp1_memif2
   186  #    vpp_term: Interface Is Deleted    node=agent_vpp_1    mac=62:61:61:61:51:51
   187  
   188  Delete Memif1 Interface On VPP1
   189      Delete VPP Interface    node=agent_vpp_1    name=vpp1_memif1
   190      vpp_term: Show Interfaces    agent_vpp_1
   191      vpp_term: Interface Is Deleted    node=agent_vpp_1    mac=62:61:61:61:61:61
   192  
   193  Check LibMemif1 down and LibMemif2 down
   194      ${out}=      lmterm: Issue Command    agent_libmemif_1    show
   195      Should Contain      ${out}     interface ip: ${LIBMEMIF_IP2}
   196      Should Contain      ${out}     interface ip: ${LIBMEMIF_IP1}
   197      Should Contain      ${out}     link: down
   198  
   199  Add Memif2 Interface On VPP1
   200      Put Memif Interface With IP    node=agent_vpp_1    name=vpp1_memif2    mac=62:61:61:61:51:51    master=slave    id=1    ip=${VPP1MEMIF_IP2}    prefix=24    socket=memif.sock
   201  
   202  
   203  Check Memif2 Interface Created On VPP1
   204      Wait Until Keyword Succeeds   ${WAIT_TIMEOUT}   ${SYNC_SLEEP}    vpp_term: Interface Is Created    node=agent_vpp_1    mac=62:61:61:61:51:51
   205      Wait Until Keyword Succeeds   ${WAIT_TIMEOUT}   ${SYNC_SLEEP}    vat_term: Check Memif Interface State     agent_vpp_1  vpp1_memif2  mac=62:61:61:61:51:51  role=slave  id=1  ipv4=${VPP1MEMIF_IP2}/24   connected=1  enabled=1  socket=${AGENT_LIBMEMIF_1_MEMIF_SOCKET_FOLDER}/memif.sock
   206  
   207  Check LibMemif1 down and LibMemif2 up
   208      ${out}=      lmterm: Issue Command    agent_libmemif_1    show
   209      Should Contain      ${out}     interface ip: ${LIBMEMIF_IP2}
   210      Should Contain      ${out}     interface ip: ${LIBMEMIF_IP1}
   211      Should Contain      ${out}     link: up
   212      Should Contain      ${out}     link: down
   213  
   214  Check Ping VPP1 Memif2 -> Agent Libmemif2
   215      vpp_term: Check Ping    agent_vpp_1    ${LIBMEMIF_IP2}
   216  
   217  Check Ping VPP1 Memif1 -> Agent Libmemif1
   218      vpp_term: Check Ping    agent_vpp_1    ${LIBMEMIF_IP1}
   219  
   220  
   221  *** Keywords ***
   222  TestSetup
   223      Make Datastore Snapshots    ${TEST_NAME}_test_setup
   224  
   225  TestTeardown
   226      Make Datastore Snapshots    ${TEST_NAME}_test_teardown