<?xml version="1.0" encoding="UTF-8"?>
<robot generator="Robot 7.5 (Python 3.11.10 on linux)" generated="2026-10-20T01:07:31.455760" 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-10-20T01:07:31.928048" elapsed="0.000022"/>
</return>
<status status="NOT RUN" start="2026-10-20T01:07:31.927934" elapsed="0.000184"/>
</branch>
<status status="PASS" start="2026-10-20T01:07:31.927907" elapsed="0.000238"/>
</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-10-20T01:07:31.928310" elapsed="0.000443"/>
</kw>
<kw name="Login" owner="SSHLibrary">
<msg time="2026-10-20T01:07:31.929179" level="INFO">Logging into '10.30.170.106:8101' as 'karaf'.</msg>
<msg time="2026-10-20T01:07:32.622280" 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-10-20T01:07:31.928946" elapsed="0.693608"/>
</kw>
<kw name="Write" owner="SSHLibrary">
<msg time="2026-10-20T01:07:32.672851" 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-10-20T01:07:32.622937" elapsed="0.050003"/>
</kw>
<kw name="Read Until Regexp" owner="SSHLibrary">
<msg time="2026-10-20T01:07:32.674587" level="INFO">[?1l&gt;[?2004l[?1h=[90m~[0m                                                                                [?2004hopendaylight-user@root&gt;</msg>
<msg time="2026-10-20T01:07:32.674726" 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-10-20T01:07:32.673142" elapsed="0.001612"/>
</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-10-20T01:07:32.674911" elapsed="0.000221"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-10-20T01:07:32.675282" elapsed="0.000227"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-20T01:07:32.676092" 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-10-20T01:07:32.675752" elapsed="0.000390"/>
</kw>
<return>
<value>${output}</value>
<status status="PASS" start="2026-10-20T01:07:32.676191" elapsed="0.000063"/>
</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.106
Note that this keyword will open&amp;close new SSH connection, without switching back to previously current session.</doc>
<status status="PASS" start="2026-10-20T01:07:31.927621" elapsed="0.748743"/>
</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-10-20T01:07:31.926020" elapsed="0.750405"/>
</kw>
<kw name="Append To File" owner="OperatingSystem">
<msg time="2026-10-20T01:07:32.677023" 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-10-20T01:07:32.676653" elapsed="0.000423"/>
</kw>
<kw name="Append To File" owner="OperatingSystem">
<msg time="2026-10-20T01:07:32.677430" 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-10-20T01:07:32.677221" elapsed="0.000261"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-20T01:07:32.678124" 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-10-20T01:07:32.677683" elapsed="0.000467"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-10-20T01:07:32.678736" 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-10-20T01:07:32.678375" elapsed="0.000402"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-20T01:07:32.679264" 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-10-20T01:07:32.678941" elapsed="0.000347"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-10-20T01:07:32.679773" 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-10-20T01:07:32.679465" elapsed="0.000346"/>
</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-10-20T01:07:32.680084" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-10-20T01:07:32.679896" elapsed="0.000238"/>
</branch>
<branch type="ELSE">
<kw name="Verify File Exists On Remote System" owner="Utils">
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-10-20T01:07:32.682317" 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-10-20T01:07:32.681974" elapsed="0.000367"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-10-20T01:07:32.683457" level="INFO">Length is 0.</msg>
<msg time="2026-10-20T01:07:32.683534" 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-10-20T01:07:32.682848" elapsed="0.000708"/>
</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-10-20T01:07:32.683720" elapsed="0.000307"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-10-20T01:07:32.684799" level="INFO">Logging into '10.30.170.213:22' as 'jenkins'.</msg>
<msg time="2026-10-20T01:07:33.182067" 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 Tue Oct 20 01:06:51 UTC 2026

  System load:  0.15               Processes:             110
  Usage of /:   19.8% of 38.58GB   Users logged in:       0
  Memory usage: 4%                 IPv4 address for ens3: 10.30.170.213
  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-122-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-10-20T01:07:32.684528" elapsed="0.497719"/>
</kw>
<msg time="2026-10-20T01:07:33.182345" 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-10-20T01:07:32.684176" elapsed="0.498267"/>
</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-10-20T01:07:32.682522" elapsed="0.500039"/>
</kw>
<kw name="File Should Exist" owner="SSHLibrary">
<msg time="2026-10-20T01:07:33.192647" 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-10-20T01:07:33.182808" elapsed="0.011883"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-10-20T01:07:33.194949" elapsed="0.000382"/>
</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-10-20T01:07:32.681493" elapsed="0.513920"/>
</kw>
<status status="PASS" start="2026-10-20T01:07:32.680211" elapsed="0.515251"/>
</branch>
<status status="PASS" start="2026-10-20T01:07:32.679867" elapsed="0.515641"/>
</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-10-20T01:07:33.195784" elapsed="0.000630"/>
</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-10-20T01:07:33.199231" elapsed="0.000025"/>
</return>
<status status="NOT RUN" start="2026-10-20T01:07:33.199047" elapsed="0.000256"/>
</branch>
<status status="PASS" start="2026-10-20T01:07:33.199013" elapsed="0.000323"/>
</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-10-20T01:07:33.201517" elapsed="0.000019"/>
</return>
<status status="NOT RUN" start="2026-10-20T01:07:33.201384" elapsed="0.000195"/>
</branch>
<status status="PASS" start="2026-10-20T01:07:33.201358" elapsed="0.000284"/>
</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-10-20T01:07:33.201870" elapsed="0.000512"/>
</kw>
<kw name="Login" owner="SSHLibrary">
<msg time="2026-10-20T01:07:33.202953" level="INFO">Logging into '10.30.170.106:8101' as 'karaf'.</msg>
<msg time="2026-10-20T01:07:33.423733" 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-10-20T01:07:33.202660" elapsed="0.221220"/>
</kw>
<kw name="Write" owner="SSHLibrary">
<msg time="2026-10-20T01:07:33.515989" 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-10-20T01:07:33.424134" elapsed="0.091917"/>
</kw>
<kw name="Read Until Regexp" owner="SSHLibrary">
<msg time="2026-10-20T01:07:33.525356" 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-10-20T01:07:33.525568" 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-10-20T01:07:33.516229" elapsed="0.009393"/>
</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-10-20T01:07:33.525778" elapsed="0.000172"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-10-20T01:07:33.526088" elapsed="0.000168"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-20T01:07:33.526779" 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-10-20T01:07:33.526427" elapsed="0.000404"/>
</kw>
<return>
<value>${output}</value>
<status status="PASS" start="2026-10-20T01:07:33.526878" elapsed="0.000054"/>
</return>
<msg time="2026-10-20T01:07:33.527061" 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.106
Note that this keyword will open&amp;close new SSH connection, without switching back to previously current session.</doc>
<status status="PASS" start="2026-10-20T01:07:33.200967" elapsed="0.326124"/>
</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-10-20T01:07:33.527242" elapsed="0.000545"/>
</kw>
<return>
<value>${output}</value>
<status status="PASS" start="2026-10-20T01:07:33.527834" elapsed="0.000029"/>
</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-10-20T01:07:33.198659" elapsed="0.329282"/>
</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-10-20T01:07:33.529661" elapsed="0.000014"/>
</return>
<status status="NOT RUN" start="2026-10-20T01:07:33.529515" elapsed="0.000199"/>
</branch>
<status status="PASS" start="2026-10-20T01:07:33.529492" elapsed="0.000245"/>
</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-10-20T01:07:33.529889" elapsed="0.000370"/>
</kw>
<kw name="Login" owner="SSHLibrary">
<msg time="2026-10-20T01:07:33.530650" level="INFO">Logging into '10.30.170.106:8101' as 'karaf'.</msg>
<msg time="2026-10-20T01:07:33.695163" 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-10-20T01:07:33.530426" elapsed="0.164839"/>
</kw>
<kw name="Write" owner="SSHLibrary">
<msg time="2026-10-20T01:07:33.717746" 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-10-20T01:07:33.695454" elapsed="0.022346"/>
</kw>
<kw name="Read Until Regexp" owner="SSHLibrary">
<msg time="2026-10-20T01:07:33.720024" level="INFO">[?1l&gt;[?2004lDropAllFlows transitions to on
[?1h=[90m~[0m                                                                                [?2004hopendaylight-user@root&gt;</msg>
<msg time="2026-10-20T01:07:33.720124" 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-10-20T01:07:33.717946" elapsed="0.002205"/>
</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-10-20T01:07:33.720282" elapsed="0.000160"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-10-20T01:07:33.720593" elapsed="0.000174"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-20T01:07:33.721209" 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-10-20T01:07:33.720939" elapsed="0.000315"/>
</kw>
<return>
<value>${output}</value>
<status status="PASS" start="2026-10-20T01:07:33.721301" elapsed="0.000045"/>
</return>
<arg>dropallpacketsrpc on</arg>
<doc>Will execute the given ${cmd} by ssh'ing to the karaf console running on 10.30.170.106
Note that this keyword will open&amp;close new SSH connection, without switching back to previously current session.</doc>
<status status="PASS" start="2026-10-20T01:07:33.529229" elapsed="0.192205"/>
</kw>
<status status="PASS" start="2026-10-20T01:07:31.924141" elapsed="1.797348"/>
</kw>
<test id="s1-t1" name="Cbench Latency Test" line="37">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-20T01:07:33.723503" 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-10-20T01:07:33.722513" elapsed="0.001049"/>
</kw>
<kw name="Run Cbench And Log Results">
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-10-20T01:07:33.724995" 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-10-20T01:07:33.724685" elapsed="0.000349"/>
</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-10-20T01:07:33.725348" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-10-20T01:07:33.725104" elapsed="0.000296"/>
</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-10-20T01:07:33.726448" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-10-20T01:07:33.726237" elapsed="0.000262"/>
</branch>
<status status="PASS" start="2026-10-20T01:07:33.726219" elapsed="0.000303"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-10-20T01:07:33.726909" 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-10-20T01:07:33.727015" 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-10-20T01:07:33.726725" elapsed="0.000314"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-20T01:07:33.727523" level="INFO">Attempting to execute command "/usr/local/bin/cbench -c 10.30.170.106 -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633" on remote system "10.30.170.213" 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-10-20T01:07:33.727206" elapsed="0.000371"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-10-20T01:07:33.728153" 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-10-20T01:07:33.727766" elapsed="0.000411"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-10-20T01:07:33.729014" level="INFO">Length is 0.</msg>
<msg time="2026-10-20T01:07:33.729095" 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-10-20T01:07:33.728712" 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-10-20T01:07:33.729247" elapsed="0.000378"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-10-20T01:07:33.730391" level="INFO">Logging into '10.30.170.213:22' as 'jenkins'.</msg>
<msg time="2026-10-20T01:07:34.121625" 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 Tue Oct 20 01:06:51 UTC 2026

  System load:  0.15               Processes:             110
  Usage of /:   19.8% of 38.58GB   Users logged in:       0
  Memory usage: 4%                 IPv4 address for ens3: 10.30.170.213
  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: Tue Oct 20 01:07:33 2026 from 10.30.171.114
[?2004h[jenkins@releng-00446-122-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-10-20T01:07:33.730133" elapsed="0.391641"/>
</kw>
<msg time="2026-10-20T01:07:34.121848" 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-10-20T01:07:33.729772" elapsed="0.392150"/>
</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-10-20T01:07:33.728352" elapsed="0.393679"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-20T01:07:34.122522" level="INFO">Executing command '/usr/local/bin/cbench -c 10.30.170.106 -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633'.</msg>
<msg time="2026-10-20T01:17:40.271122" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-10-20T01:17:40.271807" level="INFO">${stdout} = </msg>
<msg time="2026-10-20T01:17:40.271905" level="INFO">${stderr} = cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.170.106:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with 10...</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-10-20T01:07:34.122264" elapsed="606.149695"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-10-20T01:17:40.272509" elapsed="0.000757"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-20T01:17:40.274475" level="INFO">cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.170.106: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.106. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
01:08:39.353 16  switches: flows:  86147 86182 86107 85622 84016 86042 86311 85601 84943 83558 86165 86969 86176 82906 84742 83969  total = 22.757600 per ms 
01:09:39.453 16  switches: flows:  93518 93585 91753 93655 90300 94109 94651 93249 92557 92068 93471 92796 93135 89395 92218 90651  total = 24.644031 per ms 
01:10:39.553 16  switches: flows:  92694 92803 93373 92676 91685 95003 94397 91741 94331 92239 91821 91363 94206 89354 91758 90445  total = 24.623723 per ms 
01:11:39.654 16  switches: flows:  92836 95147 95121 94207 90973 95161 94739 93079 93552 94474 93506 93843 95211 91733 92010 91720  total = 24.913622 per ms 
01:12:39.759 16  switches: flows:  95793 98614 98136 93761 93758 94568 95549 94524 93860 95050 92976 95781 96962 93620 92822 91590  total = 25.247006 per ms 
01:13:39.862 16  switches: flows:  95076 97721 99405 94112 92835 95340 96397 94576 93123 94939 94765 95359 95142 95728 92629 93211  total = 25.297080 per ms 
01:14:39.963 16  switches: flows:  96045 101159 100666 96771 95146 97209 98076 94932 94554 95533 94894 97296 96801 95084 94600 93711  total = 25.665109 per ms 
01:15:40.063 16  switches: flows:  99418 99663 100154 98934 95103 98840 98539 96085 97190 97320 94895 97696 98921 95612 95183 94733  total = 25.928139 per ms 
01:16:40.164 16  switches: flows:  97287 100361 98816 97610 94126 96651 97962 95519 95425 96720 95110 98693 96702 94757 95404 94128  total = 25.711579 per ms 
01:17:40.265 16  switches: flows:  102598 103654 102886 101044 100730 101221 102173 99686 99896 100868 99563 103793 102406 101835 98763 97446  total = 26.931081 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 24623.72/26931.08/25440.15/8507.66 responses/s</msg>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-20T01:17:40.273747" elapsed="0.001048"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="PASS" start="2026-10-20T01:17:40.275283" elapsed="0.000093"/>
</return>
<status status="PASS" start="2026-10-20T01:17:40.274990" elapsed="0.000462"/>
</branch>
<status status="PASS" start="2026-10-20T01:17:40.274933" elapsed="0.000573"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="NOT RUN" start="2026-10-20T01:17:40.275733" elapsed="0.000026"/>
</return>
<status status="NOT RUN" start="2026-10-20T01:17:40.275657" elapsed="0.000158"/>
</branch>
<status status="NOT RUN" start="2026-10-20T01:17:40.275622" elapsed="0.000237"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-10-20T01:17:40.275924" 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-10-20T01:17:40.277496" elapsed="0.000679"/>
</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-10-20T01:17:40.278566" elapsed="0.000362"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-10-20T01:17:40.279198" elapsed="0.000233"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-10-20T01:17:40.276578" elapsed="0.002957"/>
</kw>
<msg time="2026-10-20T01:17:40.279794" level="INFO">${output} = cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.170.106:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with 10...</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-10-20T01:07:33.725747" elapsed="606.554102"/>
</kw>
<status status="PASS" start="2026-10-20T01:07:33.725427" elapsed="606.554517"/>
</branch>
<status status="PASS" start="2026-10-20T01:07:33.725083" elapsed="606.554910"/>
</if>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-20T01:17:40.281020" level="INFO">cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.170.106: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.106. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
01:08:39.353 16  switches: flows:  86147 86182 86107 85622 84016 86042 86311 85601 84943 83558 86165 86969 86176 82906 84742 83969  total = 22.757600 per ms 
01:09:39.453 16  switches: flows:  93518 93585 91753 93655 90300 94109 94651 93249 92557 92068 93471 92796 93135 89395 92218 90651  total = 24.644031 per ms 
01:10:39.553 16  switches: flows:  92694 92803 93373 92676 91685 95003 94397 91741 94331 92239 91821 91363 94206 89354 91758 90445  total = 24.623723 per ms 
01:11:39.654 16  switches: flows:  92836 95147 95121 94207 90973 95161 94739 93079 93552 94474 93506 93843 95211 91733 92010 91720  total = 24.913622 per ms 
01:12:39.759 16  switches: flows:  95793 98614 98136 93761 93758 94568 95549 94524 93860 95050 92976 95781 96962 93620 92822 91590  total = 25.247006 per ms 
01:13:39.862 16  switches: flows:  95076 97721 99405 94112 92835 95340 96397 94576 93123 94939 94765 95359 95142 95728 92629 93211  total = 25.297080 per ms 
01:14:39.963 16  switches: flows:  96045 101159 100666 96771 95146 97209 98076 94932 94554 95533 94894 97296 96801 95084 94600 93711  total = 25.665109 per ms 
01:15:40.063 16  switches: flows:  99418 99663 100154 98934 95103 98840 98539 96085 97190 97320 94895 97696 98921 95612 95183 94733  total = 25.928139 per ms 
01:16:40.164 16  switches: flows:  97287 100361 98816 97610 94126 96651 97962 95519 95425 96720 95110 98693 96702 94757 95404 94128  total = 25.711579 per ms 
01:17:40.265 16  switches: flows:  102598 103654 102886 101044 100730 101221 102173 99686 99896 100868 99563 103793 102406 101835 98763 97446  total = 26.931081 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 24623.72/26931.08/25440.15/8507.66 responses/s</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-20T01:17:40.280403" elapsed="0.000764"/>
</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-10-20T01:17:40.281525" elapsed="0.000763"/>
</kw>
<kw name="Get Lines Containing String" owner="String">
<msg time="2026-10-20T01:17:40.283100" level="INFO">1 out of 23 lines matched.</msg>
<msg time="2026-10-20T01:17:40.283304" level="INFO">${result_line} = RESULT: 16 switches 9 tests min/max/avg/stdev = 24623.72/26931.08/25440.15/8507.66 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-10-20T01:17:40.282682" elapsed="0.000676"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-10-20T01:17:40.284198" level="INFO">@{results_list} = [ RESULT: | 16 | switches | 9 | tests | min/max/avg/stdev | = | 24623.72/26931.08/25440.15/8507.66 | 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-10-20T01:17:40.283731" elapsed="0.000545"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-20T01:17:40.285413" 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-10-20T01:17:40.284707" elapsed="0.000834"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-20T01:17:40.286695" level="INFO">24623.72/26931.08/25440.15/8507.66</msg>
<arg>${results_list[7]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-20T01:17:40.285969" elapsed="0.000837"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-10-20T01:17:40.287810" 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-10-20T01:17:40.287137" elapsed="0.000727"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-10-20T01:17:40.288946" level="INFO">@{result_value_list} = [ 24623.72 | 26931.08 | 25440.15 | 8507.66 ]</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-10-20T01:17:40.288299" elapsed="0.000701"/>
</kw>
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-10-20T01:17:40.289978" level="INFO">Length is 4.</msg>
<msg time="2026-10-20T01:17:40.290148" 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-10-20T01:17:40.289349" elapsed="0.000847"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-20T01:17:40.292063" level="INFO">min :: 24623.72</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-10-20T01:17:40.291120" elapsed="0.001054"/>
</kw>
<var name="${i}">0</var>
<status status="PASS" start="2026-10-20T01:17:40.290750" elapsed="0.001490"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-20T01:17:40.293752" level="INFO">max :: 26931.08</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-10-20T01:17:40.292832" elapsed="0.001031"/>
</kw>
<var name="${i}">1</var>
<status status="PASS" start="2026-10-20T01:17:40.292443" elapsed="0.001486"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-20T01:17:40.295442" level="INFO">avg :: 25440.15</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-10-20T01:17:40.294490" elapsed="0.001062"/>
</kw>
<var name="${i}">2</var>
<status status="PASS" start="2026-10-20T01:17:40.294100" elapsed="0.001549"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-20T01:17:40.297115" level="INFO">stdev :: 8507.66</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-10-20T01:17:40.296187" elapsed="0.001039"/>
</kw>
<var name="${i}">3</var>
<status status="PASS" start="2026-10-20T01:17:40.295829" elapsed="0.001489"/>
</iter>
<var>${i}</var>
<value>0</value>
<value>${num_stats}</value>
<status status="PASS" start="2026-10-20T01:17:40.290355" elapsed="0.007047"/>
</for>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-20T01:17:40.298654" level="INFO">${min} = 24623.72</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-10-20T01:17:40.297769" elapsed="0.000940"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-20T01:17:40.299901" level="INFO">${max} = 26931.08</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-10-20T01:17:40.299038" elapsed="0.000915"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-20T01:17:40.301139" level="INFO">${average} = 25440.15</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-10-20T01:17:40.300296" elapsed="0.000896"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-20T01:17:40.302422" level="INFO">${stdev} = 8507.66</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-10-20T01:17:40.301544" elapsed="0.000929"/>
</kw>
<kw name="Get Time" owner="BuiltIn">
<msg time="2026-10-20T01:17:40.303694" level="INFO">${date} = 2026-10-20 01:17: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-10-20T01:17:40.302902" elapsed="0.000846"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-20T01:17:40.304898" level="INFO">CBench Result: 2026-10-20 01:17:40,-m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633,24623.72,26931.08,25440.15,8507.66</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-10-20T01:17:40.304151" elapsed="0.000856"/>
</kw>
<kw name="Log Results And Determine Status">
<kw name="Append To File" owner="OperatingSystem">
<msg time="2026-10-20T01:17:40.307269" 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-10-20T01:17:40.306182" elapsed="0.001228"/>
</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-10-20T01:17:40.307790" elapsed="0.000893"/>
</kw>
<arg>${min}</arg>
<arg>${max}</arg>
<arg>${average}</arg>
<arg>${average_threshold}</arg>
<arg>${output_filename}</arg>
<status status="PASS" start="2026-10-20T01:17:40.305302" 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>${latency_results_file}</arg>
<status status="PASS" start="2026-10-20T01:07:33.724139" elapsed="606.584793"/>
</kw>
<kw name="Sleep" owner="BuiltIn">
<msg time="2026-10-20T01:17:40.309968" level="INFO">Slept 0 seconds.</msg>
<arg>${test_delay}</arg>
<doc>Pauses execution for the given time.</doc>
<status status="PASS" start="2026-10-20T01:17:40.309297" elapsed="0.000784"/>
</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-10-20T01:17:40.311299" elapsed="0.000630"/>
</kw>
<status status="PASS" start="2026-10-20T01:17:40.310509" elapsed="0.001561"/>
</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-10-20T01:07:33.721664" elapsed="606.590478"/>
</test>
<test id="s1-t2" name="Cbench Throughput Test" line="51">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-20T01:17:40.315300" 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-10-20T01:17:40.314224" elapsed="0.001154"/>
</kw>
<kw name="Run Cbench And Log Results">
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-10-20T01:17:40.317297" 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-10-20T01:17:40.316444" elapsed="0.000910"/>
</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-10-20T01:17:40.317973" elapsed="0.000031"/>
</kw>
<status status="NOT RUN" start="2026-10-20T01:17:40.317442" elapsed="0.000608"/>
</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-10-20T01:17:40.319505" elapsed="0.000028"/>
</kw>
<status status="NOT RUN" start="2026-10-20T01:17:40.319191" elapsed="0.000385"/>
</branch>
<status status="PASS" start="2026-10-20T01:17:40.319167" elapsed="0.000461"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-10-20T01:17:40.320125" 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-10-20T01:17:40.320293" 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-10-20T01:17:40.319875" elapsed="0.000453"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-20T01:17:40.321042" level="INFO">Attempting to execute command "/usr/local/bin/cbench -c 10.30.170.106 -t -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633" on remote system "10.30.170.213" 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-10-20T01:17:40.320564" elapsed="0.000550"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-10-20T01:17:40.321848" 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-10-20T01:17:40.321362" elapsed="0.000519"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-10-20T01:17:40.323032" level="INFO">Length is 0.</msg>
<msg time="2026-10-20T01:17:40.323142" 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-10-20T01:17:40.322642" elapsed="0.000530"/>
</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-10-20T01:17:40.323375" elapsed="0.000417"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-10-20T01:17:40.324880" level="INFO">Logging into '10.30.170.213:22' as 'jenkins'.</msg>
<msg time="2026-10-20T01:17:40.940195" 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 Tue Oct 20 01:17:40 UTC 2026

  System load:  1.0                Processes:             104
  Usage of /:   19.8% of 38.58GB   Users logged in:       0
  Memory usage: 4%                 IPv4 address for ens3: 10.30.170.213
  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: Tue Oct 20 01:07:34 2026 from 10.30.171.114
[?2004h[jenkins@releng-00446-122-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-10-20T01:17:40.324498" elapsed="0.615917"/>
</kw>
<msg time="2026-10-20T01:17:40.940515" 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-10-20T01:17:40.323997" elapsed="0.616637"/>
</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-10-20T01:17:40.322121" elapsed="0.618648"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-20T01:17:40.941382" level="INFO">Executing command '/usr/local/bin/cbench -c 10.30.170.106 -t -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633'.</msg>
<msg time="2026-10-20T01:27:46.999963" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-10-20T01:27:47.000769" level="INFO">${stdout} = </msg>
<msg time="2026-10-20T01:27:47.000866" level="INFO">${stderr} = cbench: controller benchmarking tool
   running in mode 'throughput'
   connecting to controller at 10.30.170.106: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-10-20T01:17:40.941078" elapsed="606.059840"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-10-20T01:27:47.001502" elapsed="0.000825"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-20T01:27:47.005174" level="INFO">cbench: controller benchmarking tool
   running in mode 'throughput'
   connecting to controller at 10.30.170.106: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.106. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
01:18:46.071 16  switches: flows:  515027 512132 516797 512866 514701 511963 519350 507044 500405 499500 494809 499998 498562 499331 503887 504016  total = 135.173133 per ms 
01:19:46.173 16  switches: flows:  537690 522618 527073 520424 526492 537649 530176 525804 531673 527243 525115 524549 526613 537946 527452 525156  total = 140.656255 per ms 
01:20:46.275 16  switches: flows:  495603 495775 493876 498334 498645 500274 497639 496218 497106 495963 500925 494314 500716 504578 491416 493479  total = 132.358167 per ms 
01:21:46.376 16  switches: flows:  489394 485984 483974 489088 494827 486327 490335 484136 487584 488140 483843 488792 486427 485536 488600 483526  total = 129.724068 per ms 
01:22:46.477 16  switches: flows:  495865 493434 494518 487882 485557 492818 493600 491337 495477 493304 498434 493832 490666 497328 481292 494829  total = 131.116583 per ms 
01:23:46.578 16  switches: flows:  501141 495150 496244 495093 495770 497988 492006 495198 500632 498045 496939 491124 494565 495881 493854 495985  total = 132.038753 per ms 
01:24:46.679 16  switches: flows:  487680 485545 486320 489888 492359 493906 488457 485971 492180 485488 491989 486196 492655 486708 485683 486015  total = 130.065193 per ms 
01:25:46.781 16  switches: flows:  466543 459511 461509 466203 466096 457297 464910 458789 468485 465079 465975 455517 460287 463724 460693 461257  total = 123.157297 per ms 
01:26:46.883 16  switches: flows:  443160 439415 441274 443752 444100 439434 445401 442404 448371 445162 443850 434967 437121 443490 447154 444443  total = 117.859693 per ms 
01:27:46.984 16  switches: flows:  450826 454810 450624 455933 448069 449836 453429 456696 452643 452633 453734 452445 451969 454819 451175 448469  total = 120.433266 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 117859.69/140656.25/128601.03/43372.99 responses/s</msg>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-20T01:27:47.002809" elapsed="0.002706"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="PASS" start="2026-10-20T01:27:47.006004" elapsed="0.000091"/>
</return>
<status status="PASS" start="2026-10-20T01:27:47.005729" elapsed="0.000442"/>
</branch>
<status status="PASS" start="2026-10-20T01:27:47.005676" elapsed="0.000548"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="NOT RUN" start="2026-10-20T01:27:47.006433" elapsed="0.000025"/>
</return>
<status status="NOT RUN" start="2026-10-20T01:27:47.006359" elapsed="0.000154"/>
</branch>
<status status="NOT RUN" start="2026-10-20T01:27:47.006327" elapsed="0.000230"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-10-20T01:27:47.006651" 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-10-20T01:27:47.008224" elapsed="0.000735"/>
</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-10-20T01:27:47.009345" elapsed="0.000352"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-10-20T01:27:47.009969" elapsed="0.000207"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-10-20T01:27:47.007329" elapsed="0.002975"/>
</kw>
<msg time="2026-10-20T01:27:47.010530" level="INFO">${output} = cbench: controller benchmarking tool
   running in mode 'throughput'
   connecting to controller at 10.30.170.106: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-10-20T01:17:40.318485" elapsed="606.692100"/>
</kw>
<status status="PASS" start="2026-10-20T01:17:40.318084" elapsed="606.692628"/>
</branch>
<status status="PASS" start="2026-10-20T01:17:40.317417" elapsed="606.693343"/>
</if>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-20T01:27:47.011776" level="INFO">cbench: controller benchmarking tool
   running in mode 'throughput'
   connecting to controller at 10.30.170.106: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.106. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
01:18:46.071 16  switches: flows:  515027 512132 516797 512866 514701 511963 519350 507044 500405 499500 494809 499998 498562 499331 503887 504016  total = 135.173133 per ms 
01:19:46.173 16  switches: flows:  537690 522618 527073 520424 526492 537649 530176 525804 531673 527243 525115 524549 526613 537946 527452 525156  total = 140.656255 per ms 
01:20:46.275 16  switches: flows:  495603 495775 493876 498334 498645 500274 497639 496218 497106 495963 500925 494314 500716 504578 491416 493479  total = 132.358167 per ms 
01:21:46.376 16  switches: flows:  489394 485984 483974 489088 494827 486327 490335 484136 487584 488140 483843 488792 486427 485536 488600 483526  total = 129.724068 per ms 
01:22:46.477 16  switches: flows:  495865 493434 494518 487882 485557 492818 493600 491337 495477 493304 498434 493832 490666 497328 481292 494829  total = 131.116583 per ms 
01:23:46.578 16  switches: flows:  501141 495150 496244 495093 495770 497988 492006 495198 500632 498045 496939 491124 494565 495881 493854 495985  total = 132.038753 per ms 
01:24:46.679 16  switches: flows:  487680 485545 486320 489888 492359 493906 488457 485971 492180 485488 491989 486196 492655 486708 485683 486015  total = 130.065193 per ms 
01:25:46.781 16  switches: flows:  466543 459511 461509 466203 466096 457297 464910 458789 468485 465079 465975 455517 460287 463724 460693 461257  total = 123.157297 per ms 
01:26:46.883 16  switches: flows:  443160 439415 441274 443752 444100 439434 445401 442404 448371 445162 443850 434967 437121 443490 447154 444443  total = 117.859693 per ms 
01:27:46.984 16  switches: flows:  450826 454810 450624 455933 448069 449836 453429 456696 452643 452633 453734 452445 451969 454819 451175 448469  total = 120.433266 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 117859.69/140656.25/128601.03/43372.99 responses/s</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-20T01:27:47.011148" elapsed="0.000781"/>
</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-10-20T01:27:47.012286" elapsed="0.000727"/>
</kw>
<kw name="Get Lines Containing String" owner="String">
<msg time="2026-10-20T01:27:47.013815" level="INFO">1 out of 23 lines matched.</msg>
<msg time="2026-10-20T01:27:47.013991" level="INFO">${result_line} = RESULT: 16 switches 9 tests min/max/avg/stdev = 117859.69/140656.25/128601.03/43372.99 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-10-20T01:27:47.013393" elapsed="0.000647"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-10-20T01:27:47.014903" level="INFO">@{results_list} = [ RESULT: | 16 | switches | 9 | tests | min/max/avg/stdev | = | 117859.69/140656.25/128601.03/43372.99 | 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-10-20T01:27:47.014400" elapsed="0.000556"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-20T01:27:47.016076" 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-10-20T01:27:47.015371" elapsed="0.000814"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-20T01:27:47.017308" level="INFO">117859.69/140656.25/128601.03/43372.99</msg>
<arg>${results_list[7]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-20T01:27:47.016626" elapsed="0.000793"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-10-20T01:27:47.018412" 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-10-20T01:27:47.017775" elapsed="0.000691"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-10-20T01:27:47.019530" level="INFO">@{result_value_list} = [ 117859.69 | 140656.25 | 128601.03 | 43372.99 ]</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-10-20T01:27:47.018898" elapsed="0.000686"/>
</kw>
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-10-20T01:27:47.020549" level="INFO">Length is 4.</msg>
<msg time="2026-10-20T01:27:47.020752" 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-10-20T01:27:47.019942" elapsed="0.000859"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-20T01:27:47.022553" level="INFO">min :: 117859.69</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-10-20T01:27:47.021658" elapsed="0.001039"/>
</kw>
<var name="${i}">0</var>
<status status="PASS" start="2026-10-20T01:27:47.021266" elapsed="0.001497"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-20T01:27:47.024232" level="INFO">max :: 140656.25</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-10-20T01:27:47.023310" elapsed="0.001055"/>
</kw>
<var name="${i}">1</var>
<status status="PASS" start="2026-10-20T01:27:47.022932" elapsed="0.001499"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-20T01:27:47.025925" level="INFO">avg :: 128601.03</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-10-20T01:27:47.025007" elapsed="0.001025"/>
</kw>
<var name="${i}">2</var>
<status status="PASS" start="2026-10-20T01:27:47.024650" elapsed="0.001448"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-20T01:27:47.027644" level="INFO">stdev :: 43372.99</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-10-20T01:27:47.026680" elapsed="0.001078"/>
</kw>
<var name="${i}">3</var>
<status status="PASS" start="2026-10-20T01:27:47.026286" elapsed="0.001539"/>
</iter>
<var>${i}</var>
<value>0</value>
<value>${num_stats}</value>
<status status="PASS" start="2026-10-20T01:27:47.020922" elapsed="0.006965"/>
</for>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-20T01:27:47.029086" level="INFO">${min} = 117859.69</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-10-20T01:27:47.028220" elapsed="0.000918"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-20T01:27:47.030354" level="INFO">${max} = 140656.25</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-10-20T01:27:47.029497" elapsed="0.000909"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-20T01:27:47.031626" level="INFO">${average} = 128601.03</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-10-20T01:27:47.030764" elapsed="0.000916"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-20T01:27:47.032859" level="INFO">${stdev} = 43372.99</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-10-20T01:27:47.031996" elapsed="0.000916"/>
</kw>
<kw name="Get Time" owner="BuiltIn">
<msg time="2026-10-20T01:27:47.034053" level="INFO">${date} = 2026-10-20 01:27:47</msg>
<var>${date}</var>
<arg>d,m,s</arg>
<doc>Returns the given time in the requested format.</doc>
<status status="PASS" start="2026-10-20T01:27:47.033327" elapsed="0.000777"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-20T01:27:47.035334" level="INFO">CBench Result: 2026-10-20 01:27:47,-t -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633,117859.69,140656.25,128601.03,43372.99</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-10-20T01:27:47.034523" elapsed="0.000935"/>
</kw>
<kw name="Log Results And Determine Status">
<kw name="Append To File" owner="OperatingSystem">
<msg time="2026-10-20T01:27:47.037643" 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-10-20T01:27:47.036657" elapsed="0.001135"/>
</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-10-20T01:27:47.038142" elapsed="0.001263"/>
</kw>
<arg>${min}</arg>
<arg>${max}</arg>
<arg>${average}</arg>
<arg>${average_threshold}</arg>
<arg>${output_filename}</arg>
<status status="PASS" start="2026-10-20T01:27:47.035752" elapsed="0.003784"/>
</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-10-20T01:17:40.315786" elapsed="606.723904"/>
</kw>
<kw name="Sleep" owner="BuiltIn">
<msg time="2026-10-20T01:27:47.040709" level="INFO">Slept 0 seconds.</msg>
<arg>${test_delay}</arg>
<doc>Pauses execution for the given time.</doc>
<status status="PASS" start="2026-10-20T01:27:47.040005" elapsed="0.000821"/>
</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-10-20T01:27:47.041910" elapsed="0.000569"/>
</kw>
<status status="PASS" start="2026-10-20T01:27:47.041222" elapsed="0.001427"/>
</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-10-20T01:17:40.312975" elapsed="606.729750"/>
</test>
<test id="s1-t3" name="Rerun Latency Test To Check Bug 6176" line="65">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-20T01:27:47.045504" 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-10-20T01:27:47.044810" elapsed="0.000847"/>
</kw>
<kw name="Run Cbench And Log Results">
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-10-20T01:27:47.048052" 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-10-20T01:27:47.047377" elapsed="0.000759"/>
</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-10-20T01:27:47.048865" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-10-20T01:27:47.048375" elapsed="0.000607"/>
</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-10-20T01:27:47.051329" elapsed="0.000045"/>
</kw>
<status status="NOT RUN" start="2026-10-20T01:27:47.050836" elapsed="0.000607"/>
</branch>
<status status="PASS" start="2026-10-20T01:27:47.050799" elapsed="0.000694"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-10-20T01:27:47.052289" 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-10-20T01:27:47.052525" 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-10-20T01:27:47.051903" elapsed="0.000676"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-20T01:27:47.053752" level="INFO">Attempting to execute command "/usr/local/bin/cbench -c 10.30.170.106 -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633" on remote system "10.30.170.213" 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-10-20T01:27:47.052992" elapsed="0.000876"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-10-20T01:27:47.054963" 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-10-20T01:27:47.054218" elapsed="0.000797"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-10-20T01:27:47.056853" level="INFO">Length is 0.</msg>
<msg time="2026-10-20T01:27:47.057024" 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-10-20T01:27:47.056197" elapsed="0.000874"/>
</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-10-20T01:27:47.057376" elapsed="0.000676"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-10-20T01:27:47.059812" level="INFO">Logging into '10.30.170.213:22' as 'jenkins'.</msg>
<msg time="2026-10-20T01:27:47.669307" 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 Tue Oct 20 01:27:47 UTC 2026

  System load:  0.42               Processes:             104
  Usage of /:   19.8% of 38.58GB   Users logged in:       0
  Memory usage: 4%                 IPv4 address for ens3: 10.30.170.213
  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: Tue Oct 20 01:17:40 2026 from 10.30.171.114
[?2004h[jenkins@releng-00446-122-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-10-20T01:27:47.059267" elapsed="0.610191"/>
</kw>
<msg time="2026-10-20T01:27:47.669557" 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-10-20T01:27:47.058393" elapsed="0.611279"/>
</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-10-20T01:27:47.055428" elapsed="0.614381"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-20T01:27:47.670228" level="INFO">Executing command '/usr/local/bin/cbench -c 10.30.170.106 -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633'.</msg>
<msg time="2026-10-20T01:37:53.998589" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-10-20T01:37:53.999074" level="INFO">${stdout} = </msg>
<msg time="2026-10-20T01:37:53.999163" level="INFO">${stderr} = cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.170.106:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with 10...</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-10-20T01:27:47.670030" elapsed="606.329186"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-10-20T01:37:53.999707" elapsed="0.000643"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-20T01:37:54.001535" level="INFO">cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.170.106: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.106. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
01:28:53.080 16  switches: flows:  94900 91878 94323 94242 91761 94070 90612 91781 92323 91647 88344 90411 88341 91877 95025 90428  total = 24.532717 per ms 
01:29:53.181 16  switches: flows:  93734 92120 92601 92159 91652 91622 88988 90221 89508 92064 89689 87882 87335 87863 93010 89362  total = 24.123217 per ms 
01:30:53.283 16  switches: flows:  93843 91558 93935 93826 92260 93415 89536 90570 89297 92987 89508 88746 88971 89557 92881 89686  total = 24.302370 per ms 
01:31:53.383 16  switches: flows:  95520 93796 93485 94218 92796 92893 90528 90809 89408 93702 91149 89576 90051 89045 94586 89576  total = 24.478103 per ms 
01:32:53.484 16  switches: flows:  98201 94952 94527 94978 93537 92846 91019 92600 91314 93889 92417 90646 89154 90160 95779 91261  total = 24.746327 per ms 
01:33:53.586 16  switches: flows:  95429 94340 94213 95222 93180 92581 90820 91196 89962 94571 90787 90317 89130 90037 95851 90630  total = 24.596716 per ms 
01:34:53.687 16  switches: flows:  98367 96040 97075 97754 95190 96860 93416 94852 94309 95364 92449 92928 92904 92514 97749 93128  total = 25.305700 per ms 
01:35:53.787 16  switches: flows:  97882 95392 94657 94616 95133 96066 92335 93435 92399 95278 91823 90925 90889 91633 95221 91387  total = 24.942894 per ms 
01:36:53.887 16  switches: flows:  96186 94119 94315 94475 93907 94009 90414 93827 91277 93786 91894 90487 89880 89804 94287 89677  total = 24.664580 per ms 
01:37:53.987 16  switches: flows:  95485 93592 92611 94534 92283 92059 89890 91920 91576 94180 90900 90067 90388 90543 92767 90587  total = 24.515449 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 24123.22/25305.70/24630.60/8216.76 responses/s</msg>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-20T01:37:54.000854" elapsed="0.001007"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="PASS" start="2026-10-20T01:37:54.002310" elapsed="0.000071"/>
</return>
<status status="PASS" start="2026-10-20T01:37:54.002033" elapsed="0.000421"/>
</branch>
<status status="PASS" start="2026-10-20T01:37:54.001981" elapsed="0.000525"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="NOT RUN" start="2026-10-20T01:37:54.002886" elapsed="0.000025"/>
</return>
<status status="NOT RUN" start="2026-10-20T01:37:54.002805" elapsed="0.000180"/>
</branch>
<status status="NOT RUN" start="2026-10-20T01:37:54.002589" elapsed="0.000441"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-10-20T01:37:54.003090" 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-10-20T01:37:54.005015" elapsed="0.000903"/>
</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-10-20T01:37:54.006283" elapsed="0.000375"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-10-20T01:37:54.006934" elapsed="0.000193"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-10-20T01:37:54.003772" elapsed="0.003460"/>
</kw>
<msg time="2026-10-20T01:37:54.007456" level="INFO">${output} = cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.170.106:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with 10...</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-10-20T01:27:47.049715" elapsed="606.957795"/>
</kw>
<status status="PASS" start="2026-10-20T01:27:47.049034" elapsed="606.958618"/>
</branch>
<status status="PASS" start="2026-10-20T01:27:47.048331" elapsed="606.959375"/>
</if>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-20T01:37:54.008739" level="INFO">cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.170.106: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.106. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
01:28:53.080 16  switches: flows:  94900 91878 94323 94242 91761 94070 90612 91781 92323 91647 88344 90411 88341 91877 95025 90428  total = 24.532717 per ms 
01:29:53.181 16  switches: flows:  93734 92120 92601 92159 91652 91622 88988 90221 89508 92064 89689 87882 87335 87863 93010 89362  total = 24.123217 per ms 
01:30:53.283 16  switches: flows:  93843 91558 93935 93826 92260 93415 89536 90570 89297 92987 89508 88746 88971 89557 92881 89686  total = 24.302370 per ms 
01:31:53.383 16  switches: flows:  95520 93796 93485 94218 92796 92893 90528 90809 89408 93702 91149 89576 90051 89045 94586 89576  total = 24.478103 per ms 
01:32:53.484 16  switches: flows:  98201 94952 94527 94978 93537 92846 91019 92600 91314 93889 92417 90646 89154 90160 95779 91261  total = 24.746327 per ms 
01:33:53.586 16  switches: flows:  95429 94340 94213 95222 93180 92581 90820 91196 89962 94571 90787 90317 89130 90037 95851 90630  total = 24.596716 per ms 
01:34:53.687 16  switches: flows:  98367 96040 97075 97754 95190 96860 93416 94852 94309 95364 92449 92928 92904 92514 97749 93128  total = 25.305700 per ms 
01:35:53.787 16  switches: flows:  97882 95392 94657 94616 95133 96066 92335 93435 92399 95278 91823 90925 90889 91633 95221 91387  total = 24.942894 per ms 
01:36:53.887 16  switches: flows:  96186 94119 94315 94475 93907 94009 90414 93827 91277 93786 91894 90487 89880 89804 94287 89677  total = 24.664580 per ms 
01:37:53.987 16  switches: flows:  95485 93592 92611 94534 92283 92059 89890 91920 91576 94180 90900 90067 90388 90543 92767 90587  total = 24.515449 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 24123.22/25305.70/24630.60/8216.76 responses/s</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-20T01:37:54.008124" elapsed="0.000766"/>
</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-10-20T01:37:54.009232" elapsed="0.000756"/>
</kw>
<kw name="Get Lines Containing String" owner="String">
<msg time="2026-10-20T01:37:54.010792" level="INFO">1 out of 23 lines matched.</msg>
<msg time="2026-10-20T01:37:54.010970" level="INFO">${result_line} = RESULT: 16 switches 9 tests min/max/avg/stdev = 24123.22/25305.70/24630.60/8216.76 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-10-20T01:37:54.010349" elapsed="0.000669"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-10-20T01:37:54.011954" level="INFO">@{results_list} = [ RESULT: | 16 | switches | 9 | tests | min/max/avg/stdev | = | 24123.22/25305.70/24630.60/8216.76 | 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-10-20T01:37:54.011359" elapsed="0.000650"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-20T01:37:54.013131" 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-10-20T01:37:54.012404" elapsed="0.000834"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-20T01:37:54.014337" level="INFO">24123.22/25305.70/24630.60/8216.76</msg>
<arg>${results_list[7]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-20T01:37:54.013679" elapsed="0.000767"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-10-20T01:37:54.015432" 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-10-20T01:37:54.014826" elapsed="0.000659"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-10-20T01:37:54.016541" level="INFO">@{result_value_list} = [ 24123.22 | 25305.70 | 24630.60 | 8216.76 ]</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-10-20T01:37:54.015938" elapsed="0.000704"/>
</kw>
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-10-20T01:37:54.017656" level="INFO">Length is 4.</msg>
<msg time="2026-10-20T01:37:54.017837" 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-10-20T01:37:54.017000" elapsed="0.000889"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-20T01:37:54.019691" level="INFO">min :: 24123.22</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-10-20T01:37:54.018755" elapsed="0.001050"/>
</kw>
<var name="${i}">0</var>
<status status="PASS" start="2026-10-20T01:37:54.018342" elapsed="0.001529"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-20T01:37:54.021331" level="INFO">max :: 25305.70</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-10-20T01:37:54.020395" elapsed="0.001044"/>
</kw>
<var name="${i}">1</var>
<status status="PASS" start="2026-10-20T01:37:54.020040" elapsed="0.001464"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-20T01:37:54.022997" level="INFO">avg :: 24630.60</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-10-20T01:37:54.022077" elapsed="0.001028"/>
</kw>
<var name="${i}">2</var>
<status status="PASS" start="2026-10-20T01:37:54.021713" elapsed="0.001457"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-20T01:37:54.024646" level="INFO">stdev :: 8216.76</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-10-20T01:37:54.023741" elapsed="0.001021"/>
</kw>
<var name="${i}">3</var>
<status status="PASS" start="2026-10-20T01:37:54.023330" elapsed="0.001497"/>
</iter>
<var>${i}</var>
<value>0</value>
<value>${num_stats}</value>
<status status="PASS" start="2026-10-20T01:37:54.018014" elapsed="0.006872"/>
</for>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-20T01:37:54.026088" level="INFO">${min} = 24123.22</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-10-20T01:37:54.025223" elapsed="0.000918"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-20T01:37:54.027422" level="INFO">${max} = 25305.70</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-10-20T01:37:54.026462" elapsed="0.001012"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-20T01:37:54.028688" level="INFO">${average} = 24630.60</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-10-20T01:37:54.027844" elapsed="0.000899"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-20T01:37:54.029914" level="INFO">${stdev} = 8216.76</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-10-20T01:37:54.029060" elapsed="0.000905"/>
</kw>
<kw name="Get Time" owner="BuiltIn">
<msg time="2026-10-20T01:37:54.031109" level="INFO">${date} = 2026-10-20 01:37:54</msg>
<var>${date}</var>
<arg>d,m,s</arg>
<doc>Returns the given time in the requested format.</doc>
<status status="PASS" start="2026-10-20T01:37:54.030371" elapsed="0.000789"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-20T01:37:54.032302" level="INFO">CBench Result: 2026-10-20 01:37:54,-m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633,24123.22,25305.70,24630.60,8216.76</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-10-20T01:37:54.031562" elapsed="0.000852"/>
</kw>
<kw name="Log Results And Determine Status">
<kw name="Append To File" owner="OperatingSystem">
<msg time="2026-10-20T01:37:54.034382" 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-10-20T01:37:54.033584" elapsed="0.000935"/>
</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-10-20T01:37:54.034921" elapsed="0.000893"/>
</kw>
<arg>${min}</arg>
<arg>${max}</arg>
<arg>${average}</arg>
<arg>${average_threshold}</arg>
<arg>${output_filename}</arg>
<status status="PASS" start="2026-10-20T01:37:54.032731" elapsed="0.003211"/>
</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-10-20T01:27:47.046329" elapsed="606.989728"/>
</kw>
<kw name="Sleep" owner="BuiltIn">
<msg time="2026-10-20T01:37:54.037077" level="INFO">Slept 0 seconds.</msg>
<arg>${test_delay}</arg>
<doc>Pauses execution for the given time.</doc>
<status status="PASS" start="2026-10-20T01:37:54.036364" elapsed="0.000826"/>
</kw>
<kw name="Report Failure Due To Bug" owner="Utils" type="TEARDOWN">
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-20T01:37:54.040266" 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-10-20T01:37:54.039229" elapsed="0.001092"/>
</kw>
<if>
<branch type="IF" condition="('${TEST_STATUS}' != 'FAIL') or ${test_skipped}">
<return>
<status status="PASS" start="2026-10-20T01:37:54.040763" elapsed="0.000060"/>
</return>
<status status="PASS" start="2026-10-20T01:37:54.040468" elapsed="0.000426"/>
</branch>
<status status="PASS" start="2026-10-20T01:37:54.040428" elapsed="0.000523"/>
</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-10-20T01:37:54.041178" elapsed="0.000027"/>
</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-10-20T01:37:54.041380" elapsed="0.000026"/>
</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-10-20T01:37:54.041692" elapsed="0.000028"/>
</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-10-20T01:37:54.041901" elapsed="0.000024"/>
</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-10-20T01:37:54.042165" elapsed="0.000026"/>
</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-10-20T01:37:54.042365" elapsed="0.000024"/>
</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-10-20T01:37:54.042766" elapsed="0.000034"/>
</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-10-20T01:37:54.043068" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-10-20T01:37:54.042883" elapsed="0.000248"/>
</branch>
<status status="NOT RUN" start="2026-10-20T01:37:54.042862" elapsed="0.000299"/>
</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-10-20T01:37:54.038324" elapsed="0.004900"/>
</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-10-20T01:27:47.043539" elapsed="606.999742"/>
</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-10-20T01:07:31.457281" elapsed="1822.586902"/>
</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>
