<?xml version="1.0" encoding="UTF-8"?>
<robot generator="Robot 7.4.2 (Python 3.11.10 on linux)" generated="2026-07-15T03:01:47.263821" rpa="false" schemaversion="5">
<suite id="s1" name="openflowplugin-cbench.txt" source="/w/workspace/openflowplugin-csit-1node-cbench-only-chromium/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-07-15T03:01:47.850823" elapsed="0.000024"/>
</return>
<status status="NOT RUN" start="2026-07-15T03:01:47.850651" elapsed="0.000248"/>
</branch>
<status status="PASS" start="2026-07-15T03:01:47.850622" elapsed="0.000304"/>
</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-07-15T03:01:47.851072" elapsed="0.000505"/>
</kw>
<kw name="Login" owner="SSHLibrary">
<msg time="2026-07-15T03:01:47.852059" level="INFO">Logging into '10.30.171.68:8101' as 'karaf'.</msg>
<msg time="2026-07-15T03:01:48.812452" 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-07-15T03:01:47.851766" elapsed="0.960880"/>
</kw>
<kw name="Write" owner="SSHLibrary">
<msg time="2026-07-15T03:01:48.865123" 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-07-15T03:01:48.812947" elapsed="0.052331"/>
</kw>
<kw name="Read Until Regexp" owner="SSHLibrary">
<msg time="2026-07-15T03:01:48.867323" level="INFO">[?1l&gt;[?2004l[?1h=[90m~[0m                                                                                [?2004hopendaylight-user@root&gt;</msg>
<msg time="2026-07-15T03:01:48.867435" 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-07-15T03:01:48.865562" elapsed="0.001903"/>
</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-07-15T03:01:48.867625" elapsed="0.000246"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-07-15T03:01:48.868032" elapsed="0.000214"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-07-15T03:01:48.868771" 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-07-15T03:01:48.868398" elapsed="0.000429"/>
</kw>
<return>
<value>${output}</value>
<status status="PASS" start="2026-07-15T03:01:48.868882" elapsed="0.000050"/>
</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.68
Note that this keyword will open&amp;close new SSH connection, without switching back to previously current session.</doc>
<status status="PASS" start="2026-07-15T03:01:47.850264" elapsed="1.018785"/>
</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-07-15T03:01:47.846607" elapsed="1.022505"/>
</kw>
<kw name="Append To File" owner="OperatingSystem">
<msg time="2026-07-15T03:01:48.869702" level="INFO" html="true">Appended to file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-cbench-only-chromium/latency.csv"&gt;/w/workspace/openflowplugin-csit-1node-cbench-only-chromium/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-07-15T03:01:48.869306" elapsed="0.000455"/>
</kw>
<kw name="Append To File" owner="OperatingSystem">
<msg time="2026-07-15T03:01:48.870168" level="INFO" html="true">Appended to file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-cbench-only-chromium/throughput.csv"&gt;/w/workspace/openflowplugin-csit-1node-cbench-only-chromium/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-07-15T03:01:48.869916" elapsed="0.000328"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-07-15T03:01:48.870838" 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-07-15T03:01:48.870401" elapsed="0.000466"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-07-15T03:01:48.871381" level="INFO">${duration_in_ms} = 60000</msg>
<arg>${duration_in_ms}</arg>
<doc>Makes a variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-07-15T03:01:48.871037" elapsed="0.000389"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-07-15T03:01:48.871977" 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-07-15T03:01:48.871575" elapsed="0.000430"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-07-15T03:01:48.872496" level="INFO">${test_timeout} = 900.0</msg>
<arg>${test_timeout}</arg>
<doc>Makes a variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-07-15T03:01:48.872166" elapsed="0.000373"/>
</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-07-15T03:01:48.872901" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-07-15T03:01:48.872622" elapsed="0.000335"/>
</branch>
<branch type="ELSE">
<kw name="Verify File Exists On Remote System" owner="Utils">
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-07-15T03:01:48.877444" 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-07-15T03:01:48.877045" elapsed="0.000427"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-07-15T03:01:48.878461" level="INFO">Length is 0.</msg>
<msg time="2026-07-15T03:01:48.878545" 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-07-15T03:01:48.878042" elapsed="0.000527"/>
</kw>
<kw name="Run Keyword And Return If" owner="BuiltIn">
<arg>${pwd_length} &gt; 0</arg>
<arg>SSHLibrary.Login</arg>
<arg>${user}</arg>
<arg>${password}</arg>
<arg>delay=${delay}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-07-15T03:01:48.878730" elapsed="0.000340"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-07-15T03:01:48.880058" level="INFO">Logging into '10.30.170.26:22' as 'jenkins'.</msg>
<msg time="2026-07-15T03:01:49.625774" level="INFO">Read output: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-153-generic x86_64)

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

 System information as of Wed Jul 15 03:01:49 UTC 2026

  System load:  0.03               Processes:             110
  Usage of /:   19.3% of 38.58GB   Users logged in:       0
  Memory usage: 4%                 IPv4 address for ens3: 10.30.170.26
  Swap usage:   0%


Expanded Security Maintenance for Applications is not enabled.

0 updates can be applied immediately.

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


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


[?2004h[jenkins@releng-00446-26-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-07-15T03:01:48.879561" elapsed="0.746368"/>
</kw>
<msg time="2026-07-15T03:01:49.626018" 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-07-15T03:01:48.879223" elapsed="0.746880"/>
</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-07-15T03:01:48.877702" elapsed="0.748517"/>
</kw>
<kw name="File Should Exist" owner="SSHLibrary">
<msg time="2026-07-15T03:01:49.633701" 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-07-15T03:01:49.626430" elapsed="0.008756"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-07-15T03:01:49.635436" elapsed="0.000384"/>
</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-07-15T03:01:48.876499" elapsed="0.759408"/>
</kw>
<status status="PASS" start="2026-07-15T03:01:48.873160" elapsed="0.762799"/>
</branch>
<status status="PASS" start="2026-07-15T03:01:48.872599" elapsed="0.763403"/>
</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-07-15T03:01:49.636206" elapsed="0.000693"/>
</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-07-15T03:01:49.642961" elapsed="0.000026"/>
</return>
<status status="NOT RUN" start="2026-07-15T03:01:49.642789" elapsed="0.000246"/>
</branch>
<status status="PASS" start="2026-07-15T03:01:49.642757" elapsed="0.000312"/>
</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-07-15T03:01:49.647426" elapsed="0.000015"/>
</return>
<status status="NOT RUN" start="2026-07-15T03:01:49.647312" elapsed="0.000162"/>
</branch>
<status status="PASS" start="2026-07-15T03:01:49.647293" elapsed="0.000204"/>
</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-07-15T03:01:49.647628" elapsed="0.000459"/>
</kw>
<kw name="Login" owner="SSHLibrary">
<msg time="2026-07-15T03:01:49.648493" level="INFO">Logging into '10.30.171.68:8101' as 'karaf'.</msg>
<msg time="2026-07-15T03:01:49.882957" 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-07-15T03:01:49.648235" elapsed="0.234907"/>
</kw>
<kw name="Write" owner="SSHLibrary">
<msg time="2026-07-15T03:01:49.991722" 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-07-15T03:01:49.883454" elapsed="0.108428"/>
</kw>
<kw name="Read Until Regexp" owner="SSHLibrary">
<msg time="2026-07-15T03:01:50.018894" level="INFO">[?1l&gt;[?2004l[31;1modl-openflowplugin-drop-test[0m                                    x 1.0.0            x x        x Started x [31;1modl-openflowplugin-drop-test[0m                                    x OpenDaylight :: Openflow Plugin :: Drop Test
[?1h=[90m~[0m                                                                                [?2004hopendaylight-user@root&gt;</msg>
<msg time="2026-07-15T03:01:50.019145" level="INFO">${output} = [?1l&gt;[?2004l[31;1modl-openflowplugin-drop-test[0m                                    x 1.0.0            x x        x Started x [31;1modl-openflowplugin-drop-test[0m                     ...</msg>
<var>${output}</var>
<arg>${KARAF_PROMPT}</arg>
<doc>Consumes and returns the server output until a match to ``regexp`` is found.</doc>
<status status="PASS" start="2026-07-15T03:01:49.992183" elapsed="0.027006"/>
</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-07-15T03:01:50.019372" elapsed="0.000232"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-07-15T03:01:50.019778" elapsed="0.000209"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-07-15T03:01:50.020486" level="INFO">[?1l&gt;[?2004l[31;1modl-openflowplugin-drop-test[0m                                    x 1.0.0            x x        x Started x [31;1modl-openflowplugin-drop-test[0m                                    x OpenDaylight :: Openflow Plugin :: Drop Test
[?1h=[90m~[0m                                                                                [?2004hopendaylight-user@root&gt;</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-07-15T03:01:50.020127" elapsed="0.000419"/>
</kw>
<return>
<value>${output}</value>
<status status="PASS" start="2026-07-15T03:01:50.020601" elapsed="0.000050"/>
</return>
<msg time="2026-07-15T03:01:50.020830" level="INFO">${output} = [?1l&gt;[?2004l[31;1modl-openflowplugin-drop-test[0m                                    x 1.0.0            x x        x Started x [31;1modl-openflowplugin-drop-test[0m                     ...</msg>
<var>${output}</var>
<arg>feature:list -i | grep ${feature_name}</arg>
<arg>${controller}</arg>
<arg>${karaf_port}</arg>
<doc>Will execute the given ${cmd} by ssh'ing to the karaf console running on 10.30.171.68
Note that this keyword will open&amp;close new SSH connection, without switching back to previously current session.</doc>
<status status="PASS" start="2026-07-15T03:01:49.646957" elapsed="0.373908"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${output}</arg>
<arg>${feature_name}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-07-15T03:01:50.021014" elapsed="0.000550"/>
</kw>
<return>
<value>${output}</value>
<status status="PASS" start="2026-07-15T03:01:50.021619" elapsed="0.000040"/>
</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-07-15T03:01:49.642354" elapsed="0.379457"/>
</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-07-15T03:01:50.026489" elapsed="0.000016"/>
</return>
<status status="NOT RUN" start="2026-07-15T03:01:50.026330" elapsed="0.000209"/>
</branch>
<status status="PASS" start="2026-07-15T03:01:50.026305" elapsed="0.000259"/>
</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-07-15T03:01:50.026715" elapsed="0.000697"/>
</kw>
<kw name="Login" owner="SSHLibrary">
<msg time="2026-07-15T03:01:50.027914" level="INFO">Logging into '10.30.171.68:8101' as 'karaf'.</msg>
<msg time="2026-07-15T03:01:50.239507" 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-07-15T03:01:50.027601" elapsed="0.212095"/>
</kw>
<kw name="Write" owner="SSHLibrary">
<msg time="2026-07-15T03:01:50.274005" 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-07-15T03:01:50.239984" elapsed="0.034088"/>
</kw>
<kw name="Read Until Regexp" owner="SSHLibrary">
<msg time="2026-07-15T03:01:50.276322" level="INFO">[?1l&gt;[?2004lDropAllFlows transitions to on
[?1h=[90m~[0m                                                                                [?2004hopendaylight-user@root&gt;</msg>
<msg time="2026-07-15T03:01:50.276453" 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-07-15T03:01:50.274261" elapsed="0.002228"/>
</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-07-15T03:01:50.276668" elapsed="0.000243"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-07-15T03:01:50.277063" elapsed="0.000205"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-07-15T03:01:50.277778" 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-07-15T03:01:50.277439" elapsed="0.000393"/>
</kw>
<return>
<value>${output}</value>
<status status="PASS" start="2026-07-15T03:01:50.277886" elapsed="0.000048"/>
</return>
<arg>dropallpacketsrpc on</arg>
<doc>Will execute the given ${cmd} by ssh'ing to the karaf console running on 10.30.171.68
Note that this keyword will open&amp;close new SSH connection, without switching back to previously current session.</doc>
<status status="PASS" start="2026-07-15T03:01:50.025952" elapsed="0.252104"/>
</kw>
<status status="PASS" start="2026-07-15T03:01:47.844733" elapsed="2.433409"/>
</kw>
<test id="s1-t1" name="Cbench Latency Test" line="37">
<kw name="Log" owner="BuiltIn">
<msg time="2026-07-15T03:01:50.280431" 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-07-15T03:01:50.279196" elapsed="0.001315"/>
</kw>
<kw name="Run Cbench And Log Results">
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-07-15T03:01:50.282192" level="INFO">${output_filename} = latency.csv</msg>
<arg>${output_filename}</arg>
<doc>Makes a variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-07-15T03:01:50.281738" elapsed="0.000512"/>
</kw>
<if>
<branch type="IF" condition="&quot;${cbench_system}&quot; == &quot;localhost&quot;">
<kw name="Run" owner="OperatingSystem">
<var>${output}</var>
<arg>${cbench_executable} -c ${ODL_SYSTEM_IP} ${cbench_args}</arg>
<doc>_This keyword is considered deprecated. Use the
[http://robotframework.org/robotframework/latest/libraries/Process.html|
Process] library instead._</doc>
<status status="NOT RUN" start="2026-07-15T03:01:50.282657" elapsed="0.000051"/>
</kw>
<status status="NOT RUN" start="2026-07-15T03:01:50.282349" elapsed="0.000409"/>
</branch>
<branch type="ELSE">
<kw name="Run Command On Remote System" owner="Utils">
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot; and &quot;${return_stderr}&quot;!=&quot;True&quot;">
<kw name="Fail" owner="BuiltIn">
<arg>At least one of {return_stdout} or {return_stderr} args should be set to True</arg>
<doc>Fails the test with the given message and optionally alters its tags.</doc>
<status status="NOT RUN" start="2026-07-15T03:01:50.286914" elapsed="0.000028"/>
</kw>
<status status="NOT RUN" start="2026-07-15T03:01:50.286550" elapsed="0.000481"/>
</branch>
<status status="PASS" start="2026-07-15T03:01:50.286522" elapsed="0.000549"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-07-15T03:01:50.287514" 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-07-15T03:01:50.287647" 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-07-15T03:01:50.287253" elapsed="0.000440"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-07-15T03:01:50.288287" level="INFO">Attempting to execute command "/usr/local/bin/cbench -c 10.30.171.68 -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633" on remote system "10.30.170.26" 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-07-15T03:01:50.287835" elapsed="0.000529"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-07-15T03:01:50.289013" 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-07-15T03:01:50.288519" elapsed="0.000522"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-07-15T03:01:50.290173" level="INFO">Length is 0.</msg>
<msg time="2026-07-15T03:01:50.290290" 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-07-15T03:01:50.289752" 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>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-07-15T03:01:50.290507" elapsed="0.000448"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-07-15T03:01:50.292090" level="INFO">Logging into '10.30.170.26:22' as 'jenkins'.</msg>
<msg time="2026-07-15T03:01:50.613722" level="INFO">Read output: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-153-generic x86_64)

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

 System information as of Wed Jul 15 03:01:49 UTC 2026

  System load:  0.03               Processes:             110
  Usage of /:   19.3% of 38.58GB   Users logged in:       0
  Memory usage: 4%                 IPv4 address for ens3: 10.30.170.26
  Swap usage:   0%


Expanded Security Maintenance for Applications is not enabled.

0 updates can be applied immediately.

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


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


Last login: Wed Jul 15 03:01:49 2026 from 10.30.171.66
[?2004h[jenkins@releng-00446-26-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-07-15T03:01:50.291624" elapsed="0.322321"/>
</kw>
<msg time="2026-07-15T03:01:50.614054" 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-07-15T03:01:50.291180" elapsed="0.322978"/>
</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-07-15T03:01:50.289276" elapsed="0.325032"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-07-15T03:01:50.614980" level="INFO">Executing command '/usr/local/bin/cbench -c 10.30.171.68 -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633'.</msg>
<msg time="2026-07-15T03:11:56.745452" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-07-15T03:11:56.745947" level="INFO">${stdout} = </msg>
<msg time="2026-07-15T03:11:56.746017" level="INFO">${stderr} = cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.171.68: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-07-15T03:01:50.614578" elapsed="606.131477"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-07-15T03:11:56.746397" elapsed="0.001106"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-07-15T03:11:56.748448" level="INFO">cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.171.68: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.68. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
03:02:55.829 16  switches: flows:  124001 123781 121497 120438 125798 119575 122432 121700 119448 120507 118270 118327 121556 116097 118729 117192  total = 32.155800 per ms 
03:03:55.931 16  switches: flows:  134014 136159 136426 136828 136482 134833 135925 134631 128833 130293 130965 131590 129955 129219 130047 127829  total = 35.341465 per ms 
03:04:56.031 16  switches: flows:  138021 136921 136564 135076 137267 136048 135328 133597 129829 128921 128161 128936 129413 127341 127434 126581  total = 35.198513 per ms 
03:05:56.133 16  switches: flows:  139741 138739 139703 138088 139209 138278 138516 135754 132002 133621 131041 130578 131301 130388 130106 133066  total = 35.942148 per ms 
03:06:56.233 16  switches: flows:  141382 138119 138947 138942 136504 137130 138914 134387 132080 133391 131437 131853 131457 129622 131217 132701  total = 35.908113 per ms 
03:07:56.333 16  switches: flows:  140428 141432 139549 137921 136002 139314 139445 135346 131759 132895 133458 131908 130258 129662 132258 133985  total = 36.033529 per ms 
03:08:56.434 16  switches: flows:  141781 144179 140378 139364 138156 139623 139150 135322 132634 131133 133494 132999 134548 131837 134551 133244  total = 36.312578 per ms 
03:09:56.534 16  switches: flows:  143932 146671 142607 139335 139109 137454 139737 137418 134662 133937 134999 134542 135175 134931 135893 134616  total = 36.689033 per ms 
03:10:56.634 16  switches: flows:  142325 141509 138614 138599 139067 136822 139474 133852 131631 131236 132482 134909 133663 130818 133384 132995  total = 36.129325 per ms 
03:11:56.735 16  switches: flows:  142008 140747 142077 140140 137997 136989 140417 135763 135023 134708 134022 134530 135610 133743 136735 135220  total = 36.534415 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 35198.51/36689.03/36009.90/12012.38 responses/s</msg>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-07-15T03:11:56.747830" elapsed="0.000930"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="PASS" start="2026-07-15T03:11:56.749118" elapsed="0.000050"/>
</return>
<status status="PASS" start="2026-07-15T03:11:56.748904" elapsed="0.000324"/>
</branch>
<status status="PASS" start="2026-07-15T03:11:56.748864" elapsed="0.000402"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="NOT RUN" start="2026-07-15T03:11:56.749406" elapsed="0.000019"/>
</return>
<status status="NOT RUN" start="2026-07-15T03:11:56.749353" elapsed="0.000113"/>
</branch>
<status status="NOT RUN" start="2026-07-15T03:11:56.749330" elapsed="0.000166"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-07-15T03:11:56.749544" elapsed="0.000020"/>
</return>
<kw name="Restore_Current_Ssh_Connection_From_Index" owner="SSHKeywords" type="TEARDOWN">
<kw name="Run Keyword And Return If" owner="BuiltIn">
<arg>${connection_index} is not None</arg>
<arg>SSHLibrary.Switch Connection</arg>
<arg>${connection_index}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-07-15T03:11:56.753196" elapsed="0.000526"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<arg>127.0.0.1</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-07-15T03:11:56.753934" elapsed="0.000246"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-07-15T03:11:56.754362" elapsed="0.000143"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-07-15T03:11:56.750051" elapsed="0.004528"/>
</kw>
<msg time="2026-07-15T03:11:56.754873" level="INFO">${output} = cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.171.68: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-07-15T03:01:50.283225" elapsed="606.471696"/>
</kw>
<status status="PASS" start="2026-07-15T03:01:50.282794" elapsed="606.472196"/>
</branch>
<status status="PASS" start="2026-07-15T03:01:50.282322" elapsed="606.472702"/>
</if>
<kw name="Log" owner="BuiltIn">
<msg time="2026-07-15T03:11:56.755754" level="INFO">cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.171.68: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.68. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
03:02:55.829 16  switches: flows:  124001 123781 121497 120438 125798 119575 122432 121700 119448 120507 118270 118327 121556 116097 118729 117192  total = 32.155800 per ms 
03:03:55.931 16  switches: flows:  134014 136159 136426 136828 136482 134833 135925 134631 128833 130293 130965 131590 129955 129219 130047 127829  total = 35.341465 per ms 
03:04:56.031 16  switches: flows:  138021 136921 136564 135076 137267 136048 135328 133597 129829 128921 128161 128936 129413 127341 127434 126581  total = 35.198513 per ms 
03:05:56.133 16  switches: flows:  139741 138739 139703 138088 139209 138278 138516 135754 132002 133621 131041 130578 131301 130388 130106 133066  total = 35.942148 per ms 
03:06:56.233 16  switches: flows:  141382 138119 138947 138942 136504 137130 138914 134387 132080 133391 131437 131853 131457 129622 131217 132701  total = 35.908113 per ms 
03:07:56.333 16  switches: flows:  140428 141432 139549 137921 136002 139314 139445 135346 131759 132895 133458 131908 130258 129662 132258 133985  total = 36.033529 per ms 
03:08:56.434 16  switches: flows:  141781 144179 140378 139364 138156 139623 139150 135322 132634 131133 133494 132999 134548 131837 134551 133244  total = 36.312578 per ms 
03:09:56.534 16  switches: flows:  143932 146671 142607 139335 139109 137454 139737 137418 134662 133937 134999 134542 135175 134931 135893 134616  total = 36.689033 per ms 
03:10:56.634 16  switches: flows:  142325 141509 138614 138599 139067 136822 139474 133852 131631 131236 132482 134909 133663 130818 133384 132995  total = 36.129325 per ms 
03:11:56.735 16  switches: flows:  142008 140747 142077 140140 137997 136989 140417 135763 135023 134708 134022 134530 135610 133743 136735 135220  total = 36.534415 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 35198.51/36689.03/36009.90/12012.38 responses/s</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-07-15T03:11:56.755238" elapsed="0.000622"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${output}</arg>
<arg>RESULT</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-07-15T03:11:56.756067" elapsed="0.000435"/>
</kw>
<kw name="Get Lines Containing String" owner="String">
<msg time="2026-07-15T03:11:56.756930" level="INFO">1 out of 23 lines matched.</msg>
<msg time="2026-07-15T03:11:56.757028" level="INFO">${result_line} = RESULT: 16 switches 9 tests min/max/avg/stdev = 35198.51/36689.03/36009.90/12012.38 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-07-15T03:11:56.756688" elapsed="0.000365"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-07-15T03:11:56.757471" level="INFO">@{results_list} = [ RESULT: | 16 | switches | 9 | tests | min/max/avg/stdev | = | 35198.51/36689.03/36009.90/12012.38 | 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-07-15T03:11:56.757209" elapsed="0.000290"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-07-15T03:11:56.760223" 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-07-15T03:11:56.757659" elapsed="0.002625"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-07-15T03:11:56.762687" level="INFO">35198.51/36689.03/36009.90/12012.38</msg>
<arg>${results_list[7]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-07-15T03:11:56.760438" elapsed="0.002311"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-07-15T03:11:56.765165" 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-07-15T03:11:56.762906" elapsed="0.002287"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-07-15T03:11:56.767747" level="INFO">@{result_value_list} = [ 35198.51 | 36689.03 | 36009.90 | 12012.38 ]</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-07-15T03:11:56.765417" elapsed="0.002361"/>
</kw>
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-07-15T03:11:56.768271" level="INFO">Length is 4.</msg>
<msg time="2026-07-15T03:11:56.768362" 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-07-15T03:11:56.767938" elapsed="0.000448"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-07-15T03:11:56.773308" level="INFO">min :: 35198.51</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-07-15T03:11:56.768886" elapsed="0.004504"/>
</kw>
<var name="${i}">0</var>
<status status="PASS" start="2026-07-15T03:11:56.768728" elapsed="0.004710"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-07-15T03:11:56.778333" level="INFO">max :: 36689.03</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-07-15T03:11:56.773763" elapsed="0.004629"/>
</kw>
<var name="${i}">1</var>
<status status="PASS" start="2026-07-15T03:11:56.773565" elapsed="0.004862"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-07-15T03:11:56.783370" level="INFO">avg :: 36009.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-07-15T03:11:56.778687" elapsed="0.004750"/>
</kw>
<var name="${i}">2</var>
<status status="PASS" start="2026-07-15T03:11:56.778517" elapsed="0.004997"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-07-15T03:11:56.788683" level="INFO">stdev :: 12012.38</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-07-15T03:11:56.783805" elapsed="0.004956"/>
</kw>
<var name="${i}">3</var>
<status status="PASS" start="2026-07-15T03:11:56.783628" elapsed="0.005178"/>
</iter>
<var>${i}</var>
<value>0</value>
<value>${num_stats}</value>
<status status="PASS" start="2026-07-15T03:11:56.768460" elapsed="0.020384"/>
</for>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-07-15T03:11:56.793732" level="INFO">${min} = 35198.51</msg>
<var>${min}</var>
<arg>${result_value_list[${0}]}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-07-15T03:11:56.789043" elapsed="0.004722"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-07-15T03:11:56.798346" level="INFO">${max} = 36689.03</msg>
<var>${max}</var>
<arg>${result_value_list[${1}]}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-07-15T03:11:56.793963" elapsed="0.004420"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-07-15T03:11:56.803444" level="INFO">${average} = 36009.90</msg>
<var>${average}</var>
<arg>${result_value_list[${2}]}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-07-15T03:11:56.798590" elapsed="0.004893"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-07-15T03:11:56.807923" level="INFO">${stdev} = 12012.38</msg>
<var>${stdev}</var>
<arg>${result_value_list[${3}]}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-07-15T03:11:56.803784" elapsed="0.004166"/>
</kw>
<kw name="Get Time" owner="BuiltIn">
<msg time="2026-07-15T03:11:56.808597" level="INFO">${date} = 2026-07-15 03:11:56</msg>
<var>${date}</var>
<arg>d,m,s</arg>
<doc>Returns the given time in the requested format.</doc>
<status status="PASS" start="2026-07-15T03:11:56.808141" elapsed="0.000488"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-07-15T03:11:56.809353" level="INFO">CBench Result: 2026-07-15 03:11:56,-m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633,35198.51,36689.03,36009.90,12012.38</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-07-15T03:11:56.808839" elapsed="0.000575"/>
</kw>
<kw name="Log Results And Determine Status">
<kw name="Append To File" owner="OperatingSystem">
<msg time="2026-07-15T03:11:56.810638" level="INFO" html="true">Appended to file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-cbench-only-chromium/latency.csv"&gt;/w/workspace/openflowplugin-csit-1node-cbench-only-chromium/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-07-15T03:11:56.810125" elapsed="0.000601"/>
</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-07-15T03:11:56.810881" elapsed="0.000493"/>
</kw>
<arg>${min}</arg>
<arg>${max}</arg>
<arg>${average}</arg>
<arg>${average_threshold}</arg>
<arg>${output_filename}</arg>
<status status="PASS" start="2026-07-15T03:11:56.809588" elapsed="0.001879"/>
</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-07-15T03:01:50.280978" elapsed="606.530622"/>
</kw>
<kw name="Sleep" owner="BuiltIn">
<msg time="2026-07-15T03:11:56.812186" level="INFO">Slept 0 seconds.</msg>
<arg>${test_delay}</arg>
<doc>Pauses the test executed for the given time.</doc>
<status status="PASS" start="2026-07-15T03:11:56.811795" elapsed="0.000460"/>
</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-07-15T03:11:56.812896" elapsed="0.000330"/>
</kw>
<status status="PASS" start="2026-07-15T03:11:56.812509" elapsed="0.000802"/>
</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-07-15T03:01:50.278319" elapsed="606.535037"/>
</test>
<test id="s1-t2" name="Cbench Throughput Test" line="51">
<kw name="Log" owner="BuiltIn">
<msg time="2026-07-15T03:11:56.814722" 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-07-15T03:11:56.814316" elapsed="0.000465"/>
</kw>
<kw name="Run Cbench And Log Results">
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-07-15T03:11:56.816075" level="INFO">${output_filename} = throughput.csv</msg>
<arg>${output_filename}</arg>
<doc>Makes a variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-07-15T03:11:56.815743" 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
[http://robotframework.org/robotframework/latest/libraries/Process.html|
Process] library instead._</doc>
<status status="NOT RUN" start="2026-07-15T03:11:56.816499" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-07-15T03:11:56.816267" elapsed="0.000289"/>
</branch>
<branch type="ELSE">
<kw name="Run Command On Remote System" owner="Utils">
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot; and &quot;${return_stderr}&quot;!=&quot;True&quot;">
<kw name="Fail" owner="BuiltIn">
<arg>At least one of {return_stdout} or {return_stderr} args should be set to True</arg>
<doc>Fails the test with the given message and optionally alters its tags.</doc>
<status status="NOT RUN" start="2026-07-15T03:11:56.819633" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-07-15T03:11:56.819333" elapsed="0.000373"/>
</branch>
<status status="PASS" start="2026-07-15T03:11:56.819313" elapsed="0.000418"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-07-15T03:11:56.820088" 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-07-15T03:11:56.820207" 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-07-15T03:11:56.819869" elapsed="0.000369"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-07-15T03:11:56.820803" level="INFO">Attempting to execute command "/usr/local/bin/cbench -c 10.30.171.68 -t -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633" on remote system "10.30.170.26" 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-07-15T03:11:56.820374" elapsed="0.000486"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-07-15T03:11:56.821398" 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-07-15T03:11:56.821002" elapsed="0.000423"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-07-15T03:11:56.822325" level="INFO">Length is 0.</msg>
<msg time="2026-07-15T03:11:56.822412" 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-07-15T03:11:56.822008" elapsed="0.000428"/>
</kw>
<kw name="Run Keyword And Return If" owner="BuiltIn">
<arg>${pwd_length} &gt; 0</arg>
<arg>SSHLibrary.Login</arg>
<arg>${user}</arg>
<arg>${password}</arg>
<arg>delay=${delay}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-07-15T03:11:56.822575" elapsed="0.000389"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-07-15T03:11:56.825423" level="INFO">Logging into '10.30.170.26:22' as 'jenkins'.</msg>
<msg time="2026-07-15T03:11:57.422345" level="INFO">Read output: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-153-generic x86_64)

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

 System information as of Wed Jul 15 03:11:57 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.26
  Swap usage:   0%


Expanded Security Maintenance for Applications is not enabled.

0 updates can be applied immediately.

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


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


Last login: Wed Jul 15 03:01:50 2026 from 10.30.171.66
[?2004h[jenkins@releng-00446-26-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-07-15T03:11:56.823616" elapsed="0.598936"/>
</kw>
<msg time="2026-07-15T03:11:57.422641" 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-07-15T03:11:56.823144" elapsed="0.599615"/>
</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-07-15T03:11:56.821624" elapsed="0.601260"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-07-15T03:11:57.423473" level="INFO">Executing command '/usr/local/bin/cbench -c 10.30.171.68 -t -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633'.</msg>
<msg time="2026-07-15T03:22:03.497601" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-07-15T03:22:03.498190" level="INFO">${stdout} = </msg>
<msg time="2026-07-15T03:22:03.498312" level="INFO">${stderr} = cbench: controller benchmarking tool
   running in mode 'throughput'
   connecting to controller at 10.30.171.68: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-07-15T03:11:57.423134" elapsed="606.075240"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-07-15T03:22:03.498892" elapsed="0.000727"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-07-15T03:22:03.500869" level="INFO">cbench: controller benchmarking tool
   running in mode 'throughput'
   connecting to controller at 10.30.171.68: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.68. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
03:13:02.552 16  switches: flows:  591737 587508 593386 595106 597235 589443 591452 597397 570434 581135 580551 586999 579354 583568 585631 583155  total = 156.568183 per ms 
03:14:02.654 16  switches: flows:  625822 623107 624295 629887 616917 624836 624505 616564 627579 630899 619600 623213 614400 617120 639848 621143  total = 166.049237 per ms 
03:15:02.756 16  switches: flows:  615762 600357 616380 611661 617390 616489 597533 621877 619227 613690 614261 608863 622383 619870 611657 621571  total = 163.541807 per ms 
03:16:02.860 16  switches: flows:  697702 690183 692572 695330 700197 694745 689366 708080 696217 694994 702205 702266 695350 697180 698645 704181  total = 185.667566 per ms 
03:17:02.961 16  switches: flows:  714026 701307 702896 715191 693881 704581 695634 703200 701975 702374 703956 711834 686372 702426 696730 706639  total = 187.068041 per ms 
03:18:03.062 16  switches: flows:  717135 713935 710768 709448 705693 715484 720650 699763 705108 719252 708305 711015 721242 712405 714939 700430  total = 189.441449 per ms 
03:19:03.164 16  switches: flows:  722678 712175 715937 719818 699348 715609 697247 710009 715212 711567 712891 713769 706681 700506 708193 710368  total = 189.215745 per ms 
03:20:03.268 16  switches: flows:  708931 718384 717698 699655 699460 709821 710360 718975 709168 704758 709613 705977 709246 707268 704771 708104  total = 188.711962 per ms 
03:21:03.369 16  switches: flows:  717416 708082 711183 714645 707438 713059 705395 711936 712797 702098 717893 709429 716286 702709 715116 714280  total = 189.344015 per ms 
03:22:03.472 16  switches: flows:  714529 710258 717739 700451 704096 719885 721233 703719 716706 717623 716016 702250 708475 712097 713714 714127  total = 189.560381 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 163541.81/189560.38/183177.80/61859.59 responses/s</msg>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-07-15T03:22:03.500052" elapsed="0.001107"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="PASS" start="2026-07-15T03:22:03.501720" elapsed="0.000079"/>
</return>
<status status="PASS" start="2026-07-15T03:22:03.501342" elapsed="0.000547"/>
</branch>
<status status="PASS" start="2026-07-15T03:22:03.501289" elapsed="0.000661"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="NOT RUN" start="2026-07-15T03:22:03.502178" elapsed="0.000033"/>
</return>
<status status="NOT RUN" start="2026-07-15T03:22:03.502089" elapsed="0.000188"/>
</branch>
<status status="NOT RUN" start="2026-07-15T03:22:03.502051" elapsed="0.000278"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-07-15T03:22:03.502405" elapsed="0.000033"/>
</return>
<kw name="Restore_Current_Ssh_Connection_From_Index" owner="SSHKeywords" type="TEARDOWN">
<kw name="Run Keyword And Return If" owner="BuiltIn">
<arg>${connection_index} is not None</arg>
<arg>SSHLibrary.Switch Connection</arg>
<arg>${connection_index}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-07-15T03:22:03.508534" elapsed="0.000834"/>
</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-07-15T03:22:03.509520" elapsed="0.000183"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-07-15T03:22:03.509834" elapsed="0.000101"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-07-15T03:22:03.503156" elapsed="0.006832"/>
</kw>
<msg time="2026-07-15T03:22:03.510116" level="INFO">${output} = cbench: controller benchmarking tool
   running in mode 'throughput'
   connecting to controller at 10.30.171.68: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-07-15T03:11:56.816982" elapsed="606.693161"/>
</kw>
<status status="PASS" start="2026-07-15T03:11:56.816583" elapsed="606.693608"/>
</branch>
<status status="PASS" start="2026-07-15T03:11:56.816243" elapsed="606.693971"/>
</if>
<kw name="Log" owner="BuiltIn">
<msg time="2026-07-15T03:22:03.510642" level="INFO">cbench: controller benchmarking tool
   running in mode 'throughput'
   connecting to controller at 10.30.171.68: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.68. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
03:13:02.552 16  switches: flows:  591737 587508 593386 595106 597235 589443 591452 597397 570434 581135 580551 586999 579354 583568 585631 583155  total = 156.568183 per ms 
03:14:02.654 16  switches: flows:  625822 623107 624295 629887 616917 624836 624505 616564 627579 630899 619600 623213 614400 617120 639848 621143  total = 166.049237 per ms 
03:15:02.756 16  switches: flows:  615762 600357 616380 611661 617390 616489 597533 621877 619227 613690 614261 608863 622383 619870 611657 621571  total = 163.541807 per ms 
03:16:02.860 16  switches: flows:  697702 690183 692572 695330 700197 694745 689366 708080 696217 694994 702205 702266 695350 697180 698645 704181  total = 185.667566 per ms 
03:17:02.961 16  switches: flows:  714026 701307 702896 715191 693881 704581 695634 703200 701975 702374 703956 711834 686372 702426 696730 706639  total = 187.068041 per ms 
03:18:03.062 16  switches: flows:  717135 713935 710768 709448 705693 715484 720650 699763 705108 719252 708305 711015 721242 712405 714939 700430  total = 189.441449 per ms 
03:19:03.164 16  switches: flows:  722678 712175 715937 719818 699348 715609 697247 710009 715212 711567 712891 713769 706681 700506 708193 710368  total = 189.215745 per ms 
03:20:03.268 16  switches: flows:  708931 718384 717698 699655 699460 709821 710360 718975 709168 704758 709613 705977 709246 707268 704771 708104  total = 188.711962 per ms 
03:21:03.369 16  switches: flows:  717416 708082 711183 714645 707438 713059 705395 711936 712797 702098 717893 709429 716286 702709 715116 714280  total = 189.344015 per ms 
03:22:03.472 16  switches: flows:  714529 710258 717739 700451 704096 719885 721233 703719 716706 717623 716016 702250 708475 712097 713714 714127  total = 189.560381 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 163541.81/189560.38/183177.80/61859.59 responses/s</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-07-15T03:22:03.510351" elapsed="0.000381"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${output}</arg>
<arg>RESULT</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-07-15T03:22:03.510879" elapsed="0.000399"/>
</kw>
<kw name="Get Lines Containing String" owner="String">
<msg time="2026-07-15T03:22:03.511682" level="INFO">1 out of 23 lines matched.</msg>
<msg time="2026-07-15T03:22:03.511778" level="INFO">${result_line} = RESULT: 16 switches 9 tests min/max/avg/stdev = 163541.81/189560.38/183177.80/61859.59 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-07-15T03:22:03.511438" elapsed="0.000364"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-07-15T03:22:03.512209" level="INFO">@{results_list} = [ RESULT: | 16 | switches | 9 | tests | min/max/avg/stdev | = | 163541.81/189560.38/183177.80/61859.59 | 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-07-15T03:22:03.511955" elapsed="0.000280"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-07-15T03:22:03.514592" 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-07-15T03:22:03.512378" elapsed="0.002271"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-07-15T03:22:03.517014" level="INFO">163541.81/189560.38/183177.80/61859.59</msg>
<arg>${results_list[7]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-07-15T03:22:03.514807" elapsed="0.002264"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-07-15T03:22:03.519434" 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-07-15T03:22:03.517219" elapsed="0.002242"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-07-15T03:22:03.521940" level="INFO">@{result_value_list} = [ 163541.81 | 189560.38 | 183177.80 | 61859.59 ]</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-07-15T03:22:03.519657" elapsed="0.002311"/>
</kw>
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-07-15T03:22:03.522439" level="INFO">Length is 4.</msg>
<msg time="2026-07-15T03:22:03.522528" 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-07-15T03:22:03.522124" elapsed="0.000427"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-07-15T03:22:03.527384" level="INFO">min :: 163541.81</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-07-15T03:22:03.522951" elapsed="0.004491"/>
</kw>
<var name="${i}">0</var>
<status status="PASS" start="2026-07-15T03:22:03.522821" elapsed="0.004656"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-07-15T03:22:03.531938" level="INFO">max :: 189560.38</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-07-15T03:22:03.527711" elapsed="0.004284"/>
</kw>
<var name="${i}">1</var>
<status status="PASS" start="2026-07-15T03:22:03.527567" elapsed="0.004463"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-07-15T03:22:03.536446" level="INFO">avg :: 183177.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-07-15T03:22:03.532242" elapsed="0.004288"/>
</kw>
<var name="${i}">2</var>
<status status="PASS" start="2026-07-15T03:22:03.532116" elapsed="0.004449"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-07-15T03:22:03.541054" level="INFO">stdev :: 61859.59</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-07-15T03:22:03.536801" elapsed="0.004312"/>
</kw>
<var name="${i}">3</var>
<status status="PASS" start="2026-07-15T03:22:03.536653" elapsed="0.004495"/>
</iter>
<var>${i}</var>
<value>0</value>
<value>${num_stats}</value>
<status status="PASS" start="2026-07-15T03:22:03.522618" elapsed="0.018561"/>
</for>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-07-15T03:22:03.545211" level="INFO">${min} = 163541.81</msg>
<var>${min}</var>
<arg>${result_value_list[${0}]}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-07-15T03:22:03.541343" elapsed="0.003895"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-07-15T03:22:03.549142" level="INFO">${max} = 189560.38</msg>
<var>${max}</var>
<arg>${result_value_list[${1}]}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-07-15T03:22:03.545399" elapsed="0.003770"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-07-15T03:22:03.553035" level="INFO">${average} = 183177.80</msg>
<var>${average}</var>
<arg>${result_value_list[${2}]}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-07-15T03:22:03.549324" elapsed="0.003738"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-07-15T03:22:03.556908" level="INFO">${stdev} = 61859.59</msg>
<var>${stdev}</var>
<arg>${result_value_list[${3}]}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-07-15T03:22:03.553212" elapsed="0.003724"/>
</kw>
<kw name="Get Time" owner="BuiltIn">
<msg time="2026-07-15T03:22:03.557449" level="INFO">${date} = 2026-07-15 03:22:03</msg>
<var>${date}</var>
<arg>d,m,s</arg>
<doc>Returns the given time in the requested format.</doc>
<status status="PASS" start="2026-07-15T03:22:03.557094" elapsed="0.000380"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-07-15T03:22:03.558047" level="INFO">CBench Result: 2026-07-15 03:22:03,-t -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633,163541.81,189560.38,183177.80,61859.59</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-07-15T03:22:03.557619" elapsed="0.000485"/>
</kw>
<kw name="Log Results And Determine Status">
<kw name="Append To File" owner="OperatingSystem">
<msg time="2026-07-15T03:22:03.559161" level="INFO" html="true">Appended to file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-cbench-only-chromium/throughput.csv"&gt;/w/workspace/openflowplugin-csit-1node-cbench-only-chromium/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-07-15T03:22:03.558753" elapsed="0.000474"/>
</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-07-15T03:22:03.559376" elapsed="0.000481"/>
</kw>
<arg>${min}</arg>
<arg>${max}</arg>
<arg>${average}</arg>
<arg>${average_threshold}</arg>
<arg>${output_filename}</arg>
<status status="PASS" start="2026-07-15T03:22:03.558254" elapsed="0.001669"/>
</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-07-15T03:11:56.815119" elapsed="606.744864"/>
</kw>
<kw name="Sleep" owner="BuiltIn">
<msg time="2026-07-15T03:22:03.560452" level="INFO">Slept 0 seconds.</msg>
<arg>${test_delay}</arg>
<doc>Pauses the test executed for the given time.</doc>
<status status="PASS" start="2026-07-15T03:22:03.560133" elapsed="0.000406"/>
</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-07-15T03:22:03.561062" elapsed="0.000259"/>
</kw>
<status status="PASS" start="2026-07-15T03:22:03.560761" elapsed="0.000631"/>
</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-07-15T03:11:56.813723" elapsed="606.747708"/>
</test>
<test id="s1-t3" name="Rerun Latency Test To Check Bug 6176" line="65">
<kw name="Log" owner="BuiltIn">
<msg time="2026-07-15T03:22:03.562598" 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-07-15T03:22:03.562228" elapsed="0.000426"/>
</kw>
<kw name="Run Cbench And Log Results">
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-07-15T03:22:03.563911" level="INFO">${output_filename} = bug.csv</msg>
<arg>${output_filename}</arg>
<doc>Makes a variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-07-15T03:22:03.563525" elapsed="0.000428"/>
</kw>
<if>
<branch type="IF" condition="&quot;${cbench_system}&quot; == &quot;localhost&quot;">
<kw name="Run" owner="OperatingSystem">
<var>${output}</var>
<arg>${cbench_executable} -c ${ODL_SYSTEM_IP} ${cbench_args}</arg>
<doc>_This keyword is considered deprecated. Use the
[http://robotframework.org/robotframework/latest/libraries/Process.html|
Process] library instead._</doc>
<status status="NOT RUN" start="2026-07-15T03:22:03.564291" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-07-15T03:22:03.564072" elapsed="0.000275"/>
</branch>
<branch type="ELSE">
<kw name="Run Command On Remote System" owner="Utils">
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot; and &quot;${return_stderr}&quot;!=&quot;True&quot;">
<kw name="Fail" owner="BuiltIn">
<arg>At least one of {return_stdout} or {return_stderr} args should be set to True</arg>
<doc>Fails the test with the given message and optionally alters its tags.</doc>
<status status="NOT RUN" start="2026-07-15T03:22:03.567372" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-07-15T03:22:03.567117" elapsed="0.000311"/>
</branch>
<status status="PASS" start="2026-07-15T03:22:03.567098" elapsed="0.000354"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-07-15T03:22:03.567797" 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-07-15T03:22:03.567914" 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-07-15T03:22:03.567588" elapsed="0.000352"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-07-15T03:22:03.568526" level="INFO">Attempting to execute command "/usr/local/bin/cbench -c 10.30.171.68 -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633" on remote system "10.30.170.26" 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-07-15T03:22:03.568075" elapsed="0.000511"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-07-15T03:22:03.569173" 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-07-15T03:22:03.568740" elapsed="0.000461"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-07-15T03:22:03.570097" level="INFO">Length is 0.</msg>
<msg time="2026-07-15T03:22:03.570184" 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-07-15T03:22:03.569792" elapsed="0.000416"/>
</kw>
<kw name="Run Keyword And Return If" owner="BuiltIn">
<arg>${pwd_length} &gt; 0</arg>
<arg>SSHLibrary.Login</arg>
<arg>${user}</arg>
<arg>${password}</arg>
<arg>delay=${delay}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-07-15T03:22:03.570353" elapsed="0.000331"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-07-15T03:22:03.571521" level="INFO">Logging into '10.30.170.26:22' as 'jenkins'.</msg>
<msg time="2026-07-15T03:22:04.181370" level="INFO">Read output: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-153-generic x86_64)

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

 System information as of Wed Jul 15 03:22:03 UTC 2026

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


Expanded Security Maintenance for Applications is not enabled.

0 updates can be applied immediately.

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


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


Last login: Wed Jul 15 03:11:57 2026 from 10.30.171.66
[?2004h[jenkins@releng-00446-26-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-07-15T03:22:03.571168" elapsed="0.610394"/>
</kw>
<msg time="2026-07-15T03:22:04.181647" 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-07-15T03:22:03.570834" elapsed="0.610909"/>
</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-07-15T03:22:03.569404" elapsed="0.612455"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-07-15T03:22:04.182369" level="INFO">Executing command '/usr/local/bin/cbench -c 10.30.171.68 -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633'.</msg>
<msg time="2026-07-15T03:32:10.356206" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-07-15T03:32:10.356793" level="INFO">${stdout} = </msg>
<msg time="2026-07-15T03:32:10.357005" level="INFO">${stderr} = cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.171.68: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-07-15T03:22:04.182076" elapsed="606.174993"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-07-15T03:32:10.357536" elapsed="0.000786"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-07-15T03:32:10.359452" level="INFO">cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.171.68: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.68. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
03:23:09.409 16  switches: flows:  137394 135678 138325 136197 138758 138503 134956 140686 135426 156960 142390 134713 131732 130964 134398 131795  total = 36.647917 per ms 
03:24:09.510 16  switches: flows:  132781 134030 136699 132764 137899 136692 134698 136865 133226 131640 129829 134038 133786 128191 133949 130318  total = 35.563936 per ms 
03:25:09.612 16  switches: flows:  136991 138640 140557 135551 141749 139843 135698 140492 135773 137107 133544 135522 135382 132608 134985 132273  total = 36.384502 per ms 
03:26:09.713 16  switches: flows:  134136 133209 136914 134987 140784 137045 133539 136988 133684 134094 130454 134743 134719 129822 131968 130051  total = 35.725931 per ms 
03:27:09.814 16  switches: flows:  131056 131552 134962 131079 135562 135839 131008 132263 131090 132577 127293 129192 130706 128333 130710 127570  total = 34.954782 per ms 
03:28:09.915 16  switches: flows:  134921 134507 139521 136209 139723 138487 135241 137216 135215 133717 131444 134415 133570 131323 134485 131939  total = 35.972136 per ms 
03:29:10.016 16  switches: flows:  137975 139527 141833 139027 144606 143560 138009 141014 137103 138874 133992 137273 137837 135589 137371 133701  total = 36.893245 per ms 
03:30:10.117 16  switches: flows:  139711 140212 143431 139146 143312 143856 140055 144064 139826 140700 136311 137725 138217 136453 139644 136943  total = 37.264514 per ms 
03:31:10.219 16  switches: flows:  139107 140389 143224 139454 145544 142957 138512 142137 139497 140460 134376 138327 139270 134240 138870 134556  total = 37.119983 per ms 
03:32:10.320 16  switches: flows:  138580 137810 141917 136406 141187 140640 137380 139226 138670 137639 133855 134719 135128 132555 136366 132902  total = 36.521983 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 34954.78/37264.51/36266.78/12110.92 responses/s</msg>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-07-15T03:32:10.358736" elapsed="0.001051"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="PASS" start="2026-07-15T03:32:10.360263" elapsed="0.000069"/>
</return>
<status status="PASS" start="2026-07-15T03:32:10.359963" elapsed="0.000449"/>
</branch>
<status status="PASS" start="2026-07-15T03:32:10.359915" elapsed="0.000555"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="NOT RUN" start="2026-07-15T03:32:10.360717" elapsed="0.000032"/>
</return>
<status status="NOT RUN" start="2026-07-15T03:32:10.360600" elapsed="0.000213"/>
</branch>
<status status="NOT RUN" start="2026-07-15T03:32:10.360564" elapsed="0.000348"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-07-15T03:32:10.360986" 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>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-07-15T03:32:10.364800" elapsed="0.000485"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<arg>127.0.0.1</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-07-15T03:32:10.365491" elapsed="0.000241"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-07-15T03:32:10.365915" elapsed="0.000135"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-07-15T03:32:10.361537" elapsed="0.004589"/>
</kw>
<msg time="2026-07-15T03:32:10.366305" level="INFO">${output} = cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.171.68: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-07-15T03:22:03.564711" elapsed="606.801636"/>
</kw>
<status status="PASS" start="2026-07-15T03:22:03.564373" elapsed="606.802042"/>
</branch>
<status status="PASS" start="2026-07-15T03:22:03.564051" elapsed="606.802396"/>
</if>
<kw name="Log" owner="BuiltIn">
<msg time="2026-07-15T03:32:10.367076" level="INFO">cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.171.68: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.68. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
03:23:09.409 16  switches: flows:  137394 135678 138325 136197 138758 138503 134956 140686 135426 156960 142390 134713 131732 130964 134398 131795  total = 36.647917 per ms 
03:24:09.510 16  switches: flows:  132781 134030 136699 132764 137899 136692 134698 136865 133226 131640 129829 134038 133786 128191 133949 130318  total = 35.563936 per ms 
03:25:09.612 16  switches: flows:  136991 138640 140557 135551 141749 139843 135698 140492 135773 137107 133544 135522 135382 132608 134985 132273  total = 36.384502 per ms 
03:26:09.713 16  switches: flows:  134136 133209 136914 134987 140784 137045 133539 136988 133684 134094 130454 134743 134719 129822 131968 130051  total = 35.725931 per ms 
03:27:09.814 16  switches: flows:  131056 131552 134962 131079 135562 135839 131008 132263 131090 132577 127293 129192 130706 128333 130710 127570  total = 34.954782 per ms 
03:28:09.915 16  switches: flows:  134921 134507 139521 136209 139723 138487 135241 137216 135215 133717 131444 134415 133570 131323 134485 131939  total = 35.972136 per ms 
03:29:10.016 16  switches: flows:  137975 139527 141833 139027 144606 143560 138009 141014 137103 138874 133992 137273 137837 135589 137371 133701  total = 36.893245 per ms 
03:30:10.117 16  switches: flows:  139711 140212 143431 139146 143312 143856 140055 144064 139826 140700 136311 137725 138217 136453 139644 136943  total = 37.264514 per ms 
03:31:10.219 16  switches: flows:  139107 140389 143224 139454 145544 142957 138512 142137 139497 140460 134376 138327 139270 134240 138870 134556  total = 37.119983 per ms 
03:32:10.320 16  switches: flows:  138580 137810 141917 136406 141187 140640 137380 139226 138670 137639 133855 134719 135128 132555 136366 132902  total = 36.521983 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 34954.78/37264.51/36266.78/12110.92 responses/s</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-07-15T03:32:10.366641" elapsed="0.000539"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${output}</arg>
<arg>RESULT</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-07-15T03:32:10.367383" elapsed="0.000742"/>
</kw>
<kw name="Get Lines Containing String" owner="String">
<msg time="2026-07-15T03:32:10.368714" level="INFO">1 out of 23 lines matched.</msg>
<msg time="2026-07-15T03:32:10.368846" level="INFO">${result_line} = RESULT: 16 switches 9 tests min/max/avg/stdev = 34954.78/37264.51/36266.78/12110.92 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-07-15T03:32:10.368353" elapsed="0.000561"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-07-15T03:32:10.369441" level="INFO">@{results_list} = [ RESULT: | 16 | switches | 9 | tests | min/max/avg/stdev | = | 34954.78/37264.51/36266.78/12110.92 | 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-07-15T03:32:10.369128" elapsed="0.000339"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-07-15T03:32:10.371822" 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-07-15T03:32:10.369608" elapsed="0.002270"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-07-15T03:32:10.374217" level="INFO">34954.78/37264.51/36266.78/12110.92</msg>
<arg>${results_list[7]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-07-15T03:32:10.372020" elapsed="0.002253"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-07-15T03:32:10.376597" 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-07-15T03:32:10.374420" elapsed="0.002204"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-07-15T03:32:10.379037" level="INFO">@{result_value_list} = [ 34954.78 | 37264.51 | 36266.78 | 12110.92 ]</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-07-15T03:32:10.376829" elapsed="0.002235"/>
</kw>
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-07-15T03:32:10.379526" level="INFO">Length is 4.</msg>
<msg time="2026-07-15T03:32:10.379614" 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-07-15T03:32:10.379216" elapsed="0.000422"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-07-15T03:32:10.384282" level="INFO">min :: 34954.78</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-07-15T03:32:10.380025" elapsed="0.004316"/>
</kw>
<var name="${i}">0</var>
<status status="PASS" start="2026-07-15T03:32:10.379898" elapsed="0.004478"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-07-15T03:32:10.388892" level="INFO">max :: 37264.51</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-07-15T03:32:10.384590" elapsed="0.004360"/>
</kw>
<var name="${i}">1</var>
<status status="PASS" start="2026-07-15T03:32:10.384463" elapsed="0.004539"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-07-15T03:32:10.393481" level="INFO">avg :: 36266.78</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-07-15T03:32:10.389214" elapsed="0.004326"/>
</kw>
<var name="${i}">2</var>
<status status="PASS" start="2026-07-15T03:32:10.389086" elapsed="0.004488"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-07-15T03:32:10.398156" level="INFO">stdev :: 12110.92</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-07-15T03:32:10.393801" elapsed="0.004412"/>
</kw>
<var name="${i}">3</var>
<status status="PASS" start="2026-07-15T03:32:10.393658" elapsed="0.004589"/>
</iter>
<var>${i}</var>
<value>0</value>
<value>${num_stats}</value>
<status status="PASS" start="2026-07-15T03:32:10.379718" elapsed="0.018559"/>
</for>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-07-15T03:32:10.402435" level="INFO">${min} = 34954.78</msg>
<var>${min}</var>
<arg>${result_value_list[${0}]}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-07-15T03:32:10.398433" elapsed="0.004030"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-07-15T03:32:10.406355" level="INFO">${max} = 37264.51</msg>
<var>${max}</var>
<arg>${result_value_list[${1}]}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-07-15T03:32:10.402617" elapsed="0.003765"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-07-15T03:32:10.410203" level="INFO">${average} = 36266.78</msg>
<var>${average}</var>
<arg>${result_value_list[${2}]}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-07-15T03:32:10.406533" elapsed="0.003697"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-07-15T03:32:10.414068" level="INFO">${stdev} = 12110.92</msg>
<var>${stdev}</var>
<arg>${result_value_list[${3}]}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-07-15T03:32:10.410388" elapsed="0.003706"/>
</kw>
<kw name="Get Time" owner="BuiltIn">
<msg time="2026-07-15T03:32:10.414595" level="INFO">${date} = 2026-07-15 03:32:10</msg>
<var>${date}</var>
<arg>d,m,s</arg>
<doc>Returns the given time in the requested format.</doc>
<status status="PASS" start="2026-07-15T03:32:10.414253" elapsed="0.000367"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-07-15T03:32:10.415191" level="INFO">CBench Result: 2026-07-15 03:32:10,-m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633,34954.78,37264.51,36266.78,12110.92</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-07-15T03:32:10.414783" elapsed="0.000464"/>
</kw>
<kw name="Log Results And Determine Status">
<kw name="Append To File" owner="OperatingSystem">
<msg time="2026-07-15T03:32:10.416326" level="INFO" html="true">Appended to file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-cbench-only-chromium/bug.csv"&gt;/w/workspace/openflowplugin-csit-1node-cbench-only-chromium/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-07-15T03:32:10.415867" elapsed="0.000527"/>
</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-07-15T03:32:10.416543" elapsed="0.000472"/>
</kw>
<arg>${min}</arg>
<arg>${max}</arg>
<arg>${average}</arg>
<arg>${average_threshold}</arg>
<arg>${output_filename}</arg>
<status status="PASS" start="2026-07-15T03:32:10.415384" elapsed="0.001695"/>
</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-07-15T03:22:03.562986" elapsed="606.854185"/>
</kw>
<kw name="Sleep" owner="BuiltIn">
<msg time="2026-07-15T03:32:10.417622" level="INFO">Slept 0 seconds.</msg>
<arg>${test_delay}</arg>
<doc>Pauses the test executed for the given time.</doc>
<status status="PASS" start="2026-07-15T03:32:10.417318" elapsed="0.000378"/>
</kw>
<kw name="Report Failure Due To Bug" owner="Utils" type="TEARDOWN">
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-07-15T03:32:10.418876" 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-07-15T03:32:10.418388" elapsed="0.000515"/>
</kw>
<if>
<branch type="IF" condition="('${TEST_STATUS}' != 'FAIL') or ${test_skipped}">
<return>
<status status="PASS" start="2026-07-15T03:32:10.419122" elapsed="0.000031"/>
</return>
<status status="PASS" start="2026-07-15T03:32:10.418977" elapsed="0.000207"/>
</branch>
<status status="PASS" start="2026-07-15T03:32:10.418959" elapsed="0.000250"/>
</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-07-15T03:32:10.419357" elapsed="0.000021"/>
</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-07-15T03:32:10.419510" elapsed="0.000021"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<var>${bug_url}</var>
<arg>${match}</arg>
<arg>https://jira.opendaylight.org/browse/${number}</arg>
<arg>https://bugs.opendaylight.org/show_bug.cgi?id=${number}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="NOT RUN" start="2026-07-15T03:32:10.419684" elapsed="0.000022"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<var>${msg}</var>
<arg>This test fails due to ${bug_url}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="NOT RUN" start="2026-07-15T03:32:10.419880" elapsed="0.000020"/>
</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-07-15T03:32:10.420029" elapsed="0.000020"/>
</kw>
<kw name="Set Test Message" owner="BuiltIn">
<arg>${msg}${newline}${newline}${TEST_MESSAGE}</arg>
<doc>Sets message for the current test case.</doc>
<status status="NOT RUN" start="2026-07-15T03:32:10.420174" 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-07-15T03:32:10.420323" elapsed="0.000019"/>
</kw>
<if>
<branch type="IF" condition="&quot;${include_bug_in_tags}&quot;==&quot;True&quot;">
<kw name="Set Tags" owner="BuiltIn">
<arg>${bug_url}</arg>
<doc>Adds given ``tags`` for the current test or all tests in a suite.</doc>
<status status="NOT RUN" start="2026-07-15T03:32:10.420546" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-07-15T03:32:10.420405" elapsed="0.000194"/>
</branch>
<status status="NOT RUN" start="2026-07-15T03:32:10.420388" elapsed="0.000235"/>
</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-07-15T03:32:10.418060" elapsed="0.002629"/>
</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-07-15T03:22:03.561735" elapsed="606.859002"/>
</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-07-15T03:01:47.265390" elapsed="1823.156048"/>
</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>
