Add WUKS to stabilize l2switch suite
[integration/test.git] / csit / suites / l2switch / Loop_Removal_OF13 / 010__loop_of_3.robot
1 *** Settings ***
2 Documentation     Test suite for Ring/Loop topology of size 3
3 Suite Setup       Start Suite
4 Suite Teardown    Utils.Stop Suite
5 Library           RequestsLibrary
6 Resource          ../../../libraries/Utils.robot
7 Variables         ../../../variables/Variables.py
8
9 *** Variables ***
10 ${FORWARD}        "stp-status-aware-node-connector:status":"forwarding"
11 ${DISCARD}        "stp-status-aware-node-connector:status":"discarding"
12
13 *** Test Cases ***
14 Check Stats for node 1
15     [Documentation]    Get the stats for a node
16     Wait Until Keyword Succeeds    10s    2s    Check Nodes Stats    openflow:1
17
18 Check Stats for node 2
19     [Documentation]    Get the stats for a node
20     Wait Until Keyword Succeeds    10s    2s    Check Nodes Stats    openflow:2
21
22 Check Stats for node 3
23     [Documentation]    Get the stats for a node
24     Wait Until Keyword Succeeds    10s    2s    Check Nodes Stats    openflow:3
25
26 Check Ports
27     [Documentation]    Check all ports are present
28     @{list}    Create List    openflow:1:1    openflow:1:2    openflow:1:3    openflow:2:1    openflow:2:2
29     ...    openflow:2:3    openflow:3:1    openflow:3:2    openflow:3:3
30     Wait Until Keyword Succeeds    10s    2s    Check For Elements At URI    ${OPERATIONAL_NODES_API}    ${list}
31
32 Check Ports STP status
33     [Documentation]    Check the stp status of the ports (forwarding/discarding)
34     Wait Until Keyword Succeeds    10s    2s    Check For Specific Number Of Elements At URI    ${OPERATIONAL_NODES_API}    ${FORWARD}    4
35     Wait Until Keyword Succeeds    10s    2s    Check For Specific Number Of Elements At URI    ${OPERATIONAL_NODES_API}    ${DISCARD}    2
36
37 Ping Test
38     [Documentation]    Ping h1 to h2, verify no packet loss or duplicates
39     Wait Until Keyword Succeeds    10s    2s    Ping Works Good
40
41 Link Down
42     [Documentation]    Take link s1-s2 down and verify ping works
43     [Tags]    exclude
44     Write    link s1 s2 down
45     Read Until    mininet>
46     @{list}    Create List    ${DISCARD}
47     Wait Until Keyword Succeeds    10s    2s    Check For Elements Not At URI    ${OPERATIONAL_NODES_API}    ${list}
48     Wait Until Keyword Succeeds    10s    2s    Ping Works Good
49
50 Link Up
51     [Documentation]    Take link s1-s2 up and verify ping works
52     [Tags]    exclude
53     Write    link s1 s2 up
54     Read Until    mininet>
55     Wait Until Keyword Succeeds    10s    2s    Check For Specific Number Of Elements At URI    ${OPERATIONAL_NODES_API}    ${FORWARD}    4
56     Wait Until Keyword Succeeds    10s    2s    Check For Specific Number Of Elements At URI    ${OPERATIONAL_NODES_API}    ${DISCARD}    2
57     Wait Until Keyword Succeeds    10s    2s    Ping Works Good
58
59 Remove Port
60     [Documentation]    Remove port s1-eth2 and verify ping works
61     Write    sh ovs-vsctl del-port s1 s1-eth2
62     Read Until    mininet>
63     @{list}    Create List    ${DISCARD}
64     Wait Until Keyword Succeeds    10s    2s    Check For Elements Not At URI    ${OPERATIONAL_NODES_API}    ${list}
65     Wait Until Keyword Succeeds    10s    2s    Ping Works Good
66
67 Add Port
68     [Documentation]    Add port s1-eth2 and verify ping works
69     Write    sh ovs-vsctl add-port s1 s1-eth2 -- set interface s1-eth2 ofport=2
70     Read Until    mininet>
71     Wait Until Keyword Succeeds    10s    2s    Check For Specific Number Of Elements At URI    ${OPERATIONAL_NODES_API}    ${FORWARD}    4
72     Wait Until Keyword Succeeds    10s    2s    Check For Specific Number Of Elements At URI    ${OPERATIONAL_NODES_API}    ${DISCARD}    2
73     Wait Until Keyword Succeeds    10s    2s    Ping Works Good
74
75 *** Keywords ***
76 Start Suite
77     [Documentation]    Open controller session & mininet connection and start mininet custom topo
78     Create Session    session    http://${ODL_SYSTEM_IP}:${RESTCONFPORT}    auth=${AUTH}    headers=${HEADERS_XML}
79     ${start}=    Set Variable    sudo mn --controller=remote,ip=${ODL_SYSTEM_IP} --custom customtopo.py --topo ring --switch ovsk,protocols=OpenFlow13
80     ${mininet_conn_id}=    Open Connection    ${TOOLS_SYSTEM_IP}    prompt=${DEFAULT_LINUX_PROMPT}    timeout=30s
81     Set Suite Variable    ${mininet_conn_id}
82     Login With Public Key    ${TOOLS_SYSTEM_USER}    ${USER_HOME}/.ssh/${SSH_KEY}    any
83     Put File    ${CURDIR}/../topologies/customtopo.py
84     Execute Command    sudo ovs-vsctl set-manager ptcp:6644
85     Execute Command    sudo mn -c
86     Write    ${start}
87     Read Until    mininet>
88
89 Ping Works Good
90     Write    h1 ping -w 1 h2
91     ${result}    Read Until    mininet>
92     Should Contain    ${result}    received, 0% packet loss
93     Should Not Contain    ${result}    duplicates