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