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

[?1h=[90m~[0m                                                                                [?2004hopendaylight-user</msg>
<arg>${KARAF_USER}</arg>
<arg>${KARAF_PASSWORD}</arg>
<arg>loglevel=${loglevel}</arg>
<doc>Logs into the SSH server with the given ``username`` and ``password``.</doc>
<status status="PASS" start="2026-09-28T00:42:37.173222" elapsed="0.816077"/>
</kw>
<kw name="Write" owner="SSHLibrary">
<msg time="2026-09-28T00:42:38.038325" level="INFO">@root&gt;log:set ERROR</msg>
<arg>${cmd}</arg>
<doc>Writes the given ``text`` on the remote machine and appends a newline.</doc>
<status status="PASS" start="2026-09-28T00:42:37.989520" elapsed="0.048918"/>
</kw>
<kw name="Read Until Regexp" owner="SSHLibrary">
<msg time="2026-09-28T00:42:38.040577" level="INFO">[?1l&gt;[?2004l[?1h=[90m~[0m                                                                                [?2004hopendaylight-user@root&gt;</msg>
<msg time="2026-09-28T00:42:38.040688" level="INFO">${output} = [?1l&gt;[?2004l[?1h=[90m~[0m                                                                                [?2004hopendaylight-user@root&gt;</msg>
<var>${output}</var>
<arg>${KARAF_PROMPT}</arg>
<doc>Consumes and returns the server output until a match to ``regexp`` is found.</doc>
<status status="PASS" start="2026-09-28T00:42:38.038722" elapsed="0.001996"/>
</kw>
<kw name="Write Bare" owner="SSHLibrary">
<arg>logout\n</arg>
<doc>Writes the given ``text`` on the remote machine without appending a newline.</doc>
<status status="PASS" start="2026-09-28T00:42:38.040899" elapsed="0.000242"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-09-28T00:42:38.041300" elapsed="0.000181"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-28T00:42:38.042008" level="INFO">[?1l&gt;[?2004l[?1h=[90m~[0m                                                                                [?2004hopendaylight-user@root&gt;</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-28T00:42:38.041666" elapsed="0.000409"/>
</kw>
<return>
<value>${output}</value>
<status status="PASS" start="2026-09-28T00:42:38.042126" elapsed="0.000047"/>
</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.64
Note that this keyword will open&amp;close new SSH connection, without switching back to previously current session.</doc>
<status status="PASS" start="2026-09-28T00:42:37.171892" elapsed="0.870379"/>
</kw>
<arg>3x</arg>
<arg>1s</arg>
<arg>KarafKeywords.Issue Command On Karaf Console</arg>
<arg>log:set ${log_level}</arg>
<doc>Runs the specified keyword and retries if it fails.</doc>
<status status="PASS" start="2026-09-28T00:42:37.170262" elapsed="0.872068"/>
</kw>
<kw name="Append To File" owner="OperatingSystem">
<msg time="2026-09-28T00:42:38.042843" level="INFO" html="true">Appended to file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-cbench-only-vanadium/latency.csv"&gt;/w/workspace/openflowplugin-csit-1node-cbench-only-vanadium/latency.csv&lt;/a&gt;'.</msg>
<arg>${latency_results_file}</arg>
<arg>LATENCY_MIN,LATENCY_MAX,LATENCY_AVERAGE\n</arg>
<doc>Appends the given content to the specified file.</doc>
<status status="PASS" start="2026-09-28T00:42:38.042504" elapsed="0.000394"/>
</kw>
<kw name="Append To File" owner="OperatingSystem">
<msg time="2026-09-28T00:42:38.043282" level="INFO" html="true">Appended to file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-cbench-only-vanadium/throughput.csv"&gt;/w/workspace/openflowplugin-csit-1node-cbench-only-vanadium/throughput.csv&lt;/a&gt;'.</msg>
<arg>${throughput_results_file}</arg>
<arg>THROUGHPUT_MIN,THROUGHPUT_MAX,THROUGHPUT_AVERAGE\n</arg>
<doc>Appends the given content to the specified file.</doc>
<status status="PASS" start="2026-09-28T00:42:38.043064" elapsed="0.000270"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-09-28T00:42:38.043926" level="INFO">${duration_in_ms} = 60000</msg>
<var>${duration_in_ms}</var>
<arg>${duration_in_secs} * 1000</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-09-28T00:42:38.043503" elapsed="0.000489"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-09-28T00:42:38.044501" level="INFO">${duration_in_ms} = 60000</msg>
<arg>${duration_in_ms}</arg>
<doc>Makes the variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-09-28T00:42:38.044195" elapsed="0.000347"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-09-28T00:42:38.045092" level="INFO">${test_timeout} = 900.0</msg>
<var>${test_timeout}</var>
<arg>(${loops} * ${duration_in_secs}) * 1.5</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-09-28T00:42:38.044704" elapsed="0.000414"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-09-28T00:42:38.045596" level="INFO">${test_timeout} = 900.0</msg>
<arg>${test_timeout}</arg>
<doc>Makes the variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-09-28T00:42:38.045312" elapsed="0.000325"/>
</kw>
<if>
<branch type="IF" condition="&quot;${cbench_system}&quot; == &quot;localhost&quot;">
<kw name="File Should Exist" owner="OperatingSystem">
<arg>${cbench_executable}</arg>
<doc>Fails unless the given `path` points to an existing file.</doc>
<status status="NOT RUN" start="2026-09-28T00:42:38.045980" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-09-28T00:42:38.045714" elapsed="0.000320"/>
</branch>
<branch type="ELSE">
<kw name="Verify File Exists On Remote System" owner="Utils">
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-09-28T00:42:38.048103" level="INFO">${conn_id} = 2</msg>
<var>${conn_id}</var>
<arg>${system}</arg>
<arg>prompt=${prompt}</arg>
<arg>timeout=${prompt_timeout}</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-09-28T00:42:38.047724" elapsed="0.000405"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-09-28T00:42:38.049401" level="INFO">Length is 0.</msg>
<msg time="2026-09-28T00:42:38.049482" level="INFO">${pwd_length} = 0</msg>
<var>${pwd_length}</var>
<arg>${password}</arg>
<doc>Returns and logs the length of the given item as an integer.</doc>
<status status="PASS" start="2026-09-28T00:42:38.048626" elapsed="0.000880"/>
</kw>
<kw name="Run Keyword And Return If" owner="BuiltIn">
<arg>${pwd_length} &gt; 0</arg>
<arg>SSHLibrary.Login</arg>
<arg>${user}</arg>
<arg>${password}</arg>
<arg>delay=${delay}</arg>
<doc>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-09-28T00:42:38.049647" elapsed="0.000352"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-09-28T00:42:38.050787" level="INFO">Logging into '10.30.170.193:22' as 'jenkins'.</msg>
<msg time="2026-09-28T00:42:38.553788" level="INFO">Read output: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-187-generic x86_64)

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

 System information as of Mon Sep 28 00:42:07 UTC 2026

  System load:  0.26               Processes:             109
  Usage of /:   19.8% of 38.58GB   Users logged in:       0
  Memory usage: 4%                 IPv4 address for ens3: 10.30.170.193
  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-63164-410-1-mininet-ovs-217-0 ~]&gt;</msg>
<arg>${user}</arg>
<arg>${USER_HOME}/.ssh/${SSH_KEY}</arg>
<arg>${KEYFILE_PASS}</arg>
<arg>delay=${delay}</arg>
<doc>Logs into the SSH server using key-based authentication.</doc>
<status status="PASS" start="2026-09-28T00:42:38.050523" elapsed="0.503373"/>
</kw>
<msg time="2026-09-28T00:42:38.553990" level="INFO">Returning from the enclosing user keyword.</msg>
<arg>SSHLibrary.Login With Public Key</arg>
<arg>${user}</arg>
<arg>${USER_HOME}/.ssh/${SSH_KEY}</arg>
<arg>${KEYFILE_PASS}</arg>
<arg>delay=${delay}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-09-28T00:42:38.050153" elapsed="0.503918"/>
</kw>
<arg>${user}</arg>
<arg>${password}</arg>
<doc>On active SSH session: if given non-empty password, do Login, else do Login With Public Key.</doc>
<status status="PASS" start="2026-09-28T00:42:38.048315" elapsed="0.505850"/>
</kw>
<kw name="File Should Exist" owner="SSHLibrary">
<msg time="2026-09-28T00:42:38.563714" level="INFO">[chan 1] Opened sftp connection (server version 3)</msg>
<arg>${file}</arg>
<doc>Fails if the given ``path`` does NOT point to an existing file.</doc>
<status status="PASS" start="2026-09-28T00:42:38.554334" elapsed="0.011390"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-09-28T00:42:38.565992" elapsed="0.000334"/>
</kw>
<arg>${cbench_system}</arg>
<arg>${cbench_executable}</arg>
<doc>Will create connection with public key and will PASS if the given ${file} exists,
otherwise will FAIL</doc>
<status status="PASS" start="2026-09-28T00:42:38.047281" elapsed="0.519123"/>
</kw>
<status status="PASS" start="2026-09-28T00:42:38.046102" elapsed="0.520348"/>
</branch>
<status status="PASS" start="2026-09-28T00:42:38.045691" elapsed="0.520796"/>
</if>
<kw name="Should Be True" owner="BuiltIn">
<arg>${loops} &gt;= 2</arg>
<arg>If number of loops is less than 2, cbench will not run</arg>
<doc>Fails if the given condition is not true.</doc>
<status status="PASS" start="2026-09-28T00:42:38.566706" elapsed="0.000586"/>
</kw>
<kw name="Verify_Feature_Is_Installed" owner="KarafKeywords">
<if>
<branch type="IF" condition="'${IS_KARAF_APPL}' == 'False'">
<return>
<value>Not A Karaf App</value>
<status status="NOT RUN" start="2026-09-28T00:42:38.569783" elapsed="0.000023"/>
</return>
<status status="NOT RUN" start="2026-09-28T00:42:38.569634" elapsed="0.000216"/>
</branch>
<status status="PASS" start="2026-09-28T00:42:38.569606" elapsed="0.000275"/>
</if>
<kw name="Issue_Command_On_Karaf_Console" owner="KarafKeywords">
<if>
<branch type="IF" condition="'${IS_KARAF_APPL}' == 'False'">
<return>
<value>Not A Karaf App</value>
<status status="NOT RUN" start="2026-09-28T00:42:38.571969" elapsed="0.000026"/>
</return>
<status status="NOT RUN" start="2026-09-28T00:42:38.571821" elapsed="0.000218"/>
</branch>
<status status="PASS" start="2026-09-28T00:42:38.571796" elapsed="0.000273"/>
</if>
<kw name="Open Connection" owner="SSHLibrary">
<arg>${controller}</arg>
<arg>port=${karaf_port}</arg>
<arg>prompt=${KARAF_PROMPT_LOGIN}</arg>
<arg>timeout=${timeout}</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-09-28T00:42:38.572292" elapsed="0.000493"/>
</kw>
<kw name="Login" owner="SSHLibrary">
<msg time="2026-09-28T00:42:38.573329" level="INFO">Logging into '10.30.171.64:8101' as 'karaf'.</msg>
<msg time="2026-09-28T00:42:38.787062" level="INFO">Read output: [33m                                                                                           
[33m    ________                       ________                .__  .__       .__     __       
[33m    \_____  \ ______   ____   ____ \______ \ _____  ___.__.|  | |__| ____ |  |___/  |_     
[33m     /   |   \\____ \_/ __ \ /    \ |    |  \\__  \&lt;   |  ||  | |  |/ ___\|  |  \   __\    
[33m    /    |    \  |_&gt; &gt;  ___/|   |  \|    `   \/ __ \\___  ||  |_|  / /_/  &gt;   Y  \  |      
[33m    \_______  /   __/ \___  &gt;___|  /_______  (____  / ____||____/__\___  /|___|  /__|      
[33m            \/|__|        \/     \/        \/     \/\/            /_____/      \/          
[33m                                                                                           

Hit '[1m&lt;tab&gt;[0m' for a list of available commands
and '[1m[cmd] --help[0m' for help on a specific command.
Hit '[1m&lt;ctrl-d&gt;[0m' or type '[1msystem:shutdown[0m' or '[1mlogout[0m' to shutdown OpenDaylight.

[?1h=[90m~[0m                                                                                [?2004hopendaylight-user</msg>
<arg>${KARAF_USER}</arg>
<arg>${KARAF_PASSWORD}</arg>
<arg>loglevel=${loglevel}</arg>
<doc>Logs into the SSH server with the given ``username`` and ``password``.</doc>
<status status="PASS" start="2026-09-28T00:42:38.573048" elapsed="0.214114"/>
</kw>
<kw name="Write" owner="SSHLibrary">
<msg time="2026-09-28T00:42:38.875081" level="INFO">@root&gt;feature:list -i | 0[C 0g[Krep odl-openflowplugin-drop-test</msg>
<arg>${cmd}</arg>
<doc>Writes the given ``text`` on the remote machine and appends a newline.</doc>
<status status="PASS" start="2026-09-28T00:42:38.787351" elapsed="0.087789"/>
</kw>
<kw name="Read Until Regexp" owner="SSHLibrary">
<msg time="2026-09-28T00:42:38.888470" level="INFO">[?1l&gt;[?2004l[31;1modl-openflowplugin-drop-test[0m                                    x 0.21.5           x x        x Started x [31;1modl-openflowplugin-drop-test[0m                                    x OpenDaylight :: Openflow Plugin :: Drop Test
[?1h=[90m~[0m                                                                                [?2004hopendaylight-user@root&gt;</msg>
<msg time="2026-09-28T00:42:38.888631" level="INFO">${output} = [?1l&gt;[?2004l[31;1modl-openflowplugin-drop-test[0m                                    x 0.21.5           x x        x Started x [31;1modl-openflowplugin-drop-test[0m                     ...</msg>
<var>${output}</var>
<arg>${KARAF_PROMPT}</arg>
<doc>Consumes and returns the server output until a match to ``regexp`` is found.</doc>
<status status="PASS" start="2026-09-28T00:42:38.875294" elapsed="0.013367"/>
</kw>
<kw name="Write Bare" owner="SSHLibrary">
<arg>logout\n</arg>
<doc>Writes the given ``text`` on the remote machine without appending a newline.</doc>
<status status="PASS" start="2026-09-28T00:42:38.888811" elapsed="0.000184"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-09-28T00:42:38.889145" elapsed="0.000150"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-28T00:42:38.889767" level="INFO">[?1l&gt;[?2004l[31;1modl-openflowplugin-drop-test[0m                                    x 0.21.5           x x        x Started x [31;1modl-openflowplugin-drop-test[0m                                    x OpenDaylight :: Openflow Plugin :: Drop Test
[?1h=[90m~[0m                                                                                [?2004hopendaylight-user@root&gt;</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-28T00:42:38.889467" elapsed="0.000353"/>
</kw>
<return>
<value>${output}</value>
<status status="PASS" start="2026-09-28T00:42:38.889865" elapsed="0.000043"/>
</return>
<msg time="2026-09-28T00:42:38.890049" level="INFO">${output} = [?1l&gt;[?2004l[31;1modl-openflowplugin-drop-test[0m                                    x 0.21.5           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.64
Note that this keyword will open&amp;close new SSH connection, without switching back to previously current session.</doc>
<status status="PASS" start="2026-09-28T00:42:38.571401" elapsed="0.318678"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${output}</arg>
<arg>${feature_name}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-09-28T00:42:38.890235" elapsed="0.000460"/>
</kw>
<return>
<value>${output}</value>
<status status="PASS" start="2026-09-28T00:42:38.890776" elapsed="0.000032"/>
</return>
<arg>odl-openflowplugin-drop-test</arg>
<doc>Will Succeed if the given ${feature_name} is found in the output of "feature:list -i"</doc>
<status status="PASS" start="2026-09-28T00:42:38.569301" elapsed="0.321586"/>
</kw>
<kw name="Issue_Command_On_Karaf_Console" owner="KarafKeywords">
<if>
<branch type="IF" condition="'${IS_KARAF_APPL}' == 'False'">
<return>
<value>Not A Karaf App</value>
<status status="NOT RUN" start="2026-09-28T00:42:38.892469" elapsed="0.000014"/>
</return>
<status status="NOT RUN" start="2026-09-28T00:42:38.892362" elapsed="0.000150"/>
</branch>
<status status="PASS" start="2026-09-28T00:42:38.892341" elapsed="0.000192"/>
</if>
<kw name="Open Connection" owner="SSHLibrary">
<arg>${controller}</arg>
<arg>port=${karaf_port}</arg>
<arg>prompt=${KARAF_PROMPT_LOGIN}</arg>
<arg>timeout=${timeout}</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-09-28T00:42:38.892686" elapsed="0.000390"/>
</kw>
<kw name="Login" owner="SSHLibrary">
<msg time="2026-09-28T00:42:38.893448" level="INFO">Logging into '10.30.171.64:8101' as 'karaf'.</msg>
<msg time="2026-09-28T00:42:39.098890" level="INFO">Read output: [33m                                                                                           
[33m    ________                       ________                .__  .__       .__     __       
[33m    \_____  \ ______   ____   ____ \______ \ _____  ___.__.|  | |__| ____ |  |___/  |_     
[33m     /   |   \\____ \_/ __ \ /    \ |    |  \\__  \&lt;   |  ||  | |  |/ ___\|  |  \   __\    
[33m    /    |    \  |_&gt; &gt;  ___/|   |  \|    `   \/ __ \\___  ||  |_|  / /_/  &gt;   Y  \  |      
[33m    \_______  /   __/ \___  &gt;___|  /_______  (____  / ____||____/__\___  /|___|  /__|      
[33m            \/|__|        \/     \/        \/     \/\/            /_____/      \/          
[33m                                                                                           

Hit '[1m&lt;tab&gt;[0m' for a list of available commands
and '[1m[cmd] --help[0m' for help on a specific command.
Hit '[1m&lt;ctrl-d&gt;[0m' or type '[1msystem:shutdown[0m' or '[1mlogout[0m' to shutdown OpenDaylight.

[?1h=[90m~[0m                                                                                [?2004hopendaylight-user</msg>
<arg>${KARAF_USER}</arg>
<arg>${KARAF_PASSWORD}</arg>
<arg>loglevel=${loglevel}</arg>
<doc>Logs into the SSH server with the given ``username`` and ``password``.</doc>
<status status="PASS" start="2026-09-28T00:42:38.893247" elapsed="0.205738"/>
</kw>
<kw name="Write" owner="SSHLibrary">
<msg time="2026-09-28T00:42:39.120328" level="INFO">@root&gt;dropallpacketsrpc on</msg>
<arg>${cmd}</arg>
<doc>Writes the given ``text`` on the remote machine and appends a newline.</doc>
<status status="PASS" start="2026-09-28T00:42:39.099144" elapsed="0.021238"/>
</kw>
<kw name="Read Until Regexp" owner="SSHLibrary">
<msg time="2026-09-28T00:42:39.122509" level="INFO">[?1l&gt;[?2004lDropAllFlows transitions to on
[?1h=[90m~[0m                                                                                [?2004hopendaylight-user@root&gt;</msg>
<msg time="2026-09-28T00:42:39.122614" level="INFO">${output} = [?1l&gt;[?2004lDropAllFlows transitions to on
[?1h=[90m~[0m                                                                                [?2004hopendaylight-user@root&gt;</msg>
<var>${output}</var>
<arg>${KARAF_PROMPT}</arg>
<doc>Consumes and returns the server output until a match to ``regexp`` is found.</doc>
<status status="PASS" start="2026-09-28T00:42:39.120530" elapsed="0.002112"/>
</kw>
<kw name="Write Bare" owner="SSHLibrary">
<arg>logout\n</arg>
<doc>Writes the given ``text`` on the remote machine without appending a newline.</doc>
<status status="PASS" start="2026-09-28T00:42:39.122790" elapsed="0.000177"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-09-28T00:42:39.123111" elapsed="0.000144"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-28T00:42:39.123671" level="INFO">[?1l&gt;[?2004lDropAllFlows transitions to on
[?1h=[90m~[0m                                                                                [?2004hopendaylight-user@root&gt;</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-28T00:42:39.123428" elapsed="0.000289"/>
</kw>
<return>
<value>${output}</value>
<status status="PASS" start="2026-09-28T00:42:39.123774" elapsed="0.000034"/>
</return>
<arg>dropallpacketsrpc on</arg>
<doc>Will execute the given ${cmd} by ssh'ing to the karaf console running on 10.30.171.64
Note that this keyword will open&amp;close new SSH connection, without switching back to previously current session.</doc>
<status status="PASS" start="2026-09-28T00:42:38.892087" elapsed="0.231801"/>
</kw>
<status status="PASS" start="2026-09-28T00:42:37.168506" elapsed="1.955455"/>
</kw>
<test id="s1-t1" name="Cbench Latency Test" line="37">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-28T00:42:39.125543" level="INFO">Cbench tests using 10 iterations of 60 second tests. Switch Count: 16. Unique MACS to cycle: 100</msg>
<arg>Cbench tests using ${loops} iterations of ${duration_in_secs} second tests. Switch Count: ${switch_count}. Unique MACS to cycle: ${num_of_unique_macs}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-28T00:42:39.124900" elapsed="0.000703"/>
</kw>
<kw name="Run Cbench And Log Results">
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-09-28T00:42:39.126860" level="INFO">${output_filename} = latency.csv</msg>
<arg>${output_filename}</arg>
<doc>Makes the variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-09-28T00:42:39.126526" elapsed="0.000375"/>
</kw>
<if>
<branch type="IF" condition="&quot;${cbench_system}&quot; == &quot;localhost&quot;">
<kw name="Run" owner="OperatingSystem">
<var>${output}</var>
<arg>${cbench_executable} -c ${ODL_SYSTEM_IP} ${cbench_args}</arg>
<doc>*This keyword is considered deprecated. Use the [Process] library instead.*</doc>
<status status="NOT RUN" start="2026-09-28T00:42:39.127209" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-09-28T00:42:39.126990" elapsed="0.000274"/>
</branch>
<branch type="ELSE">
<kw name="Run Command On Remote System" owner="Utils">
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot; and &quot;${return_stderr}&quot;!=&quot;True&quot;">
<kw name="Fail" owner="BuiltIn">
<arg>At least one of {return_stdout} or {return_stderr} args should be set to True</arg>
<doc>Fails the test or task with the given message and optionally alters its tags.</doc>
<status status="NOT RUN" start="2026-09-28T00:42:39.128340" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-09-28T00:42:39.128123" elapsed="0.000270"/>
</branch>
<status status="PASS" start="2026-09-28T00:42:39.128105" elapsed="0.000312"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-09-28T00:42:39.128784" level="INFO">index=None
host=None
alias=None
port=22
timeout=3 seconds
newline=

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

prompt=None
term_type=vt100
width=80
height=24
path_separator=/
encoding=utf8
escape_ansi=False
encoding_errors=strict</msg>
<var>${current_ssh_connection}</var>
<doc>Returns information about the connection.</doc>
<status status="PASS" start="2026-09-28T00:42:39.128592" elapsed="0.000329"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-28T00:42:39.129450" level="INFO">Attempting to execute command "/usr/local/bin/cbench -c 10.30.171.64 -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633" on remote system "10.30.170.193" by user "jenkins" with keyfile pass "any" and prompt "&gt;" and password ""</msg>
<arg>Attempting to execute command "${cmd}" on remote system "${system}" by user "${user}" with keyfile pass "${keyfile_pass}" and prompt "${prompt}" and password "${password}"</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-28T00:42:39.129119" elapsed="0.000388"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-09-28T00:42:39.130096" level="INFO">${conn_id} = 5</msg>
<var>${conn_id}</var>
<arg>${system}</arg>
<arg>prompt=${prompt}</arg>
<arg>timeout=${prompt_timeout}</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-09-28T00:42:39.129669" elapsed="0.000454"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-09-28T00:42:39.130962" level="INFO">Length is 0.</msg>
<msg time="2026-09-28T00:42:39.131046" level="INFO">${pwd_length} = 0</msg>
<var>${pwd_length}</var>
<arg>${password}</arg>
<doc>Returns and logs the length of the given item as an integer.</doc>
<status status="PASS" start="2026-09-28T00:42:39.130644" elapsed="0.000425"/>
</kw>
<kw name="Run Keyword And Return If" owner="BuiltIn">
<arg>${pwd_length} &gt; 0</arg>
<arg>SSHLibrary.Login</arg>
<arg>${user}</arg>
<arg>${password}</arg>
<arg>delay=${delay}</arg>
<doc>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-09-28T00:42:39.131206" elapsed="0.000303"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-09-28T00:42:39.132331" level="INFO">Logging into '10.30.170.193:22' as 'jenkins'.</msg>
<msg time="2026-09-28T00:42:39.510866" level="INFO">Read output: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-187-generic x86_64)

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

 System information as of Mon Sep 28 00:42:07 UTC 2026

  System load:  0.26               Processes:             109
  Usage of /:   19.8% of 38.58GB   Users logged in:       0
  Memory usage: 4%                 IPv4 address for ens3: 10.30.170.193
  Swap usage:   0%


Expanded Security Maintenance for Applications is not enabled.

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

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


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


Last login: Mon Sep 28 00:42:38 2026 from 10.30.170.27
[?2004h[jenkins@releng-63164-410-1-mininet-ovs-217-0 ~]&gt;</msg>
<arg>${user}</arg>
<arg>${USER_HOME}/.ssh/${SSH_KEY}</arg>
<arg>${KEYFILE_PASS}</arg>
<arg>delay=${delay}</arg>
<doc>Logs into the SSH server using key-based authentication.</doc>
<status status="PASS" start="2026-09-28T00:42:39.132059" elapsed="0.378938"/>
</kw>
<msg time="2026-09-28T00:42:39.511067" level="INFO">Returning from the enclosing user keyword.</msg>
<arg>SSHLibrary.Login With Public Key</arg>
<arg>${user}</arg>
<arg>${USER_HOME}/.ssh/${SSH_KEY}</arg>
<arg>${KEYFILE_PASS}</arg>
<arg>delay=${delay}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-09-28T00:42:39.131658" elapsed="0.379474"/>
</kw>
<arg>${user}</arg>
<arg>${password}</arg>
<doc>On active SSH session: if given non-empty password, do Login, else do Login With Public Key.</doc>
<status status="PASS" start="2026-09-28T00:42:39.130303" elapsed="0.380916"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-28T00:42:39.511637" level="INFO">Executing command '/usr/local/bin/cbench -c 10.30.171.64 -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633'.</msg>
<msg time="2026-09-28T00:52:45.677546" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-09-28T00:52:45.678267" level="INFO">${stdout} = </msg>
<msg time="2026-09-28T00:52:45.678390" level="INFO">${stderr} = cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.171.64:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with 100...</msg>
<var>${stdout}</var>
<var>${stderr}</var>
<arg>${cmd}</arg>
<arg>return_stderr=True</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-28T00:42:39.511427" elapsed="606.167020"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-09-28T00:52:45.678867" elapsed="0.000761"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-28T00:52:45.680892" level="INFO">cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.171.64: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.64. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
00:43:44.741 16  switches: flows:  93868 91650 93909 89131 94037 93172 93906 90054 90589 90531 86166 89464 89876 87218 88554 88083  total = 24.170133 per ms 
00:44:44.843 16  switches: flows:  99087 97782 99079 95787 97985 97451 99700 95386 93097 94171 92740 94797 93123 92796 91458 94324  total = 25.436654 per ms 
00:45:44.947 16  switches: flows:  98788 97315 99304 92782 96786 96343 99006 95490 92148 94438 90454 95593 92609 93051 90841 93364  total = 25.263028 per ms 
00:46:45.049 16  switches: flows:  99726 97371 99063 95094 98984 96717 99878 95128 93281 95667 92307 94977 94308 94532 91160 95179  total = 25.513619 per ms 
00:47:45.150 16  switches: flows:  96063 93634 95424 93876 96441 92145 94966 92734 89892 92653 89449 92549 89771 90246 88945 91683  total = 24.633413 per ms 
00:48:45.251 16  switches: flows:  100333 98161 98756 96500 100458 95663 99249 95855 92328 95615 92763 95367 94514 94735 91680 92293  total = 25.528543 per ms 
00:49:45.352 16  switches: flows:  99524 96283 98885 95720 98588 93307 98891 94322 92318 93903 91887 93867 93815 94752 90783 92272  total = 25.276435 per ms 
00:50:45.454 16  switches: flows:  99412 95668 97777 95448 99036 94507 100316 96711 92994 93920 93918 93083 93458 93928 92042 91418  total = 25.351611 per ms 
00:51:45.556 16  switches: flows:  101886 98900 97551 94122 98364 95902 100063 95389 92640 95189 93342 95811 92585 93824 93448 91326  total = 25.463148 per ms 
00:52:45.658 16  switches: flows:  101853 99163 97993 94781 97528 95527 99742 97242 94222 94667 94532 96691 94910 94900 93343 94578  total = 25.651724 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 24633.41/25651.72/25346.46/8453.40 responses/s</msg>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-28T00:52:45.680157" elapsed="0.001086"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="PASS" start="2026-09-28T00:52:45.681695" elapsed="0.000070"/>
</return>
<status status="PASS" start="2026-09-28T00:52:45.681444" elapsed="0.000396"/>
</branch>
<status status="PASS" start="2026-09-28T00:52:45.681389" elapsed="0.000502"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="NOT RUN" start="2026-09-28T00:52:45.682121" elapsed="0.000028"/>
</return>
<status status="NOT RUN" start="2026-09-28T00:52:45.682045" elapsed="0.000161"/>
</branch>
<status status="NOT RUN" start="2026-09-28T00:52:45.682011" elapsed="0.000239"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-09-28T00:52:45.682339" elapsed="0.000029"/>
</return>
<kw name="Restore_Current_Ssh_Connection_From_Index" owner="SSHKeywords" type="TEARDOWN">
<kw name="Run Keyword And Return If" owner="BuiltIn">
<arg>${connection_index} is not None</arg>
<arg>SSHLibrary.Switch Connection</arg>
<arg>${connection_index}</arg>
<doc>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-09-28T00:52:45.683978" elapsed="0.000698"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<arg>127.0.0.1</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-09-28T00:52:45.685104" elapsed="0.000372"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-09-28T00:52:45.685761" elapsed="0.000236"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-09-28T00:52:45.683023" elapsed="0.003088"/>
</kw>
<msg time="2026-09-28T00:52:45.686363" level="INFO">${output} = cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.171.64:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with 100...</msg>
<var>${output}</var>
<arg>${cbench_system}</arg>
<arg>${cbench_executable} -c ${ODL_SYSTEM_IP} ${cbench_args}</arg>
<arg>prompt_timeout=${test_timeout}</arg>
<arg>return_stdout=False</arg>
<arg>return_stderr=True</arg>
<doc>Reduces the common work of running a command on a remote system to a single higher level
robot keyword, taking care to log in with a public key and. The command given is written and the return value
depends on the passed argument values of return_stdout (default: True) and return_stderr (default: False).
At least one should be True, or the keyword will exit and FAIL. If both are True, the resulting return value
will be a two element list containing both. Otherwise the resulting return value is a string.
No test conditions are checked.</doc>
<status status="PASS" start="2026-09-28T00:42:39.127589" elapsed="606.558831"/>
</kw>
<status status="PASS" start="2026-09-28T00:42:39.127290" elapsed="606.559228"/>
</branch>
<status status="PASS" start="2026-09-28T00:42:39.126969" elapsed="606.559598"/>
</if>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-28T00:52:45.687610" level="INFO">cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.171.64: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.64. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
00:43:44.741 16  switches: flows:  93868 91650 93909 89131 94037 93172 93906 90054 90589 90531 86166 89464 89876 87218 88554 88083  total = 24.170133 per ms 
00:44:44.843 16  switches: flows:  99087 97782 99079 95787 97985 97451 99700 95386 93097 94171 92740 94797 93123 92796 91458 94324  total = 25.436654 per ms 
00:45:44.947 16  switches: flows:  98788 97315 99304 92782 96786 96343 99006 95490 92148 94438 90454 95593 92609 93051 90841 93364  total = 25.263028 per ms 
00:46:45.049 16  switches: flows:  99726 97371 99063 95094 98984 96717 99878 95128 93281 95667 92307 94977 94308 94532 91160 95179  total = 25.513619 per ms 
00:47:45.150 16  switches: flows:  96063 93634 95424 93876 96441 92145 94966 92734 89892 92653 89449 92549 89771 90246 88945 91683  total = 24.633413 per ms 
00:48:45.251 16  switches: flows:  100333 98161 98756 96500 100458 95663 99249 95855 92328 95615 92763 95367 94514 94735 91680 92293  total = 25.528543 per ms 
00:49:45.352 16  switches: flows:  99524 96283 98885 95720 98588 93307 98891 94322 92318 93903 91887 93867 93815 94752 90783 92272  total = 25.276435 per ms 
00:50:45.454 16  switches: flows:  99412 95668 97777 95448 99036 94507 100316 96711 92994 93920 93918 93083 93458 93928 92042 91418  total = 25.351611 per ms 
00:51:45.556 16  switches: flows:  101886 98900 97551 94122 98364 95902 100063 95389 92640 95189 93342 95811 92585 93824 93448 91326  total = 25.463148 per ms 
00:52:45.658 16  switches: flows:  101853 99163 97993 94781 97528 95527 99742 97242 94222 94667 94532 96691 94910 94900 93343 94578  total = 25.651724 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 24633.41/25651.72/25346.46/8453.40 responses/s</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-28T00:52:45.686993" elapsed="0.000770"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${output}</arg>
<arg>RESULT</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-09-28T00:52:45.688138" elapsed="0.000836"/>
</kw>
<kw name="Get Lines Containing String" owner="String">
<msg time="2026-09-28T00:52:45.689869" level="INFO">1 out of 23 lines matched.</msg>
<msg time="2026-09-28T00:52:45.690092" level="INFO">${result_line} = RESULT: 16 switches 9 tests min/max/avg/stdev = 24633.41/25651.72/25346.46/8453.40 responses/s</msg>
<var>${result_line}</var>
<arg>${output}</arg>
<arg>RESULT</arg>
<doc>Returns lines of the given `string` that contain the `pattern`.</doc>
<status status="PASS" start="2026-09-28T00:52:45.689439" elapsed="0.000706"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-09-28T00:52:45.691047" level="INFO">@{results_list} = [ RESULT: | 16 | switches | 9 | tests | min/max/avg/stdev | = | 24633.41/25651.72/25346.46/8453.40 | responses/s ]</msg>
<var>@{results_list}</var>
<arg>${result_line}</arg>
<doc>Splits the `string` using `separator` as a delimiter string.</doc>
<status status="PASS" start="2026-09-28T00:52:45.690527" elapsed="0.000579"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-28T00:52:45.692335" level="INFO">min/max/avg/stdev</msg>
<arg>${results_list[5]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-28T00:52:45.691535" elapsed="0.000923"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-28T00:52:45.693661" level="INFO">24633.41/25651.72/25346.46/8453.40</msg>
<arg>${results_list[7]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-28T00:52:45.692864" elapsed="0.000912"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-09-28T00:52:45.694818" level="INFO">@{result_name_list} = [ min | max | avg | stdev ]</msg>
<var>@{result_name_list}</var>
<arg>${results_list[5]}</arg>
<arg>/</arg>
<doc>Splits the `string` using `separator` as a delimiter string.</doc>
<status status="PASS" start="2026-09-28T00:52:45.694161" elapsed="0.000714"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-09-28T00:52:45.696026" level="INFO">@{result_value_list} = [ 24633.41 | 25651.72 | 25346.46 | 8453.40 ]</msg>
<var>@{result_value_list}</var>
<arg>${results_list[7]}</arg>
<arg>/</arg>
<doc>Splits the `string` using `separator` as a delimiter string.</doc>
<status status="PASS" start="2026-09-28T00:52:45.695347" elapsed="0.000738"/>
</kw>
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-09-28T00:52:45.697082" level="INFO">Length is 4.</msg>
<msg time="2026-09-28T00:52:45.697261" level="INFO">${num_stats} = 4</msg>
<var>${num_stats}</var>
<arg>${result_name_list}</arg>
<doc>Returns and logs the length of the given item as an integer.</doc>
<status status="PASS" start="2026-09-28T00:52:45.696442" elapsed="0.000892"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-28T00:52:45.699164" level="INFO">min :: 24633.41</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-28T00:52:45.698201" elapsed="0.001081"/>
</kw>
<var name="${i}">0</var>
<status status="PASS" start="2026-09-28T00:52:45.697795" elapsed="0.001585"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-28T00:52:45.700919" level="INFO">max :: 25651.72</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-28T00:52:45.699931" elapsed="0.001139"/>
</kw>
<var name="${i}">1</var>
<status status="PASS" start="2026-09-28T00:52:45.699562" elapsed="0.001577"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-28T00:52:45.702664" level="INFO">avg :: 25346.46</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-28T00:52:45.701713" elapsed="0.001066"/>
</kw>
<var name="${i}">2</var>
<status status="PASS" start="2026-09-28T00:52:45.701341" elapsed="0.001508"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-28T00:52:45.704405" level="INFO">stdev :: 8453.40</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-28T00:52:45.703454" elapsed="0.001068"/>
</kw>
<var name="${i}">3</var>
<status status="PASS" start="2026-09-28T00:52:45.703064" elapsed="0.001528"/>
</iter>
<var>${i}</var>
<value>0</value>
<value>${num_stats}</value>
<status status="PASS" start="2026-09-28T00:52:45.697462" elapsed="0.007196"/>
</for>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-09-28T00:52:45.705909" level="INFO">${min} = 24633.41</msg>
<var>${min}</var>
<arg>${result_value_list[${0}]}</arg>
<doc>Returns the given values which can then be assigned to a variable.</doc>
<status status="PASS" start="2026-09-28T00:52:45.705030" elapsed="0.000965"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-09-28T00:52:45.707232" level="INFO">${max} = 25651.72</msg>
<var>${max}</var>
<arg>${result_value_list[${1}]}</arg>
<doc>Returns the given values which can then be assigned to a variable.</doc>
<status status="PASS" start="2026-09-28T00:52:45.706354" elapsed="0.000934"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-09-28T00:52:45.708540" level="INFO">${average} = 25346.46</msg>
<var>${average}</var>
<arg>${result_value_list[${2}]}</arg>
<doc>Returns the given values which can then be assigned to a variable.</doc>
<status status="PASS" start="2026-09-28T00:52:45.707643" elapsed="0.000952"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-09-28T00:52:45.709809" level="INFO">${stdev} = 8453.40</msg>
<var>${stdev}</var>
<arg>${result_value_list[${3}]}</arg>
<doc>Returns the given values which can then be assigned to a variable.</doc>
<status status="PASS" start="2026-09-28T00:52:45.708926" elapsed="0.000938"/>
</kw>
<kw name="Get Time" owner="BuiltIn">
<msg time="2026-09-28T00:52:45.711089" level="INFO">${date} = 2026-09-28 00:52:45</msg>
<var>${date}</var>
<arg>d,m,s</arg>
<doc>Returns the given time in the requested format.</doc>
<status status="PASS" start="2026-09-28T00:52:45.710303" elapsed="0.000841"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-28T00:52:45.712397" level="INFO">CBench Result: 2026-09-28 00:52:45,-m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633,24633.41,25651.72,25346.46,8453.40</msg>
<arg>CBench Result: ${date},${cbench_args},${min},${max},${average},${stdev}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-28T00:52:45.711617" elapsed="0.000898"/>
</kw>
<kw name="Log Results And Determine Status">
<kw name="Append To File" owner="OperatingSystem">
<msg time="2026-09-28T00:52:45.714785" level="INFO" html="true">Appended to file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-cbench-only-vanadium/latency.csv"&gt;/w/workspace/openflowplugin-csit-1node-cbench-only-vanadium/latency.csv&lt;/a&gt;'.</msg>
<arg>${output_file}</arg>
<arg>${min},${max},${average}\n</arg>
<doc>Appends the given content to the specified file.</doc>
<status status="PASS" start="2026-09-28T00:52:45.713719" elapsed="0.001204"/>
</kw>
<kw name="Should Be True" owner="BuiltIn">
<arg>${average} &gt; ${threshold}</arg>
<arg>${average} flow_mods per/sec did not exceed threshold of ${threshold}</arg>
<doc>Fails if the given condition is not true.</doc>
<status status="PASS" start="2026-09-28T00:52:45.715329" elapsed="0.000890"/>
</kw>
<arg>${min}</arg>
<arg>${max}</arg>
<arg>${average}</arg>
<arg>${average_threshold}</arg>
<arg>${output_filename}</arg>
<status status="PASS" start="2026-09-28T00:52:45.712782" elapsed="0.003596"/>
</kw>
<arg>-m ${duration_in_ms} -M ${num_of_unique_macs} -S ${switch_count} -l ${loops} -D ${start_delay} -p ${of_port}</arg>
<arg>${latency_threshold}</arg>
<arg>${latency_results_file}</arg>
<status status="PASS" start="2026-09-28T00:42:39.125995" elapsed="606.590505"/>
</kw>
<kw name="Sleep" owner="BuiltIn">
<msg time="2026-09-28T00:52:45.717505" level="INFO">Slept 0 seconds.</msg>
<arg>${test_delay}</arg>
<doc>Pauses execution for the given time.</doc>
<status status="PASS" start="2026-09-28T00:52:45.716818" elapsed="0.000803"/>
</kw>
<kw name="Log Results As Zero If Cbench Timed Out" type="TEARDOWN">
<kw name="Run Keyword If Timeout Occurred" owner="BuiltIn">
<arg>Log Results And Determine Status</arg>
<arg>0</arg>
<arg>0</arg>
<arg>0</arg>
<arg>0</arg>
<arg>${output_filename}</arg>
<doc>Runs the given keyword if either a test or a keyword timeout has occurred.</doc>
<status status="PASS" start="2026-09-28T00:52:45.718732" elapsed="0.000527"/>
</kw>
<status status="PASS" start="2026-09-28T00:52:45.718061" elapsed="0.001303"/>
</kw>
<doc>cbench executed in default latency mode. Test parameters have defaults, but can be overridden
on the pybot command line</doc>
<tag>cbench</tag>
<tag>latency</tag>
<timeout value="15 minutes"/>
<status status="PASS" start="2026-09-28T00:42:39.124090" elapsed="606.595321"/>
</test>
<test id="s1-t2" name="Cbench Throughput Test" line="51">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-28T00:52:45.721641" level="INFO">Cbench tests using 10 iterations of 60 second tests. Switch Count: 16. Unique MACS to cycle: 100</msg>
<arg>Cbench tests using ${loops} iterations of ${duration_in_secs} second tests. Switch Count: ${switch_count}. Unique MACS to cycle: ${num_of_unique_macs}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-28T00:52:45.721181" elapsed="0.000535"/>
</kw>
<kw name="Run Cbench And Log Results">
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-09-28T00:52:45.723274" level="INFO">${output_filename} = throughput.csv</msg>
<arg>${output_filename}</arg>
<doc>Makes the variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-09-28T00:52:45.722835" elapsed="0.000515"/>
</kw>
<if>
<branch type="IF" condition="&quot;${cbench_system}&quot; == &quot;localhost&quot;">
<kw name="Run" owner="OperatingSystem">
<var>${output}</var>
<arg>${cbench_executable} -c ${ODL_SYSTEM_IP} ${cbench_args}</arg>
<doc>*This keyword is considered deprecated. Use the [Process] library instead.*</doc>
<status status="NOT RUN" start="2026-09-28T00:52:45.723808" elapsed="0.000031"/>
</kw>
<status status="NOT RUN" start="2026-09-28T00:52:45.723449" elapsed="0.000437"/>
</branch>
<branch type="ELSE">
<kw name="Run Command On Remote System" owner="Utils">
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot; and &quot;${return_stderr}&quot;!=&quot;True&quot;">
<kw name="Fail" owner="BuiltIn">
<arg>At least one of {return_stdout} or {return_stderr} args should be set to True</arg>
<doc>Fails the test or task with the given message and optionally alters its tags.</doc>
<status status="NOT RUN" start="2026-09-28T00:52:45.725741" elapsed="0.000027"/>
</kw>
<status status="NOT RUN" start="2026-09-28T00:52:45.725440" elapsed="0.000373"/>
</branch>
<status status="PASS" start="2026-09-28T00:52:45.725415" elapsed="0.000429"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-09-28T00:52:45.726376" level="INFO">index=None
host=None
alias=None
port=22
timeout=3 seconds
newline=

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

prompt=None
term_type=vt100
width=80
height=24
path_separator=/
encoding=utf8
escape_ansi=False
encoding_errors=strict</msg>
<var>${current_ssh_connection}</var>
<doc>Returns information about the connection.</doc>
<status status="PASS" start="2026-09-28T00:52:45.726122" elapsed="0.000454"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-28T00:52:45.727325" level="INFO">Attempting to execute command "/usr/local/bin/cbench -c 10.30.171.64 -t -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633" on remote system "10.30.170.193" by user "jenkins" with keyfile pass "any" and prompt "&gt;" and password ""</msg>
<arg>Attempting to execute command "${cmd}" on remote system "${system}" by user "${user}" with keyfile pass "${keyfile_pass}" and prompt "${prompt}" and password "${password}"</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-28T00:52:45.726815" elapsed="0.000588"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-09-28T00:52:45.728094" level="INFO">${conn_id} = 7</msg>
<var>${conn_id}</var>
<arg>${system}</arg>
<arg>prompt=${prompt}</arg>
<arg>timeout=${prompt_timeout}</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-09-28T00:52:45.727626" elapsed="0.000503"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-09-28T00:52:45.729427" level="INFO">Length is 0.</msg>
<msg time="2026-09-28T00:52:45.729542" level="INFO">${pwd_length} = 0</msg>
<var>${pwd_length}</var>
<arg>${password}</arg>
<doc>Returns and logs the length of the given item as an integer.</doc>
<status status="PASS" start="2026-09-28T00:52:45.729006" elapsed="0.000568"/>
</kw>
<kw name="Run Keyword And Return If" owner="BuiltIn">
<arg>${pwd_length} &gt; 0</arg>
<arg>SSHLibrary.Login</arg>
<arg>${user}</arg>
<arg>${password}</arg>
<arg>delay=${delay}</arg>
<doc>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-09-28T00:52:45.729760" elapsed="0.000448"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-09-28T00:52:45.731396" level="INFO">Logging into '10.30.170.193:22' as 'jenkins'.</msg>
<msg time="2026-09-28T00:52:46.417211" level="INFO">Read output: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-187-generic x86_64)

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

 System information as of Mon Sep 28 00:52:45 UTC 2026

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


Expanded Security Maintenance for Applications is not enabled.

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

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


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


Last login: Mon Sep 28 00:42:39 2026 from 10.30.170.27
[?2004h[jenkins@releng-63164-410-1-mininet-ovs-217-0 ~]&gt;</msg>
<arg>${user}</arg>
<arg>${USER_HOME}/.ssh/${SSH_KEY}</arg>
<arg>${KEYFILE_PASS}</arg>
<arg>delay=${delay}</arg>
<doc>Logs into the SSH server using key-based authentication.</doc>
<status status="PASS" start="2026-09-28T00:52:45.730931" elapsed="0.686464"/>
</kw>
<msg time="2026-09-28T00:52:46.417480" level="INFO">Returning from the enclosing user keyword.</msg>
<arg>SSHLibrary.Login With Public Key</arg>
<arg>${user}</arg>
<arg>${USER_HOME}/.ssh/${SSH_KEY}</arg>
<arg>${KEYFILE_PASS}</arg>
<arg>delay=${delay}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-09-28T00:52:45.730435" elapsed="0.687126"/>
</kw>
<arg>${user}</arg>
<arg>${password}</arg>
<doc>On active SSH session: if given non-empty password, do Login, else do Login With Public Key.</doc>
<status status="PASS" start="2026-09-28T00:52:45.728498" elapsed="0.689169"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-28T00:52:46.418178" level="INFO">Executing command '/usr/local/bin/cbench -c 10.30.171.64 -t -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633'.</msg>
<msg time="2026-09-28T01:02:52.493672" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-09-28T01:02:52.494393" level="INFO">${stdout} = </msg>
<msg time="2026-09-28T01:02:52.494492" level="INFO">${stderr} = cbench: controller benchmarking tool
   running in mode 'throughput'
   connecting to controller at 10.30.171.64: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-09-28T00:52:46.417911" elapsed="606.076648"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-09-28T01:02:52.494993" elapsed="0.000680"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-28T01:02:52.496968" level="INFO">cbench: controller benchmarking tool
   running in mode 'throughput'
   connecting to controller at 10.30.171.64: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.64. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
00:53:51.532 16  switches: flows:  524722 509687 518945 520722 520617 520794 522627 511156 509889 519943 523656 505078 522078 508446 516952 514102  total = 137.823567 per ms 
00:54:51.635 16  switches: flows:  575706 577203 582842 574480 582561 580002 575462 571675 581303 575953 579384 575525 580181 573133 576802 568262  total = 153.579503 per ms 
00:55:51.737 16  switches: flows:  530577 538690 528244 523402 527980 521004 527168 523490 533632 534099 528838 533976 534624 528599 525308 529840  total = 140.920861 per ms 
00:56:51.839 16  switches: flows:  512019 508724 514131 506176 511366 506820 506821 507969 510620 517087 512337 510629 514585 512060 504479 513731  total = 135.930555 per ms 
00:57:51.941 16  switches: flows:  537263 539769 538633 539365 537849 539400 539921 537697 544104 546426 541311 540651 542433 545596 538386 544942  total = 143.987664 per ms 
00:58:52.042 16  switches: flows:  527916 522967 526617 523721 522924 523320 529174 521498 522161 521524 521852 524502 525701 521661 523868 522999  total = 139.471759 per ms 
00:59:52.143 16  switches: flows:  528299 526341 528392 523698 527061 527128 532758 528139 524357 533611 527155 529806 529544 532011 526883 532873  total = 140.731331 per ms 
01:00:52.245 16  switches: flows:  538406 534940 542708 536071 539010 537607 535053 536844 544255 539496 530517 535840 539157 539366 534087 533669  total = 143.042844 per ms 
01:01:52.347 16  switches: flows:  492745 497307 500265 493914 494741 503772 497060 498976 493168 503533 503519 502252 493713 504655 494772 499456  total = 132.672993 per ms 
01:02:52.449 16  switches: flows:  528974 527823 535415 535282 520961 536407 533055 525368 529637 530454 535201 530414 525511 530736 529686 533455  total = 141.235564 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 132672.99/153579.50/141285.90/47410.52 responses/s</msg>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-28T01:02:52.496205" elapsed="0.001083"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="PASS" start="2026-09-28T01:02:52.497720" elapsed="0.000068"/>
</return>
<status status="PASS" start="2026-09-28T01:02:52.497453" elapsed="0.000409"/>
</branch>
<status status="PASS" start="2026-09-28T01:02:52.497405" elapsed="0.000508"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="NOT RUN" start="2026-09-28T01:02:52.498164" elapsed="0.000027"/>
</return>
<status status="NOT RUN" start="2026-09-28T01:02:52.498086" elapsed="0.000162"/>
</branch>
<status status="NOT RUN" start="2026-09-28T01:02:52.498031" elapsed="0.000262"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-09-28T01:02:52.498356" elapsed="0.000028"/>
</return>
<kw name="Restore_Current_Ssh_Connection_From_Index" owner="SSHKeywords" type="TEARDOWN">
<kw name="Run Keyword And Return If" owner="BuiltIn">
<arg>${connection_index} is not None</arg>
<arg>SSHLibrary.Switch Connection</arg>
<arg>${connection_index}</arg>
<doc>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-09-28T01:02:52.499980" elapsed="0.000712"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<arg>127.0.0.1</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-09-28T01:02:52.501122" elapsed="0.000330"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-09-28T01:02:52.501735" elapsed="0.000243"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-09-28T01:02:52.499028" elapsed="0.003082"/>
</kw>
<msg time="2026-09-28T01:02:52.502340" level="INFO">${output} = cbench: controller benchmarking tool
   running in mode 'throughput'
   connecting to controller at 10.30.171.64: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-09-28T00:52:45.724371" elapsed="606.778024"/>
</kw>
<status status="PASS" start="2026-09-28T00:52:45.723920" elapsed="606.778572"/>
</branch>
<status status="PASS" start="2026-09-28T00:52:45.723416" elapsed="606.779124"/>
</if>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-28T01:02:52.503576" level="INFO">cbench: controller benchmarking tool
   running in mode 'throughput'
   connecting to controller at 10.30.171.64: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.64. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
00:53:51.532 16  switches: flows:  524722 509687 518945 520722 520617 520794 522627 511156 509889 519943 523656 505078 522078 508446 516952 514102  total = 137.823567 per ms 
00:54:51.635 16  switches: flows:  575706 577203 582842 574480 582561 580002 575462 571675 581303 575953 579384 575525 580181 573133 576802 568262  total = 153.579503 per ms 
00:55:51.737 16  switches: flows:  530577 538690 528244 523402 527980 521004 527168 523490 533632 534099 528838 533976 534624 528599 525308 529840  total = 140.920861 per ms 
00:56:51.839 16  switches: flows:  512019 508724 514131 506176 511366 506820 506821 507969 510620 517087 512337 510629 514585 512060 504479 513731  total = 135.930555 per ms 
00:57:51.941 16  switches: flows:  537263 539769 538633 539365 537849 539400 539921 537697 544104 546426 541311 540651 542433 545596 538386 544942  total = 143.987664 per ms 
00:58:52.042 16  switches: flows:  527916 522967 526617 523721 522924 523320 529174 521498 522161 521524 521852 524502 525701 521661 523868 522999  total = 139.471759 per ms 
00:59:52.143 16  switches: flows:  528299 526341 528392 523698 527061 527128 532758 528139 524357 533611 527155 529806 529544 532011 526883 532873  total = 140.731331 per ms 
01:00:52.245 16  switches: flows:  538406 534940 542708 536071 539010 537607 535053 536844 544255 539496 530517 535840 539157 539366 534087 533669  total = 143.042844 per ms 
01:01:52.347 16  switches: flows:  492745 497307 500265 493914 494741 503772 497060 498976 493168 503533 503519 502252 493713 504655 494772 499456  total = 132.672993 per ms 
01:02:52.449 16  switches: flows:  528974 527823 535415 535282 520961 536407 533055 525368 529637 530454 535201 530414 525511 530736 529686 533455  total = 141.235564 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 132672.99/153579.50/141285.90/47410.52 responses/s</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-28T01:02:52.502962" elapsed="0.000770"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${output}</arg>
<arg>RESULT</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-09-28T01:02:52.504129" elapsed="0.000742"/>
</kw>
<kw name="Get Lines Containing String" owner="String">
<msg time="2026-09-28T01:02:52.505793" level="INFO">1 out of 23 lines matched.</msg>
<msg time="2026-09-28T01:02:52.506031" level="INFO">${result_line} = RESULT: 16 switches 9 tests min/max/avg/stdev = 132672.99/153579.50/141285.90/47410.52 responses/s</msg>
<var>${result_line}</var>
<arg>${output}</arg>
<arg>RESULT</arg>
<doc>Returns lines of the given `string` that contain the `pattern`.</doc>
<status status="PASS" start="2026-09-28T01:02:52.505296" elapsed="0.000810"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-09-28T01:02:52.506972" level="INFO">@{results_list} = [ RESULT: | 16 | switches | 9 | tests | min/max/avg/stdev | = | 132672.99/153579.50/141285.90/47410.52 | responses/s ]</msg>
<var>@{results_list}</var>
<arg>${result_line}</arg>
<doc>Splits the `string` using `separator` as a delimiter string.</doc>
<status status="PASS" start="2026-09-28T01:02:52.506462" elapsed="0.000570"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-28T01:02:52.508218" level="INFO">min/max/avg/stdev</msg>
<arg>${results_list[5]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-28T01:02:52.507468" elapsed="0.000866"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-28T01:02:52.509491" level="INFO">132672.99/153579.50/141285.90/47410.52</msg>
<arg>${results_list[7]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-28T01:02:52.508738" elapsed="0.000867"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-09-28T01:02:52.510641" level="INFO">@{result_name_list} = [ min | max | avg | stdev ]</msg>
<var>@{result_name_list}</var>
<arg>${results_list[5]}</arg>
<arg>/</arg>
<doc>Splits the `string` using `separator` as a delimiter string.</doc>
<status status="PASS" start="2026-09-28T01:02:52.509973" elapsed="0.000726"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-09-28T01:02:52.511788" level="INFO">@{result_value_list} = [ 132672.99 | 153579.50 | 141285.90 | 47410.52 ]</msg>
<var>@{result_value_list}</var>
<arg>${results_list[7]}</arg>
<arg>/</arg>
<doc>Splits the `string` using `separator` as a delimiter string.</doc>
<status status="PASS" start="2026-09-28T01:02:52.511161" elapsed="0.000684"/>
</kw>
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-09-28T01:02:52.512850" level="INFO">Length is 4.</msg>
<msg time="2026-09-28T01:02:52.513078" level="INFO">${num_stats} = 4</msg>
<var>${num_stats}</var>
<arg>${result_name_list}</arg>
<doc>Returns and logs the length of the given item as an integer.</doc>
<status status="PASS" start="2026-09-28T01:02:52.512233" elapsed="0.000899"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-28T01:02:52.514903" level="INFO">min :: 132672.99</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-28T01:02:52.513984" elapsed="0.001095"/>
</kw>
<var name="${i}">0</var>
<status status="PASS" start="2026-09-28T01:02:52.513584" elapsed="0.001571"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-28T01:02:52.516635" level="INFO">max :: 153579.50</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-28T01:02:52.515698" elapsed="0.001048"/>
</kw>
<var name="${i}">1</var>
<status status="PASS" start="2026-09-28T01:02:52.515332" elapsed="0.001484"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-28T01:02:52.518367" level="INFO">avg :: 141285.90</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-28T01:02:52.517414" elapsed="0.001068"/>
</kw>
<var name="${i}">2</var>
<status status="PASS" start="2026-09-28T01:02:52.517020" elapsed="0.001531"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-28T01:02:52.520075" level="INFO">stdev :: 47410.52</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-28T01:02:52.519140" elapsed="0.001051"/>
</kw>
<var name="${i}">3</var>
<status status="PASS" start="2026-09-28T01:02:52.518722" elapsed="0.001538"/>
</iter>
<var>${i}</var>
<value>0</value>
<value>${num_stats}</value>
<status status="PASS" start="2026-09-28T01:02:52.513251" elapsed="0.007072"/>
</for>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-09-28T01:02:52.521550" level="INFO">${min} = 132672.99</msg>
<var>${min}</var>
<arg>${result_value_list[${0}]}</arg>
<doc>Returns the given values which can then be assigned to a variable.</doc>
<status status="PASS" start="2026-09-28T01:02:52.520664" elapsed="0.000941"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-09-28T01:02:52.522818" level="INFO">${max} = 153579.50</msg>
<var>${max}</var>
<arg>${result_value_list[${1}]}</arg>
<doc>Returns the given values which can then be assigned to a variable.</doc>
<status status="PASS" start="2026-09-28T01:02:52.521969" elapsed="0.000902"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-09-28T01:02:52.524146" level="INFO">${average} = 141285.90</msg>
<var>${average}</var>
<arg>${result_value_list[${2}]}</arg>
<doc>Returns the given values which can then be assigned to a variable.</doc>
<status status="PASS" start="2026-09-28T01:02:52.523256" elapsed="0.000944"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-09-28T01:02:52.525394" level="INFO">${stdev} = 47410.52</msg>
<var>${stdev}</var>
<arg>${result_value_list[${3}]}</arg>
<doc>Returns the given values which can then be assigned to a variable.</doc>
<status status="PASS" start="2026-09-28T01:02:52.524526" elapsed="0.000922"/>
</kw>
<kw name="Get Time" owner="BuiltIn">
<msg time="2026-09-28T01:02:52.526634" level="INFO">${date} = 2026-09-28 01:02:52</msg>
<var>${date}</var>
<arg>d,m,s</arg>
<doc>Returns the given time in the requested format.</doc>
<status status="PASS" start="2026-09-28T01:02:52.525850" elapsed="0.000838"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-28T01:02:52.527865" level="INFO">CBench Result: 2026-09-28 01:02:52,-t -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633,132672.99,153579.50,141285.90,47410.52</msg>
<arg>CBench Result: ${date},${cbench_args},${min},${max},${average},${stdev}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-28T01:02:52.527141" elapsed="0.000868"/>
</kw>
<kw name="Log Results And Determine Status">
<kw name="Append To File" owner="OperatingSystem">
<msg time="2026-09-28T01:02:52.529890" level="INFO" html="true">Appended to file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-cbench-only-vanadium/throughput.csv"&gt;/w/workspace/openflowplugin-csit-1node-cbench-only-vanadium/throughput.csv&lt;/a&gt;'.</msg>
<arg>${output_file}</arg>
<arg>${min},${max},${average}\n</arg>
<doc>Appends the given content to the specified file.</doc>
<status status="PASS" start="2026-09-28T01:02:52.529186" elapsed="0.000899"/>
</kw>
<kw name="Should Be True" owner="BuiltIn">
<arg>${average} &gt; ${threshold}</arg>
<arg>${average} flow_mods per/sec did not exceed threshold of ${threshold}</arg>
<doc>Fails if the given condition is not true.</doc>
<status status="PASS" start="2026-09-28T01:02:52.530439" elapsed="0.001210"/>
</kw>
<arg>${min}</arg>
<arg>${max}</arg>
<arg>${average}</arg>
<arg>${average_threshold}</arg>
<arg>${output_filename}</arg>
<status status="PASS" start="2026-09-28T01:02:52.528288" elapsed="0.003498"/>
</kw>
<arg>-t -m ${duration_in_ms} -M ${num_of_unique_macs} -S ${switch_count} -l ${loops} -D ${start_delay} -p ${of_port}</arg>
<arg>${throughput_threshold}</arg>
<arg>${throughput_results_file}</arg>
<status status="PASS" start="2026-09-28T00:52:45.722123" elapsed="606.809782"/>
</kw>
<kw name="Sleep" owner="BuiltIn">
<msg time="2026-09-28T01:02:52.532909" level="INFO">Slept 0 seconds.</msg>
<arg>${test_delay}</arg>
<doc>Pauses execution for the given time.</doc>
<status status="PASS" start="2026-09-28T01:02:52.532278" elapsed="0.000815"/>
</kw>
<kw name="Log Results As Zero If Cbench Timed Out" type="TEARDOWN">
<kw name="Run Keyword If Timeout Occurred" owner="BuiltIn">
<arg>Log Results And Determine Status</arg>
<arg>0</arg>
<arg>0</arg>
<arg>0</arg>
<arg>0</arg>
<arg>${output_filename}</arg>
<doc>Runs the given keyword if either a test or a keyword timeout has occurred.</doc>
<status status="PASS" start="2026-09-28T01:02:52.534183" elapsed="0.000553"/>
</kw>
<status status="PASS" start="2026-09-28T01:02:52.533493" elapsed="0.001386"/>
</kw>
<doc>cbench executed in throughput mode (-t). Test parameters have defaults, but can be overridden
on the pybot command line</doc>
<tag>cbench</tag>
<tag>throughput</tag>
<timeout value="15 minutes"/>
<status status="PASS" start="2026-09-28T00:52:45.720150" elapsed="606.814834"/>
</test>
<test id="s1-t3" name="Rerun Latency Test To Check Bug 6176" line="65">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-28T01:02:52.537762" level="INFO">Cbench tests using 10 iterations of 60 second tests. Switch Count: 16. Unique MACS to cycle: 100</msg>
<arg>Cbench tests using ${loops} iterations of ${duration_in_secs} second tests. Switch Count: ${switch_count}. Unique MACS to cycle: ${num_of_unique_macs}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-28T01:02:52.537110" elapsed="0.000725"/>
</kw>
<kw name="Run Cbench And Log Results">
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-09-28T01:02:52.539358" level="INFO">${output_filename} = bug.csv</msg>
<arg>${output_filename}</arg>
<doc>Makes the variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-09-28T01:02:52.538905" elapsed="0.000508"/>
</kw>
<if>
<branch type="IF" condition="&quot;${cbench_system}&quot; == &quot;localhost&quot;">
<kw name="Run" owner="OperatingSystem">
<var>${output}</var>
<arg>${cbench_executable} -c ${ODL_SYSTEM_IP} ${cbench_args}</arg>
<doc>*This keyword is considered deprecated. Use the [Process] library instead.*</doc>
<status status="NOT RUN" start="2026-09-28T01:02:52.539833" elapsed="0.000028"/>
</kw>
<status status="NOT RUN" start="2026-09-28T01:02:52.539550" elapsed="0.000356"/>
</branch>
<branch type="ELSE">
<kw name="Run Command On Remote System" owner="Utils">
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot; and &quot;${return_stderr}&quot;!=&quot;True&quot;">
<kw name="Fail" owner="BuiltIn">
<arg>At least one of {return_stdout} or {return_stderr} args should be set to True</arg>
<doc>Fails the test or task with the given message and optionally alters its tags.</doc>
<status status="NOT RUN" start="2026-09-28T01:02:52.541447" elapsed="0.000027"/>
</kw>
<status status="NOT RUN" start="2026-09-28T01:02:52.541148" elapsed="0.000370"/>
</branch>
<status status="PASS" start="2026-09-28T01:02:52.541124" elapsed="0.000424"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-09-28T01:02:52.542045" level="INFO">index=None
host=None
alias=None
port=22
timeout=3 seconds
newline=

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

prompt=None
term_type=vt100
width=80
height=24
path_separator=/
encoding=utf8
escape_ansi=False
encoding_errors=strict</msg>
<var>${current_ssh_connection}</var>
<doc>Returns information about the connection.</doc>
<status status="PASS" start="2026-09-28T01:02:52.541802" elapsed="0.000442"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-28T01:02:52.542928" level="INFO">Attempting to execute command "/usr/local/bin/cbench -c 10.30.171.64 -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633" on remote system "10.30.170.193" by user "jenkins" with keyfile pass "any" and prompt "&gt;" and password ""</msg>
<arg>Attempting to execute command "${cmd}" on remote system "${system}" by user "${user}" with keyfile pass "${keyfile_pass}" and prompt "${prompt}" and password "${password}"</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-28T01:02:52.542480" elapsed="0.000544"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-09-28T01:02:52.543716" level="INFO">${conn_id} = 9</msg>
<var>${conn_id}</var>
<arg>${system}</arg>
<arg>prompt=${prompt}</arg>
<arg>timeout=${prompt_timeout}</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-09-28T01:02:52.543263" elapsed="0.000488"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-09-28T01:02:52.544910" level="INFO">Length is 0.</msg>
<msg time="2026-09-28T01:02:52.545043" level="INFO">${pwd_length} = 0</msg>
<var>${pwd_length}</var>
<arg>${password}</arg>
<doc>Returns and logs the length of the given item as an integer.</doc>
<status status="PASS" start="2026-09-28T01:02:52.544519" elapsed="0.000571"/>
</kw>
<kw name="Run Keyword And Return If" owner="BuiltIn">
<arg>${pwd_length} &gt; 0</arg>
<arg>SSHLibrary.Login</arg>
<arg>${user}</arg>
<arg>${password}</arg>
<arg>delay=${delay}</arg>
<doc>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-09-28T01:02:52.545278" elapsed="0.000403"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-09-28T01:02:52.546803" level="INFO">Logging into '10.30.170.193:22' as 'jenkins'.</msg>
<msg time="2026-09-28T01:02:53.176854" level="INFO">Read output: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-187-generic x86_64)

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

 System information as of Mon Sep 28 01:02:52 UTC 2026

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


Expanded Security Maintenance for Applications is not enabled.

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

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


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


Last login: Mon Sep 28 00:52:46 2026 from 10.30.170.27
[?2004h[jenkins@releng-63164-410-1-mininet-ovs-217-0 ~]&gt;</msg>
<arg>${user}</arg>
<arg>${USER_HOME}/.ssh/${SSH_KEY}</arg>
<arg>${KEYFILE_PASS}</arg>
<arg>delay=${delay}</arg>
<doc>Logs into the SSH server using key-based authentication.</doc>
<status status="PASS" start="2026-09-28T01:02:52.546420" elapsed="0.630788"/>
</kw>
<msg time="2026-09-28T01:02:53.177362" level="INFO">Returning from the enclosing user keyword.</msg>
<arg>SSHLibrary.Login With Public Key</arg>
<arg>${user}</arg>
<arg>${USER_HOME}/.ssh/${SSH_KEY}</arg>
<arg>${KEYFILE_PASS}</arg>
<arg>delay=${delay}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-09-28T01:02:52.545887" elapsed="0.631617"/>
</kw>
<arg>${user}</arg>
<arg>${password}</arg>
<doc>On active SSH session: if given non-empty password, do Login, else do Login With Public Key.</doc>
<status status="PASS" start="2026-09-28T01:02:52.544026" elapsed="0.633687"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-28T01:02:53.178751" level="INFO">Executing command '/usr/local/bin/cbench -c 10.30.171.64 -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633'.</msg>
<msg time="2026-09-28T01:12:59.248778" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-09-28T01:12:59.249521" level="INFO">${stdout} = </msg>
<msg time="2026-09-28T01:12:59.249635" level="INFO">${stderr} = cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.171.64:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with 100...</msg>
<var>${stdout}</var>
<var>${stderr}</var>
<arg>${cmd}</arg>
<arg>return_stderr=True</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-28T01:02:53.178256" elapsed="606.071433"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-09-28T01:12:59.250160" elapsed="0.000707"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-28T01:12:59.252120" level="INFO">cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.171.64: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.64. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
01:03:58.289 16  switches: flows:  96451 97361 94210 96015 95777 93668 96119 92859 93397 92682 88752 91488 92131 92188 90341 91095  total = 24.908900 per ms 
01:04:58.390 16  switches: flows:  97474 98325 95573 96500 96650 92474 99291 95858 95269 92835 89726 93841 92281 96305 92467 93861  total = 25.269993 per ms 
01:05:58.490 16  switches: flows:  101201 99721 98600 98436 100079 97874 104329 97739 96343 95720 92542 94609 94093 97258 92200 95313  total = 25.891068 per ms 
01:06:58.590 16  switches: flows:  97550 96662 96782 97748 97559 96703 100045 95850 95121 96299 91789 92847 92322 95653 93357 92307  total = 25.434122 per ms 
01:07:58.690 16  switches: flows:  103138 98704 100363 102433 99324 97518 102756 98325 99357 99958 95186 96309 95691 98820 93338 94285  total = 26.214674 per ms 
01:08:58.790 16  switches: flows:  101291 97679 98882 98569 98325 97458 100994 96306 95561 96920 95501 93364 95942 95954 93134 93660  total = 25.782648 per ms 
01:09:58.891 16  switches: flows:  101851 98506 98246 100125 98241 96610 102582 96263 95610 96338 94627 93022 94264 95634 93571 92902  total = 25.763506 per ms 
01:10:58.991 16  switches: flows:  97386 98977 98641 97789 100057 96352 99625 96510 97431 96913 92474 93639 94875 96312 95872 94117  total = 25.739862 per ms 
01:11:59.091 16  switches: flows:  97233 99678 98682 98351 97282 97332 100237 97695 96774 94610 92574 91550 93349 96477 91631 92688  total = 25.559676 per ms 
01:12:59.191 16  switches: flows:  97551 95927 98857 96736 96071 93570 99963 95613 96279 94577 90624 91490 91767 94702 90978 91000  total = 25.219659 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 25219.66/26214.67/25652.80/8556.13 responses/s</msg>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-28T01:12:59.251378" elapsed="0.001026"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="PASS" start="2026-09-28T01:12:59.252838" elapsed="0.000065"/>
</return>
<status status="PASS" start="2026-09-28T01:12:59.252591" elapsed="0.000417"/>
</branch>
<status status="PASS" start="2026-09-28T01:12:59.252520" elapsed="0.000541"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="NOT RUN" start="2026-09-28T01:12:59.253249" elapsed="0.000027"/>
</return>
<status status="NOT RUN" start="2026-09-28T01:12:59.253175" elapsed="0.000158"/>
</branch>
<status status="NOT RUN" start="2026-09-28T01:12:59.253143" elapsed="0.000252"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-09-28T01:12:59.253462" elapsed="0.000031"/>
</return>
<kw name="Restore_Current_Ssh_Connection_From_Index" owner="SSHKeywords" type="TEARDOWN">
<kw name="Run Keyword And Return If" owner="BuiltIn">
<arg>${connection_index} is not None</arg>
<arg>SSHLibrary.Switch Connection</arg>
<arg>${connection_index}</arg>
<doc>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-09-28T01:12:59.255235" elapsed="0.000679"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<arg>127.0.0.1</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-09-28T01:12:59.256328" elapsed="0.000340"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-09-28T01:12:59.256975" elapsed="0.000199"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-09-28T01:12:59.254289" elapsed="0.002997"/>
</kw>
<msg time="2026-09-28T01:12:59.257512" level="INFO">${output} = cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.171.64:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with 100...</msg>
<var>${output}</var>
<arg>${cbench_system}</arg>
<arg>${cbench_executable} -c ${ODL_SYSTEM_IP} ${cbench_args}</arg>
<arg>prompt_timeout=${test_timeout}</arg>
<arg>return_stdout=False</arg>
<arg>return_stderr=True</arg>
<doc>Reduces the common work of running a command on a remote system to a single higher level
robot keyword, taking care to log in with a public key and. The command given is written and the return value
depends on the passed argument values of return_stdout (default: True) and return_stderr (default: False).
At least one should be True, or the keyword will exit and FAIL. If both are True, the resulting return value
will be a two element list containing both. Otherwise the resulting return value is a string.
No test conditions are checked.</doc>
<status status="PASS" start="2026-09-28T01:02:52.540379" elapsed="606.717210"/>
</kw>
<status status="PASS" start="2026-09-28T01:02:52.539959" elapsed="606.717743"/>
</branch>
<status status="PASS" start="2026-09-28T01:02:52.539524" elapsed="606.718233"/>
</if>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-28T01:12:59.258828" level="INFO">cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.171.64: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.64. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
01:03:58.289 16  switches: flows:  96451 97361 94210 96015 95777 93668 96119 92859 93397 92682 88752 91488 92131 92188 90341 91095  total = 24.908900 per ms 
01:04:58.390 16  switches: flows:  97474 98325 95573 96500 96650 92474 99291 95858 95269 92835 89726 93841 92281 96305 92467 93861  total = 25.269993 per ms 
01:05:58.490 16  switches: flows:  101201 99721 98600 98436 100079 97874 104329 97739 96343 95720 92542 94609 94093 97258 92200 95313  total = 25.891068 per ms 
01:06:58.590 16  switches: flows:  97550 96662 96782 97748 97559 96703 100045 95850 95121 96299 91789 92847 92322 95653 93357 92307  total = 25.434122 per ms 
01:07:58.690 16  switches: flows:  103138 98704 100363 102433 99324 97518 102756 98325 99357 99958 95186 96309 95691 98820 93338 94285  total = 26.214674 per ms 
01:08:58.790 16  switches: flows:  101291 97679 98882 98569 98325 97458 100994 96306 95561 96920 95501 93364 95942 95954 93134 93660  total = 25.782648 per ms 
01:09:58.891 16  switches: flows:  101851 98506 98246 100125 98241 96610 102582 96263 95610 96338 94627 93022 94264 95634 93571 92902  total = 25.763506 per ms 
01:10:58.991 16  switches: flows:  97386 98977 98641 97789 100057 96352 99625 96510 97431 96913 92474 93639 94875 96312 95872 94117  total = 25.739862 per ms 
01:11:59.091 16  switches: flows:  97233 99678 98682 98351 97282 97332 100237 97695 96774 94610 92574 91550 93349 96477 91631 92688  total = 25.559676 per ms 
01:12:59.191 16  switches: flows:  97551 95927 98857 96736 96071 93570 99963 95613 96279 94577 90624 91490 91767 94702 90978 91000  total = 25.219659 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 25219.66/26214.67/25652.80/8556.13 responses/s</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-28T01:12:59.258188" elapsed="0.000821"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${output}</arg>
<arg>RESULT</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-09-28T01:12:59.259354" elapsed="0.000808"/>
</kw>
<kw name="Get Lines Containing String" owner="String">
<msg time="2026-09-28T01:12:59.261015" level="INFO">1 out of 23 lines matched.</msg>
<msg time="2026-09-28T01:12:59.261199" level="INFO">${result_line} = RESULT: 16 switches 9 tests min/max/avg/stdev = 25219.66/26214.67/25652.80/8556.13 responses/s</msg>
<var>${result_line}</var>
<arg>${output}</arg>
<arg>RESULT</arg>
<doc>Returns lines of the given `string` that contain the `pattern`.</doc>
<status status="PASS" start="2026-09-28T01:12:59.260550" elapsed="0.000698"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-09-28T01:12:59.262135" level="INFO">@{results_list} = [ RESULT: | 16 | switches | 9 | tests | min/max/avg/stdev | = | 25219.66/26214.67/25652.80/8556.13 | responses/s ]</msg>
<var>@{results_list}</var>
<arg>${result_line}</arg>
<doc>Splits the `string` using `separator` as a delimiter string.</doc>
<status status="PASS" start="2026-09-28T01:12:59.261613" elapsed="0.000578"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-28T01:12:59.263322" level="INFO">min/max/avg/stdev</msg>
<arg>${results_list[5]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-28T01:12:59.262613" elapsed="0.000820"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-28T01:12:59.264571" level="INFO">25219.66/26214.67/25652.80/8556.13</msg>
<arg>${results_list[7]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-28T01:12:59.263857" elapsed="0.000829"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-09-28T01:12:59.265706" level="INFO">@{result_name_list} = [ min | max | avg | stdev ]</msg>
<var>@{result_name_list}</var>
<arg>${results_list[5]}</arg>
<arg>/</arg>
<doc>Splits the `string` using `separator` as a delimiter string.</doc>
<status status="PASS" start="2026-09-28T01:12:59.265053" elapsed="0.000716"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-09-28T01:12:59.266988" level="INFO">@{result_value_list} = [ 25219.66 | 26214.67 | 25652.80 | 8556.13 ]</msg>
<var>@{result_value_list}</var>
<arg>${results_list[7]}</arg>
<arg>/</arg>
<doc>Splits the `string` using `separator` as a delimiter string.</doc>
<status status="PASS" start="2026-09-28T01:12:59.266259" elapsed="0.000786"/>
</kw>
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-09-28T01:12:59.268027" level="INFO">Length is 4.</msg>
<msg time="2026-09-28T01:12:59.268203" level="INFO">${num_stats} = 4</msg>
<var>${num_stats}</var>
<arg>${result_name_list}</arg>
<doc>Returns and logs the length of the given item as an integer.</doc>
<status status="PASS" start="2026-09-28T01:12:59.267376" elapsed="0.000876"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-28T01:12:59.270122" level="INFO">min :: 25219.66</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-28T01:12:59.269115" elapsed="0.001120"/>
</kw>
<var name="${i}">0</var>
<status status="PASS" start="2026-09-28T01:12:59.268716" elapsed="0.001587"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-28T01:12:59.271822" level="INFO">max :: 26214.67</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-28T01:12:59.270861" elapsed="0.001100"/>
</kw>
<var name="${i}">1</var>
<status status="PASS" start="2026-09-28T01:12:59.270473" elapsed="0.001558"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-28T01:12:59.273485" level="INFO">avg :: 25652.80</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-28T01:12:59.272575" elapsed="0.001043"/>
</kw>
<var name="${i}">2</var>
<status status="PASS" start="2026-09-28T01:12:59.272193" elapsed="0.001494"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-28T01:12:59.275167" level="INFO">stdev :: 8556.13</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-28T01:12:59.274245" elapsed="0.001032"/>
</kw>
<var name="${i}">3</var>
<status status="PASS" start="2026-09-28T01:12:59.273848" elapsed="0.001496"/>
</iter>
<var>${i}</var>
<value>0</value>
<value>${num_stats}</value>
<status status="PASS" start="2026-09-28T01:12:59.268371" elapsed="0.007032"/>
</for>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-09-28T01:12:59.276651" level="INFO">${min} = 25219.66</msg>
<var>${min}</var>
<arg>${result_value_list[${0}]}</arg>
<doc>Returns the given values which can then be assigned to a variable.</doc>
<status status="PASS" start="2026-09-28T01:12:59.275759" elapsed="0.000946"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-09-28T01:12:59.277913" level="INFO">${max} = 26214.67</msg>
<var>${max}</var>
<arg>${result_value_list[${1}]}</arg>
<doc>Returns the given values which can then be assigned to a variable.</doc>
<status status="PASS" start="2026-09-28T01:12:59.277063" elapsed="0.000934"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-09-28T01:12:59.279194" level="INFO">${average} = 25652.80</msg>
<var>${average}</var>
<arg>${result_value_list[${2}]}</arg>
<doc>Returns the given values which can then be assigned to a variable.</doc>
<status status="PASS" start="2026-09-28T01:12:59.278324" elapsed="0.000924"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-09-28T01:12:59.280446" level="INFO">${stdev} = 8556.13</msg>
<var>${stdev}</var>
<arg>${result_value_list[${3}]}</arg>
<doc>Returns the given values which can then be assigned to a variable.</doc>
<status status="PASS" start="2026-09-28T01:12:59.279592" elapsed="0.000907"/>
</kw>
<kw name="Get Time" owner="BuiltIn">
<msg time="2026-09-28T01:12:59.281692" level="INFO">${date} = 2026-09-28 01:12:59</msg>
<var>${date}</var>
<arg>d,m,s</arg>
<doc>Returns the given time in the requested format.</doc>
<status status="PASS" start="2026-09-28T01:12:59.280922" elapsed="0.000830"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-28T01:12:59.283055" level="INFO">CBench Result: 2026-09-28 01:12:59,-m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633,25219.66,26214.67,25652.80,8556.13</msg>
<arg>CBench Result: ${date},${cbench_args},${min},${max},${average},${stdev}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-28T01:12:59.282241" elapsed="0.000926"/>
</kw>
<kw name="Log Results And Determine Status">
<kw name="Append To File" owner="OperatingSystem">
<msg time="2026-09-28T01:12:59.285156" level="INFO" html="true">Appended to file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-cbench-only-vanadium/bug.csv"&gt;/w/workspace/openflowplugin-csit-1node-cbench-only-vanadium/bug.csv&lt;/a&gt;'.</msg>
<arg>${output_file}</arg>
<arg>${min},${max},${average}\n</arg>
<doc>Appends the given content to the specified file.</doc>
<status status="PASS" start="2026-09-28T01:12:59.284358" elapsed="0.000940"/>
</kw>
<kw name="Should Be True" owner="BuiltIn">
<arg>${average} &gt; ${threshold}</arg>
<arg>${average} flow_mods per/sec did not exceed threshold of ${threshold}</arg>
<doc>Fails if the given condition is not true.</doc>
<status status="PASS" start="2026-09-28T01:12:59.285683" elapsed="0.001289"/>
</kw>
<arg>${min}</arg>
<arg>${max}</arg>
<arg>${average}</arg>
<arg>${average_threshold}</arg>
<arg>${output_filename}</arg>
<status status="PASS" start="2026-09-28T01:12:59.283422" elapsed="0.003690"/>
</kw>
<arg>-m ${duration_in_ms} -M ${num_of_unique_macs} -S ${switch_count} -l ${loops} -D ${start_delay} -p ${of_port}</arg>
<arg>${latency_threshold}</arg>
<arg>bug.csv</arg>
<status status="PASS" start="2026-09-28T01:02:52.538259" elapsed="606.748975"/>
</kw>
<kw name="Sleep" owner="BuiltIn">
<msg time="2026-09-28T01:12:59.288390" level="INFO">Slept 0 seconds.</msg>
<arg>${test_delay}</arg>
<doc>Pauses execution for the given time.</doc>
<status status="PASS" start="2026-09-28T01:12:59.287630" elapsed="0.000879"/>
</kw>
<kw name="Report Failure Due To Bug" owner="Utils" type="TEARDOWN">
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-09-28T01:12:59.292004" level="INFO">${test_skipped} = False</msg>
<var>${test_skipped}</var>
<arg>len(re.findall('SKIPPED', """${TEST_MESSAGE}""")) &gt; 0</arg>
<arg>modules=re</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-09-28T01:12:59.290831" elapsed="0.001231"/>
</kw>
<if>
<branch type="IF" condition="('${TEST_STATUS}' != 'FAIL') or ${test_skipped}">
<return>
<status status="PASS" start="2026-09-28T01:12:59.292546" elapsed="0.000063"/>
</return>
<status status="PASS" start="2026-09-28T01:12:59.292283" elapsed="0.000400"/>
</branch>
<status status="PASS" start="2026-09-28T01:12:59.292231" elapsed="0.000509"/>
</if>
<kw name="Comment" owner="BuiltIn">
<arg>Jira tickets are {PROJECT}-{NUMBER} while Bugzilla tickets are {NUMBER}</arg>
<doc>Displays the given messages in the log file as keyword arguments.</doc>
<status status="NOT RUN" start="2026-09-28T01:12:59.292999" elapsed="0.000040"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<var>${match}</var>
<arg>Should Contain</arg>
<arg>${number}</arg>
<arg>-</arg>
<doc>Runs the specified keyword and returns the status as a Boolean value.</doc>
<status status="NOT RUN" start="2026-09-28T01:12:59.293250" elapsed="0.000039"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<var>${bug_url}</var>
<arg>${match}</arg>
<arg>https://jira.opendaylight.org/browse/${number}</arg>
<arg>https://bugs.opendaylight.org/show_bug.cgi?id=${number}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="NOT RUN" start="2026-09-28T01:12:59.293499" elapsed="0.000042"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<var>${msg}</var>
<arg>This test fails due to ${bug_url}</arg>
<doc>Returns the given values which can then be assigned to a variable.</doc>
<status status="NOT RUN" start="2026-09-28T01:12:59.293736" elapsed="0.000026"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${newline}</var>
<arg>chr(10)</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-09-28T01:12:59.294079" 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-09-28T01:12:59.294296" elapsed="0.000025"/>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${msg}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-09-28T01:12:59.294568" elapsed="0.000029"/>
</kw>
<if>
<branch type="IF" condition="&quot;${include_bug_in_tags}&quot;==&quot;True&quot;">
<kw name="Set Tags" owner="BuiltIn">
<arg>${bug_url}</arg>
<doc>Adds The given `tags` for the current test or all tests in a suite.</doc>
<status status="NOT RUN" start="2026-09-28T01:12:59.294868" elapsed="0.000025"/>
</kw>
<status status="NOT RUN" start="2026-09-28T01:12:59.294677" elapsed="0.000256"/>
</branch>
<status status="NOT RUN" start="2026-09-28T01:12:59.294655" elapsed="0.000344"/>
</if>
<arg>6176</arg>
<doc>Report that a test failed due to a known Bugzilla bug whose
number is provided as an argument.
Not FAILED (incl. SKIPPED) test are not reported.
This keyword must be used in the [Teardown] setting of the affected test
or as the first line of the test if FastFail module is not being
used. It reports the URL of the bug on console and also puts it
into the Robot log file.</doc>
<status status="PASS" start="2026-09-28T01:12:59.289281" elapsed="0.005787"/>
</kw>
<doc>cbench executed in latency mode to see if controller is healthy</doc>
<tag>cbench</tag>
<tag>latency</tag>
<timeout value="15 minutes"/>
<status status="PASS" start="2026-09-28T01:02:52.535838" elapsed="606.759288"/>
</test>
<doc>Cbench Latency and Throughput tests can be run from an external
cbench.
If cbench is run with a medium number of switches or higher (e.g. 32+)
the normal openflow operations seem to break.
BUG: https://bugs.opendaylight.org/show_bug.cgi?id=2897</doc>
<status status="PASS" start="2026-09-28T00:42:36.695433" elapsed="1822.600771"/>
</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>
