<?xml version="1.0" encoding="UTF-8"?>
<robot generator="Robot 7.4.2 (Python 3.11.10 on linux)" generated="2026-08-11T02:00:26.421541" 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-08-11T02:00:26.974556" elapsed="0.000023"/>
</return>
<status status="NOT RUN" start="2026-08-11T02:00:26.974397" elapsed="0.000230"/>
</branch>
<status status="PASS" start="2026-08-11T02:00:26.974368" elapsed="0.000286"/>
</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-08-11T02:00:26.974800" elapsed="0.000511"/>
</kw>
<kw name="Login" owner="SSHLibrary">
<msg time="2026-08-11T02:00:26.975794" level="INFO">Logging into '10.30.171.73:8101' as 'karaf'.</msg>
<msg time="2026-08-11T02:00:27.790187" 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-08-11T02:00:26.975482" elapsed="0.814892"/>
</kw>
<kw name="Write" owner="SSHLibrary">
<msg time="2026-08-11T02:00:27.837776" 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-08-11T02:00:27.790679" elapsed="0.047165"/>
</kw>
<kw name="Read Until Regexp" owner="SSHLibrary">
<msg time="2026-08-11T02:00:27.839529" level="INFO">[?1l&gt;[?2004l[?1h=[90m~[0m                                                                                [?2004hopendaylight-user@root&gt;</msg>
<msg time="2026-08-11T02:00:27.839642" 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-08-11T02:00:27.838006" elapsed="0.001666"/>
</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-08-11T02:00:27.839826" elapsed="0.000197"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-08-11T02:00:27.840182" elapsed="0.000217"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-11T02:00:27.840941" 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-08-11T02:00:27.840592" elapsed="0.000404"/>
</kw>
<return>
<value>${output}</value>
<status status="PASS" start="2026-08-11T02:00:27.841049" elapsed="0.000059"/>
</return>
<arg>log:set ${log_level}</arg>
<doc>Will execute the given ${cmd} by ssh'ing to the karaf console running on 10.30.171.73
Note that this keyword will open&amp;close new SSH connection, without switching back to previously current session.</doc>
<status status="PASS" start="2026-08-11T02:00:26.974025" elapsed="0.867211"/>
</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-08-11T02:00:26.970402" elapsed="0.870898"/>
</kw>
<kw name="Append To File" owner="OperatingSystem">
<msg time="2026-08-11T02:00:27.841911" 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-08-11T02:00:27.841488" elapsed="0.000480"/>
</kw>
<kw name="Append To File" owner="OperatingSystem">
<msg time="2026-08-11T02:00:27.842365" 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-08-11T02:00:27.842120" elapsed="0.000311"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-08-11T02:00:27.843007" 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-08-11T02:00:27.842610" elapsed="0.000425"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-08-11T02:00:27.843583" 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-08-11T02:00:27.843204" elapsed="0.000424"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-08-11T02:00:27.844147" 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-08-11T02:00:27.843774" elapsed="0.000400"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-08-11T02:00:27.844671" 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-08-11T02:00:27.844332" elapsed="0.000381"/>
</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-08-11T02:00:27.845020" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-08-11T02:00:27.844802" elapsed="0.000273"/>
</branch>
<branch type="ELSE">
<kw name="Verify File Exists On Remote System" owner="Utils">
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-08-11T02:00:27.849489" 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-08-11T02:00:27.849076" elapsed="0.000459"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-08-11T02:00:27.850779" level="INFO">Length is 0.</msg>
<msg time="2026-08-11T02:00:27.850872" 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-08-11T02:00:27.850101" elapsed="0.000796"/>
</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-08-11T02:00:27.851044" elapsed="0.000350"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-08-11T02:00:27.852429" level="INFO">Logging into '10.30.171.130:22' as 'jenkins'.</msg>
<msg time="2026-08-11T02:00:28.599481" level="INFO">Read output: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-186-generic x86_64)

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

 System information as of Tue Aug 11 02:00:28 UTC 2026

  System load:  0.05               Processes:             111
  Usage of /:   19.7% of 38.58GB   Users logged in:       0
  Memory usage: 4%                 IPv4 address for ens3: 10.30.171.130
  Swap usage:   0%


Expanded Security Maintenance for Applications is not enabled.

0 updates can be applied immediately.

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


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


[?2004h[jenkins@releng-48317-807-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-08-11T02:00:27.851925" elapsed="0.747741"/>
</kw>
<msg time="2026-08-11T02:00:28.599763" 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-08-11T02:00:27.851572" elapsed="0.748288"/>
</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-08-11T02:00:27.849749" elapsed="0.750243"/>
</kw>
<kw name="File Should Exist" owner="SSHLibrary">
<msg time="2026-08-11T02:00:28.611300" 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-08-11T02:00:28.600243" elapsed="0.014767"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-08-11T02:00:28.615265" elapsed="0.000430"/>
</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-08-11T02:00:27.848536" elapsed="0.767247"/>
</kw>
<status status="PASS" start="2026-08-11T02:00:27.845151" elapsed="0.770683"/>
</branch>
<status status="PASS" start="2026-08-11T02:00:27.844777" elapsed="0.771104"/>
</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-08-11T02:00:28.616136" elapsed="0.000848"/>
</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-08-11T02:00:28.626793" elapsed="0.000041"/>
</return>
<status status="NOT RUN" start="2026-08-11T02:00:28.626494" elapsed="0.000417"/>
</branch>
<status status="PASS" start="2026-08-11T02:00:28.626441" elapsed="0.000524"/>
</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-08-11T02:00:28.631482" elapsed="0.000014"/>
</return>
<status status="NOT RUN" start="2026-08-11T02:00:28.631367" elapsed="0.000178"/>
</branch>
<status status="PASS" start="2026-08-11T02:00:28.631347" elapsed="0.000221"/>
</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-08-11T02:00:28.631701" elapsed="0.000467"/>
</kw>
<kw name="Login" owner="SSHLibrary">
<msg time="2026-08-11T02:00:28.632594" level="INFO">Logging into '10.30.171.73:8101' as 'karaf'.</msg>
<msg time="2026-08-11T02:00:28.901812" 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-08-11T02:00:28.632315" elapsed="0.269704"/>
</kw>
<kw name="Write" owner="SSHLibrary">
<msg time="2026-08-11T02:00:29.000422" 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-08-11T02:00:28.902321" elapsed="0.098213"/>
</kw>
<kw name="Read Until Regexp" owner="SSHLibrary">
<msg time="2026-08-11T02:00:29.006975" 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-08-11T02:00:29.007195" 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-08-11T02:00:29.000709" elapsed="0.006519"/>
</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-08-11T02:00:29.007369" elapsed="0.000204"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-08-11T02:00:29.007728" elapsed="0.000256"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-11T02:00:29.008451" 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-08-11T02:00:29.008124" elapsed="0.000401"/>
</kw>
<return>
<value>${output}</value>
<status status="PASS" start="2026-08-11T02:00:29.008578" elapsed="0.000059"/>
</return>
<msg time="2026-08-11T02:00:29.008794" 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.171.73
Note that this keyword will open&amp;close new SSH connection, without switching back to previously current session.</doc>
<status status="PASS" start="2026-08-11T02:00:28.631009" elapsed="0.377817"/>
</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-08-11T02:00:29.008975" elapsed="0.000544"/>
</kw>
<return>
<value>${output}</value>
<status status="PASS" start="2026-08-11T02:00:29.009572" elapsed="0.000034"/>
</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-08-11T02:00:28.625830" elapsed="0.383879"/>
</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-08-11T02:00:29.013604" elapsed="0.000018"/>
</return>
<status status="NOT RUN" start="2026-08-11T02:00:29.013440" elapsed="0.000215"/>
</branch>
<status status="PASS" start="2026-08-11T02:00:29.013416" elapsed="0.000264"/>
</if>
<kw name="Open Connection" owner="SSHLibrary">
<arg>${controller}</arg>
<arg>port=${karaf_port}</arg>
<arg>prompt=${KARAF_PROMPT_LOGIN}</arg>
<arg>timeout=${timeout}</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-08-11T02:00:29.013813" elapsed="0.000457"/>
</kw>
<kw name="Login" owner="SSHLibrary">
<msg time="2026-08-11T02:00:29.014696" level="INFO">Logging into '10.30.171.73:8101' as 'karaf'.</msg>
<msg time="2026-08-11T02:00:29.189205" 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-08-11T02:00:29.014417" elapsed="0.174929"/>
</kw>
<kw name="Write" owner="SSHLibrary">
<msg time="2026-08-11T02:00:29.220076" 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-08-11T02:00:29.189582" elapsed="0.030585"/>
</kw>
<kw name="Read Until Regexp" owner="SSHLibrary">
<msg time="2026-08-11T02:00:29.222295" level="INFO">[?1l&gt;[?2004lDropAllFlows transitions to on
[?1h=[90m~[0m                                                                                [?2004hopendaylight-user@root&gt;</msg>
<msg time="2026-08-11T02:00:29.222399" 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-08-11T02:00:29.220339" elapsed="0.002089"/>
</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-08-11T02:00:29.222578" elapsed="0.000214"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-08-11T02:00:29.222941" elapsed="0.000196"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-11T02:00:29.223614" 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-08-11T02:00:29.223276" elapsed="0.000388"/>
</kw>
<return>
<value>${output}</value>
<status status="PASS" start="2026-08-11T02:00:29.223714" elapsed="0.000051"/>
</return>
<arg>dropallpacketsrpc on</arg>
<doc>Will execute the given ${cmd} by ssh'ing to the karaf console running on 10.30.171.73
Note that this keyword will open&amp;close new SSH connection, without switching back to previously current session.</doc>
<status status="PASS" start="2026-08-11T02:00:29.013101" elapsed="0.210802"/>
</kw>
<status status="PASS" start="2026-08-11T02:00:26.968580" elapsed="2.255391"/>
</kw>
<test id="s1-t1" name="Cbench Latency Test" line="37">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-11T02:00:29.226245" 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-08-11T02:00:29.225127" elapsed="0.001183"/>
</kw>
<kw name="Run Cbench And Log Results">
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-08-11T02:00:29.228012" 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-08-11T02:00:29.227635" elapsed="0.000420"/>
</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-08-11T02:00:29.228377" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-08-11T02:00:29.228136" elapsed="0.000298"/>
</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-08-11T02:00:29.231364" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-08-11T02:00:29.231115" elapsed="0.000305"/>
</branch>
<status status="PASS" start="2026-08-11T02:00:29.231096" elapsed="0.000349"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-08-11T02:00:29.231793" 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-08-11T02:00:29.231927" 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-08-11T02:00:29.231591" elapsed="0.000363"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-11T02:00:29.232519" level="INFO">Attempting to execute command "/usr/local/bin/cbench -c 10.30.171.73 -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633" on remote system "10.30.171.130" 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-08-11T02:00:29.232086" elapsed="0.000496"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-08-11T02:00:29.233180" 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-08-11T02:00:29.232718" elapsed="0.000488"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-08-11T02:00:29.234118" level="INFO">Length is 0.</msg>
<msg time="2026-08-11T02:00:29.234208" 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-08-11T02:00:29.233795" elapsed="0.000437"/>
</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-08-11T02:00:29.234373" elapsed="0.000357"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-08-11T02:00:29.235617" level="INFO">Logging into '10.30.171.130:22' as 'jenkins'.</msg>
<msg time="2026-08-11T02:00:29.609899" level="INFO">Read output: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-186-generic x86_64)

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

 System information as of Tue Aug 11 02:00:28 UTC 2026

  System load:  0.05               Processes:             111
  Usage of /:   19.7% of 38.58GB   Users logged in:       0
  Memory usage: 4%                 IPv4 address for ens3: 10.30.171.130
  Swap usage:   0%


Expanded Security Maintenance for Applications is not enabled.

0 updates can be applied immediately.

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


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


Last login: Tue Aug 11 02:00:28 2026 from 10.30.171.24
[?2004h[jenkins@releng-48317-807-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-08-11T02:00:29.235241" elapsed="0.374786"/>
</kw>
<msg time="2026-08-11T02:00:29.610093" 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-08-11T02:00:29.234893" elapsed="0.375272"/>
</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-08-11T02:00:29.233405" elapsed="0.376856"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-08-11T02:00:29.610709" level="INFO">Executing command '/usr/local/bin/cbench -c 10.30.171.73 -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633'.</msg>
<msg time="2026-08-11T02:10:35.714338" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-08-11T02:10:35.714939" level="INFO">${stdout} = </msg>
<msg time="2026-08-11T02:10:35.715087" level="INFO">${stderr} = cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.171.73:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with 100...</msg>
<var>${stdout}</var>
<var>${stderr}</var>
<arg>${cmd}</arg>
<arg>return_stderr=True</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-08-11T02:00:29.610438" elapsed="606.104716"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-08-11T02:10:35.715653" elapsed="0.000756"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-11T02:10:35.717600" level="INFO">cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.171.73:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with 100 unique source MACs per switch
   learning destination mac addresses before the test
   starting test with 5000 ms delay after features_reply
   ignoring first 1 "warmup" and last 0 "cooldown" loops
   debugging info is off
Master Thread: Creating thread-0! 
Thread-0: All switches initialized. Running at node 10.30.171.73. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
02:01:34.797 16  switches: flows:  118631 118809 120465 121457 124219 118896 118953 119712 117217 118902 120451 117990 116997 116203 119902 120226  total = 31.817167 per ms 
02:02:34.897 16  switches: flows:  129002 131487 128015 130251 134489 129126 129210 132035 127913 130683 129315 131078 128409 124738 127965 129437  total = 34.494942 per ms 
02:03:34.997 16  switches: flows:  128394 133179 129970 127748 132182 128840 130046 129715 128523 126471 127091 130278 128497 125921 128846 129304  total = 34.359405 per ms 
02:04:35.098 16  switches: flows:  132695 134241 133251 132016 133576 130636 134143 132520 130530 127524 133711 134111 132951 128733 130761 130598  total = 35.141265 per ms 
02:05:35.199 16  switches: flows:  132364 137919 131396 134093 133226 129959 131579 138137 130215 131040 131419 135330 132258 129047 131571 129725  total = 35.262421 per ms 
02:06:35.301 16  switches: flows:  135301 138625 136529 136752 135973 133166 134948 139691 133755 133134 133847 137245 134499 133875 135248 131633  total = 36.010158 per ms 
02:07:35.402 16  switches: flows:  135987 138894 133907 136556 136249 133513 134618 139368 133225 131897 133848 135247 134195 134665 133796 132677  total = 35.917167 per ms 
02:08:35.504 16  switches: flows:  136827 138743 134084 132987 134267 130791 133232 138375 132494 131098 133476 132988 131868 132496 131762 130019  total = 35.532429 per ms 
02:09:35.605 16  switches: flows:  137608 137573 134511 134103 134198 131631 136397 138981 131122 131190 135458 133638 134555 133855 131476 131721  total = 35.740558 per ms 
02:10:35.706 16  switches: flows:  138047 139058 136083 134790 133452 131129 134692 139809 130296 132893 134071 134981 135812 131771 130138 131980  total = 35.756981 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 34359.40/36010.16/35357.26/11799.28 responses/s</msg>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-11T02:10:35.716829" elapsed="0.001063"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="PASS" start="2026-08-11T02:10:35.718430" elapsed="0.000112"/>
</return>
<status status="PASS" start="2026-08-11T02:10:35.718102" elapsed="0.000529"/>
</branch>
<status status="PASS" start="2026-08-11T02:10:35.718044" elapsed="0.000647"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="NOT RUN" start="2026-08-11T02:10:35.718915" elapsed="0.000030"/>
</return>
<status status="NOT RUN" start="2026-08-11T02:10:35.718828" elapsed="0.000203"/>
</branch>
<status status="NOT RUN" start="2026-08-11T02:10:35.718790" elapsed="0.000307"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-08-11T02:10:35.719176" elapsed="0.000032"/>
</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-08-11T02:10:35.724228" elapsed="0.000362"/>
</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-08-11T02:10:35.724746" elapsed="0.000172"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-08-11T02:10:35.725048" elapsed="0.000101"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-08-11T02:10:35.719898" elapsed="0.005306"/>
</kw>
<msg time="2026-08-11T02:10:35.725333" level="INFO">${output} = cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.171.73:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with 100...</msg>
<var>${output}</var>
<arg>${cbench_system}</arg>
<arg>${cbench_executable} -c ${ODL_SYSTEM_IP} ${cbench_args}</arg>
<arg>prompt_timeout=${test_timeout}</arg>
<arg>return_stdout=False</arg>
<arg>return_stderr=True</arg>
<doc>Reduces the common work of running a command on a remote system to a single higher level
robot keyword, taking care to log in with a public key and. The command given is written and the return value
depends on the passed argument values of return_stdout (default: True) and return_stderr (default: False).
At least one should be True, or the keyword will exit and FAIL. If both are True, the resulting return value
will be a two element list containing both. Otherwise the resulting return value is a string.
No test conditions are checked.</doc>
<status status="PASS" start="2026-08-11T02:00:29.228811" elapsed="606.496550"/>
</kw>
<status status="PASS" start="2026-08-11T02:00:29.228464" elapsed="606.496948"/>
</branch>
<status status="PASS" start="2026-08-11T02:00:29.228113" elapsed="606.497323"/>
</if>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-11T02:10:35.725890" level="INFO">cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.171.73:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with 100 unique source MACs per switch
   learning destination mac addresses before the test
   starting test with 5000 ms delay after features_reply
   ignoring first 1 "warmup" and last 0 "cooldown" loops
   debugging info is off
Master Thread: Creating thread-0! 
Thread-0: All switches initialized. Running at node 10.30.171.73. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
02:01:34.797 16  switches: flows:  118631 118809 120465 121457 124219 118896 118953 119712 117217 118902 120451 117990 116997 116203 119902 120226  total = 31.817167 per ms 
02:02:34.897 16  switches: flows:  129002 131487 128015 130251 134489 129126 129210 132035 127913 130683 129315 131078 128409 124738 127965 129437  total = 34.494942 per ms 
02:03:34.997 16  switches: flows:  128394 133179 129970 127748 132182 128840 130046 129715 128523 126471 127091 130278 128497 125921 128846 129304  total = 34.359405 per ms 
02:04:35.098 16  switches: flows:  132695 134241 133251 132016 133576 130636 134143 132520 130530 127524 133711 134111 132951 128733 130761 130598  total = 35.141265 per ms 
02:05:35.199 16  switches: flows:  132364 137919 131396 134093 133226 129959 131579 138137 130215 131040 131419 135330 132258 129047 131571 129725  total = 35.262421 per ms 
02:06:35.301 16  switches: flows:  135301 138625 136529 136752 135973 133166 134948 139691 133755 133134 133847 137245 134499 133875 135248 131633  total = 36.010158 per ms 
02:07:35.402 16  switches: flows:  135987 138894 133907 136556 136249 133513 134618 139368 133225 131897 133848 135247 134195 134665 133796 132677  total = 35.917167 per ms 
02:08:35.504 16  switches: flows:  136827 138743 134084 132987 134267 130791 133232 138375 132494 131098 133476 132988 131868 132496 131762 130019  total = 35.532429 per ms 
02:09:35.605 16  switches: flows:  137608 137573 134511 134103 134198 131631 136397 138981 131122 131190 135458 133638 134555 133855 131476 131721  total = 35.740558 per ms 
02:10:35.706 16  switches: flows:  138047 139058 136083 134790 133452 131129 134692 139809 130296 132893 134071 134981 135812 131771 130138 131980  total = 35.756981 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 34359.40/36010.16/35357.26/11799.28 responses/s</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-11T02:10:35.725593" elapsed="0.000372"/>
</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-08-11T02:10:35.726113" elapsed="0.000368"/>
</kw>
<kw name="Get Lines Containing String" owner="String">
<msg time="2026-08-11T02:10:35.726893" level="INFO">1 out of 23 lines matched.</msg>
<msg time="2026-08-11T02:10:35.726988" level="INFO">${result_line} = RESULT: 16 switches 9 tests min/max/avg/stdev = 34359.40/36010.16/35357.26/11799.28 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-08-11T02:10:35.726661" elapsed="0.000369"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-08-11T02:10:35.727470" level="INFO">@{results_list} = [ RESULT: | 16 | switches | 9 | tests | min/max/avg/stdev | = | 34359.40/36010.16/35357.26/11799.28 | 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-08-11T02:10:35.727203" elapsed="0.000296"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-11T02:10:35.729883" 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-08-11T02:10:35.727662" elapsed="0.002279"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-11T02:10:35.732352" level="INFO">34359.40/36010.16/35357.26/11799.28</msg>
<arg>${results_list[7]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-11T02:10:35.730089" elapsed="0.002322"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-08-11T02:10:35.734773" 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-08-11T02:10:35.732577" elapsed="0.002225"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-08-11T02:10:35.737209" level="INFO">@{result_value_list} = [ 34359.40 | 36010.16 | 35357.26 | 11799.28 ]</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-08-11T02:10:35.734988" elapsed="0.002249"/>
</kw>
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-08-11T02:10:35.737717" level="INFO">Length is 4.</msg>
<msg time="2026-08-11T02:10:35.737805" 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-08-11T02:10:35.737389" elapsed="0.000441"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-11T02:10:35.742532" level="INFO">min :: 34359.40</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-08-11T02:10:35.738225" elapsed="0.004367"/>
</kw>
<var name="${i}">0</var>
<status status="PASS" start="2026-08-11T02:10:35.738092" elapsed="0.004535"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-11T02:10:35.747148" level="INFO">max :: 36010.16</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-11T02:10:35.742847" elapsed="0.004359"/>
</kw>
<var name="${i}">1</var>
<status status="PASS" start="2026-08-11T02:10:35.742718" elapsed="0.004523"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-11T02:10:35.751730" level="INFO">avg :: 35357.26</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-08-11T02:10:35.747460" elapsed="0.004327"/>
</kw>
<var name="${i}">2</var>
<status status="PASS" start="2026-08-11T02:10:35.747329" elapsed="0.004492"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-11T02:10:35.756371" level="INFO">stdev :: 11799.28</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-11T02:10:35.752040" elapsed="0.004389"/>
</kw>
<var name="${i}">3</var>
<status status="PASS" start="2026-08-11T02:10:35.751912" elapsed="0.004552"/>
</iter>
<var>${i}</var>
<value>0</value>
<value>${num_stats}</value>
<status status="PASS" start="2026-08-11T02:10:35.737900" elapsed="0.018597"/>
</for>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-08-11T02:10:35.760613" level="INFO">${min} = 34359.40</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-08-11T02:10:35.756675" elapsed="0.003966"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-08-11T02:10:35.764662" level="INFO">${max} = 36010.16</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-08-11T02:10:35.760795" elapsed="0.003895"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-08-11T02:10:35.768580" level="INFO">${average} = 35357.26</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-08-11T02:10:35.764842" elapsed="0.003765"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-08-11T02:10:35.772559" level="INFO">${stdev} = 11799.28</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-08-11T02:10:35.768765" elapsed="0.003822"/>
</kw>
<kw name="Get Time" owner="BuiltIn">
<msg time="2026-08-11T02:10:35.773099" level="INFO">${date} = 2026-08-11 02:10:35</msg>
<var>${date}</var>
<arg>d,m,s</arg>
<doc>Returns the given time in the requested format.</doc>
<status status="PASS" start="2026-08-11T02:10:35.772746" elapsed="0.000379"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-11T02:10:35.773701" level="INFO">CBench Result: 2026-08-11 02:10:35,-m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633,34359.40,36010.16,35357.26,11799.28</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-08-11T02:10:35.773272" elapsed="0.000486"/>
</kw>
<kw name="Log Results And Determine Status">
<kw name="Append To File" owner="OperatingSystem">
<msg time="2026-08-11T02:10:35.774776" 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-08-11T02:10:35.774365" elapsed="0.000478"/>
</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-08-11T02:10:35.774993" elapsed="0.000506"/>
</kw>
<arg>${min}</arg>
<arg>${max}</arg>
<arg>${average}</arg>
<arg>${average_threshold}</arg>
<arg>${output_filename}</arg>
<status status="PASS" start="2026-08-11T02:10:35.773895" elapsed="0.001685"/>
</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-08-11T02:00:29.226771" elapsed="606.548870"/>
</kw>
<kw name="Sleep" owner="BuiltIn">
<msg time="2026-08-11T02:10:35.776109" 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-08-11T02:10:35.775792" elapsed="0.000374"/>
</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-08-11T02:10:35.776692" elapsed="0.000267"/>
</kw>
<status status="PASS" start="2026-08-11T02:10:35.776376" elapsed="0.000654"/>
</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-08-11T02:00:29.224138" elapsed="606.552930"/>
</test>
<test id="s1-t2" name="Cbench Throughput Test" line="51">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-11T02:10:35.778492" 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-08-11T02:10:35.778101" elapsed="0.000466"/>
</kw>
<kw name="Run Cbench And Log Results">
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-08-11T02:10:35.779843" 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-08-11T02:10:35.779498" elapsed="0.000388"/>
</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-08-11T02:10:35.780210" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-08-11T02:10:35.779992" elapsed="0.000274"/>
</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-08-11T02:10:35.783125" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-08-11T02:10:35.782864" elapsed="0.000316"/>
</branch>
<status status="PASS" start="2026-08-11T02:10:35.782845" elapsed="0.000359"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-08-11T02:10:35.783543" 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-08-11T02:10:35.783661" 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-08-11T02:10:35.783339" elapsed="0.000348"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-11T02:10:35.784234" level="INFO">Attempting to execute command "/usr/local/bin/cbench -c 10.30.171.73 -t -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633" on remote system "10.30.171.130" 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-08-11T02:10:35.783819" elapsed="0.000472"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-08-11T02:10:35.784838" 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-08-11T02:10:35.784428" elapsed="0.000435"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-08-11T02:10:35.785751" level="INFO">Length is 0.</msg>
<msg time="2026-08-11T02:10:35.785839" 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-08-11T02:10:35.785431" elapsed="0.000432"/>
</kw>
<kw name="Run Keyword And Return If" owner="BuiltIn">
<arg>${pwd_length} &gt; 0</arg>
<arg>SSHLibrary.Login</arg>
<arg>${user}</arg>
<arg>${password}</arg>
<arg>delay=${delay}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-08-11T02:10:35.786001" elapsed="0.000321"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-08-11T02:10:35.787209" level="INFO">Logging into '10.30.171.130:22' as 'jenkins'.</msg>
<msg time="2026-08-11T02:10:36.410034" level="INFO">Read output: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-186-generic x86_64)

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

 System information as of Tue Aug 11 02:10:36 UTC 2026

  System load:  1.0                Processes:             105
  Usage of /:   20.4% of 38.58GB   Users logged in:       0
  Memory usage: 4%                 IPv4 address for ens3: 10.30.171.130
  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.

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


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


Last login: Tue Aug 11 02:00:29 2026 from 10.30.171.24
[?2004h[jenkins@releng-48317-807-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-08-11T02:10:35.786833" elapsed="0.623398"/>
</kw>
<msg time="2026-08-11T02:10:36.410317" 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-08-11T02:10:35.786473" elapsed="0.623934"/>
</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-08-11T02:10:35.785060" elapsed="0.625482"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-08-11T02:10:36.411089" level="INFO">Executing command '/usr/local/bin/cbench -c 10.30.171.73 -t -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633'.</msg>
<msg time="2026-08-11T02:20:42.478496" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-08-11T02:20:42.479134" level="INFO">${stdout} = </msg>
<msg time="2026-08-11T02:20:42.479239" level="INFO">${stderr} = cbench: controller benchmarking tool
   running in mode 'throughput'
   connecting to controller at 10.30.171.73: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-08-11T02:10:36.410773" elapsed="606.068522"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-08-11T02:20:42.479816" elapsed="0.000750"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-11T02:20:42.481686" level="INFO">cbench: controller benchmarking tool
   running in mode 'throughput'
   connecting to controller at 10.30.171.73:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with 100 unique source MACs per switch
   learning destination mac addresses before the test
   starting test with 5000 ms delay after features_reply
   ignoring first 1 "warmup" and last 0 "cooldown" loops
   debugging info is off
Master Thread: Creating thread-0! 
Thread-0: All switches initialized. Running at node 10.30.171.73. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
02:11:41.539 16  switches: flows:  524509 516141 517593 520328 512110 517078 519487 520266 508558 500081 500494 505599 511773 506037 510500 504141  total = 136.578250 per ms 
02:12:41.640 16  switches: flows:  576971 580462 574320 582875 575263 571873 569290 579144 584658 579213 581868 579133 580940 573125 568400 573490  total = 153.592568 per ms 
02:13:41.741 16  switches: flows:  580717 585441 573292 579928 590333 571634 587698 581450 587723 578448 566973 569426 589908 574605 569092 576552  total = 154.127680 per ms 
02:14:41.843 16  switches: flows:  590475 588299 589600 585376 594621 590167 591865 584022 596380 580006 599310 600002 596193 590938 593154 584719  total = 157.320493 per ms 
02:15:41.945 16  switches: flows:  577051 573319 564572 575228 576300 573205 571318 573780 572988 565309 571351 574629 570580 574558 574609 565450  total = 152.314927 per ms 
02:16:42.063 16  switches: flows:  597434 596416 597242 596608 608693 597244 601410 599870 595501 598126 605409 601356 603599 600992 601683 596264  total = 159.649288 per ms 
02:17:42.163 16  switches: flows:  561397 560445 565483 561707 551883 566542 558298 558968 560846 559432 562956 561111 559456 562559 564233 569447  total = 149.495754 per ms 
02:18:42.265 16  switches: flows:  566721 549723 550671 560917 563764 551525 552746 549600 561658 557496 552920 544482 565720 555434 557261 548409  total = 147.902453 per ms 
02:19:42.368 16  switches: flows:  580761 576839 573976 585895 577932 573985 577953 577006 569173 581605 566868 572124 581605 573561 571275 581842  total = 153.447172 per ms 
02:20:42.471 16  switches: flows:  563818 562541 568282 555687 562774 560287 550265 568763 556233 566001 561829 559218 567874 556151 555675 564164  total = 149.403275 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 147902.45/159649.29/153028.18/51135.97 responses/s</msg>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-11T02:20:42.480939" elapsed="0.001079"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="PASS" start="2026-08-11T02:20:42.482561" elapsed="0.000073"/>
</return>
<status status="PASS" start="2026-08-11T02:20:42.482210" elapsed="0.000506"/>
</branch>
<status status="PASS" start="2026-08-11T02:20:42.482158" elapsed="0.000613"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="NOT RUN" start="2026-08-11T02:20:42.482977" elapsed="0.000028"/>
</return>
<status status="NOT RUN" start="2026-08-11T02:20:42.482897" elapsed="0.000168"/>
</branch>
<status status="NOT RUN" start="2026-08-11T02:20:42.482862" elapsed="0.000249"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-08-11T02:20:42.483177" 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-08-11T02:20:42.488060" elapsed="0.000485"/>
</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-08-11T02:20:42.488753" elapsed="0.000229"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-08-11T02:20:42.489160" elapsed="0.000141"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-08-11T02:20:42.483898" elapsed="0.005475"/>
</kw>
<msg time="2026-08-11T02:20:42.489572" level="INFO">${output} = cbench: controller benchmarking tool
   running in mode 'throughput'
   connecting to controller at 10.30.171.73: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-08-11T02:10:35.780618" elapsed="606.708992"/>
</kw>
<status status="PASS" start="2026-08-11T02:10:35.780291" elapsed="606.709388"/>
</branch>
<status status="PASS" start="2026-08-11T02:10:35.779971" elapsed="606.709740"/>
</if>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-11T02:20:42.490316" level="INFO">cbench: controller benchmarking tool
   running in mode 'throughput'
   connecting to controller at 10.30.171.73:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with 100 unique source MACs per switch
   learning destination mac addresses before the test
   starting test with 5000 ms delay after features_reply
   ignoring first 1 "warmup" and last 0 "cooldown" loops
   debugging info is off
Master Thread: Creating thread-0! 
Thread-0: All switches initialized. Running at node 10.30.171.73. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
02:11:41.539 16  switches: flows:  524509 516141 517593 520328 512110 517078 519487 520266 508558 500081 500494 505599 511773 506037 510500 504141  total = 136.578250 per ms 
02:12:41.640 16  switches: flows:  576971 580462 574320 582875 575263 571873 569290 579144 584658 579213 581868 579133 580940 573125 568400 573490  total = 153.592568 per ms 
02:13:41.741 16  switches: flows:  580717 585441 573292 579928 590333 571634 587698 581450 587723 578448 566973 569426 589908 574605 569092 576552  total = 154.127680 per ms 
02:14:41.843 16  switches: flows:  590475 588299 589600 585376 594621 590167 591865 584022 596380 580006 599310 600002 596193 590938 593154 584719  total = 157.320493 per ms 
02:15:41.945 16  switches: flows:  577051 573319 564572 575228 576300 573205 571318 573780 572988 565309 571351 574629 570580 574558 574609 565450  total = 152.314927 per ms 
02:16:42.063 16  switches: flows:  597434 596416 597242 596608 608693 597244 601410 599870 595501 598126 605409 601356 603599 600992 601683 596264  total = 159.649288 per ms 
02:17:42.163 16  switches: flows:  561397 560445 565483 561707 551883 566542 558298 558968 560846 559432 562956 561111 559456 562559 564233 569447  total = 149.495754 per ms 
02:18:42.265 16  switches: flows:  566721 549723 550671 560917 563764 551525 552746 549600 561658 557496 552920 544482 565720 555434 557261 548409  total = 147.902453 per ms 
02:19:42.368 16  switches: flows:  580761 576839 573976 585895 577932 573985 577953 577006 569173 581605 566868 572124 581605 573561 571275 581842  total = 153.447172 per ms 
02:20:42.471 16  switches: flows:  563818 562541 568282 555687 562774 560287 550265 568763 556233 566001 561829 559218 567874 556151 555675 564164  total = 149.403275 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 147902.45/159649.29/153028.18/51135.97 responses/s</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-11T02:20:42.489903" elapsed="0.000513"/>
</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-08-11T02:20:42.490647" elapsed="0.000510"/>
</kw>
<kw name="Get Lines Containing String" owner="String">
<msg time="2026-08-11T02:20:42.491704" level="INFO">1 out of 23 lines matched.</msg>
<msg time="2026-08-11T02:20:42.491830" level="INFO">${result_line} = RESULT: 16 switches 9 tests min/max/avg/stdev = 147902.45/159649.29/153028.18/51135.97 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-08-11T02:20:42.491374" elapsed="0.000490"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-08-11T02:20:42.492437" level="INFO">@{results_list} = [ RESULT: | 16 | switches | 9 | tests | min/max/avg/stdev | = | 147902.45/159649.29/153028.18/51135.97 | 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-08-11T02:20:42.492081" elapsed="0.000394"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-11T02:20:42.495827" 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-08-11T02:20:42.492697" elapsed="0.003210"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-11T02:20:42.499367" level="INFO">147902.45/159649.29/153028.18/51135.97</msg>
<arg>${results_list[7]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-11T02:20:42.496108" elapsed="0.003329"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-08-11T02:20:42.501808" 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-08-11T02:20:42.499609" elapsed="0.002227"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-08-11T02:20:42.504273" level="INFO">@{result_value_list} = [ 147902.45 | 159649.29 | 153028.18 | 51135.97 ]</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-08-11T02:20:42.502063" elapsed="0.002238"/>
</kw>
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-08-11T02:20:42.504798" level="INFO">Length is 4.</msg>
<msg time="2026-08-11T02:20:42.504893" 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-08-11T02:20:42.504455" elapsed="0.000462"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-11T02:20:42.509771" level="INFO">min :: 147902.45</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-11T02:20:42.505307" elapsed="0.004521"/>
</kw>
<var name="${i}">0</var>
<status status="PASS" start="2026-08-11T02:20:42.505178" elapsed="0.004684"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-11T02:20:42.514419" level="INFO">max :: 159649.29</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-08-11T02:20:42.510103" elapsed="0.004373"/>
</kw>
<var name="${i}">1</var>
<status status="PASS" start="2026-08-11T02:20:42.509973" elapsed="0.004551"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-11T02:20:42.519136" level="INFO">avg :: 153028.18</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-11T02:20:42.514740" elapsed="0.004452"/>
</kw>
<var name="${i}">2</var>
<status status="PASS" start="2026-08-11T02:20:42.514613" elapsed="0.004613"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-11T02:20:42.523771" level="INFO">stdev :: 51135.97</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-08-11T02:20:42.519441" elapsed="0.004388"/>
</kw>
<var name="${i}">3</var>
<status status="PASS" start="2026-08-11T02:20:42.519313" elapsed="0.004551"/>
</iter>
<var>${i}</var>
<value>0</value>
<value>${num_stats}</value>
<status status="PASS" start="2026-08-11T02:20:42.504989" elapsed="0.018906"/>
</for>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-08-11T02:20:42.528092" level="INFO">${min} = 147902.45</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-08-11T02:20:42.524054" elapsed="0.004065"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-08-11T02:20:42.531981" level="INFO">${max} = 159649.29</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-08-11T02:20:42.528274" elapsed="0.003734"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-08-11T02:20:42.535867" level="INFO">${average} = 153028.18</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-08-11T02:20:42.532160" elapsed="0.003733"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-08-11T02:20:42.539761" level="INFO">${stdev} = 51135.97</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-08-11T02:20:42.536043" elapsed="0.003745"/>
</kw>
<kw name="Get Time" owner="BuiltIn">
<msg time="2026-08-11T02:20:42.540297" level="INFO">${date} = 2026-08-11 02:20:42</msg>
<var>${date}</var>
<arg>d,m,s</arg>
<doc>Returns the given time in the requested format.</doc>
<status status="PASS" start="2026-08-11T02:20:42.539945" elapsed="0.000378"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-11T02:20:42.540894" level="INFO">CBench Result: 2026-08-11 02:20:42,-t -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633,147902.45,159649.29,153028.18,51135.97</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-08-11T02:20:42.540468" elapsed="0.000482"/>
</kw>
<kw name="Log Results And Determine Status">
<kw name="Append To File" owner="OperatingSystem">
<msg time="2026-08-11T02:20:42.541984" 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-08-11T02:20:42.541566" elapsed="0.000486"/>
</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-08-11T02:20:42.542202" elapsed="0.000481"/>
</kw>
<arg>${min}</arg>
<arg>${max}</arg>
<arg>${average}</arg>
<arg>${average_threshold}</arg>
<arg>${output_filename}</arg>
<status status="PASS" start="2026-08-11T02:20:42.541087" elapsed="0.001661"/>
</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-08-11T02:10:35.778879" elapsed="606.763928"/>
</kw>
<kw name="Sleep" owner="BuiltIn">
<msg time="2026-08-11T02:20:42.543275" 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-08-11T02:20:42.542959" elapsed="0.000372"/>
</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-08-11T02:20:42.543857" elapsed="0.000263"/>
</kw>
<status status="PASS" start="2026-08-11T02:20:42.543550" elapsed="0.000642"/>
</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-08-11T02:10:35.777480" elapsed="606.766750"/>
</test>
<test id="s1-t3" name="Rerun Latency Test To Check Bug 6176" line="65">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-11T02:20:42.545630" 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-08-11T02:20:42.545235" elapsed="0.000451"/>
</kw>
<kw name="Run Cbench And Log Results">
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-08-11T02:20:42.546926" 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-08-11T02:20:42.546593" elapsed="0.000375"/>
</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-08-11T02:20:42.547291" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-08-11T02:20:42.547073" elapsed="0.000275"/>
</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-08-11T02:20:42.550355" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-08-11T02:20:42.550109" elapsed="0.000302"/>
</branch>
<status status="PASS" start="2026-08-11T02:20:42.550089" elapsed="0.000346"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-08-11T02:20:42.550759" 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-08-11T02:20:42.550873" 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-08-11T02:20:42.550582" elapsed="0.000317"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-11T02:20:42.551445" level="INFO">Attempting to execute command "/usr/local/bin/cbench -c 10.30.171.73 -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633" on remote system "10.30.171.130" 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-08-11T02:20:42.551032" elapsed="0.000484"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-08-11T02:20:42.552046" 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-08-11T02:20:42.551655" elapsed="0.000417"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-08-11T02:20:42.552959" level="INFO">Length is 0.</msg>
<msg time="2026-08-11T02:20:42.553046" 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-08-11T02:20:42.552661" elapsed="0.000408"/>
</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-08-11T02:20:42.553207" elapsed="0.000335"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-08-11T02:20:42.554421" level="INFO">Logging into '10.30.171.130:22' as 'jenkins'.</msg>
<msg time="2026-08-11T02:20:43.151491" level="INFO">Read output: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-186-generic x86_64)

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

 System information as of Tue Aug 11 02:20:42 UTC 2026

  System load:  0.38               Processes:             105
  Usage of /:   20.4% of 38.58GB   Users logged in:       0
  Memory usage: 4%                 IPv4 address for ens3: 10.30.171.130
  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.

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


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


Last login: Tue Aug 11 02:10:36 2026 from 10.30.171.24
[?2004h[jenkins@releng-48317-807-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-08-11T02:20:42.554069" elapsed="0.597569"/>
</kw>
<msg time="2026-08-11T02:20:43.151705" 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-08-11T02:20:42.553693" elapsed="0.598075"/>
</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-08-11T02:20:42.552269" elapsed="0.599596"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-08-11T02:20:43.152290" level="INFO">Executing command '/usr/local/bin/cbench -c 10.30.171.73 -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633'.</msg>
<msg time="2026-08-11T02:30:49.207079" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-08-11T02:30:49.207723" level="INFO">${stdout} = </msg>
<msg time="2026-08-11T02:30:49.207861" level="INFO">${stderr} = cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.171.73:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with 100...</msg>
<var>${stdout}</var>
<var>${stderr}</var>
<arg>${cmd}</arg>
<arg>return_stderr=True</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-08-11T02:20:43.152040" elapsed="606.055908"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-08-11T02:30:49.208472" elapsed="0.000855"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-11T02:30:49.210496" level="INFO">cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.171.73:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with 100 unique source MACs per switch
   learning destination mac addresses before the test
   starting test with 5000 ms delay after features_reply
   ignoring first 1 "warmup" and last 0 "cooldown" loops
   debugging info is off
Master Thread: Creating thread-0! 
Thread-0: All switches initialized. Running at node 10.30.171.73. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
02:21:48.288 16  switches: flows:  158358 141727 136284 140175 141583 138319 135532 136393 128656 132745 132877 140536 131810 128239 131950 134062  total = 36.487433 per ms 
02:22:48.389 16  switches: flows:  137295 142684 136475 140211 140005 138275 138793 135314 130515 129382 132670 129108 130805 128519 130686 134528  total = 35.861194 per ms 
02:23:48.490 16  switches: flows:  137912 143202 136156 138971 138340 139514 137241 134082 131039 128886 133165 127324 127940 128917 129092 134098  total = 35.705065 per ms 
02:24:48.591 16  switches: flows:  138525 144007 137746 139325 140973 138911 138772 134066 132732 130418 134645 130850 131059 127980 129784 132741  total = 35.982177 per ms 
02:25:48.692 16  switches: flows:  138250 142473 135095 138580 139010 137470 136209 133652 132682 128903 132217 130755 129491 126944 128458 132814  total = 35.657170 per ms 
02:26:48.793 16  switches: flows:  138973 142768 135466 140103 140662 137129 137438 135274 131180 128691 134051 130456 129717 127147 130382 133346  total = 35.819922 per ms 
02:27:48.894 16  switches: flows:  141826 144462 137615 141194 141328 141078 139405 138056 134669 132142 135757 130581 132255 129943 131637 136060  total = 36.405939 per ms 
02:28:48.996 16  switches: flows:  140844 143869 137843 141003 140969 139949 140037 135811 133287 131303 135570 129133 130795 130418 132285 135034  total = 36.241942 per ms 
02:29:49.097 16  switches: flows:  139007 144875 135945 140389 139952 138775 137596 134772 131723 130051 134775 129518 128882 129257 129230 133943  total = 35.918225 per ms 
02:30:49.198 16  switches: flows:  134287 137470 131890 133750 134897 132444 132838 130289 126921 125275 128110 125475 124982 122924 126177 125499  total = 34.496189 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 34496.19/36405.94/35787.54/11940.08 responses/s</msg>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-11T02:30:49.209742" elapsed="0.001112"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="PASS" start="2026-08-11T02:30:49.211369" elapsed="0.000071"/>
</return>
<status status="PASS" start="2026-08-11T02:30:49.211046" elapsed="0.000505"/>
</branch>
<status status="PASS" start="2026-08-11T02:30:49.210995" elapsed="0.000617"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="NOT RUN" start="2026-08-11T02:30:49.211826" elapsed="0.000030"/>
</return>
<status status="NOT RUN" start="2026-08-11T02:30:49.211742" elapsed="0.000176"/>
</branch>
<status status="NOT RUN" start="2026-08-11T02:30:49.211706" elapsed="0.000261"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-08-11T02:30:49.212104" elapsed="0.000035"/>
</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-08-11T02:30:49.216623" elapsed="0.000490"/>
</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-08-11T02:30:49.217341" elapsed="0.000249"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-08-11T02:30:49.217774" elapsed="0.000137"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-08-11T02:30:49.212821" elapsed="0.005163"/>
</kw>
<msg time="2026-08-11T02:30:49.218160" level="INFO">${output} = cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.171.73:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with 100...</msg>
<var>${output}</var>
<arg>${cbench_system}</arg>
<arg>${cbench_executable} -c ${ODL_SYSTEM_IP} ${cbench_args}</arg>
<arg>prompt_timeout=${test_timeout}</arg>
<arg>return_stdout=False</arg>
<arg>return_stderr=True</arg>
<doc>Reduces the common work of running a command on a remote system to a single higher level
robot keyword, taking care to log in with a public key and. The command given is written and the return value
depends on the passed argument values of return_stdout (default: True) and return_stderr (default: False).
At least one should be True, or the keyword will exit and FAIL. If both are True, the resulting return value
will be a two element list containing both. Otherwise the resulting return value is a string.
No test conditions are checked.</doc>
<status status="PASS" start="2026-08-11T02:20:42.547706" elapsed="606.670490"/>
</kw>
<status status="PASS" start="2026-08-11T02:20:42.547373" elapsed="606.670893"/>
</branch>
<status status="PASS" start="2026-08-11T02:20:42.547053" elapsed="606.671245"/>
</if>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-11T02:30:49.218918" level="INFO">cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.171.73:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with 100 unique source MACs per switch
   learning destination mac addresses before the test
   starting test with 5000 ms delay after features_reply
   ignoring first 1 "warmup" and last 0 "cooldown" loops
   debugging info is off
Master Thread: Creating thread-0! 
Thread-0: All switches initialized. Running at node 10.30.171.73. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
02:21:48.288 16  switches: flows:  158358 141727 136284 140175 141583 138319 135532 136393 128656 132745 132877 140536 131810 128239 131950 134062  total = 36.487433 per ms 
02:22:48.389 16  switches: flows:  137295 142684 136475 140211 140005 138275 138793 135314 130515 129382 132670 129108 130805 128519 130686 134528  total = 35.861194 per ms 
02:23:48.490 16  switches: flows:  137912 143202 136156 138971 138340 139514 137241 134082 131039 128886 133165 127324 127940 128917 129092 134098  total = 35.705065 per ms 
02:24:48.591 16  switches: flows:  138525 144007 137746 139325 140973 138911 138772 134066 132732 130418 134645 130850 131059 127980 129784 132741  total = 35.982177 per ms 
02:25:48.692 16  switches: flows:  138250 142473 135095 138580 139010 137470 136209 133652 132682 128903 132217 130755 129491 126944 128458 132814  total = 35.657170 per ms 
02:26:48.793 16  switches: flows:  138973 142768 135466 140103 140662 137129 137438 135274 131180 128691 134051 130456 129717 127147 130382 133346  total = 35.819922 per ms 
02:27:48.894 16  switches: flows:  141826 144462 137615 141194 141328 141078 139405 138056 134669 132142 135757 130581 132255 129943 131637 136060  total = 36.405939 per ms 
02:28:48.996 16  switches: flows:  140844 143869 137843 141003 140969 139949 140037 135811 133287 131303 135570 129133 130795 130418 132285 135034  total = 36.241942 per ms 
02:29:49.097 16  switches: flows:  139007 144875 135945 140389 139952 138775 137596 134772 131723 130051 134775 129518 128882 129257 129230 133943  total = 35.918225 per ms 
02:30:49.198 16  switches: flows:  134287 137470 131890 133750 134897 132444 132838 130289 126921 125275 128110 125475 124982 122924 126177 125499  total = 34.496189 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 34496.19/36405.94/35787.54/11940.08 responses/s</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-11T02:30:49.218492" elapsed="0.000528"/>
</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-08-11T02:30:49.219224" elapsed="0.000524"/>
</kw>
<kw name="Get Lines Containing String" owner="String">
<msg time="2026-08-11T02:30:49.220268" level="INFO">1 out of 23 lines matched.</msg>
<msg time="2026-08-11T02:30:49.220392" level="INFO">${result_line} = RESULT: 16 switches 9 tests min/max/avg/stdev = 34496.19/36405.94/35787.54/11940.08 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-08-11T02:30:49.219967" elapsed="0.000458"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-08-11T02:30:49.221007" level="INFO">@{results_list} = [ RESULT: | 16 | switches | 9 | tests | min/max/avg/stdev | = | 34496.19/36405.94/35787.54/11940.08 | 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-08-11T02:30:49.220656" elapsed="0.000388"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-11T02:30:49.224435" 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-08-11T02:30:49.221242" elapsed="0.003291"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-11T02:30:49.227332" level="INFO">34496.19/36405.94/35787.54/11940.08</msg>
<arg>${results_list[7]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-11T02:30:49.224740" elapsed="0.002649"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-08-11T02:30:49.229768" 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-08-11T02:30:49.227554" elapsed="0.002241"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-08-11T02:30:49.232168" level="INFO">@{result_value_list} = [ 34496.19 | 36405.94 | 35787.54 | 11940.08 ]</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-08-11T02:30:49.229983" elapsed="0.002213"/>
</kw>
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-08-11T02:30:49.232671" level="INFO">Length is 4.</msg>
<msg time="2026-08-11T02:30:49.232760" 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-08-11T02:30:49.232348" elapsed="0.000435"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-11T02:30:49.237520" level="INFO">min :: 34496.19</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-08-11T02:30:49.233159" elapsed="0.004423"/>
</kw>
<var name="${i}">0</var>
<status status="PASS" start="2026-08-11T02:30:49.233032" elapsed="0.004584"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-11T02:30:49.242126" level="INFO">max :: 36405.94</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-08-11T02:30:49.237831" elapsed="0.004352"/>
</kw>
<var name="${i}">1</var>
<status status="PASS" start="2026-08-11T02:30:49.237703" elapsed="0.004515"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-11T02:30:49.246843" level="INFO">avg :: 35787.54</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-08-11T02:30:49.242427" elapsed="0.004475"/>
</kw>
<var name="${i}">2</var>
<status status="PASS" start="2026-08-11T02:30:49.242300" elapsed="0.004636"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-11T02:30:49.251611" level="INFO">stdev :: 11940.08</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-11T02:30:49.247149" elapsed="0.004520"/>
</kw>
<var name="${i}">3</var>
<status status="PASS" start="2026-08-11T02:30:49.247021" elapsed="0.004682"/>
</iter>
<var>${i}</var>
<value>0</value>
<value>${num_stats}</value>
<status status="PASS" start="2026-08-11T02:30:49.232850" elapsed="0.018882"/>
</for>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-08-11T02:30:49.255607" level="INFO">${min} = 34496.19</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-08-11T02:30:49.251892" elapsed="0.003743"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-08-11T02:30:49.259502" level="INFO">${max} = 36405.94</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-08-11T02:30:49.255787" elapsed="0.003756"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-08-11T02:30:49.263387" level="INFO">${average} = 35787.54</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-08-11T02:30:49.259697" elapsed="0.003717"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-08-11T02:30:49.267340" level="INFO">${stdev} = 11940.08</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-08-11T02:30:49.263583" elapsed="0.003784"/>
</kw>
<kw name="Get Time" owner="BuiltIn">
<msg time="2026-08-11T02:30:49.267887" level="INFO">${date} = 2026-08-11 02:30:49</msg>
<var>${date}</var>
<arg>d,m,s</arg>
<doc>Returns the given time in the requested format.</doc>
<status status="PASS" start="2026-08-11T02:30:49.267541" elapsed="0.000372"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-11T02:30:49.268470" level="INFO">CBench Result: 2026-08-11 02:30:49,-m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633,34496.19,36405.94,35787.54,11940.08</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-08-11T02:30:49.268062" elapsed="0.000478"/>
</kw>
<kw name="Log Results And Determine Status">
<kw name="Append To File" owner="OperatingSystem">
<msg time="2026-08-11T02:30:49.269637" 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-08-11T02:30:49.269140" elapsed="0.000567"/>
</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-08-11T02:30:49.269858" elapsed="0.000467"/>
</kw>
<arg>${min}</arg>
<arg>${max}</arg>
<arg>${average}</arg>
<arg>${average_threshold}</arg>
<arg>${output_filename}</arg>
<status status="PASS" start="2026-08-11T02:30:49.268677" elapsed="0.001712"/>
</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-08-11T02:20:42.546028" elapsed="606.724418"/>
</kw>
<kw name="Sleep" owner="BuiltIn">
<msg time="2026-08-11T02:30:49.270921" 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-08-11T02:30:49.270607" elapsed="0.000369"/>
</kw>
<kw name="Report Failure Due To Bug" owner="Utils" type="TEARDOWN">
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-08-11T02:30:49.272161" 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-08-11T02:30:49.271689" elapsed="0.000500"/>
</kw>
<if>
<branch type="IF" condition="('${TEST_STATUS}' != 'FAIL') or ${test_skipped}">
<return>
<status status="PASS" start="2026-08-11T02:30:49.272406" elapsed="0.000029"/>
</return>
<status status="PASS" start="2026-08-11T02:30:49.272262" elapsed="0.000203"/>
</branch>
<status status="PASS" start="2026-08-11T02:30:49.272243" elapsed="0.000246"/>
</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-08-11T02:30:49.272643" 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-08-11T02:30:49.272802" 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-08-11T02:30:49.272960" elapsed="0.000019"/>
</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-08-11T02:30:49.273150" 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-08-11T02:30:49.273327" elapsed="0.000027"/>
</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-08-11T02:30:49.273481" 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-08-11T02:30:49.273643" elapsed="0.000021"/>
</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-08-11T02:30:49.273864" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-08-11T02:30:49.273727" elapsed="0.000188"/>
</branch>
<status status="NOT RUN" start="2026-08-11T02:30:49.273710" elapsed="0.000229"/>
</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-08-11T02:30:49.271342" elapsed="0.002646"/>
</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-08-11T02:20:42.544697" elapsed="606.729337"/>
</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-08-11T02:00:26.423115" elapsed="1822.851479"/>
</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>
