--- /dev/null
+*** Settings ***\r
+Documentation Test suite for LACP Link Resiliency\r
+Suite Setup LACP Inventory Suite Setup\r
+Suite Teardown Delete All Sessions\r
+Library SSHLibrary\r
+Library Collections\r
+Library String\r
+Library RequestsLibrary\r
+Library ../../../libraries/Common.py\r
+Resource ../../../libraries/Utils.txt\r
+Variables ../../../variables/Variables.py\r
+\r
+*** Variables ***\r
+${node1} openflow:1\r
+${agg-id1} 1\r
+${agg-id2} 2\r
+${agg1-connector-id1} 1\r
+${agg1-connector-id2} 2\r
+${agg2-connector-id1} 3\r
+${agg2-connector-id2} 4\r
+\r
+*** Test Cases ***\r
+Verify the Group tables data for Switch(S1)\r
+ [Documentation] Functionality would check the presence of group tables entries on OVS Switch(S1) initially\r
+ Verify Switch S1 Group Table select 1 2 up\r
+ Verify Switch S1 Group Table select 3 4 up\r
+\r
+Generate port down scenario of one of the LAG interface on the Host H2 side and check functionality\r
+ [Documentation] Generate the link failure on Host H2 LAG Membership-port and verify functionality\r
+ Set Host interface state h2-eth1 down\r
+\r
+Verify information of lacp-aggregator associated with Host H2 after link down scenario\r
+ [Documentation] Get lacp-aggregator data for node associated with Host H2\r
+ Wait Until Keyword Succeeds 15s 1s Verify LACP aggregator data is updated post link down scenario\r
+\r
+Verify the Switch(S1) Group tables data after H2 link down scenario\r
+ [Documentation] Functionality to check if the corresponding group entries are updated on OVS Switch(S1) after port-down scenario on the Host H2\r
+ Verify Switch S1 Group Table select 3 4 down\r
+\r
+Generate port up scenario of the LAG interface on the Host H2 side and check functionality\r
+ [Documentation] Generate the link up scenario on Host H2 LAG Membership-port and verify functionality\r
+ Set Host interface state h2-eth1 up\r
+\r
+Verify information of lacp-aggregator associated with Host H2 after link up scenario\r
+ [Documentation] Get lacp-aggregator data for node associated with Host H2\r
+ Wait Until Keyword Succeeds 15s 1s Verify LACP aggregator data is updated post link up scenario\r
+\r
+Verify Switch(S1) Flow and Group tables data after H2 link up scenario\r
+ [Documentation] Functionality to check if the corresponding group entries are updated on OVS Switch(S1) after port-bringup scenario on the Host H2\r
+ Verify Switch S1 Group Table select 3 4 up\r
+\r
+*** Keywords ***\r
+Verify LACP RESTAPI Response Code for node\r
+ [Documentation] Will check for the response code of the REST query\r
+ Should Be Equal As Strings ${resp.status_code} 200\r
+ Should Contain ${resp.content} ${node1}\r
+\r
+Verify LACP RESTAPI Aggregator and Tag Contents\r
+ [Arguments] ${resp.content} ${content-lookup}\r
+ [Documentation] Will check for the LACP Specific tags or Aggregator ID for node\r
+ Should Contain ${resp.content} ${content-lookup}\r
+\r
+Verify LACP RESTAPI connector associated for aggregator\r
+ [Arguments] ${resp.content} ${node} ${agg-connector-id}\r
+ [Documentation] Will check for the LACP connector info for each aggregator\r
+ Should Contain ${resp.content} ${node}:${agg-connector-id}\r
+\r
+Verify LACP aggregator data is updated post link down scenario\r
+ [Documentation] Functionality will verify the node conenctor data on the lacp-agg api after link down scenario\r
+ ${resp} RequestsLibrary.Get session ${OPERATIONAL_NODES_API}/node/${node1}/lacp-aggregators/${agg-id2}\r
+ Verify LACP RESTAPI Response Code for node\r
+ Verify LACP RESTAPI connector associated for aggregator ${resp.content} ${node1} ${agg2-connector-id1}\r
+ Should not Contain ${resp.content} ${node1}:${agg2-connector-id2}\r
+ Verify LACP RESTAPI Aggregator and Tag Contents ${resp.content} lag-groupid\r
+\r
+Verify LACP aggregator data is updated post link up scenario\r
+ [Documentation] Functionality will verify the node connector data on the lacp-agg api after link up scenario\r
+ ${resp} RequestsLibrary.Get session ${OPERATIONAL_NODES_API}/node/${node1}/lacp-aggregators/${agg-id2}\r
+ Verify LACP RESTAPI Response Code for node\r
+ Verify LACP RESTAPI connector associated for aggregator ${resp.content} ${node1} ${agg2-connector-id1}\r
+ Verify LACP RESTAPI connector associated for aggregator ${resp.content} ${node1} ${agg2-connector-id2}\r
+ Verify LACP RESTAPI Aggregator and Tag Contents ${resp.content} lag-groupid\r
+\r
+Verify LACP Tags Are Formed\r
+ [Documentation] Fundamental Check That LACP is working\r
+ ${resp} RequestsLibrary.Get session ${OPERATIONAL_NODES_API}\r
+ Verify LACP RESTAPI Response Code for node\r
+ Verify LACP RESTAPI Aggregator and Tag Contents ${resp.content} non-lag-groupid\r
+ Verify LACP RESTAPI Aggregator and Tag Contents ${resp.content} lacp-aggregators\r
+\r
+LACP Inventory Suite Setup\r
+ [Documentation] If these basic checks fail, there is no need to continue any of the other test cases\r
+ Create Session session http://${CONTROLLER}:${RESTCONFPORT} auth=${AUTH} headers=${HEADERS}\r
+ Wait Until Keyword Succeeds 15s 1s Verify LACP Tags Are Formed\r
+\r
+Set Host interface state\r
+ [Arguments] ${port-id} ${port-state}\r
+ [Documentation] Will configure the port state of the Host to either up or down\r
+ Open Connection ${MININET} prompt=${LINUX_PROMPT}\r
+ Login With Public Key ${MININET_USER} ${USER_HOME}/.ssh/id_rsa any\r
+ Execute Command sudo ./m h2\r
+ Execute Command sudo ifconfig ${port-id} ${port-state}\r
+ Execute Command sudo ifconfig ${port-id}\r
+\r
+Verify Switch S1 Group Table\r
+ [Arguments] ${group-type} ${port-id1} ${port-id2} ${port-id2-state}\r
+ [Documentation] Functionality to verify the presence of LACP group entries on the OVS Switch(S1) Group table\r
+ ${group_output}= Run Command on Remote System ${MININET} sudo ovs-ofctl dump-groups s1 -O OpenFlow13\r
+ Log ${group_output}\r
+ Comment ${group_output} Read Until mininet>\r
+ ${result}= Get Lines Containing String ${group_output} output:${port-id1}\r
+ Should Contain ${result} type=${group-type}\r
+ Should Contain ${result} output:${port-id1}\r
+ Run Keyword If "${port-id2-state}" == "up" Should Contain ${result} output:${port-id2} ELSE Should not Contain\r
+ ... ${result} output:${port-id2}\r
--- /dev/null
+*** Settings ***\r
+Documentation Test suite to verify if the PDU count for the LACP flow entry is getting updated\r
+Suite Setup LACP Inventory Suite Setup\r
+Suite Teardown Delete All Sessions\r
+Library SSHLibrary\r
+Library Collections\r
+Library String\r
+Library RequestsLibrary\r
+Library ../../../libraries/Common.py\r
+Resource ../../../libraries/Utils.txt\r
+Variables ../../../variables/Variables.py\r
+\r
+*** Variables ***\r
+${node1} openflow:1\r
+\r
+*** Test Cases ***\r
+Verify Switch S1 LACP flow entry packet hit doesn't display zero value\r
+ [Documentation] Verify the LACP flow entry packet hit stats doesn't display zero value on the Switch S1\r
+ ${result}= Run Command On Remote System ${MININET} sudo ovs-ofctl dump-flows s1 -O OpenFlow13\r
+ Comment ${result} Read Until mininet>\r
+ Should Not Contain ${result} n_packets=0\r
+ Should Not Contain ${result} n_bytes=0\r
+\r
+Verify Switch S1 Port stats doesn't display zero value\r
+ [Documentation] Verify the port stats for the Switch S1 doesn't display value with zero\r
+ ${result}= Run Command On Remote System ${MININET} sudo ovs-ofctl dump-ports s1 -O OpenFlow13\r
+ Comment ${result} Read Until mininet>\r
+ ${port1}= Get Lines Containing String ${result} 1:\r
+ Should Not Contain ${port1} rx pkts=0\r
+ Should Not Contain ${port1} bytes=0\r
+ ${port2}= Get Lines Containing String ${result} 2:\r
+ Should Not Contain ${port2} rx pkts=0\r
+ Should Not Contain ${port2} bytes=0\r
+ ${port3}= Get Lines Containing String ${result} 3:\r
+ Should Not Contain ${port3} rx pkts=0\r
+ Should Not Contain ${port3} bytes=0\r
+ ${port4}= Get Lines Containing String ${result} 4:\r
+ Should Not Contain ${port4} rx pkts=0\r
+ Should Not Contain ${port4} bytes=0\r
+\r
+*** Keywords ***\r
+Verify LACP RESTAPI Response Code for node\r
+ [Documentation] Will check for the response code of the REST query\r
+ Should Be Equal As Strings ${resp.status_code} 200\r
+ Should Contain ${resp.content} ${node1}\r
+\r
+Verify LACP RESTAPI Aggregator and Tag Contents\r
+ [Arguments] ${resp.content} ${content-lookup}\r
+ [Documentation] Will check for the LACP Specific tags or Aggregator ID for node\r
+ Should Contain ${resp.content} ${content-lookup}\r
+\r
+Verify LACP Tags Are Formed\r
+ [Documentation] Fundamental Check That LACP is working\r
+ ${resp} RequestsLibrary.Get session ${OPERATIONAL_NODES_API}\r
+ Verify LACP RESTAPI Response Code for node\r
+ Verify LACP RESTAPI Aggregator and Tag Contents ${resp.content} non-lag-groupid\r
+ Verify LACP RESTAPI Aggregator and Tag Contents ${resp.content} lacp-aggregators\r
+\r
+LACP Inventory Suite Setup\r
+ [Documentation] If these basic checks fail, there is no need to continue any of the other test cases\r
+ Create Session session http://${CONTROLLER}:${RESTCONFPORT} auth=${AUTH} headers=${HEADERS}\r
+ Wait Until Keyword Succeeds 15s 1s Verify LACP Tags Are Formed\r