<?xml version="1.0" encoding="UTF-8"?>
<robot generator="Robot 7.5 (Python 3.11.10 on linux)" generated="2026-10-10T00:46:18.786504" rpa="false" schemaversion="5">
<suite id="s1" name="openflowplugin-cbench.txt" source="/w/workspace/openflowplugin-csit-1node-cbench-only-vanadium/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-10T00:46:19.261381" elapsed="0.000020"/>
</return>
<status status="NOT RUN" start="2026-10-10T00:46:19.261268" elapsed="0.000178"/>
</branch>
<status status="PASS" start="2026-10-10T00:46:19.261241" elapsed="0.000232"/>
</if>
<kw name="Open Connection" owner="SSHLibrary">
<arg>${controller}</arg>
<arg>port=${karaf_port}</arg>
<arg>prompt=${KARAF_PROMPT_LOGIN}</arg>
<arg>timeout=${timeout}</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-10-10T00:46:19.261647" elapsed="0.000459"/>
</kw>
<kw name="Login" owner="SSHLibrary">
<msg time="2026-10-10T00:46:19.262550" level="INFO">Logging into '10.30.171.91:8101' as 'karaf'.</msg>
<msg time="2026-10-10T00:46:20.014239" 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-10T00:46:19.262305" elapsed="0.752105"/>
</kw>
<kw name="Write" owner="SSHLibrary">
<msg time="2026-10-10T00:46:20.063398" 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-10T00:46:20.014669" elapsed="0.048788"/>
</kw>
<kw name="Read Until Regexp" owner="SSHLibrary">
<msg time="2026-10-10T00:46:20.065173" level="INFO">[?1l&gt;[?2004l[?1h=[90m~[0m                                                                                [?2004hopendaylight-user@root&gt;</msg>
<msg time="2026-10-10T00:46:20.065275" 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-10T00:46:20.063622" elapsed="0.001680"/>
</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-10T00:46:20.065456" elapsed="0.000181"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-10-10T00:46:20.065803" elapsed="0.000243"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T00:46:20.066541" 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-10T00:46:20.066233" elapsed="0.000358"/>
</kw>
<return>
<value>${output}</value>
<status status="PASS" start="2026-10-10T00:46:20.066639" elapsed="0.000050"/>
</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.91
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-10T00:46:19.260941" elapsed="0.805861"/>
</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-10T00:46:19.259313" elapsed="0.807546"/>
</kw>
<kw name="Append To File" owner="OperatingSystem">
<msg time="2026-10-10T00:46:20.067378" level="INFO" html="true">Appended to file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-cbench-only-vanadium/latency.csv"&gt;/w/workspace/openflowplugin-csit-1node-cbench-only-vanadium/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-10T00:46:20.067053" elapsed="0.000378"/>
</kw>
<kw name="Append To File" owner="OperatingSystem">
<msg time="2026-10-10T00:46:20.067801" level="INFO" html="true">Appended to file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-cbench-only-vanadium/throughput.csv"&gt;/w/workspace/openflowplugin-csit-1node-cbench-only-vanadium/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-10T00:46:20.067578" elapsed="0.000276"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-10T00:46:20.068447" 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-10T00:46:20.068040" elapsed="0.000433"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-10-10T00:46:20.069020" 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-10T00:46:20.068670" elapsed="0.000392"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-10T00:46:20.069551" 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-10T00:46:20.069227" elapsed="0.000349"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-10-10T00:46:20.070065" 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-10T00:46:20.069767" elapsed="0.000338"/>
</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-10T00:46:20.070370" elapsed="0.000019"/>
</kw>
<status status="NOT RUN" start="2026-10-10T00:46:20.070183" elapsed="0.000237"/>
</branch>
<branch type="ELSE">
<kw name="Verify File Exists On Remote System" owner="Utils">
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-10-10T00:46:20.072637" 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-10T00:46:20.072301" elapsed="0.000362"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-10-10T00:46:20.073732" level="INFO">Length is 0.</msg>
<msg time="2026-10-10T00:46:20.073822" 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-10T00:46:20.073179" elapsed="0.000666"/>
</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-10T00:46:20.073997" elapsed="0.000319"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-10-10T00:46:20.075101" level="INFO">Logging into '10.30.170.199:22' as 'jenkins'.</msg>
<msg time="2026-10-10T00:46:20.553803" 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 Sat Oct 10 00:45:40 UTC 2026

  System load:  0.16               Processes:             110
  Usage of /:   19.8% of 38.58GB   Users logged in:       0
  Memory usage: 4%                 IPv4 address for ens3: 10.30.170.199
  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-63164-422-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-10T00:46:20.074844" elapsed="0.479082"/>
</kw>
<msg time="2026-10-10T00:46:20.554017" 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-10T00:46:20.074469" elapsed="0.479628"/>
</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-10T00:46:20.072857" elapsed="0.481343"/>
</kw>
<kw name="File Should Exist" owner="SSHLibrary">
<msg time="2026-10-10T00:46:20.563777" 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-10T00:46:20.554391" elapsed="0.011205"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-10-10T00:46:20.565784" elapsed="0.000249"/>
</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-10T00:46:20.071847" elapsed="0.494253"/>
</kw>
<status status="PASS" start="2026-10-10T00:46:20.070650" elapsed="0.495484"/>
</branch>
<status status="PASS" start="2026-10-10T00:46:20.070161" elapsed="0.496006"/>
</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-10T00:46:20.566327" elapsed="0.000443"/>
</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-10T00:46:20.569094" elapsed="0.000025"/>
</return>
<status status="NOT RUN" start="2026-10-10T00:46:20.568940" elapsed="0.000221"/>
</branch>
<status status="PASS" start="2026-10-10T00:46:20.568910" elapsed="0.000282"/>
</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-10T00:46:20.571235" elapsed="0.000019"/>
</return>
<status status="NOT RUN" start="2026-10-10T00:46:20.571110" elapsed="0.000184"/>
</branch>
<status status="PASS" start="2026-10-10T00:46:20.571080" elapsed="0.000243"/>
</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-10T00:46:20.571536" elapsed="0.000512"/>
</kw>
<kw name="Login" owner="SSHLibrary">
<msg time="2026-10-10T00:46:20.572562" level="INFO">Logging into '10.30.171.91:8101' as 'karaf'.</msg>
<msg time="2026-10-10T00:46:20.845869" 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-10T00:46:20.572286" elapsed="0.273696"/>
</kw>
<kw name="Write" owner="SSHLibrary">
<msg time="2026-10-10T00:46:20.935064" 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-10T00:46:20.846196" elapsed="0.088925"/>
</kw>
<kw name="Read Until Regexp" owner="SSHLibrary">
<msg time="2026-10-10T00:46:20.942135" level="INFO">[?1l&gt;[?2004l[31;1modl-openflowplugin-drop-test[0m                                    x 0.21.5           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-10T00:46:20.942300" level="INFO">${output} = [?1l&gt;[?2004l[31;1modl-openflowplugin-drop-test[0m                                    x 0.21.5           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-10T00:46:20.935269" elapsed="0.007061"/>
</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-10T00:46:20.942472" elapsed="0.000170"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-10-10T00:46:20.942793" elapsed="0.000186"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T00:46:20.943449" level="INFO">[?1l&gt;[?2004l[31;1modl-openflowplugin-drop-test[0m                                    x 0.21.5           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-10T00:46:20.943175" elapsed="0.000326"/>
</kw>
<return>
<value>${output}</value>
<status status="PASS" start="2026-10-10T00:46:20.943550" elapsed="0.000041"/>
</return>
<msg time="2026-10-10T00:46:20.943708" level="INFO">${output} = [?1l&gt;[?2004l[31;1modl-openflowplugin-drop-test[0m                                    x 0.21.5           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.91
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-10T00:46:20.570672" elapsed="0.373065"/>
</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-10T00:46:20.943900" elapsed="0.000450"/>
</kw>
<return>
<value>${output}</value>
<status status="PASS" start="2026-10-10T00:46:20.944396" elapsed="0.000029"/>
</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-10T00:46:20.568583" elapsed="0.375919"/>
</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-10T00:46:20.946106" elapsed="0.000015"/>
</return>
<status status="NOT RUN" start="2026-10-10T00:46:20.945980" elapsed="0.000170"/>
</branch>
<status status="PASS" start="2026-10-10T00:46:20.945959" elapsed="0.000213"/>
</if>
<kw name="Open Connection" owner="SSHLibrary">
<arg>${controller}</arg>
<arg>port=${karaf_port}</arg>
<arg>prompt=${KARAF_PROMPT_LOGIN}</arg>
<arg>timeout=${timeout}</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-10-10T00:46:20.946325" elapsed="0.000350"/>
</kw>
<kw name="Login" owner="SSHLibrary">
<msg time="2026-10-10T00:46:20.947071" level="INFO">Logging into '10.30.171.91:8101' as 'karaf'.</msg>
<msg time="2026-10-10T00:46:21.171836" 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-10T00:46:20.946857" elapsed="0.225083"/>
</kw>
<kw name="Write" owner="SSHLibrary">
<msg time="2026-10-10T00:46:21.195868" 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-10T00:46:21.172156" elapsed="0.023772"/>
</kw>
<kw name="Read Until Regexp" owner="SSHLibrary">
<msg time="2026-10-10T00:46:21.198208" level="INFO">[?1l&gt;[?2004lDropAllFlows transitions to on
[?1h=[90m~[0m                                                                                [?2004hopendaylight-user@root&gt;</msg>
<msg time="2026-10-10T00:46:21.198307" 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-10T00:46:21.196097" elapsed="0.002238"/>
</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-10T00:46:21.198469" elapsed="0.000165"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-10-10T00:46:21.198785" elapsed="0.000183"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T00:46:21.199440" 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-10T00:46:21.199164" elapsed="0.000322"/>
</kw>
<return>
<value>${output}</value>
<status status="PASS" start="2026-10-10T00:46:21.199530" elapsed="0.000041"/>
</return>
<arg>dropallpacketsrpc on</arg>
<doc>Will execute the given ${cmd} by ssh'ing to the karaf console running on 10.30.171.91
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-10T00:46:20.945699" elapsed="0.253961"/>
</kw>
<status status="PASS" start="2026-10-10T00:46:19.257461" elapsed="1.942253"/>
</kw>
<test id="s1-t1" name="Cbench Latency Test" line="37">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T00:46:21.201370" 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-10T00:46:21.200535" elapsed="0.000895"/>
</kw>
<kw name="Run Cbench And Log Results">
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-10-10T00:46:21.202655" 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-10T00:46:21.202341" elapsed="0.000354"/>
</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-10T00:46:21.203024" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-10-10T00:46:21.202782" elapsed="0.000297"/>
</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-10T00:46:21.204150" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-10-10T00:46:21.203917" elapsed="0.000284"/>
</branch>
<status status="PASS" start="2026-10-10T00:46:21.203899" elapsed="0.000326"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-10-10T00:46:21.204587" 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-10T00:46:21.204707" 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-10T00:46:21.204400" elapsed="0.000333"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T00:46:21.205310" level="INFO">Attempting to execute command "/usr/local/bin/cbench -c 10.30.171.91 -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633" on remote system "10.30.170.199" 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-10T00:46:21.204943" elapsed="0.000424"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-10-10T00:46:21.205942" 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-10T00:46:21.205529" elapsed="0.000437"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-10-10T00:46:21.206821" level="INFO">Length is 0.</msg>
<msg time="2026-10-10T00:46:21.206900" 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-10T00:46:21.206512" elapsed="0.000410"/>
</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-10T00:46:21.207071" elapsed="0.000297"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-10-10T00:46:21.208165" level="INFO">Logging into '10.30.170.199:22' as 'jenkins'.</msg>
<msg time="2026-10-10T00:46:21.560096" 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 Sat Oct 10 00:45:40 UTC 2026

  System load:  0.16               Processes:             110
  Usage of /:   19.8% of 38.58GB   Users logged in:       0
  Memory usage: 4%                 IPv4 address for ens3: 10.30.170.199
  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: Sat Oct 10 00:46:20 2026 from 10.30.171.119
[?2004h[jenkins@releng-63164-422-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-10T00:46:21.207886" elapsed="0.352359"/>
</kw>
<msg time="2026-10-10T00:46:21.560317" 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-10T00:46:21.207515" elapsed="0.352881"/>
</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-10T00:46:21.206174" elapsed="0.354327"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-10T00:46:21.561016" level="INFO">Executing command '/usr/local/bin/cbench -c 10.30.171.91 -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633'.</msg>
<msg time="2026-10-10T00:56:27.704281" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-10-10T00:56:27.704819" level="INFO">${stdout} = </msg>
<msg time="2026-10-10T00:56:27.704915" level="INFO">${stderr} = cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.171.91: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-10T00:46:21.560739" elapsed="606.144243"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-10-10T00:56:27.705499" elapsed="0.000953"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T00:56:27.707734" level="INFO">cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.171.91: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.91. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
00:47:26.795 16  switches: flows:  95159 95521 98594 94968 95643 96351 97269 99463 93040 94807 97532 95611 94431 94669 95062 94653  total = 25.546217 per ms 
00:48:26.895 16  switches: flows:  99497 98993 100477 97677 97031 98718 100698 100521 96203 98677 97788 98286 98515 98544 98201 95717  total = 26.215256 per ms 
00:49:26.996 16  switches: flows:  96134 95986 96696 94463 96396 95518 97391 98323 94763 95317 96461 95931 95881 94722 95686 93030  total = 25.502408 per ms 
00:50:27.097 16  switches: flows:  97263 95840 97508 96581 95658 96599 98231 98173 93773 95609 95820 95418 97098 95849 96464 93001  total = 25.605362 per ms 
00:51:27.197 16  switches: flows:  99716 99072 102175 99873 101033 99474 100496 101334 98581 98991 99678 99084 100013 98689 99223 97830  total = 26.543412 per ms 
00:52:27.298 16  switches: flows:  98761 97461 98571 97404 98388 99152 99276 98524 96100 98417 97460 96457 97686 96876 97276 95525  total = 26.012164 per ms 
00:53:27.398 16  switches: flows:  100655 98695 99148 97143 97331 98479 100359 101108 95002 99277 98180 97488 98571 96665 96740 95825  total = 26.134159 per ms 
00:54:27.499 16  switches: flows:  99809 96898 98175 97326 96758 99579 99480 100437 95702 97631 97606 96940 97828 97132 95966 94232  total = 25.981631 per ms 
00:55:27.600 16  switches: flows:  99736 96649 99363 96093 96622 96934 98932 100336 95045 97071 96527 98197 99134 98306 97261 94508  total = 25.968540 per ms 
00:56:27.700 16  switches: flows:  98708 96371 98564 94331 97045 97343 99033 99714 96706 96633 95533 97522 98743 98726 96799 94224  total = 25.890053 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 25502.41/26543.41/25983.66/8666.19 responses/s</msg>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-10T00:56:27.706960" elapsed="0.001112"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="PASS" start="2026-10-10T00:56:27.708536" elapsed="0.000098"/>
</return>
<status status="PASS" start="2026-10-10T00:56:27.708262" elapsed="0.000449"/>
</branch>
<status status="PASS" start="2026-10-10T00:56:27.708204" elapsed="0.000578"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="NOT RUN" start="2026-10-10T00:56:27.708979" elapsed="0.000055"/>
</return>
<status status="NOT RUN" start="2026-10-10T00:56:27.708906" elapsed="0.000184"/>
</branch>
<status status="NOT RUN" start="2026-10-10T00:56:27.708875" elapsed="0.000258"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-10-10T00:56:27.709199" elapsed="0.000026"/>
</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-10T00:56:27.710814" elapsed="0.000711"/>
</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-10T00:56:27.711917" elapsed="0.000364"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-10-10T00:56:27.712559" elapsed="0.000217"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-10-10T00:56:27.709878" elapsed="0.003005"/>
</kw>
<msg time="2026-10-10T00:56:27.713139" level="INFO">${output} = cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.171.91: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-10T00:46:21.203400" elapsed="606.509794"/>
</kw>
<status status="PASS" start="2026-10-10T00:46:21.203106" elapsed="606.510184"/>
</branch>
<status status="PASS" start="2026-10-10T00:46:21.202746" elapsed="606.510591"/>
</if>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T00:56:27.714364" level="INFO">cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.171.91: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.91. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
00:47:26.795 16  switches: flows:  95159 95521 98594 94968 95643 96351 97269 99463 93040 94807 97532 95611 94431 94669 95062 94653  total = 25.546217 per ms 
00:48:26.895 16  switches: flows:  99497 98993 100477 97677 97031 98718 100698 100521 96203 98677 97788 98286 98515 98544 98201 95717  total = 26.215256 per ms 
00:49:26.996 16  switches: flows:  96134 95986 96696 94463 96396 95518 97391 98323 94763 95317 96461 95931 95881 94722 95686 93030  total = 25.502408 per ms 
00:50:27.097 16  switches: flows:  97263 95840 97508 96581 95658 96599 98231 98173 93773 95609 95820 95418 97098 95849 96464 93001  total = 25.605362 per ms 
00:51:27.197 16  switches: flows:  99716 99072 102175 99873 101033 99474 100496 101334 98581 98991 99678 99084 100013 98689 99223 97830  total = 26.543412 per ms 
00:52:27.298 16  switches: flows:  98761 97461 98571 97404 98388 99152 99276 98524 96100 98417 97460 96457 97686 96876 97276 95525  total = 26.012164 per ms 
00:53:27.398 16  switches: flows:  100655 98695 99148 97143 97331 98479 100359 101108 95002 99277 98180 97488 98571 96665 96740 95825  total = 26.134159 per ms 
00:54:27.499 16  switches: flows:  99809 96898 98175 97326 96758 99579 99480 100437 95702 97631 97606 96940 97828 97132 95966 94232  total = 25.981631 per ms 
00:55:27.600 16  switches: flows:  99736 96649 99363 96093 96622 96934 98932 100336 95045 97071 96527 98197 99134 98306 97261 94508  total = 25.968540 per ms 
00:56:27.700 16  switches: flows:  98708 96371 98564 94331 97045 97343 99033 99714 96706 96633 95533 97522 98743 98726 96799 94224  total = 25.890053 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 25502.41/26543.41/25983.66/8666.19 responses/s</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-10T00:56:27.713729" elapsed="0.000783"/>
</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-10T00:56:27.714876" elapsed="0.000749"/>
</kw>
<kw name="Get Lines Containing String" owner="String">
<msg time="2026-10-10T00:56:27.716456" level="INFO">1 out of 23 lines matched.</msg>
<msg time="2026-10-10T00:56:27.716638" level="INFO">${result_line} = RESULT: 16 switches 9 tests min/max/avg/stdev = 25502.41/26543.41/25983.66/8666.19 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-10T00:56:27.716040" elapsed="0.000647"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-10-10T00:56:27.717562" level="INFO">@{results_list} = [ RESULT: | 16 | switches | 9 | tests | min/max/avg/stdev | = | 25502.41/26543.41/25983.66/8666.19 | 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-10T00:56:27.717089" elapsed="0.000528"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T00:56:27.718810" 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-10T00:56:27.718073" elapsed="0.000850"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T00:56:27.720078" level="INFO">25502.41/26543.41/25983.66/8666.19</msg>
<arg>${results_list[7]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-10T00:56:27.719352" elapsed="0.000837"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-10-10T00:56:27.721195" 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-10T00:56:27.720526" elapsed="0.000724"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-10-10T00:56:27.722336" level="INFO">@{result_value_list} = [ 25502.41 | 26543.41 | 25983.66 | 8666.19 ]</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-10T00:56:27.721658" elapsed="0.000733"/>
</kw>
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-10-10T00:56:27.723375" level="INFO">Length is 4.</msg>
<msg time="2026-10-10T00:56:27.723548" 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-10T00:56:27.722720" elapsed="0.000876"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T00:56:27.725444" level="INFO">min :: 25502.41</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-10T00:56:27.724498" elapsed="0.001058"/>
</kw>
<var name="${i}">0</var>
<status status="PASS" start="2026-10-10T00:56:27.724122" elapsed="0.001501"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T00:56:27.727195" level="INFO">max :: 26543.41</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-10T00:56:27.726217" elapsed="0.001089"/>
</kw>
<var name="${i}">1</var>
<status status="PASS" start="2026-10-10T00:56:27.725824" elapsed="0.001548"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T00:56:27.728858" level="INFO">avg :: 25983.66</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-10T00:56:27.727933" elapsed="0.001036"/>
</kw>
<var name="${i}">2</var>
<status status="PASS" start="2026-10-10T00:56:27.727545" elapsed="0.001520"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T00:56:27.730535" level="INFO">stdev :: 8666.19</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-10T00:56:27.729609" elapsed="0.001036"/>
</kw>
<var name="${i}">3</var>
<status status="PASS" start="2026-10-10T00:56:27.729245" elapsed="0.001467"/>
</iter>
<var>${i}</var>
<value>0</value>
<value>${num_stats}</value>
<status status="PASS" start="2026-10-10T00:56:27.723728" elapsed="0.007070"/>
</for>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-10T00:56:27.732058" level="INFO">${min} = 25502.41</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-10T00:56:27.731167" elapsed="0.000946"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-10T00:56:27.733303" level="INFO">${max} = 26543.41</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-10T00:56:27.732442" elapsed="0.000914"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-10T00:56:27.734544" level="INFO">${average} = 25983.66</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-10T00:56:27.733680" elapsed="0.000917"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-10T00:56:27.735829" level="INFO">${stdev} = 8666.19</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-10T00:56:27.734939" elapsed="0.000943"/>
</kw>
<kw name="Get Time" owner="BuiltIn">
<msg time="2026-10-10T00:56:27.737083" level="INFO">${date} = 2026-10-10 00:56:27</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-10T00:56:27.736320" elapsed="0.000817"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T00:56:27.738300" level="INFO">CBench Result: 2026-10-10 00:56:27,-m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633,25502.41,26543.41,25983.66,8666.19</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-10T00:56:27.737540" elapsed="0.000870"/>
</kw>
<kw name="Log Results And Determine Status">
<kw name="Append To File" owner="OperatingSystem">
<msg time="2026-10-10T00:56:27.740645" level="INFO" html="true">Appended to file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-cbench-only-vanadium/latency.csv"&gt;/w/workspace/openflowplugin-csit-1node-cbench-only-vanadium/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-10T00:56:27.739586" elapsed="0.001217"/>
</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-10T00:56:27.741194" elapsed="0.000894"/>
</kw>
<arg>${min}</arg>
<arg>${max}</arg>
<arg>${average}</arg>
<arg>${average_threshold}</arg>
<arg>${output_filename}</arg>
<status status="PASS" start="2026-10-10T00:56:27.738674" elapsed="0.003546"/>
</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-10T00:46:21.201806" elapsed="606.540531"/>
</kw>
<kw name="Sleep" owner="BuiltIn">
<msg time="2026-10-10T00:56:27.743364" level="INFO">Slept 0 seconds.</msg>
<arg>${test_delay}</arg>
<doc>Pauses execution for the given time.</doc>
<status status="PASS" start="2026-10-10T00:56:27.742656" elapsed="0.000824"/>
</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-10T00:56:27.744733" elapsed="0.000624"/>
</kw>
<status status="PASS" start="2026-10-10T00:56:27.743939" elapsed="0.001561"/>
</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-10T00:46:21.199858" elapsed="606.545715"/>
</test>
<test id="s1-t2" name="Cbench Throughput Test" line="51">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T00:56:27.748405" 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-10T00:56:27.747571" elapsed="0.000949"/>
</kw>
<kw name="Run Cbench And Log Results">
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-10-10T00:56:27.750392" 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-10T00:56:27.749960" elapsed="0.000486"/>
</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-10T00:56:27.751107" elapsed="0.000033"/>
</kw>
<status status="NOT RUN" start="2026-10-10T00:56:27.750534" elapsed="0.000657"/>
</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-10T00:56:27.752654" elapsed="0.000027"/>
</kw>
<status status="NOT RUN" start="2026-10-10T00:56:27.752352" elapsed="0.000372"/>
</branch>
<status status="PASS" start="2026-10-10T00:56:27.752327" elapsed="0.000445"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-10-10T00:56:27.753306" 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-10T00:56:27.753452" 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-10T00:56:27.753058" elapsed="0.000428"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T00:56:27.754233" level="INFO">Attempting to execute command "/usr/local/bin/cbench -c 10.30.171.91 -t -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633" on remote system "10.30.170.199" 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-10T00:56:27.753753" elapsed="0.000552"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-10-10T00:56:27.755075" 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-10T00:56:27.754526" elapsed="0.000598"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-10-10T00:56:27.756327" level="INFO">Length is 0.</msg>
<msg time="2026-10-10T00:56:27.756437" 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-10T00:56:27.755923" elapsed="0.000544"/>
</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-10T00:56:27.756649" elapsed="0.000437"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-10-10T00:56:27.758203" level="INFO">Logging into '10.30.170.199:22' as 'jenkins'.</msg>
<msg time="2026-10-10T00:56:28.337698" 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 Sat Oct 10 00:56:27 UTC 2026

  System load:  1.0                Processes:             104
  Usage of /:   19.8% of 38.58GB   Users logged in:       0
  Memory usage: 4%                 IPv4 address for ens3: 10.30.170.199
  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: Sat Oct 10 00:46:21 2026 from 10.30.171.119
[?2004h[jenkins@releng-63164-422-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-10T00:56:27.757794" elapsed="0.580135"/>
</kw>
<msg time="2026-10-10T00:56:28.338051" 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-10T00:56:27.757293" elapsed="0.580867"/>
</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-10T00:56:27.755427" elapsed="0.582870"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-10T00:56:28.338978" level="INFO">Executing command '/usr/local/bin/cbench -c 10.30.171.91 -t -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633'.</msg>
<msg time="2026-10-10T01:06:34.431580" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-10-10T01:06:34.432275" level="INFO">${stdout} = </msg>
<msg time="2026-10-10T01:06:34.432373" level="INFO">${stderr} = cbench: controller benchmarking tool
   running in mode 'throughput'
   connecting to controller at 10.30.171.91: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-10T00:56:28.338622" elapsed="606.093817"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-10-10T01:06:34.432951" elapsed="0.000709"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T01:06:34.434858" level="INFO">cbench: controller benchmarking tool
   running in mode 'throughput'
   connecting to controller at 10.30.171.91: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.91. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
00:57:33.462 16  switches: flows:  582359 587766 590115 590282 590253 598084 589985 595727 599204 579619 587408 584055 593871 589542 592222 589551  total = 157.334050 per ms 
00:58:33.563 16  switches: flows:  629563 635600 630419 641237 637733 634630 626276 625828 634246 640197 632977 641554 635335 638249 627802 626787  total = 168.690082 per ms 
00:59:33.696 16  switches: flows:  628613 633666 636666 637911 639919 640824 631819 636952 638625 630248 633151 632544 632170 642493 638087 637763  total = 169.152488 per ms 
01:00:33.797 16  switches: flows:  636497 634390 631641 636135 630979 631327 634597 637724 638699 629635 631912 642974 633767 631361 624570 639794  total = 168.816972 per ms 
01:01:33.898 16  switches: flows:  621917 629270 630999 634110 631459 630263 625394 631851 635045 632262 628956 637445 627972 623597 637015 630856  total = 167.858388 per ms 
01:02:34.006 16  switches: flows:  653562 661881 658931 665229 659000 654654 661705 648514 659291 661938 659692 666452 657141 656107 660573 658175  total = 175.400806 per ms 
01:03:34.108 16  switches: flows:  671968 677013 675807 681439 667130 672006 679725 678892 678537 678450 675516 682950 666538 668738 669548 674758  total = 179.680588 per ms 
01:04:34.210 16  switches: flows:  640535 627332 632934 626400 637935 638614 635607 636402 646403 631635 633657 631563 631140 628814 636677 640611  total = 168.985800 per ms 
01:05:34.312 16  switches: flows:  649373 648936 646531 656568 651905 648806 639405 647110 649978 652811 645030 653927 648608 647107 649422 655080  total = 172.884704 per ms 
01:06:34.413 16  switches: flows:  658282 667036 664557 661981 657873 653831 662419 659198 668698 663831 661552 661260 663511 661031 660502 663131  total = 176.181609 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 167858.39/179680.59/171961.27/57460.06 responses/s</msg>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-10T01:06:34.434144" elapsed="0.001047"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="PASS" start="2026-10-10T01:06:34.435613" elapsed="0.000092"/>
</return>
<status status="PASS" start="2026-10-10T01:06:34.435353" elapsed="0.000425"/>
</branch>
<status status="PASS" start="2026-10-10T01:06:34.435307" elapsed="0.000522"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="NOT RUN" start="2026-10-10T01:06:34.436066" elapsed="0.000027"/>
</return>
<status status="NOT RUN" start="2026-10-10T01:06:34.435963" elapsed="0.000186"/>
</branch>
<status status="NOT RUN" start="2026-10-10T01:06:34.435912" elapsed="0.000280"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-10-10T01:06:34.436271" elapsed="0.000028"/>
</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-10T01:06:34.437828" elapsed="0.000702"/>
</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-10T01:06:34.438902" elapsed="0.000376"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-10-10T01:06:34.439556" elapsed="0.000209"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-10-10T01:06:34.436891" elapsed="0.002981"/>
</kw>
<msg time="2026-10-10T01:06:34.440148" level="INFO">${output} = cbench: controller benchmarking tool
   running in mode 'throughput'
   connecting to controller at 10.30.171.91: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-10T00:56:27.751625" elapsed="606.688578"/>
</kw>
<status status="PASS" start="2026-10-10T00:56:27.751224" elapsed="606.689076"/>
</branch>
<status status="PASS" start="2026-10-10T00:56:27.750509" elapsed="606.689837"/>
</if>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T01:06:34.441375" level="INFO">cbench: controller benchmarking tool
   running in mode 'throughput'
   connecting to controller at 10.30.171.91: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.91. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
00:57:33.462 16  switches: flows:  582359 587766 590115 590282 590253 598084 589985 595727 599204 579619 587408 584055 593871 589542 592222 589551  total = 157.334050 per ms 
00:58:33.563 16  switches: flows:  629563 635600 630419 641237 637733 634630 626276 625828 634246 640197 632977 641554 635335 638249 627802 626787  total = 168.690082 per ms 
00:59:33.696 16  switches: flows:  628613 633666 636666 637911 639919 640824 631819 636952 638625 630248 633151 632544 632170 642493 638087 637763  total = 169.152488 per ms 
01:00:33.797 16  switches: flows:  636497 634390 631641 636135 630979 631327 634597 637724 638699 629635 631912 642974 633767 631361 624570 639794  total = 168.816972 per ms 
01:01:33.898 16  switches: flows:  621917 629270 630999 634110 631459 630263 625394 631851 635045 632262 628956 637445 627972 623597 637015 630856  total = 167.858388 per ms 
01:02:34.006 16  switches: flows:  653562 661881 658931 665229 659000 654654 661705 648514 659291 661938 659692 666452 657141 656107 660573 658175  total = 175.400806 per ms 
01:03:34.108 16  switches: flows:  671968 677013 675807 681439 667130 672006 679725 678892 678537 678450 675516 682950 666538 668738 669548 674758  total = 179.680588 per ms 
01:04:34.210 16  switches: flows:  640535 627332 632934 626400 637935 638614 635607 636402 646403 631635 633657 631563 631140 628814 636677 640611  total = 168.985800 per ms 
01:05:34.312 16  switches: flows:  649373 648936 646531 656568 651905 648806 639405 647110 649978 652811 645030 653927 648608 647107 649422 655080  total = 172.884704 per ms 
01:06:34.413 16  switches: flows:  658282 667036 664557 661981 657873 653831 662419 659198 668698 663831 661552 661260 663511 661031 660502 663131  total = 176.181609 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 167858.39/179680.59/171961.27/57460.06 responses/s</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-10T01:06:34.440738" elapsed="0.000790"/>
</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-10T01:06:34.441872" elapsed="0.000752"/>
</kw>
<kw name="Get Lines Containing String" owner="String">
<msg time="2026-10-10T01:06:34.443435" level="INFO">1 out of 23 lines matched.</msg>
<msg time="2026-10-10T01:06:34.443610" level="INFO">${result_line} = RESULT: 16 switches 9 tests min/max/avg/stdev = 167858.39/179680.59/171961.27/57460.06 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-10T01:06:34.443036" elapsed="0.000623"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-10-10T01:06:34.444527" level="INFO">@{results_list} = [ RESULT: | 16 | switches | 9 | tests | min/max/avg/stdev | = | 167858.39/179680.59/171961.27/57460.06 | 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-10T01:06:34.444050" elapsed="0.000533"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T01:06:34.445723" 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-10T01:06:34.445046" elapsed="0.000787"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T01:06:34.447022" level="INFO">167858.39/179680.59/171961.27/57460.06</msg>
<arg>${results_list[7]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-10T01:06:34.446301" elapsed="0.000835"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-10-10T01:06:34.448149" 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-10T01:06:34.447469" elapsed="0.000734"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-10-10T01:06:34.449274" level="INFO">@{result_value_list} = [ 167858.39 | 179680.59 | 171961.27 | 57460.06 ]</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-10T01:06:34.448611" elapsed="0.000719"/>
</kw>
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-10-10T01:06:34.450305" level="INFO">Length is 4.</msg>
<msg time="2026-10-10T01:06:34.450475" 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-10T01:06:34.449656" elapsed="0.000867"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T01:06:34.452403" level="INFO">min :: 167858.39</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-10T01:06:34.451467" elapsed="0.001045"/>
</kw>
<var name="${i}">0</var>
<status status="PASS" start="2026-10-10T01:06:34.451019" elapsed="0.001559"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T01:06:34.454084" level="INFO">max :: 179680.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-10T01:06:34.453163" elapsed="0.001031"/>
</kw>
<var name="${i}">1</var>
<status status="PASS" start="2026-10-10T01:06:34.452750" elapsed="0.001510"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T01:06:34.455706" level="INFO">avg :: 171961.27</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-10T01:06:34.454788" elapsed="0.001027"/>
</kw>
<var name="${i}">2</var>
<status status="PASS" start="2026-10-10T01:06:34.454430" elapsed="0.001450"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T01:06:34.457410" level="INFO">stdev :: 57460.06</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-10T01:06:34.456473" elapsed="0.001045"/>
</kw>
<var name="${i}">3</var>
<status status="PASS" start="2026-10-10T01:06:34.456108" elapsed="0.001476"/>
</iter>
<var>${i}</var>
<value>0</value>
<value>${num_stats}</value>
<status status="PASS" start="2026-10-10T01:06:34.450642" elapsed="0.007002"/>
</for>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-10T01:06:34.458850" level="INFO">${min} = 167858.39</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-10T01:06:34.458031" elapsed="0.000872"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-10T01:06:34.460145" level="INFO">${max} = 179680.59</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-10T01:06:34.459282" elapsed="0.000916"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-10T01:06:34.461400" level="INFO">${average} = 171961.27</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-10T01:06:34.460527" elapsed="0.000925"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-10T01:06:34.462654" level="INFO">${stdev} = 57460.06</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-10T01:06:34.461776" elapsed="0.000931"/>
</kw>
<kw name="Get Time" owner="BuiltIn">
<msg time="2026-10-10T01:06:34.463864" level="INFO">${date} = 2026-10-10 01:06:34</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-10T01:06:34.463160" elapsed="0.000777"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T01:06:34.465145" level="INFO">CBench Result: 2026-10-10 01:06:34,-t -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633,167858.39,179680.59,171961.27,57460.06</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-10T01:06:34.464371" elapsed="0.000887"/>
</kw>
<kw name="Log Results And Determine Status">
<kw name="Append To File" owner="OperatingSystem">
<msg time="2026-10-10T01:06:34.467297" level="INFO" html="true">Appended to file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-cbench-only-vanadium/throughput.csv"&gt;/w/workspace/openflowplugin-csit-1node-cbench-only-vanadium/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-10T01:06:34.466539" elapsed="0.000892"/>
</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-10T01:06:34.467815" elapsed="0.001350"/>
</kw>
<arg>${min}</arg>
<arg>${max}</arg>
<arg>${average}</arg>
<arg>${average_threshold}</arg>
<arg>${output_filename}</arg>
<status status="PASS" start="2026-10-10T01:06:34.465515" elapsed="0.003812"/>
</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-10T00:56:27.749192" elapsed="606.720255"/>
</kw>
<kw name="Sleep" owner="BuiltIn">
<msg time="2026-10-10T01:06:34.470451" level="INFO">Slept 0 seconds.</msg>
<arg>${test_delay}</arg>
<doc>Pauses execution for the given time.</doc>
<status status="PASS" start="2026-10-10T01:06:34.469762" elapsed="0.000802"/>
</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-10T01:06:34.471700" elapsed="0.000598"/>
</kw>
<status status="PASS" start="2026-10-10T01:06:34.471058" elapsed="0.001382"/>
</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-10T00:56:27.746251" elapsed="606.726261"/>
</test>
<test id="s1-t3" name="Rerun Latency Test To Check Bug 6176" line="65">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T01:06:34.474857" 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-10T01:06:34.474428" elapsed="0.000734"/>
</kw>
<kw name="Run Cbench And Log Results">
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-10-10T01:06:34.476657" 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-10T01:06:34.476244" elapsed="0.000467"/>
</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-10T01:06:34.477188" elapsed="0.000028"/>
</kw>
<status status="NOT RUN" start="2026-10-10T01:06:34.476868" elapsed="0.000394"/>
</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-10T01:06:34.478698" elapsed="0.000027"/>
</kw>
<status status="NOT RUN" start="2026-10-10T01:06:34.478404" elapsed="0.000364"/>
</branch>
<status status="PASS" start="2026-10-10T01:06:34.478380" elapsed="0.000418"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-10-10T01:06:34.479315" 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-10T01:06:34.479460" 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-10T01:06:34.479089" elapsed="0.000406"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T01:06:34.480246" level="INFO">Attempting to execute command "/usr/local/bin/cbench -c 10.30.171.91 -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633" on remote system "10.30.170.199" 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-10T01:06:34.479733" elapsed="0.000588"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-10-10T01:06:34.481020" 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-10T01:06:34.480545" elapsed="0.000511"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-10-10T01:06:34.482223" level="INFO">Length is 0.</msg>
<msg time="2026-10-10T01:06:34.482332" 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-10T01:06:34.481780" elapsed="0.000584"/>
</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-10T01:06:34.482548" elapsed="0.000428"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-10-10T01:06:34.484110" level="INFO">Logging into '10.30.170.199:22' as 'jenkins'.</msg>
<msg time="2026-10-10T01:06:35.100697" 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 Sat Oct 10 01:06:34 UTC 2026

  System load:  0.41               Processes:             106
  Usage of /:   19.8% of 38.58GB   Users logged in:       0
  Memory usage: 4%                 IPv4 address for ens3: 10.30.170.199
  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: Sat Oct 10 00:56:28 2026 from 10.30.171.119
[?2004h[jenkins@releng-63164-422-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-10T01:06:34.483690" elapsed="0.617288"/>
</kw>
<msg time="2026-10-10T01:06:35.101112" 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-10T01:06:34.483200" elapsed="0.618015"/>
</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-10T01:06:34.481305" elapsed="0.620064"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-10T01:06:35.102140" level="INFO">Executing command '/usr/local/bin/cbench -c 10.30.171.91 -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633'.</msg>
<msg time="2026-10-10T01:16:41.167542" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-10-10T01:16:41.168269" level="INFO">${stdout} = </msg>
<msg time="2026-10-10T01:16:41.168364" level="INFO">${stderr} = cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.171.91: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-10T01:06:35.101719" elapsed="606.066710"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-10-10T01:16:41.168971" elapsed="0.000702"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T01:16:41.170898" level="INFO">cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.171.91: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.91. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
01:07:40.239 16  switches: flows:  95704 98844 97146 103076 97181 95750 110411 107494 95731 96755 96513 109481 95764 95839 95945 95332  total = 26.449433 per ms 
01:08:40.339 16  switches: flows:  92926 95639 95283 97398 94423 92200 95039 94588 94401 92512 95454 90254 94118 93787 93005 93414  total = 25.032235 per ms 
01:09:40.439 16  switches: flows:  93982 95970 95190 97014 95782 92879 94567 96294 93214 93957 93992 92289 93277 94077 92995 93647  total = 25.110182 per ms 
01:10:40.539 16  switches: flows:  93791 96772 94915 96999 96447 93255 96157 94948 96121 93004 96360 92415 92813 94585 94020 92999  total = 25.217925 per ms 
01:11:40.640 16  switches: flows:  95302 97305 96976 98444 96902 96568 97198 95855 94154 92954 96079 92135 92832 94208 92972 93344  total = 25.344838 per ms 
01:12:40.740 16  switches: flows:  95471 96549 95713 98134 97330 99351 96978 95188 94009 93205 95220 92349 93720 93142 91428 93682  total = 25.315525 per ms 
01:13:40.842 16  switches: flows:  96473 98922 97319 98777 96601 95950 97831 97078 95311 94641 95737 93125 93450 94758 94663 94097  total = 25.536221 per ms 
01:14:40.943 16  switches: flows:  94093 97571 95245 98160 96370 96086 95749 94996 94166 94977 94859 91198 92078 92896 93453 91808  total = 25.186379 per ms 
01:15:41.044 16  switches: flows:  95541 96851 96826 97672 97094 95855 96961 95292 94848 93335 95286 93445 92733 92630 94796 92834  total = 25.324384 per ms 
01:16:41.145 16  switches: flows:  93895 95533 95334 96833 95991 94328 93667 94273 92852 90701 93099 91979 90148 90154 93596 89699  total = 24.826597 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 24826.60/25536.22/25210.48/8405.73 responses/s</msg>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-10T01:16:41.170168" elapsed="0.001085"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="PASS" start="2026-10-10T01:16:41.171702" elapsed="0.000093"/>
</return>
<status status="PASS" start="2026-10-10T01:16:41.171419" elapsed="0.000450"/>
</branch>
<status status="PASS" start="2026-10-10T01:16:41.171372" elapsed="0.000547"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="NOT RUN" start="2026-10-10T01:16:41.172134" elapsed="0.000024"/>
</return>
<status status="NOT RUN" start="2026-10-10T01:16:41.172063" elapsed="0.000150"/>
</branch>
<status status="NOT RUN" start="2026-10-10T01:16:41.172029" elapsed="0.000226"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-10-10T01:16:41.172332" 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-10T01:16:41.173941" elapsed="0.000713"/>
</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-10T01:16:41.175056" elapsed="0.000314"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-10-10T01:16:41.175669" elapsed="0.000246"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-10-10T01:16:41.173020" elapsed="0.003034"/>
</kw>
<msg time="2026-10-10T01:16:41.176277" level="INFO">${output} = cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.171.91: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-10T01:06:34.477694" elapsed="606.698636"/>
</kw>
<status status="PASS" start="2026-10-10T01:06:34.477295" elapsed="606.699129"/>
</branch>
<status status="PASS" start="2026-10-10T01:06:34.476841" elapsed="606.699629"/>
</if>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T01:16:41.177480" level="INFO">cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.171.91: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.91. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
01:07:40.239 16  switches: flows:  95704 98844 97146 103076 97181 95750 110411 107494 95731 96755 96513 109481 95764 95839 95945 95332  total = 26.449433 per ms 
01:08:40.339 16  switches: flows:  92926 95639 95283 97398 94423 92200 95039 94588 94401 92512 95454 90254 94118 93787 93005 93414  total = 25.032235 per ms 
01:09:40.439 16  switches: flows:  93982 95970 95190 97014 95782 92879 94567 96294 93214 93957 93992 92289 93277 94077 92995 93647  total = 25.110182 per ms 
01:10:40.539 16  switches: flows:  93791 96772 94915 96999 96447 93255 96157 94948 96121 93004 96360 92415 92813 94585 94020 92999  total = 25.217925 per ms 
01:11:40.640 16  switches: flows:  95302 97305 96976 98444 96902 96568 97198 95855 94154 92954 96079 92135 92832 94208 92972 93344  total = 25.344838 per ms 
01:12:40.740 16  switches: flows:  95471 96549 95713 98134 97330 99351 96978 95188 94009 93205 95220 92349 93720 93142 91428 93682  total = 25.315525 per ms 
01:13:40.842 16  switches: flows:  96473 98922 97319 98777 96601 95950 97831 97078 95311 94641 95737 93125 93450 94758 94663 94097  total = 25.536221 per ms 
01:14:40.943 16  switches: flows:  94093 97571 95245 98160 96370 96086 95749 94996 94166 94977 94859 91198 92078 92896 93453 91808  total = 25.186379 per ms 
01:15:41.044 16  switches: flows:  95541 96851 96826 97672 97094 95855 96961 95292 94848 93335 95286 93445 92733 92630 94796 92834  total = 25.324384 per ms 
01:16:41.145 16  switches: flows:  93895 95533 95334 96833 95991 94328 93667 94273 92852 90701 93099 91979 90148 90154 93596 89699  total = 24.826597 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 24826.60/25536.22/25210.48/8405.73 responses/s</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-10T01:16:41.176878" elapsed="0.000776"/>
</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-10T01:16:41.178020" elapsed="0.000731"/>
</kw>
<kw name="Get Lines Containing String" owner="String">
<msg time="2026-10-10T01:16:41.179582" level="INFO">1 out of 23 lines matched.</msg>
<msg time="2026-10-10T01:16:41.179788" level="INFO">${result_line} = RESULT: 16 switches 9 tests min/max/avg/stdev = 24826.60/25536.22/25210.48/8405.73 responses/s</msg>
<var>${result_line}</var>
<arg>${output}</arg>
<arg>RESULT</arg>
<doc>Returns lines of the given `string` that contain the `pattern`.</doc>
<status status="PASS" start="2026-10-10T01:16:41.179151" elapsed="0.000687"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-10-10T01:16:41.180695" level="INFO">@{results_list} = [ RESULT: | 16 | switches | 9 | tests | min/max/avg/stdev | = | 24826.60/25536.22/25210.48/8405.73 | responses/s ]</msg>
<var>@{results_list}</var>
<arg>${result_line}</arg>
<doc>Splits the `string` using `separator` as a delimiter string.</doc>
<status status="PASS" start="2026-10-10T01:16:41.180212" elapsed="0.000541"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T01:16:41.181897" 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-10T01:16:41.181183" elapsed="0.000855"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T01:16:41.183149" level="INFO">24826.60/25536.22/25210.48/8405.73</msg>
<arg>${results_list[7]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-10T01:16:41.182434" elapsed="0.000827"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-10-10T01:16:41.184261" 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-10T01:16:41.183618" elapsed="0.000697"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-10-10T01:16:41.185386" level="INFO">@{result_value_list} = [ 24826.60 | 25536.22 | 25210.48 | 8405.73 ]</msg>
<var>@{result_value_list}</var>
<arg>${results_list[7]}</arg>
<arg>/</arg>
<doc>Splits the `string` using `separator` as a delimiter string.</doc>
<status status="PASS" start="2026-10-10T01:16:41.184743" elapsed="0.000697"/>
</kw>
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-10-10T01:16:41.186431" level="INFO">Length is 4.</msg>
<msg time="2026-10-10T01:16:41.186622" 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-10T01:16:41.185797" elapsed="0.000875"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T01:16:41.188486" level="INFO">min :: 24826.60</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-10T01:16:41.187556" elapsed="0.001060"/>
</kw>
<var name="${i}">0</var>
<status status="PASS" start="2026-10-10T01:16:41.187159" elapsed="0.001526"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T01:16:41.190165" level="INFO">max :: 25536.22</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-10T01:16:41.189246" elapsed="0.001028"/>
</kw>
<var name="${i}">1</var>
<status status="PASS" start="2026-10-10T01:16:41.188854" elapsed="0.001486"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T01:16:41.191883" level="INFO">avg :: 25210.48</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-10T01:16:41.190894" elapsed="0.001139"/>
</kw>
<var name="${i}">2</var>
<status status="PASS" start="2026-10-10T01:16:41.190507" elapsed="0.001597"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T01:16:41.193558" level="INFO">stdev :: 8405.73</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-10T01:16:41.192652" elapsed="0.001039"/>
</kw>
<var name="${i}">3</var>
<status status="PASS" start="2026-10-10T01:16:41.192268" elapsed="0.001490"/>
</iter>
<var>${i}</var>
<value>0</value>
<value>${num_stats}</value>
<status status="PASS" start="2026-10-10T01:16:41.186795" elapsed="0.007022"/>
</for>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-10T01:16:41.195083" level="INFO">${min} = 24826.60</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-10T01:16:41.194198" elapsed="0.000941"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-10T01:16:41.196364" level="INFO">${max} = 25536.22</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-10T01:16:41.195469" elapsed="0.000948"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-10T01:16:41.197657" level="INFO">${average} = 25210.48</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-10T01:16:41.196768" elapsed="0.000944"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-10T01:16:41.198899" level="INFO">${stdev} = 8405.73</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-10T01:16:41.198066" elapsed="0.000885"/>
</kw>
<kw name="Get Time" owner="BuiltIn">
<msg time="2026-10-10T01:16:41.200205" level="INFO">${date} = 2026-10-10 01:16:41</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-10T01:16:41.199432" elapsed="0.000825"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-10T01:16:41.201457" level="INFO">CBench Result: 2026-10-10 01:16:41,-m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633,24826.60,25536.22,25210.48,8405.73</msg>
<arg>CBench Result: ${date},${cbench_args},${min},${max},${average},${stdev}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-10T01:16:41.200731" elapsed="0.000835"/>
</kw>
<kw name="Log Results And Determine Status">
<kw name="Append To File" owner="OperatingSystem">
<msg time="2026-10-10T01:16:41.203566" level="INFO" html="true">Appended to file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-cbench-only-vanadium/bug.csv"&gt;/w/workspace/openflowplugin-csit-1node-cbench-only-vanadium/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-10T01:16:41.202766" elapsed="0.000969"/>
</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-10T01:16:41.204112" elapsed="0.001269"/>
</kw>
<arg>${min}</arg>
<arg>${max}</arg>
<arg>${average}</arg>
<arg>${average_threshold}</arg>
<arg>${output_filename}</arg>
<status status="PASS" start="2026-10-10T01:16:41.201850" elapsed="0.003669"/>
</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-10T01:06:34.475552" elapsed="606.730112"/>
</kw>
<kw name="Sleep" owner="BuiltIn">
<msg time="2026-10-10T01:16:41.206752" level="INFO">Slept 0 seconds.</msg>
<arg>${test_delay}</arg>
<doc>Pauses execution for the given time.</doc>
<status status="PASS" start="2026-10-10T01:16:41.205983" elapsed="0.000913"/>
</kw>
<kw name="Report Failure Due To Bug" owner="Utils" type="TEARDOWN">
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-10T01:16:41.209631" 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-10T01:16:41.208510" elapsed="0.001179"/>
</kw>
<if>
<branch type="IF" condition="('${TEST_STATUS}' != 'FAIL') or ${test_skipped}">
<return>
<status status="PASS" start="2026-10-10T01:16:41.210131" elapsed="0.000065"/>
</return>
<status status="PASS" start="2026-10-10T01:16:41.209837" elapsed="0.000426"/>
</branch>
<status status="PASS" start="2026-10-10T01:16:41.209796" elapsed="0.000504"/>
</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-10T01:16:41.210493" elapsed="0.000027"/>
</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-10T01:16:41.210715" elapsed="0.000027"/>
</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-10T01:16:41.210945" elapsed="0.000025"/>
</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-10T01:16:41.211174" 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-10T01:16:41.211672" elapsed="0.000029"/>
</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-10T01:16:41.211882" elapsed="0.000025"/>
</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-10T01:16:41.212160" elapsed="0.000027"/>
</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-10T01:16:41.212450" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-10-10T01:16:41.212266" elapsed="0.000248"/>
</branch>
<status status="NOT RUN" start="2026-10-10T01:16:41.212244" elapsed="0.000300"/>
</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-10T01:16:41.207700" elapsed="0.004924"/>
</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-10T01:06:34.473553" elapsed="606.739130"/>
</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-10T00:46:18.788072" elapsed="1822.425445"/>
</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>
