<?xml version="1.0" encoding="UTF-8"?>
<robot generator="Robot 7.4.2 (Python 3.11.10 on linux)" generated="2026-08-09T02:53:55.397682" 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-09T02:53:55.960852" elapsed="0.000024"/>
</return>
<status status="NOT RUN" start="2026-08-09T02:53:55.960704" elapsed="0.000234"/>
</branch>
<status status="PASS" start="2026-08-09T02:53:55.960670" elapsed="0.000300"/>
</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-09T02:53:55.961119" elapsed="0.000540"/>
</kw>
<kw name="Login" owner="SSHLibrary">
<msg time="2026-08-09T02:53:55.962154" level="INFO">Logging into '10.30.170.99:8101' as 'karaf'.</msg>
<msg time="2026-08-09T02:53:56.810474" 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-09T02:53:55.961836" elapsed="0.848843"/>
</kw>
<kw name="Write" owner="SSHLibrary">
<msg time="2026-08-09T02:53:56.860579" 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-09T02:53:56.810958" elapsed="0.049720"/>
</kw>
<kw name="Read Until Regexp" owner="SSHLibrary">
<msg time="2026-08-09T02:53:56.862607" level="INFO">[?1l&gt;[?2004l[?1h=[90m~[0m                                                                                [?2004hopendaylight-user@root&gt;</msg>
<msg time="2026-08-09T02:53:56.862731" 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-09T02:53:56.860872" elapsed="0.001890"/>
</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-09T02:53:56.862916" elapsed="0.000217"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-08-09T02:53:56.863293" elapsed="0.000265"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-09T02:53:56.864067" 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-09T02:53:56.863734" elapsed="0.000388"/>
</kw>
<return>
<value>${output}</value>
<status status="PASS" start="2026-08-09T02:53:56.864174" elapsed="0.000051"/>
</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.99
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-09T02:53:55.960299" elapsed="0.904043"/>
</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-09T02:53:55.956507" elapsed="0.907897"/>
</kw>
<kw name="Append To File" owner="OperatingSystem">
<msg time="2026-08-09T02:53:56.864989" 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-09T02:53:56.864587" elapsed="0.000470"/>
</kw>
<kw name="Append To File" owner="OperatingSystem">
<msg time="2026-08-09T02:53:56.865462" 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-09T02:53:56.865212" elapsed="0.000307"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-08-09T02:53:56.866093" 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-09T02:53:56.865697" elapsed="0.000424"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-08-09T02:53:56.866691" 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-09T02:53:56.866333" elapsed="0.000402"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-08-09T02:53:56.867259" 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-09T02:53:56.866883" elapsed="0.000404"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-08-09T02:53:56.867795" 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-09T02:53:56.867449" elapsed="0.000389"/>
</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-09T02:53:56.868137" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-08-09T02:53:56.867922" elapsed="0.000293"/>
</branch>
<branch type="ELSE">
<kw name="Verify File Exists On Remote System" owner="Utils">
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-08-09T02:53:56.872568" 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-09T02:53:56.872163" elapsed="0.000433"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-08-09T02:53:56.873872" level="INFO">Length is 0.</msg>
<msg time="2026-08-09T02:53:56.873970" 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-09T02:53:56.873172" elapsed="0.000824"/>
</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-09T02:53:56.874163" elapsed="0.000354"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-08-09T02:53:56.875567" level="INFO">Logging into '10.30.170.112:22' as 'jenkins'.</msg>
<msg time="2026-08-09T02:53:57.561919" 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 Sun Aug  9 02:53:57 UTC 2026

  System load:  0.04               Processes:             110
  Usage of /:   19.3% of 38.58GB   Users logged in:       0
  Memory usage: 4%                 IPv4 address for ens3: 10.30.170.112
  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-11-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-09T02:53:56.875040" elapsed="0.687046"/>
</kw>
<msg time="2026-08-09T02:53:57.562176" 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-09T02:53:56.874689" elapsed="0.687582"/>
</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-09T02:53:56.872821" elapsed="0.689573"/>
</kw>
<kw name="File Should Exist" owner="SSHLibrary">
<msg time="2026-08-09T02:53:57.569830" 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-09T02:53:57.562616" elapsed="0.008795"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-08-09T02:53:57.571826" elapsed="0.000551"/>
</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-09T02:53:56.871636" elapsed="0.700878"/>
</kw>
<status status="PASS" start="2026-08-09T02:53:56.868292" elapsed="0.704303"/>
</branch>
<status status="PASS" start="2026-08-09T02:53:56.867898" elapsed="0.704791"/>
</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-09T02:53:57.573019" elapsed="0.001038"/>
</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-09T02:53:57.583021" elapsed="0.000019"/>
</return>
<status status="NOT RUN" start="2026-08-09T02:53:57.582895" elapsed="0.000181"/>
</branch>
<status status="PASS" start="2026-08-09T02:53:57.582871" elapsed="0.000229"/>
</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-09T02:53:57.586802" elapsed="0.000015"/>
</return>
<status status="NOT RUN" start="2026-08-09T02:53:57.586676" elapsed="0.000174"/>
</branch>
<status status="PASS" start="2026-08-09T02:53:57.586652" elapsed="0.000220"/>
</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-09T02:53:57.587003" elapsed="0.000439"/>
</kw>
<kw name="Login" owner="SSHLibrary">
<msg time="2026-08-09T02:53:57.587870" level="INFO">Logging into '10.30.170.99:8101' as 'karaf'.</msg>
<msg time="2026-08-09T02:53:57.772289" 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-09T02:53:57.587589" elapsed="0.184869"/>
</kw>
<kw name="Write" owner="SSHLibrary">
<msg time="2026-08-09T02:53:57.871047" 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-09T02:53:57.772745" elapsed="0.098519"/>
</kw>
<kw name="Read Until Regexp" owner="SSHLibrary">
<msg time="2026-08-09T02:53:57.878990" 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-09T02:53:57.879237" 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-09T02:53:57.871576" elapsed="0.007703"/>
</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-09T02:53:57.879451" elapsed="0.000374"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-08-09T02:53:57.880024" elapsed="0.000321"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-09T02:53:57.880941" 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-09T02:53:57.880531" elapsed="0.000468"/>
</kw>
<return>
<value>${output}</value>
<status status="PASS" start="2026-08-09T02:53:57.881056" elapsed="0.000068"/>
</return>
<msg time="2026-08-09T02:53:57.881304" 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.99
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-09T02:53:57.586289" elapsed="0.295050"/>
</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-09T02:53:57.881496" elapsed="0.000760"/>
</kw>
<return>
<value>${output}</value>
<status status="PASS" start="2026-08-09T02:53:57.882315" elapsed="0.000035"/>
</return>
<arg>odl-openflowplugin-drop-test</arg>
<doc>Will Succeed if the given ${feature_name} is found in the output of "feature:list -i"</doc>
<status status="PASS" start="2026-08-09T02:53:57.582558" elapsed="0.299900"/>
</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-09T02:53:57.886667" elapsed="0.000017"/>
</return>
<status status="NOT RUN" start="2026-08-09T02:53:57.886496" elapsed="0.000221"/>
</branch>
<status status="PASS" start="2026-08-09T02:53:57.886468" elapsed="0.000275"/>
</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-09T02:53:57.886881" elapsed="0.000495"/>
</kw>
<kw name="Login" owner="SSHLibrary">
<msg time="2026-08-09T02:53:57.888099" level="INFO">Logging into '10.30.170.99:8101' as 'karaf'.</msg>
<msg time="2026-08-09T02:53:58.084420" 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-09T02:53:57.887808" elapsed="0.196795"/>
</kw>
<kw name="Write" owner="SSHLibrary">
<msg time="2026-08-09T02:53:58.111447" 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-09T02:53:58.084905" elapsed="0.026607"/>
</kw>
<kw name="Read Until Regexp" owner="SSHLibrary">
<msg time="2026-08-09T02:53:58.113736" level="INFO">[?1l&gt;[?2004lDropAllFlows transitions to on
[?1h=[90m~[0m                                                                                [?2004hopendaylight-user@root&gt;</msg>
<msg time="2026-08-09T02:53:58.113853" 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-09T02:53:58.111681" elapsed="0.002202"/>
</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-09T02:53:58.114022" elapsed="0.000190"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-08-09T02:53:58.114361" elapsed="0.000284"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-09T02:53:58.115136" 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-09T02:53:58.114793" elapsed="0.000398"/>
</kw>
<return>
<value>${output}</value>
<status status="PASS" start="2026-08-09T02:53:58.115247" elapsed="0.000062"/>
</return>
<arg>dropallpacketsrpc on</arg>
<doc>Will execute the given ${cmd} by ssh'ing to the karaf console running on 10.30.170.99
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-09T02:53:57.886102" elapsed="0.229343"/>
</kw>
<status status="PASS" start="2026-08-09T02:53:55.954598" elapsed="2.160915"/>
</kw>
<test id="s1-t1" name="Cbench Latency Test" line="37">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-09T02:53:58.117905" 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-09T02:53:58.116676" elapsed="0.001294"/>
</kw>
<kw name="Run Cbench And Log Results">
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-08-09T02:53:58.119454" 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-09T02:53:58.119100" elapsed="0.000398"/>
</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-09T02:53:58.119843" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-08-09T02:53:58.119578" elapsed="0.000323"/>
</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-09T02:53:58.123020" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-08-09T02:53:58.122768" elapsed="0.000309"/>
</branch>
<status status="PASS" start="2026-08-09T02:53:58.122748" elapsed="0.000355"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-08-09T02:53:58.123447" 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-09T02:53:58.123572" 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-09T02:53:58.123239" elapsed="0.000361"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-09T02:53:58.124181" level="INFO">Attempting to execute command "/usr/local/bin/cbench -c 10.30.170.99 -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633" on remote system "10.30.170.112" 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-09T02:53:58.123753" elapsed="0.000487"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-08-09T02:53:58.124879" 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-09T02:53:58.124380" elapsed="0.000525"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-08-09T02:53:58.125923" level="INFO">Length is 0.</msg>
<msg time="2026-08-09T02:53:58.126014" 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-09T02:53:58.125569" elapsed="0.000469"/>
</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-09T02:53:58.126181" elapsed="0.000429"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-08-09T02:53:58.127499" level="INFO">Logging into '10.30.170.112:22' as 'jenkins'.</msg>
<msg time="2026-08-09T02:53:58.491934" 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 Sun Aug  9 02:53:57 UTC 2026

  System load:  0.04               Processes:             110
  Usage of /:   19.3% of 38.58GB   Users logged in:       0
  Memory usage: 4%                 IPv4 address for ens3: 10.30.170.112
  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: Sun Aug  9 02:53:57 2026 from 10.30.170.200
[?2004h[jenkins@releng-50965-11-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-09T02:53:58.127135" elapsed="0.365059"/>
</kw>
<msg time="2026-08-09T02:53:58.492300" 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-09T02:53:58.126784" elapsed="0.365628"/>
</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-09T02:53:58.125110" elapsed="0.367445"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-08-09T02:53:58.493170" level="INFO">Executing command '/usr/local/bin/cbench -c 10.30.170.99 -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633'.</msg>
<msg time="2026-08-09T03:04:04.645953" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-08-09T03:04:04.646580" level="INFO">${stdout} = </msg>
<msg time="2026-08-09T03:04:04.646742" level="INFO">${stderr} = cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.170.99:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with 100...</msg>
<var>${stdout}</var>
<var>${stderr}</var>
<arg>${cmd}</arg>
<arg>return_stderr=True</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-08-09T02:53:58.492811" elapsed="606.153995"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-08-09T03:04:04.647310" elapsed="0.000798"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-09T03:04:04.649271" level="INFO">cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.170.99: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.99. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
02:55:03.731 16  switches: flows:  91089 89819 90805 90941 89489 89116 88808 89226 89031 87682 87844 88485 86796 86584 86569 87411  total = 23.661583 per ms 
02:56:03.833 16  switches: flows:  119962 121541 119976 119237 122034 120939 118582 119554 118010 119145 118385 116915 116185 116680 117385 118312  total = 31.660598 per ms 
02:57:03.935 16  switches: flows:  123686 124270 122742 120848 124130 121983 120560 122547 122938 122623 121246 118815 119319 118388 118600 120608  total = 32.334077 per ms 
02:58:04.035 16  switches: flows:  122142 124133 122833 120925 122509 121856 118397 120995 119946 120961 118708 118139 117135 117226 117612 119184  total = 31.991622 per ms 
02:59:04.135 16  switches: flows:  123488 124595 123265 120680 123821 122766 119775 120954 121049 121389 120847 118723 118213 118199 119533 121342  total = 32.256826 per ms 
03:00:04.235 16  switches: flows:  121561 123214 122652 121034 123843 121884 118078 119818 118556 116263 119664 119060 118677 116521 117252 118862  total = 31.895732 per ms 
03:01:04.336 16  switches: flows:  122719 123749 123145 121651 124546 122325 118748 121510 121770 115427 120451 118464 117935 116228 117740 120124  total = 32.055324 per ms 
03:02:04.436 16  switches: flows:  123422 124684 122445 120784 124132 122989 118835 122260 121462 118434 121599 117518 119361 119866 119199 119959  total = 32.228627 per ms 
03:03:04.536 16  switches: flows:  123141 125858 124473 124037 123626 122578 120154 122920 123521 118630 122289 118677 121375 120350 121318 120691  total = 32.506320 per ms 
03:04:04.637 16  switches: flows:  120179 123488 119683 119257 119807 118143 117656 118429 118825 114965 117428 113363 118499 116595 118387 116397  total = 31.465818 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 31465.82/32506.32/32043.88/10685.89 responses/s</msg>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-09T03:04:04.648482" elapsed="0.001301"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="PASS" start="2026-08-09T03:04:04.650312" elapsed="0.000074"/>
</return>
<status status="PASS" start="2026-08-09T03:04:04.649998" elapsed="0.000447"/>
</branch>
<status status="PASS" start="2026-08-09T03:04:04.649935" elapsed="0.000549"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="NOT RUN" start="2026-08-09T03:04:04.650652" elapsed="0.000022"/>
</return>
<status status="NOT RUN" start="2026-08-09T03:04:04.650575" elapsed="0.000142"/>
</branch>
<status status="NOT RUN" start="2026-08-09T03:04:04.650552" elapsed="0.000196"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-08-09T03:04:04.650797" elapsed="0.000019"/>
</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-09T03:04:04.654768" elapsed="0.000526"/>
</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-09T03:04:04.655521" elapsed="0.000278"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-08-09T03:04:04.655997" elapsed="0.000151"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-08-09T03:04:04.651288" elapsed="0.004940"/>
</kw>
<msg time="2026-08-09T03:04:04.656423" level="INFO">${output} = cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.170.99:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with 100...</msg>
<var>${output}</var>
<arg>${cbench_system}</arg>
<arg>${cbench_executable} -c ${ODL_SYSTEM_IP} ${cbench_args}</arg>
<arg>prompt_timeout=${test_timeout}</arg>
<arg>return_stdout=False</arg>
<arg>return_stderr=True</arg>
<doc>Reduces the common work of running a command on a remote system to a single higher level
robot keyword, taking care to log in with a public key and. The command given is written and the return value
depends on the passed argument values of return_stdout (default: True) and return_stderr (default: False).
At least one should be True, or the keyword will exit and FAIL. If both are True, the resulting return value
will be a two element list containing both. Otherwise the resulting return value is a string.
No test conditions are checked.</doc>
<status status="PASS" start="2026-08-09T02:53:58.120259" elapsed="606.536206"/>
</kw>
<status status="PASS" start="2026-08-09T02:53:58.119932" elapsed="606.536617"/>
</branch>
<status status="PASS" start="2026-08-09T02:53:58.119555" elapsed="606.537032"/>
</if>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-09T03:04:04.657270" level="INFO">cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.170.99: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.99. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
02:55:03.731 16  switches: flows:  91089 89819 90805 90941 89489 89116 88808 89226 89031 87682 87844 88485 86796 86584 86569 87411  total = 23.661583 per ms 
02:56:03.833 16  switches: flows:  119962 121541 119976 119237 122034 120939 118582 119554 118010 119145 118385 116915 116185 116680 117385 118312  total = 31.660598 per ms 
02:57:03.935 16  switches: flows:  123686 124270 122742 120848 124130 121983 120560 122547 122938 122623 121246 118815 119319 118388 118600 120608  total = 32.334077 per ms 
02:58:04.035 16  switches: flows:  122142 124133 122833 120925 122509 121856 118397 120995 119946 120961 118708 118139 117135 117226 117612 119184  total = 31.991622 per ms 
02:59:04.135 16  switches: flows:  123488 124595 123265 120680 123821 122766 119775 120954 121049 121389 120847 118723 118213 118199 119533 121342  total = 32.256826 per ms 
03:00:04.235 16  switches: flows:  121561 123214 122652 121034 123843 121884 118078 119818 118556 116263 119664 119060 118677 116521 117252 118862  total = 31.895732 per ms 
03:01:04.336 16  switches: flows:  122719 123749 123145 121651 124546 122325 118748 121510 121770 115427 120451 118464 117935 116228 117740 120124  total = 32.055324 per ms 
03:02:04.436 16  switches: flows:  123422 124684 122445 120784 124132 122989 118835 122260 121462 118434 121599 117518 119361 119866 119199 119959  total = 32.228627 per ms 
03:03:04.536 16  switches: flows:  123141 125858 124473 124037 123626 122578 120154 122920 123521 118630 122289 118677 121375 120350 121318 120691  total = 32.506320 per ms 
03:04:04.637 16  switches: flows:  120179 123488 119683 119257 119807 118143 117656 118429 118825 114965 117428 113363 118499 116595 118387 116397  total = 31.465818 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 31465.82/32506.32/32043.88/10685.89 responses/s</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-09T03:04:04.656823" elapsed="0.000560"/>
</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-09T03:04:04.657667" elapsed="0.000620"/>
</kw>
<kw name="Get Lines Containing String" owner="String">
<msg time="2026-08-09T03:04:04.658933" level="INFO">1 out of 23 lines matched.</msg>
<msg time="2026-08-09T03:04:04.659103" level="INFO">${result_line} = RESULT: 16 switches 9 tests min/max/avg/stdev = 31465.82/32506.32/32043.88/10685.89 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-09T03:04:04.658530" elapsed="0.000611"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-08-09T03:04:04.659787" level="INFO">@{results_list} = [ RESULT: | 16 | switches | 9 | tests | min/max/avg/stdev | = | 31465.82/32506.32/32043.88/10685.89 | 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-09T03:04:04.659371" elapsed="0.000457"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-09T03:04:04.663194" 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-09T03:04:04.660063" elapsed="0.003191"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-09T03:04:04.665879" level="INFO">31465.82/32506.32/32043.88/10685.89</msg>
<arg>${results_list[7]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-09T03:04:04.663407" elapsed="0.002532"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-08-09T03:04:04.668332" 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-09T03:04:04.666093" elapsed="0.002267"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-08-09T03:04:04.670916" level="INFO">@{result_value_list} = [ 31465.82 | 32506.32 | 32043.88 | 10685.89 ]</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-09T03:04:04.668578" elapsed="0.002367"/>
</kw>
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-08-09T03:04:04.671506" level="INFO">Length is 4.</msg>
<msg time="2026-08-09T03:04:04.671596" 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-09T03:04:04.671162" elapsed="0.000481"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-09T03:04:04.676464" level="INFO">min :: 31465.82</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-09T03:04:04.672064" elapsed="0.004459"/>
</kw>
<var name="${i}">0</var>
<status status="PASS" start="2026-08-09T03:04:04.671926" elapsed="0.004633"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-09T03:04:04.681449" level="INFO">max :: 32506.32</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-09T03:04:04.676797" elapsed="0.004714"/>
</kw>
<var name="${i}">1</var>
<status status="PASS" start="2026-08-09T03:04:04.676667" elapsed="0.004925"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-09T03:04:04.686519" level="INFO">avg :: 32043.88</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-09T03:04:04.681891" elapsed="0.004686"/>
</kw>
<var name="${i}">2</var>
<status status="PASS" start="2026-08-09T03:04:04.681736" elapsed="0.004877"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-09T03:04:04.691284" level="INFO">stdev :: 10685.89</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-09T03:04:04.686867" elapsed="0.004476"/>
</kw>
<var name="${i}">3</var>
<status status="PASS" start="2026-08-09T03:04:04.686734" elapsed="0.004643"/>
</iter>
<var>${i}</var>
<value>0</value>
<value>${num_stats}</value>
<status status="PASS" start="2026-08-09T03:04:04.671720" elapsed="0.019692"/>
</for>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-08-09T03:04:04.695403" level="INFO">${min} = 31465.82</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-09T03:04:04.691579" elapsed="0.003852"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-08-09T03:04:04.699601" level="INFO">${max} = 32506.32</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-09T03:04:04.695587" elapsed="0.004058"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-08-09T03:04:04.703585" level="INFO">${average} = 32043.88</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-09T03:04:04.699800" elapsed="0.003812"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-08-09T03:04:04.707582" level="INFO">${stdev} = 10685.89</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-09T03:04:04.703791" elapsed="0.003817"/>
</kw>
<kw name="Get Time" owner="BuiltIn">
<msg time="2026-08-09T03:04:04.708156" level="INFO">${date} = 2026-08-09 03:04:04</msg>
<var>${date}</var>
<arg>d,m,s</arg>
<doc>Returns the given time in the requested format.</doc>
<status status="PASS" start="2026-08-09T03:04:04.707787" elapsed="0.000395"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-09T03:04:04.708758" level="INFO">CBench Result: 2026-08-09 03:04:04,-m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633,31465.82,32506.32,32043.88,10685.89</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-09T03:04:04.708330" elapsed="0.000484"/>
</kw>
<kw name="Log Results And Determine Status">
<kw name="Append To File" owner="OperatingSystem">
<msg time="2026-08-09T03:04:04.710022" 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-09T03:04:04.709481" elapsed="0.000614"/>
</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-09T03:04:04.710249" elapsed="0.000500"/>
</kw>
<arg>${min}</arg>
<arg>${max}</arg>
<arg>${average}</arg>
<arg>${average_threshold}</arg>
<arg>${output_filename}</arg>
<status status="PASS" start="2026-08-09T03:04:04.708993" elapsed="0.001822"/>
</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-09T02:53:58.118421" elapsed="606.592455"/>
</kw>
<kw name="Sleep" owner="BuiltIn">
<msg time="2026-08-09T03:04:04.711358" 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-09T03:04:04.711030" elapsed="0.000384"/>
</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-09T03:04:04.711968" elapsed="0.000273"/>
</kw>
<status status="PASS" start="2026-08-09T03:04:04.711658" elapsed="0.000653"/>
</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-09T02:53:58.115704" elapsed="606.596646"/>
</test>
<test id="s1-t2" name="Cbench Throughput Test" line="51">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-09T03:04:04.713711" 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-09T03:04:04.713276" elapsed="0.000507"/>
</kw>
<kw name="Run Cbench And Log Results">
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-08-09T03:04:04.715239" 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-09T03:04:04.714901" elapsed="0.000381"/>
</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-09T03:04:04.715666" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-08-09T03:04:04.715413" elapsed="0.000317"/>
</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-09T03:04:04.718763" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-08-09T03:04:04.718476" elapsed="0.000344"/>
</branch>
<status status="PASS" start="2026-08-09T03:04:04.718457" elapsed="0.000386"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-08-09T03:04:04.719202" 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-09T03:04:04.719330" 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-09T03:04:04.718983" elapsed="0.000374"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-09T03:04:04.719946" level="INFO">Attempting to execute command "/usr/local/bin/cbench -c 10.30.170.99 -t -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633" on remote system "10.30.170.112" 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-09T03:04:04.719491" elapsed="0.000515"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-08-09T03:04:04.720553" 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-09T03:04:04.720147" elapsed="0.000433"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-08-09T03:04:04.721499" level="INFO">Length is 0.</msg>
<msg time="2026-08-09T03:04:04.721591" 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-09T03:04:04.721182" elapsed="0.000477"/>
</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-09T03:04:04.721813" elapsed="0.000333"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-08-09T03:04:04.723021" level="INFO">Logging into '10.30.170.112:22' as 'jenkins'.</msg>
<msg time="2026-08-09T03:04:05.327195" 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 Sun Aug  9 03:04:04 UTC 2026

  System load:  1.0                Processes:             104
  Usage of /:   19.3% of 38.58GB   Users logged in:       0
  Memory usage: 4%                 IPv4 address for ens3: 10.30.170.112
  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: Sun Aug  9 02:53:58 2026 from 10.30.170.200
[?2004h[jenkins@releng-50965-11-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-09T03:04:04.722666" elapsed="0.604810"/>
</kw>
<msg time="2026-08-09T03:04:05.327581" 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-09T03:04:04.722304" elapsed="0.605411"/>
</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-09T03:04:04.720799" elapsed="0.607066"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-08-09T03:04:05.328588" level="INFO">Executing command '/usr/local/bin/cbench -c 10.30.170.99 -t -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633'.</msg>
<msg time="2026-08-09T03:14:11.384497" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-08-09T03:14:11.385681" level="INFO">${stdout} = </msg>
<msg time="2026-08-09T03:14:11.385803" level="INFO">${stderr} = cbench: controller benchmarking tool
   running in mode 'throughput'
   connecting to controller at 10.30.170.99: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-09T03:04:05.328190" elapsed="606.057686"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-08-09T03:14:11.386429" elapsed="0.001295"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-09T03:14:11.388937" level="INFO">cbench: controller benchmarking tool
   running in mode 'throughput'
   connecting to controller at 10.30.170.99: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.99. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
03:05:10.460 16  switches: flows:  569008 580916 578151 570438 552825 579547 580631 573816 564597 554899 550105 557612 564146 566458 555452 559651  total = 150.970867 per ms 
03:06:10.561 16  switches: flows:  599219 597815 577370 595145 592906 615243 609676 579413 592782 609008 603674 612731 589706 581758 593313 606502  total = 159.003234 per ms 
03:07:10.663 16  switches: flows:  678591 685156 683592 694425 691690 693668 684848 690819 689945 697712 680306 684015 682255 692208 687244 694977  total = 183.215048 per ms 
03:08:10.764 16  switches: flows:  669320 648057 663876 661921 654139 662602 661494 652438 663939 657231 654470 659914 655124 661172 655859 660019  total = 175.398957 per ms 
03:09:10.866 16  switches: flows:  655535 637532 645541 646692 640746 659560 651960 646577 645452 655091 647127 645933 643058 643878 647351 663054  total = 172.627059 per ms 
03:10:10.967 16  switches: flows:  679711 673992 680470 687990 686300 684375 679769 683359 673613 682731 686922 684407 683819 685966 685402 668866  total = 181.489976 per ms 
03:11:11.069 16  switches: flows:  647218 643844 639992 634581 636664 642288 642506 638783 631131 634983 644923 649188 639138 645294 638735 637797  total = 170.497980 per ms 
03:12:11.170 16  switches: flows:  692887 690906 685098 692130 684991 696677 689671 691538 699777 687767 691132 691601 683293 696107 695679 692926  total = 184.059698 per ms 
03:13:11.272 16  switches: flows:  622398 620207 622313 620912 615062 610416 627993 617185 616652 620784 617941 616846 620761 622900 614870 627638  total = 164.969443 per ms 
03:14:11.374 16  switches: flows:  692525 695801 676680 695403 694604 701014 694142 695712 696844 695375 700834 696934 684275 704906 693944 693179  total = 184.889553 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 159003.23/184889.55/175127.88/59011.94 responses/s</msg>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-09T03:14:11.388131" elapsed="0.001155"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="PASS" start="2026-08-09T03:14:11.389838" elapsed="0.000077"/>
</return>
<status status="PASS" start="2026-08-09T03:14:11.389480" elapsed="0.000522"/>
</branch>
<status status="PASS" start="2026-08-09T03:14:11.389426" elapsed="0.000636"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="NOT RUN" start="2026-08-09T03:14:11.390319" elapsed="0.000031"/>
</return>
<status status="NOT RUN" start="2026-08-09T03:14:11.390227" elapsed="0.000190"/>
</branch>
<status status="NOT RUN" start="2026-08-09T03:14:11.390162" elapsed="0.000307"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-08-09T03:14:11.390542" 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-09T03:14:11.395690" elapsed="0.000365"/>
</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-09T03:14:11.396207" elapsed="0.000172"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-08-09T03:14:11.396512" elapsed="0.000132"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-08-09T03:14:11.391298" elapsed="0.005404"/>
</kw>
<msg time="2026-08-09T03:14:11.396836" level="INFO">${output} = cbench: controller benchmarking tool
   running in mode 'throughput'
   connecting to controller at 10.30.170.99: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-09T03:04:04.716081" elapsed="606.680782"/>
</kw>
<status status="PASS" start="2026-08-09T03:04:04.715758" elapsed="606.681155"/>
</branch>
<status status="PASS" start="2026-08-09T03:04:04.715389" elapsed="606.681548"/>
</if>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-09T03:14:11.397399" level="INFO">cbench: controller benchmarking tool
   running in mode 'throughput'
   connecting to controller at 10.30.170.99: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.99. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
03:05:10.460 16  switches: flows:  569008 580916 578151 570438 552825 579547 580631 573816 564597 554899 550105 557612 564146 566458 555452 559651  total = 150.970867 per ms 
03:06:10.561 16  switches: flows:  599219 597815 577370 595145 592906 615243 609676 579413 592782 609008 603674 612731 589706 581758 593313 606502  total = 159.003234 per ms 
03:07:10.663 16  switches: flows:  678591 685156 683592 694425 691690 693668 684848 690819 689945 697712 680306 684015 682255 692208 687244 694977  total = 183.215048 per ms 
03:08:10.764 16  switches: flows:  669320 648057 663876 661921 654139 662602 661494 652438 663939 657231 654470 659914 655124 661172 655859 660019  total = 175.398957 per ms 
03:09:10.866 16  switches: flows:  655535 637532 645541 646692 640746 659560 651960 646577 645452 655091 647127 645933 643058 643878 647351 663054  total = 172.627059 per ms 
03:10:10.967 16  switches: flows:  679711 673992 680470 687990 686300 684375 679769 683359 673613 682731 686922 684407 683819 685966 685402 668866  total = 181.489976 per ms 
03:11:11.069 16  switches: flows:  647218 643844 639992 634581 636664 642288 642506 638783 631131 634983 644923 649188 639138 645294 638735 637797  total = 170.497980 per ms 
03:12:11.170 16  switches: flows:  692887 690906 685098 692130 684991 696677 689671 691538 699777 687767 691132 691601 683293 696107 695679 692926  total = 184.059698 per ms 
03:13:11.272 16  switches: flows:  622398 620207 622313 620912 615062 610416 627993 617185 616652 620784 617941 616846 620761 622900 614870 627638  total = 164.969443 per ms 
03:14:11.374 16  switches: flows:  692525 695801 676680 695403 694604 701014 694142 695712 696844 695375 700834 696934 684275 704906 693944 693179  total = 184.889553 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 159003.23/184889.55/175127.88/59011.94 responses/s</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-09T03:14:11.397094" elapsed="0.000380"/>
</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-09T03:14:11.397640" elapsed="0.000387"/>
</kw>
<kw name="Get Lines Containing String" owner="String">
<msg time="2026-08-09T03:14:11.398476" level="INFO">1 out of 23 lines matched.</msg>
<msg time="2026-08-09T03:14:11.398569" level="INFO">${result_line} = RESULT: 16 switches 9 tests min/max/avg/stdev = 159003.23/184889.55/175127.88/59011.94 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-09T03:14:11.398242" elapsed="0.000351"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-08-09T03:14:11.399025" level="INFO">@{results_list} = [ RESULT: | 16 | switches | 9 | tests | min/max/avg/stdev | = | 159003.23/184889.55/175127.88/59011.94 | 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-09T03:14:11.398765" elapsed="0.000287"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-09T03:14:11.401509" 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-09T03:14:11.399198" elapsed="0.002369"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-09T03:14:11.403980" level="INFO">159003.23/184889.55/175127.88/59011.94</msg>
<arg>${results_list[7]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-09T03:14:11.401731" elapsed="0.002306"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-08-09T03:14:11.406501" 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-09T03:14:11.404187" elapsed="0.002342"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-08-09T03:14:11.408984" level="INFO">@{result_value_list} = [ 159003.23 | 184889.55 | 175127.88 | 59011.94 ]</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-09T03:14:11.406754" elapsed="0.002258"/>
</kw>
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-08-09T03:14:11.409478" level="INFO">Length is 4.</msg>
<msg time="2026-08-09T03:14:11.409566" 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-09T03:14:11.409167" elapsed="0.000423"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-09T03:14:11.414587" level="INFO">min :: 159003.23</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-09T03:14:11.410000" elapsed="0.004661"/>
</kw>
<var name="${i}">0</var>
<status status="PASS" start="2026-08-09T03:14:11.409870" elapsed="0.004828"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-09T03:14:11.419357" level="INFO">max :: 184889.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-09T03:14:11.414922" elapsed="0.004493"/>
</kw>
<var name="${i}">1</var>
<status status="PASS" start="2026-08-09T03:14:11.414791" elapsed="0.004660"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-09T03:14:11.424263" level="INFO">avg :: 175127.88</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-09T03:14:11.419686" elapsed="0.004635"/>
</kw>
<var name="${i}">2</var>
<status status="PASS" start="2026-08-09T03:14:11.419541" elapsed="0.004815"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-09T03:14:11.429186" level="INFO">stdev :: 59011.94</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-09T03:14:11.424577" elapsed="0.004668"/>
</kw>
<var name="${i}">3</var>
<status status="PASS" start="2026-08-09T03:14:11.424445" elapsed="0.004836"/>
</iter>
<var>${i}</var>
<value>0</value>
<value>${num_stats}</value>
<status status="PASS" start="2026-08-09T03:14:11.409672" elapsed="0.019640"/>
</for>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-08-09T03:14:11.433235" level="INFO">${min} = 159003.23</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-09T03:14:11.429474" elapsed="0.003788"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-08-09T03:14:11.437173" level="INFO">${max} = 184889.55</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-09T03:14:11.433417" elapsed="0.003784"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-08-09T03:14:11.441075" level="INFO">${average} = 175127.88</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-09T03:14:11.437357" elapsed="0.003745"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-08-09T03:14:11.444991" level="INFO">${stdev} = 59011.94</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-09T03:14:11.441255" elapsed="0.003764"/>
</kw>
<kw name="Get Time" owner="BuiltIn">
<msg time="2026-08-09T03:14:11.445561" level="INFO">${date} = 2026-08-09 03:14:11</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-09T03:14:11.445180" elapsed="0.000416"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-09T03:14:11.446239" level="INFO">CBench Result: 2026-08-09 03:14:11,-t -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633,159003.23,184889.55,175127.88,59011.94</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-09T03:14:11.445776" elapsed="0.000522"/>
</kw>
<kw name="Log Results And Determine Status">
<kw name="Append To File" owner="OperatingSystem">
<msg time="2026-08-09T03:14:11.447413" 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-09T03:14:11.446984" elapsed="0.000495"/>
</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-09T03:14:11.447645" elapsed="0.000476"/>
</kw>
<arg>${min}</arg>
<arg>${max}</arg>
<arg>${average}</arg>
<arg>${average_threshold}</arg>
<arg>${output_filename}</arg>
<status status="PASS" start="2026-08-09T03:14:11.446473" elapsed="0.001714"/>
</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-09T03:04:04.714141" elapsed="606.734107"/>
</kw>
<kw name="Sleep" owner="BuiltIn">
<msg time="2026-08-09T03:14:11.448736" 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-09T03:14:11.448398" elapsed="0.000396"/>
</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-09T03:14:11.449432" elapsed="0.000304"/>
</kw>
<status status="PASS" start="2026-08-09T03:14:11.449034" elapsed="0.000777"/>
</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-09T03:04:04.712697" elapsed="606.737152"/>
</test>
<test id="s1-t3" name="Rerun Latency Test To Check Bug 6176" line="65">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-09T03:14:11.451468" 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-09T03:14:11.451071" elapsed="0.000455"/>
</kw>
<kw name="Run Cbench And Log Results">
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-08-09T03:14:11.452827" 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-09T03:14:11.452453" elapsed="0.000419"/>
</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-09T03:14:11.453236" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-08-09T03:14:11.453007" elapsed="0.000289"/>
</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-09T03:14:11.456700" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-08-09T03:14:11.456416" elapsed="0.000344"/>
</branch>
<status status="PASS" start="2026-08-09T03:14:11.456395" elapsed="0.000388"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-08-09T03:14:11.457114" 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-09T03:14:11.457231" 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-09T03:14:11.456918" elapsed="0.000340"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-09T03:14:11.457831" level="INFO">Attempting to execute command "/usr/local/bin/cbench -c 10.30.170.99 -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633" on remote system "10.30.170.112" 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-09T03:14:11.457392" elapsed="0.000499"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-08-09T03:14:11.458482" 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-09T03:14:11.458072" elapsed="0.000438"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-08-09T03:14:11.459443" level="INFO">Length is 0.</msg>
<msg time="2026-08-09T03:14:11.459535" 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-09T03:14:11.459115" elapsed="0.000446"/>
</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-09T03:14:11.459721" elapsed="0.000337"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-08-09T03:14:11.461021" level="INFO">Logging into '10.30.170.112:22' as 'jenkins'.</msg>
<msg time="2026-08-09T03:14:12.058040" 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 Sun Aug  9 03:14:11 UTC 2026

  System load:  0.5                Processes:             106
  Usage of /:   19.3% of 38.58GB   Users logged in:       0
  Memory usage: 4%                 IPv4 address for ens3: 10.30.170.112
  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: Sun Aug  9 03:04:05 2026 from 10.30.170.200
[?2004h[jenkins@releng-50965-11-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-09T03:14:11.460562" elapsed="0.597673"/>
</kw>
<msg time="2026-08-09T03:14:12.058321" 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-09T03:14:11.460213" elapsed="0.598190"/>
</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-09T03:14:11.458733" elapsed="0.599785"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-08-09T03:14:12.059077" level="INFO">Executing command '/usr/local/bin/cbench -c 10.30.170.99 -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633'.</msg>
<msg time="2026-08-09T03:24:18.123349" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-08-09T03:24:18.124716" level="INFO">${stdout} = </msg>
<msg time="2026-08-09T03:24:18.124827" level="INFO">${stderr} = cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.170.99:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with 100...</msg>
<var>${stdout}</var>
<var>${stderr}</var>
<arg>${cmd}</arg>
<arg>return_stderr=True</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-08-09T03:14:12.058766" elapsed="606.066120"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-08-09T03:24:18.125369" elapsed="0.000729"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-09T03:24:18.127270" level="INFO">cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.170.99: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.99. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
03:15:17.214 16  switches: flows:  122725 123282 122906 124364 122272 121839 121512 121692 121076 120043 121250 118959 119908 117337 120092 121250  total = 32.341783 per ms 
03:16:17.315 16  switches: flows:  120708 123963 121158 121486 120024 122644 120631 117613 120438 116365 120842 117060 118071 117167 118310 118125  total = 31.856430 per ms 
03:17:17.415 16  switches: flows:  108942 109863 111720 110590 109261 109209 108392 110391 108485 107929 108318 107550 108261 107533 107728 109011  total = 29.004597 per ms 
03:18:17.516 16  switches: flows:  127611 128529 131810 129977 127058 126607 126474 128493 129092 126281 126008 126324 127846 127321 126703 125787  total = 33.975211 per ms 
03:19:17.616 16  switches: flows:  119622 122269 122606 121844 121266 118864 120167 120406 119756 119801 119308 120089 121105 118927 119511 119186  total = 32.025303 per ms 
03:20:17.716 16  switches: flows:  126119 126304 124965 124790 121481 122710 123978 125296 122155 120945 123147 122411 123868 122272 122449 122572  total = 32.869462 per ms 
03:21:17.816 16  switches: flows:  125684 128210 127045 127061 122553 123869 124878 125395 123296 123678 124784 123945 125904 123926 123136 121752  total = 33.196489 per ms 
03:22:17.917 16  switches: flows:  128297 127681 129577 127960 124374 126391 127543 129863 124981 124344 124727 125322 126673 126256 126714 125674  total = 33.716619 per ms 
03:23:18.018 16  switches: flows:  128021 128512 130602 128270 124222 125985 127829 128322 124437 123625 124513 124871 126674 123932 126568 124426  total = 33.623649 per ms 
03:24:18.118 16  switches: flows:  129357 129649 131836 130545 125272 127922 128111 129626 126133 125411 126471 124931 128695 126914 126758 125711  total = 33.998914 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 29004.60/33998.91/32696.30/11001.75 responses/s</msg>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-09T03:24:18.126468" elapsed="0.001139"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="PASS" start="2026-08-09T03:24:18.128190" elapsed="0.000075"/>
</return>
<status status="PASS" start="2026-08-09T03:24:18.127876" elapsed="0.000473"/>
</branch>
<status status="PASS" start="2026-08-09T03:24:18.127810" elapsed="0.000597"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="NOT RUN" start="2026-08-09T03:24:18.128616" elapsed="0.000063"/>
</return>
<status status="NOT RUN" start="2026-08-09T03:24:18.128534" elapsed="0.000209"/>
</branch>
<status status="NOT RUN" start="2026-08-09T03:24:18.128499" elapsed="0.000292"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-08-09T03:24:18.128859" elapsed="0.000029"/>
</return>
<kw name="Restore_Current_Ssh_Connection_From_Index" owner="SSHKeywords" type="TEARDOWN">
<kw name="Run Keyword And Return If" owner="BuiltIn">
<arg>${connection_index} is not None</arg>
<arg>SSHLibrary.Switch Connection</arg>
<arg>${connection_index}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-08-09T03:24:18.134103" elapsed="0.000485"/>
</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-09T03:24:18.134821" elapsed="0.000229"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-08-09T03:24:18.135282" elapsed="0.000157"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-08-09T03:24:18.129588" elapsed="0.005933"/>
</kw>
<msg time="2026-08-09T03:24:18.135777" level="INFO">${output} = cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.170.99:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with 100...</msg>
<var>${output}</var>
<arg>${cbench_system}</arg>
<arg>${cbench_executable} -c ${ODL_SYSTEM_IP} ${cbench_args}</arg>
<arg>prompt_timeout=${test_timeout}</arg>
<arg>return_stdout=False</arg>
<arg>return_stderr=True</arg>
<doc>Reduces the common work of running a command on a remote system to a single higher level
robot keyword, taking care to log in with a public key and. The command given is written and the return value
depends on the passed argument values of return_stdout (default: True) and return_stderr (default: False).
At least one should be True, or the keyword will exit and FAIL. If both are True, the resulting return value
will be a two element list containing both. Otherwise the resulting return value is a string.
No test conditions are checked.</doc>
<status status="PASS" start="2026-08-09T03:14:11.453674" elapsed="606.682152"/>
</kw>
<status status="PASS" start="2026-08-09T03:14:11.453322" elapsed="606.682586"/>
</branch>
<status status="PASS" start="2026-08-09T03:14:11.452983" elapsed="606.682960"/>
</if>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-09T03:24:18.136569" level="INFO">cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.170.99: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.99. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
03:15:17.214 16  switches: flows:  122725 123282 122906 124364 122272 121839 121512 121692 121076 120043 121250 118959 119908 117337 120092 121250  total = 32.341783 per ms 
03:16:17.315 16  switches: flows:  120708 123963 121158 121486 120024 122644 120631 117613 120438 116365 120842 117060 118071 117167 118310 118125  total = 31.856430 per ms 
03:17:17.415 16  switches: flows:  108942 109863 111720 110590 109261 109209 108392 110391 108485 107929 108318 107550 108261 107533 107728 109011  total = 29.004597 per ms 
03:18:17.516 16  switches: flows:  127611 128529 131810 129977 127058 126607 126474 128493 129092 126281 126008 126324 127846 127321 126703 125787  total = 33.975211 per ms 
03:19:17.616 16  switches: flows:  119622 122269 122606 121844 121266 118864 120167 120406 119756 119801 119308 120089 121105 118927 119511 119186  total = 32.025303 per ms 
03:20:17.716 16  switches: flows:  126119 126304 124965 124790 121481 122710 123978 125296 122155 120945 123147 122411 123868 122272 122449 122572  total = 32.869462 per ms 
03:21:17.816 16  switches: flows:  125684 128210 127045 127061 122553 123869 124878 125395 123296 123678 124784 123945 125904 123926 123136 121752  total = 33.196489 per ms 
03:22:17.917 16  switches: flows:  128297 127681 129577 127960 124374 126391 127543 129863 124981 124344 124727 125322 126673 126256 126714 125674  total = 33.716619 per ms 
03:23:18.018 16  switches: flows:  128021 128512 130602 128270 124222 125985 127829 128322 124437 123625 124513 124871 126674 123932 126568 124426  total = 33.623649 per ms 
03:24:18.118 16  switches: flows:  129357 129649 131836 130545 125272 127922 128111 129626 126133 125411 126471 124931 128695 126914 126758 125711  total = 33.998914 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 29004.60/33998.91/32696.30/11001.75 responses/s</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-09T03:24:18.136149" elapsed="0.000549"/>
</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-09T03:24:18.136911" elapsed="0.000516"/>
</kw>
<kw name="Get Lines Containing String" owner="String">
<msg time="2026-08-09T03:24:18.137990" level="INFO">1 out of 23 lines matched.</msg>
<msg time="2026-08-09T03:24:18.138116" level="INFO">${result_line} = RESULT: 16 switches 9 tests min/max/avg/stdev = 29004.60/33998.91/32696.30/11001.75 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-09T03:24:18.137678" elapsed="0.000472"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-08-09T03:24:18.138783" level="INFO">@{results_list} = [ RESULT: | 16 | switches | 9 | tests | min/max/avg/stdev | = | 29004.60/33998.91/32696.30/11001.75 | 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-09T03:24:18.138369" elapsed="0.000454"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-09T03:24:18.142233" 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-09T03:24:18.139029" elapsed="0.003284"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-09T03:24:18.145439" level="INFO">29004.60/33998.91/32696.30/11001.75</msg>
<arg>${results_list[7]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-09T03:24:18.142520" elapsed="0.002977"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-08-09T03:24:18.147894" 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-09T03:24:18.145663" elapsed="0.002259"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-08-09T03:24:18.150355" level="INFO">@{result_value_list} = [ 29004.60 | 33998.91 | 32696.30 | 11001.75 ]</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-09T03:24:18.148122" elapsed="0.002260"/>
</kw>
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-08-09T03:24:18.150871" level="INFO">Length is 4.</msg>
<msg time="2026-08-09T03:24:18.150960" 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-09T03:24:18.150535" elapsed="0.000448"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-09T03:24:18.155779" level="INFO">min :: 29004.60</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-09T03:24:18.151378" elapsed="0.004489"/>
</kw>
<var name="${i}">0</var>
<status status="PASS" start="2026-08-09T03:24:18.151247" elapsed="0.004657"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-09T03:24:18.160431" level="INFO">max :: 33998.91</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-09T03:24:18.156122" elapsed="0.004366"/>
</kw>
<var name="${i}">1</var>
<status status="PASS" start="2026-08-09T03:24:18.155993" elapsed="0.004531"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-09T03:24:18.165097" level="INFO">avg :: 32696.30</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-09T03:24:18.160753" elapsed="0.004401"/>
</kw>
<var name="${i}">2</var>
<status status="PASS" start="2026-08-09T03:24:18.160609" elapsed="0.004579"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-09T03:24:18.170069" level="INFO">stdev :: 11001.75</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-09T03:24:18.165400" elapsed="0.004750"/>
</kw>
<var name="${i}">3</var>
<status status="PASS" start="2026-08-09T03:24:18.165272" elapsed="0.004926"/>
</iter>
<var>${i}</var>
<value>0</value>
<value>${num_stats}</value>
<status status="PASS" start="2026-08-09T03:24:18.151052" elapsed="0.019190"/>
</for>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-08-09T03:24:18.174900" level="INFO">${min} = 29004.60</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-09T03:24:18.170486" elapsed="0.004443"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-08-09T03:24:18.178901" level="INFO">${max} = 33998.91</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-09T03:24:18.175090" elapsed="0.003839"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-08-09T03:24:18.182911" level="INFO">${average} = 32696.30</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-09T03:24:18.179087" elapsed="0.003852"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-08-09T03:24:18.186884" level="INFO">${stdev} = 11001.75</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-09T03:24:18.183096" elapsed="0.003815"/>
</kw>
<kw name="Get Time" owner="BuiltIn">
<msg time="2026-08-09T03:24:18.187429" level="INFO">${date} = 2026-08-09 03:24:18</msg>
<var>${date}</var>
<arg>d,m,s</arg>
<doc>Returns the given time in the requested format.</doc>
<status status="PASS" start="2026-08-09T03:24:18.187074" elapsed="0.000381"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-09T03:24:18.188059" level="INFO">CBench Result: 2026-08-09 03:24:18,-m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633,29004.60,33998.91,32696.30,11001.75</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-09T03:24:18.187602" elapsed="0.000513"/>
</kw>
<kw name="Log Results And Determine Status">
<kw name="Append To File" owner="OperatingSystem">
<msg time="2026-08-09T03:24:18.189325" 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-09T03:24:18.188811" elapsed="0.000589"/>
</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-09T03:24:18.189551" elapsed="0.000492"/>
</kw>
<arg>${min}</arg>
<arg>${max}</arg>
<arg>${average}</arg>
<arg>${average_threshold}</arg>
<arg>${output_filename}</arg>
<status status="PASS" start="2026-08-09T03:24:18.188305" elapsed="0.001803"/>
</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-09T03:14:11.451887" elapsed="606.738282"/>
</kw>
<kw name="Sleep" owner="BuiltIn">
<msg time="2026-08-09T03:24:18.190649" 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-09T03:24:18.190317" elapsed="0.000392"/>
</kw>
<kw name="Report Failure Due To Bug" owner="Utils" type="TEARDOWN">
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-08-09T03:24:18.191976" 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-09T03:24:18.191435" elapsed="0.000569"/>
</kw>
<if>
<branch type="IF" condition="('${TEST_STATUS}' != 'FAIL') or ${test_skipped}">
<return>
<status status="PASS" start="2026-08-09T03:24:18.192245" elapsed="0.000040"/>
</return>
<status status="PASS" start="2026-08-09T03:24:18.192088" elapsed="0.000229"/>
</branch>
<status status="PASS" start="2026-08-09T03:24:18.192065" elapsed="0.000278"/>
</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-09T03:24:18.192490" elapsed="0.000022"/>
</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-09T03:24:18.192662" elapsed="0.000021"/>
</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-09T03:24:18.192823" elapsed="0.000021"/>
</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-09T03:24:18.193023" elapsed="0.000021"/>
</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-09T03:24:18.193172" elapsed="0.000025"/>
</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-09T03:24:18.193323" elapsed="0.000020"/>
</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-09T03:24:18.193468" elapsed="0.000019"/>
</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-09T03:24:18.193703" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-08-09T03:24:18.193550" elapsed="0.000206"/>
</branch>
<status status="NOT RUN" start="2026-08-09T03:24:18.193534" elapsed="0.000245"/>
</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-09T03:24:18.191098" elapsed="0.002733"/>
</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-09T03:14:11.450194" elapsed="606.743682"/>
</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-09T02:53:55.399287" elapsed="1822.795177"/>
</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>
