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

[?1h=[90m~[0m                                                                                [?2004hopendaylight-user</msg>
<arg>${KARAF_USER}</arg>
<arg>${KARAF_PASSWORD}</arg>
<arg>loglevel=${loglevel}</arg>
<doc>Logs into the SSH server with the given ``username`` and ``password``.</doc>
<status status="PASS" start="2026-10-07T01:22:53.331067" elapsed="0.767248"/>
</kw>
<kw name="Write" owner="SSHLibrary">
<msg time="2026-10-07T01:22:54.146037" level="INFO">@root&gt;log:set ERROR</msg>
<arg>${cmd}</arg>
<doc>Writes the given ``text`` on the remote machine and appends a newline.</doc>
<status status="PASS" start="2026-10-07T01:22:54.098510" elapsed="0.047589"/>
</kw>
<kw name="Read Until Regexp" owner="SSHLibrary">
<msg time="2026-10-07T01:22:54.147682" level="INFO">[?1l&gt;[?2004l[?1h=[90m~[0m                                                                                [?2004hopendaylight-user@root&gt;</msg>
<msg time="2026-10-07T01:22:54.147780" level="INFO">${output} = [?1l&gt;[?2004l[?1h=[90m~[0m                                                                                [?2004hopendaylight-user@root&gt;</msg>
<var>${output}</var>
<arg>${KARAF_PROMPT}</arg>
<doc>Consumes and returns the server output until a match to ``regexp`` is found.</doc>
<status status="PASS" start="2026-10-07T01:22:54.146269" elapsed="0.001538"/>
</kw>
<kw name="Write Bare" owner="SSHLibrary">
<arg>logout\n</arg>
<doc>Writes the given ``text`` on the remote machine without appending a newline.</doc>
<status status="PASS" start="2026-10-07T01:22:54.147960" elapsed="0.000189"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-10-07T01:22:54.148301" elapsed="0.000194"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-07T01:22:54.148986" level="INFO">[?1l&gt;[?2004l[?1h=[90m~[0m                                                                                [?2004hopendaylight-user@root&gt;</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-07T01:22:54.148713" elapsed="0.000322"/>
</kw>
<return>
<value>${output}</value>
<status status="PASS" start="2026-10-07T01:22:54.149080" elapsed="0.000059"/>
</return>
<arg>log:set ${log_level}</arg>
<doc>Will execute the given ${cmd} by ssh'ing to the karaf console running on 10.30.170.14
Note that this keyword will open&amp;close new SSH connection, without switching back to previously current session.</doc>
<status status="PASS" start="2026-10-07T01:22:53.329764" elapsed="0.819469"/>
</kw>
<arg>3x</arg>
<arg>1s</arg>
<arg>KarafKeywords.Issue Command On Karaf Console</arg>
<arg>log:set ${log_level}</arg>
<doc>Runs the specified keyword and retries if it fails.</doc>
<status status="PASS" start="2026-10-07T01:22:53.328160" elapsed="0.821132"/>
</kw>
<kw name="Append To File" owner="OperatingSystem">
<msg time="2026-10-07T01:22:54.149780" 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-10-07T01:22:54.149477" elapsed="0.000356"/>
</kw>
<kw name="Append To File" owner="OperatingSystem">
<msg time="2026-10-07T01:22:54.150193" 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-10-07T01:22:54.149981" elapsed="0.000263"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-07T01:22:54.150815" level="INFO">${duration_in_ms} = 60000</msg>
<var>${duration_in_ms}</var>
<arg>${duration_in_secs} * 1000</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-10-07T01:22:54.150411" elapsed="0.000430"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-10-07T01:22:54.151335" level="INFO">${duration_in_ms} = 60000</msg>
<arg>${duration_in_ms}</arg>
<doc>Makes the variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-10-07T01:22:54.151029" elapsed="0.000346"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-07T01:22:54.151925" level="INFO">${test_timeout} = 900.0</msg>
<var>${test_timeout}</var>
<arg>(${loops} * ${duration_in_secs}) * 1.5</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-10-07T01:22:54.151570" elapsed="0.000380"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-10-07T01:22:54.152404" level="INFO">${test_timeout} = 900.0</msg>
<arg>${test_timeout}</arg>
<doc>Makes the variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-10-07T01:22:54.152129" elapsed="0.000314"/>
</kw>
<if>
<branch type="IF" condition="&quot;${cbench_system}&quot; == &quot;localhost&quot;">
<kw name="File Should Exist" owner="OperatingSystem">
<arg>${cbench_executable}</arg>
<doc>Fails unless the given `path` points to an existing file.</doc>
<status status="NOT RUN" start="2026-10-07T01:22:54.152731" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-10-07T01:22:54.152513" elapsed="0.000268"/>
</branch>
<branch type="ELSE">
<kw name="Verify File Exists On Remote System" owner="Utils">
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-10-07T01:22:54.154836" level="INFO">${conn_id} = 2</msg>
<var>${conn_id}</var>
<arg>${system}</arg>
<arg>prompt=${prompt}</arg>
<arg>timeout=${prompt_timeout}</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-10-07T01:22:54.154486" elapsed="0.000375"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-10-07T01:22:54.155950" level="INFO">Length is 0.</msg>
<msg time="2026-10-07T01:22:54.156028" level="INFO">${pwd_length} = 0</msg>
<var>${pwd_length}</var>
<arg>${password}</arg>
<doc>Returns and logs the length of the given item as an integer.</doc>
<status status="PASS" start="2026-10-07T01:22:54.155345" elapsed="0.000705"/>
</kw>
<kw name="Run Keyword And Return If" owner="BuiltIn">
<arg>${pwd_length} &gt; 0</arg>
<arg>SSHLibrary.Login</arg>
<arg>${user}</arg>
<arg>${password}</arg>
<arg>delay=${delay}</arg>
<doc>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-07T01:22:54.156189" elapsed="0.000308"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-10-07T01:22:54.157274" level="INFO">Logging into '10.30.171.41:22' as 'jenkins'.</msg>
<msg time="2026-10-07T01:22:54.643247" 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 Wed Oct  7 01:22:13 UTC 2026

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


Expanded Security Maintenance for Applications is not enabled.

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

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


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


[?2004h[jenkins@releng-00446-106-1-mininet-ovs-217-0 ~]&gt;</msg>
<arg>${user}</arg>
<arg>${USER_HOME}/.ssh/${SSH_KEY}</arg>
<arg>${KEYFILE_PASS}</arg>
<arg>delay=${delay}</arg>
<doc>Logs into the SSH server using key-based authentication.</doc>
<status status="PASS" start="2026-10-07T01:22:54.157037" elapsed="0.486287"/>
</kw>
<msg time="2026-10-07T01:22:54.643382" level="INFO">Returning from the enclosing user keyword.</msg>
<arg>SSHLibrary.Login With Public Key</arg>
<arg>${user}</arg>
<arg>${USER_HOME}/.ssh/${SSH_KEY}</arg>
<arg>${KEYFILE_PASS}</arg>
<arg>delay=${delay}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-07T01:22:54.156680" elapsed="0.486764"/>
</kw>
<arg>${user}</arg>
<arg>${password}</arg>
<doc>On active SSH session: if given non-empty password, do Login, else do Login With Public Key.</doc>
<status status="PASS" start="2026-10-07T01:22:54.155042" elapsed="0.488480"/>
</kw>
<kw name="File Should Exist" owner="SSHLibrary">
<msg time="2026-10-07T01:22:54.654076" level="INFO">[chan 1] Opened sftp connection (server version 3)</msg>
<arg>${file}</arg>
<doc>Fails if the given ``path`` does NOT point to an existing file.</doc>
<status status="PASS" start="2026-10-07T01:22:54.643691" elapsed="0.012619"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-10-07T01:22:54.656523" elapsed="0.000381"/>
</kw>
<arg>${cbench_system}</arg>
<arg>${cbench_executable}</arg>
<doc>Will create connection with public key and will PASS if the given ${file} exists,
otherwise will FAIL</doc>
<status status="PASS" start="2026-10-07T01:22:54.154053" elapsed="0.502929"/>
</kw>
<status status="PASS" start="2026-10-07T01:22:54.152857" elapsed="0.504169"/>
</branch>
<status status="PASS" start="2026-10-07T01:22:54.152491" elapsed="0.504569"/>
</if>
<kw name="Should Be True" owner="BuiltIn">
<arg>${loops} &gt;= 2</arg>
<arg>If number of loops is less than 2, cbench will not run</arg>
<doc>Fails if the given condition is not true.</doc>
<status status="PASS" start="2026-10-07T01:22:54.657277" elapsed="0.000519"/>
</kw>
<kw name="Verify_Feature_Is_Installed" owner="KarafKeywords">
<if>
<branch type="IF" condition="'${IS_KARAF_APPL}' == 'False'">
<return>
<value>Not A Karaf App</value>
<status status="NOT RUN" start="2026-10-07T01:22:54.660210" elapsed="0.000022"/>
</return>
<status status="NOT RUN" start="2026-10-07T01:22:54.660083" elapsed="0.000191"/>
</branch>
<status status="PASS" start="2026-10-07T01:22:54.660056" elapsed="0.000249"/>
</if>
<kw name="Issue_Command_On_Karaf_Console" owner="KarafKeywords">
<if>
<branch type="IF" condition="'${IS_KARAF_APPL}' == 'False'">
<return>
<value>Not A Karaf App</value>
<status status="NOT RUN" start="2026-10-07T01:22:54.662302" elapsed="0.000018"/>
</return>
<status status="NOT RUN" start="2026-10-07T01:22:54.662178" elapsed="0.000183"/>
</branch>
<status status="PASS" start="2026-10-07T01:22:54.662153" elapsed="0.000237"/>
</if>
<kw name="Open Connection" owner="SSHLibrary">
<arg>${controller}</arg>
<arg>port=${karaf_port}</arg>
<arg>prompt=${KARAF_PROMPT_LOGIN}</arg>
<arg>timeout=${timeout}</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-10-07T01:22:54.662612" elapsed="0.000473"/>
</kw>
<kw name="Login" owner="SSHLibrary">
<msg time="2026-10-07T01:22:54.663606" level="INFO">Logging into '10.30.170.14:8101' as 'karaf'.</msg>
<msg time="2026-10-07T01:22:54.892974" level="INFO">Read output: [33m                                                                                           
[33m    ________                       ________                .__  .__       .__     __       
[33m    \_____  \ ______   ____   ____ \______ \ _____  ___.__.|  | |__| ____ |  |___/  |_     
[33m     /   |   \\____ \_/ __ \ /    \ |    |  \\__  \&lt;   |  ||  | |  |/ ___\|  |  \   __\    
[33m    /    |    \  |_&gt; &gt;  ___/|   |  \|    `   \/ __ \\___  ||  |_|  / /_/  &gt;   Y  \  |      
[33m    \_______  /   __/ \___  &gt;___|  /_______  (____  / ____||____/__\___  /|___|  /__|      
[33m            \/|__|        \/     \/        \/     \/\/            /_____/      \/          
[33m                                                                                           

Hit '[1m&lt;tab&gt;[0m' for a list of available commands
and '[1m[cmd] --help[0m' for help on a specific command.
Hit '[1m&lt;ctrl-d&gt;[0m' or type '[1msystem:shutdown[0m' or '[1mlogout[0m' to shutdown OpenDaylight.

[?1h=[90m~[0m                                                                                [?2004hopendaylight-user</msg>
<arg>${KARAF_USER}</arg>
<arg>${KARAF_PASSWORD}</arg>
<arg>loglevel=${loglevel}</arg>
<doc>Logs into the SSH server with the given ``username`` and ``password``.</doc>
<status status="PASS" start="2026-10-07T01:22:54.663321" elapsed="0.229741"/>
</kw>
<kw name="Write" owner="SSHLibrary">
<msg time="2026-10-07T01:22:54.991335" level="INFO">@root&gt;feature:list -i | 0[C 0g[Krep odl-openflowplugin-drop-test</msg>
<arg>${cmd}</arg>
<doc>Writes the given ``text`` on the remote machine and appends a newline.</doc>
<status status="PASS" start="2026-10-07T01:22:54.893231" elapsed="0.098382"/>
</kw>
<kw name="Read Until Regexp" owner="SSHLibrary">
<msg time="2026-10-07T01:22:55.005696" 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-10-07T01:22:55.005963" 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-10-07T01:22:54.992139" elapsed="0.013866"/>
</kw>
<kw name="Write Bare" owner="SSHLibrary">
<arg>logout\n</arg>
<doc>Writes the given ``text`` on the remote machine without appending a newline.</doc>
<status status="PASS" start="2026-10-07T01:22:55.006200" elapsed="0.000342"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-10-07T01:22:55.006785" elapsed="0.000265"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-07T01:22:55.007786" 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-10-07T01:22:55.007301" elapsed="0.000558"/>
</kw>
<return>
<value>${output}</value>
<status status="PASS" start="2026-10-07T01:22:55.007926" elapsed="0.000078"/>
</return>
<msg time="2026-10-07T01:22:55.008191" 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.170.14
Note that this keyword will open&amp;close new SSH connection, without switching back to previously current session.</doc>
<status status="PASS" start="2026-10-07T01:22:54.661788" elapsed="0.346444"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${output}</arg>
<arg>${feature_name}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-07T01:22:55.008500" elapsed="0.000750"/>
</kw>
<return>
<value>${output}</value>
<status status="PASS" start="2026-10-07T01:22:55.009316" elapsed="0.000044"/>
</return>
<arg>odl-openflowplugin-drop-test</arg>
<doc>Will Succeed if the given ${feature_name} is found in the output of "feature:list -i"</doc>
<status status="PASS" start="2026-10-07T01:22:54.659771" elapsed="0.349700"/>
</kw>
<kw name="Issue_Command_On_Karaf_Console" owner="KarafKeywords">
<if>
<branch type="IF" condition="'${IS_KARAF_APPL}' == 'False'">
<return>
<value>Not A Karaf App</value>
<status status="NOT RUN" start="2026-10-07T01:22:55.011946" elapsed="0.000019"/>
</return>
<status status="NOT RUN" start="2026-10-07T01:22:55.011786" elapsed="0.000221"/>
</branch>
<status status="PASS" start="2026-10-07T01:22:55.011754" elapsed="0.000286"/>
</if>
<kw name="Open Connection" owner="SSHLibrary">
<arg>${controller}</arg>
<arg>port=${karaf_port}</arg>
<arg>prompt=${KARAF_PROMPT_LOGIN}</arg>
<arg>timeout=${timeout}</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-10-07T01:22:55.012262" elapsed="0.000581"/>
</kw>
<kw name="Login" owner="SSHLibrary">
<msg time="2026-10-07T01:22:55.013363" level="INFO">Logging into '10.30.170.14:8101' as 'karaf'.</msg>
<msg time="2026-10-07T01:22:55.178901" level="INFO">Read output: [33m                                                                                           
[33m    ________                       ________                .__  .__       .__     __       
[33m    \_____  \ ______   ____   ____ \______ \ _____  ___.__.|  | |__| ____ |  |___/  |_     
[33m     /   |   \\____ \_/ __ \ /    \ |    |  \\__  \&lt;   |  ||  | |  |/ ___\|  |  \   __\    
[33m    /    |    \  |_&gt; &gt;  ___/|   |  \|    `   \/ __ \\___  ||  |_|  / /_/  &gt;   Y  \  |      
[33m    \_______  /   __/ \___  &gt;___|  /_______  (____  / ____||____/__\___  /|___|  /__|      
[33m            \/|__|        \/     \/        \/     \/\/            /_____/      \/          
[33m                                                                                           

Hit '[1m&lt;tab&gt;[0m' for a list of available commands
and '[1m[cmd] --help[0m' for help on a specific command.
Hit '[1m&lt;ctrl-d&gt;[0m' or type '[1msystem:shutdown[0m' or '[1mlogout[0m' to shutdown OpenDaylight.

[?1h=[90m~[0m                                                                                [?2004hopendaylight-user</msg>
<arg>${KARAF_USER}</arg>
<arg>${KARAF_PASSWORD}</arg>
<arg>loglevel=${loglevel}</arg>
<doc>Logs into the SSH server with the given ``username`` and ``password``.</doc>
<status status="PASS" start="2026-10-07T01:22:55.013082" elapsed="0.165940"/>
</kw>
<kw name="Write" owner="SSHLibrary">
<msg time="2026-10-07T01:22:55.199847" level="INFO">@root&gt;dropallpacketsrpc on</msg>
<arg>${cmd}</arg>
<doc>Writes the given ``text`` on the remote machine and appends a newline.</doc>
<status status="PASS" start="2026-10-07T01:22:55.179255" elapsed="0.020666"/>
</kw>
<kw name="Read Until Regexp" owner="SSHLibrary">
<msg time="2026-10-07T01:22:55.202187" level="INFO">[?1l&gt;[?2004lDropAllFlows transitions to on
[?1h=[90m~[0m                                                                                [?2004hopendaylight-user@root&gt;</msg>
<msg time="2026-10-07T01:22:55.202301" level="INFO">${output} = [?1l&gt;[?2004lDropAllFlows transitions to on
[?1h=[90m~[0m                                                                                [?2004hopendaylight-user@root&gt;</msg>
<var>${output}</var>
<arg>${KARAF_PROMPT}</arg>
<doc>Consumes and returns the server output until a match to ``regexp`` is found.</doc>
<status status="PASS" start="2026-10-07T01:22:55.200111" elapsed="0.002218"/>
</kw>
<kw name="Write Bare" owner="SSHLibrary">
<arg>logout\n</arg>
<doc>Writes the given ``text`` on the remote machine without appending a newline.</doc>
<status status="PASS" start="2026-10-07T01:22:55.202464" elapsed="0.000216"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-10-07T01:22:55.202822" elapsed="0.000189"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-07T01:22:55.203516" level="INFO">[?1l&gt;[?2004lDropAllFlows transitions to on
[?1h=[90m~[0m                                                                                [?2004hopendaylight-user@root&gt;</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-07T01:22:55.203191" elapsed="0.000383"/>
</kw>
<return>
<value>${output}</value>
<status status="PASS" start="2026-10-07T01:22:55.203624" elapsed="0.000085"/>
</return>
<arg>dropallpacketsrpc on</arg>
<doc>Will execute the given ${cmd} by ssh'ing to the karaf console running on 10.30.170.14
Note that this keyword will open&amp;close new SSH connection, without switching back to previously current session.</doc>
<status status="PASS" start="2026-10-07T01:22:55.011322" elapsed="0.192491"/>
</kw>
<status status="PASS" start="2026-10-07T01:22:53.326268" elapsed="1.877607"/>
</kw>
<test id="s1-t1" name="Cbench Latency Test" line="37">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-07T01:22:55.206092" level="INFO">Cbench tests using 10 iterations of 60 second tests. Switch Count: 16. Unique MACS to cycle: 100</msg>
<arg>Cbench tests using ${loops} iterations of ${duration_in_secs} second tests. Switch Count: ${switch_count}. Unique MACS to cycle: ${num_of_unique_macs}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-07T01:22:55.205331" elapsed="0.000822"/>
</kw>
<kw name="Run Cbench And Log Results">
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-10-07T01:22:55.207517" level="INFO">${output_filename} = latency.csv</msg>
<arg>${output_filename}</arg>
<doc>Makes the variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-10-07T01:22:55.207191" elapsed="0.000379"/>
</kw>
<if>
<branch type="IF" condition="&quot;${cbench_system}&quot; == &quot;localhost&quot;">
<kw name="Run" owner="OperatingSystem">
<var>${output}</var>
<arg>${cbench_executable} -c ${ODL_SYSTEM_IP} ${cbench_args}</arg>
<doc>*This keyword is considered deprecated. Use the [Process] library instead.*</doc>
<status status="NOT RUN" start="2026-10-07T01:22:55.207914" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-10-07T01:22:55.207673" elapsed="0.000294"/>
</branch>
<branch type="ELSE">
<kw name="Run Command On Remote System" owner="Utils">
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot; and &quot;${return_stderr}&quot;!=&quot;True&quot;">
<kw name="Fail" owner="BuiltIn">
<arg>At least one of {return_stdout} or {return_stderr} args should be set to True</arg>
<doc>Fails the test or task with the given message and optionally alters its tags.</doc>
<status status="NOT RUN" start="2026-10-07T01:22:55.209060" elapsed="0.000019"/>
</kw>
<status status="NOT RUN" start="2026-10-07T01:22:55.208837" elapsed="0.000273"/>
</branch>
<status status="PASS" start="2026-10-07T01:22:55.208818" elapsed="0.000317"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-10-07T01:22:55.209517" level="INFO">index=None
host=None
alias=None
port=22
timeout=3 seconds
newline=

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

prompt=None
term_type=vt100
width=80
height=24
path_separator=/
encoding=utf8
escape_ansi=False
encoding_errors=strict</msg>
<var>${current_ssh_connection}</var>
<doc>Returns information about the connection.</doc>
<status status="PASS" start="2026-10-07T01:22:55.209316" elapsed="0.000367"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-07T01:22:55.210187" level="INFO">Attempting to execute command "/usr/local/bin/cbench -c 10.30.170.14 -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633" on remote system "10.30.171.41" by user "jenkins" with keyfile pass "any" and prompt "&gt;" and password ""</msg>
<arg>Attempting to execute command "${cmd}" on remote system "${system}" by user "${user}" with keyfile pass "${keyfile_pass}" and prompt "${prompt}" and password "${password}"</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-07T01:22:55.209859" elapsed="0.000382"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-10-07T01:22:55.210869" level="INFO">${conn_id} = 5</msg>
<var>${conn_id}</var>
<arg>${system}</arg>
<arg>prompt=${prompt}</arg>
<arg>timeout=${prompt_timeout}</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-10-07T01:22:55.210409" elapsed="0.000485"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-10-07T01:22:55.211759" level="INFO">Length is 0.</msg>
<msg time="2026-10-07T01:22:55.211840" level="INFO">${pwd_length} = 0</msg>
<var>${pwd_length}</var>
<arg>${password}</arg>
<doc>Returns and logs the length of the given item as an integer.</doc>
<status status="PASS" start="2026-10-07T01:22:55.211418" elapsed="0.000444"/>
</kw>
<kw name="Run Keyword And Return If" owner="BuiltIn">
<arg>${pwd_length} &gt; 0</arg>
<arg>SSHLibrary.Login</arg>
<arg>${user}</arg>
<arg>${password}</arg>
<arg>delay=${delay}</arg>
<doc>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-07T01:22:55.211997" elapsed="0.000302"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-10-07T01:22:55.213165" level="INFO">Logging into '10.30.171.41:22' as 'jenkins'.</msg>
<msg time="2026-10-07T01:22:55.597786" 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 Wed Oct  7 01:22:13 UTC 2026

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


Expanded Security Maintenance for Applications is not enabled.

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

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


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


Last login: Wed Oct  7 01:22:54 2026 from 10.30.170.97
[?2004h[jenkins@releng-00446-106-1-mininet-ovs-217-0 ~]&gt;</msg>
<arg>${user}</arg>
<arg>${USER_HOME}/.ssh/${SSH_KEY}</arg>
<arg>${KEYFILE_PASS}</arg>
<arg>delay=${delay}</arg>
<doc>Logs into the SSH server using key-based authentication.</doc>
<status status="PASS" start="2026-10-07T01:22:55.212893" elapsed="0.385095"/>
</kw>
<msg time="2026-10-07T01:22:55.598074" level="INFO">Returning from the enclosing user keyword.</msg>
<arg>SSHLibrary.Login With Public Key</arg>
<arg>${user}</arg>
<arg>${USER_HOME}/.ssh/${SSH_KEY}</arg>
<arg>${KEYFILE_PASS}</arg>
<arg>delay=${delay}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-07T01:22:55.212450" elapsed="0.385712"/>
</kw>
<arg>${user}</arg>
<arg>${password}</arg>
<doc>On active SSH session: if given non-empty password, do Login, else do Login With Public Key.</doc>
<status status="PASS" start="2026-10-07T01:22:55.211076" elapsed="0.387207"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-07T01:22:55.598859" level="INFO">Executing command '/usr/local/bin/cbench -c 10.30.170.14 -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633'.</msg>
<msg time="2026-10-07T01:33:01.744831" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-10-07T01:33:01.745307" level="INFO">${stdout} = </msg>
<msg time="2026-10-07T01:33:01.745404" level="INFO">${stderr} = cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.170.14:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with 100...</msg>
<var>${stdout}</var>
<var>${stderr}</var>
<arg>${cmd}</arg>
<arg>return_stderr=True</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-10-07T01:22:55.598566" elapsed="606.146891"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-10-07T01:33:01.745922" elapsed="0.000671"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-07T01:33:01.747793" level="INFO">cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.170.14: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.170.14. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
01:24:00.835 16  switches: flows:  97468 94286 92180 92337 92293 96332 93583 95674 90967 87782 90498 90042 90142 91176 89374 90745  total = 24.581317 per ms 
01:25:00.935 16  switches: flows:  101384 100639 99069 98528 98857 101074 99495 99740 95544 95024 96808 96538 96981 94313 94163 95686  total = 26.020613 per ms 
01:26:01.036 16  switches: flows:  100660 99487 99786 97715 98776 99907 96521 96015 96123 94348 94912 93984 93684 93255 94571 93832  total = 25.683405 per ms 
01:27:01.136 16  switches: flows:  97108 95322 97030 91592 94282 94183 92866 92205 91047 90459 89553 88556 90195 89087 89152 88212  total = 24.473288 per ms 
01:28:01.236 16  switches: flows:  98777 98728 99131 94011 96485 96948 94132 95791 92882 92773 91775 91774 93676 91589 92699 89877  total = 25.142173 per ms 
01:29:01.336 16  switches: flows:  97040 95816 96164 91887 96255 94430 91250 93469 91941 90987 89977 91144 88518 90104 90029 88754  total = 24.588396 per ms 
01:30:01.437 16  switches: flows:  98427 98787 96539 94143 97582 95757 93272 93026 92998 92075 90180 89787 91120 90743 91145 91202  total = 24.904801 per ms 
01:31:01.537 16  switches: flows:  98107 96726 97911 94109 97824 95687 92706 92251 91773 92627 89505 91288 90594 90491 90878 93316  total = 24.888315 per ms 
01:32:01.637 16  switches: flows:  98592 96445 97230 94083 97405 93927 93305 93603 92779 94202 89121 91515 91703 90586 91499 92586  total = 24.934711 per ms 
01:33:01.737 16  switches: flows:  104424 104132 106861 99463 104101 100144 98872 99457 97977 98859 96626 96795 95872 96329 96918 96929  total = 26.518362 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 24473.29/26518.36/25239.34/8438.11 responses/s</msg>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-07T01:33:01.747066" elapsed="0.000984"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="PASS" start="2026-10-07T01:33:01.748471" elapsed="0.000071"/>
</return>
<status status="PASS" start="2026-10-07T01:33:01.748221" elapsed="0.000419"/>
</branch>
<status status="PASS" start="2026-10-07T01:33:01.748169" elapsed="0.000554"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="NOT RUN" start="2026-10-07T01:33:01.748919" elapsed="0.000028"/>
</return>
<status status="NOT RUN" start="2026-10-07T01:33:01.748844" elapsed="0.000159"/>
</branch>
<status status="NOT RUN" start="2026-10-07T01:33:01.748812" elapsed="0.000234"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-10-07T01:33:01.749111" 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>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-07T01:33:01.750718" elapsed="0.000636"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<arg>127.0.0.1</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-10-07T01:33:01.751774" elapsed="0.000323"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-10-07T01:33:01.752372" elapsed="0.000220"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-10-07T01:33:01.749809" elapsed="0.002929"/>
</kw>
<msg time="2026-10-07T01:33:01.752965" level="INFO">${output} = cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.170.14:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with 100...</msg>
<var>${output}</var>
<arg>${cbench_system}</arg>
<arg>${cbench_executable} -c ${ODL_SYSTEM_IP} ${cbench_args}</arg>
<arg>prompt_timeout=${test_timeout}</arg>
<arg>return_stdout=False</arg>
<arg>return_stderr=True</arg>
<doc>Reduces the common work of running a command on a remote system to a single higher level
robot keyword, taking care to log in with a public key and. The command given is written and the return value
depends on the passed argument values of return_stdout (default: True) and return_stderr (default: False).
At least one should be True, or the keyword will exit and FAIL. If both are True, the resulting return value
will be a two element list containing both. Otherwise the resulting return value is a string.
No test conditions are checked.</doc>
<status status="PASS" start="2026-10-07T01:22:55.208301" elapsed="606.544719"/>
</kw>
<status status="PASS" start="2026-10-07T01:22:55.207995" elapsed="606.545120"/>
</branch>
<status status="PASS" start="2026-10-07T01:22:55.207628" elapsed="606.545534"/>
</if>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-07T01:33:01.754182" level="INFO">cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.170.14: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.170.14. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
01:24:00.835 16  switches: flows:  97468 94286 92180 92337 92293 96332 93583 95674 90967 87782 90498 90042 90142 91176 89374 90745  total = 24.581317 per ms 
01:25:00.935 16  switches: flows:  101384 100639 99069 98528 98857 101074 99495 99740 95544 95024 96808 96538 96981 94313 94163 95686  total = 26.020613 per ms 
01:26:01.036 16  switches: flows:  100660 99487 99786 97715 98776 99907 96521 96015 96123 94348 94912 93984 93684 93255 94571 93832  total = 25.683405 per ms 
01:27:01.136 16  switches: flows:  97108 95322 97030 91592 94282 94183 92866 92205 91047 90459 89553 88556 90195 89087 89152 88212  total = 24.473288 per ms 
01:28:01.236 16  switches: flows:  98777 98728 99131 94011 96485 96948 94132 95791 92882 92773 91775 91774 93676 91589 92699 89877  total = 25.142173 per ms 
01:29:01.336 16  switches: flows:  97040 95816 96164 91887 96255 94430 91250 93469 91941 90987 89977 91144 88518 90104 90029 88754  total = 24.588396 per ms 
01:30:01.437 16  switches: flows:  98427 98787 96539 94143 97582 95757 93272 93026 92998 92075 90180 89787 91120 90743 91145 91202  total = 24.904801 per ms 
01:31:01.537 16  switches: flows:  98107 96726 97911 94109 97824 95687 92706 92251 91773 92627 89505 91288 90594 90491 90878 93316  total = 24.888315 per ms 
01:32:01.637 16  switches: flows:  98592 96445 97230 94083 97405 93927 93305 93603 92779 94202 89121 91515 91703 90586 91499 92586  total = 24.934711 per ms 
01:33:01.737 16  switches: flows:  104424 104132 106861 99463 104101 100144 98872 99457 97977 98859 96626 96795 95872 96329 96918 96929  total = 26.518362 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 24473.29/26518.36/25239.34/8438.11 responses/s</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-07T01:33:01.753548" elapsed="0.000783"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${output}</arg>
<arg>RESULT</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-07T01:33:01.754719" elapsed="0.000737"/>
</kw>
<kw name="Get Lines Containing String" owner="String">
<msg time="2026-10-07T01:33:01.756294" level="INFO">1 out of 23 lines matched.</msg>
<msg time="2026-10-07T01:33:01.756476" level="INFO">${result_line} = RESULT: 16 switches 9 tests min/max/avg/stdev = 24473.29/26518.36/25239.34/8438.11 responses/s</msg>
<var>${result_line}</var>
<arg>${output}</arg>
<arg>RESULT</arg>
<doc>Returns lines of the given `string` that contain the `pattern`.</doc>
<status status="PASS" start="2026-10-07T01:33:01.755877" elapsed="0.000649"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-10-07T01:33:01.757422" level="INFO">@{results_list} = [ RESULT: | 16 | switches | 9 | tests | min/max/avg/stdev | = | 24473.29/26518.36/25239.34/8438.11 | responses/s ]</msg>
<var>@{results_list}</var>
<arg>${result_line}</arg>
<doc>Splits the `string` using `separator` as a delimiter string.</doc>
<status status="PASS" start="2026-10-07T01:33:01.756946" elapsed="0.000531"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-07T01:33:01.758688" level="INFO">min/max/avg/stdev</msg>
<arg>${results_list[5]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-07T01:33:01.757928" elapsed="0.000878"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-07T01:33:01.759925" level="INFO">24473.29/26518.36/25239.34/8438.11</msg>
<arg>${results_list[7]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-07T01:33:01.759204" elapsed="0.000832"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-10-07T01:33:01.761051" level="INFO">@{result_name_list} = [ min | max | avg | stdev ]</msg>
<var>@{result_name_list}</var>
<arg>${results_list[5]}</arg>
<arg>/</arg>
<doc>Splits the `string` using `separator` as a delimiter string.</doc>
<status status="PASS" start="2026-10-07T01:33:01.760368" elapsed="0.000739"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-10-07T01:33:01.762212" level="INFO">@{result_value_list} = [ 24473.29 | 26518.36 | 25239.34 | 8438.11 ]</msg>
<var>@{result_value_list}</var>
<arg>${results_list[7]}</arg>
<arg>/</arg>
<doc>Splits the `string` using `separator` as a delimiter string.</doc>
<status status="PASS" start="2026-10-07T01:33:01.761535" elapsed="0.000736"/>
</kw>
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-10-07T01:33:01.763282" level="INFO">Length is 4.</msg>
<msg time="2026-10-07T01:33:01.763454" level="INFO">${num_stats} = 4</msg>
<var>${num_stats}</var>
<arg>${result_name_list}</arg>
<doc>Returns and logs the length of the given item as an integer.</doc>
<status status="PASS" start="2026-10-07T01:33:01.762644" elapsed="0.000858"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-07T01:33:01.765356" level="INFO">min :: 24473.29</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-07T01:33:01.764391" elapsed="0.001077"/>
</kw>
<var name="${i}">0</var>
<status status="PASS" start="2026-10-07T01:33:01.764019" elapsed="0.001518"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-07T01:33:01.767068" level="INFO">max :: 26518.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-10-07T01:33:01.766132" elapsed="0.001047"/>
</kw>
<var name="${i}">1</var>
<status status="PASS" start="2026-10-07T01:33:01.765769" elapsed="0.001477"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-07T01:33:01.768757" level="INFO">avg :: 25239.34</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-07T01:33:01.767831" elapsed="0.001035"/>
</kw>
<var name="${i}">2</var>
<status status="PASS" start="2026-10-07T01:33:01.767419" elapsed="0.001515"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-07T01:33:01.770393" level="INFO">stdev :: 8438.11</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-07T01:33:01.769475" elapsed="0.001029"/>
</kw>
<var name="${i}">3</var>
<status status="PASS" start="2026-10-07T01:33:01.769114" elapsed="0.001477"/>
</iter>
<var>${i}</var>
<value>0</value>
<value>${num_stats}</value>
<status status="PASS" start="2026-10-07T01:33:01.763649" elapsed="0.007034"/>
</for>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-07T01:33:01.771926" level="INFO">${min} = 24473.29</msg>
<var>${min}</var>
<arg>${result_value_list[${0}]}</arg>
<doc>Returns the given values which can then be assigned to a variable.</doc>
<status status="PASS" start="2026-10-07T01:33:01.771028" elapsed="0.000951"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-07T01:33:01.773192" level="INFO">${max} = 26518.36</msg>
<var>${max}</var>
<arg>${result_value_list[${1}]}</arg>
<doc>Returns the given values which can then be assigned to a variable.</doc>
<status status="PASS" start="2026-10-07T01:33:01.772309" elapsed="0.000935"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-07T01:33:01.774439" level="INFO">${average} = 25239.34</msg>
<var>${average}</var>
<arg>${result_value_list[${2}]}</arg>
<doc>Returns the given values which can then be assigned to a variable.</doc>
<status status="PASS" start="2026-10-07T01:33:01.773599" elapsed="0.000893"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-07T01:33:01.775741" level="INFO">${stdev} = 8438.11</msg>
<var>${stdev}</var>
<arg>${result_value_list[${3}]}</arg>
<doc>Returns the given values which can then be assigned to a variable.</doc>
<status status="PASS" start="2026-10-07T01:33:01.774865" elapsed="0.000933"/>
</kw>
<kw name="Get Time" owner="BuiltIn">
<msg time="2026-10-07T01:33:01.776957" level="INFO">${date} = 2026-10-07 01:33:01</msg>
<var>${date}</var>
<arg>d,m,s</arg>
<doc>Returns the given time in the requested format.</doc>
<status status="PASS" start="2026-10-07T01:33:01.776200" elapsed="0.000810"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-07T01:33:01.778170" level="INFO">CBench Result: 2026-10-07 01:33:01,-m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633,24473.29,26518.36,25239.34,8438.11</msg>
<arg>CBench Result: ${date},${cbench_args},${min},${max},${average},${stdev}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-07T01:33:01.777411" elapsed="0.000869"/>
</kw>
<kw name="Log Results And Determine Status">
<kw name="Append To File" owner="OperatingSystem">
<msg time="2026-10-07T01:33:01.780506" 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-10-07T01:33:01.779450" elapsed="0.001255"/>
</kw>
<kw name="Should Be True" owner="BuiltIn">
<arg>${average} &gt; ${threshold}</arg>
<arg>${average} flow_mods per/sec did not exceed threshold of ${threshold}</arg>
<doc>Fails if the given condition is not true.</doc>
<status status="PASS" start="2026-10-07T01:33:01.781065" elapsed="0.000890"/>
</kw>
<arg>${min}</arg>
<arg>${max}</arg>
<arg>${average}</arg>
<arg>${average_threshold}</arg>
<arg>${output_filename}</arg>
<status status="PASS" start="2026-10-07T01:33:01.778549" elapsed="0.003536"/>
</kw>
<arg>-m ${duration_in_ms} -M ${num_of_unique_macs} -S ${switch_count} -l ${loops} -D ${start_delay} -p ${of_port}</arg>
<arg>${latency_threshold}</arg>
<arg>${latency_results_file}</arg>
<status status="PASS" start="2026-10-07T01:22:55.206622" elapsed="606.575581"/>
</kw>
<kw name="Sleep" owner="BuiltIn">
<msg time="2026-10-07T01:33:01.783193" level="INFO">Slept 0 seconds.</msg>
<arg>${test_delay}</arg>
<doc>Pauses execution for the given time.</doc>
<status status="PASS" start="2026-10-07T01:33:01.782516" elapsed="0.000794"/>
</kw>
<kw name="Log Results As Zero If Cbench Timed Out" type="TEARDOWN">
<kw name="Run Keyword If Timeout Occurred" owner="BuiltIn">
<arg>Log Results And Determine Status</arg>
<arg>0</arg>
<arg>0</arg>
<arg>0</arg>
<arg>0</arg>
<arg>${output_filename}</arg>
<doc>Runs the given keyword if either a test or a keyword timeout has occurred.</doc>
<status status="PASS" start="2026-10-07T01:33:01.784518" elapsed="0.000658"/>
</kw>
<status status="PASS" start="2026-10-07T01:33:01.783781" elapsed="0.001536"/>
</kw>
<doc>cbench executed in default latency mode. Test parameters have defaults, but can be overridden
on the pybot command line</doc>
<tag>cbench</tag>
<tag>latency</tag>
<timeout value="15 minutes"/>
<status status="PASS" start="2026-10-07T01:22:55.204039" elapsed="606.581350"/>
</test>
<test id="s1-t2" name="Cbench Throughput Test" line="51">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-07T01:33:01.789466" level="INFO">Cbench tests using 10 iterations of 60 second tests. Switch Count: 16. Unique MACS to cycle: 100</msg>
<arg>Cbench tests using ${loops} iterations of ${duration_in_secs} second tests. Switch Count: ${switch_count}. Unique MACS to cycle: ${num_of_unique_macs}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-07T01:33:01.788385" elapsed="0.001154"/>
</kw>
<kw name="Run Cbench And Log Results">
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-10-07T01:33:01.791300" level="INFO">${output_filename} = throughput.csv</msg>
<arg>${output_filename}</arg>
<doc>Makes the variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-10-07T01:33:01.790896" elapsed="0.000477"/>
</kw>
<if>
<branch type="IF" condition="&quot;${cbench_system}&quot; == &quot;localhost&quot;">
<kw name="Run" owner="OperatingSystem">
<var>${output}</var>
<arg>${cbench_executable} -c ${ODL_SYSTEM_IP} ${cbench_args}</arg>
<doc>*This keyword is considered deprecated. Use the [Process] library instead.*</doc>
<status status="NOT RUN" start="2026-10-07T01:33:01.791835" elapsed="0.000029"/>
</kw>
<status status="NOT RUN" start="2026-10-07T01:33:01.791463" elapsed="0.000446"/>
</branch>
<branch type="ELSE">
<kw name="Run Command On Remote System" owner="Utils">
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot; and &quot;${return_stderr}&quot;!=&quot;True&quot;">
<kw name="Fail" owner="BuiltIn">
<arg>At least one of {return_stdout} or {return_stderr} args should be set to True</arg>
<doc>Fails the test or task with the given message and optionally alters its tags.</doc>
<status status="NOT RUN" start="2026-10-07T01:33:01.793424" elapsed="0.000027"/>
</kw>
<status status="NOT RUN" start="2026-10-07T01:33:01.793129" elapsed="0.000365"/>
</branch>
<status status="PASS" start="2026-10-07T01:33:01.793103" elapsed="0.000421"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-10-07T01:33:01.794071" level="INFO">index=None
host=None
alias=None
port=22
timeout=3 seconds
newline=

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

prompt=None
term_type=vt100
width=80
height=24
path_separator=/
encoding=utf8
escape_ansi=False
encoding_errors=strict</msg>
<var>${current_ssh_connection}</var>
<doc>Returns information about the connection.</doc>
<status status="PASS" start="2026-10-07T01:33:01.793820" elapsed="0.000432"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-07T01:33:01.794974" level="INFO">Attempting to execute command "/usr/local/bin/cbench -c 10.30.170.14 -t -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633" on remote system "10.30.171.41" by user "jenkins" with keyfile pass "any" and prompt "&gt;" and password ""</msg>
<arg>Attempting to execute command "${cmd}" on remote system "${system}" by user "${user}" with keyfile pass "${keyfile_pass}" and prompt "${prompt}" and password "${password}"</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-07T01:33:01.794489" elapsed="0.000557"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-10-07T01:33:01.795740" level="INFO">${conn_id} = 7</msg>
<var>${conn_id}</var>
<arg>${system}</arg>
<arg>prompt=${prompt}</arg>
<arg>timeout=${prompt_timeout}</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-10-07T01:33:01.795267" elapsed="0.000506"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-10-07T01:33:01.796911" level="INFO">Length is 0.</msg>
<msg time="2026-10-07T01:33:01.797020" level="INFO">${pwd_length} = 0</msg>
<var>${pwd_length}</var>
<arg>${password}</arg>
<doc>Returns and logs the length of the given item as an integer.</doc>
<status status="PASS" start="2026-10-07T01:33:01.796488" elapsed="0.000562"/>
</kw>
<kw name="Run Keyword And Return If" owner="BuiltIn">
<arg>${pwd_length} &gt; 0</arg>
<arg>SSHLibrary.Login</arg>
<arg>${user}</arg>
<arg>${password}</arg>
<arg>delay=${delay}</arg>
<doc>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-07T01:33:01.797231" elapsed="0.000461"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-10-07T01:33:01.798803" level="INFO">Logging into '10.30.171.41:22' as 'jenkins'.</msg>
<msg time="2026-10-07T01:33:02.463248" 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 Wed Oct  7 01:33:02 UTC 2026

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


Expanded Security Maintenance for Applications is not enabled.

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

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


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


Last login: Wed Oct  7 01:22:55 2026 from 10.30.170.97
[?2004h[jenkins@releng-00446-106-1-mininet-ovs-217-0 ~]&gt;</msg>
<arg>${user}</arg>
<arg>${USER_HOME}/.ssh/${SSH_KEY}</arg>
<arg>${KEYFILE_PASS}</arg>
<arg>delay=${delay}</arg>
<doc>Logs into the SSH server using key-based authentication.</doc>
<status status="PASS" start="2026-10-07T01:33:01.798384" elapsed="0.664978"/>
</kw>
<msg time="2026-10-07T01:33:02.463426" level="INFO">Returning from the enclosing user keyword.</msg>
<arg>SSHLibrary.Login With Public Key</arg>
<arg>${user}</arg>
<arg>${USER_HOME}/.ssh/${SSH_KEY}</arg>
<arg>${KEYFILE_PASS}</arg>
<arg>delay=${delay}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-07T01:33:01.797897" elapsed="0.665596"/>
</kw>
<arg>${user}</arg>
<arg>${password}</arg>
<doc>On active SSH session: if given non-empty password, do Login, else do Login With Public Key.</doc>
<status status="PASS" start="2026-10-07T01:33:01.796020" elapsed="0.667571"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-07T01:33:02.464007" level="INFO">Executing command '/usr/local/bin/cbench -c 10.30.170.14 -t -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633'.</msg>
<msg time="2026-10-07T01:43:08.505170" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-10-07T01:43:08.505755" level="INFO">${stdout} = </msg>
<msg time="2026-10-07T01:43:08.505854" level="INFO">${stderr} = cbench: controller benchmarking tool
   running in mode 'throughput'
   connecting to controller at 10.30.170.14:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with ...</msg>
<var>${stdout}</var>
<var>${stderr}</var>
<arg>${cmd}</arg>
<arg>return_stderr=True</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-10-07T01:33:02.463799" elapsed="606.042101"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-10-07T01:43:08.506153" elapsed="0.000379"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-07T01:43:08.507110" level="INFO">cbench: controller benchmarking tool
   running in mode 'throughput'
   connecting to controller at 10.30.170.14: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.170.14. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
01:34:07.583 16  switches: flows:  575088 585537 578522 581121 582522 584649 584585 575731 569235 568117 570007 569071 559157 573748 573424 569330  total = 153.330733 per ms 
01:35:07.685 16  switches: flows:  588761 587094 589411 584862 599255 591442 591433 594024 597153 597350 600659 593744 595431 593041 587123 596837  total = 157.861621 per ms 
01:36:07.785 16  switches: flows:  596261 593986 593839 595597 601831 604220 602149 608409 605840 600132 606755 606968 601117 601122 596831 605244  total = 160.070408 per ms 
01:37:07.885 16  switches: flows:  597073 596141 596441 593254 591544 600583 596313 606179 593994 598497 604391 596551 596278 602201 598592 597321  total = 159.156623 per ms 
01:38:07.987 16  switches: flows:  600362 586243 598352 602505 594237 594965 597382 599747 591826 601197 600872 596451 592364 594363 595788 598719  total = 158.824131 per ms 
01:39:08.089 16  switches: flows:  596946 591915 594618 596105 586857 604551 602074 605406 597005 598147 603883 603135 604785 592216 599875 604644  total = 159.432794 per ms 
01:40:08.190 16  switches: flows:  568121 562760 567632 563655 571758 567785 574242 570221 568577 569153 572330 564649 570804 566324 560988 565508  total = 151.153064 per ms 
01:41:08.292 16  switches: flows:  574891 572451 575159 577158 572171 576736 577587 578734 576756 580013 570806 572485 577084 570416 578980 574305  total = 153.171317 per ms 
01:42:08.394 16  switches: flows:  592156 585224 585894 586018 588685 587320 590344 585124 585309 581402 583869 581778 585687 586174 595828 590374  total = 156.257153 per ms 
01:43:08.495 16  switches: flows:  536857 533014 533883 533465 537264 530827 530144 532035 530305 535593 533304 527655 534251 530227 532674 530251  total = 141.790722 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 141790.72/160070.41/155301.98/52065.71 responses/s</msg>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-07T01:43:08.506770" elapsed="0.000493"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="PASS" start="2026-10-07T01:43:08.507484" elapsed="0.000044"/>
</return>
<status status="PASS" start="2026-10-07T01:43:08.507353" elapsed="0.000209"/>
</branch>
<status status="PASS" start="2026-10-07T01:43:08.507329" elapsed="0.000257"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="NOT RUN" start="2026-10-07T01:43:08.507687" elapsed="0.000012"/>
</return>
<status status="NOT RUN" start="2026-10-07T01:43:08.507638" elapsed="0.000087"/>
</branch>
<status status="NOT RUN" start="2026-10-07T01:43:08.507624" elapsed="0.000120"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-10-07T01:43:08.507772" elapsed="0.000012"/>
</return>
<kw name="Restore_Current_Ssh_Connection_From_Index" owner="SSHKeywords" type="TEARDOWN">
<kw name="Run Keyword And Return If" owner="BuiltIn">
<arg>${connection_index} is not None</arg>
<arg>SSHLibrary.Switch Connection</arg>
<arg>${connection_index}</arg>
<doc>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-07T01:43:08.508500" elapsed="0.000309"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<arg>127.0.0.1</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-10-07T01:43:08.508975" elapsed="0.000149"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-10-07T01:43:08.509247" elapsed="0.000105"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-10-07T01:43:08.508076" elapsed="0.001324"/>
</kw>
<msg time="2026-10-07T01:43:08.509503" level="INFO">${output} = cbench: controller benchmarking tool
   running in mode 'throughput'
   connecting to controller at 10.30.170.14:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with ...</msg>
<var>${output}</var>
<arg>${cbench_system}</arg>
<arg>${cbench_executable} -c ${ODL_SYSTEM_IP} ${cbench_args}</arg>
<arg>prompt_timeout=${test_timeout}</arg>
<arg>return_stdout=False</arg>
<arg>return_stderr=True</arg>
<doc>Reduces the common work of running a command on a remote system to a single higher level
robot keyword, taking care to log in with a public key and. The command given is written and the return value
depends on the passed argument values of return_stdout (default: True) and return_stderr (default: False).
At least one should be True, or the keyword will exit and FAIL. If both are True, the resulting return value
will be a two element list containing both. Otherwise the resulting return value is a string.
No test conditions are checked.</doc>
<status status="PASS" start="2026-10-07T01:33:01.792343" elapsed="606.717185"/>
</kw>
<status status="PASS" start="2026-10-07T01:33:01.791942" elapsed="606.717630"/>
</branch>
<status status="PASS" start="2026-10-07T01:33:01.791438" elapsed="606.718155"/>
</if>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-07T01:43:08.510051" level="INFO">cbench: controller benchmarking tool
   running in mode 'throughput'
   connecting to controller at 10.30.170.14: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.170.14. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
01:34:07.583 16  switches: flows:  575088 585537 578522 581121 582522 584649 584585 575731 569235 568117 570007 569071 559157 573748 573424 569330  total = 153.330733 per ms 
01:35:07.685 16  switches: flows:  588761 587094 589411 584862 599255 591442 591433 594024 597153 597350 600659 593744 595431 593041 587123 596837  total = 157.861621 per ms 
01:36:07.785 16  switches: flows:  596261 593986 593839 595597 601831 604220 602149 608409 605840 600132 606755 606968 601117 601122 596831 605244  total = 160.070408 per ms 
01:37:07.885 16  switches: flows:  597073 596141 596441 593254 591544 600583 596313 606179 593994 598497 604391 596551 596278 602201 598592 597321  total = 159.156623 per ms 
01:38:07.987 16  switches: flows:  600362 586243 598352 602505 594237 594965 597382 599747 591826 601197 600872 596451 592364 594363 595788 598719  total = 158.824131 per ms 
01:39:08.089 16  switches: flows:  596946 591915 594618 596105 586857 604551 602074 605406 597005 598147 603883 603135 604785 592216 599875 604644  total = 159.432794 per ms 
01:40:08.190 16  switches: flows:  568121 562760 567632 563655 571758 567785 574242 570221 568577 569153 572330 564649 570804 566324 560988 565508  total = 151.153064 per ms 
01:41:08.292 16  switches: flows:  574891 572451 575159 577158 572171 576736 577587 578734 576756 580013 570806 572485 577084 570416 578980 574305  total = 153.171317 per ms 
01:42:08.394 16  switches: flows:  592156 585224 585894 586018 588685 587320 590344 585124 585309 581402 583869 581778 585687 586174 595828 590374  total = 156.257153 per ms 
01:43:08.495 16  switches: flows:  536857 533014 533883 533465 537264 530827 530144 532035 530305 535593 533304 527655 534251 530227 532674 530251  total = 141.790722 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 141790.72/160070.41/155301.98/52065.71 responses/s</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-07T01:43:08.509782" elapsed="0.000338"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${output}</arg>
<arg>RESULT</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-07T01:43:08.510275" elapsed="0.000343"/>
</kw>
<kw name="Get Lines Containing String" owner="String">
<msg time="2026-10-07T01:43:08.510983" level="INFO">1 out of 23 lines matched.</msg>
<msg time="2026-10-07T01:43:08.511063" level="INFO">${result_line} = RESULT: 16 switches 9 tests min/max/avg/stdev = 141790.72/160070.41/155301.98/52065.71 responses/s</msg>
<var>${result_line}</var>
<arg>${output}</arg>
<arg>RESULT</arg>
<doc>Returns lines of the given `string` that contain the `pattern`.</doc>
<status status="PASS" start="2026-10-07T01:43:08.510802" elapsed="0.000284"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-10-07T01:43:08.511465" level="INFO">@{results_list} = [ RESULT: | 16 | switches | 9 | tests | min/max/avg/stdev | = | 141790.72/160070.41/155301.98/52065.71 | responses/s ]</msg>
<var>@{results_list}</var>
<arg>${result_line}</arg>
<doc>Splits the `string` using `separator` as a delimiter string.</doc>
<status status="PASS" start="2026-10-07T01:43:08.511243" elapsed="0.000247"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-07T01:43:08.511996" level="INFO">min/max/avg/stdev</msg>
<arg>${results_list[5]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-07T01:43:08.511683" elapsed="0.000363"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-07T01:43:08.512534" level="INFO">141790.72/160070.41/155301.98/52065.71</msg>
<arg>${results_list[7]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-07T01:43:08.512224" elapsed="0.000359"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-10-07T01:43:08.513042" level="INFO">@{result_name_list} = [ min | max | avg | stdev ]</msg>
<var>@{result_name_list}</var>
<arg>${results_list[5]}</arg>
<arg>/</arg>
<doc>Splits the `string` using `separator` as a delimiter string.</doc>
<status status="PASS" start="2026-10-07T01:43:08.512751" elapsed="0.000315"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-10-07T01:43:08.513545" level="INFO">@{result_value_list} = [ 141790.72 | 160070.41 | 155301.98 | 52065.71 ]</msg>
<var>@{result_value_list}</var>
<arg>${results_list[7]}</arg>
<arg>/</arg>
<doc>Splits the `string` using `separator` as a delimiter string.</doc>
<status status="PASS" start="2026-10-07T01:43:08.513250" elapsed="0.000320"/>
</kw>
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-10-07T01:43:08.514004" level="INFO">Length is 4.</msg>
<msg time="2026-10-07T01:43:08.514081" level="INFO">${num_stats} = 4</msg>
<var>${num_stats}</var>
<arg>${result_name_list}</arg>
<doc>Returns and logs the length of the given item as an integer.</doc>
<status status="PASS" start="2026-10-07T01:43:08.513734" elapsed="0.000368"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-07T01:43:08.514901" level="INFO">min :: 141790.72</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-07T01:43:08.514494" elapsed="0.000456"/>
</kw>
<var name="${i}">0</var>
<status status="PASS" start="2026-10-07T01:43:08.514330" elapsed="0.000650"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-07T01:43:08.515617" level="INFO">max :: 160070.41</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-07T01:43:08.515218" elapsed="0.000464"/>
</kw>
<var name="${i}">1</var>
<status status="PASS" start="2026-10-07T01:43:08.515058" elapsed="0.000655"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-07T01:43:08.516362" level="INFO">avg :: 155301.98</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-07T01:43:08.515956" elapsed="0.000456"/>
</kw>
<var name="${i}">2</var>
<status status="PASS" start="2026-10-07T01:43:08.515789" elapsed="0.000652"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-07T01:43:08.517078" level="INFO">stdev :: 52065.71</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-07T01:43:08.516693" elapsed="0.000434"/>
</kw>
<var name="${i}">3</var>
<status status="PASS" start="2026-10-07T01:43:08.516516" elapsed="0.000641"/>
</iter>
<var>${i}</var>
<value>0</value>
<value>${num_stats}</value>
<status status="PASS" start="2026-10-07T01:43:08.514162" elapsed="0.003022"/>
</for>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-07T01:43:08.517729" level="INFO">${min} = 141790.72</msg>
<var>${min}</var>
<arg>${result_value_list[${0}]}</arg>
<doc>Returns the given values which can then be assigned to a variable.</doc>
<status status="PASS" start="2026-10-07T01:43:08.517347" elapsed="0.000406"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-07T01:43:08.518265" level="INFO">${max} = 160070.41</msg>
<var>${max}</var>
<arg>${result_value_list[${1}]}</arg>
<doc>Returns the given values which can then be assigned to a variable.</doc>
<status status="PASS" start="2026-10-07T01:43:08.517901" elapsed="0.000387"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-07T01:43:08.518819" level="INFO">${average} = 155301.98</msg>
<var>${average}</var>
<arg>${result_value_list[${2}]}</arg>
<doc>Returns the given values which can then be assigned to a variable.</doc>
<status status="PASS" start="2026-10-07T01:43:08.518447" elapsed="0.000395"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-07T01:43:08.519366" level="INFO">${stdev} = 52065.71</msg>
<var>${stdev}</var>
<arg>${result_value_list[${3}]}</arg>
<doc>Returns the given values which can then be assigned to a variable.</doc>
<status status="PASS" start="2026-10-07T01:43:08.518992" elapsed="0.000398"/>
</kw>
<kw name="Get Time" owner="BuiltIn">
<msg time="2026-10-07T01:43:08.519912" level="INFO">${date} = 2026-10-07 01:43:08</msg>
<var>${date}</var>
<arg>d,m,s</arg>
<doc>Returns the given time in the requested format.</doc>
<status status="PASS" start="2026-10-07T01:43:08.519570" elapsed="0.000365"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-07T01:43:08.520449" level="INFO">CBench Result: 2026-10-07 01:43:08,-t -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633,141790.72,160070.41,155301.98,52065.71</msg>
<arg>CBench Result: ${date},${cbench_args},${min},${max},${average},${stdev}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-07T01:43:08.520115" elapsed="0.000384"/>
</kw>
<kw name="Log Results And Determine Status">
<kw name="Append To File" owner="OperatingSystem">
<msg time="2026-10-07T01:43:08.521367" 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-10-07T01:43:08.521017" elapsed="0.000411"/>
</kw>
<kw name="Should Be True" owner="BuiltIn">
<arg>${average} &gt; ${threshold}</arg>
<arg>${average} flow_mods per/sec did not exceed threshold of ${threshold}</arg>
<doc>Fails if the given condition is not true.</doc>
<status status="PASS" start="2026-10-07T01:43:08.521582" elapsed="0.000552"/>
</kw>
<arg>${min}</arg>
<arg>${max}</arg>
<arg>${average}</arg>
<arg>${average_threshold}</arg>
<arg>${output_filename}</arg>
<status status="PASS" start="2026-10-07T01:43:08.520619" elapsed="0.001574"/>
</kw>
<arg>-t -m ${duration_in_ms} -M ${num_of_unique_macs} -S ${switch_count} -l ${loops} -D ${start_delay} -p ${of_port}</arg>
<arg>${throughput_threshold}</arg>
<arg>${throughput_results_file}</arg>
<status status="PASS" start="2026-10-07T01:33:01.790197" elapsed="606.732049"/>
</kw>
<kw name="Sleep" owner="BuiltIn">
<msg time="2026-10-07T01:43:08.522703" level="INFO">Slept 0 seconds.</msg>
<arg>${test_delay}</arg>
<doc>Pauses execution for the given time.</doc>
<status status="PASS" start="2026-10-07T01:43:08.522401" elapsed="0.000353"/>
</kw>
<kw name="Log Results As Zero If Cbench Timed Out" type="TEARDOWN">
<kw name="Run Keyword If Timeout Occurred" owner="BuiltIn">
<arg>Log Results And Determine Status</arg>
<arg>0</arg>
<arg>0</arg>
<arg>0</arg>
<arg>0</arg>
<arg>${output_filename}</arg>
<doc>Runs the given keyword if either a test or a keyword timeout has occurred.</doc>
<status status="PASS" start="2026-10-07T01:43:08.523228" elapsed="0.000256"/>
</kw>
<status status="PASS" start="2026-10-07T01:43:08.522945" elapsed="0.000602"/>
</kw>
<doc>cbench executed in throughput mode (-t). Test parameters have defaults, but can be overridden
on the pybot command line</doc>
<tag>cbench</tag>
<tag>throughput</tag>
<timeout value="15 minutes"/>
<status status="PASS" start="2026-10-07T01:33:01.786496" elapsed="606.737086"/>
</test>
<test id="s1-t3" name="Rerun Latency Test To Check Bug 6176" line="65">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-07T01:43:08.524680" level="INFO">Cbench tests using 10 iterations of 60 second tests. Switch Count: 16. Unique MACS to cycle: 100</msg>
<arg>Cbench tests using ${loops} iterations of ${duration_in_secs} second tests. Switch Count: ${switch_count}. Unique MACS to cycle: ${num_of_unique_macs}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-07T01:43:08.524363" elapsed="0.000370"/>
</kw>
<kw name="Run Cbench And Log Results">
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-10-07T01:43:08.525775" level="INFO">${output_filename} = bug.csv</msg>
<arg>${output_filename}</arg>
<doc>Makes the variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-10-07T01:43:08.525467" elapsed="0.000347"/>
</kw>
<if>
<branch type="IF" condition="&quot;${cbench_system}&quot; == &quot;localhost&quot;">
<kw name="Run" owner="OperatingSystem">
<var>${output}</var>
<arg>${cbench_executable} -c ${ODL_SYSTEM_IP} ${cbench_args}</arg>
<doc>*This keyword is considered deprecated. Use the [Process] library instead.*</doc>
<status status="NOT RUN" start="2026-10-07T01:43:08.526116" elapsed="0.000019"/>
</kw>
<status status="NOT RUN" start="2026-10-07T01:43:08.525913" elapsed="0.000255"/>
</branch>
<branch type="ELSE">
<kw name="Run Command On Remote System" owner="Utils">
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot; and &quot;${return_stderr}&quot;!=&quot;True&quot;">
<kw name="Fail" owner="BuiltIn">
<arg>At least one of {return_stdout} or {return_stderr} args should be set to True</arg>
<doc>Fails the test or task with the given message and optionally alters its tags.</doc>
<status status="NOT RUN" start="2026-10-07T01:43:08.527188" elapsed="0.000019"/>
</kw>
<status status="NOT RUN" start="2026-10-07T01:43:08.526981" elapsed="0.000257"/>
</branch>
<status status="PASS" start="2026-10-07T01:43:08.526964" elapsed="0.000295"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-10-07T01:43:08.527611" level="INFO">index=None
host=None
alias=None
port=22
timeout=3 seconds
newline=

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

prompt=None
term_type=vt100
width=80
height=24
path_separator=/
encoding=utf8
escape_ansi=False
encoding_errors=strict</msg>
<var>${current_ssh_connection}</var>
<doc>Returns information about the connection.</doc>
<status status="PASS" start="2026-10-07T01:43:08.527441" elapsed="0.000323"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-07T01:43:08.528248" level="INFO">Attempting to execute command "/usr/local/bin/cbench -c 10.30.170.14 -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633" on remote system "10.30.171.41" by user "jenkins" with keyfile pass "any" and prompt "&gt;" and password ""</msg>
<arg>Attempting to execute command "${cmd}" on remote system "${system}" by user "${user}" with keyfile pass "${keyfile_pass}" and prompt "${prompt}" and password "${password}"</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-07T01:43:08.527932" elapsed="0.000381"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-10-07T01:43:08.528797" level="INFO">${conn_id} = 9</msg>
<var>${conn_id}</var>
<arg>${system}</arg>
<arg>prompt=${prompt}</arg>
<arg>timeout=${prompt_timeout}</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-10-07T01:43:08.528470" elapsed="0.000351"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-10-07T01:43:08.529624" level="INFO">Length is 0.</msg>
<msg time="2026-10-07T01:43:08.529718" level="INFO">${pwd_length} = 0</msg>
<var>${pwd_length}</var>
<arg>${password}</arg>
<doc>Returns and logs the length of the given item as an integer.</doc>
<status status="PASS" start="2026-10-07T01:43:08.529343" elapsed="0.000397"/>
</kw>
<kw name="Run Keyword And Return If" owner="BuiltIn">
<arg>${pwd_length} &gt; 0</arg>
<arg>SSHLibrary.Login</arg>
<arg>${user}</arg>
<arg>${password}</arg>
<arg>delay=${delay}</arg>
<doc>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-07T01:43:08.529871" elapsed="0.000293"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-10-07T01:43:08.530961" level="INFO">Logging into '10.30.171.41:22' as 'jenkins'.</msg>
<msg time="2026-10-07T01:43:09.127838" 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 Wed Oct  7 01:43:08 UTC 2026

  System load:  0.37               Processes:             105
  Usage of /:   19.9% of 38.58GB   Users logged in:       0
  Memory usage: 4%                 IPv4 address for ens3: 10.30.171.41
  Swap usage:   0%


Expanded Security Maintenance for Applications is not enabled.

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

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


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


Last login: Wed Oct  7 01:33:02 2026 from 10.30.170.97
[?2004h[jenkins@releng-00446-106-1-mininet-ovs-217-0 ~]&gt;</msg>
<arg>${user}</arg>
<arg>${USER_HOME}/.ssh/${SSH_KEY}</arg>
<arg>${KEYFILE_PASS}</arg>
<arg>delay=${delay}</arg>
<doc>Logs into the SSH server using key-based authentication.</doc>
<status status="PASS" start="2026-10-07T01:43:08.530688" elapsed="0.597321"/>
</kw>
<msg time="2026-10-07T01:43:09.128089" level="INFO">Returning from the enclosing user keyword.</msg>
<arg>SSHLibrary.Login With Public Key</arg>
<arg>${user}</arg>
<arg>${USER_HOME}/.ssh/${SSH_KEY}</arg>
<arg>${KEYFILE_PASS}</arg>
<arg>delay=${delay}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-07T01:43:08.530320" elapsed="0.597852"/>
</kw>
<arg>${user}</arg>
<arg>${password}</arg>
<doc>On active SSH session: if given non-empty password, do Login, else do Login With Public Key.</doc>
<status status="PASS" start="2026-10-07T01:43:08.528999" elapsed="0.599275"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-07T01:43:09.128829" level="INFO">Executing command '/usr/local/bin/cbench -c 10.30.170.14 -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633'.</msg>
<msg time="2026-10-07T01:53:15.192934" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-10-07T01:53:15.193583" level="INFO">${stdout} = </msg>
<msg time="2026-10-07T01:53:15.193724" level="INFO">${stderr} = cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.170.14:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with 100...</msg>
<var>${stdout}</var>
<var>${stderr}</var>
<arg>${cmd}</arg>
<arg>return_stderr=True</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-10-07T01:43:09.128538" elapsed="606.065258"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-10-07T01:53:15.194262" elapsed="0.000730"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-07T01:53:15.196255" level="INFO">cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.170.14: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.170.14. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
01:44:14.280 16  switches: flows:  98909 96691 99218 97525 97333 97571 96288 97212 95869 94592 94571 93575 94237 97870 95327 95115  total = 25.698383 per ms 
01:45:14.381 16  switches: flows:  96161 94575 95380 94941 93677 93336 92364 93930 91294 90146 88285 89963 93489 87929 92211 89911  total = 24.585368 per ms 
01:46:14.482 16  switches: flows:  89173 88608 87971 88600 85591 88043 85474 89478 85266 83591 82863 83100 86633 83043 85530 83179  total = 22.897494 per ms 
01:47:14.582 16  switches: flows:  98069 97682 96918 97617 94563 96885 95129 97378 93490 92116 93558 91969 97001 92316 95171 91594  total = 25.315337 per ms 
01:48:14.682 16  switches: flows:  98382 98751 97086 96886 94986 95931 93942 98283 93820 91983 91629 90760 96090 91237 94398 90660  total = 25.204970 per ms 
01:49:14.782 16  switches: flows:  97866 98576 96901 96925 96277 96536 93559 98805 93379 90360 92670 91101 97292 91716 94738 90736  total = 25.248474 per ms 
01:50:14.883 16  switches: flows:  99337 97412 97079 98292 94559 97634 93113 96775 95982 91529 92730 91338 96263 92538 94393 90949  total = 25.289830 per ms 
01:51:14.983 16  switches: flows:  100489 102892 101194 99598 97472 97684 95227 101540 96692 95056 94567 93041 98325 95196 97056 92845  total = 25.937930 per ms 
01:52:15.084 16  switches: flows:  99157 98866 98420 99763 97709 98243 94432 100034 96318 93227 92740 93640 98591 95083 95726 92555  total = 25.698836 per ms 
01:53:15.184 16  switches: flows:  100252 101233 98662 100664 96410 97847 94557 98851 96236 93992 93990 93366 98313 95104 97546 92546  total = 25.783131 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 22897.49/25937.93/25106.82/8413.68 responses/s</msg>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-07T01:53:15.195461" elapsed="0.001097"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="PASS" start="2026-10-07T01:53:15.197037" elapsed="0.000088"/>
</return>
<status status="PASS" start="2026-10-07T01:53:15.196770" elapsed="0.000431"/>
</branch>
<status status="PASS" start="2026-10-07T01:53:15.196721" elapsed="0.000531"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="NOT RUN" start="2026-10-07T01:53:15.197440" elapsed="0.000026"/>
</return>
<status status="NOT RUN" start="2026-10-07T01:53:15.197368" elapsed="0.000154"/>
</branch>
<status status="NOT RUN" start="2026-10-07T01:53:15.197336" elapsed="0.000229"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-10-07T01:53:15.197626" elapsed="0.000056"/>
</return>
<kw name="Restore_Current_Ssh_Connection_From_Index" owner="SSHKeywords" type="TEARDOWN">
<kw name="Run Keyword And Return If" owner="BuiltIn">
<arg>${connection_index} is not None</arg>
<arg>SSHLibrary.Switch Connection</arg>
<arg>${connection_index}</arg>
<doc>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-07T01:53:15.199231" elapsed="0.000688"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<arg>127.0.0.1</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-10-07T01:53:15.200312" elapsed="0.000309"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-10-07T01:53:15.200946" elapsed="0.000197"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-10-07T01:53:15.198317" elapsed="0.002933"/>
</kw>
<msg time="2026-10-07T01:53:15.201472" level="INFO">${output} = cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.170.14:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with 100...</msg>
<var>${output}</var>
<arg>${cbench_system}</arg>
<arg>${cbench_executable} -c ${ODL_SYSTEM_IP} ${cbench_args}</arg>
<arg>prompt_timeout=${test_timeout}</arg>
<arg>return_stdout=False</arg>
<arg>return_stderr=True</arg>
<doc>Reduces the common work of running a command on a remote system to a single higher level
robot keyword, taking care to log in with a public key and. The command given is written and the return value
depends on the passed argument values of return_stdout (default: True) and return_stderr (default: False).
At least one should be True, or the keyword will exit and FAIL. If both are True, the resulting return value
will be a two element list containing both. Otherwise the resulting return value is a string.
No test conditions are checked.</doc>
<status status="PASS" start="2026-10-07T01:43:08.526488" elapsed="606.675038"/>
</kw>
<status status="PASS" start="2026-10-07T01:43:08.526191" elapsed="606.675431"/>
</branch>
<status status="PASS" start="2026-10-07T01:43:08.525892" elapsed="606.675808"/>
</if>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-07T01:53:15.202724" level="INFO">cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.170.14: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.170.14. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
01:44:14.280 16  switches: flows:  98909 96691 99218 97525 97333 97571 96288 97212 95869 94592 94571 93575 94237 97870 95327 95115  total = 25.698383 per ms 
01:45:14.381 16  switches: flows:  96161 94575 95380 94941 93677 93336 92364 93930 91294 90146 88285 89963 93489 87929 92211 89911  total = 24.585368 per ms 
01:46:14.482 16  switches: flows:  89173 88608 87971 88600 85591 88043 85474 89478 85266 83591 82863 83100 86633 83043 85530 83179  total = 22.897494 per ms 
01:47:14.582 16  switches: flows:  98069 97682 96918 97617 94563 96885 95129 97378 93490 92116 93558 91969 97001 92316 95171 91594  total = 25.315337 per ms 
01:48:14.682 16  switches: flows:  98382 98751 97086 96886 94986 95931 93942 98283 93820 91983 91629 90760 96090 91237 94398 90660  total = 25.204970 per ms 
01:49:14.782 16  switches: flows:  97866 98576 96901 96925 96277 96536 93559 98805 93379 90360 92670 91101 97292 91716 94738 90736  total = 25.248474 per ms 
01:50:14.883 16  switches: flows:  99337 97412 97079 98292 94559 97634 93113 96775 95982 91529 92730 91338 96263 92538 94393 90949  total = 25.289830 per ms 
01:51:14.983 16  switches: flows:  100489 102892 101194 99598 97472 97684 95227 101540 96692 95056 94567 93041 98325 95196 97056 92845  total = 25.937930 per ms 
01:52:15.084 16  switches: flows:  99157 98866 98420 99763 97709 98243 94432 100034 96318 93227 92740 93640 98591 95083 95726 92555  total = 25.698836 per ms 
01:53:15.184 16  switches: flows:  100252 101233 98662 100664 96410 97847 94557 98851 96236 93992 93990 93366 98313 95104 97546 92546  total = 25.783131 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 22897.49/25937.93/25106.82/8413.68 responses/s</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-07T01:53:15.202116" elapsed="0.000780"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${output}</arg>
<arg>RESULT</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-07T01:53:15.203237" elapsed="0.000756"/>
</kw>
<kw name="Get Lines Containing String" owner="String">
<msg time="2026-10-07T01:53:15.204817" level="INFO">1 out of 23 lines matched.</msg>
<msg time="2026-10-07T01:53:15.205003" level="INFO">${result_line} = RESULT: 16 switches 9 tests min/max/avg/stdev = 22897.49/25937.93/25106.82/8413.68 responses/s</msg>
<var>${result_line}</var>
<arg>${output}</arg>
<arg>RESULT</arg>
<doc>Returns lines of the given `string` that contain the `pattern`.</doc>
<status status="PASS" start="2026-10-07T01:53:15.204360" elapsed="0.000695"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-10-07T01:53:15.205929" level="INFO">@{results_list} = [ RESULT: | 16 | switches | 9 | tests | min/max/avg/stdev | = | 22897.49/25937.93/25106.82/8413.68 | responses/s ]</msg>
<var>@{results_list}</var>
<arg>${result_line}</arg>
<doc>Splits the `string` using `separator` as a delimiter string.</doc>
<status status="PASS" start="2026-10-07T01:53:15.205397" elapsed="0.000589"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-07T01:53:15.207113" level="INFO">min/max/avg/stdev</msg>
<arg>${results_list[5]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-07T01:53:15.206387" elapsed="0.000837"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-07T01:53:15.208335" level="INFO">22897.49/25937.93/25106.82/8413.68</msg>
<arg>${results_list[7]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-07T01:53:15.207617" elapsed="0.000830"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-10-07T01:53:15.209451" level="INFO">@{result_name_list} = [ min | max | avg | stdev ]</msg>
<var>@{result_name_list}</var>
<arg>${results_list[5]}</arg>
<arg>/</arg>
<doc>Splits the `string` using `separator` as a delimiter string.</doc>
<status status="PASS" start="2026-10-07T01:53:15.208832" elapsed="0.000673"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-10-07T01:53:15.210561" level="INFO">@{result_value_list} = [ 22897.49 | 25937.93 | 25106.82 | 8413.68 ]</msg>
<var>@{result_value_list}</var>
<arg>${results_list[7]}</arg>
<arg>/</arg>
<doc>Splits the `string` using `separator` as a delimiter string.</doc>
<status status="PASS" start="2026-10-07T01:53:15.209958" elapsed="0.000657"/>
</kw>
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-10-07T01:53:15.211593" level="INFO">Length is 4.</msg>
<msg time="2026-10-07T01:53:15.211813" level="INFO">${num_stats} = 4</msg>
<var>${num_stats}</var>
<arg>${result_name_list}</arg>
<doc>Returns and logs the length of the given item as an integer.</doc>
<status status="PASS" start="2026-10-07T01:53:15.210999" elapsed="0.000865"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-07T01:53:15.213608" level="INFO">min :: 22897.49</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-07T01:53:15.212708" elapsed="0.001043"/>
</kw>
<var name="${i}">0</var>
<status status="PASS" start="2026-10-07T01:53:15.212306" elapsed="0.001531"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-07T01:53:15.215267" level="INFO">max :: 25937.93</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-07T01:53:15.214358" elapsed="0.001017"/>
</kw>
<var name="${i}">1</var>
<status status="PASS" start="2026-10-07T01:53:15.214003" elapsed="0.001438"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-07T01:53:15.216917" level="INFO">avg :: 25106.82</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-07T01:53:15.216007" elapsed="0.001019"/>
</kw>
<var name="${i}">2</var>
<status status="PASS" start="2026-10-07T01:53:15.215600" elapsed="0.001494"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-07T01:53:15.218539" level="INFO">stdev :: 8413.68</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-07T01:53:15.217612" elapsed="0.001037"/>
</kw>
<var name="${i}">3</var>
<status status="PASS" start="2026-10-07T01:53:15.217254" elapsed="0.001498"/>
</iter>
<var>${i}</var>
<value>0</value>
<value>${num_stats}</value>
<status status="PASS" start="2026-10-07T01:53:15.211985" elapsed="0.006846"/>
</for>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-07T01:53:15.220029" level="INFO">${min} = 22897.49</msg>
<var>${min}</var>
<arg>${result_value_list[${0}]}</arg>
<doc>Returns the given values which can then be assigned to a variable.</doc>
<status status="PASS" start="2026-10-07T01:53:15.219166" elapsed="0.000917"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-07T01:53:15.221285" level="INFO">${max} = 25937.93</msg>
<var>${max}</var>
<arg>${result_value_list[${1}]}</arg>
<doc>Returns the given values which can then be assigned to a variable.</doc>
<status status="PASS" start="2026-10-07T01:53:15.220412" elapsed="0.000926"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-07T01:53:15.222533" level="INFO">${average} = 25106.82</msg>
<var>${average}</var>
<arg>${result_value_list[${2}]}</arg>
<doc>Returns the given values which can then be assigned to a variable.</doc>
<status status="PASS" start="2026-10-07T01:53:15.221687" elapsed="0.000899"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-07T01:53:15.223825" level="INFO">${stdev} = 8413.68</msg>
<var>${stdev}</var>
<arg>${result_value_list[${3}]}</arg>
<doc>Returns the given values which can then be assigned to a variable.</doc>
<status status="PASS" start="2026-10-07T01:53:15.222962" elapsed="0.000917"/>
</kw>
<kw name="Get Time" owner="BuiltIn">
<msg time="2026-10-07T01:53:15.225032" level="INFO">${date} = 2026-10-07 01:53:15</msg>
<var>${date}</var>
<arg>d,m,s</arg>
<doc>Returns the given time in the requested format.</doc>
<status status="PASS" start="2026-10-07T01:53:15.224293" elapsed="0.000792"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-07T01:53:15.226242" level="INFO">CBench Result: 2026-10-07 01:53:15,-m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633,22897.49,25937.93,25106.82,8413.68</msg>
<arg>CBench Result: ${date},${cbench_args},${min},${max},${average},${stdev}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-07T01:53:15.225501" elapsed="0.000851"/>
</kw>
<kw name="Log Results And Determine Status">
<kw name="Append To File" owner="OperatingSystem">
<msg time="2026-10-07T01:53:15.228323" 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-10-07T01:53:15.227515" elapsed="0.000948"/>
</kw>
<kw name="Should Be True" owner="BuiltIn">
<arg>${average} &gt; ${threshold}</arg>
<arg>${average} flow_mods per/sec did not exceed threshold of ${threshold}</arg>
<doc>Fails if the given condition is not true.</doc>
<status status="PASS" start="2026-10-07T01:53:15.228862" elapsed="0.001216"/>
</kw>
<arg>${min}</arg>
<arg>${max}</arg>
<arg>${average}</arg>
<arg>${average_threshold}</arg>
<arg>${output_filename}</arg>
<status status="PASS" start="2026-10-07T01:53:15.226612" elapsed="0.003602"/>
</kw>
<arg>-m ${duration_in_ms} -M ${num_of_unique_macs} -S ${switch_count} -l ${loops} -D ${start_delay} -p ${of_port}</arg>
<arg>${latency_threshold}</arg>
<arg>bug.csv</arg>
<status status="PASS" start="2026-10-07T01:43:08.525000" elapsed="606.705332"/>
</kw>
<kw name="Sleep" owner="BuiltIn">
<msg time="2026-10-07T01:53:15.231311" level="INFO">Slept 0 seconds.</msg>
<arg>${test_delay}</arg>
<doc>Pauses execution for the given time.</doc>
<status status="PASS" start="2026-10-07T01:53:15.230646" elapsed="0.000778"/>
</kw>
<kw name="Report Failure Due To Bug" owner="Utils" type="TEARDOWN">
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-07T01:53:15.234003" level="INFO">${test_skipped} = False</msg>
<var>${test_skipped}</var>
<arg>len(re.findall('SKIPPED', """${TEST_MESSAGE}""")) &gt; 0</arg>
<arg>modules=re</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-10-07T01:53:15.232988" elapsed="0.001071"/>
</kw>
<if>
<branch type="IF" condition="('${TEST_STATUS}' != 'FAIL') or ${test_skipped}">
<return>
<status status="PASS" start="2026-10-07T01:53:15.234458" elapsed="0.000070"/>
</return>
<status status="PASS" start="2026-10-07T01:53:15.234208" elapsed="0.000393"/>
</branch>
<status status="PASS" start="2026-10-07T01:53:15.234167" elapsed="0.000553"/>
</if>
<kw name="Comment" owner="BuiltIn">
<arg>Jira tickets are {PROJECT}-{NUMBER} while Bugzilla tickets are {NUMBER}</arg>
<doc>Displays the given messages in the log file as keyword arguments.</doc>
<status status="NOT RUN" start="2026-10-07T01:53:15.235067" elapsed="0.000043"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<var>${match}</var>
<arg>Should Contain</arg>
<arg>${number}</arg>
<arg>-</arg>
<doc>Runs the specified keyword and returns the status as a Boolean value.</doc>
<status status="NOT RUN" start="2026-10-07T01:53:15.235394" elapsed="0.000040"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<var>${bug_url}</var>
<arg>${match}</arg>
<arg>https://jira.opendaylight.org/browse/${number}</arg>
<arg>https://bugs.opendaylight.org/show_bug.cgi?id=${number}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="NOT RUN" start="2026-10-07T01:53:15.235808" elapsed="0.000043"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<var>${msg}</var>
<arg>This test fails due to ${bug_url}</arg>
<doc>Returns the given values which can then be assigned to a variable.</doc>
<status status="NOT RUN" start="2026-10-07T01:53:15.236142" elapsed="0.000040"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${newline}</var>
<arg>chr(10)</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-10-07T01:53:15.236741" elapsed="0.000029"/>
</kw>
<kw name="Set Test Message" owner="BuiltIn">
<arg>${msg}${newline}${newline}${TEST_MESSAGE}</arg>
<doc>Sets message of the current test case.</doc>
<status status="NOT RUN" start="2026-10-07T01:53:15.236967" elapsed="0.000025"/>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${msg}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-07T01:53:15.237213" elapsed="0.000024"/>
</kw>
<if>
<branch type="IF" condition="&quot;${include_bug_in_tags}&quot;==&quot;True&quot;">
<kw name="Set Tags" owner="BuiltIn">
<arg>${bug_url}</arg>
<doc>Adds The given `tags` for the current test or all tests in a suite.</doc>
<status status="NOT RUN" start="2026-10-07T01:53:15.237496" elapsed="0.000024"/>
</kw>
<status status="NOT RUN" start="2026-10-07T01:53:15.237314" elapsed="0.000244"/>
</branch>
<status status="NOT RUN" start="2026-10-07T01:53:15.237293" elapsed="0.000295"/>
</if>
<arg>6176</arg>
<doc>Report that a test failed due to a known Bugzilla bug whose
number is provided as an argument.
Not FAILED (incl. SKIPPED) test are not reported.
This keyword must be used in the [Teardown] setting of the affected test
or as the first line of the test if FastFail module is not being
used. It reports the URL of the bug on console and also puts it
into the Robot log file.</doc>
<status status="PASS" start="2026-10-07T01:53:15.232195" elapsed="0.005475"/>
</kw>
<doc>cbench executed in latency mode to see if controller is healthy</doc>
<tag>cbench</tag>
<tag>latency</tag>
<timeout value="15 minutes"/>
<status status="PASS" start="2026-10-07T01:43:08.523860" elapsed="606.713870"/>
</test>
<doc>Cbench Latency and Throughput tests can be run from an external
cbench.
If cbench is run with a medium number of switches or higher (e.g. 32+)
the normal openflow operations seem to break.
BUG: https://bugs.opendaylight.org/show_bug.cgi?id=2897</doc>
<status status="PASS" start="2026-10-07T01:22:52.831987" elapsed="1822.406275"/>
</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>
