<?xml version="1.0" encoding="UTF-8"?>
<robot generator="Robot 7.4.2 (Python 3.11.10 on linux)" generated="2026-09-10T05:06:11.172169" 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-09-10T05:06:11.689030" elapsed="0.000023"/>
</return>
<status status="NOT RUN" start="2026-09-10T05:06:11.688885" elapsed="0.000216"/>
</branch>
<status status="PASS" start="2026-09-10T05:06:11.688857" elapsed="0.000268"/>
</if>
<kw name="Open Connection" owner="SSHLibrary">
<arg>${controller}</arg>
<arg>port=${karaf_port}</arg>
<arg>prompt=${KARAF_PROMPT_LOGIN}</arg>
<arg>timeout=${timeout}</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-09-10T05:06:11.689259" elapsed="0.000517"/>
</kw>
<kw name="Login" owner="SSHLibrary">
<msg time="2026-09-10T05:06:11.690266" level="INFO">Logging into '10.30.171.254:8101' as 'karaf'.</msg>
<msg time="2026-09-10T05:06:12.443194" level="INFO">Read output: [33m                                                                                           
[33m    ________                       ________                .__  .__       .__     __       
[33m    \_____  \ ______   ____   ____ \______ \ _____  ___.__.|  | |__| ____ |  |___/  |_     
[33m     /   |   \\____ \_/ __ \ /    \ |    |  \\__  \&lt;   |  ||  | |  |/ ___\|  |  \   __\    
[33m    /    |    \  |_&gt; &gt;  ___/|   |  \|    `   \/ __ \\___  ||  |_|  / /_/  &gt;   Y  \  |      
[33m    \_______  /   __/ \___  &gt;___|  /_______  (____  / ____||____/__\___  /|___|  /__|      
[33m            \/|__|        \/     \/        \/     \/\/            /_____/      \/          
[33m                                                                                           

Hit '[1m&lt;tab&gt;[0m' for a list of available commands
and '[1m[cmd] --help[0m' for help on a specific command.
Hit '[1m&lt;ctrl-d&gt;[0m' or type '[1msystem:shutdown[0m' or '[1mlogout[0m' to shutdown OpenDaylight.

[?1h=[90m~[0m                                                                                [?2004hopendaylight-user</msg>
<arg>${KARAF_USER}</arg>
<arg>${KARAF_PASSWORD}</arg>
<arg>loglevel=${loglevel}</arg>
<doc>Logs into the SSH server with the given ``username`` and ``password``.</doc>
<status status="PASS" start="2026-09-10T05:06:11.689991" elapsed="0.753384"/>
</kw>
<kw name="Write" owner="SSHLibrary">
<msg time="2026-09-10T05:06:12.492898" level="INFO">@root&gt;log:set ERROR</msg>
<arg>${cmd}</arg>
<doc>Writes the given ``text`` on the remote machine and appends a newline.</doc>
<status status="PASS" start="2026-09-10T05:06:12.443635" elapsed="0.049351"/>
</kw>
<kw name="Read Until Regexp" owner="SSHLibrary">
<msg time="2026-09-10T05:06:12.494622" level="INFO">[?1l&gt;[?2004l[?1h=[90m~[0m                                                                                [?2004hopendaylight-user@root&gt;</msg>
<msg time="2026-09-10T05:06:12.494724" level="INFO">${output} = [?1l&gt;[?2004l[?1h=[90m~[0m                                                                                [?2004hopendaylight-user@root&gt;</msg>
<var>${output}</var>
<arg>${KARAF_PROMPT}</arg>
<doc>Consumes and returns the server output until a match to ``regexp`` is found.</doc>
<status status="PASS" start="2026-09-10T05:06:12.493150" elapsed="0.001601"/>
</kw>
<kw name="Write Bare" owner="SSHLibrary">
<arg>logout\n</arg>
<doc>Writes the given ``text`` on the remote machine without appending a newline.</doc>
<status status="PASS" start="2026-09-10T05:06:12.494894" elapsed="0.000201"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-09-10T05:06:12.495244" elapsed="0.000208"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-10T05:06:12.495914" level="INFO">[?1l&gt;[?2004l[?1h=[90m~[0m                                                                                [?2004hopendaylight-user@root&gt;</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-10T05:06:12.495600" elapsed="0.000400"/>
</kw>
<return>
<value>${output}</value>
<status status="PASS" start="2026-09-10T05:06:12.496050" elapsed="0.000054"/>
</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.254
Note that this keyword will open&amp;close new SSH connection, without switching back to previously current session.</doc>
<status status="PASS" start="2026-09-10T05:06:11.688544" elapsed="0.807675"/>
</kw>
<arg>3x</arg>
<arg>1s</arg>
<arg>KarafKeywords.Issue Command On Karaf Console</arg>
<arg>log:set ${log_level}</arg>
<doc>Runs the specified keyword and retries if it fails.</doc>
<status status="PASS" start="2026-09-10T05:06:11.685061" elapsed="0.811216"/>
</kw>
<kw name="Append To File" owner="OperatingSystem">
<msg time="2026-09-10T05:06:12.496815" 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-09-10T05:06:12.496469" elapsed="0.000398"/>
</kw>
<kw name="Append To File" owner="OperatingSystem">
<msg time="2026-09-10T05:06:12.497272" 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-09-10T05:06:12.497036" elapsed="0.000312"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-09-10T05:06:12.497854" level="INFO">${duration_in_ms} = 60000</msg>
<var>${duration_in_ms}</var>
<arg>${duration_in_secs} * 1000</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-09-10T05:06:12.497491" elapsed="0.000388"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-09-10T05:06:12.498460" 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-09-10T05:06:12.498113" elapsed="0.000387"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-09-10T05:06:12.499019" level="INFO">${test_timeout} = 900.0</msg>
<var>${test_timeout}</var>
<arg>(${loops} * ${duration_in_secs}) * 1.5</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-09-10T05:06:12.498636" elapsed="0.000409"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-09-10T05:06:12.499505" 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-09-10T05:06:12.499194" elapsed="0.000350"/>
</kw>
<if>
<branch type="IF" condition="&quot;${cbench_system}&quot; == &quot;localhost&quot;">
<kw name="File Should Exist" owner="OperatingSystem">
<arg>${cbench_executable}</arg>
<doc>Fails unless the given ``path`` points to an existing file.</doc>
<status status="NOT RUN" start="2026-09-10T05:06:12.499825" elapsed="0.000019"/>
</kw>
<status status="NOT RUN" start="2026-09-10T05:06:12.499625" elapsed="0.000250"/>
</branch>
<branch type="ELSE">
<kw name="Verify File Exists On Remote System" owner="Utils">
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-09-10T05:06:12.504105" level="INFO">${conn_id} = 2</msg>
<var>${conn_id}</var>
<arg>${system}</arg>
<arg>prompt=${prompt}</arg>
<arg>timeout=${prompt_timeout}</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-09-10T05:06:12.503702" elapsed="0.000430"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-09-10T05:06:12.505088" level="INFO">Length is 0.</msg>
<msg time="2026-09-10T05:06:12.505163" level="INFO">${pwd_length} = 0</msg>
<var>${pwd_length}</var>
<arg>${password}</arg>
<doc>Returns and logs the length of the given item as an integer.</doc>
<status status="PASS" start="2026-09-10T05:06:12.504642" elapsed="0.000542"/>
</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-09-10T05:06:12.505315" elapsed="0.000335"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-09-10T05:06:12.506572" level="INFO">Logging into '10.30.170.94:22' as 'jenkins'.</msg>
<msg time="2026-09-10T05:06:13.012566" level="INFO">Read output: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-187-generic x86_64)

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

 System information as of Thu Sep 10 05:05:41 UTC 2026

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


Expanded Security Maintenance for Applications is not enabled.

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

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


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


[?2004h[jenkins@releng-00446-81-1-mininet-ovs-217-0 ~]&gt;</msg>
<arg>${user}</arg>
<arg>${USER_HOME}/.ssh/${SSH_KEY}</arg>
<arg>${KEYFILE_PASS}</arg>
<arg>delay=${delay}</arg>
<doc>Logs into the SSH server using key-based authentication.</doc>
<status status="PASS" start="2026-09-10T05:06:12.506118" elapsed="0.506594"/>
</kw>
<msg time="2026-09-10T05:06:13.012801" level="INFO">Returning from the enclosing user keyword.</msg>
<arg>SSHLibrary.Login With Public Key</arg>
<arg>${user}</arg>
<arg>${USER_HOME}/.ssh/${SSH_KEY}</arg>
<arg>${KEYFILE_PASS}</arg>
<arg>delay=${delay}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-09-10T05:06:12.505790" elapsed="0.507099"/>
</kw>
<arg>${user}</arg>
<arg>${password}</arg>
<doc>On active SSH session: if given non-empty password, do Login, else do Login With Public Key.</doc>
<status status="PASS" start="2026-09-10T05:06:12.504331" elapsed="0.508696"/>
</kw>
<kw name="File Should Exist" owner="SSHLibrary">
<msg time="2026-09-10T05:06:13.024495" level="INFO">[chan 1] Opened sftp connection (server version 3)</msg>
<arg>${file}</arg>
<doc>Fails if the given ``path`` does NOT point to an existing file.</doc>
<status status="PASS" start="2026-09-10T05:06:13.013233" elapsed="0.013167"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-09-10T05:06:13.026671" elapsed="0.000424"/>
</kw>
<arg>${cbench_system}</arg>
<arg>${cbench_executable}</arg>
<doc>Will create connection with public key and will PASS if the given ${file} exists,
otherwise will FAIL</doc>
<status status="PASS" start="2026-09-10T05:06:12.503221" elapsed="0.523983"/>
</kw>
<status status="PASS" start="2026-09-10T05:06:12.500069" elapsed="0.527193"/>
</branch>
<status status="PASS" start="2026-09-10T05:06:12.499601" elapsed="0.527709"/>
</if>
<kw name="Should Be True" owner="BuiltIn">
<arg>${loops} &gt;= 2</arg>
<arg>If number of loops is less than 2, cbench will not run</arg>
<doc>Fails if the given condition is not true.</doc>
<status status="PASS" start="2026-09-10T05:06:13.027549" elapsed="0.000651"/>
</kw>
<kw name="Verify_Feature_Is_Installed" owner="KarafKeywords">
<if>
<branch type="IF" condition="'${IS_KARAF_APPL}' == 'False'">
<return>
<value>Not A Karaf App</value>
<status status="NOT RUN" start="2026-09-10T05:06:13.033881" elapsed="0.000022"/>
</return>
<status status="NOT RUN" start="2026-09-10T05:06:13.033731" elapsed="0.000236"/>
</branch>
<status status="PASS" start="2026-09-10T05:06:13.033702" elapsed="0.000297"/>
</if>
<kw name="Issue_Command_On_Karaf_Console" owner="KarafKeywords">
<if>
<branch type="IF" condition="'${IS_KARAF_APPL}' == 'False'">
<return>
<value>Not A Karaf App</value>
<status status="NOT RUN" start="2026-09-10T05:06:13.038962" elapsed="0.000019"/>
</return>
<status status="NOT RUN" start="2026-09-10T05:06:13.038793" elapsed="0.000230"/>
</branch>
<status status="PASS" start="2026-09-10T05:06:13.038769" elapsed="0.000282"/>
</if>
<kw name="Open Connection" owner="SSHLibrary">
<arg>${controller}</arg>
<arg>port=${karaf_port}</arg>
<arg>prompt=${KARAF_PROMPT_LOGIN}</arg>
<arg>timeout=${timeout}</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-09-10T05:06:13.039220" elapsed="0.000552"/>
</kw>
<kw name="Login" owner="SSHLibrary">
<msg time="2026-09-10T05:06:13.040406" level="INFO">Logging into '10.30.171.254:8101' as 'karaf'.</msg>
<msg time="2026-09-10T05:06:13.304767" level="INFO">Read output: [33m                                                                                           
[33m    ________                       ________                .__  .__       .__     __       
[33m    \_____  \ ______   ____   ____ \______ \ _____  ___.__.|  | |__| ____ |  |___/  |_     
[33m     /   |   \\____ \_/ __ \ /    \ |    |  \\__  \&lt;   |  ||  | |  |/ ___\|  |  \   __\    
[33m    /    |    \  |_&gt; &gt;  ___/|   |  \|    `   \/ __ \\___  ||  |_|  / /_/  &gt;   Y  \  |      
[33m    \_______  /   __/ \___  &gt;___|  /_______  (____  / ____||____/__\___  /|___|  /__|      
[33m            \/|__|        \/     \/        \/     \/\/            /_____/      \/          
[33m                                                                                           

Hit '[1m&lt;tab&gt;[0m' for a list of available commands
and '[1m[cmd] --help[0m' for help on a specific command.
Hit '[1m&lt;ctrl-d&gt;[0m' or type '[1msystem:shutdown[0m' or '[1mlogout[0m' to shutdown OpenDaylight.

[?1h=[90m~[0m                                                                                [?2004hopendaylight-user</msg>
<arg>${KARAF_USER}</arg>
<arg>${KARAF_PASSWORD}</arg>
<arg>loglevel=${loglevel}</arg>
<doc>Logs into the SSH server with the given ``username`` and ``password``.</doc>
<status status="PASS" start="2026-09-10T05:06:13.039981" elapsed="0.264931"/>
</kw>
<kw name="Write" owner="SSHLibrary">
<msg time="2026-09-10T05:06:13.387862" level="INFO">@root&gt;feature:list -i | 0[C 0g[Krep odl-openflowplugin-drop-test</msg>
<arg>${cmd}</arg>
<doc>Writes the given ``text`` on the remote machine and appends a newline.</doc>
<status status="PASS" start="2026-09-10T05:06:13.305192" elapsed="0.082752"/>
</kw>
<kw name="Read Until Regexp" owner="SSHLibrary">
<msg time="2026-09-10T05:06:13.427709" level="INFO">[?1l&gt;[?2004l[31;1modl-openflowplugin-drop-test[0m                                    x 1.0.2            x x        x Started x [31;1modl-openflowplugin-drop-test[0m                                    x OpenDaylight :: Openflow Plugin :: Drop Test
[?1h=[90m~[0m                                                                                [?2004hopendaylight-user@root&gt;</msg>
<msg time="2026-09-10T05:06:13.427883" level="INFO">${output} = [?1l&gt;[?2004l[31;1modl-openflowplugin-drop-test[0m                                    x 1.0.2            x x        x Started x [31;1modl-openflowplugin-drop-test[0m                     ...</msg>
<var>${output}</var>
<arg>${KARAF_PROMPT}</arg>
<doc>Consumes and returns the server output until a match to ``regexp`` is found.</doc>
<status status="PASS" start="2026-09-10T05:06:13.388120" elapsed="0.039792"/>
</kw>
<kw name="Write Bare" owner="SSHLibrary">
<arg>logout\n</arg>
<doc>Writes the given ``text`` on the remote machine without appending a newline.</doc>
<status status="PASS" start="2026-09-10T05:06:13.428056" elapsed="0.000168"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-09-10T05:06:13.428372" elapsed="0.000188"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-10T05:06:13.429024" level="INFO">[?1l&gt;[?2004l[31;1modl-openflowplugin-drop-test[0m                                    x 1.0.2            x x        x Started x [31;1modl-openflowplugin-drop-test[0m                                    x OpenDaylight :: Openflow Plugin :: Drop Test
[?1h=[90m~[0m                                                                                [?2004hopendaylight-user@root&gt;</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-10T05:06:13.428695" elapsed="0.000384"/>
</kw>
<return>
<value>${output}</value>
<status status="PASS" start="2026-09-10T05:06:13.429128" elapsed="0.000055"/>
</return>
<msg time="2026-09-10T05:06:13.429343" level="INFO">${output} = [?1l&gt;[?2004l[31;1modl-openflowplugin-drop-test[0m                                    x 1.0.2            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.254
Note that this keyword will open&amp;close new SSH connection, without switching back to previously current session.</doc>
<status status="PASS" start="2026-09-10T05:06:13.038358" elapsed="0.391017"/>
</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-09-10T05:06:13.429508" elapsed="0.000510"/>
</kw>
<return>
<value>${output}</value>
<status status="PASS" start="2026-09-10T05:06:13.430080" elapsed="0.000043"/>
</return>
<arg>odl-openflowplugin-drop-test</arg>
<doc>Will Succeed if the given ${feature_name} is found in the output of "feature:list -i"</doc>
<status status="PASS" start="2026-09-10T05:06:13.033366" elapsed="0.396861"/>
</kw>
<kw name="Issue_Command_On_Karaf_Console" owner="KarafKeywords">
<if>
<branch type="IF" condition="'${IS_KARAF_APPL}' == 'False'">
<return>
<value>Not A Karaf App</value>
<status status="NOT RUN" start="2026-09-10T05:06:13.433871" elapsed="0.000014"/>
</return>
<status status="NOT RUN" start="2026-09-10T05:06:13.433745" elapsed="0.000170"/>
</branch>
<status status="PASS" start="2026-09-10T05:06:13.433723" elapsed="0.000238"/>
</if>
<kw name="Open Connection" owner="SSHLibrary">
<arg>${controller}</arg>
<arg>port=${karaf_port}</arg>
<arg>prompt=${KARAF_PROMPT_LOGIN}</arg>
<arg>timeout=${timeout}</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-09-10T05:06:13.434095" elapsed="0.000426"/>
</kw>
<kw name="Login" owner="SSHLibrary">
<msg time="2026-09-10T05:06:13.434895" level="INFO">Logging into '10.30.171.254:8101' as 'karaf'.</msg>
<msg time="2026-09-10T05:06:13.660528" level="INFO">Read output: [33m                                                                                           
[33m    ________                       ________                .__  .__       .__     __       
[33m    \_____  \ ______   ____   ____ \______ \ _____  ___.__.|  | |__| ____ |  |___/  |_     
[33m     /   |   \\____ \_/ __ \ /    \ |    |  \\__  \&lt;   |  ||  | |  |/ ___\|  |  \   __\    
[33m    /    |    \  |_&gt; &gt;  ___/|   |  \|    `   \/ __ \\___  ||  |_|  / /_/  &gt;   Y  \  |      
[33m    \_______  /   __/ \___  &gt;___|  /_______  (____  / ____||____/__\___  /|___|  /__|      
[33m            \/|__|        \/     \/        \/     \/\/            /_____/      \/          
[33m                                                                                           

Hit '[1m&lt;tab&gt;[0m' for a list of available commands
and '[1m[cmd] --help[0m' for help on a specific command.
Hit '[1m&lt;ctrl-d&gt;[0m' or type '[1msystem:shutdown[0m' or '[1mlogout[0m' to shutdown OpenDaylight.

[?1h=[90m~[0m                                                                                [?2004hopendaylight-user</msg>
<arg>${KARAF_USER}</arg>
<arg>${KARAF_PASSWORD}</arg>
<arg>loglevel=${loglevel}</arg>
<doc>Logs into the SSH server with the given ``username`` and ``password``.</doc>
<status status="PASS" start="2026-09-10T05:06:13.434658" elapsed="0.225992"/>
</kw>
<kw name="Write" owner="SSHLibrary">
<msg time="2026-09-10T05:06:13.691167" level="INFO">@root&gt;dropallpacketsrpc on</msg>
<arg>${cmd}</arg>
<doc>Writes the given ``text`` on the remote machine and appends a newline.</doc>
<status status="PASS" start="2026-09-10T05:06:13.660863" elapsed="0.030358"/>
</kw>
<kw name="Read Until Regexp" owner="SSHLibrary">
<msg time="2026-09-10T05:06:13.693153" level="INFO">[?1l&gt;[?2004lDropAllFlows transitions to on
[?1h=[90m~[0m                                                                                [?2004hopendaylight-user@root&gt;</msg>
<msg time="2026-09-10T05:06:13.693249" level="INFO">${output} = [?1l&gt;[?2004lDropAllFlows transitions to on
[?1h=[90m~[0m                                                                                [?2004hopendaylight-user@root&gt;</msg>
<var>${output}</var>
<arg>${KARAF_PROMPT}</arg>
<doc>Consumes and returns the server output until a match to ``regexp`` is found.</doc>
<status status="PASS" start="2026-09-10T05:06:13.691366" elapsed="0.001909"/>
</kw>
<kw name="Write Bare" owner="SSHLibrary">
<arg>logout\n</arg>
<doc>Writes the given ``text`` on the remote machine without appending a newline.</doc>
<status status="PASS" start="2026-09-10T05:06:13.693412" elapsed="0.000159"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-09-10T05:06:13.693703" elapsed="0.000167"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-10T05:06:13.694292" level="INFO">[?1l&gt;[?2004lDropAllFlows transitions to on
[?1h=[90m~[0m                                                                                [?2004hopendaylight-user@root&gt;</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-10T05:06:13.694016" elapsed="0.000334"/>
</kw>
<return>
<value>${output}</value>
<status status="PASS" start="2026-09-10T05:06:13.694395" elapsed="0.000045"/>
</return>
<arg>dropallpacketsrpc on</arg>
<doc>Will execute the given ${cmd} by ssh'ing to the karaf console running on 10.30.171.254
Note that this keyword will open&amp;close new SSH connection, without switching back to previously current session.</doc>
<status status="PASS" start="2026-09-10T05:06:13.433440" elapsed="0.261099"/>
</kw>
<status status="PASS" start="2026-09-10T05:06:11.683354" elapsed="2.011241"/>
</kw>
<test id="s1-t1" name="Cbench Latency Test" line="37">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-10T05:06:13.696414" level="INFO">Cbench tests using 10 iterations of 60 second tests. Switch Count: 16. Unique MACS to cycle: 100</msg>
<arg>Cbench tests using ${loops} iterations of ${duration_in_secs} second tests. Switch Count: ${switch_count}. Unique MACS to cycle: ${num_of_unique_macs}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-10T05:06:13.695312" elapsed="0.001161"/>
</kw>
<kw name="Run Cbench And Log Results">
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-09-10T05:06:13.697781" 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-09-10T05:06:13.697466" elapsed="0.000355"/>
</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-09-10T05:06:13.698135" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-09-10T05:06:13.697891" elapsed="0.000297"/>
</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-09-10T05:06:13.700871" elapsed="0.000019"/>
</kw>
<status status="NOT RUN" start="2026-09-10T05:06:13.700646" elapsed="0.000275"/>
</branch>
<status status="PASS" start="2026-09-10T05:06:13.700629" elapsed="0.000331"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-09-10T05:06:13.701269" level="INFO">index=None
host=None
alias=None
port=22
timeout=3 seconds
newline=

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

prompt=None
term_type=vt100
width=80
height=24
path_separator=/
encoding=utf8
escape_ansi=False
encoding_errors=strict</msg>
<var>${current_ssh_connection}</var>
<doc>Returns information about the connection.</doc>
<status status="PASS" start="2026-09-10T05:06:13.701082" elapsed="0.000334"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-10T05:06:13.701918" level="INFO">Attempting to execute command "/usr/local/bin/cbench -c 10.30.171.254 -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633" on remote system "10.30.170.94" by user "jenkins" with keyfile pass "any" and prompt "&gt;" and password ""</msg>
<arg>Attempting to execute command "${cmd}" on remote system "${system}" by user "${user}" with keyfile pass "${keyfile_pass}" and prompt "${prompt}" and password "${password}"</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-10T05:06:13.701538" elapsed="0.000455"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-09-10T05:06:13.702549" level="INFO">${conn_id} = 5</msg>
<var>${conn_id}</var>
<arg>${system}</arg>
<arg>prompt=${prompt}</arg>
<arg>timeout=${prompt_timeout}</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-09-10T05:06:13.702119" elapsed="0.000454"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-09-10T05:06:13.703407" level="INFO">Length is 0.</msg>
<msg time="2026-09-10T05:06:13.703488" level="INFO">${pwd_length} = 0</msg>
<var>${pwd_length}</var>
<arg>${password}</arg>
<doc>Returns and logs the length of the given item as an integer.</doc>
<status status="PASS" start="2026-09-10T05:06:13.703105" elapsed="0.000405"/>
</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-09-10T05:06:13.703638" elapsed="0.000313"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-09-10T05:06:13.704736" level="INFO">Logging into '10.30.170.94:22' as 'jenkins'.</msg>
<msg time="2026-09-10T05:06:14.099804" level="INFO">Read output: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-187-generic x86_64)

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

 System information as of Thu Sep 10 05:05:41 UTC 2026

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


Expanded Security Maintenance for Applications is not enabled.

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

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


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


Last login: Thu Sep 10 05:06:12 2026 from 10.30.170.185
[?2004h[jenkins@releng-00446-81-1-mininet-ovs-217-0 ~]&gt;</msg>
<arg>${user}</arg>
<arg>${USER_HOME}/.ssh/${SSH_KEY}</arg>
<arg>${KEYFILE_PASS}</arg>
<arg>delay=${delay}</arg>
<doc>Logs into the SSH server using key-based authentication.</doc>
<status status="PASS" start="2026-09-10T05:06:13.704420" elapsed="0.395572"/>
</kw>
<msg time="2026-09-10T05:06:14.100078" level="INFO">Returning from the enclosing user keyword.</msg>
<arg>SSHLibrary.Login With Public Key</arg>
<arg>${user}</arg>
<arg>${USER_HOME}/.ssh/${SSH_KEY}</arg>
<arg>${KEYFILE_PASS}</arg>
<arg>delay=${delay}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-09-10T05:06:13.704091" elapsed="0.396067"/>
</kw>
<arg>${user}</arg>
<arg>${password}</arg>
<doc>On active SSH session: if given non-empty password, do Login, else do Login With Public Key.</doc>
<status status="PASS" start="2026-09-10T05:06:13.702756" elapsed="0.397508"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-10T05:06:14.100744" level="INFO">Executing command '/usr/local/bin/cbench -c 10.30.171.254 -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633'.</msg>
<msg time="2026-09-10T05:16:20.277132" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-09-10T05:16:20.277750" level="INFO">${stdout} = </msg>
<msg time="2026-09-10T05:16:20.277846" level="INFO">${stderr} = cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.171.254:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with 10...</msg>
<var>${stdout}</var>
<var>${stderr}</var>
<arg>${cmd}</arg>
<arg>return_stderr=True</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-10T05:06:14.100478" elapsed="606.177420"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-09-10T05:16:20.278430" elapsed="0.000798"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-10T05:16:20.280353" level="INFO">cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.171.254: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.254. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
05:07:19.368 16  switches: flows:  85489 86332 85603 84014 83774 83905 83674 84629 83444 82171 82355 81266 81074 81041 79967 81925  total = 22.177717 per ms 
05:08:19.469 16  switches: flows:  93754 92041 89994 88809 90463 88257 90663 89533 87751 86734 86340 86505 85126 85327 85970 85998  total = 23.515165 per ms 
05:09:19.570 16  switches: flows:  94902 93598 93063 89866 93329 91246 90984 91095 90387 88105 88866 88077 89529 88260 86975 86155  total = 24.033844 per ms 
05:10:19.670 16  switches: flows:  92858 92442 89459 87576 91260 86961 90287 91182 87398 85982 86866 85041 83928 85343 84654 85489  total = 23.406379 per ms 
05:11:19.770 16  switches: flows:  94133 91460 90805 88962 92242 90107 90666 92388 87604 87096 87915 86272 86087 88345 84385 86410  total = 23.708397 per ms 
05:12:19.870 16  switches: flows:  93095 89697 89038 88125 90755 87286 92447 89826 87222 85610 86954 85964 83125 85187 84464 84162  total = 23.343670 per ms 
05:13:19.970 16  switches: flows:  95213 92242 91881 89717 92033 89301 94024 91167 88057 86997 89086 85913 86351 85796 84773 85630  total = 23.763335 per ms 
05:14:20.071 16  switches: flows:  94477 91419 90450 88210 90718 88581 91490 88857 86158 85983 89255 85505 85622 84342 82914 85635  total = 23.454447 per ms 
05:15:20.171 16  switches: flows:  95041 94041 91627 90126 94282 90551 94474 91584 87628 88541 90659 89101 86317 86165 85811 86469  total = 24.000235 per ms 
05:16:20.271 16  switches: flows:  93789 92537 88717 88710 92891 90408 90644 91364 88119 87097 85420 86839 84777 84373 85779 86582  total = 23.594730 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 23343.67/24033.84/23646.69/7885.74 responses/s</msg>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-10T05:16:20.279582" elapsed="0.001058"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="PASS" start="2026-09-10T05:16:20.281178" elapsed="0.000071"/>
</return>
<status status="PASS" start="2026-09-10T05:16:20.280849" elapsed="0.000474"/>
</branch>
<status status="PASS" start="2026-09-10T05:16:20.280793" elapsed="0.000581"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="NOT RUN" start="2026-09-10T05:16:20.281565" elapsed="0.000026"/>
</return>
<status status="NOT RUN" start="2026-09-10T05:16:20.281491" elapsed="0.000155"/>
</branch>
<status status="NOT RUN" start="2026-09-10T05:16:20.281461" elapsed="0.000249"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-09-10T05:16:20.281779" elapsed="0.000027"/>
</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-09-10T05:16:20.287017" elapsed="0.000685"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<arg>127.0.0.1</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-09-10T05:16:20.288029" elapsed="0.000332"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-09-10T05:16:20.288624" elapsed="0.000218"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-09-10T05:16:20.282429" elapsed="0.006546"/>
</kw>
<msg time="2026-09-10T05:16:20.289227" level="INFO">${output} = cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.171.254:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with 10...</msg>
<var>${output}</var>
<arg>${cbench_system}</arg>
<arg>${cbench_executable} -c ${ODL_SYSTEM_IP} ${cbench_args}</arg>
<arg>prompt_timeout=${test_timeout}</arg>
<arg>return_stdout=False</arg>
<arg>return_stderr=True</arg>
<doc>Reduces the common work of running a command on a remote system to a single higher level
robot keyword, taking care to log in with a public key and. The command given is written and the return value
depends on the passed argument values of return_stdout (default: True) and return_stderr (default: False).
At least one should be True, or the keyword will exit and FAIL. If both are True, the resulting return value
will be a two element list containing both. Otherwise the resulting return value is a string.
No test conditions are checked.</doc>
<status status="PASS" start="2026-09-10T05:06:13.698516" elapsed="606.590763"/>
</kw>
<status status="PASS" start="2026-09-10T05:06:13.698213" elapsed="606.591160"/>
</branch>
<status status="PASS" start="2026-09-10T05:06:13.697871" elapsed="606.591569"/>
</if>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-10T05:16:20.290357" level="INFO">cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.171.254: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.254. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
05:07:19.368 16  switches: flows:  85489 86332 85603 84014 83774 83905 83674 84629 83444 82171 82355 81266 81074 81041 79967 81925  total = 22.177717 per ms 
05:08:19.469 16  switches: flows:  93754 92041 89994 88809 90463 88257 90663 89533 87751 86734 86340 86505 85126 85327 85970 85998  total = 23.515165 per ms 
05:09:19.570 16  switches: flows:  94902 93598 93063 89866 93329 91246 90984 91095 90387 88105 88866 88077 89529 88260 86975 86155  total = 24.033844 per ms 
05:10:19.670 16  switches: flows:  92858 92442 89459 87576 91260 86961 90287 91182 87398 85982 86866 85041 83928 85343 84654 85489  total = 23.406379 per ms 
05:11:19.770 16  switches: flows:  94133 91460 90805 88962 92242 90107 90666 92388 87604 87096 87915 86272 86087 88345 84385 86410  total = 23.708397 per ms 
05:12:19.870 16  switches: flows:  93095 89697 89038 88125 90755 87286 92447 89826 87222 85610 86954 85964 83125 85187 84464 84162  total = 23.343670 per ms 
05:13:19.970 16  switches: flows:  95213 92242 91881 89717 92033 89301 94024 91167 88057 86997 89086 85913 86351 85796 84773 85630  total = 23.763335 per ms 
05:14:20.071 16  switches: flows:  94477 91419 90450 88210 90718 88581 91490 88857 86158 85983 89255 85505 85622 84342 82914 85635  total = 23.454447 per ms 
05:15:20.171 16  switches: flows:  95041 94041 91627 90126 94282 90551 94474 91584 87628 88541 90659 89101 86317 86165 85811 86469  total = 24.000235 per ms 
05:16:20.271 16  switches: flows:  93789 92537 88717 88710 92891 90408 90644 91364 88119 87097 85420 86839 84777 84373 85779 86582  total = 23.594730 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 23343.67/24033.84/23646.69/7885.74 responses/s</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-10T05:16:20.289740" elapsed="0.000764"/>
</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-09-10T05:16:20.290877" elapsed="0.000782"/>
</kw>
<kw name="Get Lines Containing String" owner="String">
<msg time="2026-09-10T05:16:20.292503" level="INFO">1 out of 23 lines matched.</msg>
<msg time="2026-09-10T05:16:20.292720" level="INFO">${result_line} = RESULT: 16 switches 9 tests min/max/avg/stdev = 23343.67/24033.84/23646.69/7885.74 responses/s</msg>
<var>${result_line}</var>
<arg>${output}</arg>
<arg>RESULT</arg>
<doc>Returns lines of the given ``string`` that contain the ``pattern``.</doc>
<status status="PASS" start="2026-09-10T05:16:20.292043" elapsed="0.000729"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-09-10T05:16:20.293632" level="INFO">@{results_list} = [ RESULT: | 16 | switches | 9 | tests | min/max/avg/stdev | = | 23343.67/24033.84/23646.69/7885.74 | responses/s ]</msg>
<var>@{results_list}</var>
<arg>${result_line}</arg>
<doc>Splits the ``string`` using ``separator`` as a delimiter string.</doc>
<status status="PASS" start="2026-09-10T05:16:20.293117" elapsed="0.000593"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-10T05:16:20.298709" level="INFO">min/max/avg/stdev</msg>
<arg>${results_list[5]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-10T05:16:20.294037" elapsed="0.004793"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-10T05:16:20.303956" level="INFO">23343.67/24033.84/23646.69/7885.74</msg>
<arg>${results_list[7]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-10T05:16:20.299161" elapsed="0.004915"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-09-10T05:16:20.309042" level="INFO">@{result_name_list} = [ min | max | avg | stdev ]</msg>
<var>@{result_name_list}</var>
<arg>${results_list[5]}</arg>
<arg>/</arg>
<doc>Splits the ``string`` using ``separator`` as a delimiter string.</doc>
<status status="PASS" start="2026-09-10T05:16:20.304377" elapsed="0.004721"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-09-10T05:16:20.314130" level="INFO">@{result_value_list} = [ 23343.67 | 24033.84 | 23646.69 | 7885.74 ]</msg>
<var>@{result_value_list}</var>
<arg>${results_list[7]}</arg>
<arg>/</arg>
<doc>Splits the ``string`` using ``separator`` as a delimiter string.</doc>
<status status="PASS" start="2026-09-10T05:16:20.309475" elapsed="0.004711"/>
</kw>
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-09-10T05:16:20.315164" level="INFO">Length is 4.</msg>
<msg time="2026-09-10T05:16:20.315352" level="INFO">${num_stats} = 4</msg>
<var>${num_stats}</var>
<arg>${result_name_list}</arg>
<doc>Returns and logs the length of the given item as an integer.</doc>
<status status="PASS" start="2026-09-10T05:16:20.314495" elapsed="0.000904"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-10T05:16:20.323429" level="INFO">min :: 23343.67</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-10T05:16:20.316216" elapsed="0.007283"/>
</kw>
<var name="${i}">0</var>
<status status="PASS" start="2026-09-10T05:16:20.315921" elapsed="0.007621"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-10T05:16:20.329349" level="INFO">max :: 24033.84</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-10T05:16:20.323837" elapsed="0.005582"/>
</kw>
<var name="${i}">1</var>
<status status="PASS" start="2026-09-10T05:16:20.323655" elapsed="0.005806"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-10T05:16:20.335483" level="INFO">avg :: 23646.69</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-10T05:16:20.329748" elapsed="0.005806"/>
</kw>
<var name="${i}">2</var>
<status status="PASS" start="2026-09-10T05:16:20.329570" elapsed="0.006027"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-10T05:16:20.341409" level="INFO">stdev :: 7885.74</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-10T05:16:20.335892" elapsed="0.005586"/>
</kw>
<var name="${i}">3</var>
<status status="PASS" start="2026-09-10T05:16:20.335727" elapsed="0.005793"/>
</iter>
<var>${i}</var>
<value>0</value>
<value>${num_stats}</value>
<status status="PASS" start="2026-09-10T05:16:20.315530" elapsed="0.026030"/>
</for>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-09-10T05:16:20.346574" level="INFO">${min} = 23343.67</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-09-10T05:16:20.341774" elapsed="0.004832"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-09-10T05:16:20.353154" level="INFO">${max} = 24033.84</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-09-10T05:16:20.346814" elapsed="0.006374"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-09-10T05:16:20.358228" level="INFO">${average} = 23646.69</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-09-10T05:16:20.353380" elapsed="0.004882"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-09-10T05:16:20.363324" level="INFO">${stdev} = 7885.74</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-09-10T05:16:20.358452" elapsed="0.004905"/>
</kw>
<kw name="Get Time" owner="BuiltIn">
<msg time="2026-09-10T05:16:20.364045" level="INFO">${date} = 2026-09-10 05:16:20</msg>
<var>${date}</var>
<arg>d,m,s</arg>
<doc>Returns the given time in the requested format.</doc>
<status status="PASS" start="2026-09-10T05:16:20.363558" elapsed="0.000519"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-10T05:16:20.364752" level="INFO">CBench Result: 2026-09-10 05:16:20,-m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633,23343.67,24033.84,23646.69,7885.74</msg>
<arg>CBench Result: ${date},${cbench_args},${min},${max},${average},${stdev}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-10T05:16:20.364297" elapsed="0.000505"/>
</kw>
<kw name="Log Results And Determine Status">
<kw name="Append To File" owner="OperatingSystem">
<msg time="2026-09-10T05:16:20.365755" 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-09-10T05:16:20.365370" elapsed="0.000445"/>
</kw>
<kw name="Should Be True" owner="BuiltIn">
<arg>${average} &gt; ${threshold}</arg>
<arg>${average} flow_mods per/sec did not exceed threshold of ${threshold}</arg>
<doc>Fails if the given condition is not true.</doc>
<status status="PASS" start="2026-09-10T05:16:20.365964" elapsed="0.000417"/>
</kw>
<arg>${min}</arg>
<arg>${max}</arg>
<arg>${average}</arg>
<arg>${average_threshold}</arg>
<arg>${output_filename}</arg>
<status status="PASS" start="2026-09-10T05:16:20.364948" elapsed="0.001488"/>
</kw>
<arg>-m ${duration_in_ms} -M ${num_of_unique_macs} -S ${switch_count} -l ${loops} -D ${start_delay} -p ${of_port}</arg>
<arg>${latency_threshold}</arg>
<arg>${latency_results_file}</arg>
<status status="PASS" start="2026-09-10T05:06:13.696844" elapsed="606.669642"/>
</kw>
<kw name="Sleep" owner="BuiltIn">
<msg time="2026-09-10T05:16:20.366921" 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-09-10T05:16:20.366623" elapsed="0.000363"/>
</kw>
<kw name="Log Results As Zero If Cbench Timed Out" type="TEARDOWN">
<kw name="Run Keyword If Timeout Occurred" owner="BuiltIn">
<arg>Log Results And Determine Status</arg>
<arg>0</arg>
<arg>0</arg>
<arg>0</arg>
<arg>0</arg>
<arg>${output_filename}</arg>
<doc>Runs the given keyword if either a test or a keyword timeout has occurred.</doc>
<status status="PASS" start="2026-09-10T05:16:20.367453" elapsed="0.000249"/>
</kw>
<status status="PASS" start="2026-09-10T05:16:20.367186" elapsed="0.000577"/>
</kw>
<doc>cbench executed in default latency mode. Test parameters have defaults, but can be overridden
on the pybot command line</doc>
<tag>cbench</tag>
<tag>latency</tag>
<timeout value="15 minutes"/>
<status status="PASS" start="2026-09-10T05:06:13.694722" elapsed="606.673074"/>
</test>
<test id="s1-t2" name="Cbench Throughput Test" line="51">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-10T05:16:20.368921" level="INFO">Cbench tests using 10 iterations of 60 second tests. Switch Count: 16. Unique MACS to cycle: 100</msg>
<arg>Cbench tests using ${loops} iterations of ${duration_in_secs} second tests. Switch Count: ${switch_count}. Unique MACS to cycle: ${num_of_unique_macs}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-10T05:16:20.368572" elapsed="0.000414"/>
</kw>
<kw name="Run Cbench And Log Results">
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-09-10T05:16:20.370288" 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-09-10T05:16:20.369788" elapsed="0.000540"/>
</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-09-10T05:16:20.370632" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-09-10T05:16:20.370392" elapsed="0.000309"/>
</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-09-10T05:16:20.373370" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-09-10T05:16:20.373148" elapsed="0.000273"/>
</branch>
<status status="PASS" start="2026-09-10T05:16:20.373131" elapsed="0.000311"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-09-10T05:16:20.373748" level="INFO">index=None
host=None
alias=None
port=22
timeout=3 seconds
newline=

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

prompt=None
term_type=vt100
width=80
height=24
path_separator=/
encoding=utf8
escape_ansi=False
encoding_errors=strict</msg>
<var>${current_ssh_connection}</var>
<doc>Returns information about the connection.</doc>
<status status="PASS" start="2026-09-10T05:16:20.373559" elapsed="0.000319"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-10T05:16:20.374809" level="INFO">Attempting to execute command "/usr/local/bin/cbench -c 10.30.171.254 -t -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633" on remote system "10.30.170.94" by user "jenkins" with keyfile pass "any" and prompt "&gt;" and password ""</msg>
<arg>Attempting to execute command "${cmd}" on remote system "${system}" by user "${user}" with keyfile pass "${keyfile_pass}" and prompt "${prompt}" and password "${password}"</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-10T05:16:20.374374" elapsed="0.000494"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-09-10T05:16:20.375407" level="INFO">${conn_id} = 7</msg>
<var>${conn_id}</var>
<arg>${system}</arg>
<arg>prompt=${prompt}</arg>
<arg>timeout=${prompt_timeout}</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-09-10T05:16:20.375030" elapsed="0.000401"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-09-10T05:16:20.376287" level="INFO">Length is 0.</msg>
<msg time="2026-09-10T05:16:20.376365" level="INFO">${pwd_length} = 0</msg>
<var>${pwd_length}</var>
<arg>${password}</arg>
<doc>Returns and logs the length of the given item as an integer.</doc>
<status status="PASS" start="2026-09-10T05:16:20.375993" elapsed="0.000393"/>
</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-09-10T05:16:20.376515" elapsed="0.000318"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-09-10T05:16:20.377605" level="INFO">Logging into '10.30.170.94:22' as 'jenkins'.</msg>
<msg time="2026-09-10T05:16:20.984794" level="INFO">Read output: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-187-generic x86_64)

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

 System information as of Thu Sep 10 05:16:20 UTC 2026

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


Expanded Security Maintenance for Applications is not enabled.

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

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


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


Last login: Thu Sep 10 05:06:13 2026 from 10.30.170.185
[?2004h[jenkins@releng-00446-81-1-mininet-ovs-217-0 ~]&gt;</msg>
<arg>${user}</arg>
<arg>${USER_HOME}/.ssh/${SSH_KEY}</arg>
<arg>${KEYFILE_PASS}</arg>
<arg>delay=${delay}</arg>
<doc>Logs into the SSH server using key-based authentication.</doc>
<status status="PASS" start="2026-09-10T05:16:20.377292" elapsed="0.607762"/>
</kw>
<msg time="2026-09-10T05:16:20.985168" level="INFO">Returning from the enclosing user keyword.</msg>
<arg>SSHLibrary.Login With Public Key</arg>
<arg>${user}</arg>
<arg>${USER_HOME}/.ssh/${SSH_KEY}</arg>
<arg>${KEYFILE_PASS}</arg>
<arg>delay=${delay}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-09-10T05:16:20.376985" elapsed="0.608305"/>
</kw>
<arg>${user}</arg>
<arg>${password}</arg>
<doc>On active SSH session: if given non-empty password, do Login, else do Login With Public Key.</doc>
<status status="PASS" start="2026-09-10T05:16:20.375619" elapsed="0.609826"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-10T05:16:20.986195" level="INFO">Executing command '/usr/local/bin/cbench -c 10.30.171.254 -t -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633'.</msg>
<msg time="2026-09-10T05:26:27.061917" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-09-10T05:26:27.062409" level="INFO">${stdout} = </msg>
<msg time="2026-09-10T05:26:27.062502" level="INFO">${stderr} = cbench: controller benchmarking tool
   running in mode 'throughput'
   connecting to controller at 10.30.171.254:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with...</msg>
<var>${stdout}</var>
<var>${stderr}</var>
<arg>${cmd}</arg>
<arg>return_stderr=True</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-10T05:16:20.985763" elapsed="606.076790"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-09-10T05:26:27.062962" elapsed="0.000637"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-10T05:26:27.064644" level="INFO">cbench: controller benchmarking tool
   running in mode 'throughput'
   connecting to controller at 10.30.171.254: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.254. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
05:17:26.120 16  switches: flows:  577342 577719 571209 569455 580383 573508 565308 569815 566296 565063 557854 575711 570857 575872 574674 565561  total = 152.277117 per ms 
05:18:26.225 16  switches: flows:  636866 633571 633750 620758 640950 633194 631410 630574 630732 635259 635045 630743 640752 633851 638260 632760  total = 168.681575 per ms 
05:19:26.328 16  switches: flows:  656120 643106 658645 653265 648759 652462 653477 651304 653830 653116 648840 659299 655140 655085 655062 648344  total = 173.805033 per ms 
05:20:26.436 16  switches: flows:  671332 675337 670844 674078 677741 671305 673236 665702 668673 674569 679554 666500 673068 674201 681055 667990  total = 179.096818 per ms 
05:21:26.541 16  switches: flows:  644082 645263 646921 646930 650072 644556 642259 645793 643308 646216 650843 646206 650882 646364 646455 650652  total = 172.149057 per ms 
05:22:26.642 16  switches: flows:  581297 587878 588650 585391 584177 583881 584175 588946 583762 584531 581762 583921 584171 586076 587178 585531  total = 155.760444 per ms 
05:23:26.743 16  switches: flows:  602844 598287 598730 604350 607186 607263 601156 605507 601976 600102 603159 609069 603960 603383 606467 604843  total = 160.700904 per ms 
05:24:26.844 16  switches: flows:  648127 645930 644119 647200 642366 646272 645208 644187 643016 646905 650934 645610 644138 642431 643510 641316  total = 171.733042 per ms 
05:25:26.945 16  switches: flows:  672816 675071 677965 679761 675335 674683 670516 671816 679111 677846 675743 681023 672008 674021 680806 669333  total = 179.826364 per ms 
05:26:27.047 16  switches: flows:  645939 657008 652879 653761 653135 649768 653198 649844 656299 649128 650577 654008 651233 658074 653426 655956  total = 173.776329 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 155760.44/179826.36/170614.40/57360.96 responses/s</msg>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-10T05:26:27.063926" elapsed="0.000997"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="PASS" start="2026-09-10T05:26:27.065432" elapsed="0.000067"/>
</return>
<status status="PASS" start="2026-09-10T05:26:27.065113" elapsed="0.000458"/>
</branch>
<status status="PASS" start="2026-09-10T05:26:27.065067" elapsed="0.000553"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="NOT RUN" start="2026-09-10T05:26:27.065803" elapsed="0.000025"/>
</return>
<status status="NOT RUN" start="2026-09-10T05:26:27.065731" elapsed="0.000151"/>
</branch>
<status status="NOT RUN" start="2026-09-10T05:26:27.065700" elapsed="0.000225"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-09-10T05:26:27.066020" elapsed="0.000027"/>
</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-09-10T05:26:27.071131" elapsed="0.000674"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<arg>127.0.0.1</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-09-10T05:26:27.072131" elapsed="0.000335"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-09-10T05:26:27.072729" elapsed="0.000233"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-09-10T05:26:27.066638" elapsed="0.006431"/>
</kw>
<msg time="2026-09-10T05:26:27.073339" level="INFO">${output} = cbench: controller benchmarking tool
   running in mode 'throughput'
   connecting to controller at 10.30.171.254:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with...</msg>
<var>${output}</var>
<arg>${cbench_system}</arg>
<arg>${cbench_executable} -c ${ODL_SYSTEM_IP} ${cbench_args}</arg>
<arg>prompt_timeout=${test_timeout}</arg>
<arg>return_stdout=False</arg>
<arg>return_stderr=True</arg>
<doc>Reduces the common work of running a command on a remote system to a single higher level
robot keyword, taking care to log in with a public key and. The command given is written and the return value
depends on the passed argument values of return_stdout (default: True) and return_stderr (default: False).
At least one should be True, or the keyword will exit and FAIL. If both are True, the resulting return value
will be a two element list containing both. Otherwise the resulting return value is a string.
No test conditions are checked.</doc>
<status status="PASS" start="2026-09-10T05:16:20.371022" elapsed="606.702371"/>
</kw>
<status status="PASS" start="2026-09-10T05:16:20.370725" elapsed="606.702763"/>
</branch>
<status status="PASS" start="2026-09-10T05:16:20.370374" elapsed="606.703161"/>
</if>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-10T05:26:27.074463" level="INFO">cbench: controller benchmarking tool
   running in mode 'throughput'
   connecting to controller at 10.30.171.254: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.254. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
05:17:26.120 16  switches: flows:  577342 577719 571209 569455 580383 573508 565308 569815 566296 565063 557854 575711 570857 575872 574674 565561  total = 152.277117 per ms 
05:18:26.225 16  switches: flows:  636866 633571 633750 620758 640950 633194 631410 630574 630732 635259 635045 630743 640752 633851 638260 632760  total = 168.681575 per ms 
05:19:26.328 16  switches: flows:  656120 643106 658645 653265 648759 652462 653477 651304 653830 653116 648840 659299 655140 655085 655062 648344  total = 173.805033 per ms 
05:20:26.436 16  switches: flows:  671332 675337 670844 674078 677741 671305 673236 665702 668673 674569 679554 666500 673068 674201 681055 667990  total = 179.096818 per ms 
05:21:26.541 16  switches: flows:  644082 645263 646921 646930 650072 644556 642259 645793 643308 646216 650843 646206 650882 646364 646455 650652  total = 172.149057 per ms 
05:22:26.642 16  switches: flows:  581297 587878 588650 585391 584177 583881 584175 588946 583762 584531 581762 583921 584171 586076 587178 585531  total = 155.760444 per ms 
05:23:26.743 16  switches: flows:  602844 598287 598730 604350 607186 607263 601156 605507 601976 600102 603159 609069 603960 603383 606467 604843  total = 160.700904 per ms 
05:24:26.844 16  switches: flows:  648127 645930 644119 647200 642366 646272 645208 644187 643016 646905 650934 645610 644138 642431 643510 641316  total = 171.733042 per ms 
05:25:26.945 16  switches: flows:  672816 675071 677965 679761 675335 674683 670516 671816 679111 677846 675743 681023 672008 674021 680806 669333  total = 179.826364 per ms 
05:26:27.047 16  switches: flows:  645939 657008 652879 653761 653135 649768 653198 649844 656299 649128 650577 654008 651233 658074 653426 655956  total = 173.776329 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 155760.44/179826.36/170614.40/57360.96 responses/s</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-10T05:26:27.073811" elapsed="0.000804"/>
</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-09-10T05:26:27.074911" elapsed="0.000765"/>
</kw>
<kw name="Get Lines Containing String" owner="String">
<msg time="2026-09-10T05:26:27.076484" level="INFO">1 out of 23 lines matched.</msg>
<msg time="2026-09-10T05:26:27.076664" level="INFO">${result_line} = RESULT: 16 switches 9 tests min/max/avg/stdev = 155760.44/179826.36/170614.40/57360.96 responses/s</msg>
<var>${result_line}</var>
<arg>${output}</arg>
<arg>RESULT</arg>
<doc>Returns lines of the given ``string`` that contain the ``pattern``.</doc>
<status status="PASS" start="2026-09-10T05:26:27.076027" elapsed="0.000685"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-09-10T05:26:27.077627" level="INFO">@{results_list} = [ RESULT: | 16 | switches | 9 | tests | min/max/avg/stdev | = | 155760.44/179826.36/170614.40/57360.96 | responses/s ]</msg>
<var>@{results_list}</var>
<arg>${result_line}</arg>
<doc>Splits the ``string`` using ``separator`` as a delimiter string.</doc>
<status status="PASS" start="2026-09-10T05:26:27.077048" elapsed="0.000634"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-10T05:26:27.082657" level="INFO">min/max/avg/stdev</msg>
<arg>${results_list[5]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-10T05:26:27.078003" elapsed="0.004769"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-10T05:26:27.087999" level="INFO">155760.44/179826.36/170614.40/57360.96</msg>
<arg>${results_list[7]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-10T05:26:27.083099" elapsed="0.005019"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-09-10T05:26:27.093023" level="INFO">@{result_name_list} = [ min | max | avg | stdev ]</msg>
<var>@{result_name_list}</var>
<arg>${results_list[5]}</arg>
<arg>/</arg>
<doc>Splits the ``string`` using ``separator`` as a delimiter string.</doc>
<status status="PASS" start="2026-09-10T05:26:27.088436" elapsed="0.004643"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-09-10T05:26:27.098089" level="INFO">@{result_value_list} = [ 155760.44 | 179826.36 | 170614.40 | 57360.96 ]</msg>
<var>@{result_value_list}</var>
<arg>${results_list[7]}</arg>
<arg>/</arg>
<doc>Splits the ``string`` using ``separator`` as a delimiter string.</doc>
<status status="PASS" start="2026-09-10T05:26:27.093477" elapsed="0.004669"/>
</kw>
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-09-10T05:26:27.099117" level="INFO">Length is 4.</msg>
<msg time="2026-09-10T05:26:27.099315" level="INFO">${num_stats} = 4</msg>
<var>${num_stats}</var>
<arg>${result_name_list}</arg>
<doc>Returns and logs the length of the given item as an integer.</doc>
<status status="PASS" start="2026-09-10T05:26:27.098477" elapsed="0.000886"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-10T05:26:27.107749" level="INFO">min :: 155760.44</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-10T05:26:27.100124" elapsed="0.007697"/>
</kw>
<var name="${i}">0</var>
<status status="PASS" start="2026-09-10T05:26:27.099833" elapsed="0.008032"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-10T05:26:27.114012" level="INFO">max :: 179826.36</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-10T05:26:27.108171" elapsed="0.005925"/>
</kw>
<var name="${i}">1</var>
<status status="PASS" start="2026-09-10T05:26:27.108001" elapsed="0.006144"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-10T05:26:27.120387" level="INFO">avg :: 170614.40</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-10T05:26:27.114463" elapsed="0.005995"/>
</kw>
<var name="${i}">2</var>
<status status="PASS" start="2026-09-10T05:26:27.114282" elapsed="0.006219"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-10T05:26:27.126304" level="INFO">stdev :: 57360.96</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-10T05:26:27.120773" elapsed="0.005601"/>
</kw>
<var name="${i}">3</var>
<status status="PASS" start="2026-09-10T05:26:27.120609" elapsed="0.005807"/>
</iter>
<var>${i}</var>
<value>0</value>
<value>${num_stats}</value>
<status status="PASS" start="2026-09-10T05:26:27.099483" elapsed="0.026972"/>
</for>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-09-10T05:26:27.130538" level="INFO">${min} = 155760.44</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-09-10T05:26:27.126655" elapsed="0.003908"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-09-10T05:26:27.134150" level="INFO">${max} = 179826.36</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-09-10T05:26:27.130700" elapsed="0.003474"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-09-10T05:26:27.137768" level="INFO">${average} = 170614.40</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-09-10T05:26:27.134328" elapsed="0.003464"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-09-10T05:26:27.141408" level="INFO">${stdev} = 57360.96</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-09-10T05:26:27.137942" elapsed="0.003491"/>
</kw>
<kw name="Get Time" owner="BuiltIn">
<msg time="2026-09-10T05:26:27.141903" level="INFO">${date} = 2026-09-10 05:26:27</msg>
<var>${date}</var>
<arg>d,m,s</arg>
<doc>Returns the given time in the requested format.</doc>
<status status="PASS" start="2026-09-10T05:26:27.141580" elapsed="0.000360"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-10T05:26:27.142453" level="INFO">CBench Result: 2026-09-10 05:26:27,-t -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633,155760.44,179826.36,170614.40,57360.96</msg>
<arg>CBench Result: ${date},${cbench_args},${min},${max},${average},${stdev}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-10T05:26:27.142074" elapsed="0.000429"/>
</kw>
<kw name="Log Results And Determine Status">
<kw name="Append To File" owner="OperatingSystem">
<msg time="2026-09-10T05:26:27.143472" 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-09-10T05:26:27.143083" elapsed="0.000448"/>
</kw>
<kw name="Should Be True" owner="BuiltIn">
<arg>${average} &gt; ${threshold}</arg>
<arg>${average} flow_mods per/sec did not exceed threshold of ${threshold}</arg>
<doc>Fails if the given condition is not true.</doc>
<status status="PASS" start="2026-09-10T05:26:27.143668" elapsed="0.000435"/>
</kw>
<arg>${min}</arg>
<arg>${max}</arg>
<arg>${average}</arg>
<arg>${average_threshold}</arg>
<arg>${output_filename}</arg>
<status status="PASS" start="2026-09-10T05:26:27.142638" elapsed="0.001523"/>
</kw>
<arg>-t -m ${duration_in_ms} -M ${num_of_unique_macs} -S ${switch_count} -l ${loops} -D ${start_delay} -p ${of_port}</arg>
<arg>${throughput_threshold}</arg>
<arg>${throughput_results_file}</arg>
<status status="PASS" start="2026-09-10T05:16:20.369267" elapsed="606.774960"/>
</kw>
<kw name="Sleep" owner="BuiltIn">
<msg time="2026-09-10T05:26:27.144722" 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-09-10T05:26:27.144363" elapsed="0.000410"/>
</kw>
<kw name="Log Results As Zero If Cbench Timed Out" type="TEARDOWN">
<kw name="Run Keyword If Timeout Occurred" owner="BuiltIn">
<arg>Log Results And Determine Status</arg>
<arg>0</arg>
<arg>0</arg>
<arg>0</arg>
<arg>0</arg>
<arg>${output_filename}</arg>
<doc>Runs the given keyword if either a test or a keyword timeout has occurred.</doc>
<status status="PASS" start="2026-09-10T05:26:27.145282" elapsed="0.000237"/>
</kw>
<status status="PASS" start="2026-09-10T05:26:27.144982" elapsed="0.000620"/>
</kw>
<doc>cbench executed in throughput mode (-t). Test parameters have defaults, but can be overridden
on the pybot command line</doc>
<tag>cbench</tag>
<tag>throughput</tag>
<timeout value="15 minutes"/>
<status status="PASS" start="2026-09-10T05:16:20.368090" elapsed="606.777555"/>
</test>
<test id="s1-t3" name="Rerun Latency Test To Check Bug 6176" line="65">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-10T05:26:27.147066" level="INFO">Cbench tests using 10 iterations of 60 second tests. Switch Count: 16. Unique MACS to cycle: 100</msg>
<arg>Cbench tests using ${loops} iterations of ${duration_in_secs} second tests. Switch Count: ${switch_count}. Unique MACS to cycle: ${num_of_unique_macs}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-10T05:26:27.146709" elapsed="0.000408"/>
</kw>
<kw name="Run Cbench And Log Results">
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-09-10T05:26:27.148219" 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-09-10T05:26:27.147894" elapsed="0.000363"/>
</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-09-10T05:26:27.148560" elapsed="0.000019"/>
</kw>
<status status="NOT RUN" start="2026-09-10T05:26:27.148361" elapsed="0.000250"/>
</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-09-10T05:26:27.151633" elapsed="0.000019"/>
</kw>
<status status="NOT RUN" start="2026-09-10T05:26:27.151407" elapsed="0.000277"/>
</branch>
<status status="PASS" start="2026-09-10T05:26:27.151389" elapsed="0.000316"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-09-10T05:26:27.152013" level="INFO">index=None
host=None
alias=None
port=22
timeout=3 seconds
newline=

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

prompt=None
term_type=vt100
width=80
height=24
path_separator=/
encoding=utf8
escape_ansi=False
encoding_errors=strict</msg>
<var>${current_ssh_connection}</var>
<doc>Returns information about the connection.</doc>
<status status="PASS" start="2026-09-10T05:26:27.151824" elapsed="0.000316"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-10T05:26:27.152648" level="INFO">Attempting to execute command "/usr/local/bin/cbench -c 10.30.171.254 -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633" on remote system "10.30.170.94" by user "jenkins" with keyfile pass "any" and prompt "&gt;" and password ""</msg>
<arg>Attempting to execute command "${cmd}" on remote system "${system}" by user "${user}" with keyfile pass "${keyfile_pass}" and prompt "${prompt}" and password "${password}"</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-10T05:26:27.152275" elapsed="0.000424"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-09-10T05:26:27.153208" level="INFO">${conn_id} = 9</msg>
<var>${conn_id}</var>
<arg>${system}</arg>
<arg>prompt=${prompt}</arg>
<arg>timeout=${prompt_timeout}</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-09-10T05:26:27.152822" elapsed="0.000410"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-09-10T05:26:27.154040" level="INFO">Length is 0.</msg>
<msg time="2026-09-10T05:26:27.154118" level="INFO">${pwd_length} = 0</msg>
<var>${pwd_length}</var>
<arg>${password}</arg>
<doc>Returns and logs the length of the given item as an integer.</doc>
<status status="PASS" start="2026-09-10T05:26:27.153740" elapsed="0.000399"/>
</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-09-10T05:26:27.154278" elapsed="0.000287"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-09-10T05:26:27.155352" level="INFO">Logging into '10.30.170.94:22' as 'jenkins'.</msg>
<msg time="2026-09-10T05:26:27.739525" level="INFO">Read output: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-187-generic x86_64)

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

 System information as of Thu Sep 10 05:26:27 UTC 2026

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


Expanded Security Maintenance for Applications is not enabled.

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

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


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


Last login: Thu Sep 10 05:16:20 2026 from 10.30.170.185
[?2004h[jenkins@releng-00446-81-1-mininet-ovs-217-0 ~]&gt;</msg>
<arg>${user}</arg>
<arg>${USER_HOME}/.ssh/${SSH_KEY}</arg>
<arg>${KEYFILE_PASS}</arg>
<arg>delay=${delay}</arg>
<doc>Logs into the SSH server using key-based authentication.</doc>
<status status="PASS" start="2026-09-10T05:26:27.155022" elapsed="0.584719"/>
</kw>
<msg time="2026-09-10T05:26:27.739840" level="INFO">Returning from the enclosing user keyword.</msg>
<arg>SSHLibrary.Login With Public Key</arg>
<arg>${user}</arg>
<arg>${USER_HOME}/.ssh/${SSH_KEY}</arg>
<arg>${KEYFILE_PASS}</arg>
<arg>delay=${delay}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-09-10T05:26:27.154701" elapsed="0.585250"/>
</kw>
<arg>${user}</arg>
<arg>${password}</arg>
<doc>On active SSH session: if given non-empty password, do Login, else do Login With Public Key.</doc>
<status status="PASS" start="2026-09-10T05:26:27.153411" elapsed="0.586678"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-10T05:26:27.740708" level="INFO">Executing command '/usr/local/bin/cbench -c 10.30.171.254 -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633'.</msg>
<msg time="2026-09-10T05:36:33.801656" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-09-10T05:36:33.802211" level="INFO">${stdout} = </msg>
<msg time="2026-09-10T05:36:33.802311" level="INFO">${stderr} = cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.171.254:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with 10...</msg>
<var>${stdout}</var>
<var>${stderr}</var>
<arg>${cmd}</arg>
<arg>return_stderr=True</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-10T05:26:27.740363" elapsed="606.062002"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-09-10T05:36:33.802787" elapsed="0.000737"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-10T05:36:33.804647" level="INFO">cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.171.254: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.254. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
05:27:32.880 16  switches: flows:  89348 88430 89211 87368 86992 85415 85065 85953 83493 84647 84752 84831 84007 83437 83214 82907  total = 22.817833 per ms 
05:28:32.981 16  switches: flows:  92245 90811 91200 88997 90611 88302 89947 86334 86733 84745 87049 85914 86627 84847 87181 86118  total = 23.421922 per ms 
05:29:33.081 16  switches: flows:  95112 92648 93588 91549 91393 90517 89889 89238 87544 86565 88615 88703 85452 87625 85880 87599  total = 23.825531 per ms 
05:30:33.181 16  switches: flows:  94909 94543 95298 92659 93712 90962 91483 89885 87300 88353 87691 88638 87740 88173 88557 88152  total = 24.094048 per ms 
05:31:33.281 16  switches: flows:  93592 93474 93594 90851 91446 89581 90816 89358 86412 87137 86768 87985 86411 88804 86607 89968  total = 23.840279 per ms 
05:32:33.382 16  switches: flows:  96073 94244 95367 92851 92802 89598 91716 90021 88685 88821 89041 89129 88075 87995 88571 89544  total = 24.168487 per ms 
05:33:33.482 16  switches: flows:  95061 91708 93259 91341 92166 88983 90167 88858 88628 86311 87721 88065 86874 87976 86832 88915  total = 23.841291 per ms 
05:34:33.582 16  switches: flows:  95188 93606 93307 90888 91275 87833 89536 88974 87193 87774 87585 86578 86462 87351 87525 89609  total = 23.805013 per ms 
05:35:33.683 16  switches: flows:  94689 91984 92760 90757 92250 88124 90566 87782 85684 85768 86694 86772 85547 86098 86258 88845  total = 23.636609 per ms 
05:36:33.784 16  switches: flows:  97189 95150 93961 91893 94006 90815 92031 89502 89114 88484 88714 88431 88235 88361 87290 90798  total = 24.192532 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 23421.92/24192.53/23869.52/7960.04 responses/s</msg>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-10T05:36:33.803879" elapsed="0.001044"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="PASS" start="2026-09-10T05:36:33.805474" elapsed="0.000070"/>
</return>
<status status="PASS" start="2026-09-10T05:36:33.805147" elapsed="0.000471"/>
</branch>
<status status="PASS" start="2026-09-10T05:36:33.805098" elapsed="0.000570"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="NOT RUN" start="2026-09-10T05:36:33.805855" elapsed="0.000026"/>
</return>
<status status="NOT RUN" start="2026-09-10T05:36:33.805781" elapsed="0.000188"/>
</branch>
<status status="NOT RUN" start="2026-09-10T05:36:33.805751" elapsed="0.000264"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-09-10T05:36:33.806091" elapsed="0.000039"/>
</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-09-10T05:36:33.811866" elapsed="0.000790"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<arg>127.0.0.1</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-09-10T05:36:33.813046" elapsed="0.000334"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-09-10T05:36:33.813708" elapsed="0.000204"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-09-10T05:36:33.806750" elapsed="0.007312"/>
</kw>
<msg time="2026-09-10T05:36:33.814322" level="INFO">${output} = cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.171.254:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with 10...</msg>
<var>${output}</var>
<arg>${cbench_system}</arg>
<arg>${cbench_executable} -c ${ODL_SYSTEM_IP} ${cbench_args}</arg>
<arg>prompt_timeout=${test_timeout}</arg>
<arg>return_stdout=False</arg>
<arg>return_stderr=True</arg>
<doc>Reduces the common work of running a command on a remote system to a single higher level
robot keyword, taking care to log in with a public key and. The command given is written and the return value
depends on the passed argument values of return_stdout (default: True) and return_stderr (default: False).
At least one should be True, or the keyword will exit and FAIL. If both are True, the resulting return value
will be a two element list containing both. Otherwise the resulting return value is a string.
No test conditions are checked.</doc>
<status status="PASS" start="2026-09-10T05:26:27.148921" elapsed="606.665455"/>
</kw>
<status status="PASS" start="2026-09-10T05:26:27.148633" elapsed="606.665887"/>
</branch>
<status status="PASS" start="2026-09-10T05:26:27.148342" elapsed="606.666237"/>
</if>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-10T05:36:33.815557" level="INFO">cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.171.254: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.254. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
05:27:32.880 16  switches: flows:  89348 88430 89211 87368 86992 85415 85065 85953 83493 84647 84752 84831 84007 83437 83214 82907  total = 22.817833 per ms 
05:28:32.981 16  switches: flows:  92245 90811 91200 88997 90611 88302 89947 86334 86733 84745 87049 85914 86627 84847 87181 86118  total = 23.421922 per ms 
05:29:33.081 16  switches: flows:  95112 92648 93588 91549 91393 90517 89889 89238 87544 86565 88615 88703 85452 87625 85880 87599  total = 23.825531 per ms 
05:30:33.181 16  switches: flows:  94909 94543 95298 92659 93712 90962 91483 89885 87300 88353 87691 88638 87740 88173 88557 88152  total = 24.094048 per ms 
05:31:33.281 16  switches: flows:  93592 93474 93594 90851 91446 89581 90816 89358 86412 87137 86768 87985 86411 88804 86607 89968  total = 23.840279 per ms 
05:32:33.382 16  switches: flows:  96073 94244 95367 92851 92802 89598 91716 90021 88685 88821 89041 89129 88075 87995 88571 89544  total = 24.168487 per ms 
05:33:33.482 16  switches: flows:  95061 91708 93259 91341 92166 88983 90167 88858 88628 86311 87721 88065 86874 87976 86832 88915  total = 23.841291 per ms 
05:34:33.582 16  switches: flows:  95188 93606 93307 90888 91275 87833 89536 88974 87193 87774 87585 86578 86462 87351 87525 89609  total = 23.805013 per ms 
05:35:33.683 16  switches: flows:  94689 91984 92760 90757 92250 88124 90566 87782 85684 85768 86694 86772 85547 86098 86258 88845  total = 23.636609 per ms 
05:36:33.784 16  switches: flows:  97189 95150 93961 91893 94006 90815 92031 89502 89114 88484 88714 88431 88235 88361 87290 90798  total = 24.192532 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 23421.92/24192.53/23869.52/7960.04 responses/s</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-10T05:36:33.814883" elapsed="0.000837"/>
</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-09-10T05:36:33.816055" elapsed="0.000780"/>
</kw>
<kw name="Get Lines Containing String" owner="String">
<msg time="2026-09-10T05:36:33.817681" level="INFO">1 out of 23 lines matched.</msg>
<msg time="2026-09-10T05:36:33.817872" level="INFO">${result_line} = RESULT: 16 switches 9 tests min/max/avg/stdev = 23421.92/24192.53/23869.52/7960.04 responses/s</msg>
<var>${result_line}</var>
<arg>${output}</arg>
<arg>RESULT</arg>
<doc>Returns lines of the given ``string`` that contain the ``pattern``.</doc>
<status status="PASS" start="2026-09-10T05:36:33.817192" elapsed="0.000732"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-09-10T05:36:33.818842" level="INFO">@{results_list} = [ RESULT: | 16 | switches | 9 | tests | min/max/avg/stdev | = | 23421.92/24192.53/23869.52/7960.04 | responses/s ]</msg>
<var>@{results_list}</var>
<arg>${result_line}</arg>
<doc>Splits the ``string`` using ``separator`` as a delimiter string.</doc>
<status status="PASS" start="2026-09-10T05:36:33.818273" elapsed="0.000627"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-10T05:36:33.824160" level="INFO">min/max/avg/stdev</msg>
<arg>${results_list[5]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-10T05:36:33.819229" elapsed="0.005048"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-10T05:36:33.829377" level="INFO">23421.92/24192.53/23869.52/7960.04</msg>
<arg>${results_list[7]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-10T05:36:33.824601" elapsed="0.004913"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-09-10T05:36:33.834695" level="INFO">@{result_name_list} = [ min | max | avg | stdev ]</msg>
<var>@{result_name_list}</var>
<arg>${results_list[5]}</arg>
<arg>/</arg>
<doc>Splits the ``string`` using ``separator`` as a delimiter string.</doc>
<status status="PASS" start="2026-09-10T05:36:33.829824" elapsed="0.004928"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-09-10T05:36:33.839957" level="INFO">@{result_value_list} = [ 23421.92 | 24192.53 | 23869.52 | 7960.04 ]</msg>
<var>@{result_value_list}</var>
<arg>${results_list[7]}</arg>
<arg>/</arg>
<doc>Splits the ``string`` using ``separator`` as a delimiter string.</doc>
<status status="PASS" start="2026-09-10T05:36:33.835170" elapsed="0.004847"/>
</kw>
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-09-10T05:36:33.841050" level="INFO">Length is 4.</msg>
<msg time="2026-09-10T05:36:33.841230" level="INFO">${num_stats} = 4</msg>
<var>${num_stats}</var>
<arg>${result_name_list}</arg>
<doc>Returns and logs the length of the given item as an integer.</doc>
<status status="PASS" start="2026-09-10T05:36:33.840331" elapsed="0.000948"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-10T05:36:33.849745" level="INFO">min :: 23421.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-09-10T05:36:33.842210" elapsed="0.007612"/>
</kw>
<var name="${i}">0</var>
<status status="PASS" start="2026-09-10T05:36:33.841819" elapsed="0.008048"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-10T05:36:33.856229" level="INFO">max :: 24192.53</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-10T05:36:33.850211" elapsed="0.006089"/>
</kw>
<var name="${i}">1</var>
<status status="PASS" start="2026-09-10T05:36:33.850021" elapsed="0.006324"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-10T05:36:33.862292" level="INFO">avg :: 23869.52</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-10T05:36:33.856631" elapsed="0.005741"/>
</kw>
<var name="${i}">2</var>
<status status="PASS" start="2026-09-10T05:36:33.856466" elapsed="0.005949"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-10T05:36:33.868410" level="INFO">stdev :: 7960.04</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-10T05:36:33.862702" elapsed="0.005810"/>
</kw>
<var name="${i}">3</var>
<status status="PASS" start="2026-09-10T05:36:33.862540" elapsed="0.006017"/>
</iter>
<var>${i}</var>
<value>0</value>
<value>${num_stats}</value>
<status status="PASS" start="2026-09-10T05:36:33.841403" elapsed="0.027192"/>
</for>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-09-10T05:36:33.873779" level="INFO">${min} = 23421.92</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-09-10T05:36:33.868800" elapsed="0.005013"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-09-10T05:36:33.878979" level="INFO">${max} = 24192.53</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-09-10T05:36:33.874031" elapsed="0.004983"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-09-10T05:36:33.884186" level="INFO">${average} = 23869.52</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-09-10T05:36:33.879208" elapsed="0.005012"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-09-10T05:36:33.889004" level="INFO">${stdev} = 7960.04</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-09-10T05:36:33.884424" elapsed="0.004608"/>
</kw>
<kw name="Get Time" owner="BuiltIn">
<msg time="2026-09-10T05:36:33.889533" level="INFO">${date} = 2026-09-10 05:36:33</msg>
<var>${date}</var>
<arg>d,m,s</arg>
<doc>Returns the given time in the requested format.</doc>
<status status="PASS" start="2026-09-10T05:36:33.889191" elapsed="0.000365"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-10T05:36:33.890081" level="INFO">CBench Result: 2026-09-10 05:36:33,-m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633,23421.92,24192.53,23869.52,7960.04</msg>
<arg>CBench Result: ${date},${cbench_args},${min},${max},${average},${stdev}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-10T05:36:33.889688" elapsed="0.000446"/>
</kw>
<kw name="Log Results And Determine Status">
<kw name="Append To File" owner="OperatingSystem">
<msg time="2026-09-10T05:36:33.891190" 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-09-10T05:36:33.890723" elapsed="0.000530"/>
</kw>
<kw name="Should Be True" owner="BuiltIn">
<arg>${average} &gt; ${threshold}</arg>
<arg>${average} flow_mods per/sec did not exceed threshold of ${threshold}</arg>
<doc>Fails if the given condition is not true.</doc>
<status status="PASS" start="2026-09-10T05:36:33.891392" elapsed="0.000453"/>
</kw>
<arg>${min}</arg>
<arg>${max}</arg>
<arg>${average}</arg>
<arg>${average_threshold}</arg>
<arg>${output_filename}</arg>
<status status="PASS" start="2026-09-10T05:36:33.890276" elapsed="0.001629"/>
</kw>
<arg>-m ${duration_in_ms} -M ${num_of_unique_macs} -S ${switch_count} -l ${loops} -D ${start_delay} -p ${of_port}</arg>
<arg>${latency_threshold}</arg>
<arg>bug.csv</arg>
<status status="PASS" start="2026-09-10T05:26:27.147406" elapsed="606.744569"/>
</kw>
<kw name="Sleep" owner="BuiltIn">
<msg time="2026-09-10T05:36:33.892411" 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-09-10T05:36:33.892120" elapsed="0.000358"/>
</kw>
<kw name="Report Failure Due To Bug" owner="Utils" type="TEARDOWN">
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-09-10T05:36:33.893617" level="INFO">${test_skipped} = False</msg>
<var>${test_skipped}</var>
<arg>len(re.findall('SKIPPED', """${TEST_MESSAGE}""")) &gt; 0</arg>
<arg>modules=re</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-09-10T05:36:33.893158" elapsed="0.000483"/>
</kw>
<if>
<branch type="IF" condition="('${TEST_STATUS}' != 'FAIL') or ${test_skipped}">
<return>
<status status="PASS" start="2026-09-10T05:36:33.893850" elapsed="0.000034"/>
</return>
<status status="PASS" start="2026-09-10T05:36:33.893712" elapsed="0.000200"/>
</branch>
<status status="PASS" start="2026-09-10T05:36:33.893693" elapsed="0.000258"/>
</if>
<kw name="Comment" owner="BuiltIn">
<arg>Jira tickets are {PROJECT}-{NUMBER} while Bugzilla tickets are {NUMBER}</arg>
<doc>Displays the given messages in the log file as keyword arguments.</doc>
<status status="NOT RUN" start="2026-09-10T05:36:33.894090" elapsed="0.000020"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<var>${match}</var>
<arg>Should Contain</arg>
<arg>${number}</arg>
<arg>-</arg>
<doc>Runs the specified keyword and returns the status as a Boolean value.</doc>
<status status="NOT RUN" start="2026-09-10T05:36:33.894248" elapsed="0.000020"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<var>${bug_url}</var>
<arg>${match}</arg>
<arg>https://jira.opendaylight.org/browse/${number}</arg>
<arg>https://bugs.opendaylight.org/show_bug.cgi?id=${number}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="NOT RUN" start="2026-09-10T05:36:33.894401" elapsed="0.000018"/>
</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-09-10T05:36:33.894558" elapsed="0.000018"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${newline}</var>
<arg>chr(10)</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-09-10T05:36:33.894734" elapsed="0.000019"/>
</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-09-10T05:36:33.894870" elapsed="0.000018"/>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${msg}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-09-10T05:36:33.895018" 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-09-10T05:36:33.895234" elapsed="0.000019"/>
</kw>
<status status="NOT RUN" start="2026-09-10T05:36:33.895092" elapsed="0.000191"/>
</branch>
<status status="NOT RUN" start="2026-09-10T05:36:33.895078" elapsed="0.000226"/>
</if>
<arg>6176</arg>
<doc>Report that a test failed due to a known Bugzilla bug whose
number is provided as an argument.
Not FAILED (incl. SKIPPED) test are not reported.
This keyword must be used in the [Teardown] setting of the affected test
or as the first line of the test if FastFail module is not being
used. It reports the URL of the bug on console and also puts it
into the Robot log file.</doc>
<status status="PASS" start="2026-09-10T05:36:33.892823" elapsed="0.002533"/>
</kw>
<doc>cbench executed in latency mode to see if controller is healthy</doc>
<tag>cbench</tag>
<tag>latency</tag>
<timeout value="15 minutes"/>
<status status="PASS" start="2026-09-10T05:26:27.146185" elapsed="606.749212"/>
</test>
<doc>Cbench Latency and Throughput tests can be run from an external
cbench.
If cbench is run with a medium number of switches or higher (e.g. 32+)
the normal openflow operations seem to break.
BUG: https://bugs.opendaylight.org/show_bug.cgi?id=2897</doc>
<status status="PASS" start="2026-09-10T05:06:11.173629" elapsed="1822.722288"/>
</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>
