<?xml version="1.0" encoding="UTF-8"?>
<robot generator="Robot 7.4.2 (Python 3.11.10 on linux)" generated="2026-06-15T03:02:38.255404" rpa="false" schemaversion="5">
<suite id="s1" name="openflowplugin-cbench.txt" source="/w/workspace/openflowplugin-csit-1node-cbench-only-vanadium/test/csit/suites/openflowplugin/Performance/010_Cbench.robot">
<kw name="Cbench Suite Setup" type="SETUP">
<kw name="Wait Until Keyword Succeeds" owner="BuiltIn">
<kw name="Issue_Command_On_Karaf_Console" owner="KarafKeywords">
<if>
<branch type="IF" condition="'${IS_KARAF_APPL}' == 'False'">
<return>
<value>Not A Karaf App</value>
<status status="NOT RUN" start="2026-06-15T03:02:38.867179" elapsed="0.000026"/>
</return>
<status status="NOT RUN" start="2026-06-15T03:02:38.867019" elapsed="0.000246"/>
</branch>
<status status="PASS" start="2026-06-15T03:02:38.866984" elapsed="0.000310"/>
</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-06-15T03:02:38.867439" elapsed="0.000540"/>
</kw>
<kw name="Login" owner="SSHLibrary">
<msg time="2026-06-15T03:02:38.868493" level="INFO">Logging into '10.30.170.145:8101' as 'karaf'.</msg>
<msg time="2026-06-15T03:02:39.567300" 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-06-15T03:02:38.868175" elapsed="0.699464"/>
</kw>
<kw name="Write" owner="SSHLibrary">
<msg time="2026-06-15T03:02:39.617414" 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-06-15T03:02:39.568091" elapsed="0.049403"/>
</kw>
<kw name="Read Until Regexp" owner="SSHLibrary">
<msg time="2026-06-15T03:02:39.619600" level="INFO">[?1l&gt;[?2004l[?1h=[90m~[0m                                                                                [?2004hopendaylight-user@root&gt;</msg>
<msg time="2026-06-15T03:02:39.619741" 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-06-15T03:02:39.617684" elapsed="0.002088"/>
</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-06-15T03:02:39.619945" elapsed="0.000277"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-06-15T03:02:39.620396" elapsed="0.000300"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-06-15T03:02:39.621350" 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-06-15T03:02:39.620862" elapsed="0.000545"/>
</kw>
<return>
<value>${output}</value>
<status status="PASS" start="2026-06-15T03:02:39.621470" elapsed="0.000087"/>
</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.145
Note that this keyword will open&amp;close new SSH connection, without switching back to previously current session.</doc>
<status status="PASS" start="2026-06-15T03:02:38.866633" elapsed="0.755085"/>
</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-06-15T03:02:38.862970" elapsed="0.758823"/>
</kw>
<kw name="Append To File" owner="OperatingSystem">
<msg time="2026-06-15T03:02:39.622605" level="INFO" html="true">Appended to file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-cbench-only-vanadium/latency.csv"&gt;/w/workspace/openflowplugin-csit-1node-cbench-only-vanadium/latency.csv&lt;/a&gt;'.</msg>
<arg>${latency_results_file}</arg>
<arg>LATENCY_MIN,LATENCY_MAX,LATENCY_AVERAGE\n</arg>
<doc>Appends the given content to the specified file.</doc>
<status status="PASS" start="2026-06-15T03:02:39.622025" elapsed="0.000640"/>
</kw>
<kw name="Append To File" owner="OperatingSystem">
<msg time="2026-06-15T03:02:39.623109" level="INFO" html="true">Appended to file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-cbench-only-vanadium/throughput.csv"&gt;/w/workspace/openflowplugin-csit-1node-cbench-only-vanadium/throughput.csv&lt;/a&gt;'.</msg>
<arg>${throughput_results_file}</arg>
<arg>THROUGHPUT_MIN,THROUGHPUT_MAX,THROUGHPUT_AVERAGE\n</arg>
<doc>Appends the given content to the specified file.</doc>
<status status="PASS" start="2026-06-15T03:02:39.622839" elapsed="0.000351"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-06-15T03:02:39.623843" 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-06-15T03:02:39.623357" elapsed="0.000514"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-06-15T03:02:39.624487" level="INFO">${duration_in_ms} = 60000</msg>
<arg>${duration_in_ms}</arg>
<doc>Makes a variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-06-15T03:02:39.624059" elapsed="0.000473"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-06-15T03:02:39.625349" 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-06-15T03:02:39.624681" elapsed="0.000699"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-06-15T03:02:39.625868" level="INFO">${test_timeout} = 900.0</msg>
<arg>${test_timeout}</arg>
<doc>Makes a variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-06-15T03:02:39.625545" elapsed="0.000367"/>
</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-06-15T03:02:39.626313" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-06-15T03:02:39.626037" elapsed="0.000333"/>
</branch>
<branch type="ELSE">
<kw name="Verify File Exists On Remote System" owner="Utils">
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-06-15T03:02:39.631732" 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-06-15T03:02:39.631211" elapsed="0.000549"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-06-15T03:02:39.633003" level="INFO">Length is 0.</msg>
<msg time="2026-06-15T03:02:39.633089" 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-06-15T03:02:39.632371" elapsed="0.000746"/>
</kw>
<kw name="Run Keyword And Return If" owner="BuiltIn">
<arg>${pwd_length} &gt; 0</arg>
<arg>SSHLibrary.Login</arg>
<arg>${user}</arg>
<arg>${password}</arg>
<arg>delay=${delay}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-06-15T03:02:39.633290" elapsed="0.000364"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-06-15T03:02:39.634798" level="INFO">Logging into '10.30.170.225:22' as 'jenkins'.</msg>
<msg time="2026-06-15T03:02:40.351719" level="INFO">Read output: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-153-generic x86_64)

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

 System information as of Mon Jun 15 03:02:39 UTC 2026

  System load:  0.1                Processes:             111
  Usage of /:   19.3% of 38.58GB   Users logged in:       0
  Memory usage: 4%                 IPv4 address for ens3: 10.30.170.225
  Swap usage:   0%

 * Strictly confined Kubernetes makes edge and IoT secure. Learn how MicroK8s
   just raised the bar for easy, resilient and secure K8s cluster deployment.

   https://ubuntu.com/engage/secure-kubernetes-at-the-edge

Expanded Security Maintenance for Applications is not enabled.

0 updates can be applied immediately.

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


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


[?2004h[jenkins@releng-63164-306-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-06-15T03:02:39.634206" elapsed="0.717793"/>
</kw>
<msg time="2026-06-15T03:02:40.352157" 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-06-15T03:02:39.633816" elapsed="0.718493"/>
</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-06-15T03:02:39.631975" elapsed="0.720517"/>
</kw>
<kw name="File Should Exist" owner="SSHLibrary">
<msg time="2026-06-15T03:02:40.360480" 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-06-15T03:02:40.352839" elapsed="0.009521"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-06-15T03:02:40.362602" elapsed="0.000389"/>
</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-06-15T03:02:39.630568" elapsed="0.732494"/>
</kw>
<status status="PASS" start="2026-06-15T03:02:39.626789" elapsed="0.736317"/>
</branch>
<status status="PASS" start="2026-06-15T03:02:39.626000" elapsed="0.737191"/>
</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-06-15T03:02:40.363378" elapsed="0.000676"/>
</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-06-15T03:02:40.370151" elapsed="0.000034"/>
</return>
<status status="NOT RUN" start="2026-06-15T03:02:40.369925" elapsed="0.000313"/>
</branch>
<status status="PASS" start="2026-06-15T03:02:40.369882" elapsed="0.000390"/>
</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-06-15T03:02:40.377640" elapsed="0.000046"/>
</return>
<status status="NOT RUN" start="2026-06-15T03:02:40.377279" elapsed="0.000518"/>
</branch>
<status status="PASS" start="2026-06-15T03:02:40.377195" elapsed="0.000659"/>
</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-06-15T03:02:40.378383" elapsed="0.001270"/>
</kw>
<kw name="Login" owner="SSHLibrary">
<msg time="2026-06-15T03:02:40.380737" level="INFO">Logging into '10.30.170.145:8101' as 'karaf'.</msg>
<msg time="2026-06-15T03:02:40.590037" 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-06-15T03:02:40.380027" elapsed="0.210250"/>
</kw>
<kw name="Write" owner="SSHLibrary">
<msg time="2026-06-15T03:02:40.686825" 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-06-15T03:02:40.590636" elapsed="0.096287"/>
</kw>
<kw name="Read Until Regexp" owner="SSHLibrary">
<msg time="2026-06-15T03:02:40.691638" level="INFO">[?1l&gt;[?2004l[31;1modl-openflowplugin-drop-test[0m                                    x 1.0.0            x x        x Started x [31;1modl-openflowplugin-drop-test[0m                                    x OpenDaylight :: Openflow Plugin :: Drop Test
[?1h=[90m~[0m                                                                                [?2004hopendaylight-user@root&gt;</msg>
<msg time="2026-06-15T03:02:40.691906" level="INFO">${output} = [?1l&gt;[?2004l[31;1modl-openflowplugin-drop-test[0m                                    x 1.0.0            x x        x Started x [31;1modl-openflowplugin-drop-test[0m                     ...</msg>
<var>${output}</var>
<arg>${KARAF_PROMPT}</arg>
<doc>Consumes and returns the server output until a match to ``regexp`` is found.</doc>
<status status="PASS" start="2026-06-15T03:02:40.687155" elapsed="0.004783"/>
</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-06-15T03:02:40.692084" elapsed="0.000225"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-06-15T03:02:40.692462" elapsed="0.000275"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-06-15T03:02:40.693328" level="INFO">[?1l&gt;[?2004l[31;1modl-openflowplugin-drop-test[0m                                    x 1.0.0            x x        x Started x [31;1modl-openflowplugin-drop-test[0m                                    x OpenDaylight :: Openflow Plugin :: Drop Test
[?1h=[90m~[0m                                                                                [?2004hopendaylight-user@root&gt;</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-06-15T03:02:40.692883" elapsed="0.000501"/>
</kw>
<return>
<value>${output}</value>
<status status="PASS" start="2026-06-15T03:02:40.693445" elapsed="0.000086"/>
</return>
<msg time="2026-06-15T03:02:40.693713" level="INFO">${output} = [?1l&gt;[?2004l[31;1modl-openflowplugin-drop-test[0m                                    x 1.0.0            x x        x Started x [31;1modl-openflowplugin-drop-test[0m                     ...</msg>
<var>${output}</var>
<arg>feature:list -i | grep ${feature_name}</arg>
<arg>${controller}</arg>
<arg>${karaf_port}</arg>
<doc>Will execute the given ${cmd} by ssh'ing to the karaf console running on 10.30.170.145
Note that this keyword will open&amp;close new SSH connection, without switching back to previously current session.</doc>
<status status="PASS" start="2026-06-15T03:02:40.375830" elapsed="0.317917"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${output}</arg>
<arg>${feature_name}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-06-15T03:02:40.693934" elapsed="0.000672"/>
</kw>
<return>
<value>${output}</value>
<status status="PASS" start="2026-06-15T03:02:40.694657" elapsed="0.000033"/>
</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-06-15T03:02:40.369413" elapsed="0.325379"/>
</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-06-15T03:02:40.699248" elapsed="0.000026"/>
</return>
<status status="NOT RUN" start="2026-06-15T03:02:40.698827" elapsed="0.000485"/>
</branch>
<status status="PASS" start="2026-06-15T03:02:40.698798" elapsed="0.000556"/>
</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-06-15T03:02:40.699505" elapsed="0.000521"/>
</kw>
<kw name="Login" owner="SSHLibrary">
<msg time="2026-06-15T03:02:40.700463" level="INFO">Logging into '10.30.170.145:8101' as 'karaf'.</msg>
<msg time="2026-06-15T03:02:40.880190" 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-06-15T03:02:40.700195" elapsed="0.180167"/>
</kw>
<kw name="Write" owner="SSHLibrary">
<msg time="2026-06-15T03:02:40.904643" 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-06-15T03:02:40.880639" elapsed="0.024066"/>
</kw>
<kw name="Read Until Regexp" owner="SSHLibrary">
<msg time="2026-06-15T03:02:40.906852" level="INFO">[?1l&gt;[?2004lDropAllFlows transitions to on
[?1h=[90m~[0m                                                                                [?2004hopendaylight-user@root&gt;</msg>
<msg time="2026-06-15T03:02:40.906964" 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-06-15T03:02:40.904859" elapsed="0.002135"/>
</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-06-15T03:02:40.907151" elapsed="0.000195"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-06-15T03:02:40.907493" elapsed="0.000266"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-06-15T03:02:40.908290" 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-06-15T03:02:40.907905" elapsed="0.000436"/>
</kw>
<return>
<value>${output}</value>
<status status="PASS" start="2026-06-15T03:02:40.908396" elapsed="0.000067"/>
</return>
<arg>dropallpacketsrpc on</arg>
<doc>Will execute the given ${cmd} by ssh'ing to the karaf console running on 10.30.170.145
Note that this keyword will open&amp;close new SSH connection, without switching back to previously current session.</doc>
<status status="PASS" start="2026-06-15T03:02:40.698426" elapsed="0.210170"/>
</kw>
<status status="PASS" start="2026-06-15T03:02:38.861035" elapsed="2.047630"/>
</kw>
<test id="s1-t1" name="Cbench Latency Test" line="37">
<kw name="Log" owner="BuiltIn">
<msg time="2026-06-15T03:02:40.911233" 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-06-15T03:02:40.909913" elapsed="0.001386"/>
</kw>
<kw name="Run Cbench And Log Results">
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-06-15T03:02:40.912907" level="INFO">${output_filename} = latency.csv</msg>
<arg>${output_filename}</arg>
<doc>Makes a variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-06-15T03:02:40.912541" elapsed="0.000409"/>
</kw>
<if>
<branch type="IF" condition="&quot;${cbench_system}&quot; == &quot;localhost&quot;">
<kw name="Run" owner="OperatingSystem">
<var>${output}</var>
<arg>${cbench_executable} -c ${ODL_SYSTEM_IP} ${cbench_args}</arg>
<doc>_This keyword is considered deprecated. Use the
[http://robotframework.org/robotframework/latest/libraries/Process.html|
Process] library instead._</doc>
<status status="NOT RUN" start="2026-06-15T03:02:40.913319" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-06-15T03:02:40.913044" elapsed="0.000335"/>
</branch>
<branch type="ELSE">
<kw name="Run Command On Remote System" owner="Utils">
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot; and &quot;${return_stderr}&quot;!=&quot;True&quot;">
<kw name="Fail" owner="BuiltIn">
<arg>At least one of {return_stdout} or {return_stderr} args should be set to True</arg>
<doc>Fails the test with the given message and optionally alters its tags.</doc>
<status status="NOT RUN" start="2026-06-15T03:02:40.916457" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-06-15T03:02:40.916208" elapsed="0.000305"/>
</branch>
<status status="PASS" start="2026-06-15T03:02:40.916188" elapsed="0.000352"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-06-15T03:02:40.916898" 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-06-15T03:02:40.917020" 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-06-15T03:02:40.916674" elapsed="0.000373"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-06-15T03:02:40.917622" level="INFO">Attempting to execute command "/usr/local/bin/cbench -c 10.30.170.145 -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633" on remote system "10.30.170.225" 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-06-15T03:02:40.917199" elapsed="0.000482"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-06-15T03:02:40.918359" 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-06-15T03:02:40.917820" elapsed="0.000565"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-06-15T03:02:40.919327" level="INFO">Length is 0.</msg>
<msg time="2026-06-15T03:02:40.919418" 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-06-15T03:02:40.918962" elapsed="0.000480"/>
</kw>
<kw name="Run Keyword And Return If" owner="BuiltIn">
<arg>${pwd_length} &gt; 0</arg>
<arg>SSHLibrary.Login</arg>
<arg>${user}</arg>
<arg>${password}</arg>
<arg>delay=${delay}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-06-15T03:02:40.919585" elapsed="0.000364"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-06-15T03:02:40.920836" level="INFO">Logging into '10.30.170.225:22' as 'jenkins'.</msg>
<msg time="2026-06-15T03:02:41.262663" level="INFO">Read output: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-153-generic x86_64)

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

 System information as of Mon Jun 15 03:02:39 UTC 2026

  System load:  0.1                Processes:             111
  Usage of /:   19.3% of 38.58GB   Users logged in:       0
  Memory usage: 4%                 IPv4 address for ens3: 10.30.170.225
  Swap usage:   0%

 * Strictly confined Kubernetes makes edge and IoT secure. Learn how MicroK8s
   just raised the bar for easy, resilient and secure K8s cluster deployment.

   https://ubuntu.com/engage/secure-kubernetes-at-the-edge

Expanded Security Maintenance for Applications is not enabled.

0 updates can be applied immediately.

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


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


Last login: Mon Jun 15 03:02:40 2026 from 10.30.171.112
[?2004h[jenkins@releng-63164-306-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-06-15T03:02:40.920479" elapsed="0.342513"/>
</kw>
<msg time="2026-06-15T03:02:41.263154" 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-06-15T03:02:40.920105" elapsed="0.343208"/>
</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-06-15T03:02:40.918590" elapsed="0.344934"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-06-15T03:02:41.264479" level="INFO">Executing command '/usr/local/bin/cbench -c 10.30.170.145 -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633'.</msg>
<msg time="2026-06-15T03:12:48.268042" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-06-15T03:12:48.268435" level="INFO">${stdout} = </msg>
<msg time="2026-06-15T03:12:48.268503" level="INFO">${stderr} = cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.170.145:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with 10...</msg>
<var>${stdout}</var>
<var>${stderr}</var>
<arg>${cmd}</arg>
<arg>return_stderr=True</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-06-15T03:02:41.263909" elapsed="607.004630"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-06-15T03:12:48.268864" elapsed="0.000510"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-06-15T03:12:48.270128" level="INFO">cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.170.145: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.145. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
03:03:46.471 16  switches: flows:  93960 94971 93079 92847 95754 93017 93007 92077 89573 91394 89344 91574 92211 91644 89038 90047  total = 24.558950 per ms 
03:04:46.573 16  switches: flows:  105898 104329 107066 107111 106606 108496 104557 106008 104738 102624 104013 105867 103399 101693 105332 102800  total = 27.962099 per ms 
03:05:46.674 16  switches: flows:  117541 117280 117193 116749 112867 118589 116625 114912 115872 114367 114112 114425 113884 111477 115821 114465  total = 30.718354 per ms 
03:06:46.775 16  switches: flows:  117651 119409 118369 117928 115104 119661 117903 116863 115665 115923 115773 116370 115604 113087 117712 116100  total = 31.100019 per ms 
03:07:47.757 16  switches: flows:  116024 115994 116041 116064 113341 115862 114908 113321 112348 113828 112636 114400 113368 109624 114110 112105  total = 29.910528 per ms 
03:08:47.858 16  switches: flows:  116651 114802 112929 115399 112500 114874 113277 113561 112397 110984 110925 112689 109220 110897 110027 110240  total = 29.972784 per ms 
03:09:47.959 16  switches: flows:  107797 110718 107282 108089 107007 109160 108661 107366 106347 105467 105116 106667 104549 104769 103266 104859  total = 28.404590 per ms 
03:10:48.061 16  switches: flows:  123955 130013 124877 124081 124808 125642 125555 124618 123048 120984 123318 124109 120412 120585 120698 122435  total = 32.930628 per ms 
03:11:48.161 16  switches: flows:  124079 126004 124890 124534 123805 124110 124557 122210 123383 121892 120701 122068 120139 120826 121079 118918  total = 32.665396 per ms 
03:12:48.262 16  switches: flows:  126181 128197 128366 128673 126505 126989 126261 126855 125429 124525 122221 124572 121981 119407 124283 121103  total = 33.303543 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 27962.10/33303.54/30774.22/10417.38 responses/s</msg>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-06-15T03:12:48.269624" elapsed="0.000740"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="PASS" start="2026-06-15T03:12:48.270726" elapsed="0.000051"/>
</return>
<status status="PASS" start="2026-06-15T03:12:48.270506" elapsed="0.000330"/>
</branch>
<status status="PASS" start="2026-06-15T03:12:48.270464" elapsed="0.000407"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="NOT RUN" start="2026-06-15T03:12:48.271005" elapsed="0.000018"/>
</return>
<status status="NOT RUN" start="2026-06-15T03:12:48.270954" elapsed="0.000108"/>
</branch>
<status status="NOT RUN" start="2026-06-15T03:12:48.270932" elapsed="0.000159"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-06-15T03:12:48.271159" elapsed="0.000021"/>
</return>
<kw name="Restore_Current_Ssh_Connection_From_Index" owner="SSHKeywords" type="TEARDOWN">
<kw name="Run Keyword And Return If" owner="BuiltIn">
<arg>${connection_index} is not None</arg>
<arg>SSHLibrary.Switch Connection</arg>
<arg>${connection_index}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-06-15T03:12:48.274657" elapsed="0.000470"/>
</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-06-15T03:12:48.275363" elapsed="0.000229"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-06-15T03:12:48.275770" elapsed="0.000135"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-06-15T03:12:48.271602" elapsed="0.004376"/>
</kw>
<msg time="2026-06-15T03:12:48.276179" level="INFO">${output} = cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.170.145:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with 10...</msg>
<var>${output}</var>
<arg>${cbench_system}</arg>
<arg>${cbench_executable} -c ${ODL_SYSTEM_IP} ${cbench_args}</arg>
<arg>prompt_timeout=${test_timeout}</arg>
<arg>return_stdout=False</arg>
<arg>return_stderr=True</arg>
<doc>Reduces the common work of running a command on a remote system to a single higher level
robot keyword, taking care to log in with a public key and. The command given is written and the return value
depends on the passed argument values of return_stdout (default: True) and return_stderr (default: False).
At least one should be True, or the keyword will exit and FAIL. If both are True, the resulting return value
will be a two element list containing both. Otherwise the resulting return value is a string.
No test conditions are checked.</doc>
<status status="PASS" start="2026-06-15T03:02:40.913741" elapsed="607.362478"/>
</kw>
<status status="PASS" start="2026-06-15T03:02:40.913411" elapsed="607.362876"/>
</branch>
<status status="PASS" start="2026-06-15T03:02:40.913016" elapsed="607.363303"/>
</if>
<kw name="Log" owner="BuiltIn">
<msg time="2026-06-15T03:12:48.276914" level="INFO">cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.170.145: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.145. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
03:03:46.471 16  switches: flows:  93960 94971 93079 92847 95754 93017 93007 92077 89573 91394 89344 91574 92211 91644 89038 90047  total = 24.558950 per ms 
03:04:46.573 16  switches: flows:  105898 104329 107066 107111 106606 108496 104557 106008 104738 102624 104013 105867 103399 101693 105332 102800  total = 27.962099 per ms 
03:05:46.674 16  switches: flows:  117541 117280 117193 116749 112867 118589 116625 114912 115872 114367 114112 114425 113884 111477 115821 114465  total = 30.718354 per ms 
03:06:46.775 16  switches: flows:  117651 119409 118369 117928 115104 119661 117903 116863 115665 115923 115773 116370 115604 113087 117712 116100  total = 31.100019 per ms 
03:07:47.757 16  switches: flows:  116024 115994 116041 116064 113341 115862 114908 113321 112348 113828 112636 114400 113368 109624 114110 112105  total = 29.910528 per ms 
03:08:47.858 16  switches: flows:  116651 114802 112929 115399 112500 114874 113277 113561 112397 110984 110925 112689 109220 110897 110027 110240  total = 29.972784 per ms 
03:09:47.959 16  switches: flows:  107797 110718 107282 108089 107007 109160 108661 107366 106347 105467 105116 106667 104549 104769 103266 104859  total = 28.404590 per ms 
03:10:48.061 16  switches: flows:  123955 130013 124877 124081 124808 125642 125555 124618 123048 120984 123318 124109 120412 120585 120698 122435  total = 32.930628 per ms 
03:11:48.161 16  switches: flows:  124079 126004 124890 124534 123805 124110 124557 122210 123383 121892 120701 122068 120139 120826 121079 118918  total = 32.665396 per ms 
03:12:48.262 16  switches: flows:  126181 128197 128366 128673 126505 126989 126261 126855 125429 124525 122221 124572 121981 119407 124283 121103  total = 33.303543 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 27962.10/33303.54/30774.22/10417.38 responses/s</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-06-15T03:12:48.276513" elapsed="0.000502"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${output}</arg>
<arg>RESULT</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-06-15T03:12:48.277240" elapsed="0.000505"/>
</kw>
<kw name="Get Lines Containing String" owner="String">
<msg time="2026-06-15T03:12:48.278303" level="INFO">1 out of 23 lines matched.</msg>
<msg time="2026-06-15T03:12:48.278448" level="INFO">${result_line} = RESULT: 16 switches 9 tests min/max/avg/stdev = 27962.10/33303.54/30774.22/10417.38 responses/s</msg>
<var>${result_line}</var>
<arg>${output}</arg>
<arg>RESULT</arg>
<doc>Returns lines of the given ``string`` that contain the ``pattern``.</doc>
<status status="PASS" start="2026-06-15T03:12:48.277963" elapsed="0.000523"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-06-15T03:12:48.279053" level="INFO">@{results_list} = [ RESULT: | 16 | switches | 9 | tests | min/max/avg/stdev | = | 27962.10/33303.54/30774.22/10417.38 | responses/s ]</msg>
<var>@{results_list}</var>
<arg>${result_line}</arg>
<doc>Splits the ``string`` using ``separator`` as a delimiter string.</doc>
<status status="PASS" start="2026-06-15T03:12:48.278701" elapsed="0.000390"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-06-15T03:12:48.282418" 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-06-15T03:12:48.279312" elapsed="0.003228"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-06-15T03:12:48.285106" level="INFO">27962.10/33303.54/30774.22/10417.38</msg>
<arg>${results_list[7]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-06-15T03:12:48.282748" elapsed="0.002431"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-06-15T03:12:48.287518" 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-06-15T03:12:48.285328" elapsed="0.002216"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-06-15T03:12:48.289917" level="INFO">@{result_value_list} = [ 27962.10 | 33303.54 | 30774.22 | 10417.38 ]</msg>
<var>@{result_value_list}</var>
<arg>${results_list[7]}</arg>
<arg>/</arg>
<doc>Splits the ``string`` using ``separator`` as a delimiter string.</doc>
<status status="PASS" start="2026-06-15T03:12:48.287730" elapsed="0.002214"/>
</kw>
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-06-15T03:12:48.290416" level="INFO">Length is 4.</msg>
<msg time="2026-06-15T03:12:48.290510" 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-06-15T03:12:48.290096" elapsed="0.000442"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-06-15T03:12:48.295258" level="INFO">min :: 27962.10</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-06-15T03:12:48.290952" elapsed="0.004362"/>
</kw>
<var name="${i}">0</var>
<status status="PASS" start="2026-06-15T03:12:48.290822" elapsed="0.004527"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-06-15T03:12:48.299819" level="INFO">max :: 33303.54</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-06-15T03:12:48.295566" elapsed="0.004309"/>
</kw>
<var name="${i}">1</var>
<status status="PASS" start="2026-06-15T03:12:48.295440" elapsed="0.004470"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-06-15T03:12:48.304435" level="INFO">avg :: 30774.22</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-06-15T03:12:48.300127" elapsed="0.004363"/>
</kw>
<var name="${i}">2</var>
<status status="PASS" start="2026-06-15T03:12:48.299997" elapsed="0.004527"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-06-15T03:12:48.309111" level="INFO">stdev :: 10417.38</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-06-15T03:12:48.304759" elapsed="0.004424"/>
</kw>
<var name="${i}">3</var>
<status status="PASS" start="2026-06-15T03:12:48.304615" elapsed="0.004603"/>
</iter>
<var>${i}</var>
<value>0</value>
<value>${num_stats}</value>
<status status="PASS" start="2026-06-15T03:12:48.290633" elapsed="0.018621"/>
</for>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-06-15T03:12:48.313576" level="INFO">${min} = 27962.10</msg>
<var>${min}</var>
<arg>${result_value_list[${0}]}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-06-15T03:12:48.309410" elapsed="0.004193"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-06-15T03:12:48.317884" level="INFO">${max} = 33303.54</msg>
<var>${max}</var>
<arg>${result_value_list[${1}]}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-06-15T03:12:48.313757" elapsed="0.004172"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-06-15T03:12:48.321872" level="INFO">${average} = 30774.22</msg>
<var>${average}</var>
<arg>${result_value_list[${2}]}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-06-15T03:12:48.318144" elapsed="0.003755"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-06-15T03:12:48.325750" level="INFO">${stdev} = 10417.38</msg>
<var>${stdev}</var>
<arg>${result_value_list[${3}]}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-06-15T03:12:48.322049" elapsed="0.003727"/>
</kw>
<kw name="Get Time" owner="BuiltIn">
<msg time="2026-06-15T03:12:48.326315" level="INFO">${date} = 2026-06-15 03:12:48</msg>
<var>${date}</var>
<arg>d,m,s</arg>
<doc>Returns the given time in the requested format.</doc>
<status status="PASS" start="2026-06-15T03:12:48.325934" elapsed="0.000407"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-06-15T03:12:48.326893" level="INFO">CBench Result: 2026-06-15 03:12:48,-m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633,27962.10,33303.54,30774.22,10417.38</msg>
<arg>CBench Result: ${date},${cbench_args},${min},${max},${average},${stdev}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-06-15T03:12:48.326487" elapsed="0.000460"/>
</kw>
<kw name="Log Results And Determine Status">
<kw name="Append To File" owner="OperatingSystem">
<msg time="2026-06-15T03:12:48.328004" level="INFO" html="true">Appended to file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-cbench-only-vanadium/latency.csv"&gt;/w/workspace/openflowplugin-csit-1node-cbench-only-vanadium/latency.csv&lt;/a&gt;'.</msg>
<arg>${output_file}</arg>
<arg>${min},${max},${average}\n</arg>
<doc>Appends the given content to the specified file.</doc>
<status status="PASS" start="2026-06-15T03:12:48.327608" elapsed="0.000462"/>
</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-06-15T03:12:48.328238" elapsed="0.000452"/>
</kw>
<arg>${min}</arg>
<arg>${max}</arg>
<arg>${average}</arg>
<arg>${average_threshold}</arg>
<arg>${output_filename}</arg>
<status status="PASS" start="2026-06-15T03:12:48.327115" elapsed="0.001638"/>
</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-06-15T03:02:40.911839" elapsed="607.416975"/>
</kw>
<kw name="Sleep" owner="BuiltIn">
<msg time="2026-06-15T03:12:48.329297" level="INFO">Slept 0 seconds.</msg>
<arg>${test_delay}</arg>
<doc>Pauses the test executed for the given time.</doc>
<status status="PASS" start="2026-06-15T03:12:48.328964" elapsed="0.000390"/>
</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-06-15T03:12:48.329866" elapsed="0.000278"/>
</kw>
<status status="PASS" start="2026-06-15T03:12:48.329570" elapsed="0.000646"/>
</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-06-15T03:02:40.908880" elapsed="607.421375"/>
</test>
<test id="s1-t2" name="Cbench Throughput Test" line="51">
<kw name="Log" owner="BuiltIn">
<msg time="2026-06-15T03:12:48.331700" 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-06-15T03:12:48.331314" elapsed="0.000441"/>
</kw>
<kw name="Run Cbench And Log Results">
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-06-15T03:12:48.333007" level="INFO">${output_filename} = throughput.csv</msg>
<arg>${output_filename}</arg>
<doc>Makes a variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-06-15T03:12:48.332678" elapsed="0.000371"/>
</kw>
<if>
<branch type="IF" condition="&quot;${cbench_system}&quot; == &quot;localhost&quot;">
<kw name="Run" owner="OperatingSystem">
<var>${output}</var>
<arg>${cbench_executable} -c ${ODL_SYSTEM_IP} ${cbench_args}</arg>
<doc>_This keyword is considered deprecated. Use the
[http://robotframework.org/robotframework/latest/libraries/Process.html|
Process] library instead._</doc>
<status status="NOT RUN" start="2026-06-15T03:12:48.333400" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-06-15T03:12:48.333180" elapsed="0.000277"/>
</branch>
<branch type="ELSE">
<kw name="Run Command On Remote System" owner="Utils">
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot; and &quot;${return_stderr}&quot;!=&quot;True&quot;">
<kw name="Fail" owner="BuiltIn">
<arg>At least one of {return_stdout} or {return_stderr} args should be set to True</arg>
<doc>Fails the test with the given message and optionally alters its tags.</doc>
<status status="NOT RUN" start="2026-06-15T03:12:48.336343" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-06-15T03:12:48.336075" elapsed="0.000324"/>
</branch>
<status status="PASS" start="2026-06-15T03:12:48.336047" elapsed="0.000375"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-06-15T03:12:48.336742" 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-06-15T03:12:48.336862" 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-06-15T03:12:48.336555" elapsed="0.000334"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-06-15T03:12:48.337453" level="INFO">Attempting to execute command "/usr/local/bin/cbench -c 10.30.170.145 -t -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633" on remote system "10.30.170.225" 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-06-15T03:12:48.337021" elapsed="0.000489"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-06-15T03:12:48.338039" 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-06-15T03:12:48.337646" elapsed="0.000419"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-06-15T03:12:48.338959" level="INFO">Length is 0.</msg>
<msg time="2026-06-15T03:12:48.339047" 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-06-15T03:12:48.338656" elapsed="0.000415"/>
</kw>
<kw name="Run Keyword And Return If" owner="BuiltIn">
<arg>${pwd_length} &gt; 0</arg>
<arg>SSHLibrary.Login</arg>
<arg>${user}</arg>
<arg>${password}</arg>
<arg>delay=${delay}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-06-15T03:12:48.339226" elapsed="0.000347"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-06-15T03:12:48.340432" level="INFO">Logging into '10.30.170.225:22' as 'jenkins'.</msg>
<msg time="2026-06-15T03:12:48.943364" level="INFO">Read output: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-153-generic x86_64)

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

 System information as of Mon Jun 15 03:12:48 UTC 2026

  System load:  1.0                Processes:             103
  Usage of /:   19.5% of 38.58GB   Users logged in:       0
  Memory usage: 4%                 IPv4 address for ens3: 10.30.170.225
  Swap usage:   0%

 * Strictly confined Kubernetes makes edge and IoT secure. Learn how MicroK8s
   just raised the bar for easy, resilient and secure K8s cluster deployment.

   https://ubuntu.com/engage/secure-kubernetes-at-the-edge

Expanded Security Maintenance for Applications is not enabled.

0 updates can be applied immediately.

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


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


Last login: Mon Jun 15 03:02:41 2026 from 10.30.171.112
[?2004h[jenkins@releng-63164-306-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-06-15T03:12:48.340060" elapsed="0.603524"/>
</kw>
<msg time="2026-06-15T03:12:48.943679" 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-06-15T03:12:48.339722" elapsed="0.604049"/>
</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-06-15T03:12:48.338281" elapsed="0.605606"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-06-15T03:12:48.944451" level="INFO">Executing command '/usr/local/bin/cbench -c 10.30.170.145 -t -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633'.</msg>
<msg time="2026-06-15T03:22:55.030315" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-06-15T03:22:55.030909" level="INFO">${stdout} = </msg>
<msg time="2026-06-15T03:22:55.031022" level="INFO">${stderr} = cbench: controller benchmarking tool
   running in mode 'throughput'
   connecting to controller at 10.30.170.145: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-06-15T03:12:48.944112" elapsed="606.086980"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-06-15T03:22:55.031626" elapsed="0.000804"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-06-15T03:22:55.033627" level="INFO">cbench: controller benchmarking tool
   running in mode 'throughput'
   connecting to controller at 10.30.170.145: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.145. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
03:13:54.066 16  switches: flows:  525452 533258 528931 514599 516432 521528 532735 521060 506492 521229 514960 519044 514358 521988 504413 514019  total = 138.508300 per ms 
03:14:54.167 16  switches: flows:  532773 521458 520279 533358 523734 523513 521603 522468 525175 506935 526064 521023 529616 518399 516244 506031  total = 138.911249 per ms 
03:15:54.306 16  switches: flows:  543662 546358 548103 548921 542945 550715 538404 551905 555953 547038 555533 562310 554450 544812 541252 564956  total = 146.285462 per ms 
03:16:54.407 16  switches: flows:  568452 558771 562251 561554 557818 559276 557025 554731 564685 570185 568015 568397 561140 570739 567520 566550  total = 150.033631 per ms 
03:17:54.508 16  switches: flows:  516109 519383 513341 437892 517683 502221 518138 479618 457856 500330 485992 462255 453909 503859 447088 469447  total = 129.533867 per ms 
03:18:54.611 16  switches: flows:  545670 541814 535473 536600 548600 540206 535238 542487 536776 543802 552050 546206 535353 535185 540345 539863  total = 144.016713 per ms 
03:19:54.713 16  switches: flows:  533492 532214 546564 450853 534257 533564 520826 535045 533936 530352 533594 480467 545355 534831 543202 529469  total = 140.063237 per ms 
03:20:54.814 16  switches: flows:  563682 558383 575635 572677 562161 567198 561633 564755 558980 563004 563612 553672 568874 566523 565471 559812  total = 150.182097 per ms 
03:21:54.916 16  switches: flows:  532388 403847 503424 526981 458438 480566 476412 493276 503834 491777 519651 465489 515536 493993 512745 517034  total = 131.368267 per ms 
03:22:55.018 16  switches: flows:  575160 552684 562852 552703 572568 583826 573462 559029 568702 577211 583953 548383 570483 505889 568785 553310  total = 149.895956 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 129533.87/150182.10/142254.50/47997.40 responses/s</msg>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-06-15T03:22:55.032814" elapsed="0.001153"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="PASS" start="2026-06-15T03:22:55.034521" elapsed="0.000074"/>
</return>
<status status="PASS" start="2026-06-15T03:22:55.034201" elapsed="0.000474"/>
</branch>
<status status="PASS" start="2026-06-15T03:22:55.034121" elapsed="0.000610"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="NOT RUN" start="2026-06-15T03:22:55.034937" elapsed="0.000028"/>
</return>
<status status="NOT RUN" start="2026-06-15T03:22:55.034856" elapsed="0.000169"/>
</branch>
<status status="NOT RUN" start="2026-06-15T03:22:55.034822" elapsed="0.000253"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-06-15T03:22:55.035186" elapsed="0.000034"/>
</return>
<kw name="Restore_Current_Ssh_Connection_From_Index" owner="SSHKeywords" type="TEARDOWN">
<kw name="Run Keyword And Return If" owner="BuiltIn">
<arg>${connection_index} is not None</arg>
<arg>SSHLibrary.Switch Connection</arg>
<arg>${connection_index}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-06-15T03:22:55.039020" elapsed="0.000491"/>
</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-06-15T03:22:55.039716" elapsed="0.000239"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-06-15T03:22:55.040157" elapsed="0.000144"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-06-15T03:22:55.035960" elapsed="0.004415"/>
</kw>
<msg time="2026-06-15T03:22:55.040552" level="INFO">${output} = cbench: controller benchmarking tool
   running in mode 'throughput'
   connecting to controller at 10.30.170.145: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-06-15T03:12:48.333786" elapsed="606.706805"/>
</kw>
<status status="PASS" start="2026-06-15T03:12:48.333481" elapsed="606.707178"/>
</branch>
<status status="PASS" start="2026-06-15T03:12:48.333159" elapsed="606.707533"/>
</if>
<kw name="Log" owner="BuiltIn">
<msg time="2026-06-15T03:22:55.041315" level="INFO">cbench: controller benchmarking tool
   running in mode 'throughput'
   connecting to controller at 10.30.170.145: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.145. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
03:13:54.066 16  switches: flows:  525452 533258 528931 514599 516432 521528 532735 521060 506492 521229 514960 519044 514358 521988 504413 514019  total = 138.508300 per ms 
03:14:54.167 16  switches: flows:  532773 521458 520279 533358 523734 523513 521603 522468 525175 506935 526064 521023 529616 518399 516244 506031  total = 138.911249 per ms 
03:15:54.306 16  switches: flows:  543662 546358 548103 548921 542945 550715 538404 551905 555953 547038 555533 562310 554450 544812 541252 564956  total = 146.285462 per ms 
03:16:54.407 16  switches: flows:  568452 558771 562251 561554 557818 559276 557025 554731 564685 570185 568015 568397 561140 570739 567520 566550  total = 150.033631 per ms 
03:17:54.508 16  switches: flows:  516109 519383 513341 437892 517683 502221 518138 479618 457856 500330 485992 462255 453909 503859 447088 469447  total = 129.533867 per ms 
03:18:54.611 16  switches: flows:  545670 541814 535473 536600 548600 540206 535238 542487 536776 543802 552050 546206 535353 535185 540345 539863  total = 144.016713 per ms 
03:19:54.713 16  switches: flows:  533492 532214 546564 450853 534257 533564 520826 535045 533936 530352 533594 480467 545355 534831 543202 529469  total = 140.063237 per ms 
03:20:54.814 16  switches: flows:  563682 558383 575635 572677 562161 567198 561633 564755 558980 563004 563612 553672 568874 566523 565471 559812  total = 150.182097 per ms 
03:21:54.916 16  switches: flows:  532388 403847 503424 526981 458438 480566 476412 493276 503834 491777 519651 465489 515536 493993 512745 517034  total = 131.368267 per ms 
03:22:55.018 16  switches: flows:  575160 552684 562852 552703 572568 583826 573462 559029 568702 577211 583953 548383 570483 505889 568785 553310  total = 149.895956 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 129533.87/150182.10/142254.50/47997.40 responses/s</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-06-15T03:22:55.040885" elapsed="0.000532"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${output}</arg>
<arg>RESULT</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-06-15T03:22:55.041619" elapsed="0.000507"/>
</kw>
<kw name="Get Lines Containing String" owner="String">
<msg time="2026-06-15T03:22:55.042668" level="INFO">1 out of 23 lines matched.</msg>
<msg time="2026-06-15T03:22:55.042793" level="INFO">${result_line} = RESULT: 16 switches 9 tests min/max/avg/stdev = 129533.87/150182.10/142254.50/47997.40 responses/s</msg>
<var>${result_line}</var>
<arg>${output}</arg>
<arg>RESULT</arg>
<doc>Returns lines of the given ``string`` that contain the ``pattern``.</doc>
<status status="PASS" start="2026-06-15T03:22:55.042367" elapsed="0.000460"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-06-15T03:22:55.043410" level="INFO">@{results_list} = [ RESULT: | 16 | switches | 9 | tests | min/max/avg/stdev | = | 129533.87/150182.10/142254.50/47997.40 | responses/s ]</msg>
<var>@{results_list}</var>
<arg>${result_line}</arg>
<doc>Splits the ``string`` using ``separator`` as a delimiter string.</doc>
<status status="PASS" start="2026-06-15T03:22:55.043036" elapsed="0.000411"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-06-15T03:22:55.046347" 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-06-15T03:22:55.043646" elapsed="0.002757"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-06-15T03:22:55.048800" level="INFO">129533.87/150182.10/142254.50/47997.40</msg>
<arg>${results_list[7]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-06-15T03:22:55.046546" elapsed="0.002309"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-06-15T03:22:55.051194" 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-06-15T03:22:55.049003" elapsed="0.002219"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-06-15T03:22:55.053658" level="INFO">@{result_value_list} = [ 129533.87 | 150182.10 | 142254.50 | 47997.40 ]</msg>
<var>@{result_value_list}</var>
<arg>${results_list[7]}</arg>
<arg>/</arg>
<doc>Splits the ``string`` using ``separator`` as a delimiter string.</doc>
<status status="PASS" start="2026-06-15T03:22:55.051409" elapsed="0.002276"/>
</kw>
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-06-15T03:22:55.054158" level="INFO">Length is 4.</msg>
<msg time="2026-06-15T03:22:55.054253" 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-06-15T03:22:55.053838" elapsed="0.000439"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-06-15T03:22:55.059090" level="INFO">min :: 129533.87</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-06-15T03:22:55.054659" elapsed="0.004506"/>
</kw>
<var name="${i}">0</var>
<status status="PASS" start="2026-06-15T03:22:55.054531" elapsed="0.004670"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-06-15T03:22:55.063755" level="INFO">max :: 150182.10</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-06-15T03:22:55.059419" elapsed="0.004393"/>
</kw>
<var name="${i}">1</var>
<status status="PASS" start="2026-06-15T03:22:55.059293" elapsed="0.004553"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-06-15T03:22:55.068497" level="INFO">avg :: 142254.50</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-06-15T03:22:55.064057" elapsed="0.004495"/>
</kw>
<var name="${i}">2</var>
<status status="PASS" start="2026-06-15T03:22:55.063932" elapsed="0.004654"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-06-15T03:22:55.073284" level="INFO">stdev :: 47997.40</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-06-15T03:22:55.068800" elapsed="0.004541"/>
</kw>
<var name="${i}">3</var>
<status status="PASS" start="2026-06-15T03:22:55.068672" elapsed="0.004703"/>
</iter>
<var>${i}</var>
<value>0</value>
<value>${num_stats}</value>
<status status="PASS" start="2026-06-15T03:22:55.054343" elapsed="0.019063"/>
</for>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-06-15T03:22:55.077299" level="INFO">${min} = 129533.87</msg>
<var>${min}</var>
<arg>${result_value_list[${0}]}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-06-15T03:22:55.073561" elapsed="0.003765"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-06-15T03:22:55.081252" level="INFO">${max} = 150182.10</msg>
<var>${max}</var>
<arg>${result_value_list[${1}]}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-06-15T03:22:55.077482" elapsed="0.003797"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-06-15T03:22:55.085126" level="INFO">${average} = 142254.50</msg>
<var>${average}</var>
<arg>${result_value_list[${2}]}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-06-15T03:22:55.081432" elapsed="0.003732"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-06-15T03:22:55.089007" level="INFO">${stdev} = 47997.40</msg>
<var>${stdev}</var>
<arg>${result_value_list[${3}]}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-06-15T03:22:55.085314" elapsed="0.003719"/>
</kw>
<kw name="Get Time" owner="BuiltIn">
<msg time="2026-06-15T03:22:55.089553" level="INFO">${date} = 2026-06-15 03:22:55</msg>
<var>${date}</var>
<arg>d,m,s</arg>
<doc>Returns the given time in the requested format.</doc>
<status status="PASS" start="2026-06-15T03:22:55.089207" elapsed="0.000372"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-06-15T03:22:55.090150" level="INFO">CBench Result: 2026-06-15 03:22:55,-t -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633,129533.87,150182.10,142254.50,47997.40</msg>
<arg>CBench Result: ${date},${cbench_args},${min},${max},${average},${stdev}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-06-15T03:22:55.089730" elapsed="0.000478"/>
</kw>
<kw name="Log Results And Determine Status">
<kw name="Append To File" owner="OperatingSystem">
<msg time="2026-06-15T03:22:55.091260" level="INFO" html="true">Appended to file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-cbench-only-vanadium/throughput.csv"&gt;/w/workspace/openflowplugin-csit-1node-cbench-only-vanadium/throughput.csv&lt;/a&gt;'.</msg>
<arg>${output_file}</arg>
<arg>${min},${max},${average}\n</arg>
<doc>Appends the given content to the specified file.</doc>
<status status="PASS" start="2026-06-15T03:22:55.090831" elapsed="0.000495"/>
</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-06-15T03:22:55.091475" elapsed="0.000456"/>
</kw>
<arg>${min}</arg>
<arg>${max}</arg>
<arg>${average}</arg>
<arg>${average_threshold}</arg>
<arg>${output_filename}</arg>
<status status="PASS" start="2026-06-15T03:22:55.090356" elapsed="0.001640"/>
</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-06-15T03:12:48.332077" elapsed="606.759979"/>
</kw>
<kw name="Sleep" owner="BuiltIn">
<msg time="2026-06-15T03:22:55.092539" level="INFO">Slept 0 seconds.</msg>
<arg>${test_delay}</arg>
<doc>Pauses the test executed for the given time.</doc>
<status status="PASS" start="2026-06-15T03:22:55.092222" elapsed="0.000373"/>
</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-06-15T03:22:55.093159" elapsed="0.000264"/>
</kw>
<status status="PASS" start="2026-06-15T03:22:55.092836" elapsed="0.000658"/>
</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-06-15T03:12:48.330661" elapsed="606.762872"/>
</test>
<test id="s1-t3" name="Rerun Latency Test To Check Bug 6176" line="65">
<kw name="Log" owner="BuiltIn">
<msg time="2026-06-15T03:22:55.095060" 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-06-15T03:22:55.094673" elapsed="0.000446"/>
</kw>
<kw name="Run Cbench And Log Results">
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-06-15T03:22:55.096537" level="INFO">${output_filename} = bug.csv</msg>
<arg>${output_filename}</arg>
<doc>Makes a variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-06-15T03:22:55.096018" elapsed="0.000565"/>
</kw>
<if>
<branch type="IF" condition="&quot;${cbench_system}&quot; == &quot;localhost&quot;">
<kw name="Run" owner="OperatingSystem">
<var>${output}</var>
<arg>${cbench_executable} -c ${ODL_SYSTEM_IP} ${cbench_args}</arg>
<doc>_This keyword is considered deprecated. Use the
[http://robotframework.org/robotframework/latest/libraries/Process.html|
Process] library instead._</doc>
<status status="NOT RUN" start="2026-06-15T03:22:55.096970" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-06-15T03:22:55.096698" elapsed="0.000331"/>
</branch>
<branch type="ELSE">
<kw name="Run Command On Remote System" owner="Utils">
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot; and &quot;${return_stderr}&quot;!=&quot;True&quot;">
<kw name="Fail" owner="BuiltIn">
<arg>At least one of {return_stdout} or {return_stderr} args should be set to True</arg>
<doc>Fails the test with the given message and optionally alters its tags.</doc>
<status status="NOT RUN" start="2026-06-15T03:22:55.100046" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-06-15T03:22:55.099794" elapsed="0.000308"/>
</branch>
<status status="PASS" start="2026-06-15T03:22:55.099775" elapsed="0.000353"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-06-15T03:22:55.100461" 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-06-15T03:22:55.100575" 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-06-15T03:22:55.100275" elapsed="0.000326"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-06-15T03:22:55.101196" level="INFO">Attempting to execute command "/usr/local/bin/cbench -c 10.30.170.145 -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633" on remote system "10.30.170.225" 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-06-15T03:22:55.100732" elapsed="0.000522"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-06-15T03:22:55.101777" 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-06-15T03:22:55.101389" elapsed="0.000414"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-06-15T03:22:55.102695" level="INFO">Length is 0.</msg>
<msg time="2026-06-15T03:22:55.102781" 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-06-15T03:22:55.102387" elapsed="0.000418"/>
</kw>
<kw name="Run Keyword And Return If" owner="BuiltIn">
<arg>${pwd_length} &gt; 0</arg>
<arg>SSHLibrary.Login</arg>
<arg>${user}</arg>
<arg>${password}</arg>
<arg>delay=${delay}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-06-15T03:22:55.102943" elapsed="0.000333"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-06-15T03:22:55.104119" level="INFO">Logging into '10.30.170.225:22' as 'jenkins'.</msg>
<msg time="2026-06-15T03:22:55.671469" level="INFO">Read output: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-153-generic x86_64)

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

 System information as of Mon Jun 15 03:22:55 UTC 2026

  System load:  0.19               Processes:             104
  Usage of /:   19.5% of 38.58GB   Users logged in:       0
  Memory usage: 4%                 IPv4 address for ens3: 10.30.170.225
  Swap usage:   0%

 * Strictly confined Kubernetes makes edge and IoT secure. Learn how MicroK8s
   just raised the bar for easy, resilient and secure K8s cluster deployment.

   https://ubuntu.com/engage/secure-kubernetes-at-the-edge

Expanded Security Maintenance for Applications is not enabled.

0 updates can be applied immediately.

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


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


Last login: Mon Jun 15 03:12:48 2026 from 10.30.171.112
[?2004h[jenkins@releng-63164-306-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-06-15T03:22:55.103764" elapsed="0.567900"/>
</kw>
<msg time="2026-06-15T03:22:55.671750" 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-06-15T03:22:55.103425" elapsed="0.568406"/>
</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-06-15T03:22:55.102002" elapsed="0.569942"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-06-15T03:22:55.672492" level="INFO">Executing command '/usr/local/bin/cbench -c 10.30.170.145 -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633'.</msg>
<msg time="2026-06-15T03:33:01.728607" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-06-15T03:33:01.729049" level="INFO">${stdout} = </msg>
<msg time="2026-06-15T03:33:01.729140" level="INFO">${stderr} = cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.170.145:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with 10...</msg>
<var>${stdout}</var>
<var>${stderr}</var>
<arg>${cmd}</arg>
<arg>return_stderr=True</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-06-15T03:22:55.672178" elapsed="606.057008"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-06-15T03:33:01.729512" elapsed="0.000480"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-06-15T03:33:01.730728" level="INFO">cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.170.145: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.145. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
03:24:00.825 16  switches: flows:  106888 107803 106848 105616 107039 106633 105335 106148 104721 106872 104449 103886 102081 102331 105753 103645  total = 28.100800 per ms 
03:25:00.925 16  switches: flows:  124278 122314 124497 122116 123714 122459 120149 122572 120988 118668 120179 118191 117287 117860 121144 117826  total = 32.183554 per ms 
03:26:01.025 16  switches: flows:  122186 121758 122255 120417 120720 120458 116363 121960 118556 117924 116338 115964 114193 116208 119234 115852  total = 31.620329 per ms 
03:27:01.126 16  switches: flows:  123106 122298 126523 124903 124928 123155 121631 123981 121072 121642 122158 122206 118446 123324 122814 121248  total = 32.669280 per ms 
03:28:01.226 16  switches: flows:  115854 113112 113525 112938 115314 113035 110514 110098 111794 113531 110845 110939 114052 113648 111094 114591  total = 30.031082 per ms 
03:29:01.327 16  switches: flows:  113168 112662 115719 113301 112790 112371 110886 112038 111733 112386 111769 110655 111404 111426 112035 111362  total = 29.878447 per ms 
03:30:01.428 16  switches: flows:  109416 111102 112047 109842 110891 111180 108884 109885 109444 108391 109491 107673 107680 108256 110511 109075  total = 29.180735 per ms 
03:31:01.529 16  switches: flows:  99835 98211 99311 96541 99532 99831 99396 100179 97804 97081 97481 97332 96998 96621 97593 96264  total = 26.123239 per ms 
03:32:01.630 16  switches: flows:  105211 104280 105012 103564 106001 105310 103607 102555 100486 100766 100711 100550 99046 101999 101010 103408  total = 27.346253 per ms 
03:33:01.731 16  switches: flows:  109851 107353 110502 107512 110478 111612 107782 107014 107176 103901 106940 105160 104423 107081 105871 107437  total = 28.620435 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 26123.24/32669.28/29739.26/10126.93 responses/s</msg>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-06-15T03:33:01.730246" elapsed="0.000687"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="PASS" start="2026-06-15T03:33:01.731309" elapsed="0.000051"/>
</return>
<status status="PASS" start="2026-06-15T03:33:01.731062" elapsed="0.000350"/>
</branch>
<status status="PASS" start="2026-06-15T03:33:01.731027" elapsed="0.000420"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="NOT RUN" start="2026-06-15T03:33:01.731575" elapsed="0.000017"/>
</return>
<status status="NOT RUN" start="2026-06-15T03:33:01.731527" elapsed="0.000103"/>
</branch>
<status status="NOT RUN" start="2026-06-15T03:33:01.731505" elapsed="0.000155"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-06-15T03:33:01.731702" elapsed="0.000018"/>
</return>
<kw name="Restore_Current_Ssh_Connection_From_Index" owner="SSHKeywords" type="TEARDOWN">
<kw name="Run Keyword And Return If" owner="BuiltIn">
<arg>${connection_index} is not None</arg>
<arg>SSHLibrary.Switch Connection</arg>
<arg>${connection_index}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-06-15T03:33:01.735463" elapsed="0.000463"/>
</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-06-15T03:33:01.736148" elapsed="0.000222"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-06-15T03:33:01.736548" elapsed="0.000176"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-06-15T03:33:01.732158" elapsed="0.004642"/>
</kw>
<msg time="2026-06-15T03:33:01.736988" level="INFO">${output} = cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.170.145:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with 10...</msg>
<var>${output}</var>
<arg>${cbench_system}</arg>
<arg>${cbench_executable} -c ${ODL_SYSTEM_IP} ${cbench_args}</arg>
<arg>prompt_timeout=${test_timeout}</arg>
<arg>return_stdout=False</arg>
<arg>return_stderr=True</arg>
<doc>Reduces the common work of running a command on a remote system to a single higher level
robot keyword, taking care to log in with a public key and. The command given is written and the return value
depends on the passed argument values of return_stdout (default: True) and return_stderr (default: False).
At least one should be True, or the keyword will exit and FAIL. If both are True, the resulting return value
will be a two element list containing both. Otherwise the resulting return value is a string.
No test conditions are checked.</doc>
<status status="PASS" start="2026-06-15T03:22:55.097390" elapsed="606.639635"/>
</kw>
<status status="PASS" start="2026-06-15T03:22:55.097054" elapsed="606.640040"/>
</branch>
<status status="PASS" start="2026-06-15T03:22:55.096675" elapsed="606.640470"/>
</if>
<kw name="Log" owner="BuiltIn">
<msg time="2026-06-15T03:33:01.737751" level="INFO">cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.170.145: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.145. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
03:24:00.825 16  switches: flows:  106888 107803 106848 105616 107039 106633 105335 106148 104721 106872 104449 103886 102081 102331 105753 103645  total = 28.100800 per ms 
03:25:00.925 16  switches: flows:  124278 122314 124497 122116 123714 122459 120149 122572 120988 118668 120179 118191 117287 117860 121144 117826  total = 32.183554 per ms 
03:26:01.025 16  switches: flows:  122186 121758 122255 120417 120720 120458 116363 121960 118556 117924 116338 115964 114193 116208 119234 115852  total = 31.620329 per ms 
03:27:01.126 16  switches: flows:  123106 122298 126523 124903 124928 123155 121631 123981 121072 121642 122158 122206 118446 123324 122814 121248  total = 32.669280 per ms 
03:28:01.226 16  switches: flows:  115854 113112 113525 112938 115314 113035 110514 110098 111794 113531 110845 110939 114052 113648 111094 114591  total = 30.031082 per ms 
03:29:01.327 16  switches: flows:  113168 112662 115719 113301 112790 112371 110886 112038 111733 112386 111769 110655 111404 111426 112035 111362  total = 29.878447 per ms 
03:30:01.428 16  switches: flows:  109416 111102 112047 109842 110891 111180 108884 109885 109444 108391 109491 107673 107680 108256 110511 109075  total = 29.180735 per ms 
03:31:01.529 16  switches: flows:  99835 98211 99311 96541 99532 99831 99396 100179 97804 97081 97481 97332 96998 96621 97593 96264  total = 26.123239 per ms 
03:32:01.630 16  switches: flows:  105211 104280 105012 103564 106001 105310 103607 102555 100486 100766 100711 100550 99046 101999 101010 103408  total = 27.346253 per ms 
03:33:01.731 16  switches: flows:  109851 107353 110502 107512 110478 111612 107782 107014 107176 103901 106940 105160 104423 107081 105871 107437  total = 28.620435 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 26123.24/32669.28/29739.26/10126.93 responses/s</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-06-15T03:33:01.737349" elapsed="0.000476"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${output}</arg>
<arg>RESULT</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-06-15T03:33:01.737973" elapsed="0.000390"/>
</kw>
<kw name="Get Lines Containing String" owner="String">
<msg time="2026-06-15T03:33:01.738753" level="INFO">1 out of 23 lines matched.</msg>
<msg time="2026-06-15T03:33:01.738845" level="INFO">${result_line} = RESULT: 16 switches 9 tests min/max/avg/stdev = 26123.24/32669.28/29739.26/10126.93 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-06-15T03:33:01.738522" elapsed="0.000347"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-06-15T03:33:01.739294" level="INFO">@{results_list} = [ RESULT: | 16 | switches | 9 | tests | min/max/avg/stdev | = | 26123.24/32669.28/29739.26/10126.93 | 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-06-15T03:33:01.739022" elapsed="0.000299"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-06-15T03:33:01.741694" 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-06-15T03:33:01.739464" elapsed="0.002286"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-06-15T03:33:01.744086" level="INFO">26123.24/32669.28/29739.26/10126.93</msg>
<arg>${results_list[7]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-06-15T03:33:01.741893" elapsed="0.002263"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-06-15T03:33:01.746496" 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-06-15T03:33:01.744305" elapsed="0.002218"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-06-15T03:33:01.748926" level="INFO">@{result_value_list} = [ 26123.24 | 32669.28 | 29739.26 | 10126.93 ]</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-06-15T03:33:01.746713" elapsed="0.002239"/>
</kw>
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-06-15T03:33:01.749424" level="INFO">Length is 4.</msg>
<msg time="2026-06-15T03:33:01.749510" 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-06-15T03:33:01.749105" elapsed="0.000429"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-06-15T03:33:01.754169" level="INFO">min :: 26123.24</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-06-15T03:33:01.749910" elapsed="0.004315"/>
</kw>
<var name="${i}">0</var>
<status status="PASS" start="2026-06-15T03:33:01.749783" elapsed="0.004476"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-06-15T03:33:01.758698" level="INFO">max :: 32669.28</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-06-15T03:33:01.754469" elapsed="0.004284"/>
</kw>
<var name="${i}">1</var>
<status status="PASS" start="2026-06-15T03:33:01.754345" elapsed="0.004442"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-06-15T03:33:01.763243" level="INFO">avg :: 29739.26</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-06-15T03:33:01.758991" elapsed="0.004307"/>
</kw>
<var name="${i}">2</var>
<status status="PASS" start="2026-06-15T03:33:01.758868" elapsed="0.004465"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-06-15T03:33:01.767868" level="INFO">stdev :: 10126.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-06-15T03:33:01.763538" elapsed="0.004387"/>
</kw>
<var name="${i}">3</var>
<status status="PASS" start="2026-06-15T03:33:01.763415" elapsed="0.004544"/>
</iter>
<var>${i}</var>
<value>0</value>
<value>${num_stats}</value>
<status status="PASS" start="2026-06-15T03:33:01.749600" elapsed="0.018389"/>
</for>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-06-15T03:33:01.772003" level="INFO">${min} = 26123.24</msg>
<var>${min}</var>
<arg>${result_value_list[${0}]}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-06-15T03:33:01.768160" elapsed="0.003869"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-06-15T03:33:01.776006" level="INFO">${max} = 32669.28</msg>
<var>${max}</var>
<arg>${result_value_list[${1}]}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-06-15T03:33:01.772220" elapsed="0.003812"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-06-15T03:33:01.780364" level="INFO">${average} = 29739.26</msg>
<var>${average}</var>
<arg>${result_value_list[${2}]}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-06-15T03:33:01.776200" elapsed="0.004192"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-06-15T03:33:01.784377" level="INFO">${stdev} = 10126.93</msg>
<var>${stdev}</var>
<arg>${result_value_list[${3}]}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-06-15T03:33:01.780544" elapsed="0.003871"/>
</kw>
<kw name="Get Time" owner="BuiltIn">
<msg time="2026-06-15T03:33:01.784968" level="INFO">${date} = 2026-06-15 03: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-06-15T03:33:01.784584" elapsed="0.000421"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-06-15T03:33:01.785599" level="INFO">CBench Result: 2026-06-15 03:33:01,-m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633,26123.24,32669.28,29739.26,10126.93</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-06-15T03:33:01.785188" elapsed="0.000484"/>
</kw>
<kw name="Log Results And Determine Status">
<kw name="Append To File" owner="OperatingSystem">
<msg time="2026-06-15T03:33:01.786818" level="INFO" html="true">Appended to file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-cbench-only-vanadium/bug.csv"&gt;/w/workspace/openflowplugin-csit-1node-cbench-only-vanadium/bug.csv&lt;/a&gt;'.</msg>
<arg>${output_file}</arg>
<arg>${min},${max},${average}\n</arg>
<doc>Appends the given content to the specified file.</doc>
<status status="PASS" start="2026-06-15T03:33:01.786321" elapsed="0.000565"/>
</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-06-15T03:33:01.787037" elapsed="0.000495"/>
</kw>
<arg>${min}</arg>
<arg>${max}</arg>
<arg>${average}</arg>
<arg>${average_threshold}</arg>
<arg>${output_filename}</arg>
<status status="PASS" start="2026-06-15T03:33:01.785822" elapsed="0.001775"/>
</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-06-15T03:22:55.095471" elapsed="606.692184"/>
</kw>
<kw name="Sleep" owner="BuiltIn">
<msg time="2026-06-15T03:33:01.788157" level="INFO">Slept 0 seconds.</msg>
<arg>${test_delay}</arg>
<doc>Pauses the test executed for the given time.</doc>
<status status="PASS" start="2026-06-15T03:33:01.787806" elapsed="0.000412"/>
</kw>
<kw name="Report Failure Due To Bug" owner="Utils" type="TEARDOWN">
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-06-15T03:33:01.789555" 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-06-15T03:33:01.789025" elapsed="0.000557"/>
</kw>
<if>
<branch type="IF" condition="('${TEST_STATUS}' != 'FAIL') or ${test_skipped}">
<return>
<status status="PASS" start="2026-06-15T03:33:01.789821" elapsed="0.000031"/>
</return>
<status status="PASS" start="2026-06-15T03:33:01.789672" elapsed="0.000212"/>
</branch>
<status status="PASS" start="2026-06-15T03:33:01.789651" elapsed="0.000257"/>
</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-06-15T03:33:01.790049" elapsed="0.000021"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<var>${match}</var>
<arg>Should Contain</arg>
<arg>${number}</arg>
<arg>-</arg>
<doc>Runs the specified keyword and returns the status as a Boolean value.</doc>
<status status="NOT RUN" start="2026-06-15T03:33:01.790223" elapsed="0.000020"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<var>${bug_url}</var>
<arg>${match}</arg>
<arg>https://jira.opendaylight.org/browse/${number}</arg>
<arg>https://bugs.opendaylight.org/show_bug.cgi?id=${number}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="NOT RUN" start="2026-06-15T03:33:01.790381" elapsed="0.000020"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<var>${msg}</var>
<arg>This test fails due to ${bug_url}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="NOT RUN" start="2026-06-15T03:33:01.790602" elapsed="0.000022"/>
</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-06-15T03:33:01.790753" elapsed="0.000019"/>
</kw>
<kw name="Set Test Message" owner="BuiltIn">
<arg>${msg}${newline}${newline}${TEST_MESSAGE}</arg>
<doc>Sets message for the current test case.</doc>
<status status="NOT RUN" start="2026-06-15T03:33:01.790895" elapsed="0.000019"/>
</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-06-15T03:33:01.791036" elapsed="0.000023"/>
</kw>
<if>
<branch type="IF" condition="&quot;${include_bug_in_tags}&quot;==&quot;True&quot;">
<kw name="Set Tags" owner="BuiltIn">
<arg>${bug_url}</arg>
<doc>Adds given ``tags`` for the current test or all tests in a suite.</doc>
<status status="NOT RUN" start="2026-06-15T03:33:01.791289" elapsed="0.000019"/>
</kw>
<status status="NOT RUN" start="2026-06-15T03:33:01.791151" elapsed="0.000189"/>
</branch>
<status status="NOT RUN" start="2026-06-15T03:33:01.791132" elapsed="0.000230"/>
</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-06-15T03:33:01.788655" elapsed="0.002758"/>
</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-06-15T03:22:55.094068" elapsed="606.697390"/>
</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-06-15T03:02:38.256971" elapsed="1823.535281"/>
</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>
