<?xml version="1.0" encoding="UTF-8"?>
<robot generator="Robot 7.4.2 (Python 3.11.10 on linux)" generated="2026-08-31T00:46:29.969397" 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-31T00:46:30.489713" elapsed="0.000021"/>
</return>
<status status="NOT RUN" start="2026-08-31T00:46:30.489585" elapsed="0.000198"/>
</branch>
<status status="PASS" start="2026-08-31T00:46:30.489558" elapsed="0.000248"/>
</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-31T00:46:30.489938" elapsed="0.000493"/>
</kw>
<kw name="Login" owner="SSHLibrary">
<msg time="2026-08-31T00:46:30.490853" level="INFO">Logging into '10.30.171.171:8101' as 'karaf'.</msg>
<msg time="2026-08-31T00:46:31.314992" 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-31T00:46:30.490588" elapsed="0.824650"/>
</kw>
<kw name="Write" owner="SSHLibrary">
<msg time="2026-08-31T00:46:31.364270" 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-31T00:46:31.315519" elapsed="0.048813"/>
</kw>
<kw name="Read Until Regexp" owner="SSHLibrary">
<msg time="2026-08-31T00:46:31.366281" level="INFO">[?1l&gt;[?2004l[?1h=[90m~[0m                                                                                [?2004hopendaylight-user@root&gt;</msg>
<msg time="2026-08-31T00:46:31.366397" 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-31T00:46:31.364489" elapsed="0.001935"/>
</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-31T00:46:31.366575" elapsed="0.000194"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-08-31T00:46:31.366917" elapsed="0.000302"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-31T00:46:31.367675" 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-31T00:46:31.367360" elapsed="0.000365"/>
</kw>
<return>
<value>${output}</value>
<status status="PASS" start="2026-08-31T00:46:31.367773" elapsed="0.000052"/>
</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.171
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-31T00:46:30.489256" elapsed="0.878681"/>
</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-31T00:46:30.485885" elapsed="0.882108"/>
</kw>
<kw name="Append To File" owner="OperatingSystem">
<msg time="2026-08-31T00:46:31.368563" 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-31T00:46:31.368204" elapsed="0.000419"/>
</kw>
<kw name="Append To File" owner="OperatingSystem">
<msg time="2026-08-31T00:46:31.368984" 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-31T00:46:31.368760" elapsed="0.000284"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-08-31T00:46:31.369576" 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-31T00:46:31.369213" elapsed="0.000388"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-08-31T00:46:31.370081" 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-31T00:46:31.369756" elapsed="0.000400"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-08-31T00:46:31.370626" 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-31T00:46:31.370290" elapsed="0.000360"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-08-31T00:46:31.371072" 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-31T00:46:31.370796" elapsed="0.000344"/>
</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-31T00:46:31.371417" elapsed="0.000019"/>
</kw>
<status status="NOT RUN" start="2026-08-31T00:46:31.371221" elapsed="0.000245"/>
</branch>
<branch type="ELSE">
<kw name="Verify File Exists On Remote System" owner="Utils">
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-08-31T00:46:31.375725" 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-31T00:46:31.375353" elapsed="0.000395"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-08-31T00:46:31.376724" level="INFO">Length is 0.</msg>
<msg time="2026-08-31T00:46:31.376797" 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-31T00:46:31.376280" elapsed="0.000539"/>
</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-31T00:46:31.376949" elapsed="0.000339"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-08-31T00:46:31.378223" level="INFO">Logging into '10.30.170.34:22' as 'jenkins'.</msg>
<msg time="2026-08-31T00:46:31.873467" 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 Mon Aug 31 00:46:01 UTC 2026

  System load:  0.16               Processes:             110
  Usage of /:   19.7% of 38.58GB   Users logged in:       0
  Memory usage: 4%                 IPv4 address for ens3: 10.30.170.34
  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-385-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-31T00:46:31.377738" elapsed="0.495817"/>
</kw>
<msg time="2026-08-31T00:46:31.873619" 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-31T00:46:31.377429" elapsed="0.496261"/>
</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-31T00:46:31.375933" elapsed="0.497843"/>
</kw>
<kw name="File Should Exist" owner="SSHLibrary">
<msg time="2026-08-31T00:46:31.883611" 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-31T00:46:31.873924" elapsed="0.011688"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-08-31T00:46:31.885774" elapsed="0.000255"/>
</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-31T00:46:31.374861" elapsed="0.511262"/>
</kw>
<status status="PASS" start="2026-08-31T00:46:31.371739" elapsed="0.514419"/>
</branch>
<status status="PASS" start="2026-08-31T00:46:31.371197" elapsed="0.514992"/>
</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-31T00:46:31.886393" elapsed="0.000533"/>
</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-31T00:46:31.892536" elapsed="0.000023"/>
</return>
<status status="NOT RUN" start="2026-08-31T00:46:31.892386" elapsed="0.000215"/>
</branch>
<status status="PASS" start="2026-08-31T00:46:31.892357" elapsed="0.000274"/>
</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-31T00:46:31.897326" elapsed="0.000018"/>
</return>
<status status="NOT RUN" start="2026-08-31T00:46:31.897159" elapsed="0.000225"/>
</branch>
<status status="PASS" start="2026-08-31T00:46:31.897122" elapsed="0.000289"/>
</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-31T00:46:31.897579" elapsed="0.000562"/>
</kw>
<kw name="Login" owner="SSHLibrary">
<msg time="2026-08-31T00:46:31.898647" level="INFO">Logging into '10.30.171.171:8101' as 'karaf'.</msg>
<msg time="2026-08-31T00:46:32.109052" 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-31T00:46:31.898327" elapsed="0.210845"/>
</kw>
<kw name="Write" owner="SSHLibrary">
<msg time="2026-08-31T00:46:32.198953" 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-31T00:46:32.109331" elapsed="0.089699"/>
</kw>
<kw name="Read Until Regexp" owner="SSHLibrary">
<msg time="2026-08-31T00:46:32.208664" level="INFO">[?1l&gt;[?2004l[31;1modl-openflowplugin-drop-test[0m                                    x 0.21.5           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-31T00:46:32.208835" level="INFO">${output} = [?1l&gt;[?2004l[31;1modl-openflowplugin-drop-test[0m                                    x 0.21.5           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-31T00:46:32.199200" elapsed="0.009664"/>
</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-31T00:46:32.208991" elapsed="0.000203"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-08-31T00:46:32.209319" elapsed="0.000166"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-31T00:46:32.209862" level="INFO">[?1l&gt;[?2004l[31;1modl-openflowplugin-drop-test[0m                                    x 0.21.5           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-31T00:46:32.209621" elapsed="0.000291"/>
</kw>
<return>
<value>${output}</value>
<status status="PASS" start="2026-08-31T00:46:32.209953" elapsed="0.000034"/>
</return>
<msg time="2026-08-31T00:46:32.210147" level="INFO">${output} = [?1l&gt;[?2004l[31;1modl-openflowplugin-drop-test[0m                                    x 0.21.5           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.171
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-31T00:46:31.896681" elapsed="0.313496"/>
</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-31T00:46:32.210309" elapsed="0.000475"/>
</kw>
<return>
<value>${output}</value>
<status status="PASS" start="2026-08-31T00:46:32.210829" elapsed="0.000027"/>
</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-31T00:46:31.892002" elapsed="0.318943"/>
</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-31T00:46:32.214447" elapsed="0.000013"/>
</return>
<status status="NOT RUN" start="2026-08-31T00:46:32.214345" elapsed="0.000144"/>
</branch>
<status status="PASS" start="2026-08-31T00:46:32.214325" elapsed="0.000185"/>
</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-31T00:46:32.214628" elapsed="0.000370"/>
</kw>
<kw name="Login" owner="SSHLibrary">
<msg time="2026-08-31T00:46:32.215395" level="INFO">Logging into '10.30.171.171:8101' as 'karaf'.</msg>
<msg time="2026-08-31T00:46:32.403903" 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-31T00:46:32.215165" elapsed="0.188820"/>
</kw>
<kw name="Write" owner="SSHLibrary">
<msg time="2026-08-31T00:46:32.429184" 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-31T00:46:32.404155" elapsed="0.025085"/>
</kw>
<kw name="Read Until Regexp" owner="SSHLibrary">
<msg time="2026-08-31T00:46:32.430936" level="INFO">[?1l&gt;[?2004lDropAllFlows transitions to on
[?1h=[90m~[0m                                                                                [?2004hopendaylight-user@root&gt;</msg>
<msg time="2026-08-31T00:46:32.431020" 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-31T00:46:32.429373" elapsed="0.001672"/>
</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-31T00:46:32.431197" elapsed="0.000167"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-08-31T00:46:32.431484" elapsed="0.000158"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-31T00:46:32.432004" 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-31T00:46:32.431770" elapsed="0.000279"/>
</kw>
<return>
<value>${output}</value>
<status status="PASS" start="2026-08-31T00:46:32.432130" elapsed="0.000033"/>
</return>
<arg>dropallpacketsrpc on</arg>
<doc>Will execute the given ${cmd} by ssh'ing to the karaf console running on 10.30.171.171
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-31T00:46:32.214040" elapsed="0.218215"/>
</kw>
<status status="PASS" start="2026-08-31T00:46:30.484031" elapsed="1.948278"/>
</kw>
<test id="s1-t1" name="Cbench Latency Test" line="37">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-31T00:46:32.434206" 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-31T00:46:32.433007" elapsed="0.001258"/>
</kw>
<kw name="Run Cbench And Log Results">
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-08-31T00:46:32.435506" 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-31T00:46:32.435197" elapsed="0.000347"/>
</kw>
<if>
<branch type="IF" condition="&quot;${cbench_system}&quot; == &quot;localhost&quot;">
<kw name="Run" owner="OperatingSystem">
<var>${output}</var>
<arg>${cbench_executable} -c ${ODL_SYSTEM_IP} ${cbench_args}</arg>
<doc>_This keyword is considered deprecated. Use the
[http://robotframework.org/robotframework/latest/libraries/Process.html|
Process] library instead._</doc>
<status status="NOT RUN" start="2026-08-31T00:46:32.435810" elapsed="0.000019"/>
</kw>
<status status="NOT RUN" start="2026-08-31T00:46:32.435608" elapsed="0.000252"/>
</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-31T00:46:32.438580" elapsed="0.000019"/>
</kw>
<status status="NOT RUN" start="2026-08-31T00:46:32.438356" elapsed="0.000273"/>
</branch>
<status status="PASS" start="2026-08-31T00:46:32.438340" elapsed="0.000312"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-08-31T00:46:32.438972" 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-31T00:46:32.439115" 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-31T00:46:32.438788" elapsed="0.000358"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-31T00:46:32.439662" level="INFO">Attempting to execute command "/usr/local/bin/cbench -c 10.30.171.171 -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633" on remote system "10.30.170.34" 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-31T00:46:32.439282" elapsed="0.000436"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-08-31T00:46:32.440325" 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-31T00:46:32.439846" elapsed="0.000503"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-08-31T00:46:32.441167" level="INFO">Length is 0.</msg>
<msg time="2026-08-31T00:46:32.441247" 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-31T00:46:32.440862" elapsed="0.000406"/>
</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-31T00:46:32.441396" elapsed="0.000297"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-08-31T00:46:32.442503" level="INFO">Logging into '10.30.170.34:22' as 'jenkins'.</msg>
<msg time="2026-08-31T00:46:32.787352" 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 Mon Aug 31 00:46:01 UTC 2026

  System load:  0.16               Processes:             110
  Usage of /:   19.7% of 38.58GB   Users logged in:       0
  Memory usage: 4%                 IPv4 address for ens3: 10.30.170.34
  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: Mon Aug 31 00:46:31 2026 from 10.30.171.48
[?2004h[jenkins@releng-63164-385-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-31T00:46:32.442189" elapsed="0.345281"/>
</kw>
<msg time="2026-08-31T00:46:32.787531" 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-31T00:46:32.441831" elapsed="0.345767"/>
</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-31T00:46:32.440530" elapsed="0.347158"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-08-31T00:46:32.788080" level="INFO">Executing command '/usr/local/bin/cbench -c 10.30.171.171 -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633'.</msg>
<msg time="2026-08-31T00:56:38.943372" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-08-31T00:56:38.943919" level="INFO">${stdout} = </msg>
<msg time="2026-08-31T00:56:38.944014" level="INFO">${stderr} = cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.171.171: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-31T00:46:32.787843" elapsed="606.156223"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-08-31T00:56:38.944502" elapsed="0.000728"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-31T00:56:38.946326" level="INFO">cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.171.171: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.171. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
00:47:38.025 16  switches: flows:  82426 82573 83069 82215 81273 82450 82627 85193 81578 80342 79664 79813 80597 80850 80126 81437  total = 21.770550 per ms 
00:48:38.125 16  switches: flows:  88380 89302 89302 90171 88566 85865 89688 89822 86639 87459 85407 85458 87446 86222 86656 85920  total = 23.332776 per ms 
00:49:38.226 16  switches: flows:  87949 88237 88927 88142 86733 85550 87856 86504 83457 85635 83488 83644 87401 85680 83360 84177  total = 22.907436 per ms 
00:50:38.327 16  switches: flows:  93588 94474 95012 95800 93506 91703 95085 93838 90325 91637 89974 89849 93233 91688 89934 90195  total = 24.622928 per ms 
00:51:38.427 16  switches: flows:  95158 92931 94134 94664 92044 91772 94336 93318 90831 90390 90543 89545 91514 90616 89526 89067  total = 24.465620 per ms 
00:52:38.528 16  switches: flows:  96057 94384 95757 97954 95188 93185 96289 95000 92708 93169 93477 92631 93717 92732 91519 91186  total = 25.040749 per ms 
00:53:38.629 16  switches: flows:  91570 90457 91201 93301 89384 90377 93147 91742 88804 88282 88866 88566 88333 88825 87214 86379  total = 23.900906 per ms 
00:54:38.730 16  switches: flows:  93211 91023 92309 94169 92940 92162 94006 92863 90237 91723 90770 89282 91431 89602 90241 89326  total = 24.380832 per ms 
00:55:38.831 16  switches: flows:  93573 91936 92787 94442 93789 91837 94801 94564 91781 91624 92845 89566 90969 90413 89952 90284  total = 24.545066 per ms 
00:56:38.932 16  switches: flows:  92378 90755 91752 93354 91372 90272 91582 91672 90129 90799 90980 89561 88819 90345 88130 87629  total = 24.118560 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 22907.44/25040.75/24146.10/8073.51 responses/s</msg>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-31T00:56:38.945585" elapsed="0.001026"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="PASS" start="2026-08-31T00:56:38.947087" elapsed="0.000097"/>
</return>
<status status="PASS" start="2026-08-31T00:56:38.946796" elapsed="0.000461"/>
</branch>
<status status="PASS" start="2026-08-31T00:56:38.946746" elapsed="0.000560"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="NOT RUN" start="2026-08-31T00:56:38.947499" elapsed="0.000025"/>
</return>
<status status="NOT RUN" start="2026-08-31T00:56:38.947424" elapsed="0.000154"/>
</branch>
<status status="NOT RUN" start="2026-08-31T00:56:38.947394" elapsed="0.000228"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-08-31T00:56:38.947688" elapsed="0.000050"/>
</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-31T00:56:38.952890" elapsed="0.000701"/>
</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-31T00:56:38.953909" elapsed="0.000365"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-08-31T00:56:38.954539" elapsed="0.000222"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-08-31T00:56:38.948350" elapsed="0.006517"/>
</kw>
<msg time="2026-08-31T00:56:38.955147" level="INFO">${output} = cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.171.171: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-31T00:46:32.436208" elapsed="606.518994"/>
</kw>
<status status="PASS" start="2026-08-31T00:46:32.435885" elapsed="606.519412"/>
</branch>
<status status="PASS" start="2026-08-31T00:46:32.435590" elapsed="606.519753"/>
</if>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-31T00:56:38.956259" level="INFO">cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.171.171: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.171. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
00:47:38.025 16  switches: flows:  82426 82573 83069 82215 81273 82450 82627 85193 81578 80342 79664 79813 80597 80850 80126 81437  total = 21.770550 per ms 
00:48:38.125 16  switches: flows:  88380 89302 89302 90171 88566 85865 89688 89822 86639 87459 85407 85458 87446 86222 86656 85920  total = 23.332776 per ms 
00:49:38.226 16  switches: flows:  87949 88237 88927 88142 86733 85550 87856 86504 83457 85635 83488 83644 87401 85680 83360 84177  total = 22.907436 per ms 
00:50:38.327 16  switches: flows:  93588 94474 95012 95800 93506 91703 95085 93838 90325 91637 89974 89849 93233 91688 89934 90195  total = 24.622928 per ms 
00:51:38.427 16  switches: flows:  95158 92931 94134 94664 92044 91772 94336 93318 90831 90390 90543 89545 91514 90616 89526 89067  total = 24.465620 per ms 
00:52:38.528 16  switches: flows:  96057 94384 95757 97954 95188 93185 96289 95000 92708 93169 93477 92631 93717 92732 91519 91186  total = 25.040749 per ms 
00:53:38.629 16  switches: flows:  91570 90457 91201 93301 89384 90377 93147 91742 88804 88282 88866 88566 88333 88825 87214 86379  total = 23.900906 per ms 
00:54:38.730 16  switches: flows:  93211 91023 92309 94169 92940 92162 94006 92863 90237 91723 90770 89282 91431 89602 90241 89326  total = 24.380832 per ms 
00:55:38.831 16  switches: flows:  93573 91936 92787 94442 93789 91837 94801 94564 91781 91624 92845 89566 90969 90413 89952 90284  total = 24.545066 per ms 
00:56:38.932 16  switches: flows:  92378 90755 91752 93354 91372 90272 91582 91672 90129 90799 90980 89561 88819 90345 88130 87629  total = 24.118560 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 22907.44/25040.75/24146.10/8073.51 responses/s</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-31T00:56:38.955626" elapsed="0.000821"/>
</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-31T00:56:38.956790" elapsed="0.000790"/>
</kw>
<kw name="Get Lines Containing String" owner="String">
<msg time="2026-08-31T00:56:38.958430" level="INFO">1 out of 23 lines matched.</msg>
<msg time="2026-08-31T00:56:38.958623" level="INFO">${result_line} = RESULT: 16 switches 9 tests min/max/avg/stdev = 22907.44/25040.75/24146.10/8073.51 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-31T00:56:38.957946" elapsed="0.000726"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-08-31T00:56:38.959546" level="INFO">@{results_list} = [ RESULT: | 16 | switches | 9 | tests | min/max/avg/stdev | = | 22907.44/25040.75/24146.10/8073.51 | 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-31T00:56:38.959008" elapsed="0.000591"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-31T00:56:38.964582" 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-31T00:56:38.959910" elapsed="0.004784"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-31T00:56:38.969677" level="INFO">22907.44/25040.75/24146.10/8073.51</msg>
<arg>${results_list[7]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-31T00:56:38.965024" elapsed="0.004794"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-08-31T00:56:38.974726" 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-31T00:56:38.970149" elapsed="0.004633"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-08-31T00:56:38.980021" level="INFO">@{result_value_list} = [ 22907.44 | 25040.75 | 24146.10 | 8073.51 ]</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-31T00:56:38.975197" elapsed="0.004881"/>
</kw>
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-08-31T00:56:38.981161" level="INFO">Length is 4.</msg>
<msg time="2026-08-31T00:56:38.981379" 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-31T00:56:38.980449" elapsed="0.000979"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-31T00:56:38.989892" level="INFO">min :: 22907.44</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-31T00:56:38.982292" elapsed="0.007674"/>
</kw>
<var name="${i}">0</var>
<status status="PASS" start="2026-08-31T00:56:38.981962" elapsed="0.008049"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-31T00:56:38.996004" level="INFO">max :: 25040.75</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-31T00:56:38.990335" elapsed="0.005740"/>
</kw>
<var name="${i}">1</var>
<status status="PASS" start="2026-08-31T00:56:38.990165" elapsed="0.005972"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-31T00:56:39.002239" level="INFO">avg :: 24146.10</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-31T00:56:38.996409" elapsed="0.005908"/>
</kw>
<var name="${i}">2</var>
<status status="PASS" start="2026-08-31T00:56:38.996248" elapsed="0.006114"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-31T00:56:39.008474" level="INFO">stdev :: 8073.51</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-31T00:56:39.002659" elapsed="0.005888"/>
</kw>
<var name="${i}">3</var>
<status status="PASS" start="2026-08-31T00:56:39.002482" elapsed="0.006108"/>
</iter>
<var>${i}</var>
<value>0</value>
<value>${num_stats}</value>
<status status="PASS" start="2026-08-31T00:56:38.981557" elapsed="0.027074"/>
</for>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-08-31T00:56:39.013642" level="INFO">${min} = 22907.44</msg>
<var>${min}</var>
<arg>${result_value_list[${0}]}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-08-31T00:56:39.008852" elapsed="0.004824"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-08-31T00:56:39.019979" level="INFO">${max} = 25040.75</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-31T00:56:39.013887" elapsed="0.006125"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-08-31T00:56:39.025060" level="INFO">${average} = 24146.10</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-31T00:56:39.020226" elapsed="0.004887"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-08-31T00:56:39.029178" level="INFO">${stdev} = 8073.51</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-31T00:56:39.025307" elapsed="0.003895"/>
</kw>
<kw name="Get Time" owner="BuiltIn">
<msg time="2026-08-31T00:56:39.029666" level="INFO">${date} = 2026-08-31 00:56:39</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-31T00:56:39.029346" elapsed="0.000343"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-31T00:56:39.030268" level="INFO">CBench Result: 2026-08-31 00:56:39,-m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633,22907.44,25040.75,24146.10,8073.51</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-31T00:56:39.029848" elapsed="0.000471"/>
</kw>
<kw name="Log Results And Determine Status">
<kw name="Append To File" owner="OperatingSystem">
<msg time="2026-08-31T00:56:39.031330" 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-31T00:56:39.030907" elapsed="0.000483"/>
</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-31T00:56:39.031525" elapsed="0.000435"/>
</kw>
<arg>${min}</arg>
<arg>${max}</arg>
<arg>${average}</arg>
<arg>${average_threshold}</arg>
<arg>${output_filename}</arg>
<status status="PASS" start="2026-08-31T00:56:39.030461" elapsed="0.001558"/>
</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-31T00:46:32.434626" elapsed="606.597444"/>
</kw>
<kw name="Sleep" owner="BuiltIn">
<msg time="2026-08-31T00:56:39.032508" 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-31T00:56:39.032220" elapsed="0.000338"/>
</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-31T00:56:39.033027" elapsed="0.000256"/>
</kw>
<status status="PASS" start="2026-08-31T00:56:39.032757" elapsed="0.000586"/>
</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-31T00:46:32.432444" elapsed="606.600933"/>
</test>
<test id="s1-t2" name="Cbench Throughput Test" line="51">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-31T00:56:39.034647" 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-31T00:56:39.034289" elapsed="0.000429"/>
</kw>
<kw name="Run Cbench And Log Results">
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-08-31T00:56:39.035855" 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-31T00:56:39.035545" elapsed="0.000348"/>
</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-31T00:56:39.036227" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-08-31T00:56:39.035959" elapsed="0.000322"/>
</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-31T00:56:39.039046" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-08-31T00:56:39.038819" elapsed="0.000298"/>
</branch>
<status status="PASS" start="2026-08-31T00:56:39.038802" elapsed="0.000344"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-08-31T00:56:39.039461" 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-31T00:56:39.039571" 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-31T00:56:39.039270" elapsed="0.000325"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-31T00:56:39.040144" level="INFO">Attempting to execute command "/usr/local/bin/cbench -c 10.30.171.171 -t -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633" on remote system "10.30.170.34" 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-31T00:56:39.039734" elapsed="0.000466"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-08-31T00:56:39.040690" 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-31T00:56:39.040330" elapsed="0.000400"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-08-31T00:56:39.041564" level="INFO">Length is 0.</msg>
<msg time="2026-08-31T00:56:39.041644" 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-31T00:56:39.041279" elapsed="0.000386"/>
</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-31T00:56:39.041811" elapsed="0.000307"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-08-31T00:56:39.042889" level="INFO">Logging into '10.30.170.34:22' as 'jenkins'.</msg>
<msg time="2026-08-31T00:56:39.697085" 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 Mon Aug 31 00:56:39 UTC 2026

  System load:  1.06               Processes:             104
  Usage of /:   19.8% of 38.58GB   Users logged in:       0
  Memory usage: 4%                 IPv4 address for ens3: 10.30.170.34
  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: Mon Aug 31 00:46:32 2026 from 10.30.171.48
[?2004h[jenkins@releng-63164-385-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-31T00:56:39.042559" elapsed="0.654707"/>
</kw>
<msg time="2026-08-31T00:56:39.697341" 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-31T00:56:39.042254" elapsed="0.655166"/>
</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-31T00:56:39.040913" elapsed="0.656611"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-08-31T00:56:39.698000" level="INFO">Executing command '/usr/local/bin/cbench -c 10.30.171.171 -t -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633'.</msg>
<msg time="2026-08-31T01:06:45.770690" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-08-31T01:06:45.771308" level="INFO">${stdout} = </msg>
<msg time="2026-08-31T01:06:45.771422" level="INFO">${stderr} = cbench: controller benchmarking tool
   running in mode 'throughput'
   connecting to controller at 10.30.171.171: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-31T00:56:39.697736" elapsed="606.073737"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-08-31T01:06:45.771867" elapsed="0.000736"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-31T01:06:45.773673" level="INFO">cbench: controller benchmarking tool
   running in mode 'throughput'
   connecting to controller at 10.30.171.171: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.171. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
00:57:44.839 16  switches: flows:  537513 526624 528910 526960 529067 530202 527785 524240 525636 525821 530285 527756 530836 525745 533307 522458  total = 140.885750 per ms 
00:58:44.943 16  switches: flows:  536562 535968 537672 537390 541818 534434 535746 535805 538290 536727 532420 535926 541374 538761 537160 537137  total = 142.972087 per ms 
00:59:45.045 16  switches: flows:  623460 625742 625963 622383 620168 622450 620550 618294 624928 628025 623801 623649 632375 621279 622783 623952  total = 166.047473 per ms 
01:00:45.147 16  switches: flows:  572240 577872 574971 573946 574810 583213 572338 575803 571309 579385 581293 576080 579650 579864 577107 575505  total = 153.498816 per ms 
01:01:45.249 16  switches: flows:  604876 603959 598169 599347 604446 604377 601812 601889 602508 605890 604312 601945 601336 601267 601456 603850  total = 160.420080 per ms 
01:02:45.351 16  switches: flows:  656266 661300 661774 664223 656328 666319 660683 652680 661637 661164 659853 666864 660114 665603 662525 652042  total = 175.860906 per ms 
01:03:45.452 16  switches: flows:  676319 673843 677210 677139 680218 677932 679246 681371 679959 675933 676986 677782 676960 678602 678478 674984  total = 180.413294 per ms 
01:04:45.553 16  switches: flows:  688979 689768 690004 685340 691039 691360 688651 686431 692435 689411 692314 681149 693855 689239 688701 685179  total = 183.421466 per ms 
01:05:45.654 16  switches: flows:  684418 681822 678738 683359 679097 678924 679082 679135 679617 681093 675697 676427 682197 685536 682733 683105  total = 181.212537 per ms 
01:06:45.760 16  switches: flows:  656882 658911 660782 657702 661193 662355 666040 662988 661356 665461 650386 666612 667059 659888 658071 661855  total = 175.983001 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 142972.09/183421.47/168869.96/57831.37 responses/s</msg>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-31T01:06:45.772958" elapsed="0.001029"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="PASS" start="2026-08-31T01:06:45.774496" elapsed="0.000064"/>
</return>
<status status="PASS" start="2026-08-31T01:06:45.774180" elapsed="0.000452"/>
</branch>
<status status="PASS" start="2026-08-31T01:06:45.774133" elapsed="0.000549"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="NOT RUN" start="2026-08-31T01:06:45.774865" elapsed="0.000025"/>
</return>
<status status="NOT RUN" start="2026-08-31T01:06:45.774794" elapsed="0.000151"/>
</branch>
<status status="NOT RUN" start="2026-08-31T01:06:45.774764" elapsed="0.000225"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-08-31T01:06:45.775050" 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-31T01:06:45.780192" elapsed="0.000713"/>
</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-31T01:06:45.781229" elapsed="0.000342"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-08-31T01:06:45.781832" elapsed="0.000202"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-08-31T01:06:45.775697" elapsed="0.006472"/>
</kw>
<msg time="2026-08-31T01:06:45.782457" level="INFO">${output} = cbench: controller benchmarking tool
   running in mode 'throughput'
   connecting to controller at 10.30.171.171: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-31T00:56:39.036581" elapsed="606.745942"/>
</kw>
<status status="PASS" start="2026-08-31T00:56:39.036304" elapsed="606.746316"/>
</branch>
<status status="PASS" start="2026-08-31T00:56:39.035940" elapsed="606.746729"/>
</if>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-31T01:06:45.783658" level="INFO">cbench: controller benchmarking tool
   running in mode 'throughput'
   connecting to controller at 10.30.171.171: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.171. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
00:57:44.839 16  switches: flows:  537513 526624 528910 526960 529067 530202 527785 524240 525636 525821 530285 527756 530836 525745 533307 522458  total = 140.885750 per ms 
00:58:44.943 16  switches: flows:  536562 535968 537672 537390 541818 534434 535746 535805 538290 536727 532420 535926 541374 538761 537160 537137  total = 142.972087 per ms 
00:59:45.045 16  switches: flows:  623460 625742 625963 622383 620168 622450 620550 618294 624928 628025 623801 623649 632375 621279 622783 623952  total = 166.047473 per ms 
01:00:45.147 16  switches: flows:  572240 577872 574971 573946 574810 583213 572338 575803 571309 579385 581293 576080 579650 579864 577107 575505  total = 153.498816 per ms 
01:01:45.249 16  switches: flows:  604876 603959 598169 599347 604446 604377 601812 601889 602508 605890 604312 601945 601336 601267 601456 603850  total = 160.420080 per ms 
01:02:45.351 16  switches: flows:  656266 661300 661774 664223 656328 666319 660683 652680 661637 661164 659853 666864 660114 665603 662525 652042  total = 175.860906 per ms 
01:03:45.452 16  switches: flows:  676319 673843 677210 677139 680218 677932 679246 681371 679959 675933 676986 677782 676960 678602 678478 674984  total = 180.413294 per ms 
01:04:45.553 16  switches: flows:  688979 689768 690004 685340 691039 691360 688651 686431 692435 689411 692314 681149 693855 689239 688701 685179  total = 183.421466 per ms 
01:05:45.654 16  switches: flows:  684418 681822 678738 683359 679097 678924 679082 679135 679617 681093 675697 676427 682197 685536 682733 683105  total = 181.212537 per ms 
01:06:45.760 16  switches: flows:  656882 658911 660782 657702 661193 662355 666040 662988 661356 665461 650386 666612 667059 659888 658071 661855  total = 175.983001 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 142972.09/183421.47/168869.96/57831.37 responses/s</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-31T01:06:45.782948" elapsed="0.000866"/>
</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-31T01:06:45.784144" elapsed="0.000747"/>
</kw>
<kw name="Get Lines Containing String" owner="String">
<msg time="2026-08-31T01:06:45.785726" level="INFO">1 out of 23 lines matched.</msg>
<msg time="2026-08-31T01:06:45.785913" level="INFO">${result_line} = RESULT: 16 switches 9 tests min/max/avg/stdev = 142972.09/183421.47/168869.96/57831.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-31T01:06:45.785253" elapsed="0.000723"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-08-31T01:06:45.786935" level="INFO">@{results_list} = [ RESULT: | 16 | switches | 9 | tests | min/max/avg/stdev | = | 142972.09/183421.47/168869.96/57831.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-31T01:06:45.786387" elapsed="0.000609"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-31T01:06:45.792144" 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-31T01:06:45.787344" elapsed="0.004920"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-31T01:06:45.797216" level="INFO">142972.09/183421.47/168869.96/57831.37</msg>
<arg>${results_list[7]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-31T01:06:45.792597" elapsed="0.004752"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-08-31T01:06:45.802240" 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-31T01:06:45.797651" elapsed="0.004644"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-08-31T01:06:45.807285" level="INFO">@{result_value_list} = [ 142972.09 | 183421.47 | 168869.96 | 57831.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-31T01:06:45.802695" elapsed="0.004741"/>
</kw>
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-08-31T01:06:45.808437" level="INFO">Length is 4.</msg>
<msg time="2026-08-31T01:06:45.808613" 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-31T01:06:45.807765" elapsed="0.000895"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-31T01:06:45.817362" level="INFO">min :: 142972.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-31T01:06:45.809481" elapsed="0.007955"/>
</kw>
<var name="${i}">0</var>
<status status="PASS" start="2026-08-31T01:06:45.809192" elapsed="0.008289"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-31T01:06:45.823384" level="INFO">max :: 183421.47</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-31T01:06:45.817754" elapsed="0.005700"/>
</kw>
<var name="${i}">1</var>
<status status="PASS" start="2026-08-31T01:06:45.817592" elapsed="0.005905"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-31T01:06:45.829268" level="INFO">avg :: 168869.96</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-31T01:06:45.823765" elapsed="0.005620"/>
</kw>
<var name="${i}">2</var>
<status status="PASS" start="2026-08-31T01:06:45.823605" elapsed="0.005823"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-31T01:06:45.835184" level="INFO">stdev :: 57831.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-31T01:06:45.829698" elapsed="0.005555"/>
</kw>
<var name="${i}">3</var>
<status status="PASS" start="2026-08-31T01:06:45.829536" elapsed="0.005759"/>
</iter>
<var>${i}</var>
<value>0</value>
<value>${num_stats}</value>
<status status="PASS" start="2026-08-31T01:06:45.808778" elapsed="0.026571"/>
</for>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-08-31T01:06:45.840399" level="INFO">${min} = 142972.09</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-31T01:06:45.835548" elapsed="0.004886"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-08-31T01:06:45.845442" level="INFO">${max} = 183421.47</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-31T01:06:45.840628" elapsed="0.004847"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-08-31T01:06:45.850681" level="INFO">${average} = 168869.96</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-31T01:06:45.845667" elapsed="0.005048"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-08-31T01:06:45.855245" level="INFO">${stdev} = 57831.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-31T01:06:45.850906" elapsed="0.004363"/>
</kw>
<kw name="Get Time" owner="BuiltIn">
<msg time="2026-08-31T01:06:45.855740" level="INFO">${date} = 2026-08-31 01:06:45</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-31T01:06:45.855427" elapsed="0.000336"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-31T01:06:45.856269" level="INFO">CBench Result: 2026-08-31 01:06:45,-t -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633,142972.09,183421.47,168869.96,57831.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-31T01:06:45.855893" elapsed="0.000426"/>
</kw>
<kw name="Log Results And Determine Status">
<kw name="Append To File" owner="OperatingSystem">
<msg time="2026-08-31T01:06:45.857240" 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-31T01:06:45.856867" elapsed="0.000432"/>
</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-31T01:06:45.857447" elapsed="0.000409"/>
</kw>
<arg>${min}</arg>
<arg>${max}</arg>
<arg>${average}</arg>
<arg>${average_threshold}</arg>
<arg>${output_filename}</arg>
<status status="PASS" start="2026-08-31T01:06:45.856454" elapsed="0.001458"/>
</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-31T00:56:39.034999" elapsed="606.822965"/>
</kw>
<kw name="Sleep" owner="BuiltIn">
<msg time="2026-08-31T01:06:45.858411" 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-31T01:06:45.858112" elapsed="0.000349"/>
</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-31T01:06:45.858925" elapsed="0.000250"/>
</kw>
<status status="PASS" start="2026-08-31T01:06:45.858643" elapsed="0.000594"/>
</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-31T00:56:39.033730" elapsed="606.825541"/>
</test>
<test id="s1-t3" name="Rerun Latency Test To Check Bug 6176" line="65">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-31T01:06:45.860347" 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-31T01:06:45.859981" elapsed="0.000418"/>
</kw>
<kw name="Run Cbench And Log Results">
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-08-31T01:06:45.861479" 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-31T01:06:45.861172" elapsed="0.000345"/>
</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-31T01:06:45.861811" elapsed="0.000019"/>
</kw>
<status status="NOT RUN" start="2026-08-31T01:06:45.861614" elapsed="0.000351"/>
</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-31T01:06:45.864792" elapsed="0.000019"/>
</kw>
<status status="NOT RUN" start="2026-08-31T01:06:45.864566" elapsed="0.000276"/>
</branch>
<status status="PASS" start="2026-08-31T01:06:45.864549" elapsed="0.000314"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-08-31T01:06:45.865163" 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-31T01:06:45.865266" 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-31T01:06:45.864980" elapsed="0.000309"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-31T01:06:45.865795" level="INFO">Attempting to execute command "/usr/local/bin/cbench -c 10.30.171.171 -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633" on remote system "10.30.170.34" 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-31T01:06:45.865425" elapsed="0.000422"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-08-31T01:06:45.866353" 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-31T01:06:45.865971" elapsed="0.000406"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-08-31T01:06:45.867165" level="INFO">Length is 0.</msg>
<msg time="2026-08-31T01:06:45.867243" 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-31T01:06:45.866880" elapsed="0.000383"/>
</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-31T01:06:45.867402" elapsed="0.000285"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-08-31T01:06:45.868466" level="INFO">Logging into '10.30.170.34:22' as 'jenkins'.</msg>
<msg time="2026-08-31T01:06:46.496826" 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 Mon Aug 31 01:06:46 UTC 2026

  System load:  0.33               Processes:             106
  Usage of /:   19.8% of 38.58GB   Users logged in:       0
  Memory usage: 4%                 IPv4 address for ens3: 10.30.170.34
  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: Mon Aug 31 00:56:39 2026 from 10.30.171.48
[?2004h[jenkins@releng-63164-385-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-31T01:06:45.868141" elapsed="0.629014"/>
</kw>
<msg time="2026-08-31T01:06:46.497279" 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-31T01:06:45.867822" elapsed="0.629588"/>
</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-31T01:06:45.866553" elapsed="0.631015"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-08-31T01:06:46.498362" level="INFO">Executing command '/usr/local/bin/cbench -c 10.30.171.171 -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633'.</msg>
<msg time="2026-08-31T01:16:52.534407" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-08-31T01:16:52.535195" level="INFO">${stdout} = </msg>
<msg time="2026-08-31T01:16:52.535292" level="INFO">${stderr} = cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.171.171: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-31T01:06:46.497882" elapsed="606.037462"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-08-31T01:16:52.535826" elapsed="0.000752"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-31T01:16:52.537728" level="INFO">cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.171.171: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.171. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
01:07:51.618 16  switches: flows:  93270 93612 92091 93293 93449 92681 92533 92585 91307 91365 90247 91250 91682 89927 90887 90671  total = 24.514167 per ms 
01:08:51.719 16  switches: flows:  92960 92724 90939 92218 91225 93810 92798 91507 90501 91057 88973 90041 89871 89153 89980 89882  total = 24.253498 per ms 
01:09:51.819 16  switches: flows:  93056 94494 92610 92662 92733 93156 94478 93860 91685 92398 92145 91165 93583 90913 90961 90576  total = 24.633471 per ms 
01:10:51.919 16  switches: flows:  92913 93611 92051 91494 90914 91126 94889 92275 91281 90933 90866 90935 92393 89234 89453 88780  total = 24.345166 per ms 
01:11:52.020 16  switches: flows:  94087 93097 93276 92638 91794 92731 96520 94949 91777 91979 92829 92747 93740 89933 92098 90912  total = 24.710539 per ms 
01:12:52.120 16  switches: flows:  95983 93695 94601 95248 95899 95773 98470 96301 94000 93882 94454 95496 96822 92543 92637 92373  total = 25.260748 per ms 
01:13:52.221 16  switches: flows:  96223 94687 94307 94972 93685 93967 96964 95456 92760 94716 94416 94826 94846 93074 91694 91281  total = 25.089337 per ms 
01:14:52.322 16  switches: flows:  97243 94863 95113 94111 94737 95130 96880 95674 93560 94467 94704 94110 94203 93162 91701 92166  total = 25.155094 per ms 
01:15:52.422 16  switches: flows:  95039 93227 93883 93548 92836 93773 96637 95619 91416 92942 92677 93650 93003 90721 91071 91552  total = 24.818397 per ms 
01:16:52.523 16  switches: flows:  97252 94104 95380 94494 94160 94791 97282 96775 93634 94572 95820 95546 95428 91732 92856 92542  total = 25.230441 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 24253.50/25260.75/24832.97/8285.30 responses/s</msg>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-31T01:16:52.536987" elapsed="0.001070"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="PASS" start="2026-08-31T01:16:52.538586" elapsed="0.000074"/>
</return>
<status status="PASS" start="2026-08-31T01:16:52.538255" elapsed="0.000489"/>
</branch>
<status status="PASS" start="2026-08-31T01:16:52.538206" elapsed="0.000620"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="NOT RUN" start="2026-08-31T01:16:52.539011" elapsed="0.000025"/>
</return>
<status status="NOT RUN" start="2026-08-31T01:16:52.538940" elapsed="0.000148"/>
</branch>
<status status="NOT RUN" start="2026-08-31T01:16:52.538911" elapsed="0.000251"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-08-31T01:16:52.539222" elapsed="0.000025"/>
</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-31T01:16:52.544914" elapsed="0.000753"/>
</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-31T01:16:52.545993" elapsed="0.000386"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-08-31T01:16:52.546644" 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-31T01:16:52.539894" elapsed="0.007074"/>
</kw>
<msg time="2026-08-31T01:16:52.547266" level="INFO">${output} = cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.171.171: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-31T01:06:45.862297" elapsed="606.685024"/>
</kw>
<status status="PASS" start="2026-08-31T01:06:45.861994" elapsed="606.685426"/>
</branch>
<status status="PASS" start="2026-08-31T01:06:45.861595" elapsed="606.685871"/>
</if>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-31T01:16:52.548424" level="INFO">cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.171.171: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.171. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
01:07:51.618 16  switches: flows:  93270 93612 92091 93293 93449 92681 92533 92585 91307 91365 90247 91250 91682 89927 90887 90671  total = 24.514167 per ms 
01:08:51.719 16  switches: flows:  92960 92724 90939 92218 91225 93810 92798 91507 90501 91057 88973 90041 89871 89153 89980 89882  total = 24.253498 per ms 
01:09:51.819 16  switches: flows:  93056 94494 92610 92662 92733 93156 94478 93860 91685 92398 92145 91165 93583 90913 90961 90576  total = 24.633471 per ms 
01:10:51.919 16  switches: flows:  92913 93611 92051 91494 90914 91126 94889 92275 91281 90933 90866 90935 92393 89234 89453 88780  total = 24.345166 per ms 
01:11:52.020 16  switches: flows:  94087 93097 93276 92638 91794 92731 96520 94949 91777 91979 92829 92747 93740 89933 92098 90912  total = 24.710539 per ms 
01:12:52.120 16  switches: flows:  95983 93695 94601 95248 95899 95773 98470 96301 94000 93882 94454 95496 96822 92543 92637 92373  total = 25.260748 per ms 
01:13:52.221 16  switches: flows:  96223 94687 94307 94972 93685 93967 96964 95456 92760 94716 94416 94826 94846 93074 91694 91281  total = 25.089337 per ms 
01:14:52.322 16  switches: flows:  97243 94863 95113 94111 94737 95130 96880 95674 93560 94467 94704 94110 94203 93162 91701 92166  total = 25.155094 per ms 
01:15:52.422 16  switches: flows:  95039 93227 93883 93548 92836 93773 96637 95619 91416 92942 92677 93650 93003 90721 91071 91552  total = 24.818397 per ms 
01:16:52.523 16  switches: flows:  97252 94104 95380 94494 94160 94791 97282 96775 93634 94572 95820 95546 95428 91732 92856 92542  total = 25.230441 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 24253.50/25260.75/24832.97/8285.30 responses/s</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-31T01:16:52.547774" elapsed="0.000799"/>
</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-31T01:16:52.548897" elapsed="0.000789"/>
</kw>
<kw name="Get Lines Containing String" owner="String">
<msg time="2026-08-31T01:16:52.550618" level="INFO">1 out of 23 lines matched.</msg>
<msg time="2026-08-31T01:16:52.550819" level="INFO">${result_line} = RESULT: 16 switches 9 tests min/max/avg/stdev = 24253.50/25260.75/24832.97/8285.30 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-31T01:16:52.550051" elapsed="0.000817"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-08-31T01:16:52.551717" level="INFO">@{results_list} = [ RESULT: | 16 | switches | 9 | tests | min/max/avg/stdev | = | 24253.50/25260.75/24832.97/8285.30 | 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-31T01:16:52.551211" elapsed="0.000557"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-31T01:16:52.556769" 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-31T01:16:52.552085" elapsed="0.004823"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-31T01:16:52.561871" level="INFO">24253.50/25260.75/24832.97/8285.30</msg>
<arg>${results_list[7]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-31T01:16:52.557234" elapsed="0.004755"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-08-31T01:16:52.567242" 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-31T01:16:52.562348" elapsed="0.004951"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-08-31T01:16:52.572403" level="INFO">@{result_value_list} = [ 24253.50 | 25260.75 | 24832.97 | 8285.30 ]</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-31T01:16:52.567742" elapsed="0.004715"/>
</kw>
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-08-31T01:16:52.573498" level="INFO">Length is 4.</msg>
<msg time="2026-08-31T01:16:52.573675" 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-31T01:16:52.572770" elapsed="0.000951"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-31T01:16:52.581880" level="INFO">min :: 24253.50</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-31T01:16:52.574568" elapsed="0.007423"/>
</kw>
<var name="${i}">0</var>
<status status="PASS" start="2026-08-31T01:16:52.574300" elapsed="0.007735"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-31T01:16:52.587912" level="INFO">max :: 25260.75</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-31T01:16:52.582344" elapsed="0.005644"/>
</kw>
<var name="${i}">1</var>
<status status="PASS" start="2026-08-31T01:16:52.582167" elapsed="0.005866"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-31T01:16:52.593950" level="INFO">avg :: 24832.97</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-31T01:16:52.588337" elapsed="0.005692"/>
</kw>
<var name="${i}">2</var>
<status status="PASS" start="2026-08-31T01:16:52.588163" elapsed="0.005914"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-31T01:16:52.600113" level="INFO">stdev :: 8285.30</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-31T01:16:52.594402" elapsed="0.005784"/>
</kw>
<var name="${i}">3</var>
<status status="PASS" start="2026-08-31T01:16:52.594214" elapsed="0.006014"/>
</iter>
<var>${i}</var>
<value>0</value>
<value>${num_stats}</value>
<status status="PASS" start="2026-08-31T01:16:52.573879" elapsed="0.026386"/>
</for>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-08-31T01:16:52.605482" level="INFO">${min} = 24253.50</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-31T01:16:52.600502" elapsed="0.005013"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-08-31T01:16:52.610724" level="INFO">${max} = 25260.75</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-31T01:16:52.605709" elapsed="0.005050"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-08-31T01:16:52.615908" level="INFO">${average} = 24832.97</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-31T01:16:52.610982" elapsed="0.004960"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-08-31T01:16:52.620301" level="INFO">${stdev} = 8285.30</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-31T01:16:52.616161" elapsed="0.004163"/>
</kw>
<kw name="Get Time" owner="BuiltIn">
<msg time="2026-08-31T01:16:52.620814" level="INFO">${date} = 2026-08-31 01:16:52</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-31T01:16:52.620475" elapsed="0.000363"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-31T01:16:52.621361" level="INFO">CBench Result: 2026-08-31 01:16:52,-m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633,24253.50,25260.75,24832.97,8285.30</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-31T01:16:52.620973" elapsed="0.000444"/>
</kw>
<kw name="Log Results And Determine Status">
<kw name="Append To File" owner="OperatingSystem">
<msg time="2026-08-31T01:16:52.622596" 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-31T01:16:52.622038" elapsed="0.000621"/>
</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-31T01:16:52.622809" elapsed="0.000445"/>
</kw>
<arg>${min}</arg>
<arg>${max}</arg>
<arg>${average}</arg>
<arg>${average_threshold}</arg>
<arg>${output_filename}</arg>
<status status="PASS" start="2026-08-31T01:16:52.621575" elapsed="0.001738"/>
</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-31T01:06:45.860674" elapsed="606.762692"/>
</kw>
<kw name="Sleep" owner="BuiltIn">
<msg time="2026-08-31T01:16:52.623805" 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-31T01:16:52.623504" elapsed="0.000353"/>
</kw>
<kw name="Report Failure Due To Bug" owner="Utils" type="TEARDOWN">
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-08-31T01:16:52.625008" 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-31T01:16:52.624553" elapsed="0.000479"/>
</kw>
<if>
<branch type="IF" condition="('${TEST_STATUS}' != 'FAIL') or ${test_skipped}">
<return>
<status status="PASS" start="2026-08-31T01:16:52.625272" elapsed="0.000037"/>
</return>
<status status="PASS" start="2026-08-31T01:16:52.625128" elapsed="0.000212"/>
</branch>
<status status="PASS" start="2026-08-31T01:16:52.625088" elapsed="0.000275"/>
</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-31T01:16:52.625500" elapsed="0.000018"/>
</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-31T01:16:52.625638" elapsed="0.000018"/>
</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-31T01:16:52.625793" elapsed="0.000019"/>
</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-31T01:16:52.625931" 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-31T01:16:52.626127" elapsed="0.000019"/>
</kw>
<kw name="Set Test Message" owner="BuiltIn">
<arg>${msg}${newline}${newline}${TEST_MESSAGE}</arg>
<doc>Sets message for the current test case.</doc>
<status status="NOT RUN" start="2026-08-31T01:16:52.626260" 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-31T01:16:52.626388" 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-31T01:16:52.626582" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-08-31T01:16:52.626459" elapsed="0.000173"/>
</branch>
<status status="NOT RUN" start="2026-08-31T01:16:52.626445" elapsed="0.000208"/>
</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-31T01:16:52.624248" elapsed="0.002453"/>
</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-31T01:06:45.859540" elapsed="606.767203"/>
</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-31T00:46:29.970901" elapsed="1822.656441"/>
</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>
