| *** Settings *** | 
 | Documentation    Module to test network stability. | 
 | ...              By default running HTX mdt.bu profile for stress test. | 
 |  | 
 | Resource         ../syslib/utils_os.robot | 
 | Library          ../syslib/utils_keywords.py | 
 |  | 
 | Test Setup      Test Setup Execution | 
 | Test Teardown   Test Teardown Execution | 
 |  | 
 | *** Variables **** | 
 |  | 
 | ${stack_mode}        skip | 
 |  | 
 | *** Test Cases *** | 
 |  | 
 | Network Stability Test | 
 |     [Documentation]  Execute network stress in loop. | 
 |     [Tags]  Network_Stability_Test | 
 |  | 
 |     # Run the network stress test HTX_LOOP times in loop. | 
 |     Repeat Keyword  ${HTX_LOOP} times  Execute Network Test | 
 |  | 
 |  | 
 | *** Keywords *** | 
 |  | 
 | Execute Network Test | 
 |     [Documentation]  Execute network stress test. | 
 |     # Test Flow: | 
 |     #              - Power on | 
 |     #              - Establish SSH connection session | 
 |     #              - Create HTX mdt profile | 
 |     #              - Run HTX exerciser | 
 |     #              - Inject network activity on BMC | 
 |     #              - Check HTX status for errors | 
 |     #              - Shutdown HTX if no error when timer expires | 
 |  | 
 |     REST Power On  stack_mode=skip | 
 |  | 
 |     # Post Power off and on, the OS SSH session needs to be established. | 
 |     Login To OS | 
 |  | 
 |     Run Keyword If  '${HTX_MDT_PROFILE}' == 'mdt.bu' | 
 |     ...  Create Default MDT Profile | 
 |  | 
 |     Run MDT Profile | 
 |  | 
 |     # HTX is running, inject network traffic and check every HTX_INTERVAL | 
 |     ${status}=  Run Until Keyword Fails  ${HTX_DURATION}  ${HTX_INTERVAL} | 
 |     ...  Start Network Test | 
 |  | 
 |     Run Keyword If  '${status}' == 'False' | 
 |     ...  Fail  Network is unstable. Please check for errors. | 
 |  | 
 |     Shutdown HTX Exerciser | 
 |  | 
 |     Rprint Timen  HTX Test ran for: ${HTX_DURATION} | 
 |  | 
 |  | 
 | Start Network Test | 
 |     [Documentation]  Start network stress test. | 
 |     BMC Network Payload | 
 |     Check HTX Run Status | 
 |  | 
 |  | 
 | BMC Network Payload | 
 |     [Documentation]  Start creating network activity over BMC network. | 
 |  | 
 |     # REST GET enumerate call. | 
 |     OpenBMC Get Request | 
 |     ...  /xyz/openbmc_project/inventory/enumerate  timeout=${20}  quiet=${1} | 
 |  | 
 |     # Upload 32 MB data via REST to BMC. | 
 |     REST Upload File To BMC | 
 |  | 
 |  | 
 | Test Setup Execution | 
 |     [Documentation]  Do the initial test setup. | 
 |  | 
 |     REST Power On  stack_mode=skip | 
 |     Delete All Error Logs | 
 |     Tool Exist  htxcmdline | 
 |  | 
 |     # Shutdown if HTX is running. | 
 |     ${status}=  Is HTX Running | 
 |     Run Keyword If  '${status}' == 'True' | 
 |     ...  Shutdown HTX Exerciser | 
 |  | 
 |  | 
 | Test Teardown Execution | 
 |     [Documentation]  Do the post test teardown. | 
 |     # 1. Shut down HTX exerciser if test Failed. | 
 |     # 2. Capture FFDC on test failure. | 
 |     # 3. Close all open SSH connections. | 
 |  | 
 |     # Keep HTX running if user set HTX_KEEP_RUNNING to 1. | 
 |     Run Keyword If  '${TEST_STATUS}' == 'FAIL' and ${HTX_KEEP_RUNNING} == ${0} | 
 |     ...  Shutdown HTX Exerciser | 
 |  | 
 |     FFDC On Test Case Fail | 
 |     Close All Connections |