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

[?1h=[90m~[0m                                                                                [?2004hopendaylight-user</msg>
<arg>${KARAF_USER}</arg>
<arg>${KARAF_PASSWORD}</arg>
<arg>loglevel=${loglevel}</arg>
<doc>Logs into the SSH server with the given ``username`` and ``password``.</doc>
<status status="PASS" start="2026-09-26T01:09:09.766729" elapsed="0.783733"/>
</kw>
<kw name="Write" owner="SSHLibrary">
<msg time="2026-09-26T01:09:10.601086" level="INFO">@root&gt;log:set ERROR</msg>
<arg>${cmd}</arg>
<doc>Writes the given ``text`` on the remote machine and appends a newline.</doc>
<status status="PASS" start="2026-09-26T01:09:10.550769" elapsed="0.050475"/>
</kw>
<kw name="Read Until Regexp" owner="SSHLibrary">
<msg time="2026-09-26T01:09:10.603050" level="INFO">[?1l&gt;[?2004l[?1h=[90m~[0m                                                                                [?2004hopendaylight-user@root&gt;</msg>
<msg time="2026-09-26T01:09:10.603161" level="INFO">${output} = [?1l&gt;[?2004l[?1h=[90m~[0m                                                                                [?2004hopendaylight-user@root&gt;</msg>
<var>${output}</var>
<arg>${KARAF_PROMPT}</arg>
<doc>Consumes and returns the server output until a match to ``regexp`` is found.</doc>
<status status="PASS" start="2026-09-26T01:09:10.601520" elapsed="0.001669"/>
</kw>
<kw name="Write Bare" owner="SSHLibrary">
<arg>logout\n</arg>
<doc>Writes the given ``text`` on the remote machine without appending a newline.</doc>
<status status="PASS" start="2026-09-26T01:09:10.603373" elapsed="0.000273"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-09-26T01:09:10.603808" elapsed="0.000225"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-26T01:09:10.604598" level="INFO">[?1l&gt;[?2004l[?1h=[90m~[0m                                                                                [?2004hopendaylight-user@root&gt;</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-26T01:09:10.604257" elapsed="0.000392"/>
</kw>
<return>
<value>${output}</value>
<status status="PASS" start="2026-09-26T01:09:10.604698" elapsed="0.000059"/>
</return>
<arg>log:set ${log_level}</arg>
<doc>Will execute the given ${cmd} by ssh'ing to the karaf console running on 10.30.170.235
Note that this keyword will open&amp;close new SSH connection, without switching back to previously current session.</doc>
<status status="PASS" start="2026-09-26T01:09:09.764940" elapsed="0.839926"/>
</kw>
<arg>3x</arg>
<arg>1s</arg>
<arg>KarafKeywords.Issue Command On Karaf Console</arg>
<arg>log:set ${log_level}</arg>
<doc>Runs the specified keyword and retries if it fails.</doc>
<status status="PASS" start="2026-09-26T01:09:09.763145" elapsed="0.841783"/>
</kw>
<kw name="Append To File" owner="OperatingSystem">
<msg time="2026-09-26T01:09:10.605492" level="INFO" html="true">Appended to file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-cbench-only-manganese/latency.csv"&gt;/w/workspace/openflowplugin-csit-1node-cbench-only-manganese/latency.csv&lt;/a&gt;'.</msg>
<arg>${latency_results_file}</arg>
<arg>LATENCY_MIN,LATENCY_MAX,LATENCY_AVERAGE\n</arg>
<doc>Appends the given content to the specified file.</doc>
<status status="PASS" start="2026-09-26T01:09:10.605115" elapsed="0.000430"/>
</kw>
<kw name="Append To File" owner="OperatingSystem">
<msg time="2026-09-26T01:09:10.605908" level="INFO" html="true">Appended to file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-cbench-only-manganese/throughput.csv"&gt;/w/workspace/openflowplugin-csit-1node-cbench-only-manganese/throughput.csv&lt;/a&gt;'.</msg>
<arg>${throughput_results_file}</arg>
<arg>THROUGHPUT_MIN,THROUGHPUT_MAX,THROUGHPUT_AVERAGE\n</arg>
<doc>Appends the given content to the specified file.</doc>
<status status="PASS" start="2026-09-26T01:09:10.605694" elapsed="0.000266"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-09-26T01:09:10.606585" level="INFO">${duration_in_ms} = 60000</msg>
<var>${duration_in_ms}</var>
<arg>${duration_in_secs} * 1000</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-09-26T01:09:10.606126" elapsed="0.000485"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-09-26T01:09:10.607103" 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-09-26T01:09:10.606804" elapsed="0.000339"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-09-26T01:09:10.607685" level="INFO">${test_timeout} = 900.0</msg>
<var>${test_timeout}</var>
<arg>(${loops} * ${duration_in_secs}) * 1.5</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-09-26T01:09:10.607332" elapsed="0.000379"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-09-26T01:09:10.608172" 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-09-26T01:09:10.607895" elapsed="0.000316"/>
</kw>
<if>
<branch type="IF" condition="&quot;${cbench_system}&quot; == &quot;localhost&quot;">
<kw name="File Should Exist" owner="OperatingSystem">
<arg>${cbench_executable}</arg>
<doc>Fails unless the given `path` points to an existing file.</doc>
<status status="NOT RUN" start="2026-09-26T01:09:10.608520" elapsed="0.000019"/>
</kw>
<status status="NOT RUN" start="2026-09-26T01:09:10.608329" elapsed="0.000241"/>
</branch>
<branch type="ELSE">
<kw name="Verify File Exists On Remote System" owner="Utils">
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-09-26T01:09:10.610729" level="INFO">${conn_id} = 2</msg>
<var>${conn_id}</var>
<arg>${system}</arg>
<arg>prompt=${prompt}</arg>
<arg>timeout=${prompt_timeout}</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-09-26T01:09:10.610387" elapsed="0.000370"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-09-26T01:09:10.611848" level="INFO">Length is 0.</msg>
<msg time="2026-09-26T01:09:10.611925" level="INFO">${pwd_length} = 0</msg>
<var>${pwd_length}</var>
<arg>${password}</arg>
<doc>Returns and logs the length of the given item as an integer.</doc>
<status status="PASS" start="2026-09-26T01:09:10.611272" elapsed="0.000676"/>
</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-09-26T01:09:10.612085" elapsed="0.000346"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-09-26T01:09:10.613180" level="INFO">Logging into '10.30.170.176:22' as 'jenkins'.</msg>
<msg time="2026-09-26T01:09:11.096305" 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 Sep 26 01:08:41 UTC 2026

  System load:  0.48               Processes:             112
  Usage of /:   19.8% of 38.58GB   Users logged in:       0
  Memory usage: 4%                 IPv4 address for ens3: 10.30.170.176
  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-50965-54-1-mininet-ovs-217-0 ~]&gt;</msg>
<arg>${user}</arg>
<arg>${USER_HOME}/.ssh/${SSH_KEY}</arg>
<arg>${KEYFILE_PASS}</arg>
<arg>delay=${delay}</arg>
<doc>Logs into the SSH server using key-based authentication.</doc>
<status status="PASS" start="2026-09-26T01:09:10.612938" elapsed="0.483532"/>
</kw>
<msg time="2026-09-26T01:09:11.096565" level="INFO">Returning from the enclosing user keyword.</msg>
<arg>SSHLibrary.Login With Public Key</arg>
<arg>${user}</arg>
<arg>${USER_HOME}/.ssh/${SSH_KEY}</arg>
<arg>${KEYFILE_PASS}</arg>
<arg>delay=${delay}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-09-26T01:09:10.612582" elapsed="0.484084"/>
</kw>
<arg>${user}</arg>
<arg>${password}</arg>
<doc>On active SSH session: if given non-empty password, do Login, else do Login With Public Key.</doc>
<status status="PASS" start="2026-09-26T01:09:10.610942" elapsed="0.485845"/>
</kw>
<kw name="File Should Exist" owner="SSHLibrary">
<msg time="2026-09-26T01:09:11.107629" level="INFO">[chan 1] Opened sftp connection (server version 3)</msg>
<arg>${file}</arg>
<doc>Fails if the given ``path`` does NOT point to an existing file.</doc>
<status status="PASS" start="2026-09-26T01:09:11.097003" elapsed="0.012928"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-09-26T01:09:11.110178" elapsed="0.000432"/>
</kw>
<arg>${cbench_system}</arg>
<arg>${cbench_executable}</arg>
<doc>Will create connection with public key and will PASS if the given ${file} exists,
otherwise will FAIL</doc>
<status status="PASS" start="2026-09-26T01:09:10.609905" elapsed="0.500801"/>
</kw>
<status status="PASS" start="2026-09-26T01:09:10.608645" elapsed="0.502108"/>
</branch>
<status status="PASS" start="2026-09-26T01:09:10.608301" elapsed="0.502498"/>
</if>
<kw name="Should Be True" owner="BuiltIn">
<arg>${loops} &gt;= 2</arg>
<arg>If number of loops is less than 2, cbench will not run</arg>
<doc>Fails if the given condition is not true.</doc>
<status status="PASS" start="2026-09-26T01:09:11.111029" elapsed="0.000656"/>
</kw>
<kw name="Verify_Feature_Is_Installed" owner="KarafKeywords">
<if>
<branch type="IF" condition="'${IS_KARAF_APPL}' == 'False'">
<return>
<value>Not A Karaf App</value>
<status status="NOT RUN" start="2026-09-26T01:09:11.114347" elapsed="0.000026"/>
</return>
<status status="NOT RUN" start="2026-09-26T01:09:11.114167" elapsed="0.000250"/>
</branch>
<status status="PASS" start="2026-09-26T01:09:11.114135" elapsed="0.000313"/>
</if>
<kw name="Issue_Command_On_Karaf_Console" owner="KarafKeywords">
<if>
<branch type="IF" condition="'${IS_KARAF_APPL}' == 'False'">
<return>
<value>Not A Karaf App</value>
<status status="NOT RUN" start="2026-09-26T01:09:11.116561" elapsed="0.000019"/>
</return>
<status status="NOT RUN" start="2026-09-26T01:09:11.116432" elapsed="0.000194"/>
</branch>
<status status="PASS" start="2026-09-26T01:09:11.116406" elapsed="0.000261"/>
</if>
<kw name="Open Connection" owner="SSHLibrary">
<arg>${controller}</arg>
<arg>port=${karaf_port}</arg>
<arg>prompt=${KARAF_PROMPT_LOGIN}</arg>
<arg>timeout=${timeout}</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-09-26T01:09:11.116888" elapsed="0.000532"/>
</kw>
<kw name="Login" owner="SSHLibrary">
<msg time="2026-09-26T01:09:11.117966" level="INFO">Logging into '10.30.170.235:8101' as 'karaf'.</msg>
<msg time="2026-09-26T01:09:11.340562" level="INFO">Read output: [33m                                                                                           
[33m    ________                       ________                .__  .__       .__     __       
[33m    \_____  \ ______   ____   ____ \______ \ _____  ___.__.|  | |__| ____ |  |___/  |_     
[33m     /   |   \\____ \_/ __ \ /    \ |    |  \\__  \&lt;   |  ||  | |  |/ ___\|  |  \   __\    
[33m    /    |    \  |_&gt; &gt;  ___/|   |  \|    `   \/ __ \\___  ||  |_|  / /_/  &gt;   Y  \  |      
[33m    \_______  /   __/ \___  &gt;___|  /_______  (____  / ____||____/__\___  /|___|  /__|      
[33m            \/|__|        \/     \/        \/     \/\/            /_____/      \/          
[33m                                                                                           

Hit '[1m&lt;tab&gt;[0m' for a list of available commands
and '[1m[cmd] --help[0m' for help on a specific command.
Hit '[1m&lt;ctrl-d&gt;[0m' or type '[1msystem:shutdown[0m' or '[1mlogout[0m' to shutdown OpenDaylight.

[?1h=[90m~[0m                                                                                [?2004hopendaylight-user</msg>
<arg>${KARAF_USER}</arg>
<arg>${KARAF_PASSWORD}</arg>
<arg>loglevel=${loglevel}</arg>
<doc>Logs into the SSH server with the given ``username`` and ``password``.</doc>
<status status="PASS" start="2026-09-26T01:09:11.117680" elapsed="0.223059"/>
</kw>
<kw name="Write" owner="SSHLibrary">
<msg time="2026-09-26T01:09:11.429997" level="INFO">@root&gt;feature:list -i | 0[C 0g[Krep odl-openflowplugin-drop-test</msg>
<arg>${cmd}</arg>
<doc>Writes the given ``text`` on the remote machine and appends a newline.</doc>
<status status="PASS" start="2026-09-26T01:09:11.341029" elapsed="0.089072"/>
</kw>
<kw name="Read Until Regexp" owner="SSHLibrary">
<msg time="2026-09-26T01:09:11.441706" level="INFO">[?1l&gt;[?2004l[31;1modl-openflowplugin-drop-test[0m                                    x 1.0.0            x x        x Started x [31;1modl-openflowplugin-drop-test[0m                                    x OpenDaylight :: Openflow Plugin :: Drop Test
[?1h=[90m~[0m                                                                                [?2004hopendaylight-user@root&gt;</msg>
<msg time="2026-09-26T01:09:11.441902" level="INFO">${output} = [?1l&gt;[?2004l[31;1modl-openflowplugin-drop-test[0m                                    x 1.0.0            x x        x Started x [31;1modl-openflowplugin-drop-test[0m                     ...</msg>
<var>${output}</var>
<arg>${KARAF_PROMPT}</arg>
<doc>Consumes and returns the server output until a match to ``regexp`` is found.</doc>
<status status="PASS" start="2026-09-26T01:09:11.430399" elapsed="0.011533"/>
</kw>
<kw name="Write Bare" owner="SSHLibrary">
<arg>logout\n</arg>
<doc>Writes the given ``text`` on the remote machine without appending a newline.</doc>
<status status="PASS" start="2026-09-26T01:09:11.442115" elapsed="0.000267"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-09-26T01:09:11.442529" elapsed="0.000193"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-26T01:09:11.443198" level="INFO">[?1l&gt;[?2004l[31;1modl-openflowplugin-drop-test[0m                                    x 1.0.0            x x        x Started x [31;1modl-openflowplugin-drop-test[0m                                    x OpenDaylight :: Openflow Plugin :: Drop Test
[?1h=[90m~[0m                                                                                [?2004hopendaylight-user@root&gt;</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-26T01:09:11.442896" elapsed="0.000398"/>
</kw>
<return>
<value>${output}</value>
<status status="PASS" start="2026-09-26T01:09:11.443343" elapsed="0.000053"/>
</return>
<msg time="2026-09-26T01:09:11.443528" level="INFO">${output} = [?1l&gt;[?2004l[31;1modl-openflowplugin-drop-test[0m                                    x 1.0.0            x x        x Started x [31;1modl-openflowplugin-drop-test[0m                     ...</msg>
<var>${output}</var>
<arg>feature:list -i | grep ${feature_name}</arg>
<arg>${controller}</arg>
<arg>${karaf_port}</arg>
<doc>Will execute the given ${cmd} by ssh'ing to the karaf console running on 10.30.170.235
Note that this keyword will open&amp;close new SSH connection, without switching back to previously current session.</doc>
<status status="PASS" start="2026-09-26T01:09:11.115990" elapsed="0.327568"/>
</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-09-26T01:09:11.443711" elapsed="0.000502"/>
</kw>
<return>
<value>${output}</value>
<status status="PASS" start="2026-09-26T01:09:11.444304" elapsed="0.000033"/>
</return>
<arg>odl-openflowplugin-drop-test</arg>
<doc>Will Succeed if the given ${feature_name} is found in the output of "feature:list -i"</doc>
<status status="PASS" start="2026-09-26T01:09:11.113814" elapsed="0.330602"/>
</kw>
<kw name="Issue_Command_On_Karaf_Console" owner="KarafKeywords">
<if>
<branch type="IF" condition="'${IS_KARAF_APPL}' == 'False'">
<return>
<value>Not A Karaf App</value>
<status status="NOT RUN" start="2026-09-26T01:09:11.446094" elapsed="0.000015"/>
</return>
<status status="NOT RUN" start="2026-09-26T01:09:11.445980" elapsed="0.000158"/>
</branch>
<status status="PASS" start="2026-09-26T01:09:11.445958" elapsed="0.000203"/>
</if>
<kw name="Open Connection" owner="SSHLibrary">
<arg>${controller}</arg>
<arg>port=${karaf_port}</arg>
<arg>prompt=${KARAF_PROMPT_LOGIN}</arg>
<arg>timeout=${timeout}</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-09-26T01:09:11.446345" elapsed="0.000383"/>
</kw>
<kw name="Login" owner="SSHLibrary">
<msg time="2026-09-26T01:09:11.447098" level="INFO">Logging into '10.30.170.235:8101' as 'karaf'.</msg>
<msg time="2026-09-26T01:09:11.686683" level="INFO">Read output: [33m                                                                                           
[33m    ________                       ________                .__  .__       .__     __       
[33m    \_____  \ ______   ____   ____ \______ \ _____  ___.__.|  | |__| ____ |  |___/  |_     
[33m     /   |   \\____ \_/ __ \ /    \ |    |  \\__  \&lt;   |  ||  | |  |/ ___\|  |  \   __\    
[33m    /    |    \  |_&gt; &gt;  ___/|   |  \|    `   \/ __ \\___  ||  |_|  / /_/  &gt;   Y  \  |      
[33m    \_______  /   __/ \___  &gt;___|  /_______  (____  / ____||____/__\___  /|___|  /__|      
[33m            \/|__|        \/     \/        \/     \/\/            /_____/      \/          
[33m                                                                                           

Hit '[1m&lt;tab&gt;[0m' for a list of available commands
and '[1m[cmd] --help[0m' for help on a specific command.
Hit '[1m&lt;ctrl-d&gt;[0m' or type '[1msystem:shutdown[0m' or '[1mlogout[0m' to shutdown OpenDaylight.

[?1h=[90m~[0m                                                                                [?2004hopendaylight-user</msg>
<arg>${KARAF_USER}</arg>
<arg>${KARAF_PASSWORD}</arg>
<arg>loglevel=${loglevel}</arg>
<doc>Logs into the SSH server with the given ``username`` and ``password``.</doc>
<status status="PASS" start="2026-09-26T01:09:11.446899" elapsed="0.239939"/>
</kw>
<kw name="Write" owner="SSHLibrary">
<msg time="2026-09-26T01:09:11.724264" level="INFO">@root&gt;dropallpacketsrpc on</msg>
<arg>${cmd}</arg>
<doc>Writes the given ``text`` on the remote machine and appends a newline.</doc>
<status status="PASS" start="2026-09-26T01:09:11.687090" elapsed="0.037232"/>
</kw>
<kw name="Read Until Regexp" owner="SSHLibrary">
<msg time="2026-09-26T01:09:11.726312" level="INFO">[?1l&gt;[?2004lDropAllFlows transitions to on
[?1h=[90m~[0m                                                                                [?2004hopendaylight-user@root&gt;</msg>
<msg time="2026-09-26T01:09:11.726414" level="INFO">${output} = [?1l&gt;[?2004lDropAllFlows transitions to on
[?1h=[90m~[0m                                                                                [?2004hopendaylight-user@root&gt;</msg>
<var>${output}</var>
<arg>${KARAF_PROMPT}</arg>
<doc>Consumes and returns the server output until a match to ``regexp`` is found.</doc>
<status status="PASS" start="2026-09-26T01:09:11.724477" elapsed="0.001964"/>
</kw>
<kw name="Write Bare" owner="SSHLibrary">
<arg>logout\n</arg>
<doc>Writes the given ``text`` on the remote machine without appending a newline.</doc>
<status status="PASS" start="2026-09-26T01:09:11.726637" elapsed="0.000175"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-09-26T01:09:11.726954" elapsed="0.000191"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-26T01:09:11.727666" level="INFO">[?1l&gt;[?2004lDropAllFlows transitions to on
[?1h=[90m~[0m                                                                                [?2004hopendaylight-user@root&gt;</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-26T01:09:11.727357" elapsed="0.000355"/>
</kw>
<return>
<value>${output}</value>
<status status="PASS" start="2026-09-26T01:09:11.727759" elapsed="0.000049"/>
</return>
<arg>dropallpacketsrpc on</arg>
<doc>Will execute the given ${cmd} by ssh'ing to the karaf console running on 10.30.170.235
Note that this keyword will open&amp;close new SSH connection, without switching back to previously current session.</doc>
<status status="PASS" start="2026-09-26T01:09:11.445695" elapsed="0.282207"/>
</kw>
<status status="PASS" start="2026-09-26T01:09:09.761199" elapsed="1.966761"/>
</kw>
<test id="s1-t1" name="Cbench Latency Test" line="37">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-26T01:09:11.729710" level="INFO">Cbench tests using 10 iterations of 60 second tests. Switch Count: 16. Unique MACS to cycle: 100</msg>
<arg>Cbench tests using ${loops} iterations of ${duration_in_secs} second tests. Switch Count: ${switch_count}. Unique MACS to cycle: ${num_of_unique_macs}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-26T01:09:11.728823" elapsed="0.000950"/>
</kw>
<kw name="Run Cbench And Log Results">
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-09-26T01:09:11.731033" 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-09-26T01:09:11.730717" elapsed="0.000357"/>
</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-09-26T01:09:11.731408" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-09-26T01:09:11.731147" elapsed="0.000315"/>
</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-09-26T01:09:11.732531" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-09-26T01:09:11.732315" elapsed="0.000268"/>
</branch>
<status status="PASS" start="2026-09-26T01:09:11.732296" elapsed="0.000312"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-09-26T01:09:11.732971" level="INFO">index=None
host=None
alias=None
port=22
timeout=3 seconds
newline=

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

prompt=None
term_type=vt100
width=80
height=24
path_separator=/
encoding=utf8
escape_ansi=False
encoding_errors=strict</msg>
<var>${current_ssh_connection}</var>
<doc>Returns information about the connection.</doc>
<status status="PASS" start="2026-09-26T01:09:11.732785" elapsed="0.000322"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-26T01:09:11.733659" level="INFO">Attempting to execute command "/usr/local/bin/cbench -c 10.30.170.235 -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633" on remote system "10.30.170.176" by user "jenkins" with keyfile pass "any" and prompt "&gt;" and password ""</msg>
<arg>Attempting to execute command "${cmd}" on remote system "${system}" by user "${user}" with keyfile pass "${keyfile_pass}" and prompt "${prompt}" and password "${password}"</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-26T01:09:11.733325" elapsed="0.000389"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-09-26T01:09:11.734306" level="INFO">${conn_id} = 5</msg>
<var>${conn_id}</var>
<arg>${system}</arg>
<arg>prompt=${prompt}</arg>
<arg>timeout=${prompt_timeout}</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-09-26T01:09:11.733874" elapsed="0.000457"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-09-26T01:09:11.735147" level="INFO">Length is 0.</msg>
<msg time="2026-09-26T01:09:11.735382" level="INFO">${pwd_length} = 0</msg>
<var>${pwd_length}</var>
<arg>${password}</arg>
<doc>Returns and logs the length of the given item as an integer.</doc>
<status status="PASS" start="2026-09-26T01:09:11.734850" elapsed="0.000586"/>
</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-09-26T01:09:11.735576" elapsed="0.000302"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-09-26T01:09:11.736699" level="INFO">Logging into '10.30.170.176:22' as 'jenkins'.</msg>
<msg time="2026-09-26T01:09:12.109324" 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 Sep 26 01:08:41 UTC 2026

  System load:  0.48               Processes:             112
  Usage of /:   19.8% of 38.58GB   Users logged in:       0
  Memory usage: 4%                 IPv4 address for ens3: 10.30.170.176
  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 Sep 26 01:09:10 2026 from 10.30.171.206
[?2004h[jenkins@releng-50965-54-1-mininet-ovs-217-0 ~]&gt;</msg>
<arg>${user}</arg>
<arg>${USER_HOME}/.ssh/${SSH_KEY}</arg>
<arg>${KEYFILE_PASS}</arg>
<arg>delay=${delay}</arg>
<doc>Logs into the SSH server using key-based authentication.</doc>
<status status="PASS" start="2026-09-26T01:09:11.736428" elapsed="0.373095"/>
</kw>
<msg time="2026-09-26T01:09:12.109608" level="INFO">Returning from the enclosing user keyword.</msg>
<arg>SSHLibrary.Login With Public Key</arg>
<arg>${user}</arg>
<arg>${USER_HOME}/.ssh/${SSH_KEY}</arg>
<arg>${KEYFILE_PASS}</arg>
<arg>delay=${delay}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-09-26T01:09:11.736027" elapsed="0.373677"/>
</kw>
<arg>${user}</arg>
<arg>${password}</arg>
<doc>On active SSH session: if given non-empty password, do Login, else do Login With Public Key.</doc>
<status status="PASS" start="2026-09-26T01:09:11.734513" elapsed="0.375312"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-26T01:09:12.110422" level="INFO">Executing command '/usr/local/bin/cbench -c 10.30.170.235 -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633'.</msg>
<msg time="2026-09-26T01:19:18.276263" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-09-26T01:19:18.276703" level="INFO">${stdout} = </msg>
<msg time="2026-09-26T01:19:18.276819" level="INFO">${stderr} = cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.170.235:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with 10...</msg>
<var>${stdout}</var>
<var>${stderr}</var>
<arg>${cmd}</arg>
<arg>return_stderr=True</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-26T01:09:12.110096" elapsed="606.166779"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-09-26T01:19:18.277305" elapsed="0.000652"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-26T01:19:18.279123" level="INFO">cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.170.235: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.170.235. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
01:10:17.352 16  switches: flows:  86183 86772 85596 86136 82931 82320 82886 84935 85882 82591 84774 84326 86265 85584 82610 83818  total = 22.560150 per ms 
01:11:17.452 16  switches: flows:  92988 95686 93232 93559 90890 93148 91449 91481 90474 91912 90061 93295 92613 92697 93554 89295  total = 24.564512 per ms 
01:12:17.552 16  switches: flows:  97920 97993 97559 97038 93457 95420 95037 95719 93153 96510 94674 96277 96321 94853 97698 91833  total = 25.481843 per ms 
01:13:17.653 16  switches: flows:  94670 93149 93809 91447 93091 93177 92033 93364 90946 92679 88959 93562 93949 90884 93393 90118  total = 24.612761 per ms 
01:14:17.753 16  switches: flows:  98290 95848 97046 93431 96861 98114 94265 96783 93965 96882 92646 96250 95896 93415 95494 92397  total = 25.417281 per ms 
01:15:17.853 16  switches: flows:  96769 99227 96851 94134 95956 97058 94637 96008 93241 94101 92198 100453 94521 93732 95997 92758  total = 25.418264 per ms 
01:16:17.954 16  switches: flows:  96576 96506 96978 93355 96578 94722 94174 95071 93029 94077 93497 98853 94817 94160 97443 91461  total = 25.312707 per ms 
01:17:18.054 16  switches: flows:  96983 95591 97274 94001 96985 96299 93844 95757 93295 93759 92680 97919 93828 94583 94631 91609  total = 25.275124 per ms 
01:18:18.154 16  switches: flows:  95991 96790 94784 93066 97010 94833 93915 95319 93107 93063 91726 97756 93110 93660 95344 90170  total = 25.118722 per ms 
01:19:18.255 16  switches: flows:  98129 97364 97924 94792 99320 97499 95850 95940 93942 95448 94137 98161 95108 95022 97149 92022  total = 25.587387 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 24564.51/25587.39/25198.73/8406.84 responses/s</msg>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-26T01:19:18.278433" elapsed="0.000989"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="PASS" start="2026-09-26T01:19:18.279871" elapsed="0.000071"/>
</return>
<status status="PASS" start="2026-09-26T01:19:18.279599" elapsed="0.000418"/>
</branch>
<status status="PASS" start="2026-09-26T01:19:18.279543" elapsed="0.000527"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="NOT RUN" start="2026-09-26T01:19:18.280331" elapsed="0.000030"/>
</return>
<status status="NOT RUN" start="2026-09-26T01:19:18.280204" elapsed="0.000216"/>
</branch>
<status status="NOT RUN" start="2026-09-26T01:19:18.280160" elapsed="0.000304"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-09-26T01:19:18.280531" elapsed="0.000029"/>
</return>
<kw name="Restore_Current_Ssh_Connection_From_Index" owner="SSHKeywords" type="TEARDOWN">
<kw name="Run Keyword And Return If" owner="BuiltIn">
<arg>${connection_index} is not None</arg>
<arg>SSHLibrary.Switch Connection</arg>
<arg>${connection_index}</arg>
<doc>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-09-26T01:19:18.282109" elapsed="0.000705"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<arg>127.0.0.1</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-09-26T01:19:18.283189" elapsed="0.000352"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-09-26T01:19:18.283842" elapsed="0.000202"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-09-26T01:19:18.281188" elapsed="0.002963"/>
</kw>
<msg time="2026-09-26T01:19:18.284441" level="INFO">${output} = cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.170.235:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with 10...</msg>
<var>${output}</var>
<arg>${cbench_system}</arg>
<arg>${cbench_executable} -c ${ODL_SYSTEM_IP} ${cbench_args}</arg>
<arg>prompt_timeout=${test_timeout}</arg>
<arg>return_stdout=False</arg>
<arg>return_stderr=True</arg>
<doc>Reduces the common work of running a command on a remote system to a single higher level
robot keyword, taking care to log in with a public key and. The command given is written and the return value
depends on the passed argument values of return_stdout (default: True) and return_stderr (default: False).
At least one should be True, or the keyword will exit and FAIL. If both are True, the resulting return value
will be a two element list containing both. Otherwise the resulting return value is a string.
No test conditions are checked.</doc>
<status status="PASS" start="2026-09-26T01:09:11.731785" elapsed="606.552713"/>
</kw>
<status status="PASS" start="2026-09-26T01:09:11.731489" elapsed="606.553107"/>
</branch>
<status status="PASS" start="2026-09-26T01:09:11.731124" elapsed="606.553520"/>
</if>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-26T01:19:18.285719" level="INFO">cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.170.235: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.170.235. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
01:10:17.352 16  switches: flows:  86183 86772 85596 86136 82931 82320 82886 84935 85882 82591 84774 84326 86265 85584 82610 83818  total = 22.560150 per ms 
01:11:17.452 16  switches: flows:  92988 95686 93232 93559 90890 93148 91449 91481 90474 91912 90061 93295 92613 92697 93554 89295  total = 24.564512 per ms 
01:12:17.552 16  switches: flows:  97920 97993 97559 97038 93457 95420 95037 95719 93153 96510 94674 96277 96321 94853 97698 91833  total = 25.481843 per ms 
01:13:17.653 16  switches: flows:  94670 93149 93809 91447 93091 93177 92033 93364 90946 92679 88959 93562 93949 90884 93393 90118  total = 24.612761 per ms 
01:14:17.753 16  switches: flows:  98290 95848 97046 93431 96861 98114 94265 96783 93965 96882 92646 96250 95896 93415 95494 92397  total = 25.417281 per ms 
01:15:17.853 16  switches: flows:  96769 99227 96851 94134 95956 97058 94637 96008 93241 94101 92198 100453 94521 93732 95997 92758  total = 25.418264 per ms 
01:16:17.954 16  switches: flows:  96576 96506 96978 93355 96578 94722 94174 95071 93029 94077 93497 98853 94817 94160 97443 91461  total = 25.312707 per ms 
01:17:18.054 16  switches: flows:  96983 95591 97274 94001 96985 96299 93844 95757 93295 93759 92680 97919 93828 94583 94631 91609  total = 25.275124 per ms 
01:18:18.154 16  switches: flows:  95991 96790 94784 93066 97010 94833 93915 95319 93107 93063 91726 97756 93110 93660 95344 90170  total = 25.118722 per ms 
01:19:18.255 16  switches: flows:  98129 97364 97924 94792 99320 97499 95850 95940 93942 95448 94137 98161 95108 95022 97149 92022  total = 25.587387 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 24564.51/25587.39/25198.73/8406.84 responses/s</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-26T01:19:18.285065" elapsed="0.000829"/>
</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-09-26T01:19:18.286265" elapsed="0.000768"/>
</kw>
<kw name="Get Lines Containing String" owner="String">
<msg time="2026-09-26T01:19:18.287882" level="INFO">1 out of 23 lines matched.</msg>
<msg time="2026-09-26T01:19:18.288068" level="INFO">${result_line} = RESULT: 16 switches 9 tests min/max/avg/stdev = 24564.51/25587.39/25198.73/8406.84 responses/s</msg>
<var>${result_line}</var>
<arg>${output}</arg>
<arg>RESULT</arg>
<doc>Returns lines of the given `string` that contain the `pattern`.</doc>
<status status="PASS" start="2026-09-26T01:19:18.287433" elapsed="0.000686"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-09-26T01:19:18.289001" level="INFO">@{results_list} = [ RESULT: | 16 | switches | 9 | tests | min/max/avg/stdev | = | 24564.51/25587.39/25198.73/8406.84 | responses/s ]</msg>
<var>@{results_list}</var>
<arg>${result_line}</arg>
<doc>Splits the `string` using `separator` as a delimiter string.</doc>
<status status="PASS" start="2026-09-26T01:19:18.288499" elapsed="0.000560"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-26T01:19:18.290292" level="INFO">min/max/avg/stdev</msg>
<arg>${results_list[5]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-26T01:19:18.289521" elapsed="0.000888"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-26T01:19:18.291538" level="INFO">24564.51/25587.39/25198.73/8406.84</msg>
<arg>${results_list[7]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-26T01:19:18.290831" elapsed="0.000848"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-09-26T01:19:18.292772" level="INFO">@{result_name_list} = [ min | max | avg | stdev ]</msg>
<var>@{result_name_list}</var>
<arg>${results_list[5]}</arg>
<arg>/</arg>
<doc>Splits the `string` using `separator` as a delimiter string.</doc>
<status status="PASS" start="2026-09-26T01:19:18.292044" elapsed="0.000810"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-09-26T01:19:18.294000" level="INFO">@{result_value_list} = [ 24564.51 | 25587.39 | 25198.73 | 8406.84 ]</msg>
<var>@{result_value_list}</var>
<arg>${results_list[7]}</arg>
<arg>/</arg>
<doc>Splits the `string` using `separator` as a delimiter string.</doc>
<status status="PASS" start="2026-09-26T01:19:18.293327" elapsed="0.000729"/>
</kw>
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-09-26T01:19:18.295046" level="INFO">Length is 4.</msg>
<msg time="2026-09-26T01:19:18.295224" level="INFO">${num_stats} = 4</msg>
<var>${num_stats}</var>
<arg>${result_name_list}</arg>
<doc>Returns and logs the length of the given item as an integer.</doc>
<status status="PASS" start="2026-09-26T01:19:18.294420" elapsed="0.000885"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-26T01:19:18.297208" level="INFO">min :: 24564.51</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-26T01:19:18.296178" elapsed="0.001208"/>
</kw>
<var name="${i}">0</var>
<status status="PASS" start="2026-09-26T01:19:18.295773" elapsed="0.001683"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-26T01:19:18.299019" level="INFO">max :: 25587.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-09-26T01:19:18.298032" elapsed="0.001103"/>
</kw>
<var name="${i}">1</var>
<status status="PASS" start="2026-09-26T01:19:18.297635" elapsed="0.001565"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-26T01:19:18.300708" level="INFO">avg :: 25198.73</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-26T01:19:18.299776" elapsed="0.001073"/>
</kw>
<var name="${i}">2</var>
<status status="PASS" start="2026-09-26T01:19:18.299407" elapsed="0.001510"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-26T01:19:18.302466" level="INFO">stdev :: 8406.84</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-26T01:19:18.301498" elapsed="0.001081"/>
</kw>
<var name="${i}">3</var>
<status status="PASS" start="2026-09-26T01:19:18.301098" elapsed="0.001548"/>
</iter>
<var>${i}</var>
<value>0</value>
<value>${num_stats}</value>
<status status="PASS" start="2026-09-26T01:19:18.295432" elapsed="0.007281"/>
</for>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-09-26T01:19:18.303988" level="INFO">${min} = 24564.51</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-09-26T01:19:18.303080" elapsed="0.000962"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-09-26T01:19:18.305277" level="INFO">${max} = 25587.39</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-09-26T01:19:18.304403" elapsed="0.000931"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-09-26T01:19:18.306568" level="INFO">${average} = 25198.73</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-09-26T01:19:18.305660" elapsed="0.000963"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-09-26T01:19:18.307903" level="INFO">${stdev} = 8406.84</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-09-26T01:19:18.306984" elapsed="0.000974"/>
</kw>
<kw name="Get Time" owner="BuiltIn">
<msg time="2026-09-26T01:19:18.309139" level="INFO">${date} = 2026-09-26 01:19:18</msg>
<var>${date}</var>
<arg>d,m,s</arg>
<doc>Returns the given time in the requested format.</doc>
<status status="PASS" start="2026-09-26T01:19:18.308394" elapsed="0.000798"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-26T01:19:18.310456" level="INFO">CBench Result: 2026-09-26 01:19:18,-m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633,24564.51,25587.39,25198.73,8406.84</msg>
<arg>CBench Result: ${date},${cbench_args},${min},${max},${average},${stdev}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-26T01:19:18.309630" elapsed="0.000937"/>
</kw>
<kw name="Log Results And Determine Status">
<kw name="Append To File" owner="OperatingSystem">
<msg time="2026-09-26T01:19:18.312852" level="INFO" html="true">Appended to file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-cbench-only-manganese/latency.csv"&gt;/w/workspace/openflowplugin-csit-1node-cbench-only-manganese/latency.csv&lt;/a&gt;'.</msg>
<arg>${output_file}</arg>
<arg>${min},${max},${average}\n</arg>
<doc>Appends the given content to the specified file.</doc>
<status status="PASS" start="2026-09-26T01:19:18.311806" elapsed="0.001185"/>
</kw>
<kw name="Should Be True" owner="BuiltIn">
<arg>${average} &gt; ${threshold}</arg>
<arg>${average} flow_mods per/sec did not exceed threshold of ${threshold}</arg>
<doc>Fails if the given condition is not true.</doc>
<status status="PASS" start="2026-09-26T01:19:18.313379" elapsed="0.000997"/>
</kw>
<arg>${min}</arg>
<arg>${max}</arg>
<arg>${average}</arg>
<arg>${average_threshold}</arg>
<arg>${output_filename}</arg>
<status status="PASS" start="2026-09-26T01:19:18.310860" elapsed="0.003652"/>
</kw>
<arg>-m ${duration_in_ms} -M ${num_of_unique_macs} -S ${switch_count} -l ${loops} -D ${start_delay} -p ${of_port}</arg>
<arg>${latency_threshold}</arg>
<arg>${latency_results_file}</arg>
<status status="PASS" start="2026-09-26T01:09:11.730162" elapsed="606.584481"/>
</kw>
<kw name="Sleep" owner="BuiltIn">
<msg time="2026-09-26T01:19:18.315891" level="INFO">Slept 0 seconds.</msg>
<arg>${test_delay}</arg>
<doc>Pauses execution for the given time.</doc>
<status status="PASS" start="2026-09-26T01:19:18.315031" elapsed="0.001002"/>
</kw>
<kw name="Log Results As Zero If Cbench Timed Out" type="TEARDOWN">
<kw name="Run Keyword If Timeout Occurred" owner="BuiltIn">
<arg>Log Results And Determine Status</arg>
<arg>0</arg>
<arg>0</arg>
<arg>0</arg>
<arg>0</arg>
<arg>${output_filename}</arg>
<doc>Runs the given keyword if either a test or a keyword timeout has occurred.</doc>
<status status="PASS" start="2026-09-26T01:19:18.317170" elapsed="0.000656"/>
</kw>
<status status="PASS" start="2026-09-26T01:19:18.316508" elapsed="0.001462"/>
</kw>
<doc>cbench executed in default latency mode. Test parameters have defaults, but can be overridden
on the pybot command line</doc>
<tag>cbench</tag>
<tag>latency</tag>
<timeout value="15 minutes"/>
<status status="PASS" start="2026-09-26T01:09:11.728099" elapsed="606.589941"/>
</test>
<test id="s1-t2" name="Cbench Throughput Test" line="51">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-26T01:19:18.320323" level="INFO">Cbench tests using 10 iterations of 60 second tests. Switch Count: 16. Unique MACS to cycle: 100</msg>
<arg>Cbench tests using ${loops} iterations of ${duration_in_secs} second tests. Switch Count: ${switch_count}. Unique MACS to cycle: ${num_of_unique_macs}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-26T01:19:18.319865" elapsed="0.000532"/>
</kw>
<kw name="Run Cbench And Log Results">
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-09-26T01:19:18.321956" 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-09-26T01:19:18.321524" elapsed="0.000492"/>
</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-09-26T01:19:18.322495" elapsed="0.000028"/>
</kw>
<status status="NOT RUN" start="2026-09-26T01:19:18.322129" elapsed="0.000441"/>
</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-09-26T01:19:18.324110" elapsed="0.000029"/>
</kw>
<status status="NOT RUN" start="2026-09-26T01:19:18.323770" elapsed="0.000424"/>
</branch>
<status status="PASS" start="2026-09-26T01:19:18.323744" elapsed="0.000520"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-09-26T01:19:18.324749" level="INFO">index=None
host=None
alias=None
port=22
timeout=3 seconds
newline=

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

prompt=None
term_type=vt100
width=80
height=24
path_separator=/
encoding=utf8
escape_ansi=False
encoding_errors=strict</msg>
<var>${current_ssh_connection}</var>
<doc>Returns information about the connection.</doc>
<status status="PASS" start="2026-09-26T01:19:18.324516" elapsed="0.000435"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-26T01:19:18.325662" level="INFO">Attempting to execute command "/usr/local/bin/cbench -c 10.30.170.235 -t -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633" on remote system "10.30.170.176" by user "jenkins" with keyfile pass "any" and prompt "&gt;" and password ""</msg>
<arg>Attempting to execute command "${cmd}" on remote system "${system}" by user "${user}" with keyfile pass "${keyfile_pass}" and prompt "${prompt}" and password "${password}"</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-26T01:19:18.325187" elapsed="0.000547"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-09-26T01:19:18.326461" level="INFO">${conn_id} = 7</msg>
<var>${conn_id}</var>
<arg>${system}</arg>
<arg>prompt=${prompt}</arg>
<arg>timeout=${prompt_timeout}</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-09-26T01:19:18.325976" elapsed="0.000518"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-09-26T01:19:18.327640" level="INFO">Length is 0.</msg>
<msg time="2026-09-26T01:19:18.327754" level="INFO">${pwd_length} = 0</msg>
<var>${pwd_length}</var>
<arg>${password}</arg>
<doc>Returns and logs the length of the given item as an integer.</doc>
<status status="PASS" start="2026-09-26T01:19:18.327219" elapsed="0.000580"/>
</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-09-26T01:19:18.327984" elapsed="0.000470"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-09-26T01:19:18.329579" level="INFO">Logging into '10.30.170.176:22' as 'jenkins'.</msg>
<msg time="2026-09-26T01:19:18.977630" 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 Sep 26 01:19:18 UTC 2026

  System load:  1.0                Processes:             106
  Usage of /:   20.3% of 38.58GB   Users logged in:       0
  Memory usage: 4%                 IPv4 address for ens3: 10.30.170.176
  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 Sep 26 01:09:12 2026 from 10.30.171.206
[?2004h[jenkins@releng-50965-54-1-mininet-ovs-217-0 ~]&gt;</msg>
<arg>${user}</arg>
<arg>${USER_HOME}/.ssh/${SSH_KEY}</arg>
<arg>${KEYFILE_PASS}</arg>
<arg>delay=${delay}</arg>
<doc>Logs into the SSH server using key-based authentication.</doc>
<status status="PASS" start="2026-09-26T01:19:18.329184" elapsed="0.648703"/>
</kw>
<msg time="2026-09-26T01:19:18.978003" level="INFO">Returning from the enclosing user keyword.</msg>
<arg>SSHLibrary.Login With Public Key</arg>
<arg>${user}</arg>
<arg>${USER_HOME}/.ssh/${SSH_KEY}</arg>
<arg>${KEYFILE_PASS}</arg>
<arg>delay=${delay}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-09-26T01:19:18.328669" elapsed="0.649452"/>
</kw>
<arg>${user}</arg>
<arg>${password}</arg>
<doc>On active SSH session: if given non-empty password, do Login, else do Login With Public Key.</doc>
<status status="PASS" start="2026-09-26T01:19:18.326739" elapsed="0.651546"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-26T01:19:18.979014" level="INFO">Executing command '/usr/local/bin/cbench -c 10.30.170.235 -t -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633'.</msg>
<msg time="2026-09-26T01:29:25.029511" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-09-26T01:29:25.030037" level="INFO">${stdout} = </msg>
<msg time="2026-09-26T01:29:25.030136" level="INFO">${stderr} = cbench: controller benchmarking tool
   running in mode 'throughput'
   connecting to controller at 10.30.170.235:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with...</msg>
<var>${stdout}</var>
<var>${stderr}</var>
<arg>${cmd}</arg>
<arg>return_stderr=True</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-26T01:19:18.978630" elapsed="606.051572"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-09-26T01:29:25.030711" elapsed="0.000674"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-26T01:29:25.032544" level="INFO">cbench: controller benchmarking tool
   running in mode 'throughput'
   connecting to controller at 10.30.170.235: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.170.235. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
01:20:24.091 16  switches: flows:  597474 603804 589857 596615 591097 604281 584810 583438 590544 590909 604198 597846 593752 597089 603052 596486  total = 158.754200 per ms 
01:21:24.194 16  switches: flows:  609729 616433 613112 616819 604382 619813 623022 619008 616542 621815 621893 619158 617326 625652 621937 624351  total = 164.571168 per ms 
01:22:24.295 16  switches: flows:  606308 608081 606923 602413 610399 600262 609913 608126 611462 613908 604148 607080 608946 611598 604863 604862  total = 161.714902 per ms 
01:23:24.397 16  switches: flows:  611286 611984 613868 614347 608459 612825 606431 610769 608933 615800 614275 610345 606818 611063 605951 614467  total = 162.686960 per ms 
01:24:24.498 16  switches: flows:  610816 610810 612580 614254 612127 615030 612739 605072 609720 612013 616052 617005 612696 616304 614031 613608  total = 163.140938 per ms 
01:25:24.599 16  switches: flows:  612342 618281 616528 620905 613912 612269 615717 612444 617682 617667 613963 625839 616817 620265 619402 618736  total = 164.270534 per ms 
01:26:24.700 16  switches: flows:  629501 625184 627643 630321 618297 629097 631245 629282 639349 628772 623494 620892 622815 637941 634991 627024  total = 167.316308 per ms 
01:27:24.801 16  switches: flows:  597092 594346 597984 602600 599428 601251 599910 601527 600021 605627 601887 602019 601757 609525 598100 602875  total = 159.995858 per ms 
01:28:24.904 16  switches: flows:  586749 594040 593824 589901 589480 592850 588995 582206 588553 591114 585285 591053 594202 591993 593440 595559  total = 157.221797 per ms 
01:29:25.006 16  switches: flows:  606478 618094 606218 613646 612728 616471 617543 610857 621071 608949 614372 600234 611097 612848 609474 613098  total = 162.945697 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 157221.80/167316.31/162651.57/54284.58 responses/s</msg>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-26T01:29:25.031861" elapsed="0.000965"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="PASS" start="2026-09-26T01:29:25.033299" elapsed="0.000068"/>
</return>
<status status="PASS" start="2026-09-26T01:29:25.033006" elapsed="0.000437"/>
</branch>
<status status="PASS" start="2026-09-26T01:29:25.032939" elapsed="0.000555"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="NOT RUN" start="2026-09-26T01:29:25.033684" elapsed="0.000026"/>
</return>
<status status="NOT RUN" start="2026-09-26T01:29:25.033611" elapsed="0.000175"/>
</branch>
<status status="NOT RUN" start="2026-09-26T01:29:25.033579" elapsed="0.000254"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-09-26T01:29:25.033896" 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-09-26T01:29:25.035488" elapsed="0.000672"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<arg>127.0.0.1</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-09-26T01:29:25.036564" elapsed="0.000342"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-09-26T01:29:25.037184" elapsed="0.000241"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-09-26T01:29:25.034553" elapsed="0.002979"/>
</kw>
<msg time="2026-09-26T01:29:25.037758" level="INFO">${output} = cbench: controller benchmarking tool
   running in mode 'throughput'
   connecting to controller at 10.30.170.235:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with...</msg>
<var>${output}</var>
<arg>${cbench_system}</arg>
<arg>${cbench_executable} -c ${ODL_SYSTEM_IP} ${cbench_args}</arg>
<arg>prompt_timeout=${test_timeout}</arg>
<arg>return_stdout=False</arg>
<arg>return_stderr=True</arg>
<doc>Reduces the common work of running a command on a remote system to a single higher level
robot keyword, taking care to log in with a public key and. The command given is written and the return value
depends on the passed argument values of return_stdout (default: True) and return_stderr (default: False).
At least one should be True, or the keyword will exit and FAIL. If both are True, the resulting return value
will be a two element list containing both. Otherwise the resulting return value is a string.
No test conditions are checked.</doc>
<status status="PASS" start="2026-09-26T01:19:18.323030" elapsed="606.714804"/>
</kw>
<status status="PASS" start="2026-09-26T01:19:18.322604" elapsed="606.715328"/>
</branch>
<status status="PASS" start="2026-09-26T01:19:18.322101" elapsed="606.715877"/>
</if>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-26T01:29:25.039005" level="INFO">cbench: controller benchmarking tool
   running in mode 'throughput'
   connecting to controller at 10.30.170.235: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.170.235. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
01:20:24.091 16  switches: flows:  597474 603804 589857 596615 591097 604281 584810 583438 590544 590909 604198 597846 593752 597089 603052 596486  total = 158.754200 per ms 
01:21:24.194 16  switches: flows:  609729 616433 613112 616819 604382 619813 623022 619008 616542 621815 621893 619158 617326 625652 621937 624351  total = 164.571168 per ms 
01:22:24.295 16  switches: flows:  606308 608081 606923 602413 610399 600262 609913 608126 611462 613908 604148 607080 608946 611598 604863 604862  total = 161.714902 per ms 
01:23:24.397 16  switches: flows:  611286 611984 613868 614347 608459 612825 606431 610769 608933 615800 614275 610345 606818 611063 605951 614467  total = 162.686960 per ms 
01:24:24.498 16  switches: flows:  610816 610810 612580 614254 612127 615030 612739 605072 609720 612013 616052 617005 612696 616304 614031 613608  total = 163.140938 per ms 
01:25:24.599 16  switches: flows:  612342 618281 616528 620905 613912 612269 615717 612444 617682 617667 613963 625839 616817 620265 619402 618736  total = 164.270534 per ms 
01:26:24.700 16  switches: flows:  629501 625184 627643 630321 618297 629097 631245 629282 639349 628772 623494 620892 622815 637941 634991 627024  total = 167.316308 per ms 
01:27:24.801 16  switches: flows:  597092 594346 597984 602600 599428 601251 599910 601527 600021 605627 601887 602019 601757 609525 598100 602875  total = 159.995858 per ms 
01:28:24.904 16  switches: flows:  586749 594040 593824 589901 589480 592850 588995 582206 588553 591114 585285 591053 594202 591993 593440 595559  total = 157.221797 per ms 
01:29:25.006 16  switches: flows:  606478 618094 606218 613646 612728 616471 617543 610857 621071 608949 614372 600234 611097 612848 609474 613098  total = 162.945697 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 157221.80/167316.31/162651.57/54284.58 responses/s</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-26T01:29:25.038401" elapsed="0.000756"/>
</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-09-26T01:29:25.039527" elapsed="0.000765"/>
</kw>
<kw name="Get Lines Containing String" owner="String">
<msg time="2026-09-26T01:29:25.041099" level="INFO">1 out of 23 lines matched.</msg>
<msg time="2026-09-26T01:29:25.041314" level="INFO">${result_line} = RESULT: 16 switches 9 tests min/max/avg/stdev = 157221.80/167316.31/162651.57/54284.58 responses/s</msg>
<var>${result_line}</var>
<arg>${output}</arg>
<arg>RESULT</arg>
<doc>Returns lines of the given `string` that contain the `pattern`.</doc>
<status status="PASS" start="2026-09-26T01:29:25.040659" elapsed="0.000709"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-09-26T01:29:25.042264" level="INFO">@{results_list} = [ RESULT: | 16 | switches | 9 | tests | min/max/avg/stdev | = | 157221.80/167316.31/162651.57/54284.58 | responses/s ]</msg>
<var>@{results_list}</var>
<arg>${result_line}</arg>
<doc>Splits the `string` using `separator` as a delimiter string.</doc>
<status status="PASS" start="2026-09-26T01:29:25.041738" elapsed="0.000585"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-26T01:29:25.043471" level="INFO">min/max/avg/stdev</msg>
<arg>${results_list[5]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-26T01:29:25.042726" elapsed="0.000858"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-26T01:29:25.044729" level="INFO">157221.80/167316.31/162651.57/54284.58</msg>
<arg>${results_list[7]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-26T01:29:25.044009" elapsed="0.000860"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-09-26T01:29:25.045896" level="INFO">@{result_name_list} = [ min | max | avg | stdev ]</msg>
<var>@{result_name_list}</var>
<arg>${results_list[5]}</arg>
<arg>/</arg>
<doc>Splits the `string` using `separator` as a delimiter string.</doc>
<status status="PASS" start="2026-09-26T01:29:25.045208" elapsed="0.000745"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-09-26T01:29:25.047045" level="INFO">@{result_value_list} = [ 157221.80 | 167316.31 | 162651.57 | 54284.58 ]</msg>
<var>@{result_value_list}</var>
<arg>${results_list[7]}</arg>
<arg>/</arg>
<doc>Splits the `string` using `separator` as a delimiter string.</doc>
<status status="PASS" start="2026-09-26T01:29:25.046393" elapsed="0.000708"/>
</kw>
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-09-26T01:29:25.048100" level="INFO">Length is 4.</msg>
<msg time="2026-09-26T01:29:25.048306" level="INFO">${num_stats} = 4</msg>
<var>${num_stats}</var>
<arg>${result_name_list}</arg>
<doc>Returns and logs the length of the given item as an integer.</doc>
<status status="PASS" start="2026-09-26T01:29:25.047466" elapsed="0.000893"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-26T01:29:25.050153" level="INFO">min :: 157221.80</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-26T01:29:25.049204" elapsed="0.001095"/>
</kw>
<var name="${i}">0</var>
<status status="PASS" start="2026-09-26T01:29:25.048834" elapsed="0.001533"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-26T01:29:25.051882" level="INFO">max :: 167316.31</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-26T01:29:25.050932" elapsed="0.001062"/>
</kw>
<var name="${i}">1</var>
<status status="PASS" start="2026-09-26T01:29:25.050541" elapsed="0.001521"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-26T01:29:25.053682" level="INFO">avg :: 162651.57</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-26T01:29:25.052679" elapsed="0.001143"/>
</kw>
<var name="${i}">2</var>
<status status="PASS" start="2026-09-26T01:29:25.052275" elapsed="0.001616"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-26T01:29:25.055414" level="INFO">stdev :: 54284.58</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-26T01:29:25.054463" elapsed="0.001062"/>
</kw>
<var name="${i}">3</var>
<status status="PASS" start="2026-09-26T01:29:25.054063" elapsed="0.001530"/>
</iter>
<var>${i}</var>
<value>0</value>
<value>${num_stats}</value>
<status status="PASS" start="2026-09-26T01:29:25.048479" elapsed="0.007178"/>
</for>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-09-26T01:29:25.056908" level="INFO">${min} = 157221.80</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-09-26T01:29:25.056019" elapsed="0.000943"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-09-26T01:29:25.058165" level="INFO">${max} = 167316.31</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-09-26T01:29:25.057323" elapsed="0.000895"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-09-26T01:29:25.059468" level="INFO">${average} = 162651.57</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-09-26T01:29:25.058580" elapsed="0.000941"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-09-26T01:29:25.060730" level="INFO">${stdev} = 54284.58</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-09-26T01:29:25.059873" elapsed="0.000935"/>
</kw>
<kw name="Get Time" owner="BuiltIn">
<msg time="2026-09-26T01:29:25.061976" level="INFO">${date} = 2026-09-26 01:29:25</msg>
<var>${date}</var>
<arg>d,m,s</arg>
<doc>Returns the given time in the requested format.</doc>
<status status="PASS" start="2026-09-26T01:29:25.061212" elapsed="0.000817"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-26T01:29:25.063214" level="INFO">CBench Result: 2026-09-26 01:29:25,-t -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633,157221.80,167316.31,162651.57,54284.58</msg>
<arg>CBench Result: ${date},${cbench_args},${min},${max},${average},${stdev}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-26T01:29:25.062464" elapsed="0.000894"/>
</kw>
<kw name="Log Results And Determine Status">
<kw name="Append To File" owner="OperatingSystem">
<msg time="2026-09-26T01:29:25.065265" level="INFO" html="true">Appended to file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-cbench-only-manganese/throughput.csv"&gt;/w/workspace/openflowplugin-csit-1node-cbench-only-manganese/throughput.csv&lt;/a&gt;'.</msg>
<arg>${output_file}</arg>
<arg>${min},${max},${average}\n</arg>
<doc>Appends the given content to the specified file.</doc>
<status status="PASS" start="2026-09-26T01:29:25.064530" elapsed="0.000874"/>
</kw>
<kw name="Should Be True" owner="BuiltIn">
<arg>${average} &gt; ${threshold}</arg>
<arg>${average} flow_mods per/sec did not exceed threshold of ${threshold}</arg>
<doc>Fails if the given condition is not true.</doc>
<status status="PASS" start="2026-09-26T01:29:25.065751" elapsed="0.001273"/>
</kw>
<arg>${min}</arg>
<arg>${max}</arg>
<arg>${average}</arg>
<arg>${average_threshold}</arg>
<arg>${output_filename}</arg>
<status status="PASS" start="2026-09-26T01:29:25.063615" elapsed="0.003546"/>
</kw>
<arg>-t -m ${duration_in_ms} -M ${num_of_unique_macs} -S ${switch_count} -l ${loops} -D ${start_delay} -p ${of_port}</arg>
<arg>${throughput_threshold}</arg>
<arg>${throughput_results_file}</arg>
<status status="PASS" start="2026-09-26T01:19:18.320806" elapsed="606.746506"/>
</kw>
<kw name="Sleep" owner="BuiltIn">
<msg time="2026-09-26T01:29:25.068352" level="INFO">Slept 0 seconds.</msg>
<arg>${test_delay}</arg>
<doc>Pauses execution for the given time.</doc>
<status status="PASS" start="2026-09-26T01:29:25.067642" elapsed="0.000826"/>
</kw>
<kw name="Log Results As Zero If Cbench Timed Out" type="TEARDOWN">
<kw name="Run Keyword If Timeout Occurred" owner="BuiltIn">
<arg>Log Results And Determine Status</arg>
<arg>0</arg>
<arg>0</arg>
<arg>0</arg>
<arg>0</arg>
<arg>${output_filename}</arg>
<doc>Runs the given keyword if either a test or a keyword timeout has occurred.</doc>
<status status="PASS" start="2026-09-26T01:29:25.069938" elapsed="0.000586"/>
</kw>
<status status="PASS" start="2026-09-26T01:29:25.069085" elapsed="0.001582"/>
</kw>
<doc>cbench executed in throughput mode (-t). Test parameters have defaults, but can be overridden
on the pybot command line</doc>
<tag>cbench</tag>
<tag>throughput</tag>
<timeout value="15 minutes"/>
<status status="PASS" start="2026-09-26T01:19:18.318756" elapsed="606.751982"/>
</test>
<test id="s1-t3" name="Rerun Latency Test To Check Bug 6176" line="65">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-26T01:29:25.072978" level="INFO">Cbench tests using 10 iterations of 60 second tests. Switch Count: 16. Unique MACS to cycle: 100</msg>
<arg>Cbench tests using ${loops} iterations of ${duration_in_secs} second tests. Switch Count: ${switch_count}. Unique MACS to cycle: ${num_of_unique_macs}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-26T01:29:25.072504" elapsed="0.000548"/>
</kw>
<kw name="Run Cbench And Log Results">
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-09-26T01:29:25.074685" 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-09-26T01:29:25.074194" elapsed="0.000548"/>
</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-09-26T01:29:25.075219" elapsed="0.000061"/>
</kw>
<status status="NOT RUN" start="2026-09-26T01:29:25.074924" elapsed="0.000407"/>
</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-09-26T01:29:25.076835" elapsed="0.000029"/>
</kw>
<status status="NOT RUN" start="2026-09-26T01:29:25.076513" elapsed="0.000394"/>
</branch>
<status status="PASS" start="2026-09-26T01:29:25.076489" elapsed="0.000450"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-09-26T01:29:25.077419" level="INFO">index=None
host=None
alias=None
port=22
timeout=3 seconds
newline=

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

prompt=None
term_type=vt100
width=80
height=24
path_separator=/
encoding=utf8
escape_ansi=False
encoding_errors=strict</msg>
<var>${current_ssh_connection}</var>
<doc>Returns information about the connection.</doc>
<status status="PASS" start="2026-09-26T01:29:25.077179" elapsed="0.000421"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-26T01:29:25.078327" level="INFO">Attempting to execute command "/usr/local/bin/cbench -c 10.30.170.235 -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633" on remote system "10.30.170.176" by user "jenkins" with keyfile pass "any" and prompt "&gt;" and password ""</msg>
<arg>Attempting to execute command "${cmd}" on remote system "${system}" by user "${user}" with keyfile pass "${keyfile_pass}" and prompt "${prompt}" and password "${password}"</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-26T01:29:25.077854" elapsed="0.000546"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-09-26T01:29:25.079095" level="INFO">${conn_id} = 9</msg>
<var>${conn_id}</var>
<arg>${system}</arg>
<arg>prompt=${prompt}</arg>
<arg>timeout=${prompt_timeout}</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-09-26T01:29:25.078626" elapsed="0.000502"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-09-26T01:29:25.080542" level="INFO">Length is 0.</msg>
<msg time="2026-09-26T01:29:25.080658" level="INFO">${pwd_length} = 0</msg>
<var>${pwd_length}</var>
<arg>${password}</arg>
<doc>Returns and logs the length of the given item as an integer.</doc>
<status status="PASS" start="2026-09-26T01:29:25.079929" elapsed="0.000760"/>
</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-09-26T01:29:25.080897" elapsed="0.000442"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-09-26T01:29:25.082501" level="INFO">Logging into '10.30.170.176:22' as 'jenkins'.</msg>
<msg time="2026-09-26T01:29:25.701033" 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 Sep 26 01:29:25 UTC 2026

  System load:  0.4                Processes:             105
  Usage of /:   20.3% of 38.58GB   Users logged in:       0
  Memory usage: 4%                 IPv4 address for ens3: 10.30.170.176
  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 Sep 26 01:19:18 2026 from 10.30.171.206
[?2004h[jenkins@releng-50965-54-1-mininet-ovs-217-0 ~]&gt;</msg>
<arg>${user}</arg>
<arg>${USER_HOME}/.ssh/${SSH_KEY}</arg>
<arg>${KEYFILE_PASS}</arg>
<arg>delay=${delay}</arg>
<doc>Logs into the SSH server using key-based authentication.</doc>
<status status="PASS" start="2026-09-26T01:29:25.082064" elapsed="0.619179"/>
</kw>
<msg time="2026-09-26T01:29:25.701336" level="INFO">Returning from the enclosing user keyword.</msg>
<arg>SSHLibrary.Login With Public Key</arg>
<arg>${user}</arg>
<arg>${USER_HOME}/.ssh/${SSH_KEY}</arg>
<arg>${KEYFILE_PASS}</arg>
<arg>delay=${delay}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-09-26T01:29:25.081549" elapsed="0.619867"/>
</kw>
<arg>${user}</arg>
<arg>${password}</arg>
<doc>On active SSH session: if given non-empty password, do Login, else do Login With Public Key.</doc>
<status status="PASS" start="2026-09-26T01:29:25.079395" elapsed="0.622133"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-26T01:29:25.702068" level="INFO">Executing command '/usr/local/bin/cbench -c 10.30.170.235 -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633'.</msg>
<msg time="2026-09-26T01:39:31.747977" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-09-26T01:39:31.748645" level="INFO">${stdout} = </msg>
<msg time="2026-09-26T01:39:31.748742" level="INFO">${stderr} = cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.170.235:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with 10...</msg>
<var>${stdout}</var>
<var>${stderr}</var>
<arg>${cmd}</arg>
<arg>return_stderr=True</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-26T01:29:25.701792" elapsed="606.047016"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-09-26T01:39:31.749353" elapsed="0.000660"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-26T01:39:31.751256" level="INFO">cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.170.235: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.170.235. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
01:30:30.807 16  switches: flows:  94846 94861 92394 95007 98268 106211 95123 95089 93278 92916 96078 91761 94489 92960 91386 93502  total = 25.302817 per ms 
01:31:30.908 16  switches: flows:  97066 95167 92950 94718 95544 94285 95996 95973 91088 92164 94426 89906 90490 93383 89803 92174  total = 24.877370 per ms 
01:32:31.009 16  switches: flows:  96179 94261 92635 95396 94176 94411 95777 94993 91203 91287 93657 89981 88748 93180 90330 90477  total = 24.736881 per ms 
01:33:31.109 16  switches: flows:  98358 96485 94937 96079 96555 95925 96275 94761 91488 91932 93130 89554 90816 94330 90236 89324  total = 24.961414 per ms 
01:34:31.210 16  switches: flows:  100980 96460 96003 98720 96948 97352 96655 96625 91040 93033 94210 91639 91229 91970 90237 90862  total = 25.190686 per ms 
01:35:31.310 16  switches: flows:  99619 97998 94592 97839 95839 95846 97621 96769 91618 92958 95786 91224 90658 92363 90506 92070  total = 25.179753 per ms 
01:36:31.410 16  switches: flows:  94597 94367 92341 94453 95015 91360 94594 93783 90531 90039 92999 88195 89333 91350 87399 87794  total = 24.428406 per ms 
01:37:31.510 16  switches: flows:  97904 96284 94662 97737 97030 94181 97307 96612 91081 92211 94632 89130 93356 94084 90746 90923  total = 25.089454 per ms 
01:38:31.611 16  switches: flows:  97926 95433 92974 97518 95081 94025 96067 95057 90824 91135 93365 90486 91186 92233 90365 91328  total = 24.875200 per ms 
01:39:31.711 16  switches: flows:  100082 97463 96655 100284 97720 98365 98558 97193 93446 93382 96652 92107 94193 94231 92411 93004  total = 25.553112 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 24428.41/25553.11/24988.03/8334.74 responses/s</msg>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-26T01:39:31.750527" elapsed="0.001002"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="PASS" start="2026-09-26T01:39:31.751958" elapsed="0.000066"/>
</return>
<status status="PASS" start="2026-09-26T01:39:31.751713" elapsed="0.000408"/>
</branch>
<status status="PASS" start="2026-09-26T01:39:31.751644" elapsed="0.000529"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="NOT RUN" start="2026-09-26T01:39:31.752395" elapsed="0.000028"/>
</return>
<status status="NOT RUN" start="2026-09-26T01:39:31.752321" elapsed="0.000159"/>
</branch>
<status status="NOT RUN" start="2026-09-26T01:39:31.752287" elapsed="0.000238"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-09-26T01:39:31.752588" elapsed="0.000029"/>
</return>
<kw name="Restore_Current_Ssh_Connection_From_Index" owner="SSHKeywords" type="TEARDOWN">
<kw name="Run Keyword And Return If" owner="BuiltIn">
<arg>${connection_index} is not None</arg>
<arg>SSHLibrary.Switch Connection</arg>
<arg>${connection_index}</arg>
<doc>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-09-26T01:39:31.754159" elapsed="0.000681"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<arg>127.0.0.1</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-09-26T01:39:31.755260" elapsed="0.000317"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-09-26T01:39:31.755855" elapsed="0.000236"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-09-26T01:39:31.753262" elapsed="0.002938"/>
</kw>
<msg time="2026-09-26T01:39:31.756458" level="INFO">${output} = cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.170.235:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with 10...</msg>
<var>${output}</var>
<arg>${cbench_system}</arg>
<arg>${cbench_executable} -c ${ODL_SYSTEM_IP} ${cbench_args}</arg>
<arg>prompt_timeout=${test_timeout}</arg>
<arg>return_stdout=False</arg>
<arg>return_stderr=True</arg>
<doc>Reduces the common work of running a command on a remote system to a single higher level
robot keyword, taking care to log in with a public key and. The command given is written and the return value
depends on the passed argument values of return_stdout (default: True) and return_stderr (default: False).
At least one should be True, or the keyword will exit and FAIL. If both are True, the resulting return value
will be a two element list containing both. Otherwise the resulting return value is a string.
No test conditions are checked.</doc>
<status status="PASS" start="2026-09-26T01:29:25.075790" elapsed="606.680723"/>
</kw>
<status status="PASS" start="2026-09-26T01:29:25.075366" elapsed="606.681243"/>
</branch>
<status status="PASS" start="2026-09-26T01:29:25.074894" elapsed="606.681764"/>
</if>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-26T01:39:31.757691" level="INFO">cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.170.235: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.170.235. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
01:30:30.807 16  switches: flows:  94846 94861 92394 95007 98268 106211 95123 95089 93278 92916 96078 91761 94489 92960 91386 93502  total = 25.302817 per ms 
01:31:30.908 16  switches: flows:  97066 95167 92950 94718 95544 94285 95996 95973 91088 92164 94426 89906 90490 93383 89803 92174  total = 24.877370 per ms 
01:32:31.009 16  switches: flows:  96179 94261 92635 95396 94176 94411 95777 94993 91203 91287 93657 89981 88748 93180 90330 90477  total = 24.736881 per ms 
01:33:31.109 16  switches: flows:  98358 96485 94937 96079 96555 95925 96275 94761 91488 91932 93130 89554 90816 94330 90236 89324  total = 24.961414 per ms 
01:34:31.210 16  switches: flows:  100980 96460 96003 98720 96948 97352 96655 96625 91040 93033 94210 91639 91229 91970 90237 90862  total = 25.190686 per ms 
01:35:31.310 16  switches: flows:  99619 97998 94592 97839 95839 95846 97621 96769 91618 92958 95786 91224 90658 92363 90506 92070  total = 25.179753 per ms 
01:36:31.410 16  switches: flows:  94597 94367 92341 94453 95015 91360 94594 93783 90531 90039 92999 88195 89333 91350 87399 87794  total = 24.428406 per ms 
01:37:31.510 16  switches: flows:  97904 96284 94662 97737 97030 94181 97307 96612 91081 92211 94632 89130 93356 94084 90746 90923  total = 25.089454 per ms 
01:38:31.611 16  switches: flows:  97926 95433 92974 97518 95081 94025 96067 95057 90824 91135 93365 90486 91186 92233 90365 91328  total = 24.875200 per ms 
01:39:31.711 16  switches: flows:  100082 97463 96655 100284 97720 98365 98558 97193 93446 93382 96652 92107 94193 94231 92411 93004  total = 25.553112 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 24428.41/25553.11/24988.03/8334.74 responses/s</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-26T01:39:31.757052" elapsed="0.000791"/>
</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-09-26T01:39:31.758208" elapsed="0.000740"/>
</kw>
<kw name="Get Lines Containing String" owner="String">
<msg time="2026-09-26T01:39:31.759768" level="INFO">1 out of 23 lines matched.</msg>
<msg time="2026-09-26T01:39:31.759951" level="INFO">${result_line} = RESULT: 16 switches 9 tests min/max/avg/stdev = 24428.41/25553.11/24988.03/8334.74 responses/s</msg>
<var>${result_line}</var>
<arg>${output}</arg>
<arg>RESULT</arg>
<doc>Returns lines of the given `string` that contain the `pattern`.</doc>
<status status="PASS" start="2026-09-26T01:39:31.759367" elapsed="0.000635"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-09-26T01:39:31.760894" level="INFO">@{results_list} = [ RESULT: | 16 | switches | 9 | tests | min/max/avg/stdev | = | 24428.41/25553.11/24988.03/8334.74 | responses/s ]</msg>
<var>@{results_list}</var>
<arg>${result_line}</arg>
<doc>Splits the `string` using `separator` as a delimiter string.</doc>
<status status="PASS" start="2026-09-26T01:39:31.760407" elapsed="0.000542"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-26T01:39:31.762125" level="INFO">min/max/avg/stdev</msg>
<arg>${results_list[5]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-26T01:39:31.761402" elapsed="0.000865"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-26T01:39:31.763395" level="INFO">24428.41/25553.11/24988.03/8334.74</msg>
<arg>${results_list[7]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-26T01:39:31.762667" elapsed="0.000841"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-09-26T01:39:31.764527" level="INFO">@{result_name_list} = [ min | max | avg | stdev ]</msg>
<var>@{result_name_list}</var>
<arg>${results_list[5]}</arg>
<arg>/</arg>
<doc>Splits the `string` using `separator` as a delimiter string.</doc>
<status status="PASS" start="2026-09-26T01:39:31.763849" elapsed="0.000734"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-09-26T01:39:31.765680" level="INFO">@{result_value_list} = [ 24428.41 | 25553.11 | 24988.03 | 8334.74 ]</msg>
<var>@{result_value_list}</var>
<arg>${results_list[7]}</arg>
<arg>/</arg>
<doc>Splits the `string` using `separator` as a delimiter string.</doc>
<status status="PASS" start="2026-09-26T01:39:31.764996" elapsed="0.000740"/>
</kw>
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-09-26T01:39:31.766733" level="INFO">Length is 4.</msg>
<msg time="2026-09-26T01:39:31.766911" level="INFO">${num_stats} = 4</msg>
<var>${num_stats}</var>
<arg>${result_name_list}</arg>
<doc>Returns and logs the length of the given item as an integer.</doc>
<status status="PASS" start="2026-09-26T01:39:31.766092" elapsed="0.000870"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-26T01:39:31.768802" level="INFO">min :: 24428.41</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-26T01:39:31.767852" elapsed="0.001063"/>
</kw>
<var name="${i}">0</var>
<status status="PASS" start="2026-09-26T01:39:31.767483" elapsed="0.001499"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-26T01:39:31.770524" level="INFO">max :: 25553.11</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-26T01:39:31.769572" elapsed="0.001065"/>
</kw>
<var name="${i}">1</var>
<status status="PASS" start="2026-09-26T01:39:31.769177" elapsed="0.001526"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-26T01:39:31.772196" level="INFO">avg :: 24988.03</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-26T01:39:31.771282" elapsed="0.001056"/>
</kw>
<var name="${i}">2</var>
<status status="PASS" start="2026-09-26T01:39:31.770869" elapsed="0.001536"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-26T01:39:31.773989" level="INFO">stdev :: 8334.74</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-26T01:39:31.772930" elapsed="0.001192"/>
</kw>
<var name="${i}">3</var>
<status status="PASS" start="2026-09-26T01:39:31.772569" elapsed="0.001618"/>
</iter>
<var>${i}</var>
<value>0</value>
<value>${num_stats}</value>
<status status="PASS" start="2026-09-26T01:39:31.767108" elapsed="0.007167"/>
</for>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-09-26T01:39:31.775490" level="INFO">${min} = 24428.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-09-26T01:39:31.774616" elapsed="0.000928"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-09-26T01:39:31.776808" level="INFO">${max} = 25553.11</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-09-26T01:39:31.775904" elapsed="0.000958"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-09-26T01:39:31.778103" level="INFO">${average} = 24988.03</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-09-26T01:39:31.777213" elapsed="0.000947"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-09-26T01:39:31.779375" level="INFO">${stdev} = 8334.74</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-09-26T01:39:31.778514" elapsed="0.000915"/>
</kw>
<kw name="Get Time" owner="BuiltIn">
<msg time="2026-09-26T01:39:31.780614" level="INFO">${date} = 2026-09-26 01:39:31</msg>
<var>${date}</var>
<arg>d,m,s</arg>
<doc>Returns the given time in the requested format.</doc>
<status status="PASS" start="2026-09-26T01:39:31.779829" elapsed="0.000838"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-26T01:39:31.781829" level="INFO">CBench Result: 2026-09-26 01:39:31,-m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633,24428.41,25553.11,24988.03,8334.74</msg>
<arg>CBench Result: ${date},${cbench_args},${min},${max},${average},${stdev}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-26T01:39:31.781104" elapsed="0.000836"/>
</kw>
<kw name="Log Results And Determine Status">
<kw name="Append To File" owner="OperatingSystem">
<msg time="2026-09-26T01:39:31.783989" level="INFO" html="true">Appended to file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-cbench-only-manganese/bug.csv"&gt;/w/workspace/openflowplugin-csit-1node-cbench-only-manganese/bug.csv&lt;/a&gt;'.</msg>
<arg>${output_file}</arg>
<arg>${min},${max},${average}\n</arg>
<doc>Appends the given content to the specified file.</doc>
<status status="PASS" start="2026-09-26T01:39:31.783117" elapsed="0.001054"/>
</kw>
<kw name="Should Be True" owner="BuiltIn">
<arg>${average} &gt; ${threshold}</arg>
<arg>${average} flow_mods per/sec did not exceed threshold of ${threshold}</arg>
<doc>Fails if the given condition is not true.</doc>
<status status="PASS" start="2026-09-26T01:39:31.784586" elapsed="0.001209"/>
</kw>
<arg>${min}</arg>
<arg>${max}</arg>
<arg>${average}</arg>
<arg>${average_threshold}</arg>
<arg>${output_filename}</arg>
<status status="PASS" start="2026-09-26T01:39:31.782221" elapsed="0.003706"/>
</kw>
<arg>-m ${duration_in_ms} -M ${num_of_unique_macs} -S ${switch_count} -l ${loops} -D ${start_delay} -p ${of_port}</arg>
<arg>${latency_threshold}</arg>
<arg>bug.csv</arg>
<status status="PASS" start="2026-09-26T01:29:25.073470" elapsed="606.712574"/>
</kw>
<kw name="Sleep" owner="BuiltIn">
<msg time="2026-09-26T01:39:31.787037" level="INFO">Slept 0 seconds.</msg>
<arg>${test_delay}</arg>
<doc>Pauses execution for the given time.</doc>
<status status="PASS" start="2026-09-26T01:39:31.786415" elapsed="0.000761"/>
</kw>
<kw name="Report Failure Due To Bug" owner="Utils" type="TEARDOWN">
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-09-26T01:39:31.789725" level="INFO">${test_skipped} = False</msg>
<var>${test_skipped}</var>
<arg>len(re.findall('SKIPPED', """${TEST_MESSAGE}""")) &gt; 0</arg>
<arg>modules=re</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-09-26T01:39:31.788721" elapsed="0.001101"/>
</kw>
<if>
<branch type="IF" condition="('${TEST_STATUS}' != 'FAIL') or ${test_skipped}">
<return>
<status status="PASS" start="2026-09-26T01:39:31.790270" elapsed="0.000064"/>
</return>
<status status="PASS" start="2026-09-26T01:39:31.789973" elapsed="0.000426"/>
</branch>
<status status="PASS" start="2026-09-26T01:39:31.789932" elapsed="0.000517"/>
</if>
<kw name="Comment" owner="BuiltIn">
<arg>Jira tickets are {PROJECT}-{NUMBER} while Bugzilla tickets are {NUMBER}</arg>
<doc>Displays the given messages in the log file as keyword arguments.</doc>
<status status="NOT RUN" start="2026-09-26T01:39:31.790758" elapsed="0.000045"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<var>${match}</var>
<arg>Should Contain</arg>
<arg>${number}</arg>
<arg>-</arg>
<doc>Runs the specified keyword and returns the status as a Boolean value.</doc>
<status status="NOT RUN" start="2026-09-26T01:39:31.791114" elapsed="0.000044"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<var>${bug_url}</var>
<arg>${match}</arg>
<arg>https://jira.opendaylight.org/browse/${number}</arg>
<arg>https://bugs.opendaylight.org/show_bug.cgi?id=${number}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="NOT RUN" start="2026-09-26T01:39:31.791509" elapsed="0.000028"/>
</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-09-26T01:39:31.791722" 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-09-26T01:39:31.792189" 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-09-26T01:39:31.792427" elapsed="0.000026"/>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${msg}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-09-26T01:39:31.792677" elapsed="0.000025"/>
</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-09-26T01:39:31.792963" elapsed="0.000026"/>
</kw>
<status status="NOT RUN" start="2026-09-26T01:39:31.792780" elapsed="0.000247"/>
</branch>
<status status="NOT RUN" start="2026-09-26T01:39:31.792759" elapsed="0.000314"/>
</if>
<arg>6176</arg>
<doc>Report that a test failed due to a known Bugzilla bug whose
number is provided as an argument.
Not FAILED (incl. SKIPPED) test are not reported.
This keyword must be used in the [Teardown] setting of the affected test
or as the first line of the test if FastFail module is not being
used. It reports the URL of the bug on console and also puts it
into the Robot log file.</doc>
<status status="PASS" start="2026-09-26T01:39:31.787937" elapsed="0.005201"/>
</kw>
<doc>cbench executed in latency mode to see if controller is healthy</doc>
<tag>cbench</tag>
<tag>latency</tag>
<timeout value="15 minutes"/>
<status status="PASS" start="2026-09-26T01:29:25.071603" elapsed="606.721593"/>
</test>
<doc>Cbench Latency and Throughput tests can be run from an external
cbench.
If cbench is run with a medium number of switches or higher (e.g. 32+)
the normal openflow operations seem to break.
BUG: https://bugs.opendaylight.org/show_bug.cgi?id=2897</doc>
<status status="PASS" start="2026-09-26T01:09:09.279082" elapsed="1822.514654"/>
</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>
