<?xml version="1.0" encoding="UTF-8"?>
<robot generator="Robot 7.5 (Python 3.11.10 on linux)" generated="2026-09-23T04:36:24.498337" rpa="false" schemaversion="5">
<suite id="s1" name="openflowplugin-cbench.txt" source="/w/workspace/openflowplugin-csit-1node-cbench-only-chromium/test/csit/suites/openflowplugin/Performance/010_Cbench.robot">
<kw name="Cbench Suite Setup" type="SETUP">
<kw name="Wait Until Keyword Succeeds" owner="BuiltIn">
<kw name="Issue_Command_On_Karaf_Console" owner="KarafKeywords">
<if>
<branch type="IF" condition="'${IS_KARAF_APPL}' == 'False'">
<return>
<value>Not A Karaf App</value>
<status status="NOT RUN" start="2026-09-23T04:36:24.982579" elapsed="0.000022"/>
</return>
<status status="NOT RUN" start="2026-09-23T04:36:24.982464" elapsed="0.000185"/>
</branch>
<status status="PASS" start="2026-09-23T04:36:24.982436" elapsed="0.000240"/>
</if>
<kw name="Open Connection" owner="SSHLibrary">
<arg>${controller}</arg>
<arg>port=${karaf_port}</arg>
<arg>prompt=${KARAF_PROMPT_LOGIN}</arg>
<arg>timeout=${timeout}</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-09-23T04:36:24.982845" elapsed="0.000472"/>
</kw>
<kw name="Login" owner="SSHLibrary">
<msg time="2026-09-23T04:36:24.983749" level="INFO">Logging into '10.30.170.77:8101' as 'karaf'.</msg>
<msg time="2026-09-23T04:36:25.596795" level="INFO">Read output: [33m                                                                                           
[33m    ________                       ________                .__  .__       .__     __       
[33m    \_____  \ ______   ____   ____ \______ \ _____  ___.__.|  | |__| ____ |  |___/  |_     
[33m     /   |   \\____ \_/ __ \ /    \ |    |  \\__  \&lt;   |  ||  | |  |/ ___\|  |  \   __\    
[33m    /    |    \  |_&gt; &gt;  ___/|   |  \|    `   \/ __ \\___  ||  |_|  / /_/  &gt;   Y  \  |      
[33m    \_______  /   __/ \___  &gt;___|  /_______  (____  / ____||____/__\___  /|___|  /__|      
[33m            \/|__|        \/     \/        \/     \/\/            /_____/      \/          
[33m                                                                                           

Hit '[1m&lt;tab&gt;[0m' for a list of available commands
and '[1m[cmd] --help[0m' for help on a specific command.
Hit '[1m&lt;ctrl-d&gt;[0m' or type '[1msystem:shutdown[0m' or '[1mlogout[0m' to shutdown OpenDaylight.

[?1h=[90m~[0m                                                                                [?2004hopendaylight-user</msg>
<arg>${KARAF_USER}</arg>
<arg>${KARAF_PASSWORD}</arg>
<arg>loglevel=${loglevel}</arg>
<doc>Logs into the SSH server with the given ``username`` and ``password``.</doc>
<status status="PASS" start="2026-09-23T04:36:24.983511" elapsed="0.613461"/>
</kw>
<kw name="Write" owner="SSHLibrary">
<msg time="2026-09-23T04:36:25.644581" level="INFO">@root&gt;log:set ERROR</msg>
<arg>${cmd}</arg>
<doc>Writes the given ``text`` on the remote machine and appends a newline.</doc>
<status status="PASS" start="2026-09-23T04:36:25.597274" elapsed="0.047372"/>
</kw>
<kw name="Read Until Regexp" owner="SSHLibrary">
<msg time="2026-09-23T04:36:25.646291" level="INFO">[?1l&gt;[?2004l[?1h=[90m~[0m                                                                                [?2004hopendaylight-user@root&gt;</msg>
<msg time="2026-09-23T04:36:25.646400" level="INFO">${output} = [?1l&gt;[?2004l[?1h=[90m~[0m                                                                                [?2004hopendaylight-user@root&gt;</msg>
<var>${output}</var>
<arg>${KARAF_PROMPT}</arg>
<doc>Consumes and returns the server output until a match to ``regexp`` is found.</doc>
<status status="PASS" start="2026-09-23T04:36:25.644819" elapsed="0.001609"/>
</kw>
<kw name="Write Bare" owner="SSHLibrary">
<arg>logout\n</arg>
<doc>Writes the given ``text`` on the remote machine without appending a newline.</doc>
<status status="PASS" start="2026-09-23T04:36:25.646582" elapsed="0.000187"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-09-23T04:36:25.646921" elapsed="0.000200"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-23T04:36:25.647664" level="INFO">[?1l&gt;[?2004l[?1h=[90m~[0m                                                                                [?2004hopendaylight-user@root&gt;</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-23T04:36:25.647326" elapsed="0.000409"/>
</kw>
<return>
<value>${output}</value>
<status status="PASS" start="2026-09-23T04:36:25.647802" elapsed="0.000064"/>
</return>
<arg>log:set ${log_level}</arg>
<doc>Will execute the given ${cmd} by ssh'ing to the karaf console running on 10.30.170.77
Note that this keyword will open&amp;close new SSH connection, without switching back to previously current session.</doc>
<status status="PASS" start="2026-09-23T04:36:24.982159" elapsed="0.665831"/>
</kw>
<arg>3x</arg>
<arg>1s</arg>
<arg>KarafKeywords.Issue Command On Karaf Console</arg>
<arg>log:set ${log_level}</arg>
<doc>Runs the specified keyword and retries if it fails.</doc>
<status status="PASS" start="2026-09-23T04:36:24.980451" elapsed="0.667686"/>
</kw>
<kw name="Append To File" owner="OperatingSystem">
<msg time="2026-09-23T04:36:25.648723" level="INFO" html="true">Appended to file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-cbench-only-chromium/latency.csv"&gt;/w/workspace/openflowplugin-csit-1node-cbench-only-chromium/latency.csv&lt;/a&gt;'.</msg>
<arg>${latency_results_file}</arg>
<arg>LATENCY_MIN,LATENCY_MAX,LATENCY_AVERAGE\n</arg>
<doc>Appends the given content to the specified file.</doc>
<status status="PASS" start="2026-09-23T04:36:25.648388" elapsed="0.000409"/>
</kw>
<kw name="Append To File" owner="OperatingSystem">
<msg time="2026-09-23T04:36:25.649225" level="INFO" html="true">Appended to file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-cbench-only-chromium/throughput.csv"&gt;/w/workspace/openflowplugin-csit-1node-cbench-only-chromium/throughput.csv&lt;/a&gt;'.</msg>
<arg>${throughput_results_file}</arg>
<arg>THROUGHPUT_MIN,THROUGHPUT_MAX,THROUGHPUT_AVERAGE\n</arg>
<doc>Appends the given content to the specified file.</doc>
<status status="PASS" start="2026-09-23T04:36:25.648967" elapsed="0.000312"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-09-23T04:36:25.649973" level="INFO">${duration_in_ms} = 60000</msg>
<var>${duration_in_ms}</var>
<arg>${duration_in_secs} * 1000</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-09-23T04:36:25.649485" elapsed="0.000541"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-09-23T04:36:25.650570" level="INFO">${duration_in_ms} = 60000</msg>
<arg>${duration_in_ms}</arg>
<doc>Makes the variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-09-23T04:36:25.650256" elapsed="0.000355"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-09-23T04:36:25.651135" level="INFO">${test_timeout} = 900.0</msg>
<var>${test_timeout}</var>
<arg>(${loops} * ${duration_in_secs}) * 1.5</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-09-23T04:36:25.650773" elapsed="0.000403"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-09-23T04:36:25.651641" level="INFO">${test_timeout} = 900.0</msg>
<arg>${test_timeout}</arg>
<doc>Makes the variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-09-23T04:36:25.651361" elapsed="0.000320"/>
</kw>
<if>
<branch type="IF" condition="&quot;${cbench_system}&quot; == &quot;localhost&quot;">
<kw name="File Should Exist" owner="OperatingSystem">
<arg>${cbench_executable}</arg>
<doc>Fails unless the given `path` points to an existing file.</doc>
<status status="NOT RUN" start="2026-09-23T04:36:25.651968" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-09-23T04:36:25.651767" elapsed="0.000276"/>
</branch>
<branch type="ELSE">
<kw name="Verify File Exists On Remote System" owner="Utils">
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-09-23T04:36:25.654322" level="INFO">${conn_id} = 2</msg>
<var>${conn_id}</var>
<arg>${system}</arg>
<arg>prompt=${prompt}</arg>
<arg>timeout=${prompt_timeout}</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-09-23T04:36:25.653917" elapsed="0.000433"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-09-23T04:36:25.655510" level="INFO">Length is 0.</msg>
<msg time="2026-09-23T04:36:25.655593" level="INFO">${pwd_length} = 0</msg>
<var>${pwd_length}</var>
<arg>${password}</arg>
<doc>Returns and logs the length of the given item as an integer.</doc>
<status status="PASS" start="2026-09-23T04:36:25.654854" elapsed="0.000762"/>
</kw>
<kw name="Run Keyword And Return If" owner="BuiltIn">
<arg>${pwd_length} &gt; 0</arg>
<arg>SSHLibrary.Login</arg>
<arg>${user}</arg>
<arg>${password}</arg>
<arg>delay=${delay}</arg>
<doc>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-09-23T04:36:25.655756" elapsed="0.000358"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-09-23T04:36:25.656906" level="INFO">Logging into '10.30.170.67:22' as 'jenkins'.</msg>
<msg time="2026-09-23T04:36:26.144338" level="INFO">Read output: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-187-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/pro

 System information as of Wed Sep 23 04:35:54 UTC 2026

  System load:  0.11               Processes:             110
  Usage of /:   19.8% of 38.58GB   Users logged in:       0
  Memory usage: 4%                 IPv4 address for ens3: 10.30.170.67
  Swap usage:   0%


Expanded Security Maintenance for Applications is not enabled.

5 updates can be applied immediately.
To see these additional updates run: apt list --upgradable

14 additional security updates can be applied with ESM Apps.
Learn more about enabling ESM Apps service at https://ubuntu.com/esm


The list of available updates is more than a week old.
To check for new updates run: sudo apt update
New release '24.04.5 LTS' available.
Run 'do-release-upgrade' to upgrade to it.


[?2004h[jenkins@releng-00446-92-1-mininet-ovs-217-0 ~]&gt;</msg>
<arg>${user}</arg>
<arg>${USER_HOME}/.ssh/${SSH_KEY}</arg>
<arg>${KEYFILE_PASS}</arg>
<arg>delay=${delay}</arg>
<doc>Logs into the SSH server using key-based authentication.</doc>
<status status="PASS" start="2026-09-23T04:36:25.656655" elapsed="0.487844"/>
</kw>
<msg time="2026-09-23T04:36:26.144590" level="INFO">Returning from the enclosing user keyword.</msg>
<arg>SSHLibrary.Login With Public Key</arg>
<arg>${user}</arg>
<arg>${USER_HOME}/.ssh/${SSH_KEY}</arg>
<arg>${KEYFILE_PASS}</arg>
<arg>delay=${delay}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-09-23T04:36:25.656290" elapsed="0.488396"/>
</kw>
<arg>${user}</arg>
<arg>${password}</arg>
<doc>On active SSH session: if given non-empty password, do Login, else do Login With Public Key.</doc>
<status status="PASS" start="2026-09-23T04:36:25.654536" elapsed="0.490269"/>
</kw>
<kw name="File Should Exist" owner="SSHLibrary">
<msg time="2026-09-23T04:36:26.155060" level="INFO">[chan 1] Opened sftp connection (server version 3)</msg>
<arg>${file}</arg>
<doc>Fails if the given ``path`` does NOT point to an existing file.</doc>
<status status="PASS" start="2026-09-23T04:36:26.145050" elapsed="0.011731"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-09-23T04:36:26.156964" elapsed="0.000285"/>
</kw>
<arg>${cbench_system}</arg>
<arg>${cbench_executable}</arg>
<doc>Will create connection with public key and will PASS if the given ${file} exists,
otherwise will FAIL</doc>
<status status="PASS" start="2026-09-23T04:36:25.653450" elapsed="0.503856"/>
</kw>
<status status="PASS" start="2026-09-23T04:36:25.652208" elapsed="0.505132"/>
</branch>
<status status="PASS" start="2026-09-23T04:36:25.651740" elapsed="0.505636"/>
</if>
<kw name="Should Be True" owner="BuiltIn">
<arg>${loops} &gt;= 2</arg>
<arg>If number of loops is less than 2, cbench will not run</arg>
<doc>Fails if the given condition is not true.</doc>
<status status="PASS" start="2026-09-23T04:36:26.157542" elapsed="0.000483"/>
</kw>
<kw name="Verify_Feature_Is_Installed" owner="KarafKeywords">
<if>
<branch type="IF" condition="'${IS_KARAF_APPL}' == 'False'">
<return>
<value>Not A Karaf App</value>
<status status="NOT RUN" start="2026-09-23T04:36:26.159849" elapsed="0.000019"/>
</return>
<status status="NOT RUN" start="2026-09-23T04:36:26.159749" elapsed="0.000150"/>
</branch>
<status status="PASS" start="2026-09-23T04:36:26.159727" elapsed="0.000195"/>
</if>
<kw name="Issue_Command_On_Karaf_Console" owner="KarafKeywords">
<if>
<branch type="IF" condition="'${IS_KARAF_APPL}' == 'False'">
<return>
<value>Not A Karaf App</value>
<status status="NOT RUN" start="2026-09-23T04:36:26.161393" elapsed="0.000014"/>
</return>
<status status="NOT RUN" start="2026-09-23T04:36:26.161303" elapsed="0.000134"/>
</branch>
<status status="PASS" start="2026-09-23T04:36:26.161285" elapsed="0.000172"/>
</if>
<kw name="Open Connection" owner="SSHLibrary">
<arg>${controller}</arg>
<arg>port=${karaf_port}</arg>
<arg>prompt=${KARAF_PROMPT_LOGIN}</arg>
<arg>timeout=${timeout}</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-09-23T04:36:26.161611" elapsed="0.000352"/>
</kw>
<kw name="Login" owner="SSHLibrary">
<msg time="2026-09-23T04:36:26.162400" level="INFO">Logging into '10.30.170.77:8101' as 'karaf'.</msg>
<msg time="2026-09-23T04:36:26.436965" level="INFO">Read output: [33m                                                                                           
[33m    ________                       ________                .__  .__       .__     __       
[33m    \_____  \ ______   ____   ____ \______ \ _____  ___.__.|  | |__| ____ |  |___/  |_     
[33m     /   |   \\____ \_/ __ \ /    \ |    |  \\__  \&lt;   |  ||  | |  |/ ___\|  |  \   __\    
[33m    /    |    \  |_&gt; &gt;  ___/|   |  \|    `   \/ __ \\___  ||  |_|  / /_/  &gt;   Y  \  |      
[33m    \_______  /   __/ \___  &gt;___|  /_______  (____  / ____||____/__\___  /|___|  /__|      
[33m            \/|__|        \/     \/        \/     \/\/            /_____/      \/          
[33m                                                                                           

Hit '[1m&lt;tab&gt;[0m' for a list of available commands
and '[1m[cmd] --help[0m' for help on a specific command.
Hit '[1m&lt;ctrl-d&gt;[0m' or type '[1msystem:shutdown[0m' or '[1mlogout[0m' to shutdown OpenDaylight.

[?1h=[90m~[0m                                                                                [?2004hopendaylight-user</msg>
<arg>${KARAF_USER}</arg>
<arg>${KARAF_PASSWORD}</arg>
<arg>loglevel=${loglevel}</arg>
<doc>Logs into the SSH server with the given ``username`` and ``password``.</doc>
<status status="PASS" start="2026-09-23T04:36:26.162177" elapsed="0.274945"/>
</kw>
<kw name="Write" owner="SSHLibrary">
<msg time="2026-09-23T04:36:26.536556" level="INFO">@root&gt;feature:list -i | 0[C 0g[Krep odl-openflowplugin-drop-test</msg>
<arg>${cmd}</arg>
<doc>Writes the given ``text`` on the remote machine and appends a newline.</doc>
<status status="PASS" start="2026-09-23T04:36:26.437370" elapsed="0.099259"/>
</kw>
<kw name="Read Until Regexp" owner="SSHLibrary">
<msg time="2026-09-23T04:36:26.549961" level="INFO">[?1l&gt;[?2004l[31;1modl-openflowplugin-drop-test[0m                                    x 1.0.2            x x        x Started x [31;1modl-openflowplugin-drop-test[0m                                    x OpenDaylight :: Openflow Plugin :: Drop Test
[?1h=[90m~[0m                                                                                [?2004hopendaylight-user@root&gt;</msg>
<msg time="2026-09-23T04:36:26.550197" level="INFO">${output} = [?1l&gt;[?2004l[31;1modl-openflowplugin-drop-test[0m                                    x 1.0.2            x x        x Started x [31;1modl-openflowplugin-drop-test[0m                     ...</msg>
<var>${output}</var>
<arg>${KARAF_PROMPT}</arg>
<doc>Consumes and returns the server output until a match to ``regexp`` is found.</doc>
<status status="PASS" start="2026-09-23T04:36:26.536801" elapsed="0.013427"/>
</kw>
<kw name="Write Bare" owner="SSHLibrary">
<arg>logout\n</arg>
<doc>Writes the given ``text`` on the remote machine without appending a newline.</doc>
<status status="PASS" start="2026-09-23T04:36:26.550368" elapsed="0.000180"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-09-23T04:36:26.550688" elapsed="0.000209"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-23T04:36:26.551433" level="INFO">[?1l&gt;[?2004l[31;1modl-openflowplugin-drop-test[0m                                    x 1.0.2            x x        x Started x [31;1modl-openflowplugin-drop-test[0m                                    x OpenDaylight :: Openflow Plugin :: Drop Test
[?1h=[90m~[0m                                                                                [?2004hopendaylight-user@root&gt;</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-23T04:36:26.551093" elapsed="0.000392"/>
</kw>
<return>
<value>${output}</value>
<status status="PASS" start="2026-09-23T04:36:26.551534" elapsed="0.000055"/>
</return>
<msg time="2026-09-23T04:36:26.551716" level="INFO">${output} = [?1l&gt;[?2004l[31;1modl-openflowplugin-drop-test[0m                                    x 1.0.2            x x        x Started x [31;1modl-openflowplugin-drop-test[0m                     ...</msg>
<var>${output}</var>
<arg>feature:list -i | grep ${feature_name}</arg>
<arg>${controller}</arg>
<arg>${karaf_port}</arg>
<doc>Will execute the given ${cmd} by ssh'ing to the karaf console running on 10.30.170.77
Note that this keyword will open&amp;close new SSH connection, without switching back to previously current session.</doc>
<status status="PASS" start="2026-09-23T04:36:26.161003" elapsed="0.390743"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${output}</arg>
<arg>${feature_name}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-09-23T04:36:26.551896" elapsed="0.000534"/>
</kw>
<return>
<value>${output}</value>
<status status="PASS" start="2026-09-23T04:36:26.552478" elapsed="0.000030"/>
</return>
<arg>odl-openflowplugin-drop-test</arg>
<doc>Will Succeed if the given ${feature_name} is found in the output of "feature:list -i"</doc>
<status status="PASS" start="2026-09-23T04:36:26.159489" elapsed="0.393098"/>
</kw>
<kw name="Issue_Command_On_Karaf_Console" owner="KarafKeywords">
<if>
<branch type="IF" condition="'${IS_KARAF_APPL}' == 'False'">
<return>
<value>Not A Karaf App</value>
<status status="NOT RUN" start="2026-09-23T04:36:26.554323" elapsed="0.000016"/>
</return>
<status status="NOT RUN" start="2026-09-23T04:36:26.554207" elapsed="0.000163"/>
</branch>
<status status="PASS" start="2026-09-23T04:36:26.554181" elapsed="0.000212"/>
</if>
<kw name="Open Connection" owner="SSHLibrary">
<arg>${controller}</arg>
<arg>port=${karaf_port}</arg>
<arg>prompt=${KARAF_PROMPT_LOGIN}</arg>
<arg>timeout=${timeout}</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-09-23T04:36:26.554551" elapsed="0.000369"/>
</kw>
<kw name="Login" owner="SSHLibrary">
<msg time="2026-09-23T04:36:26.555346" level="INFO">Logging into '10.30.170.77:8101' as 'karaf'.</msg>
<msg time="2026-09-23T04:36:26.767430" level="INFO">Read output: [33m                                                                                           
[33m    ________                       ________                .__  .__       .__     __       
[33m    \_____  \ ______   ____   ____ \______ \ _____  ___.__.|  | |__| ____ |  |___/  |_     
[33m     /   |   \\____ \_/ __ \ /    \ |    |  \\__  \&lt;   |  ||  | |  |/ ___\|  |  \   __\    
[33m    /    |    \  |_&gt; &gt;  ___/|   |  \|    `   \/ __ \\___  ||  |_|  / /_/  &gt;   Y  \  |      
[33m    \_______  /   __/ \___  &gt;___|  /_______  (____  / ____||____/__\___  /|___|  /__|      
[33m            \/|__|        \/     \/        \/     \/\/            /_____/      \/          
[33m                                                                                           

Hit '[1m&lt;tab&gt;[0m' for a list of available commands
and '[1m[cmd] --help[0m' for help on a specific command.
Hit '[1m&lt;ctrl-d&gt;[0m' or type '[1msystem:shutdown[0m' or '[1mlogout[0m' to shutdown OpenDaylight.

[?1h=[90m~[0m                                                                                [?2004hopendaylight-user</msg>
<arg>${KARAF_USER}</arg>
<arg>${KARAF_PASSWORD}</arg>
<arg>loglevel=${loglevel}</arg>
<doc>Logs into the SSH server with the given ``username`` and ``password``.</doc>
<status status="PASS" start="2026-09-23T04:36:26.555114" elapsed="0.212476"/>
</kw>
<kw name="Write" owner="SSHLibrary">
<msg time="2026-09-23T04:36:26.790836" level="INFO">@root&gt;dropallpacketsrpc on</msg>
<arg>${cmd}</arg>
<doc>Writes the given ``text`` on the remote machine and appends a newline.</doc>
<status status="PASS" start="2026-09-23T04:36:26.767851" elapsed="0.023052"/>
</kw>
<kw name="Read Until Regexp" owner="SSHLibrary">
<msg time="2026-09-23T04:36:26.793019" level="INFO">[?1l&gt;[?2004lDropAllFlows transitions to on
[?1h=[90m~[0m                                                                                [?2004hopendaylight-user@root&gt;</msg>
<msg time="2026-09-23T04:36:26.793135" level="INFO">${output} = [?1l&gt;[?2004lDropAllFlows transitions to on
[?1h=[90m~[0m                                                                                [?2004hopendaylight-user@root&gt;</msg>
<var>${output}</var>
<arg>${KARAF_PROMPT}</arg>
<doc>Consumes and returns the server output until a match to ``regexp`` is found.</doc>
<status status="PASS" start="2026-09-23T04:36:26.791095" elapsed="0.002086"/>
</kw>
<kw name="Write Bare" owner="SSHLibrary">
<arg>logout\n</arg>
<doc>Writes the given ``text`` on the remote machine without appending a newline.</doc>
<status status="PASS" start="2026-09-23T04:36:26.793318" elapsed="0.000189"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-09-23T04:36:26.793678" elapsed="0.000199"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-23T04:36:26.794440" level="INFO">[?1l&gt;[?2004lDropAllFlows transitions to on
[?1h=[90m~[0m                                                                                [?2004hopendaylight-user@root&gt;</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-23T04:36:26.794114" elapsed="0.000374"/>
</kw>
<return>
<value>${output}</value>
<status status="PASS" start="2026-09-23T04:36:26.794537" elapsed="0.000064"/>
</return>
<arg>dropallpacketsrpc on</arg>
<doc>Will execute the given ${cmd} by ssh'ing to the karaf console running on 10.30.170.77
Note that this keyword will open&amp;close new SSH connection, without switching back to previously current session.</doc>
<status status="PASS" start="2026-09-23T04:36:26.553882" elapsed="0.240821"/>
</kw>
<status status="PASS" start="2026-09-23T04:36:24.978524" elapsed="1.816242"/>
</kw>
<test id="s1-t1" name="Cbench Latency Test" line="37">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-23T04:36:26.796647" level="INFO">Cbench tests using 10 iterations of 60 second tests. Switch Count: 16. Unique MACS to cycle: 100</msg>
<arg>Cbench tests using ${loops} iterations of ${duration_in_secs} second tests. Switch Count: ${switch_count}. Unique MACS to cycle: ${num_of_unique_macs}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-23T04:36:26.795886" elapsed="0.000824"/>
</kw>
<kw name="Run Cbench And Log Results">
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-09-23T04:36:26.798045" level="INFO">${output_filename} = latency.csv</msg>
<arg>${output_filename}</arg>
<doc>Makes the variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-09-23T04:36:26.797706" elapsed="0.000381"/>
</kw>
<if>
<branch type="IF" condition="&quot;${cbench_system}&quot; == &quot;localhost&quot;">
<kw name="Run" owner="OperatingSystem">
<var>${output}</var>
<arg>${cbench_executable} -c ${ODL_SYSTEM_IP} ${cbench_args}</arg>
<doc>*This keyword is considered deprecated. Use the [Process] library instead.*</doc>
<status status="NOT RUN" start="2026-09-23T04:36:26.798560" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-09-23T04:36:26.798312" elapsed="0.000305"/>
</branch>
<branch type="ELSE">
<kw name="Run Command On Remote System" owner="Utils">
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot; and &quot;${return_stderr}&quot;!=&quot;True&quot;">
<kw name="Fail" owner="BuiltIn">
<arg>At least one of {return_stdout} or {return_stderr} args should be set to True</arg>
<doc>Fails the test or task with the given message and optionally alters its tags.</doc>
<status status="NOT RUN" start="2026-09-23T04:36:26.799748" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-09-23T04:36:26.799530" elapsed="0.000271"/>
</branch>
<status status="PASS" start="2026-09-23T04:36:26.799512" elapsed="0.000314"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-09-23T04:36:26.800323" level="INFO">index=None
host=None
alias=None
port=22
timeout=3 seconds
newline=

prompt=None
term_type=vt100
width=80
height=24
path_separator=/
encoding=utf8
escape_ansi=False
encoding_errors=strict</msg>
<msg time="2026-09-23T04:36:26.800439" level="INFO">${current_ssh_connection} = index=None
host=None
alias=None
port=22
timeout=3 seconds
newline=

prompt=None
term_type=vt100
width=80
height=24
path_separator=/
encoding=utf8
escape_ansi=False
encoding_errors=strict</msg>
<var>${current_ssh_connection}</var>
<doc>Returns information about the connection.</doc>
<status status="PASS" start="2026-09-23T04:36:26.800095" elapsed="0.000370"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-23T04:36:26.800973" level="INFO">Attempting to execute command "/usr/local/bin/cbench -c 10.30.170.77 -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633" on remote system "10.30.170.67" by user "jenkins" with keyfile pass "any" and prompt "&gt;" and password ""</msg>
<arg>Attempting to execute command "${cmd}" on remote system "${system}" by user "${user}" with keyfile pass "${keyfile_pass}" and prompt "${prompt}" and password "${password}"</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-23T04:36:26.800637" elapsed="0.000408"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-09-23T04:36:26.801641" level="INFO">${conn_id} = 5</msg>
<var>${conn_id}</var>
<arg>${system}</arg>
<arg>prompt=${prompt}</arg>
<arg>timeout=${prompt_timeout}</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-09-23T04:36:26.801232" elapsed="0.000434"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-09-23T04:36:26.802513" level="INFO">Length is 0.</msg>
<msg time="2026-09-23T04:36:26.802593" level="INFO">${pwd_length} = 0</msg>
<var>${pwd_length}</var>
<arg>${password}</arg>
<doc>Returns and logs the length of the given item as an integer.</doc>
<status status="PASS" start="2026-09-23T04:36:26.802210" elapsed="0.000405"/>
</kw>
<kw name="Run Keyword And Return If" owner="BuiltIn">
<arg>${pwd_length} &gt; 0</arg>
<arg>SSHLibrary.Login</arg>
<arg>${user}</arg>
<arg>${password}</arg>
<arg>delay=${delay}</arg>
<doc>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-09-23T04:36:26.802754" elapsed="0.000310"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-09-23T04:36:26.803855" level="INFO">Logging into '10.30.170.67:22' as 'jenkins'.</msg>
<msg time="2026-09-23T04:36:27.169637" level="INFO">Read output: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-187-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/pro

 System information as of Wed Sep 23 04:35:54 UTC 2026

  System load:  0.11               Processes:             110
  Usage of /:   19.8% of 38.58GB   Users logged in:       0
  Memory usage: 4%                 IPv4 address for ens3: 10.30.170.67
  Swap usage:   0%


Expanded Security Maintenance for Applications is not enabled.

5 updates can be applied immediately.
To see these additional updates run: apt list --upgradable

14 additional security updates can be applied with ESM Apps.
Learn more about enabling ESM Apps service at https://ubuntu.com/esm


The list of available updates is more than a week old.
To check for new updates run: sudo apt update
New release '24.04.5 LTS' available.
Run 'do-release-upgrade' to upgrade to it.


Last login: Wed Sep 23 04:36:26 2026 from 10.30.170.252
[?2004h[jenkins@releng-00446-92-1-mininet-ovs-217-0 ~]&gt;</msg>
<arg>${user}</arg>
<arg>${USER_HOME}/.ssh/${SSH_KEY}</arg>
<arg>${KEYFILE_PASS}</arg>
<arg>delay=${delay}</arg>
<doc>Logs into the SSH server using key-based authentication.</doc>
<status status="PASS" start="2026-09-23T04:36:26.803587" elapsed="0.366257"/>
</kw>
<msg time="2026-09-23T04:36:27.169929" level="INFO">Returning from the enclosing user keyword.</msg>
<arg>SSHLibrary.Login With Public Key</arg>
<arg>${user}</arg>
<arg>${USER_HOME}/.ssh/${SSH_KEY}</arg>
<arg>${KEYFILE_PASS}</arg>
<arg>delay=${delay}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-09-23T04:36:26.803227" elapsed="0.366806"/>
</kw>
<arg>${user}</arg>
<arg>${password}</arg>
<doc>On active SSH session: if given non-empty password, do Login, else do Login With Public Key.</doc>
<status status="PASS" start="2026-09-23T04:36:26.801845" elapsed="0.368321"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-23T04:36:27.170695" level="INFO">Executing command '/usr/local/bin/cbench -c 10.30.170.77 -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633'.</msg>
<msg time="2026-09-23T04:46:33.324444" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-09-23T04:46:33.325122" level="INFO">${stdout} = </msg>
<msg time="2026-09-23T04:46:33.325251" level="INFO">${stderr} = cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.170.77:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with 100...</msg>
<var>${stdout}</var>
<var>${stderr}</var>
<arg>${cmd}</arg>
<arg>return_stderr=True</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-23T04:36:27.170426" elapsed="606.154902"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-09-23T04:46:33.325779" elapsed="0.000782"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-23T04:46:33.327897" level="INFO">cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.170.77:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with 100 unique source MACs per switch
   learning destination mac addresses before the test
   starting test with 5000 ms delay after features_reply
   ignoring first 1 "warmup" and last 0 "cooldown" loops
   debugging info is off
Master Thread: Creating thread-0! 
Thread-0: All switches initialized. Running at node 10.30.170.77. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
04:37:32.417 16  switches: flows:  95448 91014 91492 92013 91592 93758 90625 89757 90452 90141 88866 86865 87184 89040 85195 86890  total = 24.005533 per ms 
04:38:32.517 16  switches: flows:  94993 94316 94506 95320 95550 96593 95850 93885 95907 93725 91839 90922 91858 91778 90221 92071  total = 24.947231 per ms 
04:39:32.617 16  switches: flows:  98433 96088 96769 100548 98121 99127 97344 96116 97677 95304 93945 92455 93409 93937 92545 95260  total = 25.575281 per ms 
04:40:32.718 16  switches: flows:  98761 94635 97041 98286 95382 98244 98164 97629 94556 94879 94081 92903 94258 93107 91376 93459  total = 25.403587 per ms 
04:41:32.819 16  switches: flows:  99683 96884 97904 100341 99551 100843 102003 97433 98972 98621 95727 93445 95635 94315 93451 95757  total = 25.966072 per ms 
04:42:32.919 16  switches: flows:  102870 98572 99082 103525 99084 102230 104406 98550 99824 98697 96942 95153 96911 94836 92194 97535  total = 26.296287 per ms 
04:43:33.020 16  switches: flows:  104264 101372 98717 107148 99019 103615 101545 98522 99125 98186 97417 95210 98484 97420 94747 98602  total = 26.512297 per ms 
04:44:33.121 16  switches: flows:  104184 100275 100185 103556 100146 103133 102050 97469 98171 99529 96804 98236 101537 94659 96374 99364  total = 26.550184 per ms 
04:45:33.222 16  switches: flows:  105126 96893 97687 101217 97150 101290 99767 98127 93907 94986 94859 92854 97410 93363 91956 94714  total = 25.811997 per ms 
04:46:33.322 16  switches: flows:  99944 95000 94156 96710 93324 96251 98376 94077 92335 91794 93008 91218 95113 88626 89787 93115  total = 25.005485 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 24947.23/26550.18/25785.38/8613.90 responses/s</msg>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-23T04:46:33.327042" elapsed="0.001178"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="PASS" start="2026-09-23T04:46:33.328687" elapsed="0.000090"/>
</return>
<status status="PASS" start="2026-09-23T04:46:33.328440" elapsed="0.000412"/>
</branch>
<status status="PASS" start="2026-09-23T04:46:33.328384" elapsed="0.000519"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="NOT RUN" start="2026-09-23T04:46:33.329090" elapsed="0.000027"/>
</return>
<status status="NOT RUN" start="2026-09-23T04:46:33.329019" elapsed="0.000186"/>
</branch>
<status status="NOT RUN" start="2026-09-23T04:46:33.328988" elapsed="0.000261"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-09-23T04:46:33.329336" elapsed="0.000029"/>
</return>
<kw name="Restore_Current_Ssh_Connection_From_Index" owner="SSHKeywords" type="TEARDOWN">
<kw name="Run Keyword And Return If" owner="BuiltIn">
<arg>${connection_index} is not None</arg>
<arg>SSHLibrary.Switch Connection</arg>
<arg>${connection_index}</arg>
<doc>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-09-23T04:46:33.330950" elapsed="0.000705"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<arg>127.0.0.1</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-09-23T04:46:33.332024" elapsed="0.000398"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-09-23T04:46:33.332697" elapsed="0.000200"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-09-23T04:46:33.330015" elapsed="0.002986"/>
</kw>
<msg time="2026-09-23T04:46:33.333257" level="INFO">${output} = cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.170.77:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with 100...</msg>
<var>${output}</var>
<arg>${cbench_system}</arg>
<arg>${cbench_executable} -c ${ODL_SYSTEM_IP} ${cbench_args}</arg>
<arg>prompt_timeout=${test_timeout}</arg>
<arg>return_stdout=False</arg>
<arg>return_stderr=True</arg>
<doc>Reduces the common work of running a command on a remote system to a single higher level
robot keyword, taking care to log in with a public key and. The command given is written and the return value
depends on the passed argument values of return_stdout (default: True) and return_stderr (default: False).
At least one should be True, or the keyword will exit and FAIL. If both are True, the resulting return value
will be a two element list containing both. Otherwise the resulting return value is a string.
No test conditions are checked.</doc>
<status status="PASS" start="2026-09-23T04:36:26.798942" elapsed="606.534390"/>
</kw>
<status status="PASS" start="2026-09-23T04:36:26.798645" elapsed="606.534785"/>
</branch>
<status status="PASS" start="2026-09-23T04:36:26.798176" elapsed="606.535303"/>
</if>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-23T04:46:33.334507" level="INFO">cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.170.77:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with 100 unique source MACs per switch
   learning destination mac addresses before the test
   starting test with 5000 ms delay after features_reply
   ignoring first 1 "warmup" and last 0 "cooldown" loops
   debugging info is off
Master Thread: Creating thread-0! 
Thread-0: All switches initialized. Running at node 10.30.170.77. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
04:37:32.417 16  switches: flows:  95448 91014 91492 92013 91592 93758 90625 89757 90452 90141 88866 86865 87184 89040 85195 86890  total = 24.005533 per ms 
04:38:32.517 16  switches: flows:  94993 94316 94506 95320 95550 96593 95850 93885 95907 93725 91839 90922 91858 91778 90221 92071  total = 24.947231 per ms 
04:39:32.617 16  switches: flows:  98433 96088 96769 100548 98121 99127 97344 96116 97677 95304 93945 92455 93409 93937 92545 95260  total = 25.575281 per ms 
04:40:32.718 16  switches: flows:  98761 94635 97041 98286 95382 98244 98164 97629 94556 94879 94081 92903 94258 93107 91376 93459  total = 25.403587 per ms 
04:41:32.819 16  switches: flows:  99683 96884 97904 100341 99551 100843 102003 97433 98972 98621 95727 93445 95635 94315 93451 95757  total = 25.966072 per ms 
04:42:32.919 16  switches: flows:  102870 98572 99082 103525 99084 102230 104406 98550 99824 98697 96942 95153 96911 94836 92194 97535  total = 26.296287 per ms 
04:43:33.020 16  switches: flows:  104264 101372 98717 107148 99019 103615 101545 98522 99125 98186 97417 95210 98484 97420 94747 98602  total = 26.512297 per ms 
04:44:33.121 16  switches: flows:  104184 100275 100185 103556 100146 103133 102050 97469 98171 99529 96804 98236 101537 94659 96374 99364  total = 26.550184 per ms 
04:45:33.222 16  switches: flows:  105126 96893 97687 101217 97150 101290 99767 98127 93907 94986 94859 92854 97410 93363 91956 94714  total = 25.811997 per ms 
04:46:33.322 16  switches: flows:  99944 95000 94156 96710 93324 96251 98376 94077 92335 91794 93008 91218 95113 88626 89787 93115  total = 25.005485 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 24947.23/26550.18/25785.38/8613.90 responses/s</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-23T04:46:33.333873" elapsed="0.000789"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${output}</arg>
<arg>RESULT</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-09-23T04:46:33.334999" elapsed="0.000800"/>
</kw>
<kw name="Get Lines Containing String" owner="String">
<msg time="2026-09-23T04:46:33.336664" level="INFO">1 out of 23 lines matched.</msg>
<msg time="2026-09-23T04:46:33.336851" level="INFO">${result_line} = RESULT: 16 switches 9 tests min/max/avg/stdev = 24947.23/26550.18/25785.38/8613.90 responses/s</msg>
<var>${result_line}</var>
<arg>${output}</arg>
<arg>RESULT</arg>
<doc>Returns lines of the given `string` that contain the `pattern`.</doc>
<status status="PASS" start="2026-09-23T04:46:33.336200" elapsed="0.000703"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-09-23T04:46:33.337783" level="INFO">@{results_list} = [ RESULT: | 16 | switches | 9 | tests | min/max/avg/stdev | = | 24947.23/26550.18/25785.38/8613.90 | responses/s ]</msg>
<var>@{results_list}</var>
<arg>${result_line}</arg>
<doc>Splits the `string` using `separator` as a delimiter string.</doc>
<status status="PASS" start="2026-09-23T04:46:33.337302" elapsed="0.000537"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-23T04:46:33.339039" level="INFO">min/max/avg/stdev</msg>
<arg>${results_list[5]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-23T04:46:33.338273" elapsed="0.000920"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-23T04:46:33.340350" level="INFO">24947.23/26550.18/25785.38/8613.90</msg>
<arg>${results_list[7]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-23T04:46:33.339617" elapsed="0.000848"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-09-23T04:46:33.341470" level="INFO">@{result_name_list} = [ min | max | avg | stdev ]</msg>
<var>@{result_name_list}</var>
<arg>${results_list[5]}</arg>
<arg>/</arg>
<doc>Splits the `string` using `separator` as a delimiter string.</doc>
<status status="PASS" start="2026-09-23T04:46:33.340803" elapsed="0.000724"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-09-23T04:46:33.342619" level="INFO">@{result_value_list} = [ 24947.23 | 26550.18 | 25785.38 | 8613.90 ]</msg>
<var>@{result_value_list}</var>
<arg>${results_list[7]}</arg>
<arg>/</arg>
<doc>Splits the `string` using `separator` as a delimiter string.</doc>
<status status="PASS" start="2026-09-23T04:46:33.341936" elapsed="0.000739"/>
</kw>
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-09-23T04:46:33.343670" level="INFO">Length is 4.</msg>
<msg time="2026-09-23T04:46:33.343848" level="INFO">${num_stats} = 4</msg>
<var>${num_stats}</var>
<arg>${result_name_list}</arg>
<doc>Returns and logs the length of the given item as an integer.</doc>
<status status="PASS" start="2026-09-23T04:46:33.343007" elapsed="0.000891"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-23T04:46:33.345760" level="INFO">min :: 24947.23</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-23T04:46:33.344781" elapsed="0.001091"/>
</kw>
<var name="${i}">0</var>
<status status="PASS" start="2026-09-23T04:46:33.344405" elapsed="0.001534"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-23T04:46:33.347473" level="INFO">max :: 26550.18</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-23T04:46:33.346536" elapsed="0.001049"/>
</kw>
<var name="${i}">1</var>
<status status="PASS" start="2026-09-23T04:46:33.346117" elapsed="0.001534"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-23T04:46:33.349106" level="INFO">avg :: 25785.38</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-23T04:46:33.348220" elapsed="0.001030"/>
</kw>
<var name="${i}">2</var>
<status status="PASS" start="2026-09-23T04:46:33.347824" elapsed="0.001516"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-23T04:46:33.350807" level="INFO">stdev :: 8613.90</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-23T04:46:33.349883" elapsed="0.001034"/>
</kw>
<var name="${i}">3</var>
<status status="PASS" start="2026-09-23T04:46:33.349520" elapsed="0.001463"/>
</iter>
<var>${i}</var>
<value>0</value>
<value>${num_stats}</value>
<status status="PASS" start="2026-09-23T04:46:33.344021" elapsed="0.007028"/>
</for>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-09-23T04:46:33.352568" level="INFO">${min} = 24947.23</msg>
<var>${min}</var>
<arg>${result_value_list[${0}]}</arg>
<doc>Returns the given values which can then be assigned to a variable.</doc>
<status status="PASS" start="2026-09-23T04:46:33.351448" elapsed="0.001179"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-09-23T04:46:33.353932" level="INFO">${max} = 26550.18</msg>
<var>${max}</var>
<arg>${result_value_list[${1}]}</arg>
<doc>Returns the given values which can then be assigned to a variable.</doc>
<status status="PASS" start="2026-09-23T04:46:33.352958" elapsed="0.001030"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-09-23T04:46:33.355223" level="INFO">${average} = 25785.38</msg>
<var>${average}</var>
<arg>${result_value_list[${2}]}</arg>
<doc>Returns the given values which can then be assigned to a variable.</doc>
<status status="PASS" start="2026-09-23T04:46:33.354367" elapsed="0.000914"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-09-23T04:46:33.356503" level="INFO">${stdev} = 8613.90</msg>
<var>${stdev}</var>
<arg>${result_value_list[${3}]}</arg>
<doc>Returns the given values which can then be assigned to a variable.</doc>
<status status="PASS" start="2026-09-23T04:46:33.355630" elapsed="0.000927"/>
</kw>
<kw name="Get Time" owner="BuiltIn">
<msg time="2026-09-23T04:46:33.357781" level="INFO">${date} = 2026-09-23 04:46:33</msg>
<var>${date}</var>
<arg>d,m,s</arg>
<doc>Returns the given time in the requested format.</doc>
<status status="PASS" start="2026-09-23T04:46:33.356989" elapsed="0.000845"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-23T04:46:33.358987" level="INFO">CBench Result: 2026-09-23 04:46:33,-m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633,24947.23,26550.18,25785.38,8613.90</msg>
<arg>CBench Result: ${date},${cbench_args},${min},${max},${average},${stdev}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-23T04:46:33.358267" elapsed="0.000833"/>
</kw>
<kw name="Log Results And Determine Status">
<kw name="Append To File" owner="OperatingSystem">
<msg time="2026-09-23T04:46:33.361583" level="INFO" html="true">Appended to file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-cbench-only-chromium/latency.csv"&gt;/w/workspace/openflowplugin-csit-1node-cbench-only-chromium/latency.csv&lt;/a&gt;'.</msg>
<arg>${output_file}</arg>
<arg>${min},${max},${average}\n</arg>
<doc>Appends the given content to the specified file.</doc>
<status status="PASS" start="2026-09-23T04:46:33.360339" elapsed="0.001393"/>
</kw>
<kw name="Should Be True" owner="BuiltIn">
<arg>${average} &gt; ${threshold}</arg>
<arg>${average} flow_mods per/sec did not exceed threshold of ${threshold}</arg>
<doc>Fails if the given condition is not true.</doc>
<status status="PASS" start="2026-09-23T04:46:33.362085" elapsed="0.000933"/>
</kw>
<arg>${min}</arg>
<arg>${max}</arg>
<arg>${average}</arg>
<arg>${average_threshold}</arg>
<arg>${output_filename}</arg>
<status status="PASS" start="2026-09-23T04:46:33.359421" elapsed="0.003759"/>
</kw>
<arg>-m ${duration_in_ms} -M ${num_of_unique_macs} -S ${switch_count} -l ${loops} -D ${start_delay} -p ${of_port}</arg>
<arg>${latency_threshold}</arg>
<arg>${latency_results_file}</arg>
<status status="PASS" start="2026-09-23T04:36:26.797129" elapsed="606.566193"/>
</kw>
<kw name="Sleep" owner="BuiltIn">
<msg time="2026-09-23T04:46:33.364330" level="INFO">Slept 0 seconds.</msg>
<arg>${test_delay}</arg>
<doc>Pauses execution for the given time.</doc>
<status status="PASS" start="2026-09-23T04:46:33.363634" elapsed="0.000818"/>
</kw>
<kw name="Log Results As Zero If Cbench Timed Out" type="TEARDOWN">
<kw name="Run Keyword If Timeout Occurred" owner="BuiltIn">
<arg>Log Results And Determine Status</arg>
<arg>0</arg>
<arg>0</arg>
<arg>0</arg>
<arg>0</arg>
<arg>${output_filename}</arg>
<doc>Runs the given keyword if either a test or a keyword timeout has occurred.</doc>
<status status="PASS" start="2026-09-23T04:46:33.365607" elapsed="0.000626"/>
</kw>
<status status="PASS" start="2026-09-23T04:46:33.364887" elapsed="0.001512"/>
</kw>
<doc>cbench executed in default latency mode. Test parameters have defaults, but can be overridden
on the pybot command line</doc>
<tag>cbench</tag>
<tag>latency</tag>
<timeout value="15 minutes"/>
<status status="PASS" start="2026-09-23T04:36:26.794911" elapsed="606.571565"/>
</test>
<test id="s1-t2" name="Cbench Throughput Test" line="51">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-23T04:46:33.369532" level="INFO">Cbench tests using 10 iterations of 60 second tests. Switch Count: 16. Unique MACS to cycle: 100</msg>
<arg>Cbench tests using ${loops} iterations of ${duration_in_secs} second tests. Switch Count: ${switch_count}. Unique MACS to cycle: ${num_of_unique_macs}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-23T04:46:33.368774" elapsed="0.000872"/>
</kw>
<kw name="Run Cbench And Log Results">
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-09-23T04:46:33.372028" level="INFO">${output_filename} = throughput.csv</msg>
<arg>${output_filename}</arg>
<doc>Makes the variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-09-23T04:46:33.371385" elapsed="0.000729"/>
</kw>
<if>
<branch type="IF" condition="&quot;${cbench_system}&quot; == &quot;localhost&quot;">
<kw name="Run" owner="OperatingSystem">
<var>${output}</var>
<arg>${cbench_executable} -c ${ODL_SYSTEM_IP} ${cbench_args}</arg>
<doc>*This keyword is considered deprecated. Use the [Process] library instead.*</doc>
<status status="NOT RUN" start="2026-09-23T04:46:33.372911" elapsed="0.000047"/>
</kw>
<status status="NOT RUN" start="2026-09-23T04:46:33.372318" elapsed="0.000713"/>
</branch>
<branch type="ELSE">
<kw name="Run Command On Remote System" owner="Utils">
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot; and &quot;${return_stderr}&quot;!=&quot;True&quot;">
<kw name="Fail" owner="BuiltIn">
<arg>At least one of {return_stdout} or {return_stderr} args should be set to True</arg>
<doc>Fails the test or task with the given message and optionally alters its tags.</doc>
<status status="NOT RUN" start="2026-09-23T04:46:33.375662" elapsed="0.000044"/>
</kw>
<status status="NOT RUN" start="2026-09-23T04:46:33.375131" elapsed="0.000644"/>
</branch>
<status status="PASS" start="2026-09-23T04:46:33.375092" elapsed="0.000732"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-09-23T04:46:33.376651" level="INFO">index=None
host=None
alias=None
port=22
timeout=3 seconds
newline=

prompt=None
term_type=vt100
width=80
height=24
path_separator=/
encoding=utf8
escape_ansi=False
encoding_errors=strict</msg>
<msg time="2026-09-23T04:46:33.376886" level="INFO">${current_ssh_connection} = index=None
host=None
alias=None
port=22
timeout=3 seconds
newline=

prompt=None
term_type=vt100
width=80
height=24
path_separator=/
encoding=utf8
escape_ansi=False
encoding_errors=strict</msg>
<var>${current_ssh_connection}</var>
<doc>Returns information about the connection.</doc>
<status status="PASS" start="2026-09-23T04:46:33.376242" elapsed="0.000700"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-23T04:46:33.378092" level="INFO">Attempting to execute command "/usr/local/bin/cbench -c 10.30.170.77 -t -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633" on remote system "10.30.170.67" by user "jenkins" with keyfile pass "any" and prompt "&gt;" and password ""</msg>
<arg>Attempting to execute command "${cmd}" on remote system "${system}" by user "${user}" with keyfile pass "${keyfile_pass}" and prompt "${prompt}" and password "${password}"</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-23T04:46:33.377369" elapsed="0.000875"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-09-23T04:46:33.379392" level="INFO">${conn_id} = 7</msg>
<var>${conn_id}</var>
<arg>${system}</arg>
<arg>prompt=${prompt}</arg>
<arg>timeout=${prompt_timeout}</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-09-23T04:46:33.378623" elapsed="0.000825"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-09-23T04:46:33.381311" level="INFO">Length is 0.</msg>
<msg time="2026-09-23T04:46:33.381491" level="INFO">${pwd_length} = 0</msg>
<var>${pwd_length}</var>
<arg>${password}</arg>
<doc>Returns and logs the length of the given item as an integer.</doc>
<status status="PASS" start="2026-09-23T04:46:33.380643" elapsed="0.000897"/>
</kw>
<kw name="Run Keyword And Return If" owner="BuiltIn">
<arg>${pwd_length} &gt; 0</arg>
<arg>SSHLibrary.Login</arg>
<arg>${user}</arg>
<arg>${password}</arg>
<arg>delay=${delay}</arg>
<doc>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-09-23T04:46:33.381827" elapsed="0.000696"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-09-23T04:46:33.383976" level="INFO">Logging into '10.30.170.67:22' as 'jenkins'.</msg>
<msg time="2026-09-23T04:46:34.006719" level="INFO">Read output: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-187-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/pro

 System information as of Wed Sep 23 04:46:33 UTC 2026

  System load:  1.0                Processes:             103
  Usage of /:   19.8% of 38.58GB   Users logged in:       0
  Memory usage: 4%                 IPv4 address for ens3: 10.30.170.67
  Swap usage:   0%


Expanded Security Maintenance for Applications is not enabled.

5 updates can be applied immediately.
To see these additional updates run: apt list --upgradable

14 additional security updates can be applied with ESM Apps.
Learn more about enabling ESM Apps service at https://ubuntu.com/esm


The list of available updates is more than a week old.
To check for new updates run: sudo apt update
New release '24.04.5 LTS' available.
Run 'do-release-upgrade' to upgrade to it.


Last login: Wed Sep 23 04:36:27 2026 from 10.30.170.252
[?2004h[jenkins@releng-00446-92-1-mininet-ovs-217-0 ~]&gt;</msg>
<arg>${user}</arg>
<arg>${USER_HOME}/.ssh/${SSH_KEY}</arg>
<arg>${KEYFILE_PASS}</arg>
<arg>delay=${delay}</arg>
<doc>Logs into the SSH server using key-based authentication.</doc>
<status status="PASS" start="2026-09-23T04:46:33.383614" elapsed="0.623280"/>
</kw>
<msg time="2026-09-23T04:46:34.006976" level="INFO">Returning from the enclosing user keyword.</msg>
<arg>SSHLibrary.Login With Public Key</arg>
<arg>${user}</arg>
<arg>${USER_HOME}/.ssh/${SSH_KEY}</arg>
<arg>${KEYFILE_PASS}</arg>
<arg>delay=${delay}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-09-23T04:46:33.382843" elapsed="0.624216"/>
</kw>
<arg>${user}</arg>
<arg>${password}</arg>
<doc>On active SSH session: if given non-empty password, do Login, else do Login With Public Key.</doc>
<status status="PASS" start="2026-09-23T04:46:33.379838" elapsed="0.627338"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-23T04:46:34.007690" level="INFO">Executing command '/usr/local/bin/cbench -c 10.30.170.77 -t -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633'.</msg>
<msg time="2026-09-23T04:56:40.065610" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-09-23T04:56:40.066186" level="INFO">${stdout} = </msg>
<msg time="2026-09-23T04:56:40.066290" level="INFO">${stderr} = cbench: controller benchmarking tool
   running in mode 'throughput'
   connecting to controller at 10.30.170.77:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with ...</msg>
<var>${stdout}</var>
<var>${stderr}</var>
<arg>${cmd}</arg>
<arg>return_stderr=True</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-23T04:46:34.007436" elapsed="606.058906"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-09-23T04:56:40.066790" elapsed="0.000688"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-23T04:56:40.068674" level="INFO">cbench: controller benchmarking tool
   running in mode 'throughput'
   connecting to controller at 10.30.170.77:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with 100 unique source MACs per switch
   learning destination mac addresses before the test
   starting test with 5000 ms delay after features_reply
   ignoring first 1 "warmup" and last 0 "cooldown" loops
   debugging info is off
Master Thread: Creating thread-0! 
Thread-0: All switches initialized. Running at node 10.30.170.77. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
04:47:39.154 16  switches: flows:  469073 469252 473714 475438 486160 477399 472642 480112 459980 463706 460383 474956 458086 463801 457650 454386  total = 124.945633 per ms 
04:48:39.255 16  switches: flows:  582798 587388 583126 581130 586775 585092 591087 584446 586104 583500 591003 591337 593562 591839 591526 591880  total = 156.446883 per ms 
04:49:39.357 16  switches: flows:  590950 585280 589884 572158 580243 591827 585007 586355 582457 583811 584496 583159 591368 589298 584799 587923  total = 155.887854 per ms 
04:50:39.460 16  switches: flows:  618846 621143 621015 620413 613903 623024 615391 621247 619908 618444 625710 620613 623010 627144 618358 620520  total = 165.200357 per ms 
04:51:39.564 16  switches: flows:  663248 661880 666921 661559 665472 647449 660671 653712 662354 656581 675132 662891 664639 658068 657096 658018  total = 175.961830 per ms 
04:52:39.668 16  switches: flows:  663162 665600 662785 659247 653183 651593 664533 658206 657647 649561 662607 660535 670116 661014 656145 661064  total = 175.650360 per ms 
04:53:39.768 16  switches: flows:  616887 622045 627310 617779 616483 626097 624353 618564 617904 624719 635546 608450 620760 625257 620183 619178  total = 165.414855 per ms 
04:54:39.869 16  switches: flows:  591228 591178 594374 593864 593615 584299 592987 589633 593043 591459 597900 597207 589421 594246 590746 593725  total = 157.717580 per ms 
04:55:39.970 16  switches: flows:  616925 620352 614765 608634 607826 617239 622084 618009 619148 618917 619555 617417 610917 613247 614067 618182  total = 164.012859 per ms 
04:56:40.071 16  switches: flows:  575547 563177 567049 566114 568545 561732 567778 557433 571162 563286 571343 572080 572924 563984 567859 565800  total = 151.009439 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 151009.44/175961.83/163033.56/54959.45 responses/s</msg>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-23T04:56:40.067952" elapsed="0.001027"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="PASS" start="2026-09-23T04:56:40.069451" elapsed="0.000089"/>
</return>
<status status="PASS" start="2026-09-23T04:56:40.069185" elapsed="0.000430"/>
</branch>
<status status="PASS" start="2026-09-23T04:56:40.069107" elapsed="0.000560"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="NOT RUN" start="2026-09-23T04:56:40.069876" elapsed="0.000026"/>
</return>
<status status="NOT RUN" start="2026-09-23T04:56:40.069802" elapsed="0.000157"/>
</branch>
<status status="NOT RUN" start="2026-09-23T04:56:40.069769" elapsed="0.000233"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-09-23T04:56:40.070064" elapsed="0.000027"/>
</return>
<kw name="Restore_Current_Ssh_Connection_From_Index" owner="SSHKeywords" type="TEARDOWN">
<kw name="Run Keyword And Return If" owner="BuiltIn">
<arg>${connection_index} is not None</arg>
<arg>SSHLibrary.Switch Connection</arg>
<arg>${connection_index}</arg>
<doc>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-09-23T04:56:40.071677" elapsed="0.000702"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<arg>127.0.0.1</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-09-23T04:56:40.072766" elapsed="0.000319"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-09-23T04:56:40.073390" elapsed="0.000210"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-09-23T04:56:40.070775" elapsed="0.002930"/>
</kw>
<msg time="2026-09-23T04:56:40.073954" level="INFO">${output} = cbench: controller benchmarking tool
   running in mode 'throughput'
   connecting to controller at 10.30.170.77:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with ...</msg>
<var>${output}</var>
<arg>${cbench_system}</arg>
<arg>${cbench_executable} -c ${ODL_SYSTEM_IP} ${cbench_args}</arg>
<arg>prompt_timeout=${test_timeout}</arg>
<arg>return_stdout=False</arg>
<arg>return_stderr=True</arg>
<doc>Reduces the common work of running a command on a remote system to a single higher level
robot keyword, taking care to log in with a public key and. The command given is written and the return value
depends on the passed argument values of return_stdout (default: True) and return_stderr (default: False).
At least one should be True, or the keyword will exit and FAIL. If both are True, the resulting return value
will be a two element list containing both. Otherwise the resulting return value is a string.
No test conditions are checked.</doc>
<status status="PASS" start="2026-09-23T04:46:33.373779" elapsed="606.700231"/>
</kw>
<status status="PASS" start="2026-09-23T04:46:33.373084" elapsed="606.701021"/>
</branch>
<status status="PASS" start="2026-09-23T04:46:33.372253" elapsed="606.701929"/>
</if>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-23T04:56:40.075209" level="INFO">cbench: controller benchmarking tool
   running in mode 'throughput'
   connecting to controller at 10.30.170.77:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with 100 unique source MACs per switch
   learning destination mac addresses before the test
   starting test with 5000 ms delay after features_reply
   ignoring first 1 "warmup" and last 0 "cooldown" loops
   debugging info is off
Master Thread: Creating thread-0! 
Thread-0: All switches initialized. Running at node 10.30.170.77. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
04:47:39.154 16  switches: flows:  469073 469252 473714 475438 486160 477399 472642 480112 459980 463706 460383 474956 458086 463801 457650 454386  total = 124.945633 per ms 
04:48:39.255 16  switches: flows:  582798 587388 583126 581130 586775 585092 591087 584446 586104 583500 591003 591337 593562 591839 591526 591880  total = 156.446883 per ms 
04:49:39.357 16  switches: flows:  590950 585280 589884 572158 580243 591827 585007 586355 582457 583811 584496 583159 591368 589298 584799 587923  total = 155.887854 per ms 
04:50:39.460 16  switches: flows:  618846 621143 621015 620413 613903 623024 615391 621247 619908 618444 625710 620613 623010 627144 618358 620520  total = 165.200357 per ms 
04:51:39.564 16  switches: flows:  663248 661880 666921 661559 665472 647449 660671 653712 662354 656581 675132 662891 664639 658068 657096 658018  total = 175.961830 per ms 
04:52:39.668 16  switches: flows:  663162 665600 662785 659247 653183 651593 664533 658206 657647 649561 662607 660535 670116 661014 656145 661064  total = 175.650360 per ms 
04:53:39.768 16  switches: flows:  616887 622045 627310 617779 616483 626097 624353 618564 617904 624719 635546 608450 620760 625257 620183 619178  total = 165.414855 per ms 
04:54:39.869 16  switches: flows:  591228 591178 594374 593864 593615 584299 592987 589633 593043 591459 597900 597207 589421 594246 590746 593725  total = 157.717580 per ms 
04:55:39.970 16  switches: flows:  616925 620352 614765 608634 607826 617239 622084 618009 619148 618917 619555 617417 610917 613247 614067 618182  total = 164.012859 per ms 
04:56:40.071 16  switches: flows:  575547 563177 567049 566114 568545 561732 567778 557433 571162 563286 571343 572080 572924 563984 567859 565800  total = 151.009439 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 151009.44/175961.83/163033.56/54959.45 responses/s</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-23T04:56:40.074574" elapsed="0.000793"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${output}</arg>
<arg>RESULT</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-09-23T04:56:40.075704" elapsed="0.000776"/>
</kw>
<kw name="Get Lines Containing String" owner="String">
<msg time="2026-09-23T04:56:40.077330" level="INFO">1 out of 23 lines matched.</msg>
<msg time="2026-09-23T04:56:40.077512" level="INFO">${result_line} = RESULT: 16 switches 9 tests min/max/avg/stdev = 151009.44/175961.83/163033.56/54959.45 responses/s</msg>
<var>${result_line}</var>
<arg>${output}</arg>
<arg>RESULT</arg>
<doc>Returns lines of the given `string` that contain the `pattern`.</doc>
<status status="PASS" start="2026-09-23T04:56:40.076873" elapsed="0.000690"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-09-23T04:56:40.078439" level="INFO">@{results_list} = [ RESULT: | 16 | switches | 9 | tests | min/max/avg/stdev | = | 151009.44/175961.83/163033.56/54959.45 | responses/s ]</msg>
<var>@{results_list}</var>
<arg>${result_line}</arg>
<doc>Splits the `string` using `separator` as a delimiter string.</doc>
<status status="PASS" start="2026-09-23T04:56:40.077934" elapsed="0.000562"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-23T04:56:40.079664" level="INFO">min/max/avg/stdev</msg>
<arg>${results_list[5]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-23T04:56:40.078922" elapsed="0.000882"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-23T04:56:40.080932" level="INFO">151009.44/175961.83/163033.56/54959.45</msg>
<arg>${results_list[7]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-23T04:56:40.080236" elapsed="0.000810"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-09-23T04:56:40.082059" level="INFO">@{result_name_list} = [ min | max | avg | stdev ]</msg>
<var>@{result_name_list}</var>
<arg>${results_list[5]}</arg>
<arg>/</arg>
<doc>Splits the `string` using `separator` as a delimiter string.</doc>
<status status="PASS" start="2026-09-23T04:56:40.081412" elapsed="0.000703"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-09-23T04:56:40.083233" level="INFO">@{result_value_list} = [ 151009.44 | 175961.83 | 163033.56 | 54959.45 ]</msg>
<var>@{result_value_list}</var>
<arg>${results_list[7]}</arg>
<arg>/</arg>
<doc>Splits the `string` using `separator` as a delimiter string.</doc>
<status status="PASS" start="2026-09-23T04:56:40.082554" elapsed="0.000737"/>
</kw>
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-09-23T04:56:40.084285" level="INFO">Length is 4.</msg>
<msg time="2026-09-23T04:56:40.084462" level="INFO">${num_stats} = 4</msg>
<var>${num_stats}</var>
<arg>${result_name_list}</arg>
<doc>Returns and logs the length of the given item as an integer.</doc>
<status status="PASS" start="2026-09-23T04:56:40.083619" elapsed="0.000893"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-23T04:56:40.086303" level="INFO">min :: 151009.44</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-23T04:56:40.085368" elapsed="0.001048"/>
</kw>
<var name="${i}">0</var>
<status status="PASS" start="2026-09-23T04:56:40.084973" elapsed="0.001510"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-23T04:56:40.088010" level="INFO">max :: 175961.83</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-23T04:56:40.087037" elapsed="0.001090"/>
</kw>
<var name="${i}">1</var>
<status status="PASS" start="2026-09-23T04:56:40.086654" elapsed="0.001584"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-23T04:56:40.089870" level="INFO">avg :: 163033.56</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-23T04:56:40.088817" elapsed="0.001167"/>
</kw>
<var name="${i}">2</var>
<status status="PASS" start="2026-09-23T04:56:40.088424" elapsed="0.001628"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-23T04:56:40.091560" level="INFO">stdev :: 54959.45</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-23T04:56:40.090625" elapsed="0.001046"/>
</kw>
<var name="${i}">3</var>
<status status="PASS" start="2026-09-23T04:56:40.090255" elapsed="0.001504"/>
</iter>
<var>${i}</var>
<value>0</value>
<value>${num_stats}</value>
<status status="PASS" start="2026-09-23T04:56:40.084626" elapsed="0.007198"/>
</for>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-09-23T04:56:40.093038" level="INFO">${min} = 151009.44</msg>
<var>${min}</var>
<arg>${result_value_list[${0}]}</arg>
<doc>Returns the given values which can then be assigned to a variable.</doc>
<status status="PASS" start="2026-09-23T04:56:40.092190" elapsed="0.000901"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-09-23T04:56:40.094376" level="INFO">${max} = 175961.83</msg>
<var>${max}</var>
<arg>${result_value_list[${1}]}</arg>
<doc>Returns the given values which can then be assigned to a variable.</doc>
<status status="PASS" start="2026-09-23T04:56:40.093454" elapsed="0.000975"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-09-23T04:56:40.095616" level="INFO">${average} = 163033.56</msg>
<var>${average}</var>
<arg>${result_value_list[${2}]}</arg>
<doc>Returns the given values which can then be assigned to a variable.</doc>
<status status="PASS" start="2026-09-23T04:56:40.094777" elapsed="0.000891"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-09-23T04:56:40.096879" level="INFO">${stdev} = 54959.45</msg>
<var>${stdev}</var>
<arg>${result_value_list[${3}]}</arg>
<doc>Returns the given values which can then be assigned to a variable.</doc>
<status status="PASS" start="2026-09-23T04:56:40.096018" elapsed="0.000914"/>
</kw>
<kw name="Get Time" owner="BuiltIn">
<msg time="2026-09-23T04:56:40.098186" level="INFO">${date} = 2026-09-23 04:56:40</msg>
<var>${date}</var>
<arg>d,m,s</arg>
<doc>Returns the given time in the requested format.</doc>
<status status="PASS" start="2026-09-23T04:56:40.097396" elapsed="0.000846"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-23T04:56:40.099401" level="INFO">CBench Result: 2026-09-23 04:56:40,-t -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633,151009.44,175961.83,163033.56,54959.45</msg>
<arg>CBench Result: ${date},${cbench_args},${min},${max},${average},${stdev}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-23T04:56:40.098642" elapsed="0.000870"/>
</kw>
<kw name="Log Results And Determine Status">
<kw name="Append To File" owner="OperatingSystem">
<msg time="2026-09-23T04:56:40.101431" level="INFO" html="true">Appended to file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-cbench-only-chromium/throughput.csv"&gt;/w/workspace/openflowplugin-csit-1node-cbench-only-chromium/throughput.csv&lt;/a&gt;'.</msg>
<arg>${output_file}</arg>
<arg>${min},${max},${average}\n</arg>
<doc>Appends the given content to the specified file.</doc>
<status status="PASS" start="2026-09-23T04:56:40.100708" elapsed="0.000860"/>
</kw>
<kw name="Should Be True" owner="BuiltIn">
<arg>${average} &gt; ${threshold}</arg>
<arg>${average} flow_mods per/sec did not exceed threshold of ${threshold}</arg>
<doc>Fails if the given condition is not true.</doc>
<status status="PASS" start="2026-09-23T04:56:40.101934" elapsed="0.001281"/>
</kw>
<arg>${min}</arg>
<arg>${max}</arg>
<arg>${average}</arg>
<arg>${average_threshold}</arg>
<arg>${output_filename}</arg>
<status status="PASS" start="2026-09-23T04:56:40.099802" elapsed="0.003545"/>
</kw>
<arg>-t -m ${duration_in_ms} -M ${num_of_unique_macs} -S ${switch_count} -l ${loops} -D ${start_delay} -p ${of_port}</arg>
<arg>${throughput_threshold}</arg>
<arg>${throughput_results_file}</arg>
<status status="PASS" start="2026-09-23T04:46:33.370276" elapsed="606.733188"/>
</kw>
<kw name="Sleep" owner="BuiltIn">
<msg time="2026-09-23T04:56:40.104462" level="INFO">Slept 0 seconds.</msg>
<arg>${test_delay}</arg>
<doc>Pauses execution for the given time.</doc>
<status status="PASS" start="2026-09-23T04:56:40.103802" elapsed="0.000774"/>
</kw>
<kw name="Log Results As Zero If Cbench Timed Out" type="TEARDOWN">
<kw name="Run Keyword If Timeout Occurred" owner="BuiltIn">
<arg>Log Results And Determine Status</arg>
<arg>0</arg>
<arg>0</arg>
<arg>0</arg>
<arg>0</arg>
<arg>${output_filename}</arg>
<doc>Runs the given keyword if either a test or a keyword timeout has occurred.</doc>
<status status="PASS" start="2026-09-23T04:56:40.105875" elapsed="0.000583"/>
</kw>
<status status="PASS" start="2026-09-23T04:56:40.105134" elapsed="0.001467"/>
</kw>
<doc>cbench executed in throughput mode (-t). Test parameters have defaults, but can be overridden
on the pybot command line</doc>
<tag>cbench</tag>
<tag>throughput</tag>
<timeout value="15 minutes"/>
<status status="PASS" start="2026-09-23T04:46:33.367064" elapsed="606.739610"/>
</test>
<test id="s1-t3" name="Rerun Latency Test To Check Bug 6176" line="65">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-23T04:56:40.109184" level="INFO">Cbench tests using 10 iterations of 60 second tests. Switch Count: 16. Unique MACS to cycle: 100</msg>
<arg>Cbench tests using ${loops} iterations of ${duration_in_secs} second tests. Switch Count: ${switch_count}. Unique MACS to cycle: ${num_of_unique_macs}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-23T04:56:40.108708" elapsed="0.000550"/>
</kw>
<kw name="Run Cbench And Log Results">
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-09-23T04:56:40.110763" level="INFO">${output_filename} = bug.csv</msg>
<arg>${output_filename}</arg>
<doc>Makes the variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-09-23T04:56:40.110314" elapsed="0.000502"/>
</kw>
<if>
<branch type="IF" condition="&quot;${cbench_system}&quot; == &quot;localhost&quot;">
<kw name="Run" owner="OperatingSystem">
<var>${output}</var>
<arg>${cbench_executable} -c ${ODL_SYSTEM_IP} ${cbench_args}</arg>
<doc>*This keyword is considered deprecated. Use the [Process] library instead.*</doc>
<status status="NOT RUN" start="2026-09-23T04:56:40.111280" elapsed="0.000028"/>
</kw>
<status status="NOT RUN" start="2026-09-23T04:56:40.110966" elapsed="0.000387"/>
</branch>
<branch type="ELSE">
<kw name="Run Command On Remote System" owner="Utils">
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot; and &quot;${return_stderr}&quot;!=&quot;True&quot;">
<kw name="Fail" owner="BuiltIn">
<arg>At least one of {return_stdout} or {return_stderr} args should be set to True</arg>
<doc>Fails the test or task with the given message and optionally alters its tags.</doc>
<status status="NOT RUN" start="2026-09-23T04:56:40.112833" elapsed="0.000027"/>
</kw>
<status status="NOT RUN" start="2026-09-23T04:56:40.112525" elapsed="0.000378"/>
</branch>
<status status="PASS" start="2026-09-23T04:56:40.112502" elapsed="0.000432"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-09-23T04:56:40.113440" level="INFO">index=None
host=None
alias=None
port=22
timeout=3 seconds
newline=

prompt=None
term_type=vt100
width=80
height=24
path_separator=/
encoding=utf8
escape_ansi=False
encoding_errors=strict</msg>
<msg time="2026-09-23T04:56:40.113585" level="INFO">${current_ssh_connection} = index=None
host=None
alias=None
port=22
timeout=3 seconds
newline=

prompt=None
term_type=vt100
width=80
height=24
path_separator=/
encoding=utf8
escape_ansi=False
encoding_errors=strict</msg>
<var>${current_ssh_connection}</var>
<doc>Returns information about the connection.</doc>
<status status="PASS" start="2026-09-23T04:56:40.113195" elapsed="0.000424"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-23T04:56:40.114342" level="INFO">Attempting to execute command "/usr/local/bin/cbench -c 10.30.170.77 -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633" on remote system "10.30.170.67" by user "jenkins" with keyfile pass "any" and prompt "&gt;" and password ""</msg>
<arg>Attempting to execute command "${cmd}" on remote system "${system}" by user "${user}" with keyfile pass "${keyfile_pass}" and prompt "${prompt}" and password "${password}"</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-23T04:56:40.113872" elapsed="0.000546"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-09-23T04:56:40.115102" level="INFO">${conn_id} = 9</msg>
<var>${conn_id}</var>
<arg>${system}</arg>
<arg>prompt=${prompt}</arg>
<arg>timeout=${prompt_timeout}</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-09-23T04:56:40.114637" elapsed="0.000499"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-09-23T04:56:40.116302" level="INFO">Length is 0.</msg>
<msg time="2026-09-23T04:56:40.116413" level="INFO">${pwd_length} = 0</msg>
<var>${pwd_length}</var>
<arg>${password}</arg>
<doc>Returns and logs the length of the given item as an integer.</doc>
<status status="PASS" start="2026-09-23T04:56:40.115889" elapsed="0.000555"/>
</kw>
<kw name="Run Keyword And Return If" owner="BuiltIn">
<arg>${pwd_length} &gt; 0</arg>
<arg>SSHLibrary.Login</arg>
<arg>${user}</arg>
<arg>${password}</arg>
<arg>delay=${delay}</arg>
<doc>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-09-23T04:56:40.116626" elapsed="0.000419"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-09-23T04:56:40.118181" level="INFO">Logging into '10.30.170.67:22' as 'jenkins'.</msg>
<msg time="2026-09-23T04:56:40.760889" level="INFO">Read output: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-187-generic x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/pro

 System information as of Wed Sep 23 04:56:40 UTC 2026

  System load:  0.36               Processes:             104
  Usage of /:   19.8% of 38.58GB   Users logged in:       0
  Memory usage: 4%                 IPv4 address for ens3: 10.30.170.67
  Swap usage:   0%


Expanded Security Maintenance for Applications is not enabled.

5 updates can be applied immediately.
To see these additional updates run: apt list --upgradable

14 additional security updates can be applied with ESM Apps.
Learn more about enabling ESM Apps service at https://ubuntu.com/esm


The list of available updates is more than a week old.
To check for new updates run: sudo apt update
New release '24.04.5 LTS' available.
Run 'do-release-upgrade' to upgrade to it.


Last login: Wed Sep 23 04:46:33 2026 from 10.30.170.252
[?2004h[jenkins@releng-00446-92-1-mininet-ovs-217-0 ~]&gt;</msg>
<arg>${user}</arg>
<arg>${USER_HOME}/.ssh/${SSH_KEY}</arg>
<arg>${KEYFILE_PASS}</arg>
<arg>delay=${delay}</arg>
<doc>Logs into the SSH server using key-based authentication.</doc>
<status status="PASS" start="2026-09-23T04:56:40.117786" elapsed="0.643381"/>
</kw>
<msg time="2026-09-23T04:56:40.761277" level="INFO">Returning from the enclosing user keyword.</msg>
<arg>SSHLibrary.Login With Public Key</arg>
<arg>${user}</arg>
<arg>${USER_HOME}/.ssh/${SSH_KEY}</arg>
<arg>${KEYFILE_PASS}</arg>
<arg>delay=${delay}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-09-23T04:56:40.117267" elapsed="0.644090"/>
</kw>
<arg>${user}</arg>
<arg>${password}</arg>
<doc>On active SSH session: if given non-empty password, do Login, else do Login With Public Key.</doc>
<status status="PASS" start="2026-09-23T04:56:40.115406" elapsed="0.646071"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-23T04:56:40.762023" level="INFO">Executing command '/usr/local/bin/cbench -c 10.30.170.77 -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633'.</msg>
<msg time="2026-09-23T05:06:46.822587" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-09-23T05:06:46.823184" level="INFO">${stdout} = </msg>
<msg time="2026-09-23T05:06:46.823284" level="INFO">${stderr} = cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.170.77:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with 100...</msg>
<var>${stdout}</var>
<var>${stderr}</var>
<arg>${cmd}</arg>
<arg>return_stderr=True</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-23T04:56:40.761744" elapsed="606.061592"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-09-23T05:06:46.823783" elapsed="0.000729"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-23T05:06:46.825710" level="INFO">cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.170.77:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with 100 unique source MACs per switch
   learning destination mac addresses before the test
   starting test with 5000 ms delay after features_reply
   ignoring first 1 "warmup" and last 0 "cooldown" loops
   debugging info is off
Master Thread: Creating thread-0! 
Thread-0: All switches initialized. Running at node 10.30.170.77. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
04:57:45.938 16  switches: flows:  111443 100803 96908 99940 100673 98182 100117 98758 96692 94849 95100 106160 97219 95145 97395 94022  total = 26.390100 per ms 
04:58:46.038 16  switches: flows:  99140 101566 98902 100019 98630 96882 97750 102142 98123 93152 96923 92965 93181 94747 96446 91555  total = 25.825621 per ms 
04:59:46.138 16  switches: flows:  104010 108176 101625 103513 104176 101416 103085 106717 101695 99091 100989 98000 98763 98313 104048 96213  total = 27.118540 per ms 
05:00:46.238 16  switches: flows:  106503 110048 104479 108671 107401 105282 106279 106718 104673 101904 103172 100940 101561 100702 104374 99518  total = 27.823988 per ms 
05:01:46.339 16  switches: flows:  111922 112166 107110 109500 107833 108327 108182 108439 107906 103864 107726 105261 103832 103463 107570 100942  total = 28.519780 per ms 
05:02:46.439 16  switches: flows:  106966 109399 106125 109335 106278 105112 106715 108902 106563 101914 104070 101953 101739 100621 105329 98427  total = 27.944169 per ms 
05:03:46.539 16  switches: flows:  109574 112159 105636 110041 109763 106087 107674 109792 108221 105458 103954 102819 102909 104121 109401 101754  total = 28.441889 per ms 
05:04:46.639 16  switches: flows:  110285 112974 105685 108975 107896 105033 106368 108168 105461 105966 104892 102284 105176 103620 107910 101617  total = 28.324535 per ms 
05:05:46.740 16  switches: flows:  109478 114212 105484 111174 109482 108713 108720 108434 107874 105775 105414 102821 104407 103691 109193 101233  total = 28.554069 per ms 
05:06:46.841 16  switches: flows:  106251 108809 103035 106990 106364 104000 104614 105880 103808 100379 102358 100473 101952 101015 103871 99259  total = 27.604910 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 25825.62/28554.07/27795.28/9302.17 responses/s</msg>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-23T05:06:46.824966" elapsed="0.001002"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="PASS" start="2026-09-23T05:06:46.826447" elapsed="0.000087"/>
</return>
<status status="PASS" start="2026-09-23T05:06:46.826178" elapsed="0.000431"/>
</branch>
<status status="PASS" start="2026-09-23T05:06:46.826101" elapsed="0.000557"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="NOT RUN" start="2026-09-23T05:06:46.826845" elapsed="0.000027"/>
</return>
<status status="NOT RUN" start="2026-09-23T05:06:46.826773" elapsed="0.000155"/>
</branch>
<status status="NOT RUN" start="2026-09-23T05:06:46.826740" elapsed="0.000231"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-09-23T05:06:46.827031" elapsed="0.000027"/>
</return>
<kw name="Restore_Current_Ssh_Connection_From_Index" owner="SSHKeywords" type="TEARDOWN">
<kw name="Run Keyword And Return If" owner="BuiltIn">
<arg>${connection_index} is not None</arg>
<arg>SSHLibrary.Switch Connection</arg>
<arg>${connection_index}</arg>
<doc>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-09-23T05:06:46.828684" elapsed="0.000688"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<arg>127.0.0.1</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-09-23T05:06:46.829764" elapsed="0.000328"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-09-23T05:06:46.830399" elapsed="0.000216"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-09-23T05:06:46.827759" elapsed="0.002962"/>
</kw>
<msg time="2026-09-23T05:06:46.830944" level="INFO">${output} = cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.170.77:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with 100...</msg>
<var>${output}</var>
<arg>${cbench_system}</arg>
<arg>${cbench_executable} -c ${ODL_SYSTEM_IP} ${cbench_args}</arg>
<arg>prompt_timeout=${test_timeout}</arg>
<arg>return_stdout=False</arg>
<arg>return_stderr=True</arg>
<doc>Reduces the common work of running a command on a remote system to a single higher level
robot keyword, taking care to log in with a public key and. The command given is written and the return value
depends on the passed argument values of return_stdout (default: True) and return_stderr (default: False).
At least one should be True, or the keyword will exit and FAIL. If both are True, the resulting return value
will be a two element list containing both. Otherwise the resulting return value is a string.
No test conditions are checked.</doc>
<status status="PASS" start="2026-09-23T04:56:40.111793" elapsed="606.719206"/>
</kw>
<status status="PASS" start="2026-09-23T04:56:40.111385" elapsed="606.719708"/>
</branch>
<status status="PASS" start="2026-09-23T04:56:40.110937" elapsed="606.720203"/>
</if>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-23T05:06:46.832185" level="INFO">cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.170.77:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with 100 unique source MACs per switch
   learning destination mac addresses before the test
   starting test with 5000 ms delay after features_reply
   ignoring first 1 "warmup" and last 0 "cooldown" loops
   debugging info is off
Master Thread: Creating thread-0! 
Thread-0: All switches initialized. Running at node 10.30.170.77. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
04:57:45.938 16  switches: flows:  111443 100803 96908 99940 100673 98182 100117 98758 96692 94849 95100 106160 97219 95145 97395 94022  total = 26.390100 per ms 
04:58:46.038 16  switches: flows:  99140 101566 98902 100019 98630 96882 97750 102142 98123 93152 96923 92965 93181 94747 96446 91555  total = 25.825621 per ms 
04:59:46.138 16  switches: flows:  104010 108176 101625 103513 104176 101416 103085 106717 101695 99091 100989 98000 98763 98313 104048 96213  total = 27.118540 per ms 
05:00:46.238 16  switches: flows:  106503 110048 104479 108671 107401 105282 106279 106718 104673 101904 103172 100940 101561 100702 104374 99518  total = 27.823988 per ms 
05:01:46.339 16  switches: flows:  111922 112166 107110 109500 107833 108327 108182 108439 107906 103864 107726 105261 103832 103463 107570 100942  total = 28.519780 per ms 
05:02:46.439 16  switches: flows:  106966 109399 106125 109335 106278 105112 106715 108902 106563 101914 104070 101953 101739 100621 105329 98427  total = 27.944169 per ms 
05:03:46.539 16  switches: flows:  109574 112159 105636 110041 109763 106087 107674 109792 108221 105458 103954 102819 102909 104121 109401 101754  total = 28.441889 per ms 
05:04:46.639 16  switches: flows:  110285 112974 105685 108975 107896 105033 106368 108168 105461 105966 104892 102284 105176 103620 107910 101617  total = 28.324535 per ms 
05:05:46.740 16  switches: flows:  109478 114212 105484 111174 109482 108713 108720 108434 107874 105775 105414 102821 104407 103691 109193 101233  total = 28.554069 per ms 
05:06:46.841 16  switches: flows:  106251 108809 103035 106990 106364 104000 104614 105880 103808 100379 102358 100473 101952 101015 103871 99259  total = 27.604910 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 25825.62/28554.07/27795.28/9302.17 responses/s</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-23T05:06:46.831578" elapsed="0.000765"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${output}</arg>
<arg>RESULT</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-09-23T05:06:46.832705" elapsed="0.000758"/>
</kw>
<kw name="Get Lines Containing String" owner="String">
<msg time="2026-09-23T05:06:46.834273" level="INFO">1 out of 23 lines matched.</msg>
<msg time="2026-09-23T05:06:46.834481" level="INFO">${result_line} = RESULT: 16 switches 9 tests min/max/avg/stdev = 25825.62/28554.07/27795.28/9302.17 responses/s</msg>
<var>${result_line}</var>
<arg>${output}</arg>
<arg>RESULT</arg>
<doc>Returns lines of the given `string` that contain the `pattern`.</doc>
<status status="PASS" start="2026-09-23T05:06:46.833830" elapsed="0.000704"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-09-23T05:06:46.835431" level="INFO">@{results_list} = [ RESULT: | 16 | switches | 9 | tests | min/max/avg/stdev | = | 25825.62/28554.07/27795.28/9302.17 | responses/s ]</msg>
<var>@{results_list}</var>
<arg>${result_line}</arg>
<doc>Splits the `string` using `separator` as a delimiter string.</doc>
<status status="PASS" start="2026-09-23T05:06:46.834877" elapsed="0.000613"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-23T05:06:46.836640" level="INFO">min/max/avg/stdev</msg>
<arg>${results_list[5]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-23T05:06:46.835892" elapsed="0.000864"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-23T05:06:46.837893" level="INFO">25825.62/28554.07/27795.28/9302.17</msg>
<arg>${results_list[7]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-23T05:06:46.837182" elapsed="0.000823"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-09-23T05:06:46.838999" level="INFO">@{result_name_list} = [ min | max | avg | stdev ]</msg>
<var>@{result_name_list}</var>
<arg>${results_list[5]}</arg>
<arg>/</arg>
<doc>Splits the `string` using `separator` as a delimiter string.</doc>
<status status="PASS" start="2026-09-23T05:06:46.838370" elapsed="0.000682"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-09-23T05:06:46.840117" level="INFO">@{result_value_list} = [ 25825.62 | 28554.07 | 27795.28 | 9302.17 ]</msg>
<var>@{result_value_list}</var>
<arg>${results_list[7]}</arg>
<arg>/</arg>
<doc>Splits the `string` using `separator` as a delimiter string.</doc>
<status status="PASS" start="2026-09-23T05:06:46.839513" elapsed="0.000689"/>
</kw>
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-09-23T05:06:46.841175" level="INFO">Length is 4.</msg>
<msg time="2026-09-23T05:06:46.841353" level="INFO">${num_stats} = 4</msg>
<var>${num_stats}</var>
<arg>${result_name_list}</arg>
<doc>Returns and logs the length of the given item as an integer.</doc>
<status status="PASS" start="2026-09-23T05:06:46.840553" elapsed="0.000849"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-23T05:06:46.843272" level="INFO">min :: 25825.62</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-23T05:06:46.842318" elapsed="0.001067"/>
</kw>
<var name="${i}">0</var>
<status status="PASS" start="2026-09-23T05:06:46.841860" elapsed="0.001613"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-23T05:06:46.844927" level="INFO">max :: 28554.07</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-23T05:06:46.844002" elapsed="0.001038"/>
</kw>
<var name="${i}">1</var>
<status status="PASS" start="2026-09-23T05:06:46.843642" elapsed="0.001463"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-23T05:06:46.846603" level="INFO">avg :: 27795.28</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-23T05:06:46.845682" elapsed="0.001032"/>
</kw>
<var name="${i}">2</var>
<status status="PASS" start="2026-09-23T05:06:46.845301" elapsed="0.001480"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-23T05:06:46.848271" level="INFO">stdev :: 9302.17</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-23T05:06:46.847331" elapsed="0.001051"/>
</kw>
<var name="${i}">3</var>
<status status="PASS" start="2026-09-23T05:06:46.846942" elapsed="0.001526"/>
</iter>
<var>${i}</var>
<value>0</value>
<value>${num_stats}</value>
<status status="PASS" start="2026-09-23T05:06:46.841538" elapsed="0.006992"/>
</for>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-09-23T05:06:46.849743" level="INFO">${min} = 25825.62</msg>
<var>${min}</var>
<arg>${result_value_list[${0}]}</arg>
<doc>Returns the given values which can then be assigned to a variable.</doc>
<status status="PASS" start="2026-09-23T05:06:46.848863" elapsed="0.000935"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-09-23T05:06:46.851014" level="INFO">${max} = 28554.07</msg>
<var>${max}</var>
<arg>${result_value_list[${1}]}</arg>
<doc>Returns the given values which can then be assigned to a variable.</doc>
<status status="PASS" start="2026-09-23T05:06:46.850124" elapsed="0.000942"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-09-23T05:06:46.852318" level="INFO">${average} = 27795.28</msg>
<var>${average}</var>
<arg>${result_value_list[${2}]}</arg>
<doc>Returns the given values which can then be assigned to a variable.</doc>
<status status="PASS" start="2026-09-23T05:06:46.851451" elapsed="0.000921"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-09-23T05:06:46.853592" level="INFO">${stdev} = 9302.17</msg>
<var>${stdev}</var>
<arg>${result_value_list[${3}]}</arg>
<doc>Returns the given values which can then be assigned to a variable.</doc>
<status status="PASS" start="2026-09-23T05:06:46.852720" elapsed="0.000925"/>
</kw>
<kw name="Get Time" owner="BuiltIn">
<msg time="2026-09-23T05:06:46.854826" level="INFO">${date} = 2026-09-23 05:06:46</msg>
<var>${date}</var>
<arg>d,m,s</arg>
<doc>Returns the given time in the requested format.</doc>
<status status="PASS" start="2026-09-23T05:06:46.854065" elapsed="0.000812"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-23T05:06:46.856046" level="INFO">CBench Result: 2026-09-23 05:06:46,-m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633,25825.62,28554.07,27795.28,9302.17</msg>
<arg>CBench Result: ${date},${cbench_args},${min},${max},${average},${stdev}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-23T05:06:46.855314" elapsed="0.000874"/>
</kw>
<kw name="Log Results And Determine Status">
<kw name="Append To File" owner="OperatingSystem">
<msg time="2026-09-23T05:06:46.858117" level="INFO" html="true">Appended to file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-cbench-only-chromium/bug.csv"&gt;/w/workspace/openflowplugin-csit-1node-cbench-only-chromium/bug.csv&lt;/a&gt;'.</msg>
<arg>${output_file}</arg>
<arg>${min},${max},${average}\n</arg>
<doc>Appends the given content to the specified file.</doc>
<status status="PASS" start="2026-09-23T05:06:46.857347" elapsed="0.000943"/>
</kw>
<kw name="Should Be True" owner="BuiltIn">
<arg>${average} &gt; ${threshold}</arg>
<arg>${average} flow_mods per/sec did not exceed threshold of ${threshold}</arg>
<doc>Fails if the given condition is not true.</doc>
<status status="PASS" start="2026-09-23T05:06:46.858657" elapsed="0.001198"/>
</kw>
<arg>${min}</arg>
<arg>${max}</arg>
<arg>${average}</arg>
<arg>${average_threshold}</arg>
<arg>${output_filename}</arg>
<status status="PASS" start="2026-09-23T05:06:46.856472" elapsed="0.003512"/>
</kw>
<arg>-m ${duration_in_ms} -M ${num_of_unique_macs} -S ${switch_count} -l ${loops} -D ${start_delay} -p ${of_port}</arg>
<arg>${latency_threshold}</arg>
<arg>bug.csv</arg>
<status status="PASS" start="2026-09-23T04:56:40.109636" elapsed="606.750464"/>
</kw>
<kw name="Sleep" owner="BuiltIn">
<msg time="2026-09-23T05:06:46.861079" level="INFO">Slept 0 seconds.</msg>
<arg>${test_delay}</arg>
<doc>Pauses execution for the given time.</doc>
<status status="PASS" start="2026-09-23T05:06:46.860468" elapsed="0.000757"/>
</kw>
<kw name="Report Failure Due To Bug" owner="Utils" type="TEARDOWN">
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-09-23T05:06:46.863743" level="INFO">${test_skipped} = False</msg>
<var>${test_skipped}</var>
<arg>len(re.findall('SKIPPED', """${TEST_MESSAGE}""")) &gt; 0</arg>
<arg>modules=re</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-09-23T05:06:46.862775" elapsed="0.001023"/>
</kw>
<if>
<branch type="IF" condition="('${TEST_STATUS}' != 'FAIL') or ${test_skipped}">
<return>
<status status="PASS" start="2026-09-23T05:06:46.864214" elapsed="0.000058"/>
</return>
<status status="PASS" start="2026-09-23T05:06:46.863946" elapsed="0.000389"/>
</branch>
<status status="PASS" start="2026-09-23T05:06:46.863906" elapsed="0.000478"/>
</if>
<kw name="Comment" owner="BuiltIn">
<arg>Jira tickets are {PROJECT}-{NUMBER} while Bugzilla tickets are {NUMBER}</arg>
<doc>Displays the given messages in the log file as keyword arguments.</doc>
<status status="NOT RUN" start="2026-09-23T05:06:46.864709" elapsed="0.000045"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<var>${match}</var>
<arg>Should Contain</arg>
<arg>${number}</arg>
<arg>-</arg>
<doc>Runs the specified keyword and returns the status as a Boolean value.</doc>
<status status="NOT RUN" start="2026-09-23T05:06:46.865035" elapsed="0.000041"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<var>${bug_url}</var>
<arg>${match}</arg>
<arg>https://jira.opendaylight.org/browse/${number}</arg>
<arg>https://bugs.opendaylight.org/show_bug.cgi?id=${number}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="NOT RUN" start="2026-09-23T05:06:46.865449" elapsed="0.000042"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<var>${msg}</var>
<arg>This test fails due to ${bug_url}</arg>
<doc>Returns the given values which can then be assigned to a variable.</doc>
<status status="NOT RUN" start="2026-09-23T05:06:46.865948" elapsed="0.000045"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${newline}</var>
<arg>chr(10)</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-09-23T05:06:46.866370" elapsed="0.000065"/>
</kw>
<kw name="Set Test Message" owner="BuiltIn">
<arg>${msg}${newline}${newline}${TEST_MESSAGE}</arg>
<doc>Sets message of the current test case.</doc>
<status status="NOT RUN" start="2026-09-23T05:06:46.866721" elapsed="0.000040"/>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${msg}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-09-23T05:06:46.867115" elapsed="0.000079"/>
</kw>
<if>
<branch type="IF" condition="&quot;${include_bug_in_tags}&quot;==&quot;True&quot;">
<kw name="Set Tags" owner="BuiltIn">
<arg>${bug_url}</arg>
<doc>Adds The given `tags` for the current test or all tests in a suite.</doc>
<status status="NOT RUN" start="2026-09-23T05:06:46.867553" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-09-23T05:06:46.867348" elapsed="0.000269"/>
</branch>
<status status="NOT RUN" start="2026-09-23T05:06:46.867320" elapsed="0.000326"/>
</if>
<arg>6176</arg>
<doc>Report that a test failed due to a known Bugzilla bug whose
number is provided as an argument.
Not FAILED (incl. SKIPPED) test are not reported.
This keyword must be used in the [Teardown] setting of the affected test
or as the first line of the test if FastFail module is not being
used. It reports the URL of the bug on console and also puts it
into the Robot log file.</doc>
<status status="PASS" start="2026-09-23T05:06:46.861978" elapsed="0.005732"/>
</kw>
<doc>cbench executed in latency mode to see if controller is healthy</doc>
<tag>cbench</tag>
<tag>latency</tag>
<timeout value="15 minutes"/>
<status status="PASS" start="2026-09-23T04:56:40.107649" elapsed="606.760117"/>
</test>
<doc>Cbench Latency and Throughput tests can be run from an external
cbench.
If cbench is run with a medium number of switches or higher (e.g. 32+)
the normal openflow operations seem to break.
BUG: https://bugs.opendaylight.org/show_bug.cgi?id=2897</doc>
<status status="PASS" start="2026-09-23T04:36:24.499907" elapsed="1822.368910"/>
</suite>
<statistics>
<total>
<stat pass="3" fail="0" skip="0">All Tests</stat>
</total>
<tag>
<stat pass="3" fail="0" skip="0">cbench</stat>
<stat pass="2" fail="0" skip="0">latency</stat>
<stat pass="1" fail="0" skip="0">throughput</stat>
</tag>
<suite>
<stat name="openflowplugin-cbench.txt" id="s1" pass="3" fail="0" skip="0">openflowplugin-cbench.txt</stat>
</suite>
</statistics>
<errors>
</errors>
</robot>
