<?xml version="1.0" encoding="UTF-8"?>
<robot generator="Robot 7.5 (Python 3.11.10 on linux)" generated="2026-10-22T21:07:41.416107" rpa="false" schemaversion="5">
<suite id="s1" name="openflowplugin-cbench.txt" source="/w/workspace/openflowplugin-csit-1node-cbench-only-titanium/test/csit/suites/openflowplugin/Performance/010_Cbench.robot">
<kw name="Cbench Suite Setup" type="SETUP">
<kw name="Wait Until Keyword Succeeds" owner="BuiltIn">
<kw name="Issue_Command_On_Karaf_Console" owner="KarafKeywords">
<if>
<branch type="IF" condition="'${IS_KARAF_APPL}' == 'False'">
<return>
<value>Not A Karaf App</value>
<status status="NOT RUN" start="2026-10-22T21:07:41.942194" elapsed="0.000027"/>
</return>
<status status="NOT RUN" start="2026-10-22T21:07:41.942058" elapsed="0.000252"/>
</branch>
<status status="PASS" start="2026-10-22T21:07:41.942019" elapsed="0.000321"/>
</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-22T21:07:41.942517" elapsed="0.000546"/>
</kw>
<kw name="Login" owner="SSHLibrary">
<msg time="2026-10-22T21:07:41.943556" level="INFO">Logging into '10.30.171.60:8101' as 'karaf'.</msg>
<msg time="2026-10-22T21:07:42.877804" 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-22T21:07:41.943286" elapsed="0.934866"/>
</kw>
<kw name="Write" owner="SSHLibrary">
<msg time="2026-10-22T21:07:42.931157" 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-22T21:07:42.878668" elapsed="0.052558"/>
</kw>
<kw name="Read Until Regexp" owner="SSHLibrary">
<msg time="2026-10-22T21:07:42.933227" level="INFO">[?1l&gt;[?2004l[?1h=[90m~[0m                                                                                [?2004hopendaylight-user@root&gt;</msg>
<msg time="2026-10-22T21:07:42.933410" 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-22T21:07:42.931427" elapsed="0.002019"/>
</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-22T21:07:42.933648" elapsed="0.000255"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-10-22T21:07:42.934116" elapsed="0.000358"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-22T21:07:42.935175" 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-22T21:07:42.934710" elapsed="0.000521"/>
</kw>
<return>
<value>${output}</value>
<status status="PASS" start="2026-10-22T21:07:42.935320" elapsed="0.000092"/>
</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.60
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-22T21:07:41.941708" elapsed="0.993840"/>
</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-22T21:07:41.939851" elapsed="0.995772"/>
</kw>
<kw name="Append To File" owner="OperatingSystem">
<msg time="2026-10-22T21:07:42.936429" level="INFO" html="true">Appended to file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-cbench-only-titanium/latency.csv"&gt;/w/workspace/openflowplugin-csit-1node-cbench-only-titanium/latency.csv&lt;/a&gt;'.</msg>
<arg>${latency_results_file}</arg>
<arg>LATENCY_MIN,LATENCY_MAX,LATENCY_AVERAGE\n</arg>
<doc>Appends the given content to the specified file.</doc>
<status status="PASS" start="2026-10-22T21:07:42.935854" elapsed="0.000633"/>
</kw>
<kw name="Append To File" owner="OperatingSystem">
<msg time="2026-10-22T21:07:42.936865" level="INFO" html="true">Appended to file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-cbench-only-titanium/throughput.csv"&gt;/w/workspace/openflowplugin-csit-1node-cbench-only-titanium/throughput.csv&lt;/a&gt;'.</msg>
<arg>${throughput_results_file}</arg>
<arg>THROUGHPUT_MIN,THROUGHPUT_MAX,THROUGHPUT_AVERAGE\n</arg>
<doc>Appends the given content to the specified file.</doc>
<status status="PASS" start="2026-10-22T21:07:42.936639" elapsed="0.000282"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-22T21:07:42.937692" 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-22T21:07:42.937132" elapsed="0.000587"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-10-22T21:07:42.938317" 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-22T21:07:42.937926" elapsed="0.000433"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-22T21:07:42.938853" 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-22T21:07:42.938519" elapsed="0.000360"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-10-22T21:07:42.939422" 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-22T21:07:42.939112" elapsed="0.000350"/>
</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-22T21:07:42.939789" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-10-22T21:07:42.939574" elapsed="0.000266"/>
</branch>
<branch type="ELSE">
<kw name="Verify File Exists On Remote System" owner="Utils">
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-10-22T21:07:42.942566" 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-22T21:07:42.942140" elapsed="0.000452"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-10-22T21:07:42.943955" level="INFO">Length is 0.</msg>
<msg time="2026-10-22T21:07:42.944074" 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-22T21:07:42.943130" elapsed="0.000970"/>
</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-22T21:07:42.944278" elapsed="0.000369"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-10-22T21:07:42.945908" level="INFO">Logging into '10.30.170.55:22' as 'jenkins'.</msg>
<msg time="2026-10-22T21:07:43.495396" 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 Thu Oct 22 21:07:01 UTC 2026

  System load:  0.2                Processes:             111
  Usage of /:   19.8% of 38.58GB   Users logged in:       0
  Memory usage: 4%                 IPv4 address for ens3: 10.30.170.55
  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-48317-875-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-22T21:07:42.945613" elapsed="0.550048"/>
</kw>
<msg time="2026-10-22T21:07:43.495792" 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-22T21:07:42.944803" elapsed="0.551126"/>
</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-22T21:07:42.942781" elapsed="0.553330"/>
</kw>
<kw name="File Should Exist" owner="SSHLibrary">
<msg time="2026-10-22T21:07:43.506320" 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-22T21:07:43.496454" elapsed="0.011410"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-10-22T21:07:43.508182" elapsed="0.000506"/>
</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-22T21:07:42.941582" elapsed="0.567199"/>
</kw>
<status status="PASS" start="2026-10-22T21:07:42.939946" elapsed="0.568886"/>
</branch>
<status status="PASS" start="2026-10-22T21:07:42.939537" elapsed="0.569350"/>
</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-22T21:07:43.509159" elapsed="0.000814"/>
</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-22T21:07:43.513091" elapsed="0.000029"/>
</return>
<status status="NOT RUN" start="2026-10-22T21:07:43.512910" elapsed="0.000258"/>
</branch>
<status status="PASS" start="2026-10-22T21:07:43.512870" elapsed="0.000330"/>
</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-22T21:07:43.515374" elapsed="0.000020"/>
</return>
<status status="NOT RUN" start="2026-10-22T21:07:43.515208" elapsed="0.000229"/>
</branch>
<status status="PASS" start="2026-10-22T21:07:43.515182" elapsed="0.000285"/>
</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-22T21:07:43.515703" elapsed="0.000637"/>
</kw>
<kw name="Login" owner="SSHLibrary">
<msg time="2026-10-22T21:07:43.516910" level="INFO">Logging into '10.30.171.60:8101' as 'karaf'.</msg>
<msg time="2026-10-22T21:07:43.720340" 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-22T21:07:43.516590" elapsed="0.204014"/>
</kw>
<kw name="Write" owner="SSHLibrary">
<msg time="2026-10-22T21:07:43.816172" 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-22T21:07:43.721028" elapsed="0.095306"/>
</kw>
<kw name="Read Until Regexp" owner="SSHLibrary">
<msg time="2026-10-22T21:07:43.827808" level="INFO">[?1l&gt;[?2004l[31;1modl-openflowplugin-drop-test[0m                                    x 0.20.4           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-22T21:07:43.828108" level="INFO">${output} = [?1l&gt;[?2004l[31;1modl-openflowplugin-drop-test[0m                                    x 0.20.4           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-22T21:07:43.816650" elapsed="0.011489"/>
</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-22T21:07:43.828302" elapsed="0.000302"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-10-22T21:07:43.828773" elapsed="0.000282"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-22T21:07:43.829673" level="INFO">[?1l&gt;[?2004l[31;1modl-openflowplugin-drop-test[0m                                    x 0.20.4           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-22T21:07:43.829272" elapsed="0.000458"/>
</kw>
<return>
<value>${output}</value>
<status status="PASS" start="2026-10-22T21:07:43.829797" elapsed="0.000081"/>
</return>
<msg time="2026-10-22T21:07:43.830062" level="INFO">${output} = [?1l&gt;[?2004l[31;1modl-openflowplugin-drop-test[0m                                    x 0.20.4           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.60
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-22T21:07:43.514767" elapsed="0.315333"/>
</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-22T21:07:43.830289" elapsed="0.000683"/>
</kw>
<return>
<value>${output}</value>
<status status="PASS" start="2026-10-22T21:07:43.831039" elapsed="0.000035"/>
</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-22T21:07:43.512444" elapsed="0.318717"/>
</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-22T21:07:43.833322" elapsed="0.000015"/>
</return>
<status status="NOT RUN" start="2026-10-22T21:07:43.833149" elapsed="0.000217"/>
</branch>
<status status="PASS" start="2026-10-22T21:07:43.833121" elapsed="0.000272"/>
</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-22T21:07:43.833556" elapsed="0.000470"/>
</kw>
<kw name="Login" owner="SSHLibrary">
<msg time="2026-10-22T21:07:43.834445" level="INFO">Logging into '10.30.171.60:8101' as 'karaf'.</msg>
<msg time="2026-10-22T21:07:44.017923" 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-22T21:07:43.834204" elapsed="0.183979"/>
</kw>
<kw name="Write" owner="SSHLibrary">
<msg time="2026-10-22T21:07:44.042009" 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-22T21:07:44.018583" elapsed="0.023714"/>
</kw>
<kw name="Read Until Regexp" owner="SSHLibrary">
<msg time="2026-10-22T21:07:44.045434" level="INFO">[?1l&gt;[?2004lDropAllFlows transitions to on
[?1h=[90m~[0m                                                                                [?2004hopendaylight-user@root&gt;</msg>
<msg time="2026-10-22T21:07:44.045611" 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-22T21:07:44.042699" elapsed="0.002956"/>
</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-22T21:07:44.045848" elapsed="0.000423"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-10-22T21:07:44.046475" elapsed="0.000314"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-22T21:07:44.047547" 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-22T21:07:44.047051" elapsed="0.000548"/>
</kw>
<return>
<value>${output}</value>
<status status="PASS" start="2026-10-22T21:07:44.047661" elapsed="0.000086"/>
</return>
<arg>dropallpacketsrpc on</arg>
<doc>Will execute the given ${cmd} by ssh'ing to the karaf console running on 10.30.171.60
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-22T21:07:43.832770" elapsed="0.215174"/>
</kw>
<status status="PASS" start="2026-10-22T21:07:41.937736" elapsed="2.110320"/>
</kw>
<test id="s1-t1" name="Cbench Latency Test" line="37">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-22T21:07:44.050537" 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-22T21:07:44.049350" elapsed="0.001269"/>
</kw>
<kw name="Run Cbench And Log Results">
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-10-22T21:07:44.052202" 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-22T21:07:44.051841" elapsed="0.000402"/>
</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-22T21:07:44.052602" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-10-22T21:07:44.052353" elapsed="0.000303"/>
</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-22T21:07:44.053930" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-10-22T21:07:44.053698" elapsed="0.000284"/>
</branch>
<status status="PASS" start="2026-10-22T21:07:44.053678" elapsed="0.000347"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-10-22T21:07:44.054479" 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-22T21:07:44.054602" 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-22T21:07:44.054210" elapsed="0.000417"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-22T21:07:44.055160" level="INFO">Attempting to execute command "/usr/local/bin/cbench -c 10.30.171.60 -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633" on remote system "10.30.170.55" 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-22T21:07:44.054801" elapsed="0.000418"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-10-22T21:07:44.055848" 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-22T21:07:44.055404" elapsed="0.000470"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-10-22T21:07:44.056793" level="INFO">Length is 0.</msg>
<msg time="2026-10-22T21:07:44.056881" 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-22T21:07:44.056467" elapsed="0.000436"/>
</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-22T21:07:44.057057" elapsed="0.000326"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-10-22T21:07:44.058312" level="INFO">Logging into '10.30.170.55:22' as 'jenkins'.</msg>
<msg time="2026-10-22T21:07:44.441533" 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 Thu Oct 22 21:07:01 UTC 2026

  System load:  0.2                Processes:             111
  Usage of /:   19.8% of 38.58GB   Users logged in:       0
  Memory usage: 4%                 IPv4 address for ens3: 10.30.170.55
  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: Thu Oct 22 21:07:43 2026 from 10.30.170.138
[?2004h[jenkins@releng-48317-875-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-22T21:07:44.057977" elapsed="0.383811"/>
</kw>
<msg time="2026-10-22T21:07:44.441885" 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-22T21:07:44.057543" elapsed="0.384469"/>
</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-22T21:07:44.056079" elapsed="0.386071"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-22T21:07:44.442798" level="INFO">Executing command '/usr/local/bin/cbench -c 10.30.171.60 -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633'.</msg>
<msg time="2026-10-22T21:17:50.578962" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-10-22T21:17:50.580984" level="INFO">${stdout} = </msg>
<msg time="2026-10-22T21:17:50.581068" level="INFO">${stderr} = cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.171.60:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with 100...</msg>
<var>${stdout}</var>
<var>${stderr}</var>
<arg>${cmd}</arg>
<arg>return_stderr=True</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-10-22T21:07:44.442471" elapsed="606.138631"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-10-22T21:17:50.581492" elapsed="0.000549"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-22T21:17:50.582848" level="INFO">cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.171.60: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.60. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
21:08:49.677 16  switches: flows:  88941 89599 87531 88517 84620 86746 85592 84706 80803 81702 83433 82026 82143 82894 79185 79585  total = 22.467050 per ms 
21:09:49.778 16  switches: flows:  99805 99015 94961 97020 92502 94482 96587 94053 90779 90512 90720 90939 88903 89705 90087 87443  total = 24.750557 per ms 
21:10:49.879 16  switches: flows:  101532 99851 98061 99833 95215 95302 96694 96783 92628 91621 92378 91422 91984 91778 90209 90630  total = 25.223240 per ms 
21:11:49.979 16  switches: flows:  101470 101288 96826 98369 94811 95843 98921 97136 93934 92564 92561 90540 90714 92858 90181 89061  total = 25.242449 per ms 
21:12:50.080 16  switches: flows:  99247 99180 96447 96338 95298 94977 97989 94433 90804 93866 91981 91151 90453 92401 88518 89475  total = 25.000851 per ms 
21:13:50.181 16  switches: flows:  98429 100104 96532 98678 94296 97335 96912 95112 92267 93706 92749 90489 90772 91373 89281 90261  total = 25.096361 per ms 
21:14:50.282 16  switches: flows:  99765 99456 96210 99618 94521 95011 96595 94533 92001 92168 92744 90723 91447 90837 88849 89977  total = 25.032416 per ms 
21:15:50.383 16  switches: flows:  100429 99542 95966 100059 96134 96916 97872 96947 93701 93714 94783 91042 92419 92546 92014 91605  total = 25.385725 per ms 
21:16:50.484 16  switches: flows:  100416 99337 97656 100888 95326 97344 98134 96410 93844 96658 94458 90945 92943 93316 91629 91400  total = 25.469209 per ms 
21:17:50.584 16  switches: flows:  101524 100914 98902 100328 95576 98317 98869 96776 93988 97666 94500 92990 93292 93218 92259 91653  total = 25.636725 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 24750.56/25636.72/25204.17/8405.23 responses/s</msg>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-22T21:17:50.582376" elapsed="0.000668"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="PASS" start="2026-10-22T21:17:50.583346" elapsed="0.000050"/>
</return>
<status status="PASS" start="2026-10-22T21:17:50.583162" elapsed="0.000282"/>
</branch>
<status status="PASS" start="2026-10-22T21:17:50.583127" elapsed="0.000353"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="NOT RUN" start="2026-10-22T21:17:50.583605" elapsed="0.000017"/>
</return>
<status status="NOT RUN" start="2026-10-22T21:17:50.583556" elapsed="0.000100"/>
</branch>
<status status="NOT RUN" start="2026-10-22T21:17:50.583535" elapsed="0.000147"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-10-22T21:17:50.583723" 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-22T21:17:50.584748" elapsed="0.000430"/>
</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-22T21:17:50.585443" elapsed="0.000202"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-10-22T21:17:50.585828" elapsed="0.000135"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-10-22T21:17:50.584171" elapsed="0.001862"/>
</kw>
<msg time="2026-10-22T21:17:50.586180" level="INFO">${output} = cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.171.60:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with 100...</msg>
<var>${output}</var>
<arg>${cbench_system}</arg>
<arg>${cbench_executable} -c ${ODL_SYSTEM_IP} ${cbench_args}</arg>
<arg>prompt_timeout=${test_timeout}</arg>
<arg>return_stdout=False</arg>
<arg>return_stderr=True</arg>
<doc>Reduces the common work of running a command on a remote system to a single higher level
robot keyword, taking care to log in with a public key and. The command given is written and the return value
depends on the passed argument values of return_stdout (default: True) and return_stderr (default: False).
At least one should be True, or the keyword will exit and FAIL. If both are True, the resulting return value
will be a two element list containing both. Otherwise the resulting return value is a string.
No test conditions are checked.</doc>
<status status="PASS" start="2026-10-22T21:07:44.053022" elapsed="606.533193"/>
</kw>
<status status="PASS" start="2026-10-22T21:07:44.052686" elapsed="606.533612"/>
</branch>
<status status="PASS" start="2026-10-22T21:07:44.052326" elapsed="606.534005"/>
</if>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-22T21:17:50.586986" level="INFO">cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.171.60: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.60. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
21:08:49.677 16  switches: flows:  88941 89599 87531 88517 84620 86746 85592 84706 80803 81702 83433 82026 82143 82894 79185 79585  total = 22.467050 per ms 
21:09:49.778 16  switches: flows:  99805 99015 94961 97020 92502 94482 96587 94053 90779 90512 90720 90939 88903 89705 90087 87443  total = 24.750557 per ms 
21:10:49.879 16  switches: flows:  101532 99851 98061 99833 95215 95302 96694 96783 92628 91621 92378 91422 91984 91778 90209 90630  total = 25.223240 per ms 
21:11:49.979 16  switches: flows:  101470 101288 96826 98369 94811 95843 98921 97136 93934 92564 92561 90540 90714 92858 90181 89061  total = 25.242449 per ms 
21:12:50.080 16  switches: flows:  99247 99180 96447 96338 95298 94977 97989 94433 90804 93866 91981 91151 90453 92401 88518 89475  total = 25.000851 per ms 
21:13:50.181 16  switches: flows:  98429 100104 96532 98678 94296 97335 96912 95112 92267 93706 92749 90489 90772 91373 89281 90261  total = 25.096361 per ms 
21:14:50.282 16  switches: flows:  99765 99456 96210 99618 94521 95011 96595 94533 92001 92168 92744 90723 91447 90837 88849 89977  total = 25.032416 per ms 
21:15:50.383 16  switches: flows:  100429 99542 95966 100059 96134 96916 97872 96947 93701 93714 94783 91042 92419 92546 92014 91605  total = 25.385725 per ms 
21:16:50.484 16  switches: flows:  100416 99337 97656 100888 95326 97344 98134 96410 93844 96658 94458 90945 92943 93316 91629 91400  total = 25.469209 per ms 
21:17:50.584 16  switches: flows:  101524 100914 98902 100328 95576 98317 98869 96776 93988 97666 94500 92990 93292 93218 92259 91653  total = 25.636725 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 24750.56/25636.72/25204.17/8405.23 responses/s</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-22T21:17:50.586591" elapsed="0.000492"/>
</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-22T21:17:50.587333" elapsed="0.000474"/>
</kw>
<kw name="Get Lines Containing String" owner="String">
<msg time="2026-10-22T21:17:50.588327" level="INFO">1 out of 23 lines matched.</msg>
<msg time="2026-10-22T21:17:50.588441" level="INFO">${result_line} = RESULT: 16 switches 9 tests min/max/avg/stdev = 24750.56/25636.72/25204.17/8405.23 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-22T21:17:50.588050" elapsed="0.000424"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-10-22T21:17:50.589013" level="INFO">@{results_list} = [ RESULT: | 16 | switches | 9 | tests | min/max/avg/stdev | = | 24750.56/25636.72/25204.17/8405.23 | 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-22T21:17:50.588697" elapsed="0.000349"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-22T21:17:50.589766" 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-22T21:17:50.589331" elapsed="0.000516"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-22T21:17:50.590676" level="INFO">24750.56/25636.72/25204.17/8405.23</msg>
<arg>${results_list[7]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-22T21:17:50.590121" elapsed="0.000643"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-10-22T21:17:50.591391" 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-22T21:17:50.590990" elapsed="0.000433"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-10-22T21:17:50.592086" level="INFO">@{result_value_list} = [ 24750.56 | 25636.72 | 25204.17 | 8405.23 ]</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-22T21:17:50.591688" elapsed="0.000430"/>
</kw>
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-10-22T21:17:50.592722" level="INFO">Length is 4.</msg>
<msg time="2026-10-22T21:17:50.592846" 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-22T21:17:50.592350" elapsed="0.000529"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-22T21:17:50.594038" level="INFO">min :: 24750.56</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-22T21:17:50.593453" elapsed="0.000654"/>
</kw>
<var name="${i}">0</var>
<status status="PASS" start="2026-10-22T21:17:50.593183" elapsed="0.000963"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-22T21:17:50.595078" level="INFO">max :: 25636.72</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-22T21:17:50.594525" elapsed="0.000627"/>
</kw>
<var name="${i}">1</var>
<status status="PASS" start="2026-10-22T21:17:50.594270" elapsed="0.000925"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-22T21:17:50.596139" level="INFO">avg :: 25204.17</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-22T21:17:50.595565" elapsed="0.000642"/>
</kw>
<var name="${i}">2</var>
<status status="PASS" start="2026-10-22T21:17:50.595326" elapsed="0.000921"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-22T21:17:50.597199" level="INFO">stdev :: 8405.23</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-22T21:17:50.596614" elapsed="0.000670"/>
</kw>
<var name="${i}">3</var>
<status status="PASS" start="2026-10-22T21:17:50.596375" elapsed="0.000952"/>
</iter>
<var>${i}</var>
<value>0</value>
<value>${num_stats}</value>
<status status="PASS" start="2026-10-22T21:17:50.592966" elapsed="0.004398"/>
</for>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-22T21:17:50.598108" level="INFO">${min} = 24750.56</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-22T21:17:50.597574" elapsed="0.000566"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-22T21:17:50.598895" level="INFO">${max} = 25636.72</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-22T21:17:50.598366" elapsed="0.000561"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-22T21:17:50.599637" level="INFO">${average} = 25204.17</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-22T21:17:50.599131" elapsed="0.000539"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-22T21:17:50.600387" level="INFO">${stdev} = 8405.23</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-22T21:17:50.599883" elapsed="0.000536"/>
</kw>
<kw name="Get Time" owner="BuiltIn">
<msg time="2026-10-22T21:17:50.601083" level="INFO">${date} = 2026-10-22 21:17:50</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-22T21:17:50.600654" elapsed="0.000460"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-22T21:17:50.601802" level="INFO">CBench Result: 2026-10-22 21:17:50,-m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633,24750.56,25636.72,25204.17,8405.23</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-22T21:17:50.601375" elapsed="0.000499"/>
</kw>
<kw name="Log Results And Determine Status">
<kw name="Append To File" owner="OperatingSystem">
<msg time="2026-10-22T21:17:50.602996" level="INFO" html="true">Appended to file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-cbench-only-titanium/latency.csv"&gt;/w/workspace/openflowplugin-csit-1node-cbench-only-titanium/latency.csv&lt;/a&gt;'.</msg>
<arg>${output_file}</arg>
<arg>${min},${max},${average}\n</arg>
<doc>Appends the given content to the specified file.</doc>
<status status="PASS" start="2026-10-22T21:17:50.602451" elapsed="0.000611"/>
</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-22T21:17:50.603223" elapsed="0.000423"/>
</kw>
<arg>${min}</arg>
<arg>${max}</arg>
<arg>${average}</arg>
<arg>${average_threshold}</arg>
<arg>${output_filename}</arg>
<status status="PASS" start="2026-10-22T21:17:50.602021" elapsed="0.001685"/>
</kw>
<arg>-m ${duration_in_ms} -M ${num_of_unique_macs} -S ${switch_count} -l ${loops} -D ${start_delay} -p ${of_port}</arg>
<arg>${latency_threshold}</arg>
<arg>${latency_results_file}</arg>
<status status="PASS" start="2026-10-22T21:07:44.051113" elapsed="606.552664"/>
</kw>
<kw name="Sleep" owner="BuiltIn">
<msg time="2026-10-22T21:17:50.604228" level="INFO">Slept 0 seconds.</msg>
<arg>${test_delay}</arg>
<doc>Pauses execution for the given time.</doc>
<status status="PASS" start="2026-10-22T21:17:50.603922" elapsed="0.000377"/>
</kw>
<kw name="Log Results As Zero If Cbench Timed Out" type="TEARDOWN">
<kw name="Run Keyword If Timeout Occurred" owner="BuiltIn">
<arg>Log Results And Determine Status</arg>
<arg>0</arg>
<arg>0</arg>
<arg>0</arg>
<arg>0</arg>
<arg>${output_filename}</arg>
<doc>Runs the given keyword if either a test or a keyword timeout has occurred.</doc>
<status status="PASS" start="2026-10-22T21:17:50.604806" elapsed="0.000257"/>
</kw>
<status status="PASS" start="2026-10-22T21:17:50.604499" elapsed="0.000628"/>
</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-22T21:07:44.048321" elapsed="606.556839"/>
</test>
<test id="s1-t2" name="Cbench Throughput Test" line="51">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-22T21:17:50.606658" 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-22T21:17:50.606343" elapsed="0.000368"/>
</kw>
<kw name="Run Cbench And Log Results">
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-10-22T21:17:50.607805" 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-22T21:17:50.607495" elapsed="0.000350"/>
</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-22T21:17:50.608168" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-10-22T21:17:50.607915" elapsed="0.000308"/>
</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-22T21:17:50.609288" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-10-22T21:17:50.609062" elapsed="0.000278"/>
</branch>
<status status="PASS" start="2026-10-22T21:17:50.609045" elapsed="0.000316"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-10-22T21:17:50.609743" 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-22T21:17:50.609854" 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-22T21:17:50.609538" elapsed="0.000341"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-22T21:17:50.610407" level="INFO">Attempting to execute command "/usr/local/bin/cbench -c 10.30.171.60 -t -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633" on remote system "10.30.170.55" 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-22T21:17:50.610050" elapsed="0.000411"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-10-22T21:17:50.610966" 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-22T21:17:50.610624" elapsed="0.000367"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-10-22T21:17:50.611962" level="INFO">Length is 0.</msg>
<msg time="2026-10-22T21:17:50.612047" 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-22T21:17:50.611622" elapsed="0.000447"/>
</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-22T21:17:50.612205" elapsed="0.000470"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-10-22T21:17:50.613943" level="INFO">Logging into '10.30.170.55:22' as 'jenkins'.</msg>
<msg time="2026-10-22T21:17:51.241040" 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 Thu Oct 22 21:17:50 UTC 2026

  System load:  1.02               Processes:             103
  Usage of /:   19.8% of 38.58GB   Users logged in:       0
  Memory usage: 4%                 IPv4 address for ens3: 10.30.170.55
  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: Thu Oct 22 21:07:44 2026 from 10.30.170.138
[?2004h[jenkins@releng-48317-875-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-22T21:17:50.613516" elapsed="0.627712"/>
</kw>
<msg time="2026-10-22T21:17:51.241334" 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-22T21:17:50.612923" elapsed="0.628498"/>
</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-22T21:17:50.611171" elapsed="0.630358"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-22T21:17:51.242046" level="INFO">Executing command '/usr/local/bin/cbench -c 10.30.171.60 -t -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633'.</msg>
<msg time="2026-10-22T21:27:57.307425" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-10-22T21:27:57.308101" level="INFO">${stdout} = </msg>
<msg time="2026-10-22T21:27:57.308206" level="INFO">${stderr} = cbench: controller benchmarking tool
   running in mode 'throughput'
   connecting to controller at 10.30.171.60: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-22T21:17:51.241787" elapsed="606.066507"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-10-22T21:27:57.308838" elapsed="0.000788"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-22T21:27:57.310951" level="INFO">cbench: controller benchmarking tool
   running in mode 'throughput'
   connecting to controller at 10.30.171.60: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.60. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
21:18:56.392 16  switches: flows:  682073 677077 686118 702052 679953 701484 680862 683868 687300 695325 677019 687322 693795 696802 702103 683842  total = 183.616583 per ms 
21:19:56.493 16  switches: flows:  733385 729567 735475 734730 724060 725723 724912 729256 735970 732107 740216 743932 723246 735750 732325 730653  total = 194.860510 per ms 
21:20:56.594 16  switches: flows:  711718 711012 729213 726969 726719 725777 721649 721828 725100 712027 732454 725466 716045 729102 729480 733850  total = 192.650027 per ms 
21:21:56.695 16  switches: flows:  731628 740187 729248 730935 734959 735825 722193 719414 738578 727296 723135 736990 729409 736924 730313 724329  total = 194.529555 per ms 
21:22:56.813 16  switches: flows:  713873 718828 722459 712897 720017 709110 710911 715388 716264 719800 710940 719122 708296 712490 713384 712574  total = 190.233397 per ms 
21:23:56.914 16  switches: flows:  724018 717908 722885 716549 720412 725835 723666 709081 725139 725061 721449 728338 724693 723915 720245 712128  total = 192.031113 per ms 
21:24:57.015 16  switches: flows:  717955 713662 724322 724075 723579 730077 730743 713828 726812 716228 722793 725122 721403 731348 735033 726416  total = 192.732995 per ms 
21:25:57.117 16  switches: flows:  709717 717608 716593 711662 713650 722788 724525 717080 717256 711869 709528 716859 716864 713788 724219 712770  total = 190.624667 per ms 
21:26:57.218 16  switches: flows:  713176 717214 712992 723666 707392 724254 726062 722427 708516 722294 712762 725210 702383 712332 723355 716750  total = 190.859459 per ms 
21:27:57.319 16  switches: flows:  724510 724707 712605 719987 713594 720812 714914 707944 713725 715238 717922 720674 710795 711473 715839 704004  total = 190.491618 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 190233.40/194860.51/192112.59/64058.36 responses/s</msg>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-22T21:27:57.310138" elapsed="0.001156"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="PASS" start="2026-10-22T21:27:57.311795" elapsed="0.000095"/>
</return>
<status status="PASS" start="2026-10-22T21:27:57.311517" elapsed="0.000453"/>
</branch>
<status status="PASS" start="2026-10-22T21:27:57.311462" elapsed="0.000560"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="NOT RUN" start="2026-10-22T21:27:57.312216" elapsed="0.000028"/>
</return>
<status status="NOT RUN" start="2026-10-22T21:27:57.312140" elapsed="0.000203"/>
</branch>
<status status="NOT RUN" start="2026-10-22T21:27:57.312107" elapsed="0.000299"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-10-22T21:27:57.312475" elapsed="0.000032"/>
</return>
<kw name="Restore_Current_Ssh_Connection_From_Index" owner="SSHKeywords" type="TEARDOWN">
<kw name="Run Keyword And Return If" owner="BuiltIn">
<arg>${connection_index} is not None</arg>
<arg>SSHLibrary.Switch Connection</arg>
<arg>${connection_index}</arg>
<doc>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-22T21:27:57.314223" 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-22T21:27:57.315472" elapsed="0.000456"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-10-22T21:27:57.316382" elapsed="0.000310"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-10-22T21:27:57.313240" elapsed="0.003571"/>
</kw>
<msg time="2026-10-22T21:27:57.317093" level="INFO">${output} = cbench: controller benchmarking tool
   running in mode 'throughput'
   connecting to controller at 10.30.171.60: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-22T21:17:50.608557" elapsed="606.708592"/>
</kw>
<status status="PASS" start="2026-10-22T21:17:50.608262" elapsed="606.709018"/>
</branch>
<status status="PASS" start="2026-10-22T21:17:50.607894" elapsed="606.709452"/>
</if>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-22T21:27:57.318460" level="INFO">cbench: controller benchmarking tool
   running in mode 'throughput'
   connecting to controller at 10.30.171.60: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.60. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
21:18:56.392 16  switches: flows:  682073 677077 686118 702052 679953 701484 680862 683868 687300 695325 677019 687322 693795 696802 702103 683842  total = 183.616583 per ms 
21:19:56.493 16  switches: flows:  733385 729567 735475 734730 724060 725723 724912 729256 735970 732107 740216 743932 723246 735750 732325 730653  total = 194.860510 per ms 
21:20:56.594 16  switches: flows:  711718 711012 729213 726969 726719 725777 721649 721828 725100 712027 732454 725466 716045 729102 729480 733850  total = 192.650027 per ms 
21:21:56.695 16  switches: flows:  731628 740187 729248 730935 734959 735825 722193 719414 738578 727296 723135 736990 729409 736924 730313 724329  total = 194.529555 per ms 
21:22:56.813 16  switches: flows:  713873 718828 722459 712897 720017 709110 710911 715388 716264 719800 710940 719122 708296 712490 713384 712574  total = 190.233397 per ms 
21:23:56.914 16  switches: flows:  724018 717908 722885 716549 720412 725835 723666 709081 725139 725061 721449 728338 724693 723915 720245 712128  total = 192.031113 per ms 
21:24:57.015 16  switches: flows:  717955 713662 724322 724075 723579 730077 730743 713828 726812 716228 722793 725122 721403 731348 735033 726416  total = 192.732995 per ms 
21:25:57.117 16  switches: flows:  709717 717608 716593 711662 713650 722788 724525 717080 717256 711869 709528 716859 716864 713788 724219 712770  total = 190.624667 per ms 
21:26:57.218 16  switches: flows:  713176 717214 712992 723666 707392 724254 726062 722427 708516 722294 712762 725210 702383 712332 723355 716750  total = 190.859459 per ms 
21:27:57.319 16  switches: flows:  724510 724707 712605 719987 713594 720812 714914 707944 713725 715238 717922 720674 710795 711473 715839 704004  total = 190.491618 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 190233.40/194860.51/192112.59/64058.36 responses/s</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-22T21:27:57.317764" elapsed="0.000861"/>
</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-22T21:27:57.319024" elapsed="0.001029"/>
</kw>
<kw name="Get Lines Containing String" owner="String">
<msg time="2026-10-22T21:27:57.320942" level="INFO">1 out of 23 lines matched.</msg>
<msg time="2026-10-22T21:27:57.321136" level="INFO">${result_line} = RESULT: 16 switches 9 tests min/max/avg/stdev = 190233.40/194860.51/192112.59/64058.36 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-22T21:27:57.320490" elapsed="0.000699"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-10-22T21:27:57.322146" level="INFO">@{results_list} = [ RESULT: | 16 | switches | 9 | tests | min/max/avg/stdev | = | 190233.40/194860.51/192112.59/64058.36 | 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-22T21:27:57.321604" elapsed="0.000601"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-22T21:27:57.323500" 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-22T21:27:57.322676" elapsed="0.000946"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-22T21:27:57.324849" level="INFO">190233.40/194860.51/192112.59/64058.36</msg>
<arg>${results_list[7]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-22T21:27:57.324056" elapsed="0.000956"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-10-22T21:27:57.326666" 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-22T21:27:57.325555" elapsed="0.001175"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-10-22T21:27:57.327950" level="INFO">@{result_value_list} = [ 190233.40 | 194860.51 | 192112.59 | 64058.36 ]</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-22T21:27:57.327194" elapsed="0.000817"/>
</kw>
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-10-22T21:27:57.329079" level="INFO">Length is 4.</msg>
<msg time="2026-10-22T21:27:57.329291" 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-22T21:27:57.328406" elapsed="0.000950"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-22T21:27:57.331328" level="INFO">min :: 190233.40</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-22T21:27:57.330281" elapsed="0.001185"/>
</kw>
<var name="${i}">0</var>
<status status="PASS" start="2026-10-22T21:27:57.329848" elapsed="0.001688"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-22T21:27:57.333180" level="INFO">max :: 194860.51</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-22T21:27:57.332147" elapsed="0.001201"/>
</kw>
<var name="${i}">1</var>
<status status="PASS" start="2026-10-22T21:27:57.331747" elapsed="0.001687"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-22T21:27:57.335102" level="INFO">avg :: 192112.59</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-22T21:27:57.334072" elapsed="0.001163"/>
</kw>
<var name="${i}">2</var>
<status status="PASS" start="2026-10-22T21:27:57.333642" elapsed="0.001720"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-22T21:27:57.337568" level="INFO">stdev :: 64058.36</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-22T21:27:57.336083" elapsed="0.001603"/>
</kw>
<var name="${i}">3</var>
<status status="PASS" start="2026-10-22T21:27:57.335573" elapsed="0.002187"/>
</iter>
<var>${i}</var>
<value>0</value>
<value>${num_stats}</value>
<status status="PASS" start="2026-10-22T21:27:57.329494" elapsed="0.008330"/>
</for>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-22T21:27:57.339201" level="INFO">${min} = 190233.40</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-22T21:27:57.338208" elapsed="0.001083"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-22T21:27:57.340599" level="INFO">${max} = 194860.51</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-22T21:27:57.339658" elapsed="0.000996"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-22T21:27:57.341996" level="INFO">${average} = 192112.59</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-22T21:27:57.341019" elapsed="0.001034"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-22T21:27:57.343426" level="INFO">${stdev} = 64058.36</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-22T21:27:57.342436" elapsed="0.001054"/>
</kw>
<kw name="Get Time" owner="BuiltIn">
<msg time="2026-10-22T21:27:57.344775" level="INFO">${date} = 2026-10-22 21:27:57</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-22T21:27:57.343940" elapsed="0.000889"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-22T21:27:57.346337" level="INFO">CBench Result: 2026-10-22 21:27:57,-t -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633,190233.40,194860.51,192112.59,64058.36</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-22T21:27:57.345390" elapsed="0.001083"/>
</kw>
<kw name="Log Results And Determine Status">
<kw name="Append To File" owner="OperatingSystem">
<msg time="2026-10-22T21:27:57.348482" level="INFO" html="true">Appended to file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-cbench-only-titanium/throughput.csv"&gt;/w/workspace/openflowplugin-csit-1node-cbench-only-titanium/throughput.csv&lt;/a&gt;'.</msg>
<arg>${output_file}</arg>
<arg>${min},${max},${average}\n</arg>
<doc>Appends the given content to the specified file.</doc>
<status status="PASS" start="2026-10-22T21:27:57.347741" elapsed="0.000833"/>
</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-22T21:27:57.348797" elapsed="0.000923"/>
</kw>
<arg>${min}</arg>
<arg>${max}</arg>
<arg>${average}</arg>
<arg>${average_threshold}</arg>
<arg>${output_filename}</arg>
<status status="PASS" start="2026-10-22T21:27:57.346746" elapsed="0.003063"/>
</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-22T21:17:50.607007" elapsed="606.742906"/>
</kw>
<kw name="Sleep" owner="BuiltIn">
<msg time="2026-10-22T21:27:57.350662" level="INFO">Slept 0 seconds.</msg>
<arg>${test_delay}</arg>
<doc>Pauses execution for the given time.</doc>
<status status="PASS" start="2026-10-22T21:27:57.350123" elapsed="0.000618"/>
</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-22T21:27:57.351610" elapsed="0.000374"/>
</kw>
<status status="PASS" start="2026-10-22T21:27:57.351125" elapsed="0.000955"/>
</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-22T21:17:50.605622" elapsed="606.746506"/>
</test>
<test id="s1-t3" name="Rerun Latency Test To Check Bug 6176" line="65">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-22T21:27:57.353914" 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-22T21:27:57.353409" elapsed="0.000589"/>
</kw>
<kw name="Run Cbench And Log Results">
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-10-22T21:27:57.355710" 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-22T21:27:57.355124" elapsed="0.000665"/>
</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-22T21:27:57.356410" elapsed="0.000036"/>
</kw>
<status status="NOT RUN" start="2026-10-22T21:27:57.356028" elapsed="0.000468"/>
</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-22T21:27:57.358304" elapsed="0.000036"/>
</kw>
<status status="NOT RUN" start="2026-10-22T21:27:57.357965" elapsed="0.000433"/>
</branch>
<status status="PASS" start="2026-10-22T21:27:57.357939" elapsed="0.000492"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-10-22T21:27:57.359058" 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-22T21:27:57.359217" 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-22T21:27:57.358755" elapsed="0.000527"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-22T21:27:57.360068" level="INFO">Attempting to execute command "/usr/local/bin/cbench -c 10.30.171.60 -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633" on remote system "10.30.170.55" 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-22T21:27:57.359581" elapsed="0.000566"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-10-22T21:27:57.360909" 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-22T21:27:57.360417" elapsed="0.000530"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-10-22T21:27:57.362243" level="INFO">Length is 0.</msg>
<msg time="2026-10-22T21:27:57.362394" 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-22T21:27:57.361803" elapsed="0.000624"/>
</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-22T21:27:57.362616" elapsed="0.000429"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-10-22T21:27:57.364191" level="INFO">Logging into '10.30.170.55:22' as 'jenkins'.</msg>
<msg time="2026-10-22T21:27:58.097387" 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 Thu Oct 22 21:27:57 UTC 2026

  System load:  0.34               Processes:             106
  Usage of /:   19.8% of 38.58GB   Users logged in:       0
  Memory usage: 4%                 IPv4 address for ens3: 10.30.170.55
  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: Thu Oct 22 21:17:51 2026 from 10.30.170.138
[?2004h[jenkins@releng-48317-875-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-22T21:27:57.363794" elapsed="0.733805"/>
</kw>
<msg time="2026-10-22T21:27:58.097695" 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-22T21:27:57.363273" elapsed="0.734510"/>
</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-22T21:27:57.361243" elapsed="0.736676"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-22T21:27:58.098515" level="INFO">Executing command '/usr/local/bin/cbench -c 10.30.171.60 -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633'.</msg>
<msg time="2026-10-22T21:38:04.150420" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-10-22T21:38:04.151077" level="INFO">${stdout} = </msg>
<msg time="2026-10-22T21:38:04.151179" level="INFO">${stderr} = cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.171.60:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with 100...</msg>
<var>${stdout}</var>
<var>${stderr}</var>
<arg>${cmd}</arg>
<arg>return_stderr=True</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-10-22T21:27:58.098206" elapsed="606.053028"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-10-22T21:38:04.151783" elapsed="0.000738"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-22T21:38:04.153741" level="INFO">cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.171.60: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.60. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
21:29:03.274 16  switches: flows:  100046 97931 97704 97393 97777 97171 95446 95805 94234 92744 92455 92796 89842 90817 93049 93619  total = 25.313817 per ms 
21:30:03.374 16  switches: flows:  101067 99663 99564 97004 99022 97482 93718 94681 94122 91187 91821 92976 91005 92390 92624 92303  total = 25.301574 per ms 
21:31:03.474 16  switches: flows:  100186 100503 100114 96703 98015 96077 95549 95735 96206 92001 91798 92693 90539 92233 92965 92115  total = 25.348190 per ms 
21:32:03.575 16  switches: flows:  98546 100394 100040 98472 97277 97436 94642 95384 95539 92604 91731 94503 90079 91396 93071 91734  total = 25.338507 per ms 
21:33:03.675 16  switches: flows:  102512 100833 102755 98540 99351 97830 96500 97042 96059 92940 93165 93916 91228 92725 94029 92890  total = 25.662393 per ms 
21:34:03.775 16  switches: flows:  99924 102190 101612 96683 100278 98581 97831 97163 97066 91548 93753 93755 91021 93021 94092 93324  total = 25.654482 per ms 
21:35:03.875 16  switches: flows:  100761 101730 101324 98647 101534 98841 98239 96465 96865 92557 94001 94186 91713 93105 92862 95286  total = 25.758907 per ms 
21:36:03.976 16  switches: flows:  102112 103194 102765 99658 102170 100199 96711 98574 97087 94856 95554 95332 92103 93522 93808 95508  total = 26.009131 per ms 
21:37:04.076 16  switches: flows:  101322 102747 102569 99698 103773 99453 97342 97330 97506 94794 95324 95804 92553 93975 94731 94811  total = 26.018762 per ms 
21:38:04.176 16  switches: flows:  99214 99125 100759 97476 102176 95899 95524 94098 96258 91089 92739 92529 89749 91545 92554 93170  total = 25.356060 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 25301.57/26018.76/25605.33/8539.37 responses/s</msg>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-22T21:38:04.153036" elapsed="0.001024"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="PASS" start="2026-10-22T21:38:04.154531" elapsed="0.000068"/>
</return>
<status status="PASS" start="2026-10-22T21:38:04.154248" elapsed="0.000425"/>
</branch>
<status status="PASS" start="2026-10-22T21:38:04.154195" elapsed="0.000529"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="NOT RUN" start="2026-10-22T21:38:04.154911" elapsed="0.000025"/>
</return>
<status status="NOT RUN" start="2026-10-22T21:38:04.154838" elapsed="0.000179"/>
</branch>
<status status="NOT RUN" start="2026-10-22T21:38:04.154806" elapsed="0.000255"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-10-22T21:38:04.155123" 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-22T21:38:04.156879" elapsed="0.000746"/>
</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-22T21:38:04.158019" elapsed="0.000352"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-10-22T21:38:04.158651" elapsed="0.000201"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-10-22T21:38:04.155820" elapsed="0.003165"/>
</kw>
<msg time="2026-10-22T21:38:04.159218" level="INFO">${output} = cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.171.60:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with 100...</msg>
<var>${output}</var>
<arg>${cbench_system}</arg>
<arg>${cbench_executable} -c ${ODL_SYSTEM_IP} ${cbench_args}</arg>
<arg>prompt_timeout=${test_timeout}</arg>
<arg>return_stdout=False</arg>
<arg>return_stderr=True</arg>
<doc>Reduces the common work of running a command on a remote system to a single higher level
robot keyword, taking care to log in with a public key and. The command given is written and the return value
depends on the passed argument values of return_stdout (default: True) and return_stderr (default: False).
At least one should be True, or the keyword will exit and FAIL. If both are True, the resulting return value
will be a two element list containing both. Otherwise the resulting return value is a string.
No test conditions are checked.</doc>
<status status="PASS" start="2026-10-22T21:27:57.357137" elapsed="606.802168"/>
</kw>
<status status="PASS" start="2026-10-22T21:27:57.356532" elapsed="606.802875"/>
</branch>
<status status="PASS" start="2026-10-22T21:27:57.355994" elapsed="606.803462"/>
</if>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-22T21:38:04.160509" level="INFO">cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.171.60: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.60. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
21:29:03.274 16  switches: flows:  100046 97931 97704 97393 97777 97171 95446 95805 94234 92744 92455 92796 89842 90817 93049 93619  total = 25.313817 per ms 
21:30:03.374 16  switches: flows:  101067 99663 99564 97004 99022 97482 93718 94681 94122 91187 91821 92976 91005 92390 92624 92303  total = 25.301574 per ms 
21:31:03.474 16  switches: flows:  100186 100503 100114 96703 98015 96077 95549 95735 96206 92001 91798 92693 90539 92233 92965 92115  total = 25.348190 per ms 
21:32:03.575 16  switches: flows:  98546 100394 100040 98472 97277 97436 94642 95384 95539 92604 91731 94503 90079 91396 93071 91734  total = 25.338507 per ms 
21:33:03.675 16  switches: flows:  102512 100833 102755 98540 99351 97830 96500 97042 96059 92940 93165 93916 91228 92725 94029 92890  total = 25.662393 per ms 
21:34:03.775 16  switches: flows:  99924 102190 101612 96683 100278 98581 97831 97163 97066 91548 93753 93755 91021 93021 94092 93324  total = 25.654482 per ms 
21:35:03.875 16  switches: flows:  100761 101730 101324 98647 101534 98841 98239 96465 96865 92557 94001 94186 91713 93105 92862 95286  total = 25.758907 per ms 
21:36:03.976 16  switches: flows:  102112 103194 102765 99658 102170 100199 96711 98574 97087 94856 95554 95332 92103 93522 93808 95508  total = 26.009131 per ms 
21:37:04.076 16  switches: flows:  101322 102747 102569 99698 103773 99453 97342 97330 97506 94794 95324 95804 92553 93975 94731 94811  total = 26.018762 per ms 
21:38:04.176 16  switches: flows:  99214 99125 100759 97476 102176 95899 95524 94098 96258 91089 92739 92529 89749 91545 92554 93170  total = 25.356060 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 25301.57/26018.76/25605.33/8539.37 responses/s</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-22T21:38:04.159864" elapsed="0.000799"/>
</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-22T21:38:04.161033" elapsed="0.000759"/>
</kw>
<kw name="Get Lines Containing String" owner="String">
<msg time="2026-10-22T21:38:04.162633" level="INFO">1 out of 23 lines matched.</msg>
<msg time="2026-10-22T21:38:04.162820" level="INFO">${result_line} = RESULT: 16 switches 9 tests min/max/avg/stdev = 25301.57/26018.76/25605.33/8539.37 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-22T21:38:04.162192" elapsed="0.000679"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-10-22T21:38:04.163753" level="INFO">@{results_list} = [ RESULT: | 16 | switches | 9 | tests | min/max/avg/stdev | = | 25301.57/26018.76/25605.33/8539.37 | 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-22T21:38:04.163242" elapsed="0.000568"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-22T21:38:04.165005" 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-22T21:38:04.164281" elapsed="0.000843"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-22T21:38:04.166307" level="INFO">25301.57/26018.76/25605.33/8539.37</msg>
<arg>${results_list[7]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-22T21:38:04.165554" elapsed="0.000871"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-10-22T21:38:04.167445" 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-22T21:38:04.166768" elapsed="0.000732"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-10-22T21:38:04.168615" level="INFO">@{result_value_list} = [ 25301.57 | 26018.76 | 25605.33 | 8539.37 ]</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-22T21:38:04.167914" elapsed="0.000758"/>
</kw>
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-10-22T21:38:04.169715" level="INFO">Length is 4.</msg>
<msg time="2026-10-22T21:38:04.169898" 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-22T21:38:04.169032" elapsed="0.000941"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-22T21:38:04.171849" level="INFO">min :: 25301.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-22T21:38:04.170873" elapsed="0.001120"/>
</kw>
<var name="${i}">0</var>
<status status="PASS" start="2026-10-22T21:38:04.170501" elapsed="0.001564"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-22T21:38:04.173612" level="INFO">max :: 26018.76</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-22T21:38:04.172633" elapsed="0.001096"/>
</kw>
<var name="${i}">1</var>
<status status="PASS" start="2026-10-22T21:38:04.172239" elapsed="0.001559"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-22T21:38:04.175542" level="INFO">avg :: 25605.33</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-22T21:38:04.174404" elapsed="0.001285"/>
</kw>
<var name="${i}">2</var>
<status status="PASS" start="2026-10-22T21:38:04.173995" elapsed="0.001784"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-22T21:38:04.177587" level="INFO">stdev :: 8539.37</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-22T21:38:04.176437" elapsed="0.001289"/>
</kw>
<var name="${i}">3</var>
<status status="PASS" start="2026-10-22T21:38:04.175982" elapsed="0.001833"/>
</iter>
<var>${i}</var>
<value>0</value>
<value>${num_stats}</value>
<status status="PASS" start="2026-10-22T21:38:04.170096" elapsed="0.007782"/>
</for>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-22T21:38:04.179327" level="INFO">${min} = 25301.57</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-22T21:38:04.178245" elapsed="0.001149"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-22T21:38:04.180708" level="INFO">${max} = 26018.76</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-22T21:38:04.179733" elapsed="0.001030"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-22T21:38:04.182042" level="INFO">${average} = 25605.33</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-22T21:38:04.181119" elapsed="0.000994"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-22T21:38:04.183574" level="INFO">${stdev} = 8539.37</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-22T21:38:04.182505" elapsed="0.001129"/>
</kw>
<kw name="Get Time" owner="BuiltIn">
<msg time="2026-10-22T21:38:04.184872" level="INFO">${date} = 2026-10-22 21:38:04</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-22T21:38:04.184094" elapsed="0.000876"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-22T21:38:04.186294" level="INFO">CBench Result: 2026-10-22 21:38:04,-m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633,25301.57,26018.76,25605.33,8539.37</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-22T21:38:04.185468" elapsed="0.000973"/>
</kw>
<kw name="Log Results And Determine Status">
<kw name="Append To File" owner="OperatingSystem">
<msg time="2026-10-22T21:38:04.188854" level="INFO" html="true">Appended to file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-cbench-only-titanium/bug.csv"&gt;/w/workspace/openflowplugin-csit-1node-cbench-only-titanium/bug.csv&lt;/a&gt;'.</msg>
<arg>${output_file}</arg>
<arg>${min},${max},${average}\n</arg>
<doc>Appends the given content to the specified file.</doc>
<status status="PASS" start="2026-10-22T21:38:04.187922" elapsed="0.001126"/>
</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-22T21:38:04.189474" elapsed="0.001236"/>
</kw>
<arg>${min}</arg>
<arg>${max}</arg>
<arg>${average}</arg>
<arg>${average_threshold}</arg>
<arg>${output_filename}</arg>
<status status="PASS" start="2026-10-22T21:38:04.186853" elapsed="0.003994"/>
</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-22T21:27:57.354438" elapsed="606.836548"/>
</kw>
<kw name="Sleep" owner="BuiltIn">
<msg time="2026-10-22T21:38:04.192090" level="INFO">Slept 0 seconds.</msg>
<arg>${test_delay}</arg>
<doc>Pauses execution for the given time.</doc>
<status status="PASS" start="2026-10-22T21:38:04.191331" elapsed="0.000900"/>
</kw>
<kw name="Report Failure Due To Bug" owner="Utils" type="TEARDOWN">
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-22T21:38:04.194058" 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-22T21:38:04.193420" elapsed="0.000687"/>
</kw>
<if>
<branch type="IF" condition="('${TEST_STATUS}' != 'FAIL') or ${test_skipped}">
<return>
<status status="PASS" start="2026-10-22T21:38:04.194411" elapsed="0.000039"/>
</return>
<status status="PASS" start="2026-10-22T21:38:04.194207" elapsed="0.000284"/>
</branch>
<status status="PASS" start="2026-10-22T21:38:04.194181" elapsed="0.000550"/>
</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-22T21:38:04.194981" elapsed="0.000031"/>
</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-22T21:38:04.195220" elapsed="0.000051"/>
</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-22T21:38:04.195486" elapsed="0.000026"/>
</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-22T21:38:04.195697" elapsed="0.000026"/>
</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-22T21:38:04.196006" elapsed="0.000030"/>
</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-22T21:38:04.196218" elapsed="0.000026"/>
</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-22T21:38:04.196516" elapsed="0.000029"/>
</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-22T21:38:04.196833" elapsed="0.000035"/>
</kw>
<status status="NOT RUN" start="2026-10-22T21:38:04.196629" elapsed="0.000281"/>
</branch>
<status status="NOT RUN" start="2026-10-22T21:38:04.196607" elapsed="0.000333"/>
</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-22T21:38:04.192869" elapsed="0.004160"/>
</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-22T21:27:57.352550" elapsed="606.844537"/>
</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-22T21:07:41.417866" elapsed="1822.779770"/>
</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>
