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

[?1h=[90m~[0m                                                                                [?2004hopendaylight-user</msg>
<arg>${KARAF_USER}</arg>
<arg>${KARAF_PASSWORD}</arg>
<arg>loglevel=${loglevel}</arg>
<doc>Logs into the SSH server with the given ``username`` and ``password``.</doc>
<status status="PASS" start="2026-09-11T02:36:20.423626" elapsed="0.748220"/>
</kw>
<kw name="Write" owner="SSHLibrary">
<msg time="2026-09-11T02:36:21.219816" level="INFO">@root&gt;log:set ERROR</msg>
<arg>${cmd}</arg>
<doc>Writes the given ``text`` on the remote machine and appends a newline.</doc>
<status status="PASS" start="2026-09-11T02:36:21.172222" elapsed="0.047736"/>
</kw>
<kw name="Read Until Regexp" owner="SSHLibrary">
<msg time="2026-09-11T02:36:21.222042" level="INFO">[?1l&gt;[?2004l[?1h=[90m~[0m                                                                                [?2004hopendaylight-user@root&gt;</msg>
<msg time="2026-09-11T02:36:21.222145" level="INFO">${output} = [?1l&gt;[?2004l[?1h=[90m~[0m                                                                                [?2004hopendaylight-user@root&gt;</msg>
<var>${output}</var>
<arg>${KARAF_PROMPT}</arg>
<doc>Consumes and returns the server output until a match to ``regexp`` is found.</doc>
<status status="PASS" start="2026-09-11T02:36:21.220220" elapsed="0.001952"/>
</kw>
<kw name="Write Bare" owner="SSHLibrary">
<arg>logout\n</arg>
<doc>Writes the given ``text`` on the remote machine without appending a newline.</doc>
<status status="PASS" start="2026-09-11T02:36:21.222332" elapsed="0.000257"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-09-11T02:36:21.222736" elapsed="0.000222"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-11T02:36:21.223431" level="INFO">[?1l&gt;[?2004l[?1h=[90m~[0m                                                                                [?2004hopendaylight-user@root&gt;</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-11T02:36:21.223096" elapsed="0.000385"/>
</kw>
<return>
<value>${output}</value>
<status status="PASS" start="2026-09-11T02:36:21.223529" elapsed="0.000054"/>
</return>
<arg>log:set ${log_level}</arg>
<doc>Will execute the given ${cmd} by ssh'ing to the karaf console running on 10.30.171.151
Note that this keyword will open&amp;close new SSH connection, without switching back to previously current session.</doc>
<status status="PASS" start="2026-09-11T02:36:20.422276" elapsed="0.801428"/>
</kw>
<arg>3x</arg>
<arg>1s</arg>
<arg>KarafKeywords.Issue Command On Karaf Console</arg>
<arg>log:set ${log_level}</arg>
<doc>Runs the specified keyword and retries if it fails.</doc>
<status status="PASS" start="2026-09-11T02:36:20.418897" elapsed="0.804867"/>
</kw>
<kw name="Append To File" owner="OperatingSystem">
<msg time="2026-09-11T02:36:21.224342" level="INFO" html="true">Appended to file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-cbench-only-chromium/latency.csv"&gt;/w/workspace/openflowplugin-csit-1node-cbench-only-chromium/latency.csv&lt;/a&gt;'.</msg>
<arg>${latency_results_file}</arg>
<arg>LATENCY_MIN,LATENCY_MAX,LATENCY_AVERAGE\n</arg>
<doc>Appends the given content to the specified file.</doc>
<status status="PASS" start="2026-09-11T02:36:21.223963" elapsed="0.000431"/>
</kw>
<kw name="Append To File" owner="OperatingSystem">
<msg time="2026-09-11T02:36:21.224762" level="INFO" html="true">Appended to file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-cbench-only-chromium/throughput.csv"&gt;/w/workspace/openflowplugin-csit-1node-cbench-only-chromium/throughput.csv&lt;/a&gt;'.</msg>
<arg>${throughput_results_file}</arg>
<arg>THROUGHPUT_MIN,THROUGHPUT_MAX,THROUGHPUT_AVERAGE\n</arg>
<doc>Appends the given content to the specified file.</doc>
<status status="PASS" start="2026-09-11T02:36:21.224533" elapsed="0.000304"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-09-11T02:36:21.225383" level="INFO">${duration_in_ms} = 60000</msg>
<var>${duration_in_ms}</var>
<arg>${duration_in_secs} * 1000</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-09-11T02:36:21.224977" elapsed="0.000431"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-09-11T02:36:21.225878" 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-09-11T02:36:21.225560" elapsed="0.000357"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-09-11T02:36:21.226401" level="INFO">${test_timeout} = 900.0</msg>
<var>${test_timeout}</var>
<arg>(${loops} * ${duration_in_secs}) * 1.5</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-09-11T02:36:21.226048" elapsed="0.000377"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-09-11T02:36:21.226857" 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-09-11T02:36:21.226568" elapsed="0.000327"/>
</kw>
<if>
<branch type="IF" condition="&quot;${cbench_system}&quot; == &quot;localhost&quot;">
<kw name="File Should Exist" owner="OperatingSystem">
<arg>${cbench_executable}</arg>
<doc>Fails unless the given ``path`` points to an existing file.</doc>
<status status="NOT RUN" start="2026-09-11T02:36:21.227169" elapsed="0.000019"/>
</kw>
<status status="NOT RUN" start="2026-09-11T02:36:21.226975" elapsed="0.000259"/>
</branch>
<branch type="ELSE">
<kw name="Verify File Exists On Remote System" owner="Utils">
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-09-11T02:36:21.231230" level="INFO">${conn_id} = 2</msg>
<var>${conn_id}</var>
<arg>${system}</arg>
<arg>prompt=${prompt}</arg>
<arg>timeout=${prompt_timeout}</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-09-11T02:36:21.230851" elapsed="0.000404"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-09-11T02:36:21.232181" level="INFO">Length is 0.</msg>
<msg time="2026-09-11T02:36:21.232271" level="INFO">${pwd_length} = 0</msg>
<var>${pwd_length}</var>
<arg>${password}</arg>
<doc>Returns and logs the length of the given item as an integer.</doc>
<status status="PASS" start="2026-09-11T02:36:21.231748" elapsed="0.000545"/>
</kw>
<kw name="Run Keyword And Return If" owner="BuiltIn">
<arg>${pwd_length} &gt; 0</arg>
<arg>SSHLibrary.Login</arg>
<arg>${user}</arg>
<arg>${password}</arg>
<arg>delay=${delay}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-09-11T02:36:21.232423" elapsed="0.000645"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-09-11T02:36:21.234023" level="INFO">Logging into '10.30.170.183:22' as 'jenkins'.</msg>
<msg time="2026-09-11T02:36:21.699328" level="INFO">Read output: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-187-generic x86_64)

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

 System information as of Fri Sep 11 02:35:39 UTC 2026

  System load:  0.15               Processes:             113
  Usage of /:   19.8% of 38.58GB   Users logged in:       0
  Memory usage: 4%                 IPv4 address for ens3: 10.30.170.183
  Swap usage:   0%


Expanded Security Maintenance for Applications is not enabled.

5 updates can be applied immediately.
To see these additional updates run: apt list --upgradable

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


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


[?2004h[jenkins@releng-00446-82-1-mininet-ovs-217-0 ~]&gt;</msg>
<arg>${user}</arg>
<arg>${USER_HOME}/.ssh/${SSH_KEY}</arg>
<arg>${KEYFILE_PASS}</arg>
<arg>delay=${delay}</arg>
<doc>Logs into the SSH server using key-based authentication.</doc>
<status status="PASS" start="2026-09-11T02:36:21.233538" elapsed="0.465960"/>
</kw>
<msg time="2026-09-11T02:36:21.699592" level="INFO">Returning from the enclosing user keyword.</msg>
<arg>SSHLibrary.Login With Public Key</arg>
<arg>${user}</arg>
<arg>${USER_HOME}/.ssh/${SSH_KEY}</arg>
<arg>${KEYFILE_PASS}</arg>
<arg>delay=${delay}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-09-11T02:36:21.233228" elapsed="0.466456"/>
</kw>
<arg>${user}</arg>
<arg>${password}</arg>
<doc>On active SSH session: if given non-empty password, do Login, else do Login With Public Key.</doc>
<status status="PASS" start="2026-09-11T02:36:21.231439" elapsed="0.468358"/>
</kw>
<kw name="File Should Exist" owner="SSHLibrary">
<msg time="2026-09-11T02:36:21.705808" level="INFO">[chan 1] Opened sftp connection (server version 3)</msg>
<arg>${file}</arg>
<doc>Fails if the given ``path`` does NOT point to an existing file.</doc>
<status status="PASS" start="2026-09-11T02:36:21.700059" elapsed="0.007225"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-09-11T02:36:21.707513" elapsed="0.000350"/>
</kw>
<arg>${cbench_system}</arg>
<arg>${cbench_executable}</arg>
<doc>Will create connection with public key and will PASS if the given ${file} exists,
otherwise will FAIL</doc>
<status status="PASS" start="2026-09-11T02:36:21.230379" elapsed="0.477577"/>
</kw>
<status status="PASS" start="2026-09-11T02:36:21.227306" elapsed="0.480695"/>
</branch>
<status status="PASS" start="2026-09-11T02:36:21.226951" elapsed="0.481092"/>
</if>
<kw name="Should Be True" owner="BuiltIn">
<arg>${loops} &gt;= 2</arg>
<arg>If number of loops is less than 2, cbench will not run</arg>
<doc>Fails if the given condition is not true.</doc>
<status status="PASS" start="2026-09-11T02:36:21.708254" elapsed="0.000680"/>
</kw>
<kw name="Verify_Feature_Is_Installed" owner="KarafKeywords">
<if>
<branch type="IF" condition="'${IS_KARAF_APPL}' == 'False'">
<return>
<value>Not A Karaf App</value>
<status status="NOT RUN" start="2026-09-11T02:36:21.714963" elapsed="0.000024"/>
</return>
<status status="NOT RUN" start="2026-09-11T02:36:21.714791" elapsed="0.000240"/>
</branch>
<status status="PASS" start="2026-09-11T02:36:21.714761" elapsed="0.000299"/>
</if>
<kw name="Issue_Command_On_Karaf_Console" owner="KarafKeywords">
<if>
<branch type="IF" condition="'${IS_KARAF_APPL}' == 'False'">
<return>
<value>Not A Karaf App</value>
<status status="NOT RUN" start="2026-09-11T02:36:21.720002" elapsed="0.000024"/>
</return>
<status status="NOT RUN" start="2026-09-11T02:36:21.719812" elapsed="0.000269"/>
</branch>
<status status="PASS" start="2026-09-11T02:36:21.719781" elapsed="0.000337"/>
</if>
<kw name="Open Connection" owner="SSHLibrary">
<arg>${controller}</arg>
<arg>port=${karaf_port}</arg>
<arg>prompt=${KARAF_PROMPT_LOGIN}</arg>
<arg>timeout=${timeout}</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-09-11T02:36:21.720353" elapsed="0.000631"/>
</kw>
<kw name="Login" owner="SSHLibrary">
<msg time="2026-09-11T02:36:21.721580" level="INFO">Logging into '10.30.171.151:8101' as 'karaf'.</msg>
<msg time="2026-09-11T02:36:21.946241" level="INFO">Read output: [33m                                                                                           
[33m    ________                       ________                .__  .__       .__     __       
[33m    \_____  \ ______   ____   ____ \______ \ _____  ___.__.|  | |__| ____ |  |___/  |_     
[33m     /   |   \\____ \_/ __ \ /    \ |    |  \\__  \&lt;   |  ||  | |  |/ ___\|  |  \   __\    
[33m    /    |    \  |_&gt; &gt;  ___/|   |  \|    `   \/ __ \\___  ||  |_|  / /_/  &gt;   Y  \  |      
[33m    \_______  /   __/ \___  &gt;___|  /_______  (____  / ____||____/__\___  /|___|  /__|      
[33m            \/|__|        \/     \/        \/     \/\/            /_____/      \/          
[33m                                                                                           

Hit '[1m&lt;tab&gt;[0m' for a list of available commands
and '[1m[cmd] --help[0m' for help on a specific command.
Hit '[1m&lt;ctrl-d&gt;[0m' or type '[1msystem:shutdown[0m' or '[1mlogout[0m' to shutdown OpenDaylight.

[?1h=[90m~[0m                                                                                [?2004hopendaylight-user</msg>
<arg>${KARAF_USER}</arg>
<arg>${KARAF_PASSWORD}</arg>
<arg>loglevel=${loglevel}</arg>
<doc>Logs into the SSH server with the given ``username`` and ``password``.</doc>
<status status="PASS" start="2026-09-11T02:36:21.721221" elapsed="0.225178"/>
</kw>
<kw name="Write" owner="SSHLibrary">
<msg time="2026-09-11T02:36:22.032246" level="INFO">@root&gt;feature:list -i | 0[C 0g[Krep odl-openflowplugin-drop-test</msg>
<arg>${cmd}</arg>
<doc>Writes the given ``text`` on the remote machine and appends a newline.</doc>
<status status="PASS" start="2026-09-11T02:36:21.946646" elapsed="0.085725"/>
</kw>
<kw name="Read Until Regexp" owner="SSHLibrary">
<msg time="2026-09-11T02:36:22.083074" level="INFO">[?1l&gt;[?2004l[31;1modl-openflowplugin-drop-test[0m                                    x 1.0.2            x x        x Started x [31;1modl-openflowplugin-drop-test[0m                                    x OpenDaylight :: Openflow Plugin :: Drop Test
[?1h=[90m~[0m                                                                                [?2004hopendaylight-user@root&gt;</msg>
<msg time="2026-09-11T02:36:22.083287" level="INFO">${output} = [?1l&gt;[?2004l[31;1modl-openflowplugin-drop-test[0m                                    x 1.0.2            x x        x Started x [31;1modl-openflowplugin-drop-test[0m                     ...</msg>
<var>${output}</var>
<arg>${KARAF_PROMPT}</arg>
<doc>Consumes and returns the server output until a match to ``regexp`` is found.</doc>
<status status="PASS" start="2026-09-11T02:36:22.032598" elapsed="0.050718"/>
</kw>
<kw name="Write Bare" owner="SSHLibrary">
<arg>logout\n</arg>
<doc>Writes the given ``text`` on the remote machine without appending a newline.</doc>
<status status="PASS" start="2026-09-11T02:36:22.083463" elapsed="0.000214"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-09-11T02:36:22.083820" elapsed="0.000239"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-11T02:36:22.084511" level="INFO">[?1l&gt;[?2004l[31;1modl-openflowplugin-drop-test[0m                                    x 1.0.2            x x        x Started x [31;1modl-openflowplugin-drop-test[0m                                    x OpenDaylight :: Openflow Plugin :: Drop Test
[?1h=[90m~[0m                                                                                [?2004hopendaylight-user@root&gt;</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-11T02:36:22.084188" elapsed="0.000373"/>
</kw>
<return>
<value>${output}</value>
<status status="PASS" start="2026-09-11T02:36:22.084608" elapsed="0.000052"/>
</return>
<msg time="2026-09-11T02:36:22.084801" level="INFO">${output} = [?1l&gt;[?2004l[31;1modl-openflowplugin-drop-test[0m                                    x 1.0.2            x x        x Started x [31;1modl-openflowplugin-drop-test[0m                     ...</msg>
<var>${output}</var>
<arg>feature:list -i | grep ${feature_name}</arg>
<arg>${controller}</arg>
<arg>${karaf_port}</arg>
<doc>Will execute the given ${cmd} by ssh'ing to the karaf console running on 10.30.171.151
Note that this keyword will open&amp;close new SSH connection, without switching back to previously current session.</doc>
<status status="PASS" start="2026-09-11T02:36:21.719264" elapsed="0.365567"/>
</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-09-11T02:36:22.084981" elapsed="0.000501"/>
</kw>
<return>
<value>${output}</value>
<status status="PASS" start="2026-09-11T02:36:22.085530" elapsed="0.000031"/>
</return>
<arg>odl-openflowplugin-drop-test</arg>
<doc>Will Succeed if the given ${feature_name} is found in the output of "feature:list -i"</doc>
<status status="PASS" start="2026-09-11T02:36:21.714413" elapsed="0.371240"/>
</kw>
<kw name="Issue_Command_On_Karaf_Console" owner="KarafKeywords">
<if>
<branch type="IF" condition="'${IS_KARAF_APPL}' == 'False'">
<return>
<value>Not A Karaf App</value>
<status status="NOT RUN" start="2026-09-11T02:36:22.089386" elapsed="0.000014"/>
</return>
<status status="NOT RUN" start="2026-09-11T02:36:22.089261" elapsed="0.000167"/>
</branch>
<status status="PASS" start="2026-09-11T02:36:22.089238" elapsed="0.000213"/>
</if>
<kw name="Open Connection" owner="SSHLibrary">
<arg>${controller}</arg>
<arg>port=${karaf_port}</arg>
<arg>prompt=${KARAF_PROMPT_LOGIN}</arg>
<arg>timeout=${timeout}</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-09-11T02:36:22.089568" elapsed="0.000411"/>
</kw>
<kw name="Login" owner="SSHLibrary">
<msg time="2026-09-11T02:36:22.090361" level="INFO">Logging into '10.30.171.151:8101' as 'karaf'.</msg>
<msg time="2026-09-11T02:36:22.262345" level="INFO">Read output: [33m                                                                                           
[33m    ________                       ________                .__  .__       .__     __       
[33m    \_____  \ ______   ____   ____ \______ \ _____  ___.__.|  | |__| ____ |  |___/  |_     
[33m     /   |   \\____ \_/ __ \ /    \ |    |  \\__  \&lt;   |  ||  | |  |/ ___\|  |  \   __\    
[33m    /    |    \  |_&gt; &gt;  ___/|   |  \|    `   \/ __ \\___  ||  |_|  / /_/  &gt;   Y  \  |      
[33m    \_______  /   __/ \___  &gt;___|  /_______  (____  / ____||____/__\___  /|___|  /__|      
[33m            \/|__|        \/     \/        \/     \/\/            /_____/      \/          
[33m                                                                                           

Hit '[1m&lt;tab&gt;[0m' for a list of available commands
and '[1m[cmd] --help[0m' for help on a specific command.
Hit '[1m&lt;ctrl-d&gt;[0m' or type '[1msystem:shutdown[0m' or '[1mlogout[0m' to shutdown OpenDaylight.

[?1h=[90m~[0m                                                                                [?2004hopendaylight-user</msg>
<arg>${KARAF_USER}</arg>
<arg>${KARAF_PASSWORD}</arg>
<arg>loglevel=${loglevel}</arg>
<doc>Logs into the SSH server with the given ``username`` and ``password``.</doc>
<status status="PASS" start="2026-09-11T02:36:22.090109" elapsed="0.172386"/>
</kw>
<kw name="Write" owner="SSHLibrary">
<msg time="2026-09-11T02:36:22.283398" level="INFO">@root&gt;dropallpacketsrpc on</msg>
<arg>${cmd}</arg>
<doc>Writes the given ``text`` on the remote machine and appends a newline.</doc>
<status status="PASS" start="2026-09-11T02:36:22.262734" elapsed="0.020724"/>
</kw>
<kw name="Read Until Regexp" owner="SSHLibrary">
<msg time="2026-09-11T02:36:22.285284" level="INFO">[?1l&gt;[?2004lDropAllFlows transitions to on
[?1h=[90m~[0m                                                                                [?2004hopendaylight-user@root&gt;</msg>
<msg time="2026-09-11T02:36:22.285386" level="INFO">${output} = [?1l&gt;[?2004lDropAllFlows transitions to on
[?1h=[90m~[0m                                                                                [?2004hopendaylight-user@root&gt;</msg>
<var>${output}</var>
<arg>${KARAF_PROMPT}</arg>
<doc>Consumes and returns the server output until a match to ``regexp`` is found.</doc>
<status status="PASS" start="2026-09-11T02:36:22.283602" elapsed="0.001811"/>
</kw>
<kw name="Write Bare" owner="SSHLibrary">
<arg>logout\n</arg>
<doc>Writes the given ``text`` on the remote machine without appending a newline.</doc>
<status status="PASS" start="2026-09-11T02:36:22.285536" elapsed="0.000173"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-09-11T02:36:22.285844" elapsed="0.000212"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-11T02:36:22.286498" level="INFO">[?1l&gt;[?2004lDropAllFlows transitions to on
[?1h=[90m~[0m                                                                                [?2004hopendaylight-user@root&gt;</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-11T02:36:22.286183" elapsed="0.000374"/>
</kw>
<return>
<value>${output}</value>
<status status="PASS" start="2026-09-11T02:36:22.286608" elapsed="0.000050"/>
</return>
<arg>dropallpacketsrpc on</arg>
<doc>Will execute the given ${cmd} by ssh'ing to the karaf console running on 10.30.171.151
Note that this keyword will open&amp;close new SSH connection, without switching back to previously current session.</doc>
<status status="PASS" start="2026-09-11T02:36:22.088951" elapsed="0.197821"/>
</kw>
<status status="PASS" start="2026-09-11T02:36:20.416973" elapsed="1.869863"/>
</kw>
<test id="s1-t1" name="Cbench Latency Test" line="37">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-11T02:36:22.289030" level="INFO">Cbench tests using 10 iterations of 60 second tests. Switch Count: 16. Unique MACS to cycle: 100</msg>
<arg>Cbench tests using ${loops} iterations of ${duration_in_secs} second tests. Switch Count: ${switch_count}. Unique MACS to cycle: ${num_of_unique_macs}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-11T02:36:22.287661" elapsed="0.001428"/>
</kw>
<kw name="Run Cbench And Log Results">
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-09-11T02:36:22.290799" 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-09-11T02:36:22.290404" elapsed="0.000444"/>
</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-09-11T02:36:22.291186" elapsed="0.000038"/>
</kw>
<status status="NOT RUN" start="2026-09-11T02:36:22.290952" elapsed="0.000305"/>
</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-09-11T02:36:22.293963" elapsed="0.000019"/>
</kw>
<status status="NOT RUN" start="2026-09-11T02:36:22.293727" elapsed="0.000286"/>
</branch>
<status status="PASS" start="2026-09-11T02:36:22.293709" elapsed="0.000326"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-09-11T02:36:22.294362" level="INFO">index=None
host=None
alias=None
port=22
timeout=3 seconds
newline=

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

prompt=None
term_type=vt100
width=80
height=24
path_separator=/
encoding=utf8
escape_ansi=False
encoding_errors=strict</msg>
<var>${current_ssh_connection}</var>
<doc>Returns information about the connection.</doc>
<status status="PASS" start="2026-09-11T02:36:22.294152" elapsed="0.000342"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-11T02:36:22.294999" level="INFO">Attempting to execute command "/usr/local/bin/cbench -c 10.30.171.151 -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633" on remote system "10.30.170.183" by user "jenkins" with keyfile pass "any" and prompt "&gt;" and password ""</msg>
<arg>Attempting to execute command "${cmd}" on remote system "${system}" by user "${user}" with keyfile pass "${keyfile_pass}" and prompt "${prompt}" and password "${password}"</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-11T02:36:22.294612" elapsed="0.000441"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-09-11T02:36:22.295628" level="INFO">${conn_id} = 5</msg>
<var>${conn_id}</var>
<arg>${system}</arg>
<arg>prompt=${prompt}</arg>
<arg>timeout=${prompt_timeout}</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-09-11T02:36:22.295176" elapsed="0.000475"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-09-11T02:36:22.296681" level="INFO">Length is 0.</msg>
<msg time="2026-09-11T02:36:22.296760" level="INFO">${pwd_length} = 0</msg>
<var>${pwd_length}</var>
<arg>${password}</arg>
<doc>Returns and logs the length of the given item as an integer.</doc>
<status status="PASS" start="2026-09-11T02:36:22.296391" elapsed="0.000391"/>
</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-09-11T02:36:22.296907" elapsed="0.000329"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-09-11T02:36:22.298009" level="INFO">Logging into '10.30.170.183:22' as 'jenkins'.</msg>
<msg time="2026-09-11T02:36:22.701071" level="INFO">Read output: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-187-generic x86_64)

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

 System information as of Fri Sep 11 02:35:39 UTC 2026

  System load:  0.15               Processes:             113
  Usage of /:   19.8% of 38.58GB   Users logged in:       0
  Memory usage: 4%                 IPv4 address for ens3: 10.30.170.183
  Swap usage:   0%


Expanded Security Maintenance for Applications is not enabled.

5 updates can be applied immediately.
To see these additional updates run: apt list --upgradable

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


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


Last login: Fri Sep 11 02:36:21 2026 from 10.30.171.207
[?2004h[jenkins@releng-00446-82-1-mininet-ovs-217-0 ~]&gt;</msg>
<arg>${user}</arg>
<arg>${USER_HOME}/.ssh/${SSH_KEY}</arg>
<arg>${KEYFILE_PASS}</arg>
<arg>delay=${delay}</arg>
<doc>Logs into the SSH server using key-based authentication.</doc>
<status status="PASS" start="2026-09-11T02:36:22.297682" elapsed="0.403603"/>
</kw>
<msg time="2026-09-11T02:36:22.701369" level="INFO">Returning from the enclosing user keyword.</msg>
<arg>SSHLibrary.Login With Public Key</arg>
<arg>${user}</arg>
<arg>${USER_HOME}/.ssh/${SSH_KEY}</arg>
<arg>${KEYFILE_PASS}</arg>
<arg>delay=${delay}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-09-11T02:36:22.297373" elapsed="0.404085"/>
</kw>
<arg>${user}</arg>
<arg>${password}</arg>
<doc>On active SSH session: if given non-empty password, do Login, else do Login With Public Key.</doc>
<status status="PASS" start="2026-09-11T02:36:22.295828" elapsed="0.405743"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-11T02:36:22.702091" level="INFO">Executing command '/usr/local/bin/cbench -c 10.30.171.151 -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633'.</msg>
<msg time="2026-09-11T02:46:28.845557" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-09-11T02:46:28.845969" level="INFO">${stdout} = </msg>
<msg time="2026-09-11T02:46:28.846030" level="INFO">${stderr} = cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.171.151:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with 10...</msg>
<var>${stdout}</var>
<var>${stderr}</var>
<arg>${cmd}</arg>
<arg>return_stderr=True</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-11T02:36:22.701784" elapsed="606.144279"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-09-11T02:46:28.846430" elapsed="0.000464"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-11T02:46:28.847595" level="INFO">cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.171.151:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with 100 unique source MACs per switch
   learning destination mac addresses before the test
   starting test with 5000 ms delay after features_reply
   ignoring first 1 "warmup" and last 0 "cooldown" loops
   debugging info is off
Master Thread: Creating thread-0! 
Thread-0: All switches initialized. Running at node 10.30.171.151. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
02:37:27.906 16  switches: flows:  88950 89823 88521 88740 87593 88059 88220 87346 84210 84417 82522 85562 82973 85159 82457 83149  total = 22.961683 per ms 
02:38:28.007 16  switches: flows:  93799 91960 91281 91211 91031 89592 90652 88677 86967 87699 85704 85535 85940 86920 84465 84807  total = 23.564654 per ms 
02:39:28.107 16  switches: flows:  91573 89930 91986 90144 89833 89744 88639 89902 87060 87176 85016 85581 85037 84800 84488 84146  total = 23.378444 per ms 
02:40:28.208 16  switches: flows:  93931 91183 88840 89094 88961 88303 87148 87397 84894 85560 83518 84724 85377 83493 83650 83772  total = 23.125455 per ms 
02:41:28.310 16  switches: flows:  96220 94590 94740 92698 92901 92338 90618 91274 86914 88240 86883 88177 91258 87250 87119 84990  total = 24.062899 per ms 
02:42:28.412 16  switches: flows:  97566 95048 95241 94257 94548 95010 91262 93862 89387 90961 88781 88861 90404 87867 88325 85832  total = 24.412770 per ms 
02:43:28.513 16  switches: flows:  97192 94605 94025 93128 94321 94680 92009 93711 88875 89587 89925 88286 88927 87503 89460 88470  total = 24.371020 per ms 
02:44:28.613 16  switches: flows:  97721 94828 94381 93043 94363 92833 91420 93138 88852 89215 87913 90616 89862 85856 88924 86402  total = 24.282211 per ms 
02:45:28.714 16  switches: flows:  96401 93048 93718 91323 91385 93631 88593 92168 87097 89178 86515 87844 88815 86340 87451 85878  total = 23.949738 per ms 
02:46:28.815 16  switches: flows:  96973 95871 93285 94412 92049 93438 90957 95237 88280 92852 86777 89159 90873 86703 88857 87194  total = 24.341326 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 23125.46/24412.77/23943.17/7993.73 responses/s</msg>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-11T02:46:28.847118" elapsed="0.000673"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="PASS" start="2026-09-11T02:46:28.848124" elapsed="0.000056"/>
</return>
<status status="PASS" start="2026-09-11T02:46:28.847904" elapsed="0.000343"/>
</branch>
<status status="PASS" start="2026-09-11T02:46:28.847868" elapsed="0.000411"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="NOT RUN" start="2026-09-11T02:46:28.848399" elapsed="0.000017"/>
</return>
<status status="NOT RUN" start="2026-09-11T02:46:28.848353" elapsed="0.000097"/>
</branch>
<status status="NOT RUN" start="2026-09-11T02:46:28.848334" elapsed="0.000142"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-09-11T02:46:28.848517" elapsed="0.000017"/>
</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-09-11T02:46:28.852708" elapsed="0.000725"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<arg>127.0.0.1</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-09-11T02:46:28.853730" elapsed="0.000342"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-09-11T02:46:28.854360" elapsed="0.000197"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-09-11T02:46:28.848947" elapsed="0.005714"/>
</kw>
<msg time="2026-09-11T02:46:28.854911" level="INFO">${output} = cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.171.151:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with 10...</msg>
<var>${output}</var>
<arg>${cbench_system}</arg>
<arg>${cbench_executable} -c ${ODL_SYSTEM_IP} ${cbench_args}</arg>
<arg>prompt_timeout=${test_timeout}</arg>
<arg>return_stdout=False</arg>
<arg>return_stderr=True</arg>
<doc>Reduces the common work of running a command on a remote system to a single higher level
robot keyword, taking care to log in with a public key and. The command given is written and the return value
depends on the passed argument values of return_stdout (default: True) and return_stderr (default: False).
At least one should be True, or the keyword will exit and FAIL. If both are True, the resulting return value
will be a two element list containing both. Otherwise the resulting return value is a string.
No test conditions are checked.</doc>
<status status="PASS" start="2026-09-11T02:36:22.291582" elapsed="606.563408"/>
</kw>
<status status="PASS" start="2026-09-11T02:36:22.291285" elapsed="606.563800"/>
</branch>
<status status="PASS" start="2026-09-11T02:36:22.290910" elapsed="606.564222"/>
</if>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-11T02:46:28.856063" level="INFO">cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.171.151:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with 100 unique source MACs per switch
   learning destination mac addresses before the test
   starting test with 5000 ms delay after features_reply
   ignoring first 1 "warmup" and last 0 "cooldown" loops
   debugging info is off
Master Thread: Creating thread-0! 
Thread-0: All switches initialized. Running at node 10.30.171.151. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
02:37:27.906 16  switches: flows:  88950 89823 88521 88740 87593 88059 88220 87346 84210 84417 82522 85562 82973 85159 82457 83149  total = 22.961683 per ms 
02:38:28.007 16  switches: flows:  93799 91960 91281 91211 91031 89592 90652 88677 86967 87699 85704 85535 85940 86920 84465 84807  total = 23.564654 per ms 
02:39:28.107 16  switches: flows:  91573 89930 91986 90144 89833 89744 88639 89902 87060 87176 85016 85581 85037 84800 84488 84146  total = 23.378444 per ms 
02:40:28.208 16  switches: flows:  93931 91183 88840 89094 88961 88303 87148 87397 84894 85560 83518 84724 85377 83493 83650 83772  total = 23.125455 per ms 
02:41:28.310 16  switches: flows:  96220 94590 94740 92698 92901 92338 90618 91274 86914 88240 86883 88177 91258 87250 87119 84990  total = 24.062899 per ms 
02:42:28.412 16  switches: flows:  97566 95048 95241 94257 94548 95010 91262 93862 89387 90961 88781 88861 90404 87867 88325 85832  total = 24.412770 per ms 
02:43:28.513 16  switches: flows:  97192 94605 94025 93128 94321 94680 92009 93711 88875 89587 89925 88286 88927 87503 89460 88470  total = 24.371020 per ms 
02:44:28.613 16  switches: flows:  97721 94828 94381 93043 94363 92833 91420 93138 88852 89215 87913 90616 89862 85856 88924 86402  total = 24.282211 per ms 
02:45:28.714 16  switches: flows:  96401 93048 93718 91323 91385 93631 88593 92168 87097 89178 86515 87844 88815 86340 87451 85878  total = 23.949738 per ms 
02:46:28.815 16  switches: flows:  96973 95871 93285 94412 92049 93438 90957 95237 88280 92852 86777 89159 90873 86703 88857 87194  total = 24.341326 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 23125.46/24412.77/23943.17/7993.73 responses/s</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-11T02:46:28.855454" elapsed="0.000786"/>
</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-09-11T02:46:28.856533" elapsed="0.000814"/>
</kw>
<kw name="Get Lines Containing String" owner="String">
<msg time="2026-09-11T02:46:28.858148" level="INFO">1 out of 23 lines matched.</msg>
<msg time="2026-09-11T02:46:28.858378" level="INFO">${result_line} = RESULT: 16 switches 9 tests min/max/avg/stdev = 23125.46/24412.77/23943.17/7993.73 responses/s</msg>
<var>${result_line}</var>
<arg>${output}</arg>
<arg>RESULT</arg>
<doc>Returns lines of the given ``string`` that contain the ``pattern``.</doc>
<status status="PASS" start="2026-09-11T02:46:28.857664" elapsed="0.000763"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-09-11T02:46:28.859283" level="INFO">@{results_list} = [ RESULT: | 16 | switches | 9 | tests | min/max/avg/stdev | = | 23125.46/24412.77/23943.17/7993.73 | responses/s ]</msg>
<var>@{results_list}</var>
<arg>${result_line}</arg>
<doc>Splits the ``string`` using ``separator`` as a delimiter string.</doc>
<status status="PASS" start="2026-09-11T02:46:28.858730" elapsed="0.000608"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-11T02:46:28.864260" level="INFO">min/max/avg/stdev</msg>
<arg>${results_list[5]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-11T02:46:28.859623" elapsed="0.004752"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-11T02:46:28.869549" level="INFO">23125.46/24412.77/23943.17/7993.73</msg>
<arg>${results_list[7]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-11T02:46:28.864669" elapsed="0.005000"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-09-11T02:46:28.875124" level="INFO">@{result_name_list} = [ min | max | avg | stdev ]</msg>
<var>@{result_name_list}</var>
<arg>${results_list[5]}</arg>
<arg>/</arg>
<doc>Splits the ``string`` using ``separator`` as a delimiter string.</doc>
<status status="PASS" start="2026-09-11T02:46:28.870023" elapsed="0.005163"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-09-11T02:46:28.880672" level="INFO">@{result_value_list} = [ 23125.46 | 24412.77 | 23943.17 | 7993.73 ]</msg>
<var>@{result_value_list}</var>
<arg>${results_list[7]}</arg>
<arg>/</arg>
<doc>Splits the ``string`` using ``separator`` as a delimiter string.</doc>
<status status="PASS" start="2026-09-11T02:46:28.875756" elapsed="0.004977"/>
</kw>
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-09-11T02:46:28.881841" level="INFO">Length is 4.</msg>
<msg time="2026-09-11T02:46:28.882078" level="INFO">${num_stats} = 4</msg>
<var>${num_stats}</var>
<arg>${result_name_list}</arg>
<doc>Returns and logs the length of the given item as an integer.</doc>
<status status="PASS" start="2026-09-11T02:46:28.881103" elapsed="0.001027"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-11T02:46:28.890035" level="INFO">min :: 23125.46</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-11T02:46:28.883029" elapsed="0.007090"/>
</kw>
<var name="${i}">0</var>
<status status="PASS" start="2026-09-11T02:46:28.882729" elapsed="0.007441"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-11T02:46:28.896513" level="INFO">max :: 24412.77</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-11T02:46:28.890559" elapsed="0.006040"/>
</kw>
<var name="${i}">1</var>
<status status="PASS" start="2026-09-11T02:46:28.890329" elapsed="0.006321"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-11T02:46:28.903113" level="INFO">avg :: 23943.17</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-11T02:46:28.897018" elapsed="0.006235"/>
</kw>
<var name="${i}">2</var>
<status status="PASS" start="2026-09-11T02:46:28.896787" elapsed="0.006521"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-11T02:46:28.909489" level="INFO">stdev :: 7993.73</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-11T02:46:28.903667" elapsed="0.005907"/>
</kw>
<var name="${i}">3</var>
<status status="PASS" start="2026-09-11T02:46:28.903453" elapsed="0.006172"/>
</iter>
<var>${i}</var>
<value>0</value>
<value>${num_stats}</value>
<status status="PASS" start="2026-09-11T02:46:28.882296" elapsed="0.027377"/>
</for>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-09-11T02:46:28.914092" level="INFO">${min} = 23125.46</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-09-11T02:46:28.909944" elapsed="0.004175"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-09-11T02:46:28.918677" level="INFO">${max} = 24412.77</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-09-11T02:46:28.914297" elapsed="0.004406"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-09-11T02:46:28.922216" level="INFO">${average} = 23943.17</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-09-11T02:46:28.918849" elapsed="0.003393"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-09-11T02:46:28.925700" level="INFO">${stdev} = 7993.73</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-09-11T02:46:28.922381" elapsed="0.003343"/>
</kw>
<kw name="Get Time" owner="BuiltIn">
<msg time="2026-09-11T02:46:28.926221" level="INFO">${date} = 2026-09-11 02:46:28</msg>
<var>${date}</var>
<arg>d,m,s</arg>
<doc>Returns the given time in the requested format.</doc>
<status status="PASS" start="2026-09-11T02:46:28.925866" elapsed="0.000379"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-11T02:46:28.926744" level="INFO">CBench Result: 2026-09-11 02:46:28,-m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633,23125.46,24412.77,23943.17,7993.73</msg>
<arg>CBench Result: ${date},${cbench_args},${min},${max},${average},${stdev}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-11T02:46:28.926378" elapsed="0.000416"/>
</kw>
<kw name="Log Results And Determine Status">
<kw name="Append To File" owner="OperatingSystem">
<msg time="2026-09-11T02:46:28.927806" level="INFO" html="true">Appended to file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-cbench-only-chromium/latency.csv"&gt;/w/workspace/openflowplugin-csit-1node-cbench-only-chromium/latency.csv&lt;/a&gt;'.</msg>
<arg>${output_file}</arg>
<arg>${min},${max},${average}\n</arg>
<doc>Appends the given content to the specified file.</doc>
<status status="PASS" start="2026-09-11T02:46:28.927387" elapsed="0.000478"/>
</kw>
<kw name="Should Be True" owner="BuiltIn">
<arg>${average} &gt; ${threshold}</arg>
<arg>${average} flow_mods per/sec did not exceed threshold of ${threshold}</arg>
<doc>Fails if the given condition is not true.</doc>
<status status="PASS" start="2026-09-11T02:46:28.928011" elapsed="0.000439"/>
</kw>
<arg>${min}</arg>
<arg>${max}</arg>
<arg>${average}</arg>
<arg>${average_threshold}</arg>
<arg>${output_filename}</arg>
<status status="PASS" start="2026-09-11T02:46:28.926949" elapsed="0.001558"/>
</kw>
<arg>-m ${duration_in_ms} -M ${num_of_unique_macs} -S ${switch_count} -l ${loops} -D ${start_delay} -p ${of_port}</arg>
<arg>${latency_threshold}</arg>
<arg>${latency_results_file}</arg>
<status status="PASS" start="2026-09-11T02:36:22.289694" elapsed="606.638864"/>
</kw>
<kw name="Sleep" owner="BuiltIn">
<msg time="2026-09-11T02:46:28.928984" 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-09-11T02:46:28.928691" elapsed="0.000342"/>
</kw>
<kw name="Log Results As Zero If Cbench Timed Out" type="TEARDOWN">
<kw name="Run Keyword If Timeout Occurred" owner="BuiltIn">
<arg>Log Results And Determine Status</arg>
<arg>0</arg>
<arg>0</arg>
<arg>0</arg>
<arg>0</arg>
<arg>${output_filename}</arg>
<doc>Runs the given keyword if either a test or a keyword timeout has occurred.</doc>
<status status="PASS" start="2026-09-11T02:46:28.929505" elapsed="0.000235"/>
</kw>
<status status="PASS" start="2026-09-11T02:46:28.929233" elapsed="0.000567"/>
</kw>
<doc>cbench executed in default latency mode. Test parameters have defaults, but can be overridden
on the pybot command line</doc>
<tag>cbench</tag>
<tag>latency</tag>
<timeout value="15 minutes"/>
<status status="PASS" start="2026-09-11T02:36:22.287027" elapsed="606.642803"/>
</test>
<test id="s1-t2" name="Cbench Throughput Test" line="51">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-11T02:46:28.930963" level="INFO">Cbench tests using 10 iterations of 60 second tests. Switch Count: 16. Unique MACS to cycle: 100</msg>
<arg>Cbench tests using ${loops} iterations of ${duration_in_secs} second tests. Switch Count: ${switch_count}. Unique MACS to cycle: ${num_of_unique_macs}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-11T02:46:28.930619" elapsed="0.000396"/>
</kw>
<kw name="Run Cbench And Log Results">
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-09-11T02:46:28.932317" 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-09-11T02:46:28.931998" elapsed="0.000362"/>
</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-09-11T02:46:28.932694" elapsed="0.000019"/>
</kw>
<status status="NOT RUN" start="2026-09-11T02:46:28.932428" elapsed="0.000318"/>
</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-09-11T02:46:28.935445" elapsed="0.000019"/>
</kw>
<status status="NOT RUN" start="2026-09-11T02:46:28.935193" elapsed="0.000302"/>
</branch>
<status status="PASS" start="2026-09-11T02:46:28.935175" elapsed="0.000341"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-09-11T02:46:28.935831" level="INFO">index=None
host=None
alias=None
port=22
timeout=3 seconds
newline=

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

prompt=None
term_type=vt100
width=80
height=24
path_separator=/
encoding=utf8
escape_ansi=False
encoding_errors=strict</msg>
<var>${current_ssh_connection}</var>
<doc>Returns information about the connection.</doc>
<status status="PASS" start="2026-09-11T02:46:28.935634" elapsed="0.000344"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-11T02:46:28.936492" level="INFO">Attempting to execute command "/usr/local/bin/cbench -c 10.30.171.151 -t -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633" on remote system "10.30.170.183" by user "jenkins" with keyfile pass "any" and prompt "&gt;" and password ""</msg>
<arg>Attempting to execute command "${cmd}" on remote system "${system}" by user "${user}" with keyfile pass "${keyfile_pass}" and prompt "${prompt}" and password "${password}"</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-11T02:46:28.936098" elapsed="0.000446"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-09-11T02:46:28.937032" level="INFO">${conn_id} = 7</msg>
<var>${conn_id}</var>
<arg>${system}</arg>
<arg>prompt=${prompt}</arg>
<arg>timeout=${prompt_timeout}</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-09-11T02:46:28.936667" elapsed="0.000388"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-09-11T02:46:28.937857" level="INFO">Length is 0.</msg>
<msg time="2026-09-11T02:46:28.937947" level="INFO">${pwd_length} = 0</msg>
<var>${pwd_length}</var>
<arg>${password}</arg>
<doc>Returns and logs the length of the given item as an integer.</doc>
<status status="PASS" start="2026-09-11T02:46:28.937576" elapsed="0.000393"/>
</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-09-11T02:46:28.938095" elapsed="0.000311"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-09-11T02:46:28.939164" level="INFO">Logging into '10.30.170.183:22' as 'jenkins'.</msg>
<msg time="2026-09-11T02:46:29.652493" level="INFO">Read output: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-187-generic x86_64)

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

 System information as of Fri Sep 11 02:46:29 UTC 2026

  System load:  1.01               Processes:             104
  Usage of /:   19.8% of 38.58GB   Users logged in:       0
  Memory usage: 4%                 IPv4 address for ens3: 10.30.170.183
  Swap usage:   0%


Expanded Security Maintenance for Applications is not enabled.

5 updates can be applied immediately.
To see these additional updates run: apt list --upgradable

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


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


Last login: Fri Sep 11 02:36:22 2026 from 10.30.171.207
[?2004h[jenkins@releng-00446-82-1-mininet-ovs-217-0 ~]&gt;</msg>
<arg>${user}</arg>
<arg>${USER_HOME}/.ssh/${SSH_KEY}</arg>
<arg>${KEYFILE_PASS}</arg>
<arg>delay=${delay}</arg>
<doc>Logs into the SSH server using key-based authentication.</doc>
<status status="PASS" start="2026-09-11T02:46:28.938842" elapsed="0.713848"/>
</kw>
<msg time="2026-09-11T02:46:29.652774" level="INFO">Returning from the enclosing user keyword.</msg>
<arg>SSHLibrary.Login With Public Key</arg>
<arg>${user}</arg>
<arg>${USER_HOME}/.ssh/${SSH_KEY}</arg>
<arg>${KEYFILE_PASS}</arg>
<arg>delay=${delay}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-09-11T02:46:28.938540" elapsed="0.714322"/>
</kw>
<arg>${user}</arg>
<arg>${password}</arg>
<doc>On active SSH session: if given non-empty password, do Login, else do Login With Public Key.</doc>
<status status="PASS" start="2026-09-11T02:46:28.937248" elapsed="0.715736"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-11T02:46:29.653512" level="INFO">Executing command '/usr/local/bin/cbench -c 10.30.171.151 -t -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633'.</msg>
<msg time="2026-09-11T02:56:35.701527" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-09-11T02:56:35.702236" level="INFO">${stdout} = </msg>
<msg time="2026-09-11T02:56:35.702344" level="INFO">${stderr} = cbench: controller benchmarking tool
   running in mode 'throughput'
   connecting to controller at 10.30.171.151:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with...</msg>
<var>${stdout}</var>
<var>${stderr}</var>
<arg>${cmd}</arg>
<arg>return_stderr=True</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-11T02:46:29.653216" elapsed="606.049179"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-09-11T02:56:35.702891" elapsed="0.000764"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-11T02:56:35.704858" level="INFO">cbench: controller benchmarking tool
   running in mode 'throughput'
   connecting to controller at 10.30.171.151:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with 100 unique source MACs per switch
   learning destination mac addresses before the test
   starting test with 5000 ms delay after features_reply
   ignoring first 1 "warmup" and last 0 "cooldown" loops
   debugging info is off
Master Thread: Creating thread-0! 
Thread-0: All switches initialized. Running at node 10.30.171.151. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
02:47:34.752 16  switches: flows:  653721 649765 646688 648571 648079 656247 654571 635648 647717 654968 648026 653635 654983 644321 640673 651357  total = 173.149500 per ms 
02:48:34.856 16  switches: flows:  673033 660238 675549 671004 666023 666371 660955 668415 670035 669008 662649 658844 663163 669340 661258 663662  total = 177.354776 per ms 
02:49:34.957 16  switches: flows:  675492 668009 673426 676490 680939 677972 674845 684277 666755 675046 668082 672951 672980 686278 666737 671830  total = 179.565894 per ms 
02:50:35.058 16  switches: flows:  684354 679296 683855 682336 687022 689396 674452 683883 676217 680358 683816 674262 678680 689598 679637 680807  total = 181.494757 per ms 
02:51:35.160 16  switches: flows:  693995 693661 703962 686647 685640 690229 677548 693515 694127 681689 702327 687963 691029 697774 680877 690751  total = 183.885169 per ms 
02:52:35.263 16  switches: flows:  676374 676729 680349 675831 677039 675782 667177 679014 671317 679540 674054 670263 677856 682107 667843 674133  total = 179.787437 per ms 
02:53:35.364 16  switches: flows:  679791 695713 695923 691918 678483 688237 688857 688731 682328 689589 689514 688916 688371 689991 697404 684401  total = 183.328098 per ms 
02:54:35.466 16  switches: flows:  676867 678066 676115 675385 668243 682040 672120 684206 677648 677267 662837 669459 682265 684188 676497 679727  total = 180.077059 per ms 
02:55:35.567 16  switches: flows:  669531 669641 667462 659105 665010 676561 669001 659770 668621 677781 661306 662363 673200 672953 672141 668206  total = 177.911699 per ms 
02:56:35.669 16  switches: flows:  691750 692767 691794 697344 689875 680970 688929 693889 691926 697363 696996 677433 696482 690693 691752 682561  total = 183.899151 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 177354.78/183899.15/180811.56/60315.93 responses/s</msg>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-11T02:56:35.704064" elapsed="0.001119"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="PASS" start="2026-09-11T02:56:35.705694" elapsed="0.000096"/>
</return>
<status status="PASS" start="2026-09-11T02:56:35.705386" elapsed="0.000483"/>
</branch>
<status status="PASS" start="2026-09-11T02:56:35.705338" elapsed="0.000582"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="NOT RUN" start="2026-09-11T02:56:35.706131" elapsed="0.000039"/>
</return>
<status status="NOT RUN" start="2026-09-11T02:56:35.706034" elapsed="0.000231"/>
</branch>
<status status="NOT RUN" start="2026-09-11T02:56:35.706004" elapsed="0.000306"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-09-11T02:56:35.706373" elapsed="0.000029"/>
</return>
<kw name="Restore_Current_Ssh_Connection_From_Index" owner="SSHKeywords" type="TEARDOWN">
<kw name="Run Keyword And Return If" owner="BuiltIn">
<arg>${connection_index} is not None</arg>
<arg>SSHLibrary.Switch Connection</arg>
<arg>${connection_index}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-09-11T02:56:35.711780" elapsed="0.000804"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<arg>127.0.0.1</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-09-11T02:56:35.712904" elapsed="0.000353"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-09-11T02:56:35.713519" elapsed="0.000204"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-09-11T02:56:35.707039" elapsed="0.006809"/>
</kw>
<msg time="2026-09-11T02:56:35.714094" level="INFO">${output} = cbench: controller benchmarking tool
   running in mode 'throughput'
   connecting to controller at 10.30.171.151:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with...</msg>
<var>${output}</var>
<arg>${cbench_system}</arg>
<arg>${cbench_executable} -c ${ODL_SYSTEM_IP} ${cbench_args}</arg>
<arg>prompt_timeout=${test_timeout}</arg>
<arg>return_stdout=False</arg>
<arg>return_stderr=True</arg>
<doc>Reduces the common work of running a command on a remote system to a single higher level
robot keyword, taking care to log in with a public key and. The command given is written and the return value
depends on the passed argument values of return_stdout (default: True) and return_stderr (default: False).
At least one should be True, or the keyword will exit and FAIL. If both are True, the resulting return value
will be a two element list containing both. Otherwise the resulting return value is a string.
No test conditions are checked.</doc>
<status status="PASS" start="2026-09-11T02:46:28.933105" elapsed="606.781043"/>
</kw>
<status status="PASS" start="2026-09-11T02:46:28.932769" elapsed="606.781505"/>
</branch>
<status status="PASS" start="2026-09-11T02:46:28.932408" elapsed="606.781911"/>
</if>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-11T02:56:35.715227" level="INFO">cbench: controller benchmarking tool
   running in mode 'throughput'
   connecting to controller at 10.30.171.151:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with 100 unique source MACs per switch
   learning destination mac addresses before the test
   starting test with 5000 ms delay after features_reply
   ignoring first 1 "warmup" and last 0 "cooldown" loops
   debugging info is off
Master Thread: Creating thread-0! 
Thread-0: All switches initialized. Running at node 10.30.171.151. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
02:47:34.752 16  switches: flows:  653721 649765 646688 648571 648079 656247 654571 635648 647717 654968 648026 653635 654983 644321 640673 651357  total = 173.149500 per ms 
02:48:34.856 16  switches: flows:  673033 660238 675549 671004 666023 666371 660955 668415 670035 669008 662649 658844 663163 669340 661258 663662  total = 177.354776 per ms 
02:49:34.957 16  switches: flows:  675492 668009 673426 676490 680939 677972 674845 684277 666755 675046 668082 672951 672980 686278 666737 671830  total = 179.565894 per ms 
02:50:35.058 16  switches: flows:  684354 679296 683855 682336 687022 689396 674452 683883 676217 680358 683816 674262 678680 689598 679637 680807  total = 181.494757 per ms 
02:51:35.160 16  switches: flows:  693995 693661 703962 686647 685640 690229 677548 693515 694127 681689 702327 687963 691029 697774 680877 690751  total = 183.885169 per ms 
02:52:35.263 16  switches: flows:  676374 676729 680349 675831 677039 675782 667177 679014 671317 679540 674054 670263 677856 682107 667843 674133  total = 179.787437 per ms 
02:53:35.364 16  switches: flows:  679791 695713 695923 691918 678483 688237 688857 688731 682328 689589 689514 688916 688371 689991 697404 684401  total = 183.328098 per ms 
02:54:35.466 16  switches: flows:  676867 678066 676115 675385 668243 682040 672120 684206 677648 677267 662837 669459 682265 684188 676497 679727  total = 180.077059 per ms 
02:55:35.567 16  switches: flows:  669531 669641 667462 659105 665010 676561 669001 659770 668621 677781 661306 662363 673200 672953 672141 668206  total = 177.911699 per ms 
02:56:35.669 16  switches: flows:  691750 692767 691794 697344 689875 680970 688929 693889 691926 697363 696996 677433 696482 690693 691752 682561  total = 183.899151 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 177354.78/183899.15/180811.56/60315.93 responses/s</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-11T02:56:35.714595" elapsed="0.000788"/>
</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-09-11T02:56:35.715673" elapsed="0.000785"/>
</kw>
<kw name="Get Lines Containing String" owner="String">
<msg time="2026-09-11T02:56:35.717384" level="INFO">1 out of 23 lines matched.</msg>
<msg time="2026-09-11T02:56:35.717579" level="INFO">${result_line} = RESULT: 16 switches 9 tests min/max/avg/stdev = 177354.78/183899.15/180811.56/60315.93 responses/s</msg>
<var>${result_line}</var>
<arg>${output}</arg>
<arg>RESULT</arg>
<doc>Returns lines of the given ``string`` that contain the ``pattern``.</doc>
<status status="PASS" start="2026-09-11T02:56:35.716803" elapsed="0.000841"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-09-11T02:56:35.718514" level="INFO">@{results_list} = [ RESULT: | 16 | switches | 9 | tests | min/max/avg/stdev | = | 177354.78/183899.15/180811.56/60315.93 | responses/s ]</msg>
<var>@{results_list}</var>
<arg>${result_line}</arg>
<doc>Splits the ``string`` using ``separator`` as a delimiter string.</doc>
<status status="PASS" start="2026-09-11T02:56:35.717977" elapsed="0.000591"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-11T02:56:35.723587" level="INFO">min/max/avg/stdev</msg>
<arg>${results_list[5]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-11T02:56:35.718875" elapsed="0.004832"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-11T02:56:35.728698" level="INFO">177354.78/183899.15/180811.56/60315.93</msg>
<arg>${results_list[7]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-11T02:56:35.724053" elapsed="0.004791"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-09-11T02:56:35.733958" level="INFO">@{result_name_list} = [ min | max | avg | stdev ]</msg>
<var>@{result_name_list}</var>
<arg>${results_list[5]}</arg>
<arg>/</arg>
<doc>Splits the ``string`` using ``separator`` as a delimiter string.</doc>
<status status="PASS" start="2026-09-11T02:56:35.729174" elapsed="0.004840"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-09-11T02:56:35.739505" level="INFO">@{result_value_list} = [ 177354.78 | 183899.15 | 180811.56 | 60315.93 ]</msg>
<var>@{result_value_list}</var>
<arg>${results_list[7]}</arg>
<arg>/</arg>
<doc>Splits the ``string`` using ``separator`` as a delimiter string.</doc>
<status status="PASS" start="2026-09-11T02:56:35.734458" elapsed="0.005112"/>
</kw>
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-09-11T02:56:35.740609" level="INFO">Length is 4.</msg>
<msg time="2026-09-11T02:56:35.740829" level="INFO">${num_stats} = 4</msg>
<var>${num_stats}</var>
<arg>${result_name_list}</arg>
<doc>Returns and logs the length of the given item as an integer.</doc>
<status status="PASS" start="2026-09-11T02:56:35.739910" elapsed="0.000970"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-11T02:56:35.748629" level="INFO">min :: 177354.78</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-11T02:56:35.741750" elapsed="0.006959"/>
</kw>
<var name="${i}">0</var>
<status status="PASS" start="2026-09-11T02:56:35.741445" elapsed="0.007336"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-11T02:56:35.754759" level="INFO">max :: 183899.15</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-11T02:56:35.749086" elapsed="0.005765"/>
</kw>
<var name="${i}">1</var>
<status status="PASS" start="2026-09-11T02:56:35.748908" elapsed="0.005988"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-11T02:56:35.760791" level="INFO">avg :: 180811.56</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-11T02:56:35.755194" elapsed="0.005674"/>
</kw>
<var name="${i}">2</var>
<status status="PASS" start="2026-09-11T02:56:35.755009" elapsed="0.005903"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-11T02:56:35.766687" level="INFO">stdev :: 60315.93</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-11T02:56:35.761228" elapsed="0.005552"/>
</kw>
<var name="${i}">3</var>
<status status="PASS" start="2026-09-11T02:56:35.761039" elapsed="0.005784"/>
</iter>
<var>${i}</var>
<value>0</value>
<value>${num_stats}</value>
<status status="PASS" start="2026-09-11T02:56:35.741005" elapsed="0.025858"/>
</for>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-09-11T02:56:35.771141" level="INFO">${min} = 177354.78</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-09-11T02:56:35.767078" elapsed="0.004089"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-09-11T02:56:35.774702" level="INFO">${max} = 183899.15</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-09-11T02:56:35.771337" elapsed="0.003404"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-09-11T02:56:35.778333" level="INFO">${average} = 180811.56</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-09-11T02:56:35.774882" elapsed="0.003479"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-09-11T02:56:35.781933" level="INFO">${stdev} = 60315.93</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-09-11T02:56:35.778499" elapsed="0.003459"/>
</kw>
<kw name="Get Time" owner="BuiltIn">
<msg time="2026-09-11T02:56:35.782460" level="INFO">${date} = 2026-09-11 02:56:35</msg>
<var>${date}</var>
<arg>d,m,s</arg>
<doc>Returns the given time in the requested format.</doc>
<status status="PASS" start="2026-09-11T02:56:35.782103" elapsed="0.000514"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-11T02:56:35.783183" level="INFO">CBench Result: 2026-09-11 02:56:35,-t -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633,177354.78,183899.15,180811.56,60315.93</msg>
<arg>CBench Result: ${date},${cbench_args},${min},${max},${average},${stdev}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-11T02:56:35.782788" elapsed="0.000471"/>
</kw>
<kw name="Log Results And Determine Status">
<kw name="Append To File" owner="OperatingSystem">
<msg time="2026-09-11T02:56:35.784585" level="INFO" html="true">Appended to file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-cbench-only-chromium/throughput.csv"&gt;/w/workspace/openflowplugin-csit-1node-cbench-only-chromium/throughput.csv&lt;/a&gt;'.</msg>
<arg>${output_file}</arg>
<arg>${min},${max},${average}\n</arg>
<doc>Appends the given content to the specified file.</doc>
<status status="PASS" start="2026-09-11T02:56:35.784112" elapsed="0.000554"/>
</kw>
<kw name="Should Be True" owner="BuiltIn">
<arg>${average} &gt; ${threshold}</arg>
<arg>${average} flow_mods per/sec did not exceed threshold of ${threshold}</arg>
<doc>Fails if the given condition is not true.</doc>
<status status="PASS" start="2026-09-11T02:56:35.784870" elapsed="0.000621"/>
</kw>
<arg>${min}</arg>
<arg>${max}</arg>
<arg>${average}</arg>
<arg>${average_threshold}</arg>
<arg>${output_filename}</arg>
<status status="PASS" start="2026-09-11T02:56:35.783617" elapsed="0.001956"/>
</kw>
<arg>-t -m ${duration_in_ms} -M ${num_of_unique_macs} -S ${switch_count} -l ${loops} -D ${start_delay} -p ${of_port}</arg>
<arg>${throughput_threshold}</arg>
<arg>${throughput_results_file}</arg>
<status status="PASS" start="2026-09-11T02:46:28.931425" elapsed="606.854223"/>
</kw>
<kw name="Sleep" owner="BuiltIn">
<msg time="2026-09-11T02:56:35.786329" 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-09-11T02:56:35.785879" elapsed="0.000532"/>
</kw>
<kw name="Log Results As Zero If Cbench Timed Out" type="TEARDOWN">
<kw name="Run Keyword If Timeout Occurred" owner="BuiltIn">
<arg>Log Results And Determine Status</arg>
<arg>0</arg>
<arg>0</arg>
<arg>0</arg>
<arg>0</arg>
<arg>${output_filename}</arg>
<doc>Runs the given keyword if either a test or a keyword timeout has occurred.</doc>
<status status="PASS" start="2026-09-11T02:56:35.787057" elapsed="0.000285"/>
</kw>
<status status="PASS" start="2026-09-11T02:56:35.786683" elapsed="0.000733"/>
</kw>
<doc>cbench executed in throughput mode (-t). Test parameters have defaults, but can be overridden
on the pybot command line</doc>
<tag>cbench</tag>
<tag>throughput</tag>
<timeout value="15 minutes"/>
<status status="PASS" start="2026-09-11T02:46:28.930118" elapsed="606.857332"/>
</test>
<test id="s1-t3" name="Rerun Latency Test To Check Bug 6176" line="65">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-11T02:56:35.789010" level="INFO">Cbench tests using 10 iterations of 60 second tests. Switch Count: 16. Unique MACS to cycle: 100</msg>
<arg>Cbench tests using ${loops} iterations of ${duration_in_secs} second tests. Switch Count: ${switch_count}. Unique MACS to cycle: ${num_of_unique_macs}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-11T02:56:35.788581" elapsed="0.000488"/>
</kw>
<kw name="Run Cbench And Log Results">
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-09-11T02:56:35.790185" 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-09-11T02:56:35.789891" elapsed="0.000351"/>
</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-09-11T02:56:35.790585" elapsed="0.000019"/>
</kw>
<status status="NOT RUN" start="2026-09-11T02:56:35.790374" elapsed="0.000263"/>
</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-09-11T02:56:35.793461" elapsed="0.000019"/>
</kw>
<status status="NOT RUN" start="2026-09-11T02:56:35.793238" elapsed="0.000273"/>
</branch>
<status status="PASS" start="2026-09-11T02:56:35.793220" elapsed="0.000311"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-09-11T02:56:35.793875" level="INFO">index=None
host=None
alias=None
port=22
timeout=3 seconds
newline=

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

prompt=None
term_type=vt100
width=80
height=24
path_separator=/
encoding=utf8
escape_ansi=False
encoding_errors=strict</msg>
<var>${current_ssh_connection}</var>
<doc>Returns information about the connection.</doc>
<status status="PASS" start="2026-09-11T02:56:35.793655" elapsed="0.000363"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-11T02:56:35.794579" level="INFO">Attempting to execute command "/usr/local/bin/cbench -c 10.30.171.151 -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633" on remote system "10.30.170.183" by user "jenkins" with keyfile pass "any" and prompt "&gt;" and password ""</msg>
<arg>Attempting to execute command "${cmd}" on remote system "${system}" by user "${user}" with keyfile pass "${keyfile_pass}" and prompt "${prompt}" and password "${password}"</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-11T02:56:35.794160" elapsed="0.000471"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-09-11T02:56:35.795129" level="INFO">${conn_id} = 9</msg>
<var>${conn_id}</var>
<arg>${system}</arg>
<arg>prompt=${prompt}</arg>
<arg>timeout=${prompt_timeout}</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-09-11T02:56:35.794768" elapsed="0.000385"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-09-11T02:56:35.796138" level="INFO">Length is 0.</msg>
<msg time="2026-09-11T02:56:35.796264" level="INFO">${pwd_length} = 0</msg>
<var>${pwd_length}</var>
<arg>${password}</arg>
<doc>Returns and logs the length of the given item as an integer.</doc>
<status status="PASS" start="2026-09-11T02:56:35.795844" elapsed="0.000442"/>
</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-09-11T02:56:35.796418" elapsed="0.000301"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-09-11T02:56:35.797504" level="INFO">Logging into '10.30.170.183:22' as 'jenkins'.</msg>
<msg time="2026-09-11T02:56:36.452669" level="INFO">Read output: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-187-generic x86_64)

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

 System information as of Fri Sep 11 02:56:35 UTC 2026

  System load:  0.33               Processes:             104
  Usage of /:   19.8% of 38.58GB   Users logged in:       0
  Memory usage: 4%                 IPv4 address for ens3: 10.30.170.183
  Swap usage:   0%

 * Canonical Workshop gives developers fast, composable, reproducible, and
   secure developer environments that are perfect for agentic workflows.

   https://ubuntu.com/workshop

Expanded Security Maintenance for Applications is not enabled.

5 updates can be applied immediately.
To see these additional updates run: apt list --upgradable

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


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


Last login: Fri Sep 11 02:46:29 2026 from 10.30.171.207
[?2004h[jenkins@releng-00446-82-1-mininet-ovs-217-0 ~]&gt;</msg>
<arg>${user}</arg>
<arg>${USER_HOME}/.ssh/${SSH_KEY}</arg>
<arg>${KEYFILE_PASS}</arg>
<arg>delay=${delay}</arg>
<doc>Logs into the SSH server using key-based authentication.</doc>
<status status="PASS" start="2026-09-11T02:56:35.797174" elapsed="0.655708"/>
</kw>
<msg time="2026-09-11T02:56:36.452967" level="INFO">Returning from the enclosing user keyword.</msg>
<arg>SSHLibrary.Login With Public Key</arg>
<arg>${user}</arg>
<arg>${USER_HOME}/.ssh/${SSH_KEY}</arg>
<arg>${KEYFILE_PASS}</arg>
<arg>delay=${delay}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-09-11T02:56:35.796867" elapsed="0.656185"/>
</kw>
<arg>${user}</arg>
<arg>${password}</arg>
<doc>On active SSH session: if given non-empty password, do Login, else do Login With Public Key.</doc>
<status status="PASS" start="2026-09-11T02:56:35.795496" elapsed="0.657669"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-11T02:56:36.453719" level="INFO">Executing command '/usr/local/bin/cbench -c 10.30.171.151 -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633'.</msg>
<msg time="2026-09-11T03:06:42.547986" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-09-11T03:06:42.551850" level="INFO">${stdout} = </msg>
<msg time="2026-09-11T03:06:42.551987" level="INFO">${stderr} = cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.171.151:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with 10...</msg>
<var>${stdout}</var>
<var>${stderr}</var>
<arg>${cmd}</arg>
<arg>return_stderr=True</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-11T02:56:36.453406" elapsed="606.098638"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-09-11T03:06:42.553260" elapsed="0.000878"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-11T03:06:42.555371" level="INFO">cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.171.151:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with 100 unique source MACs per switch
   learning destination mac addresses before the test
   starting test with 5000 ms delay after features_reply
   ignoring first 1 "warmup" and last 0 "cooldown" loops
   debugging info is off
Master Thread: Creating thread-0! 
Thread-0: All switches initialized. Running at node 10.30.171.151. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
02:57:41.574 16  switches: flows:  90627 91126 90149 90399 90106 88928 89195 88122 89615 87128 87791 86529 86593 85933 87104 86519  total = 23.597733 per ms 
02:58:41.675 16  switches: flows:  92254 92592 91945 91681 90114 90535 91755 90798 90009 87266 89898 89703 89106 87593 90100 88296  total = 24.020616 per ms 
02:59:41.775 16  switches: flows:  93082 92798 92083 93067 90899 91690 92098 92037 91325 88798 88048 90191 88632 88657 90384 90541  total = 24.198386 per ms 
03:00:41.876 16  switches: flows:  92522 94868 95299 92903 92135 91316 90870 90841 91728 89522 87391 91827 88995 90332 90859 90197  total = 24.319435 per ms 
03:01:41.976 16  switches: flows:  92895 95094 96181 92806 93413 92300 93591 91111 92154 89772 90595 92103 90258 89657 92699 92076  total = 24.570683 per ms 
03:02:42.076 16  switches: flows:  92152 94462 95225 92930 93633 90716 91442 91042 90166 88504 89550 91635 88681 88724 92563 91222  total = 24.336748 per ms 
03:03:42.177 16  switches: flows:  92737 94773 95429 93416 93871 91654 94279 91626 91806 89539 90341 91621 90896 89419 92751 92271  total = 24.566094 per ms 
03:04:42.277 16  switches: flows:  93217 95668 94298 91934 92386 91790 93126 90385 91660 89782 89113 92397 89764 88640 92081 91565  total = 24.422667 per ms 
03:05:42.377 16  switches: flows:  93850 94386 95658 93470 94608 93222 94189 91539 93694 89953 90846 93329 92427 90422 93207 91403  total = 24.728738 per ms 
03:06:42.478 16  switches: flows:  92510 95252 95303 93102 94984 92069 92530 91810 92196 90935 89060 93313 93281 89709 93394 92403  total = 24.656322 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 24020.62/24728.74/24424.41/8144.34 responses/s</msg>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-11T03:06:42.554528" elapsed="0.001194"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="PASS" start="2026-09-11T03:06:42.556225" elapsed="0.000074"/>
</return>
<status status="PASS" start="2026-09-11T03:06:42.555893" elapsed="0.000481"/>
</branch>
<status status="PASS" start="2026-09-11T03:06:42.555845" elapsed="0.000580"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="NOT RUN" start="2026-09-11T03:06:42.556609" elapsed="0.000026"/>
</return>
<status status="NOT RUN" start="2026-09-11T03:06:42.556538" elapsed="0.000182"/>
</branch>
<status status="NOT RUN" start="2026-09-11T03:06:42.556508" elapsed="0.000273"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-09-11T03:06:42.556859" elapsed="0.000029"/>
</return>
<kw name="Restore_Current_Ssh_Connection_From_Index" owner="SSHKeywords" type="TEARDOWN">
<kw name="Run Keyword And Return If" owner="BuiltIn">
<arg>${connection_index} is not None</arg>
<arg>SSHLibrary.Switch Connection</arg>
<arg>${connection_index}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-09-11T03:06:42.563371" elapsed="0.000779"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<arg>127.0.0.1</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-09-11T03:06:42.564494" elapsed="0.000358"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-09-11T03:06:42.565144" elapsed="0.000249"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-09-11T03:06:42.558223" elapsed="0.007279"/>
</kw>
<msg time="2026-09-11T03:06:42.565797" level="INFO">${output} = cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.171.151:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with 10...</msg>
<var>${output}</var>
<arg>${cbench_system}</arg>
<arg>${cbench_executable} -c ${ODL_SYSTEM_IP} ${cbench_args}</arg>
<arg>prompt_timeout=${test_timeout}</arg>
<arg>return_stdout=False</arg>
<arg>return_stderr=True</arg>
<doc>Reduces the common work of running a command on a remote system to a single higher level
robot keyword, taking care to log in with a public key and. The command given is written and the return value
depends on the passed argument values of return_stdout (default: True) and return_stderr (default: False).
At least one should be True, or the keyword will exit and FAIL. If both are True, the resulting return value
will be a two element list containing both. Otherwise the resulting return value is a string.
No test conditions are checked.</doc>
<status status="PASS" start="2026-09-11T02:56:35.790981" elapsed="606.774871"/>
</kw>
<status status="PASS" start="2026-09-11T02:56:35.790659" elapsed="606.775291"/>
</branch>
<status status="PASS" start="2026-09-11T02:56:35.790354" elapsed="606.775640"/>
</if>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-11T03:06:42.567937" level="INFO">cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.171.151:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with 100 unique source MACs per switch
   learning destination mac addresses before the test
   starting test with 5000 ms delay after features_reply
   ignoring first 1 "warmup" and last 0 "cooldown" loops
   debugging info is off
Master Thread: Creating thread-0! 
Thread-0: All switches initialized. Running at node 10.30.171.151. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
02:57:41.574 16  switches: flows:  90627 91126 90149 90399 90106 88928 89195 88122 89615 87128 87791 86529 86593 85933 87104 86519  total = 23.597733 per ms 
02:58:41.675 16  switches: flows:  92254 92592 91945 91681 90114 90535 91755 90798 90009 87266 89898 89703 89106 87593 90100 88296  total = 24.020616 per ms 
02:59:41.775 16  switches: flows:  93082 92798 92083 93067 90899 91690 92098 92037 91325 88798 88048 90191 88632 88657 90384 90541  total = 24.198386 per ms 
03:00:41.876 16  switches: flows:  92522 94868 95299 92903 92135 91316 90870 90841 91728 89522 87391 91827 88995 90332 90859 90197  total = 24.319435 per ms 
03:01:41.976 16  switches: flows:  92895 95094 96181 92806 93413 92300 93591 91111 92154 89772 90595 92103 90258 89657 92699 92076  total = 24.570683 per ms 
03:02:42.076 16  switches: flows:  92152 94462 95225 92930 93633 90716 91442 91042 90166 88504 89550 91635 88681 88724 92563 91222  total = 24.336748 per ms 
03:03:42.177 16  switches: flows:  92737 94773 95429 93416 93871 91654 94279 91626 91806 89539 90341 91621 90896 89419 92751 92271  total = 24.566094 per ms 
03:04:42.277 16  switches: flows:  93217 95668 94298 91934 92386 91790 93126 90385 91660 89782 89113 92397 89764 88640 92081 91565  total = 24.422667 per ms 
03:05:42.377 16  switches: flows:  93850 94386 95658 93470 94608 93222 94189 91539 93694 89953 90846 93329 92427 90422 93207 91403  total = 24.728738 per ms 
03:06:42.478 16  switches: flows:  92510 95252 95303 93102 94984 92069 92530 91810 92196 90935 89060 93313 93281 89709 93394 92403  total = 24.656322 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 24020.62/24728.74/24424.41/8144.34 responses/s</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-11T03:06:42.566350" elapsed="0.001741"/>
</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-09-11T03:06:42.568418" elapsed="0.000820"/>
</kw>
<kw name="Get Lines Containing String" owner="String">
<msg time="2026-09-11T03:06:42.570060" level="INFO">1 out of 23 lines matched.</msg>
<msg time="2026-09-11T03:06:42.570272" level="INFO">${result_line} = RESULT: 16 switches 9 tests min/max/avg/stdev = 24020.62/24728.74/24424.41/8144.34 responses/s</msg>
<var>${result_line}</var>
<arg>${output}</arg>
<arg>RESULT</arg>
<doc>Returns lines of the given ``string`` that contain the ``pattern``.</doc>
<status status="PASS" start="2026-09-11T03:06:42.569561" elapsed="0.000762"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-09-11T03:06:42.571147" level="INFO">@{results_list} = [ RESULT: | 16 | switches | 9 | tests | min/max/avg/stdev | = | 24020.62/24728.74/24424.41/8144.34 | responses/s ]</msg>
<var>@{results_list}</var>
<arg>${result_line}</arg>
<doc>Splits the ``string`` using ``separator`` as a delimiter string.</doc>
<status status="PASS" start="2026-09-11T03:06:42.570628" elapsed="0.000601"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-11T03:06:42.576106" level="INFO">min/max/avg/stdev</msg>
<arg>${results_list[5]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-11T03:06:42.571520" elapsed="0.004729"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-11T03:06:42.581779" level="INFO">24020.62/24728.74/24424.41/8144.34</msg>
<arg>${results_list[7]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-11T03:06:42.576542" elapsed="0.005354"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-09-11T03:06:42.586339" level="INFO">@{result_name_list} = [ min | max | avg | stdev ]</msg>
<var>@{result_name_list}</var>
<arg>${results_list[5]}</arg>
<arg>/</arg>
<doc>Splits the ``string`` using ``separator`` as a delimiter string.</doc>
<status status="PASS" start="2026-09-11T03:06:42.582232" elapsed="0.004141"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-09-11T03:06:42.589719" level="INFO">@{result_value_list} = [ 24020.62 | 24728.74 | 24424.41 | 8144.34 ]</msg>
<var>@{result_value_list}</var>
<arg>${results_list[7]}</arg>
<arg>/</arg>
<doc>Splits the ``string`` using ``separator`` as a delimiter string.</doc>
<status status="PASS" start="2026-09-11T03:06:42.586882" elapsed="0.002873"/>
</kw>
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-09-11T03:06:42.590399" level="INFO">Length is 4.</msg>
<msg time="2026-09-11T03:06:42.590539" level="INFO">${num_stats} = 4</msg>
<var>${num_stats}</var>
<arg>${result_name_list}</arg>
<doc>Returns and logs the length of the given item as an integer.</doc>
<status status="PASS" start="2026-09-11T03:06:42.589946" elapsed="0.000639"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-11T03:06:42.596562" level="INFO">min :: 24020.62</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-11T03:06:42.591131" elapsed="0.005503"/>
</kw>
<var name="${i}">0</var>
<status status="PASS" start="2026-09-11T03:06:42.590970" elapsed="0.005729"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-11T03:06:42.602625" level="INFO">max :: 24728.74</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-11T03:06:42.596981" elapsed="0.005732"/>
</kw>
<var name="${i}">1</var>
<status status="PASS" start="2026-09-11T03:06:42.596811" elapsed="0.005945"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-11T03:06:42.608484" level="INFO">avg :: 24424.41</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-11T03:06:42.603017" elapsed="0.005537"/>
</kw>
<var name="${i}">2</var>
<status status="PASS" start="2026-09-11T03:06:42.602859" elapsed="0.005738"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-11T03:06:42.614392" level="INFO">stdev :: 8144.34</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-11T03:06:42.608878" elapsed="0.005584"/>
</kw>
<var name="${i}">3</var>
<status status="PASS" start="2026-09-11T03:06:42.608718" elapsed="0.005786"/>
</iter>
<var>${i}</var>
<value>0</value>
<value>${num_stats}</value>
<status status="PASS" start="2026-09-11T03:06:42.590709" elapsed="0.023831"/>
</for>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-09-11T03:06:42.619499" level="INFO">${min} = 24020.62</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-09-11T03:06:42.614773" elapsed="0.004760"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-09-11T03:06:42.624523" level="INFO">${max} = 24728.74</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-09-11T03:06:42.619746" elapsed="0.004815"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-09-11T03:06:42.628076" level="INFO">${average} = 24424.41</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-09-11T03:06:42.624755" elapsed="0.003346"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-09-11T03:06:42.631650" level="INFO">${stdev} = 8144.34</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-09-11T03:06:42.628261" elapsed="0.003414"/>
</kw>
<kw name="Get Time" owner="BuiltIn">
<msg time="2026-09-11T03:06:42.632364" level="INFO">${date} = 2026-09-11 03:06:42</msg>
<var>${date}</var>
<arg>d,m,s</arg>
<doc>Returns the given time in the requested format.</doc>
<status status="PASS" start="2026-09-11T03:06:42.631839" elapsed="0.000549"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-11T03:06:42.632901" level="INFO">CBench Result: 2026-09-11 03:06:42,-m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633,24020.62,24728.74,24424.41,8144.34</msg>
<arg>CBench Result: ${date},${cbench_args},${min},${max},${average},${stdev}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-11T03:06:42.632522" elapsed="0.000428"/>
</kw>
<kw name="Log Results And Determine Status">
<kw name="Append To File" owner="OperatingSystem">
<msg time="2026-09-11T03:06:42.634004" level="INFO" html="true">Appended to file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-cbench-only-chromium/bug.csv"&gt;/w/workspace/openflowplugin-csit-1node-cbench-only-chromium/bug.csv&lt;/a&gt;'.</msg>
<arg>${output_file}</arg>
<arg>${min},${max},${average}\n</arg>
<doc>Appends the given content to the specified file.</doc>
<status status="PASS" start="2026-09-11T03:06:42.633534" elapsed="0.000532"/>
</kw>
<kw name="Should Be True" owner="BuiltIn">
<arg>${average} &gt; ${threshold}</arg>
<arg>${average} flow_mods per/sec did not exceed threshold of ${threshold}</arg>
<doc>Fails if the given condition is not true.</doc>
<status status="PASS" start="2026-09-11T03:06:42.634216" elapsed="0.000445"/>
</kw>
<arg>${min}</arg>
<arg>${max}</arg>
<arg>${average}</arg>
<arg>${average_threshold}</arg>
<arg>${output_filename}</arg>
<status status="PASS" start="2026-09-11T03:06:42.633083" elapsed="0.001659"/>
</kw>
<arg>-m ${duration_in_ms} -M ${num_of_unique_macs} -S ${switch_count} -l ${loops} -D ${start_delay} -p ${of_port}</arg>
<arg>${latency_threshold}</arg>
<arg>bug.csv</arg>
<status status="PASS" start="2026-09-11T02:56:35.789387" elapsed="606.845408"/>
</kw>
<kw name="Sleep" owner="BuiltIn">
<msg time="2026-09-11T03:06:42.635289" 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-09-11T03:06:42.634947" elapsed="0.000396"/>
</kw>
<kw name="Report Failure Due To Bug" owner="Utils" type="TEARDOWN">
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-09-11T03:06:42.636571" level="INFO">${test_skipped} = False</msg>
<var>${test_skipped}</var>
<arg>len(re.findall('SKIPPED', """${TEST_MESSAGE}""")) &gt; 0</arg>
<arg>modules=re</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-09-11T03:06:42.636048" elapsed="0.000548"/>
</kw>
<if>
<branch type="IF" condition="('${TEST_STATUS}' != 'FAIL') or ${test_skipped}">
<return>
<status status="PASS" start="2026-09-11T03:06:42.636828" elapsed="0.000035"/>
</return>
<status status="PASS" start="2026-09-11T03:06:42.636669" elapsed="0.000223"/>
</branch>
<status status="PASS" start="2026-09-11T03:06:42.636649" elapsed="0.000265"/>
</if>
<kw name="Comment" owner="BuiltIn">
<arg>Jira tickets are {PROJECT}-{NUMBER} while Bugzilla tickets are {NUMBER}</arg>
<doc>Displays the given messages in the log file as keyword arguments.</doc>
<status status="NOT RUN" start="2026-09-11T03:06:42.637047" elapsed="0.000019"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<var>${match}</var>
<arg>Should Contain</arg>
<arg>${number}</arg>
<arg>-</arg>
<doc>Runs the specified keyword and returns the status as a Boolean value.</doc>
<status status="NOT RUN" start="2026-09-11T03:06:42.637188" elapsed="0.000035"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<var>${bug_url}</var>
<arg>${match}</arg>
<arg>https://jira.opendaylight.org/browse/${number}</arg>
<arg>https://bugs.opendaylight.org/show_bug.cgi?id=${number}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="NOT RUN" start="2026-09-11T03:06:42.637350" elapsed="0.000018"/>
</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-09-11T03:06:42.637484" elapsed="0.000018"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${newline}</var>
<arg>chr(10)</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-09-11T03:06:42.637656" elapsed="0.000018"/>
</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-09-11T03:06:42.637807" elapsed="0.000017"/>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${msg}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-09-11T03:06:42.637933" elapsed="0.000017"/>
</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-09-11T03:06:42.638126" elapsed="0.000018"/>
</kw>
<status status="NOT RUN" start="2026-09-11T03:06:42.638004" elapsed="0.000168"/>
</branch>
<status status="NOT RUN" start="2026-09-11T03:06:42.637990" elapsed="0.000203"/>
</if>
<arg>6176</arg>
<doc>Report that a test failed due to a known Bugzilla bug whose
number is provided as an argument.
Not FAILED (incl. SKIPPED) test are not reported.
This keyword must be used in the [Teardown] setting of the affected test
or as the first line of the test if FastFail module is not being
used. It reports the URL of the bug on console and also puts it
into the Robot log file.</doc>
<status status="PASS" start="2026-09-11T03:06:42.635728" elapsed="0.002533"/>
</kw>
<doc>cbench executed in latency mode to see if controller is healthy</doc>
<tag>cbench</tag>
<tag>latency</tag>
<timeout value="15 minutes"/>
<status status="PASS" start="2026-09-11T02:56:35.788023" elapsed="606.850279"/>
</test>
<doc>Cbench Latency and Throughput tests can be run from an external
cbench.
If cbench is run with a medium number of switches or higher (e.g. 32+)
the normal openflow operations seem to break.
BUG: https://bugs.opendaylight.org/show_bug.cgi?id=2897</doc>
<status status="PASS" start="2026-09-11T02:36:19.901916" elapsed="1822.738783"/>
</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>
