<?xml version="1.0" encoding="UTF-8"?>
<robot generator="Robot 7.4.2 (Python 3.11.10 on linux)" generated="2026-08-29T00:40:44.449544" rpa="false" schemaversion="5">
<suite id="s1" name="openflowplugin-cbench.txt" source="/w/workspace/openflowplugin-csit-1node-cbench-only-vanadium/test/csit/suites/openflowplugin/Performance/010_Cbench.robot">
<kw name="Cbench Suite Setup" type="SETUP">
<kw name="Wait Until Keyword Succeeds" owner="BuiltIn">
<kw name="Issue_Command_On_Karaf_Console" owner="KarafKeywords">
<if>
<branch type="IF" condition="'${IS_KARAF_APPL}' == 'False'">
<return>
<value>Not A Karaf App</value>
<status status="NOT RUN" start="2026-08-29T00:40:44.976085" elapsed="0.000026"/>
</return>
<status status="NOT RUN" start="2026-08-29T00:40:44.975935" elapsed="0.000251"/>
</branch>
<status status="PASS" start="2026-08-29T00:40:44.975897" elapsed="0.000315"/>
</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-08-29T00:40:44.976349" elapsed="0.000569"/>
</kw>
<kw name="Login" owner="SSHLibrary">
<msg time="2026-08-29T00:40:44.977400" level="INFO">Logging into '10.30.171.205:8101' as 'karaf'.</msg>
<msg time="2026-08-29T00:40:45.635266" 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-08-29T00:40:44.977083" elapsed="0.658330"/>
</kw>
<kw name="Write" owner="SSHLibrary">
<msg time="2026-08-29T00:40:45.684294" 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-08-29T00:40:45.635676" elapsed="0.048705"/>
</kw>
<kw name="Read Until Regexp" owner="SSHLibrary">
<msg time="2026-08-29T00:40:45.686094" level="INFO">[?1l&gt;[?2004l[?1h=[90m~[0m                                                                                [?2004hopendaylight-user@root&gt;</msg>
<msg time="2026-08-29T00:40:45.686210" 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-08-29T00:40:45.684573" elapsed="0.001663"/>
</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-08-29T00:40:45.686383" elapsed="0.000222"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-08-29T00:40:45.686779" elapsed="0.000244"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-29T00:40:45.687533" 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-08-29T00:40:45.687171" elapsed="0.000413"/>
</kw>
<return>
<value>${output}</value>
<status status="PASS" start="2026-08-29T00:40:45.687723" elapsed="0.000081"/>
</return>
<arg>log:set ${log_level}</arg>
<doc>Will execute the given ${cmd} by ssh'ing to the karaf console running on 10.30.171.205
Note that this keyword will open&amp;close new SSH connection, without switching back to previously current session.</doc>
<status status="PASS" start="2026-08-29T00:40:44.975527" elapsed="0.712425"/>
</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-08-29T00:40:44.971847" elapsed="0.716174"/>
</kw>
<kw name="Append To File" owner="OperatingSystem">
<msg time="2026-08-29T00:40:45.688741" level="INFO" html="true">Appended to file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-cbench-only-vanadium/latency.csv"&gt;/w/workspace/openflowplugin-csit-1node-cbench-only-vanadium/latency.csv&lt;/a&gt;'.</msg>
<arg>${latency_results_file}</arg>
<arg>LATENCY_MIN,LATENCY_MAX,LATENCY_AVERAGE\n</arg>
<doc>Appends the given content to the specified file.</doc>
<status status="PASS" start="2026-08-29T00:40:45.688239" elapsed="0.000556"/>
</kw>
<kw name="Append To File" owner="OperatingSystem">
<msg time="2026-08-29T00:40:45.689162" level="INFO" html="true">Appended to file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-cbench-only-vanadium/throughput.csv"&gt;/w/workspace/openflowplugin-csit-1node-cbench-only-vanadium/throughput.csv&lt;/a&gt;'.</msg>
<arg>${throughput_results_file}</arg>
<arg>THROUGHPUT_MIN,THROUGHPUT_MAX,THROUGHPUT_AVERAGE\n</arg>
<doc>Appends the given content to the specified file.</doc>
<status status="PASS" start="2026-08-29T00:40:45.688933" elapsed="0.000289"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-08-29T00:40:45.689837" 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-08-29T00:40:45.689370" elapsed="0.000493"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-08-29T00:40:45.690349" 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-08-29T00:40:45.690030" elapsed="0.000356"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-08-29T00:40:45.690904" 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-08-29T00:40:45.690516" elapsed="0.000412"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-08-29T00:40:45.691338" 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-08-29T00:40:45.691069" elapsed="0.000305"/>
</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-08-29T00:40:45.691745" elapsed="0.000019"/>
</kw>
<status status="NOT RUN" start="2026-08-29T00:40:45.691468" elapsed="0.000326"/>
</branch>
<branch type="ELSE">
<kw name="Verify File Exists On Remote System" owner="Utils">
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-08-29T00:40:45.696292" 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-08-29T00:40:45.695898" elapsed="0.000418"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-08-29T00:40:45.697333" level="INFO">Length is 0.</msg>
<msg time="2026-08-29T00:40:45.697406" 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-08-29T00:40:45.696843" elapsed="0.000584"/>
</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-08-29T00:40:45.697558" elapsed="0.000354"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-08-29T00:40:45.698907" level="INFO">Logging into '10.30.170.200:22' as 'jenkins'.</msg>
<msg time="2026-08-29T00:40:46.206827" 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 Sat Aug 29 00:40:02 UTC 2026

  System load:  0.13               Processes:             110
  Usage of /:   19.7% of 38.58GB   Users logged in:       0
  Memory usage: 4%                 IPv4 address for ens3: 10.30.170.200
  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-63164-383-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-08-29T00:40:45.698363" elapsed="0.508705"/>
</kw>
<msg time="2026-08-29T00:40:46.207195" 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-08-29T00:40:45.698050" elapsed="0.509288"/>
</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-08-29T00:40:45.696503" elapsed="0.510993"/>
</kw>
<kw name="File Should Exist" owner="SSHLibrary">
<msg time="2026-08-29T00:40:46.217809" 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-08-29T00:40:46.207839" elapsed="0.012263"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-08-29T00:40:46.220426" elapsed="0.000510"/>
</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-08-29T00:40:45.695373" elapsed="0.525657"/>
</kw>
<status status="PASS" start="2026-08-29T00:40:45.692157" elapsed="0.528923"/>
</branch>
<status status="PASS" start="2026-08-29T00:40:45.691438" elapsed="0.529702"/>
</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-08-29T00:40:46.221362" elapsed="0.000832"/>
</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-08-29T00:40:46.228202" elapsed="0.000028"/>
</return>
<status status="NOT RUN" start="2026-08-29T00:40:46.228033" elapsed="0.000243"/>
</branch>
<status status="PASS" start="2026-08-29T00:40:46.227996" elapsed="0.000311"/>
</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-08-29T00:40:46.232871" elapsed="0.000018"/>
</return>
<status status="NOT RUN" start="2026-08-29T00:40:46.232713" elapsed="0.000217"/>
</branch>
<status status="PASS" start="2026-08-29T00:40:46.232688" elapsed="0.000269"/>
</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-08-29T00:40:46.233137" elapsed="0.000629"/>
</kw>
<kw name="Login" owner="SSHLibrary">
<msg time="2026-08-29T00:40:46.234284" level="INFO">Logging into '10.30.171.205:8101' as 'karaf'.</msg>
<msg time="2026-08-29T00:40:46.465045" 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-08-29T00:40:46.233952" elapsed="0.231253"/>
</kw>
<kw name="Write" owner="SSHLibrary">
<msg time="2026-08-29T00:40:46.551569" 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-08-29T00:40:46.465476" elapsed="0.086227"/>
</kw>
<kw name="Read Until Regexp" owner="SSHLibrary">
<msg time="2026-08-29T00:40:46.556063" level="INFO">[?1l&gt;[?2004l[31;1modl-openflowplugin-drop-test[0m                                    x 0.21.4           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-08-29T00:40:46.556311" level="INFO">${output} = [?1l&gt;[?2004l[31;1modl-openflowplugin-drop-test[0m                                    x 0.21.4           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-08-29T00:40:46.551899" elapsed="0.004440"/>
</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-08-29T00:40:46.556470" elapsed="0.000239"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-08-29T00:40:46.556849" elapsed="0.000265"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-29T00:40:46.557592" level="INFO">[?1l&gt;[?2004l[31;1modl-openflowplugin-drop-test[0m                                    x 0.21.4           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-08-29T00:40:46.557244" elapsed="0.000443"/>
</kw>
<return>
<value>${output}</value>
<status status="PASS" start="2026-08-29T00:40:46.557744" elapsed="0.000079"/>
</return>
<msg time="2026-08-29T00:40:46.557988" level="INFO">${output} = [?1l&gt;[?2004l[31;1modl-openflowplugin-drop-test[0m                                    x 0.21.4           x x        x Started x [31;1modl-openflowplugin-drop-test[0m                     ...</msg>
<var>${output}</var>
<arg>feature:list -i | grep ${feature_name}</arg>
<arg>${controller}</arg>
<arg>${karaf_port}</arg>
<doc>Will execute the given ${cmd} by ssh'ing to the karaf console running on 10.30.171.205
Note that this keyword will open&amp;close new SSH connection, without switching back to previously current session.</doc>
<status status="PASS" start="2026-08-29T00:40:46.232243" elapsed="0.325774"/>
</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-08-29T00:40:46.558158" elapsed="0.000816"/>
</kw>
<return>
<value>${output}</value>
<status status="PASS" start="2026-08-29T00:40:46.559024" elapsed="0.000030"/>
</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-08-29T00:40:46.227562" elapsed="0.331587"/>
</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-08-29T00:40:46.563029" elapsed="0.000014"/>
</return>
<status status="NOT RUN" start="2026-08-29T00:40:46.562888" elapsed="0.000183"/>
</branch>
<status status="PASS" start="2026-08-29T00:40:46.562863" elapsed="0.000233"/>
</if>
<kw name="Open Connection" owner="SSHLibrary">
<arg>${controller}</arg>
<arg>port=${karaf_port}</arg>
<arg>prompt=${KARAF_PROMPT_LOGIN}</arg>
<arg>timeout=${timeout}</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-08-29T00:40:46.563216" elapsed="0.000814"/>
</kw>
<kw name="Login" owner="SSHLibrary">
<msg time="2026-08-29T00:40:46.564421" level="INFO">Logging into '10.30.171.205:8101' as 'karaf'.</msg>
<msg time="2026-08-29T00:40:46.737941" 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-08-29T00:40:46.564179" elapsed="0.173853"/>
</kw>
<kw name="Write" owner="SSHLibrary">
<msg time="2026-08-29T00:40:46.760185" 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-08-29T00:40:46.738191" elapsed="0.022065"/>
</kw>
<kw name="Read Until Regexp" owner="SSHLibrary">
<msg time="2026-08-29T00:40:46.762147" level="INFO">[?1l&gt;[?2004lDropAllFlows transitions to on
[?1h=[90m~[0m                                                                                [?2004hopendaylight-user@root&gt;</msg>
<msg time="2026-08-29T00:40:46.762254" 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-08-29T00:40:46.760431" elapsed="0.001850"/>
</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-08-29T00:40:46.762405" elapsed="0.000195"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-08-29T00:40:46.762770" elapsed="0.000212"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-29T00:40:46.763427" 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-08-29T00:40:46.763119" elapsed="0.000352"/>
</kw>
<return>
<value>${output}</value>
<status status="PASS" start="2026-08-29T00:40:46.763521" elapsed="0.000066"/>
</return>
<arg>dropallpacketsrpc on</arg>
<doc>Will execute the given ${cmd} by ssh'ing to the karaf console running on 10.30.171.205
Note that this keyword will open&amp;close new SSH connection, without switching back to previously current session.</doc>
<status status="PASS" start="2026-08-29T00:40:46.562516" elapsed="0.201224"/>
</kw>
<status status="PASS" start="2026-08-29T00:40:44.969909" elapsed="1.793897"/>
</kw>
<test id="s1-t1" name="Cbench Latency Test" line="37">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-29T00:40:46.766533" 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-08-29T00:40:46.765140" elapsed="0.001454"/>
</kw>
<kw name="Run Cbench And Log Results">
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-08-29T00:40:46.768290" 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-08-29T00:40:46.767953" elapsed="0.000375"/>
</kw>
<if>
<branch type="IF" condition="&quot;${cbench_system}&quot; == &quot;localhost&quot;">
<kw name="Run" owner="OperatingSystem">
<var>${output}</var>
<arg>${cbench_executable} -c ${ODL_SYSTEM_IP} ${cbench_args}</arg>
<doc>_This keyword is considered deprecated. Use the
[http://robotframework.org/robotframework/latest/libraries/Process.html|
Process] library instead._</doc>
<status status="NOT RUN" start="2026-08-29T00:40:46.768693" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-08-29T00:40:46.768409" elapsed="0.000342"/>
</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-08-29T00:40:46.771519" elapsed="0.000019"/>
</kw>
<status status="NOT RUN" start="2026-08-29T00:40:46.771292" elapsed="0.000277"/>
</branch>
<status status="PASS" start="2026-08-29T00:40:46.771275" elapsed="0.000317"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-08-29T00:40:46.771950" 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-08-29T00:40:46.772058" 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-08-29T00:40:46.771740" elapsed="0.000341"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-29T00:40:46.772572" level="INFO">Attempting to execute command "/usr/local/bin/cbench -c 10.30.171.205 -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633" on remote system "10.30.170.200" 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-08-29T00:40:46.772201" elapsed="0.000452"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-08-29T00:40:46.773263" 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-08-29T00:40:46.772789" elapsed="0.000497"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-08-29T00:40:46.774148" level="INFO">Length is 0.</msg>
<msg time="2026-08-29T00:40:46.774228" 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-08-29T00:40:46.773828" elapsed="0.000420"/>
</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-08-29T00:40:46.774379" elapsed="0.000344"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-08-29T00:40:46.775502" level="INFO">Logging into '10.30.170.200:22' as 'jenkins'.</msg>
<msg time="2026-08-29T00:40:47.175841" 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 Sat Aug 29 00:40:02 UTC 2026

  System load:  0.13               Processes:             110
  Usage of /:   19.7% of 38.58GB   Users logged in:       0
  Memory usage: 4%                 IPv4 address for ens3: 10.30.170.200
  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: Sat Aug 29 00:40:46 2026 from 10.30.171.240
[?2004h[jenkins@releng-63164-383-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-08-29T00:40:46.775185" elapsed="0.400905"/>
</kw>
<msg time="2026-08-29T00:40:47.176189" 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-08-29T00:40:46.774863" elapsed="0.401429"/>
</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-08-29T00:40:46.773468" elapsed="0.402956"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-08-29T00:40:47.177061" level="INFO">Executing command '/usr/local/bin/cbench -c 10.30.171.205 -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633'.</msg>
<msg time="2026-08-29T00:50:53.306983" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-08-29T00:50:53.307554" level="INFO">${stdout} = </msg>
<msg time="2026-08-29T00:50:53.307685" level="INFO">${stderr} = cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.171.205:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with 10...</msg>
<var>${stdout}</var>
<var>${stderr}</var>
<arg>${cmd}</arg>
<arg>return_stderr=True</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-08-29T00:40:47.176714" elapsed="606.131053"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-08-29T00:50:53.308219" elapsed="0.000735"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-29T00:50:53.310054" level="INFO">cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.171.205:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with 100 unique source MACs per switch
   learning destination mac addresses before the test
   starting test with 5000 ms delay after features_reply
   ignoring first 1 "warmup" and last 0 "cooldown" loops
   debugging info is off
Master Thread: Creating thread-0! 
Thread-0: All switches initialized. Running at node 10.30.171.205. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
00:41:52.391 16  switches: flows:  93352 93413 91457 93452 93455 92773 91012 93423 93450 91581 89606 88629 91634 88182 87458 88248  total = 24.352083 per ms 
00:42:52.492 16  switches: flows:  99870 100730 98207 99156 99752 99594 96941 100986 99683 97749 97627 94147 94229 94512 96557 94626  total = 26.029309 per ms 
00:43:52.592 16  switches: flows:  96222 98659 96664 97116 97367 97602 93944 98705 96533 96143 94871 93374 93979 93140 93318 91997  total = 25.451422 per ms 
00:44:52.693 16  switches: flows:  94158 95200 94505 91902 94993 94050 89751 95866 94795 92448 92628 90814 89963 90363 89861 88999  total = 24.630480 per ms 
00:45:52.794 16  switches: flows:  92782 93723 92962 91986 94045 92644 90754 94045 91513 91618 90173 88624 88528 89899 89152 88486  total = 24.308324 per ms 
00:46:52.894 16  switches: flows:  97111 97071 96279 95468 96537 95447 95825 96644 95374 93810 93800 91912 93290 90948 92117 91695  total = 25.180115 per ms 
00:47:52.995 16  switches: flows:  97676 98839 96855 96739 96070 96632 93678 98501 94915 94112 93450 92495 91799 92348 92578 91942  total = 25.268314 per ms 
00:48:53.095 16  switches: flows:  101091 100450 98536 98979 97877 98030 95687 99744 97570 96333 94931 93108 93581 93942 95503 94782  total = 25.792683 per ms 
00:49:53.196 16  switches: flows:  101637 100556 98096 98302 98658 97060 94847 99051 96640 94043 94431 90788 93524 92859 93808 93670  total = 25.590107 per ms 
00:50:53.296 16  switches: flows:  98326 98983 98668 96367 96507 96341 96633 99612 94872 93787 93246 92866 92765 93174 92967 91715  total = 25.404722 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 24308.32/26029.31/25295.05/8447.09 responses/s</msg>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-29T00:50:53.309280" elapsed="0.001037"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="PASS" start="2026-08-29T00:50:53.310876" elapsed="0.000074"/>
</return>
<status status="PASS" start="2026-08-29T00:50:53.310539" elapsed="0.000487"/>
</branch>
<status status="PASS" start="2026-08-29T00:50:53.310483" elapsed="0.000594"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="NOT RUN" start="2026-08-29T00:50:53.311270" elapsed="0.000027"/>
</return>
<status status="NOT RUN" start="2026-08-29T00:50:53.311195" elapsed="0.000158"/>
</branch>
<status status="NOT RUN" start="2026-08-29T00:50:53.311164" elapsed="0.000238"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-08-29T00:50:53.311495" elapsed="0.000031"/>
</return>
<kw name="Restore_Current_Ssh_Connection_From_Index" owner="SSHKeywords" type="TEARDOWN">
<kw name="Run Keyword And Return If" owner="BuiltIn">
<arg>${connection_index} is not None</arg>
<arg>SSHLibrary.Switch Connection</arg>
<arg>${connection_index}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-08-29T00:50:53.316811" elapsed="0.000670"/>
</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-08-29T00:50:53.317862" elapsed="0.000329"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-08-29T00:50:53.318457" elapsed="0.000231"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-08-29T00:50:53.312181" elapsed="0.006665"/>
</kw>
<msg time="2026-08-29T00:50:53.319104" level="INFO">${output} = cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.171.205:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with 10...</msg>
<var>${output}</var>
<arg>${cbench_system}</arg>
<arg>${cbench_executable} -c ${ODL_SYSTEM_IP} ${cbench_args}</arg>
<arg>prompt_timeout=${test_timeout}</arg>
<arg>return_stdout=False</arg>
<arg>return_stderr=True</arg>
<doc>Reduces the common work of running a command on a remote system to a single higher level
robot keyword, taking care to log in with a public key and. The command given is written and the return value
depends on the passed argument values of return_stdout (default: True) and return_stderr (default: False).
At least one should be True, or the keyword will exit and FAIL. If both are True, the resulting return value
will be a two element list containing both. Otherwise the resulting return value is a string.
No test conditions are checked.</doc>
<status status="PASS" start="2026-08-29T00:40:46.769088" elapsed="606.550069"/>
</kw>
<status status="PASS" start="2026-08-29T00:40:46.768780" elapsed="606.550471"/>
</branch>
<status status="PASS" start="2026-08-29T00:40:46.768385" elapsed="606.550911"/>
</if>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-29T00:50:53.320271" level="INFO">cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.171.205:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with 100 unique source MACs per switch
   learning destination mac addresses before the test
   starting test with 5000 ms delay after features_reply
   ignoring first 1 "warmup" and last 0 "cooldown" loops
   debugging info is off
Master Thread: Creating thread-0! 
Thread-0: All switches initialized. Running at node 10.30.171.205. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
00:41:52.391 16  switches: flows:  93352 93413 91457 93452 93455 92773 91012 93423 93450 91581 89606 88629 91634 88182 87458 88248  total = 24.352083 per ms 
00:42:52.492 16  switches: flows:  99870 100730 98207 99156 99752 99594 96941 100986 99683 97749 97627 94147 94229 94512 96557 94626  total = 26.029309 per ms 
00:43:52.592 16  switches: flows:  96222 98659 96664 97116 97367 97602 93944 98705 96533 96143 94871 93374 93979 93140 93318 91997  total = 25.451422 per ms 
00:44:52.693 16  switches: flows:  94158 95200 94505 91902 94993 94050 89751 95866 94795 92448 92628 90814 89963 90363 89861 88999  total = 24.630480 per ms 
00:45:52.794 16  switches: flows:  92782 93723 92962 91986 94045 92644 90754 94045 91513 91618 90173 88624 88528 89899 89152 88486  total = 24.308324 per ms 
00:46:52.894 16  switches: flows:  97111 97071 96279 95468 96537 95447 95825 96644 95374 93810 93800 91912 93290 90948 92117 91695  total = 25.180115 per ms 
00:47:52.995 16  switches: flows:  97676 98839 96855 96739 96070 96632 93678 98501 94915 94112 93450 92495 91799 92348 92578 91942  total = 25.268314 per ms 
00:48:53.095 16  switches: flows:  101091 100450 98536 98979 97877 98030 95687 99744 97570 96333 94931 93108 93581 93942 95503 94782  total = 25.792683 per ms 
00:49:53.196 16  switches: flows:  101637 100556 98096 98302 98658 97060 94847 99051 96640 94043 94431 90788 93524 92859 93808 93670  total = 25.590107 per ms 
00:50:53.296 16  switches: flows:  98326 98983 98668 96367 96507 96341 96633 99612 94872 93787 93246 92866 92765 93174 92967 91715  total = 25.404722 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 24308.32/26029.31/25295.05/8447.09 responses/s</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-29T00:50:53.319571" elapsed="0.000852"/>
</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-08-29T00:50:53.320779" elapsed="0.000830"/>
</kw>
<kw name="Get Lines Containing String" owner="String">
<msg time="2026-08-29T00:50:53.322543" level="INFO">1 out of 23 lines matched.</msg>
<msg time="2026-08-29T00:50:53.322781" level="INFO">${result_line} = RESULT: 16 switches 9 tests min/max/avg/stdev = 24308.32/26029.31/25295.05/8447.09 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-08-29T00:50:53.322050" elapsed="0.000785"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-08-29T00:50:53.323764" level="INFO">@{results_list} = [ RESULT: | 16 | switches | 9 | tests | min/max/avg/stdev | = | 24308.32/26029.31/25295.05/8447.09 | 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-08-29T00:50:53.323176" elapsed="0.000647"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-29T00:50:53.329287" 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-08-29T00:50:53.324150" elapsed="0.005262"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-29T00:50:53.334379" level="INFO">24308.32/26029.31/25295.05/8447.09</msg>
<arg>${results_list[7]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-29T00:50:53.329777" elapsed="0.004758"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-08-29T00:50:53.339597" 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-08-29T00:50:53.334904" elapsed="0.004819"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-08-29T00:50:53.344867" level="INFO">@{result_value_list} = [ 24308.32 | 26029.31 | 25295.05 | 8447.09 ]</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-08-29T00:50:53.340138" elapsed="0.004800"/>
</kw>
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-08-29T00:50:53.346129" level="INFO">Length is 4.</msg>
<msg time="2026-08-29T00:50:53.346311" 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-08-29T00:50:53.345267" elapsed="0.001091"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-29T00:50:53.354880" level="INFO">min :: 24308.32</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-08-29T00:50:53.347233" elapsed="0.007719"/>
</kw>
<var name="${i}">0</var>
<status status="PASS" start="2026-08-29T00:50:53.346909" elapsed="0.008086"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-29T00:50:53.360798" level="INFO">max :: 26029.31</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-08-29T00:50:53.355271" elapsed="0.005598"/>
</kw>
<var name="${i}">1</var>
<status status="PASS" start="2026-08-29T00:50:53.355108" elapsed="0.005805"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-29T00:50:53.366712" level="INFO">avg :: 25295.05</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-08-29T00:50:53.361186" elapsed="0.005610"/>
</kw>
<var name="${i}">2</var>
<status status="PASS" start="2026-08-29T00:50:53.361025" elapsed="0.005815"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-29T00:50:53.373234" level="INFO">stdev :: 8447.09</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-08-29T00:50:53.367115" elapsed="0.006199"/>
</kw>
<var name="${i}">3</var>
<status status="PASS" start="2026-08-29T00:50:53.366953" elapsed="0.006410"/>
</iter>
<var>${i}</var>
<value>0</value>
<value>${num_stats}</value>
<status status="PASS" start="2026-08-29T00:50:53.346483" elapsed="0.026928"/>
</for>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-08-29T00:50:53.377926" level="INFO">${min} = 24308.32</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-08-29T00:50:53.373680" elapsed="0.004269"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-08-29T00:50:53.382564" level="INFO">${max} = 26029.31</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-08-29T00:50:53.378084" elapsed="0.004504"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-08-29T00:50:53.386058" level="INFO">${average} = 25295.05</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-08-29T00:50:53.382752" elapsed="0.003330"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-08-29T00:50:53.389522" level="INFO">${stdev} = 8447.09</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-08-29T00:50:53.386215" elapsed="0.003330"/>
</kw>
<kw name="Get Time" owner="BuiltIn">
<msg time="2026-08-29T00:50:53.390029" level="INFO">${date} = 2026-08-29 00:50:53</msg>
<var>${date}</var>
<arg>d,m,s</arg>
<doc>Returns the given time in the requested format.</doc>
<status status="PASS" start="2026-08-29T00:50:53.389710" elapsed="0.000342"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-29T00:50:53.390539" level="INFO">CBench Result: 2026-08-29 00:50:53,-m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633,24308.32,26029.31,25295.05,8447.09</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-08-29T00:50:53.390179" elapsed="0.000408"/>
</kw>
<kw name="Log Results And Determine Status">
<kw name="Append To File" owner="OperatingSystem">
<msg time="2026-08-29T00:50:53.391552" level="INFO" html="true">Appended to file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-cbench-only-vanadium/latency.csv"&gt;/w/workspace/openflowplugin-csit-1node-cbench-only-vanadium/latency.csv&lt;/a&gt;'.</msg>
<arg>${output_file}</arg>
<arg>${min},${max},${average}\n</arg>
<doc>Appends the given content to the specified file.</doc>
<status status="PASS" start="2026-08-29T00:50:53.391174" elapsed="0.000436"/>
</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-08-29T00:50:53.391853" elapsed="0.000416"/>
</kw>
<arg>${min}</arg>
<arg>${max}</arg>
<arg>${average}</arg>
<arg>${average_threshold}</arg>
<arg>${output_filename}</arg>
<status status="PASS" start="2026-08-29T00:50:53.390754" elapsed="0.001572"/>
</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-08-29T00:40:46.767124" elapsed="606.625253"/>
</kw>
<kw name="Sleep" owner="BuiltIn">
<msg time="2026-08-29T00:50:53.392828" 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-08-29T00:50:53.392506" elapsed="0.000372"/>
</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-08-29T00:50:53.393326" elapsed="0.000235"/>
</kw>
<status status="PASS" start="2026-08-29T00:50:53.393061" elapsed="0.000560"/>
</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-08-29T00:40:46.764034" elapsed="606.629638"/>
</test>
<test id="s1-t2" name="Cbench Throughput Test" line="51">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-29T00:50:53.394944" 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-08-29T00:50:53.394578" elapsed="0.000416"/>
</kw>
<kw name="Run Cbench And Log Results">
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-08-29T00:50:53.396074" 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-08-29T00:50:53.395788" elapsed="0.000323"/>
</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-08-29T00:50:53.396403" elapsed="0.000019"/>
</kw>
<status status="NOT RUN" start="2026-08-29T00:50:53.396175" elapsed="0.000279"/>
</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-08-29T00:50:53.398999" elapsed="0.000018"/>
</kw>
<status status="NOT RUN" start="2026-08-29T00:50:53.398778" elapsed="0.000270"/>
</branch>
<status status="PASS" start="2026-08-29T00:50:53.398762" elapsed="0.000307"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-08-29T00:50:53.399370" 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-08-29T00:50:53.399471" 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-08-29T00:50:53.399185" elapsed="0.000309"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-29T00:50:53.400005" level="INFO">Attempting to execute command "/usr/local/bin/cbench -c 10.30.171.205 -t -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633" on remote system "10.30.170.200" 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-08-29T00:50:53.399611" elapsed="0.000444"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-08-29T00:50:53.400520" 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-08-29T00:50:53.400176" elapsed="0.000367"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-08-29T00:50:53.401350" level="INFO">Length is 0.</msg>
<msg time="2026-08-29T00:50:53.401426" 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-08-29T00:50:53.401073" elapsed="0.000374"/>
</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-08-29T00:50:53.401571" elapsed="0.000324"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-08-29T00:50:53.402661" level="INFO">Logging into '10.30.170.200:22' as 'jenkins'.</msg>
<msg time="2026-08-29T00:50:54.037880" 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 Sat Aug 29 00:50:53 UTC 2026

  System load:  1.01               Processes:             105
  Usage of /:   20.2% of 38.58GB   Users logged in:       0
  Memory usage: 4%                 IPv4 address for ens3: 10.30.170.200
  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: Sat Aug 29 00:40:47 2026 from 10.30.171.240
[?2004h[jenkins@releng-63164-383-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-08-29T00:50:53.402339" elapsed="0.635715"/>
</kw>
<msg time="2026-08-29T00:50:54.038128" 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-08-29T00:50:53.402027" elapsed="0.636181"/>
</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-08-29T00:50:53.400748" elapsed="0.637561"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-08-29T00:50:54.038803" level="INFO">Executing command '/usr/local/bin/cbench -c 10.30.171.205 -t -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633'.</msg>
<msg time="2026-08-29T01:01:00.119953" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-08-29T01:01:00.120601" level="INFO">${stdout} = </msg>
<msg time="2026-08-29T01:01:00.120749" level="INFO">${stderr} = cbench: controller benchmarking tool
   running in mode 'throughput'
   connecting to controller at 10.30.171.205: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-08-29T00:50:54.038504" elapsed="606.082319"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-08-29T01:01:00.121397" elapsed="0.000903"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-29T01:01:00.123684" level="INFO">cbench: controller benchmarking tool
   running in mode 'throughput'
   connecting to controller at 10.30.171.205:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with 100 unique source MACs per switch
   learning destination mac addresses before the test
   starting test with 5000 ms delay after features_reply
   ignoring first 1 "warmup" and last 0 "cooldown" loops
   debugging info is off
Master Thread: Creating thread-0! 
Thread-0: All switches initialized. Running at node 10.30.171.205. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
00:51:59.173 16  switches: flows:  690396 675552 684092 677509 679308 665112 679132 674221 681805 679952 683427 674925 675803 676273 674329 677217  total = 180.817550 per ms 
00:52:59.275 16  switches: flows:  766627 768643 767241 773354 768724 768316 773487 766602 769627 773945 773702 773213 763502 765622 762696 765467  total = 204.668275 per ms 
00:53:59.385 16  switches: flows:  772946 769286 763117 768894 777373 776182 769166 771977 765068 761372 768332 764443 772902 771119 769213 767349  total = 204.772394 per ms 
00:54:59.487 16  switches: flows:  788622 789687 789094 792457 786008 787865 793598 787542 799917 784267 793482 787974 793676 795945 791922 785892  total = 210.443950 per ms 
00:55:59.590 16  switches: flows:  779732 781693 785722 789239 798903 785338 794515 789678 777205 787589 786485 784747 801391 784389 783357 775331  total = 209.401007 per ms 
00:56:59.692 16  switches: flows:  780553 778583 782420 790125 784670 785267 788049 778979 780425 781598 779250 779285 786089 789164 788260 774865  total = 208.441452 per ms 
00:57:59.794 16  switches: flows:  768341 770310 776581 776908 776653 769400 774452 762192 767988 773148 776217 764883 768805 775334 778967 769613  total = 205.483664 per ms 
00:58:59.895 16  switches: flows:  785399 786480 784678 785105 775883 779360 774197 773128 788852 787611 778234 777179 787237 783599 769146 779589  total = 207.911223 per ms 
00:59:59.996 16  switches: flows:  782508 784746 791915 794757 786389 784731 780377 790240 781997 792467 786091 783880 785633 781988 779694 785902  total = 209.204191 per ms 
01:01:00.098 16  switches: flows:  778353 767688 772724 773720 775677 780593 772770 777860 774476 780516 776750 772714 781718 777507 774216 779123  total = 206.588989 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 204668.28/210443.95/207435.02/69174.37 responses/s</msg>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-29T01:01:00.122734" elapsed="0.001302"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="PASS" start="2026-08-29T01:01:00.124606" elapsed="0.000108"/>
</return>
<status status="PASS" start="2026-08-29T01:01:00.124293" elapsed="0.000517"/>
</branch>
<status status="PASS" start="2026-08-29T01:01:00.124236" elapsed="0.000626"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="NOT RUN" start="2026-08-29T01:01:00.125050" elapsed="0.000024"/>
</return>
<status status="NOT RUN" start="2026-08-29T01:01:00.124978" elapsed="0.000150"/>
</branch>
<status status="NOT RUN" start="2026-08-29T01:01:00.124947" elapsed="0.000246"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-08-29T01:01:00.125252" 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-08-29T01:01:00.130472" elapsed="0.000765"/>
</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-08-29T01:01:00.131535" elapsed="0.000354"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-08-29T01:01:00.132187" elapsed="0.000216"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-08-29T01:01:00.125906" elapsed="0.006601"/>
</kw>
<msg time="2026-08-29T01:01:00.132787" level="INFO">${output} = cbench: controller benchmarking tool
   running in mode 'throughput'
   connecting to controller at 10.30.171.205: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-08-29T00:50:53.396780" elapsed="606.736059"/>
</kw>
<status status="PASS" start="2026-08-29T00:50:53.396476" elapsed="606.736457"/>
</branch>
<status status="PASS" start="2026-08-29T00:50:53.396156" elapsed="606.736822"/>
</if>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-29T01:01:00.133905" level="INFO">cbench: controller benchmarking tool
   running in mode 'throughput'
   connecting to controller at 10.30.171.205:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with 100 unique source MACs per switch
   learning destination mac addresses before the test
   starting test with 5000 ms delay after features_reply
   ignoring first 1 "warmup" and last 0 "cooldown" loops
   debugging info is off
Master Thread: Creating thread-0! 
Thread-0: All switches initialized. Running at node 10.30.171.205. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
00:51:59.173 16  switches: flows:  690396 675552 684092 677509 679308 665112 679132 674221 681805 679952 683427 674925 675803 676273 674329 677217  total = 180.817550 per ms 
00:52:59.275 16  switches: flows:  766627 768643 767241 773354 768724 768316 773487 766602 769627 773945 773702 773213 763502 765622 762696 765467  total = 204.668275 per ms 
00:53:59.385 16  switches: flows:  772946 769286 763117 768894 777373 776182 769166 771977 765068 761372 768332 764443 772902 771119 769213 767349  total = 204.772394 per ms 
00:54:59.487 16  switches: flows:  788622 789687 789094 792457 786008 787865 793598 787542 799917 784267 793482 787974 793676 795945 791922 785892  total = 210.443950 per ms 
00:55:59.590 16  switches: flows:  779732 781693 785722 789239 798903 785338 794515 789678 777205 787589 786485 784747 801391 784389 783357 775331  total = 209.401007 per ms 
00:56:59.692 16  switches: flows:  780553 778583 782420 790125 784670 785267 788049 778979 780425 781598 779250 779285 786089 789164 788260 774865  total = 208.441452 per ms 
00:57:59.794 16  switches: flows:  768341 770310 776581 776908 776653 769400 774452 762192 767988 773148 776217 764883 768805 775334 778967 769613  total = 205.483664 per ms 
00:58:59.895 16  switches: flows:  785399 786480 784678 785105 775883 779360 774197 773128 788852 787611 778234 777179 787237 783599 769146 779589  total = 207.911223 per ms 
00:59:59.996 16  switches: flows:  782508 784746 791915 794757 786389 784731 780377 790240 781997 792467 786091 783880 785633 781988 779694 785902  total = 209.204191 per ms 
01:01:00.098 16  switches: flows:  778353 767688 772724 773720 775677 780593 772770 777860 774476 780516 776750 772714 781718 777507 774216 779123  total = 206.588989 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 204668.28/210443.95/207435.02/69174.37 responses/s</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-29T01:01:00.133275" elapsed="0.000779"/>
</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-08-29T01:01:00.134396" elapsed="0.000772"/>
</kw>
<kw name="Get Lines Containing String" owner="String">
<msg time="2026-08-29T01:01:00.135944" level="INFO">1 out of 23 lines matched.</msg>
<msg time="2026-08-29T01:01:00.136119" level="INFO">${result_line} = RESULT: 16 switches 9 tests min/max/avg/stdev = 204668.28/210443.95/207435.02/69174.37 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-08-29T01:01:00.135487" elapsed="0.000699"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-08-29T01:01:00.137170" level="INFO">@{results_list} = [ RESULT: | 16 | switches | 9 | tests | min/max/avg/stdev | = | 204668.28/210443.95/207435.02/69174.37 | 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-08-29T01:01:00.136491" elapsed="0.000750"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-29T01:01:00.142724" 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-08-29T01:01:00.137594" elapsed="0.005244"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-29T01:01:00.147784" level="INFO">204668.28/210443.95/207435.02/69174.37</msg>
<arg>${results_list[7]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-29T01:01:00.143149" elapsed="0.004747"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-08-29T01:01:00.152608" 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-08-29T01:01:00.148218" elapsed="0.004473"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-08-29T01:01:00.157722" level="INFO">@{result_value_list} = [ 204668.28 | 210443.95 | 207435.02 | 69174.37 ]</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-08-29T01:01:00.153065" elapsed="0.004715"/>
</kw>
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-08-29T01:01:00.158760" level="INFO">Length is 4.</msg>
<msg time="2026-08-29T01:01:00.158935" 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-08-29T01:01:00.158088" elapsed="0.000893"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-29T01:01:00.167424" level="INFO">min :: 204668.28</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-29T01:01:00.159859" elapsed="0.007635"/>
</kw>
<var name="${i}">0</var>
<status status="PASS" start="2026-08-29T01:01:00.159532" elapsed="0.008006"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-29T01:01:00.173300" level="INFO">max :: 210443.95</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-08-29T01:01:00.167831" elapsed="0.005556"/>
</kw>
<var name="${i}">1</var>
<status status="PASS" start="2026-08-29T01:01:00.167670" elapsed="0.005772"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-29T01:01:00.179271" level="INFO">avg :: 207435.02</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-08-29T01:01:00.173757" elapsed="0.005600"/>
</kw>
<var name="${i}">2</var>
<status status="PASS" start="2026-08-29T01:01:00.173558" elapsed="0.005845"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-29T01:01:00.185451" level="INFO">stdev :: 69174.37</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-08-29T01:01:00.179706" elapsed="0.005814"/>
</kw>
<var name="${i}">3</var>
<status status="PASS" start="2026-08-29T01:01:00.179516" elapsed="0.006046"/>
</iter>
<var>${i}</var>
<value>0</value>
<value>${num_stats}</value>
<status status="PASS" start="2026-08-29T01:01:00.159105" elapsed="0.026495"/>
</for>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-08-29T01:01:00.190578" level="INFO">${min} = 204668.28</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-08-29T01:01:00.185821" elapsed="0.004789"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-08-29T01:01:00.195501" level="INFO">${max} = 210443.95</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-08-29T01:01:00.190825" elapsed="0.004709"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-08-29T01:01:00.200500" level="INFO">${average} = 207435.02</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-08-29T01:01:00.195748" elapsed="0.004785"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-08-29T01:01:00.205202" level="INFO">${stdev} = 69174.37</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-08-29T01:01:00.200741" elapsed="0.004485"/>
</kw>
<kw name="Get Time" owner="BuiltIn">
<msg time="2026-08-29T01:01:00.205712" level="INFO">${date} = 2026-08-29 01:01:00</msg>
<var>${date}</var>
<arg>d,m,s</arg>
<doc>Returns the given time in the requested format.</doc>
<status status="PASS" start="2026-08-29T01:01:00.205370" elapsed="0.000365"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-29T01:01:00.206241" level="INFO">CBench Result: 2026-08-29 01:01:00,-t -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633,204668.28,210443.95,207435.02,69174.37</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-08-29T01:01:00.205865" elapsed="0.000425"/>
</kw>
<kw name="Log Results And Determine Status">
<kw name="Append To File" owner="OperatingSystem">
<msg time="2026-08-29T01:01:00.207246" level="INFO" html="true">Appended to file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-cbench-only-vanadium/throughput.csv"&gt;/w/workspace/openflowplugin-csit-1node-cbench-only-vanadium/throughput.csv&lt;/a&gt;'.</msg>
<arg>${output_file}</arg>
<arg>${min},${max},${average}\n</arg>
<doc>Appends the given content to the specified file.</doc>
<status status="PASS" start="2026-08-29T01:01:00.206855" elapsed="0.000452"/>
</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-08-29T01:01:00.207440" elapsed="0.000423"/>
</kw>
<arg>${min}</arg>
<arg>${max}</arg>
<arg>${average}</arg>
<arg>${average_threshold}</arg>
<arg>${output_filename}</arg>
<status status="PASS" start="2026-08-29T01:01:00.206413" elapsed="0.001506"/>
</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-08-29T00:50:53.395266" elapsed="606.812704"/>
</kw>
<kw name="Sleep" owner="BuiltIn">
<msg time="2026-08-29T01:01:00.208401" 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-08-29T01:01:00.208103" elapsed="0.000346"/>
</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-08-29T01:01:00.208914" elapsed="0.000241"/>
</kw>
<status status="PASS" start="2026-08-29T01:01:00.208649" elapsed="0.000566"/>
</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-08-29T00:50:53.394080" elapsed="606.815168"/>
</test>
<test id="s1-t3" name="Rerun Latency Test To Check Bug 6176" line="65">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-29T01:01:00.210307" 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-08-29T01:01:00.209964" elapsed="0.000393"/>
</kw>
<kw name="Run Cbench And Log Results">
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-08-29T01:01:00.211493" 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-08-29T01:01:00.211205" elapsed="0.000324"/>
</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-08-29T01:01:00.211836" elapsed="0.000019"/>
</kw>
<status status="NOT RUN" start="2026-08-29T01:01:00.211625" elapsed="0.000262"/>
</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-08-29T01:01:00.214690" elapsed="0.000019"/>
</kw>
<status status="NOT RUN" start="2026-08-29T01:01:00.214454" elapsed="0.000286"/>
</branch>
<status status="PASS" start="2026-08-29T01:01:00.214437" elapsed="0.000325"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-08-29T01:01:00.215040" 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-08-29T01:01:00.215155" 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-08-29T01:01:00.214876" elapsed="0.000303"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-29T01:01:00.215679" level="INFO">Attempting to execute command "/usr/local/bin/cbench -c 10.30.171.205 -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633" on remote system "10.30.170.200" 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-08-29T01:01:00.215298" elapsed="0.000432"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-08-29T01:01:00.216217" 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-08-29T01:01:00.215853" elapsed="0.000387"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-08-29T01:01:00.217028" level="INFO">Length is 0.</msg>
<msg time="2026-08-29T01:01:00.217105" 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-08-29T01:01:00.216755" elapsed="0.000371"/>
</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-08-29T01:01:00.217264" elapsed="0.000282"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-08-29T01:01:00.218340" level="INFO">Logging into '10.30.170.200:22' as 'jenkins'.</msg>
<msg time="2026-08-29T01:01:00.826390" 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 Sat Aug 29 01:01:00 UTC 2026

  System load:  0.43               Processes:             106
  Usage of /:   20.2% of 38.58GB   Users logged in:       0
  Memory usage: 4%                 IPv4 address for ens3: 10.30.170.200
  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: Sat Aug 29 00:50:53 2026 from 10.30.171.240
[?2004h[jenkins@releng-63164-383-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-08-29T01:01:00.218015" elapsed="0.608600"/>
</kw>
<msg time="2026-08-29T01:01:00.826734" 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-08-29T01:01:00.217700" elapsed="0.609134"/>
</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-08-29T01:01:00.216417" elapsed="0.610552"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-08-29T01:01:00.827657" level="INFO">Executing command '/usr/local/bin/cbench -c 10.30.171.205 -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633'.</msg>
<msg time="2026-08-29T01:11:06.865672" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-08-29T01:11:06.866141" level="INFO">${stdout} = </msg>
<msg time="2026-08-29T01:11:06.866247" level="INFO">${stderr} = cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.171.205:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with 10...</msg>
<var>${stdout}</var>
<var>${stderr}</var>
<arg>${cmd}</arg>
<arg>return_stderr=True</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-08-29T01:01:00.827258" elapsed="606.039047"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-08-29T01:11:06.866777" elapsed="0.000630"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-29T01:11:06.868430" level="INFO">cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.171.205:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with 100 unique source MACs per switch
   learning destination mac addresses before the test
   starting test with 5000 ms delay after features_reply
   ignoring first 1 "warmup" and last 0 "cooldown" loops
   debugging info is off
Master Thread: Creating thread-0! 
Thread-0: All switches initialized. Running at node 10.30.171.205. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
01:02:05.942 16  switches: flows:  95022 94519 95655 94086 93712 93403 92666 94690 90408 89740 91752 89841 91654 90720 89461 91113  total = 24.640700 per ms 
01:03:06.043 16  switches: flows:  95369 94889 94711 92071 91443 94085 92047 93678 88495 88531 91222 88288 88993 90899 87944 89753  total = 24.333017 per ms 
01:04:06.145 16  switches: flows:  97348 98595 97721 94944 96903 98867 95452 96221 91304 91913 91807 90328 91870 92379 89795 92899  total = 25.097188 per ms 
01:05:06.246 16  switches: flows:  97238 98047 97357 94114 94526 94982 92817 94875 90960 90467 92282 90453 90312 89317 88645 91085  total = 24.749979 per ms 
01:06:06.346 16  switches: flows:  99980 98839 100805 97520 96698 100869 95769 97745 93893 95375 93507 92966 92417 92589 90563 94723  total = 25.528362 per ms 
01:07:06.450 16  switches: flows:  101350 101214 101093 99189 97509 101372 98841 100207 95068 93834 94402 94924 94187 92816 93230 93550  total = 25.836649 per ms 
01:08:06.550 16  switches: flows:  101425 101050 103322 98668 100079 101858 98804 102654 94548 95523 96392 93559 93763 93837 93855 95632  total = 26.039369 per ms 
01:09:06.650 16  switches: flows:  98104 98620 101423 96880 96142 101647 96627 100302 94150 92994 94381 92295 92152 92027 92507 92332  total = 25.500503 per ms 
01:10:06.750 16  switches: flows:  99898 100600 102714 97426 97444 103322 98847 101612 97360 94434 94686 94300 93371 92388 93621 93193  total = 25.877081 per ms 
01:11:06.850 16  switches: flows:  98550 98414 101188 94928 95848 100443 96370 99696 92712 92711 93570 91457 92504 90036 90756 91634  total = 25.304725 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 24333.02/26039.37/25362.99/8470.76 responses/s</msg>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-29T01:11:06.867761" elapsed="0.000968"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="PASS" start="2026-08-29T01:11:06.869189" elapsed="0.000074"/>
</return>
<status status="PASS" start="2026-08-29T01:11:06.868910" elapsed="0.000432"/>
</branch>
<status status="PASS" start="2026-08-29T01:11:06.868864" elapsed="0.000562"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="NOT RUN" start="2026-08-29T01:11:06.869745" elapsed="0.000025"/>
</return>
<status status="NOT RUN" start="2026-08-29T01:11:06.869666" elapsed="0.000161"/>
</branch>
<status status="NOT RUN" start="2026-08-29T01:11:06.869601" elapsed="0.000268"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-08-29T01:11:06.869929" 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-08-29T01:11:06.875534" elapsed="0.000702"/>
</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-08-29T01:11:06.876574" elapsed="0.000343"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-08-29T01:11:06.877173" 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-08-29T01:11:06.870610" elapsed="0.006884"/>
</kw>
<msg time="2026-08-29T01:11:06.877775" level="INFO">${output} = cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.171.205:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with 10...</msg>
<var>${output}</var>
<arg>${cbench_system}</arg>
<arg>${cbench_executable} -c ${ODL_SYSTEM_IP} ${cbench_args}</arg>
<arg>prompt_timeout=${test_timeout}</arg>
<arg>return_stdout=False</arg>
<arg>return_stderr=True</arg>
<doc>Reduces the common work of running a command on a remote system to a single higher level
robot keyword, taking care to log in with a public key and. The command given is written and the return value
depends on the passed argument values of return_stdout (default: True) and return_stderr (default: False).
At least one should be True, or the keyword will exit and FAIL. If both are True, the resulting return value
will be a two element list containing both. Otherwise the resulting return value is a string.
No test conditions are checked.</doc>
<status status="PASS" start="2026-08-29T01:01:00.212206" elapsed="606.665621"/>
</kw>
<status status="PASS" start="2026-08-29T01:01:00.211909" elapsed="606.666014"/>
</branch>
<status status="PASS" start="2026-08-29T01:01:00.211607" elapsed="606.666361"/>
</if>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-29T01:11:06.878875" level="INFO">cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.171.205:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with 100 unique source MACs per switch
   learning destination mac addresses before the test
   starting test with 5000 ms delay after features_reply
   ignoring first 1 "warmup" and last 0 "cooldown" loops
   debugging info is off
Master Thread: Creating thread-0! 
Thread-0: All switches initialized. Running at node 10.30.171.205. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
01:02:05.942 16  switches: flows:  95022 94519 95655 94086 93712 93403 92666 94690 90408 89740 91752 89841 91654 90720 89461 91113  total = 24.640700 per ms 
01:03:06.043 16  switches: flows:  95369 94889 94711 92071 91443 94085 92047 93678 88495 88531 91222 88288 88993 90899 87944 89753  total = 24.333017 per ms 
01:04:06.145 16  switches: flows:  97348 98595 97721 94944 96903 98867 95452 96221 91304 91913 91807 90328 91870 92379 89795 92899  total = 25.097188 per ms 
01:05:06.246 16  switches: flows:  97238 98047 97357 94114 94526 94982 92817 94875 90960 90467 92282 90453 90312 89317 88645 91085  total = 24.749979 per ms 
01:06:06.346 16  switches: flows:  99980 98839 100805 97520 96698 100869 95769 97745 93893 95375 93507 92966 92417 92589 90563 94723  total = 25.528362 per ms 
01:07:06.450 16  switches: flows:  101350 101214 101093 99189 97509 101372 98841 100207 95068 93834 94402 94924 94187 92816 93230 93550  total = 25.836649 per ms 
01:08:06.550 16  switches: flows:  101425 101050 103322 98668 100079 101858 98804 102654 94548 95523 96392 93559 93763 93837 93855 95632  total = 26.039369 per ms 
01:09:06.650 16  switches: flows:  98104 98620 101423 96880 96142 101647 96627 100302 94150 92994 94381 92295 92152 92027 92507 92332  total = 25.500503 per ms 
01:10:06.750 16  switches: flows:  99898 100600 102714 97426 97444 103322 98847 101612 97360 94434 94686 94300 93371 92388 93621 93193  total = 25.877081 per ms 
01:11:06.850 16  switches: flows:  98550 98414 101188 94928 95848 100443 96370 99696 92712 92711 93570 91457 92504 90036 90756 91634  total = 25.304725 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 24333.02/26039.37/25362.99/8470.76 responses/s</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-29T01:11:06.878250" elapsed="0.000771"/>
</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-08-29T01:11:06.879354" elapsed="0.000806"/>
</kw>
<kw name="Get Lines Containing String" owner="String">
<msg time="2026-08-29T01:11:06.880976" level="INFO">1 out of 23 lines matched.</msg>
<msg time="2026-08-29T01:11:06.881147" level="INFO">${result_line} = RESULT: 16 switches 9 tests min/max/avg/stdev = 24333.02/26039.37/25362.99/8470.76 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-08-29T01:11:06.880527" elapsed="0.000666"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-08-29T01:11:06.882034" level="INFO">@{results_list} = [ RESULT: | 16 | switches | 9 | tests | min/max/avg/stdev | = | 24333.02/26039.37/25362.99/8470.76 | 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-08-29T01:11:06.881521" elapsed="0.000564"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-29T01:11:06.886911" 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-08-29T01:11:06.882393" elapsed="0.004628"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-29T01:11:06.891814" level="INFO">24333.02/26039.37/25362.99/8470.76</msg>
<arg>${results_list[7]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-29T01:11:06.887310" elapsed="0.004612"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-08-29T01:11:06.896794" 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-08-29T01:11:06.892218" elapsed="0.004629"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-08-29T01:11:06.901940" level="INFO">@{result_value_list} = [ 24333.02 | 26039.37 | 25362.99 | 8470.76 ]</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-08-29T01:11:06.897215" elapsed="0.004779"/>
</kw>
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-08-29T01:11:06.902992" level="INFO">Length is 4.</msg>
<msg time="2026-08-29T01:11:06.903168" 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-08-29T01:11:06.902292" elapsed="0.000930"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-29T01:11:06.912268" level="INFO">min :: 24333.02</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-08-29T01:11:06.904167" elapsed="0.008222"/>
</kw>
<var name="${i}">0</var>
<status status="PASS" start="2026-08-29T01:11:06.903913" elapsed="0.008528"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-29T01:11:06.918123" level="INFO">max :: 26039.37</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-08-29T01:11:06.912770" elapsed="0.005422"/>
</kw>
<var name="${i}">1</var>
<status status="PASS" start="2026-08-29T01:11:06.912547" elapsed="0.005687"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-29T01:11:06.923805" level="INFO">avg :: 25362.99</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-08-29T01:11:06.918507" elapsed="0.005365"/>
</kw>
<var name="${i}">2</var>
<status status="PASS" start="2026-08-29T01:11:06.918334" elapsed="0.005580"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-29T01:11:06.929458" level="INFO">stdev :: 8470.76</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-08-29T01:11:06.924167" elapsed="0.005360"/>
</kw>
<var name="${i}">3</var>
<status status="PASS" start="2026-08-29T01:11:06.924013" elapsed="0.005554"/>
</iter>
<var>${i}</var>
<value>0</value>
<value>${num_stats}</value>
<status status="PASS" start="2026-08-29T01:11:06.903384" elapsed="0.026219"/>
</for>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-08-29T01:11:06.934434" level="INFO">${min} = 24333.02</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-08-29T01:11:06.929819" elapsed="0.004647"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-08-29T01:11:06.938843" level="INFO">${max} = 26039.37</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-08-29T01:11:06.934675" elapsed="0.004190"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-08-29T01:11:06.942287" level="INFO">${average} = 25362.99</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-08-29T01:11:06.939000" elapsed="0.003310"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-08-29T01:11:06.945766" level="INFO">${stdev} = 8470.76</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-08-29T01:11:06.942463" elapsed="0.003325"/>
</kw>
<kw name="Get Time" owner="BuiltIn">
<msg time="2026-08-29T01:11:06.946234" level="INFO">${date} = 2026-08-29 01:11: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-08-29T01:11:06.945929" elapsed="0.000328"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-29T01:11:06.946768" level="INFO">CBench Result: 2026-08-29 01:11:06,-m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633,24333.02,26039.37,25362.99,8470.76</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-08-29T01:11:06.946396" elapsed="0.000421"/>
</kw>
<kw name="Log Results And Determine Status">
<kw name="Append To File" owner="OperatingSystem">
<msg time="2026-08-29T01:11:06.947772" level="INFO" html="true">Appended to file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-cbench-only-vanadium/bug.csv"&gt;/w/workspace/openflowplugin-csit-1node-cbench-only-vanadium/bug.csv&lt;/a&gt;'.</msg>
<arg>${output_file}</arg>
<arg>${min},${max},${average}\n</arg>
<doc>Appends the given content to the specified file.</doc>
<status status="PASS" start="2026-08-29T01:11:06.947343" elapsed="0.000490"/>
</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-08-29T01:11:06.947965" elapsed="0.000410"/>
</kw>
<arg>${min}</arg>
<arg>${max}</arg>
<arg>${average}</arg>
<arg>${average_threshold}</arg>
<arg>${output_filename}</arg>
<status status="PASS" start="2026-08-29T01:11:06.946937" elapsed="0.001495"/>
</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-08-29T01:01:00.210703" elapsed="606.737779"/>
</kw>
<kw name="Sleep" owner="BuiltIn">
<msg time="2026-08-29T01:11:06.948902" 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-08-29T01:11:06.948613" elapsed="0.000338"/>
</kw>
<kw name="Report Failure Due To Bug" owner="Utils" type="TEARDOWN">
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-08-29T01:11:06.950045" 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-08-29T01:11:06.949589" elapsed="0.000479"/>
</kw>
<if>
<branch type="IF" condition="('${TEST_STATUS}' != 'FAIL') or ${test_skipped}">
<return>
<status status="PASS" start="2026-08-29T01:11:06.950266" elapsed="0.000026"/>
</return>
<status status="PASS" start="2026-08-29T01:11:06.950132" elapsed="0.000186"/>
</branch>
<status status="PASS" start="2026-08-29T01:11:06.950117" elapsed="0.000222"/>
</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-08-29T01:11:06.950475" elapsed="0.000019"/>
</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-08-29T01:11:06.950612" elapsed="0.000017"/>
</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-08-29T01:11:06.950769" elapsed="0.000017"/>
</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-08-29T01:11:06.950902" elapsed="0.000017"/>
</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-08-29T01:11:06.951066" elapsed="0.000018"/>
</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-08-29T01:11:06.951192" elapsed="0.000017"/>
</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-08-29T01:11:06.951316" elapsed="0.000017"/>
</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-08-29T01:11:06.951520" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-08-29T01:11:06.951398" elapsed="0.000172"/>
</branch>
<status status="NOT RUN" start="2026-08-29T01:11:06.951383" elapsed="0.000207"/>
</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-08-29T01:11:06.949285" elapsed="0.002367"/>
</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-08-29T01:01:00.209513" elapsed="606.742182"/>
</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-08-29T00:40:44.451070" elapsed="1822.501225"/>
</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>
