<?xml version="1.0" encoding="UTF-8"?>
<robot generator="Robot 7.5 (Python 3.11.10 on linux)" generated="2026-10-14T08:25:05.422777" 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-10-14T08:25:05.916939" elapsed="0.000022"/>
</return>
<status status="NOT RUN" start="2026-10-14T08:25:05.916818" elapsed="0.000190"/>
</branch>
<status status="PASS" start="2026-10-14T08:25:05.916789" elapsed="0.000245"/>
</if>
<kw name="Open Connection" owner="SSHLibrary">
<arg>${controller}</arg>
<arg>port=${karaf_port}</arg>
<arg>prompt=${KARAF_PROMPT_LOGIN}</arg>
<arg>timeout=${timeout}</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-10-14T08:25:05.917201" elapsed="0.000429"/>
</kw>
<kw name="Login" owner="SSHLibrary">
<msg time="2026-10-14T08:25:05.918093" level="INFO">Logging into '10.30.171.203:8101' as 'karaf'.</msg>
<msg time="2026-10-14T08:25:06.639214" 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-10-14T08:25:05.917852" elapsed="0.721529"/>
</kw>
<kw name="Write" owner="SSHLibrary">
<msg time="2026-10-14T08:25:06.692372" 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-10-14T08:25:06.639652" elapsed="0.052839"/>
</kw>
<kw name="Read Until Regexp" owner="SSHLibrary">
<msg time="2026-10-14T08:25:06.694494" level="INFO">[?1l&gt;[?2004l[?1h=[90m~[0m                                                                                [?2004hopendaylight-user@root&gt;</msg>
<msg time="2026-10-14T08:25:06.694630" 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-10-14T08:25:06.692775" elapsed="0.001885"/>
</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-10-14T08:25:06.694834" elapsed="0.000210"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-10-14T08:25:06.695195" elapsed="0.000204"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-14T08:25:06.695956" 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-10-14T08:25:06.695620" elapsed="0.000401"/>
</kw>
<return>
<value>${output}</value>
<status status="PASS" start="2026-10-14T08:25:06.696070" elapsed="0.000055"/>
</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-10-14T08:25:05.916457" elapsed="0.779767"/>
</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-10-14T08:25:05.914724" elapsed="0.781558"/>
</kw>
<kw name="Append To File" owner="OperatingSystem">
<msg time="2026-10-14T08:25:06.696876" 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-10-14T08:25:06.696463" elapsed="0.000470"/>
</kw>
<kw name="Append To File" owner="OperatingSystem">
<msg time="2026-10-14T08:25:06.697326" 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-10-14T08:25:06.697100" elapsed="0.000281"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-14T08:25:06.698048" 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-10-14T08:25:06.697570" elapsed="0.000507"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-10-14T08:25:06.698744" level="INFO">${duration_in_ms} = 60000</msg>
<arg>${duration_in_ms}</arg>
<doc>Makes the variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-10-14T08:25:06.698279" elapsed="0.000522"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-14T08:25:06.699463" 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-10-14T08:25:06.699015" elapsed="0.000479"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-10-14T08:25:06.700179" level="INFO">${test_timeout} = 900.0</msg>
<arg>${test_timeout}</arg>
<doc>Makes the variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-10-14T08:25:06.699780" elapsed="0.000457"/>
</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-10-14T08:25:06.700627" elapsed="0.000030"/>
</kw>
<status status="NOT RUN" start="2026-10-14T08:25:06.700348" elapsed="0.000375"/>
</branch>
<branch type="ELSE">
<kw name="Verify File Exists On Remote System" owner="Utils">
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-10-14T08:25:06.703475" 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-10-14T08:25:06.702989" elapsed="0.000542"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-10-14T08:25:06.705092" level="INFO">Length is 0.</msg>
<msg time="2026-10-14T08:25:06.705201" 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-10-14T08:25:06.704236" elapsed="0.001000"/>
</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>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-14T08:25:06.705445" elapsed="0.000702"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-10-14T08:25:06.707297" level="INFO">Logging into '10.30.170.32:22' as 'jenkins'.</msg>
<msg time="2026-10-14T08:25:07.188528" level="INFO">Read output: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-187-generic x86_64)

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

 System information as of Wed Oct 14 08:24:19 UTC 2026

  System load:  0.27               Processes:             111
  Usage of /:   19.8% of 38.58GB   Users logged in:       0
  Memory usage: 4%                 IPv4 address for ens3: 10.30.170.32
  Swap usage:   0%


Expanded Security Maintenance for Applications is not enabled.

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

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


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


[?2004h[jenkins@releng-00446-116-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-10-14T08:25:06.706950" elapsed="0.481735"/>
</kw>
<msg time="2026-10-14T08:25:07.188771" 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-10-14T08:25:06.706370" elapsed="0.482486"/>
</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-10-14T08:25:06.703806" elapsed="0.485155"/>
</kw>
<kw name="File Should Exist" owner="SSHLibrary">
<msg time="2026-10-14T08:25:07.196499" 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-10-14T08:25:07.189157" elapsed="0.009031"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-10-14T08:25:07.198476" elapsed="0.000436"/>
</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-10-14T08:25:06.702316" elapsed="0.496682"/>
</kw>
<status status="PASS" start="2026-10-14T08:25:06.700818" elapsed="0.498230"/>
</branch>
<status status="PASS" start="2026-10-14T08:25:06.700314" elapsed="0.498777"/>
</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-10-14T08:25:07.199331" elapsed="0.000730"/>
</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-10-14T08:25:07.202817" elapsed="0.000026"/>
</return>
<status status="NOT RUN" start="2026-10-14T08:25:07.202645" elapsed="0.000246"/>
</branch>
<status status="PASS" start="2026-10-14T08:25:07.202612" elapsed="0.000313"/>
</if>
<kw name="Issue_Command_On_Karaf_Console" owner="KarafKeywords">
<if>
<branch type="IF" condition="'${IS_KARAF_APPL}' == 'False'">
<return>
<value>Not A Karaf App</value>
<status status="NOT RUN" start="2026-10-14T08:25:07.205233" elapsed="0.000020"/>
</return>
<status status="NOT RUN" start="2026-10-14T08:25:07.205097" elapsed="0.000201"/>
</branch>
<status status="PASS" start="2026-10-14T08:25:07.205070" elapsed="0.000259"/>
</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-10-14T08:25:07.205586" elapsed="0.000551"/>
</kw>
<kw name="Login" owner="SSHLibrary">
<msg time="2026-10-14T08:25:07.206729" level="INFO">Logging into '10.30.171.203:8101' as 'karaf'.</msg>
<msg time="2026-10-14T08:25:07.483334" 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-10-14T08:25:07.206391" elapsed="0.277132"/>
</kw>
<kw name="Write" owner="SSHLibrary">
<msg time="2026-10-14T08:25:07.585386" 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-10-14T08:25:07.483837" elapsed="0.101717"/>
</kw>
<kw name="Read Until Regexp" owner="SSHLibrary">
<msg time="2026-10-14T08:25:07.602973" level="INFO">[?1l&gt;[?2004l[31;1modl-openflowplugin-drop-test[0m                                    x 1.0.2            x x        x Started x [31;1modl-openflowplugin-drop-test[0m                                    x OpenDaylight :: Openflow Plugin :: Drop Test
[?1h=[90m~[0m                                                                                [?2004hopendaylight-user@root&gt;</msg>
<msg time="2026-10-14T08:25:07.603233" level="INFO">${output} = [?1l&gt;[?2004l[31;1modl-openflowplugin-drop-test[0m                                    x 1.0.2            x x        x Started x [31;1modl-openflowplugin-drop-test[0m                     ...</msg>
<var>${output}</var>
<arg>${KARAF_PROMPT}</arg>
<doc>Consumes and returns the server output until a match to ``regexp`` is found.</doc>
<status status="PASS" start="2026-10-14T08:25:07.585827" elapsed="0.017440"/>
</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-10-14T08:25:07.603473" elapsed="0.000266"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-10-14T08:25:07.603877" elapsed="0.000196"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-14T08:25:07.604592" level="INFO">[?1l&gt;[?2004l[31;1modl-openflowplugin-drop-test[0m                                    x 1.0.2            x x        x Started x [31;1modl-openflowplugin-drop-test[0m                                    x OpenDaylight :: Openflow Plugin :: Drop Test
[?1h=[90m~[0m                                                                                [?2004hopendaylight-user@root&gt;</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-14T08:25:07.604269" elapsed="0.000380"/>
</kw>
<return>
<value>${output}</value>
<status status="PASS" start="2026-10-14T08:25:07.604719" elapsed="0.000050"/>
</return>
<msg time="2026-10-14T08:25:07.604897" level="INFO">${output} = [?1l&gt;[?2004l[31;1modl-openflowplugin-drop-test[0m                                    x 1.0.2            x x        x Started x [31;1modl-openflowplugin-drop-test[0m                     ...</msg>
<var>${output}</var>
<arg>feature:list -i | grep ${feature_name}</arg>
<arg>${controller}</arg>
<arg>${karaf_port}</arg>
<doc>Will execute the given ${cmd} by ssh'ing to the karaf console running on 10.30.171.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-10-14T08:25:07.204626" elapsed="0.400302"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${output}</arg>
<arg>${feature_name}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-14T08:25:07.605093" elapsed="0.000515"/>
</kw>
<return>
<value>${output}</value>
<status status="PASS" start="2026-10-14T08:25:07.605657" elapsed="0.000117"/>
</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-10-14T08:25:07.202252" elapsed="0.403613"/>
</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-10-14T08:25:07.607563" elapsed="0.000015"/>
</return>
<status status="NOT RUN" start="2026-10-14T08:25:07.607428" elapsed="0.000181"/>
</branch>
<status status="PASS" start="2026-10-14T08:25:07.607404" elapsed="0.000228"/>
</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-10-14T08:25:07.607808" elapsed="0.000389"/>
</kw>
<kw name="Login" owner="SSHLibrary">
<msg time="2026-10-14T08:25:07.608599" level="INFO">Logging into '10.30.171.203:8101' as 'karaf'.</msg>
<msg time="2026-10-14T08:25:07.841272" 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-10-14T08:25:07.608373" elapsed="0.233059"/>
</kw>
<kw name="Write" owner="SSHLibrary">
<msg time="2026-10-14T08:25:07.868565" 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-10-14T08:25:07.841712" elapsed="0.026992"/>
</kw>
<kw name="Read Until Regexp" owner="SSHLibrary">
<msg time="2026-10-14T08:25:07.870861" level="INFO">[?1l&gt;[?2004lDropAllFlows transitions to on
[?1h=[90m~[0m                                                                                [?2004hopendaylight-user@root&gt;</msg>
<msg time="2026-10-14T08:25:07.870968" 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-10-14T08:25:07.868956" elapsed="0.002041"/>
</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-10-14T08:25:07.871139" elapsed="0.000224"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-10-14T08:25:07.871495" elapsed="0.000230"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-14T08:25:07.872199" 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-10-14T08:25:07.871900" elapsed="0.000346"/>
</kw>
<return>
<value>${output}</value>
<status status="PASS" start="2026-10-14T08:25:07.872293" elapsed="0.000047"/>
</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-10-14T08:25:07.607138" elapsed="0.265292"/>
</kw>
<status status="PASS" start="2026-10-14T08:25:05.912737" elapsed="1.959750"/>
</kw>
<test id="s1-t1" name="Cbench Latency Test" line="37">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-14T08:25:07.874227" 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-10-14T08:25:07.873387" elapsed="0.000904"/>
</kw>
<kw name="Run Cbench And Log Results">
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-10-14T08:25:07.875806" level="INFO">${output_filename} = latency.csv</msg>
<arg>${output_filename}</arg>
<doc>Makes the variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-10-14T08:25:07.875447" elapsed="0.000401"/>
</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 [Process] library instead.*</doc>
<status status="NOT RUN" start="2026-10-14T08:25:07.876159" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-10-14T08:25:07.875925" elapsed="0.000288"/>
</branch>
<branch type="ELSE">
<kw name="Run Command On Remote System" owner="Utils">
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot; and &quot;${return_stderr}&quot;!=&quot;True&quot;">
<kw name="Fail" owner="BuiltIn">
<arg>At least one of {return_stdout} or {return_stderr} args should be set to True</arg>
<doc>Fails the test or task with the given message and optionally alters its tags.</doc>
<status status="NOT RUN" start="2026-10-14T08:25:07.877295" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-10-14T08:25:07.877076" elapsed="0.000274"/>
</branch>
<status status="PASS" start="2026-10-14T08:25:07.877058" elapsed="0.000319"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-10-14T08:25:07.877815" 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-10-14T08:25:07.877931" 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-10-14T08:25:07.877577" elapsed="0.000379"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-14T08:25:07.878466" 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.32" 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-10-14T08:25:07.878130" elapsed="0.000407"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-10-14T08:25:07.879115" 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-10-14T08:25:07.878714" elapsed="0.000426"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-10-14T08:25:07.879999" level="INFO">Length is 0.</msg>
<msg time="2026-10-14T08:25:07.880081" 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-10-14T08:25:07.879695" elapsed="0.000408"/>
</kw>
<kw name="Run Keyword And Return If" owner="BuiltIn">
<arg>${pwd_length} &gt; 0</arg>
<arg>SSHLibrary.Login</arg>
<arg>${user}</arg>
<arg>${password}</arg>
<arg>delay=${delay}</arg>
<doc>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-14T08:25:07.880239" elapsed="0.000315"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-10-14T08:25:07.881352" level="INFO">Logging into '10.30.170.32:22' as 'jenkins'.</msg>
<msg time="2026-10-14T08:25:08.244560" level="INFO">Read output: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-187-generic x86_64)

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

 System information as of Wed Oct 14 08:24:19 UTC 2026

  System load:  0.27               Processes:             111
  Usage of /:   19.8% of 38.58GB   Users logged in:       0
  Memory usage: 4%                 IPv4 address for ens3: 10.30.170.32
  Swap usage:   0%


Expanded Security Maintenance for Applications is not enabled.

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

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


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


Last login: Wed Oct 14 08:25:07 2026 from 10.30.170.187
[?2004h[jenkins@releng-00446-116-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-10-14T08:25:07.881084" elapsed="0.363684"/>
</kw>
<msg time="2026-10-14T08:25:08.244849" 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-10-14T08:25:07.880717" elapsed="0.364215"/>
</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-10-14T08:25:07.879321" elapsed="0.365723"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-14T08:25:08.245571" 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-10-14T08:35:14.410976" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-10-14T08:35:14.411747" level="INFO">${stdout} = </msg>
<msg time="2026-10-14T08:35:14.411852" 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-10-14T08:25:08.245294" elapsed="606.166617"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-10-14T08:35:14.412501" elapsed="0.000902"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-14T08:35:14.414944" 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.
08:26:13.497 16  switches: flows:  75179 74577 73883 75356 74930 74604 76126 73810 73695 72781 72417 72883 72687 72160 73711 72922  total = 19.695350 per ms 
08:27:13.598 16  switches: flows:  80360 80891 80447 80586 79630 79754 79483 78828 79021 78755 78057 77483 78113 79256 76442 76624  total = 21.027059 per ms 
08:28:13.698 16  switches: flows:  78521 79118 78453 78362 78244 77729 78785 76682 76759 77535 76690 75702 74888 76065 75079 75700  total = 20.537587 per ms 
08:29:13.798 16  switches: flows:  77819 77943 77275 77715 77173 76932 77204 75399 74973 75367 74298 74530 74695 75317 74166 73635  total = 20.206965 per ms 
08:30:13.898 16  switches: flows:  78424 80002 78473 77527 77548 77221 78259 76699 75589 75255 75577 74944 74441 75021 73893 73011  total = 20.330803 per ms 
08:31:13.999 16  switches: flows:  78629 80937 79038 77169 78076 79068 78709 79028 74819 75094 75789 75175 74555 75048 74753 74239  total = 20.467952 per ms 
08:32:14.099 16  switches: flows:  79124 80735 78370 76678 77893 77754 78360 77647 76353 74116 75296 75383 75002 74546 74020 73420  total = 20.377611 per ms 
08:33:14.199 16  switches: flows:  77402 80450 78566 75943 77478 78624 79316 76189 73900 73841 75151 74787 76326 74209 74052 72388  total = 20.276512 per ms 
08:34:14.299 16  switches: flows:  79604 79347 77837 77026 76902 78348 78571 77322 74766 74506 74074 74638 74899 73795 73069 73214  total = 20.264809 per ms 
08:35:14.399 16  switches: flows:  78566 80476 78794 77301 77042 78245 77793 76579 74684 74852 74258 75221 75540 73417 73277 73024  total = 20.283933 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 20206.96/21027.06/20419.25/6810.52 responses/s</msg>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-14T08:35:14.413950" elapsed="0.001411"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="PASS" start="2026-10-14T08:35:14.415933" elapsed="0.000110"/>
</return>
<status status="PASS" start="2026-10-14T08:35:14.415587" elapsed="0.000567"/>
</branch>
<status status="PASS" start="2026-10-14T08:35:14.415518" elapsed="0.000715"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="NOT RUN" start="2026-10-14T08:35:14.416468" elapsed="0.000027"/>
</return>
<status status="NOT RUN" start="2026-10-14T08:35:14.416391" elapsed="0.000171"/>
</branch>
<status status="NOT RUN" start="2026-10-14T08:35:14.416355" elapsed="0.000255"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-10-14T08:35:14.416717" elapsed="0.000033"/>
</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>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-14T08:35:14.418661" elapsed="0.000809"/>
</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-10-14T08:35:14.419917" elapsed="0.000425"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-10-14T08:35:14.420783" elapsed="0.000306"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-10-14T08:35:14.417579" elapsed="0.003638"/>
</kw>
<msg time="2026-10-14T08:35:14.421546" 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-10-14T08:25:07.876557" elapsed="606.545049"/>
</kw>
<status status="PASS" start="2026-10-14T08:25:07.876242" elapsed="606.545495"/>
</branch>
<status status="PASS" start="2026-10-14T08:25:07.875901" elapsed="606.545891"/>
</if>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-14T08:35:14.422978" 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.
08:26:13.497 16  switches: flows:  75179 74577 73883 75356 74930 74604 76126 73810 73695 72781 72417 72883 72687 72160 73711 72922  total = 19.695350 per ms 
08:27:13.598 16  switches: flows:  80360 80891 80447 80586 79630 79754 79483 78828 79021 78755 78057 77483 78113 79256 76442 76624  total = 21.027059 per ms 
08:28:13.698 16  switches: flows:  78521 79118 78453 78362 78244 77729 78785 76682 76759 77535 76690 75702 74888 76065 75079 75700  total = 20.537587 per ms 
08:29:13.798 16  switches: flows:  77819 77943 77275 77715 77173 76932 77204 75399 74973 75367 74298 74530 74695 75317 74166 73635  total = 20.206965 per ms 
08:30:13.898 16  switches: flows:  78424 80002 78473 77527 77548 77221 78259 76699 75589 75255 75577 74944 74441 75021 73893 73011  total = 20.330803 per ms 
08:31:13.999 16  switches: flows:  78629 80937 79038 77169 78076 79068 78709 79028 74819 75094 75789 75175 74555 75048 74753 74239  total = 20.467952 per ms 
08:32:14.099 16  switches: flows:  79124 80735 78370 76678 77893 77754 78360 77647 76353 74116 75296 75383 75002 74546 74020 73420  total = 20.377611 per ms 
08:33:14.199 16  switches: flows:  77402 80450 78566 75943 77478 78624 79316 76189 73900 73841 75151 74787 76326 74209 74052 72388  total = 20.276512 per ms 
08:34:14.299 16  switches: flows:  79604 79347 77837 77026 76902 78348 78571 77322 74766 74506 74074 74638 74899 73795 73069 73214  total = 20.264809 per ms 
08:35:14.399 16  switches: flows:  78566 80476 78794 77301 77042 78245 77793 76579 74684 74852 74258 75221 75540 73417 73277 73024  total = 20.283933 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 20206.96/21027.06/20419.25/6810.52 responses/s</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-14T08:35:14.422299" elapsed="0.000859"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${output}</arg>
<arg>RESULT</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-14T08:35:14.423511" elapsed="0.000838"/>
</kw>
<kw name="Get Lines Containing String" owner="String">
<msg time="2026-10-14T08:35:14.425307" level="INFO">1 out of 23 lines matched.</msg>
<msg time="2026-10-14T08:35:14.425506" level="INFO">${result_line} = RESULT: 16 switches 9 tests min/max/avg/stdev = 20206.96/21027.06/20419.25/6810.52 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-10-14T08:35:14.424759" elapsed="0.000799"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-10-14T08:35:14.426480" level="INFO">@{results_list} = [ RESULT: | 16 | switches | 9 | tests | min/max/avg/stdev | = | 20206.96/21027.06/20419.25/6810.52 | 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-10-14T08:35:14.425957" elapsed="0.000581"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-14T08:35:14.427774" 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-10-14T08:35:14.426979" elapsed="0.000917"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-14T08:35:14.429127" level="INFO">20206.96/21027.06/20419.25/6810.52</msg>
<arg>${results_list[7]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-14T08:35:14.428325" elapsed="0.000924"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-10-14T08:35:14.430296" 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-10-14T08:35:14.429595" elapsed="0.000758"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-10-14T08:35:14.431527" level="INFO">@{result_value_list} = [ 20206.96 | 21027.06 | 20419.25 | 6810.52 ]</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-10-14T08:35:14.430865" elapsed="0.000760"/>
</kw>
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-10-14T08:35:14.432787" level="INFO">Length is 4.</msg>
<msg time="2026-10-14T08:35:14.433039" 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-10-14T08:35:14.432081" elapsed="0.001026"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-14T08:35:14.435255" level="INFO">min :: 20206.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-10-14T08:35:14.434183" elapsed="0.001195"/>
</kw>
<var name="${i}">0</var>
<status status="PASS" start="2026-10-14T08:35:14.433757" elapsed="0.001694"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-14T08:35:14.437281" level="INFO">max :: 21027.06</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-14T08:35:14.436083" elapsed="0.001313"/>
</kw>
<var name="${i}">1</var>
<status status="PASS" start="2026-10-14T08:35:14.435642" elapsed="0.001822"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-14T08:35:14.439174" level="INFO">avg :: 20419.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-10-14T08:35:14.438212" elapsed="0.001079"/>
</kw>
<var name="${i}">2</var>
<status status="PASS" start="2026-10-14T08:35:14.437806" elapsed="0.001555"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-14T08:35:14.441084" level="INFO">stdev :: 6810.52</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-10-14T08:35:14.439957" elapsed="0.001249"/>
</kw>
<var name="${i}">3</var>
<status status="PASS" start="2026-10-14T08:35:14.439550" elapsed="0.001736"/>
</iter>
<var>${i}</var>
<value>0</value>
<value>${num_stats}</value>
<status status="PASS" start="2026-10-14T08:35:14.433273" elapsed="0.008127"/>
</for>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-14T08:35:14.442763" level="INFO">${min} = 20206.96</msg>
<var>${min}</var>
<arg>${result_value_list[${0}]}</arg>
<doc>Returns the given values which can then be assigned to a variable.</doc>
<status status="PASS" start="2026-10-14T08:35:14.441804" elapsed="0.001016"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-14T08:35:14.444297" level="INFO">${max} = 21027.06</msg>
<var>${max}</var>
<arg>${result_value_list[${1}]}</arg>
<doc>Returns the given values which can then be assigned to a variable.</doc>
<status status="PASS" start="2026-10-14T08:35:14.443184" elapsed="0.001206"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-14T08:35:14.445774" level="INFO">${average} = 20419.25</msg>
<var>${average}</var>
<arg>${result_value_list[${2}]}</arg>
<doc>Returns the given values which can then be assigned to a variable.</doc>
<status status="PASS" start="2026-10-14T08:35:14.444762" elapsed="0.001070"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-14T08:35:14.447236" level="INFO">${stdev} = 6810.52</msg>
<var>${stdev}</var>
<arg>${result_value_list[${3}]}</arg>
<doc>Returns the given values which can then be assigned to a variable.</doc>
<status status="PASS" start="2026-10-14T08:35:14.446191" elapsed="0.001101"/>
</kw>
<kw name="Get Time" owner="BuiltIn">
<msg time="2026-10-14T08:35:14.448528" level="INFO">${date} = 2026-10-14 08:35:14</msg>
<var>${date}</var>
<arg>d,m,s</arg>
<doc>Returns the given time in the requested format.</doc>
<status status="PASS" start="2026-10-14T08:35:14.447751" elapsed="0.000829"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-14T08:35:14.449885" level="INFO">CBench Result: 2026-10-14 08:35:14,-m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633,20206.96,21027.06,20419.25,6810.52</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-10-14T08:35:14.449116" elapsed="0.000882"/>
</kw>
<kw name="Log Results And Determine Status">
<kw name="Append To File" owner="OperatingSystem">
<msg time="2026-10-14T08:35:14.453254" 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-10-14T08:35:14.451415" elapsed="0.001986"/>
</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-10-14T08:35:14.453801" elapsed="0.000967"/>
</kw>
<arg>${min}</arg>
<arg>${max}</arg>
<arg>${average}</arg>
<arg>${average_threshold}</arg>
<arg>${output_filename}</arg>
<status status="PASS" start="2026-10-14T08:35:14.450334" elapsed="0.004570"/>
</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-10-14T08:25:07.874805" elapsed="606.580248"/>
</kw>
<kw name="Sleep" owner="BuiltIn">
<msg time="2026-10-14T08:35:14.455904" level="INFO">Slept 0 seconds.</msg>
<arg>${test_delay}</arg>
<doc>Pauses execution for the given time.</doc>
<status status="PASS" start="2026-10-14T08:35:14.455383" elapsed="0.000594"/>
</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-10-14T08:35:14.456744" elapsed="0.000402"/>
</kw>
<status status="PASS" start="2026-10-14T08:35:14.456293" elapsed="0.000943"/>
</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-10-14T08:25:07.872629" elapsed="606.584657"/>
</test>
<test id="s1-t2" name="Cbench Throughput Test" line="51">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-14T08:35:14.459102" 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-10-14T08:35:14.458625" elapsed="0.000552"/>
</kw>
<kw name="Run Cbench And Log Results">
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-10-14T08:35:14.460751" level="INFO">${output_filename} = throughput.csv</msg>
<arg>${output_filename}</arg>
<doc>Makes the variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-10-14T08:35:14.460314" elapsed="0.000494"/>
</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 [Process] library instead.*</doc>
<status status="NOT RUN" start="2026-10-14T08:35:14.461315" elapsed="0.000030"/>
</kw>
<status status="NOT RUN" start="2026-10-14T08:35:14.460910" elapsed="0.000482"/>
</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 or task with the given message and optionally alters its tags.</doc>
<status status="NOT RUN" start="2026-10-14T08:35:14.463038" elapsed="0.000031"/>
</kw>
<status status="NOT RUN" start="2026-10-14T08:35:14.462712" elapsed="0.000402"/>
</branch>
<status status="PASS" start="2026-10-14T08:35:14.462667" elapsed="0.000480"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-10-14T08:35:14.463769" 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-10-14T08:35:14.463929" 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-10-14T08:35:14.463404" elapsed="0.000561"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-14T08:35:14.464708" 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.32" 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-10-14T08:35:14.464226" elapsed="0.000561"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-10-14T08:35:14.465536" 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-10-14T08:35:14.465057" elapsed="0.000514"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-10-14T08:35:14.466786" level="INFO">Length is 0.</msg>
<msg time="2026-10-14T08:35:14.466898" 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-10-14T08:35:14.466350" elapsed="0.000579"/>
</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>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-14T08:35:14.467138" elapsed="0.000405"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-10-14T08:35:14.468663" level="INFO">Logging into '10.30.170.32:22' as 'jenkins'.</msg>
<msg time="2026-10-14T08:35:15.189345" level="INFO">Read output: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-187-generic x86_64)

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

 System information as of Wed Oct 14 08:35:14 UTC 2026

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


Expanded Security Maintenance for Applications is not enabled.

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

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


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


Last login: Wed Oct 14 08:25:08 2026 from 10.30.170.187
[?2004h[jenkins@releng-00446-116-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-10-14T08:35:14.468291" elapsed="0.721407"/>
</kw>
<msg time="2026-10-14T08:35:15.189833" 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-10-14T08:35:14.467775" elapsed="0.722203"/>
</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-10-14T08:35:14.465849" elapsed="0.724314"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-14T08:35:15.191036" 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-10-14T08:45:21.270219" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-10-14T08:45:21.270804" level="INFO">${stdout} = </msg>
<msg time="2026-10-14T08:45:21.270917" 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-10-14T08:35:15.190547" elapsed="606.080433"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-10-14T08:45:21.271492" elapsed="0.000739"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-14T08:45:21.273452" 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.
08:36:20.328 16  switches: flows:  608394 619031 605364 612076 617167 619855 621697 606883 616800 622527 599465 615299 612056 610984 600359 608451  total = 163.273467 per ms 
08:37:20.430 16  switches: flows:  633138 659305 628757 644231 645507 636815 649030 644694 635722 650237 632640 642881 651113 638252 652688 655020  total = 171.375021 per ms 
08:38:20.531 16  switches: flows:  639293 644390 642875 651196 650166 646165 646245 641683 636435 663278 643202 644593 645587 645020 636990 645297  total = 171.752033 per ms 
08:39:20.632 16  switches: flows:  658126 652754 658294 646102 649802 652430 654241 652819 660242 658387 650971 651181 657702 649603 655695 645737  total = 173.942728 per ms 
08:40:20.733 16  switches: flows:  743509 744394 741950 733467 744764 729715 742329 729391 746987 749604 742151 742519 754134 741331 744357 736577  total = 197.453942 per ms 
08:41:20.835 16  switches: flows:  750452 749671 756689 751602 749967 748382 748971 751209 744544 756266 753146 748991 750806 750166 748117 757869  total = 199.943060 per ms 
08:42:20.941 16  switches: flows:  730933 739295 739116 738672 737926 733869 740209 729076 736026 751345 733510 732818 739187 736343 743304 738952  total = 196.334960 per ms 
08:43:21.042 16  switches: flows:  748356 751228 742609 748264 749934 733023 739974 749308 752979 752769 728874 746483 750640 722238 750978 758168  total = 198.430945 per ms 
08:44:21.143 16  switches: flows:  740883 757964 740193 747398 739986 727252 745121 745586 752999 755114 743044 752425 753093 746596 747314 743122  total = 198.633839 per ms 
08:45:21.258 16  switches: flows:  712223 737879 732689 723321 727064 731785 725127 731954 718367 729302 737789 722726 721187 729491 731042 729882  total = 193.662247 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 171375.02/199943.06/189058.75/64140.94 responses/s</msg>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-14T08:45:21.272736" elapsed="0.001050"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="PASS" start="2026-10-14T08:45:21.274217" elapsed="0.000083"/>
</return>
<status status="PASS" start="2026-10-14T08:45:21.273969" elapsed="0.000407"/>
</branch>
<status status="PASS" start="2026-10-14T08:45:21.273908" elapsed="0.000521"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="NOT RUN" start="2026-10-14T08:45:21.274747" elapsed="0.000033"/>
</return>
<status status="NOT RUN" start="2026-10-14T08:45:21.274559" elapsed="0.000288"/>
</branch>
<status status="NOT RUN" start="2026-10-14T08:45:21.274516" elapsed="0.000377"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-10-14T08:45:21.274962" elapsed="0.000037"/>
</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>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-14T08:45:21.276789" elapsed="0.000812"/>
</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-10-14T08:45:21.278040" elapsed="0.000333"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-10-14T08:45:21.278698" elapsed="0.000217"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-10-14T08:45:21.275779" elapsed="0.003241"/>
</kw>
<msg time="2026-10-14T08:45:21.279250" 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-10-14T08:35:14.461984" elapsed="606.817322"/>
</kw>
<status status="PASS" start="2026-10-14T08:35:14.461429" elapsed="606.817974"/>
</branch>
<status status="PASS" start="2026-10-14T08:35:14.460879" elapsed="606.818573"/>
</if>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-14T08:45:21.280575" 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.
08:36:20.328 16  switches: flows:  608394 619031 605364 612076 617167 619855 621697 606883 616800 622527 599465 615299 612056 610984 600359 608451  total = 163.273467 per ms 
08:37:20.430 16  switches: flows:  633138 659305 628757 644231 645507 636815 649030 644694 635722 650237 632640 642881 651113 638252 652688 655020  total = 171.375021 per ms 
08:38:20.531 16  switches: flows:  639293 644390 642875 651196 650166 646165 646245 641683 636435 663278 643202 644593 645587 645020 636990 645297  total = 171.752033 per ms 
08:39:20.632 16  switches: flows:  658126 652754 658294 646102 649802 652430 654241 652819 660242 658387 650971 651181 657702 649603 655695 645737  total = 173.942728 per ms 
08:40:20.733 16  switches: flows:  743509 744394 741950 733467 744764 729715 742329 729391 746987 749604 742151 742519 754134 741331 744357 736577  total = 197.453942 per ms 
08:41:20.835 16  switches: flows:  750452 749671 756689 751602 749967 748382 748971 751209 744544 756266 753146 748991 750806 750166 748117 757869  total = 199.943060 per ms 
08:42:20.941 16  switches: flows:  730933 739295 739116 738672 737926 733869 740209 729076 736026 751345 733510 732818 739187 736343 743304 738952  total = 196.334960 per ms 
08:43:21.042 16  switches: flows:  748356 751228 742609 748264 749934 733023 739974 749308 752979 752769 728874 746483 750640 722238 750978 758168  total = 198.430945 per ms 
08:44:21.143 16  switches: flows:  740883 757964 740193 747398 739986 727252 745121 745586 752999 755114 743044 752425 753093 746596 747314 743122  total = 198.633839 per ms 
08:45:21.258 16  switches: flows:  712223 737879 732689 723321 727064 731785 725127 731954 718367 729302 737789 722726 721187 729491 731042 729882  total = 193.662247 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 171375.02/199943.06/189058.75/64140.94 responses/s</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-14T08:45:21.279958" elapsed="0.000826"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${output}</arg>
<arg>RESULT</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-14T08:45:21.281131" elapsed="0.000851"/>
</kw>
<kw name="Get Lines Containing String" owner="String">
<msg time="2026-10-14T08:45:21.282839" level="INFO">1 out of 23 lines matched.</msg>
<msg time="2026-10-14T08:45:21.283023" level="INFO">${result_line} = RESULT: 16 switches 9 tests min/max/avg/stdev = 171375.02/199943.06/189058.75/64140.94 responses/s</msg>
<var>${result_line}</var>
<arg>${output}</arg>
<arg>RESULT</arg>
<doc>Returns lines of the given `string` that contain the `pattern`.</doc>
<status status="PASS" start="2026-10-14T08:45:21.282375" elapsed="0.000699"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-10-14T08:45:21.284080" level="INFO">@{results_list} = [ RESULT: | 16 | switches | 9 | tests | min/max/avg/stdev | = | 171375.02/199943.06/189058.75/64140.94 | responses/s ]</msg>
<var>@{results_list}</var>
<arg>${result_line}</arg>
<doc>Splits the `string` using `separator` as a delimiter string.</doc>
<status status="PASS" start="2026-10-14T08:45:21.283455" elapsed="0.000684"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-14T08:45:21.285313" 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-10-14T08:45:21.284547" elapsed="0.000878"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-14T08:45:21.286659" level="INFO">171375.02/199943.06/189058.75/64140.94</msg>
<arg>${results_list[7]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-14T08:45:21.285870" elapsed="0.000959"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-10-14T08:45:21.288023" 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-10-14T08:45:21.287236" elapsed="0.000850"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-10-14T08:45:21.289432" level="INFO">@{result_value_list} = [ 171375.02 | 199943.06 | 189058.75 | 64140.94 ]</msg>
<var>@{result_value_list}</var>
<arg>${results_list[7]}</arg>
<arg>/</arg>
<doc>Splits the `string` using `separator` as a delimiter string.</doc>
<status status="PASS" start="2026-10-14T08:45:21.288570" elapsed="0.000939"/>
</kw>
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-10-14T08:45:21.290539" level="INFO">Length is 4.</msg>
<msg time="2026-10-14T08:45:21.290762" 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-10-14T08:45:21.289913" elapsed="0.000900"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-14T08:45:21.292941" level="INFO">min :: 171375.02</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-10-14T08:45:21.291891" elapsed="0.001166"/>
</kw>
<var name="${i}">0</var>
<status status="PASS" start="2026-10-14T08:45:21.291317" elapsed="0.001809"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-14T08:45:21.294828" level="INFO">max :: 199943.06</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-14T08:45:21.293841" elapsed="0.001100"/>
</kw>
<var name="${i}">1</var>
<status status="PASS" start="2026-10-14T08:45:21.293349" elapsed="0.001662"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-14T08:45:21.296583" level="INFO">avg :: 189058.75</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-14T08:45:21.295549" elapsed="0.001205"/>
</kw>
<var name="${i}">2</var>
<status status="PASS" start="2026-10-14T08:45:21.295185" elapsed="0.001638"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-14T08:45:21.298299" level="INFO">stdev :: 64140.94</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-14T08:45:21.297364" elapsed="0.001048"/>
</kw>
<var name="${i}">3</var>
<status status="PASS" start="2026-10-14T08:45:21.296999" elapsed="0.001482"/>
</iter>
<var>${i}</var>
<value>0</value>
<value>${num_stats}</value>
<status status="PASS" start="2026-10-14T08:45:21.290939" elapsed="0.007606"/>
</for>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-14T08:45:21.299810" level="INFO">${min} = 171375.02</msg>
<var>${min}</var>
<arg>${result_value_list[${0}]}</arg>
<doc>Returns the given values which can then be assigned to a variable.</doc>
<status status="PASS" start="2026-10-14T08:45:21.298936" elapsed="0.000929"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-14T08:45:21.301170" level="INFO">${max} = 199943.06</msg>
<var>${max}</var>
<arg>${result_value_list[${1}]}</arg>
<doc>Returns the given values which can then be assigned to a variable.</doc>
<status status="PASS" start="2026-10-14T08:45:21.300223" elapsed="0.001001"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-14T08:45:21.302433" level="INFO">${average} = 189058.75</msg>
<var>${average}</var>
<arg>${result_value_list[${2}]}</arg>
<doc>Returns the given values which can then be assigned to a variable.</doc>
<status status="PASS" start="2026-10-14T08:45:21.301556" elapsed="0.000929"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-14T08:45:21.303917" level="INFO">${stdev} = 64140.94</msg>
<var>${stdev}</var>
<arg>${result_value_list[${3}]}</arg>
<doc>Returns the given values which can then be assigned to a variable.</doc>
<status status="PASS" start="2026-10-14T08:45:21.302959" elapsed="0.001020"/>
</kw>
<kw name="Get Time" owner="BuiltIn">
<msg time="2026-10-14T08:45:21.305443" level="INFO">${date} = 2026-10-14 08:45:21</msg>
<var>${date}</var>
<arg>d,m,s</arg>
<doc>Returns the given time in the requested format.</doc>
<status status="PASS" start="2026-10-14T08:45:21.304441" elapsed="0.001062"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-14T08:45:21.306781" level="INFO">CBench Result: 2026-10-14 08:45:21,-t -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633,171375.02,199943.06,189058.75,64140.94</msg>
<arg>CBench Result: ${date},${cbench_args},${min},${max},${average},${stdev}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-14T08:45:21.306048" elapsed="0.000821"/>
</kw>
<kw name="Log Results And Determine Status">
<kw name="Append To File" owner="OperatingSystem">
<msg time="2026-10-14T08:45:21.308442" 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-10-14T08:45:21.307900" elapsed="0.000646"/>
</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-10-14T08:45:21.308863" elapsed="0.000956"/>
</kw>
<arg>${min}</arg>
<arg>${max}</arg>
<arg>${average}</arg>
<arg>${average_threshold}</arg>
<arg>${output_filename}</arg>
<status status="PASS" start="2026-10-14T08:45:21.307093" elapsed="0.002823"/>
</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-10-14T08:35:14.459593" elapsed="606.850406"/>
</kw>
<kw name="Sleep" owner="BuiltIn">
<msg time="2026-10-14T08:45:21.310706" level="INFO">Slept 0 seconds.</msg>
<arg>${test_delay}</arg>
<doc>Pauses execution for the given time.</doc>
<status status="PASS" start="2026-10-14T08:45:21.310217" elapsed="0.000571"/>
</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-10-14T08:45:21.311508" elapsed="0.000440"/>
</kw>
<status status="PASS" start="2026-10-14T08:45:21.311074" elapsed="0.000974"/>
</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-10-14T08:35:14.457768" elapsed="606.854333"/>
</test>
<test id="s1-t3" name="Rerun Latency Test To Check Bug 6176" line="65">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-14T08:45:21.314862" 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-10-14T08:45:21.314147" elapsed="0.000827"/>
</kw>
<kw name="Run Cbench And Log Results">
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-10-14T08:45:21.317051" level="INFO">${output_filename} = bug.csv</msg>
<arg>${output_filename}</arg>
<doc>Makes the variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-10-14T08:45:21.316346" elapsed="0.000775"/>
</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 [Process] library instead.*</doc>
<status status="NOT RUN" start="2026-10-14T08:45:21.317808" elapsed="0.000037"/>
</kw>
<status status="NOT RUN" start="2026-10-14T08:45:21.317327" elapsed="0.000572"/>
</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 or task with the given message and optionally alters its tags.</doc>
<status status="NOT RUN" start="2026-10-14T08:45:21.319793" elapsed="0.000035"/>
</kw>
<status status="NOT RUN" start="2026-10-14T08:45:21.319346" elapsed="0.000535"/>
</branch>
<status status="PASS" start="2026-10-14T08:45:21.319319" elapsed="0.000596"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-10-14T08:45:21.320639" 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-10-14T08:45:21.320878" 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-10-14T08:45:21.320227" elapsed="0.000706"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-14T08:45:21.321789" 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.32" 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-10-14T08:45:21.321213" elapsed="0.000675"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-10-14T08:45:21.322723" 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-10-14T08:45:21.322154" elapsed="0.000608"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-10-14T08:45:21.324104" level="INFO">Length is 0.</msg>
<msg time="2026-10-14T08:45:21.324247" 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-10-14T08:45:21.323603" elapsed="0.000679"/>
</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>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-14T08:45:21.324490" elapsed="0.000573"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-10-14T08:45:21.326451" level="INFO">Logging into '10.30.170.32:22' as 'jenkins'.</msg>
<msg time="2026-10-14T08:45:21.991317" level="INFO">Read output: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-187-generic x86_64)

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

 System information as of Wed Oct 14 08:45:21 UTC 2026

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


Expanded Security Maintenance for Applications is not enabled.

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

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


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


Last login: Wed Oct 14 08:35:15 2026 from 10.30.170.187
[?2004h[jenkins@releng-00446-116-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-10-14T08:45:21.325998" elapsed="0.665511"/>
</kw>
<msg time="2026-10-14T08:45:21.991596" 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-10-14T08:45:21.325359" elapsed="0.666349"/>
</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-10-14T08:45:21.323044" elapsed="0.668772"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-14T08:45:21.992322" 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-10-14T08:55:28.092945" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-10-14T08:55:28.093435" level="INFO">${stdout} = </msg>
<msg time="2026-10-14T08:55:28.093533" 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-10-14T08:45:21.992060" elapsed="606.101526"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-10-14T08:55:28.094059" elapsed="0.000685"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-14T08:55:28.095932" 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.
08:46:27.180 16  switches: flows:  86726 82914 81490 80340 76563 76605 74619 71364 69582 69368 68341 68719 69394 69272 70001 69158  total = 19.740933 per ms 
08:47:27.281 16  switches: flows:  89589 87946 85235 85582 82235 81212 80978 80413 76359 75478 75014 76771 75043 75252 77127 75408  total = 21.291684 per ms 
08:48:27.381 16  switches: flows:  89939 87354 86976 86132 84287 83506 82447 83423 76597 76480 76546 78729 78524 76636 80181 75735  total = 21.688633 per ms 
08:49:27.481 16  switches: flows:  92730 88274 87713 84389 84504 82441 82680 83797 78097 75886 76035 79552 78299 76329 80389 77060  total = 21.766591 per ms 
08:50:27.581 16  switches: flows:  91712 89042 88615 84125 85070 82307 83358 83522 79271 76670 76215 80108 78055 77107 80567 78386  total = 21.865677 per ms 
08:51:27.681 16  switches: flows:  89890 88538 87150 84728 85248 81528 82083 82549 76554 75636 75751 79101 78474 76077 79125 76768  total = 21.617247 per ms 
08:52:27.782 16  switches: flows:  90544 87501 87682 83855 84915 82040 82529 83332 77087 75856 76121 79318 78408 75880 78917 77207  total = 21.650369 per ms 
08:53:27.882 16  switches: flows:  90661 88703 86989 84658 83853 82603 82894 84091 78388 77801 76054 80205 78548 76952 80335 76633  total = 21.786444 per ms 
08:54:27.982 16  switches: flows:  90422 88746 87104 83508 85841 81935 83271 83520 76840 76979 76448 78539 78940 76235 78645 76690  total = 21.691498 per ms 
08:55:28.082 16  switches: flows:  92144 88397 87377 84832 85194 83098 81902 82927 77391 75625 74995 79086 76624 75504 77118 76378  total = 21.607141 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 21291.68/21865.68/21662.81/7222.57 responses/s</msg>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-14T08:55:28.095210" elapsed="0.001014"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="PASS" start="2026-10-14T08:55:28.096656" elapsed="0.000113"/>
</return>
<status status="PASS" start="2026-10-14T08:55:28.096409" elapsed="0.000438"/>
</branch>
<status status="PASS" start="2026-10-14T08:55:28.096346" elapsed="0.000553"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="NOT RUN" start="2026-10-14T08:55:28.097088" elapsed="0.000026"/>
</return>
<status status="NOT RUN" start="2026-10-14T08:55:28.097015" elapsed="0.000176"/>
</branch>
<status status="NOT RUN" start="2026-10-14T08:55:28.096983" elapsed="0.000255"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-10-14T08:55:28.097300" elapsed="0.000027"/>
</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>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-14T08:55:28.098850" elapsed="0.000679"/>
</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-10-14T08:55:28.099937" elapsed="0.000340"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-10-14T08:55:28.100554" elapsed="0.000227"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-10-14T08:55:28.097951" elapsed="0.002936"/>
</kw>
<msg time="2026-10-14T08:55:28.101109" 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-10-14T08:45:21.318496" elapsed="606.782667"/>
</kw>
<status status="PASS" start="2026-10-14T08:45:21.317940" elapsed="606.783345"/>
</branch>
<status status="PASS" start="2026-10-14T08:45:21.317285" elapsed="606.784048"/>
</if>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-14T08:55:28.102362" 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.
08:46:27.180 16  switches: flows:  86726 82914 81490 80340 76563 76605 74619 71364 69582 69368 68341 68719 69394 69272 70001 69158  total = 19.740933 per ms 
08:47:27.281 16  switches: flows:  89589 87946 85235 85582 82235 81212 80978 80413 76359 75478 75014 76771 75043 75252 77127 75408  total = 21.291684 per ms 
08:48:27.381 16  switches: flows:  89939 87354 86976 86132 84287 83506 82447 83423 76597 76480 76546 78729 78524 76636 80181 75735  total = 21.688633 per ms 
08:49:27.481 16  switches: flows:  92730 88274 87713 84389 84504 82441 82680 83797 78097 75886 76035 79552 78299 76329 80389 77060  total = 21.766591 per ms 
08:50:27.581 16  switches: flows:  91712 89042 88615 84125 85070 82307 83358 83522 79271 76670 76215 80108 78055 77107 80567 78386  total = 21.865677 per ms 
08:51:27.681 16  switches: flows:  89890 88538 87150 84728 85248 81528 82083 82549 76554 75636 75751 79101 78474 76077 79125 76768  total = 21.617247 per ms 
08:52:27.782 16  switches: flows:  90544 87501 87682 83855 84915 82040 82529 83332 77087 75856 76121 79318 78408 75880 78917 77207  total = 21.650369 per ms 
08:53:27.882 16  switches: flows:  90661 88703 86989 84658 83853 82603 82894 84091 78388 77801 76054 80205 78548 76952 80335 76633  total = 21.786444 per ms 
08:54:27.982 16  switches: flows:  90422 88746 87104 83508 85841 81935 83271 83520 76840 76979 76448 78539 78940 76235 78645 76690  total = 21.691498 per ms 
08:55:28.082 16  switches: flows:  92144 88397 87377 84832 85194 83098 81902 82927 77391 75625 74995 79086 76624 75504 77118 76378  total = 21.607141 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 21291.68/21865.68/21662.81/7222.57 responses/s</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-14T08:55:28.101756" elapsed="0.000757"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${output}</arg>
<arg>RESULT</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-14T08:55:28.102887" elapsed="0.000725"/>
</kw>
<kw name="Get Lines Containing String" owner="String">
<msg time="2026-10-14T08:55:28.104521" level="INFO">1 out of 23 lines matched.</msg>
<msg time="2026-10-14T08:55:28.104747" level="INFO">${result_line} = RESULT: 16 switches 9 tests min/max/avg/stdev = 21291.68/21865.68/21662.81/7222.57 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-10-14T08:55:28.104013" elapsed="0.000787"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-10-14T08:55:28.105708" level="INFO">@{results_list} = [ RESULT: | 16 | switches | 9 | tests | min/max/avg/stdev | = | 21291.68/21865.68/21662.81/7222.57 | 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-10-14T08:55:28.105150" elapsed="0.000617"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-14T08:55:28.106921" 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-10-14T08:55:28.106196" elapsed="0.000838"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-14T08:55:28.108226" level="INFO">21291.68/21865.68/21662.81/7222.57</msg>
<arg>${results_list[7]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-14T08:55:28.107488" elapsed="0.000852"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-10-14T08:55:28.109524" 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-10-14T08:55:28.108834" elapsed="0.000762"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-10-14T08:55:28.110761" level="INFO">@{result_value_list} = [ 21291.68 | 21865.68 | 21662.81 | 7222.57 ]</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-10-14T08:55:28.110074" elapsed="0.000746"/>
</kw>
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-10-14T08:55:28.111820" level="INFO">Length is 4.</msg>
<msg time="2026-10-14T08:55:28.111995" 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-10-14T08:55:28.111153" elapsed="0.000890"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-14T08:55:28.115577" level="INFO">min :: 21291.68</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-14T08:55:28.114104" elapsed="0.001675"/>
</kw>
<var name="${i}">0</var>
<status status="PASS" start="2026-10-14T08:55:28.113393" elapsed="0.002483"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-14T08:55:28.118002" level="INFO">max :: 21865.68</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-14T08:55:28.116703" elapsed="0.001451"/>
</kw>
<var name="${i}">1</var>
<status status="PASS" start="2026-10-14T08:55:28.116109" elapsed="0.002170"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-14T08:55:28.120433" level="INFO">avg :: 21662.81</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-10-14T08:55:28.119098" elapsed="0.001497"/>
</kw>
<var name="${i}">2</var>
<status status="PASS" start="2026-10-14T08:55:28.118520" elapsed="0.002224"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-14T08:55:28.122960" level="INFO">stdev :: 7222.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-10-14T08:55:28.121555" elapsed="0.001558"/>
</kw>
<var name="${i}">3</var>
<status status="PASS" start="2026-10-14T08:55:28.120984" elapsed="0.002247"/>
</iter>
<var>${i}</var>
<value>0</value>
<value>${num_stats}</value>
<status status="PASS" start="2026-10-14T08:55:28.112167" elapsed="0.011145"/>
</for>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-14T08:55:28.124899" level="INFO">${min} = 21291.68</msg>
<var>${min}</var>
<arg>${result_value_list[${0}]}</arg>
<doc>Returns the given values which can then be assigned to a variable.</doc>
<status status="PASS" start="2026-10-14T08:55:28.123780" elapsed="0.001189"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-14T08:55:28.126324" level="INFO">${max} = 21865.68</msg>
<var>${max}</var>
<arg>${result_value_list[${1}]}</arg>
<doc>Returns the given values which can then be assigned to a variable.</doc>
<status status="PASS" start="2026-10-14T08:55:28.125363" elapsed="0.001023"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-14T08:55:28.127755" level="INFO">${average} = 21662.81</msg>
<var>${average}</var>
<arg>${result_value_list[${2}]}</arg>
<doc>Returns the given values which can then be assigned to a variable.</doc>
<status status="PASS" start="2026-10-14T08:55:28.126776" elapsed="0.001055"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-14T08:55:28.129313" level="INFO">${stdev} = 7222.57</msg>
<var>${stdev}</var>
<arg>${result_value_list[${3}]}</arg>
<doc>Returns the given values which can then be assigned to a variable.</doc>
<status status="PASS" start="2026-10-14T08:55:28.128312" elapsed="0.001066"/>
</kw>
<kw name="Get Time" owner="BuiltIn">
<msg time="2026-10-14T08:55:28.130651" level="INFO">${date} = 2026-10-14 08:55:28</msg>
<var>${date}</var>
<arg>d,m,s</arg>
<doc>Returns the given time in the requested format.</doc>
<status status="PASS" start="2026-10-14T08:55:28.129863" elapsed="0.000874"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-14T08:55:28.132013" level="INFO">CBench Result: 2026-10-14 08:55:28,-m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633,21291.68,21865.68,21662.81,7222.57</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-10-14T08:55:28.131198" elapsed="0.000932"/>
</kw>
<kw name="Log Results And Determine Status">
<kw name="Append To File" owner="OperatingSystem">
<msg time="2026-10-14T08:55:28.134642" 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-10-14T08:55:28.133537" elapsed="0.001343"/>
</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-10-14T08:55:28.135398" elapsed="0.001658"/>
</kw>
<arg>${min}</arg>
<arg>${max}</arg>
<arg>${average}</arg>
<arg>${average_threshold}</arg>
<arg>${output_filename}</arg>
<status status="PASS" start="2026-10-14T08:55:28.132445" elapsed="0.004784"/>
</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-10-14T08:45:21.315493" elapsed="606.821862"/>
</kw>
<kw name="Sleep" owner="BuiltIn">
<msg time="2026-10-14T08:55:28.138568" level="INFO">Slept 0 seconds.</msg>
<arg>${test_delay}</arg>
<doc>Pauses execution for the given time.</doc>
<status status="PASS" start="2026-10-14T08:55:28.137823" elapsed="0.000834"/>
</kw>
<kw name="Report Failure Due To Bug" owner="Utils" type="TEARDOWN">
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-14T08:55:28.140763" 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-10-14T08:55:28.139777" elapsed="0.001056"/>
</kw>
<if>
<branch type="IF" condition="('${TEST_STATUS}' != 'FAIL') or ${test_skipped}">
<return>
<status status="PASS" start="2026-10-14T08:55:28.141446" elapsed="0.000082"/>
</return>
<status status="PASS" start="2026-10-14T08:55:28.141047" elapsed="0.000596"/>
</branch>
<status status="PASS" start="2026-10-14T08:55:28.140994" elapsed="0.000752"/>
</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-10-14T08:55:28.142157" elapsed="0.000114"/>
</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-10-14T08:55:28.142846" elapsed="0.000045"/>
</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-10-14T08:55:28.143225" elapsed="0.000045"/>
</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 variable.</doc>
<status status="NOT RUN" start="2026-10-14T08:55:28.143553" elapsed="0.000043"/>
</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-10-14T08:55:28.144048" elapsed="0.000044"/>
</kw>
<kw name="Set Test Message" owner="BuiltIn">
<arg>${msg}${newline}${newline}${TEST_MESSAGE}</arg>
<doc>Sets message of the current test case.</doc>
<status status="NOT RUN" start="2026-10-14T08:55:28.144353" elapsed="0.000032"/>
</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-10-14T08:55:28.144640" elapsed="0.000049"/>
</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 The given `tags` for the current test or all tests in a suite.</doc>
<status status="NOT RUN" start="2026-10-14T08:55:28.144990" elapsed="0.000027"/>
</kw>
<status status="NOT RUN" start="2026-10-14T08:55:28.144792" elapsed="0.000266"/>
</branch>
<status status="NOT RUN" start="2026-10-14T08:55:28.144765" elapsed="0.000327"/>
</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-10-14T08:55:28.139227" elapsed="0.005967"/>
</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-10-14T08:45:21.312862" elapsed="606.832408"/>
</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-10-14T08:25:05.424373" elapsed="1822.721561"/>
</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>
