go.ligato.io/vpp-agent/v3@v3.5.0/tests/robot/suites/trafficIPv6/libmemif/libmemif_slave_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=true    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=master  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=true    id=0    ip=${VPP1MEMIF_IP2}    prefix=24    socket=memif.sock
    49  
    50  Check Memif1 Interface On VPP1 is Modified
    51      Wait Until Keyword Succeeds   ${WAIT_TIMEOUT}   ${SYNC_SLEEP}    vpp_term: Interface Is Created    node=agent_vpp_1    mac=62:61:61:61:61:62
    52      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=master  id=0  ipv4=${VPP1MEMIF_IP2}/24  connected=0  enabled=1  socket=${AGENT_LIBMEMIF_1_MEMIF_SOCKET_FOLDER}/memif.sock
    53  
    54  Modify Memif1 Interface On VPP1 To Previous Values
    55      Put Memif Interface With IP    node=agent_vpp_1    name=vpp1_memif1    mac=62:61:61:61:61:61    master=true    id=0    ip=${VPP1MEMIF_IP1}    prefix=24    socket=memif.sock
    56  
    57  Check Memif1 Interface On VPP1 Modified Back
    58      Wait Until Keyword Succeeds   ${WAIT_TIMEOUT}   ${SYNC_SLEEP}    vpp_term: Interface Is Created    node=agent_vpp_1    mac=62:61:61:61:61:61
    59      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=master  id=0  ipv4=${VPP1MEMIF_IP1}/24  connected=0  enabled=1  socket=${AGENT_LIBMEMIF_1_MEMIF_SOCKET_FOLDER}/memif.sock
    60  
    61  ##############################################################################
    62  Add Memif1 Interface On VPP2
    63      Put Memif Interface With IP    node=agent_vpp_2    name=vpp2_memif1    mac=62:61:61:61:51:51    master=false    id=0    ip=${VPP2MEMIF_IP1}    prefix=24    socket=memif.sock
    64  
    65  Check Memif1 Interface Created And Connected On VPP2
    66      Wait Until Keyword Succeeds   ${WAIT_TIMEOUT}   ${SYNC_SLEEP}    vpp_term: Interface Is Created    node=agent_vpp_2    mac=62:61:61:61:51:51
    67      Wait Until Keyword Succeeds   ${WAIT_TIMEOUT}   ${SYNC_SLEEP}    vat_term: Check Memif Interface State     agent_vpp_2  vpp2_memif1  mac=62:61:61:61:51:51  role=slave  id=0  ipv4=${VPP2MEMIF_IP1}/24  connected=1  enabled=1  socket=${AGENT_LIBMEMIF_1_MEMIF_SOCKET_FOLDER}/memif.sock
    68  
    69  Check Memif1 Interface On VPP1 Connected To VPP2
    70      Wait Until Keyword Succeeds   ${WAIT_TIMEOUT}   ${SYNC_SLEEP}    vpp_term: Interface Is Created    node=agent_vpp_1    mac=62:61:61:61:61:61
    71      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=master  id=0  ipv4=${VPP1MEMIF_IP1}/24  connected=1  enabled=1  socket=${AGENT_LIBMEMIF_1_MEMIF_SOCKET_FOLDER}/memif.sock
    72  
    73  Modify Memif1 Interface On VPP1 While Connected To VPP2
    74      Put Memif Interface With IP    node=agent_vpp_1    name=vpp1_memif1    mac=62:61:61:61:61:62    master=true    id=0    ip=${VPP1MEMIF_IP2}    prefix=24    socket=memif.sock
    75  
    76  Check Memif1 Interface On VPP1 Modified While Connected
    77      Wait Until Keyword Succeeds   ${WAIT_TIMEOUT}   ${SYNC_SLEEP}    vpp_term: Interface Is Created    node=agent_vpp_1    mac=62:61:61:61:61:62
    78      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=master  id=0  ipv4=${VPP1MEMIF_IP2}/24  connected=1  enabled=1  socket=${AGENT_LIBMEMIF_1_MEMIF_SOCKET_FOLDER}/memif.sock
    79  
    80  Delete Memif1 Interface On VPP2
    81      Delete VPP Interface    node=agent_vpp_2    name=vpp2_memif1
    82      Wait Until Keyword Succeeds   ${WAIT_TIMEOUT}   ${SYNC_SLEEP}    vpp_term: Interface Is Deleted    node=agent_vpp_2    mac=62:61:61:61:51:51
    83  
    84  Check VPP1_memif1 Interface Is Disconnected
    85      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=master  id=0  ipv4=${VPP1MEMIF_IP2}/24  connected=0  enabled=1  socket=${AGENT_LIBMEMIF_1_MEMIF_SOCKET_FOLDER}/memif.sock
    86  
    87  Modify Memif1 Interface On VPP1 To Previous Values After Slave Delete
    88      Put Memif Interface With IP    node=agent_vpp_1    name=vpp1_memif1    mac=62:61:61:61:61:61    master=true    id=0    ip=${VPP1MEMIF_IP1}    prefix=24    socket=memif.sock
    89  
    90  Check Memif1 Interface On VPP1 Modified Back After Slave Delete
    91      Wait Until Keyword Succeeds   ${WAIT_TIMEOUT}   ${SYNC_SLEEP}    vpp_term: Interface Is Created    node=agent_vpp_1    mac=62:61:61:61:61:61
    92      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=master  id=0  ipv4=${VPP1MEMIF_IP1}/24  connected=0  enabled=1  socket=${AGENT_LIBMEMIF_1_MEMIF_SOCKET_FOLDER}/memif.sock
    93  
    94  #############################################################################
    95  
    96  Create And Chek Memif1 On Agent Libmemif 1
    97      ${out}=      lmterm: Issue Command    agent_libmemif_1   conn 0 0
    98      Sleep     ${SYNC_SLEEP}
    99      ${out}=      lmterm: Issue Command    agent_libmemif_1    show
   100      Should Contain     ${out}     interface ip: ${LIBMEMIF_IP1}
   101      Should Contain     ${out}     link: up
   102  
   103  Check Memif1 Interface On VPP1 Connected To LibMemif
   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=master  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
   108      vpp_term: Check Ping    agent_vpp_1    ${LIBMEMIF_IP1}
   109  
   110  
   111  Remove VPP Nodes
   112      Remove All VPP Nodes
   113      Sleep    ${SYNC_SLEEP}
   114      Add Agent VPP Node    agent_vpp_1
   115      #Add Agent VPP Node    agent_vpp_2
   116      Sleep    ${RESYNC_WAIT}
   117  
   118  Check Memif1 Interface On VPP1 Connected To LibMemif After Resync
   119      vpp_term: Interface Is Created    node=agent_vpp_1    mac=62:61:61:61:61:61
   120      vat_term: Check Memif Interface State     agent_vpp_1  vpp1_memif1  mac=62:61:61:61:61:61  role=master  id=0  ipv4=${VPP1MEMIF_IP1}/24  connected=1  enabled=1  socket=${AGENT_LIBMEMIF_1_MEMIF_SOCKET_FOLDER}/memif.sock
   121  
   122  Check Ping VPP1 -> Agent Libmemif 1 After Resync
   123      vpp_term: Check Ping    agent_vpp_1    ${LIBMEMIF_IP1}
   124  
   125  ##############################################################################
   126  
   127  
   128  Delete Memif On Agent Libmemif 1
   129      ${out}=      lmterm: Issue Command    agent_libmemif_1   del 0
   130  
   131  Check Memif1 Interface On VPP1 Disconnected After Slave Deleted
   132      Wait Until Keyword Succeeds   ${WAIT_TIMEOUT}   ${SYNC_SLEEP}    vpp_term: Interface Is Created    node=agent_vpp_1    mac=62:61:61:61:61:61
   133      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=master  id=0  ipv4=${VPP1MEMIF_IP1}/24  connected=0  enabled=1  socket=${AGENT_LIBMEMIF_1_MEMIF_SOCKET_FOLDER}/memif.sock
   134  
   135  
   136  Check Memif1 Interface On VPP1 Disconnected After Slave Deleted Again
   137      Wait Until Keyword Succeeds   ${WAIT_TIMEOUT}   ${SYNC_SLEEP}    vpp_term: Interface Is Created    node=agent_vpp_1    mac=62:61:61:61:61:61
   138      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=master  id=0  ipv4=${VPP1MEMIF_IP1}/24  connected=0  enabled=1  socket=${AGENT_LIBMEMIF_1_MEMIF_SOCKET_FOLDER}/memif.sock
   139  
   140  Create Memif1 On Agent Libmemif 1 Again
   141      ${out}=      lmterm: Issue Command    agent_libmemif_1   conn 0 0
   142  
   143  Check Memif1 Interface On VPP1 Connected After Slave Deleted and Created
   144      Wait Until Keyword Succeeds   ${WAIT_TIMEOUT}   ${SYNC_SLEEP}    vpp_term: Interface Is Created    node=agent_vpp_1    mac=62:61:61:61:61:61
   145      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=master  id=0  ipv4=${VPP1MEMIF_IP1}/24  connected=1  enabled=1  socket=${AGENT_LIBMEMIF_1_MEMIF_SOCKET_FOLDER}/memif.sock
   146  
   147  Check Ping VPP1 -> Agent Libmemif 1 After Delete and Create
   148      vpp_term: Check Ping    agent_vpp_1    ${LIBMEMIF_IP1}
   149  
   150  ####### Here VPP crashes
   151  #Modify Memif1 Interface On VPP1 While Connected
   152  #    Put Memif Interface With IP    node=agent_vpp_1    name=vpp1_memif1    mac=62:61:61:61:61:62    master=true    id=0    ip=${VPP1MEMIF_IP2}    prefix=24    socket=memif.sock
   153  #    Sleep     ${SYNC_SLEEP}
   154  
   155  #Check Memif1 Interface On VPP1 Modified
   156  #    vpp_term: Interface Is Created    node=agent_vpp_1    mac=62:61:61:61:61:62
   157  #    vat_term: Check Memif Interface State     agent_vpp_1  vpp1_memif1  mac=62:61:61:61:61:62  role=master  id=0  ipv4=${VPP1MEMIF_IP2}/24  connected=1  enabled=1  socket=${AGENT_LIBMEMIF_1_MEMIF_SOCKET_FOLDER}/memif.sock
   158  #
   159  #Check Ping VPP1 -> Agent Libmemif 1 After Memif1 Modified
   160  #    vpp_term: Check Ping    agent_vpp_1    ${LIBMEMIF_IP1}
   161  
   162  ############################################################
   163  #Delete Memif On Agent Libmemif 1
   164  #    ${out}=      lmterm: Issue Command    agent_libmemif_1   del 0
   165  #
   166  #Modify Memif1 Interface On VPP1 After Slave Delete
   167  #    Put Memif Interface With IP    node=agent_vpp_1    name=vpp1_memif1    mac=62:61:61:61:61:62    master=true    id=0    ip=${VPP1MEMIF_IP2}    prefix=24    socket=memif.sock
   168  #    Sleep     ${SYNC_SLEEP}
   169  
   170  ##### Here VPP crashes
   171  #Check Memif1 Interface On VPP1 Modified After Slave Delete 2
   172  #    vpp_term: Interface Is Created    node=agent_vpp_1    mac=62:61:61:61:61:62
   173  #    vat_term: Check Memif Interface State     agent_vpp_1  vpp1_memif1  mac=62:61:61:61:61:62  role=master  id=0  ipv4=${VPP1MEMIF_IP2}/24  connected=0  enabled=1  socket=${AGENT_LIBMEMIF_1_MEMIF_SOCKET_FOLDER}/memif.sock
   174  
   175  Remove Agent Libmemif 1
   176       Remove Node      agent_libmemif_1
   177       Sleep    ${SYNC_SLEEP}
   178  
   179  Add Libmemif Node Again
   180      Add Agent Libmemif Node    agent_libmemif_1
   181      Sleep    ${RESYNC_WAIT}
   182  
   183  Create And Check Memif1 On Agent Libmemif 1 After node restart
   184      ${out_c}=      lmterm: Issue Command    agent_libmemif_1   conn 0 0
   185      Sleep    ${SYNC_SLEEP}
   186      ${out}=      lmterm: Issue Command    agent_libmemif_1    show
   187      Should Contain     ${out}     interface ip: ${LIBMEMIF_IP1}
   188      Should Contain     ${out}     link: up
   189  
   190  Check Memif1 Interface On VPP1 Connected After Node Restart
   191      Wait Until Keyword Succeeds   ${WAIT_TIMEOUT}   ${SYNC_SLEEP}    vpp_term: Interface Is Created    node=agent_vpp_1    mac=62:61:61:61:61:61
   192      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=master  id=0  ipv4=${VPP1MEMIF_IP1}/24  connected=1  enabled=1  socket=${AGENT_LIBMEMIF_1_MEMIF_SOCKET_FOLDER}/memif.sock
   193      ${out}=      lmterm: Issue Command    agent_libmemif_1    show
   194  
   195  Create Memif2 On Agent Libmemif 1
   196      ${out}=      lmterm: Issue Command    agent_libmemif_1   conn 1 0
   197      Sleep    ${SYNC_SLEEP}
   198      #Should Contain     ${out}     INFO: memif connected!
   199  
   200  Check Memif 1 and Memif2 On Agent LibMemif 1
   201      ${out}=      lmterm: Issue Command    agent_libmemif_1    show
   202      Should Contain      ${out}     interface ip: ${LIBMEMIF_IP2}
   203      Should Contain      ${out}     interface ip: ${LIBMEMIF_IP1}
   204      Should Contain      ${out}     link: up
   205      Should Contain      ${out}     link: down
   206  
   207  Check Memif1 Interface On VPP1 Connected After Second Libmemif Added
   208      Wait Until Keyword Succeeds   ${WAIT_TIMEOUT}   ${SYNC_SLEEP}    vpp_term: Interface Is Created    node=agent_vpp_1    mac=62:61:61:61:61:61
   209      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=master  id=0  ipv4=${VPP1MEMIF_IP1}/24  connected=1  enabled=1  socket=${AGENT_LIBMEMIF_1_MEMIF_SOCKET_FOLDER}/memif.sock
   210      ${out}=      lmterm: Issue Command    agent_libmemif_1    show
   211  
   212  ############################################################################
   213  ##### Here VPP crashes
   214  Add Memif2 Interface On VPP1
   215      Put Memif Interface With IP    node=agent_vpp_1    name=vpp1_memif2    mac=62:61:61:61:51:51    master=true    id=1    ip=${VPP1MEMIF_IP2}    prefix=24    socket=memif.sock
   216  
   217  
   218  Check Memif2 Interface Created On VPP1
   219      Wait Until Keyword Succeeds   ${WAIT_TIMEOUT}   ${SYNC_SLEEP}    vpp_term: Interface Is Created    node=agent_vpp_1    mac=62:61:61:61:51:51
   220      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=master  id=1  ipv4=${VPP1MEMIF_IP2}/24  connected=1  enabled=1  socket=${AGENT_LIBMEMIF_1_MEMIF_SOCKET_FOLDER}/memif.sock
   221  
   222  Check Memif 1 and Memif2 On Agent LibMemif 1
   223      ${out}=      lmterm: Issue Command    agent_libmemif_1    show
   224      Should Contain      ${out}     interface ip: ${LIBMEMIF_IP2}
   225      Should Contain      ${out}     interface ip: ${LIBMEMIF_IP1}
   226      Should Contain      ${out}     link: up
   227      Should Not Contain  ${out}     link: down
   228  
   229  Delete Memif2 Interface On VPP1 After Resync
   230      Delete VPP Interface    node=agent_vpp_1    name=vpp1_memif2
   231      Wait Until Keyword Succeeds   ${WAIT_TIMEOUT}   ${SYNC_SLEEP}    vpp_term: Interface Is Deleted    node=agent_vpp_1    mac=62:61:61:61:51:51
   232  
   233  Delete Memif1 Interface On VPP1
   234      Delete VPP Interface    node=agent_vpp_1    name=vpp1_memif1
   235      Wait Until Keyword Succeeds   ${WAIT_TIMEOUT}   ${SYNC_SLEEP}    vpp_term: Interface Is Deleted    node=agent_vpp_1    mac=62:61:61:61:61:61
   236  
   237  Check Memif 1 and Memif2 On Agent LibMemif 1
   238      ${out}=      lmterm: Issue Command    agent_libmemif_1    show
   239      Should Contain      ${out}     interface ip: ${LIBMEMIF_IP2}
   240      Should Contain      ${out}     interface ip: ${LIBMEMIF_IP1}
   241      Should Contain      ${out}     link: down
   242  
   243  Add Memif2 Interface On VPP1
   244      Put Memif Interface With IP    node=agent_vpp_1    name=vpp1_memif2    mac=62:61:61:61:51:51    master=true    id=1    ip=${VPP1MEMIF_IP2}    prefix=24    socket=memif.sock
   245  
   246  Check Memif2 Interface Created On VPP1
   247      Wait Until Keyword Succeeds   ${WAIT_TIMEOUT}   ${SYNC_SLEEP}    vpp_term: Interface Is Created    node=agent_vpp_1    mac=62:61:61:61:51:51
   248      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=master  id=1  ipv4=${VPP1MEMIF_IP2}/24  connecte
   249  
   250  Check Memif 1 and Memif2 On Agent LibMemif 1
   251      ${out}=      lmterm: Issue Command    agent_libmemif_1    show
   252      Should Contain      ${out}     interface ip: ${LIBMEMIF_IP2}
   253      Should Contain      ${out}     interface ip: ${LIBMEMIF_IP1}
   254      Should Contain      ${out}     link: up
   255      Should Contain      ${out}     link: down
   256  
   257  Check Ping VPP1 Memif2 -> Agent Libmemif 1 After Delete and Create
   258      vpp_term: Check Ping    agent_vpp_1    ${LIBMEMIF_IP2}
   259  
   260  Check Ping VPP1 Memif1 -> Agent Libmemif 1 After Delete and Create
   261      vpp_term: Check Ping    agent_vpp_1    ${LIBMEMIF_IP1}
   262  
   263  
   264  *** Keywords ***
   265  TestSetup
   266      Make Datastore Snapshots    ${TEST_NAME}_test_setup
   267  
   268  TestTeardown
   269      Make Datastore Snapshots    ${TEST_NAME}_test_teardown