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

[?1h=[90m~[0m                                                                                [?2004hopendaylight-user</msg>
<arg>${KARAF_USER}</arg>
<arg>${KARAF_PASSWORD}</arg>
<arg>loglevel=${loglevel}</arg>
<doc>Logs into the SSH server with the given ``username`` and ``password``.</doc>
<status status="PASS" start="2026-09-19T02:36:09.611385" elapsed="0.936754"/>
</kw>
<kw name="Write" owner="SSHLibrary">
<msg time="2026-09-19T02:36:10.597225" level="INFO">@root&gt;log:set ERROR</msg>
<arg>${cmd}</arg>
<doc>Writes the given ``text`` on the remote machine and appends a newline.</doc>
<status status="PASS" start="2026-09-19T02:36:10.548454" elapsed="0.048912"/>
</kw>
<kw name="Read Until Regexp" owner="SSHLibrary">
<msg time="2026-09-19T02:36:10.599411" level="INFO">[?1l&gt;[?2004l[?1h=[90m~[0m                                                                                [?2004hopendaylight-user@root&gt;</msg>
<msg time="2026-09-19T02:36:10.599523" level="INFO">${output} = [?1l&gt;[?2004l[?1h=[90m~[0m                                                                                [?2004hopendaylight-user@root&gt;</msg>
<var>${output}</var>
<arg>${KARAF_PROMPT}</arg>
<doc>Consumes and returns the server output until a match to ``regexp`` is found.</doc>
<status status="PASS" start="2026-09-19T02:36:10.597667" elapsed="0.001886"/>
</kw>
<kw name="Write Bare" owner="SSHLibrary">
<arg>logout\n</arg>
<doc>Writes the given ``text`` on the remote machine without appending a newline.</doc>
<status status="PASS" start="2026-09-19T02:36:10.599735" elapsed="0.000263"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-09-19T02:36:10.600674" elapsed="0.000272"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-19T02:36:10.601708" level="INFO">[?1l&gt;[?2004l[?1h=[90m~[0m                                                                                [?2004hopendaylight-user@root&gt;</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-19T02:36:10.601171" elapsed="0.000631"/>
</kw>
<return>
<value>${output}</value>
<status status="PASS" start="2026-09-19T02:36:10.601861" elapsed="0.000054"/>
</return>
<arg>log:set ${log_level}</arg>
<doc>Will execute the given ${cmd} by ssh'ing to the karaf console running on 10.30.171.205
Note that this keyword will open&amp;close new SSH connection, without switching back to previously current session.</doc>
<status status="PASS" start="2026-09-19T02:36:09.609925" elapsed="0.992119"/>
</kw>
<arg>3x</arg>
<arg>1s</arg>
<arg>KarafKeywords.Issue Command On Karaf Console</arg>
<arg>log:set ${log_level}</arg>
<doc>Runs the specified keyword and retries if it fails.</doc>
<status status="PASS" start="2026-09-19T02:36:09.608036" elapsed="0.994071"/>
</kw>
<kw name="Append To File" owner="OperatingSystem">
<msg time="2026-09-19T02:36:10.602738" level="INFO" html="true">Appended to file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-cbench-only-chromium/latency.csv"&gt;/w/workspace/openflowplugin-csit-1node-cbench-only-chromium/latency.csv&lt;/a&gt;'.</msg>
<arg>${latency_results_file}</arg>
<arg>LATENCY_MIN,LATENCY_MAX,LATENCY_AVERAGE\n</arg>
<doc>Appends the given content to the specified file.</doc>
<status status="PASS" start="2026-09-19T02:36:10.602303" elapsed="0.000495"/>
</kw>
<kw name="Append To File" owner="OperatingSystem">
<msg time="2026-09-19T02:36:10.603254" level="INFO" html="true">Appended to file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-cbench-only-chromium/throughput.csv"&gt;/w/workspace/openflowplugin-csit-1node-cbench-only-chromium/throughput.csv&lt;/a&gt;'.</msg>
<arg>${throughput_results_file}</arg>
<arg>THROUGHPUT_MIN,THROUGHPUT_MAX,THROUGHPUT_AVERAGE\n</arg>
<doc>Appends the given content to the specified file.</doc>
<status status="PASS" start="2026-09-19T02:36:10.602956" elapsed="0.000354"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-09-19T02:36:10.603941" level="INFO">${duration_in_ms} = 60000</msg>
<var>${duration_in_ms}</var>
<arg>${duration_in_secs} * 1000</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-09-19T02:36:10.603482" elapsed="0.000487"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-09-19T02:36:10.604499" level="INFO">${duration_in_ms} = 60000</msg>
<arg>${duration_in_ms}</arg>
<doc>Makes the variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-09-19T02:36:10.604186" elapsed="0.000356"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-09-19T02:36:10.605086" level="INFO">${test_timeout} = 900.0</msg>
<var>${test_timeout}</var>
<arg>(${loops} * ${duration_in_secs}) * 1.5</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-09-19T02:36:10.604730" elapsed="0.000383"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-09-19T02:36:10.605629" level="INFO">${test_timeout} = 900.0</msg>
<arg>${test_timeout}</arg>
<doc>Makes the variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-09-19T02:36:10.605302" elapsed="0.000371"/>
</kw>
<if>
<branch type="IF" condition="&quot;${cbench_system}&quot; == &quot;localhost&quot;">
<kw name="File Should Exist" owner="OperatingSystem">
<arg>${cbench_executable}</arg>
<doc>Fails unless the given `path` points to an existing file.</doc>
<status status="NOT RUN" start="2026-09-19T02:36:10.605953" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-09-19T02:36:10.605757" elapsed="0.000249"/>
</branch>
<branch type="ELSE">
<kw name="Verify File Exists On Remote System" owner="Utils">
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-09-19T02:36:10.608443" level="INFO">${conn_id} = 2</msg>
<var>${conn_id}</var>
<arg>${system}</arg>
<arg>prompt=${prompt}</arg>
<arg>timeout=${prompt_timeout}</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-09-19T02:36:10.608081" elapsed="0.000389"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-09-19T02:36:10.609649" level="INFO">Length is 0.</msg>
<msg time="2026-09-19T02:36:10.609734" level="INFO">${pwd_length} = 0</msg>
<var>${pwd_length}</var>
<arg>${password}</arg>
<doc>Returns and logs the length of the given item as an integer.</doc>
<status status="PASS" start="2026-09-19T02:36:10.609006" elapsed="0.000753"/>
</kw>
<kw name="Run Keyword And Return If" owner="BuiltIn">
<arg>${pwd_length} &gt; 0</arg>
<arg>SSHLibrary.Login</arg>
<arg>${user}</arg>
<arg>${password}</arg>
<arg>delay=${delay}</arg>
<doc>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-09-19T02:36:10.609922" elapsed="0.000363"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-09-19T02:36:10.611145" level="INFO">Logging into '10.30.171.73:22' as 'jenkins'.</msg>
<msg time="2026-09-19T02:36:11.106740" 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 Sat Sep 19 02:35:40 UTC 2026

  System load:  0.45               Processes:             111
  Usage of /:   19.8% of 38.58GB   Users logged in:       0
  Memory usage: 4%                 IPv4 address for ens3: 10.30.171.73
  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-90-1-mininet-ovs-217-0 ~]&gt;</msg>
<arg>${user}</arg>
<arg>${USER_HOME}/.ssh/${SSH_KEY}</arg>
<arg>${KEYFILE_PASS}</arg>
<arg>delay=${delay}</arg>
<doc>Logs into the SSH server using key-based authentication.</doc>
<status status="PASS" start="2026-09-19T02:36:10.610849" elapsed="0.496057"/>
</kw>
<msg time="2026-09-19T02:36:11.106995" level="INFO">Returning from the enclosing user keyword.</msg>
<arg>SSHLibrary.Login With Public Key</arg>
<arg>${user}</arg>
<arg>${USER_HOME}/.ssh/${SSH_KEY}</arg>
<arg>${KEYFILE_PASS}</arg>
<arg>delay=${delay}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-09-19T02:36:10.610442" elapsed="0.496664"/>
</kw>
<arg>${user}</arg>
<arg>${password}</arg>
<doc>On active SSH session: if given non-empty password, do Login, else do Login With Public Key.</doc>
<status status="PASS" start="2026-09-19T02:36:10.608680" elapsed="0.498548"/>
</kw>
<kw name="File Should Exist" owner="SSHLibrary">
<msg time="2026-09-19T02:36:11.115312" level="INFO">[chan 1] Opened sftp connection (server version 3)</msg>
<arg>${file}</arg>
<doc>Fails if the given ``path`` does NOT point to an existing file.</doc>
<status status="PASS" start="2026-09-19T02:36:11.107431" elapsed="0.009795"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-09-19T02:36:11.117526" elapsed="0.000460"/>
</kw>
<arg>${cbench_system}</arg>
<arg>${cbench_executable}</arg>
<doc>Will create connection with public key and will PASS if the given ${file} exists,
otherwise will FAIL</doc>
<status status="PASS" start="2026-09-19T02:36:10.607559" elapsed="0.510548"/>
</kw>
<status status="PASS" start="2026-09-19T02:36:10.606279" elapsed="0.511882"/>
</branch>
<status status="PASS" start="2026-09-19T02:36:10.605731" elapsed="0.512474"/>
</if>
<kw name="Should Be True" owner="BuiltIn">
<arg>${loops} &gt;= 2</arg>
<arg>If number of loops is less than 2, cbench will not run</arg>
<doc>Fails if the given condition is not true.</doc>
<status status="PASS" start="2026-09-19T02:36:11.118469" elapsed="0.000671"/>
</kw>
<kw name="Verify_Feature_Is_Installed" owner="KarafKeywords">
<if>
<branch type="IF" condition="'${IS_KARAF_APPL}' == 'False'">
<return>
<value>Not A Karaf App</value>
<status status="NOT RUN" start="2026-09-19T02:36:11.121940" elapsed="0.000026"/>
</return>
<status status="NOT RUN" start="2026-09-19T02:36:11.121794" elapsed="0.000220"/>
</branch>
<status status="PASS" start="2026-09-19T02:36:11.121760" elapsed="0.000308"/>
</if>
<kw name="Issue_Command_On_Karaf_Console" owner="KarafKeywords">
<if>
<branch type="IF" condition="'${IS_KARAF_APPL}' == 'False'">
<return>
<value>Not A Karaf App</value>
<status status="NOT RUN" start="2026-09-19T02:36:11.124333" elapsed="0.000020"/>
</return>
<status status="NOT RUN" start="2026-09-19T02:36:11.124194" elapsed="0.000204"/>
</branch>
<status status="PASS" start="2026-09-19T02:36:11.124167" elapsed="0.000264"/>
</if>
<kw name="Open Connection" owner="SSHLibrary">
<arg>${controller}</arg>
<arg>port=${karaf_port}</arg>
<arg>prompt=${KARAF_PROMPT_LOGIN}</arg>
<arg>timeout=${timeout}</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-09-19T02:36:11.124709" elapsed="0.000576"/>
</kw>
<kw name="Login" owner="SSHLibrary">
<msg time="2026-09-19T02:36:11.125902" level="INFO">Logging into '10.30.171.205:8101' as 'karaf'.</msg>
<msg time="2026-09-19T02:36:11.340236" level="INFO">Read output: [33m                                                                                           
[33m    ________                       ________                .__  .__       .__     __       
[33m    \_____  \ ______   ____   ____ \______ \ _____  ___.__.|  | |__| ____ |  |___/  |_     
[33m     /   |   \\____ \_/ __ \ /    \ |    |  \\__  \&lt;   |  ||  | |  |/ ___\|  |  \   __\    
[33m    /    |    \  |_&gt; &gt;  ___/|   |  \|    `   \/ __ \\___  ||  |_|  / /_/  &gt;   Y  \  |      
[33m    \_______  /   __/ \___  &gt;___|  /_______  (____  / ____||____/__\___  /|___|  /__|      
[33m            \/|__|        \/     \/        \/     \/\/            /_____/      \/          
[33m                                                                                           

Hit '[1m&lt;tab&gt;[0m' for a list of available commands
and '[1m[cmd] --help[0m' for help on a specific command.
Hit '[1m&lt;ctrl-d&gt;[0m' or type '[1msystem:shutdown[0m' or '[1mlogout[0m' to shutdown OpenDaylight.

[?1h=[90m~[0m                                                                                [?2004hopendaylight-user</msg>
<arg>${KARAF_USER}</arg>
<arg>${KARAF_PASSWORD}</arg>
<arg>loglevel=${loglevel}</arg>
<doc>Logs into the SSH server with the given ``username`` and ``password``.</doc>
<status status="PASS" start="2026-09-19T02:36:11.125566" elapsed="0.214868"/>
</kw>
<kw name="Write" owner="SSHLibrary">
<msg time="2026-09-19T02:36:11.451115" level="INFO">@root&gt;feature:list -i | 0[C 0g[Krep odl-openflowplugin-drop-test</msg>
<arg>${cmd}</arg>
<doc>Writes the given ``text`` on the remote machine and appends a newline.</doc>
<status status="PASS" start="2026-09-19T02:36:11.340731" elapsed="0.110531"/>
</kw>
<kw name="Read Until Regexp" owner="SSHLibrary">
<msg time="2026-09-19T02:36:11.455739" level="INFO">[?1l&gt;[?2004l[31;1modl-openflowplugin-drop-test[0m                                    x 1.0.2            x x        x Started x [31;1modl-openflowplugin-drop-test[0m                                    x OpenDaylight :: Openflow Plugin :: Drop Test
[?1h=[90m~[0m                                                                                [?2004hopendaylight-user@root&gt;</msg>
<msg time="2026-09-19T02:36:11.455955" level="INFO">${output} = [?1l&gt;[?2004l[31;1modl-openflowplugin-drop-test[0m                                    x 1.0.2            x x        x Started x [31;1modl-openflowplugin-drop-test[0m                     ...</msg>
<var>${output}</var>
<arg>${KARAF_PROMPT}</arg>
<doc>Consumes and returns the server output until a match to ``regexp`` is found.</doc>
<status status="PASS" start="2026-09-19T02:36:11.451520" elapsed="0.004467"/>
</kw>
<kw name="Write Bare" owner="SSHLibrary">
<arg>logout\n</arg>
<doc>Writes the given ``text`` on the remote machine without appending a newline.</doc>
<status status="PASS" start="2026-09-19T02:36:11.456143" elapsed="0.000198"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-09-19T02:36:11.456486" elapsed="0.000199"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-19T02:36:11.457207" level="INFO">[?1l&gt;[?2004l[31;1modl-openflowplugin-drop-test[0m                                    x 1.0.2            x x        x Started x [31;1modl-openflowplugin-drop-test[0m                                    x OpenDaylight :: Openflow Plugin :: Drop Test
[?1h=[90m~[0m                                                                                [?2004hopendaylight-user@root&gt;</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-19T02:36:11.456861" elapsed="0.000402"/>
</kw>
<return>
<value>${output}</value>
<status status="PASS" start="2026-09-19T02:36:11.457309" elapsed="0.000050"/>
</return>
<msg time="2026-09-19T02:36:11.457487" 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.171.205
Note that this keyword will open&amp;close new SSH connection, without switching back to previously current session.</doc>
<status status="PASS" start="2026-09-19T02:36:11.123734" elapsed="0.333785"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${output}</arg>
<arg>${feature_name}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-09-19T02:36:11.457698" elapsed="0.000577"/>
</kw>
<return>
<value>${output}</value>
<status status="PASS" start="2026-09-19T02:36:11.458338" elapsed="0.000041"/>
</return>
<arg>odl-openflowplugin-drop-test</arg>
<doc>Will Succeed if the given ${feature_name} is found in the output of "feature:list -i"</doc>
<status status="PASS" start="2026-09-19T02:36:11.121385" elapsed="0.337080"/>
</kw>
<kw name="Issue_Command_On_Karaf_Console" owner="KarafKeywords">
<if>
<branch type="IF" condition="'${IS_KARAF_APPL}' == 'False'">
<return>
<value>Not A Karaf App</value>
<status status="NOT RUN" start="2026-09-19T02:36:11.460219" elapsed="0.000014"/>
</return>
<status status="NOT RUN" start="2026-09-19T02:36:11.460102" elapsed="0.000160"/>
</branch>
<status status="PASS" start="2026-09-19T02:36:11.460078" elapsed="0.000207"/>
</if>
<kw name="Open Connection" owner="SSHLibrary">
<arg>${controller}</arg>
<arg>port=${karaf_port}</arg>
<arg>prompt=${KARAF_PROMPT_LOGIN}</arg>
<arg>timeout=${timeout}</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-09-19T02:36:11.460513" elapsed="0.000450"/>
</kw>
<kw name="Login" owner="SSHLibrary">
<msg time="2026-09-19T02:36:11.461369" level="INFO">Logging into '10.30.171.205:8101' as 'karaf'.</msg>
<msg time="2026-09-19T02:36:11.632526" level="INFO">Read output: [33m                                                                                           
[33m    ________                       ________                .__  .__       .__     __       
[33m    \_____  \ ______   ____   ____ \______ \ _____  ___.__.|  | |__| ____ |  |___/  |_     
[33m     /   |   \\____ \_/ __ \ /    \ |    |  \\__  \&lt;   |  ||  | |  |/ ___\|  |  \   __\    
[33m    /    |    \  |_&gt; &gt;  ___/|   |  \|    `   \/ __ \\___  ||  |_|  / /_/  &gt;   Y  \  |      
[33m    \_______  /   __/ \___  &gt;___|  /_______  (____  / ____||____/__\___  /|___|  /__|      
[33m            \/|__|        \/     \/        \/     \/\/            /_____/      \/          
[33m                                                                                           

Hit '[1m&lt;tab&gt;[0m' for a list of available commands
and '[1m[cmd] --help[0m' for help on a specific command.
Hit '[1m&lt;ctrl-d&gt;[0m' or type '[1msystem:shutdown[0m' or '[1mlogout[0m' to shutdown OpenDaylight.

[?1h=[90m~[0m                                                                                [?2004hopendaylight-user</msg>
<arg>${KARAF_USER}</arg>
<arg>${KARAF_PASSWORD}</arg>
<arg>loglevel=${loglevel}</arg>
<doc>Logs into the SSH server with the given ``username`` and ``password``.</doc>
<status status="PASS" start="2026-09-19T02:36:11.461160" elapsed="0.171550"/>
</kw>
<kw name="Write" owner="SSHLibrary">
<msg time="2026-09-19T02:36:11.660179" level="INFO">@root&gt;dropallpacketsrpc on</msg>
<arg>${cmd}</arg>
<doc>Writes the given ``text`` on the remote machine and appends a newline.</doc>
<status status="PASS" start="2026-09-19T02:36:11.632993" elapsed="0.027248"/>
</kw>
<kw name="Read Until Regexp" owner="SSHLibrary">
<msg time="2026-09-19T02:36:11.662827" level="INFO">[?1l&gt;[?2004lDropAllFlows transitions to on
[?1h=[90m~[0m                                                                                [?2004hopendaylight-user@root&gt;</msg>
<msg time="2026-09-19T02:36:11.662942" level="INFO">${output} = [?1l&gt;[?2004lDropAllFlows transitions to on
[?1h=[90m~[0m                                                                                [?2004hopendaylight-user@root&gt;</msg>
<var>${output}</var>
<arg>${KARAF_PROMPT}</arg>
<doc>Consumes and returns the server output until a match to ``regexp`` is found.</doc>
<status status="PASS" start="2026-09-19T02:36:11.660409" elapsed="0.002562"/>
</kw>
<kw name="Write Bare" owner="SSHLibrary">
<arg>logout\n</arg>
<doc>Writes the given ``text`` on the remote machine without appending a newline.</doc>
<status status="PASS" start="2026-09-19T02:36:11.663134" elapsed="0.000176"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-09-19T02:36:11.663464" elapsed="0.000210"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-19T02:36:11.664207" level="INFO">[?1l&gt;[?2004lDropAllFlows transitions to on
[?1h=[90m~[0m                                                                                [?2004hopendaylight-user@root&gt;</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-19T02:36:11.663855" elapsed="0.000409"/>
</kw>
<return>
<value>${output}</value>
<status status="PASS" start="2026-09-19T02:36:11.664335" elapsed="0.000088"/>
</return>
<arg>dropallpacketsrpc on</arg>
<doc>Will execute the given ${cmd} by ssh'ing to the karaf console running on 10.30.171.205
Note that this keyword will open&amp;close new SSH connection, without switching back to previously current session.</doc>
<status status="PASS" start="2026-09-19T02:36:11.459790" elapsed="0.204757"/>
</kw>
<status status="PASS" start="2026-09-19T02:36:09.606048" elapsed="2.058586"/>
</kw>
<test id="s1-t1" name="Cbench Latency Test" line="37">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-19T02:36:11.666624" level="INFO">Cbench tests using 10 iterations of 60 second tests. Switch Count: 16. Unique MACS to cycle: 100</msg>
<arg>Cbench tests using ${loops} iterations of ${duration_in_secs} second tests. Switch Count: ${switch_count}. Unique MACS to cycle: ${num_of_unique_macs}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-19T02:36:11.665807" elapsed="0.000884"/>
</kw>
<kw name="Run Cbench And Log Results">
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-09-19T02:36:11.668270" level="INFO">${output_filename} = latency.csv</msg>
<arg>${output_filename}</arg>
<doc>Makes the variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-09-19T02:36:11.667913" elapsed="0.000399"/>
</kw>
<if>
<branch type="IF" condition="&quot;${cbench_system}&quot; == &quot;localhost&quot;">
<kw name="Run" owner="OperatingSystem">
<var>${output}</var>
<arg>${cbench_executable} -c ${ODL_SYSTEM_IP} ${cbench_args}</arg>
<doc>*This keyword is considered deprecated. Use the [Process] library instead.*</doc>
<status status="NOT RUN" start="2026-09-19T02:36:11.668653" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-09-19T02:36:11.668390" elapsed="0.000320"/>
</branch>
<branch type="ELSE">
<kw name="Run Command On Remote System" owner="Utils">
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot; and &quot;${return_stderr}&quot;!=&quot;True&quot;">
<kw name="Fail" owner="BuiltIn">
<arg>At least one of {return_stdout} or {return_stderr} args should be set to True</arg>
<doc>Fails the test or task with the given message and optionally alters its tags.</doc>
<status status="NOT RUN" start="2026-09-19T02:36:11.669835" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-09-19T02:36:11.669603" elapsed="0.000285"/>
</branch>
<status status="PASS" start="2026-09-19T02:36:11.669567" elapsed="0.000348"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-09-19T02:36:11.670369" level="INFO">index=None
host=None
alias=None
port=22
timeout=3 seconds
newline=

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

prompt=None
term_type=vt100
width=80
height=24
path_separator=/
encoding=utf8
escape_ansi=False
encoding_errors=strict</msg>
<var>${current_ssh_connection}</var>
<doc>Returns information about the connection.</doc>
<status status="PASS" start="2026-09-19T02:36:11.670113" elapsed="0.000417"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-19T02:36:11.671107" level="INFO">Attempting to execute command "/usr/local/bin/cbench -c 10.30.171.205 -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633" on remote system "10.30.171.73" by user "jenkins" with keyfile pass "any" and prompt "&gt;" and password ""</msg>
<arg>Attempting to execute command "${cmd}" on remote system "${system}" by user "${user}" with keyfile pass "${keyfile_pass}" and prompt "${prompt}" and password "${password}"</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-19T02:36:11.670740" elapsed="0.000427"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-09-19T02:36:11.671795" level="INFO">${conn_id} = 5</msg>
<var>${conn_id}</var>
<arg>${system}</arg>
<arg>prompt=${prompt}</arg>
<arg>timeout=${prompt_timeout}</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-09-19T02:36:11.671346" elapsed="0.000474"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-09-19T02:36:11.672712" level="INFO">Length is 0.</msg>
<msg time="2026-09-19T02:36:11.672798" level="INFO">${pwd_length} = 0</msg>
<var>${pwd_length}</var>
<arg>${password}</arg>
<doc>Returns and logs the length of the given item as an integer.</doc>
<status status="PASS" start="2026-09-19T02:36:11.672380" elapsed="0.000443"/>
</kw>
<kw name="Run Keyword And Return If" owner="BuiltIn">
<arg>${pwd_length} &gt; 0</arg>
<arg>SSHLibrary.Login</arg>
<arg>${user}</arg>
<arg>${password}</arg>
<arg>delay=${delay}</arg>
<doc>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-09-19T02:36:11.672962" elapsed="0.000328"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-09-19T02:36:11.674137" level="INFO">Logging into '10.30.171.73:22' as 'jenkins'.</msg>
<msg time="2026-09-19T02:36:12.049630" 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 Sat Sep 19 02:35:40 UTC 2026

  System load:  0.45               Processes:             111
  Usage of /:   19.8% of 38.58GB   Users logged in:       0
  Memory usage: 4%                 IPv4 address for ens3: 10.30.171.73
  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: Sat Sep 19 02:36:10 2026 from 10.30.171.161
[?2004h[jenkins@releng-00446-90-1-mininet-ovs-217-0 ~]&gt;</msg>
<arg>${user}</arg>
<arg>${USER_HOME}/.ssh/${SSH_KEY}</arg>
<arg>${KEYFILE_PASS}</arg>
<arg>delay=${delay}</arg>
<doc>Logs into the SSH server using key-based authentication.</doc>
<status status="PASS" start="2026-09-19T02:36:11.673838" elapsed="0.375997"/>
</kw>
<msg time="2026-09-19T02:36:12.049921" level="INFO">Returning from the enclosing user keyword.</msg>
<arg>SSHLibrary.Login With Public Key</arg>
<arg>${user}</arg>
<arg>${USER_HOME}/.ssh/${SSH_KEY}</arg>
<arg>${KEYFILE_PASS}</arg>
<arg>delay=${delay}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-09-19T02:36:11.673440" elapsed="0.376573"/>
</kw>
<arg>${user}</arg>
<arg>${password}</arg>
<doc>On active SSH session: if given non-empty password, do Login, else do Login With Public Key.</doc>
<status status="PASS" start="2026-09-19T02:36:11.672008" elapsed="0.378143"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-19T02:36:12.050804" level="INFO">Executing command '/usr/local/bin/cbench -c 10.30.171.205 -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633'.</msg>
<msg time="2026-09-19T02:46:18.173692" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-09-19T02:46:18.174040" level="INFO">${stdout} = </msg>
<msg time="2026-09-19T02:46:18.174114" level="INFO">${stderr} = cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.171.205: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-09-19T02:36:12.050463" elapsed="606.123680"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-09-19T02:46:18.174422" elapsed="0.000415"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-19T02:46:18.175484" level="INFO">cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.171.205: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.171.205. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
02:37:17.264 16  switches: flows:  82099 80965 81392 82367 78513 79073 81842 79982 75155 76071 75770 76379 75651 76192 76484 77521  total = 20.924267 per ms 
02:38:17.365 16  switches: flows:  85566 85723 86042 86148 82332 82710 83244 84386 80698 80116 80031 81261 79921 79893 79859 80553  total = 21.938044 per ms 
02:39:17.466 16  switches: flows:  85836 87734 84478 86479 82075 83810 82534 84352 81466 80981 79002 83053 81773 79630 79336 79473  total = 21.996783 per ms 
02:40:17.567 16  switches: flows:  86783 88329 88485 88465 85113 85834 83094 86041 82895 83168 81983 82639 82693 83779 82637 80360  total = 22.500700 per ms 
02:41:17.667 16  switches: flows:  86537 89054 88042 88248 84984 85898 84280 87318 83985 83141 80930 83846 83060 82143 80740 80901  total = 22.514159 per ms 
02:42:17.767 16  switches: flows:  86121 86134 88076 88663 83991 84562 82689 85301 83193 82585 80387 83529 80672 81337 81707 79877  total = 22.276539 per ms 
02:43:17.868 16  switches: flows:  86795 86574 87752 86717 84469 85440 83071 84523 81197 81015 81109 82911 82318 82366 79701 80912  total = 22.243988 per ms 
02:44:17.968 16  switches: flows:  85339 85160 86902 85607 83105 84090 82051 82539 80438 82297 80295 81509 81081 80085 80197 79150  total = 21.960722 per ms 
02:45:18.069 16  switches: flows:  87887 87022 88652 86970 83803 84425 83781 83780 81787 82767 80557 83660 82077 81688 80819 80678  total = 22.301960 per ms 
02:46:18.169 16  switches: flows:  87746 85137 89325 87089 83918 85408 83587 83961 81207 82060 80213 82974 82281 81159 82131 81337  total = 22.288359 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 21938.04/22514.16/22224.58/7411.02 responses/s</msg>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-19T02:46:18.175086" elapsed="0.000616"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="PASS" start="2026-09-19T02:46:18.175978" elapsed="0.000046"/>
</return>
<status status="PASS" start="2026-09-19T02:46:18.175825" elapsed="0.000244"/>
</branch>
<status status="PASS" start="2026-09-19T02:46:18.175791" elapsed="0.000308"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="NOT RUN" start="2026-09-19T02:46:18.176214" elapsed="0.000016"/>
</return>
<status status="NOT RUN" start="2026-09-19T02:46:18.176171" elapsed="0.000090"/>
</branch>
<status status="NOT RUN" start="2026-09-19T02:46:18.176153" elapsed="0.000131"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-09-19T02:46:18.176321" elapsed="0.000014"/>
</return>
<kw name="Restore_Current_Ssh_Connection_From_Index" owner="SSHKeywords" type="TEARDOWN">
<kw name="Run Keyword And Return If" owner="BuiltIn">
<arg>${connection_index} is not None</arg>
<arg>SSHLibrary.Switch Connection</arg>
<arg>${connection_index}</arg>
<doc>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-09-19T02:46:18.177221" elapsed="0.000339"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<arg>127.0.0.1</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-09-19T02:46:18.177791" elapsed="0.000174"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-09-19T02:46:18.178113" elapsed="0.000100"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-09-19T02:46:18.176693" elapsed="0.001572"/>
</kw>
<msg time="2026-09-19T02:46:18.178375" level="INFO">${output} = cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.171.205: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-09-19T02:36:11.669059" elapsed="606.509341"/>
</kw>
<status status="PASS" start="2026-09-19T02:36:11.668739" elapsed="606.509705"/>
</branch>
<status status="PASS" start="2026-09-19T02:36:11.668367" elapsed="606.510099"/>
</if>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-19T02:46:18.178982" level="INFO">cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.171.205: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.171.205. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
02:37:17.264 16  switches: flows:  82099 80965 81392 82367 78513 79073 81842 79982 75155 76071 75770 76379 75651 76192 76484 77521  total = 20.924267 per ms 
02:38:17.365 16  switches: flows:  85566 85723 86042 86148 82332 82710 83244 84386 80698 80116 80031 81261 79921 79893 79859 80553  total = 21.938044 per ms 
02:39:17.466 16  switches: flows:  85836 87734 84478 86479 82075 83810 82534 84352 81466 80981 79002 83053 81773 79630 79336 79473  total = 21.996783 per ms 
02:40:17.567 16  switches: flows:  86783 88329 88485 88465 85113 85834 83094 86041 82895 83168 81983 82639 82693 83779 82637 80360  total = 22.500700 per ms 
02:41:17.667 16  switches: flows:  86537 89054 88042 88248 84984 85898 84280 87318 83985 83141 80930 83846 83060 82143 80740 80901  total = 22.514159 per ms 
02:42:17.767 16  switches: flows:  86121 86134 88076 88663 83991 84562 82689 85301 83193 82585 80387 83529 80672 81337 81707 79877  total = 22.276539 per ms 
02:43:17.868 16  switches: flows:  86795 86574 87752 86717 84469 85440 83071 84523 81197 81015 81109 82911 82318 82366 79701 80912  total = 22.243988 per ms 
02:44:17.968 16  switches: flows:  85339 85160 86902 85607 83105 84090 82051 82539 80438 82297 80295 81509 81081 80085 80197 79150  total = 21.960722 per ms 
02:45:18.069 16  switches: flows:  87887 87022 88652 86970 83803 84425 83781 83780 81787 82767 80557 83660 82077 81688 80819 80678  total = 22.301960 per ms 
02:46:18.169 16  switches: flows:  87746 85137 89325 87089 83918 85408 83587 83961 81207 82060 80213 82974 82281 81159 82131 81337  total = 22.288359 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 21938.04/22514.16/22224.58/7411.02 responses/s</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-19T02:46:18.178669" elapsed="0.000398"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${output}</arg>
<arg>RESULT</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-09-19T02:46:18.179228" elapsed="0.000394"/>
</kw>
<kw name="Get Lines Containing String" owner="String">
<msg time="2026-09-19T02:46:18.180079" level="INFO">1 out of 23 lines matched.</msg>
<msg time="2026-09-19T02:46:18.180194" level="INFO">${result_line} = RESULT: 16 switches 9 tests min/max/avg/stdev = 21938.04/22514.16/22224.58/7411.02 responses/s</msg>
<var>${result_line}</var>
<arg>${output}</arg>
<arg>RESULT</arg>
<doc>Returns lines of the given `string` that contain the `pattern`.</doc>
<status status="PASS" start="2026-09-19T02:46:18.179845" elapsed="0.000387"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-09-19T02:46:18.180665" level="INFO">@{results_list} = [ RESULT: | 16 | switches | 9 | tests | min/max/avg/stdev | = | 21938.04/22514.16/22224.58/7411.02 | responses/s ]</msg>
<var>@{results_list}</var>
<arg>${result_line}</arg>
<doc>Splits the `string` using `separator` as a delimiter string.</doc>
<status status="PASS" start="2026-09-19T02:46:18.180411" elapsed="0.000282"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-19T02:46:18.181307" level="INFO">min/max/avg/stdev</msg>
<arg>${results_list[5]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-19T02:46:18.180929" elapsed="0.000433"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-19T02:46:18.181958" level="INFO">21938.04/22514.16/22224.58/7411.02</msg>
<arg>${results_list[7]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-19T02:46:18.181568" elapsed="0.000447"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-09-19T02:46:18.182498" level="INFO">@{result_name_list} = [ min | max | avg | stdev ]</msg>
<var>@{result_name_list}</var>
<arg>${results_list[5]}</arg>
<arg>/</arg>
<doc>Splits the `string` using `separator` as a delimiter string.</doc>
<status status="PASS" start="2026-09-19T02:46:18.182191" elapsed="0.000333"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-09-19T02:46:18.183176" level="INFO">@{result_value_list} = [ 21938.04 | 22514.16 | 22224.58 | 7411.02 ]</msg>
<var>@{result_value_list}</var>
<arg>${results_list[7]}</arg>
<arg>/</arg>
<doc>Splits the `string` using `separator` as a delimiter string.</doc>
<status status="PASS" start="2026-09-19T02:46:18.182789" elapsed="0.000421"/>
</kw>
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-09-19T02:46:18.183867" level="INFO">Length is 4.</msg>
<msg time="2026-09-19T02:46:18.183978" level="INFO">${num_stats} = 4</msg>
<var>${num_stats}</var>
<arg>${result_name_list}</arg>
<doc>Returns and logs the length of the given item as an integer.</doc>
<status status="PASS" start="2026-09-19T02:46:18.183418" elapsed="0.000593"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-19T02:46:18.185051" level="INFO">min :: 21938.04</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-19T02:46:18.184574" elapsed="0.000532"/>
</kw>
<var name="${i}">0</var>
<status status="PASS" start="2026-09-19T02:46:18.184339" elapsed="0.000799"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-19T02:46:18.185884" level="INFO">max :: 22514.16</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-19T02:46:18.185396" elapsed="0.000541"/>
</kw>
<var name="${i}">1</var>
<status status="PASS" start="2026-09-19T02:46:18.185225" elapsed="0.000744"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-19T02:46:18.186703" level="INFO">avg :: 22224.58</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-19T02:46:18.186261" elapsed="0.000510"/>
</kw>
<var name="${i}">2</var>
<status status="PASS" start="2026-09-19T02:46:18.186071" elapsed="0.000732"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-19T02:46:18.187567" level="INFO">stdev :: 7411.02</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-19T02:46:18.187076" elapsed="0.000583"/>
</kw>
<var name="${i}">3</var>
<status status="PASS" start="2026-09-19T02:46:18.186888" elapsed="0.000813"/>
</iter>
<var>${i}</var>
<value>0</value>
<value>${num_stats}</value>
<status status="PASS" start="2026-09-19T02:46:18.184103" elapsed="0.003651"/>
</for>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-09-19T02:46:18.188379" level="INFO">${min} = 21938.04</msg>
<var>${min}</var>
<arg>${result_value_list[${0}]}</arg>
<doc>Returns the given values which can then be assigned to a variable.</doc>
<status status="PASS" start="2026-09-19T02:46:18.187965" elapsed="0.000439"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-09-19T02:46:18.188983" level="INFO">${max} = 22514.16</msg>
<var>${max}</var>
<arg>${result_value_list[${1}]}</arg>
<doc>Returns the given values which can then be assigned to a variable.</doc>
<status status="PASS" start="2026-09-19T02:46:18.188557" elapsed="0.000454"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-09-19T02:46:18.189564" level="INFO">${average} = 22224.58</msg>
<var>${average}</var>
<arg>${result_value_list[${2}]}</arg>
<doc>Returns the given values which can then be assigned to a variable.</doc>
<status status="PASS" start="2026-09-19T02:46:18.189174" elapsed="0.000433"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-09-19T02:46:18.190178" level="INFO">${stdev} = 7411.02</msg>
<var>${stdev}</var>
<arg>${result_value_list[${3}]}</arg>
<doc>Returns the given values which can then be assigned to a variable.</doc>
<status status="PASS" start="2026-09-19T02:46:18.189786" elapsed="0.000417"/>
</kw>
<kw name="Get Time" owner="BuiltIn">
<msg time="2026-09-19T02:46:18.190790" level="INFO">${date} = 2026-09-19 02:46:18</msg>
<var>${date}</var>
<arg>d,m,s</arg>
<doc>Returns the given time in the requested format.</doc>
<status status="PASS" start="2026-09-19T02:46:18.190390" elapsed="0.000425"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-19T02:46:18.191341" level="INFO">CBench Result: 2026-09-19 02:46:18,-m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633,21938.04,22514.16,22224.58,7411.02</msg>
<arg>CBench Result: ${date},${cbench_args},${min},${max},${average},${stdev}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-19T02:46:18.191001" elapsed="0.000397"/>
</kw>
<kw name="Log Results And Determine Status">
<kw name="Append To File" owner="OperatingSystem">
<msg time="2026-09-19T02:46:18.192616" level="INFO" html="true">Appended to file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-cbench-only-chromium/latency.csv"&gt;/w/workspace/openflowplugin-csit-1node-cbench-only-chromium/latency.csv&lt;/a&gt;'.</msg>
<arg>${output_file}</arg>
<arg>${min},${max},${average}\n</arg>
<doc>Appends the given content to the specified file.</doc>
<status status="PASS" start="2026-09-19T02:46:18.192024" elapsed="0.000674"/>
</kw>
<kw name="Should Be True" owner="BuiltIn">
<arg>${average} &gt; ${threshold}</arg>
<arg>${average} flow_mods per/sec did not exceed threshold of ${threshold}</arg>
<doc>Fails if the given condition is not true.</doc>
<status status="PASS" start="2026-09-19T02:46:18.192932" elapsed="0.000531"/>
</kw>
<arg>${min}</arg>
<arg>${max}</arg>
<arg>${average}</arg>
<arg>${average_threshold}</arg>
<arg>${output_filename}</arg>
<status status="PASS" start="2026-09-19T02:46:18.191561" elapsed="0.001986"/>
</kw>
<arg>-m ${duration_in_ms} -M ${num_of_unique_macs} -S ${switch_count} -l ${loops} -D ${start_delay} -p ${of_port}</arg>
<arg>${latency_threshold}</arg>
<arg>${latency_results_file}</arg>
<status status="PASS" start="2026-09-19T02:36:11.667329" elapsed="606.526314"/>
</kw>
<kw name="Sleep" owner="BuiltIn">
<msg time="2026-09-19T02:46:18.194264" level="INFO">Slept 0 seconds.</msg>
<arg>${test_delay}</arg>
<doc>Pauses execution for the given time.</doc>
<status status="PASS" start="2026-09-19T02:46:18.193862" elapsed="0.000474"/>
</kw>
<kw name="Log Results As Zero If Cbench Timed Out" type="TEARDOWN">
<kw name="Run Keyword If Timeout Occurred" owner="BuiltIn">
<arg>Log Results And Determine Status</arg>
<arg>0</arg>
<arg>0</arg>
<arg>0</arg>
<arg>0</arg>
<arg>${output_filename}</arg>
<doc>Runs the given keyword if either a test or a keyword timeout has occurred.</doc>
<status status="PASS" start="2026-09-19T02:46:18.195019" elapsed="0.000273"/>
</kw>
<status status="PASS" start="2026-09-19T02:46:18.194628" elapsed="0.000730"/>
</kw>
<doc>cbench executed in default latency mode. Test parameters have defaults, but can be overridden
on the pybot command line</doc>
<tag>cbench</tag>
<tag>latency</tag>
<timeout value="15 minutes"/>
<status status="PASS" start="2026-09-19T02:36:11.664800" elapsed="606.530593"/>
</test>
<test id="s1-t2" name="Cbench Throughput Test" line="51">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-19T02:46:18.197077" level="INFO">Cbench tests using 10 iterations of 60 second tests. Switch Count: 16. Unique MACS to cycle: 100</msg>
<arg>Cbench tests using ${loops} iterations of ${duration_in_secs} second tests. Switch Count: ${switch_count}. Unique MACS to cycle: ${num_of_unique_macs}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-19T02:46:18.196727" elapsed="0.000406"/>
</kw>
<kw name="Run Cbench And Log Results">
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-09-19T02:46:18.198751" level="INFO">${output_filename} = throughput.csv</msg>
<arg>${output_filename}</arg>
<doc>Makes the variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-09-19T02:46:18.198157" elapsed="0.000641"/>
</kw>
<if>
<branch type="IF" condition="&quot;${cbench_system}&quot; == &quot;localhost&quot;">
<kw name="Run" owner="OperatingSystem">
<var>${output}</var>
<arg>${cbench_executable} -c ${ODL_SYSTEM_IP} ${cbench_args}</arg>
<doc>*This keyword is considered deprecated. Use the [Process] library instead.*</doc>
<status status="NOT RUN" start="2026-09-19T02:46:18.199169" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-09-19T02:46:18.198873" elapsed="0.000354"/>
</branch>
<branch type="ELSE">
<kw name="Run Command On Remote System" owner="Utils">
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot; and &quot;${return_stderr}&quot;!=&quot;True&quot;">
<kw name="Fail" owner="BuiltIn">
<arg>At least one of {return_stdout} or {return_stderr} args should be set to True</arg>
<doc>Fails the test or task with the given message and optionally alters its tags.</doc>
<status status="NOT RUN" start="2026-09-19T02:46:18.200376" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-09-19T02:46:18.200154" elapsed="0.000274"/>
</branch>
<status status="PASS" start="2026-09-19T02:46:18.200136" elapsed="0.000314"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-09-19T02:46:18.200927" level="INFO">index=None
host=None
alias=None
port=22
timeout=3 seconds
newline=

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

prompt=None
term_type=vt100
width=80
height=24
path_separator=/
encoding=utf8
escape_ansi=False
encoding_errors=strict</msg>
<var>${current_ssh_connection}</var>
<doc>Returns information about the connection.</doc>
<status status="PASS" start="2026-09-19T02:46:18.200656" elapsed="0.000428"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-19T02:46:18.201623" level="INFO">Attempting to execute command "/usr/local/bin/cbench -c 10.30.171.205 -t -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633" on remote system "10.30.171.73" by user "jenkins" with keyfile pass "any" and prompt "&gt;" and password ""</msg>
<arg>Attempting to execute command "${cmd}" on remote system "${system}" by user "${user}" with keyfile pass "${keyfile_pass}" and prompt "${prompt}" and password "${password}"</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-19T02:46:18.201260" elapsed="0.000418"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-09-19T02:46:18.202234" level="INFO">${conn_id} = 7</msg>
<var>${conn_id}</var>
<arg>${system}</arg>
<arg>prompt=${prompt}</arg>
<arg>timeout=${prompt_timeout}</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-09-19T02:46:18.201884" elapsed="0.000376"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-09-19T02:46:18.203173" level="INFO">Length is 0.</msg>
<msg time="2026-09-19T02:46:18.203258" level="INFO">${pwd_length} = 0</msg>
<var>${pwd_length}</var>
<arg>${password}</arg>
<doc>Returns and logs the length of the given item as an integer.</doc>
<status status="PASS" start="2026-09-19T02:46:18.202850" elapsed="0.000432"/>
</kw>
<kw name="Run Keyword And Return If" owner="BuiltIn">
<arg>${pwd_length} &gt; 0</arg>
<arg>SSHLibrary.Login</arg>
<arg>${user}</arg>
<arg>${password}</arg>
<arg>delay=${delay}</arg>
<doc>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-09-19T02:46:18.203422" elapsed="0.000334"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-09-19T02:46:18.204633" level="INFO">Logging into '10.30.171.73:22' as 'jenkins'.</msg>
<msg time="2026-09-19T02:46:18.843035" 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 Sat Sep 19 02:46:18 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.171.73
  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: Sat Sep 19 02:36:11 2026 from 10.30.171.161
[?2004h[jenkins@releng-00446-90-1-mininet-ovs-217-0 ~]&gt;</msg>
<arg>${user}</arg>
<arg>${USER_HOME}/.ssh/${SSH_KEY}</arg>
<arg>${KEYFILE_PASS}</arg>
<arg>delay=${delay}</arg>
<doc>Logs into the SSH server using key-based authentication.</doc>
<status status="PASS" start="2026-09-19T02:46:18.204336" elapsed="0.638943"/>
</kw>
<msg time="2026-09-19T02:46:18.843392" level="INFO">Returning from the enclosing user keyword.</msg>
<arg>SSHLibrary.Login With Public Key</arg>
<arg>${user}</arg>
<arg>${USER_HOME}/.ssh/${SSH_KEY}</arg>
<arg>${KEYFILE_PASS}</arg>
<arg>delay=${delay}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-09-19T02:46:18.203937" elapsed="0.639573"/>
</kw>
<arg>${user}</arg>
<arg>${password}</arg>
<doc>On active SSH session: if given non-empty password, do Login, else do Login With Public Key.</doc>
<status status="PASS" start="2026-09-19T02:46:18.202444" elapsed="0.641260"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-19T02:46:18.844569" level="INFO">Executing command '/usr/local/bin/cbench -c 10.30.171.205 -t -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633'.</msg>
<msg time="2026-09-19T02:56:24.895849" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-09-19T02:56:24.896257" level="INFO">${stdout} = </msg>
<msg time="2026-09-19T02:56:24.896311" level="INFO">${stderr} = cbench: controller benchmarking tool
   running in mode 'throughput'
   connecting to controller at 10.30.171.205:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with...</msg>
<var>${stdout}</var>
<var>${stderr}</var>
<arg>${cmd}</arg>
<arg>return_stderr=True</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-19T02:46:18.844138" elapsed="606.052202"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-09-19T02:56:24.896687" elapsed="0.000465"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-19T02:56:24.897877" level="INFO">cbench: controller benchmarking tool
   running in mode 'throughput'
   connecting to controller at 10.30.171.205: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.171.205. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
02:47:23.970 16  switches: flows:  560135 546424 556031 544398 551912 534816 556154 537701 550792 549451 551054 546906 546111 546524 529832 546520  total = 145.912683 per ms 
02:48:24.071 16  switches: flows:  561948 562869 568629 558241 557183 571667 566895 564369 564541 565665 557974 564997 563315 567030 567133 567683  total = 150.248924 per ms 
02:49:24.172 16  switches: flows:  572449 560643 564032 569656 571500 573904 563059 571602 567374 568609 558714 575788 567988 568664 565360 571140  total = 151.254392 per ms 
02:50:24.274 16  switches: flows:  606149 605681 609364 608236 595978 607589 608834 607209 607799 603816 599521 612029 602786 611239 613914 607281  total = 161.519210 per ms 
02:51:24.377 16  switches: flows:  610102 607032 615217 615467 610833 615489 611870 613827 613062 616238 612229 614580 610866 615695 617922 615337  total = 163.319239 per ms 
02:52:24.479 16  switches: flows:  606575 608708 609670 606524 605950 614826 611882 607227 623517 613223 608067 609466 614959 614394 617404 605821  total = 162.696786 per ms 
02:53:24.579 16  switches: flows:  613852 609794 617460 604944 613296 616381 611051 603059 618147 607138 616701 610599 610839 614744 611536 610758  total = 162.897954 per ms 
02:54:24.682 16  switches: flows:  627622 629127 636631 632634 628770 624792 635731 631734 629427 625208 632202 632355 628836 631918 627628 636605  total = 167.905705 per ms 
02:55:24.782 16  switches: flows:  613843 608729 603269 602608 608963 604619 617998 612797 611020 609549 605574 609228 616708 602342 613086 608653  total = 162.211582 per ms 
02:56:24.884 16  switches: flows:  592076 586019 601312 586711 590646 595195 592755 589872 591003 588148 584537 596273 591189 592737 598391 587573  total = 157.475431 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 150248.92/167905.70/159947.69/53600.96 responses/s</msg>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-19T02:56:24.897428" elapsed="0.000659"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="PASS" start="2026-09-19T02:56:24.898358" elapsed="0.000045"/>
</return>
<status status="PASS" start="2026-09-19T02:56:24.898188" elapsed="0.000258"/>
</branch>
<status status="PASS" start="2026-09-19T02:56:24.898157" elapsed="0.000317"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="NOT RUN" start="2026-09-19T02:56:24.898579" elapsed="0.000030"/>
</return>
<status status="NOT RUN" start="2026-09-19T02:56:24.898540" elapsed="0.000099"/>
</branch>
<status status="NOT RUN" start="2026-09-19T02:56:24.898522" elapsed="0.000141"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-09-19T02:56:24.898696" elapsed="0.000014"/>
</return>
<kw name="Restore_Current_Ssh_Connection_From_Index" owner="SSHKeywords" type="TEARDOWN">
<kw name="Run Keyword And Return If" owner="BuiltIn">
<arg>${connection_index} is not None</arg>
<arg>SSHLibrary.Switch Connection</arg>
<arg>${connection_index}</arg>
<doc>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-09-19T02:56:24.899618" elapsed="0.000381"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<arg>127.0.0.1</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-09-19T02:56:24.900218" elapsed="0.000196"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-09-19T02:56:24.900571" elapsed="0.000133"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-09-19T02:56:24.899090" elapsed="0.001674"/>
</kw>
<msg time="2026-09-19T02:56:24.900891" level="INFO">${output} = cbench: controller benchmarking tool
   running in mode 'throughput'
   connecting to controller at 10.30.171.205:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with...</msg>
<var>${output}</var>
<arg>${cbench_system}</arg>
<arg>${cbench_executable} -c ${ODL_SYSTEM_IP} ${cbench_args}</arg>
<arg>prompt_timeout=${test_timeout}</arg>
<arg>return_stdout=False</arg>
<arg>return_stderr=True</arg>
<doc>Reduces the common work of running a command on a remote system to a single higher level
robot keyword, taking care to log in with a public key and. The command given is written and the return value
depends on the passed argument values of return_stdout (default: True) and return_stderr (default: False).
At least one should be True, or the keyword will exit and FAIL. If both are True, the resulting return value
will be a two element list containing both. Otherwise the resulting return value is a string.
No test conditions are checked.</doc>
<status status="PASS" start="2026-09-19T02:46:18.199565" elapsed="606.701373"/>
</kw>
<status status="PASS" start="2026-09-19T02:46:18.199254" elapsed="606.701741"/>
</branch>
<status status="PASS" start="2026-09-19T02:46:18.198850" elapsed="606.702171"/>
</if>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-19T02:56:24.901567" level="INFO">cbench: controller benchmarking tool
   running in mode 'throughput'
   connecting to controller at 10.30.171.205: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.171.205. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
02:47:23.970 16  switches: flows:  560135 546424 556031 544398 551912 534816 556154 537701 550792 549451 551054 546906 546111 546524 529832 546520  total = 145.912683 per ms 
02:48:24.071 16  switches: flows:  561948 562869 568629 558241 557183 571667 566895 564369 564541 565665 557974 564997 563315 567030 567133 567683  total = 150.248924 per ms 
02:49:24.172 16  switches: flows:  572449 560643 564032 569656 571500 573904 563059 571602 567374 568609 558714 575788 567988 568664 565360 571140  total = 151.254392 per ms 
02:50:24.274 16  switches: flows:  606149 605681 609364 608236 595978 607589 608834 607209 607799 603816 599521 612029 602786 611239 613914 607281  total = 161.519210 per ms 
02:51:24.377 16  switches: flows:  610102 607032 615217 615467 610833 615489 611870 613827 613062 616238 612229 614580 610866 615695 617922 615337  total = 163.319239 per ms 
02:52:24.479 16  switches: flows:  606575 608708 609670 606524 605950 614826 611882 607227 623517 613223 608067 609466 614959 614394 617404 605821  total = 162.696786 per ms 
02:53:24.579 16  switches: flows:  613852 609794 617460 604944 613296 616381 611051 603059 618147 607138 616701 610599 610839 614744 611536 610758  total = 162.897954 per ms 
02:54:24.682 16  switches: flows:  627622 629127 636631 632634 628770 624792 635731 631734 629427 625208 632202 632355 628836 631918 627628 636605  total = 167.905705 per ms 
02:55:24.782 16  switches: flows:  613843 608729 603269 602608 608963 604619 617998 612797 611020 609549 605574 609228 616708 602342 613086 608653  total = 162.211582 per ms 
02:56:24.884 16  switches: flows:  592076 586019 601312 586711 590646 595195 592755 589872 591003 588148 584537 596273 591189 592737 598391 587573  total = 157.475431 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 150248.92/167905.70/159947.69/53600.96 responses/s</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-19T02:56:24.901257" elapsed="0.000411"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${output}</arg>
<arg>RESULT</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-09-19T02:56:24.901862" elapsed="0.000430"/>
</kw>
<kw name="Get Lines Containing String" owner="String">
<msg time="2026-09-19T02:56:24.902748" level="INFO">1 out of 23 lines matched.</msg>
<msg time="2026-09-19T02:56:24.902845" level="INFO">${result_line} = RESULT: 16 switches 9 tests min/max/avg/stdev = 150248.92/167905.70/159947.69/53600.96 responses/s</msg>
<var>${result_line}</var>
<arg>${output}</arg>
<arg>RESULT</arg>
<doc>Returns lines of the given `string` that contain the `pattern`.</doc>
<status status="PASS" start="2026-09-19T02:56:24.902499" elapsed="0.000373"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-09-19T02:56:24.903343" level="INFO">@{results_list} = [ RESULT: | 16 | switches | 9 | tests | min/max/avg/stdev | = | 150248.92/167905.70/159947.69/53600.96 | responses/s ]</msg>
<var>@{results_list}</var>
<arg>${result_line}</arg>
<doc>Splits the `string` using `separator` as a delimiter string.</doc>
<status status="PASS" start="2026-09-19T02:56:24.903085" elapsed="0.000288"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-19T02:56:24.904011" level="INFO">min/max/avg/stdev</msg>
<arg>${results_list[5]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-19T02:56:24.903616" elapsed="0.000455"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-19T02:56:24.904690" level="INFO">150248.92/167905.70/159947.69/53600.96</msg>
<arg>${results_list[7]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-19T02:56:24.904306" elapsed="0.000443"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-09-19T02:56:24.905348" level="INFO">@{result_name_list} = [ min | max | avg | stdev ]</msg>
<var>@{result_name_list}</var>
<arg>${results_list[5]}</arg>
<arg>/</arg>
<doc>Splits the `string` using `separator` as a delimiter string.</doc>
<status status="PASS" start="2026-09-19T02:56:24.904955" elapsed="0.000422"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-09-19T02:56:24.906088" level="INFO">@{result_value_list} = [ 150248.92 | 167905.70 | 159947.69 | 53600.96 ]</msg>
<var>@{result_value_list}</var>
<arg>${results_list[7]}</arg>
<arg>/</arg>
<doc>Splits the `string` using `separator` as a delimiter string.</doc>
<status status="PASS" start="2026-09-19T02:56:24.905743" elapsed="0.000375"/>
</kw>
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-09-19T02:56:24.906639" level="INFO">Length is 4.</msg>
<msg time="2026-09-19T02:56:24.906730" level="INFO">${num_stats} = 4</msg>
<var>${num_stats}</var>
<arg>${result_name_list}</arg>
<doc>Returns and logs the length of the given item as an integer.</doc>
<status status="PASS" start="2026-09-19T02:56:24.906301" elapsed="0.000454"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-19T02:56:24.907891" level="INFO">min :: 150248.92</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-19T02:56:24.907259" elapsed="0.000706"/>
</kw>
<var name="${i}">0</var>
<status status="PASS" start="2026-09-19T02:56:24.907047" elapsed="0.000954"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-19T02:56:24.908872" level="INFO">max :: 167905.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-09-19T02:56:24.908299" elapsed="0.000645"/>
</kw>
<var name="${i}">1</var>
<status status="PASS" start="2026-09-19T02:56:24.908093" elapsed="0.000888"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-19T02:56:24.909774" level="INFO">avg :: 159947.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-09-19T02:56:24.909290" elapsed="0.000542"/>
</kw>
<var name="${i}">2</var>
<status status="PASS" start="2026-09-19T02:56:24.909076" elapsed="0.000791"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-19T02:56:24.910651" level="INFO">stdev :: 53600.96</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-19T02:56:24.910183" elapsed="0.000527"/>
</kw>
<var name="${i}">3</var>
<status status="PASS" start="2026-09-19T02:56:24.909971" elapsed="0.000774"/>
</iter>
<var>${i}</var>
<value>0</value>
<value>${num_stats}</value>
<status status="PASS" start="2026-09-19T02:56:24.906839" elapsed="0.003938"/>
</for>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-09-19T02:56:24.911404" level="INFO">${min} = 150248.92</msg>
<var>${min}</var>
<arg>${result_value_list[${0}]}</arg>
<doc>Returns the given values which can then be assigned to a variable.</doc>
<status status="PASS" start="2026-09-19T02:56:24.910978" elapsed="0.000454"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-09-19T02:56:24.912070" level="INFO">${max} = 167905.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-09-19T02:56:24.911626" elapsed="0.000472"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-09-19T02:56:24.912717" level="INFO">${average} = 159947.69</msg>
<var>${average}</var>
<arg>${result_value_list[${2}]}</arg>
<doc>Returns the given values which can then be assigned to a variable.</doc>
<status status="PASS" start="2026-09-19T02:56:24.912280" elapsed="0.000465"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-09-19T02:56:24.913357" level="INFO">${stdev} = 53600.96</msg>
<var>${stdev}</var>
<arg>${result_value_list[${3}]}</arg>
<doc>Returns the given values which can then be assigned to a variable.</doc>
<status status="PASS" start="2026-09-19T02:56:24.912938" elapsed="0.000447"/>
</kw>
<kw name="Get Time" owner="BuiltIn">
<msg time="2026-09-19T02:56:24.914046" level="INFO">${date} = 2026-09-19 02:56:24</msg>
<var>${date}</var>
<arg>d,m,s</arg>
<doc>Returns the given time in the requested format.</doc>
<status status="PASS" start="2026-09-19T02:56:24.913627" elapsed="0.000446"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-19T02:56:24.914678" level="INFO">CBench Result: 2026-09-19 02:56:24,-t -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633,150248.92,167905.70,159947.69,53600.96</msg>
<arg>CBench Result: ${date},${cbench_args},${min},${max},${average},${stdev}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-19T02:56:24.914299" elapsed="0.000437"/>
</kw>
<kw name="Log Results And Determine Status">
<kw name="Append To File" owner="OperatingSystem">
<msg time="2026-09-19T02:56:24.915815" level="INFO" html="true">Appended to file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-cbench-only-chromium/throughput.csv"&gt;/w/workspace/openflowplugin-csit-1node-cbench-only-chromium/throughput.csv&lt;/a&gt;'.</msg>
<arg>${output_file}</arg>
<arg>${min},${max},${average}\n</arg>
<doc>Appends the given content to the specified file.</doc>
<status status="PASS" start="2026-09-19T02:56:24.915386" elapsed="0.000500"/>
</kw>
<kw name="Should Be True" owner="BuiltIn">
<arg>${average} &gt; ${threshold}</arg>
<arg>${average} flow_mods per/sec did not exceed threshold of ${threshold}</arg>
<doc>Fails if the given condition is not true.</doc>
<status status="PASS" start="2026-09-19T02:56:24.916090" elapsed="0.000789"/>
</kw>
<arg>${min}</arg>
<arg>${max}</arg>
<arg>${average}</arg>
<arg>${average_threshold}</arg>
<arg>${output_filename}</arg>
<status status="PASS" start="2026-09-19T02:56:24.914891" elapsed="0.002077"/>
</kw>
<arg>-t -m ${duration_in_ms} -M ${num_of_unique_macs} -S ${switch_count} -l ${loops} -D ${start_delay} -p ${of_port}</arg>
<arg>${throughput_threshold}</arg>
<arg>${throughput_results_file}</arg>
<status status="PASS" start="2026-09-19T02:46:18.197465" elapsed="606.719587"/>
</kw>
<kw name="Sleep" owner="BuiltIn">
<msg time="2026-09-19T02:56:24.917509" level="INFO">Slept 0 seconds.</msg>
<arg>${test_delay}</arg>
<doc>Pauses execution for the given time.</doc>
<status status="PASS" start="2026-09-19T02:56:24.917213" elapsed="0.000348"/>
</kw>
<kw name="Log Results As Zero If Cbench Timed Out" type="TEARDOWN">
<kw name="Run Keyword If Timeout Occurred" owner="BuiltIn">
<arg>Log Results And Determine Status</arg>
<arg>0</arg>
<arg>0</arg>
<arg>0</arg>
<arg>0</arg>
<arg>${output_filename}</arg>
<doc>Runs the given keyword if either a test or a keyword timeout has occurred.</doc>
<status status="PASS" start="2026-09-19T02:56:24.918081" elapsed="0.000368"/>
</kw>
<status status="PASS" start="2026-09-19T02:56:24.917771" elapsed="0.000773"/>
</kw>
<doc>cbench executed in throughput mode (-t). Test parameters have defaults, but can be overridden
on the pybot command line</doc>
<tag>cbench</tag>
<tag>throughput</tag>
<timeout value="15 minutes"/>
<status status="PASS" start="2026-09-19T02:46:18.196028" elapsed="606.722590"/>
</test>
<test id="s1-t3" name="Rerun Latency Test To Check Bug 6176" line="65">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-19T02:56:24.921345" level="INFO">Cbench tests using 10 iterations of 60 second tests. Switch Count: 16. Unique MACS to cycle: 100</msg>
<arg>Cbench tests using ${loops} iterations of ${duration_in_secs} second tests. Switch Count: ${switch_count}. Unique MACS to cycle: ${num_of_unique_macs}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-19T02:56:24.920660" elapsed="0.000962"/>
</kw>
<kw name="Run Cbench And Log Results">
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-09-19T02:56:24.923731" level="INFO">${output_filename} = bug.csv</msg>
<arg>${output_filename}</arg>
<doc>Makes the variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-09-19T02:56:24.923236" elapsed="0.000555"/>
</kw>
<if>
<branch type="IF" condition="&quot;${cbench_system}&quot; == &quot;localhost&quot;">
<kw name="Run" owner="OperatingSystem">
<var>${output}</var>
<arg>${cbench_executable} -c ${ODL_SYSTEM_IP} ${cbench_args}</arg>
<doc>*This keyword is considered deprecated. Use the [Process] library instead.*</doc>
<status status="NOT RUN" start="2026-09-19T02:56:24.924337" elapsed="0.000030"/>
</kw>
<status status="NOT RUN" start="2026-09-19T02:56:24.924001" elapsed="0.000417"/>
</branch>
<branch type="ELSE">
<kw name="Run Command On Remote System" owner="Utils">
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot; and &quot;${return_stderr}&quot;!=&quot;True&quot;">
<kw name="Fail" owner="BuiltIn">
<arg>At least one of {return_stdout} or {return_stderr} args should be set to True</arg>
<doc>Fails the test or task with the given message and optionally alters its tags.</doc>
<status status="NOT RUN" start="2026-09-19T02:56:24.926263" elapsed="0.000036"/>
</kw>
<status status="NOT RUN" start="2026-09-19T02:56:24.925753" elapsed="0.000595"/>
</branch>
<status status="PASS" start="2026-09-19T02:56:24.925726" elapsed="0.000654"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-09-19T02:56:24.926994" level="INFO">index=None
host=None
alias=None
port=22
timeout=3 seconds
newline=

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

prompt=None
term_type=vt100
width=80
height=24
path_separator=/
encoding=utf8
escape_ansi=False
encoding_errors=strict</msg>
<var>${current_ssh_connection}</var>
<doc>Returns information about the connection.</doc>
<status status="PASS" start="2026-09-19T02:56:24.926670" elapsed="0.000545"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-19T02:56:24.928007" level="INFO">Attempting to execute command "/usr/local/bin/cbench -c 10.30.171.205 -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633" on remote system "10.30.171.73" by user "jenkins" with keyfile pass "any" and prompt "&gt;" and password ""</msg>
<arg>Attempting to execute command "${cmd}" on remote system "${system}" by user "${user}" with keyfile pass "${keyfile_pass}" and prompt "${prompt}" and password "${password}"</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-19T02:56:24.927472" elapsed="0.000616"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-09-19T02:56:24.928862" level="INFO">${conn_id} = 9</msg>
<var>${conn_id}</var>
<arg>${system}</arg>
<arg>prompt=${prompt}</arg>
<arg>timeout=${prompt_timeout}</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-09-19T02:56:24.928350" elapsed="0.000550"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-09-19T02:56:24.930232" level="INFO">Length is 0.</msg>
<msg time="2026-09-19T02:56:24.930361" level="INFO">${pwd_length} = 0</msg>
<var>${pwd_length}</var>
<arg>${password}</arg>
<doc>Returns and logs the length of the given item as an integer.</doc>
<status status="PASS" start="2026-09-19T02:56:24.929763" elapsed="0.000631"/>
</kw>
<kw name="Run Keyword And Return If" owner="BuiltIn">
<arg>${pwd_length} &gt; 0</arg>
<arg>SSHLibrary.Login</arg>
<arg>${user}</arg>
<arg>${password}</arg>
<arg>delay=${delay}</arg>
<doc>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-09-19T02:56:24.930631" elapsed="0.000465"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-09-19T02:56:24.932388" level="INFO">Logging into '10.30.171.73:22' as 'jenkins'.</msg>
<msg time="2026-09-19T02:56:25.606693" 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 Sat Sep 19 02:56:25 UTC 2026

  System load:  0.29               Processes:             104
  Usage of /:   19.8% of 38.58GB   Users logged in:       0
  Memory usage: 4%                 IPv4 address for ens3: 10.30.171.73
  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: Sat Sep 19 02:46:18 2026 from 10.30.171.161
[?2004h[jenkins@releng-00446-90-1-mininet-ovs-217-0 ~]&gt;</msg>
<arg>${user}</arg>
<arg>${USER_HOME}/.ssh/${SSH_KEY}</arg>
<arg>${KEYFILE_PASS}</arg>
<arg>delay=${delay}</arg>
<doc>Logs into the SSH server using key-based authentication.</doc>
<status status="PASS" start="2026-09-19T02:56:24.931953" elapsed="0.674960"/>
</kw>
<msg time="2026-09-19T02:56:25.607041" level="INFO">Returning from the enclosing user keyword.</msg>
<arg>SSHLibrary.Login With Public Key</arg>
<arg>${user}</arg>
<arg>${USER_HOME}/.ssh/${SSH_KEY}</arg>
<arg>${KEYFILE_PASS}</arg>
<arg>delay=${delay}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-09-19T02:56:24.931357" elapsed="0.675796"/>
</kw>
<arg>${user}</arg>
<arg>${password}</arg>
<doc>On active SSH session: if given non-empty password, do Login, else do Login With Public Key.</doc>
<status status="PASS" start="2026-09-19T02:56:24.929204" elapsed="0.678090"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-19T02:56:25.608005" level="INFO">Executing command '/usr/local/bin/cbench -c 10.30.171.205 -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633'.</msg>
<msg time="2026-09-19T03:06:31.658171" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-09-19T03:06:31.658870" level="INFO">${stdout} = </msg>
<msg time="2026-09-19T03:06:31.659006" level="INFO">${stderr} = cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.171.205: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-09-19T02:56:25.607643" elapsed="606.051422"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-09-19T03:06:31.659707" elapsed="0.000691"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-19T03:06:31.661740" level="INFO">cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.171.205: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.171.205. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
02:57:30.738 16  switches: flows:  84867 84055 83260 81797 85084 83934 83328 84460 81028 79873 78243 79065 80953 78995 84240 75097  total = 21.804650 per ms 
02:58:30.840 16  switches: flows:  86198 85251 85862 84668 86721 86021 83877 86477 80190 81945 79619 80945 81110 78518 78041 78759  total = 22.033213 per ms 
02:59:30.941 16  switches: flows:  87681 86706 86029 86231 86122 86892 85701 86273 82914 81968 79602 79572 82038 79817 77372 78952  total = 22.194110 per ms 
03:00:31.042 16  switches: flows:  84233 83970 82862 83995 83494 84631 84296 83351 81607 80359 79773 78322 79748 78423 76509 77797  total = 21.686608 per ms 
03:01:31.143 16  switches: flows:  85993 85446 83930 85133 84071 84726 84352 84702 79777 80864 78324 79448 80327 78528 76673 79144  total = 21.820828 per ms 
03:02:31.244 16  switches: flows:  85827 83889 84308 85212 84448 85667 84508 83765 81082 81197 79319 78641 81758 78877 76505 78672  total = 21.858071 per ms 
03:03:31.345 16  switches: flows:  86279 83900 83115 84461 83624 84991 85310 84418 79450 80405 78979 78660 79152 79102 75960 78775  total = 21.740041 per ms 
03:04:31.446 16  switches: flows:  87551 84794 84250 85429 84860 87024 85718 84173 81034 80416 79229 78095 81517 80048 77117 79624  total = 21.977931 per ms 
03:05:31.547 16  switches: flows:  87436 85502 84690 85741 85684 85665 84962 84611 80431 81296 80560 79740 81633 78885 75855 80638  total = 22.018692 per ms 
03:06:31.647 16  switches: flows:  85382 83173 82855 84163 82760 84722 83848 82914 78325 80666 78125 78454 79762 78240 75668 78634  total = 21.592096 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 21592.10/22194.11/21880.18/7295.64 responses/s</msg>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-19T03:06:31.660910" elapsed="0.001159"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="PASS" start="2026-09-19T03:06:31.662560" elapsed="0.000100"/>
</return>
<status status="PASS" start="2026-09-19T03:06:31.662262" elapsed="0.000476"/>
</branch>
<status status="PASS" start="2026-09-19T03:06:31.662206" elapsed="0.000585"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="NOT RUN" start="2026-09-19T03:06:31.662984" elapsed="0.000026"/>
</return>
<status status="NOT RUN" start="2026-09-19T03:06:31.662910" elapsed="0.000156"/>
</branch>
<status status="NOT RUN" start="2026-09-19T03:06:31.662877" elapsed="0.000235"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-09-19T03:06:31.663173" elapsed="0.000027"/>
</return>
<kw name="Restore_Current_Ssh_Connection_From_Index" owner="SSHKeywords" type="TEARDOWN">
<kw name="Run Keyword And Return If" owner="BuiltIn">
<arg>${connection_index} is not None</arg>
<arg>SSHLibrary.Switch Connection</arg>
<arg>${connection_index}</arg>
<doc>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-09-19T03:06:31.664822" elapsed="0.000843"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<arg>127.0.0.1</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-09-19T03:06:31.666061" elapsed="0.000366"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-09-19T03:06:31.666747" elapsed="0.000208"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-09-19T03:06:31.663876" elapsed="0.003188"/>
</kw>
<msg time="2026-09-19T03:06:31.667289" level="INFO">${output} = cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.171.205: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-09-19T02:56:24.924914" elapsed="606.742429"/>
</kw>
<status status="PASS" start="2026-09-19T02:56:24.924454" elapsed="606.743019"/>
</branch>
<status status="PASS" start="2026-09-19T02:56:24.923969" elapsed="606.743552"/>
</if>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-19T03:06:31.668651" level="INFO">cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.171.205: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.171.205. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
02:57:30.738 16  switches: flows:  84867 84055 83260 81797 85084 83934 83328 84460 81028 79873 78243 79065 80953 78995 84240 75097  total = 21.804650 per ms 
02:58:30.840 16  switches: flows:  86198 85251 85862 84668 86721 86021 83877 86477 80190 81945 79619 80945 81110 78518 78041 78759  total = 22.033213 per ms 
02:59:30.941 16  switches: flows:  87681 86706 86029 86231 86122 86892 85701 86273 82914 81968 79602 79572 82038 79817 77372 78952  total = 22.194110 per ms 
03:00:31.042 16  switches: flows:  84233 83970 82862 83995 83494 84631 84296 83351 81607 80359 79773 78322 79748 78423 76509 77797  total = 21.686608 per ms 
03:01:31.143 16  switches: flows:  85993 85446 83930 85133 84071 84726 84352 84702 79777 80864 78324 79448 80327 78528 76673 79144  total = 21.820828 per ms 
03:02:31.244 16  switches: flows:  85827 83889 84308 85212 84448 85667 84508 83765 81082 81197 79319 78641 81758 78877 76505 78672  total = 21.858071 per ms 
03:03:31.345 16  switches: flows:  86279 83900 83115 84461 83624 84991 85310 84418 79450 80405 78979 78660 79152 79102 75960 78775  total = 21.740041 per ms 
03:04:31.446 16  switches: flows:  87551 84794 84250 85429 84860 87024 85718 84173 81034 80416 79229 78095 81517 80048 77117 79624  total = 21.977931 per ms 
03:05:31.547 16  switches: flows:  87436 85502 84690 85741 85684 85665 84962 84611 80431 81296 80560 79740 81633 78885 75855 80638  total = 22.018692 per ms 
03:06:31.647 16  switches: flows:  85382 83173 82855 84163 82760 84722 83848 82914 78325 80666 78125 78454 79762 78240 75668 78634  total = 21.592096 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 21592.10/22194.11/21880.18/7295.64 responses/s</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-19T03:06:31.668002" elapsed="0.000806"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${output}</arg>
<arg>RESULT</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-09-19T03:06:31.669153" elapsed="0.000796"/>
</kw>
<kw name="Get Lines Containing String" owner="String">
<msg time="2026-09-19T03:06:31.670788" level="INFO">1 out of 23 lines matched.</msg>
<msg time="2026-09-19T03:06:31.670974" level="INFO">${result_line} = RESULT: 16 switches 9 tests min/max/avg/stdev = 21592.10/22194.11/21880.18/7295.64 responses/s</msg>
<var>${result_line}</var>
<arg>${output}</arg>
<arg>RESULT</arg>
<doc>Returns lines of the given `string` that contain the `pattern`.</doc>
<status status="PASS" start="2026-09-19T03:06:31.670322" elapsed="0.000704"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-09-19T03:06:31.671947" level="INFO">@{results_list} = [ RESULT: | 16 | switches | 9 | tests | min/max/avg/stdev | = | 21592.10/22194.11/21880.18/7295.64 | responses/s ]</msg>
<var>@{results_list}</var>
<arg>${result_line}</arg>
<doc>Splits the `string` using `separator` as a delimiter string.</doc>
<status status="PASS" start="2026-09-19T03:06:31.671410" elapsed="0.000595"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-19T03:06:31.673260" level="INFO">min/max/avg/stdev</msg>
<arg>${results_list[5]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-19T03:06:31.672464" elapsed="0.000951"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-19T03:06:31.674574" level="INFO">21592.10/22194.11/21880.18/7295.64</msg>
<arg>${results_list[7]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-19T03:06:31.673864" elapsed="0.000855"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-09-19T03:06:31.675769" level="INFO">@{result_name_list} = [ min | max | avg | stdev ]</msg>
<var>@{result_name_list}</var>
<arg>${results_list[5]}</arg>
<arg>/</arg>
<doc>Splits the `string` using `separator` as a delimiter string.</doc>
<status status="PASS" start="2026-09-19T03:06:31.675061" elapsed="0.000806"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-09-19T03:06:31.677205" level="INFO">@{result_value_list} = [ 21592.10 | 22194.11 | 21880.18 | 7295.64 ]</msg>
<var>@{result_value_list}</var>
<arg>${results_list[7]}</arg>
<arg>/</arg>
<doc>Splits the `string` using `separator` as a delimiter string.</doc>
<status status="PASS" start="2026-09-19T03:06:31.676388" elapsed="0.000880"/>
</kw>
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-09-19T03:06:31.678635" level="INFO">Length is 4.</msg>
<msg time="2026-09-19T03:06:31.678830" level="INFO">${num_stats} = 4</msg>
<var>${num_stats}</var>
<arg>${result_name_list}</arg>
<doc>Returns and logs the length of the given item as an integer.</doc>
<status status="PASS" start="2026-09-19T03:06:31.677822" elapsed="0.001078"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-19T03:06:31.680983" level="INFO">min :: 21592.10</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-19T03:06:31.679986" elapsed="0.001115"/>
</kw>
<var name="${i}">0</var>
<status status="PASS" start="2026-09-19T03:06:31.679521" elapsed="0.001650"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-19T03:06:31.682798" level="INFO">max :: 22194.11</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-19T03:06:31.681788" elapsed="0.001129"/>
</kw>
<var name="${i}">1</var>
<status status="PASS" start="2026-09-19T03:06:31.681342" elapsed="0.001643"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-19T03:06:31.684864" level="INFO">avg :: 21880.18</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-19T03:06:31.683551" elapsed="0.001487"/>
</kw>
<var name="${i}">2</var>
<status status="PASS" start="2026-09-19T03:06:31.683156" elapsed="0.001996"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-19T03:06:31.687643" level="INFO">stdev :: 7295.64</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-19T03:06:31.686063" elapsed="0.001767"/>
</kw>
<var name="${i}">3</var>
<status status="PASS" start="2026-09-19T03:06:31.685426" elapsed="0.002511"/>
</iter>
<var>${i}</var>
<value>0</value>
<value>${num_stats}</value>
<status status="PASS" start="2026-09-19T03:06:31.679082" elapsed="0.008957"/>
</for>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-09-19T03:06:31.690060" level="INFO">${min} = 21592.10</msg>
<var>${min}</var>
<arg>${result_value_list[${0}]}</arg>
<doc>Returns the given values which can then be assigned to a variable.</doc>
<status status="PASS" start="2026-09-19T03:06:31.688668" elapsed="0.001479"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-09-19T03:06:31.692185" level="INFO">${max} = 22194.11</msg>
<var>${max}</var>
<arg>${result_value_list[${1}]}</arg>
<doc>Returns the given values which can then be assigned to a variable.</doc>
<status status="PASS" start="2026-09-19T03:06:31.690748" elapsed="0.001520"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-09-19T03:06:31.694259" level="INFO">${average} = 21880.18</msg>
<var>${average}</var>
<arg>${result_value_list[${2}]}</arg>
<doc>Returns the given values which can then be assigned to a variable.</doc>
<status status="PASS" start="2026-09-19T03:06:31.692888" elapsed="0.001462"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-09-19T03:06:31.696102" level="INFO">${stdev} = 7295.64</msg>
<var>${stdev}</var>
<arg>${result_value_list[${3}]}</arg>
<doc>Returns the given values which can then be assigned to a variable.</doc>
<status status="PASS" start="2026-09-19T03:06:31.694920" elapsed="0.001270"/>
</kw>
<kw name="Get Time" owner="BuiltIn">
<msg time="2026-09-19T03:06:31.698123" level="INFO">${date} = 2026-09-19 03:06:31</msg>
<var>${date}</var>
<arg>d,m,s</arg>
<doc>Returns the given time in the requested format.</doc>
<status status="PASS" start="2026-09-19T03:06:31.696925" elapsed="0.001264"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-19T03:06:31.699786" level="INFO">CBench Result: 2026-09-19 03:06:31,-m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633,21592.10,22194.11,21880.18,7295.64</msg>
<arg>CBench Result: ${date},${cbench_args},${min},${max},${average},${stdev}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-19T03:06:31.698849" elapsed="0.001047"/>
</kw>
<kw name="Log Results And Determine Status">
<kw name="Append To File" owner="OperatingSystem">
<msg time="2026-09-19T03:06:31.701861" level="INFO" html="true">Appended to file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-cbench-only-chromium/bug.csv"&gt;/w/workspace/openflowplugin-csit-1node-cbench-only-chromium/bug.csv&lt;/a&gt;'.</msg>
<arg>${output_file}</arg>
<arg>${min},${max},${average}\n</arg>
<doc>Appends the given content to the specified file.</doc>
<status status="PASS" start="2026-09-19T03:06:31.701129" elapsed="0.000873"/>
</kw>
<kw name="Should Be True" owner="BuiltIn">
<arg>${average} &gt; ${threshold}</arg>
<arg>${average} flow_mods per/sec did not exceed threshold of ${threshold}</arg>
<doc>Fails if the given condition is not true.</doc>
<status status="PASS" start="2026-09-19T03:06:31.702338" elapsed="0.001375"/>
</kw>
<arg>${min}</arg>
<arg>${max}</arg>
<arg>${average}</arg>
<arg>${average_threshold}</arg>
<arg>${output_filename}</arg>
<status status="PASS" start="2026-09-19T03:06:31.700242" elapsed="0.003573"/>
</kw>
<arg>-m ${duration_in_ms} -M ${num_of_unique_macs} -S ${switch_count} -l ${loops} -D ${start_delay} -p ${of_port}</arg>
<arg>${latency_threshold}</arg>
<arg>bug.csv</arg>
<status status="PASS" start="2026-09-19T02:56:24.922257" elapsed="606.781660"/>
</kw>
<kw name="Sleep" owner="BuiltIn">
<msg time="2026-09-19T03:06:31.704889" level="INFO">Slept 0 seconds.</msg>
<arg>${test_delay}</arg>
<doc>Pauses execution for the given time.</doc>
<status status="PASS" start="2026-09-19T03:06:31.704226" elapsed="0.000768"/>
</kw>
<kw name="Report Failure Due To Bug" owner="Utils" type="TEARDOWN">
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-09-19T03:06:31.707460" level="INFO">${test_skipped} = False</msg>
<var>${test_skipped}</var>
<arg>len(re.findall('SKIPPED', """${TEST_MESSAGE}""")) &gt; 0</arg>
<arg>modules=re</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-09-19T03:06:31.706512" elapsed="0.001004"/>
</kw>
<if>
<branch type="IF" condition="('${TEST_STATUS}' != 'FAIL') or ${test_skipped}">
<return>
<status status="PASS" start="2026-09-19T03:06:31.708152" elapsed="0.000072"/>
</return>
<status status="PASS" start="2026-09-19T03:06:31.707708" elapsed="0.000583"/>
</branch>
<status status="PASS" start="2026-09-19T03:06:31.707661" elapsed="0.000683"/>
</if>
<kw name="Comment" owner="BuiltIn">
<arg>Jira tickets are {PROJECT}-{NUMBER} while Bugzilla tickets are {NUMBER}</arg>
<doc>Displays the given messages in the log file as keyword arguments.</doc>
<status status="NOT RUN" start="2026-09-19T03:06:31.708717" elapsed="0.000044"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<var>${match}</var>
<arg>Should Contain</arg>
<arg>${number}</arg>
<arg>-</arg>
<doc>Runs the specified keyword and returns the status as a Boolean value.</doc>
<status status="NOT RUN" start="2026-09-19T03:06:31.709046" elapsed="0.000043"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<var>${bug_url}</var>
<arg>${match}</arg>
<arg>https://jira.opendaylight.org/browse/${number}</arg>
<arg>https://bugs.opendaylight.org/show_bug.cgi?id=${number}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="NOT RUN" start="2026-09-19T03:06:31.709474" elapsed="0.000047"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<var>${msg}</var>
<arg>This test fails due to ${bug_url}</arg>
<doc>Returns the given values which can then be assigned to a variable.</doc>
<status status="NOT RUN" start="2026-09-19T03:06:31.709957" elapsed="0.000047"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${newline}</var>
<arg>chr(10)</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-09-19T03:06:31.710431" elapsed="0.000047"/>
</kw>
<kw name="Set Test Message" owner="BuiltIn">
<arg>${msg}${newline}${newline}${TEST_MESSAGE}</arg>
<doc>Sets message of the current test case.</doc>
<status status="NOT RUN" start="2026-09-19T03:06:31.710809" elapsed="0.000046"/>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${msg}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-09-19T03:06:31.711224" elapsed="0.000047"/>
</kw>
<if>
<branch type="IF" condition="&quot;${include_bug_in_tags}&quot;==&quot;True&quot;">
<kw name="Set Tags" owner="BuiltIn">
<arg>${bug_url}</arg>
<doc>Adds The given `tags` for the current test or all tests in a suite.</doc>
<status status="NOT RUN" start="2026-09-19T03:06:31.711747" elapsed="0.000044"/>
</kw>
<status status="NOT RUN" start="2026-09-19T03:06:31.711423" elapsed="0.000434"/>
</branch>
<status status="NOT RUN" start="2026-09-19T03:06:31.711384" elapsed="0.000523"/>
</if>
<arg>6176</arg>
<doc>Report that a test failed due to a known Bugzilla bug whose
number is provided as an argument.
Not FAILED (incl. SKIPPED) test are not reported.
This keyword must be used in the [Teardown] setting of the affected test
or as the first line of the test if FastFail module is not being
used. It reports the URL of the bug on console and also puts it
into the Robot log file.</doc>
<status status="PASS" start="2026-09-19T03:06:31.705754" elapsed="0.006265"/>
</kw>
<doc>cbench executed in latency mode to see if controller is healthy</doc>
<tag>cbench</tag>
<tag>latency</tag>
<timeout value="15 minutes"/>
<status status="PASS" start="2026-09-19T02:56:24.919604" elapsed="606.792510"/>
</test>
<doc>Cbench Latency and Throughput tests can be run from an external
cbench.
If cbench is run with a medium number of switches or higher (e.g. 32+)
the normal openflow operations seem to break.
BUG: https://bugs.opendaylight.org/show_bug.cgi?id=2897</doc>
<status status="PASS" start="2026-09-19T02:36:09.100691" elapsed="1822.612589"/>
</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>
