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

[?1h=[90m~[0m                                                                                [?2004hopendaylight-user</msg>
<arg>${KARAF_USER}</arg>
<arg>${KARAF_PASSWORD}</arg>
<arg>loglevel=${loglevel}</arg>
<doc>Logs into the SSH server with the given ``username`` and ``password``.</doc>
<status status="PASS" start="2026-09-01T01:08:51.008094" elapsed="0.965773"/>
</kw>
<kw name="Write" owner="SSHLibrary">
<msg time="2026-09-01T01:08:52.023842" level="INFO">@root&gt;log:set ERROR</msg>
<arg>${cmd}</arg>
<doc>Writes the given ``text`` on the remote machine and appends a newline.</doc>
<status status="PASS" start="2026-09-01T01:08:51.974139" elapsed="0.049825"/>
</kw>
<kw name="Read Until Regexp" owner="SSHLibrary">
<msg time="2026-09-01T01:08:52.025867" level="INFO">[?1l&gt;[?2004l[?1h=[90m~[0m                                                                                [?2004hopendaylight-user@root&gt;</msg>
<msg time="2026-09-01T01:08:52.025981" level="INFO">${output} = [?1l&gt;[?2004l[?1h=[90m~[0m                                                                                [?2004hopendaylight-user@root&gt;</msg>
<var>${output}</var>
<arg>${KARAF_PROMPT}</arg>
<doc>Consumes and returns the server output until a match to ``regexp`` is found.</doc>
<status status="PASS" start="2026-09-01T01:08:52.024201" elapsed="0.001808"/>
</kw>
<kw name="Write Bare" owner="SSHLibrary">
<arg>logout\n</arg>
<doc>Writes the given ``text`` on the remote machine without appending a newline.</doc>
<status status="PASS" start="2026-09-01T01:08:52.026155" elapsed="0.000224"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-09-01T01:08:52.026527" elapsed="0.000211"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-01T01:08:52.027226" level="INFO">[?1l&gt;[?2004l[?1h=[90m~[0m                                                                                [?2004hopendaylight-user@root&gt;</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-01T01:08:52.026881" elapsed="0.000396"/>
</kw>
<return>
<value>${output}</value>
<status status="PASS" start="2026-09-01T01:08:52.027326" elapsed="0.000046"/>
</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.65
Note that this keyword will open&amp;close new SSH connection, without switching back to previously current session.</doc>
<status status="PASS" start="2026-09-01T01:08:51.006485" elapsed="1.020995"/>
</kw>
<arg>3x</arg>
<arg>1s</arg>
<arg>KarafKeywords.Issue Command On Karaf Console</arg>
<arg>log:set ${log_level}</arg>
<doc>Runs the specified keyword and retries if it fails.</doc>
<status status="PASS" start="2026-09-01T01:08:51.002856" elapsed="1.024681"/>
</kw>
<kw name="Append To File" owner="OperatingSystem">
<msg time="2026-09-01T01:08:52.028067" level="INFO" html="true">Appended to file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-cbench-only-manganese/latency.csv"&gt;/w/workspace/openflowplugin-csit-1node-cbench-only-manganese/latency.csv&lt;/a&gt;'.</msg>
<arg>${latency_results_file}</arg>
<arg>LATENCY_MIN,LATENCY_MAX,LATENCY_AVERAGE\n</arg>
<doc>Appends the given content to the specified file.</doc>
<status status="PASS" start="2026-09-01T01:08:52.027702" elapsed="0.000416"/>
</kw>
<kw name="Append To File" owner="OperatingSystem">
<msg time="2026-09-01T01:08:52.028547" level="INFO" html="true">Appended to file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-cbench-only-manganese/throughput.csv"&gt;/w/workspace/openflowplugin-csit-1node-cbench-only-manganese/throughput.csv&lt;/a&gt;'.</msg>
<arg>${throughput_results_file}</arg>
<arg>THROUGHPUT_MIN,THROUGHPUT_MAX,THROUGHPUT_AVERAGE\n</arg>
<doc>Appends the given content to the specified file.</doc>
<status status="PASS" start="2026-09-01T01:08:52.028290" elapsed="0.000320"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-09-01T01:08:52.029155" level="INFO">${duration_in_ms} = 60000</msg>
<var>${duration_in_ms}</var>
<arg>${duration_in_secs} * 1000</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-09-01T01:08:52.028756" elapsed="0.000445"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-09-01T01:08:52.029723" level="INFO">${duration_in_ms} = 60000</msg>
<arg>${duration_in_ms}</arg>
<doc>Makes a variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-09-01T01:08:52.029358" elapsed="0.000405"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-09-01T01:08:52.030380" level="INFO">${test_timeout} = 900.0</msg>
<var>${test_timeout}</var>
<arg>(${loops} * ${duration_in_secs}) * 1.5</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-09-01T01:08:52.029994" elapsed="0.000412"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-09-01T01:08:52.030844" level="INFO">${test_timeout} = 900.0</msg>
<arg>${test_timeout}</arg>
<doc>Makes a variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-09-01T01:08:52.030555" elapsed="0.000328"/>
</kw>
<if>
<branch type="IF" condition="&quot;${cbench_system}&quot; == &quot;localhost&quot;">
<kw name="File Should Exist" owner="OperatingSystem">
<arg>${cbench_executable}</arg>
<doc>Fails unless the given ``path`` points to an existing file.</doc>
<status status="NOT RUN" start="2026-09-01T01:08:52.031212" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-09-01T01:08:52.030994" elapsed="0.000271"/>
</branch>
<branch type="ELSE">
<kw name="Verify File Exists On Remote System" owner="Utils">
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-09-01T01:08:52.035569" level="INFO">${conn_id} = 2</msg>
<var>${conn_id}</var>
<arg>${system}</arg>
<arg>prompt=${prompt}</arg>
<arg>timeout=${prompt_timeout}</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-09-01T01:08:52.035159" elapsed="0.000434"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-09-01T01:08:52.036616" level="INFO">Length is 0.</msg>
<msg time="2026-09-01T01:08:52.036698" level="INFO">${pwd_length} = 0</msg>
<var>${pwd_length}</var>
<arg>${password}</arg>
<doc>Returns and logs the length of the given item as an integer.</doc>
<status status="PASS" start="2026-09-01T01:08:52.036145" elapsed="0.000583"/>
</kw>
<kw name="Run Keyword And Return If" owner="BuiltIn">
<arg>${pwd_length} &gt; 0</arg>
<arg>SSHLibrary.Login</arg>
<arg>${user}</arg>
<arg>${password}</arg>
<arg>delay=${delay}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-09-01T01:08:52.036868" elapsed="0.000384"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-09-01T01:08:52.038250" level="INFO">Logging into '10.30.170.133:22' as 'jenkins'.</msg>
<msg time="2026-09-01T01:08:52.510047" level="INFO">Read output: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-186-generic x86_64)

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

 System information as of Tue Sep  1 01:08:21 UTC 2026

  System load:  0.11               Processes:             110
  Usage of /:   19.7% of 38.58GB   Users logged in:       0
  Memory usage: 4%                 IPv4 address for ens3: 10.30.170.133
  Swap usage:   0%


Expanded Security Maintenance for Applications is not enabled.

0 updates can be applied immediately.

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


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


[?2004h[jenkins@releng-50965-32-1-mininet-ovs-217-0 ~]&gt;</msg>
<arg>${user}</arg>
<arg>${USER_HOME}/.ssh/${SSH_KEY}</arg>
<arg>${KEYFILE_PASS}</arg>
<arg>delay=${delay}</arg>
<doc>Logs into the SSH server using key-based authentication.</doc>
<status status="PASS" start="2026-09-01T01:08:52.037734" elapsed="0.472473"/>
</kw>
<msg time="2026-09-01T01:08:52.510291" level="INFO">Returning from the enclosing user keyword.</msg>
<arg>SSHLibrary.Login With Public Key</arg>
<arg>${user}</arg>
<arg>${USER_HOME}/.ssh/${SSH_KEY}</arg>
<arg>${KEYFILE_PASS}</arg>
<arg>delay=${delay}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-09-01T01:08:52.037404" elapsed="0.472968"/>
</kw>
<arg>${user}</arg>
<arg>${password}</arg>
<doc>On active SSH session: if given non-empty password, do Login, else do Login With Public Key.</doc>
<status status="PASS" start="2026-09-01T01:08:52.035785" elapsed="0.474692"/>
</kw>
<kw name="File Should Exist" owner="SSHLibrary">
<msg time="2026-09-01T01:08:52.520323" level="INFO">[chan 1] Opened sftp connection (server version 3)</msg>
<arg>${file}</arg>
<doc>Fails if the given ``path`` does NOT point to an existing file.</doc>
<status status="PASS" start="2026-09-01T01:08:52.510663" elapsed="0.011550"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-09-01T01:08:52.522513" elapsed="0.000430"/>
</kw>
<arg>${cbench_system}</arg>
<arg>${cbench_executable}</arg>
<doc>Will create connection with public key and will PASS if the given ${file} exists,
otherwise will FAIL</doc>
<status status="PASS" start="2026-09-01T01:08:52.034606" elapsed="0.488435"/>
</kw>
<status status="PASS" start="2026-09-01T01:08:52.031444" elapsed="0.491644"/>
</branch>
<status status="PASS" start="2026-09-01T01:08:52.030968" elapsed="0.492159"/>
</if>
<kw name="Should Be True" owner="BuiltIn">
<arg>${loops} &gt;= 2</arg>
<arg>If number of loops is less than 2, cbench will not run</arg>
<doc>Fails if the given condition is not true.</doc>
<status status="PASS" start="2026-09-01T01:08:52.523341" elapsed="0.000646"/>
</kw>
<kw name="Verify_Feature_Is_Installed" owner="KarafKeywords">
<if>
<branch type="IF" condition="'${IS_KARAF_APPL}' == 'False'">
<return>
<value>Not A Karaf App</value>
<status status="NOT RUN" start="2026-09-01T01:08:52.529845" elapsed="0.000026"/>
</return>
<status status="NOT RUN" start="2026-09-01T01:08:52.529672" elapsed="0.000274"/>
</branch>
<status status="PASS" start="2026-09-01T01:08:52.529638" elapsed="0.000355"/>
</if>
<kw name="Issue_Command_On_Karaf_Console" owner="KarafKeywords">
<if>
<branch type="IF" condition="'${IS_KARAF_APPL}' == 'False'">
<return>
<value>Not A Karaf App</value>
<status status="NOT RUN" start="2026-09-01T01:08:52.536071" elapsed="0.000019"/>
</return>
<status status="NOT RUN" start="2026-09-01T01:08:52.535894" elapsed="0.000238"/>
</branch>
<status status="PASS" start="2026-09-01T01:08:52.535869" elapsed="0.000291"/>
</if>
<kw name="Open Connection" owner="SSHLibrary">
<arg>${controller}</arg>
<arg>port=${karaf_port}</arg>
<arg>prompt=${KARAF_PROMPT_LOGIN}</arg>
<arg>timeout=${timeout}</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-09-01T01:08:52.536359" elapsed="0.000561"/>
</kw>
<kw name="Login" owner="SSHLibrary">
<msg time="2026-09-01T01:08:52.537521" level="INFO">Logging into '10.30.170.65:8101' as 'karaf'.</msg>
<msg time="2026-09-01T01:08:52.749842" level="INFO">Read output: [33m                                                                                           
[33m    ________                       ________                .__  .__       .__     __       
[33m    \_____  \ ______   ____   ____ \______ \ _____  ___.__.|  | |__| ____ |  |___/  |_     
[33m     /   |   \\____ \_/ __ \ /    \ |    |  \\__  \&lt;   |  ||  | |  |/ ___\|  |  \   __\    
[33m    /    |    \  |_&gt; &gt;  ___/|   |  \|    `   \/ __ \\___  ||  |_|  / /_/  &gt;   Y  \  |      
[33m    \_______  /   __/ \___  &gt;___|  /_______  (____  / ____||____/__\___  /|___|  /__|      
[33m            \/|__|        \/     \/        \/     \/\/            /_____/      \/          
[33m                                                                                           

Hit '[1m&lt;tab&gt;[0m' for a list of available commands
and '[1m[cmd] --help[0m' for help on a specific command.
Hit '[1m&lt;ctrl-d&gt;[0m' or type '[1msystem:shutdown[0m' or '[1mlogout[0m' to shutdown OpenDaylight.

[?1h=[90m~[0m                                                                                [?2004hopendaylight-user</msg>
<arg>${KARAF_USER}</arg>
<arg>${KARAF_PASSWORD}</arg>
<arg>loglevel=${loglevel}</arg>
<doc>Logs into the SSH server with the given ``username`` and ``password``.</doc>
<status status="PASS" start="2026-09-01T01:08:52.537157" elapsed="0.212853"/>
</kw>
<kw name="Write" owner="SSHLibrary">
<msg time="2026-09-01T01:08:52.845555" level="INFO">@root&gt;feature:list -i | 0[C 0g[Krep odl-openflowplugin-drop-test</msg>
<arg>${cmd}</arg>
<doc>Writes the given ``text`` on the remote machine and appends a newline.</doc>
<status status="PASS" start="2026-09-01T01:08:52.750267" elapsed="0.095435"/>
</kw>
<kw name="Read Until Regexp" owner="SSHLibrary">
<msg time="2026-09-01T01:08:52.855211" 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-09-01T01:08:52.855395" 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-09-01T01:08:52.845966" elapsed="0.009458"/>
</kw>
<kw name="Write Bare" owner="SSHLibrary">
<arg>logout\n</arg>
<doc>Writes the given ``text`` on the remote machine without appending a newline.</doc>
<status status="PASS" start="2026-09-01T01:08:52.855554" elapsed="0.000188"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-09-01T01:08:52.855875" elapsed="0.000221"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-01T01:08:52.856573" 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-09-01T01:08:52.856247" elapsed="0.000380"/>
</kw>
<return>
<value>${output}</value>
<status status="PASS" start="2026-09-01T01:08:52.856675" elapsed="0.000049"/>
</return>
<msg time="2026-09-01T01:08:52.856862" 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.65
Note that this keyword will open&amp;close new SSH connection, without switching back to previously current session.</doc>
<status status="PASS" start="2026-09-01T01:08:52.535450" elapsed="0.321441"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${output}</arg>
<arg>${feature_name}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-01T01:08:52.857077" elapsed="0.000513"/>
</kw>
<return>
<value>${output}</value>
<status status="PASS" start="2026-09-01T01:08:52.857639" elapsed="0.000032"/>
</return>
<arg>odl-openflowplugin-drop-test</arg>
<doc>Will Succeed if the given ${feature_name} is found in the output of "feature:list -i"</doc>
<status status="PASS" start="2026-09-01T01:08:52.529256" elapsed="0.328505"/>
</kw>
<kw name="Issue_Command_On_Karaf_Console" owner="KarafKeywords">
<if>
<branch type="IF" condition="'${IS_KARAF_APPL}' == 'False'">
<return>
<value>Not A Karaf App</value>
<status status="NOT RUN" start="2026-09-01T01:08:52.861885" elapsed="0.000034"/>
</return>
<status status="NOT RUN" start="2026-09-01T01:08:52.861751" elapsed="0.000208"/>
</branch>
<status status="PASS" start="2026-09-01T01:08:52.861725" elapsed="0.000256"/>
</if>
<kw name="Open Connection" owner="SSHLibrary">
<arg>${controller}</arg>
<arg>port=${karaf_port}</arg>
<arg>prompt=${KARAF_PROMPT_LOGIN}</arg>
<arg>timeout=${timeout}</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-09-01T01:08:52.862139" elapsed="0.000467"/>
</kw>
<kw name="Login" owner="SSHLibrary">
<msg time="2026-09-01T01:08:52.863011" level="INFO">Logging into '10.30.170.65:8101' as 'karaf'.</msg>
<msg time="2026-09-01T01:08:53.047859" level="INFO">Read output: [33m                                                                                           
[33m    ________                       ________                .__  .__       .__     __       
[33m    \_____  \ ______   ____   ____ \______ \ _____  ___.__.|  | |__| ____ |  |___/  |_     
[33m     /   |   \\____ \_/ __ \ /    \ |    |  \\__  \&lt;   |  ||  | |  |/ ___\|  |  \   __\    
[33m    /    |    \  |_&gt; &gt;  ___/|   |  \|    `   \/ __ \\___  ||  |_|  / /_/  &gt;   Y  \  |      
[33m    \_______  /   __/ \___  &gt;___|  /_______  (____  / ____||____/__\___  /|___|  /__|      
[33m            \/|__|        \/     \/        \/     \/\/            /_____/      \/          
[33m                                                                                           

Hit '[1m&lt;tab&gt;[0m' for a list of available commands
and '[1m[cmd] --help[0m' for help on a specific command.
Hit '[1m&lt;ctrl-d&gt;[0m' or type '[1msystem:shutdown[0m' or '[1mlogout[0m' to shutdown OpenDaylight.

[?1h=[90m~[0m                                                                                [?2004hopendaylight-user</msg>
<arg>${KARAF_USER}</arg>
<arg>${KARAF_PASSWORD}</arg>
<arg>loglevel=${loglevel}</arg>
<doc>Logs into the SSH server with the given ``username`` and ``password``.</doc>
<status status="PASS" start="2026-09-01T01:08:52.862745" elapsed="0.185309"/>
</kw>
<kw name="Write" owner="SSHLibrary">
<msg time="2026-09-01T01:08:53.072004" level="INFO">@root&gt;dropallpacketsrpc on</msg>
<arg>${cmd}</arg>
<doc>Writes the given ``text`` on the remote machine and appends a newline.</doc>
<status status="PASS" start="2026-09-01T01:08:53.048296" elapsed="0.023839"/>
</kw>
<kw name="Read Until Regexp" owner="SSHLibrary">
<msg time="2026-09-01T01:08:53.074328" level="INFO">[?1l&gt;[?2004lDropAllFlows transitions to on
[?1h=[90m~[0m                                                                                [?2004hopendaylight-user@root&gt;</msg>
<msg time="2026-09-01T01:08:53.074438" level="INFO">${output} = [?1l&gt;[?2004lDropAllFlows transitions to on
[?1h=[90m~[0m                                                                                [?2004hopendaylight-user@root&gt;</msg>
<var>${output}</var>
<arg>${KARAF_PROMPT}</arg>
<doc>Consumes and returns the server output until a match to ``regexp`` is found.</doc>
<status status="PASS" start="2026-09-01T01:08:53.072397" elapsed="0.002070"/>
</kw>
<kw name="Write Bare" owner="SSHLibrary">
<arg>logout\n</arg>
<doc>Writes the given ``text`` on the remote machine without appending a newline.</doc>
<status status="PASS" start="2026-09-01T01:08:53.074591" elapsed="0.000404"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-09-01T01:08:53.075146" elapsed="0.000197"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-01T01:08:53.075949" level="INFO">[?1l&gt;[?2004lDropAllFlows transitions to on
[?1h=[90m~[0m                                                                                [?2004hopendaylight-user@root&gt;</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-01T01:08:53.075476" elapsed="0.000519"/>
</kw>
<return>
<value>${output}</value>
<status status="PASS" start="2026-09-01T01:08:53.076043" elapsed="0.000047"/>
</return>
<arg>dropallpacketsrpc on</arg>
<doc>Will execute the given ${cmd} by ssh'ing to the karaf console running on 10.30.170.65
Note that this keyword will open&amp;close new SSH connection, without switching back to previously current session.</doc>
<status status="PASS" start="2026-09-01T01:08:52.861362" elapsed="0.214843"/>
</kw>
<status status="PASS" start="2026-09-01T01:08:51.000966" elapsed="2.075298"/>
</kw>
<test id="s1-t1" name="Cbench Latency Test" line="37">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-01T01:08:53.078137" level="INFO">Cbench tests using 10 iterations of 60 second tests. Switch Count: 16. Unique MACS to cycle: 100</msg>
<arg>Cbench tests using ${loops} iterations of ${duration_in_secs} second tests. Switch Count: ${switch_count}. Unique MACS to cycle: ${num_of_unique_macs}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-01T01:08:53.076997" elapsed="0.001216"/>
</kw>
<kw name="Run Cbench And Log Results">
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-09-01T01:08:53.079688" level="INFO">${output_filename} = latency.csv</msg>
<arg>${output_filename}</arg>
<doc>Makes a variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-09-01T01:08:53.079158" elapsed="0.000579"/>
</kw>
<if>
<branch type="IF" condition="&quot;${cbench_system}&quot; == &quot;localhost&quot;">
<kw name="Run" owner="OperatingSystem">
<var>${output}</var>
<arg>${cbench_executable} -c ${ODL_SYSTEM_IP} ${cbench_args}</arg>
<doc>_This keyword is considered deprecated. Use the
[http://robotframework.org/robotframework/latest/libraries/Process.html|
Process] library instead._</doc>
<status status="NOT RUN" start="2026-09-01T01:08:53.080056" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-09-01T01:08:53.079810" elapsed="0.000300"/>
</branch>
<branch type="ELSE">
<kw name="Run Command On Remote System" owner="Utils">
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot; and &quot;${return_stderr}&quot;!=&quot;True&quot;">
<kw name="Fail" owner="BuiltIn">
<arg>At least one of {return_stdout} or {return_stderr} args should be set to True</arg>
<doc>Fails the test with the given message and optionally alters its tags.</doc>
<status status="NOT RUN" start="2026-09-01T01:08:53.082942" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-09-01T01:08:53.082697" elapsed="0.000297"/>
</branch>
<status status="PASS" start="2026-09-01T01:08:53.082677" elapsed="0.000340"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-09-01T01:08:53.083335" level="INFO">index=None
host=None
alias=None
port=22
timeout=3 seconds
newline=

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

prompt=None
term_type=vt100
width=80
height=24
path_separator=/
encoding=utf8
escape_ansi=False
encoding_errors=strict</msg>
<var>${current_ssh_connection}</var>
<doc>Returns information about the connection.</doc>
<status status="PASS" start="2026-09-01T01:08:53.083136" elapsed="0.000333"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-01T01:08:53.083985" level="INFO">Attempting to execute command "/usr/local/bin/cbench -c 10.30.170.65 -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633" on remote system "10.30.170.133" by user "jenkins" with keyfile pass "any" and prompt "&gt;" and password ""</msg>
<arg>Attempting to execute command "${cmd}" on remote system "${system}" by user "${user}" with keyfile pass "${keyfile_pass}" and prompt "${prompt}" and password "${password}"</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-01T01:08:53.083590" elapsed="0.000450"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-09-01T01:08:53.084598" level="INFO">${conn_id} = 5</msg>
<var>${conn_id}</var>
<arg>${system}</arg>
<arg>prompt=${prompt}</arg>
<arg>timeout=${prompt_timeout}</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-09-01T01:08:53.084181" elapsed="0.000441"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-09-01T01:08:53.085461" level="INFO">Length is 0.</msg>
<msg time="2026-09-01T01:08:53.085543" level="INFO">${pwd_length} = 0</msg>
<var>${pwd_length}</var>
<arg>${password}</arg>
<doc>Returns and logs the length of the given item as an integer.</doc>
<status status="PASS" start="2026-09-01T01:08:53.085151" elapsed="0.000413"/>
</kw>
<kw name="Run Keyword And Return If" owner="BuiltIn">
<arg>${pwd_length} &gt; 0</arg>
<arg>SSHLibrary.Login</arg>
<arg>${user}</arg>
<arg>${password}</arg>
<arg>delay=${delay}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-09-01T01:08:53.085692" elapsed="0.000314"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-09-01T01:08:53.086785" level="INFO">Logging into '10.30.170.133:22' as 'jenkins'.</msg>
<msg time="2026-09-01T01:08:53.398226" level="INFO">Read output: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-186-generic x86_64)

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

 System information as of Tue Sep  1 01:08:21 UTC 2026

  System load:  0.11               Processes:             110
  Usage of /:   19.7% of 38.58GB   Users logged in:       0
  Memory usage: 4%                 IPv4 address for ens3: 10.30.170.133
  Swap usage:   0%


Expanded Security Maintenance for Applications is not enabled.

0 updates can be applied immediately.

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


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


Last login: Tue Sep  1 01:08:52 2026 from 10.30.171.188
[?2004h[jenkins@releng-50965-32-1-mininet-ovs-217-0 ~]&gt;</msg>
<arg>${user}</arg>
<arg>${USER_HOME}/.ssh/${SSH_KEY}</arg>
<arg>${KEYFILE_PASS}</arg>
<arg>delay=${delay}</arg>
<doc>Logs into the SSH server using key-based authentication.</doc>
<status status="PASS" start="2026-09-01T01:08:53.086470" elapsed="0.311982"/>
</kw>
<msg time="2026-09-01T01:08:53.398550" level="INFO">Returning from the enclosing user keyword.</msg>
<arg>SSHLibrary.Login With Public Key</arg>
<arg>${user}</arg>
<arg>${USER_HOME}/.ssh/${SSH_KEY}</arg>
<arg>${KEYFILE_PASS}</arg>
<arg>delay=${delay}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-09-01T01:08:53.086143" elapsed="0.312510"/>
</kw>
<arg>${user}</arg>
<arg>${password}</arg>
<doc>On active SSH session: if given non-empty password, do Login, else do Login With Public Key.</doc>
<status status="PASS" start="2026-09-01T01:08:53.084803" elapsed="0.314028"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-01T01:08:53.399556" level="INFO">Executing command '/usr/local/bin/cbench -c 10.30.170.65 -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633'.</msg>
<msg time="2026-09-01T01:18:59.542350" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-09-01T01:18:59.542849" level="INFO">${stdout} = </msg>
<msg time="2026-09-01T01:18:59.543020" level="INFO">${stderr} = cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.170.65:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with 100...</msg>
<var>${stdout}</var>
<var>${stderr}</var>
<arg>${cmd}</arg>
<arg>return_stderr=True</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-01T01:08:53.399200" elapsed="606.143903"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-09-01T01:18:59.543489" elapsed="0.000722"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-01T01:18:59.545498" level="INFO">cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.170.65: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.65. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
01:09:58.631 16  switches: flows:  75455 75937 72531 75999 76179 73704 74606 73378 74596 74395 73288 72995 72243 72144 71236 71137  total = 19.663717 per ms 
01:10:58.732 16  switches: flows:  66383 66604 65583 66524 66905 65447 65793 64822 64101 63718 65041 63851 63187 63192 61676 62066  total = 17.219454 per ms 
01:11:58.832 16  switches: flows:  35401 34856 34506 35164 35291 34526 34991 34316 34033 33950 34833 34271 33945 33925 33569 33336  total = 9.166589 per ms 
01:12:58.933 16  switches: flows:  31360 30455 30453 30591 31235 30562 30399 30170 29798 29716 30445 29897 30051 29717 29516 29455  total = 8.050234 per ms 
01:13:59.033 16  switches: flows:  32511 32033 31557 32055 32339 31527 31931 31339 31095 30978 31630 30915 30885 30683 30308 30397  total = 8.355768 per ms 
01:14:59.133 16  switches: flows:  28103 27887 27336 28126 28191 27496 28014 27208 26592 26520 27110 26526 26541 26517 26359 26240  total = 7.234029 per ms 
01:15:59.233 16  switches: flows:  29073 28084 28342 28617 28952 28053 28364 28487 27447 27402 28086 27729 27410 27239 27006 26793  total = 7.438986 per ms 
01:16:59.334 16  switches: flows:  27399 27043 26950 27587 27473 26834 27519 27002 26356 26301 26868 26475 26372 26604 26117 25937  total = 7.135372 per ms 
01:17:59.434 16  switches: flows:  24723 24447 24191 24675 24498 23873 24291 23959 23714 23575 24074 23929 23553 23386 23453 23086  total = 6.379804 per ms 
01:18:59.534 16  switches: flows:  24643 24245 24514 24588 24560 24054 24332 24272 23599 23899 24505 24331 23411 23488 23656 23621  total = 6.417920 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 6379.80/17219.45/8599.80/4268.54 responses/s</msg>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-01T01:18:59.544613" elapsed="0.001148"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="PASS" start="2026-09-01T01:18:59.546314" elapsed="0.000073"/>
</return>
<status status="PASS" start="2026-09-01T01:18:59.545994" elapsed="0.000468"/>
</branch>
<status status="PASS" start="2026-09-01T01:18:59.545934" elapsed="0.000579"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="NOT RUN" start="2026-09-01T01:18:59.546707" elapsed="0.000026"/>
</return>
<status status="NOT RUN" start="2026-09-01T01:18:59.546632" elapsed="0.000155"/>
</branch>
<status status="NOT RUN" start="2026-09-01T01:18:59.546601" elapsed="0.000235"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-09-01T01:18:59.546957" elapsed="0.000033"/>
</return>
<kw name="Restore_Current_Ssh_Connection_From_Index" owner="SSHKeywords" type="TEARDOWN">
<kw name="Run Keyword And Return If" owner="BuiltIn">
<arg>${connection_index} is not None</arg>
<arg>SSHLibrary.Switch Connection</arg>
<arg>${connection_index}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-09-01T01:18:59.552470" elapsed="0.000767"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<arg>127.0.0.1</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-09-01T01:18:59.553546" elapsed="0.000346"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-09-01T01:18:59.554226" elapsed="0.000211"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-09-01T01:18:59.547628" elapsed="0.006915"/>
</kw>
<msg time="2026-09-01T01:18:59.554804" level="INFO">${output} = cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.170.65:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with 100...</msg>
<var>${output}</var>
<arg>${cbench_system}</arg>
<arg>${cbench_executable} -c ${ODL_SYSTEM_IP} ${cbench_args}</arg>
<arg>prompt_timeout=${test_timeout}</arg>
<arg>return_stdout=False</arg>
<arg>return_stderr=True</arg>
<doc>Reduces the common work of running a command on a remote system to a single higher level
robot keyword, taking care to log in with a public key and. The command given is written and the return value
depends on the passed argument values of return_stdout (default: True) and return_stderr (default: False).
At least one should be True, or the keyword will exit and FAIL. If both are True, the resulting return value
will be a two element list containing both. Otherwise the resulting return value is a string.
No test conditions are checked.</doc>
<status status="PASS" start="2026-09-01T01:08:53.080455" elapsed="606.474418"/>
</kw>
<status status="PASS" start="2026-09-01T01:08:53.080136" elapsed="606.474877"/>
</branch>
<status status="PASS" start="2026-09-01T01:08:53.079789" elapsed="606.475276"/>
</if>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-01T01:18:59.556024" level="INFO">cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.170.65: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.65. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
01:09:58.631 16  switches: flows:  75455 75937 72531 75999 76179 73704 74606 73378 74596 74395 73288 72995 72243 72144 71236 71137  total = 19.663717 per ms 
01:10:58.732 16  switches: flows:  66383 66604 65583 66524 66905 65447 65793 64822 64101 63718 65041 63851 63187 63192 61676 62066  total = 17.219454 per ms 
01:11:58.832 16  switches: flows:  35401 34856 34506 35164 35291 34526 34991 34316 34033 33950 34833 34271 33945 33925 33569 33336  total = 9.166589 per ms 
01:12:58.933 16  switches: flows:  31360 30455 30453 30591 31235 30562 30399 30170 29798 29716 30445 29897 30051 29717 29516 29455  total = 8.050234 per ms 
01:13:59.033 16  switches: flows:  32511 32033 31557 32055 32339 31527 31931 31339 31095 30978 31630 30915 30885 30683 30308 30397  total = 8.355768 per ms 
01:14:59.133 16  switches: flows:  28103 27887 27336 28126 28191 27496 28014 27208 26592 26520 27110 26526 26541 26517 26359 26240  total = 7.234029 per ms 
01:15:59.233 16  switches: flows:  29073 28084 28342 28617 28952 28053 28364 28487 27447 27402 28086 27729 27410 27239 27006 26793  total = 7.438986 per ms 
01:16:59.334 16  switches: flows:  27399 27043 26950 27587 27473 26834 27519 27002 26356 26301 26868 26475 26372 26604 26117 25937  total = 7.135372 per ms 
01:17:59.434 16  switches: flows:  24723 24447 24191 24675 24498 23873 24291 23959 23714 23575 24074 23929 23553 23386 23453 23086  total = 6.379804 per ms 
01:18:59.534 16  switches: flows:  24643 24245 24514 24588 24560 24054 24332 24272 23599 23899 24505 24331 23411 23488 23656 23621  total = 6.417920 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 6379.80/17219.45/8599.80/4268.54 responses/s</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-01T01:18:59.555376" elapsed="0.000829"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${output}</arg>
<arg>RESULT</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-01T01:18:59.556556" elapsed="0.000844"/>
</kw>
<kw name="Get Lines Containing String" owner="String">
<msg time="2026-09-01T01:18:59.558309" level="INFO">1 out of 23 lines matched.</msg>
<msg time="2026-09-01T01:18:59.558502" level="INFO">${result_line} = RESULT: 16 switches 9 tests min/max/avg/stdev = 6379.80/17219.45/8599.80/4268.54 responses/s</msg>
<var>${result_line}</var>
<arg>${output}</arg>
<arg>RESULT</arg>
<doc>Returns lines of the given ``string`` that contain the ``pattern``.</doc>
<status status="PASS" start="2026-09-01T01:18:59.557727" elapsed="0.000833"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-09-01T01:18:59.559518" level="INFO">@{results_list} = [ RESULT: | 16 | switches | 9 | tests | min/max/avg/stdev | = | 6379.80/17219.45/8599.80/4268.54 | responses/s ]</msg>
<var>@{results_list}</var>
<arg>${result_line}</arg>
<doc>Splits the ``string`` using ``separator`` as a delimiter string.</doc>
<status status="PASS" start="2026-09-01T01:18:59.558956" elapsed="0.000617"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-01T01:18:59.565137" level="INFO">min/max/avg/stdev</msg>
<arg>${results_list[5]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-01T01:18:59.559884" elapsed="0.005375"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-01T01:18:59.571002" level="INFO">6379.80/17219.45/8599.80/4268.54</msg>
<arg>${results_list[7]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-01T01:18:59.565561" elapsed="0.005615"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-09-01T01:18:59.576438" level="INFO">@{result_name_list} = [ min | max | avg | stdev ]</msg>
<var>@{result_name_list}</var>
<arg>${results_list[5]}</arg>
<arg>/</arg>
<doc>Splits the ``string`` using ``separator`` as a delimiter string.</doc>
<status status="PASS" start="2026-09-01T01:18:59.571576" elapsed="0.004917"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-09-01T01:18:59.581679" level="INFO">@{result_value_list} = [ 6379.80 | 17219.45 | 8599.80 | 4268.54 ]</msg>
<var>@{result_value_list}</var>
<arg>${results_list[7]}</arg>
<arg>/</arg>
<doc>Splits the ``string`` using ``separator`` as a delimiter string.</doc>
<status status="PASS" start="2026-09-01T01:18:59.576817" elapsed="0.004919"/>
</kw>
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-09-01T01:18:59.582771" level="INFO">Length is 4.</msg>
<msg time="2026-09-01T01:18:59.583010" level="INFO">${num_stats} = 4</msg>
<var>${num_stats}</var>
<arg>${result_name_list}</arg>
<doc>Returns and logs the length of the given item as an integer.</doc>
<status status="PASS" start="2026-09-01T01:18:59.582129" elapsed="0.000933"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-01T01:18:59.590053" level="INFO">min :: 6379.80</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-01T01:18:59.583880" elapsed="0.006264"/>
</kw>
<var name="${i}">0</var>
<status status="PASS" start="2026-09-01T01:18:59.583595" elapsed="0.006593"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-01T01:18:59.596576" level="INFO">max :: 17219.45</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-01T01:18:59.590473" elapsed="0.006208"/>
</kw>
<var name="${i}">1</var>
<status status="PASS" start="2026-09-01T01:18:59.590309" elapsed="0.006433"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-01T01:18:59.602871" level="INFO">avg :: 8599.80</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-01T01:18:59.597117" elapsed="0.005862"/>
</kw>
<var name="${i}">2</var>
<status status="PASS" start="2026-09-01T01:18:59.596881" elapsed="0.006144"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-01T01:18:59.609648" level="INFO">stdev :: 4268.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-09-01T01:18:59.603328" elapsed="0.006394"/>
</kw>
<var name="${i}">3</var>
<status status="PASS" start="2026-09-01T01:18:59.603160" elapsed="0.006606"/>
</iter>
<var>${i}</var>
<value>0</value>
<value>${num_stats}</value>
<status status="PASS" start="2026-09-01T01:18:59.583217" elapsed="0.026591"/>
</for>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-09-01T01:18:59.615021" level="INFO">${min} = 6379.80</msg>
<var>${min}</var>
<arg>${result_value_list[${0}]}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-09-01T01:18:59.610066" elapsed="0.004990"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-09-01T01:18:59.621575" level="INFO">${max} = 17219.45</msg>
<var>${max}</var>
<arg>${result_value_list[${1}]}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-09-01T01:18:59.615279" elapsed="0.006330"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-09-01T01:18:59.627057" level="INFO">${average} = 8599.80</msg>
<var>${average}</var>
<arg>${result_value_list[${2}]}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-09-01T01:18:59.621806" elapsed="0.005338"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-09-01T01:18:59.632319" level="INFO">${stdev} = 4268.54</msg>
<var>${stdev}</var>
<arg>${result_value_list[${3}]}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-09-01T01:18:59.627346" elapsed="0.005006"/>
</kw>
<kw name="Get Time" owner="BuiltIn">
<msg time="2026-09-01T01:18:59.633110" level="INFO">${date} = 2026-09-01 01:18:59</msg>
<var>${date}</var>
<arg>d,m,s</arg>
<doc>Returns the given time in the requested format.</doc>
<status status="PASS" start="2026-09-01T01:18:59.632556" elapsed="0.000588"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-01T01:18:59.633936" level="INFO">CBench Result: 2026-09-01 01:18:59,-m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633,6379.80,17219.45,8599.80,4268.54</msg>
<arg>CBench Result: ${date},${cbench_args},${min},${max},${average},${stdev}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-01T01:18:59.633348" elapsed="0.000665"/>
</kw>
<kw name="Log Results And Determine Status">
<kw name="Append To File" owner="OperatingSystem">
<msg time="2026-09-01T01:18:59.635490" level="INFO" html="true">Appended to file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-cbench-only-manganese/latency.csv"&gt;/w/workspace/openflowplugin-csit-1node-cbench-only-manganese/latency.csv&lt;/a&gt;'.</msg>
<arg>${output_file}</arg>
<arg>${min},${max},${average}\n</arg>
<doc>Appends the given content to the specified file.</doc>
<status status="PASS" start="2026-09-01T01:18:59.634920" elapsed="0.000669"/>
</kw>
<kw name="Should Be True" owner="BuiltIn">
<arg>${average} &gt; ${threshold}</arg>
<arg>${average} flow_mods per/sec did not exceed threshold of ${threshold}</arg>
<doc>Fails if the given condition is not true.</doc>
<status status="PASS" start="2026-09-01T01:18:59.635798" elapsed="0.000670"/>
</kw>
<arg>${min}</arg>
<arg>${max}</arg>
<arg>${average}</arg>
<arg>${average_threshold}</arg>
<arg>${output_filename}</arg>
<status status="PASS" start="2026-09-01T01:18:59.634231" elapsed="0.002319"/>
</kw>
<arg>-m ${duration_in_ms} -M ${num_of_unique_macs} -S ${switch_count} -l ${loops} -D ${start_delay} -p ${of_port}</arg>
<arg>${latency_threshold}</arg>
<arg>${latency_results_file}</arg>
<status status="PASS" start="2026-09-01T01:08:53.078587" elapsed="606.558038"/>
</kw>
<kw name="Sleep" owner="BuiltIn">
<msg time="2026-09-01T01:18:59.637281" level="INFO">Slept 0 seconds.</msg>
<arg>${test_delay}</arg>
<doc>Pauses the test executed for the given time.</doc>
<status status="PASS" start="2026-09-01T01:18:59.636811" elapsed="0.000543"/>
</kw>
<kw name="Log Results As Zero If Cbench Timed Out" type="TEARDOWN">
<kw name="Run Keyword If Timeout Occurred" owner="BuiltIn">
<arg>Log Results And Determine Status</arg>
<arg>0</arg>
<arg>0</arg>
<arg>0</arg>
<arg>0</arg>
<arg>${output_filename}</arg>
<doc>Runs the given keyword if either a test or a keyword timeout has occurred.</doc>
<status status="PASS" start="2026-09-01T01:18:59.638111" elapsed="0.000318"/>
</kw>
<status status="PASS" start="2026-09-01T01:18:59.637617" elapsed="0.000891"/>
</kw>
<doc>cbench executed in default latency mode. Test parameters have defaults, but can be overridden
on the pybot command line</doc>
<tag>cbench</tag>
<tag>latency</tag>
<timeout value="15 minutes"/>
<status status="PASS" start="2026-09-01T01:08:53.076396" elapsed="606.562147"/>
</test>
<test id="s1-t2" name="Cbench Throughput Test" line="51">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-01T01:18:59.639918" level="INFO">Cbench tests using 10 iterations of 60 second tests. Switch Count: 16. Unique MACS to cycle: 100</msg>
<arg>Cbench tests using ${loops} iterations of ${duration_in_secs} second tests. Switch Count: ${switch_count}. Unique MACS to cycle: ${num_of_unique_macs}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-01T01:18:59.639465" elapsed="0.000521"/>
</kw>
<kw name="Run Cbench And Log Results">
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-09-01T01:18:59.641355" level="INFO">${output_filename} = throughput.csv</msg>
<arg>${output_filename}</arg>
<doc>Makes a variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-09-01T01:18:59.640995" elapsed="0.000405"/>
</kw>
<if>
<branch type="IF" condition="&quot;${cbench_system}&quot; == &quot;localhost&quot;">
<kw name="Run" owner="OperatingSystem">
<var>${output}</var>
<arg>${cbench_executable} -c ${ODL_SYSTEM_IP} ${cbench_args}</arg>
<doc>_This keyword is considered deprecated. Use the
[http://robotframework.org/robotframework/latest/libraries/Process.html|
Process] library instead._</doc>
<status status="NOT RUN" start="2026-09-01T01:18:59.641680" elapsed="0.000068"/>
</kw>
<status status="NOT RUN" start="2026-09-01T01:18:59.641471" elapsed="0.000313"/>
</branch>
<branch type="ELSE">
<kw name="Run Command On Remote System" owner="Utils">
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot; and &quot;${return_stderr}&quot;!=&quot;True&quot;">
<kw name="Fail" owner="BuiltIn">
<arg>At least one of {return_stdout} or {return_stderr} args should be set to True</arg>
<doc>Fails the test with the given message and optionally alters its tags.</doc>
<status status="NOT RUN" start="2026-09-01T01:18:59.644503" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-09-01T01:18:59.644276" elapsed="0.000278"/>
</branch>
<status status="PASS" start="2026-09-01T01:18:59.644259" elapsed="0.000323"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-09-01T01:18:59.644935" level="INFO">index=None
host=None
alias=None
port=22
timeout=3 seconds
newline=

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

prompt=None
term_type=vt100
width=80
height=24
path_separator=/
encoding=utf8
escape_ansi=False
encoding_errors=strict</msg>
<var>${current_ssh_connection}</var>
<doc>Returns information about the connection.</doc>
<status status="PASS" start="2026-09-01T01:18:59.644714" elapsed="0.000369"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-01T01:18:59.645599" level="INFO">Attempting to execute command "/usr/local/bin/cbench -c 10.30.170.65 -t -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633" on remote system "10.30.170.133" by user "jenkins" with keyfile pass "any" and prompt "&gt;" and password ""</msg>
<arg>Attempting to execute command "${cmd}" on remote system "${system}" by user "${user}" with keyfile pass "${keyfile_pass}" and prompt "${prompt}" and password "${password}"</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-01T01:18:59.645217" elapsed="0.000435"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-09-01T01:18:59.646185" level="INFO">${conn_id} = 7</msg>
<var>${conn_id}</var>
<arg>${system}</arg>
<arg>prompt=${prompt}</arg>
<arg>timeout=${prompt_timeout}</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-09-01T01:18:59.645779" elapsed="0.000430"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-09-01T01:18:59.647051" level="INFO">Length is 0.</msg>
<msg time="2026-09-01T01:18:59.647151" level="INFO">${pwd_length} = 0</msg>
<var>${pwd_length}</var>
<arg>${password}</arg>
<doc>Returns and logs the length of the given item as an integer.</doc>
<status status="PASS" start="2026-09-01T01:18:59.646726" elapsed="0.000447"/>
</kw>
<kw name="Run Keyword And Return If" owner="BuiltIn">
<arg>${pwd_length} &gt; 0</arg>
<arg>SSHLibrary.Login</arg>
<arg>${user}</arg>
<arg>${password}</arg>
<arg>delay=${delay}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-09-01T01:18:59.647305" elapsed="0.000300"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-09-01T01:18:59.648426" level="INFO">Logging into '10.30.170.133:22' as 'jenkins'.</msg>
<msg time="2026-09-01T01:19:00.267456" level="INFO">Read output: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-186-generic x86_64)

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

 System information as of Tue Sep  1 01:18:59 UTC 2026

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


Expanded Security Maintenance for Applications is not enabled.

0 updates can be applied immediately.

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


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


Last login: Tue Sep  1 01:08:53 2026 from 10.30.171.188
[?2004h[jenkins@releng-50965-32-1-mininet-ovs-217-0 ~]&gt;</msg>
<arg>${user}</arg>
<arg>${USER_HOME}/.ssh/${SSH_KEY}</arg>
<arg>${KEYFILE_PASS}</arg>
<arg>delay=${delay}</arg>
<doc>Logs into the SSH server using key-based authentication.</doc>
<status status="PASS" start="2026-09-01T01:18:59.648098" elapsed="0.619552"/>
</kw>
<msg time="2026-09-01T01:19:00.267734" level="INFO">Returning from the enclosing user keyword.</msg>
<arg>SSHLibrary.Login With Public Key</arg>
<arg>${user}</arg>
<arg>${USER_HOME}/.ssh/${SSH_KEY}</arg>
<arg>${KEYFILE_PASS}</arg>
<arg>delay=${delay}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-09-01T01:18:59.647743" elapsed="0.620077"/>
</kw>
<arg>${user}</arg>
<arg>${password}</arg>
<doc>On active SSH session: if given non-empty password, do Login, else do Login With Public Key.</doc>
<status status="PASS" start="2026-09-01T01:18:59.646391" elapsed="0.621561"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-01T01:19:00.268473" level="INFO">Executing command '/usr/local/bin/cbench -c 10.30.170.65 -t -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633'.</msg>
<msg time="2026-09-01T01:29:06.333242" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-09-01T01:29:06.333696" level="INFO">${stdout} = </msg>
<msg time="2026-09-01T01:29:06.333810" level="INFO">${stderr} = cbench: controller benchmarking tool
   running in mode 'throughput'
   connecting to controller at 10.30.170.65:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with ...</msg>
<var>${stdout}</var>
<var>${stderr}</var>
<arg>${cmd}</arg>
<arg>return_stderr=True</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-01T01:19:00.268198" elapsed="606.065668"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-09-01T01:29:06.334341" elapsed="0.000813"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-01T01:29:06.336268" level="INFO">cbench: controller benchmarking tool
   running in mode 'throughput'
   connecting to controller at 10.30.170.65: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.65. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
01:20:05.403 16  switches: flows:  681022 670017 677805 683546 674414 684440 679878 672753 653845 665402 665169 669105 654828 666071 667649 668199  total = 178.902383 per ms 
01:21:05.505 16  switches: flows:  718985 727126 725905 728203 711307 734643 725967 727856 729463 727653 724692 720487 717755 724739 721478 724375  total = 192.849553 per ms 
01:22:05.607 16  switches: flows:  740948 732093 743302 746513 750307 750621 747039 748535 737599 735677 736312 733453 738943 738803 743883 748197  total = 197.533914 per ms 
01:23:05.713 16  switches: flows:  701968 712127 705164 700905 706978 706746 714776 694592 697344 693538 704054 694237 701810 705467 714717 698529  total = 187.223976 per ms 
01:24:05.814 16  switches: flows:  732667 746450 746418 751188 746949 743265 750087 745836 741225 745494 741927 730582 755568 753450 749211 749679  total = 198.499503 per ms 
01:25:05.916 16  switches: flows:  718861 723832 721141 727399 728587 710313 716044 723022 721934 723737 725315 717386 742431 735404 731363 731509  total = 192.979184 per ms 
01:26:06.019 16  switches: flows:  673830 673800 667216 670314 656174 667730 672723 674861 661765 666818 676291 665875 666326 672401 671392 667799  total = 178.120575 per ms 
01:27:06.120 16  switches: flows:  741671 748069 734051 737008 735700 745590 748991 744870 736813 742093 741931 731002 747216 745163 745601 739464  total = 197.421265 per ms 
01:28:06.230 16  switches: flows:  709326 711524 727151 718976 714858 719571 720456 723926 715413 720211 714966 725627 713559 722275 724017 727105  total = 191.467036 per ms 
01:29:06.331 16  switches: flows:  729971 728276 741581 739601 736251 743151 744822 737033 731001 734361 745234 745712 738450 736411 743053 744533  total = 196.660042 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 178120.58/198499.50/192528.34/64468.80 responses/s</msg>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-01T01:29:06.335503" elapsed="0.001038"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="PASS" start="2026-09-01T01:29:06.337081" elapsed="0.000092"/>
</return>
<status status="PASS" start="2026-09-01T01:29:06.336710" elapsed="0.000546"/>
</branch>
<status status="PASS" start="2026-09-01T01:29:06.336661" elapsed="0.000646"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="NOT RUN" start="2026-09-01T01:29:06.337493" elapsed="0.000026"/>
</return>
<status status="NOT RUN" start="2026-09-01T01:29:06.337421" elapsed="0.000152"/>
</branch>
<status status="NOT RUN" start="2026-09-01T01:29:06.337390" elapsed="0.000225"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-09-01T01:29:06.337673" elapsed="0.000026"/>
</return>
<kw name="Restore_Current_Ssh_Connection_From_Index" owner="SSHKeywords" type="TEARDOWN">
<kw name="Run Keyword And Return If" owner="BuiltIn">
<arg>${connection_index} is not None</arg>
<arg>SSHLibrary.Switch Connection</arg>
<arg>${connection_index}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-09-01T01:29:06.343636" elapsed="0.000766"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<arg>127.0.0.1</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-09-01T01:29:06.344731" elapsed="0.000404"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-09-01T01:29:06.345405" elapsed="0.000243"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-09-01T01:29:06.338379" elapsed="0.007381"/>
</kw>
<msg time="2026-09-01T01:29:06.346087" level="INFO">${output} = cbench: controller benchmarking tool
   running in mode 'throughput'
   connecting to controller at 10.30.170.65:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with ...</msg>
<var>${output}</var>
<arg>${cbench_system}</arg>
<arg>${cbench_executable} -c ${ODL_SYSTEM_IP} ${cbench_args}</arg>
<arg>prompt_timeout=${test_timeout}</arg>
<arg>return_stdout=False</arg>
<arg>return_stderr=True</arg>
<doc>Reduces the common work of running a command on a remote system to a single higher level
robot keyword, taking care to log in with a public key and. The command given is written and the return value
depends on the passed argument values of return_stdout (default: True) and return_stderr (default: False).
At least one should be True, or the keyword will exit and FAIL. If both are True, the resulting return value
will be a two element list containing both. Otherwise the resulting return value is a string.
No test conditions are checked.</doc>
<status status="PASS" start="2026-09-01T01:18:59.642152" elapsed="606.703992"/>
</kw>
<status status="PASS" start="2026-09-01T01:18:59.641808" elapsed="606.704432"/>
</branch>
<status status="PASS" start="2026-09-01T01:18:59.641449" elapsed="606.704838"/>
</if>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-01T01:29:06.347318" level="INFO">cbench: controller benchmarking tool
   running in mode 'throughput'
   connecting to controller at 10.30.170.65: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.65. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
01:20:05.403 16  switches: flows:  681022 670017 677805 683546 674414 684440 679878 672753 653845 665402 665169 669105 654828 666071 667649 668199  total = 178.902383 per ms 
01:21:05.505 16  switches: flows:  718985 727126 725905 728203 711307 734643 725967 727856 729463 727653 724692 720487 717755 724739 721478 724375  total = 192.849553 per ms 
01:22:05.607 16  switches: flows:  740948 732093 743302 746513 750307 750621 747039 748535 737599 735677 736312 733453 738943 738803 743883 748197  total = 197.533914 per ms 
01:23:05.713 16  switches: flows:  701968 712127 705164 700905 706978 706746 714776 694592 697344 693538 704054 694237 701810 705467 714717 698529  total = 187.223976 per ms 
01:24:05.814 16  switches: flows:  732667 746450 746418 751188 746949 743265 750087 745836 741225 745494 741927 730582 755568 753450 749211 749679  total = 198.499503 per ms 
01:25:05.916 16  switches: flows:  718861 723832 721141 727399 728587 710313 716044 723022 721934 723737 725315 717386 742431 735404 731363 731509  total = 192.979184 per ms 
01:26:06.019 16  switches: flows:  673830 673800 667216 670314 656174 667730 672723 674861 661765 666818 676291 665875 666326 672401 671392 667799  total = 178.120575 per ms 
01:27:06.120 16  switches: flows:  741671 748069 734051 737008 735700 745590 748991 744870 736813 742093 741931 731002 747216 745163 745601 739464  total = 197.421265 per ms 
01:28:06.230 16  switches: flows:  709326 711524 727151 718976 714858 719571 720456 723926 715413 720211 714966 725627 713559 722275 724017 727105  total = 191.467036 per ms 
01:29:06.331 16  switches: flows:  729971 728276 741581 739601 736251 743151 744822 737033 731001 734361 745234 745712 738450 736411 743053 744533  total = 196.660042 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 178120.58/198499.50/192528.34/64468.80 responses/s</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-01T01:29:06.346635" elapsed="0.000841"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${output}</arg>
<arg>RESULT</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-01T01:29:06.347830" elapsed="0.000802"/>
</kw>
<kw name="Get Lines Containing String" owner="String">
<msg time="2026-09-01T01:29:06.349490" level="INFO">1 out of 23 lines matched.</msg>
<msg time="2026-09-01T01:29:06.349691" level="INFO">${result_line} = RESULT: 16 switches 9 tests min/max/avg/stdev = 178120.58/198499.50/192528.34/64468.80 responses/s</msg>
<var>${result_line}</var>
<arg>${output}</arg>
<arg>RESULT</arg>
<doc>Returns lines of the given ``string`` that contain the ``pattern``.</doc>
<status status="PASS" start="2026-09-01T01:29:06.349032" elapsed="0.000717"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-09-01T01:29:06.350649" level="INFO">@{results_list} = [ RESULT: | 16 | switches | 9 | tests | min/max/avg/stdev | = | 178120.58/198499.50/192528.34/64468.80 | responses/s ]</msg>
<var>@{results_list}</var>
<arg>${result_line}</arg>
<doc>Splits the ``string`` using ``separator`` as a delimiter string.</doc>
<status status="PASS" start="2026-09-01T01:29:06.350127" elapsed="0.000585"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-01T01:29:06.356214" level="INFO">min/max/avg/stdev</msg>
<arg>${results_list[5]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-01T01:29:06.351089" elapsed="0.005251"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-01T01:29:06.361561" level="INFO">178120.58/198499.50/192528.34/64468.80</msg>
<arg>${results_list[7]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-01T01:29:06.356665" elapsed="0.005016"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-09-01T01:29:06.367349" level="INFO">@{result_name_list} = [ min | max | avg | stdev ]</msg>
<var>@{result_name_list}</var>
<arg>${results_list[5]}</arg>
<arg>/</arg>
<doc>Splits the ``string`` using ``separator`` as a delimiter string.</doc>
<status status="PASS" start="2026-09-01T01:29:06.362075" elapsed="0.005329"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-09-01T01:29:06.372837" level="INFO">@{result_value_list} = [ 178120.58 | 198499.50 | 192528.34 | 64468.80 ]</msg>
<var>@{result_value_list}</var>
<arg>${results_list[7]}</arg>
<arg>/</arg>
<doc>Splits the ``string`` using ``separator`` as a delimiter string.</doc>
<status status="PASS" start="2026-09-01T01:29:06.367827" elapsed="0.005111"/>
</kw>
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-09-01T01:29:06.374032" level="INFO">Length is 4.</msg>
<msg time="2026-09-01T01:29:06.374160" level="INFO">${num_stats} = 4</msg>
<var>${num_stats}</var>
<arg>${result_name_list}</arg>
<doc>Returns and logs the length of the given item as an integer.</doc>
<status status="PASS" start="2026-09-01T01:29:06.373273" elapsed="0.000916"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-01T01:29:06.380936" level="INFO">min :: 178120.58</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-01T01:29:06.374711" elapsed="0.006313"/>
</kw>
<var name="${i}">0</var>
<status status="PASS" start="2026-09-01T01:29:06.374541" elapsed="0.006539"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-01T01:29:06.387953" level="INFO">max :: 198499.50</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-01T01:29:06.381378" elapsed="0.006657"/>
</kw>
<var name="${i}">1</var>
<status status="PASS" start="2026-09-01T01:29:06.381207" elapsed="0.006879"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-01T01:29:06.395928" level="INFO">avg :: 192528.34</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-01T01:29:06.388390" elapsed="0.007638"/>
</kw>
<var name="${i}">2</var>
<status status="PASS" start="2026-09-01T01:29:06.388210" elapsed="0.007877"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-01T01:29:06.402765" level="INFO">stdev :: 64468.80</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-01T01:29:06.396462" elapsed="0.006391"/>
</kw>
<var name="${i}">3</var>
<status status="PASS" start="2026-09-01T01:29:06.396234" elapsed="0.006684"/>
</iter>
<var>${i}</var>
<value>0</value>
<value>${num_stats}</value>
<status status="PASS" start="2026-09-01T01:29:06.374280" elapsed="0.028681"/>
</for>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-09-01T01:29:06.408046" level="INFO">${min} = 178120.58</msg>
<var>${min}</var>
<arg>${result_value_list[${0}]}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-09-01T01:29:06.403175" elapsed="0.004905"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-09-01T01:29:06.413091" level="INFO">${max} = 198499.50</msg>
<var>${max}</var>
<arg>${result_value_list[${1}]}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-09-01T01:29:06.408277" elapsed="0.004846"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-09-01T01:29:06.417823" level="INFO">${average} = 192528.34</msg>
<var>${average}</var>
<arg>${result_value_list[${2}]}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-09-01T01:29:06.413319" elapsed="0.004530"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-09-01T01:29:06.421440" level="INFO">${stdev} = 64468.80</msg>
<var>${stdev}</var>
<arg>${result_value_list[${3}]}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-09-01T01:29:06.418006" elapsed="0.003460"/>
</kw>
<kw name="Get Time" owner="BuiltIn">
<msg time="2026-09-01T01:29:06.422009" level="INFO">${date} = 2026-09-01 01:29:06</msg>
<var>${date}</var>
<arg>d,m,s</arg>
<doc>Returns the given time in the requested format.</doc>
<status status="PASS" start="2026-09-01T01:29:06.421618" elapsed="0.000415"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-01T01:29:06.422568" level="INFO">CBench Result: 2026-09-01 01:29:06,-t -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633,178120.58,198499.50,192528.34,64468.80</msg>
<arg>CBench Result: ${date},${cbench_args},${min},${max},${average},${stdev}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-01T01:29:06.422180" elapsed="0.000445"/>
</kw>
<kw name="Log Results And Determine Status">
<kw name="Append To File" owner="OperatingSystem">
<msg time="2026-09-01T01:29:06.423664" level="INFO" html="true">Appended to file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-cbench-only-manganese/throughput.csv"&gt;/w/workspace/openflowplugin-csit-1node-cbench-only-manganese/throughput.csv&lt;/a&gt;'.</msg>
<arg>${output_file}</arg>
<arg>${min},${max},${average}\n</arg>
<doc>Appends the given content to the specified file.</doc>
<status status="PASS" start="2026-09-01T01:29:06.423254" elapsed="0.000475"/>
</kw>
<kw name="Should Be True" owner="BuiltIn">
<arg>${average} &gt; ${threshold}</arg>
<arg>${average} flow_mods per/sec did not exceed threshold of ${threshold}</arg>
<doc>Fails if the given condition is not true.</doc>
<status status="PASS" start="2026-09-01T01:29:06.423893" elapsed="0.000449"/>
</kw>
<arg>${min}</arg>
<arg>${max}</arg>
<arg>${average}</arg>
<arg>${average_threshold}</arg>
<arg>${output_filename}</arg>
<status status="PASS" start="2026-09-01T01:29:06.422778" elapsed="0.001623"/>
</kw>
<arg>-t -m ${duration_in_ms} -M ${num_of_unique_macs} -S ${switch_count} -l ${loops} -D ${start_delay} -p ${of_port}</arg>
<arg>${throughput_threshold}</arg>
<arg>${throughput_results_file}</arg>
<status status="PASS" start="2026-09-01T01:18:59.640378" elapsed="606.784076"/>
</kw>
<kw name="Sleep" owner="BuiltIn">
<msg time="2026-09-01T01:29:06.424958" level="INFO">Slept 0 seconds.</msg>
<arg>${test_delay}</arg>
<doc>Pauses the test executed for the given time.</doc>
<status status="PASS" start="2026-09-01T01:29:06.424612" elapsed="0.000401"/>
</kw>
<kw name="Log Results As Zero If Cbench Timed Out" type="TEARDOWN">
<kw name="Run Keyword If Timeout Occurred" owner="BuiltIn">
<arg>Log Results And Determine Status</arg>
<arg>0</arg>
<arg>0</arg>
<arg>0</arg>
<arg>0</arg>
<arg>${output_filename}</arg>
<doc>Runs the given keyword if either a test or a keyword timeout has occurred.</doc>
<status status="PASS" start="2026-09-01T01:29:06.425489" elapsed="0.000241"/>
</kw>
<status status="PASS" start="2026-09-01T01:29:06.425209" elapsed="0.000599"/>
</kw>
<doc>cbench executed in throughput mode (-t). Test parameters have defaults, but can be overridden
on the pybot command line</doc>
<tag>cbench</tag>
<tag>throughput</tag>
<timeout value="15 minutes"/>
<status status="PASS" start="2026-09-01T01:18:59.638883" elapsed="606.786962"/>
</test>
<test id="s1-t3" name="Rerun Latency Test To Check Bug 6176" line="65">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-01T01:29:06.427119" level="INFO">Cbench tests using 10 iterations of 60 second tests. Switch Count: 16. Unique MACS to cycle: 100</msg>
<arg>Cbench tests using ${loops} iterations of ${duration_in_secs} second tests. Switch Count: ${switch_count}. Unique MACS to cycle: ${num_of_unique_macs}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-01T01:29:06.426546" elapsed="0.000639"/>
</kw>
<kw name="Run Cbench And Log Results">
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-09-01T01:29:06.428307" level="INFO">${output_filename} = bug.csv</msg>
<arg>${output_filename}</arg>
<doc>Makes a variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-09-01T01:29:06.428010" elapsed="0.000335"/>
</kw>
<if>
<branch type="IF" condition="&quot;${cbench_system}&quot; == &quot;localhost&quot;">
<kw name="Run" owner="OperatingSystem">
<var>${output}</var>
<arg>${cbench_executable} -c ${ODL_SYSTEM_IP} ${cbench_args}</arg>
<doc>_This keyword is considered deprecated. Use the
[http://robotframework.org/robotframework/latest/libraries/Process.html|
Process] library instead._</doc>
<status status="NOT RUN" start="2026-09-01T01:29:06.428679" elapsed="0.000019"/>
</kw>
<status status="NOT RUN" start="2026-09-01T01:29:06.428471" elapsed="0.000260"/>
</branch>
<branch type="ELSE">
<kw name="Run Command On Remote System" owner="Utils">
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot; and &quot;${return_stderr}&quot;!=&quot;True&quot;">
<kw name="Fail" owner="BuiltIn">
<arg>At least one of {return_stdout} or {return_stderr} args should be set to True</arg>
<doc>Fails the test with the given message and optionally alters its tags.</doc>
<status status="NOT RUN" start="2026-09-01T01:29:06.431777" elapsed="0.000034"/>
</kw>
<status status="NOT RUN" start="2026-09-01T01:29:06.431534" elapsed="0.000311"/>
</branch>
<status status="PASS" start="2026-09-01T01:29:06.431516" elapsed="0.000350"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-09-01T01:29:06.432205" level="INFO">index=None
host=None
alias=None
port=22
timeout=3 seconds
newline=

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

prompt=None
term_type=vt100
width=80
height=24
path_separator=/
encoding=utf8
escape_ansi=False
encoding_errors=strict</msg>
<var>${current_ssh_connection}</var>
<doc>Returns information about the connection.</doc>
<status status="PASS" start="2026-09-01T01:29:06.432008" elapsed="0.000330"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-01T01:29:06.432855" level="INFO">Attempting to execute command "/usr/local/bin/cbench -c 10.30.170.65 -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633" on remote system "10.30.170.133" by user "jenkins" with keyfile pass "any" and prompt "&gt;" and password ""</msg>
<arg>Attempting to execute command "${cmd}" on remote system "${system}" by user "${user}" with keyfile pass "${keyfile_pass}" and prompt "${prompt}" and password "${password}"</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-01T01:29:06.432460" elapsed="0.000462"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-09-01T01:29:06.433417" level="INFO">${conn_id} = 9</msg>
<var>${conn_id}</var>
<arg>${system}</arg>
<arg>prompt=${prompt}</arg>
<arg>timeout=${prompt_timeout}</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-09-01T01:29:06.433050" elapsed="0.000396"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-09-01T01:29:06.434315" level="INFO">Length is 0.</msg>
<msg time="2026-09-01T01:29:06.434396" level="INFO">${pwd_length} = 0</msg>
<var>${pwd_length}</var>
<arg>${password}</arg>
<doc>Returns and logs the length of the given item as an integer.</doc>
<status status="PASS" start="2026-09-01T01:29:06.434013" elapsed="0.000404"/>
</kw>
<kw name="Run Keyword And Return If" owner="BuiltIn">
<arg>${pwd_length} &gt; 0</arg>
<arg>SSHLibrary.Login</arg>
<arg>${user}</arg>
<arg>${password}</arg>
<arg>delay=${delay}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-09-01T01:29:06.434547" elapsed="0.000319"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-09-01T01:29:06.435659" level="INFO">Logging into '10.30.170.133:22' as 'jenkins'.</msg>
<msg time="2026-09-01T01:29:07.057033" level="INFO">Read output: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-186-generic x86_64)

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

 System information as of Tue Sep  1 01:29:06 UTC 2026

  System load:  0.59               Processes:             104
  Usage of /:   20.3% of 38.58GB   Users logged in:       0
  Memory usage: 4%                 IPv4 address for ens3: 10.30.170.133
  Swap usage:   0%


Expanded Security Maintenance for Applications is not enabled.

0 updates can be applied immediately.

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


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


Last login: Tue Sep  1 01:19:00 2026 from 10.30.171.188
[?2004h[jenkins@releng-50965-32-1-mininet-ovs-217-0 ~]&gt;</msg>
<arg>${user}</arg>
<arg>${USER_HOME}/.ssh/${SSH_KEY}</arg>
<arg>${KEYFILE_PASS}</arg>
<arg>delay=${delay}</arg>
<doc>Logs into the SSH server using key-based authentication.</doc>
<status status="PASS" start="2026-09-01T01:29:06.435332" elapsed="0.621948"/>
</kw>
<msg time="2026-09-01T01:29:07.057384" level="INFO">Returning from the enclosing user keyword.</msg>
<arg>SSHLibrary.Login With Public Key</arg>
<arg>${user}</arg>
<arg>${USER_HOME}/.ssh/${SSH_KEY}</arg>
<arg>${KEYFILE_PASS}</arg>
<arg>delay=${delay}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-09-01T01:29:06.435021" elapsed="0.622460"/>
</kw>
<arg>${user}</arg>
<arg>${password}</arg>
<doc>On active SSH session: if given non-empty password, do Login, else do Login With Public Key.</doc>
<status status="PASS" start="2026-09-01T01:29:06.433639" elapsed="0.623977"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-01T01:29:07.058286" level="INFO">Executing command '/usr/local/bin/cbench -c 10.30.170.65 -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633'.</msg>
<msg time="2026-09-01T01:39:13.304952" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-09-01T01:39:13.305561" level="INFO">${stdout} = </msg>
<msg time="2026-09-01T01:39:13.305660" level="INFO">${stderr} = cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.170.65:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with 100...</msg>
<var>${stdout}</var>
<var>${stderr}</var>
<arg>${cmd}</arg>
<arg>return_stderr=True</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-01T01:29:07.057890" elapsed="606.247823"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-09-01T01:39:13.306238" elapsed="0.000741"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-01T01:39:13.308127" level="INFO">cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.170.65: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.65. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
01:30:12.388 16  switches: flows:  84347 83627 82324 82336 83926 82985 83333 83904 81888 81333 80568 83563 82088 82421 82008 81282  total = 22.032217 per ms 
01:31:12.489 16  switches: flows:  98706 96802 98286 93796 96674 95639 97162 98262 94508 93904 93125 96695 93691 94094 93271 91816  total = 25.398134 per ms 
01:32:12.590 16  switches: flows:  106398 105261 105784 101073 104120 104500 103038 106251 100389 101760 99943 103101 99325 101767 100003 97523  total = 27.291676 per ms 
01:33:12.691 16  switches: flows:  107185 103458 105753 100544 104926 103879 103690 105488 100945 99762 100072 104595 100154 101693 101237 98414  total = 27.317645 per ms 
01:34:12.792 16  switches: flows:  106977 103401 106644 99697 104737 104527 103591 105981 101784 101052 101997 102716 101302 102390 100248 98812  total = 27.385239 per ms 
01:35:12.892 16  switches: flows:  104235 99289 101101 98288 101811 101540 100184 102117 96851 97669 96009 101226 96098 99263 95485 95853  total = 26.406242 per ms 
01:36:12.993 16  switches: flows:  107927 102669 104695 101482 104904 103234 104565 104094 99835 101844 99726 102709 100133 101127 99313 99481  total = 27.250137 per ms 
01:37:13.094 16  switches: flows:  107116 103872 105355 101071 105681 102170 103946 105149 100042 102025 100025 103886 100769 102312 101066 99414  total = 27.352671 per ms 
01:38:13.194 16  switches: flows:  108258 103479 104883 103484 105686 102609 104760 105391 101645 101906 100417 103940 99258 102484 98709 99753  total = 27.398595 per ms 
01:39:13.295 16  switches: flows:  107473 101670 104515 101321 106006 102077 103904 105881 99339 100928 99801 102139 99243 101143 98319 99811  total = 27.180772 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 25398.13/27398.60/26997.90/9021.69 responses/s</msg>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-01T01:39:13.307382" elapsed="0.001093"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="PASS" start="2026-09-01T01:39:13.309027" elapsed="0.000095"/>
</return>
<status status="PASS" start="2026-09-01T01:39:13.308665" elapsed="0.000551"/>
</branch>
<status status="PASS" start="2026-09-01T01:39:13.308614" elapsed="0.000666"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="NOT RUN" start="2026-09-01T01:39:13.309504" elapsed="0.000028"/>
</return>
<status status="NOT RUN" start="2026-09-01T01:39:13.309427" elapsed="0.000163"/>
</branch>
<status status="NOT RUN" start="2026-09-01T01:39:13.309392" elapsed="0.000242"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-09-01T01:39:13.309700" elapsed="0.000026"/>
</return>
<kw name="Restore_Current_Ssh_Connection_From_Index" owner="SSHKeywords" type="TEARDOWN">
<kw name="Run Keyword And Return If" owner="BuiltIn">
<arg>${connection_index} is not None</arg>
<arg>SSHLibrary.Switch Connection</arg>
<arg>${connection_index}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-09-01T01:39:13.315594" elapsed="0.000772"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<arg>127.0.0.1</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-09-01T01:39:13.316700" elapsed="0.000362"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-09-01T01:39:13.317359" elapsed="0.000239"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-09-01T01:39:13.310549" elapsed="0.007162"/>
</kw>
<msg time="2026-09-01T01:39:13.318045" level="INFO">${output} = cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.170.65:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with 100...</msg>
<var>${output}</var>
<arg>${cbench_system}</arg>
<arg>${cbench_executable} -c ${ODL_SYSTEM_IP} ${cbench_args}</arg>
<arg>prompt_timeout=${test_timeout}</arg>
<arg>return_stdout=False</arg>
<arg>return_stderr=True</arg>
<doc>Reduces the common work of running a command on a remote system to a single higher level
robot keyword, taking care to log in with a public key and. The command given is written and the return value
depends on the passed argument values of return_stdout (default: True) and return_stderr (default: False).
At least one should be True, or the keyword will exit and FAIL. If both are True, the resulting return value
will be a two element list containing both. Otherwise the resulting return value is a string.
No test conditions are checked.</doc>
<status status="PASS" start="2026-09-01T01:29:06.429076" elapsed="606.889025"/>
</kw>
<status status="PASS" start="2026-09-01T01:29:06.428754" elapsed="606.889446"/>
</branch>
<status status="PASS" start="2026-09-01T01:29:06.428450" elapsed="606.889799"/>
</if>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-01T01:39:13.319249" level="INFO">cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.170.65: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.65. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
01:30:12.388 16  switches: flows:  84347 83627 82324 82336 83926 82985 83333 83904 81888 81333 80568 83563 82088 82421 82008 81282  total = 22.032217 per ms 
01:31:12.489 16  switches: flows:  98706 96802 98286 93796 96674 95639 97162 98262 94508 93904 93125 96695 93691 94094 93271 91816  total = 25.398134 per ms 
01:32:12.590 16  switches: flows:  106398 105261 105784 101073 104120 104500 103038 106251 100389 101760 99943 103101 99325 101767 100003 97523  total = 27.291676 per ms 
01:33:12.691 16  switches: flows:  107185 103458 105753 100544 104926 103879 103690 105488 100945 99762 100072 104595 100154 101693 101237 98414  total = 27.317645 per ms 
01:34:12.792 16  switches: flows:  106977 103401 106644 99697 104737 104527 103591 105981 101784 101052 101997 102716 101302 102390 100248 98812  total = 27.385239 per ms 
01:35:12.892 16  switches: flows:  104235 99289 101101 98288 101811 101540 100184 102117 96851 97669 96009 101226 96098 99263 95485 95853  total = 26.406242 per ms 
01:36:12.993 16  switches: flows:  107927 102669 104695 101482 104904 103234 104565 104094 99835 101844 99726 102709 100133 101127 99313 99481  total = 27.250137 per ms 
01:37:13.094 16  switches: flows:  107116 103872 105355 101071 105681 102170 103946 105149 100042 102025 100025 103886 100769 102312 101066 99414  total = 27.352671 per ms 
01:38:13.194 16  switches: flows:  108258 103479 104883 103484 105686 102609 104760 105391 101645 101906 100417 103940 99258 102484 98709 99753  total = 27.398595 per ms 
01:39:13.295 16  switches: flows:  107473 101670 104515 101321 106006 102077 103904 105881 99339 100928 99801 102139 99243 101143 98319 99811  total = 27.180772 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 25398.13/27398.60/26997.90/9021.69 responses/s</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-01T01:39:13.318593" elapsed="0.000840"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${output}</arg>
<arg>RESULT</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-01T01:39:13.319771" elapsed="0.000804"/>
</kw>
<kw name="Get Lines Containing String" owner="String">
<msg time="2026-09-01T01:39:13.321443" level="INFO">1 out of 23 lines matched.</msg>
<msg time="2026-09-01T01:39:13.321633" level="INFO">${result_line} = RESULT: 16 switches 9 tests min/max/avg/stdev = 25398.13/27398.60/26997.90/9021.69 responses/s</msg>
<var>${result_line}</var>
<arg>${output}</arg>
<arg>RESULT</arg>
<doc>Returns lines of the given ``string`` that contain the ``pattern``.</doc>
<status status="PASS" start="2026-09-01T01:39:13.320972" elapsed="0.000726"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-09-01T01:39:13.322620" level="INFO">@{results_list} = [ RESULT: | 16 | switches | 9 | tests | min/max/avg/stdev | = | 25398.13/27398.60/26997.90/9021.69 | responses/s ]</msg>
<var>@{results_list}</var>
<arg>${result_line}</arg>
<doc>Splits the ``string`` using ``separator`` as a delimiter string.</doc>
<status status="PASS" start="2026-09-01T01:39:13.322064" elapsed="0.000613"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-01T01:39:13.327802" level="INFO">min/max/avg/stdev</msg>
<arg>${results_list[5]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-01T01:39:13.323041" elapsed="0.004926"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-01T01:39:13.333058" level="INFO">25398.13/27398.60/26997.90/9021.69</msg>
<arg>${results_list[7]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-01T01:39:13.328290" elapsed="0.004910"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-09-01T01:39:13.338251" level="INFO">@{result_name_list} = [ min | max | avg | stdev ]</msg>
<var>@{result_name_list}</var>
<arg>${results_list[5]}</arg>
<arg>/</arg>
<doc>Splits the ``string`` using ``separator`` as a delimiter string.</doc>
<status status="PASS" start="2026-09-01T01:39:13.333546" elapsed="0.004793"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-09-01T01:39:13.344066" level="INFO">@{result_value_list} = [ 25398.13 | 27398.60 | 26997.90 | 9021.69 ]</msg>
<var>@{result_value_list}</var>
<arg>${results_list[7]}</arg>
<arg>/</arg>
<doc>Splits the ``string`` using ``separator`` as a delimiter string.</doc>
<status status="PASS" start="2026-09-01T01:39:13.338751" elapsed="0.005373"/>
</kw>
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-09-01T01:39:13.345157" level="INFO">Length is 4.</msg>
<msg time="2026-09-01T01:39:13.345364" level="INFO">${num_stats} = 4</msg>
<var>${num_stats}</var>
<arg>${result_name_list}</arg>
<doc>Returns and logs the length of the given item as an integer.</doc>
<status status="PASS" start="2026-09-01T01:39:13.344462" elapsed="0.000953"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-01T01:39:13.352388" level="INFO">min :: 25398.13</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-01T01:39:13.346261" elapsed="0.006202"/>
</kw>
<var name="${i}">0</var>
<status status="PASS" start="2026-09-01T01:39:13.345992" elapsed="0.006520"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-01T01:39:13.358610" level="INFO">max :: 27398.60</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-01T01:39:13.352877" elapsed="0.005806"/>
</kw>
<var name="${i}">1</var>
<status status="PASS" start="2026-09-01T01:39:13.352652" elapsed="0.006075"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-01T01:39:13.364662" level="INFO">avg :: 26997.90</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-01T01:39:13.359076" elapsed="0.005658"/>
</kw>
<var name="${i}">2</var>
<status status="PASS" start="2026-09-01T01:39:13.358835" elapsed="0.005943"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-01T01:39:13.370703" level="INFO">stdev :: 9021.69</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-01T01:39:13.365072" elapsed="0.005704"/>
</kw>
<var name="${i}">3</var>
<status status="PASS" start="2026-09-01T01:39:13.364886" elapsed="0.005934"/>
</iter>
<var>${i}</var>
<value>0</value>
<value>${num_stats}</value>
<status status="PASS" start="2026-09-01T01:39:13.345541" elapsed="0.025318"/>
</for>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-09-01T01:39:13.374999" level="INFO">${min} = 25398.13</msg>
<var>${min}</var>
<arg>${result_value_list[${0}]}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-09-01T01:39:13.371082" elapsed="0.003941"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-09-01T01:39:13.378619" level="INFO">${max} = 27398.60</msg>
<var>${max}</var>
<arg>${result_value_list[${1}]}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-09-01T01:39:13.375167" elapsed="0.003476"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-09-01T01:39:13.382250" level="INFO">${average} = 26997.90</msg>
<var>${average}</var>
<arg>${result_value_list[${2}]}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-09-01T01:39:13.378783" elapsed="0.003491"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-09-01T01:39:13.385912" level="INFO">${stdev} = 9021.69</msg>
<var>${stdev}</var>
<arg>${result_value_list[${3}]}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-09-01T01:39:13.382430" elapsed="0.003508"/>
</kw>
<kw name="Get Time" owner="BuiltIn">
<msg time="2026-09-01T01:39:13.386424" level="INFO">${date} = 2026-09-01 01:39:13</msg>
<var>${date}</var>
<arg>d,m,s</arg>
<doc>Returns the given time in the requested format.</doc>
<status status="PASS" start="2026-09-01T01:39:13.386092" elapsed="0.000356"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-01T01:39:13.386979" level="INFO">CBench Result: 2026-09-01 01:39:13,-m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633,25398.13,27398.60,26997.90,9021.69</msg>
<arg>CBench Result: ${date},${cbench_args},${min},${max},${average},${stdev}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-01T01:39:13.386594" elapsed="0.000437"/>
</kw>
<kw name="Log Results And Determine Status">
<kw name="Append To File" owner="OperatingSystem">
<msg time="2026-09-01T01:39:13.388053" level="INFO" html="true">Appended to file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-cbench-only-manganese/bug.csv"&gt;/w/workspace/openflowplugin-csit-1node-cbench-only-manganese/bug.csv&lt;/a&gt;'.</msg>
<arg>${output_file}</arg>
<arg>${min},${max},${average}\n</arg>
<doc>Appends the given content to the specified file.</doc>
<status status="PASS" start="2026-09-01T01:39:13.387609" elapsed="0.000507"/>
</kw>
<kw name="Should Be True" owner="BuiltIn">
<arg>${average} &gt; ${threshold}</arg>
<arg>${average} flow_mods per/sec did not exceed threshold of ${threshold}</arg>
<doc>Fails if the given condition is not true.</doc>
<status status="PASS" start="2026-09-01T01:39:13.388254" 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-09-01T01:39:13.387160" elapsed="0.001609"/>
</kw>
<arg>-m ${duration_in_ms} -M ${num_of_unique_macs} -S ${switch_count} -l ${loops} -D ${start_delay} -p ${of_port}</arg>
<arg>${latency_threshold}</arg>
<arg>bug.csv</arg>
<status status="PASS" start="2026-09-01T01:29:06.427494" elapsed="606.961326"/>
</kw>
<kw name="Sleep" owner="BuiltIn">
<msg time="2026-09-01T01:39:13.389253" level="INFO">Slept 0 seconds.</msg>
<arg>${test_delay}</arg>
<doc>Pauses the test executed for the given time.</doc>
<status status="PASS" start="2026-09-01T01:39:13.388970" elapsed="0.000335"/>
</kw>
<kw name="Report Failure Due To Bug" owner="Utils" type="TEARDOWN">
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-09-01T01:39:13.390454" level="INFO">${test_skipped} = False</msg>
<var>${test_skipped}</var>
<arg>len(re.findall('SKIPPED', """${TEST_MESSAGE}""")) &gt; 0</arg>
<arg>modules=re</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-09-01T01:39:13.389993" elapsed="0.000486"/>
</kw>
<if>
<branch type="IF" condition="('${TEST_STATUS}' != 'FAIL') or ${test_skipped}">
<return>
<status status="PASS" start="2026-09-01T01:39:13.390696" elapsed="0.000029"/>
</return>
<status status="PASS" start="2026-09-01T01:39:13.390549" elapsed="0.000205"/>
</branch>
<status status="PASS" start="2026-09-01T01:39:13.390530" elapsed="0.000246"/>
</if>
<kw name="Comment" owner="BuiltIn">
<arg>Jira tickets are {PROJECT}-{NUMBER} while Bugzilla tickets are {NUMBER}</arg>
<doc>Displays the given messages in the log file as keyword arguments.</doc>
<status status="NOT RUN" start="2026-09-01T01:39:13.390923" 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-09-01T01:39:13.391069" elapsed="0.000019"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<var>${bug_url}</var>
<arg>${match}</arg>
<arg>https://jira.opendaylight.org/browse/${number}</arg>
<arg>https://bugs.opendaylight.org/show_bug.cgi?id=${number}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="NOT RUN" start="2026-09-01T01:39:13.391213" elapsed="0.000018"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<var>${msg}</var>
<arg>This test fails due to ${bug_url}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="NOT RUN" start="2026-09-01T01:39:13.391406" elapsed="0.000020"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${newline}</var>
<arg>chr(10)</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-09-01T01:39:13.391545" elapsed="0.000019"/>
</kw>
<kw name="Set Test Message" owner="BuiltIn">
<arg>${msg}${newline}${newline}${TEST_MESSAGE}</arg>
<doc>Sets message for the current test case.</doc>
<status status="NOT RUN" start="2026-09-01T01:39:13.391697" elapsed="0.000020"/>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${msg}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-09-01T01:39:13.391833" elapsed="0.000018"/>
</kw>
<if>
<branch type="IF" condition="&quot;${include_bug_in_tags}&quot;==&quot;True&quot;">
<kw name="Set Tags" owner="BuiltIn">
<arg>${bug_url}</arg>
<doc>Adds given ``tags`` for the current test or all tests in a suite.</doc>
<status status="NOT RUN" start="2026-09-01T01:39:13.392053" elapsed="0.000019"/>
</kw>
<status status="NOT RUN" start="2026-09-01T01:39:13.391925" elapsed="0.000176"/>
</branch>
<status status="NOT RUN" start="2026-09-01T01:39:13.391893" elapsed="0.000229"/>
</if>
<arg>6176</arg>
<doc>Report that a test failed due to a known Bugzilla bug whose
number is provided as an argument.
Not FAILED (incl. SKIPPED) test are not reported.
This keyword must be used in the [Teardown] setting of the affected test
or as the first line of the test if FastFail module is not being
used. It reports the URL of the bug on console and also puts it
into the Robot log file.</doc>
<status status="PASS" start="2026-09-01T01:39:13.389671" elapsed="0.002496"/>
</kw>
<doc>cbench executed in latency mode to see if controller is healthy</doc>
<tag>cbench</tag>
<tag>latency</tag>
<timeout value="15 minutes"/>
<status status="PASS" start="2026-09-01T01:29:06.426126" elapsed="606.966082"/>
</test>
<doc>Cbench Latency and Throughput tests can be run from an external
cbench.
If cbench is run with a medium number of switches or higher (e.g. 32+)
the normal openflow operations seem to break.
BUG: https://bugs.opendaylight.org/show_bug.cgi?id=2897</doc>
<status status="PASS" start="2026-09-01T01:08:50.483492" elapsed="1822.909362"/>
</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>
