<?xml version="1.0" encoding="UTF-8"?>
<robot generator="Robot 7.4.2 (Python 3.11.10 on linux)" generated="2026-04-14T05:04:54.218481" rpa="false" schemaversion="5">
<suite id="s1" name="openflowplugin-cbench.txt" source="/w/workspace/openflowplugin-csit-1node-cbench-only-titanium/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-04-14T05:04:54.813408" elapsed="0.000024"/>
</return>
<status status="NOT RUN" start="2026-04-14T05:04:54.813234" elapsed="0.000255"/>
</branch>
<status status="PASS" start="2026-04-14T05:04:54.813200" elapsed="0.000317"/>
</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-04-14T05:04:54.813664" elapsed="0.000560"/>
</kw>
<kw name="Login" owner="SSHLibrary">
<msg time="2026-04-14T05:04:54.814720" level="INFO">Logging into '10.30.170.133:8101' as 'karaf'.</msg>
<msg time="2026-04-14T05:04:55.548719" 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-04-14T05:04:54.814414" elapsed="0.734515"/>
</kw>
<kw name="Write" owner="SSHLibrary">
<msg time="2026-04-14T05:04:55.598026" 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-04-14T05:04:55.549212" elapsed="0.048892"/>
</kw>
<kw name="Read Until Regexp" owner="SSHLibrary">
<msg time="2026-04-14T05:04:55.599843" level="INFO">[?1l&gt;[?2004l[?1h=[90m~[0m                                                                                [?2004hopendaylight-user@root&gt;</msg>
<msg time="2026-04-14T05:04:55.599953" 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-04-14T05:04:55.598293" elapsed="0.001691"/>
</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-04-14T05:04:55.600137" elapsed="0.000238"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-04-14T05:04:55.600534" elapsed="0.000217"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-14T05:04:55.601221" 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-04-14T05:04:55.600897" elapsed="0.000378"/>
</kw>
<return>
<value>${output}</value>
<status status="PASS" start="2026-04-14T05:04:55.601329" elapsed="0.000079"/>
</return>
<arg>log:set ${log_level}</arg>
<doc>Will execute the given ${cmd} by ssh'ing to the karaf console running on 10.30.170.133
Note that this keyword will open&amp;close new SSH connection, without switching back to previously current session.</doc>
<status status="PASS" start="2026-04-14T05:04:54.812823" elapsed="0.788711"/>
</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-04-14T05:04:54.809186" elapsed="0.792411"/>
</kw>
<kw name="Append To File" owner="OperatingSystem">
<msg time="2026-04-14T05:04:55.602188" level="INFO" html="true">Appended to file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-cbench-only-titanium/latency.csv"&gt;/w/workspace/openflowplugin-csit-1node-cbench-only-titanium/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-04-14T05:04:55.601811" elapsed="0.000435"/>
</kw>
<kw name="Append To File" owner="OperatingSystem">
<msg time="2026-04-14T05:04:55.602666" level="INFO" html="true">Appended to file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-cbench-only-titanium/throughput.csv"&gt;/w/workspace/openflowplugin-csit-1node-cbench-only-titanium/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-04-14T05:04:55.602416" elapsed="0.000315"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-14T05:04:55.603274" 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-04-14T05:04:55.602883" elapsed="0.000422"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-04-14T05:04:55.603857" level="INFO">${duration_in_ms} = 60000</msg>
<arg>${duration_in_ms}</arg>
<doc>Makes a variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-04-14T05:04:55.603522" elapsed="0.000378"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-14T05:04:55.604448" 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-04-14T05:04:55.604047" elapsed="0.000429"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-04-14T05:04:55.604949" level="INFO">${test_timeout} = 900.0</msg>
<arg>${test_timeout}</arg>
<doc>Makes a variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-04-14T05:04:55.604635" elapsed="0.000356"/>
</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-04-14T05:04:55.605289" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-04-14T05:04:55.605076" elapsed="0.000268"/>
</branch>
<branch type="ELSE">
<kw name="Verify File Exists On Remote System" owner="Utils">
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-04-14T05:04:55.609989" 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-04-14T05:04:55.609561" elapsed="0.000456"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-04-14T05:04:55.611021" level="INFO">Length is 0.</msg>
<msg time="2026-04-14T05:04:55.611104" 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-04-14T05:04:55.610583" elapsed="0.000545"/>
</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>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-04-14T05:04:55.611271" elapsed="0.000381"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-04-14T05:04:55.612664" level="INFO">Logging into '10.30.170.12:22' as 'jenkins'.</msg>
<msg time="2026-04-14T05:04:56.437764" level="INFO">Read output: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-153-generic x86_64)

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

 System information as of Tue Apr 14 05:04:55 UTC 2026

  System load:  0.25               Processes:             110
  Usage of /:   19.3% of 38.58GB   Users logged in:       0
  Memory usage: 4%                 IPv4 address for ens3: 10.30.170.12
  Swap usage:   0%


Expanded Security Maintenance for Applications is not enabled.

0 updates can be applied immediately.

9 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.4 LTS' available.
Run 'do-release-upgrade' to upgrade to it.


[?2004h[jenkins@releng-48317-689-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-04-14T05:04:55.612152" elapsed="0.825782"/>
</kw>
<msg time="2026-04-14T05:04:56.438028" 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-04-14T05:04:55.611806" elapsed="0.826316"/>
</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-04-14T05:04:55.610222" elapsed="0.828025"/>
</kw>
<kw name="File Should Exist" owner="SSHLibrary">
<msg time="2026-04-14T05:04:56.444971" 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-04-14T05:04:56.438514" elapsed="0.008206"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-04-14T05:04:56.446930" elapsed="0.000310"/>
</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-04-14T05:04:55.609017" elapsed="0.838293"/>
</kw>
<status status="PASS" start="2026-04-14T05:04:55.605686" elapsed="0.841665"/>
</branch>
<status status="PASS" start="2026-04-14T05:04:55.605050" elapsed="0.842362"/>
</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-04-14T05:04:56.447573" elapsed="0.000505"/>
</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-04-14T05:04:56.453029" elapsed="0.000025"/>
</return>
<status status="NOT RUN" start="2026-04-14T05:04:56.452859" elapsed="0.000244"/>
</branch>
<status status="PASS" start="2026-04-14T05:04:56.452824" elapsed="0.000313"/>
</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-04-14T05:04:56.458086" elapsed="0.000020"/>
</return>
<status status="NOT RUN" start="2026-04-14T05:04:56.457929" elapsed="0.000223"/>
</branch>
<status status="PASS" start="2026-04-14T05:04:56.457900" elapsed="0.000283"/>
</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-04-14T05:04:56.458426" elapsed="0.000626"/>
</kw>
<kw name="Login" owner="SSHLibrary">
<msg time="2026-04-14T05:04:56.459617" level="INFO">Logging into '10.30.170.133:8101' as 'karaf'.</msg>
<msg time="2026-04-14T05:04:56.711764" 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-04-14T05:04:56.459264" elapsed="0.252627"/>
</kw>
<kw name="Write" owner="SSHLibrary">
<msg time="2026-04-14T05:04:56.807415" 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-04-14T05:04:56.712093" elapsed="0.095492"/>
</kw>
<kw name="Read Until Regexp" owner="SSHLibrary">
<msg time="2026-04-14T05:04:56.812977" level="INFO">[?1l&gt;[?2004l[31;1modl-openflowplugin-drop-test[0m                                    x 0.20.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-04-14T05:04:56.813161" level="INFO">${output} = [?1l&gt;[?2004l[31;1modl-openflowplugin-drop-test[0m                                    x 0.20.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-04-14T05:04:56.807860" elapsed="0.005334"/>
</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-04-14T05:04:56.813339" elapsed="0.000274"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-04-14T05:04:56.813747" elapsed="0.000216"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-14T05:04:56.814423" level="INFO">[?1l&gt;[?2004l[31;1modl-openflowplugin-drop-test[0m                                    x 0.20.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-04-14T05:04:56.814096" elapsed="0.000391"/>
</kw>
<return>
<value>${output}</value>
<status status="PASS" start="2026-04-14T05:04:56.814538" elapsed="0.000073"/>
</return>
<msg time="2026-04-14T05:04:56.814762" level="INFO">${output} = [?1l&gt;[?2004l[31;1modl-openflowplugin-drop-test[0m                                    x 0.20.2           x x        x Started x [31;1modl-openflowplugin-drop-test[0m                     ...</msg>
<var>${output}</var>
<arg>feature:list -i | grep ${feature_name}</arg>
<arg>${controller}</arg>
<arg>${karaf_port}</arg>
<doc>Will execute the given ${cmd} by ssh'ing to the karaf console running on 10.30.170.133
Note that this keyword will open&amp;close new SSH connection, without switching back to previously current session.</doc>
<status status="PASS" start="2026-04-14T05:04:56.457431" elapsed="0.357363"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${output}</arg>
<arg>${feature_name}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-04-14T05:04:56.814941" elapsed="0.000519"/>
</kw>
<return>
<value>${output}</value>
<status status="PASS" start="2026-04-14T05:04:56.815512" elapsed="0.000032"/>
</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-04-14T05:04:56.452430" elapsed="0.363211"/>
</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-04-14T05:04:56.819349" elapsed="0.000031"/>
</return>
<status status="NOT RUN" start="2026-04-14T05:04:56.819213" elapsed="0.000201"/>
</branch>
<status status="PASS" start="2026-04-14T05:04:56.819189" elapsed="0.000248"/>
</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-04-14T05:04:56.819566" elapsed="0.000436"/>
</kw>
<kw name="Login" owner="SSHLibrary">
<msg time="2026-04-14T05:04:56.820426" level="INFO">Logging into '10.30.170.133:8101' as 'karaf'.</msg>
<msg time="2026-04-14T05:04:56.982986" 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-04-14T05:04:56.820147" elapsed="0.162929"/>
</kw>
<kw name="Write" owner="SSHLibrary">
<msg time="2026-04-14T05:04:57.008469" 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-04-14T05:04:56.983236" elapsed="0.025291"/>
</kw>
<kw name="Read Until Regexp" owner="SSHLibrary">
<msg time="2026-04-14T05:04:57.010245" level="INFO">[?1l&gt;[?2004lDropAllFlows transitions to on
[?1h=[90m~[0m                                                                                [?2004hopendaylight-user@root&gt;</msg>
<msg time="2026-04-14T05:04:57.010339" 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-04-14T05:04:57.008672" elapsed="0.001708"/>
</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-04-14T05:04:57.010514" elapsed="0.000168"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-04-14T05:04:57.010855" elapsed="0.000160"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-14T05:04:57.011434" 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-04-14T05:04:57.011150" elapsed="0.000333"/>
</kw>
<return>
<value>${output}</value>
<status status="PASS" start="2026-04-14T05:04:57.011530" elapsed="0.000039"/>
</return>
<arg>dropallpacketsrpc on</arg>
<doc>Will execute the given ${cmd} by ssh'ing to the karaf console running on 10.30.170.133
Note that this keyword will open&amp;close new SSH connection, without switching back to previously current session.</doc>
<status status="PASS" start="2026-04-14T05:04:56.818890" elapsed="0.192778"/>
</kw>
<status status="PASS" start="2026-04-14T05:04:54.807204" elapsed="2.204523"/>
</kw>
<test id="s1-t1" name="Cbench Latency Test" line="37">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-14T05:04:57.013615" 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-04-14T05:04:57.012635" elapsed="0.001045"/>
</kw>
<kw name="Run Cbench And Log Results">
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-04-14T05:04:57.015461" level="INFO">${output_filename} = latency.csv</msg>
<arg>${output_filename}</arg>
<doc>Makes a variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-04-14T05:04:57.015059" elapsed="0.000447"/>
</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
[http://robotframework.org/robotframework/latest/libraries/Process.html|
Process] library instead._</doc>
<status status="NOT RUN" start="2026-04-14T05:04:57.015808" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-14T05:04:57.015581" elapsed="0.000286"/>
</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 with the given message and optionally alters its tags.</doc>
<status status="NOT RUN" start="2026-04-14T05:04:57.018853" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-04-14T05:04:57.018560" elapsed="0.000351"/>
</branch>
<status status="PASS" start="2026-04-14T05:04:57.018539" elapsed="0.000398"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-04-14T05:04:57.019261" 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-04-14T05:04:57.019399" 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-04-14T05:04:57.019065" elapsed="0.000362"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-14T05:04:57.019981" level="INFO">Attempting to execute command "/usr/local/bin/cbench -c 10.30.170.133 -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633" on remote system "10.30.170.12" 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-04-14T05:04:57.019561" elapsed="0.000480"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-04-14T05:04:57.020644" 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-04-14T05:04:57.020179" elapsed="0.000491"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-04-14T05:04:57.021565" level="INFO">Length is 0.</msg>
<msg time="2026-04-14T05:04:57.021656" 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-04-14T05:04:57.021236" 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>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-04-14T05:04:57.021819" elapsed="0.000324"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-04-14T05:04:57.023020" level="INFO">Logging into '10.30.170.12:22' as 'jenkins'.</msg>
<msg time="2026-04-14T05:04:57.325331" level="INFO">Read output: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-153-generic x86_64)

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

 System information as of Tue Apr 14 05:04:55 UTC 2026

  System load:  0.25               Processes:             110
  Usage of /:   19.3% of 38.58GB   Users logged in:       0
  Memory usage: 4%                 IPv4 address for ens3: 10.30.170.12
  Swap usage:   0%


Expanded Security Maintenance for Applications is not enabled.

0 updates can be applied immediately.

9 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.4 LTS' available.
Run 'do-release-upgrade' to upgrade to it.


Last login: Tue Apr 14 05:04:56 2026 from 10.30.171.44
[?2004h[jenkins@releng-48317-689-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-04-14T05:04:57.022652" elapsed="0.302856"/>
</kw>
<msg time="2026-04-14T05:04:57.325589" 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-04-14T05:04:57.022293" elapsed="0.303373"/>
</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-04-14T05:04:57.020868" elapsed="0.304911"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-04-14T05:04:57.326544" level="INFO">Executing command '/usr/local/bin/cbench -c 10.30.170.133 -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633'.</msg>
<msg time="2026-04-14T05:15:03.426890" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-04-14T05:15:03.427570" level="INFO">${stdout} = </msg>
<msg time="2026-04-14T05:15:03.427701" level="INFO">${stderr} = cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.170.133: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-04-14T05:04:57.325993" elapsed="606.101778"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-04-14T05:15:03.428294" elapsed="0.000852"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-14T05:15:03.430543" level="INFO">cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.170.133:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with 100 unique source MACs per switch
   learning destination mac addresses before the test
   starting test with 5000 ms delay after features_reply
   ignoring first 1 "warmup" and last 0 "cooldown" loops
   debugging info is off
Master Thread: Creating thread-0! 
Thread-0: All switches initialized. Running at node 10.30.170.133. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
05:06:02.517 16  switches: flows:  108516 110447 108065 109786 108450 108411 110152 109128 107323 106943 105596 109225 105776 106582 107800 106979  total = 28.819650 per ms 
05:07:02.617 16  switches: flows:  121440 121620 120991 120324 121007 119891 120712 120476 119154 118204 117361 120463 118730 118112 116657 118673  total = 31.843726 per ms 
05:08:02.717 16  switches: flows:  117544 117786 116216 116852 116989 115037 117204 116895 116292 116310 114803 116298 115366 114061 114367 115355  total = 30.904650 per ms 
05:09:02.817 16  switches: flows:  120409 120579 118249 119433 121070 117910 120867 118484 118393 117458 116883 118498 118116 116601 117060 117389  total = 31.570571 per ms 
05:10:02.918 16  switches: flows:  114752 115791 113359 115427 116555 116145 112229 113456 114299 114307 112283 115268 111469 112888 112835 115503  total = 30.391982 per ms 
05:11:03.018 16  switches: flows:  119462 119488 119674 120644 123120 120550 118716 119388 118598 117691 118282 119141 116087 116786 118012 119032  total = 31.691638 per ms 
05:12:03.118 16  switches: flows:  111939 110817 109310 111230 111499 110571 110150 109089 107769 108158 107867 108878 107642 106981 108263 108974  total = 29.103697 per ms 
05:13:03.219 16  switches: flows:  119722 117573 115610 116146 118420 115592 119287 115481 112656 115768 114195 117670 116844 115014 113447 114580  total = 30.915081 per ms 
05:14:03.319 16  switches: flows:  121854 120568 116052 117447 119115 116750 120066 117434 114714 117956 116874 118239 118091 117321 113487 117697  total = 31.342050 per ms 
05:15:03.419 16  switches: flows:  122528 120248 118937 121849 121342 120423 121964 118863 117869 118064 119984 119656 118288 117291 116855 118581  total = 31.825898 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 29103.70/31843.73/31065.48/10388.68 responses/s</msg>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-14T05:15:03.429593" elapsed="0.001452"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="PASS" start="2026-04-14T05:15:03.431703" elapsed="0.000066"/>
</return>
<status status="PASS" start="2026-04-14T05:15:03.431311" elapsed="0.000526"/>
</branch>
<status status="PASS" start="2026-04-14T05:15:03.431237" elapsed="0.000644"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="NOT RUN" start="2026-04-14T05:15:03.432077" elapsed="0.000027"/>
</return>
<status status="NOT RUN" start="2026-04-14T05:15:03.432001" elapsed="0.000156"/>
</branch>
<status status="NOT RUN" start="2026-04-14T05:15:03.431968" elapsed="0.000230"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-04-14T05:15:03.432261" elapsed="0.000026"/>
</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>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-04-14T05:15:03.437103" elapsed="0.000612"/>
</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-04-14T05:15:03.437978" elapsed="0.000403"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-04-14T05:15:03.438653" elapsed="0.000150"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-04-14T05:15:03.432827" elapsed="0.006052"/>
</kw>
<msg time="2026-04-14T05:15:03.439059" level="INFO">${output} = cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.170.133: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-04-14T05:04:57.016209" elapsed="606.422887"/>
</kw>
<status status="PASS" start="2026-04-14T05:04:57.015895" elapsed="606.423270"/>
</branch>
<status status="PASS" start="2026-04-14T05:04:57.015559" elapsed="606.423638"/>
</if>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-14T05:15:03.439880" level="INFO">cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.170.133:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with 100 unique source MACs per switch
   learning destination mac addresses before the test
   starting test with 5000 ms delay after features_reply
   ignoring first 1 "warmup" and last 0 "cooldown" loops
   debugging info is off
Master Thread: Creating thread-0! 
Thread-0: All switches initialized. Running at node 10.30.170.133. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
05:06:02.517 16  switches: flows:  108516 110447 108065 109786 108450 108411 110152 109128 107323 106943 105596 109225 105776 106582 107800 106979  total = 28.819650 per ms 
05:07:02.617 16  switches: flows:  121440 121620 120991 120324 121007 119891 120712 120476 119154 118204 117361 120463 118730 118112 116657 118673  total = 31.843726 per ms 
05:08:02.717 16  switches: flows:  117544 117786 116216 116852 116989 115037 117204 116895 116292 116310 114803 116298 115366 114061 114367 115355  total = 30.904650 per ms 
05:09:02.817 16  switches: flows:  120409 120579 118249 119433 121070 117910 120867 118484 118393 117458 116883 118498 118116 116601 117060 117389  total = 31.570571 per ms 
05:10:02.918 16  switches: flows:  114752 115791 113359 115427 116555 116145 112229 113456 114299 114307 112283 115268 111469 112888 112835 115503  total = 30.391982 per ms 
05:11:03.018 16  switches: flows:  119462 119488 119674 120644 123120 120550 118716 119388 118598 117691 118282 119141 116087 116786 118012 119032  total = 31.691638 per ms 
05:12:03.118 16  switches: flows:  111939 110817 109310 111230 111499 110571 110150 109089 107769 108158 107867 108878 107642 106981 108263 108974  total = 29.103697 per ms 
05:13:03.219 16  switches: flows:  119722 117573 115610 116146 118420 115592 119287 115481 112656 115768 114195 117670 116844 115014 113447 114580  total = 30.915081 per ms 
05:14:03.319 16  switches: flows:  121854 120568 116052 117447 119115 116750 120066 117434 114714 117956 116874 118239 118091 117321 113487 117697  total = 31.342050 per ms 
05:15:03.419 16  switches: flows:  122528 120248 118937 121849 121342 120423 121964 118863 117869 118064 119984 119656 118288 117291 116855 118581  total = 31.825898 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 29103.70/31843.73/31065.48/10388.68 responses/s</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-14T05:15:03.439455" elapsed="0.000523"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${output}</arg>
<arg>RESULT</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-04-14T05:15:03.440168" elapsed="0.000417"/>
</kw>
<kw name="Get Lines Containing String" owner="String">
<msg time="2026-04-14T05:15:03.440984" level="INFO">1 out of 23 lines matched.</msg>
<msg time="2026-04-14T05:15:03.441077" level="INFO">${result_line} = RESULT: 16 switches 9 tests min/max/avg/stdev = 29103.70/31843.73/31065.48/10388.68 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-04-14T05:15:03.440752" elapsed="0.000356"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-04-14T05:15:03.441546" level="INFO">@{results_list} = [ RESULT: | 16 | switches | 9 | tests | min/max/avg/stdev | = | 29103.70/31843.73/31065.48/10388.68 | 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-04-14T05:15:03.441266" elapsed="0.000308"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-14T05:15:03.443986" 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-04-14T05:15:03.441718" elapsed="0.002327"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-14T05:15:03.446432" level="INFO">29103.70/31843.73/31065.48/10388.68</msg>
<arg>${results_list[7]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-14T05:15:03.444191" elapsed="0.002307"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-04-14T05:15:03.449179" 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-04-14T05:15:03.446922" elapsed="0.002294"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-04-14T05:15:03.451737" level="INFO">@{result_value_list} = [ 29103.70 | 31843.73 | 31065.48 | 10388.68 ]</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-04-14T05:15:03.449453" elapsed="0.002312"/>
</kw>
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-04-14T05:15:03.452252" level="INFO">Length is 4.</msg>
<msg time="2026-04-14T05:15:03.452349" 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-04-14T05:15:03.451917" elapsed="0.000473"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-14T05:15:03.459026" level="INFO">min :: 29103.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-04-14T05:15:03.452939" elapsed="0.006166"/>
</kw>
<var name="${i}">0</var>
<status status="PASS" start="2026-04-14T05:15:03.452719" elapsed="0.006435"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-14T05:15:03.463830" level="INFO">max :: 31843.73</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-04-14T05:15:03.459489" elapsed="0.004397"/>
</kw>
<var name="${i}">1</var>
<status status="PASS" start="2026-04-14T05:15:03.459284" elapsed="0.004637"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-14T05:15:03.468402" level="INFO">avg :: 31065.48</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-04-14T05:15:03.464136" elapsed="0.004322"/>
</kw>
<var name="${i}">2</var>
<status status="PASS" start="2026-04-14T05:15:03.464010" elapsed="0.004481"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-14T05:15:03.472926" level="INFO">stdev :: 10388.68</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-04-14T05:15:03.468711" elapsed="0.004270"/>
</kw>
<var name="${i}">3</var>
<status status="PASS" start="2026-04-14T05:15:03.468583" elapsed="0.004432"/>
</iter>
<var>${i}</var>
<value>0</value>
<value>${num_stats}</value>
<status status="PASS" start="2026-04-14T05:15:03.452463" elapsed="0.020585"/>
</for>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-14T05:15:03.476921" level="INFO">${min} = 29103.70</msg>
<var>${min}</var>
<arg>${result_value_list[${0}]}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-14T05:15:03.473215" elapsed="0.003733"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-14T05:15:03.481887" level="INFO">${max} = 31843.73</msg>
<var>${max}</var>
<arg>${result_value_list[${1}]}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-14T05:15:03.477099" elapsed="0.004816"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-14T05:15:03.485940" level="INFO">${average} = 31065.48</msg>
<var>${average}</var>
<arg>${result_value_list[${2}]}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-14T05:15:03.482067" elapsed="0.003899"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-14T05:15:03.489822" level="INFO">${stdev} = 10388.68</msg>
<var>${stdev}</var>
<arg>${result_value_list[${3}]}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-14T05:15:03.486116" elapsed="0.003733"/>
</kw>
<kw name="Get Time" owner="BuiltIn">
<msg time="2026-04-14T05:15:03.490373" level="INFO">${date} = 2026-04-14 05:15:03</msg>
<var>${date}</var>
<arg>d,m,s</arg>
<doc>Returns the given time in the requested format.</doc>
<status status="PASS" start="2026-04-14T05:15:03.490006" elapsed="0.000394"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-14T05:15:03.490993" level="INFO">CBench Result: 2026-04-14 05:15:03,-m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633,29103.70,31843.73,31065.48,10388.68</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-04-14T05:15:03.490577" elapsed="0.000470"/>
</kw>
<kw name="Log Results And Determine Status">
<kw name="Append To File" owner="OperatingSystem">
<msg time="2026-04-14T05:15:03.492148" level="INFO" html="true">Appended to file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-cbench-only-titanium/latency.csv"&gt;/w/workspace/openflowplugin-csit-1node-cbench-only-titanium/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-04-14T05:15:03.491703" elapsed="0.000511"/>
</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-04-14T05:15:03.492380" elapsed="0.000472"/>
</kw>
<arg>${min}</arg>
<arg>${max}</arg>
<arg>${average}</arg>
<arg>${average_threshold}</arg>
<arg>${output_filename}</arg>
<status status="PASS" start="2026-04-14T05:15:03.491207" elapsed="0.001711"/>
</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-04-14T05:04:57.014408" elapsed="606.478572"/>
</kw>
<kw name="Sleep" owner="BuiltIn">
<msg time="2026-04-14T05:15:03.493463" level="INFO">Slept 0 seconds.</msg>
<arg>${test_delay}</arg>
<doc>Pauses the test executed for the given time.</doc>
<status status="PASS" start="2026-04-14T05:15:03.493129" elapsed="0.000390"/>
</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-04-14T05:15:03.494028" elapsed="0.000266"/>
</kw>
<status status="PASS" start="2026-04-14T05:15:03.493731" elapsed="0.000649"/>
</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-04-14T05:04:57.011866" elapsed="606.482553"/>
</test>
<test id="s1-t2" name="Cbench Throughput Test" line="51">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-14T05:15:03.495746" 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-04-14T05:15:03.495348" elapsed="0.000454"/>
</kw>
<kw name="Run Cbench And Log Results">
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-04-14T05:15:03.497042" level="INFO">${output_filename} = throughput.csv</msg>
<arg>${output_filename}</arg>
<doc>Makes a variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-04-14T05:15:03.496715" elapsed="0.000368"/>
</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
[http://robotframework.org/robotframework/latest/libraries/Process.html|
Process] library instead._</doc>
<status status="NOT RUN" start="2026-04-14T05:15:03.497442" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-14T05:15:03.497206" elapsed="0.000295"/>
</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 with the given message and optionally alters its tags.</doc>
<status status="NOT RUN" start="2026-04-14T05:15:03.500344" elapsed="0.000037"/>
</kw>
<status status="NOT RUN" start="2026-04-14T05:15:03.500102" elapsed="0.000314"/>
</branch>
<status status="PASS" start="2026-04-14T05:15:03.500083" elapsed="0.000357"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-04-14T05:15:03.500782" 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-04-14T05:15:03.500899" 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-04-14T05:15:03.500572" elapsed="0.000353"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-14T05:15:03.501487" level="INFO">Attempting to execute command "/usr/local/bin/cbench -c 10.30.170.133 -t -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633" on remote system "10.30.170.12" 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-04-14T05:15:03.501056" elapsed="0.000487"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-04-14T05:15:03.502071" 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-04-14T05:15:03.501681" elapsed="0.000417"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-04-14T05:15:03.502997" level="INFO">Length is 0.</msg>
<msg time="2026-04-14T05:15:03.503084" 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-04-14T05:15:03.502691" elapsed="0.000417"/>
</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>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-04-14T05:15:03.503246" elapsed="0.000349"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-04-14T05:15:03.504450" level="INFO">Logging into '10.30.170.12:22' as 'jenkins'.</msg>
<msg time="2026-04-14T05:15:04.076701" level="INFO">Read output: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-153-generic x86_64)

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

 System information as of Tue Apr 14 05:15:03 UTC 2026

  System load:  1.0                Processes:             107
  Usage of /:   19.5% of 38.58GB   Users logged in:       0
  Memory usage: 4%                 IPv4 address for ens3: 10.30.170.12
  Swap usage:   0%

 * Strictly confined Kubernetes makes edge and IoT secure. Learn how MicroK8s
   just raised the bar for easy, resilient and secure K8s cluster deployment.

   https://ubuntu.com/engage/secure-kubernetes-at-the-edge

Expanded Security Maintenance for Applications is not enabled.

0 updates can be applied immediately.

9 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.4 LTS' available.
Run 'do-release-upgrade' to upgrade to it.


Last login: Tue Apr 14 05:04:57 2026 from 10.30.171.44
[?2004h[jenkins@releng-48317-689-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-04-14T05:15:03.504085" elapsed="0.572870"/>
</kw>
<msg time="2026-04-14T05:15:04.077058" 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-04-14T05:15:03.503746" elapsed="0.573421"/>
</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-04-14T05:15:03.502294" elapsed="0.575012"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-04-14T05:15:04.077928" level="INFO">Executing command '/usr/local/bin/cbench -c 10.30.170.133 -t -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633'.</msg>
<msg time="2026-04-14T05:25:10.324075" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-04-14T05:25:10.324659" level="INFO">${stdout} = </msg>
<msg time="2026-04-14T05:25:10.324769" level="INFO">${stderr} = cbench: controller benchmarking tool
   running in mode 'throughput'
   connecting to controller at 10.30.170.133: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-04-14T05:15:04.077573" elapsed="606.247259"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-04-14T05:25:10.325315" elapsed="0.000740"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-14T05:25:10.327215" level="INFO">cbench: controller benchmarking tool
   running in mode 'throughput'
   connecting to controller at 10.30.170.133:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with 100 unique source MACs per switch
   learning destination mac addresses before the test
   starting test with 5000 ms delay after features_reply
   ignoring first 1 "warmup" and last 0 "cooldown" loops
   debugging info is off
Master Thread: Creating thread-0! 
Thread-0: All switches initialized. Running at node 10.30.170.133. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
05:16:09.209 16  switches: flows:  516953 504418 513996 515172 514178 509301 510652 513362 493869 495468 501743 499973 491522 506948 504829 488365  total = 134.679150 per ms 
05:17:09.310 16  switches: flows:  534418 541444 538967 538332 543281 534551 531503 546136 543795 526556 530248 537900 535461 535552 542123 539347  total = 143.086205 per ms 
05:18:09.414 16  switches: flows:  569433 571206 579346 565028 564171 566339 570432 567537 572054 568032 568211 567700 570408 563850 568818 571597  total = 151.474187 per ms 
05:19:09.515 16  switches: flows:  539896 531188 549493 534792 544102 540491 538067 545844 541378 540486 539008 547368 528350 533723 541222 533575  total = 143.574279 per ms 
05:20:09.617 16  switches: flows:  501918 500976 505889 573472 562801 412890 470520 479467 564042 488917 567466 490930 455537 446619 477935 546763  total = 133.875312 per ms 
05:21:09.721 16  switches: flows:  579407 573956 570539 573832 580168 581465 581197 578018 577304 578649 575607 576139 581083 582419 574600 576717  total = 153.753590 per ms 
05:22:09.824 16  switches: flows:  534123 514251 526673 520166 531111 522658 528876 518313 522232 531260 533064 526466 527796 527890 519583 531784  total = 140.033035 per ms 
05:23:10.112 16  switches: flows:  570507 570246 567820 575281 561298 568773 573889 558746 575192 560978 566644 573475 566285 572719 553466 572733  total = 150.746240 per ms 
05:24:10.213 16  switches: flows:  575873 570342 575850 568878 585650 572475 576640 570781 574989 577416 581703 577521 563718 568277 573052 563506  total = 152.685770 per ms 
05:25:10.315 16  switches: flows:  561838 562842 560725 564771 565926 571249 559245 561965 573802 565708 565676 572880 573457 570296 576725 557318  total = 150.819814 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 133875.31/153753.59/146672.05/49313.23 responses/s</msg>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-14T05:25:10.326448" elapsed="0.001147"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="PASS" start="2026-04-14T05:25:10.328168" elapsed="0.000072"/>
</return>
<status status="PASS" start="2026-04-14T05:25:10.327818" elapsed="0.000504"/>
</branch>
<status status="PASS" start="2026-04-14T05:25:10.327752" elapsed="0.000657"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="NOT RUN" start="2026-04-14T05:25:10.328618" elapsed="0.000029"/>
</return>
<status status="NOT RUN" start="2026-04-14T05:25:10.328538" elapsed="0.000168"/>
</branch>
<status status="NOT RUN" start="2026-04-14T05:25:10.328502" elapsed="0.000251"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-04-14T05:25:10.328819" elapsed="0.000029"/>
</return>
<kw name="Restore_Current_Ssh_Connection_From_Index" owner="SSHKeywords" type="TEARDOWN">
<kw name="Run Keyword And Return If" owner="BuiltIn">
<arg>${connection_index} is not None</arg>
<arg>SSHLibrary.Switch Connection</arg>
<arg>${connection_index}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-04-14T05:25:10.333965" elapsed="0.000523"/>
</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-04-14T05:25:10.334706" elapsed="0.000254"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-04-14T05:25:10.335149" elapsed="0.000149"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-04-14T05:25:10.329529" elapsed="0.005868"/>
</kw>
<msg time="2026-04-14T05:25:10.335631" level="INFO">${output} = cbench: controller benchmarking tool
   running in mode 'throughput'
   connecting to controller at 10.30.170.133: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-04-14T05:15:03.497847" elapsed="606.837830"/>
</kw>
<status status="PASS" start="2026-04-14T05:15:03.497527" elapsed="606.838238"/>
</branch>
<status status="PASS" start="2026-04-14T05:15:03.497182" elapsed="606.838627"/>
</if>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-14T05:25:10.336480" level="INFO">cbench: controller benchmarking tool
   running in mode 'throughput'
   connecting to controller at 10.30.170.133:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with 100 unique source MACs per switch
   learning destination mac addresses before the test
   starting test with 5000 ms delay after features_reply
   ignoring first 1 "warmup" and last 0 "cooldown" loops
   debugging info is off
Master Thread: Creating thread-0! 
Thread-0: All switches initialized. Running at node 10.30.170.133. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
05:16:09.209 16  switches: flows:  516953 504418 513996 515172 514178 509301 510652 513362 493869 495468 501743 499973 491522 506948 504829 488365  total = 134.679150 per ms 
05:17:09.310 16  switches: flows:  534418 541444 538967 538332 543281 534551 531503 546136 543795 526556 530248 537900 535461 535552 542123 539347  total = 143.086205 per ms 
05:18:09.414 16  switches: flows:  569433 571206 579346 565028 564171 566339 570432 567537 572054 568032 568211 567700 570408 563850 568818 571597  total = 151.474187 per ms 
05:19:09.515 16  switches: flows:  539896 531188 549493 534792 544102 540491 538067 545844 541378 540486 539008 547368 528350 533723 541222 533575  total = 143.574279 per ms 
05:20:09.617 16  switches: flows:  501918 500976 505889 573472 562801 412890 470520 479467 564042 488917 567466 490930 455537 446619 477935 546763  total = 133.875312 per ms 
05:21:09.721 16  switches: flows:  579407 573956 570539 573832 580168 581465 581197 578018 577304 578649 575607 576139 581083 582419 574600 576717  total = 153.753590 per ms 
05:22:09.824 16  switches: flows:  534123 514251 526673 520166 531111 522658 528876 518313 522232 531260 533064 526466 527796 527890 519583 531784  total = 140.033035 per ms 
05:23:10.112 16  switches: flows:  570507 570246 567820 575281 561298 568773 573889 558746 575192 560978 566644 573475 566285 572719 553466 572733  total = 150.746240 per ms 
05:24:10.213 16  switches: flows:  575873 570342 575850 568878 585650 572475 576640 570781 574989 577416 581703 577521 563718 568277 573052 563506  total = 152.685770 per ms 
05:25:10.315 16  switches: flows:  561838 562842 560725 564771 565926 571249 559245 561965 573802 565708 565676 572880 573457 570296 576725 557318  total = 150.819814 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 133875.31/153753.59/146672.05/49313.23 responses/s</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-14T05:25:10.336030" elapsed="0.000558"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${output}</arg>
<arg>RESULT</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-04-14T05:25:10.336805" elapsed="0.000547"/>
</kw>
<kw name="Get Lines Containing String" owner="String">
<msg time="2026-04-14T05:25:10.337927" level="INFO">1 out of 23 lines matched.</msg>
<msg time="2026-04-14T05:25:10.338058" level="INFO">${result_line} = RESULT: 16 switches 9 tests min/max/avg/stdev = 133875.31/153753.59/146672.05/49313.23 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-04-14T05:25:10.337607" elapsed="0.000487"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-04-14T05:25:10.338706" level="INFO">@{results_list} = [ RESULT: | 16 | switches | 9 | tests | min/max/avg/stdev | = | 133875.31/153753.59/146672.05/49313.23 | 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-04-14T05:25:10.338316" elapsed="0.000430"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-14T05:25:10.342374" 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-04-14T05:25:10.338955" elapsed="0.003503"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-14T05:25:10.345565" level="INFO">133875.31/153753.59/146672.05/49313.23</msg>
<arg>${results_list[7]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-14T05:25:10.342676" elapsed="0.002944"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-04-14T05:25:10.348005" 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-04-14T05:25:10.345769" elapsed="0.002263"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-04-14T05:25:10.350434" level="INFO">@{result_value_list} = [ 133875.31 | 153753.59 | 146672.05 | 49313.23 ]</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-04-14T05:25:10.348226" elapsed="0.002235"/>
</kw>
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-04-14T05:25:10.350921" level="INFO">Length is 4.</msg>
<msg time="2026-04-14T05:25:10.351008" 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-04-14T05:25:10.350612" elapsed="0.000419"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-14T05:25:10.355801" level="INFO">min :: 133875.31</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-04-14T05:25:10.351445" elapsed="0.004413"/>
</kw>
<var name="${i}">0</var>
<status status="PASS" start="2026-04-14T05:25:10.351300" elapsed="0.004592"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-14T05:25:10.360913" level="INFO">max :: 153753.59</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-04-14T05:25:10.356139" elapsed="0.004830"/>
</kw>
<var name="${i}">1</var>
<status status="PASS" start="2026-04-14T05:25:10.355984" elapsed="0.005020"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-14T05:25:10.365774" level="INFO">avg :: 146672.05</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-04-14T05:25:10.361218" elapsed="0.004615"/>
</kw>
<var name="${i}">2</var>
<status status="PASS" start="2026-04-14T05:25:10.361092" elapsed="0.004777"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-14T05:25:10.370698" level="INFO">stdev :: 49313.23</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-14T05:25:10.366099" elapsed="0.004674"/>
</kw>
<var name="${i}">3</var>
<status status="PASS" start="2026-04-14T05:25:10.365962" elapsed="0.004849"/>
</iter>
<var>${i}</var>
<value>0</value>
<value>${num_stats}</value>
<status status="PASS" start="2026-04-14T05:25:10.351102" elapsed="0.019742"/>
</for>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-14T05:25:10.375068" level="INFO">${min} = 133875.31</msg>
<var>${min}</var>
<arg>${result_value_list[${0}]}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-14T05:25:10.371012" elapsed="0.004084"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-14T05:25:10.379038" level="INFO">${max} = 153753.59</msg>
<var>${max}</var>
<arg>${result_value_list[${1}]}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-14T05:25:10.375251" elapsed="0.003813"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-14T05:25:10.383030" level="INFO">${average} = 146672.05</msg>
<var>${average}</var>
<arg>${result_value_list[${2}]}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-14T05:25:10.379216" elapsed="0.003841"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-14T05:25:10.386984" level="INFO">${stdev} = 49313.23</msg>
<var>${stdev}</var>
<arg>${result_value_list[${3}]}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-14T05:25:10.383206" elapsed="0.003804"/>
</kw>
<kw name="Get Time" owner="BuiltIn">
<msg time="2026-04-14T05:25:10.387606" level="INFO">${date} = 2026-04-14 05:25:10</msg>
<var>${date}</var>
<arg>d,m,s</arg>
<doc>Returns the given time in the requested format.</doc>
<status status="PASS" start="2026-04-14T05:25:10.387169" elapsed="0.000468"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-14T05:25:10.388226" level="INFO">CBench Result: 2026-04-14 05:25:10,-t -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633,133875.31,153753.59,146672.05,49313.23</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-04-14T05:25:10.387813" elapsed="0.000470"/>
</kw>
<kw name="Log Results And Determine Status">
<kw name="Append To File" owner="OperatingSystem">
<msg time="2026-04-14T05:25:10.389418" level="INFO" html="true">Appended to file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-cbench-only-titanium/throughput.csv"&gt;/w/workspace/openflowplugin-csit-1node-cbench-only-titanium/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-04-14T05:25:10.388949" elapsed="0.000537"/>
</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-04-14T05:25:10.389642" elapsed="0.000465"/>
</kw>
<arg>${min}</arg>
<arg>${max}</arg>
<arg>${average}</arg>
<arg>${average_threshold}</arg>
<arg>${output_filename}</arg>
<status status="PASS" start="2026-04-14T05:25:10.388463" elapsed="0.001710"/>
</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-04-14T05:15:03.496119" elapsed="606.894114"/>
</kw>
<kw name="Sleep" owner="BuiltIn">
<msg time="2026-04-14T05:25:10.390720" level="INFO">Slept 0 seconds.</msg>
<arg>${test_delay}</arg>
<doc>Pauses the test executed for the given time.</doc>
<status status="PASS" start="2026-04-14T05:25:10.390396" elapsed="0.000380"/>
</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-04-14T05:25:10.391281" elapsed="0.000339"/>
</kw>
<status status="PASS" start="2026-04-14T05:25:10.390983" elapsed="0.000719"/>
</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-04-14T05:15:03.494787" elapsed="606.896955"/>
</test>
<test id="s1-t3" name="Rerun Latency Test To Check Bug 6176" line="65">
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-14T05:25:10.392986" 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-04-14T05:25:10.392560" elapsed="0.000502"/>
</kw>
<kw name="Run Cbench And Log Results">
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-04-14T05:25:10.394579" level="INFO">${output_filename} = bug.csv</msg>
<arg>${output_filename}</arg>
<doc>Makes a variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-04-14T05:25:10.394232" elapsed="0.000389"/>
</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
[http://robotframework.org/robotframework/latest/libraries/Process.html|
Process] library instead._</doc>
<status status="NOT RUN" start="2026-04-14T05:25:10.394967" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-04-14T05:25:10.394745" elapsed="0.000280"/>
</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 with the given message and optionally alters its tags.</doc>
<status status="NOT RUN" start="2026-04-14T05:25:10.397975" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-14T05:25:10.397729" elapsed="0.000301"/>
</branch>
<status status="PASS" start="2026-04-14T05:25:10.397709" elapsed="0.000344"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-04-14T05:25:10.398522" 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-04-14T05:25:10.398641" 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-04-14T05:25:10.398296" elapsed="0.000372"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-14T05:25:10.399300" level="INFO">Attempting to execute command "/usr/local/bin/cbench -c 10.30.170.133 -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633" on remote system "10.30.170.12" 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-04-14T05:25:10.398806" elapsed="0.000567"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-04-14T05:25:10.399932" 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-04-14T05:25:10.399533" elapsed="0.000426"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-04-14T05:25:10.401200" level="INFO">Length is 0.</msg>
<msg time="2026-04-14T05:25:10.401294" 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-04-14T05:25:10.400544" elapsed="0.000774"/>
</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>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-04-14T05:25:10.401477" elapsed="0.000323"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-04-14T05:25:10.402664" level="INFO">Logging into '10.30.170.12:22' as 'jenkins'.</msg>
<msg time="2026-04-14T05:25:10.946420" level="INFO">Read output: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-153-generic x86_64)

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

 System information as of Tue Apr 14 05:25:10 UTC 2026

  System load:  0.25               Processes:             107
  Usage of /:   19.5% of 38.58GB   Users logged in:       0
  Memory usage: 4%                 IPv4 address for ens3: 10.30.170.12
  Swap usage:   0%

 * Strictly confined Kubernetes makes edge and IoT secure. Learn how MicroK8s
   just raised the bar for easy, resilient and secure K8s cluster deployment.

   https://ubuntu.com/engage/secure-kubernetes-at-the-edge

Expanded Security Maintenance for Applications is not enabled.

0 updates can be applied immediately.

9 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.4 LTS' available.
Run 'do-release-upgrade' to upgrade to it.


Last login: Tue Apr 14 05:15:04 2026 from 10.30.171.44
[?2004h[jenkins@releng-48317-689-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-04-14T05:25:10.402296" elapsed="0.544407"/>
</kw>
<msg time="2026-04-14T05:25:10.946809" 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-04-14T05:25:10.401952" elapsed="0.544953"/>
</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-04-14T05:25:10.400157" elapsed="0.546883"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-04-14T05:25:10.947635" level="INFO">Executing command '/usr/local/bin/cbench -c 10.30.170.133 -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633'.</msg>
<msg time="2026-04-14T05:35:17.009160" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-04-14T05:35:17.012233" level="INFO">${stdout} = </msg>
<msg time="2026-04-14T05:35:17.012390" level="INFO">${stderr} = cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.170.133: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-04-14T05:25:10.947279" elapsed="606.065179"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-04-14T05:35:17.012911" elapsed="0.000935"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-14T05:35:17.015062" level="INFO">cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.170.133:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with 100 unique source MACs per switch
   learning destination mac addresses before the test
   starting test with 5000 ms delay after features_reply
   ignoring first 1 "warmup" and last 0 "cooldown" loops
   debugging info is off
Master Thread: Creating thread-0! 
Thread-0: All switches initialized. Running at node 10.30.170.133. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
05:26:16.090 16  switches: flows:  109244 109645 107426 109403 110636 108952 109226 108754 108109 108240 107621 108729 105270 106575 106942 107540  total = 28.871867 per ms 
05:27:16.191 16  switches: flows:  114698 115269 113160 115490 116057 113388 112542 113282 111937 114448 113544 113918 109043 109841 111604 110851  total = 30.100961 per ms 
05:28:16.291 16  switches: flows:  123009 120116 119536 119795 121386 120945 120584 117921 117358 122171 119312 119287 115790 114998 118989 118655  total = 31.777840 per ms 
05:29:16.391 16  switches: flows:  123906 119211 119966 121470 121700 121654 119003 120843 117910 122016 120217 118779 115079 116104 118431 122383  total = 31.924471 per ms 
05:30:16.492 16  switches: flows:  117426 113999 111399 114434 117193 117162 111814 114749 111431 116076 114121 112549 110689 111461 112605 113422  total = 30.291614 per ms 
05:31:16.592 16  switches: flows:  123728 119799 116665 120175 121445 122233 118704 118156 116923 120547 118490 117894 114070 116039 117990 118512  total = 31.636677 per ms 
05:32:16.694 16  switches: flows:  120884 120529 117569 120645 121870 121525 119571 117616 115309 119921 119338 117461 114698 114631 116782 116658  total = 31.530406 per ms 
05:33:16.795 16  switches: flows:  113380 113036 111307 112576 113858 113585 111690 111847 110560 112525 111920 111739 108992 109831 108491 111214  total = 29.726243 per ms 
05:34:16.896 16  switches: flows:  104470 106383 102489 102816 102877 99293 103144 103011 102211 109326 102647 104701 100437 102324 100225 99521  total = 27.385532 per ms 
05:35:16.997 16  switches: flows:  119220 118111 117975 116177 117923 115415 115475 118232 115024 116839 114396 118345 112490 115007 115015 114745  total = 30.954807 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 27385.53/31924.47/30592.06/10287.65 responses/s</msg>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-14T05:35:17.014214" elapsed="0.001174"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="PASS" start="2026-04-14T05:35:17.015632" elapsed="0.000036"/>
</return>
<status status="PASS" start="2026-04-14T05:35:17.015480" elapsed="0.000222"/>
</branch>
<status status="PASS" start="2026-04-14T05:35:17.015453" elapsed="0.000274"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="NOT RUN" start="2026-04-14T05:35:17.015820" elapsed="0.000014"/>
</return>
<status status="NOT RUN" start="2026-04-14T05:35:17.015784" elapsed="0.000077"/>
</branch>
<status status="NOT RUN" start="2026-04-14T05:35:17.015768" elapsed="0.000114"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-04-14T05:35:17.015913" elapsed="0.000013"/>
</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>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-04-14T05:35:17.018472" elapsed="0.000337"/>
</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-04-14T05:35:17.018954" elapsed="0.000617"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-04-14T05:35:17.019703" elapsed="0.000099"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-04-14T05:35:17.016232" elapsed="0.003623"/>
</kw>
<msg time="2026-04-14T05:35:17.019982" level="INFO">${output} = cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.170.133: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-04-14T05:25:10.395380" elapsed="606.624629"/>
</kw>
<status status="PASS" start="2026-04-14T05:25:10.395050" elapsed="606.625008"/>
</branch>
<status status="PASS" start="2026-04-14T05:25:10.394722" elapsed="606.625359"/>
</if>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-14T05:35:17.020528" level="INFO">cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.170.133:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with 100 unique source MACs per switch
   learning destination mac addresses before the test
   starting test with 5000 ms delay after features_reply
   ignoring first 1 "warmup" and last 0 "cooldown" loops
   debugging info is off
Master Thread: Creating thread-0! 
Thread-0: All switches initialized. Running at node 10.30.170.133. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
05:26:16.090 16  switches: flows:  109244 109645 107426 109403 110636 108952 109226 108754 108109 108240 107621 108729 105270 106575 106942 107540  total = 28.871867 per ms 
05:27:16.191 16  switches: flows:  114698 115269 113160 115490 116057 113388 112542 113282 111937 114448 113544 113918 109043 109841 111604 110851  total = 30.100961 per ms 
05:28:16.291 16  switches: flows:  123009 120116 119536 119795 121386 120945 120584 117921 117358 122171 119312 119287 115790 114998 118989 118655  total = 31.777840 per ms 
05:29:16.391 16  switches: flows:  123906 119211 119966 121470 121700 121654 119003 120843 117910 122016 120217 118779 115079 116104 118431 122383  total = 31.924471 per ms 
05:30:16.492 16  switches: flows:  117426 113999 111399 114434 117193 117162 111814 114749 111431 116076 114121 112549 110689 111461 112605 113422  total = 30.291614 per ms 
05:31:16.592 16  switches: flows:  123728 119799 116665 120175 121445 122233 118704 118156 116923 120547 118490 117894 114070 116039 117990 118512  total = 31.636677 per ms 
05:32:16.694 16  switches: flows:  120884 120529 117569 120645 121870 121525 119571 117616 115309 119921 119338 117461 114698 114631 116782 116658  total = 31.530406 per ms 
05:33:16.795 16  switches: flows:  113380 113036 111307 112576 113858 113585 111690 111847 110560 112525 111920 111739 108992 109831 108491 111214  total = 29.726243 per ms 
05:34:16.896 16  switches: flows:  104470 106383 102489 102816 102877 99293 103144 103011 102211 109326 102647 104701 100437 102324 100225 99521  total = 27.385532 per ms 
05:35:16.997 16  switches: flows:  119220 118111 117975 116177 117923 115415 115475 118232 115024 116839 114396 118345 112490 115007 115015 114745  total = 30.954807 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 27385.53/31924.47/30592.06/10287.65 responses/s</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-14T05:35:17.020226" elapsed="0.000377"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${output}</arg>
<arg>RESULT</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-04-14T05:35:17.020750" elapsed="0.000358"/>
</kw>
<kw name="Get Lines Containing String" owner="String">
<msg time="2026-04-14T05:35:17.021498" level="INFO">1 out of 23 lines matched.</msg>
<msg time="2026-04-14T05:35:17.021588" level="INFO">${result_line} = RESULT: 16 switches 9 tests min/max/avg/stdev = 27385.53/31924.47/30592.06/10287.65 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-04-14T05:35:17.021265" elapsed="0.000347"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-04-14T05:35:17.022011" level="INFO">@{results_list} = [ RESULT: | 16 | switches | 9 | tests | min/max/avg/stdev | = | 27385.53/31924.47/30592.06/10287.65 | 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-04-14T05:35:17.021763" elapsed="0.000275"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-14T05:35:17.024417" 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-04-14T05:35:17.022182" elapsed="0.002291"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-14T05:35:17.026987" level="INFO">27385.53/31924.47/30592.06/10287.65</msg>
<arg>${results_list[7]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-04-14T05:35:17.024618" elapsed="0.002426"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-04-14T05:35:17.029391" 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-04-14T05:35:17.027193" elapsed="0.002225"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-04-14T05:35:17.031808" level="INFO">@{result_value_list} = [ 27385.53 | 31924.47 | 30592.06 | 10287.65 ]</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-04-14T05:35:17.029610" elapsed="0.002225"/>
</kw>
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-04-14T05:35:17.032290" level="INFO">Length is 4.</msg>
<msg time="2026-04-14T05:35:17.032392" 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-04-14T05:35:17.031986" elapsed="0.000431"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-14T05:35:17.037084" level="INFO">min :: 27385.53</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-04-14T05:35:17.032789" elapsed="0.004351"/>
</kw>
<var name="${i}">0</var>
<status status="PASS" start="2026-04-14T05:35:17.032663" elapsed="0.004511"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-14T05:35:17.041700" level="INFO">max :: 31924.47</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-04-14T05:35:17.037401" elapsed="0.004354"/>
</kw>
<var name="${i}">1</var>
<status status="PASS" start="2026-04-14T05:35:17.037262" elapsed="0.004528"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-14T05:35:17.046200" level="INFO">avg :: 30592.06</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-04-14T05:35:17.041997" elapsed="0.004273"/>
</kw>
<var name="${i}">2</var>
<status status="PASS" start="2026-04-14T05:35:17.041873" elapsed="0.004431"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-14T05:35:17.050797" level="INFO">stdev :: 10287.65</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-04-14T05:35:17.046531" elapsed="0.004320"/>
</kw>
<var name="${i}">3</var>
<status status="PASS" start="2026-04-14T05:35:17.046401" elapsed="0.004484"/>
</iter>
<var>${i}</var>
<value>0</value>
<value>${num_stats}</value>
<status status="PASS" start="2026-04-14T05:35:17.032483" elapsed="0.018431"/>
</for>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-14T05:35:17.055094" level="INFO">${min} = 27385.53</msg>
<var>${min}</var>
<arg>${result_value_list[${0}]}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-14T05:35:17.051072" elapsed="0.004051"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-14T05:35:17.058957" level="INFO">${max} = 31924.47</msg>
<var>${max}</var>
<arg>${result_value_list[${1}]}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-14T05:35:17.055286" elapsed="0.003697"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-14T05:35:17.063022" level="INFO">${average} = 30592.06</msg>
<var>${average}</var>
<arg>${result_value_list[${2}]}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-14T05:35:17.059309" elapsed="0.003740"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-04-14T05:35:17.066912" level="INFO">${stdev} = 10287.65</msg>
<var>${stdev}</var>
<arg>${result_value_list[${3}]}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-04-14T05:35:17.063202" elapsed="0.003737"/>
</kw>
<kw name="Get Time" owner="BuiltIn">
<msg time="2026-04-14T05:35:17.067451" level="INFO">${date} = 2026-04-14 05:35:17</msg>
<var>${date}</var>
<arg>d,m,s</arg>
<doc>Returns the given time in the requested format.</doc>
<status status="PASS" start="2026-04-14T05:35:17.067095" elapsed="0.000382"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-04-14T05:35:17.068032" level="INFO">CBench Result: 2026-04-14 05:35:17,-m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633,27385.53,31924.47,30592.06,10287.65</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-04-14T05:35:17.067629" elapsed="0.000457"/>
</kw>
<kw name="Log Results And Determine Status">
<kw name="Append To File" owner="OperatingSystem">
<msg time="2026-04-14T05:35:17.069202" level="INFO" html="true">Appended to file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-cbench-only-titanium/bug.csv"&gt;/w/workspace/openflowplugin-csit-1node-cbench-only-titanium/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-04-14T05:35:17.068733" elapsed="0.000538"/>
</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-04-14T05:35:17.069437" elapsed="0.000466"/>
</kw>
<arg>${min}</arg>
<arg>${max}</arg>
<arg>${average}</arg>
<arg>${average_threshold}</arg>
<arg>${output_filename}</arg>
<status status="PASS" start="2026-04-14T05:35:17.068234" elapsed="0.001733"/>
</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-04-14T05:25:10.393658" elapsed="606.676370"/>
</kw>
<kw name="Sleep" owner="BuiltIn">
<msg time="2026-04-14T05:35:17.070542" level="INFO">Slept 0 seconds.</msg>
<arg>${test_delay}</arg>
<doc>Pauses the test executed for the given time.</doc>
<status status="PASS" start="2026-04-14T05:35:17.070172" elapsed="0.000427"/>
</kw>
<kw name="Report Failure Due To Bug" owner="Utils" type="TEARDOWN">
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-04-14T05:35:17.071811" 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-04-14T05:35:17.071313" elapsed="0.000525"/>
</kw>
<if>
<branch type="IF" condition="('${TEST_STATUS}' != 'FAIL') or ${test_skipped}">
<return>
<status status="PASS" start="2026-04-14T05:35:17.072066" elapsed="0.000035"/>
</return>
<status status="PASS" start="2026-04-14T05:35:17.071917" elapsed="0.000216"/>
</branch>
<status status="PASS" start="2026-04-14T05:35:17.071896" elapsed="0.000261"/>
</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-04-14T05:35:17.072301" elapsed="0.000022"/>
</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-04-14T05:35:17.072479" elapsed="0.000020"/>
</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-04-14T05:35:17.072639" elapsed="0.000020"/>
</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 variables.</doc>
<status status="NOT RUN" start="2026-04-14T05:35:17.072834" elapsed="0.000021"/>
</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-04-14T05:35:17.072985" elapsed="0.000026"/>
</kw>
<kw name="Set Test Message" owner="BuiltIn">
<arg>${msg}${newline}${newline}${TEST_MESSAGE}</arg>
<doc>Sets message for the current test case.</doc>
<status status="NOT RUN" start="2026-04-14T05:35:17.073137" elapsed="0.000020"/>
</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-04-14T05:35:17.073281" elapsed="0.000020"/>
</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 given ``tags`` for the current test or all tests in a suite.</doc>
<status status="NOT RUN" start="2026-04-14T05:35:17.073517" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-04-14T05:35:17.073378" elapsed="0.000191"/>
</branch>
<status status="NOT RUN" start="2026-04-14T05:35:17.073346" elapsed="0.000247"/>
</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-04-14T05:35:17.070973" elapsed="0.002671"/>
</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-04-14T05:25:10.392033" elapsed="606.681656"/>
</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-04-14T05:04:54.220003" elapsed="1822.854270"/>
</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>
