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

[?1h=[90m~[0m                                                                                [?2004hopendaylight-user</msg>
<arg>${KARAF_USER}</arg>
<arg>${KARAF_PASSWORD}</arg>
<arg>loglevel=${loglevel}</arg>
<doc>Logs into the SSH server with the given ``username`` and ``password``.</doc>
<status status="PASS" start="2026-10-11T01:01:45.854185" elapsed="1.021999"/>
</kw>
<kw name="Write" owner="SSHLibrary">
<msg time="2026-10-11T01:01:46.924722" level="INFO">@root&gt;log:set ERROR</msg>
<arg>${cmd}</arg>
<doc>Writes the given ``text`` on the remote machine and appends a newline.</doc>
<status status="PASS" start="2026-10-11T01:01:46.876377" elapsed="0.048407"/>
</kw>
<kw name="Read Until Regexp" owner="SSHLibrary">
<msg time="2026-10-11T01:01:46.926523" level="INFO">[?1l&gt;[?2004l[?1h=[90m~[0m                                                                                [?2004hopendaylight-user@root&gt;</msg>
<msg time="2026-10-11T01:01:46.926651" level="INFO">${output} = [?1l&gt;[?2004l[?1h=[90m~[0m                                                                                [?2004hopendaylight-user@root&gt;</msg>
<var>${output}</var>
<arg>${KARAF_PROMPT}</arg>
<doc>Consumes and returns the server output until a match to ``regexp`` is found.</doc>
<status status="PASS" start="2026-10-11T01:01:46.924951" elapsed="0.001728"/>
</kw>
<kw name="Write Bare" owner="SSHLibrary">
<arg>logout\n</arg>
<doc>Writes the given ``text`` on the remote machine without appending a newline.</doc>
<status status="PASS" start="2026-10-11T01:01:46.926849" elapsed="0.000194"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-10-11T01:01:46.927198" elapsed="0.000185"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-11T01:01:46.927883" level="INFO">[?1l&gt;[?2004l[?1h=[90m~[0m                                                                                [?2004hopendaylight-user@root&gt;</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-11T01:01:46.927592" elapsed="0.000342"/>
</kw>
<return>
<value>${output}</value>
<status status="PASS" start="2026-10-11T01:01:46.927980" elapsed="0.000049"/>
</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.127
Note that this keyword will open&amp;close new SSH connection, without switching back to previously current session.</doc>
<status status="PASS" start="2026-10-11T01:01:45.852883" elapsed="1.075240"/>
</kw>
<arg>3x</arg>
<arg>1s</arg>
<arg>KarafKeywords.Issue Command On Karaf Console</arg>
<arg>log:set ${log_level}</arg>
<doc>Runs the specified keyword and retries if it fails.</doc>
<status status="PASS" start="2026-10-11T01:01:45.851263" elapsed="1.076918"/>
</kw>
<kw name="Append To File" owner="OperatingSystem">
<msg time="2026-10-11T01:01:46.928663" 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-10-11T01:01:46.928364" elapsed="0.000366"/>
</kw>
<kw name="Append To File" owner="OperatingSystem">
<msg time="2026-10-11T01:01:46.929092" 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-10-11T01:01:46.928879" elapsed="0.000264"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-11T01:01:46.929753" level="INFO">${duration_in_ms} = 60000</msg>
<var>${duration_in_ms}</var>
<arg>${duration_in_secs} * 1000</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-10-11T01:01:46.929312" elapsed="0.000469"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-10-11T01:01:46.930273" level="INFO">${duration_in_ms} = 60000</msg>
<arg>${duration_in_ms}</arg>
<doc>Makes the variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-10-11T01:01:46.929972" elapsed="0.000340"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-11T01:01:46.930839" level="INFO">${test_timeout} = 900.0</msg>
<var>${test_timeout}</var>
<arg>(${loops} * ${duration_in_secs}) * 1.5</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-10-11T01:01:46.930479" elapsed="0.000385"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-10-11T01:01:46.931323" level="INFO">${test_timeout} = 900.0</msg>
<arg>${test_timeout}</arg>
<doc>Makes the variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-10-11T01:01:46.931045" elapsed="0.000317"/>
</kw>
<if>
<branch type="IF" condition="&quot;${cbench_system}&quot; == &quot;localhost&quot;">
<kw name="File Should Exist" owner="OperatingSystem">
<arg>${cbench_executable}</arg>
<doc>Fails unless the given `path` points to an existing file.</doc>
<status status="NOT RUN" start="2026-10-11T01:01:46.931641" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-10-11T01:01:46.931436" elapsed="0.000270"/>
</branch>
<branch type="ELSE">
<kw name="Verify File Exists On Remote System" owner="Utils">
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-10-11T01:01:46.933785" level="INFO">${conn_id} = 2</msg>
<var>${conn_id}</var>
<arg>${system}</arg>
<arg>prompt=${prompt}</arg>
<arg>timeout=${prompt_timeout}</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-10-11T01:01:46.933426" elapsed="0.000384"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-10-11T01:01:46.934912" level="INFO">Length is 0.</msg>
<msg time="2026-10-11T01:01:46.934989" level="INFO">${pwd_length} = 0</msg>
<var>${pwd_length}</var>
<arg>${password}</arg>
<doc>Returns and logs the length of the given item as an integer.</doc>
<status status="PASS" start="2026-10-11T01:01:46.934298" elapsed="0.000713"/>
</kw>
<kw name="Run Keyword And Return If" owner="BuiltIn">
<arg>${pwd_length} &gt; 0</arg>
<arg>SSHLibrary.Login</arg>
<arg>${user}</arg>
<arg>${password}</arg>
<arg>delay=${delay}</arg>
<doc>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-11T01:01:46.935150" elapsed="0.000312"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-10-11T01:01:46.936246" level="INFO">Logging into '10.30.171.78:22' as 'jenkins'.</msg>
<msg time="2026-10-11T01:01:47.458445" 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 Sun Oct 11 01:01:05 UTC 2026

  System load:  0.1                Processes:             112
  Usage of /:   19.8% of 38.58GB   Users logged in:       0
  Memory usage: 4%                 IPv4 address for ens3: 10.30.171.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-863-1-mininet-ovs-217-0 ~]&gt;</msg>
<arg>${user}</arg>
<arg>${USER_HOME}/.ssh/${SSH_KEY}</arg>
<arg>${KEYFILE_PASS}</arg>
<arg>delay=${delay}</arg>
<doc>Logs into the SSH server using key-based authentication.</doc>
<status status="PASS" start="2026-10-11T01:01:46.936004" elapsed="0.522524"/>
</kw>
<msg time="2026-10-11T01:01:47.458606" level="INFO">Returning from the enclosing user keyword.</msg>
<arg>SSHLibrary.Login With Public Key</arg>
<arg>${user}</arg>
<arg>${USER_HOME}/.ssh/${SSH_KEY}</arg>
<arg>${KEYFILE_PASS}</arg>
<arg>delay=${delay}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-11T01:01:46.935631" elapsed="0.523059"/>
</kw>
<arg>${user}</arg>
<arg>${password}</arg>
<doc>On active SSH session: if given non-empty password, do Login, else do Login With Public Key.</doc>
<status status="PASS" start="2026-10-11T01:01:46.933990" elapsed="0.524784"/>
</kw>
<kw name="File Should Exist" owner="SSHLibrary">
<msg time="2026-10-11T01:01:47.470586" level="INFO">[chan 1] Opened sftp connection (server version 3)</msg>
<arg>${file}</arg>
<doc>Fails if the given ``path`` does NOT point to an existing file.</doc>
<status status="PASS" start="2026-10-11T01:01:47.458918" elapsed="0.014352"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-10-11T01:01:47.473443" elapsed="0.000339"/>
</kw>
<arg>${cbench_system}</arg>
<arg>${cbench_executable}</arg>
<doc>Will create connection with public key and will PASS if the given ${file} exists,
otherwise will FAIL</doc>
<status status="PASS" start="2026-10-11T01:01:46.932985" elapsed="0.540875"/>
</kw>
<status status="PASS" start="2026-10-11T01:01:46.931780" elapsed="0.542126"/>
</branch>
<status status="PASS" start="2026-10-11T01:01:46.931413" elapsed="0.542530"/>
</if>
<kw name="Should Be True" owner="BuiltIn">
<arg>${loops} &gt;= 2</arg>
<arg>If number of loops is less than 2, cbench will not run</arg>
<doc>Fails if the given condition is not true.</doc>
<status status="PASS" start="2026-10-11T01:01:47.474166" elapsed="0.000558"/>
</kw>
<kw name="Verify_Feature_Is_Installed" owner="KarafKeywords">
<if>
<branch type="IF" condition="'${IS_KARAF_APPL}' == 'False'">
<return>
<value>Not A Karaf App</value>
<status status="NOT RUN" start="2026-10-11T01:01:47.478809" elapsed="0.000023"/>
</return>
<status status="NOT RUN" start="2026-10-11T01:01:47.478661" elapsed="0.000214"/>
</branch>
<status status="PASS" start="2026-10-11T01:01:47.478632" elapsed="0.000274"/>
</if>
<kw name="Issue_Command_On_Karaf_Console" owner="KarafKeywords">
<if>
<branch type="IF" condition="'${IS_KARAF_APPL}' == 'False'">
<return>
<value>Not A Karaf App</value>
<status status="NOT RUN" start="2026-10-11T01:01:47.481027" elapsed="0.000019"/>
</return>
<status status="NOT RUN" start="2026-10-11T01:01:47.480900" elapsed="0.000188"/>
</branch>
<status status="PASS" start="2026-10-11T01:01:47.480874" elapsed="0.000243"/>
</if>
<kw name="Open Connection" owner="SSHLibrary">
<arg>${controller}</arg>
<arg>port=${karaf_port}</arg>
<arg>prompt=${KARAF_PROMPT_LOGIN}</arg>
<arg>timeout=${timeout}</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-10-11T01:01:47.481335" elapsed="0.000518"/>
</kw>
<kw name="Login" owner="SSHLibrary">
<msg time="2026-10-11T01:01:47.482444" level="INFO">Logging into '10.30.171.127:8101' as 'karaf'.</msg>
<msg time="2026-10-11T01:01:47.706064" level="INFO">Read output: [33m                                                                                           
[33m    ________                       ________                .__  .__       .__     __       
[33m    \_____  \ ______   ____   ____ \______ \ _____  ___.__.|  | |__| ____ |  |___/  |_     
[33m     /   |   \\____ \_/ __ \ /    \ |    |  \\__  \&lt;   |  ||  | |  |/ ___\|  |  \   __\    
[33m    /    |    \  |_&gt; &gt;  ___/|   |  \|    `   \/ __ \\___  ||  |_|  / /_/  &gt;   Y  \  |      
[33m    \_______  /   __/ \___  &gt;___|  /_______  (____  / ____||____/__\___  /|___|  /__|      
[33m            \/|__|        \/     \/        \/     \/\/            /_____/      \/          
[33m                                                                                           

Hit '[1m&lt;tab&gt;[0m' for a list of available commands
and '[1m[cmd] --help[0m' for help on a specific command.
Hit '[1m&lt;ctrl-d&gt;[0m' or type '[1msystem:shutdown[0m' or '[1mlogout[0m' to shutdown OpenDaylight.

[?1h=[90m~[0m                                                                                [?2004hopendaylight-user</msg>
<arg>${KARAF_USER}</arg>
<arg>${KARAF_PASSWORD}</arg>
<arg>loglevel=${loglevel}</arg>
<doc>Logs into the SSH server with the given ``username`` and ``password``.</doc>
<status status="PASS" start="2026-10-11T01:01:47.482140" elapsed="0.224015"/>
</kw>
<kw name="Write" owner="SSHLibrary">
<msg time="2026-10-11T01:01:47.792976" level="INFO">@root&gt;feature:list -i | 0[C 0g[Krep odl-openflowplugin-drop-test</msg>
<arg>${cmd}</arg>
<doc>Writes the given ``text`` on the remote machine and appends a newline.</doc>
<status status="PASS" start="2026-10-11T01:01:47.706327" elapsed="0.086785"/>
</kw>
<kw name="Read Until Regexp" owner="SSHLibrary">
<msg time="2026-10-11T01:01:47.796950" 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-10-11T01:01:47.797123" 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-10-11T01:01:47.793363" elapsed="0.003790"/>
</kw>
<kw name="Write Bare" owner="SSHLibrary">
<arg>logout\n</arg>
<doc>Writes the given ``text`` on the remote machine without appending a newline.</doc>
<status status="PASS" start="2026-10-11T01:01:47.797293" elapsed="0.000204"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-10-11T01:01:47.797652" elapsed="0.000177"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-11T01:01:47.798327" 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-10-11T01:01:47.798005" elapsed="0.000374"/>
</kw>
<return>
<value>${output}</value>
<status status="PASS" start="2026-10-11T01:01:47.798428" elapsed="0.000058"/>
</return>
<msg time="2026-10-11T01:01:47.798687" 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.127
Note that this keyword will open&amp;close new SSH connection, without switching back to previously current session.</doc>
<status status="PASS" start="2026-10-11T01:01:47.480434" elapsed="0.318285"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${output}</arg>
<arg>${feature_name}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-11T01:01:47.798880" elapsed="0.000525"/>
</kw>
<return>
<value>${output}</value>
<status status="PASS" start="2026-10-11T01:01:47.799452" elapsed="0.000029"/>
</return>
<arg>odl-openflowplugin-drop-test</arg>
<doc>Will Succeed if the given ${feature_name} is found in the output of "feature:list -i"</doc>
<status status="PASS" start="2026-10-11T01:01:47.478289" elapsed="0.321313"/>
</kw>
<kw name="Issue_Command_On_Karaf_Console" owner="KarafKeywords">
<if>
<branch type="IF" condition="'${IS_KARAF_APPL}' == 'False'">
<return>
<value>Not A Karaf App</value>
<status status="NOT RUN" start="2026-10-11T01:01:47.801362" elapsed="0.000014"/>
</return>
<status status="NOT RUN" start="2026-10-11T01:01:47.801239" elapsed="0.000166"/>
</branch>
<status status="PASS" start="2026-10-11T01:01:47.801214" elapsed="0.000217"/>
</if>
<kw name="Open Connection" owner="SSHLibrary">
<arg>${controller}</arg>
<arg>port=${karaf_port}</arg>
<arg>prompt=${KARAF_PROMPT_LOGIN}</arg>
<arg>timeout=${timeout}</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-10-11T01:01:47.801607" elapsed="0.000407"/>
</kw>
<kw name="Login" owner="SSHLibrary">
<msg time="2026-10-11T01:01:47.802391" level="INFO">Logging into '10.30.171.127:8101' as 'karaf'.</msg>
<msg time="2026-10-11T01:01:47.985016" level="INFO">Read output: [33m                                                                                           
[33m    ________                       ________                .__  .__       .__     __       
[33m    \_____  \ ______   ____   ____ \______ \ _____  ___.__.|  | |__| ____ |  |___/  |_     
[33m     /   |   \\____ \_/ __ \ /    \ |    |  \\__  \&lt;   |  ||  | |  |/ ___\|  |  \   __\    
[33m    /    |    \  |_&gt; &gt;  ___/|   |  \|    `   \/ __ \\___  ||  |_|  / /_/  &gt;   Y  \  |      
[33m    \_______  /   __/ \___  &gt;___|  /_______  (____  / ____||____/__\___  /|___|  /__|      
[33m            \/|__|        \/     \/        \/     \/\/            /_____/      \/          
[33m                                                                                           

Hit '[1m&lt;tab&gt;[0m' for a list of available commands
and '[1m[cmd] --help[0m' for help on a specific command.
Hit '[1m&lt;ctrl-d&gt;[0m' or type '[1msystem:shutdown[0m' or '[1mlogout[0m' to shutdown OpenDaylight.

[?1h=[90m~[0m                                                                                [?2004hopendaylight-user</msg>
<arg>${KARAF_USER}</arg>
<arg>${KARAF_PASSWORD}</arg>
<arg>loglevel=${loglevel}</arg>
<doc>Logs into the SSH server with the given ``username`` and ``password``.</doc>
<status status="PASS" start="2026-10-11T01:01:47.802186" elapsed="0.182915"/>
</kw>
<kw name="Write" owner="SSHLibrary">
<msg time="2026-10-11T01:01:48.030419" level="INFO">@root&gt;dropallpacketsrpc on</msg>
<arg>${cmd}</arg>
<doc>Writes the given ``text`` on the remote machine and appends a newline.</doc>
<status status="PASS" start="2026-10-11T01:01:47.985257" elapsed="0.045222"/>
</kw>
<kw name="Read Until Regexp" owner="SSHLibrary">
<msg time="2026-10-11T01:01:48.032407" level="INFO">[?1l&gt;[?2004lDropAllFlows transitions to on
[?1h=[90m~[0m                                                                                [?2004hopendaylight-user@root&gt;</msg>
<msg time="2026-10-11T01:01:48.032494" level="INFO">${output} = [?1l&gt;[?2004lDropAllFlows transitions to on
[?1h=[90m~[0m                                                                                [?2004hopendaylight-user@root&gt;</msg>
<var>${output}</var>
<arg>${KARAF_PROMPT}</arg>
<doc>Consumes and returns the server output until a match to ``regexp`` is found.</doc>
<status status="PASS" start="2026-10-11T01:01:48.030650" elapsed="0.001871"/>
</kw>
<kw name="Write Bare" owner="SSHLibrary">
<arg>logout\n</arg>
<doc>Writes the given ``text`` on the remote machine without appending a newline.</doc>
<status status="PASS" start="2026-10-11T01:01:48.032679" elapsed="0.000171"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-10-11T01:01:48.032989" elapsed="0.000151"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-11T01:01:48.033550" level="INFO">[?1l&gt;[?2004lDropAllFlows transitions to on
[?1h=[90m~[0m                                                                                [?2004hopendaylight-user@root&gt;</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-11T01:01:48.033314" elapsed="0.000307"/>
</kw>
<return>
<value>${output}</value>
<status status="PASS" start="2026-10-11T01:01:48.033665" elapsed="0.000051"/>
</return>
<arg>dropallpacketsrpc on</arg>
<doc>Will execute the given ${cmd} by ssh'ing to the karaf console running on 10.30.171.127
Note that this keyword will open&amp;close new SSH connection, without switching back to previously current session.</doc>
<status status="PASS" start="2026-10-11T01:01:47.800940" elapsed="0.232857"/>
</kw>
<status status="PASS" start="2026-10-11T01:01:45.849319" elapsed="2.184531"/>
</kw>
<test id="s1-t1" name="Cbench Latency Test" line="37">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-11T01:01:48.035806" level="INFO">Cbench tests using 10 iterations of 60 second tests. Switch Count: 16. Unique MACS to cycle: 100</msg>
<arg>Cbench tests using ${loops} iterations of ${duration_in_secs} second tests. Switch Count: ${switch_count}. Unique MACS to cycle: ${num_of_unique_macs}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-11T01:01:48.035074" elapsed="0.000792"/>
</kw>
<kw name="Run Cbench And Log Results">
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-10-11T01:01:48.037220" level="INFO">${output_filename} = latency.csv</msg>
<arg>${output_filename}</arg>
<doc>Makes the variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-10-11T01:01:48.036896" elapsed="0.000364"/>
</kw>
<if>
<branch type="IF" condition="&quot;${cbench_system}&quot; == &quot;localhost&quot;">
<kw name="Run" owner="OperatingSystem">
<var>${output}</var>
<arg>${cbench_executable} -c ${ODL_SYSTEM_IP} ${cbench_args}</arg>
<doc>*This keyword is considered deprecated. Use the [Process] library instead.*</doc>
<status status="NOT RUN" start="2026-10-11T01:01:48.037546" elapsed="0.000042"/>
</kw>
<status status="NOT RUN" start="2026-10-11T01:01:48.037331" elapsed="0.000292"/>
</branch>
<branch type="ELSE">
<kw name="Run Command On Remote System" owner="Utils">
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot; and &quot;${return_stderr}&quot;!=&quot;True&quot;">
<kw name="Fail" owner="BuiltIn">
<arg>At least one of {return_stdout} or {return_stderr} args should be set to True</arg>
<doc>Fails the test or task with the given message and optionally alters its tags.</doc>
<status status="NOT RUN" start="2026-10-11T01:01:48.038716" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-10-11T01:01:48.038461" elapsed="0.000308"/>
</branch>
<status status="PASS" start="2026-10-11T01:01:48.038443" elapsed="0.000350"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-10-11T01:01:48.039157" level="INFO">index=None
host=None
alias=None
port=22
timeout=3 seconds
newline=

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

prompt=None
term_type=vt100
width=80
height=24
path_separator=/
encoding=utf8
escape_ansi=False
encoding_errors=strict</msg>
<var>${current_ssh_connection}</var>
<doc>Returns information about the connection.</doc>
<status status="PASS" start="2026-10-11T01:01:48.038975" elapsed="0.000316"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-11T01:01:48.039862" level="INFO">Attempting to execute command "/usr/local/bin/cbench -c 10.30.171.127 -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633" on remote system "10.30.171.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-10-11T01:01:48.039491" elapsed="0.000426"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-10-11T01:01:48.040482" level="INFO">${conn_id} = 5</msg>
<var>${conn_id}</var>
<arg>${system}</arg>
<arg>prompt=${prompt}</arg>
<arg>timeout=${prompt_timeout}</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-10-11T01:01:48.040079" elapsed="0.000428"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-10-11T01:01:48.041349" level="INFO">Length is 0.</msg>
<msg time="2026-10-11T01:01:48.041431" level="INFO">${pwd_length} = 0</msg>
<var>${pwd_length}</var>
<arg>${password}</arg>
<doc>Returns and logs the length of the given item as an integer.</doc>
<status status="PASS" start="2026-10-11T01:01:48.041063" elapsed="0.000390"/>
</kw>
<kw name="Run Keyword And Return If" owner="BuiltIn">
<arg>${pwd_length} &gt; 0</arg>
<arg>SSHLibrary.Login</arg>
<arg>${user}</arg>
<arg>${password}</arg>
<arg>delay=${delay}</arg>
<doc>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-11T01:01:48.041603" elapsed="0.000337"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-10-11T01:01:48.042788" level="INFO">Logging into '10.30.171.78:22' as 'jenkins'.</msg>
<msg time="2026-10-11T01:01:48.453579" 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 Sun Oct 11 01:01:05 UTC 2026

  System load:  0.1                Processes:             112
  Usage of /:   19.8% of 38.58GB   Users logged in:       0
  Memory usage: 4%                 IPv4 address for ens3: 10.30.171.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: Sun Oct 11 01:01:47 2026 from 10.30.171.175
[?2004h[jenkins@releng-48317-863-1-mininet-ovs-217-0 ~]&gt;</msg>
<arg>${user}</arg>
<arg>${USER_HOME}/.ssh/${SSH_KEY}</arg>
<arg>${KEYFILE_PASS}</arg>
<arg>delay=${delay}</arg>
<doc>Logs into the SSH server using key-based authentication.</doc>
<status status="PASS" start="2026-10-11T01:01:48.042458" elapsed="0.411259"/>
</kw>
<msg time="2026-10-11T01:01:48.453787" level="INFO">Returning from the enclosing user keyword.</msg>
<arg>SSHLibrary.Login With Public Key</arg>
<arg>${user}</arg>
<arg>${USER_HOME}/.ssh/${SSH_KEY}</arg>
<arg>${KEYFILE_PASS}</arg>
<arg>delay=${delay}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-11T01:01:48.042092" elapsed="0.411764"/>
</kw>
<arg>${user}</arg>
<arg>${password}</arg>
<doc>On active SSH session: if given non-empty password, do Login, else do Login With Public Key.</doc>
<status status="PASS" start="2026-10-11T01:01:48.040718" elapsed="0.413229"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-11T01:01:48.454365" level="INFO">Executing command '/usr/local/bin/cbench -c 10.30.171.127 -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633'.</msg>
<msg time="2026-10-11T01:11:54.614862" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-10-11T01:11:54.615469" level="INFO">${stdout} = </msg>
<msg time="2026-10-11T01:11:54.615598" level="INFO">${stderr} = cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.171.127:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with 10...</msg>
<var>${stdout}</var>
<var>${stderr}</var>
<arg>${cmd}</arg>
<arg>return_stderr=True</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-10-11T01:01:48.454150" elapsed="606.161507"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-10-11T01:11:54.616087" elapsed="0.000707"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-11T01:11:54.617981" level="INFO">cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.171.127: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.127. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
01:02:53.678 16  switches: flows:  89547 88089 89057 89306 90963 89676 89049 87376 85897 86640 84794 85368 85859 85693 85436 85888  total = 23.310633 per ms 
01:03:53.778 16  switches: flows:  97984 94250 98256 99581 99682 97267 98394 96289 94469 94023 91977 92858 92587 95089 93676 95653  total = 25.491318 per ms 
01:04:53.879 16  switches: flows:  92476 90893 92847 95136 94359 92949 90858 90797 89747 88322 88615 88679 88319 88959 89730 91670  total = 24.198847 per ms 
01:05:53.980 16  switches: flows:  95930 93324 92359 96538 93764 94912 92864 90664 90628 90444 90091 87834 89374 89792 90517 92996  total = 24.492971 per ms 
01:06:54.081 16  switches: flows:  94910 95200 96481 97643 97240 96197 95442 93976 92415 93072 93231 90270 91033 90387 93263 92894  total = 25.019143 per ms 
01:07:54.182 16  switches: flows:  96096 95415 96111 99241 96948 96680 96489 94106 92263 92616 93420 90351 91371 91087 93308 93913  total = 25.115000 per ms 
01:08:54.283 16  switches: flows:  100151 98774 100716 103840 101351 101715 100106 96792 94990 96505 96762 94652 94948 95370 97521 98585  total = 26.169246 per ms 
01:09:54.384 16  switches: flows:  103632 97825 101679 102765 100171 102427 100423 96399 95719 97795 94635 93665 94213 96008 98959 96762  total = 26.174223 per ms 
01:10:54.486 16  switches: flows:  98907 95729 95854 98518 95536 97531 94975 93343 93603 92562 93503 91349 93268 90758 92693 93973  total = 25.159708 per ms 
01:11:54.586 16  switches: flows:  97482 96383 95361 96813 95424 97289 97536 94794 92144 93096 93719 92038 93953 91260 91021 96535  total = 25.205393 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 24198.85/26174.22/25225.09/8431.53 responses/s</msg>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-11T01:11:54.617263" elapsed="0.001018"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="PASS" start="2026-10-11T01:11:54.618761" elapsed="0.000089"/>
</return>
<status status="PASS" start="2026-10-11T01:11:54.618481" elapsed="0.000447"/>
</branch>
<status status="PASS" start="2026-10-11T01:11:54.618418" elapsed="0.000562"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="NOT RUN" start="2026-10-11T01:11:54.619191" elapsed="0.000030"/>
</return>
<status status="NOT RUN" start="2026-10-11T01:11:54.619100" elapsed="0.000178"/>
</branch>
<status status="NOT RUN" start="2026-10-11T01:11:54.619068" elapsed="0.000254"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-10-11T01:11:54.619388" elapsed="0.000029"/>
</return>
<kw name="Restore_Current_Ssh_Connection_From_Index" owner="SSHKeywords" type="TEARDOWN">
<kw name="Run Keyword And Return If" owner="BuiltIn">
<arg>${connection_index} is not None</arg>
<arg>SSHLibrary.Switch Connection</arg>
<arg>${connection_index}</arg>
<doc>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-11T01:11:54.621010" elapsed="0.000707"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<arg>127.0.0.1</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-10-11T01:11:54.622092" elapsed="0.000352"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-10-11T01:11:54.622753" elapsed="0.000203"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-10-11T01:11:54.620071" elapsed="0.002992"/>
</kw>
<msg time="2026-10-11T01:11:54.623315" level="INFO">${output} = cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.171.127:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with 10...</msg>
<var>${output}</var>
<arg>${cbench_system}</arg>
<arg>${cbench_executable} -c ${ODL_SYSTEM_IP} ${cbench_args}</arg>
<arg>prompt_timeout=${test_timeout}</arg>
<arg>return_stdout=False</arg>
<arg>return_stderr=True</arg>
<doc>Reduces the common work of running a command on a remote system to a single higher level
robot keyword, taking care to log in with a public key and. The command given is written and the return value
depends on the passed argument values of return_stdout (default: True) and return_stderr (default: False).
At least one should be True, or the keyword will exit and FAIL. If both are True, the resulting return value
will be a two element list containing both. Otherwise the resulting return value is a string.
No test conditions are checked.</doc>
<status status="PASS" start="2026-10-11T01:01:48.037964" elapsed="606.585406"/>
</kw>
<status status="PASS" start="2026-10-11T01:01:48.037650" elapsed="606.585817"/>
</branch>
<status status="PASS" start="2026-10-11T01:01:48.037310" elapsed="606.586205"/>
</if>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-11T01:11:54.624556" level="INFO">cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.171.127: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.127. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
01:02:53.678 16  switches: flows:  89547 88089 89057 89306 90963 89676 89049 87376 85897 86640 84794 85368 85859 85693 85436 85888  total = 23.310633 per ms 
01:03:53.778 16  switches: flows:  97984 94250 98256 99581 99682 97267 98394 96289 94469 94023 91977 92858 92587 95089 93676 95653  total = 25.491318 per ms 
01:04:53.879 16  switches: flows:  92476 90893 92847 95136 94359 92949 90858 90797 89747 88322 88615 88679 88319 88959 89730 91670  total = 24.198847 per ms 
01:05:53.980 16  switches: flows:  95930 93324 92359 96538 93764 94912 92864 90664 90628 90444 90091 87834 89374 89792 90517 92996  total = 24.492971 per ms 
01:06:54.081 16  switches: flows:  94910 95200 96481 97643 97240 96197 95442 93976 92415 93072 93231 90270 91033 90387 93263 92894  total = 25.019143 per ms 
01:07:54.182 16  switches: flows:  96096 95415 96111 99241 96948 96680 96489 94106 92263 92616 93420 90351 91371 91087 93308 93913  total = 25.115000 per ms 
01:08:54.283 16  switches: flows:  100151 98774 100716 103840 101351 101715 100106 96792 94990 96505 96762 94652 94948 95370 97521 98585  total = 26.169246 per ms 
01:09:54.384 16  switches: flows:  103632 97825 101679 102765 100171 102427 100423 96399 95719 97795 94635 93665 94213 96008 98959 96762  total = 26.174223 per ms 
01:10:54.486 16  switches: flows:  98907 95729 95854 98518 95536 97531 94975 93343 93603 92562 93503 91349 93268 90758 92693 93973  total = 25.159708 per ms 
01:11:54.586 16  switches: flows:  97482 96383 95361 96813 95424 97289 97536 94794 92144 93096 93719 92038 93953 91260 91021 96535  total = 25.205393 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 24198.85/26174.22/25225.09/8431.53 responses/s</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-11T01:11:54.623939" elapsed="0.000801"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${output}</arg>
<arg>RESULT</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-11T01:11:54.625086" elapsed="0.000804"/>
</kw>
<kw name="Get Lines Containing String" owner="String">
<msg time="2026-10-11T01:11:54.626733" level="INFO">1 out of 23 lines matched.</msg>
<msg time="2026-10-11T01:11:54.626922" level="INFO">${result_line} = RESULT: 16 switches 9 tests min/max/avg/stdev = 24198.85/26174.22/25225.09/8431.53 responses/s</msg>
<var>${result_line}</var>
<arg>${output}</arg>
<arg>RESULT</arg>
<doc>Returns lines of the given `string` that contain the `pattern`.</doc>
<status status="PASS" start="2026-10-11T01:11:54.626284" elapsed="0.000690"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-10-11T01:11:54.627882" level="INFO">@{results_list} = [ RESULT: | 16 | switches | 9 | tests | min/max/avg/stdev | = | 24198.85/26174.22/25225.09/8431.53 | responses/s ]</msg>
<var>@{results_list}</var>
<arg>${result_line}</arg>
<doc>Splits the `string` using `separator` as a delimiter string.</doc>
<status status="PASS" start="2026-10-11T01:11:54.627366" elapsed="0.000574"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-11T01:11:54.629114" level="INFO">min/max/avg/stdev</msg>
<arg>${results_list[5]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-11T01:11:54.628366" elapsed="0.000890"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-11T01:11:54.630396" level="INFO">24198.85/26174.22/25225.09/8431.53</msg>
<arg>${results_list[7]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-11T01:11:54.629688" elapsed="0.000843"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-10-11T01:11:54.631635" level="INFO">@{result_name_list} = [ min | max | avg | stdev ]</msg>
<var>@{result_name_list}</var>
<arg>${results_list[5]}</arg>
<arg>/</arg>
<doc>Splits the `string` using `separator` as a delimiter string.</doc>
<status status="PASS" start="2026-10-11T01:11:54.630937" elapsed="0.000756"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-10-11T01:11:54.632808" level="INFO">@{result_value_list} = [ 24198.85 | 26174.22 | 25225.09 | 8431.53 ]</msg>
<var>@{result_value_list}</var>
<arg>${results_list[7]}</arg>
<arg>/</arg>
<doc>Splits the `string` using `separator` as a delimiter string.</doc>
<status status="PASS" start="2026-10-11T01:11:54.632112" elapsed="0.000753"/>
</kw>
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-10-11T01:11:54.633869" level="INFO">Length is 4.</msg>
<msg time="2026-10-11T01:11:54.634047" level="INFO">${num_stats} = 4</msg>
<var>${num_stats}</var>
<arg>${result_name_list}</arg>
<doc>Returns and logs the length of the given item as an integer.</doc>
<status status="PASS" start="2026-10-11T01:11:54.633226" elapsed="0.000872"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-11T01:11:54.635966" level="INFO">min :: 24198.85</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-11T01:11:54.635002" elapsed="0.001080"/>
</kw>
<var name="${i}">0</var>
<status status="PASS" start="2026-10-11T01:11:54.634620" elapsed="0.001532"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-11T01:11:54.637777" level="INFO">max :: 26174.22</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-11T01:11:54.636811" elapsed="0.001081"/>
</kw>
<var name="${i}">1</var>
<status status="PASS" start="2026-10-11T01:11:54.636358" elapsed="0.001602"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-11T01:11:54.639472" level="INFO">avg :: 25225.09</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-11T01:11:54.638528" elapsed="0.001085"/>
</kw>
<var name="${i}">2</var>
<status status="PASS" start="2026-10-11T01:11:54.638137" elapsed="0.001547"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-11T01:11:54.641164" level="INFO">stdev :: 8431.53</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-11T01:11:54.640251" elapsed="0.001047"/>
</kw>
<var name="${i}">3</var>
<status status="PASS" start="2026-10-11T01:11:54.639863" elapsed="0.001503"/>
</iter>
<var>${i}</var>
<value>0</value>
<value>${num_stats}</value>
<status status="PASS" start="2026-10-11T01:11:54.634247" elapsed="0.007185"/>
</for>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-11T01:11:54.642702" level="INFO">${min} = 24198.85</msg>
<var>${min}</var>
<arg>${result_value_list[${0}]}</arg>
<doc>Returns the given values which can then be assigned to a variable.</doc>
<status status="PASS" start="2026-10-11T01:11:54.641802" elapsed="0.000956"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-11T01:11:54.643961" level="INFO">${max} = 26174.22</msg>
<var>${max}</var>
<arg>${result_value_list[${1}]}</arg>
<doc>Returns the given values which can then be assigned to a variable.</doc>
<status status="PASS" start="2026-10-11T01:11:54.643086" elapsed="0.000929"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-11T01:11:54.645243" level="INFO">${average} = 25225.09</msg>
<var>${average}</var>
<arg>${result_value_list[${2}]}</arg>
<doc>Returns the given values which can then be assigned to a variable.</doc>
<status status="PASS" start="2026-10-11T01:11:54.644365" elapsed="0.000933"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-11T01:11:54.646496" level="INFO">${stdev} = 8431.53</msg>
<var>${stdev}</var>
<arg>${result_value_list[${3}]}</arg>
<doc>Returns the given values which can then be assigned to a variable.</doc>
<status status="PASS" start="2026-10-11T01:11:54.645655" elapsed="0.000894"/>
</kw>
<kw name="Get Time" owner="BuiltIn">
<msg time="2026-10-11T01:11:54.647772" level="INFO">${date} = 2026-10-11 01:11:54</msg>
<var>${date}</var>
<arg>d,m,s</arg>
<doc>Returns the given time in the requested format.</doc>
<status status="PASS" start="2026-10-11T01:11:54.646983" elapsed="0.000842"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-11T01:11:54.649045" level="INFO">CBench Result: 2026-10-11 01:11:54,-m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633,24198.85,26174.22,25225.09,8431.53</msg>
<arg>CBench Result: ${date},${cbench_args},${min},${max},${average},${stdev}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-11T01:11:54.648247" elapsed="0.000922"/>
</kw>
<kw name="Log Results And Determine Status">
<kw name="Append To File" owner="OperatingSystem">
<msg time="2026-10-11T01:11:54.651817" 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-10-11T01:11:54.650408" elapsed="0.001568"/>
</kw>
<kw name="Should Be True" owner="BuiltIn">
<arg>${average} &gt; ${threshold}</arg>
<arg>${average} flow_mods per/sec did not exceed threshold of ${threshold}</arg>
<doc>Fails if the given condition is not true.</doc>
<status status="PASS" start="2026-10-11T01:11:54.652387" elapsed="0.000978"/>
</kw>
<arg>${min}</arg>
<arg>${max}</arg>
<arg>${average}</arg>
<arg>${average_threshold}</arg>
<arg>${output_filename}</arg>
<status status="PASS" start="2026-10-11T01:11:54.649485" elapsed="0.004014"/>
</kw>
<arg>-m ${duration_in_ms} -M ${num_of_unique_macs} -S ${switch_count} -l ${loops} -D ${start_delay} -p ${of_port}</arg>
<arg>${latency_threshold}</arg>
<arg>${latency_results_file}</arg>
<status status="PASS" start="2026-10-11T01:01:48.036336" elapsed="606.617356"/>
</kw>
<kw name="Sleep" owner="BuiltIn">
<msg time="2026-10-11T01:11:54.654751" level="INFO">Slept 0 seconds.</msg>
<arg>${test_delay}</arg>
<doc>Pauses execution for the given time.</doc>
<status status="PASS" start="2026-10-11T01:11:54.654025" elapsed="0.000850"/>
</kw>
<kw name="Log Results As Zero If Cbench Timed Out" type="TEARDOWN">
<kw name="Run Keyword If Timeout Occurred" owner="BuiltIn">
<arg>Log Results And Determine Status</arg>
<arg>0</arg>
<arg>0</arg>
<arg>0</arg>
<arg>0</arg>
<arg>${output_filename}</arg>
<doc>Runs the given keyword if either a test or a keyword timeout has occurred.</doc>
<status status="PASS" start="2026-10-11T01:11:54.656037" elapsed="0.000663"/>
</kw>
<status status="PASS" start="2026-10-11T01:11:54.655309" elapsed="0.001543"/>
</kw>
<doc>cbench executed in default latency mode. Test parameters have defaults, but can be overridden
on the pybot command line</doc>
<tag>cbench</tag>
<tag>latency</tag>
<timeout value="15 minutes"/>
<status status="PASS" start="2026-10-11T01:01:48.033990" elapsed="606.622935"/>
</test>
<test id="s1-t2" name="Cbench Throughput Test" line="51">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-11T01:11:54.660505" level="INFO">Cbench tests using 10 iterations of 60 second tests. Switch Count: 16. Unique MACS to cycle: 100</msg>
<arg>Cbench tests using ${loops} iterations of ${duration_in_secs} second tests. Switch Count: ${switch_count}. Unique MACS to cycle: ${num_of_unique_macs}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-11T01:11:54.659508" elapsed="0.001189"/>
</kw>
<kw name="Run Cbench And Log Results">
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-10-11T01:11:54.663151" level="INFO">${output_filename} = throughput.csv</msg>
<arg>${output_filename}</arg>
<doc>Makes the variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-10-11T01:11:54.662458" elapsed="0.000805"/>
</kw>
<if>
<branch type="IF" condition="&quot;${cbench_system}&quot; == &quot;localhost&quot;">
<kw name="Run" owner="OperatingSystem">
<var>${output}</var>
<arg>${cbench_executable} -c ${ODL_SYSTEM_IP} ${cbench_args}</arg>
<doc>*This keyword is considered deprecated. Use the [Process] library instead.*</doc>
<status status="NOT RUN" start="2026-10-11T01:11:54.663961" elapsed="0.000046"/>
</kw>
<status status="NOT RUN" start="2026-10-11T01:11:54.663405" elapsed="0.000676"/>
</branch>
<branch type="ELSE">
<kw name="Run Command On Remote System" owner="Utils">
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot; and &quot;${return_stderr}&quot;!=&quot;True&quot;">
<kw name="Fail" owner="BuiltIn">
<arg>At least one of {return_stdout} or {return_stderr} args should be set to True</arg>
<doc>Fails the test or task with the given message and optionally alters its tags.</doc>
<status status="NOT RUN" start="2026-10-11T01:11:54.666695" elapsed="0.000048"/>
</kw>
<status status="NOT RUN" start="2026-10-11T01:11:54.666107" elapsed="0.000707"/>
</branch>
<status status="PASS" start="2026-10-11T01:11:54.666060" elapsed="0.000803"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-10-11T01:11:54.667692" level="INFO">index=None
host=None
alias=None
port=22
timeout=3 seconds
newline=

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

prompt=None
term_type=vt100
width=80
height=24
path_separator=/
encoding=utf8
escape_ansi=False
encoding_errors=strict</msg>
<var>${current_ssh_connection}</var>
<doc>Returns information about the connection.</doc>
<status status="PASS" start="2026-10-11T01:11:54.667276" elapsed="0.000708"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-11T01:11:54.669140" level="INFO">Attempting to execute command "/usr/local/bin/cbench -c 10.30.171.127 -t -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633" on remote system "10.30.171.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-10-11T01:11:54.668388" elapsed="0.000894"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-10-11T01:11:54.670400" level="INFO">${conn_id} = 7</msg>
<var>${conn_id}</var>
<arg>${system}</arg>
<arg>prompt=${prompt}</arg>
<arg>timeout=${prompt_timeout}</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-10-11T01:11:54.669661" elapsed="0.000793"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-10-11T01:11:54.672315" level="INFO">Length is 0.</msg>
<msg time="2026-10-11T01:11:54.672492" level="INFO">${pwd_length} = 0</msg>
<var>${pwd_length}</var>
<arg>${password}</arg>
<doc>Returns and logs the length of the given item as an integer.</doc>
<status status="PASS" start="2026-10-11T01:11:54.671679" elapsed="0.000863"/>
</kw>
<kw name="Run Keyword And Return If" owner="BuiltIn">
<arg>${pwd_length} &gt; 0</arg>
<arg>SSHLibrary.Login</arg>
<arg>${user}</arg>
<arg>${password}</arg>
<arg>delay=${delay}</arg>
<doc>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-11T01:11:54.672867" elapsed="0.000543"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-10-11T01:11:54.674517" level="INFO">Logging into '10.30.171.78:22' as 'jenkins'.</msg>
<msg time="2026-10-11T01:11:55.291063" 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 Sun Oct 11 01:11:54 UTC 2026

  System load:  1.0                Processes:             103
  Usage of /:   19.8% of 38.58GB   Users logged in:       0
  Memory usage: 4%                 IPv4 address for ens3: 10.30.171.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: Sun Oct 11 01:01:48 2026 from 10.30.171.175
[?2004h[jenkins@releng-48317-863-1-mininet-ovs-217-0 ~]&gt;</msg>
<arg>${user}</arg>
<arg>${USER_HOME}/.ssh/${SSH_KEY}</arg>
<arg>${KEYFILE_PASS}</arg>
<arg>delay=${delay}</arg>
<doc>Logs into the SSH server using key-based authentication.</doc>
<status status="PASS" start="2026-10-11T01:11:54.674124" elapsed="0.617141"/>
</kw>
<msg time="2026-10-11T01:11:55.291347" level="INFO">Returning from the enclosing user keyword.</msg>
<arg>SSHLibrary.Login With Public Key</arg>
<arg>${user}</arg>
<arg>${USER_HOME}/.ssh/${SSH_KEY}</arg>
<arg>${KEYFILE_PASS}</arg>
<arg>delay=${delay}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-11T01:11:54.673633" elapsed="0.617800"/>
</kw>
<arg>${user}</arg>
<arg>${password}</arg>
<doc>On active SSH session: if given non-empty password, do Login, else do Login With Public Key.</doc>
<status status="PASS" start="2026-10-11T01:11:54.670876" elapsed="0.620665"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-11T01:11:55.292085" level="INFO">Executing command '/usr/local/bin/cbench -c 10.30.171.127 -t -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633'.</msg>
<msg time="2026-10-11T01:22:01.359520" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-10-11T01:22:01.360119" level="INFO">${stdout} = </msg>
<msg time="2026-10-11T01:22:01.360217" level="INFO">${stderr} = cbench: controller benchmarking tool
   running in mode 'throughput'
   connecting to controller at 10.30.171.127:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with...</msg>
<var>${stdout}</var>
<var>${stderr}</var>
<arg>${cmd}</arg>
<arg>return_stderr=True</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-10-11T01:11:55.291818" elapsed="606.068453"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-10-11T01:22:01.360753" elapsed="0.000673"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-11T01:22:01.362637" level="INFO">cbench: controller benchmarking tool
   running in mode 'throughput'
   connecting to controller at 10.30.171.127: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.127. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
01:13:00.415 16  switches: flows:  559097 570699 551988 555889 555984 554667 554454 552162 543735 553557 565451 558900 549778 558763 554765 554596  total = 148.241417 per ms 
01:14:00.516 16  switches: flows:  589038 587281 590089 582663 583677 588195 589745 582865 590129 585406 587579 587431 590648 589364 591737 582016  total = 156.368294 per ms 
01:15:00.620 16  switches: flows:  584086 585774 583150 582593 585603 584941 587354 589248 584031 587960 586524 586416 595213 585365 587951 586289  total = 156.109321 per ms 
01:16:00.723 16  switches: flows:  596107 587383 593038 594691 598612 594035 587553 597836 595751 593075 589990 589583 592602 593146 590982 588382  total = 157.780508 per ms 
01:17:00.824 16  switches: flows:  605453 609418 606225 601008 607955 606462 604358 602665 604188 604606 606554 590293 607485 606858 607054 605807  total = 161.002483 per ms 
01:18:00.926 16  switches: flows:  578454 572592 578584 580095 570692 580544 575751 575346 576229 572084 585212 577175 581556 577205 574466 580168  total = 153.677219 per ms 
01:19:01.028 16  switches: flows:  600084 603167 596493 597907 598076 607387 604122 598794 603395 607967 598785 601733 602939 610865 598166 605717  total = 160.323763 per ms 
01:20:01.129 16  switches: flows:  617740 623028 622518 624202 617663 615991 621447 618854 613447 618644 617372 617329 624735 612206 621123 619017  total = 164.810853 per ms 
01:21:01.231 16  switches: flows:  606053 594757 606180 599422 596859 603309 598672 607103 608267 597797 607513 595597 599081 604065 598708 608711  total = 160.265728 per ms 
01:22:01.332 16  switches: flows:  613031 605819 617664 610132 613137 618829 609063 602126 617737 614668 622199 611739 615599 616664 615441 613852  total = 163.353285 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 153677.22/164810.85/159299.05/53208.78 responses/s</msg>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-11T01:22:01.361900" elapsed="0.001006"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="PASS" start="2026-10-11T01:22:01.363380" elapsed="0.000083"/>
</return>
<status status="PASS" start="2026-10-11T01:22:01.363108" elapsed="0.000432"/>
</branch>
<status status="PASS" start="2026-10-11T01:22:01.363050" elapsed="0.000574"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="NOT RUN" start="2026-10-11T01:22:01.363818" elapsed="0.000027"/>
</return>
<status status="NOT RUN" start="2026-10-11T01:22:01.363745" elapsed="0.000157"/>
</branch>
<status status="NOT RUN" start="2026-10-11T01:22:01.363711" elapsed="0.000235"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-10-11T01:22:01.364007" elapsed="0.000029"/>
</return>
<kw name="Restore_Current_Ssh_Connection_From_Index" owner="SSHKeywords" type="TEARDOWN">
<kw name="Run Keyword And Return If" owner="BuiltIn">
<arg>${connection_index} is not None</arg>
<arg>SSHLibrary.Switch Connection</arg>
<arg>${connection_index}</arg>
<doc>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-11T01:22:01.365657" elapsed="0.000693"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<arg>127.0.0.1</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-10-11T01:22:01.366762" elapsed="0.000326"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-10-11T01:22:01.367395" elapsed="0.000244"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-10-11T01:22:01.364703" elapsed="0.003045"/>
</kw>
<msg time="2026-10-11T01:22:01.367976" level="INFO">${output} = cbench: controller benchmarking tool
   running in mode 'throughput'
   connecting to controller at 10.30.171.127:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with...</msg>
<var>${output}</var>
<arg>${cbench_system}</arg>
<arg>${cbench_executable} -c ${ODL_SYSTEM_IP} ${cbench_args}</arg>
<arg>prompt_timeout=${test_timeout}</arg>
<arg>return_stdout=False</arg>
<arg>return_stderr=True</arg>
<doc>Reduces the common work of running a command on a remote system to a single higher level
robot keyword, taking care to log in with a public key and. The command given is written and the return value
depends on the passed argument values of return_stdout (default: True) and return_stderr (default: False).
At least one should be True, or the keyword will exit and FAIL. If both are True, the resulting return value
will be a two element list containing both. Otherwise the resulting return value is a string.
No test conditions are checked.</doc>
<status status="PASS" start="2026-10-11T01:11:54.664827" elapsed="606.703206"/>
</kw>
<status status="PASS" start="2026-10-11T01:11:54.664134" elapsed="606.703996"/>
</branch>
<status status="PASS" start="2026-10-11T01:11:54.663365" elapsed="606.704813"/>
</if>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-11T01:22:01.369212" level="INFO">cbench: controller benchmarking tool
   running in mode 'throughput'
   connecting to controller at 10.30.171.127: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.127. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
01:13:00.415 16  switches: flows:  559097 570699 551988 555889 555984 554667 554454 552162 543735 553557 565451 558900 549778 558763 554765 554596  total = 148.241417 per ms 
01:14:00.516 16  switches: flows:  589038 587281 590089 582663 583677 588195 589745 582865 590129 585406 587579 587431 590648 589364 591737 582016  total = 156.368294 per ms 
01:15:00.620 16  switches: flows:  584086 585774 583150 582593 585603 584941 587354 589248 584031 587960 586524 586416 595213 585365 587951 586289  total = 156.109321 per ms 
01:16:00.723 16  switches: flows:  596107 587383 593038 594691 598612 594035 587553 597836 595751 593075 589990 589583 592602 593146 590982 588382  total = 157.780508 per ms 
01:17:00.824 16  switches: flows:  605453 609418 606225 601008 607955 606462 604358 602665 604188 604606 606554 590293 607485 606858 607054 605807  total = 161.002483 per ms 
01:18:00.926 16  switches: flows:  578454 572592 578584 580095 570692 580544 575751 575346 576229 572084 585212 577175 581556 577205 574466 580168  total = 153.677219 per ms 
01:19:01.028 16  switches: flows:  600084 603167 596493 597907 598076 607387 604122 598794 603395 607967 598785 601733 602939 610865 598166 605717  total = 160.323763 per ms 
01:20:01.129 16  switches: flows:  617740 623028 622518 624202 617663 615991 621447 618854 613447 618644 617372 617329 624735 612206 621123 619017  total = 164.810853 per ms 
01:21:01.231 16  switches: flows:  606053 594757 606180 599422 596859 603309 598672 607103 608267 597797 607513 595597 599081 604065 598708 608711  total = 160.265728 per ms 
01:22:01.332 16  switches: flows:  613031 605819 617664 610132 613137 618829 609063 602126 617737 614668 622199 611739 615599 616664 615441 613852  total = 163.353285 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 153677.22/164810.85/159299.05/53208.78 responses/s</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-11T01:22:01.368625" elapsed="0.000766"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${output}</arg>
<arg>RESULT</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-11T01:22:01.369773" elapsed="0.000758"/>
</kw>
<kw name="Get Lines Containing String" owner="String">
<msg time="2026-10-11T01:22:01.371359" level="INFO">1 out of 23 lines matched.</msg>
<msg time="2026-10-11T01:22:01.371544" level="INFO">${result_line} = RESULT: 16 switches 9 tests min/max/avg/stdev = 153677.22/164810.85/159299.05/53208.78 responses/s</msg>
<var>${result_line}</var>
<arg>${output}</arg>
<arg>RESULT</arg>
<doc>Returns lines of the given `string` that contain the `pattern`.</doc>
<status status="PASS" start="2026-10-11T01:22:01.370936" elapsed="0.000688"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-10-11T01:22:01.372507" level="INFO">@{results_list} = [ RESULT: | 16 | switches | 9 | tests | min/max/avg/stdev | = | 153677.22/164810.85/159299.05/53208.78 | responses/s ]</msg>
<var>@{results_list}</var>
<arg>${result_line}</arg>
<doc>Splits the `string` using `separator` as a delimiter string.</doc>
<status status="PASS" start="2026-10-11T01:22:01.371999" elapsed="0.000597"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-11T01:22:01.373744" level="INFO">min/max/avg/stdev</msg>
<arg>${results_list[5]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-11T01:22:01.373004" elapsed="0.000854"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-11T01:22:01.374991" level="INFO">153677.22/164810.85/159299.05/53208.78</msg>
<arg>${results_list[7]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-11T01:22:01.374261" elapsed="0.000844"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-10-11T01:22:01.376139" level="INFO">@{result_name_list} = [ min | max | avg | stdev ]</msg>
<var>@{result_name_list}</var>
<arg>${results_list[5]}</arg>
<arg>/</arg>
<doc>Splits the `string` using `separator` as a delimiter string.</doc>
<status status="PASS" start="2026-10-11T01:22:01.375473" elapsed="0.000723"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-10-11T01:22:01.377322" level="INFO">@{result_value_list} = [ 153677.22 | 164810.85 | 159299.05 | 53208.78 ]</msg>
<var>@{result_value_list}</var>
<arg>${results_list[7]}</arg>
<arg>/</arg>
<doc>Splits the `string` using `separator` as a delimiter string.</doc>
<status status="PASS" start="2026-10-11T01:22:01.376674" elapsed="0.000705"/>
</kw>
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-10-11T01:22:01.378423" level="INFO">Length is 4.</msg>
<msg time="2026-10-11T01:22:01.378633" level="INFO">${num_stats} = 4</msg>
<var>${num_stats}</var>
<arg>${result_name_list}</arg>
<doc>Returns and logs the length of the given item as an integer.</doc>
<status status="PASS" start="2026-10-11T01:22:01.377765" elapsed="0.000920"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-11T01:22:01.380491" level="INFO">min :: 153677.22</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-11T01:22:01.379529" elapsed="0.001108"/>
</kw>
<var name="${i}">0</var>
<status status="PASS" start="2026-10-11T01:22:01.379130" elapsed="0.001578"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-11T01:22:01.382193" level="INFO">max :: 164810.85</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-11T01:22:01.381246" elapsed="0.001083"/>
</kw>
<var name="${i}">1</var>
<status status="PASS" start="2026-10-11T01:22:01.380884" elapsed="0.001515"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-11T01:22:01.383911" level="INFO">avg :: 159299.05</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-11T01:22:01.382969" elapsed="0.001052"/>
</kw>
<var name="${i}">2</var>
<status status="PASS" start="2026-10-11T01:22:01.382604" elapsed="0.001484"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-11T01:22:01.385629" level="INFO">stdev :: 53208.78</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-11T01:22:01.384679" elapsed="0.001065"/>
</kw>
<var name="${i}">3</var>
<status status="PASS" start="2026-10-11T01:22:01.384257" elapsed="0.001554"/>
</iter>
<var>${i}</var>
<value>0</value>
<value>${num_stats}</value>
<status status="PASS" start="2026-10-11T01:22:01.378806" elapsed="0.007068"/>
</for>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-11T01:22:01.387102" level="INFO">${min} = 153677.22</msg>
<var>${min}</var>
<arg>${result_value_list[${0}]}</arg>
<doc>Returns the given values which can then be assigned to a variable.</doc>
<status status="PASS" start="2026-10-11T01:22:01.386214" elapsed="0.000942"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-11T01:22:01.388376" level="INFO">${max} = 164810.85</msg>
<var>${max}</var>
<arg>${result_value_list[${1}]}</arg>
<doc>Returns the given values which can then be assigned to a variable.</doc>
<status status="PASS" start="2026-10-11T01:22:01.387511" elapsed="0.000919"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-11T01:22:01.389664" level="INFO">${average} = 159299.05</msg>
<var>${average}</var>
<arg>${result_value_list[${2}]}</arg>
<doc>Returns the given values which can then be assigned to a variable.</doc>
<status status="PASS" start="2026-10-11T01:22:01.388792" elapsed="0.000927"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-11T01:22:01.390943" level="INFO">${stdev} = 53208.78</msg>
<var>${stdev}</var>
<arg>${result_value_list[${3}]}</arg>
<doc>Returns the given values which can then be assigned to a variable.</doc>
<status status="PASS" start="2026-10-11T01:22:01.390048" elapsed="0.000948"/>
</kw>
<kw name="Get Time" owner="BuiltIn">
<msg time="2026-10-11T01:22:01.392195" level="INFO">${date} = 2026-10-11 01:22:01</msg>
<var>${date}</var>
<arg>d,m,s</arg>
<doc>Returns the given time in the requested format.</doc>
<status status="PASS" start="2026-10-11T01:22:01.391425" elapsed="0.000823"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-11T01:22:01.393438" level="INFO">CBench Result: 2026-10-11 01:22:01,-t -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633,153677.22,164810.85,159299.05,53208.78</msg>
<arg>CBench Result: ${date},${cbench_args},${min},${max},${average},${stdev}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-11T01:22:01.392698" elapsed="0.000855"/>
</kw>
<kw name="Log Results And Determine Status">
<kw name="Append To File" owner="OperatingSystem">
<msg time="2026-10-11T01:22:01.395679" 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-10-11T01:22:01.394916" elapsed="0.000904"/>
</kw>
<kw name="Should Be True" owner="BuiltIn">
<arg>${average} &gt; ${threshold}</arg>
<arg>${average} flow_mods per/sec did not exceed threshold of ${threshold}</arg>
<doc>Fails if the given condition is not true.</doc>
<status status="PASS" start="2026-10-11T01:22:01.396168" elapsed="0.001279"/>
</kw>
<arg>${min}</arg>
<arg>${max}</arg>
<arg>${average}</arg>
<arg>${average_threshold}</arg>
<arg>${output_filename}</arg>
<status status="PASS" start="2026-10-11T01:22:01.393843" elapsed="0.003770"/>
</kw>
<arg>-t -m ${duration_in_ms} -M ${num_of_unique_macs} -S ${switch_count} -l ${loops} -D ${start_delay} -p ${of_port}</arg>
<arg>${throughput_threshold}</arg>
<arg>${throughput_results_file}</arg>
<status status="PASS" start="2026-10-11T01:11:54.661328" elapsed="606.736412"/>
</kw>
<kw name="Sleep" owner="BuiltIn">
<msg time="2026-10-11T01:22:01.398765" level="INFO">Slept 0 seconds.</msg>
<arg>${test_delay}</arg>
<doc>Pauses execution for the given time.</doc>
<status status="PASS" start="2026-10-11T01:22:01.398060" elapsed="0.000823"/>
</kw>
<kw name="Log Results As Zero If Cbench Timed Out" type="TEARDOWN">
<kw name="Run Keyword If Timeout Occurred" owner="BuiltIn">
<arg>Log Results And Determine Status</arg>
<arg>0</arg>
<arg>0</arg>
<arg>0</arg>
<arg>0</arg>
<arg>${output_filename}</arg>
<doc>Runs the given keyword if either a test or a keyword timeout has occurred.</doc>
<status status="PASS" start="2026-10-11T01:22:01.400095" elapsed="0.000611"/>
</kw>
<status status="PASS" start="2026-10-11T01:22:01.399388" elapsed="0.001464"/>
</kw>
<doc>cbench executed in throughput mode (-t). Test parameters have defaults, but can be overridden
on the pybot command line</doc>
<tag>cbench</tag>
<tag>throughput</tag>
<timeout value="15 minutes"/>
<status status="PASS" start="2026-10-11T01:11:54.657895" elapsed="606.743028"/>
</test>
<test id="s1-t3" name="Rerun Latency Test To Check Bug 6176" line="65">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-11T01:22:01.404049" level="INFO">Cbench tests using 10 iterations of 60 second tests. Switch Count: 16. Unique MACS to cycle: 100</msg>
<arg>Cbench tests using ${loops} iterations of ${duration_in_secs} second tests. Switch Count: ${switch_count}. Unique MACS to cycle: ${num_of_unique_macs}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-11T01:22:01.403318" elapsed="0.000848"/>
</kw>
<kw name="Run Cbench And Log Results">
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-10-11T01:22:01.406673" level="INFO">${output_filename} = bug.csv</msg>
<arg>${output_filename}</arg>
<doc>Makes the variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-10-11T01:22:01.405943" elapsed="0.000820"/>
</kw>
<if>
<branch type="IF" condition="&quot;${cbench_system}&quot; == &quot;localhost&quot;">
<kw name="Run" owner="OperatingSystem">
<var>${output}</var>
<arg>${cbench_executable} -c ${ODL_SYSTEM_IP} ${cbench_args}</arg>
<doc>*This keyword is considered deprecated. Use the [Process] library instead.*</doc>
<status status="NOT RUN" start="2026-10-11T01:22:01.407471" elapsed="0.000047"/>
</kw>
<status status="NOT RUN" start="2026-10-11T01:22:01.406984" elapsed="0.000641"/>
</branch>
<branch type="ELSE">
<kw name="Run Command On Remote System" owner="Utils">
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot; and &quot;${return_stderr}&quot;!=&quot;True&quot;">
<kw name="Fail" owner="BuiltIn">
<arg>At least one of {return_stdout} or {return_stderr} args should be set to True</arg>
<doc>Fails the test or task with the given message and optionally alters its tags.</doc>
<status status="NOT RUN" start="2026-10-11T01:22:01.410065" elapsed="0.000044"/>
</kw>
<status status="NOT RUN" start="2026-10-11T01:22:01.409584" elapsed="0.000596"/>
</branch>
<status status="PASS" start="2026-10-11T01:22:01.409518" elapsed="0.000711"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-10-11T01:22:01.411029" level="INFO">index=None
host=None
alias=None
port=22
timeout=3 seconds
newline=

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

prompt=None
term_type=vt100
width=80
height=24
path_separator=/
encoding=utf8
escape_ansi=False
encoding_errors=strict</msg>
<var>${current_ssh_connection}</var>
<doc>Returns information about the connection.</doc>
<status status="PASS" start="2026-10-11T01:22:01.410670" elapsed="0.000677"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-11T01:22:01.412503" level="INFO">Attempting to execute command "/usr/local/bin/cbench -c 10.30.171.127 -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633" on remote system "10.30.171.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-10-11T01:22:01.411764" elapsed="0.000887"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-10-11T01:22:01.413775" level="INFO">${conn_id} = 9</msg>
<var>${conn_id}</var>
<arg>${system}</arg>
<arg>prompt=${prompt}</arg>
<arg>timeout=${prompt_timeout}</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-10-11T01:22:01.413004" elapsed="0.000826"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-10-11T01:22:01.415719" level="INFO">Length is 0.</msg>
<msg time="2026-10-11T01:22:01.415898" level="INFO">${pwd_length} = 0</msg>
<var>${pwd_length}</var>
<arg>${password}</arg>
<doc>Returns and logs the length of the given item as an integer.</doc>
<status status="PASS" start="2026-10-11T01:22:01.415053" elapsed="0.000895"/>
</kw>
<kw name="Run Keyword And Return If" owner="BuiltIn">
<arg>${pwd_length} &gt; 0</arg>
<arg>SSHLibrary.Login</arg>
<arg>${user}</arg>
<arg>${password}</arg>
<arg>delay=${delay}</arg>
<doc>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-11T01:22:01.416244" elapsed="0.000694"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-10-11T01:22:01.418813" level="INFO">Logging into '10.30.171.78:22' as 'jenkins'.</msg>
<msg time="2026-10-11T01:22:02.105419" 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 Sun Oct 11 01:22:01 UTC 2026

  System load:  0.45               Processes:             106
  Usage of /:   19.8% of 38.58GB   Users logged in:       0
  Memory usage: 4%                 IPv4 address for ens3: 10.30.171.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: Sun Oct 11 01:11:55 2026 from 10.30.171.175
[?2004h[jenkins@releng-48317-863-1-mininet-ovs-217-0 ~]&gt;</msg>
<arg>${user}</arg>
<arg>${USER_HOME}/.ssh/${SSH_KEY}</arg>
<arg>${KEYFILE_PASS}</arg>
<arg>delay=${delay}</arg>
<doc>Logs into the SSH server using key-based authentication.</doc>
<status status="PASS" start="2026-10-11T01:22:01.418163" elapsed="0.687504"/>
</kw>
<msg time="2026-10-11T01:22:02.105770" level="INFO">Returning from the enclosing user keyword.</msg>
<arg>SSHLibrary.Login With Public Key</arg>
<arg>${user}</arg>
<arg>${USER_HOME}/.ssh/${SSH_KEY}</arg>
<arg>${KEYFILE_PASS}</arg>
<arg>delay=${delay}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-11T01:22:01.417263" elapsed="0.688601"/>
</kw>
<arg>${user}</arg>
<arg>${password}</arg>
<doc>On active SSH session: if given non-empty password, do Login, else do Login With Public Key.</doc>
<status status="PASS" start="2026-10-11T01:22:01.414226" elapsed="0.691773"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-11T01:22:02.106696" level="INFO">Executing command '/usr/local/bin/cbench -c 10.30.171.127 -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633'.</msg>
<msg time="2026-10-11T01:32:08.139891" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-10-11T01:32:08.140644" level="INFO">${stdout} = </msg>
<msg time="2026-10-11T01:32:08.140748" level="INFO">${stderr} = cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.171.127:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with 10...</msg>
<var>${stdout}</var>
<var>${stderr}</var>
<arg>${cmd}</arg>
<arg>return_stderr=True</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-10-11T01:22:02.106338" elapsed="606.034464"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-10-11T01:32:08.141250" elapsed="0.000715"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-11T01:32:08.143135" level="INFO">cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.171.127: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.127. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
01:23:07.210 16  switches: flows:  99291 97642 98584 98892 99186 99198 97892 97610 95393 96617 94850 97131 96050 94126 96058 96900  total = 25.923667 per ms 
01:24:07.311 16  switches: flows:  99224 98495 96072 96958 96632 98029 97163 96727 95614 97419 96061 94167 97221 93590 95056 96423  total = 25.704620 per ms 
01:25:07.411 16  switches: flows:  97297 95906 95617 95706 91801 98285 95622 96191 92330 94431 93748 92946 96569 92603 94262 93248  total = 25.233929 per ms 
01:26:07.511 16  switches: flows:  99604 97374 97474 97946 94136 97826 96015 95650 93295 94944 94437 95186 98031 93236 96207 94840  total = 25.560683 per ms 
01:27:07.611 16  switches: flows:  95315 94136 94279 94817 90705 94820 94067 91232 89781 91384 91858 90488 92480 90543 91443 91690  total = 24.609571 per ms 
01:28:07.712 16  switches: flows:  95427 92402 91819 94368 88355 92922 91625 91570 89446 89907 88855 90351 92493 88438 91382 89496  total = 24.273753 per ms 
01:29:07.812 16  switches: flows:  95834 93723 95536 94139 91670 94706 91909 91886 91251 90140 92070 90066 93973 89377 92539 92718  total = 24.651134 per ms 
01:30:07.912 16  switches: flows:  96258 94415 94752 95113 91708 94976 92979 92992 91428 91362 91286 90235 93738 90968 91802 92110  total = 24.727441 per ms 
01:31:08.012 16  switches: flows:  97433 95850 96249 97709 92547 97528 93946 93805 91925 91813 92775 93598 95391 91134 93158 94039  total = 25.106435 per ms 
01:32:08.112 16  switches: flows:  93590 92873 93331 93233 91088 92809 92397 91779 88451 89667 90614 90308 92857 89112 91629 92088  total = 24.389740 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 24273.75/25704.62/24917.48/8319.62 responses/s</msg>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-11T01:32:08.142428" elapsed="0.001019"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="PASS" start="2026-10-11T01:32:08.143936" elapsed="0.000081"/>
</return>
<status status="PASS" start="2026-10-11T01:32:08.143677" elapsed="0.000427"/>
</branch>
<status status="PASS" start="2026-10-11T01:32:08.143615" elapsed="0.000543"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="NOT RUN" start="2026-10-11T01:32:08.144370" elapsed="0.000028"/>
</return>
<status status="NOT RUN" start="2026-10-11T01:32:08.144275" elapsed="0.000180"/>
</branch>
<status status="NOT RUN" start="2026-10-11T01:32:08.144243" elapsed="0.000256"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-10-11T01:32:08.144587" elapsed="0.000030"/>
</return>
<kw name="Restore_Current_Ssh_Connection_From_Index" owner="SSHKeywords" type="TEARDOWN">
<kw name="Run Keyword And Return If" owner="BuiltIn">
<arg>${connection_index} is not None</arg>
<arg>SSHLibrary.Switch Connection</arg>
<arg>${connection_index}</arg>
<doc>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-11T01:32:08.146145" elapsed="0.000717"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<arg>127.0.0.1</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-10-11T01:32:08.147233" elapsed="0.000359"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-10-11T01:32:08.147870" 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-10-11T01:32:08.145231" elapsed="0.002942"/>
</kw>
<msg time="2026-10-11T01:32:08.148417" level="INFO">${output} = cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.171.127:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with 10...</msg>
<var>${output}</var>
<arg>${cbench_system}</arg>
<arg>${cbench_executable} -c ${ODL_SYSTEM_IP} ${cbench_args}</arg>
<arg>prompt_timeout=${test_timeout}</arg>
<arg>return_stdout=False</arg>
<arg>return_stderr=True</arg>
<doc>Reduces the common work of running a command on a remote system to a single higher level
robot keyword, taking care to log in with a public key and. The command given is written and the return value
depends on the passed argument values of return_stdout (default: True) and return_stderr (default: False).
At least one should be True, or the keyword will exit and FAIL. If both are True, the resulting return value
will be a two element list containing both. Otherwise the resulting return value is a string.
No test conditions are checked.</doc>
<status status="PASS" start="2026-10-11T01:22:01.408338" elapsed="606.740135"/>
</kw>
<status status="PASS" start="2026-10-11T01:22:01.407679" elapsed="606.740918"/>
</branch>
<status status="PASS" start="2026-10-11T01:22:01.406940" elapsed="606.741707"/>
</if>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-11T01:32:08.149668" level="INFO">cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.171.127: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.127. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
01:23:07.210 16  switches: flows:  99291 97642 98584 98892 99186 99198 97892 97610 95393 96617 94850 97131 96050 94126 96058 96900  total = 25.923667 per ms 
01:24:07.311 16  switches: flows:  99224 98495 96072 96958 96632 98029 97163 96727 95614 97419 96061 94167 97221 93590 95056 96423  total = 25.704620 per ms 
01:25:07.411 16  switches: flows:  97297 95906 95617 95706 91801 98285 95622 96191 92330 94431 93748 92946 96569 92603 94262 93248  total = 25.233929 per ms 
01:26:07.511 16  switches: flows:  99604 97374 97474 97946 94136 97826 96015 95650 93295 94944 94437 95186 98031 93236 96207 94840  total = 25.560683 per ms 
01:27:07.611 16  switches: flows:  95315 94136 94279 94817 90705 94820 94067 91232 89781 91384 91858 90488 92480 90543 91443 91690  total = 24.609571 per ms 
01:28:07.712 16  switches: flows:  95427 92402 91819 94368 88355 92922 91625 91570 89446 89907 88855 90351 92493 88438 91382 89496  total = 24.273753 per ms 
01:29:07.812 16  switches: flows:  95834 93723 95536 94139 91670 94706 91909 91886 91251 90140 92070 90066 93973 89377 92539 92718  total = 24.651134 per ms 
01:30:07.912 16  switches: flows:  96258 94415 94752 95113 91708 94976 92979 92992 91428 91362 91286 90235 93738 90968 91802 92110  total = 24.727441 per ms 
01:31:08.012 16  switches: flows:  97433 95850 96249 97709 92547 97528 93946 93805 91925 91813 92775 93598 95391 91134 93158 94039  total = 25.106435 per ms 
01:32:08.112 16  switches: flows:  93590 92873 93331 93233 91088 92809 92397 91779 88451 89667 90614 90308 92857 89112 91629 92088  total = 24.389740 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 24273.75/25704.62/24917.48/8319.62 responses/s</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-11T01:32:08.149037" elapsed="0.000781"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${output}</arg>
<arg>RESULT</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-11T01:32:08.150156" elapsed="0.000783"/>
</kw>
<kw name="Get Lines Containing String" owner="String">
<msg time="2026-10-11T01:32:08.151760" level="INFO">1 out of 23 lines matched.</msg>
<msg time="2026-10-11T01:32:08.151942" level="INFO">${result_line} = RESULT: 16 switches 9 tests min/max/avg/stdev = 24273.75/25704.62/24917.48/8319.62 responses/s</msg>
<var>${result_line}</var>
<arg>${output}</arg>
<arg>RESULT</arg>
<doc>Returns lines of the given `string` that contain the `pattern`.</doc>
<status status="PASS" start="2026-10-11T01:32:08.151305" elapsed="0.000687"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-10-11T01:32:08.152859" level="INFO">@{results_list} = [ RESULT: | 16 | switches | 9 | tests | min/max/avg/stdev | = | 24273.75/25704.62/24917.48/8319.62 | responses/s ]</msg>
<var>@{results_list}</var>
<arg>${result_line}</arg>
<doc>Splits the `string` using `separator` as a delimiter string.</doc>
<status status="PASS" start="2026-10-11T01:32:08.152361" elapsed="0.000554"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-11T01:32:08.154065" level="INFO">min/max/avg/stdev</msg>
<arg>${results_list[5]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-11T01:32:08.153341" elapsed="0.000836"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-11T01:32:08.155288" level="INFO">24273.75/25704.62/24917.48/8319.62</msg>
<arg>${results_list[7]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-11T01:32:08.154624" elapsed="0.000803"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-10-11T01:32:08.156459" level="INFO">@{result_name_list} = [ min | max | avg | stdev ]</msg>
<var>@{result_name_list}</var>
<arg>${results_list[5]}</arg>
<arg>/</arg>
<doc>Splits the `string` using `separator` as a delimiter string.</doc>
<status status="PASS" start="2026-10-11T01:32:08.155819" elapsed="0.000695"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-10-11T01:32:08.157695" level="INFO">@{result_value_list} = [ 24273.75 | 25704.62 | 24917.48 | 8319.62 ]</msg>
<var>@{result_value_list}</var>
<arg>${results_list[7]}</arg>
<arg>/</arg>
<doc>Splits the `string` using `separator` as a delimiter string.</doc>
<status status="PASS" start="2026-10-11T01:32:08.156983" elapsed="0.000768"/>
</kw>
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-10-11T01:32:08.158819" level="INFO">Length is 4.</msg>
<msg time="2026-10-11T01:32:08.158990" level="INFO">${num_stats} = 4</msg>
<var>${num_stats}</var>
<arg>${result_name_list}</arg>
<doc>Returns and logs the length of the given item as an integer.</doc>
<status status="PASS" start="2026-10-11T01:32:08.158084" elapsed="0.000958"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-11T01:32:08.160863" level="INFO">min :: 24273.75</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-11T01:32:08.159927" elapsed="0.001052"/>
</kw>
<var name="${i}">0</var>
<status status="PASS" start="2026-10-11T01:32:08.159529" elapsed="0.001518"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-11T01:32:08.162525" level="INFO">max :: 25704.62</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-11T01:32:08.161629" elapsed="0.001037"/>
</kw>
<var name="${i}">1</var>
<status status="PASS" start="2026-10-11T01:32:08.161217" elapsed="0.001516"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-11T01:32:08.164191" level="INFO">avg :: 24917.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-10-11T01:32:08.163258" elapsed="0.001046"/>
</kw>
<var name="${i}">2</var>
<status status="PASS" start="2026-10-11T01:32:08.162898" elapsed="0.001496"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-11T01:32:08.165874" level="INFO">stdev :: 8319.62</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-11T01:32:08.164949" elapsed="0.001036"/>
</kw>
<var name="${i}">3</var>
<status status="PASS" start="2026-10-11T01:32:08.164585" elapsed="0.001467"/>
</iter>
<var>${i}</var>
<value>0</value>
<value>${num_stats}</value>
<status status="PASS" start="2026-10-11T01:32:08.159181" elapsed="0.006931"/>
</for>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-11T01:32:08.167344" level="INFO">${min} = 24273.75</msg>
<var>${min}</var>
<arg>${result_value_list[${0}]}</arg>
<doc>Returns the given values which can then be assigned to a variable.</doc>
<status status="PASS" start="2026-10-11T01:32:08.166468" elapsed="0.000933"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-11T01:32:08.168644" level="INFO">${max} = 25704.62</msg>
<var>${max}</var>
<arg>${result_value_list[${1}]}</arg>
<doc>Returns the given values which can then be assigned to a variable.</doc>
<status status="PASS" start="2026-10-11T01:32:08.167765" elapsed="0.000934"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-11T01:32:08.169930" level="INFO">${average} = 24917.48</msg>
<var>${average}</var>
<arg>${result_value_list[${2}]}</arg>
<doc>Returns the given values which can then be assigned to a variable.</doc>
<status status="PASS" start="2026-10-11T01:32:08.169027" elapsed="0.000958"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-11T01:32:08.171176" level="INFO">${stdev} = 8319.62</msg>
<var>${stdev}</var>
<arg>${result_value_list[${3}]}</arg>
<doc>Returns the given values which can then be assigned to a variable.</doc>
<status status="PASS" start="2026-10-11T01:32:08.170312" elapsed="0.000917"/>
</kw>
<kw name="Get Time" owner="BuiltIn">
<msg time="2026-10-11T01:32:08.172414" level="INFO">${date} = 2026-10-11 01:32:08</msg>
<var>${date}</var>
<arg>d,m,s</arg>
<doc>Returns the given time in the requested format.</doc>
<status status="PASS" start="2026-10-11T01:32:08.171680" elapsed="0.000788"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-11T01:32:08.173691" level="INFO">CBench Result: 2026-10-11 01:32:08,-m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633,24273.75,25704.62,24917.48,8319.62</msg>
<arg>CBench Result: ${date},${cbench_args},${min},${max},${average},${stdev}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-11T01:32:08.172911" elapsed="0.000893"/>
</kw>
<kw name="Log Results And Determine Status">
<kw name="Append To File" owner="OperatingSystem">
<msg time="2026-10-11T01:32:08.175781" 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-10-11T01:32:08.174961" elapsed="0.000960"/>
</kw>
<kw name="Should Be True" owner="BuiltIn">
<arg>${average} &gt; ${threshold}</arg>
<arg>${average} flow_mods per/sec did not exceed threshold of ${threshold}</arg>
<doc>Fails if the given condition is not true.</doc>
<status status="PASS" start="2026-10-11T01:32:08.176270" elapsed="0.001216"/>
</kw>
<arg>${min}</arg>
<arg>${max}</arg>
<arg>${average}</arg>
<arg>${average_threshold}</arg>
<arg>${output_filename}</arg>
<status status="PASS" start="2026-10-11T01:32:08.174059" elapsed="0.003589"/>
</kw>
<arg>-m ${duration_in_ms} -M ${num_of_unique_macs} -S ${switch_count} -l ${loops} -D ${start_delay} -p ${of_port}</arg>
<arg>${latency_threshold}</arg>
<arg>bug.csv</arg>
<status status="PASS" start="2026-10-11T01:22:01.404815" elapsed="606.772955"/>
</kw>
<kw name="Sleep" owner="BuiltIn">
<msg time="2026-10-11T01:32:08.178764" level="INFO">Slept 0 seconds.</msg>
<arg>${test_delay}</arg>
<doc>Pauses execution for the given time.</doc>
<status status="PASS" start="2026-10-11T01:32:08.178092" elapsed="0.000788"/>
</kw>
<kw name="Report Failure Due To Bug" owner="Utils" type="TEARDOWN">
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-11T01:32:08.181448" level="INFO">${test_skipped} = False</msg>
<var>${test_skipped}</var>
<arg>len(re.findall('SKIPPED', """${TEST_MESSAGE}""")) &gt; 0</arg>
<arg>modules=re</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-10-11T01:32:08.180459" elapsed="0.001044"/>
</kw>
<if>
<branch type="IF" condition="('${TEST_STATUS}' != 'FAIL') or ${test_skipped}">
<return>
<status status="PASS" start="2026-10-11T01:32:08.181923" elapsed="0.000057"/>
</return>
<status status="PASS" start="2026-10-11T01:32:08.181681" elapsed="0.000362"/>
</branch>
<status status="PASS" start="2026-10-11T01:32:08.181641" elapsed="0.000451"/>
</if>
<kw name="Comment" owner="BuiltIn">
<arg>Jira tickets are {PROJECT}-{NUMBER} while Bugzilla tickets are {NUMBER}</arg>
<doc>Displays the given messages in the log file as keyword arguments.</doc>
<status status="NOT RUN" start="2026-10-11T01:32:08.182417" elapsed="0.000045"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<var>${match}</var>
<arg>Should Contain</arg>
<arg>${number}</arg>
<arg>-</arg>
<doc>Runs the specified keyword and returns the status as a Boolean value.</doc>
<status status="NOT RUN" start="2026-10-11T01:32:08.182778" elapsed="0.000042"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<var>${bug_url}</var>
<arg>${match}</arg>
<arg>https://jira.opendaylight.org/browse/${number}</arg>
<arg>https://bugs.opendaylight.org/show_bug.cgi?id=${number}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="NOT RUN" start="2026-10-11T01:32:08.183146" elapsed="0.000040"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<var>${msg}</var>
<arg>This test fails due to ${bug_url}</arg>
<doc>Returns the given values which can then be assigned to a variable.</doc>
<status status="NOT RUN" start="2026-10-11T01:32:08.183501" elapsed="0.000042"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${newline}</var>
<arg>chr(10)</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-10-11T01:32:08.184070" elapsed="0.000031"/>
</kw>
<kw name="Set Test Message" owner="BuiltIn">
<arg>${msg}${newline}${newline}${TEST_MESSAGE}</arg>
<doc>Sets message of the current test case.</doc>
<status status="NOT RUN" start="2026-10-11T01:32:08.184293" elapsed="0.000043"/>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${msg}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-11T01:32:08.184603" elapsed="0.000028"/>
</kw>
<if>
<branch type="IF" condition="&quot;${include_bug_in_tags}&quot;==&quot;True&quot;">
<kw name="Set Tags" owner="BuiltIn">
<arg>${bug_url}</arg>
<doc>Adds The given `tags` for the current test or all tests in a suite.</doc>
<status status="NOT RUN" start="2026-10-11T01:32:08.184913" elapsed="0.000027"/>
</kw>
<status status="NOT RUN" start="2026-10-11T01:32:08.184717" elapsed="0.000265"/>
</branch>
<status status="NOT RUN" start="2026-10-11T01:32:08.184693" elapsed="0.000322"/>
</if>
<arg>6176</arg>
<doc>Report that a test failed due to a known Bugzilla bug whose
number is provided as an argument.
Not FAILED (incl. SKIPPED) test are not reported.
This keyword must be used in the [Teardown] setting of the affected test
or as the first line of the test if FastFail module is not being
used. It reports the URL of the bug on console and also puts it
into the Robot log file.</doc>
<status status="PASS" start="2026-10-11T01:32:08.179660" elapsed="0.005424"/>
</kw>
<doc>cbench executed in latency mode to see if controller is healthy</doc>
<tag>cbench</tag>
<tag>latency</tag>
<timeout value="15 minutes"/>
<status status="PASS" start="2026-10-11T01:22:01.402027" elapsed="606.783116"/>
</test>
<doc>Cbench Latency and Throughput tests can be run from an external
cbench.
If cbench is run with a medium number of switches or higher (e.g. 32+)
the normal openflow operations seem to break.
BUG: https://bugs.opendaylight.org/show_bug.cgi?id=2897</doc>
<status status="PASS" start="2026-10-11T01:01:45.385213" elapsed="1822.800527"/>
</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>
