<?xml version="1.0" encoding="UTF-8"?>
<robot generator="Robot 7.5 (Python 3.11.10 on linux)" generated="2026-10-19T23:10:57.331390" 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-10-19T23:10:57.798785" elapsed="0.000021"/>
</return>
<status status="NOT RUN" start="2026-10-19T23:10:57.798675" elapsed="0.000179"/>
</branch>
<status status="PASS" start="2026-10-19T23:10:57.798648" elapsed="0.000231"/>
</if>
<kw name="Open Connection" owner="SSHLibrary">
<arg>${controller}</arg>
<arg>port=${karaf_port}</arg>
<arg>prompt=${KARAF_PROMPT_LOGIN}</arg>
<arg>timeout=${timeout}</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-10-19T23:10:57.799058" elapsed="0.000405"/>
</kw>
<kw name="Login" owner="SSHLibrary">
<msg time="2026-10-19T23:10:57.799946" level="INFO">Logging into '10.30.170.12:8101' as 'karaf'.</msg>
<msg time="2026-10-19T23:10:58.696713" level="INFO">Read output: [33m                                                                                           
[33m    ________                       ________                .__  .__       .__     __       
[33m    \_____  \ ______   ____   ____ \______ \ _____  ___.__.|  | |__| ____ |  |___/  |_     
[33m     /   |   \\____ \_/ __ \ /    \ |    |  \\__  \&lt;   |  ||  | |  |/ ___\|  |  \   __\    
[33m    /    |    \  |_&gt; &gt;  ___/|   |  \|    `   \/ __ \\___  ||  |_|  / /_/  &gt;   Y  \  |      
[33m    \_______  /   __/ \___  &gt;___|  /_______  (____  / ____||____/__\___  /|___|  /__|      
[33m            \/|__|        \/     \/        \/     \/\/            /_____/      \/          
[33m                                                                                           

Hit '[1m&lt;tab&gt;[0m' for a list of available commands
and '[1m[cmd] --help[0m' for help on a specific command.
Hit '[1m&lt;ctrl-d&gt;[0m' or type '[1msystem:shutdown[0m' or '[1mlogout[0m' to shutdown OpenDaylight.

[?1h=[90m~[0m                                                                                [?2004hopendaylight-user</msg>
<arg>${KARAF_USER}</arg>
<arg>${KARAF_PASSWORD}</arg>
<arg>loglevel=${loglevel}</arg>
<doc>Logs into the SSH server with the given ``username`` and ``password``.</doc>
<status status="PASS" start="2026-10-19T23:10:57.799672" elapsed="0.897255"/>
</kw>
<kw name="Write" owner="SSHLibrary">
<msg time="2026-10-19T23:10:58.748217" level="INFO">@root&gt;log:set ERROR</msg>
<arg>${cmd}</arg>
<doc>Writes the given ``text`` on the remote machine and appends a newline.</doc>
<status status="PASS" start="2026-10-19T23:10:58.697255" elapsed="0.051033"/>
</kw>
<kw name="Read Until Regexp" owner="SSHLibrary">
<msg time="2026-10-19T23:10:58.749911" level="INFO">[?1l&gt;[?2004l[?1h=[90m~[0m                                                                                [?2004hopendaylight-user@root&gt;</msg>
<msg time="2026-10-19T23:10:58.750022" level="INFO">${output} = [?1l&gt;[?2004l[?1h=[90m~[0m                                                                                [?2004hopendaylight-user@root&gt;</msg>
<var>${output}</var>
<arg>${KARAF_PROMPT}</arg>
<doc>Consumes and returns the server output until a match to ``regexp`` is found.</doc>
<status status="PASS" start="2026-10-19T23:10:58.748463" elapsed="0.001587"/>
</kw>
<kw name="Write Bare" owner="SSHLibrary">
<arg>logout\n</arg>
<doc>Writes the given ``text`` on the remote machine without appending a newline.</doc>
<status status="PASS" start="2026-10-19T23:10:58.750204" elapsed="0.000205"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-10-19T23:10:58.750579" elapsed="0.000211"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-19T23:10:58.751354" level="INFO">[?1l&gt;[?2004l[?1h=[90m~[0m                                                                                [?2004hopendaylight-user@root&gt;</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-19T23:10:58.751003" elapsed="0.000402"/>
</kw>
<return>
<value>${output}</value>
<status status="PASS" start="2026-10-19T23:10:58.751460" elapsed="0.000088"/>
</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.12
Note that this keyword will open&amp;close new SSH connection, without switching back to previously current session.</doc>
<status status="PASS" start="2026-10-19T23:10:57.798358" elapsed="0.953307"/>
</kw>
<arg>3x</arg>
<arg>1s</arg>
<arg>KarafKeywords.Issue Command On Karaf Console</arg>
<arg>log:set ${log_level}</arg>
<doc>Runs the specified keyword and retries if it fails.</doc>
<status status="PASS" start="2026-10-19T23:10:57.796753" elapsed="0.954973"/>
</kw>
<kw name="Append To File" owner="OperatingSystem">
<msg time="2026-10-19T23:10:58.752288" 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-10-19T23:10:58.751944" elapsed="0.000398"/>
</kw>
<kw name="Append To File" owner="OperatingSystem">
<msg time="2026-10-19T23:10:58.752762" 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-10-19T23:10:58.752486" elapsed="0.000329"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-19T23:10:58.753470" level="INFO">${duration_in_ms} = 60000</msg>
<var>${duration_in_ms}</var>
<arg>${duration_in_secs} * 1000</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-10-19T23:10:58.753005" elapsed="0.000519"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-10-19T23:10:58.754040" level="INFO">${duration_in_ms} = 60000</msg>
<arg>${duration_in_ms}</arg>
<doc>Makes the variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-10-19T23:10:58.753720" elapsed="0.000358"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-19T23:10:58.754575" level="INFO">${test_timeout} = 900.0</msg>
<var>${test_timeout}</var>
<arg>(${loops} * ${duration_in_secs}) * 1.5</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-10-19T23:10:58.754234" elapsed="0.000365"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-10-19T23:10:58.755082" level="INFO">${test_timeout} = 900.0</msg>
<arg>${test_timeout}</arg>
<doc>Makes the variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-10-19T23:10:58.754778" elapsed="0.000342"/>
</kw>
<if>
<branch type="IF" condition="&quot;${cbench_system}&quot; == &quot;localhost&quot;">
<kw name="File Should Exist" owner="OperatingSystem">
<arg>${cbench_executable}</arg>
<doc>Fails unless the given `path` points to an existing file.</doc>
<status status="NOT RUN" start="2026-10-19T23:10:58.755412" elapsed="0.000019"/>
</kw>
<status status="NOT RUN" start="2026-10-19T23:10:58.755212" elapsed="0.000248"/>
</branch>
<branch type="ELSE">
<kw name="Verify File Exists On Remote System" owner="Utils">
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-10-19T23:10:58.758174" level="INFO">${conn_id} = 2</msg>
<var>${conn_id}</var>
<arg>${system}</arg>
<arg>prompt=${prompt}</arg>
<arg>timeout=${prompt_timeout}</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-10-19T23:10:58.757808" elapsed="0.000391"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-10-19T23:10:58.759382" level="INFO">Length is 0.</msg>
<msg time="2026-10-19T23:10:58.759459" level="INFO">${pwd_length} = 0</msg>
<var>${pwd_length}</var>
<arg>${password}</arg>
<doc>Returns and logs the length of the given item as an integer.</doc>
<status status="PASS" start="2026-10-19T23:10:58.758700" elapsed="0.000782"/>
</kw>
<kw name="Run Keyword And Return If" owner="BuiltIn">
<arg>${pwd_length} &gt; 0</arg>
<arg>SSHLibrary.Login</arg>
<arg>${user}</arg>
<arg>${password}</arg>
<arg>delay=${delay}</arg>
<doc>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-19T23:10:58.759638" elapsed="0.000326"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-10-19T23:10:58.760747" level="INFO">Logging into '10.30.170.237:22' as 'jenkins'.</msg>
<msg time="2026-10-19T23:10:59.278130" 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 Mon Oct 19 23:10:10 UTC 2026

  System load:  0.25               Processes:             111
  Usage of /:   19.8% of 38.58GB   Users logged in:       0
  Memory usage: 4%                 IPv4 address for ens3: 10.30.170.237
  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-78-1-mininet-ovs-217-0 ~]&gt;</msg>
<arg>${user}</arg>
<arg>${USER_HOME}/.ssh/${SSH_KEY}</arg>
<arg>${KEYFILE_PASS}</arg>
<arg>delay=${delay}</arg>
<doc>Logs into the SSH server using key-based authentication.</doc>
<status status="PASS" start="2026-10-19T23:10:58.760473" elapsed="0.517743"/>
</kw>
<msg time="2026-10-19T23:10:59.278278" level="INFO">Returning from the enclosing user keyword.</msg>
<arg>SSHLibrary.Login With Public Key</arg>
<arg>${user}</arg>
<arg>${USER_HOME}/.ssh/${SSH_KEY}</arg>
<arg>${KEYFILE_PASS}</arg>
<arg>delay=${delay}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-19T23:10:58.760111" elapsed="0.518241"/>
</kw>
<arg>${user}</arg>
<arg>${password}</arg>
<doc>On active SSH session: if given non-empty password, do Login, else do Login With Public Key.</doc>
<status status="PASS" start="2026-10-19T23:10:58.758380" elapsed="0.520060"/>
</kw>
<kw name="File Should Exist" owner="SSHLibrary">
<msg time="2026-10-19T23:10:59.288867" level="INFO">[chan 1] Opened sftp connection (server version 3)</msg>
<arg>${file}</arg>
<doc>Fails if the given ``path`` does NOT point to an existing file.</doc>
<status status="PASS" start="2026-10-19T23:10:59.278625" elapsed="0.012493"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-10-19T23:10:59.291282" elapsed="0.000321"/>
</kw>
<arg>${cbench_system}</arg>
<arg>${cbench_executable}</arg>
<doc>Will create connection with public key and will PASS if the given ${file} exists,
otherwise will FAIL</doc>
<status status="PASS" start="2026-10-19T23:10:58.757321" elapsed="0.534350"/>
</kw>
<status status="PASS" start="2026-10-19T23:10:58.755977" elapsed="0.535727"/>
</branch>
<status status="PASS" start="2026-10-19T23:10:58.755185" elapsed="0.536548"/>
</if>
<kw name="Should Be True" owner="BuiltIn">
<arg>${loops} &gt;= 2</arg>
<arg>If number of loops is less than 2, cbench will not run</arg>
<doc>Fails if the given condition is not true.</doc>
<status status="PASS" start="2026-10-19T23:10:59.291920" elapsed="0.000378"/>
</kw>
<kw name="Verify_Feature_Is_Installed" owner="KarafKeywords">
<if>
<branch type="IF" condition="'${IS_KARAF_APPL}' == 'False'">
<return>
<value>Not A Karaf App</value>
<status status="NOT RUN" start="2026-10-19T23:10:59.294146" elapsed="0.000018"/>
</return>
<status status="NOT RUN" start="2026-10-19T23:10:59.294047" elapsed="0.000149"/>
</branch>
<status status="PASS" start="2026-10-19T23:10:59.294025" elapsed="0.000193"/>
</if>
<kw name="Issue_Command_On_Karaf_Console" owner="KarafKeywords">
<if>
<branch type="IF" condition="'${IS_KARAF_APPL}' == 'False'">
<return>
<value>Not A Karaf App</value>
<status status="NOT RUN" start="2026-10-19T23:10:59.295671" elapsed="0.000013"/>
</return>
<status status="NOT RUN" start="2026-10-19T23:10:59.295580" elapsed="0.000133"/>
</branch>
<status status="PASS" start="2026-10-19T23:10:59.295561" elapsed="0.000173"/>
</if>
<kw name="Open Connection" owner="SSHLibrary">
<arg>${controller}</arg>
<arg>port=${karaf_port}</arg>
<arg>prompt=${KARAF_PROMPT_LOGIN}</arg>
<arg>timeout=${timeout}</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-10-19T23:10:59.295905" elapsed="0.000353"/>
</kw>
<kw name="Login" owner="SSHLibrary">
<msg time="2026-10-19T23:10:59.296657" level="INFO">Logging into '10.30.170.12:8101' as 'karaf'.</msg>
<msg time="2026-10-19T23:10:59.503135" level="INFO">Read output: [33m                                                                                           
[33m    ________                       ________                .__  .__       .__     __       
[33m    \_____  \ ______   ____   ____ \______ \ _____  ___.__.|  | |__| ____ |  |___/  |_     
[33m     /   |   \\____ \_/ __ \ /    \ |    |  \\__  \&lt;   |  ||  | |  |/ ___\|  |  \   __\    
[33m    /    |    \  |_&gt; &gt;  ___/|   |  \|    `   \/ __ \\___  ||  |_|  / /_/  &gt;   Y  \  |      
[33m    \_______  /   __/ \___  &gt;___|  /_______  (____  / ____||____/__\___  /|___|  /__|      
[33m            \/|__|        \/     \/        \/     \/\/            /_____/      \/          
[33m                                                                                           

Hit '[1m&lt;tab&gt;[0m' for a list of available commands
and '[1m[cmd] --help[0m' for help on a specific command.
Hit '[1m&lt;ctrl-d&gt;[0m' or type '[1msystem:shutdown[0m' or '[1mlogout[0m' to shutdown OpenDaylight.

[?1h=[90m~[0m                                                                                [?2004hopendaylight-user</msg>
<arg>${KARAF_USER}</arg>
<arg>${KARAF_PASSWORD}</arg>
<arg>loglevel=${loglevel}</arg>
<doc>Logs into the SSH server with the given ``username`` and ``password``.</doc>
<status status="PASS" start="2026-10-19T23:10:59.296431" elapsed="0.206814"/>
</kw>
<kw name="Write" owner="SSHLibrary">
<msg time="2026-10-19T23:10:59.594428" level="INFO">@root&gt;feature:list -i | 0[C 0g[Krep odl-openflowplugin-drop-test</msg>
<arg>${cmd}</arg>
<doc>Writes the given ``text`` on the remote machine and appends a newline.</doc>
<status status="PASS" start="2026-10-19T23:10:59.503440" elapsed="0.091054"/>
</kw>
<kw name="Read Until Regexp" owner="SSHLibrary">
<msg time="2026-10-19T23:10:59.653154" level="INFO">[?1l&gt;[?2004l[31;1modl-openflowplugin-drop-test[0m                                    x 2.0.1            x x        x Started x [31;1modl-openflowplugin-drop-test[0m                                    x OpenDaylight :: Openflow Plugin :: Drop Test
[?1h=[90m~[0m                                                                                [?2004hopendaylight-user@root&gt;</msg>
<msg time="2026-10-19T23:10:59.653344" level="INFO">${output} = [?1l&gt;[?2004l[31;1modl-openflowplugin-drop-test[0m                                    x 2.0.1            x x        x Started x [31;1modl-openflowplugin-drop-test[0m                     ...</msg>
<var>${output}</var>
<arg>${KARAF_PROMPT}</arg>
<doc>Consumes and returns the server output until a match to ``regexp`` is found.</doc>
<status status="PASS" start="2026-10-19T23:10:59.594680" elapsed="0.058694"/>
</kw>
<kw name="Write Bare" owner="SSHLibrary">
<arg>logout\n</arg>
<doc>Writes the given ``text`` on the remote machine without appending a newline.</doc>
<status status="PASS" start="2026-10-19T23:10:59.653537" elapsed="0.000193"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-10-19T23:10:59.653890" elapsed="0.000188"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-19T23:10:59.654546" level="INFO">[?1l&gt;[?2004l[31;1modl-openflowplugin-drop-test[0m                                    x 2.0.1            x x        x Started x [31;1modl-openflowplugin-drop-test[0m                                    x OpenDaylight :: Openflow Plugin :: Drop Test
[?1h=[90m~[0m                                                                                [?2004hopendaylight-user@root&gt;</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-19T23:10:59.654256" elapsed="0.000345"/>
</kw>
<return>
<value>${output}</value>
<status status="PASS" start="2026-10-19T23:10:59.654644" elapsed="0.000045"/>
</return>
<msg time="2026-10-19T23:10:59.654807" level="INFO">${output} = [?1l&gt;[?2004l[31;1modl-openflowplugin-drop-test[0m                                    x 2.0.1            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.12
Note that this keyword will open&amp;close new SSH connection, without switching back to previously current session.</doc>
<status status="PASS" start="2026-10-19T23:10:59.295278" elapsed="0.359559"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${output}</arg>
<arg>${feature_name}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-19T23:10:59.655011" elapsed="0.000579"/>
</kw>
<return>
<value>${output}</value>
<status status="PASS" start="2026-10-19T23:10:59.655638" elapsed="0.000031"/>
</return>
<arg>odl-openflowplugin-drop-test</arg>
<doc>Will Succeed if the given ${feature_name} is found in the output of "feature:list -i"</doc>
<status status="PASS" start="2026-10-19T23:10:59.293788" elapsed="0.361964"/>
</kw>
<kw name="Issue_Command_On_Karaf_Console" owner="KarafKeywords">
<if>
<branch type="IF" condition="'${IS_KARAF_APPL}' == 'False'">
<return>
<value>Not A Karaf App</value>
<status status="NOT RUN" start="2026-10-19T23:10:59.657476" elapsed="0.000014"/>
</return>
<status status="NOT RUN" start="2026-10-19T23:10:59.657372" elapsed="0.000167"/>
</branch>
<status status="PASS" start="2026-10-19T23:10:59.657351" elapsed="0.000211"/>
</if>
<kw name="Open Connection" owner="SSHLibrary">
<arg>${controller}</arg>
<arg>port=${karaf_port}</arg>
<arg>prompt=${KARAF_PROMPT_LOGIN}</arg>
<arg>timeout=${timeout}</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-10-19T23:10:59.657719" elapsed="0.000377"/>
</kw>
<kw name="Login" owner="SSHLibrary">
<msg time="2026-10-19T23:10:59.658465" level="INFO">Logging into '10.30.170.12:8101' as 'karaf'.</msg>
<msg time="2026-10-19T23:10:59.914523" level="INFO">Read output: [33m                                                                                           
[33m    ________                       ________                .__  .__       .__     __       
[33m    \_____  \ ______   ____   ____ \______ \ _____  ___.__.|  | |__| ____ |  |___/  |_     
[33m     /   |   \\____ \_/ __ \ /    \ |    |  \\__  \&lt;   |  ||  | |  |/ ___\|  |  \   __\    
[33m    /    |    \  |_&gt; &gt;  ___/|   |  \|    `   \/ __ \\___  ||  |_|  / /_/  &gt;   Y  \  |      
[33m    \_______  /   __/ \___  &gt;___|  /_______  (____  / ____||____/__\___  /|___|  /__|      
[33m            \/|__|        \/     \/        \/     \/\/            /_____/      \/          
[33m                                                                                           

Hit '[1m&lt;tab&gt;[0m' for a list of available commands
and '[1m[cmd] --help[0m' for help on a specific command.
Hit '[1m&lt;ctrl-d&gt;[0m' or type '[1msystem:shutdown[0m' or '[1mlogout[0m' to shutdown OpenDaylight.

[?1h=[90m~[0m                                                                                [?2004hopendaylight-user</msg>
<arg>${KARAF_USER}</arg>
<arg>${KARAF_PASSWORD}</arg>
<arg>loglevel=${loglevel}</arg>
<doc>Logs into the SSH server with the given ``username`` and ``password``.</doc>
<status status="PASS" start="2026-10-19T23:10:59.658268" elapsed="0.256353"/>
</kw>
<kw name="Write" owner="SSHLibrary">
<msg time="2026-10-19T23:10:59.963438" level="INFO">@root&gt;dropallpacketsrpc on</msg>
<arg>${cmd}</arg>
<doc>Writes the given ``text`` on the remote machine and appends a newline.</doc>
<status status="PASS" start="2026-10-19T23:10:59.914792" elapsed="0.048718"/>
</kw>
<kw name="Read Until Regexp" owner="SSHLibrary">
<msg time="2026-10-19T23:10:59.965678" level="INFO">[?1l&gt;[?2004lDropAllFlows transitions to on
[?1h=[90m~[0m                                                                                [?2004hopendaylight-user@root&gt;</msg>
<msg time="2026-10-19T23:10:59.965776" level="INFO">${output} = [?1l&gt;[?2004lDropAllFlows transitions to on
[?1h=[90m~[0m                                                                                [?2004hopendaylight-user@root&gt;</msg>
<var>${output}</var>
<arg>${KARAF_PROMPT}</arg>
<doc>Consumes and returns the server output until a match to ``regexp`` is found.</doc>
<status status="PASS" start="2026-10-19T23:10:59.963666" elapsed="0.002137"/>
</kw>
<kw name="Write Bare" owner="SSHLibrary">
<arg>logout\n</arg>
<doc>Writes the given ``text`` on the remote machine without appending a newline.</doc>
<status status="PASS" start="2026-10-19T23:10:59.965950" elapsed="0.000174"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-10-19T23:10:59.966261" elapsed="0.000192"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-19T23:10:59.966943" level="INFO">[?1l&gt;[?2004lDropAllFlows transitions to on
[?1h=[90m~[0m                                                                                [?2004hopendaylight-user@root&gt;</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-19T23:10:59.966674" elapsed="0.000319"/>
</kw>
<return>
<value>${output}</value>
<status status="PASS" start="2026-10-19T23:10:59.967036" elapsed="0.000037"/>
</return>
<arg>dropallpacketsrpc on</arg>
<doc>Will execute the given ${cmd} by ssh'ing to the karaf console running on 10.30.170.12
Note that this keyword will open&amp;close new SSH connection, without switching back to previously current session.</doc>
<status status="PASS" start="2026-10-19T23:10:59.657099" elapsed="0.310053"/>
</kw>
<status status="PASS" start="2026-10-19T23:10:57.794752" elapsed="2.172457"/>
</kw>
<test id="s1-t1" name="Cbench Latency Test" line="37">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-19T23:10:59.969312" level="INFO">Cbench tests using 10 iterations of 60 second tests. Switch Count: 16. Unique MACS to cycle: 100</msg>
<arg>Cbench tests using ${loops} iterations of ${duration_in_secs} second tests. Switch Count: ${switch_count}. Unique MACS to cycle: ${num_of_unique_macs}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-19T23:10:59.968207" elapsed="0.001167"/>
</kw>
<kw name="Run Cbench And Log Results">
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-10-19T23:10:59.970772" level="INFO">${output_filename} = latency.csv</msg>
<arg>${output_filename}</arg>
<doc>Makes the variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-10-19T23:10:59.970352" elapsed="0.000460"/>
</kw>
<if>
<branch type="IF" condition="&quot;${cbench_system}&quot; == &quot;localhost&quot;">
<kw name="Run" owner="OperatingSystem">
<var>${output}</var>
<arg>${cbench_executable} -c ${ODL_SYSTEM_IP} ${cbench_args}</arg>
<doc>*This keyword is considered deprecated. Use the [Process] library instead.*</doc>
<status status="NOT RUN" start="2026-10-19T23:10:59.971120" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-10-19T23:10:59.970899" elapsed="0.000273"/>
</branch>
<branch type="ELSE">
<kw name="Run Command On Remote System" owner="Utils">
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot; and &quot;${return_stderr}&quot;!=&quot;True&quot;">
<kw name="Fail" owner="BuiltIn">
<arg>At least one of {return_stdout} or {return_stderr} args should be set to True</arg>
<doc>Fails the test or task with the given message and optionally alters its tags.</doc>
<status status="NOT RUN" start="2026-10-19T23:10:59.972252" elapsed="0.000019"/>
</kw>
<status status="NOT RUN" start="2026-10-19T23:10:59.972032" elapsed="0.000270"/>
</branch>
<status status="PASS" start="2026-10-19T23:10:59.972013" elapsed="0.000313"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-10-19T23:10:59.972718" level="INFO">index=None
host=None
alias=None
port=22
timeout=3 seconds
newline=

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

prompt=None
term_type=vt100
width=80
height=24
path_separator=/
encoding=utf8
escape_ansi=False
encoding_errors=strict</msg>
<var>${current_ssh_connection}</var>
<doc>Returns information about the connection.</doc>
<status status="PASS" start="2026-10-19T23:10:59.972531" elapsed="0.000322"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-19T23:10:59.973363" level="INFO">Attempting to execute command "/usr/local/bin/cbench -c 10.30.170.12 -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633" on remote system "10.30.170.237" by user "jenkins" with keyfile pass "any" and prompt "&gt;" and password ""</msg>
<arg>Attempting to execute command "${cmd}" on remote system "${system}" by user "${user}" with keyfile pass "${keyfile_pass}" and prompt "${prompt}" and password "${password}"</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-19T23:10:59.973040" elapsed="0.000377"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-10-19T23:10:59.974015" level="INFO">${conn_id} = 5</msg>
<var>${conn_id}</var>
<arg>${system}</arg>
<arg>prompt=${prompt}</arg>
<arg>timeout=${prompt_timeout}</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-10-19T23:10:59.973593" elapsed="0.000446"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-10-19T23:10:59.974899" level="INFO">Length is 0.</msg>
<msg time="2026-10-19T23:10:59.974999" level="INFO">${pwd_length} = 0</msg>
<var>${pwd_length}</var>
<arg>${password}</arg>
<doc>Returns and logs the length of the given item as an integer.</doc>
<status status="PASS" start="2026-10-19T23:10:59.974592" elapsed="0.000429"/>
</kw>
<kw name="Run Keyword And Return If" owner="BuiltIn">
<arg>${pwd_length} &gt; 0</arg>
<arg>SSHLibrary.Login</arg>
<arg>${user}</arg>
<arg>${password}</arg>
<arg>delay=${delay}</arg>
<doc>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-19T23:10:59.975156" elapsed="0.000305"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-10-19T23:10:59.976259" level="INFO">Logging into '10.30.170.237:22' as 'jenkins'.</msg>
<msg time="2026-10-19T23:11:00.332136" 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 Mon Oct 19 23:10:10 UTC 2026

  System load:  0.25               Processes:             111
  Usage of /:   19.8% of 38.58GB   Users logged in:       0
  Memory usage: 4%                 IPv4 address for ens3: 10.30.170.237
  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: Mon Oct 19 23:10:59 2026 from 10.30.171.191
[?2004h[jenkins@releng-50965-78-1-mininet-ovs-217-0 ~]&gt;</msg>
<arg>${user}</arg>
<arg>${USER_HOME}/.ssh/${SSH_KEY}</arg>
<arg>${KEYFILE_PASS}</arg>
<arg>delay=${delay}</arg>
<doc>Logs into the SSH server using key-based authentication.</doc>
<status status="PASS" start="2026-10-19T23:10:59.975997" elapsed="0.356251"/>
</kw>
<msg time="2026-10-19T23:11:00.332306" level="INFO">Returning from the enclosing user keyword.</msg>
<arg>SSHLibrary.Login With Public Key</arg>
<arg>${user}</arg>
<arg>${USER_HOME}/.ssh/${SSH_KEY}</arg>
<arg>${KEYFILE_PASS}</arg>
<arg>delay=${delay}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-19T23:10:59.975627" elapsed="0.356744"/>
</kw>
<arg>${user}</arg>
<arg>${password}</arg>
<doc>On active SSH session: if given non-empty password, do Login, else do Login With Public Key.</doc>
<status status="PASS" start="2026-10-19T23:10:59.974222" elapsed="0.358231"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-19T23:11:00.332860" level="INFO">Executing command '/usr/local/bin/cbench -c 10.30.170.12 -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633'.</msg>
<msg time="2026-10-19T23:21:06.482157" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-10-19T23:21:06.482646" level="INFO">${stdout} = </msg>
<msg time="2026-10-19T23:21:06.482745" level="INFO">${stderr} = cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.170.12:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with 100...</msg>
<var>${stdout}</var>
<var>${stderr}</var>
<arg>${cmd}</arg>
<arg>return_stderr=True</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-10-19T23:11:00.332662" elapsed="606.150137"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-10-19T23:21:06.483239" elapsed="0.000701"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-19T23:21:06.485170" level="INFO">cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.170.12: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.12. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
23:12:05.560 16  switches: flows:  85322 84353 83909 86239 84810 84540 82318 84108 81208 85647 84090 83202 83630 83762 82616 83841  total = 22.393250 per ms 
23:13:05.661 16  switches: flows:  95180 92832 91957 92794 90429 90680 90112 91706 90082 92907 92449 92047 91980 91213 91447 91084  total = 24.440844 per ms 
23:14:05.761 16  switches: flows:  89307 85442 86000 88407 85729 85008 84489 87038 82755 85533 85403 85239 85297 85648 85360 85945  total = 22.838540 per ms 
23:15:05.862 16  switches: flows:  92871 90885 91301 93900 92322 92189 90144 90546 88729 90666 91076 90286 89576 91940 91122 92325  total = 24.290769 per ms 
23:16:05.962 16  switches: flows:  91536 91755 92412 92673 92078 91691 88941 90428 88495 89295 89633 89768 87207 90452 89138 91676  total = 24.079436 per ms 
23:17:06.063 16  switches: flows:  92305 92084 92150 90508 91154 90050 89100 88581 88260 88850 88297 92310 86763 87746 90190 90605  total = 23.942601 per ms 
23:18:06.163 16  switches: flows:  90837 94636 92909 90764 92809 91078 91585 89762 91652 90295 89173 91251 89034 88351 91588 91438  total = 24.245574 per ms 
23:19:06.264 16  switches: flows:  92871 96809 93819 94379 96244 94091 93879 93534 91942 93066 90819 92548 88962 90576 91651 91147  total = 24.730984 per ms 
23:20:06.365 16  switches: flows:  92437 91798 92186 94609 93047 93378 92907 93283 89462 93084 91820 89087 89837 89133 90665 90114  total = 24.406705 per ms 
23:21:06.466 16  switches: flows:  96900 91679 92855 96570 95781 93509 94724 94344 91478 94564 94178 92688 91744 92758 90805 94553  total = 24.943874 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 22838.54/24943.87/24213.26/8090.88 responses/s</msg>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-19T23:21:06.484463" elapsed="0.000966"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="PASS" start="2026-10-19T23:21:06.485900" elapsed="0.000089"/>
</return>
<status status="PASS" start="2026-10-19T23:21:06.485654" elapsed="0.000414"/>
</branch>
<status status="PASS" start="2026-10-19T23:21:06.485598" elapsed="0.000521"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="NOT RUN" start="2026-10-19T23:21:06.486350" elapsed="0.000031"/>
</return>
<status status="NOT RUN" start="2026-10-19T23:21:06.486247" elapsed="0.000192"/>
</branch>
<status status="NOT RUN" start="2026-10-19T23:21:06.486206" elapsed="0.000277"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-10-19T23:21:06.486585" 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-10-19T23:21:06.488143" elapsed="0.000679"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<arg>127.0.0.1</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-10-19T23:21:06.489215" elapsed="0.000376"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-10-19T23:21:06.489871" elapsed="0.000225"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-10-19T23:21:06.487242" elapsed="0.002961"/>
</kw>
<msg time="2026-10-19T23:21:06.490425" level="INFO">${output} = cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.170.12:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with 100...</msg>
<var>${output}</var>
<arg>${cbench_system}</arg>
<arg>${cbench_executable} -c ${ODL_SYSTEM_IP} ${cbench_args}</arg>
<arg>prompt_timeout=${test_timeout}</arg>
<arg>return_stdout=False</arg>
<arg>return_stderr=True</arg>
<doc>Reduces the common work of running a command on a remote system to a single higher level
robot keyword, taking care to log in with a public key and. The command given is written and the return value
depends on the passed argument values of return_stdout (default: True) and return_stderr (default: False).
At least one should be True, or the keyword will exit and FAIL. If both are True, the resulting return value
will be a two element list containing both. Otherwise the resulting return value is a string.
No test conditions are checked.</doc>
<status status="PASS" start="2026-10-19T23:10:59.971519" elapsed="606.518961"/>
</kw>
<status status="PASS" start="2026-10-19T23:10:59.971198" elapsed="606.519415"/>
</branch>
<status status="PASS" start="2026-10-19T23:10:59.970861" elapsed="606.519801"/>
</if>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-19T23:21:06.491689" level="INFO">cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.170.12: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.12. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
23:12:05.560 16  switches: flows:  85322 84353 83909 86239 84810 84540 82318 84108 81208 85647 84090 83202 83630 83762 82616 83841  total = 22.393250 per ms 
23:13:05.661 16  switches: flows:  95180 92832 91957 92794 90429 90680 90112 91706 90082 92907 92449 92047 91980 91213 91447 91084  total = 24.440844 per ms 
23:14:05.761 16  switches: flows:  89307 85442 86000 88407 85729 85008 84489 87038 82755 85533 85403 85239 85297 85648 85360 85945  total = 22.838540 per ms 
23:15:05.862 16  switches: flows:  92871 90885 91301 93900 92322 92189 90144 90546 88729 90666 91076 90286 89576 91940 91122 92325  total = 24.290769 per ms 
23:16:05.962 16  switches: flows:  91536 91755 92412 92673 92078 91691 88941 90428 88495 89295 89633 89768 87207 90452 89138 91676  total = 24.079436 per ms 
23:17:06.063 16  switches: flows:  92305 92084 92150 90508 91154 90050 89100 88581 88260 88850 88297 92310 86763 87746 90190 90605  total = 23.942601 per ms 
23:18:06.163 16  switches: flows:  90837 94636 92909 90764 92809 91078 91585 89762 91652 90295 89173 91251 89034 88351 91588 91438  total = 24.245574 per ms 
23:19:06.264 16  switches: flows:  92871 96809 93819 94379 96244 94091 93879 93534 91942 93066 90819 92548 88962 90576 91651 91147  total = 24.730984 per ms 
23:20:06.365 16  switches: flows:  92437 91798 92186 94609 93047 93378 92907 93283 89462 93084 91820 89087 89837 89133 90665 90114  total = 24.406705 per ms 
23:21:06.466 16  switches: flows:  96900 91679 92855 96570 95781 93509 94724 94344 91478 94564 94178 92688 91744 92758 90805 94553  total = 24.943874 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 22838.54/24943.87/24213.26/8090.88 responses/s</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-19T23:21:06.491071" elapsed="0.000770"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${output}</arg>
<arg>RESULT</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-19T23:21:06.492208" elapsed="0.000740"/>
</kw>
<kw name="Get Lines Containing String" owner="String">
<msg time="2026-10-19T23:21:06.493784" level="INFO">1 out of 23 lines matched.</msg>
<msg time="2026-10-19T23:21:06.493994" level="INFO">${result_line} = RESULT: 16 switches 9 tests min/max/avg/stdev = 22838.54/24943.87/24213.26/8090.88 responses/s</msg>
<var>${result_line}</var>
<arg>${output}</arg>
<arg>RESULT</arg>
<doc>Returns lines of the given `string` that contain the `pattern`.</doc>
<status status="PASS" start="2026-10-19T23:21:06.493337" elapsed="0.000711"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-10-19T23:21:06.494912" level="INFO">@{results_list} = [ RESULT: | 16 | switches | 9 | tests | min/max/avg/stdev | = | 22838.54/24943.87/24213.26/8090.88 | responses/s ]</msg>
<var>@{results_list}</var>
<arg>${result_line}</arg>
<doc>Splits the `string` using `separator` as a delimiter string.</doc>
<status status="PASS" start="2026-10-19T23:21:06.494392" elapsed="0.000596"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-19T23:21:06.496128" level="INFO">min/max/avg/stdev</msg>
<arg>${results_list[5]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-19T23:21:06.495390" elapsed="0.000850"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-19T23:21:06.497351" level="INFO">22838.54/24943.87/24213.26/8090.88</msg>
<arg>${results_list[7]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-19T23:21:06.496662" elapsed="0.000799"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-10-19T23:21:06.498581" level="INFO">@{result_name_list} = [ min | max | avg | stdev ]</msg>
<var>@{result_name_list}</var>
<arg>${results_list[5]}</arg>
<arg>/</arg>
<doc>Splits the `string` using `separator` as a delimiter string.</doc>
<status status="PASS" start="2026-10-19T23:21:06.497899" elapsed="0.000739"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-10-19T23:21:06.499713" level="INFO">@{result_value_list} = [ 22838.54 | 24943.87 | 24213.26 | 8090.88 ]</msg>
<var>@{result_value_list}</var>
<arg>${results_list[7]}</arg>
<arg>/</arg>
<doc>Splits the `string` using `separator` as a delimiter string.</doc>
<status status="PASS" start="2026-10-19T23:21:06.499062" elapsed="0.000707"/>
</kw>
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-10-19T23:21:06.500754" level="INFO">Length is 4.</msg>
<msg time="2026-10-19T23:21:06.500929" level="INFO">${num_stats} = 4</msg>
<var>${num_stats}</var>
<arg>${result_name_list}</arg>
<doc>Returns and logs the length of the given item as an integer.</doc>
<status status="PASS" start="2026-10-19T23:21:06.500117" elapsed="0.000882"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-19T23:21:06.502792" level="INFO">min :: 22838.54</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-19T23:21:06.501858" elapsed="0.001047"/>
</kw>
<var name="${i}">0</var>
<status status="PASS" start="2026-10-19T23:21:06.501458" elapsed="0.001537"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-19T23:21:06.504462" level="INFO">max :: 24943.87</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-19T23:21:06.503558" elapsed="0.001050"/>
</kw>
<var name="${i}">1</var>
<status status="PASS" start="2026-10-19T23:21:06.503171" elapsed="0.001504"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-19T23:21:06.506186" level="INFO">avg :: 24213.26</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-19T23:21:06.505230" elapsed="0.001067"/>
</kw>
<var name="${i}">2</var>
<status status="PASS" start="2026-10-19T23:21:06.504846" elapsed="0.001517"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-19T23:21:06.507872" level="INFO">stdev :: 8090.88</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-19T23:21:06.506933" elapsed="0.001073"/>
</kw>
<var name="${i}">3</var>
<status status="PASS" start="2026-10-19T23:21:06.506572" elapsed="0.001503"/>
</iter>
<var>${i}</var>
<value>0</value>
<value>${num_stats}</value>
<status status="PASS" start="2026-10-19T23:21:06.501125" elapsed="0.007017"/>
</for>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-19T23:21:06.509355" level="INFO">${min} = 22838.54</msg>
<var>${min}</var>
<arg>${result_value_list[${0}]}</arg>
<doc>Returns the given values which can then be assigned to a variable.</doc>
<status status="PASS" start="2026-10-19T23:21:06.508473" elapsed="0.000936"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-19T23:21:06.510637" level="INFO">${max} = 24943.87</msg>
<var>${max}</var>
<arg>${result_value_list[${1}]}</arg>
<doc>Returns the given values which can then be assigned to a variable.</doc>
<status status="PASS" start="2026-10-19T23:21:06.509768" elapsed="0.000922"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-19T23:21:06.511881" level="INFO">${average} = 24213.26</msg>
<var>${average}</var>
<arg>${result_value_list[${2}]}</arg>
<doc>Returns the given values which can then be assigned to a variable.</doc>
<status status="PASS" start="2026-10-19T23:21:06.511039" elapsed="0.000895"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-19T23:21:06.513154" level="INFO">${stdev} = 8090.88</msg>
<var>${stdev}</var>
<arg>${result_value_list[${3}]}</arg>
<doc>Returns the given values which can then be assigned to a variable.</doc>
<status status="PASS" start="2026-10-19T23:21:06.512280" elapsed="0.000927"/>
</kw>
<kw name="Get Time" owner="BuiltIn">
<msg time="2026-10-19T23:21:06.514365" level="INFO">${date} = 2026-10-19 23:21:06</msg>
<var>${date}</var>
<arg>d,m,s</arg>
<doc>Returns the given time in the requested format.</doc>
<status status="PASS" start="2026-10-19T23:21:06.513632" elapsed="0.000785"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-19T23:21:06.515584" level="INFO">CBench Result: 2026-10-19 23:21:06,-m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633,22838.54,24943.87,24213.26,8090.88</msg>
<arg>CBench Result: ${date},${cbench_args},${min},${max},${average},${stdev}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-19T23:21:06.514845" elapsed="0.000850"/>
</kw>
<kw name="Log Results And Determine Status">
<kw name="Append To File" owner="OperatingSystem">
<msg time="2026-10-19T23:21:06.517905" 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-10-19T23:21:06.516889" elapsed="0.001174"/>
</kw>
<kw name="Should Be True" owner="BuiltIn">
<arg>${average} &gt; ${threshold}</arg>
<arg>${average} flow_mods per/sec did not exceed threshold of ${threshold}</arg>
<doc>Fails if the given condition is not true.</doc>
<status status="PASS" start="2026-10-19T23:21:06.518412" elapsed="0.000889"/>
</kw>
<arg>${min}</arg>
<arg>${max}</arg>
<arg>${average}</arg>
<arg>${average_threshold}</arg>
<arg>${output_filename}</arg>
<status status="PASS" start="2026-10-19T23:21:06.516010" elapsed="0.003419"/>
</kw>
<arg>-m ${duration_in_ms} -M ${num_of_unique_macs} -S ${switch_count} -l ${loops} -D ${start_delay} -p ${of_port}</arg>
<arg>${latency_threshold}</arg>
<arg>${latency_results_file}</arg>
<status status="PASS" start="2026-10-19T23:10:59.969822" elapsed="606.549756"/>
</kw>
<kw name="Sleep" owner="BuiltIn">
<msg time="2026-10-19T23:21:06.520567" level="INFO">Slept 0 seconds.</msg>
<arg>${test_delay}</arg>
<doc>Pauses execution for the given time.</doc>
<status status="PASS" start="2026-10-19T23:21:06.519893" elapsed="0.000792"/>
</kw>
<kw name="Log Results As Zero If Cbench Timed Out" type="TEARDOWN">
<kw name="Run Keyword If Timeout Occurred" owner="BuiltIn">
<arg>Log Results And Determine Status</arg>
<arg>0</arg>
<arg>0</arg>
<arg>0</arg>
<arg>0</arg>
<arg>${output_filename}</arg>
<doc>Runs the given keyword if either a test or a keyword timeout has occurred.</doc>
<status status="PASS" start="2026-10-19T23:21:06.521772" elapsed="0.000687"/>
</kw>
<status status="PASS" start="2026-10-19T23:21:06.521114" elapsed="0.001575"/>
</kw>
<doc>cbench executed in default latency mode. Test parameters have defaults, but can be overridden
on the pybot command line</doc>
<tag>cbench</tag>
<tag>latency</tag>
<timeout value="15 minutes"/>
<status status="PASS" start="2026-10-19T23:10:59.967353" elapsed="606.555414"/>
</test>
<test id="s1-t2" name="Cbench Throughput Test" line="51">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-19T23:21:06.525886" level="INFO">Cbench tests using 10 iterations of 60 second tests. Switch Count: 16. Unique MACS to cycle: 100</msg>
<arg>Cbench tests using ${loops} iterations of ${duration_in_secs} second tests. Switch Count: ${switch_count}. Unique MACS to cycle: ${num_of_unique_macs}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-19T23:21:06.524955" elapsed="0.001078"/>
</kw>
<kw name="Run Cbench And Log Results">
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-10-19T23:21:06.528022" level="INFO">${output_filename} = throughput.csv</msg>
<arg>${output_filename}</arg>
<doc>Makes the variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-10-19T23:21:06.527542" elapsed="0.000536"/>
</kw>
<if>
<branch type="IF" condition="&quot;${cbench_system}&quot; == &quot;localhost&quot;">
<kw name="Run" owner="OperatingSystem">
<var>${output}</var>
<arg>${cbench_executable} -c ${ODL_SYSTEM_IP} ${cbench_args}</arg>
<doc>*This keyword is considered deprecated. Use the [Process] library instead.*</doc>
<status status="NOT RUN" start="2026-10-19T23:21:06.528704" elapsed="0.000031"/>
</kw>
<status status="NOT RUN" start="2026-10-19T23:21:06.528166" elapsed="0.000616"/>
</branch>
<branch type="ELSE">
<kw name="Run Command On Remote System" owner="Utils">
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot; and &quot;${return_stderr}&quot;!=&quot;True&quot;">
<kw name="Fail" owner="BuiltIn">
<arg>At least one of {return_stdout} or {return_stderr} args should be set to True</arg>
<doc>Fails the test or task with the given message and optionally alters its tags.</doc>
<status status="NOT RUN" start="2026-10-19T23:21:06.530227" elapsed="0.000027"/>
</kw>
<status status="NOT RUN" start="2026-10-19T23:21:06.529918" elapsed="0.000379"/>
</branch>
<status status="PASS" start="2026-10-19T23:21:06.529893" elapsed="0.000439"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-10-19T23:21:06.530831" level="INFO">index=None
host=None
alias=None
port=22
timeout=3 seconds
newline=

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

prompt=None
term_type=vt100
width=80
height=24
path_separator=/
encoding=utf8
escape_ansi=False
encoding_errors=strict</msg>
<var>${current_ssh_connection}</var>
<doc>Returns information about the connection.</doc>
<status status="PASS" start="2026-10-19T23:21:06.530595" elapsed="0.000434"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-19T23:21:06.531742" level="INFO">Attempting to execute command "/usr/local/bin/cbench -c 10.30.170.12 -t -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633" on remote system "10.30.170.237" by user "jenkins" with keyfile pass "any" and prompt "&gt;" and password ""</msg>
<arg>Attempting to execute command "${cmd}" on remote system "${system}" by user "${user}" with keyfile pass "${keyfile_pass}" and prompt "${prompt}" and password "${password}"</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-19T23:21:06.531262" elapsed="0.000552"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-10-19T23:21:06.532483" level="INFO">${conn_id} = 7</msg>
<var>${conn_id}</var>
<arg>${system}</arg>
<arg>prompt=${prompt}</arg>
<arg>timeout=${prompt_timeout}</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-10-19T23:21:06.532050" elapsed="0.000487"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-10-19T23:21:06.533657" level="INFO">Length is 0.</msg>
<msg time="2026-10-19T23:21:06.533765" level="INFO">${pwd_length} = 0</msg>
<var>${pwd_length}</var>
<arg>${password}</arg>
<doc>Returns and logs the length of the given item as an integer.</doc>
<status status="PASS" start="2026-10-19T23:21:06.533258" elapsed="0.000537"/>
</kw>
<kw name="Run Keyword And Return If" owner="BuiltIn">
<arg>${pwd_length} &gt; 0</arg>
<arg>SSHLibrary.Login</arg>
<arg>${user}</arg>
<arg>${password}</arg>
<arg>delay=${delay}</arg>
<doc>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-19T23:21:06.533988" elapsed="0.000399"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-10-19T23:21:06.535468" level="INFO">Logging into '10.30.170.237:22' as 'jenkins'.</msg>
<msg time="2026-10-19T23:21:07.157516" 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 Mon Oct 19 23:21:06 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.237
  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: Mon Oct 19 23:11:00 2026 from 10.30.171.191
[?2004h[jenkins@releng-50965-78-1-mininet-ovs-217-0 ~]&gt;</msg>
<arg>${user}</arg>
<arg>${USER_HOME}/.ssh/${SSH_KEY}</arg>
<arg>${KEYFILE_PASS}</arg>
<arg>delay=${delay}</arg>
<doc>Logs into the SSH server using key-based authentication.</doc>
<status status="PASS" start="2026-10-19T23:21:06.535106" elapsed="0.622598"/>
</kw>
<msg time="2026-10-19T23:21:07.157786" level="INFO">Returning from the enclosing user keyword.</msg>
<arg>SSHLibrary.Login With Public Key</arg>
<arg>${user}</arg>
<arg>${USER_HOME}/.ssh/${SSH_KEY}</arg>
<arg>${KEYFILE_PASS}</arg>
<arg>delay=${delay}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-19T23:21:06.534606" elapsed="0.623271"/>
</kw>
<arg>${user}</arg>
<arg>${password}</arg>
<doc>On active SSH session: if given non-empty password, do Login, else do Login With Public Key.</doc>
<status status="PASS" start="2026-10-19T23:21:06.532781" elapsed="0.625219"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-19T23:21:07.158533" level="INFO">Executing command '/usr/local/bin/cbench -c 10.30.170.12 -t -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633'.</msg>
<msg time="2026-10-19T23:31:13.213091" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-10-19T23:31:13.213659" level="INFO">${stdout} = </msg>
<msg time="2026-10-19T23:31:13.213756" level="INFO">${stderr} = cbench: controller benchmarking tool
   running in mode 'throughput'
   connecting to controller at 10.30.170.12:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with ...</msg>
<var>${stdout}</var>
<var>${stderr}</var>
<arg>${cmd}</arg>
<arg>return_stderr=True</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-10-19T23:21:07.158246" elapsed="606.055562"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-10-19T23:31:13.214275" elapsed="0.000765"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-19T23:31:13.216244" level="INFO">cbench: controller benchmarking tool
   running in mode 'throughput'
   connecting to controller at 10.30.170.12: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.12. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
23:22:12.270 16  switches: flows:  594372 588991 592724 578772 585881 585623 588620 589990 581881 586986 583812 583859 582333 588973 593999 594697  total = 156.691883 per ms 
23:23:12.372 16  switches: flows:  618153 623293 628093 622320 624437 623734 617860 623226 618294 633582 629514 618603 626598 627670 625324 620053  total = 166.066410 per ms 
23:24:12.474 16  switches: flows:  612344 613377 612080 611488 615002 613814 605102 621061 619794 621627 617804 617714 616570 615026 615676 617313  total = 163.819978 per ms 
23:25:12.575 16  switches: flows:  613610 618203 619548 619985 622334 619948 620136 624294 618201 623270 620695 619675 625498 617541 616972 613426  total = 164.944157 per ms 
23:26:12.677 16  switches: flows:  631327 620447 635079 622585 623604 623996 626578 624747 631315 628573 625602 632998 619916 626711 631099 627839  total = 166.926169 per ms 
23:27:12.778 16  switches: flows:  639501 639167 636931 640186 636076 638749 630586 631908 640085 644233 632808 639600 634736 632649 632880 633016  total = 169.434474 per ms 
23:28:12.878 16  switches: flows:  626499 633683 632706 624522 640564 638711 629325 639133 627343 636533 633070 624329 635658 635497 635049 632920  total = 168.476756 per ms 
23:29:12.979 16  switches: flows:  597134 617226 605417 602384 610273 608383 615319 604364 607819 611135 604375 606794 608630 610347 605480 607990  total = 161.778772 per ms 
23:30:13.081 16  switches: flows:  599229 595861 591597 592380 586321 594156 598137 590811 589169 607336 592019 594807 590688 589886 595600 592631  total = 158.078778 per ms 
23:31:13.183 16  switches: flows:  650786 655406 634124 646112 641981 636577 639590 646020 648370 655726 637757 637074 638443 644170 637612 635718  total = 171.135132 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 158078.78/171135.13/165628.96/55340.67 responses/s</msg>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-19T23:31:13.215543" elapsed="0.001017"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="PASS" start="2026-10-19T23:31:13.216987" elapsed="0.000090"/>
</return>
<status status="PASS" start="2026-10-19T23:31:13.216743" elapsed="0.000410"/>
</branch>
<status status="PASS" start="2026-10-19T23:31:13.216693" elapsed="0.000512"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="NOT RUN" start="2026-10-19T23:31:13.217465" elapsed="0.000026"/>
</return>
<status status="NOT RUN" start="2026-10-19T23:31:13.217392" elapsed="0.000187"/>
</branch>
<status status="NOT RUN" start="2026-10-19T23:31:13.217359" elapsed="0.000265"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-10-19T23:31:13.217686" elapsed="0.000028"/>
</return>
<kw name="Restore_Current_Ssh_Connection_From_Index" owner="SSHKeywords" type="TEARDOWN">
<kw name="Run Keyword And Return If" owner="BuiltIn">
<arg>${connection_index} is not None</arg>
<arg>SSHLibrary.Switch Connection</arg>
<arg>${connection_index}</arg>
<doc>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-19T23:31:13.219259" elapsed="0.000715"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<arg>127.0.0.1</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-10-19T23:31:13.220363" elapsed="0.000355"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-10-19T23:31:13.220992" elapsed="0.000233"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-10-19T23:31:13.218353" elapsed="0.002978"/>
</kw>
<msg time="2026-10-19T23:31:13.221593" level="INFO">${output} = cbench: controller benchmarking tool
   running in mode 'throughput'
   connecting to controller at 10.30.170.12:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with ...</msg>
<var>${output}</var>
<arg>${cbench_system}</arg>
<arg>${cbench_executable} -c ${ODL_SYSTEM_IP} ${cbench_args}</arg>
<arg>prompt_timeout=${test_timeout}</arg>
<arg>return_stdout=False</arg>
<arg>return_stderr=True</arg>
<doc>Reduces the common work of running a command on a remote system to a single higher level
robot keyword, taking care to log in with a public key and. The command given is written and the return value
depends on the passed argument values of return_stdout (default: True) and return_stderr (default: False).
At least one should be True, or the keyword will exit and FAIL. If both are True, the resulting return value
will be a two element list containing both. Otherwise the resulting return value is a string.
No test conditions are checked.</doc>
<status status="PASS" start="2026-10-19T23:21:06.529222" elapsed="606.692435"/>
</kw>
<status status="PASS" start="2026-10-19T23:21:06.528815" elapsed="606.692938"/>
</branch>
<status status="PASS" start="2026-10-19T23:21:06.528140" elapsed="606.693660"/>
</if>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-19T23:31:13.222835" level="INFO">cbench: controller benchmarking tool
   running in mode 'throughput'
   connecting to controller at 10.30.170.12: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.12. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
23:22:12.270 16  switches: flows:  594372 588991 592724 578772 585881 585623 588620 589990 581881 586986 583812 583859 582333 588973 593999 594697  total = 156.691883 per ms 
23:23:12.372 16  switches: flows:  618153 623293 628093 622320 624437 623734 617860 623226 618294 633582 629514 618603 626598 627670 625324 620053  total = 166.066410 per ms 
23:24:12.474 16  switches: flows:  612344 613377 612080 611488 615002 613814 605102 621061 619794 621627 617804 617714 616570 615026 615676 617313  total = 163.819978 per ms 
23:25:12.575 16  switches: flows:  613610 618203 619548 619985 622334 619948 620136 624294 618201 623270 620695 619675 625498 617541 616972 613426  total = 164.944157 per ms 
23:26:12.677 16  switches: flows:  631327 620447 635079 622585 623604 623996 626578 624747 631315 628573 625602 632998 619916 626711 631099 627839  total = 166.926169 per ms 
23:27:12.778 16  switches: flows:  639501 639167 636931 640186 636076 638749 630586 631908 640085 644233 632808 639600 634736 632649 632880 633016  total = 169.434474 per ms 
23:28:12.878 16  switches: flows:  626499 633683 632706 624522 640564 638711 629325 639133 627343 636533 633070 624329 635658 635497 635049 632920  total = 168.476756 per ms 
23:29:12.979 16  switches: flows:  597134 617226 605417 602384 610273 608383 615319 604364 607819 611135 604375 606794 608630 610347 605480 607990  total = 161.778772 per ms 
23:30:13.081 16  switches: flows:  599229 595861 591597 592380 586321 594156 598137 590811 589169 607336 592019 594807 590688 589886 595600 592631  total = 158.078778 per ms 
23:31:13.183 16  switches: flows:  650786 655406 634124 646112 641981 636577 639590 646020 648370 655726 637757 637074 638443 644170 637612 635718  total = 171.135132 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 158078.78/171135.13/165628.96/55340.67 responses/s</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-19T23:31:13.222204" elapsed="0.000784"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${output}</arg>
<arg>RESULT</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-19T23:31:13.223348" elapsed="0.000758"/>
</kw>
<kw name="Get Lines Containing String" owner="String">
<msg time="2026-10-19T23:31:13.224899" level="INFO">1 out of 23 lines matched.</msg>
<msg time="2026-10-19T23:31:13.225104" level="INFO">${result_line} = RESULT: 16 switches 9 tests min/max/avg/stdev = 158078.78/171135.13/165628.96/55340.67 responses/s</msg>
<var>${result_line}</var>
<arg>${output}</arg>
<arg>RESULT</arg>
<doc>Returns lines of the given `string` that contain the `pattern`.</doc>
<status status="PASS" start="2026-10-19T23:31:13.224470" elapsed="0.000686"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-10-19T23:31:13.225993" level="INFO">@{results_list} = [ RESULT: | 16 | switches | 9 | tests | min/max/avg/stdev | = | 158078.78/171135.13/165628.96/55340.67 | responses/s ]</msg>
<var>@{results_list}</var>
<arg>${result_line}</arg>
<doc>Splits the `string` using `separator` as a delimiter string.</doc>
<status status="PASS" start="2026-10-19T23:31:13.225496" elapsed="0.000572"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-19T23:31:13.227212" level="INFO">min/max/avg/stdev</msg>
<arg>${results_list[5]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-19T23:31:13.226467" elapsed="0.000857"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-19T23:31:13.228431" level="INFO">158078.78/171135.13/165628.96/55340.67</msg>
<arg>${results_list[7]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-19T23:31:13.227747" elapsed="0.000826"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-10-19T23:31:13.229566" level="INFO">@{result_name_list} = [ min | max | avg | stdev ]</msg>
<var>@{result_name_list}</var>
<arg>${results_list[5]}</arg>
<arg>/</arg>
<doc>Splits the `string` using `separator` as a delimiter string.</doc>
<status status="PASS" start="2026-10-19T23:31:13.228903" elapsed="0.000720"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-10-19T23:31:13.230694" level="INFO">@{result_value_list} = [ 158078.78 | 171135.13 | 165628.96 | 55340.67 ]</msg>
<var>@{result_value_list}</var>
<arg>${results_list[7]}</arg>
<arg>/</arg>
<doc>Splits the `string` using `separator` as a delimiter string.</doc>
<status status="PASS" start="2026-10-19T23:31:13.230026" elapsed="0.000724"/>
</kw>
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-10-19T23:31:13.231731" level="INFO">Length is 4.</msg>
<msg time="2026-10-19T23:31:13.231905" level="INFO">${num_stats} = 4</msg>
<var>${num_stats}</var>
<arg>${result_name_list}</arg>
<doc>Returns and logs the length of the given item as an integer.</doc>
<status status="PASS" start="2026-10-19T23:31:13.231096" elapsed="0.000858"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-19T23:31:13.233756" level="INFO">min :: 158078.78</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-19T23:31:13.232815" elapsed="0.001054"/>
</kw>
<var name="${i}">0</var>
<status status="PASS" start="2026-10-19T23:31:13.232417" elapsed="0.001518"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-19T23:31:13.235430" level="INFO">max :: 171135.13</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-19T23:31:13.234525" elapsed="0.001046"/>
</kw>
<var name="${i}">1</var>
<status status="PASS" start="2026-10-19T23:31:13.234135" elapsed="0.001504"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-19T23:31:13.237103" level="INFO">avg :: 165628.96</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-19T23:31:13.236183" elapsed="0.001032"/>
</kw>
<var name="${i}">2</var>
<status status="PASS" start="2026-10-19T23:31:13.235808" elapsed="0.001472"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-19T23:31:13.238778" level="INFO">stdev :: 55340.67</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-19T23:31:13.237836" elapsed="0.001065"/>
</kw>
<var name="${i}">3</var>
<status status="PASS" start="2026-10-19T23:31:13.237446" elapsed="0.001522"/>
</iter>
<var>${i}</var>
<value>0</value>
<value>${num_stats}</value>
<status status="PASS" start="2026-10-19T23:31:13.232093" elapsed="0.006937"/>
</for>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-19T23:31:13.240283" level="INFO">${min} = 158078.78</msg>
<var>${min}</var>
<arg>${result_value_list[${0}]}</arg>
<doc>Returns the given values which can then be assigned to a variable.</doc>
<status status="PASS" start="2026-10-19T23:31:13.239391" elapsed="0.000946"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-19T23:31:13.241650" level="INFO">${max} = 171135.13</msg>
<var>${max}</var>
<arg>${result_value_list[${1}]}</arg>
<doc>Returns the given values which can then be assigned to a variable.</doc>
<status status="PASS" start="2026-10-19T23:31:13.240693" elapsed="0.001024"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-19T23:31:13.243045" level="INFO">${average} = 165628.96</msg>
<var>${average}</var>
<arg>${result_value_list[${2}]}</arg>
<doc>Returns the given values which can then be assigned to a variable.</doc>
<status status="PASS" start="2026-10-19T23:31:13.242150" elapsed="0.000980"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-19T23:31:13.244322" level="INFO">${stdev} = 55340.67</msg>
<var>${stdev}</var>
<arg>${result_value_list[${3}]}</arg>
<doc>Returns the given values which can then be assigned to a variable.</doc>
<status status="PASS" start="2026-10-19T23:31:13.243451" elapsed="0.000924"/>
</kw>
<kw name="Get Time" owner="BuiltIn">
<msg time="2026-10-19T23:31:13.245614" level="INFO">${date} = 2026-10-19 23:31:13</msg>
<var>${date}</var>
<arg>d,m,s</arg>
<doc>Returns the given time in the requested format.</doc>
<status status="PASS" start="2026-10-19T23:31:13.244854" elapsed="0.000812"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-19T23:31:13.246798" level="INFO">CBench Result: 2026-10-19 23:31:13,-t -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633,158078.78,171135.13,165628.96,55340.67</msg>
<arg>CBench Result: ${date},${cbench_args},${min},${max},${average},${stdev}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-19T23:31:13.246084" elapsed="0.000825"/>
</kw>
<kw name="Log Results And Determine Status">
<kw name="Append To File" owner="OperatingSystem">
<msg time="2026-10-19T23:31:13.248763" 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-10-19T23:31:13.248096" elapsed="0.000812"/>
</kw>
<kw name="Should Be True" owner="BuiltIn">
<arg>${average} &gt; ${threshold}</arg>
<arg>${average} flow_mods per/sec did not exceed threshold of ${threshold}</arg>
<doc>Fails if the given condition is not true.</doc>
<status status="PASS" start="2026-10-19T23:31:13.249273" elapsed="0.001202"/>
</kw>
<arg>${min}</arg>
<arg>${max}</arg>
<arg>${average}</arg>
<arg>${average_threshold}</arg>
<arg>${output_filename}</arg>
<status status="PASS" start="2026-10-19T23:31:13.247194" elapsed="0.003445"/>
</kw>
<arg>-t -m ${duration_in_ms} -M ${num_of_unique_macs} -S ${switch_count} -l ${loops} -D ${start_delay} -p ${of_port}</arg>
<arg>${throughput_threshold}</arg>
<arg>${throughput_results_file}</arg>
<status status="PASS" start="2026-10-19T23:21:06.526663" elapsed="606.724093"/>
</kw>
<kw name="Sleep" owner="BuiltIn">
<msg time="2026-10-19T23:31:13.251741" level="INFO">Slept 0 seconds.</msg>
<arg>${test_delay}</arg>
<doc>Pauses execution for the given time.</doc>
<status status="PASS" start="2026-10-19T23:31:13.251088" elapsed="0.000765"/>
</kw>
<kw name="Log Results As Zero If Cbench Timed Out" type="TEARDOWN">
<kw name="Run Keyword If Timeout Occurred" owner="BuiltIn">
<arg>Log Results And Determine Status</arg>
<arg>0</arg>
<arg>0</arg>
<arg>0</arg>
<arg>0</arg>
<arg>${output_filename}</arg>
<doc>Runs the given keyword if either a test or a keyword timeout has occurred.</doc>
<status status="PASS" start="2026-10-19T23:31:13.253047" elapsed="0.000588"/>
</kw>
<status status="PASS" start="2026-10-19T23:31:13.252360" elapsed="0.001415"/>
</kw>
<doc>cbench executed in throughput mode (-t). Test parameters have defaults, but can be overridden
on the pybot command line</doc>
<tag>cbench</tag>
<tag>throughput</tag>
<timeout value="15 minutes"/>
<status status="PASS" start="2026-10-19T23:21:06.523648" elapsed="606.730197"/>
</test>
<test id="s1-t3" name="Rerun Latency Test To Check Bug 6176" line="65">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-19T23:31:13.255960" level="INFO">Cbench tests using 10 iterations of 60 second tests. Switch Count: 16. Unique MACS to cycle: 100</msg>
<arg>Cbench tests using ${loops} iterations of ${duration_in_secs} second tests. Switch Count: ${switch_count}. Unique MACS to cycle: ${num_of_unique_macs}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-19T23:31:13.255543" elapsed="0.000490"/>
</kw>
<kw name="Run Cbench And Log Results">
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-10-19T23:31:13.257477" level="INFO">${output_filename} = bug.csv</msg>
<arg>${output_filename}</arg>
<doc>Makes the variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-10-19T23:31:13.257074" elapsed="0.000482"/>
</kw>
<if>
<branch type="IF" condition="&quot;${cbench_system}&quot; == &quot;localhost&quot;">
<kw name="Run" owner="OperatingSystem">
<var>${output}</var>
<arg>${cbench_executable} -c ${ODL_SYSTEM_IP} ${cbench_args}</arg>
<doc>*This keyword is considered deprecated. Use the [Process] library instead.*</doc>
<status status="NOT RUN" start="2026-10-19T23:31:13.257975" elapsed="0.000028"/>
</kw>
<status status="NOT RUN" start="2026-10-19T23:31:13.257696" elapsed="0.000351"/>
</branch>
<branch type="ELSE">
<kw name="Run Command On Remote System" owner="Utils">
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot; and &quot;${return_stderr}&quot;!=&quot;True&quot;">
<kw name="Fail" owner="BuiltIn">
<arg>At least one of {return_stdout} or {return_stderr} args should be set to True</arg>
<doc>Fails the test or task with the given message and optionally alters its tags.</doc>
<status status="NOT RUN" start="2026-10-19T23:31:13.259495" elapsed="0.000050"/>
</kw>
<status status="NOT RUN" start="2026-10-19T23:31:13.259194" elapsed="0.000395"/>
</branch>
<status status="PASS" start="2026-10-19T23:31:13.259171" elapsed="0.000449"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-10-19T23:31:13.260101" level="INFO">index=None
host=None
alias=None
port=22
timeout=3 seconds
newline=

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

prompt=None
term_type=vt100
width=80
height=24
path_separator=/
encoding=utf8
escape_ansi=False
encoding_errors=strict</msg>
<var>${current_ssh_connection}</var>
<doc>Returns information about the connection.</doc>
<status status="PASS" start="2026-10-19T23:31:13.259859" elapsed="0.000422"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-19T23:31:13.260977" level="INFO">Attempting to execute command "/usr/local/bin/cbench -c 10.30.170.12 -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633" on remote system "10.30.170.237" by user "jenkins" with keyfile pass "any" and prompt "&gt;" and password ""</msg>
<arg>Attempting to execute command "${cmd}" on remote system "${system}" by user "${user}" with keyfile pass "${keyfile_pass}" and prompt "${prompt}" and password "${password}"</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-19T23:31:13.260536" elapsed="0.000530"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-10-19T23:31:13.261742" level="INFO">${conn_id} = 9</msg>
<var>${conn_id}</var>
<arg>${system}</arg>
<arg>prompt=${prompt}</arg>
<arg>timeout=${prompt_timeout}</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-10-19T23:31:13.261285" elapsed="0.000491"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-10-19T23:31:13.262907" level="INFO">Length is 0.</msg>
<msg time="2026-10-19T23:31:13.263015" level="INFO">${pwd_length} = 0</msg>
<var>${pwd_length}</var>
<arg>${password}</arg>
<doc>Returns and logs the length of the given item as an integer.</doc>
<status status="PASS" start="2026-10-19T23:31:13.262519" elapsed="0.000526"/>
</kw>
<kw name="Run Keyword And Return If" owner="BuiltIn">
<arg>${pwd_length} &gt; 0</arg>
<arg>SSHLibrary.Login</arg>
<arg>${user}</arg>
<arg>${password}</arg>
<arg>delay=${delay}</arg>
<doc>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-19T23:31:13.263250" elapsed="0.000412"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-10-19T23:31:13.264774" level="INFO">Logging into '10.30.170.237:22' as 'jenkins'.</msg>
<msg time="2026-10-19T23:31:13.993880" 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 Mon Oct 19 23:31:13 UTC 2026

  System load:  0.66               Processes:             105
  Usage of /:   20.3% of 38.58GB   Users logged in:       0
  Memory usage: 4%                 IPv4 address for ens3: 10.30.170.237
  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: Mon Oct 19 23:21:07 2026 from 10.30.171.191
[?2004h[jenkins@releng-50965-78-1-mininet-ovs-217-0 ~]&gt;</msg>
<arg>${user}</arg>
<arg>${USER_HOME}/.ssh/${SSH_KEY}</arg>
<arg>${KEYFILE_PASS}</arg>
<arg>delay=${delay}</arg>
<doc>Logs into the SSH server using key-based authentication.</doc>
<status status="PASS" start="2026-10-19T23:31:13.264393" elapsed="0.729679"/>
</kw>
<msg time="2026-10-19T23:31:13.994154" level="INFO">Returning from the enclosing user keyword.</msg>
<arg>SSHLibrary.Login With Public Key</arg>
<arg>${user}</arg>
<arg>${USER_HOME}/.ssh/${SSH_KEY}</arg>
<arg>${KEYFILE_PASS}</arg>
<arg>delay=${delay}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-19T23:31:13.263861" elapsed="0.730369"/>
</kw>
<arg>${user}</arg>
<arg>${password}</arg>
<doc>On active SSH session: if given non-empty password, do Login, else do Login With Public Key.</doc>
<status status="PASS" start="2026-10-19T23:31:13.262018" elapsed="0.732313"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-19T23:31:13.994832" level="INFO">Executing command '/usr/local/bin/cbench -c 10.30.170.12 -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633'.</msg>
<msg time="2026-10-19T23:41:20.040925" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-10-19T23:41:20.041489" level="INFO">${stdout} = </msg>
<msg time="2026-10-19T23:41:20.041651" level="INFO">${stderr} = cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.170.12:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with 100...</msg>
<var>${stdout}</var>
<var>${stderr}</var>
<arg>${cmd}</arg>
<arg>return_stderr=True</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-10-19T23:31:13.994582" elapsed="606.047125"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-10-19T23:41:20.042209" elapsed="0.000754"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-19T23:41:20.044173" level="INFO">cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.170.12: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.12. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
23:32:19.096 16  switches: flows:  90636 93440 90051 91680 91068 91035 92375 91911 91700 101712 89807 91523 89307 88128 91420 91988  total = 24.463017 per ms 
23:33:19.196 16  switches: flows:  88909 91927 89329 90893 91454 91463 90269 92720 92678 91178 93083 88875 89584 86678 89596 88691  total = 24.081934 per ms 
23:34:19.297 16  switches: flows:  91642 93605 91456 93790 94698 94703 92913 93864 93203 93668 95086 89052 93942 88648 93432 90012  total = 24.687344 per ms 
23:35:19.397 16  switches: flows:  90789 93676 91502 93945 93089 93623 93005 93719 94029 94247 95295 90318 92436 88190 91764 89856  total = 24.616947 per ms 
23:36:19.497 16  switches: flows:  92431 92720 89956 94347 93606 92453 93840 93595 94512 93336 95582 91558 92629 88927 93705 90500  total = 24.687056 per ms 
23:37:19.597 16  switches: flows:  92756 93448 92377 95676 95264 93689 93294 93317 93431 92665 95780 90573 92855 90972 93697 92022  total = 24.822175 per ms 
23:38:19.698 16  switches: flows:  93095 93496 92355 96137 95496 93729 94385 97570 94673 97413 97878 91271 96214 90917 93587 92891  total = 25.143125 per ms 
23:39:19.798 16  switches: flows:  92287 92095 93009 95639 94826 93999 93001 94475 93437 94333 96736 89651 92564 89536 92424 90689  total = 24.770340 per ms 
23:40:19.898 16  switches: flows:  93544 94082 93058 95599 95509 94318 95045 95100 94403 95603 97204 91185 94292 90531 95255 92506  total = 25.078707 per ms 
23:41:19.998 16  switches: flows:  96845 97006 95332 99009 98226 97614 97337 97559 97522 96799 99972 92116 95288 93403 97002 94708  total = 25.719371 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 24081.93/25719.37/24845.22/8292.45 responses/s</msg>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-19T23:41:20.043445" elapsed="0.001006"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="PASS" start="2026-10-19T23:41:20.045176" elapsed="0.000067"/>
</return>
<status status="PASS" start="2026-10-19T23:41:20.044881" elapsed="0.000438"/>
</branch>
<status status="PASS" start="2026-10-19T23:41:20.044825" elapsed="0.000544"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="NOT RUN" start="2026-10-19T23:41:20.045620" elapsed="0.000038"/>
</return>
<status status="NOT RUN" start="2026-10-19T23:41:20.045482" elapsed="0.000240"/>
</branch>
<status status="NOT RUN" start="2026-10-19T23:41:20.045451" elapsed="0.000316"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-10-19T23:41:20.045834" 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-10-19T23:41:20.047478" elapsed="0.000710"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<arg>127.0.0.1</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-10-19T23:41:20.048583" elapsed="0.000337"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-10-19T23:41:20.049213" elapsed="0.000200"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-10-19T23:41:20.046582" elapsed="0.002968"/>
</kw>
<msg time="2026-10-19T23:41:20.049778" level="INFO">${output} = cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.170.12:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with 100...</msg>
<var>${output}</var>
<arg>${cbench_system}</arg>
<arg>${cbench_executable} -c ${ODL_SYSTEM_IP} ${cbench_args}</arg>
<arg>prompt_timeout=${test_timeout}</arg>
<arg>return_stdout=False</arg>
<arg>return_stderr=True</arg>
<doc>Reduces the common work of running a command on a remote system to a single higher level
robot keyword, taking care to log in with a public key and. The command given is written and the return value
depends on the passed argument values of return_stdout (default: True) and return_stderr (default: False).
At least one should be True, or the keyword will exit and FAIL. If both are True, the resulting return value
will be a two element list containing both. Otherwise the resulting return value is a string.
No test conditions are checked.</doc>
<status status="PASS" start="2026-10-19T23:31:13.258492" elapsed="606.791342"/>
</kw>
<status status="PASS" start="2026-10-19T23:31:13.258096" elapsed="606.791834"/>
</branch>
<status status="PASS" start="2026-10-19T23:31:13.257670" elapsed="606.792308"/>
</if>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-19T23:41:20.051001" level="INFO">cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.170.12: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.12. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
23:32:19.096 16  switches: flows:  90636 93440 90051 91680 91068 91035 92375 91911 91700 101712 89807 91523 89307 88128 91420 91988  total = 24.463017 per ms 
23:33:19.196 16  switches: flows:  88909 91927 89329 90893 91454 91463 90269 92720 92678 91178 93083 88875 89584 86678 89596 88691  total = 24.081934 per ms 
23:34:19.297 16  switches: flows:  91642 93605 91456 93790 94698 94703 92913 93864 93203 93668 95086 89052 93942 88648 93432 90012  total = 24.687344 per ms 
23:35:19.397 16  switches: flows:  90789 93676 91502 93945 93089 93623 93005 93719 94029 94247 95295 90318 92436 88190 91764 89856  total = 24.616947 per ms 
23:36:19.497 16  switches: flows:  92431 92720 89956 94347 93606 92453 93840 93595 94512 93336 95582 91558 92629 88927 93705 90500  total = 24.687056 per ms 
23:37:19.597 16  switches: flows:  92756 93448 92377 95676 95264 93689 93294 93317 93431 92665 95780 90573 92855 90972 93697 92022  total = 24.822175 per ms 
23:38:19.698 16  switches: flows:  93095 93496 92355 96137 95496 93729 94385 97570 94673 97413 97878 91271 96214 90917 93587 92891  total = 25.143125 per ms 
23:39:19.798 16  switches: flows:  92287 92095 93009 95639 94826 93999 93001 94475 93437 94333 96736 89651 92564 89536 92424 90689  total = 24.770340 per ms 
23:40:19.898 16  switches: flows:  93544 94082 93058 95599 95509 94318 95045 95100 94403 95603 97204 91185 94292 90531 95255 92506  total = 25.078707 per ms 
23:41:19.998 16  switches: flows:  96845 97006 95332 99009 98226 97614 97337 97559 97522 96799 99972 92116 95288 93403 97002 94708  total = 25.719371 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 24081.93/25719.37/24845.22/8292.45 responses/s</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-19T23:41:20.050398" elapsed="0.000777"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${output}</arg>
<arg>RESULT</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-19T23:41:20.051541" elapsed="0.000722"/>
</kw>
<kw name="Get Lines Containing String" owner="String">
<msg time="2026-10-19T23:41:20.053090" level="INFO">1 out of 23 lines matched.</msg>
<msg time="2026-10-19T23:41:20.053296" level="INFO">${result_line} = RESULT: 16 switches 9 tests min/max/avg/stdev = 24081.93/25719.37/24845.22/8292.45 responses/s</msg>
<var>${result_line}</var>
<arg>${output}</arg>
<arg>RESULT</arg>
<doc>Returns lines of the given `string` that contain the `pattern`.</doc>
<status status="PASS" start="2026-10-19T23:41:20.052685" elapsed="0.000663"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-10-19T23:41:20.054217" level="INFO">@{results_list} = [ RESULT: | 16 | switches | 9 | tests | min/max/avg/stdev | = | 24081.93/25719.37/24845.22/8292.45 | responses/s ]</msg>
<var>@{results_list}</var>
<arg>${result_line}</arg>
<doc>Splits the `string` using `separator` as a delimiter string.</doc>
<status status="PASS" start="2026-10-19T23:41:20.053723" elapsed="0.000550"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-19T23:41:20.055397" level="INFO">min/max/avg/stdev</msg>
<arg>${results_list[5]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-19T23:41:20.054698" elapsed="0.000839"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-19T23:41:20.056661" level="INFO">24081.93/25719.37/24845.22/8292.45</msg>
<arg>${results_list[7]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-19T23:41:20.055930" elapsed="0.000845"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-10-19T23:41:20.057773" level="INFO">@{result_name_list} = [ min | max | avg | stdev ]</msg>
<var>@{result_name_list}</var>
<arg>${results_list[5]}</arg>
<arg>/</arg>
<doc>Splits the `string` using `separator` as a delimiter string.</doc>
<status status="PASS" start="2026-10-19T23:41:20.057106" elapsed="0.000722"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-10-19T23:41:20.058910" level="INFO">@{result_value_list} = [ 24081.93 | 25719.37 | 24845.22 | 8292.45 ]</msg>
<var>@{result_value_list}</var>
<arg>${results_list[7]}</arg>
<arg>/</arg>
<doc>Splits the `string` using `separator` as a delimiter string.</doc>
<status status="PASS" start="2026-10-19T23:41:20.058254" elapsed="0.000711"/>
</kw>
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-10-19T23:41:20.059951" level="INFO">Length is 4.</msg>
<msg time="2026-10-19T23:41:20.060124" level="INFO">${num_stats} = 4</msg>
<var>${num_stats}</var>
<arg>${result_name_list}</arg>
<doc>Returns and logs the length of the given item as an integer.</doc>
<status status="PASS" start="2026-10-19T23:41:20.059315" elapsed="0.000883"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-19T23:41:20.061967" level="INFO">min :: 24081.93</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-19T23:41:20.061025" elapsed="0.001052"/>
</kw>
<var name="${i}">0</var>
<status status="PASS" start="2026-10-19T23:41:20.060664" elapsed="0.001504"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-19T23:41:20.063640" level="INFO">max :: 25719.37</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-19T23:41:20.062723" elapsed="0.001027"/>
</kw>
<var name="${i}">1</var>
<status status="PASS" start="2026-10-19T23:41:20.062336" elapsed="0.001479"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-19T23:41:20.065272" level="INFO">avg :: 24845.22</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-19T23:41:20.064354" elapsed="0.001028"/>
</kw>
<var name="${i}">2</var>
<status status="PASS" start="2026-10-19T23:41:20.063976" elapsed="0.001472"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-19T23:41:20.066928" level="INFO">stdev :: 8292.45</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-19T23:41:20.065995" elapsed="0.001043"/>
</kw>
<var name="${i}">3</var>
<status status="PASS" start="2026-10-19T23:41:20.065639" elapsed="0.001465"/>
</iter>
<var>${i}</var>
<value>0</value>
<value>${num_stats}</value>
<status status="PASS" start="2026-10-19T23:41:20.060313" elapsed="0.006874"/>
</for>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-19T23:41:20.068424" level="INFO">${min} = 24081.93</msg>
<var>${min}</var>
<arg>${result_value_list[${0}]}</arg>
<doc>Returns the given values which can then be assigned to a variable.</doc>
<status status="PASS" start="2026-10-19T23:41:20.067558" elapsed="0.000920"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-19T23:41:20.069700" level="INFO">${max} = 25719.37</msg>
<var>${max}</var>
<arg>${result_value_list[${1}]}</arg>
<doc>Returns the given values which can then be assigned to a variable.</doc>
<status status="PASS" start="2026-10-19T23:41:20.068836" elapsed="0.000918"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-19T23:41:20.070943" level="INFO">${average} = 24845.22</msg>
<var>${average}</var>
<arg>${result_value_list[${2}]}</arg>
<doc>Returns the given values which can then be assigned to a variable.</doc>
<status status="PASS" start="2026-10-19T23:41:20.070072" elapsed="0.000925"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-19T23:41:20.072189" level="INFO">${stdev} = 8292.45</msg>
<var>${stdev}</var>
<arg>${result_value_list[${3}]}</arg>
<doc>Returns the given values which can then be assigned to a variable.</doc>
<status status="PASS" start="2026-10-19T23:41:20.071340" elapsed="0.000904"/>
</kw>
<kw name="Get Time" owner="BuiltIn">
<msg time="2026-10-19T23:41:20.073383" level="INFO">${date} = 2026-10-19 23:41:20</msg>
<var>${date}</var>
<arg>d,m,s</arg>
<doc>Returns the given time in the requested format.</doc>
<status status="PASS" start="2026-10-19T23:41:20.072671" elapsed="0.000764"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-19T23:41:20.074621" level="INFO">CBench Result: 2026-10-19 23:41:20,-m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633,24081.93,25719.37,24845.22,8292.45</msg>
<arg>CBench Result: ${date},${cbench_args},${min},${max},${average},${stdev}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-19T23:41:20.073870" elapsed="0.000873"/>
</kw>
<kw name="Log Results And Determine Status">
<kw name="Append To File" owner="OperatingSystem">
<msg time="2026-10-19T23:41:20.076673" 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-10-19T23:41:20.075899" elapsed="0.000911"/>
</kw>
<kw name="Should Be True" owner="BuiltIn">
<arg>${average} &gt; ${threshold}</arg>
<arg>${average} flow_mods per/sec did not exceed threshold of ${threshold}</arg>
<doc>Fails if the given condition is not true.</doc>
<status status="PASS" start="2026-10-19T23:41:20.077173" elapsed="0.001228"/>
</kw>
<arg>${min}</arg>
<arg>${max}</arg>
<arg>${average}</arg>
<arg>${average_threshold}</arg>
<arg>${output_filename}</arg>
<status status="PASS" start="2026-10-19T23:41:20.075003" elapsed="0.003621"/>
</kw>
<arg>-m ${duration_in_ms} -M ${num_of_unique_macs} -S ${switch_count} -l ${loops} -D ${start_delay} -p ${of_port}</arg>
<arg>${latency_threshold}</arg>
<arg>bug.csv</arg>
<status status="PASS" start="2026-10-19T23:31:13.256411" elapsed="606.822353"/>
</kw>
<kw name="Sleep" owner="BuiltIn">
<msg time="2026-10-19T23:41:20.079748" level="INFO">Slept 0 seconds.</msg>
<arg>${test_delay}</arg>
<doc>Pauses execution for the given time.</doc>
<status status="PASS" start="2026-10-19T23:41:20.079081" elapsed="0.000780"/>
</kw>
<kw name="Report Failure Due To Bug" owner="Utils" type="TEARDOWN">
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-19T23:41:20.082624" level="INFO">${test_skipped} = False</msg>
<var>${test_skipped}</var>
<arg>len(re.findall('SKIPPED', """${TEST_MESSAGE}""")) &gt; 0</arg>
<arg>modules=re</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-10-19T23:41:20.081485" elapsed="0.001202"/>
</kw>
<if>
<branch type="IF" condition="('${TEST_STATUS}' != 'FAIL') or ${test_skipped}">
<return>
<status status="PASS" start="2026-10-19T23:41:20.083089" elapsed="0.000082"/>
</return>
<status status="PASS" start="2026-10-19T23:41:20.082843" elapsed="0.000397"/>
</branch>
<status status="PASS" start="2026-10-19T23:41:20.082802" elapsed="0.000488"/>
</if>
<kw name="Comment" owner="BuiltIn">
<arg>Jira tickets are {PROJECT}-{NUMBER} while Bugzilla tickets are {NUMBER}</arg>
<doc>Displays the given messages in the log file as keyword arguments.</doc>
<status status="NOT RUN" start="2026-10-19T23:41:20.083657" elapsed="0.000048"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<var>${match}</var>
<arg>Should Contain</arg>
<arg>${number}</arg>
<arg>-</arg>
<doc>Runs the specified keyword and returns the status as a Boolean value.</doc>
<status status="NOT RUN" start="2026-10-19T23:41:20.083995" elapsed="0.000042"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<var>${bug_url}</var>
<arg>${match}</arg>
<arg>https://jira.opendaylight.org/browse/${number}</arg>
<arg>https://bugs.opendaylight.org/show_bug.cgi?id=${number}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="NOT RUN" start="2026-10-19T23:41:20.084390" elapsed="0.000042"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<var>${msg}</var>
<arg>This test fails due to ${bug_url}</arg>
<doc>Returns the given values which can then be assigned to a variable.</doc>
<status status="NOT RUN" start="2026-10-19T23:41:20.084813" elapsed="0.000033"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${newline}</var>
<arg>chr(10)</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-10-19T23:41:20.085300" elapsed="0.000032"/>
</kw>
<kw name="Set Test Message" owner="BuiltIn">
<arg>${msg}${newline}${newline}${TEST_MESSAGE}</arg>
<doc>Sets message of the current test case.</doc>
<status status="NOT RUN" start="2026-10-19T23:41:20.085563" elapsed="0.000032"/>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${msg}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-19T23:41:20.085824" 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-10-19T23:41:20.086108" elapsed="0.000049"/>
</kw>
<status status="NOT RUN" start="2026-10-19T23:41:20.085927" elapsed="0.000274"/>
</branch>
<status status="NOT RUN" start="2026-10-19T23:41:20.085907" elapsed="0.000325"/>
</if>
<arg>6176</arg>
<doc>Report that a test failed due to a known Bugzilla bug whose
number is provided as an argument.
Not FAILED (incl. SKIPPED) test are not reported.
This keyword must be used in the [Teardown] setting of the affected test
or as the first line of the test if FastFail module is not being
used. It reports the URL of the bug on console and also puts it
into the Robot log file.</doc>
<status status="PASS" start="2026-10-19T23:41:20.080675" elapsed="0.005623"/>
</kw>
<doc>cbench executed in latency mode to see if controller is healthy</doc>
<tag>cbench</tag>
<tag>latency</tag>
<timeout value="15 minutes"/>
<status status="PASS" start="2026-10-19T23:31:13.254387" elapsed="606.831968"/>
</test>
<doc>Cbench Latency and Throughput tests can be run from an external
cbench.
If cbench is run with a medium number of switches or higher (e.g. 32+)
the normal openflow operations seem to break.
BUG: https://bugs.opendaylight.org/show_bug.cgi?id=2897</doc>
<status status="PASS" start="2026-10-19T23:10:57.332974" elapsed="1822.754051"/>
</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>
