<?xml version="1.0" encoding="UTF-8"?>
<robot generator="Robot 7.4.2 (Python 3.11.10 on linux)" generated="2026-07-08T03:05:04.516023" 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-07-08T03:05:05.157957" elapsed="0.000050"/>
</return>
<status status="NOT RUN" start="2026-07-08T03:05:05.157619" elapsed="0.000502"/>
</branch>
<status status="PASS" start="2026-07-08T03:05:05.157556" elapsed="0.000625"/>
</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-07-08T03:05:05.158507" elapsed="0.001115"/>
</kw>
<kw name="Login" owner="SSHLibrary">
<msg time="2026-07-08T03:05:05.160722" level="INFO">Logging into '10.30.171.203:8101' as 'karaf'.</msg>
<msg time="2026-07-08T03:05:05.892510" 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-07-08T03:05:05.160062" elapsed="0.732650"/>
</kw>
<kw name="Write" owner="SSHLibrary">
<msg time="2026-07-08T03:05:05.943614" 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-07-08T03:05:05.893039" elapsed="0.050741"/>
</kw>
<kw name="Read Until Regexp" owner="SSHLibrary">
<msg time="2026-07-08T03:05:05.946102" level="INFO">[?1l&gt;[?2004l[?1h=[90m~[0m                                                                                [?2004hopendaylight-user@root&gt;</msg>
<msg time="2026-07-08T03:05:05.946226" 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-07-08T03:05:05.944097" elapsed="0.002160"/>
</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-07-08T03:05:05.946425" elapsed="0.000237"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-07-08T03:05:05.946826" elapsed="0.000239"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-07-08T03:05:05.947573" 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-07-08T03:05:05.947222" elapsed="0.000408"/>
</kw>
<return>
<value>${output}</value>
<status status="PASS" start="2026-07-08T03:05:05.947685" elapsed="0.000056"/>
</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.203
Note that this keyword will open&amp;close new SSH connection, without switching back to previously current session.</doc>
<status status="PASS" start="2026-07-08T03:05:05.156748" elapsed="0.791142"/>
</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-07-08T03:05:05.152805" elapsed="0.795153"/>
</kw>
<kw name="Append To File" owner="OperatingSystem">
<msg time="2026-07-08T03:05:05.948653" 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-07-08T03:05:05.948156" elapsed="0.000564"/>
</kw>
<kw name="Append To File" owner="OperatingSystem">
<msg time="2026-07-08T03:05:05.949168" 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-07-08T03:05:05.948902" elapsed="0.000338"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-07-08T03:05:05.949866" 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-07-08T03:05:05.949435" elapsed="0.000463"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-07-08T03:05:05.950437" 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-07-08T03:05:05.950078" elapsed="0.000405"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-07-08T03:05:05.951048" 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-07-08T03:05:05.950639" elapsed="0.000437"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-07-08T03:05:05.951577" 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-07-08T03:05:05.951244" elapsed="0.000380"/>
</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-07-08T03:05:05.951967" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-07-08T03:05:05.951717" elapsed="0.000311"/>
</branch>
<branch type="ELSE">
<kw name="Verify File Exists On Remote System" owner="Utils">
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-07-08T03:05:05.956749" 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-07-08T03:05:05.956240" elapsed="0.000547"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-07-08T03:05:05.958470" level="INFO">Length is 0.</msg>
<msg time="2026-07-08T03:05:05.958600" 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-07-08T03:05:05.957789" elapsed="0.000849"/>
</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-07-08T03:05:05.958884" elapsed="0.000544"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-07-08T03:05:05.961083" level="INFO">Logging into '10.30.170.43:22' as 'jenkins'.</msg>
<msg time="2026-07-08T03:05:06.717248" level="INFO">Read output: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-153-generic x86_64)

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

 System information as of Wed Jul  8 03:05:06 UTC 2026

  System load:  0.07               Processes:             112
  Usage of /:   19.3% of 38.58GB   Users logged in:       0
  Memory usage: 4%                 IPv4 address for ens3: 10.30.170.43
  Swap usage:   0%


Expanded Security Maintenance for Applications is not enabled.

0 updates can be applied immediately.

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


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


[?2004h[jenkins@releng-00446-19-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-07-08T03:05:05.960240" elapsed="0.757172"/>
</kw>
<msg time="2026-07-08T03:05:06.717506" 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-07-08T03:05:05.959668" elapsed="0.757928"/>
</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-07-08T03:05:05.957075" elapsed="0.760643"/>
</kw>
<kw name="File Should Exist" owner="SSHLibrary">
<msg time="2026-07-08T03:05:06.724535" 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-07-08T03:05:06.717954" elapsed="0.007625"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-07-08T03:05:06.725781" elapsed="0.000304"/>
</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-07-08T03:05:05.955678" elapsed="0.770473"/>
</kw>
<status status="PASS" start="2026-07-08T03:05:05.952114" elapsed="0.774077"/>
</branch>
<status status="PASS" start="2026-07-08T03:05:05.951689" elapsed="0.774536"/>
</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-07-08T03:05:06.726385" elapsed="0.000513"/>
</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-07-08T03:05:06.732226" elapsed="0.000027"/>
</return>
<status status="NOT RUN" start="2026-07-08T03:05:06.732042" elapsed="0.000263"/>
</branch>
<status status="PASS" start="2026-07-08T03:05:06.732006" elapsed="0.000337"/>
</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-07-08T03:05:06.737633" elapsed="0.000015"/>
</return>
<status status="NOT RUN" start="2026-07-08T03:05:06.737517" elapsed="0.000165"/>
</branch>
<status status="PASS" start="2026-07-08T03:05:06.737496" elapsed="0.000208"/>
</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-07-08T03:05:06.737861" elapsed="0.000461"/>
</kw>
<kw name="Login" owner="SSHLibrary">
<msg time="2026-07-08T03:05:06.738743" level="INFO">Logging into '10.30.171.203:8101' as 'karaf'.</msg>
<msg time="2026-07-08T03:05:06.943681" 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-07-08T03:05:06.738474" elapsed="0.205393"/>
</kw>
<kw name="Write" owner="SSHLibrary">
<msg time="2026-07-08T03:05:07.033156" 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-07-08T03:05:06.944140" elapsed="0.089178"/>
</kw>
<kw name="Read Until Regexp" owner="SSHLibrary">
<msg time="2026-07-08T03:05:07.039924" level="INFO">[?1l&gt;[?2004l[31;1modl-openflowplugin-drop-test[0m                                    x 1.0.0            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-07-08T03:05:07.040125" level="INFO">${output} = [?1l&gt;[?2004l[31;1modl-openflowplugin-drop-test[0m                                    x 1.0.0            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-07-08T03:05:07.033574" elapsed="0.006584"/>
</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-07-08T03:05:07.040309" elapsed="0.000207"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-07-08T03:05:07.040665" elapsed="0.000233"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-07-08T03:05:07.041392" level="INFO">[?1l&gt;[?2004l[31;1modl-openflowplugin-drop-test[0m                                    x 1.0.0            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-07-08T03:05:07.041075" elapsed="0.000375"/>
</kw>
<return>
<value>${output}</value>
<status status="PASS" start="2026-07-08T03:05:07.041501" elapsed="0.000050"/>
</return>
<msg time="2026-07-08T03:05:07.041700" level="INFO">${output} = [?1l&gt;[?2004l[31;1modl-openflowplugin-drop-test[0m                                    x 1.0.0            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.203
Note that this keyword will open&amp;close new SSH connection, without switching back to previously current session.</doc>
<status status="PASS" start="2026-07-08T03:05:06.737027" elapsed="0.304706"/>
</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-07-08T03:05:07.041905" elapsed="0.000505"/>
</kw>
<return>
<value>${output}</value>
<status status="PASS" start="2026-07-08T03:05:07.042464" elapsed="0.000034"/>
</return>
<arg>odl-openflowplugin-drop-test</arg>
<doc>Will Succeed if the given ${feature_name} is found in the output of "feature:list -i"</doc>
<status status="PASS" start="2026-07-08T03:05:06.731571" elapsed="0.311030"/>
</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-07-08T03:05:07.046447" elapsed="0.000015"/>
</return>
<status status="NOT RUN" start="2026-07-08T03:05:07.046310" elapsed="0.000185"/>
</branch>
<status status="PASS" start="2026-07-08T03:05:07.046287" elapsed="0.000232"/>
</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-07-08T03:05:07.046655" elapsed="0.000477"/>
</kw>
<kw name="Login" owner="SSHLibrary">
<msg time="2026-07-08T03:05:07.047552" level="INFO">Logging into '10.30.171.203:8101' as 'karaf'.</msg>
<msg time="2026-07-08T03:05:07.202251" 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-07-08T03:05:07.047284" elapsed="0.155128"/>
</kw>
<kw name="Write" owner="SSHLibrary">
<msg time="2026-07-08T03:05:07.225863" 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-07-08T03:05:07.202677" elapsed="0.023245"/>
</kw>
<kw name="Read Until Regexp" owner="SSHLibrary">
<msg time="2026-07-08T03:05:07.227681" level="INFO">[?1l&gt;[?2004lDropAllFlows transitions to on
[?1h=[90m~[0m                                                                                [?2004hopendaylight-user@root&gt;</msg>
<msg time="2026-07-08T03:05:07.227785" 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-07-08T03:05:07.226070" elapsed="0.001744"/>
</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-07-08T03:05:07.227966" elapsed="0.000180"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-07-08T03:05:07.228292" elapsed="0.000186"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-07-08T03:05:07.228946" 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-07-08T03:05:07.228616" elapsed="0.000382"/>
</kw>
<return>
<value>${output}</value>
<status status="PASS" start="2026-07-08T03:05:07.229078" elapsed="0.000052"/>
</return>
<arg>dropallpacketsrpc on</arg>
<doc>Will execute the given ${cmd} by ssh'ing to the karaf console running on 10.30.171.203
Note that this keyword will open&amp;close new SSH connection, without switching back to previously current session.</doc>
<status status="PASS" start="2026-07-08T03:05:07.045974" elapsed="0.183274"/>
</kw>
<status status="PASS" start="2026-07-08T03:05:05.150285" elapsed="2.079028"/>
</kw>
<test id="s1-t1" name="Cbench Latency Test" line="37">
<kw name="Log" owner="BuiltIn">
<msg time="2026-07-08T03:05:07.231646" 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-07-08T03:05:07.230337" elapsed="0.001376"/>
</kw>
<kw name="Run Cbench And Log Results">
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-07-08T03:05:07.233335" 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-07-08T03:05:07.232963" elapsed="0.000417"/>
</kw>
<if>
<branch type="IF" condition="&quot;${cbench_system}&quot; == &quot;localhost&quot;">
<kw name="Run" owner="OperatingSystem">
<var>${output}</var>
<arg>${cbench_executable} -c ${ODL_SYSTEM_IP} ${cbench_args}</arg>
<doc>_This keyword is considered deprecated. Use the
[http://robotframework.org/robotframework/latest/libraries/Process.html|
Process] library instead._</doc>
<status status="NOT RUN" start="2026-07-08T03:05:07.233702" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-07-08T03:05:07.233461" elapsed="0.000299"/>
</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-07-08T03:05:07.236696" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-07-08T03:05:07.236443" elapsed="0.000310"/>
</branch>
<status status="PASS" start="2026-07-08T03:05:07.236420" elapsed="0.000359"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-07-08T03:05:07.237158" 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-07-08T03:05:07.237284" 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-07-08T03:05:07.236930" elapsed="0.000381"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-07-08T03:05:07.237894" level="INFO">Attempting to execute command "/usr/local/bin/cbench -c 10.30.171.203 -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633" on remote system "10.30.170.43" 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-07-08T03:05:07.237450" elapsed="0.000506"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-07-08T03:05:07.238561" 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-07-08T03:05:07.238099" elapsed="0.000489"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-07-08T03:05:07.239525" level="INFO">Length is 0.</msg>
<msg time="2026-07-08T03:05:07.239618" 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-07-08T03:05:07.239193" elapsed="0.000450"/>
</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-07-08T03:05:07.239789" elapsed="0.000353"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-07-08T03:05:07.241029" level="INFO">Logging into '10.30.170.43:22' as 'jenkins'.</msg>
<msg time="2026-07-08T03:05:07.572753" level="INFO">Read output: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-153-generic x86_64)

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

 System information as of Wed Jul  8 03:05:06 UTC 2026

  System load:  0.07               Processes:             112
  Usage of /:   19.3% of 38.58GB   Users logged in:       0
  Memory usage: 4%                 IPv4 address for ens3: 10.30.170.43
  Swap usage:   0%


Expanded Security Maintenance for Applications is not enabled.

0 updates can be applied immediately.

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


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


Last login: Wed Jul  8 03:05:06 2026 from 10.30.171.29
[?2004h[jenkins@releng-00446-19-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-07-08T03:05:07.240657" elapsed="0.332367"/>
</kw>
<msg time="2026-07-08T03:05:07.573129" 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-07-08T03:05:07.240301" elapsed="0.332967"/>
</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-07-08T03:05:07.238794" elapsed="0.334641"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-07-08T03:05:07.574218" level="INFO">Executing command '/usr/local/bin/cbench -c 10.30.171.203 -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633'.</msg>
<msg time="2026-07-08T03:15:13.678724" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-07-08T03:15:13.679418" level="INFO">${stdout} = </msg>
<msg time="2026-07-08T03:15:13.679541" level="INFO">${stderr} = cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.171.203: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-07-08T03:05:07.573760" elapsed="606.105848"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-07-08T03:15:13.680179" elapsed="0.000785"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-07-08T03:15:13.682285" level="INFO">cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.171.203: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.203. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
03:06:12.769 16  switches: flows:  107218 108473 107752 108593 106852 105654 106286 106009 102824 105530 101302 104529 102762 103235 101985 103232  total = 28.037267 per ms 
03:07:12.870 16  switches: flows:  117609 115638 117941 116503 115693 114862 114683 114358 110911 112904 109180 113010 112004 112251 110083 112369  total = 30.282737 per ms 
03:08:12.970 16  switches: flows:  109025 106759 107103 106485 104216 105042 105222 104336 102148 102893 99819 102990 101679 101993 99906 101023  total = 27.631190 per ms 
03:09:13.070 16  switches: flows:  112860 110880 111868 110038 109995 108522 109145 110198 106204 106180 104628 105405 105364 106535 104563 106012  total = 28.758559 per ms 
03:10:13.173 16  switches: flows:  110200 108027 109870 109012 107007 106049 106777 107397 103876 104205 101839 104227 103189 102391 102492 102606  total = 28.105801 per ms 
03:11:13.273 16  switches: flows:  117353 116432 116476 117149 117445 116296 113101 115812 111227 113462 111003 112008 110426 112775 111961 110203  total = 30.334801 per ms 
03:12:13.373 16  switches: flows:  116468 114326 113825 115981 115804 115130 112767 115435 109694 112417 109351 109380 108213 110262 112082 108343  total = 29.941262 per ms 
03:13:13.474 16  switches: flows:  112920 112266 112182 113464 112787 111433 109053 111054 107899 109182 106409 106020 106425 106761 107787 104921  total = 29.127366 per ms 
03:14:13.574 16  switches: flows:  109148 110785 110380 111412 109969 108708 107622 110459 106491 107475 104373 106331 104615 106967 106142 106145  total = 28.735730 per ms 
03:15:13.675 16  switches: flows:  120287 119959 119600 120350 119512 117431 117000 120251 116721 116655 114725 115268 113784 115675 115564 114815  total = 31.240737 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 27631.19/31240.74/29350.91/9846.15 responses/s</msg>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-07-08T03:15:13.681376" elapsed="0.001136"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="PASS" start="2026-07-08T03:15:13.682873" elapsed="0.000052"/>
</return>
<status status="PASS" start="2026-07-08T03:15:13.682646" elapsed="0.000332"/>
</branch>
<status status="PASS" start="2026-07-08T03:15:13.682605" elapsed="0.000409"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="NOT RUN" start="2026-07-08T03:15:13.683149" elapsed="0.000018"/>
</return>
<status status="NOT RUN" start="2026-07-08T03:15:13.683098" elapsed="0.000107"/>
</branch>
<status status="NOT RUN" start="2026-07-08T03:15:13.683076" elapsed="0.000158"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-07-08T03:15:13.683281" elapsed="0.000018"/>
</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-07-08T03:15:13.686895" elapsed="0.000468"/>
</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-07-08T03:15:13.687573" elapsed="0.000233"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-07-08T03:15:13.688017" elapsed="0.000144"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-07-08T03:15:13.683741" elapsed="0.004499"/>
</kw>
<msg time="2026-07-08T03:15:13.688420" level="INFO">${output} = cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.171.203: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-07-08T03:05:07.234129" elapsed="606.454329"/>
</kw>
<status status="PASS" start="2026-07-08T03:05:07.233788" elapsed="606.454738"/>
</branch>
<status status="PASS" start="2026-07-08T03:05:07.233438" elapsed="606.455122"/>
</if>
<kw name="Log" owner="BuiltIn">
<msg time="2026-07-08T03:15:13.689196" level="INFO">cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.171.203: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.203. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
03:06:12.769 16  switches: flows:  107218 108473 107752 108593 106852 105654 106286 106009 102824 105530 101302 104529 102762 103235 101985 103232  total = 28.037267 per ms 
03:07:12.870 16  switches: flows:  117609 115638 117941 116503 115693 114862 114683 114358 110911 112904 109180 113010 112004 112251 110083 112369  total = 30.282737 per ms 
03:08:12.970 16  switches: flows:  109025 106759 107103 106485 104216 105042 105222 104336 102148 102893 99819 102990 101679 101993 99906 101023  total = 27.631190 per ms 
03:09:13.070 16  switches: flows:  112860 110880 111868 110038 109995 108522 109145 110198 106204 106180 104628 105405 105364 106535 104563 106012  total = 28.758559 per ms 
03:10:13.173 16  switches: flows:  110200 108027 109870 109012 107007 106049 106777 107397 103876 104205 101839 104227 103189 102391 102492 102606  total = 28.105801 per ms 
03:11:13.273 16  switches: flows:  117353 116432 116476 117149 117445 116296 113101 115812 111227 113462 111003 112008 110426 112775 111961 110203  total = 30.334801 per ms 
03:12:13.373 16  switches: flows:  116468 114326 113825 115981 115804 115130 112767 115435 109694 112417 109351 109380 108213 110262 112082 108343  total = 29.941262 per ms 
03:13:13.474 16  switches: flows:  112920 112266 112182 113464 112787 111433 109053 111054 107899 109182 106409 106020 106425 106761 107787 104921  total = 29.127366 per ms 
03:14:13.574 16  switches: flows:  109148 110785 110380 111412 109969 108708 107622 110459 106491 107475 104373 106331 104615 106967 106142 106145  total = 28.735730 per ms 
03:15:13.675 16  switches: flows:  120287 119959 119600 120350 119512 117431 117000 120251 116721 116655 114725 115268 113784 115675 115564 114815  total = 31.240737 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 27631.19/31240.74/29350.91/9846.15 responses/s</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-07-08T03:15:13.688761" elapsed="0.000539"/>
</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-07-08T03:15:13.689512" elapsed="0.000571"/>
</kw>
<kw name="Get Lines Containing String" owner="String">
<msg time="2026-07-08T03:15:13.690648" level="INFO">1 out of 23 lines matched.</msg>
<msg time="2026-07-08T03:15:13.690780" level="INFO">${result_line} = RESULT: 16 switches 9 tests min/max/avg/stdev = 27631.19/31240.74/29350.91/9846.15 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-07-08T03:15:13.690314" elapsed="0.000501"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-07-08T03:15:13.691422" level="INFO">@{results_list} = [ RESULT: | 16 | switches | 9 | tests | min/max/avg/stdev | = | 27631.19/31240.74/29350.91/9846.15 | 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-07-08T03:15:13.691061" elapsed="0.000400"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-07-08T03:15:13.694628" 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-07-08T03:15:13.691671" elapsed="0.003021"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-07-08T03:15:13.697095" level="INFO">27631.19/31240.74/29350.91/9846.15</msg>
<arg>${results_list[7]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-07-08T03:15:13.694855" elapsed="0.002297"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-07-08T03:15:13.699504" 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-07-08T03:15:13.697305" elapsed="0.002228"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-07-08T03:15:13.702002" level="INFO">@{result_value_list} = [ 27631.19 | 31240.74 | 29350.91 | 9846.15 ]</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-07-08T03:15:13.699730" elapsed="0.002300"/>
</kw>
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-07-08T03:15:13.702646" level="INFO">Length is 4.</msg>
<msg time="2026-07-08T03:15:13.702735" 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-07-08T03:15:13.702186" elapsed="0.000573"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-07-08T03:15:13.707488" level="INFO">min :: 27631.19</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-07-08T03:15:13.703189" elapsed="0.004358"/>
</kw>
<var name="${i}">0</var>
<status status="PASS" start="2026-07-08T03:15:13.703048" elapsed="0.004535"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-07-08T03:15:13.712168" level="INFO">max :: 31240.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-07-08T03:15:13.707806" elapsed="0.004420"/>
</kw>
<var name="${i}">1</var>
<status status="PASS" start="2026-07-08T03:15:13.707675" elapsed="0.004587"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-07-08T03:15:13.716760" level="INFO">avg :: 29350.91</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-07-08T03:15:13.712482" elapsed="0.004336"/>
</kw>
<var name="${i}">2</var>
<status status="PASS" start="2026-07-08T03:15:13.712351" elapsed="0.004516"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-07-08T03:15:13.721556" level="INFO">stdev :: 9846.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-07-08T03:15:13.717171" elapsed="0.004444"/>
</kw>
<var name="${i}">3</var>
<status status="PASS" start="2026-07-08T03:15:13.716961" elapsed="0.004691"/>
</iter>
<var>${i}</var>
<value>0</value>
<value>${num_stats}</value>
<status status="PASS" start="2026-07-08T03:15:13.702852" elapsed="0.018834"/>
</for>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-07-08T03:15:13.726233" level="INFO">${min} = 27631.19</msg>
<var>${min}</var>
<arg>${result_value_list[${0}]}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-07-08T03:15:13.721934" elapsed="0.004327"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-07-08T03:15:13.730443" level="INFO">${max} = 31240.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-07-08T03:15:13.726421" elapsed="0.004050"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-07-08T03:15:13.734350" level="INFO">${average} = 29350.91</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-07-08T03:15:13.730627" elapsed="0.003750"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-07-08T03:15:13.738272" level="INFO">${stdev} = 9846.15</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-07-08T03:15:13.734531" elapsed="0.003768"/>
</kw>
<kw name="Get Time" owner="BuiltIn">
<msg time="2026-07-08T03:15:13.738836" level="INFO">${date} = 2026-07-08 03:15:13</msg>
<var>${date}</var>
<arg>d,m,s</arg>
<doc>Returns the given time in the requested format.</doc>
<status status="PASS" start="2026-07-08T03:15:13.738463" elapsed="0.000416"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-07-08T03:15:13.739448" level="INFO">CBench Result: 2026-07-08 03:15:13,-m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633,27631.19,31240.74,29350.91,9846.15</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-07-08T03:15:13.739033" elapsed="0.000471"/>
</kw>
<kw name="Log Results And Determine Status">
<kw name="Append To File" owner="OperatingSystem">
<msg time="2026-07-08T03:15:13.740643" 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-07-08T03:15:13.740194" elapsed="0.000517"/>
</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-07-08T03:15:13.740883" elapsed="0.000480"/>
</kw>
<arg>${min}</arg>
<arg>${max}</arg>
<arg>${average}</arg>
<arg>${average_threshold}</arg>
<arg>${output_filename}</arg>
<status status="PASS" start="2026-07-08T03:15:13.739677" elapsed="0.001755"/>
</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-07-08T03:05:07.232306" elapsed="606.509189"/>
</kw>
<kw name="Sleep" owner="BuiltIn">
<msg time="2026-07-08T03:15:13.742038" 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-07-08T03:15:13.741651" elapsed="0.000448"/>
</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-07-08T03:15:13.742652" elapsed="0.000294"/>
</kw>
<status status="PASS" start="2026-07-08T03:15:13.742347" elapsed="0.000671"/>
</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-07-08T03:05:07.229478" elapsed="606.513580"/>
</test>
<test id="s1-t2" name="Cbench Throughput Test" line="51">
<kw name="Log" owner="BuiltIn">
<msg time="2026-07-08T03:15:13.744647" 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-07-08T03:15:13.744255" elapsed="0.000451"/>
</kw>
<kw name="Run Cbench And Log Results">
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-07-08T03:15:13.746024" 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-07-08T03:15:13.745649" elapsed="0.000418"/>
</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-07-08T03:15:13.746447" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-07-08T03:15:13.746216" elapsed="0.000290"/>
</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-07-08T03:15:13.749425" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-07-08T03:15:13.749174" elapsed="0.000308"/>
</branch>
<status status="PASS" start="2026-07-08T03:15:13.749154" elapsed="0.000351"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-07-08T03:15:13.749909" 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-07-08T03:15:13.750037" 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-07-08T03:15:13.749645" elapsed="0.000419"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-07-08T03:15:13.750661" level="INFO">Attempting to execute command "/usr/local/bin/cbench -c 10.30.171.203 -t -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633" on remote system "10.30.170.43" 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-07-08T03:15:13.750224" elapsed="0.000495"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-07-08T03:15:13.751295" 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-07-08T03:15:13.750880" elapsed="0.000443"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-07-08T03:15:13.752265" level="INFO">Length is 0.</msg>
<msg time="2026-07-08T03:15:13.752355" 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-07-08T03:15:13.751937" 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-07-08T03:15:13.752523" elapsed="0.000341"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-07-08T03:15:13.753724" level="INFO">Logging into '10.30.170.43:22' as 'jenkins'.</msg>
<msg time="2026-07-08T03:15:14.328878" level="INFO">Read output: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-153-generic x86_64)

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

 System information as of Wed Jul  8 03:15:13 UTC 2026

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


Expanded Security Maintenance for Applications is not enabled.

0 updates can be applied immediately.

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


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


Last login: Wed Jul  8 03:05:07 2026 from 10.30.171.29
[?2004h[jenkins@releng-00446-19-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-07-08T03:15:13.753370" elapsed="0.575778"/>
</kw>
<msg time="2026-07-08T03:15:14.329277" 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-07-08T03:15:13.753019" elapsed="0.576390"/>
</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-07-08T03:15:13.751529" elapsed="0.578050"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-07-08T03:15:14.330442" level="INFO">Executing command '/usr/local/bin/cbench -c 10.30.171.203 -t -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633'.</msg>
<msg time="2026-07-08T03:25:23.188861" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-07-08T03:25:23.190135" level="INFO">${stdout} = </msg>
<msg time="2026-07-08T03:25:23.190209" level="INFO">${stderr} = cbench: controller benchmarking tool
   running in mode 'throughput'
   connecting to controller at 10.30.171.203: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-07-08T03:15:14.329977" elapsed="608.860270"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-07-08T03:25:23.191969" elapsed="0.001029"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-07-08T03:25:23.193763" level="INFO">cbench: controller benchmarking tool
   running in mode 'throughput'
   connecting to controller at 10.30.171.203: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.203. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
03:16:19.452 16  switches: flows:  557598 548380 550696 557321 554935 541077 555432 557872 538100 547227 546159 533070 555932 560068 545909 542041  total = 146.530283 per ms 
03:17:19.553 16  switches: flows:  539089 525960 540563 537220 544768 542853 528663 537768 541748 541561 507619 539148 524923 535753 544768 533088  total = 142.518835 per ms 
03:18:19.655 16  switches: flows:  559832 541953 514607 551889 558960 553231 554666 544356 548776 548748 553614 557090 554356 559320 550449 560546  total = 146.624893 per ms 
03:19:19.756 16  switches: flows:  506507 525073 516303 512770 521335 519959 519193 501095 514194 502300 516629 513733 507047 513480 479362 508663  total = 136.065091 per ms 
03:20:19.857 16  switches: flows:  483361 489691 503335 488993 492672 497699 501943 496371 316804 489198 487556 491476 494970 497868 498186 489293  total = 128.440718 per ms 
03:21:22.001 16  switches: flows:  504304 499605 515843 502349 483557 507241 486418 503113 520656 495798 504714 510311 498651 503735 514559 499066  total = 129.538862 per ms 
03:22:22.880 16  switches: flows:  545466 541926 550519 548170 551464 550186 551518 554055 547448 553130 545269 550792 499002 547036 545979 544109  total = 143.335587 per ms 
03:23:22.983 16  switches: flows:  517049 528396 519944 530058 528158 528695 523972 519713 538795 532096 532991 528585 532713 534364 535564 534583  total = 140.853949 per ms 
03:24:23.086 16  switches: flows:  579118 563883 580411 568239 574707 575138 569888 574960 572866 570163 575607 581733 569886 570804 574856 576931  total = 152.729121 per ms 
03:25:23.186 16  switches: flows:  559414 553789 573417 545739 559833 548421 552768 553075 550322 560203 544742 569717 557178 567622 559311 545171  total = 148.097033 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 128440.72/152729.12/140911.57/47605.80 responses/s</msg>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-07-08T03:25:23.193254" elapsed="0.000756"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="PASS" start="2026-07-08T03:25:23.194338" elapsed="0.000049"/>
</return>
<status status="PASS" start="2026-07-08T03:25:23.194133" elapsed="0.000305"/>
</branch>
<status status="PASS" start="2026-07-08T03:25:23.194099" elapsed="0.000375"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="NOT RUN" start="2026-07-08T03:25:23.194604" elapsed="0.000018"/>
</return>
<status status="NOT RUN" start="2026-07-08T03:25:23.194554" elapsed="0.000106"/>
</branch>
<status status="NOT RUN" start="2026-07-08T03:25:23.194532" elapsed="0.000158"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-07-08T03:25:23.194734" elapsed="0.000018"/>
</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-07-08T03:25:23.199267" elapsed="0.000451"/>
</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-07-08T03:25:23.199885" elapsed="0.000179"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-07-08T03:25:23.200233" elapsed="0.000109"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-07-08T03:25:23.195687" elapsed="0.004722"/>
</kw>
<msg time="2026-07-08T03:25:23.200544" level="INFO">${output} = cbench: controller benchmarking tool
   running in mode 'throughput'
   connecting to controller at 10.30.171.203: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-07-08T03:15:13.746867" elapsed="609.453704"/>
</kw>
<status status="PASS" start="2026-07-08T03:15:13.746532" elapsed="609.454089"/>
</branch>
<status status="PASS" start="2026-07-08T03:15:13.746189" elapsed="609.454456"/>
</if>
<kw name="Log" owner="BuiltIn">
<msg time="2026-07-08T03:25:23.201137" level="INFO">cbench: controller benchmarking tool
   running in mode 'throughput'
   connecting to controller at 10.30.171.203: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.203. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
03:16:19.452 16  switches: flows:  557598 548380 550696 557321 554935 541077 555432 557872 538100 547227 546159 533070 555932 560068 545909 542041  total = 146.530283 per ms 
03:17:19.553 16  switches: flows:  539089 525960 540563 537220 544768 542853 528663 537768 541748 541561 507619 539148 524923 535753 544768 533088  total = 142.518835 per ms 
03:18:19.655 16  switches: flows:  559832 541953 514607 551889 558960 553231 554666 544356 548776 548748 553614 557090 554356 559320 550449 560546  total = 146.624893 per ms 
03:19:19.756 16  switches: flows:  506507 525073 516303 512770 521335 519959 519193 501095 514194 502300 516629 513733 507047 513480 479362 508663  total = 136.065091 per ms 
03:20:19.857 16  switches: flows:  483361 489691 503335 488993 492672 497699 501943 496371 316804 489198 487556 491476 494970 497868 498186 489293  total = 128.440718 per ms 
03:21:22.001 16  switches: flows:  504304 499605 515843 502349 483557 507241 486418 503113 520656 495798 504714 510311 498651 503735 514559 499066  total = 129.538862 per ms 
03:22:22.880 16  switches: flows:  545466 541926 550519 548170 551464 550186 551518 554055 547448 553130 545269 550792 499002 547036 545979 544109  total = 143.335587 per ms 
03:23:22.983 16  switches: flows:  517049 528396 519944 530058 528158 528695 523972 519713 538795 532096 532991 528585 532713 534364 535564 534583  total = 140.853949 per ms 
03:24:23.086 16  switches: flows:  579118 563883 580411 568239 574707 575138 569888 574960 572866 570163 575607 581733 569886 570804 574856 576931  total = 152.729121 per ms 
03:25:23.186 16  switches: flows:  559414 553789 573417 545739 559833 548421 552768 553075 550322 560203 544742 569717 557178 567622 559311 545171  total = 148.097033 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 128440.72/152729.12/140911.57/47605.80 responses/s</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-07-08T03:25:23.200811" elapsed="0.000402"/>
</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-07-08T03:25:23.201372" elapsed="0.000374"/>
</kw>
<kw name="Get Lines Containing String" owner="String">
<msg time="2026-07-08T03:25:23.202589" level="INFO">1 out of 23 lines matched.</msg>
<msg time="2026-07-08T03:25:23.202686" level="INFO">${result_line} = RESULT: 16 switches 9 tests min/max/avg/stdev = 128440.72/152729.12/140911.57/47605.80 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-07-08T03:25:23.201926" elapsed="0.000786"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-07-08T03:25:23.203155" level="INFO">@{results_list} = [ RESULT: | 16 | switches | 9 | tests | min/max/avg/stdev | = | 128440.72/152729.12/140911.57/47605.80 | 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-07-08T03:25:23.202893" elapsed="0.000290"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-07-08T03:25:23.205604" 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-07-08T03:25:23.203331" elapsed="0.002331"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-07-08T03:25:23.208089" level="INFO">128440.72/152729.12/140911.57/47605.80</msg>
<arg>${results_list[7]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-07-08T03:25:23.205813" elapsed="0.002333"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-07-08T03:25:23.210866" 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-07-08T03:25:23.208299" elapsed="0.002613"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-07-08T03:25:23.213416" level="INFO">@{result_value_list} = [ 128440.72 | 152729.12 | 140911.57 | 47605.80 ]</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-07-08T03:25:23.211144" elapsed="0.002301"/>
</kw>
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-07-08T03:25:23.213975" level="INFO">Length is 4.</msg>
<msg time="2026-07-08T03:25:23.214065" 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-07-08T03:25:23.213602" elapsed="0.000487"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-07-08T03:25:23.219593" level="INFO">min :: 128440.72</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-07-08T03:25:23.215028" elapsed="0.004625"/>
</kw>
<var name="${i}">0</var>
<status status="PASS" start="2026-07-08T03:25:23.214853" elapsed="0.004837"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-07-08T03:25:23.224278" level="INFO">max :: 152729.12</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-07-08T03:25:23.219930" elapsed="0.004406"/>
</kw>
<var name="${i}">1</var>
<status status="PASS" start="2026-07-08T03:25:23.219782" elapsed="0.004592"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-07-08T03:25:23.228934" level="INFO">avg :: 140911.57</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-07-08T03:25:23.224609" elapsed="0.004382"/>
</kw>
<var name="${i}">2</var>
<status status="PASS" start="2026-07-08T03:25:23.224463" elapsed="0.004564"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-07-08T03:25:23.233794" level="INFO">stdev :: 47605.80</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-07-08T03:25:23.229248" elapsed="0.004626"/>
</kw>
<var name="${i}">3</var>
<status status="PASS" start="2026-07-08T03:25:23.229115" elapsed="0.004797"/>
</iter>
<var>${i}</var>
<value>0</value>
<value>${num_stats}</value>
<status status="PASS" start="2026-07-08T03:25:23.214634" elapsed="0.019310"/>
</for>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-07-08T03:25:23.238386" level="INFO">${min} = 128440.72</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-07-08T03:25:23.234113" elapsed="0.004312"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-07-08T03:25:23.242602" level="INFO">${max} = 152729.12</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-07-08T03:25:23.238626" elapsed="0.004007"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-07-08T03:25:23.247004" level="INFO">${average} = 140911.57</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-07-08T03:25:23.242812" elapsed="0.004228"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-07-08T03:25:23.251534" level="INFO">${stdev} = 47605.80</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-07-08T03:25:23.247229" elapsed="0.004335"/>
</kw>
<kw name="Get Time" owner="BuiltIn">
<msg time="2026-07-08T03:25:23.252138" level="INFO">${date} = 2026-07-08 03:25:23</msg>
<var>${date}</var>
<arg>d,m,s</arg>
<doc>Returns the given time in the requested format.</doc>
<status status="PASS" start="2026-07-08T03:25:23.251740" elapsed="0.000425"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-07-08T03:25:23.252748" level="INFO">CBench Result: 2026-07-08 03:25:23,-t -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633,128440.72,152729.12,140911.57,47605.80</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-07-08T03:25:23.252322" elapsed="0.000492"/>
</kw>
<kw name="Log Results And Determine Status">
<kw name="Append To File" owner="OperatingSystem">
<msg time="2026-07-08T03:25:23.254038" 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-07-08T03:25:23.253578" elapsed="0.000533"/>
</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-07-08T03:25:23.254272" elapsed="0.000484"/>
</kw>
<arg>${min}</arg>
<arg>${max}</arg>
<arg>${average}</arg>
<arg>${average_threshold}</arg>
<arg>${output_filename}</arg>
<status status="PASS" start="2026-07-08T03:25:23.253006" elapsed="0.001856"/>
</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-07-08T03:15:13.745066" elapsed="609.509902"/>
</kw>
<kw name="Sleep" owner="BuiltIn">
<msg time="2026-07-08T03:25:23.255516" 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-07-08T03:25:23.255151" elapsed="0.000425"/>
</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-07-08T03:25:23.256181" elapsed="0.000287"/>
</kw>
<status status="PASS" start="2026-07-08T03:25:23.255829" elapsed="0.000714"/>
</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-07-08T03:15:13.743584" elapsed="609.513000"/>
</test>
<test id="s1-t3" name="Rerun Latency Test To Check Bug 6176" line="65">
<kw name="Log" owner="BuiltIn">
<msg time="2026-07-08T03:25:23.258326" 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-07-08T03:25:23.257814" elapsed="0.000586"/>
</kw>
<kw name="Run Cbench And Log Results">
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-07-08T03:25:23.260294" 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-07-08T03:25:23.259752" elapsed="0.000610"/>
</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-07-08T03:25:23.260903" elapsed="0.000034"/>
</kw>
<status status="NOT RUN" start="2026-07-08T03:25:23.260574" elapsed="0.000415"/>
</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-07-08T03:25:23.265205" elapsed="0.000027"/>
</kw>
<status status="NOT RUN" start="2026-07-08T03:25:23.264830" elapsed="0.000452"/>
</branch>
<status status="PASS" start="2026-07-08T03:25:23.264801" elapsed="0.000510"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-07-08T03:25:23.265716" 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-07-08T03:25:23.265863" 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-07-08T03:25:23.265460" elapsed="0.000433"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-07-08T03:25:23.266494" level="INFO">Attempting to execute command "/usr/local/bin/cbench -c 10.30.171.203 -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633" on remote system "10.30.170.43" 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-07-08T03:25:23.266037" elapsed="0.000519"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-07-08T03:25:23.267182" 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-07-08T03:25:23.266704" elapsed="0.000516"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-07-08T03:25:23.268241" level="INFO">Length is 0.</msg>
<msg time="2026-07-08T03:25:23.268334" 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-07-08T03:25:23.267895" elapsed="0.000464"/>
</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-07-08T03:25:23.268525" elapsed="0.000370"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-07-08T03:25:23.269910" level="INFO">Logging into '10.30.170.43:22' as 'jenkins'.</msg>
<msg time="2026-07-08T03:25:24.255757" level="INFO">Read output: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-153-generic x86_64)

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

 System information as of Wed Jul  8 03:25:23 UTC 2026

  System load:  0.21               Processes:             105
  Usage of /:   19.5% of 38.58GB   Users logged in:       0
  Memory usage: 4%                 IPv4 address for ens3: 10.30.170.43
  Swap usage:   0%


Expanded Security Maintenance for Applications is not enabled.

0 updates can be applied immediately.

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


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


Last login: Wed Jul  8 03:15:14 2026 from 10.30.171.29
[?2004h[jenkins@releng-00446-19-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-07-08T03:25:23.269414" elapsed="0.986602"/>
</kw>
<msg time="2026-07-08T03:25:24.256112" 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-07-08T03:25:23.269057" elapsed="0.987136"/>
</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-07-08T03:25:23.267485" elapsed="0.988826"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-07-08T03:25:24.256839" level="INFO">Executing command '/usr/local/bin/cbench -c 10.30.171.203 -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633'.</msg>
<msg time="2026-07-08T03:35:30.305897" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-07-08T03:35:30.306862" level="INFO">${stdout} = </msg>
<msg time="2026-07-08T03:35:30.306915" level="INFO">${stderr} = cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.171.203: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-07-08T03:25:24.256536" elapsed="606.050409"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-07-08T03:35:30.307730" elapsed="0.000503"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-07-08T03:35:30.308899" level="INFO">cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.171.203: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.203. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
03:26:29.379 16  switches: flows:  111150 110849 111657 109062 111381 111435 110948 110628 110488 111379 108083 108173 110545 108830 109735 108883  total = 29.387100 per ms 
03:27:29.480 16  switches: flows:  112879 112292 115220 113630 114537 115051 114770 113506 113860 112909 111240 113091 113610 112368 111423 110697  total = 30.134405 per ms 
03:28:29.582 16  switches: flows:  120914 121978 118631 122827 119963 119137 122231 121875 120633 119645 118777 117675 121734 118784 122211 118468  total = 32.037870 per ms 
03:29:29.683 16  switches: flows:  119747 121956 120771 123229 119829 120507 121399 121214 120594 120077 119658 118678 121030 120115 122447 118678  total = 32.111893 per ms 
03:30:29.783 16  switches: flows:  120345 124459 121777 122795 122476 120372 122157 122778 121555 120044 122595 118649 122830 121019 122130 118317  total = 32.350958 per ms 
03:31:29.885 16  switches: flows:  118819 117525 116881 118269 118932 116661 117092 116869 117252 116814 116229 114199 117315 115940 117482 115779  total = 31.148918 per ms 
03:32:29.985 16  switches: flows:  121252 118114 120636 119621 123223 118858 119611 118950 118055 119914 117784 117404 118733 118228 119947 119458  total = 31.776696 per ms 
03:33:30.086 16  switches: flows:  118958 117696 117105 117907 119761 117275 119383 116392 115644 117934 113867 114509 116338 116144 118210 117354  total = 31.189216 per ms 
03:34:30.188 16  switches: flows:  115392 113502 114302 115466 116828 114182 113850 112158 113264 113736 112279 112152 112347 112916 112728 113086  total = 30.252635 per ms 
03:35:30.289 16  switches: flows:  104598 105902 106168 106721 103666 105754 105164 104803 103208 102212 101460 101079 103442 101788 101874 100608  total = 27.594672 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 27594.67/32350.96/30955.25/10413.20 responses/s</msg>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-07-08T03:35:30.308459" elapsed="0.000653"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="PASS" start="2026-07-08T03:35:30.309429" elapsed="0.000051"/>
</return>
<status status="PASS" start="2026-07-08T03:35:30.309226" elapsed="0.000296"/>
</branch>
<status status="PASS" start="2026-07-08T03:35:30.309191" elapsed="0.000359"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="NOT RUN" start="2026-07-08T03:35:30.309649" elapsed="0.000013"/>
</return>
<status status="NOT RUN" start="2026-07-08T03:35:30.309612" elapsed="0.000079"/>
</branch>
<status status="NOT RUN" start="2026-07-08T03:35:30.309596" elapsed="0.000117"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-07-08T03:35:30.309744" elapsed="0.000013"/>
</return>
<kw name="Restore_Current_Ssh_Connection_From_Index" owner="SSHKeywords" type="TEARDOWN">
<kw name="Run Keyword And Return If" owner="BuiltIn">
<arg>${connection_index} is not None</arg>
<arg>SSHLibrary.Switch Connection</arg>
<arg>${connection_index}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-07-08T03:35:30.313230" elapsed="0.000356"/>
</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-07-08T03:35:30.313738" elapsed="0.000204"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-07-08T03:35:30.314077" elapsed="0.000101"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-07-08T03:35:30.310145" elapsed="0.004090"/>
</kw>
<msg time="2026-07-08T03:35:30.314373" level="INFO">${output} = cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.171.203: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-07-08T03:25:23.261509" elapsed="607.053321"/>
</kw>
<status status="PASS" start="2026-07-08T03:25:23.261032" elapsed="607.053869"/>
</branch>
<status status="PASS" start="2026-07-08T03:25:23.260537" elapsed="607.054390"/>
</if>
<kw name="Log" owner="BuiltIn">
<msg time="2026-07-08T03:35:30.315387" level="INFO">cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.171.203: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.203. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
03:26:29.379 16  switches: flows:  111150 110849 111657 109062 111381 111435 110948 110628 110488 111379 108083 108173 110545 108830 109735 108883  total = 29.387100 per ms 
03:27:29.480 16  switches: flows:  112879 112292 115220 113630 114537 115051 114770 113506 113860 112909 111240 113091 113610 112368 111423 110697  total = 30.134405 per ms 
03:28:29.582 16  switches: flows:  120914 121978 118631 122827 119963 119137 122231 121875 120633 119645 118777 117675 121734 118784 122211 118468  total = 32.037870 per ms 
03:29:29.683 16  switches: flows:  119747 121956 120771 123229 119829 120507 121399 121214 120594 120077 119658 118678 121030 120115 122447 118678  total = 32.111893 per ms 
03:30:29.783 16  switches: flows:  120345 124459 121777 122795 122476 120372 122157 122778 121555 120044 122595 118649 122830 121019 122130 118317  total = 32.350958 per ms 
03:31:29.885 16  switches: flows:  118819 117525 116881 118269 118932 116661 117092 116869 117252 116814 116229 114199 117315 115940 117482 115779  total = 31.148918 per ms 
03:32:29.985 16  switches: flows:  121252 118114 120636 119621 123223 118858 119611 118950 118055 119914 117784 117404 118733 118228 119947 119458  total = 31.776696 per ms 
03:33:30.086 16  switches: flows:  118958 117696 117105 117907 119761 117275 119383 116392 115644 117934 113867 114509 116338 116144 118210 117354  total = 31.189216 per ms 
03:34:30.188 16  switches: flows:  115392 113502 114302 115466 116828 114182 113850 112158 113264 113736 112279 112152 112347 112916 112728 113086  total = 30.252635 per ms 
03:35:30.289 16  switches: flows:  104598 105902 106168 106721 103666 105754 105164 104803 103208 102212 101460 101079 103442 101788 101874 100608  total = 27.594672 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 27594.67/32350.96/30955.25/10413.20 responses/s</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-07-08T03:35:30.315089" elapsed="0.000374"/>
</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-07-08T03:35:30.315618" elapsed="0.000436"/>
</kw>
<kw name="Get Lines Containing String" owner="String">
<msg time="2026-07-08T03:35:30.316516" level="INFO">1 out of 23 lines matched.</msg>
<msg time="2026-07-08T03:35:30.316627" level="INFO">${result_line} = RESULT: 16 switches 9 tests min/max/avg/stdev = 27594.67/32350.96/30955.25/10413.20 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-07-08T03:35:30.316226" elapsed="0.000435"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-07-08T03:35:30.317132" level="INFO">@{results_list} = [ RESULT: | 16 | switches | 9 | tests | min/max/avg/stdev | = | 27594.67/32350.96/30955.25/10413.20 | 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-07-08T03:35:30.316862" elapsed="0.000298"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-07-08T03:35:30.319560" 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-07-08T03:35:30.317306" elapsed="0.002311"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-07-08T03:35:30.322058" level="INFO">27594.67/32350.96/30955.25/10413.20</msg>
<arg>${results_list[7]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-07-08T03:35:30.319793" elapsed="0.002324"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-07-08T03:35:30.324829" 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-07-08T03:35:30.322272" elapsed="0.002602"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-07-08T03:35:30.327512" level="INFO">@{result_value_list} = [ 27594.67 | 32350.96 | 30955.25 | 10413.20 ]</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-07-08T03:35:30.325127" elapsed="0.002427"/>
</kw>
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-07-08T03:35:30.328258" level="INFO">Length is 4.</msg>
<msg time="2026-07-08T03:35:30.328350" 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-07-08T03:35:30.327785" elapsed="0.000590"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-07-08T03:35:30.333724" level="INFO">min :: 27594.67</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-07-08T03:35:30.328870" elapsed="0.004928"/>
</kw>
<var name="${i}">0</var>
<status status="PASS" start="2026-07-08T03:35:30.328717" elapsed="0.005120"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-07-08T03:35:30.338902" level="INFO">max :: 32350.96</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-07-08T03:35:30.334416" elapsed="0.004559"/>
</kw>
<var name="${i}">1</var>
<status status="PASS" start="2026-07-08T03:35:30.334248" elapsed="0.004774"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-07-08T03:35:30.343803" level="INFO">avg :: 30955.25</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-07-08T03:35:30.339285" elapsed="0.004616"/>
</kw>
<var name="${i}">2</var>
<status status="PASS" start="2026-07-08T03:35:30.339127" elapsed="0.004863"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-07-08T03:35:30.351110" level="INFO">stdev :: 10413.20</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-07-08T03:35:30.344345" elapsed="0.006862"/>
</kw>
<var name="${i}">3</var>
<status status="PASS" start="2026-07-08T03:35:30.344101" elapsed="0.007164"/>
</iter>
<var>${i}</var>
<value>0</value>
<value>${num_stats}</value>
<status status="PASS" start="2026-07-08T03:35:30.328484" elapsed="0.022830"/>
</for>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-07-08T03:35:30.355628" level="INFO">${min} = 27594.67</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-07-08T03:35:30.351599" elapsed="0.004060"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-07-08T03:35:30.360139" level="INFO">${max} = 32350.96</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-07-08T03:35:30.355819" elapsed="0.004348"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-07-08T03:35:30.364089" level="INFO">${average} = 30955.25</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-07-08T03:35:30.360326" elapsed="0.003791"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-07-08T03:35:30.368056" level="INFO">${stdev} = 10413.20</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-07-08T03:35:30.364272" elapsed="0.003811"/>
</kw>
<kw name="Get Time" owner="BuiltIn">
<msg time="2026-07-08T03:35:30.368624" level="INFO">${date} = 2026-07-08 03:35:30</msg>
<var>${date}</var>
<arg>d,m,s</arg>
<doc>Returns the given time in the requested format.</doc>
<status status="PASS" start="2026-07-08T03:35:30.368250" elapsed="0.000400"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-07-08T03:35:30.369232" level="INFO">CBench Result: 2026-07-08 03:35:30,-m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633,27594.67,32350.96,30955.25,10413.20</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-07-08T03:35:30.368799" elapsed="0.000491"/>
</kw>
<kw name="Log Results And Determine Status">
<kw name="Append To File" owner="OperatingSystem">
<msg time="2026-07-08T03:35:30.371472" 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-07-08T03:35:30.370012" elapsed="0.001533"/>
</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-07-08T03:35:30.371708" elapsed="0.000560"/>
</kw>
<arg>${min}</arg>
<arg>${max}</arg>
<arg>${average}</arg>
<arg>${average_threshold}</arg>
<arg>${output_filename}</arg>
<status status="PASS" start="2026-07-08T03:35:30.369481" elapsed="0.002859"/>
</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-07-08T03:25:23.258873" elapsed="607.113532"/>
</kw>
<kw name="Sleep" owner="BuiltIn">
<msg time="2026-07-08T03:35:30.372911" 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-07-08T03:35:30.372566" elapsed="0.000404"/>
</kw>
<kw name="Report Failure Due To Bug" owner="Utils" type="TEARDOWN">
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-07-08T03:35:30.374312" 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-07-08T03:35:30.373773" elapsed="0.000567"/>
</kw>
<if>
<branch type="IF" condition="('${TEST_STATUS}' != 'FAIL') or ${test_skipped}">
<return>
<status status="PASS" start="2026-07-08T03:35:30.374603" elapsed="0.000044"/>
</return>
<status status="PASS" start="2026-07-08T03:35:30.374437" elapsed="0.000245"/>
</branch>
<status status="PASS" start="2026-07-08T03:35:30.374409" elapsed="0.000301"/>
</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-07-08T03:35:30.374884" elapsed="0.000023"/>
</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-07-08T03:35:30.375049" elapsed="0.000021"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<var>${bug_url}</var>
<arg>${match}</arg>
<arg>https://jira.opendaylight.org/browse/${number}</arg>
<arg>https://bugs.opendaylight.org/show_bug.cgi?id=${number}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="NOT RUN" start="2026-07-08T03:35:30.375217" elapsed="0.000021"/>
</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-07-08T03:35:30.375962" elapsed="0.000024"/>
</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-07-08T03:35:30.376124" elapsed="0.000021"/>
</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-07-08T03:35:30.376278" elapsed="0.000020"/>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${msg}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-07-08T03:35:30.376429" elapsed="0.000020"/>
</kw>
<if>
<branch type="IF" condition="&quot;${include_bug_in_tags}&quot;==&quot;True&quot;">
<kw name="Set Tags" owner="BuiltIn">
<arg>${bug_url}</arg>
<doc>Adds given ``tags`` for the current test or all tests in a suite.</doc>
<status status="NOT RUN" start="2026-07-08T03:35:30.376669" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-07-08T03:35:30.376515" elapsed="0.000207"/>
</branch>
<status status="NOT RUN" start="2026-07-08T03:35:30.376498" elapsed="0.000248"/>
</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-07-08T03:35:30.373406" elapsed="0.003393"/>
</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-07-08T03:25:23.257169" elapsed="607.119699"/>
</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-07-08T03:05:04.517728" elapsed="1825.861836"/>
</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>
