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

[?1h=[90m~[0m                                                                                [?2004hopendaylight-user</msg>
<arg>${KARAF_USER}</arg>
<arg>${KARAF_PASSWORD}</arg>
<arg>loglevel=${loglevel}</arg>
<doc>Logs into the SSH server with the given ``username`` and ``password``.</doc>
<status status="PASS" start="2026-10-03T00:49:43.333355" elapsed="0.777136"/>
</kw>
<kw name="Write" owner="SSHLibrary">
<msg time="2026-10-03T00:49:44.159405" level="INFO">@root&gt;log:set ERROR</msg>
<arg>${cmd}</arg>
<doc>Writes the given ``text`` on the remote machine and appends a newline.</doc>
<status status="PASS" start="2026-10-03T00:49:44.110684" elapsed="0.048788"/>
</kw>
<kw name="Read Until Regexp" owner="SSHLibrary">
<msg time="2026-10-03T00:49:44.161244" level="INFO">[?1l&gt;[?2004l[?1h=[90m~[0m                                                                                [?2004hopendaylight-user@root&gt;</msg>
<msg time="2026-10-03T00:49:44.161348" level="INFO">${output} = [?1l&gt;[?2004l[?1h=[90m~[0m                                                                                [?2004hopendaylight-user@root&gt;</msg>
<var>${output}</var>
<arg>${KARAF_PROMPT}</arg>
<doc>Consumes and returns the server output until a match to ``regexp`` is found.</doc>
<status status="PASS" start="2026-10-03T00:49:44.159644" elapsed="0.001733"/>
</kw>
<kw name="Write Bare" owner="SSHLibrary">
<arg>logout\n</arg>
<doc>Writes the given ``text`` on the remote machine without appending a newline.</doc>
<status status="PASS" start="2026-10-03T00:49:44.161536" elapsed="0.000196"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-10-03T00:49:44.161890" elapsed="0.000208"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T00:49:44.162600" level="INFO">[?1l&gt;[?2004l[?1h=[90m~[0m                                                                                [?2004hopendaylight-user@root&gt;</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-03T00:49:44.162319" elapsed="0.000333"/>
</kw>
<return>
<value>${output}</value>
<status status="PASS" start="2026-10-03T00:49:44.162696" elapsed="0.000047"/>
</return>
<arg>log:set ${log_level}</arg>
<doc>Will execute the given ${cmd} by ssh'ing to the karaf console running on 10.30.170.71
Note that this keyword will open&amp;close new SSH connection, without switching back to previously current session.</doc>
<status status="PASS" start="2026-10-03T00:49:43.331978" elapsed="0.830857"/>
</kw>
<arg>3x</arg>
<arg>1s</arg>
<arg>KarafKeywords.Issue Command On Karaf Console</arg>
<arg>log:set ${log_level}</arg>
<doc>Runs the specified keyword and retries if it fails.</doc>
<status status="PASS" start="2026-10-03T00:49:43.330356" elapsed="0.832535"/>
</kw>
<kw name="Append To File" owner="OperatingSystem">
<msg time="2026-10-03T00:49:44.163379" 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-10-03T00:49:44.163068" elapsed="0.000363"/>
</kw>
<kw name="Append To File" owner="OperatingSystem">
<msg time="2026-10-03T00:49:44.163790" 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-10-03T00:49:44.163579" elapsed="0.000263"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-03T00:49:44.164429" level="INFO">${duration_in_ms} = 60000</msg>
<var>${duration_in_ms}</var>
<arg>${duration_in_secs} * 1000</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-10-03T00:49:44.164010" elapsed="0.000469"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-10-03T00:49:44.164979" level="INFO">${duration_in_ms} = 60000</msg>
<arg>${duration_in_ms}</arg>
<doc>Makes the variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-10-03T00:49:44.164677" elapsed="0.000341"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-03T00:49:44.165530" level="INFO">${test_timeout} = 900.0</msg>
<var>${test_timeout}</var>
<arg>(${loops} * ${duration_in_secs}) * 1.5</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-10-03T00:49:44.165206" elapsed="0.000349"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-10-03T00:49:44.166017" level="INFO">${test_timeout} = 900.0</msg>
<arg>${test_timeout}</arg>
<doc>Makes the variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-10-03T00:49:44.165736" elapsed="0.000320"/>
</kw>
<if>
<branch type="IF" condition="&quot;${cbench_system}&quot; == &quot;localhost&quot;">
<kw name="File Should Exist" owner="OperatingSystem">
<arg>${cbench_executable}</arg>
<doc>Fails unless the given `path` points to an existing file.</doc>
<status status="NOT RUN" start="2026-10-03T00:49:44.166343" elapsed="0.000019"/>
</kw>
<status status="NOT RUN" start="2026-10-03T00:49:44.166127" elapsed="0.000266"/>
</branch>
<branch type="ELSE">
<kw name="Verify File Exists On Remote System" owner="Utils">
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-10-03T00:49:44.168452" level="INFO">${conn_id} = 2</msg>
<var>${conn_id}</var>
<arg>${system}</arg>
<arg>prompt=${prompt}</arg>
<arg>timeout=${prompt_timeout}</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-10-03T00:49:44.168094" elapsed="0.000384"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-10-03T00:49:44.169554" level="INFO">Length is 0.</msg>
<msg time="2026-10-03T00:49:44.169633" level="INFO">${pwd_length} = 0</msg>
<var>${pwd_length}</var>
<arg>${password}</arg>
<doc>Returns and logs the length of the given item as an integer.</doc>
<status status="PASS" start="2026-10-03T00:49:44.168961" elapsed="0.000694"/>
</kw>
<kw name="Run Keyword And Return If" owner="BuiltIn">
<arg>${pwd_length} &gt; 0</arg>
<arg>SSHLibrary.Login</arg>
<arg>${user}</arg>
<arg>${password}</arg>
<arg>delay=${delay}</arg>
<doc>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-03T00:49:44.169794" elapsed="0.000310"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-10-03T00:49:44.170882" level="INFO">Logging into '10.30.171.252:22' as 'jenkins'.</msg>
<msg time="2026-10-03T00:49:44.656766" level="INFO">Read output: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-187-generic x86_64)

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

 System information as of Sat Oct  3 00:49:13 UTC 2026

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


Expanded Security Maintenance for Applications is not enabled.

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

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


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


[?2004h[jenkins@releng-63164-415-1-mininet-ovs-217-0 ~]&gt;</msg>
<arg>${user}</arg>
<arg>${USER_HOME}/.ssh/${SSH_KEY}</arg>
<arg>${KEYFILE_PASS}</arg>
<arg>delay=${delay}</arg>
<doc>Logs into the SSH server using key-based authentication.</doc>
<status status="PASS" start="2026-10-03T00:49:44.170644" elapsed="0.486203"/>
</kw>
<msg time="2026-10-03T00:49:44.656909" level="INFO">Returning from the enclosing user keyword.</msg>
<arg>SSHLibrary.Login With Public Key</arg>
<arg>${user}</arg>
<arg>${USER_HOME}/.ssh/${SSH_KEY}</arg>
<arg>${KEYFILE_PASS}</arg>
<arg>delay=${delay}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-03T00:49:44.170286" elapsed="0.486687"/>
</kw>
<arg>${user}</arg>
<arg>${password}</arg>
<doc>On active SSH session: if given non-empty password, do Login, else do Login With Public Key.</doc>
<status status="PASS" start="2026-10-03T00:49:44.168659" elapsed="0.488395"/>
</kw>
<kw name="File Should Exist" owner="SSHLibrary">
<msg time="2026-10-03T00:49:44.667605" level="INFO">[chan 1] Opened sftp connection (server version 3)</msg>
<arg>${file}</arg>
<doc>Fails if the given ``path`` does NOT point to an existing file.</doc>
<status status="PASS" start="2026-10-03T00:49:44.657229" elapsed="0.012538"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-10-03T00:49:44.669929" elapsed="0.000256"/>
</kw>
<arg>${cbench_system}</arg>
<arg>${cbench_executable}</arg>
<doc>Will create connection with public key and will PASS if the given ${file} exists,
otherwise will FAIL</doc>
<status status="PASS" start="2026-10-03T00:49:44.167659" elapsed="0.502612"/>
</kw>
<status status="PASS" start="2026-10-03T00:49:44.166466" elapsed="0.503839"/>
</branch>
<status status="PASS" start="2026-10-03T00:49:44.166104" elapsed="0.504227"/>
</if>
<kw name="Should Be True" owner="BuiltIn">
<arg>${loops} &gt;= 2</arg>
<arg>If number of loops is less than 2, cbench will not run</arg>
<doc>Fails if the given condition is not true.</doc>
<status status="PASS" start="2026-10-03T00:49:44.670492" elapsed="0.000374"/>
</kw>
<kw name="Verify_Feature_Is_Installed" owner="KarafKeywords">
<if>
<branch type="IF" condition="'${IS_KARAF_APPL}' == 'False'">
<return>
<value>Not A Karaf App</value>
<status status="NOT RUN" start="2026-10-03T00:49:44.672621" elapsed="0.000018"/>
</return>
<status status="NOT RUN" start="2026-10-03T00:49:44.672529" elapsed="0.000141"/>
</branch>
<status status="PASS" start="2026-10-03T00:49:44.672508" elapsed="0.000185"/>
</if>
<kw name="Issue_Command_On_Karaf_Console" owner="KarafKeywords">
<if>
<branch type="IF" condition="'${IS_KARAF_APPL}' == 'False'">
<return>
<value>Not A Karaf App</value>
<status status="NOT RUN" start="2026-10-03T00:49:44.674133" elapsed="0.000015"/>
</return>
<status status="NOT RUN" start="2026-10-03T00:49:44.674043" elapsed="0.000159"/>
</branch>
<status status="PASS" start="2026-10-03T00:49:44.674024" elapsed="0.000201"/>
</if>
<kw name="Open Connection" owner="SSHLibrary">
<arg>${controller}</arg>
<arg>port=${karaf_port}</arg>
<arg>prompt=${KARAF_PROMPT_LOGIN}</arg>
<arg>timeout=${timeout}</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-10-03T00:49:44.674381" elapsed="0.000340"/>
</kw>
<kw name="Login" owner="SSHLibrary">
<msg time="2026-10-03T00:49:44.675094" level="INFO">Logging into '10.30.170.71:8101' as 'karaf'.</msg>
<msg time="2026-10-03T00:49:44.909044" level="INFO">Read output: [33m                                                                                           
[33m    ________                       ________                .__  .__       .__     __       
[33m    \_____  \ ______   ____   ____ \______ \ _____  ___.__.|  | |__| ____ |  |___/  |_     
[33m     /   |   \\____ \_/ __ \ /    \ |    |  \\__  \&lt;   |  ||  | |  |/ ___\|  |  \   __\    
[33m    /    |    \  |_&gt; &gt;  ___/|   |  \|    `   \/ __ \\___  ||  |_|  / /_/  &gt;   Y  \  |      
[33m    \_______  /   __/ \___  &gt;___|  /_______  (____  / ____||____/__\___  /|___|  /__|      
[33m            \/|__|        \/     \/        \/     \/\/            /_____/      \/          
[33m                                                                                           

Hit '[1m&lt;tab&gt;[0m' for a list of available commands
and '[1m[cmd] --help[0m' for help on a specific command.
Hit '[1m&lt;ctrl-d&gt;[0m' or type '[1msystem:shutdown[0m' or '[1mlogout[0m' to shutdown OpenDaylight.

[?1h=[90m~[0m                                                                                [?2004hopendaylight-user</msg>
<arg>${KARAF_USER}</arg>
<arg>${KARAF_PASSWORD}</arg>
<arg>loglevel=${loglevel}</arg>
<doc>Logs into the SSH server with the given ``username`` and ``password``.</doc>
<status status="PASS" start="2026-10-03T00:49:44.674897" elapsed="0.234238"/>
</kw>
<kw name="Write" owner="SSHLibrary">
<msg time="2026-10-03T00:49:44.998040" level="INFO">@root&gt;feature:list -i | 0[C 0g[Krep odl-openflowplugin-drop-test</msg>
<arg>${cmd}</arg>
<doc>Writes the given ``text`` on the remote machine and appends a newline.</doc>
<status status="PASS" start="2026-10-03T00:49:44.909331" elapsed="0.088771"/>
</kw>
<kw name="Read Until Regexp" owner="SSHLibrary">
<msg time="2026-10-03T00:49:45.005681" 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-10-03T00:49:45.005840" 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-10-03T00:49:44.998283" elapsed="0.007587"/>
</kw>
<kw name="Write Bare" owner="SSHLibrary">
<arg>logout\n</arg>
<doc>Writes the given ``text`` on the remote machine without appending a newline.</doc>
<status status="PASS" start="2026-10-03T00:49:45.006013" elapsed="0.000205"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-10-03T00:49:45.006372" elapsed="0.000149"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T00:49:45.006943" 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-10-03T00:49:45.006697" elapsed="0.000298"/>
</kw>
<return>
<value>${output}</value>
<status status="PASS" start="2026-10-03T00:49:45.007035" elapsed="0.000036"/>
</return>
<msg time="2026-10-03T00:49:45.007214" 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.170.71
Note that this keyword will open&amp;close new SSH connection, without switching back to previously current session.</doc>
<status status="PASS" start="2026-10-03T00:49:44.673759" elapsed="0.333487"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${output}</arg>
<arg>${feature_name}</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-03T00:49:45.007399" elapsed="0.000431"/>
</kw>
<return>
<value>${output}</value>
<status status="PASS" start="2026-10-03T00:49:45.007876" elapsed="0.000031"/>
</return>
<arg>odl-openflowplugin-drop-test</arg>
<doc>Will Succeed if the given ${feature_name} is found in the output of "feature:list -i"</doc>
<status status="PASS" start="2026-10-03T00:49:44.672297" elapsed="0.335688"/>
</kw>
<kw name="Issue_Command_On_Karaf_Console" owner="KarafKeywords">
<if>
<branch type="IF" condition="'${IS_KARAF_APPL}' == 'False'">
<return>
<value>Not A Karaf App</value>
<status status="NOT RUN" start="2026-10-03T00:49:45.009632" elapsed="0.000016"/>
</return>
<status status="NOT RUN" start="2026-10-03T00:49:45.009540" elapsed="0.000138"/>
</branch>
<status status="PASS" start="2026-10-03T00:49:45.009520" elapsed="0.000179"/>
</if>
<kw name="Open Connection" owner="SSHLibrary">
<arg>${controller}</arg>
<arg>port=${karaf_port}</arg>
<arg>prompt=${KARAF_PROMPT_LOGIN}</arg>
<arg>timeout=${timeout}</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-10-03T00:49:45.009853" elapsed="0.000369"/>
</kw>
<kw name="Login" owner="SSHLibrary">
<msg time="2026-10-03T00:49:45.010591" level="INFO">Logging into '10.30.170.71:8101' as 'karaf'.</msg>
<msg time="2026-10-03T00:49:45.182807" level="INFO">Read output: [33m                                                                                           
[33m    ________                       ________                .__  .__       .__     __       
[33m    \_____  \ ______   ____   ____ \______ \ _____  ___.__.|  | |__| ____ |  |___/  |_     
[33m     /   |   \\____ \_/ __ \ /    \ |    |  \\__  \&lt;   |  ||  | |  |/ ___\|  |  \   __\    
[33m    /    |    \  |_&gt; &gt;  ___/|   |  \|    `   \/ __ \\___  ||  |_|  / /_/  &gt;   Y  \  |      
[33m    \_______  /   __/ \___  &gt;___|  /_______  (____  / ____||____/__\___  /|___|  /__|      
[33m            \/|__|        \/     \/        \/     \/\/            /_____/      \/          
[33m                                                                                           

Hit '[1m&lt;tab&gt;[0m' for a list of available commands
and '[1m[cmd] --help[0m' for help on a specific command.
Hit '[1m&lt;ctrl-d&gt;[0m' or type '[1msystem:shutdown[0m' or '[1mlogout[0m' to shutdown OpenDaylight.

[?1h=[90m~[0m                                                                                [?2004hopendaylight-user</msg>
<arg>${KARAF_USER}</arg>
<arg>${KARAF_PASSWORD}</arg>
<arg>loglevel=${loglevel}</arg>
<doc>Logs into the SSH server with the given ``username`` and ``password``.</doc>
<status status="PASS" start="2026-10-03T00:49:45.010395" elapsed="0.172502"/>
</kw>
<kw name="Write" owner="SSHLibrary">
<msg time="2026-10-03T00:49:45.208676" level="INFO">@root&gt;dropallpacketsrpc on</msg>
<arg>${cmd}</arg>
<doc>Writes the given ``text`` on the remote machine and appends a newline.</doc>
<status status="PASS" start="2026-10-03T00:49:45.183053" elapsed="0.025681"/>
</kw>
<kw name="Read Until Regexp" owner="SSHLibrary">
<msg time="2026-10-03T00:49:45.210636" level="INFO">[?1l&gt;[?2004lDropAllFlows transitions to on
[?1h=[90m~[0m                                                                                [?2004hopendaylight-user@root&gt;</msg>
<msg time="2026-10-03T00:49:45.210726" level="INFO">${output} = [?1l&gt;[?2004lDropAllFlows transitions to on
[?1h=[90m~[0m                                                                                [?2004hopendaylight-user@root&gt;</msg>
<var>${output}</var>
<arg>${KARAF_PROMPT}</arg>
<doc>Consumes and returns the server output until a match to ``regexp`` is found.</doc>
<status status="PASS" start="2026-10-03T00:49:45.208885" elapsed="0.001868"/>
</kw>
<kw name="Write Bare" owner="SSHLibrary">
<arg>logout\n</arg>
<doc>Writes the given ``text`` on the remote machine without appending a newline.</doc>
<status status="PASS" start="2026-10-03T00:49:45.210887" elapsed="0.000169"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-10-03T00:49:45.211223" elapsed="0.000153"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T00:49:45.211790" level="INFO">[?1l&gt;[?2004lDropAllFlows transitions to on
[?1h=[90m~[0m                                                                                [?2004hopendaylight-user@root&gt;</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-03T00:49:45.211553" elapsed="0.000287"/>
</kw>
<return>
<value>${output}</value>
<status status="PASS" start="2026-10-03T00:49:45.211882" elapsed="0.000036"/>
</return>
<arg>dropallpacketsrpc on</arg>
<doc>Will execute the given ${cmd} by ssh'ing to the karaf console running on 10.30.170.71
Note that this keyword will open&amp;close new SSH connection, without switching back to previously current session.</doc>
<status status="PASS" start="2026-10-03T00:49:45.009283" elapsed="0.202713"/>
</kw>
<status status="PASS" start="2026-10-03T00:49:43.328387" elapsed="1.883663"/>
</kw>
<test id="s1-t1" name="Cbench Latency Test" line="37">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T00:49:45.213583" level="INFO">Cbench tests using 10 iterations of 60 second tests. Switch Count: 16. Unique MACS to cycle: 100</msg>
<arg>Cbench tests using ${loops} iterations of ${duration_in_secs} second tests. Switch Count: ${switch_count}. Unique MACS to cycle: ${num_of_unique_macs}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-03T00:49:45.212916" elapsed="0.000727"/>
</kw>
<kw name="Run Cbench And Log Results">
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-10-03T00:49:45.214866" level="INFO">${output_filename} = latency.csv</msg>
<arg>${output_filename}</arg>
<doc>Makes the variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-10-03T00:49:45.214559" 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 [Process] library instead.*</doc>
<status status="NOT RUN" start="2026-10-03T00:49:45.215218" elapsed="0.000022"/>
</kw>
<status status="NOT RUN" start="2026-10-03T00:49:45.214976" elapsed="0.000298"/>
</branch>
<branch type="ELSE">
<kw name="Run Command On Remote System" owner="Utils">
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot; and &quot;${return_stderr}&quot;!=&quot;True&quot;">
<kw name="Fail" owner="BuiltIn">
<arg>At least one of {return_stdout} or {return_stderr} args should be set to True</arg>
<doc>Fails the test or task with the given message and optionally alters its tags.</doc>
<status status="NOT RUN" start="2026-10-03T00:49:45.216458" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-10-03T00:49:45.216230" elapsed="0.000280"/>
</branch>
<status status="PASS" start="2026-10-03T00:49:45.216205" elapsed="0.000329"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-10-03T00:49:45.216888" level="INFO">index=None
host=None
alias=None
port=22
timeout=3 seconds
newline=

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

prompt=None
term_type=vt100
width=80
height=24
path_separator=/
encoding=utf8
escape_ansi=False
encoding_errors=strict</msg>
<var>${current_ssh_connection}</var>
<doc>Returns information about the connection.</doc>
<status status="PASS" start="2026-10-03T00:49:45.216710" elapsed="0.000316"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T00:49:45.217572" level="INFO">Attempting to execute command "/usr/local/bin/cbench -c 10.30.170.71 -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633" on remote system "10.30.171.252" by user "jenkins" with keyfile pass "any" and prompt "&gt;" and password ""</msg>
<arg>Attempting to execute command "${cmd}" on remote system "${system}" by user "${user}" with keyfile pass "${keyfile_pass}" and prompt "${prompt}" and password "${password}"</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-03T00:49:45.217238" elapsed="0.000389"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-10-03T00:49:45.218184" level="INFO">${conn_id} = 5</msg>
<var>${conn_id}</var>
<arg>${system}</arg>
<arg>prompt=${prompt}</arg>
<arg>timeout=${prompt_timeout}</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-10-03T00:49:45.217787" elapsed="0.000436"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-10-03T00:49:45.219028" level="INFO">Length is 0.</msg>
<msg time="2026-10-03T00:49:45.219108" level="INFO">${pwd_length} = 0</msg>
<var>${pwd_length}</var>
<arg>${password}</arg>
<doc>Returns and logs the length of the given item as an integer.</doc>
<status status="PASS" start="2026-10-03T00:49:45.218746" 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>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-03T00:49:45.219291" elapsed="0.000485"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-10-03T00:49:45.220592" level="INFO">Logging into '10.30.171.252:22' as 'jenkins'.</msg>
<msg time="2026-10-03T00:49:45.604921" level="INFO">Read output: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-187-generic x86_64)

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

 System information as of Sat Oct  3 00:49:13 UTC 2026

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


Expanded Security Maintenance for Applications is not enabled.

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

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


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


Last login: Sat Oct  3 00:49:44 2026 from 10.30.170.122
[?2004h[jenkins@releng-63164-415-1-mininet-ovs-217-0 ~]&gt;</msg>
<arg>${user}</arg>
<arg>${USER_HOME}/.ssh/${SSH_KEY}</arg>
<arg>${KEYFILE_PASS}</arg>
<arg>delay=${delay}</arg>
<doc>Logs into the SSH server using key-based authentication.</doc>
<status status="PASS" start="2026-10-03T00:49:45.220325" elapsed="0.384699"/>
</kw>
<msg time="2026-10-03T00:49:45.605080" level="INFO">Returning from the enclosing user keyword.</msg>
<arg>SSHLibrary.Login With Public Key</arg>
<arg>${user}</arg>
<arg>${USER_HOME}/.ssh/${SSH_KEY}</arg>
<arg>${KEYFILE_PASS}</arg>
<arg>delay=${delay}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-03T00:49:45.219930" elapsed="0.385211"/>
</kw>
<arg>${user}</arg>
<arg>${password}</arg>
<doc>On active SSH session: if given non-empty password, do Login, else do Login With Public Key.</doc>
<status status="PASS" start="2026-10-03T00:49:45.218407" elapsed="0.386850"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-03T00:49:45.605635" level="INFO">Executing command '/usr/local/bin/cbench -c 10.30.170.71 -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633'.</msg>
<msg time="2026-10-03T00:59:51.749588" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-10-03T00:59:51.750042" level="INFO">${stdout} = </msg>
<msg time="2026-10-03T00:59:51.750139" level="INFO">${stderr} = cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.170.71:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with 100...</msg>
<var>${stdout}</var>
<var>${stderr}</var>
<arg>${cmd}</arg>
<arg>return_stderr=True</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-10-03T00:49:45.605445" elapsed="606.144812"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-10-03T00:59:51.750677" elapsed="0.000669"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T00:59:51.752503" level="INFO">cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.170.71:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with 100 unique source MACs per switch
   learning destination mac addresses before the test
   starting test with 5000 ms delay after features_reply
   ignoring first 1 "warmup" and last 0 "cooldown" loops
   debugging info is off
Master Thread: Creating thread-0! 
Thread-0: All switches initialized. Running at node 10.30.170.71. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
00:50:50.842 16  switches: flows:  89877 91506 87993 89970 90089 91401 90588 88652 87732 87453 86015 87669 85289 87424 85459 85663  total = 23.546333 per ms 
00:51:50.942 16  switches: flows:  96116 99141 98858 103081 99971 100649 98934 98033 97734 96614 96728 95267 92359 95517 97514 92209  total = 25.935462 per ms 
00:52:51.043 16  switches: flows:  92472 92984 91190 94142 93125 93367 91733 91065 90645 89600 88920 89758 87578 90024 90035 86207  total = 24.173723 per ms 
00:53:51.143 16  switches: flows:  96646 97723 99355 101803 100721 102169 97590 99022 99967 95093 97302 96555 93704 96135 95768 91959  total = 25.981852 per ms 
00:54:51.243 16  switches: flows:  94803 96222 94912 98981 97076 97683 97632 96115 95581 91890 94640 94626 91806 92478 93257 89389  total = 25.242715 per ms 
00:55:51.344 16  switches: flows:  94149 96773 94390 98138 96403 97279 96448 92735 93851 91838 95097 94100 92395 93469 92560 91909  total = 25.150259 per ms 
00:56:51.444 16  switches: flows:  95564 94432 94277 95700 97243 96448 97046 91516 93398 90859 93503 91475 89648 91989 90155 89693  total = 24.840986 per ms 
00:57:51.545 16  switches: flows:  93065 95361 95340 97219 96908 97947 94909 92787 93509 90674 93195 90318 91707 90936 92195 90871  total = 24.907427 per ms 
00:58:51.646 16  switches: flows:  94066 97604 96173 97176 97159 99654 96183 93123 95329 92766 93007 90758 89907 91570 92867 91105  total = 25.098892 per ms 
00:59:51.746 16  switches: flows:  96433 98123 95539 97083 97905 98468 98367 94702 94620 93380 94108 91711 91690 94075 91473 91690  total = 25.280575 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 24173.72/25981.85/25179.10/8409.15 responses/s</msg>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-03T00:59:51.751790" elapsed="0.000978"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="PASS" start="2026-10-03T00:59:51.753187" elapsed="0.000123"/>
</return>
<status status="PASS" start="2026-10-03T00:59:51.752942" elapsed="0.000445"/>
</branch>
<status status="PASS" start="2026-10-03T00:59:51.752888" elapsed="0.000552"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="NOT RUN" start="2026-10-03T00:59:51.753636" elapsed="0.000027"/>
</return>
<status status="NOT RUN" start="2026-10-03T00:59:51.753562" elapsed="0.000158"/>
</branch>
<status status="NOT RUN" start="2026-10-03T00:59:51.753529" elapsed="0.000234"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-10-03T00:59:51.753829" elapsed="0.000029"/>
</return>
<kw name="Restore_Current_Ssh_Connection_From_Index" owner="SSHKeywords" type="TEARDOWN">
<kw name="Run Keyword And Return If" owner="BuiltIn">
<arg>${connection_index} is not None</arg>
<arg>SSHLibrary.Switch Connection</arg>
<arg>${connection_index}</arg>
<doc>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-03T00:59:51.755444" elapsed="0.000645"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<arg>127.0.0.1</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-10-03T00:59:51.756517" elapsed="0.000322"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-10-03T00:59:51.757116" elapsed="0.000265"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-10-03T00:59:51.754508" elapsed="0.002980"/>
</kw>
<msg time="2026-10-03T00:59:51.757712" level="INFO">${output} = cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.170.71:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with 100...</msg>
<var>${output}</var>
<arg>${cbench_system}</arg>
<arg>${cbench_executable} -c ${ODL_SYSTEM_IP} ${cbench_args}</arg>
<arg>prompt_timeout=${test_timeout}</arg>
<arg>return_stdout=False</arg>
<arg>return_stderr=True</arg>
<doc>Reduces the common work of running a command on a remote system to a single higher level
robot keyword, taking care to log in with a public key and. The command given is written and the return value
depends on the passed argument values of return_stdout (default: True) and return_stderr (default: False).
At least one should be True, or the keyword will exit and FAIL. If both are True, the resulting return value
will be a two element list containing both. Otherwise the resulting return value is a string.
No test conditions are checked.</doc>
<status status="PASS" start="2026-10-03T00:49:45.215598" elapsed="606.542168"/>
</kw>
<status status="PASS" start="2026-10-03T00:49:45.215299" elapsed="606.542562"/>
</branch>
<status status="PASS" start="2026-10-03T00:49:45.214956" elapsed="606.542954"/>
</if>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T00:59:51.758932" level="INFO">cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.170.71:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with 100 unique source MACs per switch
   learning destination mac addresses before the test
   starting test with 5000 ms delay after features_reply
   ignoring first 1 "warmup" and last 0 "cooldown" loops
   debugging info is off
Master Thread: Creating thread-0! 
Thread-0: All switches initialized. Running at node 10.30.170.71. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
00:50:50.842 16  switches: flows:  89877 91506 87993 89970 90089 91401 90588 88652 87732 87453 86015 87669 85289 87424 85459 85663  total = 23.546333 per ms 
00:51:50.942 16  switches: flows:  96116 99141 98858 103081 99971 100649 98934 98033 97734 96614 96728 95267 92359 95517 97514 92209  total = 25.935462 per ms 
00:52:51.043 16  switches: flows:  92472 92984 91190 94142 93125 93367 91733 91065 90645 89600 88920 89758 87578 90024 90035 86207  total = 24.173723 per ms 
00:53:51.143 16  switches: flows:  96646 97723 99355 101803 100721 102169 97590 99022 99967 95093 97302 96555 93704 96135 95768 91959  total = 25.981852 per ms 
00:54:51.243 16  switches: flows:  94803 96222 94912 98981 97076 97683 97632 96115 95581 91890 94640 94626 91806 92478 93257 89389  total = 25.242715 per ms 
00:55:51.344 16  switches: flows:  94149 96773 94390 98138 96403 97279 96448 92735 93851 91838 95097 94100 92395 93469 92560 91909  total = 25.150259 per ms 
00:56:51.444 16  switches: flows:  95564 94432 94277 95700 97243 96448 97046 91516 93398 90859 93503 91475 89648 91989 90155 89693  total = 24.840986 per ms 
00:57:51.545 16  switches: flows:  93065 95361 95340 97219 96908 97947 94909 92787 93509 90674 93195 90318 91707 90936 92195 90871  total = 24.907427 per ms 
00:58:51.646 16  switches: flows:  94066 97604 96173 97176 97159 99654 96183 93123 95329 92766 93007 90758 89907 91570 92867 91105  total = 25.098892 per ms 
00:59:51.746 16  switches: flows:  96433 98123 95539 97083 97905 98468 98367 94702 94620 93380 94108 91711 91690 94075 91473 91690  total = 25.280575 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 24173.72/25981.85/25179.10/8409.15 responses/s</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-03T00:59:51.758349" elapsed="0.000733"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${output}</arg>
<arg>RESULT</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-03T00:59:51.759473" elapsed="0.000787"/>
</kw>
<kw name="Get Lines Containing String" owner="String">
<msg time="2026-10-03T00:59:51.761050" level="INFO">1 out of 23 lines matched.</msg>
<msg time="2026-10-03T00:59:51.761292" level="INFO">${result_line} = RESULT: 16 switches 9 tests min/max/avg/stdev = 24173.72/25981.85/25179.10/8409.15 responses/s</msg>
<var>${result_line}</var>
<arg>${output}</arg>
<arg>RESULT</arg>
<doc>Returns lines of the given `string` that contain the `pattern`.</doc>
<status status="PASS" start="2026-10-03T00:59:51.760631" elapsed="0.000716"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-10-03T00:59:51.762179" level="INFO">@{results_list} = [ RESULT: | 16 | switches | 9 | tests | min/max/avg/stdev | = | 24173.72/25981.85/25179.10/8409.15 | responses/s ]</msg>
<var>@{results_list}</var>
<arg>${result_line}</arg>
<doc>Splits the `string` using `separator` as a delimiter string.</doc>
<status status="PASS" start="2026-10-03T00:59:51.761701" elapsed="0.000579"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T00:59:51.763446" level="INFO">min/max/avg/stdev</msg>
<arg>${results_list[5]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-03T00:59:51.762690" elapsed="0.000871"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T00:59:51.764680" level="INFO">24173.72/25981.85/25179.10/8409.15</msg>
<arg>${results_list[7]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-03T00:59:51.763961" elapsed="0.000830"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-10-03T00:59:51.765823" level="INFO">@{result_name_list} = [ min | max | avg | stdev ]</msg>
<var>@{result_name_list}</var>
<arg>${results_list[5]}</arg>
<arg>/</arg>
<doc>Splits the `string` using `separator` as a delimiter string.</doc>
<status status="PASS" start="2026-10-03T00:59:51.765129" elapsed="0.000749"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-10-03T00:59:51.766986" level="INFO">@{result_value_list} = [ 24173.72 | 25981.85 | 25179.10 | 8409.15 ]</msg>
<var>@{result_value_list}</var>
<arg>${results_list[7]}</arg>
<arg>/</arg>
<doc>Splits the `string` using `separator` as a delimiter string.</doc>
<status status="PASS" start="2026-10-03T00:59:51.766352" elapsed="0.000689"/>
</kw>
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-10-03T00:59:51.768146" level="INFO">Length is 4.</msg>
<msg time="2026-10-03T00:59:51.768375" level="INFO">${num_stats} = 4</msg>
<var>${num_stats}</var>
<arg>${result_name_list}</arg>
<doc>Returns and logs the length of the given item as an integer.</doc>
<status status="PASS" start="2026-10-03T00:59:51.767530" elapsed="0.000896"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T00:59:51.770275" level="INFO">min :: 24173.72</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-03T00:59:51.769325" elapsed="0.001069"/>
</kw>
<var name="${i}">0</var>
<status status="PASS" start="2026-10-03T00:59:51.768885" elapsed="0.001578"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T00:59:51.771989" level="INFO">max :: 25981.85</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-03T00:59:51.771057" elapsed="0.001048"/>
</kw>
<var name="${i}">1</var>
<status status="PASS" start="2026-10-03T00:59:51.770640" elapsed="0.001533"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T00:59:51.773686" level="INFO">avg :: 25179.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-10-03T00:59:51.772764" elapsed="0.001032"/>
</kw>
<var name="${i}">2</var>
<status status="PASS" start="2026-10-03T00:59:51.772399" elapsed="0.001464"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T00:59:51.775426" level="INFO">stdev :: 8409.15</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-03T00:59:51.774505" elapsed="0.001032"/>
</kw>
<var name="${i}">3</var>
<status status="PASS" start="2026-10-03T00:59:51.774041" elapsed="0.001564"/>
</iter>
<var>${i}</var>
<value>0</value>
<value>${num_stats}</value>
<status status="PASS" start="2026-10-03T00:59:51.768551" elapsed="0.007120"/>
</for>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-03T00:59:51.776900" level="INFO">${min} = 24173.72</msg>
<var>${min}</var>
<arg>${result_value_list[${0}]}</arg>
<doc>Returns the given values which can then be assigned to a variable.</doc>
<status status="PASS" start="2026-10-03T00:59:51.776008" elapsed="0.000947"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-03T00:59:51.778146" level="INFO">${max} = 25981.85</msg>
<var>${max}</var>
<arg>${result_value_list[${1}]}</arg>
<doc>Returns the given values which can then be assigned to a variable.</doc>
<status status="PASS" start="2026-10-03T00:59:51.777334" elapsed="0.000937"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-03T00:59:51.779504" level="INFO">${average} = 25179.10</msg>
<var>${average}</var>
<arg>${result_value_list[${2}]}</arg>
<doc>Returns the given values which can then be assigned to a variable.</doc>
<status status="PASS" start="2026-10-03T00:59:51.778602" elapsed="0.000956"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-03T00:59:51.780746" level="INFO">${stdev} = 8409.15</msg>
<var>${stdev}</var>
<arg>${result_value_list[${3}]}</arg>
<doc>Returns the given values which can then be assigned to a variable.</doc>
<status status="PASS" start="2026-10-03T00:59:51.779882" elapsed="0.000918"/>
</kw>
<kw name="Get Time" owner="BuiltIn">
<msg time="2026-10-03T00:59:51.781960" level="INFO">${date} = 2026-10-03 00:59:51</msg>
<var>${date}</var>
<arg>d,m,s</arg>
<doc>Returns the given time in the requested format.</doc>
<status status="PASS" start="2026-10-03T00:59:51.781248" elapsed="0.000764"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T00:59:51.783351" level="INFO">CBench Result: 2026-10-03 00:59:51,-m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633,24173.72,25981.85,25179.10,8409.15</msg>
<arg>CBench Result: ${date},${cbench_args},${min},${max},${average},${stdev}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-03T00:59:51.782543" elapsed="0.000924"/>
</kw>
<kw name="Log Results And Determine Status">
<kw name="Append To File" owner="OperatingSystem">
<msg time="2026-10-03T00:59:51.786062" 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-10-03T00:59:51.784684" elapsed="0.001582"/>
</kw>
<kw name="Should Be True" owner="BuiltIn">
<arg>${average} &gt; ${threshold}</arg>
<arg>${average} flow_mods per/sec did not exceed threshold of ${threshold}</arg>
<doc>Fails if the given condition is not true.</doc>
<status status="PASS" start="2026-10-03T00:59:51.786624" elapsed="0.000923"/>
</kw>
<arg>${min}</arg>
<arg>${max}</arg>
<arg>${average}</arg>
<arg>${average_threshold}</arg>
<arg>${output_filename}</arg>
<status status="PASS" start="2026-10-03T00:59:51.783731" elapsed="0.003949"/>
</kw>
<arg>-m ${duration_in_ms} -M ${num_of_unique_macs} -S ${switch_count} -l ${loops} -D ${start_delay} -p ${of_port}</arg>
<arg>${latency_threshold}</arg>
<arg>${latency_results_file}</arg>
<status status="PASS" start="2026-10-03T00:49:45.213992" elapsed="606.573805"/>
</kw>
<kw name="Sleep" owner="BuiltIn">
<msg time="2026-10-03T00:59:51.788917" level="INFO">Slept 0 seconds.</msg>
<arg>${test_delay}</arg>
<doc>Pauses execution for the given time.</doc>
<status status="PASS" start="2026-10-03T00:59:51.788110" elapsed="0.000922"/>
</kw>
<kw name="Log Results As Zero If Cbench Timed Out" type="TEARDOWN">
<kw name="Run Keyword If Timeout Occurred" owner="BuiltIn">
<arg>Log Results And Determine Status</arg>
<arg>0</arg>
<arg>0</arg>
<arg>0</arg>
<arg>0</arg>
<arg>${output_filename}</arg>
<doc>Runs the given keyword if either a test or a keyword timeout has occurred.</doc>
<status status="PASS" start="2026-10-03T00:59:51.790159" elapsed="0.000653"/>
</kw>
<status status="PASS" start="2026-10-03T00:59:51.789521" elapsed="0.001432"/>
</kw>
<doc>cbench executed in default latency mode. Test parameters have defaults, but can be overridden
on the pybot command line</doc>
<tag>cbench</tag>
<tag>latency</tag>
<timeout value="15 minutes"/>
<status status="PASS" start="2026-10-03T00:49:45.212230" elapsed="606.578795"/>
</test>
<test id="s1-t2" name="Cbench Throughput Test" line="51">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T00:59:51.793114" level="INFO">Cbench tests using 10 iterations of 60 second tests. Switch Count: 16. Unique MACS to cycle: 100</msg>
<arg>Cbench tests using ${loops} iterations of ${duration_in_secs} second tests. Switch Count: ${switch_count}. Unique MACS to cycle: ${num_of_unique_macs}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-03T00:59:51.792672" elapsed="0.000516"/>
</kw>
<kw name="Run Cbench And Log Results">
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-10-03T00:59:51.794716" level="INFO">${output_filename} = throughput.csv</msg>
<arg>${output_filename}</arg>
<doc>Makes the variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-10-03T00:59:51.794309" elapsed="0.000462"/>
</kw>
<if>
<branch type="IF" condition="&quot;${cbench_system}&quot; == &quot;localhost&quot;">
<kw name="Run" owner="OperatingSystem">
<var>${output}</var>
<arg>${cbench_executable} -c ${ODL_SYSTEM_IP} ${cbench_args}</arg>
<doc>*This keyword is considered deprecated. Use the [Process] library instead.*</doc>
<status status="NOT RUN" start="2026-10-03T00:59:51.795185" elapsed="0.000061"/>
</kw>
<status status="NOT RUN" start="2026-10-03T00:59:51.794860" elapsed="0.000433"/>
</branch>
<branch type="ELSE">
<kw name="Run Command On Remote System" owner="Utils">
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot; and &quot;${return_stderr}&quot;!=&quot;True&quot;">
<kw name="Fail" owner="BuiltIn">
<arg>At least one of {return_stdout} or {return_stderr} args should be set to True</arg>
<doc>Fails the test or task with the given message and optionally alters its tags.</doc>
<status status="NOT RUN" start="2026-10-03T00:59:51.796793" elapsed="0.000026"/>
</kw>
<status status="NOT RUN" start="2026-10-03T00:59:51.796499" elapsed="0.000364"/>
</branch>
<status status="PASS" start="2026-10-03T00:59:51.796475" elapsed="0.000419"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-10-03T00:59:51.797439" level="INFO">index=None
host=None
alias=None
port=22
timeout=3 seconds
newline=

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

prompt=None
term_type=vt100
width=80
height=24
path_separator=/
encoding=utf8
escape_ansi=False
encoding_errors=strict</msg>
<var>${current_ssh_connection}</var>
<doc>Returns information about the connection.</doc>
<status status="PASS" start="2026-10-03T00:59:51.797142" elapsed="0.000484"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T00:59:51.798360" level="INFO">Attempting to execute command "/usr/local/bin/cbench -c 10.30.170.71 -t -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633" on remote system "10.30.171.252" by user "jenkins" with keyfile pass "any" and prompt "&gt;" and password ""</msg>
<arg>Attempting to execute command "${cmd}" on remote system "${system}" by user "${user}" with keyfile pass "${keyfile_pass}" and prompt "${prompt}" and password "${password}"</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-03T00:59:51.797869" elapsed="0.000565"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-10-03T00:59:51.799099" level="INFO">${conn_id} = 7</msg>
<var>${conn_id}</var>
<arg>${system}</arg>
<arg>prompt=${prompt}</arg>
<arg>timeout=${prompt_timeout}</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-10-03T00:59:51.798657" elapsed="0.000476"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-10-03T00:59:51.800304" level="INFO">Length is 0.</msg>
<msg time="2026-10-03T00:59:51.800416" level="INFO">${pwd_length} = 0</msg>
<var>${pwd_length}</var>
<arg>${password}</arg>
<doc>Returns and logs the length of the given item as an integer.</doc>
<status status="PASS" start="2026-10-03T00:59:51.799885" elapsed="0.000563"/>
</kw>
<kw name="Run Keyword And Return If" owner="BuiltIn">
<arg>${pwd_length} &gt; 0</arg>
<arg>SSHLibrary.Login</arg>
<arg>${user}</arg>
<arg>${password}</arg>
<arg>delay=${delay}</arg>
<doc>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-03T00:59:51.800631" elapsed="0.000399"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-10-03T00:59:51.802165" level="INFO">Logging into '10.30.171.252:22' as 'jenkins'.</msg>
<msg time="2026-10-03T00:59:52.434926" level="INFO">Read output: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-187-generic x86_64)

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

 System information as of Sat Oct  3 00:59:52 UTC 2026

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


Expanded Security Maintenance for Applications is not enabled.

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

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


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


Last login: Sat Oct  3 00:49:45 2026 from 10.30.170.122
[?2004h[jenkins@releng-63164-415-1-mininet-ovs-217-0 ~]&gt;</msg>
<arg>${user}</arg>
<arg>${USER_HOME}/.ssh/${SSH_KEY}</arg>
<arg>${KEYFILE_PASS}</arg>
<arg>delay=${delay}</arg>
<doc>Logs into the SSH server using key-based authentication.</doc>
<status status="PASS" start="2026-10-03T00:59:51.801797" elapsed="0.633324"/>
</kw>
<msg time="2026-10-03T00:59:52.435238" level="INFO">Returning from the enclosing user keyword.</msg>
<arg>SSHLibrary.Login With Public Key</arg>
<arg>${user}</arg>
<arg>${USER_HOME}/.ssh/${SSH_KEY}</arg>
<arg>${KEYFILE_PASS}</arg>
<arg>delay=${delay}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-03T00:59:51.801302" elapsed="0.634032"/>
</kw>
<arg>${user}</arg>
<arg>${password}</arg>
<doc>On active SSH session: if given non-empty password, do Login, else do Login With Public Key.</doc>
<status status="PASS" start="2026-10-03T00:59:51.799415" elapsed="0.636027"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-03T00:59:52.435969" level="INFO">Executing command '/usr/local/bin/cbench -c 10.30.170.71 -t -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633'.</msg>
<msg time="2026-10-03T01:09:58.492543" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-10-03T01:09:58.493289" level="INFO">${stdout} = </msg>
<msg time="2026-10-03T01:09:58.493408" level="INFO">${stderr} = cbench: controller benchmarking tool
   running in mode 'throughput'
   connecting to controller at 10.30.170.71:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with ...</msg>
<var>${stdout}</var>
<var>${stderr}</var>
<arg>${cmd}</arg>
<arg>return_stderr=True</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-10-03T00:59:52.435696" elapsed="606.057765"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-10-03T01:09:58.493938" elapsed="0.000721"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T01:09:58.495839" level="INFO">cbench: controller benchmarking tool
   running in mode 'throughput'
   connecting to controller at 10.30.170.71:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with 100 unique source MACs per switch
   learning destination mac addresses before the test
   starting test with 5000 ms delay after features_reply
   ignoring first 1 "warmup" and last 0 "cooldown" loops
   debugging info is off
Master Thread: Creating thread-0! 
Thread-0: All switches initialized. Running at node 10.30.170.71. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
01:00:57.572 16  switches: flows:  488083 485142 475523 480470 488018 479434 467301 476494 473640 469840 466520 470802 469114 478599 478127 461636  total = 126.812383 per ms 
01:01:57.673 16  switches: flows:  519091 520817 515533 509564 519535 515941 512231 519067 516329 523760 520352 519757 516731 522752 510828 514045  total = 137.707379 per ms 
01:02:57.775 16  switches: flows:  558558 554354 556103 555159 552286 553293 541054 555721 555471 557804 548169 552123 552123 555521 550971 542629  total = 147.107888 per ms 
01:03:57.877 16  switches: flows:  516412 509160 509666 507473 516846 511192 511733 514900 512009 503962 513045 513969 508196 508623 511457 509798  total = 136.077508 per ms 
01:04:57.980 16  switches: flows:  552870 555023 554195 549334 558666 557219 549225 556238 556465 553124 551090 552718 557152 560871 555615 552496  total = 147.621229 per ms 
01:05:58.082 16  switches: flows:  614701 606588 607009 606934 603640 596461 606027 609218 604476 604776 602361 610152 604597 618640 608406 611087  total = 161.646180 per ms 
01:06:58.183 16  switches: flows:  618688 626408 618237 621650 624322 623452 614404 627386 621013 623444 619796 620817 625967 628332 627724 627966  total = 165.880431 per ms 
01:07:58.284 16  switches: flows:  605726 620552 613728 611243 613735 617553 611265 617809 605265 611040 606629 618168 617050 595375 606909 624673  total = 163.004219 per ms 
01:08:58.386 16  switches: flows:  624244 628505 627414 627924 624630 631531 622528 616256 619166 617095 621131 633356 627492 624210 624052 620129  total = 166.214782 per ms 
01:09:58.490 16  switches: flows:  622726 616845 625233 621970 624245 622825 618047 625583 621743 617843 625509 623306 618500 624631 616238 621710  total = 165.498026 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 136077.51/166214.78/154528.63/52824.16 responses/s</msg>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-03T01:09:58.495122" elapsed="0.000999"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="PASS" start="2026-10-03T01:09:58.496607" elapsed="0.000071"/>
</return>
<status status="PASS" start="2026-10-03T01:09:58.496340" elapsed="0.000413"/>
</branch>
<status status="PASS" start="2026-10-03T01:09:58.496269" elapsed="0.000537"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="NOT RUN" start="2026-10-03T01:09:58.496997" elapsed="0.000027"/>
</return>
<status status="NOT RUN" start="2026-10-03T01:09:58.496923" elapsed="0.000158"/>
</branch>
<status status="NOT RUN" start="2026-10-03T01:09:58.496889" elapsed="0.000236"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-10-03T01:09:58.497187" elapsed="0.000060"/>
</return>
<kw name="Restore_Current_Ssh_Connection_From_Index" owner="SSHKeywords" type="TEARDOWN">
<kw name="Run Keyword And Return If" owner="BuiltIn">
<arg>${connection_index} is not None</arg>
<arg>SSHLibrary.Switch Connection</arg>
<arg>${connection_index}</arg>
<doc>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-03T01:09:58.498830" elapsed="0.000749"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<arg>127.0.0.1</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-10-03T01:09:58.499958" elapsed="0.000373"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-10-03T01:09:58.500616" elapsed="0.000211"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-10-03T01:09:58.497888" elapsed="0.003045"/>
</kw>
<msg time="2026-10-03T01:09:58.501157" level="INFO">${output} = cbench: controller benchmarking tool
   running in mode 'throughput'
   connecting to controller at 10.30.170.71:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with ...</msg>
<var>${output}</var>
<arg>${cbench_system}</arg>
<arg>${cbench_executable} -c ${ODL_SYSTEM_IP} ${cbench_args}</arg>
<arg>prompt_timeout=${test_timeout}</arg>
<arg>return_stdout=False</arg>
<arg>return_stderr=True</arg>
<doc>Reduces the common work of running a command on a remote system to a single higher level
robot keyword, taking care to log in with a public key and. The command given is written and the return value
depends on the passed argument values of return_stdout (default: True) and return_stderr (default: False).
At least one should be True, or the keyword will exit and FAIL. If both are True, the resulting return value
will be a two element list containing both. Otherwise the resulting return value is a string.
No test conditions are checked.</doc>
<status status="PASS" start="2026-10-03T00:59:51.795780" elapsed="606.705464"/>
</kw>
<status status="PASS" start="2026-10-03T00:59:51.795326" elapsed="606.706036"/>
</branch>
<status status="PASS" start="2026-10-03T00:59:51.794835" elapsed="606.706575"/>
</if>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T01:09:58.502435" level="INFO">cbench: controller benchmarking tool
   running in mode 'throughput'
   connecting to controller at 10.30.170.71:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with 100 unique source MACs per switch
   learning destination mac addresses before the test
   starting test with 5000 ms delay after features_reply
   ignoring first 1 "warmup" and last 0 "cooldown" loops
   debugging info is off
Master Thread: Creating thread-0! 
Thread-0: All switches initialized. Running at node 10.30.170.71. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
01:00:57.572 16  switches: flows:  488083 485142 475523 480470 488018 479434 467301 476494 473640 469840 466520 470802 469114 478599 478127 461636  total = 126.812383 per ms 
01:01:57.673 16  switches: flows:  519091 520817 515533 509564 519535 515941 512231 519067 516329 523760 520352 519757 516731 522752 510828 514045  total = 137.707379 per ms 
01:02:57.775 16  switches: flows:  558558 554354 556103 555159 552286 553293 541054 555721 555471 557804 548169 552123 552123 555521 550971 542629  total = 147.107888 per ms 
01:03:57.877 16  switches: flows:  516412 509160 509666 507473 516846 511192 511733 514900 512009 503962 513045 513969 508196 508623 511457 509798  total = 136.077508 per ms 
01:04:57.980 16  switches: flows:  552870 555023 554195 549334 558666 557219 549225 556238 556465 553124 551090 552718 557152 560871 555615 552496  total = 147.621229 per ms 
01:05:58.082 16  switches: flows:  614701 606588 607009 606934 603640 596461 606027 609218 604476 604776 602361 610152 604597 618640 608406 611087  total = 161.646180 per ms 
01:06:58.183 16  switches: flows:  618688 626408 618237 621650 624322 623452 614404 627386 621013 623444 619796 620817 625967 628332 627724 627966  total = 165.880431 per ms 
01:07:58.284 16  switches: flows:  605726 620552 613728 611243 613735 617553 611265 617809 605265 611040 606629 618168 617050 595375 606909 624673  total = 163.004219 per ms 
01:08:58.386 16  switches: flows:  624244 628505 627414 627924 624630 631531 622528 616256 619166 617095 621131 633356 627492 624210 624052 620129  total = 166.214782 per ms 
01:09:58.490 16  switches: flows:  622726 616845 625233 621970 624245 622825 618047 625583 621743 617843 625509 623306 618500 624631 616238 621710  total = 165.498026 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 136077.51/166214.78/154528.63/52824.16 responses/s</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-03T01:09:58.501801" elapsed="0.000789"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${output}</arg>
<arg>RESULT</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-03T01:09:58.502931" elapsed="0.000763"/>
</kw>
<kw name="Get Lines Containing String" owner="String">
<msg time="2026-10-03T01:09:58.504530" level="INFO">1 out of 23 lines matched.</msg>
<msg time="2026-10-03T01:09:58.504714" level="INFO">${result_line} = RESULT: 16 switches 9 tests min/max/avg/stdev = 136077.51/166214.78/154528.63/52824.16 responses/s</msg>
<var>${result_line}</var>
<arg>${output}</arg>
<arg>RESULT</arg>
<doc>Returns lines of the given `string` that contain the `pattern`.</doc>
<status status="PASS" start="2026-10-03T01:09:58.504062" elapsed="0.000705"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-10-03T01:09:58.505644" level="INFO">@{results_list} = [ RESULT: | 16 | switches | 9 | tests | min/max/avg/stdev | = | 136077.51/166214.78/154528.63/52824.16 | responses/s ]</msg>
<var>@{results_list}</var>
<arg>${result_line}</arg>
<doc>Splits the `string` using `separator` as a delimiter string.</doc>
<status status="PASS" start="2026-10-03T01:09:58.505118" elapsed="0.000582"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T01:09:58.506844" level="INFO">min/max/avg/stdev</msg>
<arg>${results_list[5]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-03T01:09:58.506105" elapsed="0.000853"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T01:09:58.508108" level="INFO">136077.51/166214.78/154528.63/52824.16</msg>
<arg>${results_list[7]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-03T01:09:58.507407" elapsed="0.000846"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-10-03T01:09:58.509258" level="INFO">@{result_name_list} = [ min | max | avg | stdev ]</msg>
<var>@{result_name_list}</var>
<arg>${results_list[5]}</arg>
<arg>/</arg>
<doc>Splits the `string` using `separator` as a delimiter string.</doc>
<status status="PASS" start="2026-10-03T01:09:58.508610" elapsed="0.000727"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-10-03T01:09:58.510442" level="INFO">@{result_value_list} = [ 136077.51 | 166214.78 | 154528.63 | 52824.16 ]</msg>
<var>@{result_value_list}</var>
<arg>${results_list[7]}</arg>
<arg>/</arg>
<doc>Splits the `string` using `separator` as a delimiter string.</doc>
<status status="PASS" start="2026-10-03T01:09:58.509754" elapsed="0.000746"/>
</kw>
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-10-03T01:09:58.511492" level="INFO">Length is 4.</msg>
<msg time="2026-10-03T01:09:58.511670" level="INFO">${num_stats} = 4</msg>
<var>${num_stats}</var>
<arg>${result_name_list}</arg>
<doc>Returns and logs the length of the given item as an integer.</doc>
<status status="PASS" start="2026-10-03T01:09:58.510833" elapsed="0.000888"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T01:09:58.513543" level="INFO">min :: 136077.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-10-03T01:09:58.512592" elapsed="0.001066"/>
</kw>
<var name="${i}">0</var>
<status status="PASS" start="2026-10-03T01:09:58.512158" elapsed="0.001568"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T01:09:58.515219" level="INFO">max :: 166214.78</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-03T01:09:58.514294" elapsed="0.001275"/>
</kw>
<var name="${i}">1</var>
<status status="PASS" start="2026-10-03T01:09:58.513899" elapsed="0.001742"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T01:09:58.517114" level="INFO">avg :: 154528.63</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-03T01:09:58.516176" elapsed="0.001091"/>
</kw>
<var name="${i}">2</var>
<status status="PASS" start="2026-10-03T01:09:58.515814" elapsed="0.001540"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T01:09:58.518860" level="INFO">stdev :: 52824.16</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-03T01:09:58.517892" elapsed="0.001079"/>
</kw>
<var name="${i}">3</var>
<status status="PASS" start="2026-10-03T01:09:58.517526" elapsed="0.001513"/>
</iter>
<var>${i}</var>
<value>0</value>
<value>${num_stats}</value>
<status status="PASS" start="2026-10-03T01:09:58.511834" elapsed="0.007267"/>
</for>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-03T01:09:58.520370" level="INFO">${min} = 136077.51</msg>
<var>${min}</var>
<arg>${result_value_list[${0}]}</arg>
<doc>Returns the given values which can then be assigned to a variable.</doc>
<status status="PASS" start="2026-10-03T01:09:58.519491" elapsed="0.000935"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-03T01:09:58.521637" level="INFO">${max} = 166214.78</msg>
<var>${max}</var>
<arg>${result_value_list[${1}]}</arg>
<doc>Returns the given values which can then be assigned to a variable.</doc>
<status status="PASS" start="2026-10-03T01:09:58.520755" elapsed="0.000936"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-03T01:09:58.522893" level="INFO">${average} = 154528.63</msg>
<var>${average}</var>
<arg>${result_value_list[${2}]}</arg>
<doc>Returns the given values which can then be assigned to a variable.</doc>
<status status="PASS" start="2026-10-03T01:09:58.522022" elapsed="0.000924"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-03T01:09:58.524134" level="INFO">${stdev} = 52824.16</msg>
<var>${stdev}</var>
<arg>${result_value_list[${3}]}</arg>
<doc>Returns the given values which can then be assigned to a variable.</doc>
<status status="PASS" start="2026-10-03T01:09:58.523319" elapsed="0.000868"/>
</kw>
<kw name="Get Time" owner="BuiltIn">
<msg time="2026-10-03T01:09:58.525398" level="INFO">${date} = 2026-10-03 01:09:58</msg>
<var>${date}</var>
<arg>d,m,s</arg>
<doc>Returns the given time in the requested format.</doc>
<status status="PASS" start="2026-10-03T01:09:58.524642" elapsed="0.000810"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T01:09:58.526630" level="INFO">CBench Result: 2026-10-03 01:09:58,-t -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633,136077.51,166214.78,154528.63,52824.16</msg>
<arg>CBench Result: ${date},${cbench_args},${min},${max},${average},${stdev}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-03T01:09:58.525853" elapsed="0.000891"/>
</kw>
<kw name="Log Results And Determine Status">
<kw name="Append To File" owner="OperatingSystem">
<msg time="2026-10-03T01:09:58.528848" 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-10-03T01:09:58.528058" elapsed="0.000928"/>
</kw>
<kw name="Should Be True" owner="BuiltIn">
<arg>${average} &gt; ${threshold}</arg>
<arg>${average} flow_mods per/sec did not exceed threshold of ${threshold}</arg>
<doc>Fails if the given condition is not true.</doc>
<status status="PASS" start="2026-10-03T01:09:58.529387" elapsed="0.001294"/>
</kw>
<arg>${min}</arg>
<arg>${max}</arg>
<arg>${average}</arg>
<arg>${average_threshold}</arg>
<arg>${output_filename}</arg>
<status status="PASS" start="2026-10-03T01:09:58.527002" elapsed="0.003816"/>
</kw>
<arg>-t -m ${duration_in_ms} -M ${num_of_unique_macs} -S ${switch_count} -l ${loops} -D ${start_delay} -p ${of_port}</arg>
<arg>${throughput_threshold}</arg>
<arg>${throughput_results_file}</arg>
<status status="PASS" start="2026-10-03T00:59:51.793617" elapsed="606.737318"/>
</kw>
<kw name="Sleep" owner="BuiltIn">
<msg time="2026-10-03T01:09:58.532035" level="INFO">Slept 0 seconds.</msg>
<arg>${test_delay}</arg>
<doc>Pauses execution for the given time.</doc>
<status status="PASS" start="2026-10-03T01:09:58.531378" elapsed="0.000771"/>
</kw>
<kw name="Log Results As Zero If Cbench Timed Out" type="TEARDOWN">
<kw name="Run Keyword If Timeout Occurred" owner="BuiltIn">
<arg>Log Results And Determine Status</arg>
<arg>0</arg>
<arg>0</arg>
<arg>0</arg>
<arg>0</arg>
<arg>${output_filename}</arg>
<doc>Runs the given keyword if either a test or a keyword timeout has occurred.</doc>
<status status="PASS" start="2026-10-03T01:09:58.533324" elapsed="0.000506"/>
</kw>
<status status="PASS" start="2026-10-03T01:09:58.532628" elapsed="0.001292"/>
</kw>
<doc>cbench executed in throughput mode (-t). Test parameters have defaults, but can be overridden
on the pybot command line</doc>
<tag>cbench</tag>
<tag>throughput</tag>
<timeout value="15 minutes"/>
<status status="PASS" start="2026-10-03T00:59:51.791645" elapsed="606.742320"/>
</test>
<test id="s1-t3" name="Rerun Latency Test To Check Bug 6176" line="65">
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T01:09:58.535702" level="INFO">Cbench tests using 10 iterations of 60 second tests. Switch Count: 16. Unique MACS to cycle: 100</msg>
<arg>Cbench tests using ${loops} iterations of ${duration_in_secs} second tests. Switch Count: ${switch_count}. Unique MACS to cycle: ${num_of_unique_macs}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-03T01:09:58.535250" elapsed="0.000529"/>
</kw>
<kw name="Run Cbench And Log Results">
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-10-03T01:09:58.537315" level="INFO">${output_filename} = bug.csv</msg>
<arg>${output_filename}</arg>
<doc>Makes the variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-10-03T01:09:58.536856" elapsed="0.000517"/>
</kw>
<if>
<branch type="IF" condition="&quot;${cbench_system}&quot; == &quot;localhost&quot;">
<kw name="Run" owner="OperatingSystem">
<var>${output}</var>
<arg>${cbench_executable} -c ${ODL_SYSTEM_IP} ${cbench_args}</arg>
<doc>*This keyword is considered deprecated. Use the [Process] library instead.*</doc>
<status status="NOT RUN" start="2026-10-03T01:09:58.537790" elapsed="0.000027"/>
</kw>
<status status="NOT RUN" start="2026-10-03T01:09:58.537509" elapsed="0.000354"/>
</branch>
<branch type="ELSE">
<kw name="Run Command On Remote System" owner="Utils">
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot; and &quot;${return_stderr}&quot;!=&quot;True&quot;">
<kw name="Fail" owner="BuiltIn">
<arg>At least one of {return_stdout} or {return_stderr} args should be set to True</arg>
<doc>Fails the test or task with the given message and optionally alters its tags.</doc>
<status status="NOT RUN" start="2026-10-03T01:09:58.539384" elapsed="0.000028"/>
</kw>
<status status="NOT RUN" start="2026-10-03T01:09:58.539057" elapsed="0.000399"/>
</branch>
<status status="PASS" start="2026-10-03T01:09:58.539033" elapsed="0.000454"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-10-03T01:09:58.539948" level="INFO">index=None
host=None
alias=None
port=22
timeout=3 seconds
newline=

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

prompt=None
term_type=vt100
width=80
height=24
path_separator=/
encoding=utf8
escape_ansi=False
encoding_errors=strict</msg>
<var>${current_ssh_connection}</var>
<doc>Returns information about the connection.</doc>
<status status="PASS" start="2026-10-03T01:09:58.539728" elapsed="0.000399"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T01:09:58.540868" level="INFO">Attempting to execute command "/usr/local/bin/cbench -c 10.30.170.71 -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633" on remote system "10.30.171.252" by user "jenkins" with keyfile pass "any" and prompt "&gt;" and password ""</msg>
<arg>Attempting to execute command "${cmd}" on remote system "${system}" by user "${user}" with keyfile pass "${keyfile_pass}" and prompt "${prompt}" and password "${password}"</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-03T01:09:58.540415" elapsed="0.000528"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-10-03T01:09:58.541652" level="INFO">${conn_id} = 9</msg>
<var>${conn_id}</var>
<arg>${system}</arg>
<arg>prompt=${prompt}</arg>
<arg>timeout=${prompt_timeout}</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-10-03T01:09:58.541165" elapsed="0.000522"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-10-03T01:09:58.542843" level="INFO">Length is 0.</msg>
<msg time="2026-10-03T01:09:58.542953" level="INFO">${pwd_length} = 0</msg>
<var>${pwd_length}</var>
<arg>${password}</arg>
<doc>Returns and logs the length of the given item as an integer.</doc>
<status status="PASS" start="2026-10-03T01:09:58.542455" elapsed="0.000530"/>
</kw>
<kw name="Run Keyword And Return If" owner="BuiltIn">
<arg>${pwd_length} &gt; 0</arg>
<arg>SSHLibrary.Login</arg>
<arg>${user}</arg>
<arg>${password}</arg>
<arg>delay=${delay}</arg>
<doc>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-03T01:09:58.543169" elapsed="0.000437"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-10-03T01:09:58.544733" level="INFO">Logging into '10.30.171.252:22' as 'jenkins'.</msg>
<msg time="2026-10-03T01:09:59.199877" level="INFO">Read output: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-187-generic x86_64)

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

 System information as of Sat Oct  3 01:09:58 UTC 2026

  System load:  0.47               Processes:             105
  Usage of /:   20.3% of 38.58GB   Users logged in:       0
  Memory usage: 4%                 IPv4 address for ens3: 10.30.171.252
  Swap usage:   0%


Expanded Security Maintenance for Applications is not enabled.

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

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


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


Last login: Sat Oct  3 00:59:52 2026 from 10.30.170.122
[?2004h[jenkins@releng-63164-415-1-mininet-ovs-217-0 ~]&gt;</msg>
<arg>${user}</arg>
<arg>${USER_HOME}/.ssh/${SSH_KEY}</arg>
<arg>${KEYFILE_PASS}</arg>
<arg>delay=${delay}</arg>
<doc>Logs into the SSH server using key-based authentication.</doc>
<status status="PASS" start="2026-10-03T01:09:58.544355" elapsed="0.655718"/>
</kw>
<msg time="2026-10-03T01:09:59.200168" level="INFO">Returning from the enclosing user keyword.</msg>
<arg>SSHLibrary.Login With Public Key</arg>
<arg>${user}</arg>
<arg>${USER_HOME}/.ssh/${SSH_KEY}</arg>
<arg>${KEYFILE_PASS}</arg>
<arg>delay=${delay}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-03T01:09:58.543816" elapsed="0.656466"/>
</kw>
<arg>${user}</arg>
<arg>${password}</arg>
<doc>On active SSH session: if given non-empty password, do Login, else do Login With Public Key.</doc>
<status status="PASS" start="2026-10-03T01:09:58.541936" elapsed="0.658492"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-10-03T01:09:59.201046" level="INFO">Executing command '/usr/local/bin/cbench -c 10.30.170.71 -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633'.</msg>
<msg time="2026-10-03T01:20:05.400243" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-10-03T01:20:05.400878" level="INFO">${stdout} = </msg>
<msg time="2026-10-03T01:20:05.400976" level="INFO">${stderr} = cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.170.71:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with 100...</msg>
<var>${stdout}</var>
<var>${stderr}</var>
<arg>${cmd}</arg>
<arg>return_stderr=True</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-10-03T01:09:59.200729" elapsed="606.200300"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-10-03T01:20:05.401486" elapsed="0.000748"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T01:20:05.403467" level="INFO">cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.170.71:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with 100 unique source MACs per switch
   learning destination mac addresses before the test
   starting test with 5000 ms delay after features_reply
   ignoring first 1 "warmup" and last 0 "cooldown" loops
   debugging info is off
Master Thread: Creating thread-0! 
Thread-0: All switches initialized. Running at node 10.30.170.71. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
01:11:04.504 16  switches: flows:  98287 96318 96422 96198 94192 97425 97241 95734 94122 97835 94404 96138 102085 95967 95452 95298  total = 25.718633 per ms 
01:12:04.605 16  switches: flows:  91812 91079 91044 91074 89314 92106 90712 88915 90619 90143 88822 89613 90510 86317 86808 89237  total = 23.928821 per ms 
01:13:04.707 16  switches: flows:  94254 93546 94072 95345 91493 98348 94573 93157 92490 92771 90321 93190 93892 88322 89278 92949  total = 24.758693 per ms 
01:14:04.808 16  switches: flows:  95037 96939 95426 96002 93290 98765 94732 92337 92828 92217 92046 92394 93648 90095 89997 93062  total = 24.938614 per ms 
01:15:04.909 16  switches: flows:  91869 93202 91130 93382 88960 95722 92822 89980 89703 89990 90163 91041 90082 89030 88381 91948  total = 24.249599 per ms 
01:16:05.010 16  switches: flows:  93127 94067 91742 93319 90925 94763 92840 91040 90881 90586 89526 90443 90917 88298 88819 91646  total = 24.341676 per ms 
01:17:05.111 16  switches: flows:  91707 91818 91846 91617 87225 95333 91626 91431 90251 89927 88741 89779 92350 86336 86953 90491  total = 24.083642 per ms 
01:18:05.211 16  switches: flows:  97092 96960 97221 98143 93593 98720 96093 94239 93653 91383 94105 93957 91800 88840 93327 94407  total = 25.183533 per ms 
01:19:05.312 16  switches: flows:  96027 97425 95550 94500 91680 95764 92987 95600 91723 89458 91772 93146 91108 87010 93102 91899  total = 24.771182 per ms 
01:20:05.413 16  switches: flows:  97556 96826 95463 95687 91796 99299 92794 94916 91866 88070 92136 92817 89949 89071 92725 91684  total = 24.836125 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 23928.82/25183.53/24565.76/8198.50 responses/s</msg>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-03T01:20:05.402755" elapsed="0.001006"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="PASS" start="2026-10-03T01:20:05.404223" elapsed="0.000083"/>
</return>
<status status="PASS" start="2026-10-03T01:20:05.403930" elapsed="0.000457"/>
</branch>
<status status="PASS" start="2026-10-03T01:20:05.403880" elapsed="0.000559"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="NOT RUN" start="2026-10-03T01:20:05.404626" elapsed="0.000027"/>
</return>
<status status="NOT RUN" start="2026-10-03T01:20:05.404554" elapsed="0.000177"/>
</branch>
<status status="NOT RUN" start="2026-10-03T01:20:05.404521" elapsed="0.000256"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-10-03T01:20:05.404841" elapsed="0.000028"/>
</return>
<kw name="Restore_Current_Ssh_Connection_From_Index" owner="SSHKeywords" type="TEARDOWN">
<kw name="Run Keyword And Return If" owner="BuiltIn">
<arg>${connection_index} is not None</arg>
<arg>SSHLibrary.Switch Connection</arg>
<arg>${connection_index}</arg>
<doc>Conditionally runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-10-03T01:20:05.406460" elapsed="0.000699"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<arg>127.0.0.1</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-10-03T01:20:05.407563" elapsed="0.000340"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-10-03T01:20:05.408177" elapsed="0.000230"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-10-03T01:20:05.405517" elapsed="0.002998"/>
</kw>
<msg time="2026-10-03T01:20:05.408766" level="INFO">${output} = cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.170.71:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with 100...</msg>
<var>${output}</var>
<arg>${cbench_system}</arg>
<arg>${cbench_executable} -c ${ODL_SYSTEM_IP} ${cbench_args}</arg>
<arg>prompt_timeout=${test_timeout}</arg>
<arg>return_stdout=False</arg>
<arg>return_stderr=True</arg>
<doc>Reduces the common work of running a command on a remote system to a single higher level
robot keyword, taking care to log in with a public key and. The command given is written and the return value
depends on the passed argument values of return_stdout (default: True) and return_stderr (default: False).
At least one should be True, or the keyword will exit and FAIL. If both are True, the resulting return value
will be a two element list containing both. Otherwise the resulting return value is a string.
No test conditions are checked.</doc>
<status status="PASS" start="2026-10-03T01:09:58.538377" elapsed="606.870446"/>
</kw>
<status status="PASS" start="2026-10-03T01:09:58.537895" elapsed="606.871026"/>
</branch>
<status status="PASS" start="2026-10-03T01:09:58.537481" elapsed="606.871489"/>
</if>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T01:20:05.409988" level="INFO">cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.170.71:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with 100 unique source MACs per switch
   learning destination mac addresses before the test
   starting test with 5000 ms delay after features_reply
   ignoring first 1 "warmup" and last 0 "cooldown" loops
   debugging info is off
Master Thread: Creating thread-0! 
Thread-0: All switches initialized. Running at node 10.30.170.71. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
01:11:04.504 16  switches: flows:  98287 96318 96422 96198 94192 97425 97241 95734 94122 97835 94404 96138 102085 95967 95452 95298  total = 25.718633 per ms 
01:12:04.605 16  switches: flows:  91812 91079 91044 91074 89314 92106 90712 88915 90619 90143 88822 89613 90510 86317 86808 89237  total = 23.928821 per ms 
01:13:04.707 16  switches: flows:  94254 93546 94072 95345 91493 98348 94573 93157 92490 92771 90321 93190 93892 88322 89278 92949  total = 24.758693 per ms 
01:14:04.808 16  switches: flows:  95037 96939 95426 96002 93290 98765 94732 92337 92828 92217 92046 92394 93648 90095 89997 93062  total = 24.938614 per ms 
01:15:04.909 16  switches: flows:  91869 93202 91130 93382 88960 95722 92822 89980 89703 89990 90163 91041 90082 89030 88381 91948  total = 24.249599 per ms 
01:16:05.010 16  switches: flows:  93127 94067 91742 93319 90925 94763 92840 91040 90881 90586 89526 90443 90917 88298 88819 91646  total = 24.341676 per ms 
01:17:05.111 16  switches: flows:  91707 91818 91846 91617 87225 95333 91626 91431 90251 89927 88741 89779 92350 86336 86953 90491  total = 24.083642 per ms 
01:18:05.211 16  switches: flows:  97092 96960 97221 98143 93593 98720 96093 94239 93653 91383 94105 93957 91800 88840 93327 94407  total = 25.183533 per ms 
01:19:05.312 16  switches: flows:  96027 97425 95550 94500 91680 95764 92987 95600 91723 89458 91772 93146 91108 87010 93102 91899  total = 24.771182 per ms 
01:20:05.413 16  switches: flows:  97556 96826 95463 95687 91796 99299 92794 94916 91866 88070 92136 92817 89949 89071 92725 91684  total = 24.836125 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 23928.82/25183.53/24565.76/8198.50 responses/s</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-03T01:20:05.409389" elapsed="0.000748"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${output}</arg>
<arg>RESULT</arg>
<doc>Fails if the `container` does not contain the `item` one or more times.</doc>
<status status="PASS" start="2026-10-03T01:20:05.410507" elapsed="0.000771"/>
</kw>
<kw name="Get Lines Containing String" owner="String">
<msg time="2026-10-03T01:20:05.412083" level="INFO">1 out of 23 lines matched.</msg>
<msg time="2026-10-03T01:20:05.412301" level="INFO">${result_line} = RESULT: 16 switches 9 tests min/max/avg/stdev = 23928.82/25183.53/24565.76/8198.50 responses/s</msg>
<var>${result_line}</var>
<arg>${output}</arg>
<arg>RESULT</arg>
<doc>Returns lines of the given `string` that contain the `pattern`.</doc>
<status status="PASS" start="2026-10-03T01:20:05.411646" elapsed="0.000708"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-10-03T01:20:05.413244" level="INFO">@{results_list} = [ RESULT: | 16 | switches | 9 | tests | min/max/avg/stdev | = | 23928.82/25183.53/24565.76/8198.50 | responses/s ]</msg>
<var>@{results_list}</var>
<arg>${result_line}</arg>
<doc>Splits the `string` using `separator` as a delimiter string.</doc>
<status status="PASS" start="2026-10-03T01:20:05.412728" elapsed="0.000574"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T01:20:05.414464" level="INFO">min/max/avg/stdev</msg>
<arg>${results_list[5]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-03T01:20:05.413753" elapsed="0.000822"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T01:20:05.415877" level="INFO">23928.82/25183.53/24565.76/8198.50</msg>
<arg>${results_list[7]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-03T01:20:05.415038" elapsed="0.000957"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-10-03T01:20:05.417091" level="INFO">@{result_name_list} = [ min | max | avg | stdev ]</msg>
<var>@{result_name_list}</var>
<arg>${results_list[5]}</arg>
<arg>/</arg>
<doc>Splits the `string` using `separator` as a delimiter string.</doc>
<status status="PASS" start="2026-10-03T01:20:05.416381" elapsed="0.000765"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-10-03T01:20:05.418306" level="INFO">@{result_value_list} = [ 23928.82 | 25183.53 | 24565.76 | 8198.50 ]</msg>
<var>@{result_value_list}</var>
<arg>${results_list[7]}</arg>
<arg>/</arg>
<doc>Splits the `string` using `separator` as a delimiter string.</doc>
<status status="PASS" start="2026-10-03T01:20:05.417631" elapsed="0.000731"/>
</kw>
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-10-03T01:20:05.419349" level="INFO">Length is 4.</msg>
<msg time="2026-10-03T01:20:05.419524" level="INFO">${num_stats} = 4</msg>
<var>${num_stats}</var>
<arg>${result_name_list}</arg>
<doc>Returns and logs the length of the given item as an integer.</doc>
<status status="PASS" start="2026-10-03T01:20:05.418722" elapsed="0.000850"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T01:20:05.421396" level="INFO">min :: 23928.82</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-03T01:20:05.420452" elapsed="0.001055"/>
</kw>
<var name="${i}">0</var>
<status status="PASS" start="2026-10-03T01:20:05.420038" elapsed="0.001536"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T01:20:05.423115" level="INFO">max :: 25183.53</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-03T01:20:05.422128" elapsed="0.001139"/>
</kw>
<var name="${i}">1</var>
<status status="PASS" start="2026-10-03T01:20:05.421766" elapsed="0.001571"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T01:20:05.424822" level="INFO">avg :: 24565.76</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-03T01:20:05.423891" elapsed="0.001042"/>
</kw>
<var name="${i}">2</var>
<status status="PASS" start="2026-10-03T01:20:05.423500" elapsed="0.001500"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T01:20:05.426548" level="INFO">stdev :: 8198.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-10-03T01:20:05.425554" elapsed="0.001105"/>
</kw>
<var name="${i}">3</var>
<status status="PASS" start="2026-10-03T01:20:05.425163" elapsed="0.001652"/>
</iter>
<var>${i}</var>
<value>0</value>
<value>${num_stats}</value>
<status status="PASS" start="2026-10-03T01:20:05.419691" elapsed="0.007186"/>
</for>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-03T01:20:05.428080" level="INFO">${min} = 23928.82</msg>
<var>${min}</var>
<arg>${result_value_list[${0}]}</arg>
<doc>Returns the given values which can then be assigned to a variable.</doc>
<status status="PASS" start="2026-10-03T01:20:05.427237" elapsed="0.000897"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-03T01:20:05.429386" level="INFO">${max} = 25183.53</msg>
<var>${max}</var>
<arg>${result_value_list[${1}]}</arg>
<doc>Returns the given values which can then be assigned to a variable.</doc>
<status status="PASS" start="2026-10-03T01:20:05.428495" elapsed="0.000944"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-03T01:20:05.430767" level="INFO">${average} = 24565.76</msg>
<var>${average}</var>
<arg>${result_value_list[${2}]}</arg>
<doc>Returns the given values which can then be assigned to a variable.</doc>
<status status="PASS" start="2026-10-03T01:20:05.429787" elapsed="0.001036"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-10-03T01:20:05.432029" level="INFO">${stdev} = 8198.50</msg>
<var>${stdev}</var>
<arg>${result_value_list[${3}]}</arg>
<doc>Returns the given values which can then be assigned to a variable.</doc>
<status status="PASS" start="2026-10-03T01:20:05.431150" elapsed="0.000932"/>
</kw>
<kw name="Get Time" owner="BuiltIn">
<msg time="2026-10-03T01:20:05.433262" level="INFO">${date} = 2026-10-03 01:20:05</msg>
<var>${date}</var>
<arg>d,m,s</arg>
<doc>Returns the given time in the requested format.</doc>
<status status="PASS" start="2026-10-03T01:20:05.432514" elapsed="0.000801"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-10-03T01:20:05.434480" level="INFO">CBench Result: 2026-10-03 01:20:05,-m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633,23928.82,25183.53,24565.76,8198.50</msg>
<arg>CBench Result: ${date},${cbench_args},${min},${max},${average},${stdev}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-10-03T01:20:05.433757" elapsed="0.000834"/>
</kw>
<kw name="Log Results And Determine Status">
<kw name="Append To File" owner="OperatingSystem">
<msg time="2026-10-03T01:20:05.436573" 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-10-03T01:20:05.435790" elapsed="0.000990"/>
</kw>
<kw name="Should Be True" owner="BuiltIn">
<arg>${average} &gt; ${threshold}</arg>
<arg>${average} flow_mods per/sec did not exceed threshold of ${threshold}</arg>
<doc>Fails if the given condition is not true.</doc>
<status status="PASS" start="2026-10-03T01:20:05.437132" elapsed="0.001256"/>
</kw>
<arg>${min}</arg>
<arg>${max}</arg>
<arg>${average}</arg>
<arg>${average_threshold}</arg>
<arg>${output_filename}</arg>
<status status="PASS" start="2026-10-03T01:20:05.434874" elapsed="0.003651"/>
</kw>
<arg>-m ${duration_in_ms} -M ${num_of_unique_macs} -S ${switch_count} -l ${loops} -D ${start_delay} -p ${of_port}</arg>
<arg>${latency_threshold}</arg>
<arg>bug.csv</arg>
<status status="PASS" start="2026-10-03T01:09:58.536165" elapsed="606.902477"/>
</kw>
<kw name="Sleep" owner="BuiltIn">
<msg time="2026-10-03T01:20:05.439639" level="INFO">Slept 0 seconds.</msg>
<arg>${test_delay}</arg>
<doc>Pauses execution for the given time.</doc>
<status status="PASS" start="2026-10-03T01:20:05.438981" elapsed="0.000797"/>
</kw>
<kw name="Report Failure Due To Bug" owner="Utils" type="TEARDOWN">
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-10-03T01:20:05.442456" level="INFO">${test_skipped} = False</msg>
<var>${test_skipped}</var>
<arg>len(re.findall('SKIPPED', """${TEST_MESSAGE}""")) &gt; 0</arg>
<arg>modules=re</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-10-03T01:20:05.441477" elapsed="0.001014"/>
</kw>
<if>
<branch type="IF" condition="('${TEST_STATUS}' != 'FAIL') or ${test_skipped}">
<return>
<status status="PASS" start="2026-10-03T01:20:05.442750" elapsed="0.000039"/>
</return>
<status status="PASS" start="2026-10-03T01:20:05.442585" elapsed="0.000244"/>
</branch>
<status status="PASS" start="2026-10-03T01:20:05.442560" elapsed="0.000300"/>
</if>
<kw name="Comment" owner="BuiltIn">
<arg>Jira tickets are {PROJECT}-{NUMBER} while Bugzilla tickets are {NUMBER}</arg>
<doc>Displays the given messages in the log file as keyword arguments.</doc>
<status status="NOT RUN" start="2026-10-03T01:20:05.443051" elapsed="0.000027"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<var>${match}</var>
<arg>Should Contain</arg>
<arg>${number}</arg>
<arg>-</arg>
<doc>Runs the specified keyword and returns the status as a Boolean value.</doc>
<status status="NOT RUN" start="2026-10-03T01:20:05.443286" elapsed="0.000027"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<var>${bug_url}</var>
<arg>${match}</arg>
<arg>https://jira.opendaylight.org/browse/${number}</arg>
<arg>https://bugs.opendaylight.org/show_bug.cgi?id=${number}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="NOT RUN" start="2026-10-03T01:20:05.443518" elapsed="0.000025"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<var>${msg}</var>
<arg>This test fails due to ${bug_url}</arg>
<doc>Returns the given values which can then be assigned to a variable.</doc>
<status status="NOT RUN" start="2026-10-03T01:20:05.443742" elapsed="0.000026"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${newline}</var>
<arg>chr(10)</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-10-03T01:20:05.444024" elapsed="0.000027"/>
</kw>
<kw name="Set Test Message" owner="BuiltIn">
<arg>${msg}${newline}${newline}${TEST_MESSAGE}</arg>
<doc>Sets message of the current test case.</doc>
<status status="NOT RUN" start="2026-10-03T01:20:05.444251" elapsed="0.000027"/>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${msg}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-10-03T01:20:05.444503" elapsed="0.000025"/>
</kw>
<if>
<branch type="IF" condition="&quot;${include_bug_in_tags}&quot;==&quot;True&quot;">
<kw name="Set Tags" owner="BuiltIn">
<arg>${bug_url}</arg>
<doc>Adds The given `tags` for the current test or all tests in a suite.</doc>
<status status="NOT RUN" start="2026-10-03T01:20:05.444812" elapsed="0.000026"/>
</kw>
<status status="NOT RUN" start="2026-10-03T01:20:05.444607" elapsed="0.000271"/>
</branch>
<status status="NOT RUN" start="2026-10-03T01:20:05.444585" elapsed="0.000324"/>
</if>
<arg>6176</arg>
<doc>Report that a test failed due to a known Bugzilla bug whose
number is provided as an argument.
Not FAILED (incl. SKIPPED) test are not reported.
This keyword must be used in the [Teardown] setting of the affected test
or as the first line of the test if FastFail module is not being
used. It reports the URL of the bug on console and also puts it
into the Robot log file.</doc>
<status status="PASS" start="2026-10-03T01:20:05.440553" elapsed="0.004420"/>
</kw>
<doc>cbench executed in latency mode to see if controller is healthy</doc>
<tag>cbench</tag>
<tag>latency</tag>
<timeout value="15 minutes"/>
<status status="PASS" start="2026-10-03T01:09:58.534525" elapsed="606.910506"/>
</test>
<doc>Cbench Latency and Throughput tests can be run from an external
cbench.
If cbench is run with a medium number of switches or higher (e.g. 32+)
the normal openflow operations seem to break.
BUG: https://bugs.opendaylight.org/show_bug.cgi?id=2897</doc>
<status status="PASS" start="2026-10-03T00:49:42.857823" elapsed="1822.587753"/>
</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>
