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

[?1h=[90m~[0m                                                                                [?2004hopendaylight-user</msg>
<arg>${KARAF_USER}</arg>
<arg>${KARAF_PASSWORD}</arg>
<arg>loglevel=${loglevel}</arg>
<doc>Logs into the SSH server with the given ``username`` and ``password``.</doc>
<status status="PASS" start="2026-09-26T01:07:38.252045" elapsed="0.630663"/>
</kw>
<kw name="Write" owner="SSHLibrary">
<msg time="2026-09-26T01:07:38.931003" level="INFO">@root&gt;log:set ERROR</msg>
<arg>${cmd}</arg>
<doc>Writes the given ``text`` on the remote machine and appends a newline.</doc>
<status status="PASS" start="2026-09-26T01:07:38.883087" elapsed="0.047978"/>
</kw>
<kw name="Read Until Regexp" owner="SSHLibrary">
<msg time="2026-09-26T01:07:38.932626" level="INFO">[?1l&gt;[?2004l[?1h=[90m~[0m                                                                                [?2004hopendaylight-user@root&gt;</msg>
<msg time="2026-09-26T01:07:38.932751" level="INFO">${output} = [?1l&gt;[?2004l[?1h=[90m~[0m                                                                                [?2004hopendaylight-user@root&gt;</msg>
<var>${output}</var>
<arg>${KARAF_PROMPT}</arg>
<doc>Consumes and returns the server output until a match to ``regexp`` is found.</doc>
<status status="PASS" start="2026-09-26T01:07:38.931231" elapsed="0.001549"/>
</kw>
<kw name="Write Bare" owner="SSHLibrary">
<arg>logout\n</arg>
<doc>Writes the given ``text`` on the remote machine without appending a newline.</doc>
<status status="PASS" start="2026-09-26T01:07:38.932932" elapsed="0.000203"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-09-26T01:07:38.933288" elapsed="0.000197"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-26T01:07:38.934022" level="INFO">[?1l&gt;[?2004l[?1h=[90m~[0m                                                                                [?2004hopendaylight-user@root&gt;</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-26T01:07:38.933669" elapsed="0.000411"/>
</kw>
<return>
<value>${output}</value>
<status status="PASS" start="2026-09-26T01:07:38.934128" elapsed="0.000067"/>
</return>
<arg>log:set ${log_level}</arg>
<doc>Will execute the given ${cmd} by ssh'ing to the karaf console running on 10.30.171.7
Note that this keyword will open&amp;close new SSH connection, without switching back to previously current session.</doc>
<status status="PASS" start="2026-09-26T01:07:38.250693" elapsed="0.683607"/>
</kw>
<arg>3x</arg>
<arg>1s</arg>
<arg>KarafKeywords.Issue Command On Karaf Console</arg>
<arg>log:set ${log_level}</arg>
<doc>Runs the specified keyword and retries if it fails.</doc>
<status status="PASS" start="2026-09-26T01:07:38.249115" elapsed="0.685245"/>
</kw>
<kw name="Append To File" owner="OperatingSystem">
<msg time="2026-09-26T01:07:38.934945" level="INFO" html="true">Appended to file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-cbench-only-titanium/latency.csv"&gt;/w/workspace/openflowplugin-csit-1node-cbench-only-titanium/latency.csv&lt;/a&gt;'.</msg>
<arg>${latency_results_file}</arg>
<arg>LATENCY_MIN,LATENCY_MAX,LATENCY_AVERAGE\n</arg>
<doc>Appends the given content to the specified file.</doc>
<status status="PASS" start="2026-09-26T01:07:38.934555" elapsed="0.000456"/>
</kw>
<kw name="Append To File" owner="OperatingSystem">
<msg time="2026-09-26T01:07:38.935372" level="INFO" html="true">Appended to file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-cbench-only-titanium/throughput.csv"&gt;/w/workspace/openflowplugin-csit-1node-cbench-only-titanium/throughput.csv&lt;/a&gt;'.</msg>
<arg>${throughput_results_file}</arg>
<arg>THROUGHPUT_MIN,THROUGHPUT_MAX,THROUGHPUT_AVERAGE\n</arg>
<doc>Appends the given content to the specified file.</doc>
<status status="PASS" start="2026-09-26T01:07:38.935159" elapsed="0.000264"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-09-26T01:07:38.936035" level="INFO">${duration_in_ms} = 60000</msg>
<var>${duration_in_ms}</var>
<arg>${duration_in_secs} * 1000</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-09-26T01:07:38.935585" elapsed="0.000476"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-09-26T01:07:38.936549" level="INFO">${duration_in_ms} = 60000</msg>
<arg>${duration_in_ms}</arg>
<doc>Makes the variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-09-26T01:07:38.936253" elapsed="0.000335"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-09-26T01:07:38.937129" level="INFO">${test_timeout} = 900.0</msg>
<var>${test_timeout}</var>
<arg>(${loops} * ${duration_in_secs}) * 1.5</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-09-26T01:07:38.936766" elapsed="0.000388"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-09-26T01:07:38.937608" level="INFO">${test_timeout} = 900.0</msg>
<arg>${test_timeout}</arg>
<doc>Makes the variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-09-26T01:07:38.937333" elapsed="0.000313"/>
</kw>
<if>
<branch type="IF" condition="&quot;${cbench_system}&quot; == &quot;localhost&quot;">
<kw name="File Should Exist" owner="OperatingSystem">
<arg>${cbench_executable}</arg>
<doc>Fails unless the given `path` points to an existing file.</doc>
<status status="NOT RUN" start="2026-09-26T01:07:38.937939" elapsed="0.000019"/>
</kw>
<status status="NOT RUN" start="2026-09-26T01:07:38.937749" elapsed="0.000253"/>
</branch>
<branch type="ELSE">
<kw name="Verify File Exists On Remote System" owner="Utils">
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-09-26T01:07:38.940116" level="INFO">${conn_id} = 2</msg>
<var>${conn_id}</var>
<arg>${system}</arg>
<arg>prompt=${prompt}</arg>
<arg>timeout=${prompt_timeout}</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-09-26T01:07:38.939749" elapsed="0.000392"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-09-26T01:07:38.941239" level="INFO">Length is 0.</msg>
<msg time="2026-09-26T01:07:38.941315" level="INFO">${pwd_length} = 0</msg>
<var>${pwd_length}</var>
<arg>${password}</arg>
<doc>Returns and logs the length of the given item as an integer.</doc>
<status status="PASS" start="2026-09-26T01:07:38.940618" elapsed="0.000720"/>
</kw>
<kw name="Run Keyword And Return If" owner="BuiltIn">
<arg>${pwd_length} &gt; 0</arg>
<arg>SSHLibrary.Login</arg>
<arg>${user}</arg>
<arg>${password}</arg>
<arg>delay=${delay}</arg>
<doc>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-09-26T01:07:38.941478" elapsed="0.000331"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-09-26T01:07:38.942562" level="INFO">Logging into '10.30.170.78:22' as 'jenkins'.</msg>
<msg time="2026-09-26T01:07:39.457747" level="INFO">Read output: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-187-generic x86_64)

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

 System information as of Sat Sep 26 01:07:09 UTC 2026

  System load:  0.21               Processes:             111
  Usage of /:   19.8% of 38.58GB   Users logged in:       0
  Memory usage: 4%                 IPv4 address for ens3: 10.30.170.78
  Swap usage:   0%


Expanded Security Maintenance for Applications is not enabled.

5 updates can be applied immediately.
To see these additional updates run: apt list --upgradable

14 additional security updates can be applied with ESM Apps.
Learn more about enabling ESM Apps service at https://ubuntu.com/esm


The list of available updates is more than a week old.
To check for new updates run: sudo apt update
New release '24.04.5 LTS' available.
Run 'do-release-upgrade' to upgrade to it.


[?2004h[jenkins@releng-48317-848-1-mininet-ovs-217-0 ~]&gt;</msg>
<arg>${user}</arg>
<arg>${USER_HOME}/.ssh/${SSH_KEY}</arg>
<arg>${KEYFILE_PASS}</arg>
<arg>delay=${delay}</arg>
<doc>Logs into the SSH server using key-based authentication.</doc>
<status status="PASS" start="2026-09-26T01:07:38.942326" elapsed="0.515597"/>
</kw>
<msg time="2026-09-26T01:07:39.458037" level="INFO">Returning from the enclosing user keyword.</msg>
<arg>SSHLibrary.Login With Public Key</arg>
<arg>${user}</arg>
<arg>${USER_HOME}/.ssh/${SSH_KEY}</arg>
<arg>${KEYFILE_PASS}</arg>
<arg>delay=${delay}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-09-26T01:07:38.941960" elapsed="0.516184"/>
</kw>
<arg>${user}</arg>
<arg>${password}</arg>
<doc>On active SSH session: if given non-empty password, do Login, else do Login With Public Key.</doc>
<status status="PASS" start="2026-09-26T01:07:38.940322" elapsed="0.517947"/>
</kw>
<kw name="File Should Exist" owner="SSHLibrary">
<msg time="2026-09-26T01:07:39.469250" level="INFO">[chan 1] Opened sftp connection (server version 3)</msg>
<arg>${file}</arg>
<doc>Fails if the given ``path`` does NOT point to an existing file.</doc>
<status status="PASS" start="2026-09-26T01:07:39.458516" elapsed="0.012967"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-09-26T01:07:39.471676" elapsed="0.000315"/>
</kw>
<arg>${cbench_system}</arg>
<arg>${cbench_executable}</arg>
<doc>Will create connection with public key and will PASS if the given ${file} exists,
otherwise will FAIL</doc>
<status status="PASS" start="2026-09-26T01:07:38.939283" elapsed="0.532780"/>
</kw>
<status status="PASS" start="2026-09-26T01:07:38.938078" elapsed="0.534019"/>
</branch>
<status status="PASS" start="2026-09-26T01:07:38.937703" elapsed="0.534430"/>
</if>
<kw name="Should Be True" owner="BuiltIn">
<arg>${loops} &gt;= 2</arg>
<arg>If number of loops is less than 2, cbench will not run</arg>
<doc>Fails if the given condition is not true.</doc>
<status status="PASS" start="2026-09-26T01:07:39.472324" elapsed="0.000514"/>
</kw>
<kw name="Verify_Feature_Is_Installed" owner="KarafKeywords">
<if>
<branch type="IF" condition="'${IS_KARAF_APPL}' == 'False'">
<return>
<value>Not A Karaf App</value>
<status status="NOT RUN" start="2026-09-26T01:07:39.474802" elapsed="0.000019"/>
</return>
<status status="NOT RUN" start="2026-09-26T01:07:39.474680" elapsed="0.000175"/>
</branch>
<status status="PASS" start="2026-09-26T01:07:39.474654" elapsed="0.000223"/>
</if>
<kw name="Issue_Command_On_Karaf_Console" owner="KarafKeywords">
<if>
<branch type="IF" condition="'${IS_KARAF_APPL}' == 'False'">
<return>
<value>Not A Karaf App</value>
<status status="NOT RUN" start="2026-09-26T01:07:39.476322" elapsed="0.000015"/>
</return>
<status status="NOT RUN" start="2026-09-26T01:07:39.476230" elapsed="0.000136"/>
</branch>
<status status="PASS" start="2026-09-26T01:07:39.476212" elapsed="0.000174"/>
</if>
<kw name="Open Connection" owner="SSHLibrary">
<arg>${controller}</arg>
<arg>port=${karaf_port}</arg>
<arg>prompt=${KARAF_PROMPT_LOGIN}</arg>
<arg>timeout=${timeout}</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-09-26T01:07:39.476541" elapsed="0.000380"/>
</kw>
<kw name="Login" owner="SSHLibrary">
<msg time="2026-09-26T01:07:39.477314" level="INFO">Logging into '10.30.171.7:8101' as 'karaf'.</msg>
<msg time="2026-09-26T01:07:39.739398" level="INFO">Read output: [33m                                                                                           
[33m    ________                       ________                .__  .__       .__     __       
[33m    \_____  \ ______   ____   ____ \______ \ _____  ___.__.|  | |__| ____ |  |___/  |_     
[33m     /   |   \\____ \_/ __ \ /    \ |    |  \\__  \&lt;   |  ||  | |  |/ ___\|  |  \   __\    
[33m    /    |    \  |_&gt; &gt;  ___/|   |  \|    `   \/ __ \\___  ||  |_|  / /_/  &gt;   Y  \  |      
[33m    \_______  /   __/ \___  &gt;___|  /_______  (____  / ____||____/__\___  /|___|  /__|      
[33m            \/|__|        \/     \/        \/     \/\/            /_____/      \/          
[33m                                                                                           

Hit '[1m&lt;tab&gt;[0m' for a list of available commands
and '[1m[cmd] --help[0m' for help on a specific command.
Hit '[1m&lt;ctrl-d&gt;[0m' or type '[1msystem:shutdown[0m' or '[1mlogout[0m' to shutdown OpenDaylight.

[?1h=[90m~[0m                                                                                [?2004hopendaylight-user</msg>
<arg>${KARAF_USER}</arg>
<arg>${KARAF_PASSWORD}</arg>
<arg>loglevel=${loglevel}</arg>
<doc>Logs into the SSH server with the given ``username`` and ``password``.</doc>
<status status="PASS" start="2026-09-26T01:07:39.477108" elapsed="0.262478"/>
</kw>
<kw name="Write" owner="SSHLibrary">
<msg time="2026-09-26T01:07:39.844477" level="INFO">@root&gt;feature:list -i | 0[C 0g[Krep odl-openflowplugin-drop-test</msg>
<arg>${cmd}</arg>
<doc>Writes the given ``text`` on the remote machine and appends a newline.</doc>
<status status="PASS" start="2026-09-26T01:07:39.739907" elapsed="0.104633"/>
</kw>
<kw name="Read Until Regexp" owner="SSHLibrary">
<msg time="2026-09-26T01:07:39.848597" level="INFO">[?1l&gt;[?2004l[31;1modl-openflowplugin-drop-test[0m                                    x 0.20.4           x x        x Started x [31;1modl-openflowplugin-drop-test[0m                                    x OpenDaylight :: Openflow Plugin :: Drop Test
[?1h=[90m~[0m                                                                                [?2004hopendaylight-user@root&gt;</msg>
<msg time="2026-09-26T01:07:39.848812" level="INFO">${output} = [?1l&gt;[?2004l[31;1modl-openflowplugin-drop-test[0m                                    x 0.20.4           x x        x Started x [31;1modl-openflowplugin-drop-test[0m                     ...</msg>
<var>${output}</var>
<arg>${KARAF_PROMPT}</arg>
<doc>Consumes and returns the server output until a match to ``regexp`` is found.</doc>
<status status="PASS" start="2026-09-26T01:07:39.844711" elapsed="0.004132"/>
</kw>
<kw name="Write Bare" owner="SSHLibrary">
<arg>logout\n</arg>
<doc>Writes the given ``text`` on the remote machine without appending a newline.</doc>
<status status="PASS" start="2026-09-26T01:07:39.848997" elapsed="0.000184"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-09-26T01:07:39.849325" elapsed="0.000247"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-26T01:07:39.850125" level="INFO">[?1l&gt;[?2004l[31;1modl-openflowplugin-drop-test[0m                                    x 0.20.4           x x        x Started x [31;1modl-openflowplugin-drop-test[0m                                    x OpenDaylight :: Openflow Plugin :: Drop Test
[?1h=[90m~[0m                                                                                [?2004hopendaylight-user@root&gt;</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-26T01:07:39.849782" elapsed="0.000397"/>
</kw>
<return>
<value>${output}</value>
<status status="PASS" start="2026-09-26T01:07:39.850228" elapsed="0.000060"/>
</return>
<msg time="2026-09-26T01:07:39.850425" level="INFO">${output} = [?1l&gt;[?2004l[31;1modl-openflowplugin-drop-test[0m                                    x 0.20.4           x x        x Started x [31;1modl-openflowplugin-drop-test[0m                     ...</msg>
<var>${output}</var>
<arg>feature:list -i | grep ${feature_name}</arg>
<arg>${controller}</arg>
<arg>${karaf_port}</arg>
<doc>Will execute the given ${cmd} by ssh'ing to the karaf console running on 10.30.171.7
Note that this keyword will open&amp;close new SSH connection, without switching back to previously current session.</doc>
<status status="PASS" start="2026-09-26T01:07:39.475929" elapsed="0.374526"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${output}</arg>
<arg>${feature_name}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-09-26T01:07:39.850613" elapsed="0.000607"/>
</kw>
<return>
<value>${output}</value>
<status status="PASS" start="2026-09-26T01:07:39.851269" elapsed="0.000031"/>
</return>
<arg>odl-openflowplugin-drop-test</arg>
<doc>Will Succeed if the given ${feature_name} is found in the output of "feature:list -i"</doc>
<status status="PASS" start="2026-09-26T01:07:39.474400" elapsed="0.376980"/>
</kw>
<kw name="Issue_Command_On_Karaf_Console" owner="KarafKeywords">
<if>
<branch type="IF" condition="'${IS_KARAF_APPL}' == 'False'">
<return>
<value>Not A Karaf App</value>
<status status="NOT RUN" start="2026-09-26T01:07:39.853240" elapsed="0.000015"/>
</return>
<status status="NOT RUN" start="2026-09-26T01:07:39.853121" elapsed="0.000165"/>
</branch>
<status status="PASS" start="2026-09-26T01:07:39.853098" elapsed="0.000211"/>
</if>
<kw name="Open Connection" owner="SSHLibrary">
<arg>${controller}</arg>
<arg>port=${karaf_port}</arg>
<arg>prompt=${KARAF_PROMPT_LOGIN}</arg>
<arg>timeout=${timeout}</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-09-26T01:07:39.853468" elapsed="0.000395"/>
</kw>
<kw name="Login" owner="SSHLibrary">
<msg time="2026-09-26T01:07:39.854273" level="INFO">Logging into '10.30.171.7:8101' as 'karaf'.</msg>
<msg time="2026-09-26T01:07:40.073883" level="INFO">Read output: [33m                                                                                           
[33m    ________                       ________                .__  .__       .__     __       
[33m    \_____  \ ______   ____   ____ \______ \ _____  ___.__.|  | |__| ____ |  |___/  |_     
[33m     /   |   \\____ \_/ __ \ /    \ |    |  \\__  \&lt;   |  ||  | |  |/ ___\|  |  \   __\    
[33m    /    |    \  |_&gt; &gt;  ___/|   |  \|    `   \/ __ \\___  ||  |_|  / /_/  &gt;   Y  \  |      
[33m    \_______  /   __/ \___  &gt;___|  /_______  (____  / ____||____/__\___  /|___|  /__|      
[33m            \/|__|        \/     \/        \/     \/\/            /_____/      \/          
[33m                                                                                           

Hit '[1m&lt;tab&gt;[0m' for a list of available commands
and '[1m[cmd] --help[0m' for help on a specific command.
Hit '[1m&lt;ctrl-d&gt;[0m' or type '[1msystem:shutdown[0m' or '[1mlogout[0m' to shutdown OpenDaylight.

[?1h=[90m~[0m                                                                                [?2004hopendaylight-user</msg>
<arg>${KARAF_USER}</arg>
<arg>${KARAF_PASSWORD}</arg>
<arg>loglevel=${loglevel}</arg>
<doc>Logs into the SSH server with the given ``username`` and ``password``.</doc>
<status status="PASS" start="2026-09-26T01:07:39.854070" elapsed="0.219953"/>
</kw>
<kw name="Write" owner="SSHLibrary">
<msg time="2026-09-26T01:07:40.102474" level="INFO">@root&gt;dropallpacketsrpc on</msg>
<arg>${cmd}</arg>
<doc>Writes the given ``text`` on the remote machine and appends a newline.</doc>
<status status="PASS" start="2026-09-26T01:07:40.074254" elapsed="0.028279"/>
</kw>
<kw name="Read Until Regexp" owner="SSHLibrary">
<msg time="2026-09-26T01:07:40.104540" level="INFO">[?1l&gt;[?2004lDropAllFlows transitions to on
[?1h=[90m~[0m                                                                                [?2004hopendaylight-user@root&gt;</msg>
<msg time="2026-09-26T01:07:40.104642" level="INFO">${output} = [?1l&gt;[?2004lDropAllFlows transitions to on
[?1h=[90m~[0m                                                                                [?2004hopendaylight-user@root&gt;</msg>
<var>${output}</var>
<arg>${KARAF_PROMPT}</arg>
<doc>Consumes and returns the server output until a match to ``regexp`` is found.</doc>
<status status="PASS" start="2026-09-26T01:07:40.102690" elapsed="0.001979"/>
</kw>
<kw name="Write Bare" owner="SSHLibrary">
<arg>logout\n</arg>
<doc>Writes the given ``text`` on the remote machine without appending a newline.</doc>
<status status="PASS" start="2026-09-26T01:07:40.104821" elapsed="0.000189"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-09-26T01:07:40.105157" elapsed="0.000178"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-26T01:07:40.105851" level="INFO">[?1l&gt;[?2004lDropAllFlows transitions to on
[?1h=[90m~[0m                                                                                [?2004hopendaylight-user@root&gt;</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-26T01:07:40.105509" elapsed="0.000389"/>
</kw>
<return>
<value>${output}</value>
<status status="PASS" start="2026-09-26T01:07:40.105965" elapsed="0.000057"/>
</return>
<arg>dropallpacketsrpc on</arg>
<doc>Will execute the given ${cmd} by ssh'ing to the karaf console running on 10.30.171.7
Note that this keyword will open&amp;close new SSH connection, without switching back to previously current session.</doc>
<status status="PASS" start="2026-09-26T01:07:39.852810" elapsed="0.253306"/>
</kw>
<status status="PASS" start="2026-09-26T01:07:38.247423" elapsed="1.858752"/>
</kw>
<test id="s1-t1" name="Cbench Latency Test" line="37">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-26T01:07:40.108059" level="INFO">Cbench tests using 10 iterations of 60 second tests. Switch Count: 16. Unique MACS to cycle: 100</msg>
<arg>Cbench tests using ${loops} iterations of ${duration_in_secs} second tests. Switch Count: ${switch_count}. Unique MACS to cycle: ${num_of_unique_macs}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-26T01:07:40.107133" elapsed="0.000990"/>
</kw>
<kw name="Run Cbench And Log Results">
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-09-26T01:07:40.109414" level="INFO">${output_filename} = latency.csv</msg>
<arg>${output_filename}</arg>
<doc>Makes the variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-09-26T01:07:40.109096" elapsed="0.000358"/>
</kw>
<if>
<branch type="IF" condition="&quot;${cbench_system}&quot; == &quot;localhost&quot;">
<kw name="Run" owner="OperatingSystem">
<var>${output}</var>
<arg>${cbench_executable} -c ${ODL_SYSTEM_IP} ${cbench_args}</arg>
<doc>*This keyword is considered deprecated. Use the [Process] library instead.*</doc>
<status status="NOT RUN" start="2026-09-26T01:07:40.109779" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-09-26T01:07:40.109530" elapsed="0.000303"/>
</branch>
<branch type="ELSE">
<kw name="Run Command On Remote System" owner="Utils">
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot; and &quot;${return_stderr}&quot;!=&quot;True&quot;">
<kw name="Fail" owner="BuiltIn">
<arg>At least one of {return_stdout} or {return_stderr} args should be set to True</arg>
<doc>Fails the test or task with the given message and optionally alters its tags.</doc>
<status status="NOT RUN" start="2026-09-26T01:07:40.110916" elapsed="0.000083"/>
</kw>
<status status="NOT RUN" start="2026-09-26T01:07:40.110683" elapsed="0.000348"/>
</branch>
<status status="PASS" start="2026-09-26T01:07:40.110663" elapsed="0.000391"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-09-26T01:07:40.111420" level="INFO">index=None
host=None
alias=None
port=22
timeout=3 seconds
newline=

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

prompt=None
term_type=vt100
width=80
height=24
path_separator=/
encoding=utf8
escape_ansi=False
encoding_errors=strict</msg>
<var>${current_ssh_connection}</var>
<doc>Returns information about the connection.</doc>
<status status="PASS" start="2026-09-26T01:07:40.111231" elapsed="0.000326"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-26T01:07:40.112089" level="INFO">Attempting to execute command "/usr/local/bin/cbench -c 10.30.171.7 -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633" on remote system "10.30.170.78" by user "jenkins" with keyfile pass "any" and prompt "&gt;" and password ""</msg>
<arg>Attempting to execute command "${cmd}" on remote system "${system}" by user "${user}" with keyfile pass "${keyfile_pass}" and prompt "${prompt}" and password "${password}"</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-26T01:07:40.111747" elapsed="0.000397"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-09-26T01:07:40.112705" level="INFO">${conn_id} = 5</msg>
<var>${conn_id}</var>
<arg>${system}</arg>
<arg>prompt=${prompt}</arg>
<arg>timeout=${prompt_timeout}</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-09-26T01:07:40.112302" elapsed="0.000443"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-09-26T01:07:40.113579" level="INFO">Length is 0.</msg>
<msg time="2026-09-26T01:07:40.113659" level="INFO">${pwd_length} = 0</msg>
<var>${pwd_length}</var>
<arg>${password}</arg>
<doc>Returns and logs the length of the given item as an integer.</doc>
<status status="PASS" start="2026-09-26T01:07:40.113277" elapsed="0.000404"/>
</kw>
<kw name="Run Keyword And Return If" owner="BuiltIn">
<arg>${pwd_length} &gt; 0</arg>
<arg>SSHLibrary.Login</arg>
<arg>${user}</arg>
<arg>${password}</arg>
<arg>delay=${delay}</arg>
<doc>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-09-26T01:07:40.113834" elapsed="0.000319"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-09-26T01:07:40.114971" level="INFO">Logging into '10.30.170.78:22' as 'jenkins'.</msg>
<msg time="2026-09-26T01:07:40.491658" level="INFO">Read output: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-187-generic x86_64)

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

 System information as of Sat Sep 26 01:07:09 UTC 2026

  System load:  0.21               Processes:             111
  Usage of /:   19.8% of 38.58GB   Users logged in:       0
  Memory usage: 4%                 IPv4 address for ens3: 10.30.170.78
  Swap usage:   0%


Expanded Security Maintenance for Applications is not enabled.

5 updates can be applied immediately.
To see these additional updates run: apt list --upgradable

14 additional security updates can be applied with ESM Apps.
Learn more about enabling ESM Apps service at https://ubuntu.com/esm


The list of available updates is more than a week old.
To check for new updates run: sudo apt update
New release '24.04.5 LTS' available.
Run 'do-release-upgrade' to upgrade to it.


Last login: Sat Sep 26 01:07:39 2026 from 10.30.170.9
[?2004h[jenkins@releng-48317-848-1-mininet-ovs-217-0 ~]&gt;</msg>
<arg>${user}</arg>
<arg>${USER_HOME}/.ssh/${SSH_KEY}</arg>
<arg>${KEYFILE_PASS}</arg>
<arg>delay=${delay}</arg>
<doc>Logs into the SSH server using key-based authentication.</doc>
<status status="PASS" start="2026-09-26T01:07:40.114665" elapsed="0.377210"/>
</kw>
<msg time="2026-09-26T01:07:40.491978" level="INFO">Returning from the enclosing user keyword.</msg>
<arg>SSHLibrary.Login With Public Key</arg>
<arg>${user}</arg>
<arg>${USER_HOME}/.ssh/${SSH_KEY}</arg>
<arg>${KEYFILE_PASS}</arg>
<arg>delay=${delay}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-09-26T01:07:40.114302" elapsed="0.377772"/>
</kw>
<arg>${user}</arg>
<arg>${password}</arg>
<doc>On active SSH session: if given non-empty password, do Login, else do Login With Public Key.</doc>
<status status="PASS" start="2026-09-26T01:07:40.112938" elapsed="0.379260"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-26T01:07:40.492802" level="INFO">Executing command '/usr/local/bin/cbench -c 10.30.171.7 -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633'.</msg>
<msg time="2026-09-26T01:17:46.622488" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-09-26T01:17:46.623155" level="INFO">${stdout} = </msg>
<msg time="2026-09-26T01:17:46.623251" level="INFO">${stderr} = cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.171.7: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-09-26T01:07:40.492483" elapsed="606.130821"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-09-26T01:17:46.623855" elapsed="0.000731"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-26T01:17:46.625883" level="INFO">cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.171.7:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with 100 unique source MACs per switch
   learning destination mac addresses before the test
   starting test with 5000 ms delay after features_reply
   ignoring first 1 "warmup" and last 0 "cooldown" loops
   debugging info is off
Master Thread: Creating thread-0! 
Thread-0: All switches initialized. Running at node 10.30.171.7. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
01:08:45.702 16  switches: flows:  98050 98948 98110 98156 98380 95788 96468 96783 94881 97042 97721 94984 93668 96063 95374 95100  total = 25.758600 per ms 
01:09:45.802 16  switches: flows:  98123 100872 97980 99150 97951 99439 99652 95669 94408 97322 97270 95530 96236 97535 95816 99192  total = 25.992364 per ms 
01:10:45.902 16  switches: flows:  104200 103982 102319 103660 102879 103907 102270 101165 99934 100449 102714 100228 100875 99116 98613 101873  total = 27.091183 per ms 
01:11:46.003 16  switches: flows:  98202 98263 99060 99126 98080 100995 100883 96715 94404 99545 95748 96251 101266 96208 95661 98614  total = 26.106760 per ms 
01:12:46.103 16  switches: flows:  99465 98648 102037 100539 101872 100848 99691 96614 95884 101636 97090 97498 97860 95137 95522 98298  total = 26.266812 per ms 
01:13:46.203 16  switches: flows:  97534 95305 98153 99358 98494 98758 98421 95820 93143 96316 94645 94503 94928 93932 94171 96519  total = 25.623896 per ms 
01:14:46.303 16  switches: flows:  98969 96837 98253 99332 97375 97936 98090 95730 94810 98075 97003 94786 95937 96412 94162 97454  total = 25.809612 per ms 
01:15:46.404 16  switches: flows:  94994 93245 96451 97126 95104 95254 96045 92109 90560 94859 93085 91787 92556 92353 91665 95039  total = 24.995475 per ms 
01:16:46.504 16  switches: flows:  97319 93679 96731 97077 94608 95604 96425 92953 92096 97371 92552 91906 92762 93253 90941 94666  total = 25.123760 per ms 
01:17:46.604 16  switches: flows:  95658 94183 95623 96801 95024 94817 98491 92649 91372 94461 92602 92185 93280 91551 89504 94154  total = 24.997516 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 24995.48/27091.18/25778.60/8617.35 responses/s</msg>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-26T01:17:46.625078" elapsed="0.001095"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="PASS" start="2026-09-26T01:17:46.626620" elapsed="0.000069"/>
</return>
<status status="PASS" start="2026-09-26T01:17:46.626348" elapsed="0.000446"/>
</branch>
<status status="PASS" start="2026-09-26T01:17:46.626293" elapsed="0.000551"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="NOT RUN" start="2026-09-26T01:17:46.627037" elapsed="0.000028"/>
</return>
<status status="NOT RUN" start="2026-09-26T01:17:46.626963" elapsed="0.000156"/>
</branch>
<status status="NOT RUN" start="2026-09-26T01:17:46.626931" elapsed="0.000231"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-09-26T01:17:46.627227" elapsed="0.000028"/>
</return>
<kw name="Restore_Current_Ssh_Connection_From_Index" owner="SSHKeywords" type="TEARDOWN">
<kw name="Run Keyword And Return If" owner="BuiltIn">
<arg>${connection_index} is not None</arg>
<arg>SSHLibrary.Switch Connection</arg>
<arg>${connection_index}</arg>
<doc>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-09-26T01:17:46.628815" elapsed="0.000677"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<arg>127.0.0.1</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-09-26T01:17:46.629914" elapsed="0.000352"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-09-26T01:17:46.630569" elapsed="0.000233"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-09-26T01:17:46.627910" elapsed="0.003000"/>
</kw>
<msg time="2026-09-26T01:17:46.631154" level="INFO">${output} = cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.171.7: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-09-26T01:07:40.110175" elapsed="606.521034"/>
</kw>
<status status="PASS" start="2026-09-26T01:07:40.109860" elapsed="606.521444"/>
</branch>
<status status="PASS" start="2026-09-26T01:07:40.109508" elapsed="606.521846"/>
</if>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-26T01:17:46.632370" level="INFO">cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.171.7:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with 100 unique source MACs per switch
   learning destination mac addresses before the test
   starting test with 5000 ms delay after features_reply
   ignoring first 1 "warmup" and last 0 "cooldown" loops
   debugging info is off
Master Thread: Creating thread-0! 
Thread-0: All switches initialized. Running at node 10.30.171.7. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
01:08:45.702 16  switches: flows:  98050 98948 98110 98156 98380 95788 96468 96783 94881 97042 97721 94984 93668 96063 95374 95100  total = 25.758600 per ms 
01:09:45.802 16  switches: flows:  98123 100872 97980 99150 97951 99439 99652 95669 94408 97322 97270 95530 96236 97535 95816 99192  total = 25.992364 per ms 
01:10:45.902 16  switches: flows:  104200 103982 102319 103660 102879 103907 102270 101165 99934 100449 102714 100228 100875 99116 98613 101873  total = 27.091183 per ms 
01:11:46.003 16  switches: flows:  98202 98263 99060 99126 98080 100995 100883 96715 94404 99545 95748 96251 101266 96208 95661 98614  total = 26.106760 per ms 
01:12:46.103 16  switches: flows:  99465 98648 102037 100539 101872 100848 99691 96614 95884 101636 97090 97498 97860 95137 95522 98298  total = 26.266812 per ms 
01:13:46.203 16  switches: flows:  97534 95305 98153 99358 98494 98758 98421 95820 93143 96316 94645 94503 94928 93932 94171 96519  total = 25.623896 per ms 
01:14:46.303 16  switches: flows:  98969 96837 98253 99332 97375 97936 98090 95730 94810 98075 97003 94786 95937 96412 94162 97454  total = 25.809612 per ms 
01:15:46.404 16  switches: flows:  94994 93245 96451 97126 95104 95254 96045 92109 90560 94859 93085 91787 92556 92353 91665 95039  total = 24.995475 per ms 
01:16:46.504 16  switches: flows:  97319 93679 96731 97077 94608 95604 96425 92953 92096 97371 92552 91906 92762 93253 90941 94666  total = 25.123760 per ms 
01:17:46.604 16  switches: flows:  95658 94183 95623 96801 95024 94817 98491 92649 91372 94461 92602 92185 93280 91551 89504 94154  total = 24.997516 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 24995.48/27091.18/25778.60/8617.35 responses/s</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-26T01:17:46.631793" elapsed="0.000749"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${output}</arg>
<arg>RESULT</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-09-26T01:17:46.632939" elapsed="0.000762"/>
</kw>
<kw name="Get Lines Containing String" owner="String">
<msg time="2026-09-26T01:17:46.634571" level="INFO">1 out of 23 lines matched.</msg>
<msg time="2026-09-26T01:17:46.634781" level="INFO">${result_line} = RESULT: 16 switches 9 tests min/max/avg/stdev = 24995.48/27091.18/25778.60/8617.35 responses/s</msg>
<var>${result_line}</var>
<arg>${output}</arg>
<arg>RESULT</arg>
<doc>Returns lines of the given `string` that contain the `pattern`.</doc>
<status status="PASS" start="2026-09-26T01:17:46.634107" elapsed="0.000726"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-09-26T01:17:46.635685" level="INFO">@{results_list} = [ RESULT: | 16 | switches | 9 | tests | min/max/avg/stdev | = | 24995.48/27091.18/25778.60/8617.35 | responses/s ]</msg>
<var>@{results_list}</var>
<arg>${result_line}</arg>
<doc>Splits the `string` using `separator` as a delimiter string.</doc>
<status status="PASS" start="2026-09-26T01:17:46.635178" elapsed="0.000592"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-26T01:17:46.636926" level="INFO">min/max/avg/stdev</msg>
<arg>${results_list[5]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-26T01:17:46.636172" elapsed="0.000865"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-26T01:17:46.638146" level="INFO">24995.48/27091.18/25778.60/8617.35</msg>
<arg>${results_list[7]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-26T01:17:46.637427" elapsed="0.000827"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-09-26T01:17:46.639244" level="INFO">@{result_name_list} = [ min | max | avg | stdev ]</msg>
<var>@{result_name_list}</var>
<arg>${results_list[5]}</arg>
<arg>/</arg>
<doc>Splits the `string` using `separator` as a delimiter string.</doc>
<status status="PASS" start="2026-09-26T01:17:46.638605" elapsed="0.000694"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-09-26T01:17:46.640385" level="INFO">@{result_value_list} = [ 24995.48 | 27091.18 | 25778.60 | 8617.35 ]</msg>
<var>@{result_value_list}</var>
<arg>${results_list[7]}</arg>
<arg>/</arg>
<doc>Splits the `string` using `separator` as a delimiter string.</doc>
<status status="PASS" start="2026-09-26T01:17:46.639754" elapsed="0.000708"/>
</kw>
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-09-26T01:17:46.641424" level="INFO">Length is 4.</msg>
<msg time="2026-09-26T01:17:46.641620" level="INFO">${num_stats} = 4</msg>
<var>${num_stats}</var>
<arg>${result_name_list}</arg>
<doc>Returns and logs the length of the given item as an integer.</doc>
<status status="PASS" start="2026-09-26T01:17:46.640825" elapsed="0.000844"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-26T01:17:46.643491" level="INFO">min :: 24995.48</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-26T01:17:46.642548" elapsed="0.001059"/>
</kw>
<var name="${i}">0</var>
<status status="PASS" start="2026-09-26T01:17:46.642157" elapsed="0.001519"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-26T01:17:46.645164" level="INFO">max :: 27091.18</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-26T01:17:46.644242" elapsed="0.001031"/>
</kw>
<var name="${i}">1</var>
<status status="PASS" start="2026-09-26T01:17:46.643882" elapsed="0.001456"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-26T01:17:46.646847" level="INFO">avg :: 25778.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-09-26T01:17:46.645927" elapsed="0.001030"/>
</kw>
<var name="${i}">2</var>
<status status="PASS" start="2026-09-26T01:17:46.645533" elapsed="0.001490"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-26T01:17:46.648503" level="INFO">stdev :: 8617.35</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-26T01:17:46.647583" elapsed="0.001030"/>
</kw>
<var name="${i}">3</var>
<status status="PASS" start="2026-09-26T01:17:46.647198" elapsed="0.001481"/>
</iter>
<var>${i}</var>
<value>0</value>
<value>${num_stats}</value>
<status status="PASS" start="2026-09-26T01:17:46.641824" elapsed="0.006950"/>
</for>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-09-26T01:17:46.649971" level="INFO">${min} = 24995.48</msg>
<var>${min}</var>
<arg>${result_value_list[${0}]}</arg>
<doc>Returns the given values which can then be assigned to a variable.</doc>
<status status="PASS" start="2026-09-26T01:17:46.649107" elapsed="0.000917"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-09-26T01:17:46.651215" level="INFO">${max} = 27091.18</msg>
<var>${max}</var>
<arg>${result_value_list[${1}]}</arg>
<doc>Returns the given values which can then be assigned to a variable.</doc>
<status status="PASS" start="2026-09-26T01:17:46.650346" elapsed="0.000922"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-09-26T01:17:46.652466" level="INFO">${average} = 25778.60</msg>
<var>${average}</var>
<arg>${result_value_list[${2}]}</arg>
<doc>Returns the given values which can then be assigned to a variable.</doc>
<status status="PASS" start="2026-09-26T01:17:46.651609" elapsed="0.000913"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-09-26T01:17:46.653684" level="INFO">${stdev} = 8617.35</msg>
<var>${stdev}</var>
<arg>${result_value_list[${3}]}</arg>
<doc>Returns the given values which can then be assigned to a variable.</doc>
<status status="PASS" start="2026-09-26T01:17:46.652867" elapsed="0.000898"/>
</kw>
<kw name="Get Time" owner="BuiltIn">
<msg time="2026-09-26T01:17:46.654932" level="INFO">${date} = 2026-09-26 01:17:46</msg>
<var>${date}</var>
<arg>d,m,s</arg>
<doc>Returns the given time in the requested format.</doc>
<status status="PASS" start="2026-09-26T01:17:46.654160" elapsed="0.000824"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-26T01:17:46.656112" level="INFO">CBench Result: 2026-09-26 01:17:46,-m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633,24995.48,27091.18,25778.60,8617.35</msg>
<arg>CBench Result: ${date},${cbench_args},${min},${max},${average},${stdev}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-26T01:17:46.655379" elapsed="0.000841"/>
</kw>
<kw name="Log Results And Determine Status">
<kw name="Append To File" owner="OperatingSystem">
<msg time="2026-09-26T01:17:46.658417" level="INFO" html="true">Appended to file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-cbench-only-titanium/latency.csv"&gt;/w/workspace/openflowplugin-csit-1node-cbench-only-titanium/latency.csv&lt;/a&gt;'.</msg>
<arg>${output_file}</arg>
<arg>${min},${max},${average}\n</arg>
<doc>Appends the given content to the specified file.</doc>
<status status="PASS" start="2026-09-26T01:17:46.657395" elapsed="0.001182"/>
</kw>
<kw name="Should Be True" owner="BuiltIn">
<arg>${average} &gt; ${threshold}</arg>
<arg>${average} flow_mods per/sec did not exceed threshold of ${threshold}</arg>
<doc>Fails if the given condition is not true.</doc>
<status status="PASS" start="2026-09-26T01:17:46.658956" elapsed="0.000893"/>
</kw>
<arg>${min}</arg>
<arg>${max}</arg>
<arg>${average}</arg>
<arg>${average_threshold}</arg>
<arg>${output_filename}</arg>
<status status="PASS" start="2026-09-26T01:17:46.656527" elapsed="0.003450"/>
</kw>
<arg>-m ${duration_in_ms} -M ${num_of_unique_macs} -S ${switch_count} -l ${loops} -D ${start_delay} -p ${of_port}</arg>
<arg>${latency_threshold}</arg>
<arg>${latency_results_file}</arg>
<status status="PASS" start="2026-09-26T01:07:40.108529" elapsed="606.551561"/>
</kw>
<kw name="Sleep" owner="BuiltIn">
<msg time="2026-09-26T01:17:46.661115" level="INFO">Slept 0 seconds.</msg>
<arg>${test_delay}</arg>
<doc>Pauses execution for the given time.</doc>
<status status="PASS" start="2026-09-26T01:17:46.660397" elapsed="0.000830"/>
</kw>
<kw name="Log Results As Zero If Cbench Timed Out" type="TEARDOWN">
<kw name="Run Keyword If Timeout Occurred" owner="BuiltIn">
<arg>Log Results And Determine Status</arg>
<arg>0</arg>
<arg>0</arg>
<arg>0</arg>
<arg>0</arg>
<arg>${output_filename}</arg>
<doc>Runs the given keyword if either a test or a keyword timeout has occurred.</doc>
<status status="PASS" start="2026-09-26T01:17:46.662313" elapsed="0.000596"/>
</kw>
<status status="PASS" start="2026-09-26T01:17:46.661653" elapsed="0.001396"/>
</kw>
<doc>cbench executed in default latency mode. Test parameters have defaults, but can be overridden
on the pybot command line</doc>
<tag>cbench</tag>
<tag>latency</tag>
<timeout value="15 minutes"/>
<status status="PASS" start="2026-09-26T01:07:40.106327" elapsed="606.556793"/>
</test>
<test id="s1-t2" name="Cbench Throughput Test" line="51">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-26T01:17:46.665700" level="INFO">Cbench tests using 10 iterations of 60 second tests. Switch Count: 16. Unique MACS to cycle: 100</msg>
<arg>Cbench tests using ${loops} iterations of ${duration_in_secs} second tests. Switch Count: ${switch_count}. Unique MACS to cycle: ${num_of_unique_macs}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-26T01:17:46.665002" elapsed="0.000862"/>
</kw>
<kw name="Run Cbench And Log Results">
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-09-26T01:17:46.667502" level="INFO">${output_filename} = throughput.csv</msg>
<arg>${output_filename}</arg>
<doc>Makes the variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-09-26T01:17:46.666949" elapsed="0.000609"/>
</kw>
<if>
<branch type="IF" condition="&quot;${cbench_system}&quot; == &quot;localhost&quot;">
<kw name="Run" owner="OperatingSystem">
<var>${output}</var>
<arg>${cbench_executable} -c ${ODL_SYSTEM_IP} ${cbench_args}</arg>
<doc>*This keyword is considered deprecated. Use the [Process] library instead.*</doc>
<status status="NOT RUN" start="2026-09-26T01:17:46.668003" elapsed="0.000029"/>
</kw>
<status status="NOT RUN" start="2026-09-26T01:17:46.667646" elapsed="0.000432"/>
</branch>
<branch type="ELSE">
<kw name="Run Command On Remote System" owner="Utils">
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot; and &quot;${return_stderr}&quot;!=&quot;True&quot;">
<kw name="Fail" owner="BuiltIn">
<arg>At least one of {return_stdout} or {return_stderr} args should be set to True</arg>
<doc>Fails the test or task with the given message and optionally alters its tags.</doc>
<status status="NOT RUN" start="2026-09-26T01:17:46.669560" elapsed="0.000027"/>
</kw>
<status status="NOT RUN" start="2026-09-26T01:17:46.669249" elapsed="0.000382"/>
</branch>
<status status="PASS" start="2026-09-26T01:17:46.669224" elapsed="0.000438"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-09-26T01:17:46.670159" level="INFO">index=None
host=None
alias=None
port=22
timeout=3 seconds
newline=

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

prompt=None
term_type=vt100
width=80
height=24
path_separator=/
encoding=utf8
escape_ansi=False
encoding_errors=strict</msg>
<var>${current_ssh_connection}</var>
<doc>Returns information about the connection.</doc>
<status status="PASS" start="2026-09-26T01:17:46.669929" elapsed="0.000412"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-26T01:17:46.671079" level="INFO">Attempting to execute command "/usr/local/bin/cbench -c 10.30.171.7 -t -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633" on remote system "10.30.170.78" by user "jenkins" with keyfile pass "any" and prompt "&gt;" and password ""</msg>
<arg>Attempting to execute command "${cmd}" on remote system "${system}" by user "${user}" with keyfile pass "${keyfile_pass}" and prompt "${prompt}" and password "${password}"</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-26T01:17:46.670597" elapsed="0.000555"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-09-26T01:17:46.671845" level="INFO">${conn_id} = 7</msg>
<var>${conn_id}</var>
<arg>${system}</arg>
<arg>prompt=${prompt}</arg>
<arg>timeout=${prompt_timeout}</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-09-26T01:17:46.671369" elapsed="0.000510"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-09-26T01:17:46.673223" level="INFO">Length is 0.</msg>
<msg time="2026-09-26T01:17:46.673339" level="INFO">${pwd_length} = 0</msg>
<var>${pwd_length}</var>
<arg>${password}</arg>
<doc>Returns and logs the length of the given item as an integer.</doc>
<status status="PASS" start="2026-09-26T01:17:46.672598" elapsed="0.000771"/>
</kw>
<kw name="Run Keyword And Return If" owner="BuiltIn">
<arg>${pwd_length} &gt; 0</arg>
<arg>SSHLibrary.Login</arg>
<arg>${user}</arg>
<arg>${password}</arg>
<arg>delay=${delay}</arg>
<doc>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-09-26T01:17:46.673570" elapsed="0.000423"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-09-26T01:17:46.675096" level="INFO">Logging into '10.30.170.78:22' as 'jenkins'.</msg>
<msg time="2026-09-26T01:17:47.365637" level="INFO">Read output: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-187-generic x86_64)

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

 System information as of Sat Sep 26 01:17:46 UTC 2026

  System load:  1.0                Processes:             104
  Usage of /:   19.8% of 38.58GB   Users logged in:       0
  Memory usage: 4%                 IPv4 address for ens3: 10.30.170.78
  Swap usage:   0%


Expanded Security Maintenance for Applications is not enabled.

5 updates can be applied immediately.
To see these additional updates run: apt list --upgradable

14 additional security updates can be applied with ESM Apps.
Learn more about enabling ESM Apps service at https://ubuntu.com/esm


The list of available updates is more than a week old.
To check for new updates run: sudo apt update
New release '24.04.5 LTS' available.
Run 'do-release-upgrade' to upgrade to it.


Last login: Sat Sep 26 01:07:40 2026 from 10.30.170.9
[?2004h[jenkins@releng-48317-848-1-mininet-ovs-217-0 ~]&gt;</msg>
<arg>${user}</arg>
<arg>${USER_HOME}/.ssh/${SSH_KEY}</arg>
<arg>${KEYFILE_PASS}</arg>
<arg>delay=${delay}</arg>
<doc>Logs into the SSH server using key-based authentication.</doc>
<status status="PASS" start="2026-09-26T01:17:46.674685" elapsed="0.691142"/>
</kw>
<msg time="2026-09-26T01:17:47.365909" level="INFO">Returning from the enclosing user keyword.</msg>
<arg>SSHLibrary.Login With Public Key</arg>
<arg>${user}</arg>
<arg>${USER_HOME}/.ssh/${SSH_KEY}</arg>
<arg>${KEYFILE_PASS}</arg>
<arg>delay=${delay}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-09-26T01:17:46.674191" elapsed="0.691802"/>
</kw>
<arg>${user}</arg>
<arg>${password}</arg>
<doc>On active SSH session: if given non-empty password, do Login, else do Login With Public Key.</doc>
<status status="PASS" start="2026-09-26T01:17:46.672121" elapsed="0.693972"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-26T01:17:47.366620" level="INFO">Executing command '/usr/local/bin/cbench -c 10.30.171.7 -t -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633'.</msg>
<msg time="2026-09-26T01:27:53.425273" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-09-26T01:27:53.426045" level="INFO">${stdout} = </msg>
<msg time="2026-09-26T01:27:53.426142" level="INFO">${stderr} = cbench: controller benchmarking tool
   running in mode 'throughput'
   connecting to controller at 10.30.171.7:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with 1...</msg>
<var>${stdout}</var>
<var>${stderr}</var>
<arg>${cmd}</arg>
<arg>return_stderr=True</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-26T01:17:47.366336" elapsed="606.059858"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-09-26T01:27:53.426781" elapsed="0.000753"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-26T01:27:53.429034" level="INFO">cbench: controller benchmarking tool
   running in mode 'throughput'
   connecting to controller at 10.30.171.7:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with 100 unique source MACs per switch
   learning destination mac addresses before the test
   starting test with 5000 ms delay after features_reply
   ignoring first 1 "warmup" and last 0 "cooldown" loops
   debugging info is off
Master Thread: Creating thread-0! 
Thread-0: All switches initialized. Running at node 10.30.171.7. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
01:18:52.482 16  switches: flows:  557688 567881 558174 557673 561126 564512 562756 565757 550338 547243 561090 557830 558337 547144 545268 556239  total = 148.650933 per ms 
01:19:52.586 16  switches: flows:  571717 567905 565442 569310 570161 570653 562188 573642 569342 567956 571897 569236 570214 567096 570192 571765  total = 151.551061 per ms 
01:20:52.688 16  switches: flows:  563375 568429 557841 562778 565007 559254 563848 568229 566159 566534 565564 566439 560591 567710 557113 571265  total = 150.248492 per ms 
01:21:52.790 16  switches: flows:  590108 604378 591788 602156 604135 595047 601242 596338 588653 593661 601290 598814 598226 599295 600456 598021  total = 159.123866 per ms 
01:22:52.892 16  switches: flows:  595656 603709 597225 602502 600835 595723 592989 599307 591482 606657 599823 596141 596744 607517 604164 604201  total = 159.642598 per ms 
01:23:52.993 16  switches: flows:  592992 588260 599049 593928 600941 593138 596420 592046 591739 584892 598717 595069 593191 592307 597823 591574  total = 158.102711 per ms 
01:24:53.096 16  switches: flows:  606075 599061 606562 612352 603718 595656 592618 602397 601118 607719 599233 598334 594092 594791 596920 601134  total = 159.925244 per ms 
01:25:53.197 16  switches: flows:  611951 605170 614400 597248 612097 607292 603306 613879 604246 609090 613551 606270 615191 608447 605711 610092  total = 162.026448 per ms 
01:26:53.298 16  switches: flows:  632324 630727 627288 634037 632885 633060 636479 625279 630860 638799 625591 628676 632265 630571 637862 625939  total = 168.095627 per ms 
01:27:53.400 16  switches: flows:  595812 603286 609069 603209 607620 602007 604234 600433 599687 604715 608123 604163 606007 599459 599083 604102  total = 160.580567 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 150248.49/168095.63/158810.73/53175.89 responses/s</msg>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-26T01:27:53.428026" elapsed="0.001302"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="PASS" start="2026-09-26T01:27:53.429862" elapsed="0.000092"/>
</return>
<status status="PASS" start="2026-09-26T01:27:53.429535" elapsed="0.000498"/>
</branch>
<status status="PASS" start="2026-09-26T01:27:53.429477" elapsed="0.000606"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="NOT RUN" start="2026-09-26T01:27:53.430275" elapsed="0.000027"/>
</return>
<status status="NOT RUN" start="2026-09-26T01:27:53.430202" elapsed="0.000155"/>
</branch>
<status status="NOT RUN" start="2026-09-26T01:27:53.430169" elapsed="0.000231"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-09-26T01:27:53.430480" elapsed="0.000029"/>
</return>
<kw name="Restore_Current_Ssh_Connection_From_Index" owner="SSHKeywords" type="TEARDOWN">
<kw name="Run Keyword And Return If" owner="BuiltIn">
<arg>${connection_index} is not None</arg>
<arg>SSHLibrary.Switch Connection</arg>
<arg>${connection_index}</arg>
<doc>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-09-26T01:27:53.432122" elapsed="0.000733"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<arg>127.0.0.1</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-09-26T01:27:53.433226" elapsed="0.000437"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-09-26T01:27:53.433979" elapsed="0.000211"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-09-26T01:27:53.431159" elapsed="0.003138"/>
</kw>
<msg time="2026-09-26T01:27:53.434570" level="INFO">${output} = cbench: controller benchmarking tool
   running in mode 'throughput'
   connecting to controller at 10.30.171.7:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with 1...</msg>
<var>${output}</var>
<arg>${cbench_system}</arg>
<arg>${cbench_executable} -c ${ODL_SYSTEM_IP} ${cbench_args}</arg>
<arg>prompt_timeout=${test_timeout}</arg>
<arg>return_stdout=False</arg>
<arg>return_stderr=True</arg>
<doc>Reduces the common work of running a command on a remote system to a single higher level
robot keyword, taking care to log in with a public key and. The command given is written and the return value
depends on the passed argument values of return_stdout (default: True) and return_stderr (default: False).
At least one should be True, or the keyword will exit and FAIL. If both are True, the resulting return value
will be a two element list containing both. Otherwise the resulting return value is a string.
No test conditions are checked.</doc>
<status status="PASS" start="2026-09-26T01:17:46.668547" elapsed="606.766077"/>
</kw>
<status status="PASS" start="2026-09-26T01:17:46.668111" elapsed="606.766653"/>
</branch>
<status status="PASS" start="2026-09-26T01:17:46.667621" elapsed="606.767199"/>
</if>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-26T01:27:53.435875" level="INFO">cbench: controller benchmarking tool
   running in mode 'throughput'
   connecting to controller at 10.30.171.7:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with 100 unique source MACs per switch
   learning destination mac addresses before the test
   starting test with 5000 ms delay after features_reply
   ignoring first 1 "warmup" and last 0 "cooldown" loops
   debugging info is off
Master Thread: Creating thread-0! 
Thread-0: All switches initialized. Running at node 10.30.171.7. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
01:18:52.482 16  switches: flows:  557688 567881 558174 557673 561126 564512 562756 565757 550338 547243 561090 557830 558337 547144 545268 556239  total = 148.650933 per ms 
01:19:52.586 16  switches: flows:  571717 567905 565442 569310 570161 570653 562188 573642 569342 567956 571897 569236 570214 567096 570192 571765  total = 151.551061 per ms 
01:20:52.688 16  switches: flows:  563375 568429 557841 562778 565007 559254 563848 568229 566159 566534 565564 566439 560591 567710 557113 571265  total = 150.248492 per ms 
01:21:52.790 16  switches: flows:  590108 604378 591788 602156 604135 595047 601242 596338 588653 593661 601290 598814 598226 599295 600456 598021  total = 159.123866 per ms 
01:22:52.892 16  switches: flows:  595656 603709 597225 602502 600835 595723 592989 599307 591482 606657 599823 596141 596744 607517 604164 604201  total = 159.642598 per ms 
01:23:52.993 16  switches: flows:  592992 588260 599049 593928 600941 593138 596420 592046 591739 584892 598717 595069 593191 592307 597823 591574  total = 158.102711 per ms 
01:24:53.096 16  switches: flows:  606075 599061 606562 612352 603718 595656 592618 602397 601118 607719 599233 598334 594092 594791 596920 601134  total = 159.925244 per ms 
01:25:53.197 16  switches: flows:  611951 605170 614400 597248 612097 607292 603306 613879 604246 609090 613551 606270 615191 608447 605711 610092  total = 162.026448 per ms 
01:26:53.298 16  switches: flows:  632324 630727 627288 634037 632885 633060 636479 625279 630860 638799 625591 628676 632265 630571 637862 625939  total = 168.095627 per ms 
01:27:53.400 16  switches: flows:  595812 603286 609069 603209 607620 602007 604234 600433 599687 604715 608123 604163 606007 599459 599083 604102  total = 160.580567 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 150248.49/168095.63/158810.73/53175.89 responses/s</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-26T01:27:53.435209" elapsed="0.000817"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${output}</arg>
<arg>RESULT</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-09-26T01:27:53.436362" elapsed="0.000789"/>
</kw>
<kw name="Get Lines Containing String" owner="String">
<msg time="2026-09-26T01:27:53.437997" level="INFO">1 out of 23 lines matched.</msg>
<msg time="2026-09-26T01:27:53.438175" level="INFO">${result_line} = RESULT: 16 switches 9 tests min/max/avg/stdev = 150248.49/168095.63/158810.73/53175.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-09-26T01:27:53.437540" elapsed="0.000685"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-09-26T01:27:53.439101" level="INFO">@{results_list} = [ RESULT: | 16 | switches | 9 | tests | min/max/avg/stdev | = | 150248.49/168095.63/158810.73/53175.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-09-26T01:27:53.438592" elapsed="0.000564"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-26T01:27:53.440295" level="INFO">min/max/avg/stdev</msg>
<arg>${results_list[5]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-26T01:27:53.439587" elapsed="0.000819"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-26T01:27:53.441536" level="INFO">150248.49/168095.63/158810.73/53175.89</msg>
<arg>${results_list[7]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-26T01:27:53.440853" elapsed="0.000793"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-09-26T01:27:53.442678" level="INFO">@{result_name_list} = [ min | max | avg | stdev ]</msg>
<var>@{result_name_list}</var>
<arg>${results_list[5]}</arg>
<arg>/</arg>
<doc>Splits the `string` using `separator` as a delimiter string.</doc>
<status status="PASS" start="2026-09-26T01:27:53.442012" elapsed="0.000751"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-09-26T01:27:53.443933" level="INFO">@{result_value_list} = [ 150248.49 | 168095.63 | 158810.73 | 53175.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-09-26T01:27:53.443171" elapsed="0.000831"/>
</kw>
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-09-26T01:27:53.445023" level="INFO">Length is 4.</msg>
<msg time="2026-09-26T01:27:53.445196" level="INFO">${num_stats} = 4</msg>
<var>${num_stats}</var>
<arg>${result_name_list}</arg>
<doc>Returns and logs the length of the given item as an integer.</doc>
<status status="PASS" start="2026-09-26T01:27:53.444345" elapsed="0.000900"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-26T01:27:53.447079" level="INFO">min :: 150248.49</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-26T01:27:53.446142" elapsed="0.001046"/>
</kw>
<var name="${i}">0</var>
<status status="PASS" start="2026-09-26T01:27:53.445771" elapsed="0.001483"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-26T01:27:53.448808" level="INFO">max :: 168095.63</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-26T01:27:53.447844" elapsed="0.001079"/>
</kw>
<var name="${i}">1</var>
<status status="PASS" start="2026-09-26T01:27:53.447430" elapsed="0.001560"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-26T01:27:53.450508" level="INFO">avg :: 158810.73</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-26T01:27:53.449582" elapsed="0.001037"/>
</kw>
<var name="${i}">2</var>
<status status="PASS" start="2026-09-26T01:27:53.449160" elapsed="0.001525"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-26T01:27:53.452186" level="INFO">stdev :: 53175.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-09-26T01:27:53.451256" elapsed="0.001038"/>
</kw>
<var name="${i}">3</var>
<status status="PASS" start="2026-09-26T01:27:53.450886" elapsed="0.001475"/>
</iter>
<var>${i}</var>
<value>0</value>
<value>${num_stats}</value>
<status status="PASS" start="2026-09-26T01:27:53.445372" elapsed="0.007049"/>
</for>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-09-26T01:27:53.453873" level="INFO">${min} = 150248.49</msg>
<var>${min}</var>
<arg>${result_value_list[${0}]}</arg>
<doc>Returns the given values which can then be assigned to a variable.</doc>
<status status="PASS" start="2026-09-26T01:27:53.452887" elapsed="0.001041"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-09-26T01:27:53.455116" level="INFO">${max} = 168095.63</msg>
<var>${max}</var>
<arg>${result_value_list[${1}]}</arg>
<doc>Returns the given values which can then be assigned to a variable.</doc>
<status status="PASS" start="2026-09-26T01:27:53.454253" elapsed="0.000916"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-09-26T01:27:53.456372" level="INFO">${average} = 158810.73</msg>
<var>${average}</var>
<arg>${result_value_list[${2}]}</arg>
<doc>Returns the given values which can then be assigned to a variable.</doc>
<status status="PASS" start="2026-09-26T01:27:53.455516" elapsed="0.000908"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-09-26T01:27:53.457647" level="INFO">${stdev} = 53175.89</msg>
<var>${stdev}</var>
<arg>${result_value_list[${3}]}</arg>
<doc>Returns the given values which can then be assigned to a variable.</doc>
<status status="PASS" start="2026-09-26T01:27:53.456812" elapsed="0.000888"/>
</kw>
<kw name="Get Time" owner="BuiltIn">
<msg time="2026-09-26T01:27:53.458923" level="INFO">${date} = 2026-09-26 01:27:53</msg>
<var>${date}</var>
<arg>d,m,s</arg>
<doc>Returns the given time in the requested format.</doc>
<status status="PASS" start="2026-09-26T01:27:53.458134" elapsed="0.000841"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-26T01:27:53.460145" level="INFO">CBench Result: 2026-09-26 01:27:53,-t -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633,150248.49,168095.63,158810.73,53175.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-09-26T01:27:53.459371" elapsed="0.000883"/>
</kw>
<kw name="Log Results And Determine Status">
<kw name="Append To File" owner="OperatingSystem">
<msg time="2026-09-26T01:27:53.462184" level="INFO" html="true">Appended to file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-cbench-only-titanium/throughput.csv"&gt;/w/workspace/openflowplugin-csit-1node-cbench-only-titanium/throughput.csv&lt;/a&gt;'.</msg>
<arg>${output_file}</arg>
<arg>${min},${max},${average}\n</arg>
<doc>Appends the given content to the specified file.</doc>
<status status="PASS" start="2026-09-26T01:27:53.461475" elapsed="0.000849"/>
</kw>
<kw name="Should Be True" owner="BuiltIn">
<arg>${average} &gt; ${threshold}</arg>
<arg>${average} flow_mods per/sec did not exceed threshold of ${threshold}</arg>
<doc>Fails if the given condition is not true.</doc>
<status status="PASS" start="2026-09-26T01:27:53.462707" elapsed="0.001312"/>
</kw>
<arg>${min}</arg>
<arg>${max}</arg>
<arg>${average}</arg>
<arg>${average_threshold}</arg>
<arg>${output_filename}</arg>
<status status="PASS" start="2026-09-26T01:27:53.460563" elapsed="0.003588"/>
</kw>
<arg>-t -m ${duration_in_ms} -M ${num_of_unique_macs} -S ${switch_count} -l ${loops} -D ${start_delay} -p ${of_port}</arg>
<arg>${throughput_threshold}</arg>
<arg>${throughput_results_file}</arg>
<status status="PASS" start="2026-09-26T01:17:46.666273" elapsed="606.797996"/>
</kw>
<kw name="Sleep" owner="BuiltIn">
<msg time="2026-09-26T01:27:53.465363" level="INFO">Slept 0 seconds.</msg>
<arg>${test_delay}</arg>
<doc>Pauses execution for the given time.</doc>
<status status="PASS" start="2026-09-26T01:27:53.464666" elapsed="0.000857"/>
</kw>
<kw name="Log Results As Zero If Cbench Timed Out" type="TEARDOWN">
<kw name="Run Keyword If Timeout Occurred" owner="BuiltIn">
<arg>Log Results And Determine Status</arg>
<arg>0</arg>
<arg>0</arg>
<arg>0</arg>
<arg>0</arg>
<arg>${output_filename}</arg>
<doc>Runs the given keyword if either a test or a keyword timeout has occurred.</doc>
<status status="PASS" start="2026-09-26T01:27:53.466771" elapsed="0.000595"/>
</kw>
<status status="PASS" start="2026-09-26T01:27:53.465974" elapsed="0.001566"/>
</kw>
<doc>cbench executed in throughput mode (-t). Test parameters have defaults, but can be overridden
on the pybot command line</doc>
<tag>cbench</tag>
<tag>throughput</tag>
<timeout value="15 minutes"/>
<status status="PASS" start="2026-09-26T01:17:46.663704" elapsed="606.803911"/>
</test>
<test id="s1-t3" name="Rerun Latency Test To Check Bug 6176" line="65">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-26T01:27:53.469653" level="INFO">Cbench tests using 10 iterations of 60 second tests. Switch Count: 16. Unique MACS to cycle: 100</msg>
<arg>Cbench tests using ${loops} iterations of ${duration_in_secs} second tests. Switch Count: ${switch_count}. Unique MACS to cycle: ${num_of_unique_macs}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-26T01:27:53.469208" elapsed="0.000533"/>
</kw>
<kw name="Run Cbench And Log Results">
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-09-26T01:27:53.471231" level="INFO">${output_filename} = bug.csv</msg>
<arg>${output_filename}</arg>
<doc>Makes the variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-09-26T01:27:53.470817" elapsed="0.000466"/>
</kw>
<if>
<branch type="IF" condition="&quot;${cbench_system}&quot; == &quot;localhost&quot;">
<kw name="Run" owner="OperatingSystem">
<var>${output}</var>
<arg>${cbench_executable} -c ${ODL_SYSTEM_IP} ${cbench_args}</arg>
<doc>*This keyword is considered deprecated. Use the [Process] library instead.*</doc>
<status status="NOT RUN" start="2026-09-26T01:27:53.471840" elapsed="0.000029"/>
</kw>
<status status="NOT RUN" start="2026-09-26T01:27:53.471450" elapsed="0.000465"/>
</branch>
<branch type="ELSE">
<kw name="Run Command On Remote System" owner="Utils">
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot; and &quot;${return_stderr}&quot;!=&quot;True&quot;">
<kw name="Fail" owner="BuiltIn">
<arg>At least one of {return_stdout} or {return_stderr} args should be set to True</arg>
<doc>Fails the test or task with the given message and optionally alters its tags.</doc>
<status status="NOT RUN" start="2026-09-26T01:27:53.473609" elapsed="0.000039"/>
</kw>
<status status="NOT RUN" start="2026-09-26T01:27:53.473126" elapsed="0.000569"/>
</branch>
<status status="PASS" start="2026-09-26T01:27:53.473100" elapsed="0.000643"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-09-26T01:27:53.474238" level="INFO">index=None
host=None
alias=None
port=22
timeout=3 seconds
newline=

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

prompt=None
term_type=vt100
width=80
height=24
path_separator=/
encoding=utf8
escape_ansi=False
encoding_errors=strict</msg>
<var>${current_ssh_connection}</var>
<doc>Returns information about the connection.</doc>
<status status="PASS" start="2026-09-26T01:27:53.474006" elapsed="0.000411"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-26T01:27:53.475254" level="INFO">Attempting to execute command "/usr/local/bin/cbench -c 10.30.171.7 -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633" on remote system "10.30.170.78" by user "jenkins" with keyfile pass "any" and prompt "&gt;" and password ""</msg>
<arg>Attempting to execute command "${cmd}" on remote system "${system}" by user "${user}" with keyfile pass "${keyfile_pass}" and prompt "${prompt}" and password "${password}"</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-26T01:27:53.474716" elapsed="0.000612"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-09-26T01:27:53.476060" level="INFO">${conn_id} = 9</msg>
<var>${conn_id}</var>
<arg>${system}</arg>
<arg>prompt=${prompt}</arg>
<arg>timeout=${prompt_timeout}</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-09-26T01:27:53.475586" elapsed="0.000507"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-09-26T01:27:53.477557" level="INFO">Length is 0.</msg>
<msg time="2026-09-26T01:27:53.477670" level="INFO">${pwd_length} = 0</msg>
<var>${pwd_length}</var>
<arg>${password}</arg>
<doc>Returns and logs the length of the given item as an integer.</doc>
<status status="PASS" start="2026-09-26T01:27:53.477116" elapsed="0.000586"/>
</kw>
<kw name="Run Keyword And Return If" owner="BuiltIn">
<arg>${pwd_length} &gt; 0</arg>
<arg>SSHLibrary.Login</arg>
<arg>${user}</arg>
<arg>${password}</arg>
<arg>delay=${delay}</arg>
<doc>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-09-26T01:27:53.477907" elapsed="0.000399"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-09-26T01:27:53.479471" level="INFO">Logging into '10.30.170.78:22' as 'jenkins'.</msg>
<msg time="2026-09-26T01:27:54.133007" level="INFO">Read output: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-187-generic x86_64)

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

 System information as of Sat Sep 26 01:27:53 UTC 2026

  System load:  0.4                Processes:             105
  Usage of /:   19.8% of 38.58GB   Users logged in:       0
  Memory usage: 4%                 IPv4 address for ens3: 10.30.170.78
  Swap usage:   0%


Expanded Security Maintenance for Applications is not enabled.

5 updates can be applied immediately.
To see these additional updates run: apt list --upgradable

14 additional security updates can be applied with ESM Apps.
Learn more about enabling ESM Apps service at https://ubuntu.com/esm


The list of available updates is more than a week old.
To check for new updates run: sudo apt update
New release '24.04.5 LTS' available.
Run 'do-release-upgrade' to upgrade to it.


Last login: Sat Sep 26 01:17:47 2026 from 10.30.170.9
[?2004h[jenkins@releng-48317-848-1-mininet-ovs-217-0 ~]&gt;</msg>
<arg>${user}</arg>
<arg>${USER_HOME}/.ssh/${SSH_KEY}</arg>
<arg>${KEYFILE_PASS}</arg>
<arg>delay=${delay}</arg>
<doc>Logs into the SSH server using key-based authentication.</doc>
<status status="PASS" start="2026-09-26T01:27:53.479054" elapsed="0.654100"/>
</kw>
<msg time="2026-09-26T01:27:54.133233" level="INFO">Returning from the enclosing user keyword.</msg>
<arg>SSHLibrary.Login With Public Key</arg>
<arg>${user}</arg>
<arg>${USER_HOME}/.ssh/${SSH_KEY}</arg>
<arg>${KEYFILE_PASS}</arg>
<arg>delay=${delay}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-09-26T01:27:53.478538" elapsed="0.654765"/>
</kw>
<arg>${user}</arg>
<arg>${password}</arg>
<doc>On active SSH session: if given non-empty password, do Login, else do Login With Public Key.</doc>
<status status="PASS" start="2026-09-26T01:27:53.476344" elapsed="0.657052"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-26T01:27:54.133936" level="INFO">Executing command '/usr/local/bin/cbench -c 10.30.171.7 -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633'.</msg>
<msg time="2026-09-26T01:38:00.201709" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-09-26T01:38:00.202921" level="INFO">${stdout} = </msg>
<msg time="2026-09-26T01:38:00.203035" level="INFO">${stderr} = cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.171.7: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-09-26T01:27:54.133654" elapsed="606.069434"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-09-26T01:38:00.204850" elapsed="0.001584"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-26T01:38:00.207660" level="INFO">cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.171.7:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with 100 unique source MACs per switch
   learning destination mac addresses before the test
   starting test with 5000 ms delay after features_reply
   ignoring first 1 "warmup" and last 0 "cooldown" loops
   debugging info is off
Master Thread: Creating thread-0! 
Thread-0: All switches initialized. Running at node 10.30.171.7. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
01:28:59.262 16  switches: flows:  100684 99414 101250 100151 100122 98368 99270 100137 98617 97912 98558 98220 97516 97370 95910 98304  total = 26.363383 per ms 
01:29:59.364 16  switches: flows:  97075 96141 94084 96064 97290 96919 96815 96042 95224 94275 96208 93320 95208 94455 91941 94868  total = 25.389778 per ms 
01:30:59.466 16  switches: flows:  100436 98736 95196 97727 98620 99299 98621 97174 97505 97194 98018 96590 96809 96907 94355 96294  total = 25.947606 per ms 
01:31:59.567 16  switches: flows:  102058 101894 98510 102276 99602 99024 100706 101654 97313 95959 100090 97555 98249 98630 95102 98309  total = 26.404791 per ms 
01:32:59.667 16  switches: flows:  102901 101682 98671 100779 103308 98610 103237 99975 98710 95557 100831 97836 96554 99359 94776 98639  total = 26.479541 per ms 
01:33:59.767 16  switches: flows:  99450 98833 99825 99244 99527 97128 99721 96441 96572 95847 97868 94631 98564 98975 95376 96274  total = 26.027839 per ms 
01:34:59.868 16  switches: flows:  100790 99586 99285 100155 100157 96988 99579 96922 96617 95780 98342 96178 95452 99565 95554 96567  total = 26.081413 per ms 
01:35:59.969 16  switches: flows:  99967 99559 97533 98622 99970 96307 100807 96546 96951 94834 99096 95351 96904 98216 94671 97514  total = 26.004069 per ms 
01:37:00.069 16  switches: flows:  99728 98589 98406 99267 98459 96995 99593 96843 96030 94865 100516 95230 97524 100109 94331 97781  total = 26.027657 per ms 
01:38:00.169 16  switches: flows:  98426 97504 95994 96628 95811 95499 97893 95620 93930 92962 97328 94492 95289 97087 92210 95492  total = 25.493536 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 25389.78/26479.54/25984.03/8667.95 responses/s</msg>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-26T01:38:00.206913" elapsed="0.001094"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="PASS" start="2026-09-26T01:38:00.208420" elapsed="0.000065"/>
</return>
<status status="PASS" start="2026-09-26T01:38:00.208175" elapsed="0.000381"/>
</branch>
<status status="PASS" start="2026-09-26T01:38:00.208125" elapsed="0.000481"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="NOT RUN" start="2026-09-26T01:38:00.208825" elapsed="0.000027"/>
</return>
<status status="NOT RUN" start="2026-09-26T01:38:00.208748" elapsed="0.000159"/>
</branch>
<status status="NOT RUN" start="2026-09-26T01:38:00.208687" elapsed="0.000262"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-09-26T01:38:00.209031" elapsed="0.000028"/>
</return>
<kw name="Restore_Current_Ssh_Connection_From_Index" owner="SSHKeywords" type="TEARDOWN">
<kw name="Run Keyword And Return If" owner="BuiltIn">
<arg>${connection_index} is not None</arg>
<arg>SSHLibrary.Switch Connection</arg>
<arg>${connection_index}</arg>
<doc>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-09-26T01:38:00.210533" elapsed="0.000714"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<arg>127.0.0.1</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-09-26T01:38:00.211610" elapsed="0.000392"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-09-26T01:38:00.212276" elapsed="0.000197"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-09-26T01:38:00.209645" elapsed="0.002934"/>
</kw>
<msg time="2026-09-26T01:38:00.212836" level="INFO">${output} = cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.171.7: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-09-26T01:27:53.472351" elapsed="606.740541"/>
</kw>
<status status="PASS" start="2026-09-26T01:27:53.471946" elapsed="606.741064"/>
</branch>
<status status="PASS" start="2026-09-26T01:27:53.471405" elapsed="606.741655"/>
</if>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-26T01:38:00.214087" level="INFO">cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.171.7:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with 100 unique source MACs per switch
   learning destination mac addresses before the test
   starting test with 5000 ms delay after features_reply
   ignoring first 1 "warmup" and last 0 "cooldown" loops
   debugging info is off
Master Thread: Creating thread-0! 
Thread-0: All switches initialized. Running at node 10.30.171.7. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
01:28:59.262 16  switches: flows:  100684 99414 101250 100151 100122 98368 99270 100137 98617 97912 98558 98220 97516 97370 95910 98304  total = 26.363383 per ms 
01:29:59.364 16  switches: flows:  97075 96141 94084 96064 97290 96919 96815 96042 95224 94275 96208 93320 95208 94455 91941 94868  total = 25.389778 per ms 
01:30:59.466 16  switches: flows:  100436 98736 95196 97727 98620 99299 98621 97174 97505 97194 98018 96590 96809 96907 94355 96294  total = 25.947606 per ms 
01:31:59.567 16  switches: flows:  102058 101894 98510 102276 99602 99024 100706 101654 97313 95959 100090 97555 98249 98630 95102 98309  total = 26.404791 per ms 
01:32:59.667 16  switches: flows:  102901 101682 98671 100779 103308 98610 103237 99975 98710 95557 100831 97836 96554 99359 94776 98639  total = 26.479541 per ms 
01:33:59.767 16  switches: flows:  99450 98833 99825 99244 99527 97128 99721 96441 96572 95847 97868 94631 98564 98975 95376 96274  total = 26.027839 per ms 
01:34:59.868 16  switches: flows:  100790 99586 99285 100155 100157 96988 99579 96922 96617 95780 98342 96178 95452 99565 95554 96567  total = 26.081413 per ms 
01:35:59.969 16  switches: flows:  99967 99559 97533 98622 99970 96307 100807 96546 96951 94834 99096 95351 96904 98216 94671 97514  total = 26.004069 per ms 
01:37:00.069 16  switches: flows:  99728 98589 98406 99267 98459 96995 99593 96843 96030 94865 100516 95230 97524 100109 94331 97781  total = 26.027657 per ms 
01:38:00.169 16  switches: flows:  98426 97504 95994 96628 95811 95499 97893 95620 93930 92962 97328 94492 95289 97087 92210 95492  total = 25.493536 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 25389.78/26479.54/25984.03/8667.95 responses/s</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-26T01:38:00.213442" elapsed="0.000796"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${output}</arg>
<arg>RESULT</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-09-26T01:38:00.214573" elapsed="0.000756"/>
</kw>
<kw name="Get Lines Containing String" owner="String">
<msg time="2026-09-26T01:38:00.216155" level="INFO">1 out of 23 lines matched.</msg>
<msg time="2026-09-26T01:38:00.216335" level="INFO">${result_line} = RESULT: 16 switches 9 tests min/max/avg/stdev = 25389.78/26479.54/25984.03/8667.95 responses/s</msg>
<var>${result_line}</var>
<arg>${output}</arg>
<arg>RESULT</arg>
<doc>Returns lines of the given `string` that contain the `pattern`.</doc>
<status status="PASS" start="2026-09-26T01:38:00.215689" elapsed="0.000697"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-09-26T01:38:00.217268" level="INFO">@{results_list} = [ RESULT: | 16 | switches | 9 | tests | min/max/avg/stdev | = | 25389.78/26479.54/25984.03/8667.95 | responses/s ]</msg>
<var>@{results_list}</var>
<arg>${result_line}</arg>
<doc>Splits the `string` using `separator` as a delimiter string.</doc>
<status status="PASS" start="2026-09-26T01:38:00.216759" elapsed="0.000565"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-26T01:38:00.218644" level="INFO">min/max/avg/stdev</msg>
<arg>${results_list[5]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-26T01:38:00.217892" elapsed="0.000898"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-26T01:38:00.219901" level="INFO">25389.78/26479.54/25984.03/8667.95</msg>
<arg>${results_list[7]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-26T01:38:00.219206" elapsed="0.000830"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-09-26T01:38:00.221037" level="INFO">@{result_name_list} = [ min | max | avg | stdev ]</msg>
<var>@{result_name_list}</var>
<arg>${results_list[5]}</arg>
<arg>/</arg>
<doc>Splits the `string` using `separator` as a delimiter string.</doc>
<status status="PASS" start="2026-09-26T01:38:00.220368" elapsed="0.000724"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-09-26T01:38:00.222165" level="INFO">@{result_value_list} = [ 25389.78 | 26479.54 | 25984.03 | 8667.95 ]</msg>
<var>@{result_value_list}</var>
<arg>${results_list[7]}</arg>
<arg>/</arg>
<doc>Splits the `string` using `separator` as a delimiter string.</doc>
<status status="PASS" start="2026-09-26T01:38:00.221496" elapsed="0.000724"/>
</kw>
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-09-26T01:38:00.223198" level="INFO">Length is 4.</msg>
<msg time="2026-09-26T01:38:00.223372" level="INFO">${num_stats} = 4</msg>
<var>${num_stats}</var>
<arg>${result_name_list}</arg>
<doc>Returns and logs the length of the given item as an integer.</doc>
<status status="PASS" start="2026-09-26T01:38:00.222548" elapsed="0.000872"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-26T01:38:00.225191" level="INFO">min :: 25389.78</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-26T01:38:00.224263" elapsed="0.001038"/>
</kw>
<var name="${i}">0</var>
<status status="PASS" start="2026-09-26T01:38:00.223882" elapsed="0.001485"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-26T01:38:00.226825" level="INFO">max :: 26479.54</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-26T01:38:00.225919" elapsed="0.001016"/>
</kw>
<var name="${i}">1</var>
<status status="PASS" start="2026-09-26T01:38:00.225533" elapsed="0.001487"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-26T01:38:00.228454" level="INFO">avg :: 25984.03</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-26T01:38:00.227532" elapsed="0.001032"/>
</kw>
<var name="${i}">2</var>
<status status="PASS" start="2026-09-26T01:38:00.227178" elapsed="0.001452"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-26T01:38:00.230108" level="INFO">stdev :: 8667.95</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-26T01:38:00.229195" elapsed="0.001021"/>
</kw>
<var name="${i}">3</var>
<status status="PASS" start="2026-09-26T01:38:00.228820" elapsed="0.001460"/>
</iter>
<var>${i}</var>
<value>0</value>
<value>${num_stats}</value>
<status status="PASS" start="2026-09-26T01:38:00.223537" elapsed="0.006801"/>
</for>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-09-26T01:38:00.231527" level="INFO">${min} = 25389.78</msg>
<var>${min}</var>
<arg>${result_value_list[${0}]}</arg>
<doc>Returns the given values which can then be assigned to a variable.</doc>
<status status="PASS" start="2026-09-26T01:38:00.230662" elapsed="0.000918"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-09-26T01:38:00.232866" level="INFO">${max} = 26479.54</msg>
<var>${max}</var>
<arg>${result_value_list[${1}]}</arg>
<doc>Returns the given values which can then be assigned to a variable.</doc>
<status status="PASS" start="2026-09-26T01:38:00.231932" elapsed="0.000988"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-09-26T01:38:00.234135" level="INFO">${average} = 25984.03</msg>
<var>${average}</var>
<arg>${result_value_list[${2}]}</arg>
<doc>Returns the given values which can then be assigned to a variable.</doc>
<status status="PASS" start="2026-09-26T01:38:00.233256" elapsed="0.000932"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-09-26T01:38:00.235384" level="INFO">${stdev} = 8667.95</msg>
<var>${stdev}</var>
<arg>${result_value_list[${3}]}</arg>
<doc>Returns the given values which can then be assigned to a variable.</doc>
<status status="PASS" start="2026-09-26T01:38:00.234507" elapsed="0.000928"/>
</kw>
<kw name="Get Time" owner="BuiltIn">
<msg time="2026-09-26T01:38:00.236578" level="INFO">${date} = 2026-09-26 01:38:00</msg>
<var>${date}</var>
<arg>d,m,s</arg>
<doc>Returns the given time in the requested format.</doc>
<status status="PASS" start="2026-09-26T01:38:00.235860" elapsed="0.000770"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-26T01:38:00.237798" level="INFO">CBench Result: 2026-09-26 01:38:00,-m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633,25389.78,26479.54,25984.03,8667.95</msg>
<arg>CBench Result: ${date},${cbench_args},${min},${max},${average},${stdev}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-26T01:38:00.237094" elapsed="0.000815"/>
</kw>
<kw name="Log Results And Determine Status">
<kw name="Append To File" owner="OperatingSystem">
<msg time="2026-09-26T01:38:00.239876" level="INFO" html="true">Appended to file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-cbench-only-titanium/bug.csv"&gt;/w/workspace/openflowplugin-csit-1node-cbench-only-titanium/bug.csv&lt;/a&gt;'.</msg>
<arg>${output_file}</arg>
<arg>${min},${max},${average}\n</arg>
<doc>Appends the given content to the specified file.</doc>
<status status="PASS" start="2026-09-26T01:38:00.239093" elapsed="0.000940"/>
</kw>
<kw name="Should Be True" owner="BuiltIn">
<arg>${average} &gt; ${threshold}</arg>
<arg>${average} flow_mods per/sec did not exceed threshold of ${threshold}</arg>
<doc>Fails if the given condition is not true.</doc>
<status status="PASS" start="2026-09-26T01:38:00.240522" elapsed="0.001295"/>
</kw>
<arg>${min}</arg>
<arg>${max}</arg>
<arg>${average}</arg>
<arg>${average_threshold}</arg>
<arg>${output_filename}</arg>
<status status="PASS" start="2026-09-26T01:38:00.238204" elapsed="0.003756"/>
</kw>
<arg>-m ${duration_in_ms} -M ${num_of_unique_macs} -S ${switch_count} -l ${loops} -D ${start_delay} -p ${of_port}</arg>
<arg>${latency_threshold}</arg>
<arg>bug.csv</arg>
<status status="PASS" start="2026-09-26T01:27:53.470142" elapsed="606.771956"/>
</kw>
<kw name="Sleep" owner="BuiltIn">
<msg time="2026-09-26T01:38:00.243127" level="INFO">Slept 0 seconds.</msg>
<arg>${test_delay}</arg>
<doc>Pauses execution for the given time.</doc>
<status status="PASS" start="2026-09-26T01:38:00.242449" elapsed="0.000791"/>
</kw>
<kw name="Report Failure Due To Bug" owner="Utils" type="TEARDOWN">
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-09-26T01:38:00.245232" level="INFO">${test_skipped} = False</msg>
<var>${test_skipped}</var>
<arg>len(re.findall('SKIPPED', """${TEST_MESSAGE}""")) &gt; 0</arg>
<arg>modules=re</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-09-26T01:38:00.244586" elapsed="0.000680"/>
</kw>
<if>
<branch type="IF" condition="('${TEST_STATUS}' != 'FAIL') or ${test_skipped}">
<return>
<status status="PASS" start="2026-09-26T01:38:00.245507" elapsed="0.000036"/>
</return>
<status status="PASS" start="2026-09-26T01:38:00.245358" elapsed="0.000224"/>
</branch>
<status status="PASS" start="2026-09-26T01:38:00.245333" 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-09-26T01:38:00.245829" elapsed="0.000028"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<var>${match}</var>
<arg>Should Contain</arg>
<arg>${number}</arg>
<arg>-</arg>
<doc>Runs the specified keyword and returns the status as a Boolean value.</doc>
<status status="NOT RUN" start="2026-09-26T01:38:00.246050" elapsed="0.000026"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<var>${bug_url}</var>
<arg>${match}</arg>
<arg>https://jira.opendaylight.org/browse/${number}</arg>
<arg>https://bugs.opendaylight.org/show_bug.cgi?id=${number}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="NOT RUN" start="2026-09-26T01:38:00.246274" elapsed="0.000025"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<var>${msg}</var>
<arg>This test fails due to ${bug_url}</arg>
<doc>Returns the given values which can then be assigned to a variable.</doc>
<status status="NOT RUN" start="2026-09-26T01:38:00.246476" elapsed="0.000025"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${newline}</var>
<arg>chr(10)</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-09-26T01:38:00.246963" elapsed="0.000043"/>
</kw>
<kw name="Set Test Message" owner="BuiltIn">
<arg>${msg}${newline}${newline}${TEST_MESSAGE}</arg>
<doc>Sets message of the current test case.</doc>
<status status="NOT RUN" start="2026-09-26T01:38:00.247185" elapsed="0.000024"/>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${msg}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-09-26T01:38:00.247430" elapsed="0.000025"/>
</kw>
<if>
<branch type="IF" condition="&quot;${include_bug_in_tags}&quot;==&quot;True&quot;">
<kw name="Set Tags" owner="BuiltIn">
<arg>${bug_url}</arg>
<doc>Adds The given `tags` for the current test or all tests in a suite.</doc>
<status status="NOT RUN" start="2026-09-26T01:38:00.247713" elapsed="0.000048"/>
</kw>
<status status="NOT RUN" start="2026-09-26T01:38:00.247533" elapsed="0.000268"/>
</branch>
<status status="NOT RUN" start="2026-09-26T01:38:00.247511" elapsed="0.000329"/>
</if>
<arg>6176</arg>
<doc>Report that a test failed due to a known Bugzilla bug whose
number is provided as an argument.
Not FAILED (incl. SKIPPED) test are not reported.
This keyword must be used in the [Teardown] setting of the affected test
or as the first line of the test if FastFail module is not being
used. It reports the URL of the bug on console and also puts it
into the Robot log file.</doc>
<status status="PASS" start="2026-09-26T01:38:00.244100" elapsed="0.003803"/>
</kw>
<doc>cbench executed in latency mode to see if controller is healthy</doc>
<tag>cbench</tag>
<tag>latency</tag>
<timeout value="15 minutes"/>
<status status="PASS" start="2026-09-26T01:27:53.468364" elapsed="606.779595"/>
</test>
<doc>Cbench Latency and Throughput tests can be run from an external
cbench.
If cbench is run with a medium number of switches or higher (e.g. 32+)
the normal openflow operations seem to break.
BUG: https://bugs.opendaylight.org/show_bug.cgi?id=2897</doc>
<status status="PASS" start="2026-09-26T01:07:37.788259" elapsed="1822.460209"/>
</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>
