go.ligato.io/vpp-agent/v3@v3.5.0/tests/robot/suites/crud/l2xconnect_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/vxlan.robot
    18  Resource     ../../libraries/interface/loopback.robot
    19  Resource     ../../libraries/interface/interface_generic.robot
    20  
    21  Force Tags        crud     IPv4
    22  Suite Setup       Testsuite Setup
    23  Suite Teardown    Testsuite Teardown
    24  Test Setup        TestSetup
    25  Test Teardown     TestTeardown
    26  
    27  *** Variables ***
    28  ${VARIABLES}=          common
    29  ${ENV}=                common
    30  ${FINAL_SLEEP}=        5s
    31  ${SYNC_SLEEP}=         12s
    32  ${RESYNC_SLEEP}=     20s
    33  ${VETH1_MAC}=          1a:00:00:11:11:11
    34  ${VETH2_MAC}=          2a:00:00:22:22:22
    35  ${AFP1_MAC}=           a2:01:01:01:01:01
    36  ${WAIT_TIMEOUT}=     20s
    37  ${SYNC_SLEEP}=       3s
    38  
    39  *** Test Cases ***
    40  Configure Environment
    41      [Tags]    setup
    42      Configure Environment 5
    43      Sleep    ${SYNC_SLEEP}
    44  
    45  Show Interfaces Before Setup
    46      vpp_term: Show Interfaces    agent_vpp_1
    47  
    48  Add Veth1 Interface
    49      linux: Interface Not Exists    node=agent_vpp_1    mac=${VETH1_MAC}
    50      Put Veth Interface With IP    node=agent_vpp_1    name=vpp1_veth1
    51      ...    mac=${VETH1_MAC}    peer=vpp1_veth2    ip=10.10.1.1    prefix=24    mtu=1500
    52  
    53  Add Veth2 Interface
    54      linux: Interface Not Exists    node=agent_vpp_1    mac=${VETH2_MAC}
    55      Put Veth Interface    node=agent_vpp_1    name=vpp1_veth2
    56      ...    mac=${VETH2_MAC}    peer=vpp1_veth1
    57  
    58  Add Memif Interface
    59      Put Memif Interface With IP    node=agent_vpp_1    name=vpp1_memif1
    60      ...    mac=62:61:61:61:61:61    master=true    id=1
    61      ...    ip=192.168.1.1    prefix=24    socket=default.sock
    62  
    63  Add VXLan Interface
    64      Put VXLan Interface    node=agent_vpp_1    name=vpp1_vxlan1
    65      ...    src=192.168.1.1    dst=192.168.1.2    vni=5
    66  
    67  Add Loopback1 Interface
    68      Put Loopback Interface With IP    node=agent_vpp_1    name=vpp1_loop1
    69      ...    mac=12:21:21:11:11:11    ip=20.20.1.1   prefix=24   mtu=1400
    70  
    71  Add Loopback2 Interface
    72      Put Loopback Interface With IP    node=agent_vpp_1    name=vpp1_loop2
    73      ...    mac=22:21:21:11:11:11    ip=22.20.1.1   prefix=24   mtu=1400
    74  
    75  Add Tap Interface
    76      Put TAPv2 Interface With IP    node=agent_vpp_1    name=vpp1_tap1
    77      ...    mac=32:21:21:11:11:11    ip=30.30.1.1   prefix=24      host_if_name=linux_vpp1_tap1
    78  
    79  Check That Veth1 And Veth2 Interfaces Are Created
    80      linux: Interface Is Created    node=agent_vpp_1    mac=${VETH1_MAC}
    81      linux: Interface Is Created    node=agent_vpp_1    mac=${VETH2_MAC}
    82      Wait Until Keyword Succeeds   ${WAIT_TIMEOUT}   ${SYNC_SLEEP}
    83      ...    linux: Check Veth Interface State     agent_vpp_1    vpp1_veth1
    84      ...    mac=${VETH1_MAC}    ipv4=10.10.1.1/24    mtu=1500    state=up
    85      Wait Until Keyword Succeeds   ${WAIT_TIMEOUT}   ${SYNC_SLEEP}
    86      ...    linux: Check Veth Interface State     agent_vpp_1    vpp1_veth2
    87      ...    mac=${VETH2_MAC}    state=up
    88  
    89  Check TAP Interface Created
    90      vpp_term: Interface Is Created    node=agent_vpp_1    mac=32:21:21:11:11:11
    91      Wait Until Keyword Succeeds   ${WAIT_TIMEOUT}   ${SYNC_SLEEP}
    92      ...    vpp_term: Check TAP interface State    agent_vpp_1    vpp1_tap1
    93      ...    mac=32:21:21:11:11:11    ipv4=30.30.1.1/24    state=up
    94  
    95  Check Memif Interface Created
    96      vpp_term: Interface Is Created    node=agent_vpp_1    mac=62:61:61:61:61:61
    97      Wait Until Keyword Succeeds   ${WAIT_TIMEOUT}   ${SYNC_SLEEP}
    98      ...    vpp_term: Check Memif Interface State     agent_vpp_1  vpp1_memif1
    99      ...    mac=62:61:61:61:61:61  role=master  id=1  ipv4=192.168.1.1/24  connected=0  enabled=1  socket=${AGENT_VPP_1_MEMIF_SOCKET_FOLDER}/default.sock
   100  
   101  Check VXLan Interface Created
   102      VXLan Tunnel Is Created    node=agent_vpp_1    src=192.168.1.1    dst=192.168.1.2    vni=5
   103      vpp_api: Check VXLan Interface State    agent_vpp_1    vpp1_vxlan1
   104      ...    enabled=1    src=192.168.1.1    dst=192.168.1.2    vni=5
   105  
   106  Check Loopback1 Interface Created
   107      vpp_term: Interface Is Created    node=agent_vpp_1    mac=12:21:21:11:11:11
   108      vpp_api: Check Loopback Interface State    agent_vpp_1    vpp1_loop1
   109      ...    enabled=1     mac=12:21:21:11:11:11    mtu=1400  ipv4=20.20.1.1/24
   110  
   111  Check Loopback2 Interface Created
   112      vpp_term: Interface Is Created    node=agent_vpp_1    mac=22:21:21:11:11:11
   113      Wait Until Keyword Succeeds   ${WAIT_TIMEOUT}   ${SYNC_SLEEP}
   114      ...    vpp_api: Check Loopback Interface State    agent_vpp_1    vpp1_loop2
   115      ...    enabled=1     mac=22:21:21:11:11:11    mtu=1400  ipv4=22.20.1.1/24
   116  
   117  Check Stuff
   118      Show Interfaces And Other Objects
   119  
   120  Add L2XConnect1 for Memif and Loopback1
   121      Put L2XConnect  agent_vpp_1    vpp1_memif1    vpp1_loop1
   122      Put L2XConnect  agent_vpp_1    vpp1_loop1     vpp1_memif1
   123  
   124  Check L2XConnect1 Memif and Loopback1 in XConnect mode
   125      Wait Until Keyword Succeeds   ${WAIT_TIMEOUT}   ${SYNC_SLEEP}
   126      ...    Verify XConnect Interfaces    agent_vpp_1
   127      ...    l2 xconnect memif1/1 loop0
   128      ...    l2 xconnect loop0 memif1/1
   129  
   130  Add L2XConnect2 for Tap and Loopback2
   131      Put L2XConnect  agent_vpp_1    vpp1_tap1    vpp1_loop2
   132      Put L2XConnect  agent_vpp_1    vpp1_loop2     vpp1_tap1
   133  
   134  Check L2XConnect2 and L2XConnect1 still configured
   135      Wait Until Keyword Succeeds   ${WAIT_TIMEOUT}   ${SYNC_SLEEP}
   136      ...    Verify XConnect Interfaces    agent_vpp_1
   137      ...    l2 xconnect memif1/1 loop0
   138      ...    l2 xconnect loop0 memif1/1
   139      ...    l2 xconnect tap0 loop1
   140      ...    l2 xconnect loop1 tap0
   141  
   142  Modify L2XConnect1
   143      Delete L2XConnect      agent_vpp_1    vpp1_memif1
   144      Put L2XConnect  agent_vpp_1    vpp1_vxlan1    vpp1_loop1
   145      Put L2XConnect  agent_vpp_1    vpp1_loop1     vpp1_vxlan1
   146  
   147  Check L2XConnect1 Modified and L2XConnect2 still configured
   148      Wait Until Keyword Succeeds   ${WAIT_TIMEOUT}   ${SYNC_SLEEP}
   149      ...    Verify XConnect Interfaces    agent_vpp_1
   150      ...    l2 xconnect vxlan_tunnel0 loop0
   151      ...    l2 xconnect loop0 vxlan_tunnel0
   152      ...    l2 xconnect tap0 loop1
   153      ...    l2 xconnect loop1 tap0
   154      ...    l3 memif1/1
   155  
   156  Delete L2XConnect1
   157      Delete L2XConnect      agent_vpp_1    vpp1_vxlan1
   158      Delete L2XConnect      agent_vpp_1    vpp1_loop1
   159  
   160  Check L2XConnect1 Deleted and L2XConnect2 still configured
   161      Wait Until Keyword Succeeds   ${WAIT_TIMEOUT}   ${SYNC_SLEEP}
   162      ...    Verify XConnect Interfaces    agent_vpp_1
   163      ...    l3 memif1/1
   164      ...    l3 loop0
   165      ...    l3 vxlan_tunnel0
   166      ...    l2 xconnect tap0 loop1
   167      ...    l2 xconnect loop1 tap0
   168  
   169  Delete L2XConnect2
   170      Delete L2XConnect      agent_vpp_1    vpp1_tap1
   171      Delete L2XConnect      agent_vpp_1    vpp1_loop2
   172  
   173  Check L2XConnect1 and L2XConnect2 Deleted
   174      Wait Until Keyword Succeeds   ${WAIT_TIMEOUT}   ${SYNC_SLEEP}
   175      ...    Verify XConnect Interfaces    agent_vpp_1
   176      ...    l3 memif1/1
   177      ...    l3 loop0
   178      ...    l3 vxlan_tunnel0
   179      ...    l3 tap0
   180      ...    l3 loop1
   181  
   182  *** Keywords ***
   183  Show Interfaces And Other Objects
   184      vpp_term: Show Interfaces    agent_vpp_1
   185      Write To Machine    agent_vpp_1_term    show int addr
   186      Write To Machine    agent_vpp_1_term    show h
   187      Write To Machine    agent_vpp_1_term    show br
   188      Write To Machine    agent_vpp_1_term    show br 1 detail
   189      Write To Machine    agent_vpp_1_term    show vxlan tunnel
   190      Write To Machine    agent_vpp_1_term    show err
   191      vat_term: Interfaces Dump    agent_vpp_1
   192       Execute In Container    agent_vpp_1    ip a
   193      vpp_term: Show Interface Mode    agent_vpp_1
   194      Make Datastore Snapshots    before_resync
   195  
   196  TestSetup
   197      Make Datastore Snapshots    ${TEST_NAME}_test_setup
   198  
   199  TestTeardown
   200      Make Datastore Snapshots    ${TEST_NAME}_test_teardown
   201  
   202  Suite Cleanup
   203      Stop SFC Controller Container
   204      Testsuite Teardown
   205  
   206  Verify XConnect Interfaces
   207      [Arguments]    ${node}    @{interfaces}
   208      ${out}=      vpp_term: Show Interface Mode    ${node}
   209      :FOR    ${interface}    IN    @{interfaces}
   210      \    Should Contain    ${out}    ${interface}