<?xml version="1.0" encoding="UTF-8"?>
<robot generator="Robot 7.4.2 (Python 3.11.10 on linux)" generated="2026-08-07T02:15:42.969523" 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-08-07T02:15:43.525576" elapsed="0.000022"/>
</return>
<status status="NOT RUN" start="2026-08-07T02:15:43.525437" elapsed="0.000212"/>
</branch>
<status status="PASS" start="2026-08-07T02:15:43.525408" elapsed="0.000267"/>
</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-08-07T02:15:43.525822" elapsed="0.000586"/>
</kw>
<kw name="Login" owner="SSHLibrary">
<msg time="2026-08-07T02:15:43.526874" level="INFO">Logging into '10.30.170.126:8101' as 'karaf'.</msg>
<msg time="2026-08-07T02:15:44.295729" 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-08-07T02:15:43.526580" elapsed="0.769361"/>
</kw>
<kw name="Write" owner="SSHLibrary">
<msg time="2026-08-07T02:15:44.345181" 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-08-07T02:15:44.296247" elapsed="0.049092"/>
</kw>
<kw name="Read Until Regexp" owner="SSHLibrary">
<msg time="2026-08-07T02:15:44.347444" level="INFO">[?1l&gt;[?2004l[?1h=[90m~[0m                                                                                [?2004hopendaylight-user@root&gt;</msg>
<msg time="2026-08-07T02:15:44.347557" 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-08-07T02:15:44.345609" elapsed="0.001978"/>
</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-08-07T02:15:44.347750" elapsed="0.000297"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-08-07T02:15:44.348195" elapsed="0.000245"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-07T02:15:44.348929" 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-08-07T02:15:44.348589" elapsed="0.000394"/>
</kw>
<return>
<value>${output}</value>
<status status="PASS" start="2026-08-07T02:15:44.349036" elapsed="0.000053"/>
</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.126
Note that this keyword will open&amp;close new SSH connection, without switching back to previously current session.</doc>
<status status="PASS" start="2026-08-07T02:15:43.525050" elapsed="0.824159"/>
</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-08-07T02:15:43.521470" elapsed="0.827827"/>
</kw>
<kw name="Append To File" owner="OperatingSystem">
<msg time="2026-08-07T02:15:44.349866" 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-08-07T02:15:44.349476" elapsed="0.000457"/>
</kw>
<kw name="Append To File" owner="OperatingSystem">
<msg time="2026-08-07T02:15:44.350349" 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-08-07T02:15:44.350083" elapsed="0.000322"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-08-07T02:15:44.350962" 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-08-07T02:15:44.350570" elapsed="0.000420"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-08-07T02:15:44.351510" level="INFO">${duration_in_ms} = 60000</msg>
<arg>${duration_in_ms}</arg>
<doc>Makes a variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-08-07T02:15:44.351155" elapsed="0.000396"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-08-07T02:15:44.352064" 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-08-07T02:15:44.351695" elapsed="0.000396"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-08-07T02:15:44.352578" level="INFO">${test_timeout} = 900.0</msg>
<arg>${test_timeout}</arg>
<doc>Makes a variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-08-07T02:15:44.352265" elapsed="0.000356"/>
</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-08-07T02:15:44.352920" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-08-07T02:15:44.352707" elapsed="0.000268"/>
</branch>
<branch type="ELSE">
<kw name="Verify File Exists On Remote System" owner="Utils">
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-08-07T02:15:44.357320" 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-08-07T02:15:44.356886" elapsed="0.000461"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-08-07T02:15:44.358376" level="INFO">Length is 0.</msg>
<msg time="2026-08-07T02:15:44.358464" 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-08-07T02:15:44.357896" elapsed="0.000610"/>
</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>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-08-07T02:15:44.358650" elapsed="0.000346"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-08-07T02:15:44.360385" level="INFO">Logging into '10.30.170.110:22' as 'jenkins'.</msg>
<msg time="2026-08-07T02:15:45.047079" level="INFO">Read output: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-153-generic x86_64)

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

 System information as of Fri Aug  7 02:15:44 UTC 2026

  System load:  0.25               Processes:             111
  Usage of /:   19.3% of 38.58GB   Users logged in:       0
  Memory usage: 4%                 IPv4 address for ens3: 10.30.170.110
  Swap usage:   0%


Expanded Security Maintenance for Applications is not enabled.

0 updates can be applied immediately.

9 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.4 LTS' available.
Run 'do-release-upgrade' to upgrade to it.


[?2004h[jenkins@releng-50965-9-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-08-07T02:15:44.359841" elapsed="0.687435"/>
</kw>
<msg time="2026-08-07T02:15:45.047409" 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-08-07T02:15:44.359486" elapsed="0.688063"/>
</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-08-07T02:15:44.357551" elapsed="0.690183"/>
</kw>
<kw name="File Should Exist" owner="SSHLibrary">
<msg time="2026-08-07T02:15:45.056525" 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-08-07T02:15:45.047968" elapsed="0.010431"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-08-07T02:15:45.058815" elapsed="0.000631"/>
</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-08-07T02:15:44.356364" elapsed="0.703222"/>
</kw>
<status status="PASS" start="2026-08-07T02:15:44.353047" elapsed="0.706623"/>
</branch>
<status status="PASS" start="2026-08-07T02:15:44.352679" elapsed="0.707054"/>
</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-08-07T02:15:45.060057" elapsed="0.001050"/>
</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-08-07T02:15:45.069480" elapsed="0.000019"/>
</return>
<status status="NOT RUN" start="2026-08-07T02:15:45.069154" elapsed="0.000380"/>
</branch>
<status status="PASS" start="2026-08-07T02:15:45.069129" elapsed="0.000428"/>
</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-08-07T02:15:45.073191" elapsed="0.000014"/>
</return>
<status status="NOT RUN" start="2026-08-07T02:15:45.073078" elapsed="0.000173"/>
</branch>
<status status="PASS" start="2026-08-07T02:15:45.073057" elapsed="0.000217"/>
</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-08-07T02:15:45.073405" elapsed="0.000437"/>
</kw>
<kw name="Login" owner="SSHLibrary">
<msg time="2026-08-07T02:15:45.074262" level="INFO">Logging into '10.30.170.126:8101' as 'karaf'.</msg>
<msg time="2026-08-07T02:15:45.276589" 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-08-07T02:15:45.073987" elapsed="0.202771"/>
</kw>
<kw name="Write" owner="SSHLibrary">
<msg time="2026-08-07T02:15:45.372738" 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-08-07T02:15:45.277003" elapsed="0.095842"/>
</kw>
<kw name="Read Until Regexp" owner="SSHLibrary">
<msg time="2026-08-07T02:15:45.387439" level="INFO">[?1l&gt;[?2004l[31;1modl-openflowplugin-drop-test[0m                                    x 1.0.0            x x        x Started x [31;1modl-openflowplugin-drop-test[0m                                    x OpenDaylight :: Openflow Plugin :: Drop Test
[?1h=[90m~[0m                                                                                [?2004hopendaylight-user@root&gt;</msg>
<msg time="2026-08-07T02:15:45.387675" level="INFO">${output} = [?1l&gt;[?2004l[31;1modl-openflowplugin-drop-test[0m                                    x 1.0.0            x x        x Started x [31;1modl-openflowplugin-drop-test[0m                     ...</msg>
<var>${output}</var>
<arg>${KARAF_PROMPT}</arg>
<doc>Consumes and returns the server output until a match to ``regexp`` is found.</doc>
<status status="PASS" start="2026-08-07T02:15:45.373074" elapsed="0.014632"/>
</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-08-07T02:15:45.387849" elapsed="0.000220"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-08-07T02:15:45.388206" elapsed="0.000253"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-07T02:15:45.388921" level="INFO">[?1l&gt;[?2004l[31;1modl-openflowplugin-drop-test[0m                                    x 1.0.0            x x        x Started x [31;1modl-openflowplugin-drop-test[0m                                    x OpenDaylight :: Openflow Plugin :: Drop Test
[?1h=[90m~[0m                                                                                [?2004hopendaylight-user@root&gt;</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-07T02:15:45.388596" elapsed="0.000381"/>
</kw>
<return>
<value>${output}</value>
<status status="PASS" start="2026-08-07T02:15:45.389029" elapsed="0.000057"/>
</return>
<msg time="2026-08-07T02:15:45.389260" level="INFO">${output} = [?1l&gt;[?2004l[31;1modl-openflowplugin-drop-test[0m                                    x 1.0.0            x x        x Started x [31;1modl-openflowplugin-drop-test[0m                     ...</msg>
<var>${output}</var>
<arg>feature:list -i | grep ${feature_name}</arg>
<arg>${controller}</arg>
<arg>${karaf_port}</arg>
<doc>Will execute the given ${cmd} by ssh'ing to the karaf console running on 10.30.170.126
Note that this keyword will open&amp;close new SSH connection, without switching back to previously current session.</doc>
<status status="PASS" start="2026-08-07T02:15:45.072717" elapsed="0.316576"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${output}</arg>
<arg>${feature_name}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-08-07T02:15:45.389441" elapsed="0.000510"/>
</kw>
<return>
<value>${output}</value>
<status status="PASS" start="2026-08-07T02:15:45.390002" elapsed="0.000032"/>
</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-08-07T02:15:45.068841" elapsed="0.321291"/>
</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-08-07T02:15:45.394072" elapsed="0.000014"/>
</return>
<status status="NOT RUN" start="2026-08-07T02:15:45.393935" elapsed="0.000183"/>
</branch>
<status status="PASS" start="2026-08-07T02:15:45.393913" elapsed="0.000229"/>
</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-08-07T02:15:45.394299" elapsed="0.000444"/>
</kw>
<kw name="Login" owner="SSHLibrary">
<msg time="2026-08-07T02:15:45.395177" level="INFO">Logging into '10.30.170.126:8101' as 'karaf'.</msg>
<msg time="2026-08-07T02:15:45.594684" 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-08-07T02:15:45.394888" elapsed="0.200093"/>
</kw>
<kw name="Write" owner="SSHLibrary">
<msg time="2026-08-07T02:15:45.620784" 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-08-07T02:15:45.595547" elapsed="0.025351"/>
</kw>
<kw name="Read Until Regexp" owner="SSHLibrary">
<msg time="2026-08-07T02:15:45.623515" level="INFO">[?1l&gt;[?2004lDropAllFlows transitions to on
[?1h=[90m~[0m                                                                                [?2004hopendaylight-user@root&gt;</msg>
<msg time="2026-08-07T02:15:45.623670" 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-08-07T02:15:45.621178" elapsed="0.002533"/>
</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-08-07T02:15:45.623903" elapsed="0.000242"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-08-07T02:15:45.624305" elapsed="0.000243"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-07T02:15:45.625044" 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-08-07T02:15:45.624695" elapsed="0.000398"/>
</kw>
<return>
<value>${output}</value>
<status status="PASS" start="2026-08-07T02:15:45.625151" elapsed="0.000091"/>
</return>
<arg>dropallpacketsrpc on</arg>
<doc>Will execute the given ${cmd} by ssh'ing to the karaf console running on 10.30.170.126
Note that this keyword will open&amp;close new SSH connection, without switching back to previously current session.</doc>
<status status="PASS" start="2026-08-07T02:15:45.393604" elapsed="0.231780"/>
</kw>
<status status="PASS" start="2026-08-07T02:15:43.519724" elapsed="2.105730"/>
</kw>
<test id="s1-t1" name="Cbench Latency Test" line="37">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-07T02:15:45.627719" 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-08-07T02:15:45.626438" elapsed="0.001349"/>
</kw>
<kw name="Run Cbench And Log Results">
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-08-07T02:15:45.629482" level="INFO">${output_filename} = latency.csv</msg>
<arg>${output_filename}</arg>
<doc>Makes a variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-08-07T02:15:45.629079" elapsed="0.000450"/>
</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
[http://robotframework.org/robotframework/latest/libraries/Process.html|
Process] library instead._</doc>
<status status="NOT RUN" start="2026-08-07T02:15:45.629876" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-08-07T02:15:45.629616" elapsed="0.000318"/>
</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 with the given message and optionally alters its tags.</doc>
<status status="NOT RUN" start="2026-08-07T02:15:45.633119" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-08-07T02:15:45.632865" elapsed="0.000716"/>
</branch>
<status status="PASS" start="2026-08-07T02:15:45.632845" elapsed="0.000772"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-08-07T02:15:45.634047" 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-08-07T02:15:45.634189" 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-08-07T02:15:45.633788" elapsed="0.000456"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-07T02:15:45.634895" level="INFO">Attempting to execute command "/usr/local/bin/cbench -c 10.30.170.126 -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633" on remote system "10.30.170.110" 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-08-07T02:15:45.634410" elapsed="0.000558"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-08-07T02:15:45.635641" 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-08-07T02:15:45.635112" elapsed="0.000555"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-08-07T02:15:45.636612" level="INFO">Length is 0.</msg>
<msg time="2026-08-07T02:15:45.636702" 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-08-07T02:15:45.636273" elapsed="0.000453"/>
</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>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-08-07T02:15:45.636868" elapsed="0.000337"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-08-07T02:15:45.638112" level="INFO">Logging into '10.30.170.110:22' as 'jenkins'.</msg>
<msg time="2026-08-07T02:15:45.967821" level="INFO">Read output: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-153-generic x86_64)

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

 System information as of Fri Aug  7 02:15:44 UTC 2026

  System load:  0.25               Processes:             111
  Usage of /:   19.3% of 38.58GB   Users logged in:       0
  Memory usage: 4%                 IPv4 address for ens3: 10.30.170.110
  Swap usage:   0%


Expanded Security Maintenance for Applications is not enabled.

0 updates can be applied immediately.

9 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.4 LTS' available.
Run 'do-release-upgrade' to upgrade to it.


Last login: Fri Aug  7 02:15:44 2026 from 10.30.170.236
[?2004h[jenkins@releng-50965-9-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-08-07T02:15:45.637758" elapsed="0.330312"/>
</kw>
<msg time="2026-08-07T02:15:45.968174" 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-08-07T02:15:45.637410" elapsed="0.330892"/>
</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-08-07T02:15:45.635874" elapsed="0.332577"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-08-07T02:15:45.969080" level="INFO">Executing command '/usr/local/bin/cbench -c 10.30.170.126 -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633'.</msg>
<msg time="2026-08-07T02:25:52.064645" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-08-07T02:25:52.065177" level="INFO">${stdout} = </msg>
<msg time="2026-08-07T02:25:52.065328" level="INFO">${stderr} = cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.170.126:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with 10...</msg>
<var>${stdout}</var>
<var>${stderr}</var>
<arg>${cmd}</arg>
<arg>return_stderr=True</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-08-07T02:15:45.968718" elapsed="606.096671"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-08-07T02:25:52.065848" elapsed="0.000768"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-07T02:25:52.067764" level="INFO">cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.170.126: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.126. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
02:16:51.151 16  switches: flows:  128534 125952 124908 128658 123733 125094 126571 123795 117123 115953 118537 120647 117112 117801 117924 117729  total = 32.501183 per ms 
02:17:51.251 16  switches: flows:  139701 138591 135214 137270 137631 137016 134177 136629 129020 126224 129605 128201 127366 126041 129535 126284  total = 35.249535 per ms 
02:18:51.353 16  switches: flows:  138239 138460 136387 138112 134544 137760 135773 132110 128006 125055 130626 128181 127203 126360 127354 130410  total = 35.184176 per ms 
02:19:51.454 16  switches: flows:  140016 138494 136931 139082 137257 138527 137673 133705 130879 127804 132876 126817 128689 128239 128711 131814  total = 35.565611 per ms 
02:20:51.555 16  switches: flows:  136667 140456 137711 139185 136741 138612 137856 135568 131690 128102 131763 128928 128018 127915 127478 134426  total = 35.625439 per ms 
02:21:51.657 16  switches: flows:  138225 139420 138224 140382 135439 139092 138430 135117 131925 127933 132377 129367 127948 127467 127070 134579  total = 35.657045 per ms 
02:22:51.758 16  switches: flows:  140333 138666 138177 141020 137665 138341 138348 134106 132650 126639 131171 130690 128085 128030 127234 132484  total = 35.667782 per ms 
02:23:51.859 16  switches: flows:  140398 141787 138590 140922 140876 141341 141312 136511 135101 128401 133904 131127 130604 129303 130214 132915  total = 36.161427 per ms 
02:24:51.959 16  switches: flows:  139589 140025 139263 141584 138845 141412 140311 135784 132067 128442 133107 131308 127292 131737 130803 133007  total = 36.016160 per ms 
02:25:52.060 16  switches: flows:  142452 142769 139486 140763 142320 142057 140989 139840 137517 130169 134238 130513 130505 133694 131391 138145  total = 36.553104 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 35184.18/36553.10/35742.25/11921.17 responses/s</msg>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-07T02:25:52.067013" elapsed="0.001063"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="PASS" start="2026-08-07T02:25:52.068587" elapsed="0.000075"/>
</return>
<status status="PASS" start="2026-08-07T02:25:52.068288" elapsed="0.000452"/>
</branch>
<status status="PASS" start="2026-08-07T02:25:52.068203" elapsed="0.000592"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="NOT RUN" start="2026-08-07T02:25:52.069005" elapsed="0.000028"/>
</return>
<status status="NOT RUN" start="2026-08-07T02:25:52.068924" elapsed="0.000171"/>
</branch>
<status status="NOT RUN" start="2026-08-07T02:25:52.068889" elapsed="0.000253"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-08-07T02:25:52.069215" elapsed="0.000060"/>
</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>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-08-07T02:25:52.073636" elapsed="0.000474"/>
</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-08-07T02:25:52.074332" elapsed="0.000226"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-08-07T02:25:52.074735" elapsed="0.000134"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-08-07T02:25:52.069940" elapsed="0.005017"/>
</kw>
<msg time="2026-08-07T02:25:52.075133" level="INFO">${output} = cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.170.126:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with 10...</msg>
<var>${output}</var>
<arg>${cbench_system}</arg>
<arg>${cbench_executable} -c ${ODL_SYSTEM_IP} ${cbench_args}</arg>
<arg>prompt_timeout=${test_timeout}</arg>
<arg>return_stdout=False</arg>
<arg>return_stderr=True</arg>
<doc>Reduces the common work of running a command on a remote system to a single higher level
robot keyword, taking care to log in with a public key and. The command given is written and the return value
depends on the passed argument values of return_stdout (default: True) and return_stderr (default: False).
At least one should be True, or the keyword will exit and FAIL. If both are True, the resulting return value
will be a two element list containing both. Otherwise the resulting return value is a string.
No test conditions are checked.</doc>
<status status="PASS" start="2026-08-07T02:15:45.630323" elapsed="606.444847"/>
</kw>
<status status="PASS" start="2026-08-07T02:15:45.629964" elapsed="606.445294"/>
</branch>
<status status="PASS" start="2026-08-07T02:15:45.629592" elapsed="606.445698"/>
</if>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-07T02:25:52.075880" level="INFO">cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.170.126: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.126. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
02:16:51.151 16  switches: flows:  128534 125952 124908 128658 123733 125094 126571 123795 117123 115953 118537 120647 117112 117801 117924 117729  total = 32.501183 per ms 
02:17:51.251 16  switches: flows:  139701 138591 135214 137270 137631 137016 134177 136629 129020 126224 129605 128201 127366 126041 129535 126284  total = 35.249535 per ms 
02:18:51.353 16  switches: flows:  138239 138460 136387 138112 134544 137760 135773 132110 128006 125055 130626 128181 127203 126360 127354 130410  total = 35.184176 per ms 
02:19:51.454 16  switches: flows:  140016 138494 136931 139082 137257 138527 137673 133705 130879 127804 132876 126817 128689 128239 128711 131814  total = 35.565611 per ms 
02:20:51.555 16  switches: flows:  136667 140456 137711 139185 136741 138612 137856 135568 131690 128102 131763 128928 128018 127915 127478 134426  total = 35.625439 per ms 
02:21:51.657 16  switches: flows:  138225 139420 138224 140382 135439 139092 138430 135117 131925 127933 132377 129367 127948 127467 127070 134579  total = 35.657045 per ms 
02:22:51.758 16  switches: flows:  140333 138666 138177 141020 137665 138341 138348 134106 132650 126639 131171 130690 128085 128030 127234 132484  total = 35.667782 per ms 
02:23:51.859 16  switches: flows:  140398 141787 138590 140922 140876 141341 141312 136511 135101 128401 133904 131127 130604 129303 130214 132915  total = 36.161427 per ms 
02:24:51.959 16  switches: flows:  139589 140025 139263 141584 138845 141412 140311 135784 132067 128442 133107 131308 127292 131737 130803 133007  total = 36.016160 per ms 
02:25:52.060 16  switches: flows:  142452 142769 139486 140763 142320 142057 140989 139840 137517 130169 134238 130513 130505 133694 131391 138145  total = 36.553104 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 35184.18/36553.10/35742.25/11921.17 responses/s</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-07T02:25:52.075476" elapsed="0.000507"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${output}</arg>
<arg>RESULT</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-08-07T02:25:52.076182" elapsed="0.000530"/>
</kw>
<kw name="Get Lines Containing String" owner="String">
<msg time="2026-08-07T02:25:52.077266" level="INFO">1 out of 23 lines matched.</msg>
<msg time="2026-08-07T02:25:52.077396" level="INFO">${result_line} = RESULT: 16 switches 9 tests min/max/avg/stdev = 35184.18/36553.10/35742.25/11921.17 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-08-07T02:25:52.076929" elapsed="0.000502"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-08-07T02:25:52.077999" level="INFO">@{results_list} = [ RESULT: | 16 | switches | 9 | tests | min/max/avg/stdev | = | 35184.18/36553.10/35742.25/11921.17 | 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-08-07T02:25:52.077646" elapsed="0.000391"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-07T02:25:52.081359" 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-08-07T02:25:52.078253" elapsed="0.003185"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-07T02:25:52.084426" level="INFO">35184.18/36553.10/35742.25/11921.17</msg>
<arg>${results_list[7]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-07T02:25:52.081643" elapsed="0.002839"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-08-07T02:25:52.086787" 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-08-07T02:25:52.084628" elapsed="0.002187"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-08-07T02:25:52.089178" level="INFO">@{result_value_list} = [ 35184.18 | 36553.10 | 35742.25 | 11921.17 ]</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-08-07T02:25:52.087013" elapsed="0.002192"/>
</kw>
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-08-07T02:25:52.089677" level="INFO">Length is 4.</msg>
<msg time="2026-08-07T02:25:52.089764" 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-08-07T02:25:52.089371" elapsed="0.000417"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-07T02:25:52.094417" level="INFO">min :: 35184.18</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-08-07T02:25:52.090171" elapsed="0.004301"/>
</kw>
<var name="${i}">0</var>
<status status="PASS" start="2026-08-07T02:25:52.090043" elapsed="0.004463"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-07T02:25:52.098954" level="INFO">max :: 36553.10</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-08-07T02:25:52.094720" elapsed="0.004289"/>
</kw>
<var name="${i}">1</var>
<status status="PASS" start="2026-08-07T02:25:52.094596" elapsed="0.004447"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-07T02:25:52.103504" level="INFO">avg :: 35742.25</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-07T02:25:52.099268" elapsed="0.004292"/>
</kw>
<var name="${i}">2</var>
<status status="PASS" start="2026-08-07T02:25:52.099130" elapsed="0.004464"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-07T02:25:52.108029" level="INFO">stdev :: 11921.17</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-07T02:25:52.103809" elapsed="0.004276"/>
</kw>
<var name="${i}">3</var>
<status status="PASS" start="2026-08-07T02:25:52.103684" elapsed="0.004434"/>
</iter>
<var>${i}</var>
<value>0</value>
<value>${num_stats}</value>
<status status="PASS" start="2026-08-07T02:25:52.089856" elapsed="0.018295"/>
</for>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-08-07T02:25:52.111960" level="INFO">${min} = 35184.18</msg>
<var>${min}</var>
<arg>${result_value_list[${0}]}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-08-07T02:25:52.108320" elapsed="0.003667"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-08-07T02:25:52.116190" level="INFO">${max} = 36553.10</msg>
<var>${max}</var>
<arg>${result_value_list[${1}]}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-08-07T02:25:52.112140" elapsed="0.004091"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-08-07T02:25:52.120058" level="INFO">${average} = 35742.25</msg>
<var>${average}</var>
<arg>${result_value_list[${2}]}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-08-07T02:25:52.116383" elapsed="0.003702"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-08-07T02:25:52.123925" level="INFO">${stdev} = 11921.17</msg>
<var>${stdev}</var>
<arg>${result_value_list[${3}]}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-08-07T02:25:52.120247" elapsed="0.003705"/>
</kw>
<kw name="Get Time" owner="BuiltIn">
<msg time="2026-08-07T02:25:52.124478" level="INFO">${date} = 2026-08-07 02:25:52</msg>
<var>${date}</var>
<arg>d,m,s</arg>
<doc>Returns the given time in the requested format.</doc>
<status status="PASS" start="2026-08-07T02:25:52.124107" elapsed="0.000396"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-07T02:25:52.125052" level="INFO">CBench Result: 2026-08-07 02:25:52,-m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633,35184.18,36553.10,35742.25,11921.17</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-08-07T02:25:52.124646" elapsed="0.000462"/>
</kw>
<kw name="Log Results And Determine Status">
<kw name="Append To File" owner="OperatingSystem">
<msg time="2026-08-07T02:25:52.126126" 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-08-07T02:25:52.125725" elapsed="0.000468"/>
</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-08-07T02:25:52.126355" elapsed="0.000447"/>
</kw>
<arg>${min}</arg>
<arg>${max}</arg>
<arg>${average}</arg>
<arg>${average_threshold}</arg>
<arg>${output_filename}</arg>
<status status="PASS" start="2026-08-07T02:25:52.125260" elapsed="0.001604"/>
</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-08-07T02:15:45.628378" elapsed="606.498573"/>
</kw>
<kw name="Sleep" owner="BuiltIn">
<msg time="2026-08-07T02:25:52.127429" level="INFO">Slept 0 seconds.</msg>
<arg>${test_delay}</arg>
<doc>Pauses the test executed for the given time.</doc>
<status status="PASS" start="2026-08-07T02:25:52.127100" elapsed="0.000387"/>
</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-08-07T02:25:52.127998" elapsed="0.000276"/>
</kw>
<status status="PASS" start="2026-08-07T02:25:52.127697" elapsed="0.000647"/>
</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-08-07T02:15:45.625666" elapsed="606.502715"/>
</test>
<test id="s1-t2" name="Cbench Throughput Test" line="51">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-07T02:25:52.129781" 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-08-07T02:25:52.129393" elapsed="0.000443"/>
</kw>
<kw name="Run Cbench And Log Results">
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-08-07T02:25:52.131135" level="INFO">${output_filename} = throughput.csv</msg>
<arg>${output_filename}</arg>
<doc>Makes a variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-08-07T02:25:52.130789" elapsed="0.000388"/>
</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
[http://robotframework.org/robotframework/latest/libraries/Process.html|
Process] library instead._</doc>
<status status="NOT RUN" start="2026-08-07T02:25:52.131512" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-08-07T02:25:52.131299" elapsed="0.000270"/>
</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 with the given message and optionally alters its tags.</doc>
<status status="NOT RUN" start="2026-08-07T02:25:52.134392" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-08-07T02:25:52.134135" elapsed="0.000313"/>
</branch>
<status status="PASS" start="2026-08-07T02:25:52.134117" elapsed="0.000355"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-08-07T02:25:52.134799" 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-08-07T02:25:52.134958" 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-08-07T02:25:52.134604" elapsed="0.000383"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-07T02:25:52.135569" level="INFO">Attempting to execute command "/usr/local/bin/cbench -c 10.30.170.126 -t -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633" on remote system "10.30.170.110" 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-08-07T02:25:52.135119" elapsed="0.000507"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-08-07T02:25:52.136160" 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-08-07T02:25:52.135764" elapsed="0.000423"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-08-07T02:25:52.137072" level="INFO">Length is 0.</msg>
<msg time="2026-08-07T02:25:52.137159" 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-08-07T02:25:52.136774" elapsed="0.000409"/>
</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>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-08-07T02:25:52.137335" elapsed="0.000317"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-08-07T02:25:52.138499" level="INFO">Logging into '10.30.170.110:22' as 'jenkins'.</msg>
<msg time="2026-08-07T02:25:52.748662" level="INFO">Read output: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-153-generic x86_64)

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

 System information as of Fri Aug  7 02:25:52 UTC 2026

  System load:  1.0                Processes:             103
  Usage of /:   19.3% of 38.58GB   Users logged in:       0
  Memory usage: 4%                 IPv4 address for ens3: 10.30.170.110
  Swap usage:   0%


Expanded Security Maintenance for Applications is not enabled.

0 updates can be applied immediately.

9 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.4 LTS' available.
Run 'do-release-upgrade' to upgrade to it.


Last login: Fri Aug  7 02:15:45 2026 from 10.30.170.236
[?2004h[jenkins@releng-50965-9-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-08-07T02:25:52.138136" elapsed="0.610751"/>
</kw>
<msg time="2026-08-07T02:25:52.748982" 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-08-07T02:25:52.137801" elapsed="0.611276"/>
</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-08-07T02:25:52.136402" elapsed="0.612796"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-08-07T02:25:52.749770" level="INFO">Executing command '/usr/local/bin/cbench -c 10.30.170.126 -t -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633'.</msg>
<msg time="2026-08-07T02:35:58.838174" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-08-07T02:35:58.838807" level="INFO">${stdout} = </msg>
<msg time="2026-08-07T02:35:58.838921" level="INFO">${stderr} = cbench: controller benchmarking tool
   running in mode 'throughput'
   connecting to controller at 10.30.170.126: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-08-07T02:25:52.749450" elapsed="606.089532"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-08-07T02:35:58.839494" elapsed="0.000806"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-07T02:35:58.841488" level="INFO">cbench: controller benchmarking tool
   running in mode 'throughput'
   connecting to controller at 10.30.170.126: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.126. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
02:26:57.869 16  switches: flows:  527695 520109 518134 529192 530896 531623 524717 524418 510477 518510 527340 517060 514710 510067 512672 509345  total = 138.782750 per ms 
02:27:57.970 16  switches: flows:  545323 547787 541967 541198 539488 545684 541057 545742 551352 546629 541305 536252 538896 547963 545064 538656  total = 144.663550 per ms 
02:28:58.071 16  switches: flows:  572699 580857 578924 580090 577766 581482 577925 583345 578213 581690 583444 575975 577914 586164 578596 580898  total = 154.338480 per ms 
02:29:58.172 16  switches: flows:  558148 548253 551684 551789 546293 550780 556226 556599 545069 555134 547503 548629 553070 561621 554739 551197  total = 147.031882 per ms 
02:30:58.274 16  switches: flows:  558017 567205 564521 562727 556916 558172 564285 569769 568043 567848 567692 562789 559855 556204 564671 559521  total = 149.884592 per ms 
02:31:58.385 16  switches: flows:  578736 580795 583112 583991 583373 587870 580577 586763 584680 580241 579153 573146 579924 581700 583136 584493  total = 154.908464 per ms 
02:32:58.487 16  switches: flows:  563778 565878 557537 558520 562233 566547 566227 564899 564379 563928 563480 559321 560437 561441 558408 562348  total = 149.734716 per ms 
02:33:58.598 16  switches: flows:  574118 579490 569495 572221 570265 580053 575562 570681 577791 581718 574459 572064 576371 578113 573722 571962  total = 153.023475 per ms 
02:34:58.700 16  switches: flows:  572736 573762 569787 570440 565960 571339 568611 565508 570717 567370 576657 575962 568892 575338 562663 565804  total = 151.767474 per ms 
02:35:58.833 16  switches: flows:  568419 568559 571273 570265 561242 560919 571693 571926 572264 562713 569460 568003 569796 570901 559299 570811  total = 151.204366 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 144663.55/154908.46/150728.56/50341.42 responses/s</msg>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-07T02:35:58.840695" elapsed="0.001132"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="PASS" start="2026-08-07T02:35:58.842366" elapsed="0.000073"/>
</return>
<status status="PASS" start="2026-08-07T02:35:58.842013" elapsed="0.000511"/>
</branch>
<status status="PASS" start="2026-08-07T02:35:58.841962" elapsed="0.000620"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="NOT RUN" start="2026-08-07T02:35:58.842799" elapsed="0.000030"/>
</return>
<status status="NOT RUN" start="2026-08-07T02:35:58.842713" elapsed="0.000182"/>
</branch>
<status status="NOT RUN" start="2026-08-07T02:35:58.842677" elapsed="0.000269"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-08-07T02:35:58.843018" elapsed="0.000033"/>
</return>
<kw name="Restore_Current_Ssh_Connection_From_Index" owner="SSHKeywords" type="TEARDOWN">
<kw name="Run Keyword And Return If" owner="BuiltIn">
<arg>${connection_index} is not None</arg>
<arg>SSHLibrary.Switch Connection</arg>
<arg>${connection_index}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-08-07T02:35:58.847282" elapsed="0.000328"/>
</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-08-07T02:35:58.847756" elapsed="0.000163"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-08-07T02:35:58.848046" elapsed="0.000102"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-08-07T02:35:58.843780" elapsed="0.004422"/>
</kw>
<msg time="2026-08-07T02:35:58.848349" level="INFO">${output} = cbench: controller benchmarking tool
   running in mode 'throughput'
   connecting to controller at 10.30.170.126: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-08-07T02:25:52.131902" elapsed="606.716474"/>
</kw>
<status status="PASS" start="2026-08-07T02:25:52.131594" elapsed="606.716830"/>
</branch>
<status status="PASS" start="2026-08-07T02:25:52.131279" elapsed="606.717168"/>
</if>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-07T02:35:58.848864" level="INFO">cbench: controller benchmarking tool
   running in mode 'throughput'
   connecting to controller at 10.30.170.126: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.126. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
02:26:57.869 16  switches: flows:  527695 520109 518134 529192 530896 531623 524717 524418 510477 518510 527340 517060 514710 510067 512672 509345  total = 138.782750 per ms 
02:27:57.970 16  switches: flows:  545323 547787 541967 541198 539488 545684 541057 545742 551352 546629 541305 536252 538896 547963 545064 538656  total = 144.663550 per ms 
02:28:58.071 16  switches: flows:  572699 580857 578924 580090 577766 581482 577925 583345 578213 581690 583444 575975 577914 586164 578596 580898  total = 154.338480 per ms 
02:29:58.172 16  switches: flows:  558148 548253 551684 551789 546293 550780 556226 556599 545069 555134 547503 548629 553070 561621 554739 551197  total = 147.031882 per ms 
02:30:58.274 16  switches: flows:  558017 567205 564521 562727 556916 558172 564285 569769 568043 567848 567692 562789 559855 556204 564671 559521  total = 149.884592 per ms 
02:31:58.385 16  switches: flows:  578736 580795 583112 583991 583373 587870 580577 586763 584680 580241 579153 573146 579924 581700 583136 584493  total = 154.908464 per ms 
02:32:58.487 16  switches: flows:  563778 565878 557537 558520 562233 566547 566227 564899 564379 563928 563480 559321 560437 561441 558408 562348  total = 149.734716 per ms 
02:33:58.598 16  switches: flows:  574118 579490 569495 572221 570265 580053 575562 570681 577791 581718 574459 572064 576371 578113 573722 571962  total = 153.023475 per ms 
02:34:58.700 16  switches: flows:  572736 573762 569787 570440 565960 571339 568611 565508 570717 567370 576657 575962 568892 575338 562663 565804  total = 151.767474 per ms 
02:35:58.833 16  switches: flows:  568419 568559 571273 570265 561242 560919 571693 571926 572264 562713 569460 568003 569796 570901 559299 570811  total = 151.204366 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 144663.55/154908.46/150728.56/50341.42 responses/s</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-07T02:35:58.848582" elapsed="0.000354"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${output}</arg>
<arg>RESULT</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-08-07T02:35:58.849079" elapsed="0.000387"/>
</kw>
<kw name="Get Lines Containing String" owner="String">
<msg time="2026-08-07T02:35:58.849864" level="INFO">1 out of 23 lines matched.</msg>
<msg time="2026-08-07T02:35:58.849954" level="INFO">${result_line} = RESULT: 16 switches 9 tests min/max/avg/stdev = 144663.55/154908.46/150728.56/50341.42 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-08-07T02:35:58.849634" elapsed="0.000344"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-08-07T02:35:58.850394" level="INFO">@{results_list} = [ RESULT: | 16 | switches | 9 | tests | min/max/avg/stdev | = | 144663.55/154908.46/150728.56/50341.42 | 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-08-07T02:35:58.850126" elapsed="0.000295"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-07T02:35:58.852760" 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-08-07T02:35:58.850562" elapsed="0.002256"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-07T02:35:58.855170" level="INFO">144663.55/154908.46/150728.56/50341.42</msg>
<arg>${results_list[7]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-07T02:35:58.852959" elapsed="0.002282"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-08-07T02:35:58.857567" 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-08-07T02:35:58.855390" elapsed="0.002204"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-08-07T02:35:58.859970" level="INFO">@{result_value_list} = [ 144663.55 | 154908.46 | 150728.56 | 50341.42 ]</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-08-07T02:35:58.857786" elapsed="0.002211"/>
</kw>
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-08-07T02:35:58.860471" level="INFO">Length is 4.</msg>
<msg time="2026-08-07T02:35:58.860557" 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-08-07T02:35:58.860152" elapsed="0.000429"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-07T02:35:58.865405" level="INFO">min :: 144663.55</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-08-07T02:35:58.860960" elapsed="0.004502"/>
</kw>
<var name="${i}">0</var>
<status status="PASS" start="2026-08-07T02:35:58.860833" elapsed="0.004663"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-07T02:35:58.870025" level="INFO">max :: 154908.46</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-08-07T02:35:58.865727" elapsed="0.004355"/>
</kw>
<var name="${i}">1</var>
<status status="PASS" start="2026-08-07T02:35:58.865588" elapsed="0.004529"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-07T02:35:58.874575" level="INFO">avg :: 150728.56</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-07T02:35:58.870344" elapsed="0.004286"/>
</kw>
<var name="${i}">2</var>
<status status="PASS" start="2026-08-07T02:35:58.870205" elapsed="0.004459"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-07T02:35:58.879260" level="INFO">stdev :: 50341.42</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-08-07T02:35:58.874876" elapsed="0.004440"/>
</kw>
<var name="${i}">3</var>
<status status="PASS" start="2026-08-07T02:35:58.874751" elapsed="0.004600"/>
</iter>
<var>${i}</var>
<value>0</value>
<value>${num_stats}</value>
<status status="PASS" start="2026-08-07T02:35:58.860643" elapsed="0.018738"/>
</for>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-08-07T02:35:58.883351" level="INFO">${min} = 144663.55</msg>
<var>${min}</var>
<arg>${result_value_list[${0}]}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-08-07T02:35:58.879535" elapsed="0.003843"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-08-07T02:35:58.887197" level="INFO">${max} = 154908.46</msg>
<var>${max}</var>
<arg>${result_value_list[${1}]}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-08-07T02:35:58.883529" elapsed="0.003712"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-08-07T02:35:58.891308" level="INFO">${average} = 150728.56</msg>
<var>${average}</var>
<arg>${result_value_list[${2}]}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-08-07T02:35:58.887394" elapsed="0.003941"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-08-07T02:35:58.895237" level="INFO">${stdev} = 50341.42</msg>
<var>${stdev}</var>
<arg>${result_value_list[${3}]}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-08-07T02:35:58.891484" elapsed="0.003782"/>
</kw>
<kw name="Get Time" owner="BuiltIn">
<msg time="2026-08-07T02:35:58.895771" level="INFO">${date} = 2026-08-07 02:35:58</msg>
<var>${date}</var>
<arg>d,m,s</arg>
<doc>Returns the given time in the requested format.</doc>
<status status="PASS" start="2026-08-07T02:35:58.895425" elapsed="0.000372"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-07T02:35:58.896360" level="INFO">CBench Result: 2026-08-07 02:35:58,-t -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633,144663.55,154908.46,150728.56,50341.42</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-08-07T02:35:58.895941" elapsed="0.000475"/>
</kw>
<kw name="Log Results And Determine Status">
<kw name="Append To File" owner="OperatingSystem">
<msg time="2026-08-07T02:35:58.897438" 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-08-07T02:35:58.897011" elapsed="0.000493"/>
</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-08-07T02:35:58.897649" elapsed="0.000468"/>
</kw>
<arg>${min}</arg>
<arg>${max}</arg>
<arg>${average}</arg>
<arg>${average_threshold}</arg>
<arg>${output_filename}</arg>
<status status="PASS" start="2026-08-07T02:35:58.896554" elapsed="0.001626"/>
</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-08-07T02:25:52.130149" elapsed="606.768106"/>
</kw>
<kw name="Sleep" owner="BuiltIn">
<msg time="2026-08-07T02:35:58.898732" level="INFO">Slept 0 seconds.</msg>
<arg>${test_delay}</arg>
<doc>Pauses the test executed for the given time.</doc>
<status status="PASS" start="2026-08-07T02:35:58.898404" elapsed="0.000392"/>
</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-08-07T02:35:58.899336" elapsed="0.000277"/>
</kw>
<status status="PASS" start="2026-08-07T02:35:58.899003" elapsed="0.000681"/>
</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-08-07T02:25:52.128682" elapsed="606.771040"/>
</test>
<test id="s1-t3" name="Rerun Latency Test To Check Bug 6176" line="65">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-07T02:35:58.901285" 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-08-07T02:35:58.900885" elapsed="0.000456"/>
</kw>
<kw name="Run Cbench And Log Results">
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-08-07T02:35:58.902904" level="INFO">${output_filename} = bug.csv</msg>
<arg>${output_filename}</arg>
<doc>Makes a variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-08-07T02:35:58.902273" elapsed="0.000677"/>
</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
[http://robotframework.org/robotframework/latest/libraries/Process.html|
Process] library instead._</doc>
<status status="NOT RUN" start="2026-08-07T02:35:58.903399" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-08-07T02:35:58.903163" elapsed="0.000295"/>
</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 with the given message and optionally alters its tags.</doc>
<status status="NOT RUN" start="2026-08-07T02:35:58.906509" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-08-07T02:35:58.906265" elapsed="0.000301"/>
</branch>
<status status="PASS" start="2026-08-07T02:35:58.906246" elapsed="0.000344"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-08-07T02:35:58.906907" 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-08-07T02:35:58.907022" 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-08-07T02:35:58.906719" elapsed="0.000329"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-07T02:35:58.907612" level="INFO">Attempting to execute command "/usr/local/bin/cbench -c 10.30.170.126 -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633" on remote system "10.30.170.110" 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-08-07T02:35:58.907180" elapsed="0.000489"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-08-07T02:35:58.908195" 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-08-07T02:35:58.907806" elapsed="0.000431"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-08-07T02:35:58.909114" level="INFO">Length is 0.</msg>
<msg time="2026-08-07T02:35:58.909200" 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-08-07T02:35:58.908806" elapsed="0.000433"/>
</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>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-08-07T02:35:58.909379" elapsed="0.000315"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-08-07T02:35:58.910567" level="INFO">Logging into '10.30.170.110:22' as 'jenkins'.</msg>
<msg time="2026-08-07T02:35:59.468363" level="INFO">Read output: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-153-generic x86_64)

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

 System information as of Fri Aug  7 02:35:59 UTC 2026

  System load:  0.35               Processes:             103
  Usage of /:   19.3% of 38.58GB   Users logged in:       0
  Memory usage: 4%                 IPv4 address for ens3: 10.30.170.110
  Swap usage:   0%


Expanded Security Maintenance for Applications is not enabled.

0 updates can be applied immediately.

9 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.4 LTS' available.
Run 'do-release-upgrade' to upgrade to it.


Last login: Fri Aug  7 02:25:52 2026 from 10.30.170.236
[?2004h[jenkins@releng-50965-9-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-08-07T02:35:58.910204" elapsed="0.558347"/>
</kw>
<msg time="2026-08-07T02:35:59.468636" 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-08-07T02:35:58.909868" elapsed="0.558860"/>
</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-08-07T02:35:58.908437" elapsed="0.560418"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-08-07T02:35:59.469488" level="INFO">Executing command '/usr/local/bin/cbench -c 10.30.170.126 -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633'.</msg>
<msg time="2026-08-07T02:46:05.513449" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-08-07T02:46:05.514130" level="INFO">${stdout} = </msg>
<msg time="2026-08-07T02:46:05.514206" level="INFO">${stderr} = cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.170.126:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with 10...</msg>
<var>${stdout}</var>
<var>${stderr}</var>
<arg>${cmd}</arg>
<arg>return_stderr=True</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-08-07T02:35:59.469076" elapsed="606.045194"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-08-07T02:46:05.514650" elapsed="0.000523"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-07T02:46:05.516175" level="INFO">cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.170.126: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.126. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
02:37:04.593 16  switches: flows:  147006 143506 166717 142676 142541 141232 143809 143569 141425 137152 136100 137288 136884 139492 133949 137573  total = 37.848650 per ms 
02:38:04.694 16  switches: flows:  145306 143987 147009 143750 142168 141889 146370 144731 141534 140661 134551 141029 138805 142288 135532 137122  total = 37.715840 per ms 
02:39:04.795 16  switches: flows:  144533 143220 147383 141431 142049 140363 143149 147816 141322 137980 134228 138629 139166 141354 134686 139942  total = 37.558125 per ms 
02:40:04.896 16  switches: flows:  145806 145221 148232 143267 145166 139968 146089 145412 141271 139631 136284 139162 141283 140184 136351 137487  total = 37.783813 per ms 
02:41:04.997 16  switches: flows:  147210 145516 149134 145274 143848 142892 147548 146569 141761 139965 137555 142558 141322 141640 135605 138461  total = 38.050809 per ms 
02:42:05.098 16  switches: flows:  148149 148269 153090 147867 145718 143223 149172 149335 141779 143349 141353 145154 143495 141902 136355 140276  total = 38.576990 per ms 
02:43:05.199 16  switches: flows:  148533 147032 150180 145215 143140 147229 147883 147834 142704 140892 138533 142808 141658 142238 137506 138872  total = 38.306904 per ms 
02:44:05.300 16  switches: flows:  149832 145291 149793 143866 145255 144054 147848 148819 140457 140368 138303 142480 143725 141282 138437 139500  total = 38.257986 per ms 
02:45:05.400 16  switches: flows:  147442 143866 148936 144798 142867 147353 146608 148269 141018 138340 137001 141199 140405 143849 137528 139504  total = 38.086129 per ms 
02:46:05.501 16  switches: flows:  150593 149853 150312 146626 144074 146170 145362 148665 137767 139321 137843 140740 141685 142742 135506 140340  total = 38.229527 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 37558.13/38576.99/38062.90/12691.33 responses/s</msg>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-07T02:46:05.515629" elapsed="0.000857"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="PASS" start="2026-08-07T02:46:05.516947" elapsed="0.000074"/>
</return>
<status status="PASS" start="2026-08-07T02:46:05.516661" elapsed="0.000439"/>
</branch>
<status status="PASS" start="2026-08-07T02:46:05.516609" elapsed="0.000534"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="NOT RUN" start="2026-08-07T02:46:05.517324" elapsed="0.000026"/>
</return>
<status status="NOT RUN" start="2026-08-07T02:46:05.517259" elapsed="0.000151"/>
</branch>
<status status="NOT RUN" start="2026-08-07T02:46:05.517209" elapsed="0.000247"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-08-07T02:46:05.517526" elapsed="0.000059"/>
</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>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-08-07T02:46:05.522684" elapsed="0.000416"/>
</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-08-07T02:46:05.523277" elapsed="0.000188"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-08-07T02:46:05.523600" elapsed="0.000105"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-08-07T02:46:05.518165" elapsed="0.005606"/>
</kw>
<msg time="2026-08-07T02:46:05.523912" level="INFO">${output} = cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.170.126:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with 10...</msg>
<var>${output}</var>
<arg>${cbench_system}</arg>
<arg>${cbench_executable} -c ${ODL_SYSTEM_IP} ${cbench_args}</arg>
<arg>prompt_timeout=${test_timeout}</arg>
<arg>return_stdout=False</arg>
<arg>return_stderr=True</arg>
<doc>Reduces the common work of running a command on a remote system to a single higher level
robot keyword, taking care to log in with a public key and. The command given is written and the return value
depends on the passed argument values of return_stdout (default: True) and return_stderr (default: False).
At least one should be True, or the keyword will exit and FAIL. If both are True, the resulting return value
will be a two element list containing both. Otherwise the resulting return value is a string.
No test conditions are checked.</doc>
<status status="PASS" start="2026-08-07T02:35:58.903837" elapsed="606.620103"/>
</kw>
<status status="PASS" start="2026-08-07T02:35:58.903485" elapsed="606.620505"/>
</branch>
<status status="PASS" start="2026-08-07T02:35:58.903141" elapsed="606.620874"/>
</if>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-07T02:46:05.524560" level="INFO">cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.170.126: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.126. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
02:37:04.593 16  switches: flows:  147006 143506 166717 142676 142541 141232 143809 143569 141425 137152 136100 137288 136884 139492 133949 137573  total = 37.848650 per ms 
02:38:04.694 16  switches: flows:  145306 143987 147009 143750 142168 141889 146370 144731 141534 140661 134551 141029 138805 142288 135532 137122  total = 37.715840 per ms 
02:39:04.795 16  switches: flows:  144533 143220 147383 141431 142049 140363 143149 147816 141322 137980 134228 138629 139166 141354 134686 139942  total = 37.558125 per ms 
02:40:04.896 16  switches: flows:  145806 145221 148232 143267 145166 139968 146089 145412 141271 139631 136284 139162 141283 140184 136351 137487  total = 37.783813 per ms 
02:41:04.997 16  switches: flows:  147210 145516 149134 145274 143848 142892 147548 146569 141761 139965 137555 142558 141322 141640 135605 138461  total = 38.050809 per ms 
02:42:05.098 16  switches: flows:  148149 148269 153090 147867 145718 143223 149172 149335 141779 143349 141353 145154 143495 141902 136355 140276  total = 38.576990 per ms 
02:43:05.199 16  switches: flows:  148533 147032 150180 145215 143140 147229 147883 147834 142704 140892 138533 142808 141658 142238 137506 138872  total = 38.306904 per ms 
02:44:05.300 16  switches: flows:  149832 145291 149793 143866 145255 144054 147848 148819 140457 140368 138303 142480 143725 141282 138437 139500  total = 38.257986 per ms 
02:45:05.400 16  switches: flows:  147442 143866 148936 144798 142867 147353 146608 148269 141018 138340 137001 141199 140405 143849 137528 139504  total = 38.086129 per ms 
02:46:05.501 16  switches: flows:  150593 149853 150312 146626 144074 146170 145362 148665 137767 139321 137843 140740 141685 142742 135506 140340  total = 38.229527 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 37558.13/38576.99/38062.90/12691.33 responses/s</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-07T02:46:05.524185" elapsed="0.000453"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${output}</arg>
<arg>RESULT</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-08-07T02:46:05.524819" elapsed="0.000433"/>
</kw>
<kw name="Get Lines Containing String" owner="String">
<msg time="2026-08-07T02:46:05.525696" level="INFO">1 out of 23 lines matched.</msg>
<msg time="2026-08-07T02:46:05.525792" level="INFO">${result_line} = RESULT: 16 switches 9 tests min/max/avg/stdev = 37558.13/38576.99/38062.90/12691.33 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-08-07T02:46:05.525430" elapsed="0.000387"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-08-07T02:46:05.526255" level="INFO">@{results_list} = [ RESULT: | 16 | switches | 9 | tests | min/max/avg/stdev | = | 37558.13/38576.99/38062.90/12691.33 | 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-08-07T02:46:05.525972" elapsed="0.000310"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-07T02:46:05.528832" 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-08-07T02:46:05.526429" elapsed="0.002463"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-07T02:46:05.532086" level="INFO">37558.13/38576.99/38062.90/12691.33</msg>
<arg>${results_list[7]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-07T02:46:05.529052" elapsed="0.003099"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-08-07T02:46:05.535104" 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-08-07T02:46:05.532346" elapsed="0.002793"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-08-07T02:46:05.538019" level="INFO">@{result_value_list} = [ 37558.13 | 38576.99 | 38062.90 | 12691.33 ]</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-08-07T02:46:05.535459" elapsed="0.002599"/>
</kw>
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-08-07T02:46:05.538674" level="INFO">Length is 4.</msg>
<msg time="2026-08-07T02:46:05.538768" 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-08-07T02:46:05.538265" elapsed="0.000527"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-07T02:46:05.544054" level="INFO">min :: 37558.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-08-07T02:46:05.539260" elapsed="0.004858"/>
</kw>
<var name="${i}">0</var>
<status status="PASS" start="2026-08-07T02:46:05.539106" elapsed="0.005048"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-07T02:46:05.549147" level="INFO">max :: 38576.99</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-08-07T02:46:05.544413" elapsed="0.004794"/>
</kw>
<var name="${i}">1</var>
<status status="PASS" start="2026-08-07T02:46:05.544267" elapsed="0.004992"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-07T02:46:05.554191" level="INFO">avg :: 38062.90</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-08-07T02:46:05.549591" elapsed="0.004682"/>
</kw>
<var name="${i}">2</var>
<status status="PASS" start="2026-08-07T02:46:05.549448" elapsed="0.004861"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-07T02:46:05.559341" level="INFO">stdev :: 12691.33</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-07T02:46:05.554550" elapsed="0.004852"/>
</kw>
<var name="${i}">3</var>
<status status="PASS" start="2026-08-07T02:46:05.554395" elapsed="0.005043"/>
</iter>
<var>${i}</var>
<value>0</value>
<value>${num_stats}</value>
<status status="PASS" start="2026-08-07T02:46:05.538867" elapsed="0.020601"/>
</for>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-08-07T02:46:05.563440" level="INFO">${min} = 37558.13</msg>
<var>${min}</var>
<arg>${result_value_list[${0}]}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-08-07T02:46:05.559646" elapsed="0.003822"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-08-07T02:46:05.567512" level="INFO">${max} = 38576.99</msg>
<var>${max}</var>
<arg>${result_value_list[${1}]}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-08-07T02:46:05.563621" elapsed="0.003918"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-08-07T02:46:05.571381" level="INFO">${average} = 38062.90</msg>
<var>${average}</var>
<arg>${result_value_list[${2}]}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-08-07T02:46:05.567692" elapsed="0.003716"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-08-07T02:46:05.575438" level="INFO">${stdev} = 12691.33</msg>
<var>${stdev}</var>
<arg>${result_value_list[${3}]}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-08-07T02:46:05.571561" elapsed="0.003904"/>
</kw>
<kw name="Get Time" owner="BuiltIn">
<msg time="2026-08-07T02:46:05.575992" level="INFO">${date} = 2026-08-07 02:46:05</msg>
<var>${date}</var>
<arg>d,m,s</arg>
<doc>Returns the given time in the requested format.</doc>
<status status="PASS" start="2026-08-07T02:46:05.575630" elapsed="0.000388"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-07T02:46:05.576609" level="INFO">CBench Result: 2026-08-07 02:46:05,-m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633,37558.13,38576.99,38062.90,12691.33</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-08-07T02:46:05.576165" elapsed="0.000502"/>
</kw>
<kw name="Log Results And Determine Status">
<kw name="Append To File" owner="OperatingSystem">
<msg time="2026-08-07T02:46:05.577892" 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-08-07T02:46:05.577352" elapsed="0.000661"/>
</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-08-07T02:46:05.578177" elapsed="0.000523"/>
</kw>
<arg>${min}</arg>
<arg>${max}</arg>
<arg>${average}</arg>
<arg>${average_threshold}</arg>
<arg>${output_filename}</arg>
<status status="PASS" start="2026-08-07T02:46:05.576833" elapsed="0.001936"/>
</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-08-07T02:35:58.901651" elapsed="606.677187"/>
</kw>
<kw name="Sleep" owner="BuiltIn">
<msg time="2026-08-07T02:46:05.579347" level="INFO">Slept 0 seconds.</msg>
<arg>${test_delay}</arg>
<doc>Pauses the test executed for the given time.</doc>
<status status="PASS" start="2026-08-07T02:46:05.578988" elapsed="0.000421"/>
</kw>
<kw name="Report Failure Due To Bug" owner="Utils" type="TEARDOWN">
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-08-07T02:46:05.580811" 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-08-07T02:46:05.580195" elapsed="0.000652"/>
</kw>
<if>
<branch type="IF" condition="('${TEST_STATUS}' != 'FAIL') or ${test_skipped}">
<return>
<status status="PASS" start="2026-08-07T02:46:05.581181" elapsed="0.000072"/>
</return>
<status status="PASS" start="2026-08-07T02:46:05.580962" elapsed="0.000336"/>
</branch>
<status status="PASS" start="2026-08-07T02:46:05.580928" elapsed="0.000404"/>
</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-08-07T02:46:05.581489" elapsed="0.000023"/>
</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-08-07T02:46:05.581652" elapsed="0.000020"/>
</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-08-07T02:46:05.581811" elapsed="0.000020"/>
</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 variables.</doc>
<status status="NOT RUN" start="2026-08-07T02:46:05.582074" elapsed="0.000024"/>
</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-08-07T02:46:05.582245" elapsed="0.000029"/>
</kw>
<kw name="Set Test Message" owner="BuiltIn">
<arg>${msg}${newline}${newline}${TEST_MESSAGE}</arg>
<doc>Sets message for the current test case.</doc>
<status status="NOT RUN" start="2026-08-07T02:46:05.582423" elapsed="0.000021"/>
</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-08-07T02:46:05.582571" elapsed="0.000020"/>
</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 given ``tags`` for the current test or all tests in a suite.</doc>
<status status="NOT RUN" start="2026-08-07T02:46:05.582790" elapsed="0.000019"/>
</kw>
<status status="NOT RUN" start="2026-08-07T02:46:05.582654" elapsed="0.000187"/>
</branch>
<status status="NOT RUN" start="2026-08-07T02:46:05.582637" elapsed="0.000227"/>
</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-08-07T02:46:05.579845" elapsed="0.003072"/>
</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-08-07T02:35:58.900299" elapsed="606.682669"/>
</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-08-07T02:15:42.971151" elapsed="1822.612639"/>
</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>
