<?xml version="1.0" encoding="UTF-8"?>
<robot generator="Robot 7.4.2 (Python 3.11.10 on linux)" generated="2026-08-10T02:00:58.015709" 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-10T02:00:58.579766" elapsed="0.000023"/>
</return>
<status status="NOT RUN" start="2026-08-10T02:00:58.579622" elapsed="0.000221"/>
</branch>
<status status="PASS" start="2026-08-10T02:00:58.579591" elapsed="0.000279"/>
</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-10T02:00:58.580015" elapsed="0.000509"/>
</kw>
<kw name="Login" owner="SSHLibrary">
<msg time="2026-08-10T02:00:58.581012" level="INFO">Logging into '10.30.170.9:8101' as 'karaf'.</msg>
<msg time="2026-08-10T02:00:59.256199" 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-10T02:00:58.580713" elapsed="0.675644"/>
</kw>
<kw name="Write" owner="SSHLibrary">
<msg time="2026-08-10T02:00:59.304747" 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-10T02:00:59.256625" elapsed="0.048194"/>
</kw>
<kw name="Read Until Regexp" owner="SSHLibrary">
<msg time="2026-08-10T02:00:59.306740" level="INFO">[?1l&gt;[?2004l[?1h=[90m~[0m                                                                                [?2004hopendaylight-user@root&gt;</msg>
<msg time="2026-08-10T02:00:59.306852" 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-10T02:00:59.305017" elapsed="0.001864"/>
</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-10T02:00:59.307038" elapsed="0.000205"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-08-10T02:00:59.307402" elapsed="0.000225"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-10T02:00:59.308111" 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-10T02:00:59.307778" elapsed="0.000387"/>
</kw>
<return>
<value>${output}</value>
<status status="PASS" start="2026-08-10T02:00:59.308217" elapsed="0.000067"/>
</return>
<arg>log:set ${log_level}</arg>
<doc>Will execute the given ${cmd} by ssh'ing to the karaf console running on 10.30.170.9
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-10T02:00:58.579237" elapsed="0.729172"/>
</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-10T02:00:58.575703" elapsed="0.732771"/>
</kw>
<kw name="Append To File" owner="OperatingSystem">
<msg time="2026-08-10T02:00:59.309088" 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-10T02:00:59.308690" elapsed="0.000457"/>
</kw>
<kw name="Append To File" owner="OperatingSystem">
<msg time="2026-08-10T02:00:59.309543" 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-10T02:00:59.309297" elapsed="0.000372"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-08-10T02:00:59.310238" 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-10T02:00:59.309823" elapsed="0.000443"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-08-10T02:00:59.310792" 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-10T02:00:59.310435" elapsed="0.000399"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-08-10T02:00:59.311347" 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-10T02:00:59.310978" elapsed="0.000397"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-08-10T02:00:59.311864" 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-10T02:00:59.311533" elapsed="0.000372"/>
</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-10T02:00:59.312206" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-08-10T02:00:59.311990" elapsed="0.000271"/>
</branch>
<branch type="ELSE">
<kw name="Verify File Exists On Remote System" owner="Utils">
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-08-10T02:00:59.316646" 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-10T02:00:59.316216" elapsed="0.000458"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-08-10T02:00:59.318010" level="INFO">Length is 0.</msg>
<msg time="2026-08-10T02:00:59.318103" 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-10T02:00:59.317253" elapsed="0.000875"/>
</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-10T02:00:59.318277" elapsed="0.000367"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-08-10T02:00:59.319673" level="INFO">Logging into '10.30.171.101:22' as 'jenkins'.</msg>
<msg time="2026-08-10T02:00:59.999068" 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 Mon Aug 10 02:00:59 UTC 2026

  System load:  0.1                Processes:             110
  Usage of /:   19.8% of 38.58GB   Users logged in:       0
  Memory usage: 4%                 IPv4 address for ens3: 10.30.171.101
  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-806-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-10T02:00:59.319147" elapsed="0.680094"/>
</kw>
<msg time="2026-08-10T02:00:59.999335" 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-10T02:00:59.318798" elapsed="0.680636"/>
</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-10T02:00:59.316902" elapsed="0.682679"/>
</kw>
<kw name="File Should Exist" owner="SSHLibrary">
<msg time="2026-08-10T02:01:00.005581" 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-10T02:00:59.999805" elapsed="0.007212"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-08-10T02:01:00.007211" elapsed="0.000294"/>
</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-10T02:00:59.315696" elapsed="0.691890"/>
</kw>
<status status="PASS" start="2026-08-10T02:00:59.312353" elapsed="0.695272"/>
</branch>
<status status="PASS" start="2026-08-10T02:00:59.311963" elapsed="0.695695"/>
</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-10T02:01:00.007811" elapsed="0.000517"/>
</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-10T02:01:00.012722" elapsed="0.000019"/>
</return>
<status status="NOT RUN" start="2026-08-10T02:01:00.012596" elapsed="0.000179"/>
</branch>
<status status="PASS" start="2026-08-10T02:01:00.012570" elapsed="0.000229"/>
</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-10T02:01:00.016350" elapsed="0.000015"/>
</return>
<status status="NOT RUN" start="2026-08-10T02:01:00.016237" elapsed="0.000159"/>
</branch>
<status status="PASS" start="2026-08-10T02:01:00.016217" elapsed="0.000201"/>
</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-10T02:01:00.016546" elapsed="0.000454"/>
</kw>
<kw name="Login" owner="SSHLibrary">
<msg time="2026-08-10T02:01:00.017403" level="INFO">Logging into '10.30.170.9:8101' as 'karaf'.</msg>
<msg time="2026-08-10T02:01:00.222217" 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-10T02:01:00.017146" elapsed="0.205194"/>
</kw>
<kw name="Write" owner="SSHLibrary">
<msg time="2026-08-10T02:01:00.296043" 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-10T02:01:00.222545" elapsed="0.073591"/>
</kw>
<kw name="Read Until Regexp" owner="SSHLibrary">
<msg time="2026-08-10T02:01:00.328979" 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-10T02:01:00.329190" 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-10T02:01:00.296306" elapsed="0.032917"/>
</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-10T02:01:00.329367" elapsed="0.000218"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-08-10T02:01:00.329739" elapsed="0.000214"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-10T02:01:00.330401" 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-10T02:01:00.330092" elapsed="0.000364"/>
</kw>
<return>
<value>${output}</value>
<status status="PASS" start="2026-08-10T02:01:00.330506" elapsed="0.000080"/>
</return>
<msg time="2026-08-10T02:01:00.330741" level="INFO">${output} = [?1l&gt;[?2004l[31;1modl-openflowplugin-drop-test[0m                                    x 0.20.2           x x        x Started x [31;1modl-openflowplugin-drop-test[0m                     ...</msg>
<var>${output}</var>
<arg>feature:list -i | grep ${feature_name}</arg>
<arg>${controller}</arg>
<arg>${karaf_port}</arg>
<doc>Will execute the given ${cmd} by ssh'ing to the karaf console running on 10.30.170.9
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-10T02:01:00.015861" elapsed="0.314914"/>
</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-10T02:01:00.330923" elapsed="0.000554"/>
</kw>
<return>
<value>${output}</value>
<status status="PASS" start="2026-08-10T02:01:00.331528" elapsed="0.000082"/>
</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-10T02:01:00.012276" elapsed="0.319446"/>
</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-10T02:01:00.335490" elapsed="0.000015"/>
</return>
<status status="NOT RUN" start="2026-08-10T02:01:00.335358" elapsed="0.000179"/>
</branch>
<status status="PASS" start="2026-08-10T02:01:00.335334" elapsed="0.000245"/>
</if>
<kw name="Open Connection" owner="SSHLibrary">
<arg>${controller}</arg>
<arg>port=${karaf_port}</arg>
<arg>prompt=${KARAF_PROMPT_LOGIN}</arg>
<arg>timeout=${timeout}</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-08-10T02:01:00.335712" elapsed="0.000473"/>
</kw>
<kw name="Login" owner="SSHLibrary">
<msg time="2026-08-10T02:01:00.336607" level="INFO">Logging into '10.30.170.9:8101' as 'karaf'.</msg>
<msg time="2026-08-10T02:01:00.491478" 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-10T02:01:00.336332" elapsed="0.155306"/>
</kw>
<kw name="Write" owner="SSHLibrary">
<msg time="2026-08-10T02:01:00.517206" 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-10T02:01:00.491840" elapsed="0.025426"/>
</kw>
<kw name="Read Until Regexp" owner="SSHLibrary">
<msg time="2026-08-10T02:01:00.519349" level="INFO">[?1l&gt;[?2004lDropAllFlows transitions to on
[?1h=[90m~[0m                                                                                [?2004hopendaylight-user@root&gt;</msg>
<msg time="2026-08-10T02:01:00.519448" 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-10T02:01:00.517420" elapsed="0.002057"/>
</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-10T02:01:00.519659" elapsed="0.000188"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-08-10T02:01:00.519997" elapsed="0.000219"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-10T02:01:00.520674" 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-10T02:01:00.520355" elapsed="0.000369"/>
</kw>
<return>
<value>${output}</value>
<status status="PASS" start="2026-08-10T02:01:00.520772" elapsed="0.000048"/>
</return>
<arg>dropallpacketsrpc on</arg>
<doc>Will execute the given ${cmd} by ssh'ing to the karaf console running on 10.30.170.9
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-10T02:01:00.335028" elapsed="0.185898"/>
</kw>
<status status="PASS" start="2026-08-10T02:00:58.573925" elapsed="1.947063"/>
</kw>
<test id="s1-t1" name="Cbench Latency Test" line="37">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-10T02:01:00.523104" 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-10T02:01:00.521876" elapsed="0.001297"/>
</kw>
<kw name="Run Cbench And Log Results">
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-08-10T02:01:00.524655" 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-10T02:01:00.524282" elapsed="0.000417"/>
</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-10T02:01:00.525007" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-08-10T02:01:00.524777" elapsed="0.000288"/>
</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-10T02:01:00.527992" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-08-10T02:01:00.527745" elapsed="0.000302"/>
</branch>
<status status="PASS" start="2026-08-10T02:01:00.527725" elapsed="0.000348"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-08-10T02:01:00.528404" 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-10T02:01:00.528525" 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-10T02:01:00.528204" elapsed="0.000362"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-10T02:01:00.529123" level="INFO">Attempting to execute command "/usr/local/bin/cbench -c 10.30.170.9 -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633" on remote system "10.30.171.101" 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-10T02:01:00.528702" elapsed="0.000482"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-08-10T02:01:00.529805" 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-10T02:01:00.529321" elapsed="0.000511"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-08-10T02:01:00.530746" level="INFO">Length is 0.</msg>
<msg time="2026-08-10T02:01:00.530836" 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-10T02:01:00.530406" elapsed="0.000454"/>
</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-10T02:01:00.531001" elapsed="0.000340"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-08-10T02:01:00.532261" level="INFO">Logging into '10.30.171.101:22' as 'jenkins'.</msg>
<msg time="2026-08-10T02:01:00.846430" 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 Mon Aug 10 02:00:59 UTC 2026

  System load:  0.1                Processes:             110
  Usage of /:   19.8% of 38.58GB   Users logged in:       0
  Memory usage: 4%                 IPv4 address for ens3: 10.30.171.101
  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: Mon Aug 10 02:00:59 2026 from 10.30.171.67
[?2004h[jenkins@releng-48317-806-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-10T02:01:00.531901" elapsed="0.314693"/>
</kw>
<msg time="2026-08-10T02:01:00.846670" 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-10T02:01:00.531495" elapsed="0.315257"/>
</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-10T02:01:00.530032" elapsed="0.316830"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-08-10T02:01:00.847365" level="INFO">Executing command '/usr/local/bin/cbench -c 10.30.170.9 -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633'.</msg>
<msg time="2026-08-10T02:11:06.933620" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-08-10T02:11:06.934229" level="INFO">${stdout} = </msg>
<msg time="2026-08-10T02:11:06.934345" level="INFO">${stderr} = cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.170.9: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-10T02:01:00.847064" elapsed="606.087342"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-08-10T02:11:06.934946" elapsed="0.000847"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-10T02:11:06.937151" level="INFO">cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.170.9:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with 100 unique source MACs per switch
   learning destination mac addresses before the test
   starting test with 5000 ms delay after features_reply
   ignoring first 1 "warmup" and last 0 "cooldown" loops
   debugging info is off
Master Thread: Creating thread-0! 
Thread-0: All switches initialized. Running at node 10.30.170.9. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
02:02:06.035 16  switches: flows:  110159 110152 108228 107145 107269 109408 107318 107024 105909 103441 105456 104452 104127 104666 105359 104617  total = 28.412167 per ms 
02:03:06.135 16  switches: flows:  116164 118874 115911 114879 114424 115362 116135 112930 112305 109999 110264 110540 113124 110142 110594 110640  total = 30.154451 per ms 
02:04:06.235 16  switches: flows:  116579 119138 117442 116679 113753 116592 115408 113168 114149 111276 111010 112316 113386 111001 110933 111342  total = 30.352225 per ms 
02:05:06.336 16  switches: flows:  123695 123159 122658 121023 120006 122320 121365 119763 118888 117387 115576 117094 116179 115553 116398 116784  total = 31.744501 per ms 
02:06:06.436 16  switches: flows:  119810 120621 117912 118285 117379 119367 117340 114922 113230 115249 113540 112673 111692 114298 113780 113648  total = 30.844277 per ms 
02:07:06.537 16  switches: flows:  122429 122446 120544 120332 119780 121725 120783 119275 116940 117536 116393 116246 114928 115593 117506 117680  total = 31.616181 per ms 
02:08:06.638 16  switches: flows:  122146 120135 118284 119880 118308 121283 119956 118909 117043 117264 115776 113900 115685 115907 117293 116145  total = 31.412819 per ms 
02:09:06.739 16  switches: flows:  122959 121446 120171 122187 121964 123612 123363 120347 117741 120222 117122 115737 116575 116453 117053 116340  total = 31.835066 per ms 
02:10:06.840 16  switches: flows:  117713 117367 117833 117883 116255 118172 115677 114256 112304 113017 112128 112981 113962 112448 113563 114437  total = 30.615525 per ms 
02:11:06.940 16  switches: flows:  127770 124293 125517 123380 122317 124534 124937 120801 118781 119331 118956 119900 119710 120349 122025 122724  total = 32.534429 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 30154.45/32534.43/31234.39/10437.94 responses/s</msg>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-10T02:11:06.936211" elapsed="0.001247"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="PASS" start="2026-08-10T02:11:06.938041" elapsed="0.000091"/>
</return>
<status status="PASS" start="2026-08-10T02:11:06.937694" elapsed="0.000526"/>
</branch>
<status status="PASS" start="2026-08-10T02:11:06.937633" 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-10T02:11:06.938505" elapsed="0.000031"/>
</return>
<status status="NOT RUN" start="2026-08-10T02:11:06.938418" elapsed="0.000220"/>
</branch>
<status status="NOT RUN" start="2026-08-10T02:11:06.938380" elapsed="0.000308"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-08-10T02:11:06.938765" 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-10T02:11:06.943131" elapsed="0.000341"/>
</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-10T02:11:06.943652" elapsed="0.000193"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-08-10T02:11:06.943978" elapsed="0.000103"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-08-10T02:11:06.939534" elapsed="0.004602"/>
</kw>
<msg time="2026-08-10T02:11:06.944266" level="INFO">${output} = cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.170.9: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-10T02:01:00.525413" elapsed="606.418880"/>
</kw>
<status status="PASS" start="2026-08-10T02:01:00.525093" elapsed="606.419250"/>
</branch>
<status status="PASS" start="2026-08-10T02:01:00.524753" elapsed="606.419614"/>
</if>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-10T02:11:06.944846" level="INFO">cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.170.9:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with 100 unique source MACs per switch
   learning destination mac addresses before the test
   starting test with 5000 ms delay after features_reply
   ignoring first 1 "warmup" and last 0 "cooldown" loops
   debugging info is off
Master Thread: Creating thread-0! 
Thread-0: All switches initialized. Running at node 10.30.170.9. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
02:02:06.035 16  switches: flows:  110159 110152 108228 107145 107269 109408 107318 107024 105909 103441 105456 104452 104127 104666 105359 104617  total = 28.412167 per ms 
02:03:06.135 16  switches: flows:  116164 118874 115911 114879 114424 115362 116135 112930 112305 109999 110264 110540 113124 110142 110594 110640  total = 30.154451 per ms 
02:04:06.235 16  switches: flows:  116579 119138 117442 116679 113753 116592 115408 113168 114149 111276 111010 112316 113386 111001 110933 111342  total = 30.352225 per ms 
02:05:06.336 16  switches: flows:  123695 123159 122658 121023 120006 122320 121365 119763 118888 117387 115576 117094 116179 115553 116398 116784  total = 31.744501 per ms 
02:06:06.436 16  switches: flows:  119810 120621 117912 118285 117379 119367 117340 114922 113230 115249 113540 112673 111692 114298 113780 113648  total = 30.844277 per ms 
02:07:06.537 16  switches: flows:  122429 122446 120544 120332 119780 121725 120783 119275 116940 117536 116393 116246 114928 115593 117506 117680  total = 31.616181 per ms 
02:08:06.638 16  switches: flows:  122146 120135 118284 119880 118308 121283 119956 118909 117043 117264 115776 113900 115685 115907 117293 116145  total = 31.412819 per ms 
02:09:06.739 16  switches: flows:  122959 121446 120171 122187 121964 123612 123363 120347 117741 120222 117122 115737 116575 116453 117053 116340  total = 31.835066 per ms 
02:10:06.840 16  switches: flows:  117713 117367 117833 117883 116255 118172 115677 114256 112304 113017 112128 112981 113962 112448 113563 114437  total = 30.615525 per ms 
02:11:06.940 16  switches: flows:  127770 124293 125517 123380 122317 124534 124937 120801 118781 119331 118956 119900 119710 120349 122025 122724  total = 32.534429 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 30154.45/32534.43/31234.39/10437.94 responses/s</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-10T02:11:06.944504" elapsed="0.000420"/>
</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-10T02:11:06.945097" elapsed="0.000388"/>
</kw>
<kw name="Get Lines Containing String" owner="String">
<msg time="2026-08-10T02:11:06.945932" level="INFO">1 out of 23 lines matched.</msg>
<msg time="2026-08-10T02:11:06.946032" level="INFO">${result_line} = RESULT: 16 switches 9 tests min/max/avg/stdev = 30154.45/32534.43/31234.39/10437.94 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-10T02:11:06.945669" elapsed="0.000390"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-08-10T02:11:06.946493" level="INFO">@{results_list} = [ RESULT: | 16 | switches | 9 | tests | min/max/avg/stdev | = | 30154.45/32534.43/31234.39/10437.94 | 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-10T02:11:06.946225" elapsed="0.000296"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-10T02:11:06.949039" 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-10T02:11:06.946685" elapsed="0.002418"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-10T02:11:06.951525" level="INFO">30154.45/32534.43/31234.39/10437.94</msg>
<arg>${results_list[7]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-10T02:11:06.949266" elapsed="0.002341"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-08-10T02:11:06.954012" 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-10T02:11:06.951758" elapsed="0.002283"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-08-10T02:11:06.956525" level="INFO">@{result_value_list} = [ 30154.45 | 32534.43 | 31234.39 | 10437.94 ]</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-10T02:11:06.954233" elapsed="0.002342"/>
</kw>
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-08-10T02:11:06.957162" level="INFO">Length is 4.</msg>
<msg time="2026-08-10T02:11:06.957273" 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-10T02:11:06.956753" elapsed="0.000550"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-10T02:11:06.962215" level="INFO">min :: 30154.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-10T02:11:06.957764" elapsed="0.004531"/>
</kw>
<var name="${i}">0</var>
<status status="PASS" start="2026-08-10T02:11:06.957625" elapsed="0.004714"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-10T02:11:06.967102" level="INFO">max :: 32534.43</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-10T02:11:06.962593" elapsed="0.004576"/>
</kw>
<var name="${i}">1</var>
<status status="PASS" start="2026-08-10T02:11:06.962433" elapsed="0.004770"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-10T02:11:06.971949" level="INFO">avg :: 31234.39</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-10T02:11:06.967423" elapsed="0.004589"/>
</kw>
<var name="${i}">2</var>
<status status="PASS" start="2026-08-10T02:11:06.967293" elapsed="0.004761"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-10T02:11:06.977578" level="INFO">stdev :: 10437.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-10T02:11:06.972301" elapsed="0.005360"/>
</kw>
<var name="${i}">3</var>
<status status="PASS" start="2026-08-10T02:11:06.972167" elapsed="0.005541"/>
</iter>
<var>${i}</var>
<value>0</value>
<value>${num_stats}</value>
<status status="PASS" start="2026-08-10T02:11:06.957385" elapsed="0.020370"/>
</for>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-08-10T02:11:06.983257" level="INFO">${min} = 30154.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-10T02:11:06.977974" elapsed="0.005321"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-08-10T02:11:06.988168" level="INFO">${max} = 32534.43</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-10T02:11:06.983514" elapsed="0.004690"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-08-10T02:11:06.993469" level="INFO">${average} = 31234.39</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-10T02:11:06.988404" elapsed="0.005105"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-08-10T02:11:06.998792" level="INFO">${stdev} = 10437.94</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-10T02:11:06.993753" elapsed="0.005071"/>
</kw>
<kw name="Get Time" owner="BuiltIn">
<msg time="2026-08-10T02:11:06.999383" level="INFO">${date} = 2026-08-10 02:11:06</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-10T02:11:06.998994" elapsed="0.000416"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-10T02:11:07.000070" level="INFO">CBench Result: 2026-08-10 02:11:06,-m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633,30154.45,32534.43,31234.39,10437.94</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-10T02:11:06.999601" elapsed="0.000528"/>
</kw>
<kw name="Log Results And Determine Status">
<kw name="Append To File" owner="OperatingSystem">
<msg time="2026-08-10T02:11:07.001425" 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-10T02:11:07.000925" elapsed="0.000570"/>
</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-10T02:11:07.001664" elapsed="0.000477"/>
</kw>
<arg>${min}</arg>
<arg>${max}</arg>
<arg>${average}</arg>
<arg>${average_threshold}</arg>
<arg>${output_filename}</arg>
<status status="PASS" start="2026-08-10T02:11:07.000309" elapsed="0.001900"/>
</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-10T02:01:00.523655" elapsed="606.478617"/>
</kw>
<kw name="Sleep" owner="BuiltIn">
<msg time="2026-08-10T02:11:07.002766" 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-10T02:11:07.002423" elapsed="0.000401"/>
</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-10T02:11:07.003341" elapsed="0.000288"/>
</kw>
<status status="PASS" start="2026-08-10T02:11:07.003036" elapsed="0.000665"/>
</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-10T02:01:00.521140" elapsed="606.482598"/>
</test>
<test id="s1-t2" name="Cbench Throughput Test" line="51">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-10T02:11:07.005083" 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-10T02:11:07.004668" elapsed="0.000475"/>
</kw>
<kw name="Run Cbench And Log Results">
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-08-10T02:11:07.006390" 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-10T02:11:07.006059" elapsed="0.000373"/>
</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-10T02:11:07.006797" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-08-10T02:11:07.006573" elapsed="0.000283"/>
</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-10T02:11:07.009883" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-08-10T02:11:07.009635" elapsed="0.000304"/>
</branch>
<status status="PASS" start="2026-08-10T02:11:07.009616" elapsed="0.000347"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-08-10T02:11:07.010311" 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-10T02:11:07.010433" 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-10T02:11:07.010100" elapsed="0.000360"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-10T02:11:07.011038" level="INFO">Attempting to execute command "/usr/local/bin/cbench -c 10.30.170.9 -t -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633" on remote system "10.30.171.101" 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-10T02:11:07.010611" elapsed="0.000487"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-08-10T02:11:07.011656" 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-10T02:11:07.011237" elapsed="0.000447"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-08-10T02:11:07.012598" level="INFO">Length is 0.</msg>
<msg time="2026-08-10T02:11:07.012690" 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-10T02:11:07.012263" elapsed="0.000451"/>
</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-10T02:11:07.012855" elapsed="0.000368"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-08-10T02:11:07.014111" level="INFO">Logging into '10.30.171.101:22' as 'jenkins'.</msg>
<msg time="2026-08-10T02:11:07.587284" 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 Mon Aug 10 02:11:07 UTC 2026

  System load:  1.0                Processes:             104
  Usage of /:   20.2% of 38.58GB   Users logged in:       0
  Memory usage: 4%                 IPv4 address for ens3: 10.30.171.101
  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: Mon Aug 10 02:01:00 2026 from 10.30.171.67
[?2004h[jenkins@releng-48317-806-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-10T02:11:07.013734" elapsed="0.573753"/>
</kw>
<msg time="2026-08-10T02:11:07.587603" 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-10T02:11:07.013375" elapsed="0.574335"/>
</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-10T02:11:07.011886" elapsed="0.575949"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-08-10T02:11:07.588412" level="INFO">Executing command '/usr/local/bin/cbench -c 10.30.170.9 -t -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633'.</msg>
<msg time="2026-08-10T02:21:16.191320" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-08-10T02:21:16.191925" level="INFO">${stdout} = </msg>
<msg time="2026-08-10T02:21:16.192031" level="INFO">${stderr} = cbench: controller benchmarking tool
   running in mode 'throughput'
   connecting to controller at 10.30.170.9:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with 1...</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-10T02:11:07.588080" elapsed="608.604007"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-08-10T02:21:16.192600" elapsed="0.000700"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-10T02:21:16.194412" level="INFO">cbench: controller benchmarking tool
   running in mode 'throughput'
   connecting to controller at 10.30.170.9:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with 100 unique source MACs per switch
   learning destination mac addresses before the test
   starting test with 5000 ms delay after features_reply
   ignoring first 1 "warmup" and last 0 "cooldown" loops
   debugging info is off
Master Thread: Creating thread-0! 
Thread-0: All switches initialized. Running at node 10.30.170.9. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
02:12:12.743 16  switches: flows:  418811 416188 421755 429618 422896 417250 415960 420244 412625 419331 411794 408026 408969 414442 424041 416093  total = 111.300717 per ms 
02:13:12.845 16  switches: flows:  528790 535932 534691 541292 524054 539286 530871 542645 535983 538647 542429 537712 540216 525525 543436 531423  total = 142.641516 per ms 
02:14:15.441 16  switches: flows:  549687 543386 552822 549756 539427 550925 544038 547718 546174 541647 545455 541393 553936 552606 554369 560781  total = 140.171827 per ms 
02:15:15.543 16  switches: flows:  480553 495831 460712 459855 464808 490950 461679 473155 466462 450051 496660 492664 453484 451520 460678 481534  total = 125.464872 per ms 
02:16:15.644 16  switches: flows:  566618 571081 566416 571908 557504 564199 563096 562465 560719 557570 560185 560322 564739 560855 568522 564751  total = 150.096644 per ms 
02:17:15.748 16  switches: flows:  573048 569734 575483 576064 580832 573239 567225 569710 566810 571415 578021 573248 568179 572725 575002 570229  total = 152.419467 per ms 
02:18:15.875 16  switches: flows:  560967 562471 545729 551731 561629 557561 552243 552055 551356 558287 563886 551423 557120 555806 558428 555625  total = 147.962654 per ms 
02:19:15.978 16  switches: flows:  566136 567064 575179 572542 568341 571170 568125 569402 565195 567192 565902 564439 572434 562627 569118 572468  total = 151.363649 per ms 
02:20:16.081 16  switches: flows:  548315 542963 535834 543486 542822 540539 541460 545937 536752 539176 552801 537176 538104 539344 546849 540579  total = 144.287658 per ms 
02:21:16.182 16  switches: flows:  592920 591137 594865 600667 598398 596677 588609 590456 593263 593811 593018 597002 597041 594787 597831 594323  total = 158.314368 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 125464.87/158314.37/145858.07/49426.18 responses/s</msg>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-10T02:21:16.193693" elapsed="0.001054"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="PASS" start="2026-08-10T02:21:16.195282" elapsed="0.000071"/>
</return>
<status status="PASS" start="2026-08-10T02:21:16.194927" elapsed="0.000507"/>
</branch>
<status status="PASS" start="2026-08-10T02:21:16.194875" elapsed="0.000614"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="NOT RUN" start="2026-08-10T02:21:16.195734" elapsed="0.000029"/>
</return>
<status status="NOT RUN" start="2026-08-10T02:21:16.195650" elapsed="0.000176"/>
</branch>
<status status="NOT RUN" start="2026-08-10T02:21:16.195612" elapsed="0.000261"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-08-10T02:21:16.195941" elapsed="0.000031"/>
</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-10T02:21:16.200447" elapsed="0.000373"/>
</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-10T02:21:16.200969" elapsed="0.000166"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-08-10T02:21:16.201265" elapsed="0.000103"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-08-10T02:21:16.196639" elapsed="0.004783"/>
</kw>
<msg time="2026-08-10T02:21:16.201566" level="INFO">${output} = cbench: controller benchmarking tool
   running in mode 'throughput'
   connecting to controller at 10.30.170.9:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with 1...</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-10T02:11:07.007197" elapsed="609.194398"/>
</kw>
<status status="PASS" start="2026-08-10T02:11:07.006883" elapsed="609.194761"/>
</branch>
<status status="PASS" start="2026-08-10T02:11:07.006535" elapsed="609.195132"/>
</if>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-10T02:21:16.202087" level="INFO">cbench: controller benchmarking tool
   running in mode 'throughput'
   connecting to controller at 10.30.170.9:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with 100 unique source MACs per switch
   learning destination mac addresses before the test
   starting test with 5000 ms delay after features_reply
   ignoring first 1 "warmup" and last 0 "cooldown" loops
   debugging info is off
Master Thread: Creating thread-0! 
Thread-0: All switches initialized. Running at node 10.30.170.9. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
02:12:12.743 16  switches: flows:  418811 416188 421755 429618 422896 417250 415960 420244 412625 419331 411794 408026 408969 414442 424041 416093  total = 111.300717 per ms 
02:13:12.845 16  switches: flows:  528790 535932 534691 541292 524054 539286 530871 542645 535983 538647 542429 537712 540216 525525 543436 531423  total = 142.641516 per ms 
02:14:15.441 16  switches: flows:  549687 543386 552822 549756 539427 550925 544038 547718 546174 541647 545455 541393 553936 552606 554369 560781  total = 140.171827 per ms 
02:15:15.543 16  switches: flows:  480553 495831 460712 459855 464808 490950 461679 473155 466462 450051 496660 492664 453484 451520 460678 481534  total = 125.464872 per ms 
02:16:15.644 16  switches: flows:  566618 571081 566416 571908 557504 564199 563096 562465 560719 557570 560185 560322 564739 560855 568522 564751  total = 150.096644 per ms 
02:17:15.748 16  switches: flows:  573048 569734 575483 576064 580832 573239 567225 569710 566810 571415 578021 573248 568179 572725 575002 570229  total = 152.419467 per ms 
02:18:15.875 16  switches: flows:  560967 562471 545729 551731 561629 557561 552243 552055 551356 558287 563886 551423 557120 555806 558428 555625  total = 147.962654 per ms 
02:19:15.978 16  switches: flows:  566136 567064 575179 572542 568341 571170 568125 569402 565195 567192 565902 564439 572434 562627 569118 572468  total = 151.363649 per ms 
02:20:16.081 16  switches: flows:  548315 542963 535834 543486 542822 540539 541460 545937 536752 539176 552801 537176 538104 539344 546849 540579  total = 144.287658 per ms 
02:21:16.182 16  switches: flows:  592920 591137 594865 600667 598398 596677 588609 590456 593263 593811 593018 597002 597041 594787 597831 594323  total = 158.314368 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 125464.87/158314.37/145858.07/49426.18 responses/s</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-10T02:21:16.201802" elapsed="0.000358"/>
</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-10T02:21:16.202302" elapsed="0.000390"/>
</kw>
<kw name="Get Lines Containing String" owner="String">
<msg time="2026-08-10T02:21:16.203074" level="INFO">1 out of 23 lines matched.</msg>
<msg time="2026-08-10T02:21:16.203164" level="INFO">${result_line} = RESULT: 16 switches 9 tests min/max/avg/stdev = 125464.87/158314.37/145858.07/49426.18 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-10T02:21:16.202850" elapsed="0.000351"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-08-10T02:21:16.203621" level="INFO">@{results_list} = [ RESULT: | 16 | switches | 9 | tests | min/max/avg/stdev | = | 125464.87/158314.37/145858.07/49426.18 | 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-10T02:21:16.203353" elapsed="0.000296"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-10T02:21:16.206016" 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-10T02:21:16.203791" elapsed="0.002282"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-10T02:21:16.208430" level="INFO">125464.87/158314.37/145858.07/49426.18</msg>
<arg>${results_list[7]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-10T02:21:16.206216" elapsed="0.002270"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-08-10T02:21:16.210840" 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-10T02:21:16.208658" elapsed="0.002209"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-08-10T02:21:16.213262" level="INFO">@{result_value_list} = [ 125464.87 | 158314.37 | 145858.07 | 49426.18 ]</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-10T02:21:16.211054" elapsed="0.002236"/>
</kw>
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-08-10T02:21:16.213763" level="INFO">Length is 4.</msg>
<msg time="2026-08-10T02:21:16.213851" 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-10T02:21:16.213441" elapsed="0.000434"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-10T02:21:16.218721" level="INFO">min :: 125464.87</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-10T02:21:16.214257" elapsed="0.004521"/>
</kw>
<var name="${i}">0</var>
<status status="PASS" start="2026-08-10T02:21:16.214130" elapsed="0.004683"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-10T02:21:16.223305" level="INFO">max :: 158314.37</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-10T02:21:16.219028" elapsed="0.004333"/>
</kw>
<var name="${i}">1</var>
<status status="PASS" start="2026-08-10T02:21:16.218901" elapsed="0.004494"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-10T02:21:16.227967" level="INFO">avg :: 145858.07</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-10T02:21:16.223620" elapsed="0.004404"/>
</kw>
<var name="${i}">2</var>
<status status="PASS" start="2026-08-10T02:21:16.223482" elapsed="0.004576"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-10T02:21:16.232627" level="INFO">stdev :: 49426.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-10T02:21:16.228272" elapsed="0.004412"/>
</kw>
<var name="${i}">3</var>
<status status="PASS" start="2026-08-10T02:21:16.228145" elapsed="0.004573"/>
</iter>
<var>${i}</var>
<value>0</value>
<value>${num_stats}</value>
<status status="PASS" start="2026-08-10T02:21:16.213943" elapsed="0.018806"/>
</for>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-08-10T02:21:16.236842" level="INFO">${min} = 125464.87</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-10T02:21:16.232905" elapsed="0.003964"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-08-10T02:21:16.240715" level="INFO">${max} = 158314.37</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-10T02:21:16.237023" elapsed="0.003719"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-08-10T02:21:16.244627" level="INFO">${average} = 145858.07</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-10T02:21:16.240894" elapsed="0.003759"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-08-10T02:21:16.248492" level="INFO">${stdev} = 49426.18</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-10T02:21:16.244803" elapsed="0.003719"/>
</kw>
<kw name="Get Time" owner="BuiltIn">
<msg time="2026-08-10T02:21:16.249047" level="INFO">${date} = 2026-08-10 02:21:16</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-10T02:21:16.248698" elapsed="0.000375"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-10T02:21:16.249643" level="INFO">CBench Result: 2026-08-10 02:21:16,-t -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633,125464.87,158314.37,145858.07,49426.18</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-10T02:21:16.249218" elapsed="0.000481"/>
</kw>
<kw name="Log Results And Determine Status">
<kw name="Append To File" owner="OperatingSystem">
<msg time="2026-08-10T02:21:16.250729" 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-10T02:21:16.250310" elapsed="0.000487"/>
</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-10T02:21:16.250946" elapsed="0.000488"/>
</kw>
<arg>${min}</arg>
<arg>${max}</arg>
<arg>${average}</arg>
<arg>${average_threshold}</arg>
<arg>${output_filename}</arg>
<status status="PASS" start="2026-08-10T02:21:16.249841" elapsed="0.001659"/>
</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-10T02:11:07.005462" elapsed="609.246119"/>
</kw>
<kw name="Sleep" owner="BuiltIn">
<msg time="2026-08-10T02:21:16.252053" 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-10T02:21:16.251733" elapsed="0.000377"/>
</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-10T02:21:16.252627" elapsed="0.000263"/>
</kw>
<status status="PASS" start="2026-08-10T02:21:16.252316" elapsed="0.000644"/>
</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-10T02:11:07.004066" elapsed="609.248932"/>
</test>
<test id="s1-t3" name="Rerun Latency Test To Check Bug 6176" line="65">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-10T02:21:16.254174" 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-10T02:21:16.253799" elapsed="0.000431"/>
</kw>
<kw name="Run Cbench And Log Results">
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-08-10T02:21:16.255453" 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-10T02:21:16.255119" elapsed="0.000376"/>
</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-10T02:21:16.255836" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-08-10T02:21:16.255620" 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-10T02:21:16.259031" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-08-10T02:21:16.258784" elapsed="0.000330"/>
</branch>
<status status="PASS" start="2026-08-10T02:21:16.258764" elapsed="0.000376"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-08-10T02:21:16.259455" 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-10T02:21:16.259589" 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-10T02:21:16.259272" elapsed="0.000345"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-10T02:21:16.260173" level="INFO">Attempting to execute command "/usr/local/bin/cbench -c 10.30.170.9 -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633" on remote system "10.30.171.101" 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-10T02:21:16.259751" elapsed="0.000479"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-08-10T02:21:16.260776" 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-10T02:21:16.260367" elapsed="0.000436"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-08-10T02:21:16.261693" level="INFO">Length is 0.</msg>
<msg time="2026-08-10T02:21:16.261780" 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-10T02:21:16.261376" elapsed="0.000427"/>
</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-10T02:21:16.261941" elapsed="0.000317"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-08-10T02:21:16.263133" level="INFO">Logging into '10.30.171.101:22' as 'jenkins'.</msg>
<msg time="2026-08-10T02:21:16.852802" 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 Mon Aug 10 02:21:16 UTC 2026

  System load:  0.16               Processes:             104
  Usage of /:   20.2% of 38.58GB   Users logged in:       0
  Memory usage: 4%                 IPv4 address for ens3: 10.30.171.101
  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: Mon Aug 10 02:11:07 2026 from 10.30.171.67
[?2004h[jenkins@releng-48317-806-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-10T02:21:16.262762" elapsed="0.590247"/>
</kw>
<msg time="2026-08-10T02:21:16.853097" 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-10T02:21:16.262407" elapsed="0.590772"/>
</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-10T02:21:16.261003" elapsed="0.592312"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-08-10T02:21:16.853934" level="INFO">Executing command '/usr/local/bin/cbench -c 10.30.170.9 -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633'.</msg>
<msg time="2026-08-10T02:31:22.895235" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-08-10T02:31:22.895840" level="INFO">${stdout} = </msg>
<msg time="2026-08-10T02:31:22.895948" level="INFO">${stderr} = cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.170.9: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-10T02:21:16.853601" elapsed="606.042404"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-08-10T02:31:22.896517" elapsed="0.000734"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-10T02:31:22.898423" level="INFO">cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.170.9:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with 100 unique source MACs per switch
   learning destination mac addresses before the test
   starting test with 5000 ms delay after features_reply
   ignoring first 1 "warmup" and last 0 "cooldown" loops
   debugging info is off
Master Thread: Creating thread-0! 
Thread-0: All switches initialized. Running at node 10.30.170.9. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
02:22:21.993 16  switches: flows:  104382 105210 105670 104755 103408 105246 104242 102110 103434 102952 104264 103752 103742 102548 104358 102832  total = 27.715083 per ms 
02:23:22.093 16  switches: flows:  116569 116023 117867 117677 115660 119002 117056 116077 116314 115450 115127 115662 117798 117156 115179 116034  total = 31.025736 per ms 
02:24:22.193 16  switches: flows:  122333 122128 124393 125807 120845 122515 121150 122550 122323 122802 122686 121240 123662 122723 122802 122589  total = 32.654631 per ms 
02:25:22.294 16  switches: flows:  113452 115194 114708 113657 112527 114697 113655 112672 108467 109922 109680 112253 109677 111467 109839 112762  total = 29.860633 per ms 
02:26:22.394 16  switches: flows:  123813 127046 124989 126619 123528 126377 124902 124879 120773 123360 124264 123837 122489 122701 122853 123270  total = 33.039856 per ms 
02:27:22.494 16  switches: flows:  124693 124686 126848 128928 125549 127066 123152 125509 122548 124995 121176 123296 123124 120982 125407 123686  total = 33.138752 per ms 
02:28:22.594 16  switches: flows:  121641 121774 123993 124986 122446 123124 119968 120505 120990 121988 119629 119473 119773 118371 123296 121867  total = 32.343051 per ms 
02:29:22.695 16  switches: flows:  125582 124867 126030 127875 123960 127370 123140 123073 122477 123222 121375 122992 121259 122012 123027 122728  total = 32.961453 per ms 
02:30:22.795 16  switches: flows:  123601 122675 124774 125806 123013 124989 121806 121739 121762 122452 119292 122039 120027 120130 122330 121982  total = 32.585883 per ms 
02:31:22.895 16  switches: flows:  106936 107465 106956 106876 105159 107259 105175 106650 104666 104848 104564 105282 104289 103388 104200 105766  total = 28.111073 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 28111.07/33138.75/31746.79/10708.89 responses/s</msg>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-10T02:31:22.897670" elapsed="0.001116"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="PASS" start="2026-08-10T02:31:22.899333" elapsed="0.000069"/>
</return>
<status status="PASS" start="2026-08-10T02:31:22.899009" elapsed="0.000473"/>
</branch>
<status status="PASS" start="2026-08-10T02:31:22.898920" 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-10T02:31:22.899812" elapsed="0.000044"/>
</return>
<status status="NOT RUN" start="2026-08-10T02:31:22.899700" elapsed="0.000246"/>
</branch>
<status status="NOT RUN" start="2026-08-10T02:31:22.899663" elapsed="0.000340"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-08-10T02:31:22.900076" elapsed="0.000031"/>
</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-10T02:31:22.904794" elapsed="0.000338"/>
</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-10T02:31:22.905279" elapsed="0.000162"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-08-10T02:31:22.905588" elapsed="0.000125"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-08-10T02:31:22.900795" elapsed="0.004974"/>
</kw>
<msg time="2026-08-10T02:31:22.905899" level="INFO">${output} = cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.170.9: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-10T02:21:16.256231" elapsed="606.649695"/>
</kw>
<status status="PASS" start="2026-08-10T02:21:16.255919" elapsed="606.650057"/>
</branch>
<status status="PASS" start="2026-08-10T02:21:16.255599" elapsed="606.650400"/>
</if>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-10T02:31:22.906425" level="INFO">cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.170.9:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with 100 unique source MACs per switch
   learning destination mac addresses before the test
   starting test with 5000 ms delay after features_reply
   ignoring first 1 "warmup" and last 0 "cooldown" loops
   debugging info is off
Master Thread: Creating thread-0! 
Thread-0: All switches initialized. Running at node 10.30.170.9. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
02:22:21.993 16  switches: flows:  104382 105210 105670 104755 103408 105246 104242 102110 103434 102952 104264 103752 103742 102548 104358 102832  total = 27.715083 per ms 
02:23:22.093 16  switches: flows:  116569 116023 117867 117677 115660 119002 117056 116077 116314 115450 115127 115662 117798 117156 115179 116034  total = 31.025736 per ms 
02:24:22.193 16  switches: flows:  122333 122128 124393 125807 120845 122515 121150 122550 122323 122802 122686 121240 123662 122723 122802 122589  total = 32.654631 per ms 
02:25:22.294 16  switches: flows:  113452 115194 114708 113657 112527 114697 113655 112672 108467 109922 109680 112253 109677 111467 109839 112762  total = 29.860633 per ms 
02:26:22.394 16  switches: flows:  123813 127046 124989 126619 123528 126377 124902 124879 120773 123360 124264 123837 122489 122701 122853 123270  total = 33.039856 per ms 
02:27:22.494 16  switches: flows:  124693 124686 126848 128928 125549 127066 123152 125509 122548 124995 121176 123296 123124 120982 125407 123686  total = 33.138752 per ms 
02:28:22.594 16  switches: flows:  121641 121774 123993 124986 122446 123124 119968 120505 120990 121988 119629 119473 119773 118371 123296 121867  total = 32.343051 per ms 
02:29:22.695 16  switches: flows:  125582 124867 126030 127875 123960 127370 123140 123073 122477 123222 121375 122992 121259 122012 123027 122728  total = 32.961453 per ms 
02:30:22.795 16  switches: flows:  123601 122675 124774 125806 123013 124989 121806 121739 121762 122452 119292 122039 120027 120130 122330 121982  total = 32.585883 per ms 
02:31:22.895 16  switches: flows:  106936 107465 106956 106876 105159 107259 105175 106650 104666 104848 104564 105282 104289 103388 104200 105766  total = 28.111073 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 28111.07/33138.75/31746.79/10708.89 responses/s</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-10T02:31:22.906137" elapsed="0.000361"/>
</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-10T02:31:22.906659" elapsed="0.000414"/>
</kw>
<kw name="Get Lines Containing String" owner="String">
<msg time="2026-08-10T02:31:22.907457" level="INFO">1 out of 23 lines matched.</msg>
<msg time="2026-08-10T02:31:22.907563" level="INFO">${result_line} = RESULT: 16 switches 9 tests min/max/avg/stdev = 28111.07/33138.75/31746.79/10708.89 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-10T02:31:22.907235" elapsed="0.000355"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-08-10T02:31:22.908015" level="INFO">@{results_list} = [ RESULT: | 16 | switches | 9 | tests | min/max/avg/stdev | = | 28111.07/33138.75/31746.79/10708.89 | 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-10T02:31:22.907742" elapsed="0.000300"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-10T02:31:22.910432" 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-10T02:31:22.908187" elapsed="0.002307"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-10T02:31:22.912910" level="INFO">28111.07/33138.75/31746.79/10708.89</msg>
<arg>${results_list[7]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-10T02:31:22.910654" elapsed="0.002312"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-08-10T02:31:22.915364" 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-10T02:31:22.913112" elapsed="0.002279"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-08-10T02:31:22.917787" level="INFO">@{result_value_list} = [ 28111.07 | 33138.75 | 31746.79 | 10708.89 ]</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-10T02:31:22.915596" elapsed="0.002218"/>
</kw>
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-08-10T02:31:22.918271" level="INFO">Length is 4.</msg>
<msg time="2026-08-10T02:31:22.918358" 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-10T02:31:22.917967" elapsed="0.000415"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-10T02:31:22.923109" level="INFO">min :: 28111.07</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-10T02:31:22.918778" elapsed="0.004389"/>
</kw>
<var name="${i}">0</var>
<status status="PASS" start="2026-08-10T02:31:22.918651" elapsed="0.004551"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-10T02:31:22.927846" level="INFO">max :: 33138.75</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-10T02:31:22.923414" elapsed="0.004489"/>
</kw>
<var name="${i}">1</var>
<status status="PASS" start="2026-08-10T02:31:22.923289" elapsed="0.004649"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-10T02:31:22.932715" level="INFO">avg :: 31746.79</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-10T02:31:22.928146" elapsed="0.004627"/>
</kw>
<var name="${i}">2</var>
<status status="PASS" start="2026-08-10T02:31:22.928021" elapsed="0.004786"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-10T02:31:22.937505" level="INFO">stdev :: 10708.89</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-10T02:31:22.933016" elapsed="0.004567"/>
</kw>
<var name="${i}">3</var>
<status status="PASS" start="2026-08-10T02:31:22.932891" elapsed="0.004728"/>
</iter>
<var>${i}</var>
<value>0</value>
<value>${num_stats}</value>
<status status="PASS" start="2026-08-10T02:31:22.918449" elapsed="0.019199"/>
</for>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-08-10T02:31:22.941536" level="INFO">${min} = 28111.07</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-10T02:31:22.937806" elapsed="0.003786"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-08-10T02:31:22.945523" level="INFO">${max} = 33138.75</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-10T02:31:22.941749" elapsed="0.003814"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-08-10T02:31:22.949520" level="INFO">${average} = 31746.79</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-10T02:31:22.945718" elapsed="0.003842"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-08-10T02:31:22.953434" level="INFO">${stdev} = 10708.89</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-10T02:31:22.949713" elapsed="0.003748"/>
</kw>
<kw name="Get Time" owner="BuiltIn">
<msg time="2026-08-10T02:31:22.953980" level="INFO">${date} = 2026-08-10 02:31:22</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-10T02:31:22.953634" elapsed="0.000372"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-10T02:31:22.954644" level="INFO">CBench Result: 2026-08-10 02:31:22,-m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633,28111.07,33138.75,31746.79,10708.89</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-10T02:31:22.954151" elapsed="0.000550"/>
</kw>
<kw name="Log Results And Determine Status">
<kw name="Append To File" owner="OperatingSystem">
<msg time="2026-08-10T02:31:22.955785" 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-10T02:31:22.955340" elapsed="0.000513"/>
</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-10T02:31:22.956005" elapsed="0.000456"/>
</kw>
<arg>${min}</arg>
<arg>${max}</arg>
<arg>${average}</arg>
<arg>${average_threshold}</arg>
<arg>${output_filename}</arg>
<status status="PASS" start="2026-08-10T02:31:22.954844" elapsed="0.001682"/>
</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-10T02:21:16.254541" elapsed="606.702063"/>
</kw>
<kw name="Sleep" owner="BuiltIn">
<msg time="2026-08-10T02:31:22.957063" 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-10T02:31:22.956750" elapsed="0.000368"/>
</kw>
<kw name="Report Failure Due To Bug" owner="Utils" type="TEARDOWN">
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-08-10T02:31:22.958332" 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-10T02:31:22.957844" elapsed="0.000515"/>
</kw>
<if>
<branch type="IF" condition="('${TEST_STATUS}' != 'FAIL') or ${test_skipped}">
<return>
<status status="PASS" start="2026-08-10T02:31:22.958598" elapsed="0.000030"/>
</return>
<status status="PASS" start="2026-08-10T02:31:22.958432" elapsed="0.000229"/>
</branch>
<status status="PASS" start="2026-08-10T02:31:22.958414" elapsed="0.000271"/>
</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-10T02:31:22.958825" 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-10T02:31:22.959006" elapsed="0.000021"/>
</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-10T02:31:22.959167" elapsed="0.000020"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<var>${msg}</var>
<arg>This test fails due to ${bug_url}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="NOT RUN" start="2026-08-10T02:31:22.959358" 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-10T02:31:22.959506" elapsed="0.000026"/>
</kw>
<kw name="Set Test Message" owner="BuiltIn">
<arg>${msg}${newline}${newline}${TEST_MESSAGE}</arg>
<doc>Sets message for the current test case.</doc>
<status status="NOT RUN" start="2026-08-10T02:31:22.959674" 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-10T02:31:22.959817" elapsed="0.000020"/>
</kw>
<if>
<branch type="IF" condition="&quot;${include_bug_in_tags}&quot;==&quot;True&quot;">
<kw name="Set Tags" owner="BuiltIn">
<arg>${bug_url}</arg>
<doc>Adds given ``tags`` for the current test or all tests in a suite.</doc>
<status status="NOT RUN" start="2026-08-10T02:31:22.960035" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-08-10T02:31:22.959899" elapsed="0.000187"/>
</branch>
<status status="NOT RUN" start="2026-08-10T02:31:22.959882" elapsed="0.000228"/>
</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-10T02:31:22.957493" elapsed="0.002667"/>
</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-10T02:21:16.253289" elapsed="606.706917"/>
</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-10T02:00:58.017244" elapsed="1824.943478"/>
</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>
