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

[?1h=[90m~[0m                                                                                [?2004hopendaylight-user</msg>
<arg>${KARAF_USER}</arg>
<arg>${KARAF_PASSWORD}</arg>
<arg>loglevel=${loglevel}</arg>
<doc>Logs into the SSH server with the given ``username`` and ``password``.</doc>
<status status="PASS" start="2026-08-29T02:43:34.210199" elapsed="0.808878"/>
</kw>
<kw name="Write" owner="SSHLibrary">
<msg time="2026-08-29T02:43:35.068211" level="INFO">@root&gt;log:set ERROR</msg>
<arg>${cmd}</arg>
<doc>Writes the given ``text`` on the remote machine and appends a newline.</doc>
<status status="PASS" start="2026-08-29T02:43:35.019485" elapsed="0.048785"/>
</kw>
<kw name="Read Until Regexp" owner="SSHLibrary">
<msg time="2026-08-29T02:43:35.070240" level="INFO">[?1l&gt;[?2004l[?1h=[90m~[0m                                                                                [?2004hopendaylight-user@root&gt;</msg>
<msg time="2026-08-29T02:43:35.070360" level="INFO">${output} = [?1l&gt;[?2004l[?1h=[90m~[0m                                                                                [?2004hopendaylight-user@root&gt;</msg>
<var>${output}</var>
<arg>${KARAF_PROMPT}</arg>
<doc>Consumes and returns the server output until a match to ``regexp`` is found.</doc>
<status status="PASS" start="2026-08-29T02:43:35.068424" elapsed="0.001963"/>
</kw>
<kw name="Write Bare" owner="SSHLibrary">
<arg>logout\n</arg>
<doc>Writes the given ``text`` on the remote machine without appending a newline.</doc>
<status status="PASS" start="2026-08-29T02:43:35.070539" elapsed="0.000202"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-08-29T02:43:35.070899" elapsed="0.000279"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-29T02:43:35.071762" level="INFO">[?1l&gt;[?2004l[?1h=[90m~[0m                                                                                [?2004hopendaylight-user@root&gt;</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-29T02:43:35.071326" elapsed="0.000487"/>
</kw>
<return>
<value>${output}</value>
<status status="PASS" start="2026-08-29T02:43:35.071872" elapsed="0.000084"/>
</return>
<arg>log:set ${log_level}</arg>
<doc>Will execute the given ${cmd} by ssh'ing to the karaf console running on 10.30.171.205
Note that this keyword will open&amp;close new SSH connection, without switching back to previously current session.</doc>
<status status="PASS" start="2026-08-29T02:43:34.208749" elapsed="0.863370"/>
</kw>
<arg>3x</arg>
<arg>1s</arg>
<arg>KarafKeywords.Issue Command On Karaf Console</arg>
<arg>log:set ${log_level}</arg>
<doc>Runs the specified keyword and retries if it fails.</doc>
<status status="PASS" start="2026-08-29T02:43:34.205293" elapsed="0.866897"/>
</kw>
<kw name="Append To File" owner="OperatingSystem">
<msg time="2026-08-29T02:43:35.073055" level="INFO" html="true">Appended to file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-cbench-only-chromium/latency.csv"&gt;/w/workspace/openflowplugin-csit-1node-cbench-only-chromium/latency.csv&lt;/a&gt;'.</msg>
<arg>${latency_results_file}</arg>
<arg>LATENCY_MIN,LATENCY_MAX,LATENCY_AVERAGE\n</arg>
<doc>Appends the given content to the specified file.</doc>
<status status="PASS" start="2026-08-29T02:43:35.072403" elapsed="0.000707"/>
</kw>
<kw name="Append To File" owner="OperatingSystem">
<msg time="2026-08-29T02:43:35.073485" level="INFO" html="true">Appended to file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-cbench-only-chromium/throughput.csv"&gt;/w/workspace/openflowplugin-csit-1node-cbench-only-chromium/throughput.csv&lt;/a&gt;'.</msg>
<arg>${throughput_results_file}</arg>
<arg>THROUGHPUT_MIN,THROUGHPUT_MAX,THROUGHPUT_AVERAGE\n</arg>
<doc>Appends the given content to the specified file.</doc>
<status status="PASS" start="2026-08-29T02:43:35.073252" elapsed="0.000298"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-08-29T02:43:35.074189" level="INFO">${duration_in_ms} = 60000</msg>
<var>${duration_in_ms}</var>
<arg>${duration_in_secs} * 1000</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-08-29T02:43:35.073717" elapsed="0.000497"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-08-29T02:43:35.074741" level="INFO">${duration_in_ms} = 60000</msg>
<arg>${duration_in_ms}</arg>
<doc>Makes a variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-08-29T02:43:35.074383" elapsed="0.000396"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-08-29T02:43:35.075273" level="INFO">${test_timeout} = 900.0</msg>
<var>${test_timeout}</var>
<arg>(${loops} * ${duration_in_secs}) * 1.5</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-08-29T02:43:35.074911" elapsed="0.000385"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-08-29T02:43:35.075737" level="INFO">${test_timeout} = 900.0</msg>
<arg>${test_timeout}</arg>
<doc>Makes a variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-08-29T02:43:35.075442" elapsed="0.000333"/>
</kw>
<if>
<branch type="IF" condition="&quot;${cbench_system}&quot; == &quot;localhost&quot;">
<kw name="File Should Exist" owner="OperatingSystem">
<arg>${cbench_executable}</arg>
<doc>Fails unless the given ``path`` points to an existing file.</doc>
<status status="NOT RUN" start="2026-08-29T02:43:35.076116" elapsed="0.000019"/>
</kw>
<status status="NOT RUN" start="2026-08-29T02:43:35.075882" elapsed="0.000289"/>
</branch>
<branch type="ELSE">
<kw name="Verify File Exists On Remote System" owner="Utils">
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-08-29T02:43:35.080726" level="INFO">${conn_id} = 2</msg>
<var>${conn_id}</var>
<arg>${system}</arg>
<arg>prompt=${prompt}</arg>
<arg>timeout=${prompt_timeout}</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-08-29T02:43:35.080299" elapsed="0.000457"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-08-29T02:43:35.081867" level="INFO">Length is 0.</msg>
<msg time="2026-08-29T02:43:35.081941" level="INFO">${pwd_length} = 0</msg>
<var>${pwd_length}</var>
<arg>${password}</arg>
<doc>Returns and logs the length of the given item as an integer.</doc>
<status status="PASS" start="2026-08-29T02:43:35.081282" elapsed="0.000681"/>
</kw>
<kw name="Run Keyword And Return If" owner="BuiltIn">
<arg>${pwd_length} &gt; 0</arg>
<arg>SSHLibrary.Login</arg>
<arg>${user}</arg>
<arg>${password}</arg>
<arg>delay=${delay}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-08-29T02:43:35.082117" elapsed="0.000321"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-08-29T02:43:35.083439" level="INFO">Logging into '10.30.170.242:22' as 'jenkins'.</msg>
<msg time="2026-08-29T02:43:35.602630" level="INFO">Read output: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-186-generic x86_64)

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

 System information as of Sat Aug 29 02:42:53 UTC 2026

  System load:  0.21               Processes:             111
  Usage of /:   19.7% of 38.58GB   Users logged in:       0
  Memory usage: 4%                 IPv4 address for ens3: 10.30.170.242
  Swap usage:   0%


Expanded Security Maintenance for Applications is not enabled.

0 updates can be applied immediately.

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


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


[?2004h[jenkins@releng-00446-69-1-mininet-ovs-217-0 ~]&gt;</msg>
<arg>${user}</arg>
<arg>${USER_HOME}/.ssh/${SSH_KEY}</arg>
<arg>${KEYFILE_PASS}</arg>
<arg>delay=${delay}</arg>
<doc>Logs into the SSH server using key-based authentication.</doc>
<status status="PASS" start="2026-08-29T02:43:35.082920" elapsed="0.519902"/>
</kw>
<msg time="2026-08-29T02:43:35.602917" level="INFO">Returning from the enclosing user keyword.</msg>
<arg>SSHLibrary.Login With Public Key</arg>
<arg>${user}</arg>
<arg>${USER_HOME}/.ssh/${SSH_KEY}</arg>
<arg>${KEYFILE_PASS}</arg>
<arg>delay=${delay}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-08-29T02:43:35.082579" elapsed="0.520440"/>
</kw>
<arg>${user}</arg>
<arg>${password}</arg>
<doc>On active SSH session: if given non-empty password, do Login, else do Login With Public Key.</doc>
<status status="PASS" start="2026-08-29T02:43:35.080947" elapsed="0.522237"/>
</kw>
<kw name="File Should Exist" owner="SSHLibrary">
<msg time="2026-08-29T02:43:35.615516" level="INFO">[chan 1] Opened sftp connection (server version 3)</msg>
<arg>${file}</arg>
<doc>Fails if the given ``path`` does NOT point to an existing file.</doc>
<status status="PASS" start="2026-08-29T02:43:35.603451" elapsed="0.014420"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-08-29T02:43:35.618237" elapsed="0.000419"/>
</kw>
<arg>${cbench_system}</arg>
<arg>${cbench_executable}</arg>
<doc>Will create connection with public key and will PASS if the given ${file} exists,
otherwise will FAIL</doc>
<status status="PASS" start="2026-08-29T02:43:35.079789" elapsed="0.538961"/>
</kw>
<status status="PASS" start="2026-08-29T02:43:35.076447" elapsed="0.542343"/>
</branch>
<status status="PASS" start="2026-08-29T02:43:35.075848" elapsed="0.542984"/>
</if>
<kw name="Should Be True" owner="BuiltIn">
<arg>${loops} &gt;= 2</arg>
<arg>If number of loops is less than 2, cbench will not run</arg>
<doc>Fails if the given condition is not true.</doc>
<status status="PASS" start="2026-08-29T02:43:35.618986" elapsed="0.000604"/>
</kw>
<kw name="Verify_Feature_Is_Installed" owner="KarafKeywords">
<if>
<branch type="IF" condition="'${IS_KARAF_APPL}' == 'False'">
<return>
<value>Not A Karaf App</value>
<status status="NOT RUN" start="2026-08-29T02:43:35.624208" elapsed="0.000022"/>
</return>
<status status="NOT RUN" start="2026-08-29T02:43:35.624048" elapsed="0.000228"/>
</branch>
<status status="PASS" start="2026-08-29T02:43:35.624003" elapsed="0.000303"/>
</if>
<kw name="Issue_Command_On_Karaf_Console" owner="KarafKeywords">
<if>
<branch type="IF" condition="'${IS_KARAF_APPL}' == 'False'">
<return>
<value>Not A Karaf App</value>
<status status="NOT RUN" start="2026-08-29T02:43:35.628047" elapsed="0.000019"/>
</return>
<status status="NOT RUN" start="2026-08-29T02:43:35.627897" elapsed="0.000212"/>
</branch>
<status status="PASS" start="2026-08-29T02:43:35.627875" elapsed="0.000259"/>
</if>
<kw name="Open Connection" owner="SSHLibrary">
<arg>${controller}</arg>
<arg>port=${karaf_port}</arg>
<arg>prompt=${KARAF_PROMPT_LOGIN}</arg>
<arg>timeout=${timeout}</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-08-29T02:43:35.628319" elapsed="0.000494"/>
</kw>
<kw name="Login" owner="SSHLibrary">
<msg time="2026-08-29T02:43:35.629261" level="INFO">Logging into '10.30.171.205:8101' as 'karaf'.</msg>
<msg time="2026-08-29T02:43:35.813824" level="INFO">Read output: [33m                                                                                           
[33m    ________                       ________                .__  .__       .__     __       
[33m    \_____  \ ______   ____   ____ \______ \ _____  ___.__.|  | |__| ____ |  |___/  |_     
[33m     /   |   \\____ \_/ __ \ /    \ |    |  \\__  \&lt;   |  ||  | |  |/ ___\|  |  \   __\    
[33m    /    |    \  |_&gt; &gt;  ___/|   |  \|    `   \/ __ \\___  ||  |_|  / /_/  &gt;   Y  \  |      
[33m    \_______  /   __/ \___  &gt;___|  /_______  (____  / ____||____/__\___  /|___|  /__|      
[33m            \/|__|        \/     \/        \/     \/\/            /_____/      \/          
[33m                                                                                           

Hit '[1m&lt;tab&gt;[0m' for a list of available commands
and '[1m[cmd] --help[0m' for help on a specific command.
Hit '[1m&lt;ctrl-d&gt;[0m' or type '[1msystem:shutdown[0m' or '[1mlogout[0m' to shutdown OpenDaylight.

[?1h=[90m~[0m                                                                                [?2004hopendaylight-user</msg>
<arg>${KARAF_USER}</arg>
<arg>${KARAF_PASSWORD}</arg>
<arg>loglevel=${loglevel}</arg>
<doc>Logs into the SSH server with the given ``username`` and ``password``.</doc>
<status status="PASS" start="2026-08-29T02:43:35.628951" elapsed="0.185130"/>
</kw>
<kw name="Write" owner="SSHLibrary">
<msg time="2026-08-29T02:43:35.904461" level="INFO">@root&gt;feature:list -i | 0[C 0g[Krep odl-openflowplugin-drop-test</msg>
<arg>${cmd}</arg>
<doc>Writes the given ``text`` on the remote machine and appends a newline.</doc>
<status status="PASS" start="2026-08-29T02:43:35.814455" elapsed="0.090137"/>
</kw>
<kw name="Read Until Regexp" owner="SSHLibrary">
<msg time="2026-08-29T02:43:35.915267" level="INFO">[?1l&gt;[?2004l[31;1modl-openflowplugin-drop-test[0m                                    x 1.0.2            x x        x Started x [31;1modl-openflowplugin-drop-test[0m                                    x OpenDaylight :: Openflow Plugin :: Drop Test
[?1h=[90m~[0m                                                                                [?2004hopendaylight-user@root&gt;</msg>
<msg time="2026-08-29T02:43:35.915538" level="INFO">${output} = [?1l&gt;[?2004l[31;1modl-openflowplugin-drop-test[0m                                    x 1.0.2            x x        x Started x [31;1modl-openflowplugin-drop-test[0m                     ...</msg>
<var>${output}</var>
<arg>${KARAF_PROMPT}</arg>
<doc>Consumes and returns the server output until a match to ``regexp`` is found.</doc>
<status status="PASS" start="2026-08-29T02:43:35.904841" elapsed="0.010727"/>
</kw>
<kw name="Write Bare" owner="SSHLibrary">
<arg>logout\n</arg>
<doc>Writes the given ``text`` on the remote machine without appending a newline.</doc>
<status status="PASS" start="2026-08-29T02:43:35.915722" elapsed="0.000261"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-08-29T02:43:35.916125" elapsed="0.000312"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-29T02:43:35.917001" level="INFO">[?1l&gt;[?2004l[31;1modl-openflowplugin-drop-test[0m                                    x 1.0.2            x x        x Started x [31;1modl-openflowplugin-drop-test[0m                                    x OpenDaylight :: Openflow Plugin :: Drop Test
[?1h=[90m~[0m                                                                                [?2004hopendaylight-user@root&gt;</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-29T02:43:35.916569" elapsed="0.000502"/>
</kw>
<return>
<value>${output}</value>
<status status="PASS" start="2026-08-29T02:43:35.917132" elapsed="0.000092"/>
</return>
<msg time="2026-08-29T02:43:35.917399" level="INFO">${output} = [?1l&gt;[?2004l[31;1modl-openflowplugin-drop-test[0m                                    x 1.0.2            x x        x Started x [31;1modl-openflowplugin-drop-test[0m                     ...</msg>
<var>${output}</var>
<arg>feature:list -i | grep ${feature_name}</arg>
<arg>${controller}</arg>
<arg>${karaf_port}</arg>
<doc>Will execute the given ${cmd} by ssh'ing to the karaf console running on 10.30.171.205
Note that this keyword will open&amp;close new SSH connection, without switching back to previously current session.</doc>
<status status="PASS" start="2026-08-29T02:43:35.627510" elapsed="0.289920"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${output}</arg>
<arg>${feature_name}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-08-29T02:43:35.917580" elapsed="0.000824"/>
</kw>
<return>
<value>${output}</value>
<status status="PASS" start="2026-08-29T02:43:35.918482" 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-08-29T02:43:35.623698" elapsed="0.294913"/>
</kw>
<kw name="Issue_Command_On_Karaf_Console" owner="KarafKeywords">
<if>
<branch type="IF" condition="'${IS_KARAF_APPL}' == 'False'">
<return>
<value>Not A Karaf App</value>
<status status="NOT RUN" start="2026-08-29T02:43:35.922784" elapsed="0.000014"/>
</return>
<status status="NOT RUN" start="2026-08-29T02:43:35.922576" elapsed="0.000251"/>
</branch>
<status status="PASS" start="2026-08-29T02:43:35.922543" elapsed="0.000310"/>
</if>
<kw name="Open Connection" owner="SSHLibrary">
<arg>${controller}</arg>
<arg>port=${karaf_port}</arg>
<arg>prompt=${KARAF_PROMPT_LOGIN}</arg>
<arg>timeout=${timeout}</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-08-29T02:43:35.922985" elapsed="0.000516"/>
</kw>
<kw name="Login" owner="SSHLibrary">
<msg time="2026-08-29T02:43:35.924145" level="INFO">Logging into '10.30.171.205:8101' as 'karaf'.</msg>
<msg time="2026-08-29T02:43:36.158920" level="INFO">Read output: [33m                                                                                           
[33m    ________                       ________                .__  .__       .__     __       
[33m    \_____  \ ______   ____   ____ \______ \ _____  ___.__.|  | |__| ____ |  |___/  |_     
[33m     /   |   \\____ \_/ __ \ /    \ |    |  \\__  \&lt;   |  ||  | |  |/ ___\|  |  \   __\    
[33m    /    |    \  |_&gt; &gt;  ___/|   |  \|    `   \/ __ \\___  ||  |_|  / /_/  &gt;   Y  \  |      
[33m    \_______  /   __/ \___  &gt;___|  /_______  (____  / ____||____/__\___  /|___|  /__|      
[33m            \/|__|        \/     \/        \/     \/\/            /_____/      \/          
[33m                                                                                           

Hit '[1m&lt;tab&gt;[0m' for a list of available commands
and '[1m[cmd] --help[0m' for help on a specific command.
Hit '[1m&lt;ctrl-d&gt;[0m' or type '[1msystem:shutdown[0m' or '[1mlogout[0m' to shutdown OpenDaylight.

[?1h=[90m~[0m                                                                                [?2004hopendaylight-user</msg>
<arg>${KARAF_USER}</arg>
<arg>${KARAF_PASSWORD}</arg>
<arg>loglevel=${loglevel}</arg>
<doc>Logs into the SSH server with the given ``username`` and ``password``.</doc>
<status status="PASS" start="2026-08-29T02:43:35.923851" elapsed="0.235341"/>
</kw>
<kw name="Write" owner="SSHLibrary">
<msg time="2026-08-29T02:43:36.185555" level="INFO">@root&gt;dropallpacketsrpc on</msg>
<arg>${cmd}</arg>
<doc>Writes the given ``text`` on the remote machine and appends a newline.</doc>
<status status="PASS" start="2026-08-29T02:43:36.159598" elapsed="0.026022"/>
</kw>
<kw name="Read Until Regexp" owner="SSHLibrary">
<msg time="2026-08-29T02:43:36.187446" level="INFO">[?1l&gt;[?2004lDropAllFlows transitions to on
[?1h=[90m~[0m                                                                                [?2004hopendaylight-user@root&gt;</msg>
<msg time="2026-08-29T02:43:36.187569" level="INFO">${output} = [?1l&gt;[?2004lDropAllFlows transitions to on
[?1h=[90m~[0m                                                                                [?2004hopendaylight-user@root&gt;</msg>
<var>${output}</var>
<arg>${KARAF_PROMPT}</arg>
<doc>Consumes and returns the server output until a match to ``regexp`` is found.</doc>
<status status="PASS" start="2026-08-29T02:43:36.185793" elapsed="0.001804"/>
</kw>
<kw name="Write Bare" owner="SSHLibrary">
<arg>logout\n</arg>
<doc>Writes the given ``text`` on the remote machine without appending a newline.</doc>
<status status="PASS" start="2026-08-29T02:43:36.187741" elapsed="0.000206"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-08-29T02:43:36.188103" elapsed="0.000262"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-29T02:43:36.188920" level="INFO">[?1l&gt;[?2004lDropAllFlows transitions to on
[?1h=[90m~[0m                                                                                [?2004hopendaylight-user@root&gt;</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-29T02:43:36.188505" elapsed="0.000472"/>
</kw>
<return>
<value>${output}</value>
<status status="PASS" start="2026-08-29T02:43:36.189097" elapsed="0.000096"/>
</return>
<arg>dropallpacketsrpc on</arg>
<doc>Will execute the given ${cmd} by ssh'ing to the karaf console running on 10.30.171.205
Note that this keyword will open&amp;close new SSH connection, without switching back to previously current session.</doc>
<status status="PASS" start="2026-08-29T02:43:35.922188" elapsed="0.267150"/>
</kw>
<status status="PASS" start="2026-08-29T02:43:34.203430" elapsed="1.985979"/>
</kw>
<test id="s1-t1" name="Cbench Latency Test" line="37">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-29T02:43:36.192355" level="INFO">Cbench tests using 10 iterations of 60 second tests. Switch Count: 16. Unique MACS to cycle: 100</msg>
<arg>Cbench tests using ${loops} iterations of ${duration_in_secs} second tests. Switch Count: ${switch_count}. Unique MACS to cycle: ${num_of_unique_macs}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-29T02:43:36.190857" elapsed="0.001560"/>
</kw>
<kw name="Run Cbench And Log Results">
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-08-29T02:43:36.194056" level="INFO">${output_filename} = latency.csv</msg>
<arg>${output_filename}</arg>
<doc>Makes a variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-08-29T02:43:36.193709" elapsed="0.000399"/>
</kw>
<if>
<branch type="IF" condition="&quot;${cbench_system}&quot; == &quot;localhost&quot;">
<kw name="Run" owner="OperatingSystem">
<var>${output}</var>
<arg>${cbench_executable} -c ${ODL_SYSTEM_IP} ${cbench_args}</arg>
<doc>_This keyword is considered deprecated. Use the
[http://robotframework.org/robotframework/latest/libraries/Process.html|
Process] library instead._</doc>
<status status="NOT RUN" start="2026-08-29T02:43:36.194466" elapsed="0.000019"/>
</kw>
<status status="NOT RUN" start="2026-08-29T02:43:36.194203" elapsed="0.000315"/>
</branch>
<branch type="ELSE">
<kw name="Run Command On Remote System" owner="Utils">
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot; and &quot;${return_stderr}&quot;!=&quot;True&quot;">
<kw name="Fail" owner="BuiltIn">
<arg>At least one of {return_stdout} or {return_stderr} args should be set to True</arg>
<doc>Fails the test with the given message and optionally alters its tags.</doc>
<status status="NOT RUN" start="2026-08-29T02:43:36.197484" elapsed="0.000019"/>
</kw>
<status status="NOT RUN" start="2026-08-29T02:43:36.197251" elapsed="0.000283"/>
</branch>
<status status="PASS" start="2026-08-29T02:43:36.197231" elapsed="0.000327"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-08-29T02:43:36.197921" level="INFO">index=None
host=None
alias=None
port=22
timeout=3 seconds
newline=

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

prompt=None
term_type=vt100
width=80
height=24
path_separator=/
encoding=utf8
escape_ansi=False
encoding_errors=strict</msg>
<var>${current_ssh_connection}</var>
<doc>Returns information about the connection.</doc>
<status status="PASS" start="2026-08-29T02:43:36.197698" elapsed="0.000379"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-29T02:43:36.198601" level="INFO">Attempting to execute command "/usr/local/bin/cbench -c 10.30.171.205 -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633" on remote system "10.30.170.242" by user "jenkins" with keyfile pass "any" and prompt "&gt;" and password ""</msg>
<arg>Attempting to execute command "${cmd}" on remote system "${system}" by user "${user}" with keyfile pass "${keyfile_pass}" and prompt "${prompt}" and password "${password}"</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-29T02:43:36.198213" elapsed="0.000443"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-08-29T02:43:36.199294" level="INFO">${conn_id} = 5</msg>
<var>${conn_id}</var>
<arg>${system}</arg>
<arg>prompt=${prompt}</arg>
<arg>timeout=${prompt_timeout}</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-08-29T02:43:36.198804" elapsed="0.000514"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-08-29T02:43:36.200256" level="INFO">Length is 0.</msg>
<msg time="2026-08-29T02:43:36.200340" level="INFO">${pwd_length} = 0</msg>
<var>${pwd_length}</var>
<arg>${password}</arg>
<doc>Returns and logs the length of the given item as an integer.</doc>
<status status="PASS" start="2026-08-29T02:43:36.199859" elapsed="0.000502"/>
</kw>
<kw name="Run Keyword And Return If" owner="BuiltIn">
<arg>${pwd_length} &gt; 0</arg>
<arg>SSHLibrary.Login</arg>
<arg>${user}</arg>
<arg>${password}</arg>
<arg>delay=${delay}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-08-29T02:43:36.200495" elapsed="0.000334"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-08-29T02:43:36.201658" level="INFO">Logging into '10.30.170.242:22' as 'jenkins'.</msg>
<msg time="2026-08-29T02:43:36.594939" level="INFO">Read output: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-186-generic x86_64)

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

 System information as of Sat Aug 29 02:42:53 UTC 2026

  System load:  0.21               Processes:             111
  Usage of /:   19.7% of 38.58GB   Users logged in:       0
  Memory usage: 4%                 IPv4 address for ens3: 10.30.170.242
  Swap usage:   0%


Expanded Security Maintenance for Applications is not enabled.

0 updates can be applied immediately.

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


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


Last login: Sat Aug 29 02:43:35 2026 from 10.30.170.23
[?2004h[jenkins@releng-00446-69-1-mininet-ovs-217-0 ~]&gt;</msg>
<arg>${user}</arg>
<arg>${USER_HOME}/.ssh/${SSH_KEY}</arg>
<arg>${KEYFILE_PASS}</arg>
<arg>delay=${delay}</arg>
<doc>Logs into the SSH server using key-based authentication.</doc>
<status status="PASS" start="2026-08-29T02:43:36.201325" elapsed="0.393908"/>
</kw>
<msg time="2026-08-29T02:43:36.595332" level="INFO">Returning from the enclosing user keyword.</msg>
<arg>SSHLibrary.Login With Public Key</arg>
<arg>${user}</arg>
<arg>${USER_HOME}/.ssh/${SSH_KEY}</arg>
<arg>${KEYFILE_PASS}</arg>
<arg>delay=${delay}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-08-29T02:43:36.200971" elapsed="0.394481"/>
</kw>
<arg>${user}</arg>
<arg>${password}</arg>
<doc>On active SSH session: if given non-empty password, do Login, else do Login With Public Key.</doc>
<status status="PASS" start="2026-08-29T02:43:36.199504" elapsed="0.396094"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-08-29T02:43:36.596319" level="INFO">Executing command '/usr/local/bin/cbench -c 10.30.171.205 -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633'.</msg>
<msg time="2026-08-29T02:53:42.711041" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-08-29T02:53:42.711825" level="INFO">${stdout} = </msg>
<msg time="2026-08-29T02:53:42.711926" level="INFO">${stderr} = cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.171.205:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with 10...</msg>
<var>${stdout}</var>
<var>${stderr}</var>
<arg>${cmd}</arg>
<arg>return_stderr=True</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-08-29T02:43:36.595905" elapsed="606.116075"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-08-29T02:53:42.712413" elapsed="0.000971"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-29T02:53:42.714531" level="INFO">cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.171.205:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with 100 unique source MACs per switch
   learning destination mac addresses before the test
   starting test with 5000 ms delay after features_reply
   ignoring first 1 "warmup" and last 0 "cooldown" loops
   debugging info is off
Master Thread: Creating thread-0! 
Thread-0: All switches initialized. Running at node 10.30.171.205. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
02:44:41.801 16  switches: flows:  91357 89819 89435 91021 91698 89076 86624 86349 85076 86630 86557 85752 83337 86621 85219 84741  total = 23.321867 per ms 
02:45:41.904 16  switches: flows:  96791 94706 94793 97051 98942 94183 93878 93729 92597 92861 92919 91171 89758 92205 90674 90483  total = 24.903795 per ms 
02:46:42.005 16  switches: flows:  97820 97180 96901 99947 100935 95781 95411 94499 94763 95831 95701 93641 92193 93616 92343 92700  total = 25.445223 per ms 
02:47:42.105 16  switches: flows:  98128 98677 94834 99985 102689 96613 97267 94690 95303 96336 94542 95307 93515 94410 93741 92656  total = 25.602135 per ms 
02:48:42.205 16  switches: flows:  96881 96019 96718 96704 101032 96514 95435 92651 92823 95263 95590 92240 91934 94434 91521 93230  total = 25.274275 per ms 
02:49:42.306 16  switches: flows:  97425 96519 95543 96402 100456 95459 95423 92927 93576 94569 95084 92332 90313 93645 92245 92246  total = 25.193966 per ms 
02:50:42.406 16  switches: flows:  98402 97530 97953 97106 103659 96970 97852 95764 95014 95941 97538 94473 94530 95107 94156 96369  total = 25.763055 per ms 
02:51:42.506 16  switches: flows:  100201 99965 96808 98703 103432 98827 98644 95929 97229 97872 96931 96432 94983 97349 94912 95606  total = 26.020288 per ms 
02:52:42.606 16  switches: flows:  99212 98589 96755 96583 101565 98044 97103 96143 96539 96075 97655 94919 95072 96887 93858 95283  total = 25.794939 per ms 
02:53:42.707 16  switches: flows:  95458 96502 94082 95175 95346 94331 92617 91538 91181 91994 93595 91423 90139 90997 89888 90252  total = 24.700746 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 24700.75/26020.29/25410.94/8480.20 responses/s</msg>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-29T02:53:42.713788" elapsed="0.001044"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="PASS" start="2026-08-29T02:53:42.715306" elapsed="0.000070"/>
</return>
<status status="PASS" start="2026-08-29T02:53:42.715028" elapsed="0.000420"/>
</branch>
<status status="PASS" start="2026-08-29T02:53:42.714974" elapsed="0.000525"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="NOT RUN" start="2026-08-29T02:53:42.715749" elapsed="0.000028"/>
</return>
<status status="NOT RUN" start="2026-08-29T02:53:42.715642" elapsed="0.000191"/>
</branch>
<status status="NOT RUN" start="2026-08-29T02:53:42.715608" elapsed="0.000268"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-08-29T02:53:42.715945" elapsed="0.000027"/>
</return>
<kw name="Restore_Current_Ssh_Connection_From_Index" owner="SSHKeywords" type="TEARDOWN">
<kw name="Run Keyword And Return If" owner="BuiltIn">
<arg>${connection_index} is not None</arg>
<arg>SSHLibrary.Switch Connection</arg>
<arg>${connection_index}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-08-29T02:53:42.721064" elapsed="0.000837"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<arg>127.0.0.1</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-08-29T02:53:42.722206" elapsed="0.000521"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-08-29T02:53:42.722993" elapsed="0.000198"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-08-29T02:53:42.716576" elapsed="0.006719"/>
</kw>
<msg time="2026-08-29T02:53:42.723566" level="INFO">${output} = cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.171.205:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with 10...</msg>
<var>${output}</var>
<arg>${cbench_system}</arg>
<arg>${cbench_executable} -c ${ODL_SYSTEM_IP} ${cbench_args}</arg>
<arg>prompt_timeout=${test_timeout}</arg>
<arg>return_stdout=False</arg>
<arg>return_stderr=True</arg>
<doc>Reduces the common work of running a command on a remote system to a single higher level
robot keyword, taking care to log in with a public key and. The command given is written and the return value
depends on the passed argument values of return_stdout (default: True) and return_stderr (default: False).
At least one should be True, or the keyword will exit and FAIL. If both are True, the resulting return value
will be a two element list containing both. Otherwise the resulting return value is a string.
No test conditions are checked.</doc>
<status status="PASS" start="2026-08-29T02:43:36.194891" elapsed="606.528729"/>
</kw>
<status status="PASS" start="2026-08-29T02:43:36.194552" elapsed="606.529193"/>
</branch>
<status status="PASS" start="2026-08-29T02:43:36.194173" elapsed="606.529622"/>
</if>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-29T02:53:42.724707" level="INFO">cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.171.205:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with 100 unique source MACs per switch
   learning destination mac addresses before the test
   starting test with 5000 ms delay after features_reply
   ignoring first 1 "warmup" and last 0 "cooldown" loops
   debugging info is off
Master Thread: Creating thread-0! 
Thread-0: All switches initialized. Running at node 10.30.171.205. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
02:44:41.801 16  switches: flows:  91357 89819 89435 91021 91698 89076 86624 86349 85076 86630 86557 85752 83337 86621 85219 84741  total = 23.321867 per ms 
02:45:41.904 16  switches: flows:  96791 94706 94793 97051 98942 94183 93878 93729 92597 92861 92919 91171 89758 92205 90674 90483  total = 24.903795 per ms 
02:46:42.005 16  switches: flows:  97820 97180 96901 99947 100935 95781 95411 94499 94763 95831 95701 93641 92193 93616 92343 92700  total = 25.445223 per ms 
02:47:42.105 16  switches: flows:  98128 98677 94834 99985 102689 96613 97267 94690 95303 96336 94542 95307 93515 94410 93741 92656  total = 25.602135 per ms 
02:48:42.205 16  switches: flows:  96881 96019 96718 96704 101032 96514 95435 92651 92823 95263 95590 92240 91934 94434 91521 93230  total = 25.274275 per ms 
02:49:42.306 16  switches: flows:  97425 96519 95543 96402 100456 95459 95423 92927 93576 94569 95084 92332 90313 93645 92245 92246  total = 25.193966 per ms 
02:50:42.406 16  switches: flows:  98402 97530 97953 97106 103659 96970 97852 95764 95014 95941 97538 94473 94530 95107 94156 96369  total = 25.763055 per ms 
02:51:42.506 16  switches: flows:  100201 99965 96808 98703 103432 98827 98644 95929 97229 97872 96931 96432 94983 97349 94912 95606  total = 26.020288 per ms 
02:52:42.606 16  switches: flows:  99212 98589 96755 96583 101565 98044 97103 96143 96539 96075 97655 94919 95072 96887 93858 95283  total = 25.794939 per ms 
02:53:42.707 16  switches: flows:  95458 96502 94082 95175 95346 94331 92617 91538 91181 91994 93595 91423 90139 90997 89888 90252  total = 24.700746 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 24700.75/26020.29/25410.94/8480.20 responses/s</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-29T02:53:42.724071" elapsed="0.000789"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${output}</arg>
<arg>RESULT</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-08-29T02:53:42.725156" elapsed="0.000808"/>
</kw>
<kw name="Get Lines Containing String" owner="String">
<msg time="2026-08-29T02:53:42.726818" level="INFO">1 out of 23 lines matched.</msg>
<msg time="2026-08-29T02:53:42.727003" level="INFO">${result_line} = RESULT: 16 switches 9 tests min/max/avg/stdev = 24700.75/26020.29/25410.94/8480.20 responses/s</msg>
<var>${result_line}</var>
<arg>${output}</arg>
<arg>RESULT</arg>
<doc>Returns lines of the given ``string`` that contain the ``pattern``.</doc>
<status status="PASS" start="2026-08-29T02:53:42.726289" elapsed="0.000764"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-08-29T02:53:42.727931" level="INFO">@{results_list} = [ RESULT: | 16 | switches | 9 | tests | min/max/avg/stdev | = | 24700.75/26020.29/25410.94/8480.20 | responses/s ]</msg>
<var>@{results_list}</var>
<arg>${result_line}</arg>
<doc>Splits the ``string`` using ``separator`` as a delimiter string.</doc>
<status status="PASS" start="2026-08-29T02:53:42.727365" elapsed="0.000620"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-29T02:53:42.732997" level="INFO">min/max/avg/stdev</msg>
<arg>${results_list[5]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-29T02:53:42.728276" elapsed="0.004836"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-29T02:53:42.738022" level="INFO">24700.75/26020.29/25410.94/8480.20</msg>
<arg>${results_list[7]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-29T02:53:42.733410" elapsed="0.004739"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-08-29T02:53:42.743228" level="INFO">@{result_name_list} = [ min | max | avg | stdev ]</msg>
<var>@{result_name_list}</var>
<arg>${results_list[5]}</arg>
<arg>/</arg>
<doc>Splits the ``string`` using ``separator`` as a delimiter string.</doc>
<status status="PASS" start="2026-08-29T02:53:42.738451" elapsed="0.004838"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-08-29T02:53:42.748281" level="INFO">@{result_value_list} = [ 24700.75 | 26020.29 | 25410.94 | 8480.20 ]</msg>
<var>@{result_value_list}</var>
<arg>${results_list[7]}</arg>
<arg>/</arg>
<doc>Splits the ``string`` using ``separator`` as a delimiter string.</doc>
<status status="PASS" start="2026-08-29T02:53:42.743755" elapsed="0.004582"/>
</kw>
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-08-29T02:53:42.749349" level="INFO">Length is 4.</msg>
<msg time="2026-08-29T02:53:42.749548" level="INFO">${num_stats} = 4</msg>
<var>${num_stats}</var>
<arg>${result_name_list}</arg>
<doc>Returns and logs the length of the given item as an integer.</doc>
<status status="PASS" start="2026-08-29T02:53:42.748700" elapsed="0.000898"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-29T02:53:42.758331" level="INFO">min :: 24700.75</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-29T02:53:42.750432" elapsed="0.007972"/>
</kw>
<var name="${i}">0</var>
<status status="PASS" start="2026-08-29T02:53:42.750161" elapsed="0.008290"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-29T02:53:42.764309" level="INFO">max :: 26020.29</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-29T02:53:42.758775" elapsed="0.005606"/>
</kw>
<var name="${i}">1</var>
<status status="PASS" start="2026-08-29T02:53:42.758591" elapsed="0.005833"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-29T02:53:42.770312" level="INFO">avg :: 25410.94</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-29T02:53:42.764758" elapsed="0.005633"/>
</kw>
<var name="${i}">2</var>
<status status="PASS" start="2026-08-29T02:53:42.764558" elapsed="0.005877"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-29T02:53:42.776442" level="INFO">stdev :: 8480.20</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-29T02:53:42.770756" elapsed="0.005778"/>
</kw>
<var name="${i}">3</var>
<status status="PASS" start="2026-08-29T02:53:42.770573" elapsed="0.006005"/>
</iter>
<var>${i}</var>
<value>0</value>
<value>${num_stats}</value>
<status status="PASS" start="2026-08-29T02:53:42.749758" elapsed="0.026860"/>
</for>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-08-29T02:53:42.781582" level="INFO">${min} = 24700.75</msg>
<var>${min}</var>
<arg>${result_value_list[${0}]}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-08-29T02:53:42.776855" elapsed="0.004761"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-08-29T02:53:42.787881" level="INFO">${max} = 26020.29</msg>
<var>${max}</var>
<arg>${result_value_list[${1}]}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-08-29T02:53:42.781830" elapsed="0.006085"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-08-29T02:53:42.792918" level="INFO">${average} = 25410.94</msg>
<var>${average}</var>
<arg>${result_value_list[${2}]}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-08-29T02:53:42.788113" elapsed="0.004839"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-08-29T02:53:42.797968" level="INFO">${stdev} = 8480.20</msg>
<var>${stdev}</var>
<arg>${result_value_list[${3}]}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-08-29T02:53:42.793144" elapsed="0.004856"/>
</kw>
<kw name="Get Time" owner="BuiltIn">
<msg time="2026-08-29T02:53:42.798686" level="INFO">${date} = 2026-08-29 02:53:42</msg>
<var>${date}</var>
<arg>d,m,s</arg>
<doc>Returns the given time in the requested format.</doc>
<status status="PASS" start="2026-08-29T02:53:42.798200" elapsed="0.000519"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-29T02:53:42.799415" level="INFO">CBench Result: 2026-08-29 02:53:42,-m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633,24700.75,26020.29,25410.94,8480.20</msg>
<arg>CBench Result: ${date},${cbench_args},${min},${max},${average},${stdev}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-29T02:53:42.798904" elapsed="0.000580"/>
</kw>
<kw name="Log Results And Determine Status">
<kw name="Append To File" owner="OperatingSystem">
<msg time="2026-08-29T02:53:42.800829" level="INFO" html="true">Appended to file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-cbench-only-chromium/latency.csv"&gt;/w/workspace/openflowplugin-csit-1node-cbench-only-chromium/latency.csv&lt;/a&gt;'.</msg>
<arg>${output_file}</arg>
<arg>${min},${max},${average}\n</arg>
<doc>Appends the given content to the specified file.</doc>
<status status="PASS" start="2026-08-29T02:53:42.800298" elapsed="0.000615"/>
</kw>
<kw name="Should Be True" owner="BuiltIn">
<arg>${average} &gt; ${threshold}</arg>
<arg>${average} flow_mods per/sec did not exceed threshold of ${threshold}</arg>
<doc>Fails if the given condition is not true.</doc>
<status status="PASS" start="2026-08-29T02:53:42.801101" elapsed="0.000620"/>
</kw>
<arg>${min}</arg>
<arg>${max}</arg>
<arg>${average}</arg>
<arg>${average_threshold}</arg>
<arg>${output_filename}</arg>
<status status="PASS" start="2026-08-29T02:53:42.799706" elapsed="0.002097"/>
</kw>
<arg>-m ${duration_in_ms} -M ${num_of_unique_macs} -S ${switch_count} -l ${loops} -D ${start_delay} -p ${of_port}</arg>
<arg>${latency_threshold}</arg>
<arg>${latency_results_file}</arg>
<status status="PASS" start="2026-08-29T02:43:36.192955" elapsed="606.608921"/>
</kw>
<kw name="Sleep" owner="BuiltIn">
<msg time="2026-08-29T02:53:42.802478" level="INFO">Slept 0 seconds.</msg>
<arg>${test_delay}</arg>
<doc>Pauses the test executed for the given time.</doc>
<status status="PASS" start="2026-08-29T02:53:42.802059" elapsed="0.000514"/>
</kw>
<kw name="Log Results As Zero If Cbench Timed Out" type="TEARDOWN">
<kw name="Run Keyword If Timeout Occurred" owner="BuiltIn">
<arg>Log Results And Determine Status</arg>
<arg>0</arg>
<arg>0</arg>
<arg>0</arg>
<arg>0</arg>
<arg>${output_filename}</arg>
<doc>Runs the given keyword if either a test or a keyword timeout has occurred.</doc>
<status status="PASS" start="2026-08-29T02:53:42.803248" elapsed="0.000352"/>
</kw>
<status status="PASS" start="2026-08-29T02:53:42.802872" elapsed="0.000835"/>
</kw>
<doc>cbench executed in default latency mode. Test parameters have defaults, but can be overridden
on the pybot command line</doc>
<tag>cbench</tag>
<tag>latency</tag>
<timeout value="15 minutes"/>
<status status="PASS" start="2026-08-29T02:43:36.189590" elapsed="606.614166"/>
</test>
<test id="s1-t2" name="Cbench Throughput Test" line="51">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-29T02:53:42.805247" level="INFO">Cbench tests using 10 iterations of 60 second tests. Switch Count: 16. Unique MACS to cycle: 100</msg>
<arg>Cbench tests using ${loops} iterations of ${duration_in_secs} second tests. Switch Count: ${switch_count}. Unique MACS to cycle: ${num_of_unique_macs}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-29T02:53:42.804890" elapsed="0.000409"/>
</kw>
<kw name="Run Cbench And Log Results">
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-08-29T02:53:42.806443" level="INFO">${output_filename} = throughput.csv</msg>
<arg>${output_filename}</arg>
<doc>Makes a variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-08-29T02:53:42.806149" elapsed="0.000331"/>
</kw>
<if>
<branch type="IF" condition="&quot;${cbench_system}&quot; == &quot;localhost&quot;">
<kw name="Run" owner="OperatingSystem">
<var>${output}</var>
<arg>${cbench_executable} -c ${ODL_SYSTEM_IP} ${cbench_args}</arg>
<doc>_This keyword is considered deprecated. Use the
[http://robotframework.org/robotframework/latest/libraries/Process.html|
Process] library instead._</doc>
<status status="NOT RUN" start="2026-08-29T02:53:42.806837" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-08-29T02:53:42.806565" elapsed="0.000325"/>
</branch>
<branch type="ELSE">
<kw name="Run Command On Remote System" owner="Utils">
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot; and &quot;${return_stderr}&quot;!=&quot;True&quot;">
<kw name="Fail" owner="BuiltIn">
<arg>At least one of {return_stdout} or {return_stderr} args should be set to True</arg>
<doc>Fails the test with the given message and optionally alters its tags.</doc>
<status status="NOT RUN" start="2026-08-29T02:53:42.809619" elapsed="0.000019"/>
</kw>
<status status="NOT RUN" start="2026-08-29T02:53:42.809381" elapsed="0.000304"/>
</branch>
<status status="PASS" start="2026-08-29T02:53:42.809364" elapsed="0.000343"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-08-29T02:53:42.810021" level="INFO">index=None
host=None
alias=None
port=22
timeout=3 seconds
newline=

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

prompt=None
term_type=vt100
width=80
height=24
path_separator=/
encoding=utf8
escape_ansi=False
encoding_errors=strict</msg>
<var>${current_ssh_connection}</var>
<doc>Returns information about the connection.</doc>
<status status="PASS" start="2026-08-29T02:53:42.809828" elapsed="0.000346"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-29T02:53:42.810831" level="INFO">Attempting to execute command "/usr/local/bin/cbench -c 10.30.171.205 -t -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633" on remote system "10.30.170.242" by user "jenkins" with keyfile pass "any" and prompt "&gt;" and password ""</msg>
<arg>Attempting to execute command "${cmd}" on remote system "${system}" by user "${user}" with keyfile pass "${keyfile_pass}" and prompt "${prompt}" and password "${password}"</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-29T02:53:42.810339" elapsed="0.000547"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-08-29T02:53:42.811373" level="INFO">${conn_id} = 7</msg>
<var>${conn_id}</var>
<arg>${system}</arg>
<arg>prompt=${prompt}</arg>
<arg>timeout=${prompt_timeout}</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-08-29T02:53:42.811015" elapsed="0.000381"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-08-29T02:53:42.812234" level="INFO">Length is 0.</msg>
<msg time="2026-08-29T02:53:42.812312" level="INFO">${pwd_length} = 0</msg>
<var>${pwd_length}</var>
<arg>${password}</arg>
<doc>Returns and logs the length of the given item as an integer.</doc>
<status status="PASS" start="2026-08-29T02:53:42.811943" elapsed="0.000391"/>
</kw>
<kw name="Run Keyword And Return If" owner="BuiltIn">
<arg>${pwd_length} &gt; 0</arg>
<arg>SSHLibrary.Login</arg>
<arg>${user}</arg>
<arg>${password}</arg>
<arg>delay=${delay}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-08-29T02:53:42.812460" elapsed="0.000346"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-08-29T02:53:42.813591" level="INFO">Logging into '10.30.170.242:22' as 'jenkins'.</msg>
<msg time="2026-08-29T02:53:43.491993" level="INFO">Read output: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-186-generic x86_64)

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

 System information as of Sat Aug 29 02:53:43 UTC 2026

  System load:  1.0                Processes:             106
  Usage of /:   19.9% of 38.58GB   Users logged in:       0
  Memory usage: 4%                 IPv4 address for ens3: 10.30.170.242
  Swap usage:   0%


Expanded Security Maintenance for Applications is not enabled.

0 updates can be applied immediately.

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


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


Last login: Sat Aug 29 02:43:36 2026 from 10.30.170.23
[?2004h[jenkins@releng-00446-69-1-mininet-ovs-217-0 ~]&gt;</msg>
<arg>${user}</arg>
<arg>${USER_HOME}/.ssh/${SSH_KEY}</arg>
<arg>${KEYFILE_PASS}</arg>
<arg>delay=${delay}</arg>
<doc>Logs into the SSH server using key-based authentication.</doc>
<status status="PASS" start="2026-08-29T02:53:42.813249" elapsed="0.679033"/>
</kw>
<msg time="2026-08-29T02:53:43.492399" level="INFO">Returning from the enclosing user keyword.</msg>
<arg>SSHLibrary.Login With Public Key</arg>
<arg>${user}</arg>
<arg>${USER_HOME}/.ssh/${SSH_KEY}</arg>
<arg>${KEYFILE_PASS}</arg>
<arg>delay=${delay}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-08-29T02:53:42.812942" elapsed="0.679599"/>
</kw>
<arg>${user}</arg>
<arg>${password}</arg>
<doc>On active SSH session: if given non-empty password, do Login, else do Login With Public Key.</doc>
<status status="PASS" start="2026-08-29T02:53:42.811594" elapsed="0.681115"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-08-29T02:53:43.493515" level="INFO">Executing command '/usr/local/bin/cbench -c 10.30.171.205 -t -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633'.</msg>
<msg time="2026-08-29T03:03:49.550610" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-08-29T03:03:49.551323" level="INFO">${stdout} = </msg>
<msg time="2026-08-29T03:03:49.551415" level="INFO">${stderr} = cbench: controller benchmarking tool
   running in mode 'throughput'
   connecting to controller at 10.30.171.205:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with...</msg>
<var>${stdout}</var>
<var>${stderr}</var>
<arg>${cmd}</arg>
<arg>return_stderr=True</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-08-29T02:53:43.493051" elapsed="606.058414"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-08-29T03:03:49.551930" elapsed="0.000632"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-29T03:03:49.553624" level="INFO">cbench: controller benchmarking tool
   running in mode 'throughput'
   connecting to controller at 10.30.171.205:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with 100 unique source MACs per switch
   learning destination mac addresses before the test
   starting test with 5000 ms delay after features_reply
   ignoring first 1 "warmup" and last 0 "cooldown" loops
   debugging info is off
Master Thread: Creating thread-0! 
Thread-0: All switches initialized. Running at node 10.30.171.205. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
02:54:48.614 16  switches: flows:  638690 644032 641067 641230 652249 647473 652518 644086 645291 636156 645478 644065 636876 643965 640802 639392  total = 171.556167 per ms 
02:55:48.716 16  switches: flows:  692499 689986 692185 698173 694088 690225 693183 687575 690093 691744 691649 694661 691203 687207 693329 692772  total = 184.197227 per ms 
02:56:48.818 16  switches: flows:  689745 687261 693788 691416 691703 687382 688429 691932 691825 681450 683440 696975 684183 687952 686289 686065  total = 183.355830 per ms 
02:57:48.919 16  switches: flows:  688231 690013 692684 687988 694025 690931 693102 689288 694362 686186 687303 687942 685955 679717 682688 686550  total = 183.306229 per ms 
02:58:49.028 16  switches: flows:  685955 684552 686804 684891 693682 689705 694485 691841 689556 689084 687932 685901 689549 686659 692096 687020  total = 183.331470 per ms 
02:59:49.131 16  switches: flows:  678377 681534 675974 673904 682611 688241 679215 681165 680057 685635 686090 682192 680934 682336 684853 685450  total = 181.501975 per ms 
03:00:49.234 16  switches: flows:  697468 689815 687759 688883 699229 694700 694764 693554 696567 694444 695421 696462 693974 697514 694791 679229  total = 184.595087 per ms 
03:01:49.336 16  switches: flows:  699132 689414 690805 696984 690344 691829 699298 695425 695871 694024 689772 693060 695818 691739 693274 692730  total = 184.679914 per ms 
03:02:49.437 16  switches: flows:  692615 693459 687191 686813 691062 684582 690701 693021 693097 687427 693604 689608 687513 688973 692104 690270  total = 183.725632 per ms 
03:03:49.540 16  switches: flows:  665785 668721 673357 674024 675859 673115 668147 674077 669154 671673 674585 669543 672431 662469 669106 671724  total = 178.592328 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 178592.33/184679.91/183031.74/61037.27 responses/s</msg>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-29T03:03:49.552952" elapsed="0.000992"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="PASS" start="2026-08-29T03:03:49.554383" elapsed="0.000065"/>
</return>
<status status="PASS" start="2026-08-29T03:03:49.554113" elapsed="0.000404"/>
</branch>
<status status="PASS" start="2026-08-29T03:03:49.554070" elapsed="0.000496"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="NOT RUN" start="2026-08-29T03:03:49.554777" elapsed="0.000024"/>
</return>
<status status="NOT RUN" start="2026-08-29T03:03:49.554704" elapsed="0.000169"/>
</branch>
<status status="NOT RUN" start="2026-08-29T03:03:49.554645" elapsed="0.000270"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-08-29T03:03:49.554975" elapsed="0.000026"/>
</return>
<kw name="Restore_Current_Ssh_Connection_From_Index" owner="SSHKeywords" type="TEARDOWN">
<kw name="Run Keyword And Return If" owner="BuiltIn">
<arg>${connection_index} is not None</arg>
<arg>SSHLibrary.Switch Connection</arg>
<arg>${connection_index}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-08-29T03:03:49.560087" elapsed="0.000671"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<arg>127.0.0.1</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-08-29T03:03:49.561070" elapsed="0.000309"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-08-29T03:03:49.561630" elapsed="0.000248"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-08-29T03:03:49.555564" elapsed="0.006417"/>
</kw>
<msg time="2026-08-29T03:03:49.562221" level="INFO">${output} = cbench: controller benchmarking tool
   running in mode 'throughput'
   connecting to controller at 10.30.171.205:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with...</msg>
<var>${output}</var>
<arg>${cbench_system}</arg>
<arg>${cbench_executable} -c ${ODL_SYSTEM_IP} ${cbench_args}</arg>
<arg>prompt_timeout=${test_timeout}</arg>
<arg>return_stdout=False</arg>
<arg>return_stderr=True</arg>
<doc>Reduces the common work of running a command on a remote system to a single higher level
robot keyword, taking care to log in with a public key and. The command given is written and the return value
depends on the passed argument values of return_stdout (default: True) and return_stderr (default: False).
At least one should be True, or the keyword will exit and FAIL. If both are True, the resulting return value
will be a two element list containing both. Otherwise the resulting return value is a string.
No test conditions are checked.</doc>
<status status="PASS" start="2026-08-29T02:53:42.807218" elapsed="606.755053"/>
</kw>
<status status="PASS" start="2026-08-29T02:53:42.806916" elapsed="606.755446"/>
</branch>
<status status="PASS" start="2026-08-29T02:53:42.806544" elapsed="606.755864"/>
</if>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-29T03:03:49.563324" level="INFO">cbench: controller benchmarking tool
   running in mode 'throughput'
   connecting to controller at 10.30.171.205:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with 100 unique source MACs per switch
   learning destination mac addresses before the test
   starting test with 5000 ms delay after features_reply
   ignoring first 1 "warmup" and last 0 "cooldown" loops
   debugging info is off
Master Thread: Creating thread-0! 
Thread-0: All switches initialized. Running at node 10.30.171.205. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
02:54:48.614 16  switches: flows:  638690 644032 641067 641230 652249 647473 652518 644086 645291 636156 645478 644065 636876 643965 640802 639392  total = 171.556167 per ms 
02:55:48.716 16  switches: flows:  692499 689986 692185 698173 694088 690225 693183 687575 690093 691744 691649 694661 691203 687207 693329 692772  total = 184.197227 per ms 
02:56:48.818 16  switches: flows:  689745 687261 693788 691416 691703 687382 688429 691932 691825 681450 683440 696975 684183 687952 686289 686065  total = 183.355830 per ms 
02:57:48.919 16  switches: flows:  688231 690013 692684 687988 694025 690931 693102 689288 694362 686186 687303 687942 685955 679717 682688 686550  total = 183.306229 per ms 
02:58:49.028 16  switches: flows:  685955 684552 686804 684891 693682 689705 694485 691841 689556 689084 687932 685901 689549 686659 692096 687020  total = 183.331470 per ms 
02:59:49.131 16  switches: flows:  678377 681534 675974 673904 682611 688241 679215 681165 680057 685635 686090 682192 680934 682336 684853 685450  total = 181.501975 per ms 
03:00:49.234 16  switches: flows:  697468 689815 687759 688883 699229 694700 694764 693554 696567 694444 695421 696462 693974 697514 694791 679229  total = 184.595087 per ms 
03:01:49.336 16  switches: flows:  699132 689414 690805 696984 690344 691829 699298 695425 695871 694024 689772 693060 695818 691739 693274 692730  total = 184.679914 per ms 
03:02:49.437 16  switches: flows:  692615 693459 687191 686813 691062 684582 690701 693021 693097 687427 693604 689608 687513 688973 692104 690270  total = 183.725632 per ms 
03:03:49.540 16  switches: flows:  665785 668721 673357 674024 675859 673115 668147 674077 669154 671673 674585 669543 672431 662469 669106 671724  total = 178.592328 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 178592.33/184679.91/183031.74/61037.27 responses/s</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-29T03:03:49.562710" elapsed="0.000761"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${output}</arg>
<arg>RESULT</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-08-29T03:03:49.563793" elapsed="0.000740"/>
</kw>
<kw name="Get Lines Containing String" owner="String">
<msg time="2026-08-29T03:03:49.565325" level="INFO">1 out of 23 lines matched.</msg>
<msg time="2026-08-29T03:03:49.565498" level="INFO">${result_line} = RESULT: 16 switches 9 tests min/max/avg/stdev = 178592.33/184679.91/183031.74/61037.27 responses/s</msg>
<var>${result_line}</var>
<arg>${output}</arg>
<arg>RESULT</arg>
<doc>Returns lines of the given ``string`` that contain the ``pattern``.</doc>
<status status="PASS" start="2026-08-29T03:03:49.564899" elapsed="0.000646"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-08-29T03:03:49.566389" level="INFO">@{results_list} = [ RESULT: | 16 | switches | 9 | tests | min/max/avg/stdev | = | 178592.33/184679.91/183031.74/61037.27 | responses/s ]</msg>
<var>@{results_list}</var>
<arg>${result_line}</arg>
<doc>Splits the ``string`` using ``separator`` as a delimiter string.</doc>
<status status="PASS" start="2026-08-29T03:03:49.565896" elapsed="0.000546"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-29T03:03:49.571512" level="INFO">min/max/avg/stdev</msg>
<arg>${results_list[5]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-29T03:03:49.566763" elapsed="0.004861"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-29T03:03:49.576592" level="INFO">178592.33/184679.91/183031.74/61037.27</msg>
<arg>${results_list[7]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-29T03:03:49.571966" elapsed="0.004791"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-08-29T03:03:49.581791" level="INFO">@{result_name_list} = [ min | max | avg | stdev ]</msg>
<var>@{result_name_list}</var>
<arg>${results_list[5]}</arg>
<arg>/</arg>
<doc>Splits the ``string`` using ``separator`` as a delimiter string.</doc>
<status status="PASS" start="2026-08-29T03:03:49.577080" elapsed="0.004765"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-08-29T03:03:49.588366" level="INFO">@{result_value_list} = [ 178592.33 | 184679.91 | 183031.74 | 61037.27 ]</msg>
<var>@{result_value_list}</var>
<arg>${results_list[7]}</arg>
<arg>/</arg>
<doc>Splits the ``string`` using ``separator`` as a delimiter string.</doc>
<status status="PASS" start="2026-08-29T03:03:49.582774" elapsed="0.005654"/>
</kw>
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-08-29T03:03:49.589590" level="INFO">Length is 4.</msg>
<msg time="2026-08-29T03:03:49.589814" level="INFO">${num_stats} = 4</msg>
<var>${num_stats}</var>
<arg>${result_name_list}</arg>
<doc>Returns and logs the length of the given item as an integer.</doc>
<status status="PASS" start="2026-08-29T03:03:49.588813" elapsed="0.001076"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-29T03:03:49.598461" level="INFO">min :: 178592.33</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-29T03:03:49.590795" elapsed="0.007740"/>
</kw>
<var name="${i}">0</var>
<status status="PASS" start="2026-08-29T03:03:49.590461" elapsed="0.008119"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-29T03:03:49.604375" level="INFO">max :: 184679.91</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-29T03:03:49.598899" elapsed="0.005547"/>
</kw>
<var name="${i}">1</var>
<status status="PASS" start="2026-08-29T03:03:49.598719" elapsed="0.005777"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-29T03:03:49.610289" level="INFO">avg :: 183031.74</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-29T03:03:49.604823" elapsed="0.005536"/>
</kw>
<var name="${i}">2</var>
<status status="PASS" start="2026-08-29T03:03:49.604623" elapsed="0.005779"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-29T03:03:49.616144" level="INFO">stdev :: 61037.27</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-29T03:03:49.610693" elapsed="0.005521"/>
</kw>
<var name="${i}">3</var>
<status status="PASS" start="2026-08-29T03:03:49.610510" elapsed="0.005748"/>
</iter>
<var>${i}</var>
<value>0</value>
<value>${num_stats}</value>
<status status="PASS" start="2026-08-29T03:03:49.590029" elapsed="0.026268"/>
</for>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-08-29T03:03:49.621282" level="INFO">${min} = 178592.33</msg>
<var>${min}</var>
<arg>${result_value_list[${0}]}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-08-29T03:03:49.616500" elapsed="0.004815"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-08-29T03:03:49.626100" level="INFO">${max} = 184679.91</msg>
<var>${max}</var>
<arg>${result_value_list[${1}]}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-08-29T03:03:49.621509" elapsed="0.004616"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-08-29T03:03:49.629674" level="INFO">${average} = 183031.74</msg>
<var>${average}</var>
<arg>${result_value_list[${2}]}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-08-29T03:03:49.626264" elapsed="0.003435"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-08-29T03:03:49.633326" level="INFO">${stdev} = 61037.27</msg>
<var>${stdev}</var>
<arg>${result_value_list[${3}]}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-08-29T03:03:49.629836" elapsed="0.003515"/>
</kw>
<kw name="Get Time" owner="BuiltIn">
<msg time="2026-08-29T03:03:49.633875" level="INFO">${date} = 2026-08-29 03:03:49</msg>
<var>${date}</var>
<arg>d,m,s</arg>
<doc>Returns the given time in the requested format.</doc>
<status status="PASS" start="2026-08-29T03:03:49.633511" elapsed="0.000388"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-29T03:03:49.634401" level="INFO">CBench Result: 2026-08-29 03:03:49,-t -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633,178592.33,184679.91,183031.74,61037.27</msg>
<arg>CBench Result: ${date},${cbench_args},${min},${max},${average},${stdev}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-29T03:03:49.634032" elapsed="0.000420"/>
</kw>
<kw name="Log Results And Determine Status">
<kw name="Append To File" owner="OperatingSystem">
<msg time="2026-08-29T03:03:49.635472" level="INFO" html="true">Appended to file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-cbench-only-chromium/throughput.csv"&gt;/w/workspace/openflowplugin-csit-1node-cbench-only-chromium/throughput.csv&lt;/a&gt;'.</msg>
<arg>${output_file}</arg>
<arg>${min},${max},${average}\n</arg>
<doc>Appends the given content to the specified file.</doc>
<status status="PASS" start="2026-08-29T03:03:49.635088" elapsed="0.000443"/>
</kw>
<kw name="Should Be True" owner="BuiltIn">
<arg>${average} &gt; ${threshold}</arg>
<arg>${average} flow_mods per/sec did not exceed threshold of ${threshold}</arg>
<doc>Fails if the given condition is not true.</doc>
<status status="PASS" start="2026-08-29T03:03:49.635682" elapsed="0.000446"/>
</kw>
<arg>${min}</arg>
<arg>${max}</arg>
<arg>${average}</arg>
<arg>${average_threshold}</arg>
<arg>${output_filename}</arg>
<status status="PASS" start="2026-08-29T03:03:49.634607" elapsed="0.001580"/>
</kw>
<arg>-t -m ${duration_in_ms} -M ${num_of_unique_macs} -S ${switch_count} -l ${loops} -D ${start_delay} -p ${of_port}</arg>
<arg>${throughput_threshold}</arg>
<arg>${throughput_results_file}</arg>
<status status="PASS" start="2026-08-29T02:53:42.805608" elapsed="606.830633"/>
</kw>
<kw name="Sleep" owner="BuiltIn">
<msg time="2026-08-29T03:03:49.636703" level="INFO">Slept 0 seconds.</msg>
<arg>${test_delay}</arg>
<doc>Pauses the test executed for the given time.</doc>
<status status="PASS" start="2026-08-29T03:03:49.636379" elapsed="0.000376"/>
</kw>
<kw name="Log Results As Zero If Cbench Timed Out" type="TEARDOWN">
<kw name="Run Keyword If Timeout Occurred" owner="BuiltIn">
<arg>Log Results And Determine Status</arg>
<arg>0</arg>
<arg>0</arg>
<arg>0</arg>
<arg>0</arg>
<arg>${output_filename}</arg>
<doc>Runs the given keyword if either a test or a keyword timeout has occurred.</doc>
<status status="PASS" start="2026-08-29T03:03:49.637232" elapsed="0.000239"/>
</kw>
<status status="PASS" start="2026-08-29T03:03:49.636960" elapsed="0.000572"/>
</kw>
<doc>cbench executed in throughput mode (-t). Test parameters have defaults, but can be overridden
on the pybot command line</doc>
<tag>cbench</tag>
<tag>throughput</tag>
<timeout value="15 minutes"/>
<status status="PASS" start="2026-08-29T02:53:42.804215" elapsed="606.833352"/>
</test>
<test id="s1-t3" name="Rerun Latency Test To Check Bug 6176" line="65">
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-29T03:03:49.638681" level="INFO">Cbench tests using 10 iterations of 60 second tests. Switch Count: 16. Unique MACS to cycle: 100</msg>
<arg>Cbench tests using ${loops} iterations of ${duration_in_secs} second tests. Switch Count: ${switch_count}. Unique MACS to cycle: ${num_of_unique_macs}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-29T03:03:49.638329" elapsed="0.000404"/>
</kw>
<kw name="Run Cbench And Log Results">
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-08-29T03:03:49.639936" level="INFO">${output_filename} = bug.csv</msg>
<arg>${output_filename}</arg>
<doc>Makes a variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-08-29T03:03:49.639521" elapsed="0.000454"/>
</kw>
<if>
<branch type="IF" condition="&quot;${cbench_system}&quot; == &quot;localhost&quot;">
<kw name="Run" owner="OperatingSystem">
<var>${output}</var>
<arg>${cbench_executable} -c ${ODL_SYSTEM_IP} ${cbench_args}</arg>
<doc>_This keyword is considered deprecated. Use the
[http://robotframework.org/robotframework/latest/libraries/Process.html|
Process] library instead._</doc>
<status status="NOT RUN" start="2026-08-29T03:03:49.640291" elapsed="0.000018"/>
</kw>
<status status="NOT RUN" start="2026-08-29T03:03:49.640084" elapsed="0.000258"/>
</branch>
<branch type="ELSE">
<kw name="Run Command On Remote System" owner="Utils">
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot; and &quot;${return_stderr}&quot;!=&quot;True&quot;">
<kw name="Fail" owner="BuiltIn">
<arg>At least one of {return_stdout} or {return_stderr} args should be set to True</arg>
<doc>Fails the test with the given message and optionally alters its tags.</doc>
<status status="NOT RUN" start="2026-08-29T03:03:49.643178" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-08-29T03:03:49.642951" elapsed="0.000280"/>
</branch>
<status status="PASS" start="2026-08-29T03:03:49.642933" elapsed="0.000319"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-08-29T03:03:49.643595" level="INFO">index=None
host=None
alias=None
port=22
timeout=3 seconds
newline=

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

prompt=None
term_type=vt100
width=80
height=24
path_separator=/
encoding=utf8
escape_ansi=False
encoding_errors=strict</msg>
<var>${current_ssh_connection}</var>
<doc>Returns information about the connection.</doc>
<status status="PASS" start="2026-08-29T03:03:49.643393" elapsed="0.000351"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-29T03:03:49.644257" level="INFO">Attempting to execute command "/usr/local/bin/cbench -c 10.30.171.205 -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633" on remote system "10.30.170.242" by user "jenkins" with keyfile pass "any" and prompt "&gt;" and password ""</msg>
<arg>Attempting to execute command "${cmd}" on remote system "${system}" by user "${user}" with keyfile pass "${keyfile_pass}" and prompt "${prompt}" and password "${password}"</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-29T03:03:49.643881" elapsed="0.000428"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-08-29T03:03:49.644829" level="INFO">${conn_id} = 9</msg>
<var>${conn_id}</var>
<arg>${system}</arg>
<arg>prompt=${prompt}</arg>
<arg>timeout=${prompt_timeout}</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-08-29T03:03:49.644434" elapsed="0.000434"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-08-29T03:03:49.645650" level="INFO">Length is 0.</msg>
<msg time="2026-08-29T03:03:49.645743" level="INFO">${pwd_length} = 0</msg>
<var>${pwd_length}</var>
<arg>${password}</arg>
<doc>Returns and logs the length of the given item as an integer.</doc>
<status status="PASS" start="2026-08-29T03:03:49.645376" elapsed="0.000389"/>
</kw>
<kw name="Run Keyword And Return If" owner="BuiltIn">
<arg>${pwd_length} &gt; 0</arg>
<arg>SSHLibrary.Login</arg>
<arg>${user}</arg>
<arg>${password}</arg>
<arg>delay=${delay}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-08-29T03:03:49.645905" elapsed="0.000290"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-08-29T03:03:49.646987" level="INFO">Logging into '10.30.170.242:22' as 'jenkins'.</msg>
<msg time="2026-08-29T03:03:50.258080" level="INFO">Read output: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-186-generic x86_64)

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

 System information as of Sat Aug 29 03:03:49 UTC 2026

  System load:  0.17               Processes:             105
  Usage of /:   19.9% of 38.58GB   Users logged in:       0
  Memory usage: 4%                 IPv4 address for ens3: 10.30.170.242
  Swap usage:   0%


Expanded Security Maintenance for Applications is not enabled.

0 updates can be applied immediately.

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


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


Last login: Sat Aug 29 02:53:43 2026 from 10.30.170.23
[?2004h[jenkins@releng-00446-69-1-mininet-ovs-217-0 ~]&gt;</msg>
<arg>${user}</arg>
<arg>${USER_HOME}/.ssh/${SSH_KEY}</arg>
<arg>${KEYFILE_PASS}</arg>
<arg>delay=${delay}</arg>
<doc>Logs into the SSH server using key-based authentication.</doc>
<status status="PASS" start="2026-08-29T03:03:49.646636" elapsed="0.611658"/>
</kw>
<msg time="2026-08-29T03:03:50.258381" level="INFO">Returning from the enclosing user keyword.</msg>
<arg>SSHLibrary.Login With Public Key</arg>
<arg>${user}</arg>
<arg>${USER_HOME}/.ssh/${SSH_KEY}</arg>
<arg>${KEYFILE_PASS}</arg>
<arg>delay=${delay}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-08-29T03:03:49.646330" elapsed="0.612137"/>
</kw>
<arg>${user}</arg>
<arg>${password}</arg>
<doc>On active SSH session: if given non-empty password, do Login, else do Login With Public Key.</doc>
<status status="PASS" start="2026-08-29T03:03:49.645050" elapsed="0.613529"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-08-29T03:03:50.259152" level="INFO">Executing command '/usr/local/bin/cbench -c 10.30.171.205 -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633'.</msg>
<msg time="2026-08-29T03:13:56.308169" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-08-29T03:13:56.308660" level="INFO">${stdout} = </msg>
<msg time="2026-08-29T03:13:56.308859" level="INFO">${stderr} = cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.171.205:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with 10...</msg>
<var>${stdout}</var>
<var>${stderr}</var>
<arg>${cmd}</arg>
<arg>return_stderr=True</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-08-29T03:03:50.258825" elapsed="606.050094"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-08-29T03:13:56.309316" elapsed="0.000740"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-29T03:13:56.311164" level="INFO">cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.171.205:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with 100 unique source MACs per switch
   learning destination mac addresses before the test
   starting test with 5000 ms delay after features_reply
   ignoring first 1 "warmup" and last 0 "cooldown" loops
   debugging info is off
Master Thread: Creating thread-0! 
Thread-0: All switches initialized. Running at node 10.30.171.205. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
03:04:55.386 16  switches: flows:  93730 92935 92575 91875 92179 91147 92282 90719 88629 90357 90109 90154 88809 90050 89609 89154  total = 24.238550 per ms 
03:05:55.486 16  switches: flows:  99504 95967 95679 94654 97840 95947 95491 94462 92771 92879 92753 92339 93131 95338 91842 93185  total = 25.187667 per ms 
03:06:55.587 16  switches: flows:  97302 96191 95012 94441 96402 95930 95586 95881 92135 92458 91700 91529 92079 91414 92094 93382  total = 25.017158 per ms 
03:07:55.688 16  switches: flows:  96994 95338 94967 93696 94386 95614 96264 92592 90872 91585 91530 92492 91139 91294 91453 91932  total = 24.827707 per ms 
03:08:55.788 16  switches: flows:  94202 93778 91497 91996 93265 91772 94313 90362 88485 91598 87276 89131 87331 92193 87264 89561  total = 24.193355 per ms 
03:09:55.889 16  switches: flows:  96506 95575 93499 92976 94371 93231 94619 92386 91147 89095 90316 90336 89500 91844 89604 92381  total = 24.582045 per ms 
03:10:55.990 16  switches: flows:  91930 92122 90838 88851 92758 90360 91135 88075 86313 85673 86208 87449 86879 89240 85959 88239  total = 23.660970 per ms 
03:11:56.091 16  switches: flows:  89835 87867 86351 84342 88640 86448 87588 85301 84968 83585 83434 85427 82940 87687 82605 85054  total = 22.829734 per ms 
03:12:56.192 16  switches: flows:  89770 91665 91336 87819 91302 90499 91107 87600 86018 86881 86265 86652 85187 86681 84767 86695  total = 23.464911 per ms 
03:13:56.294 16  switches: flows:  87881 87254 87916 85130 87574 86956 89903 85945 83753 86368 84505 85339 83316 83251 82450 84026  total = 22.821127 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 22821.13/25187.67/24064.96/8067.43 responses/s</msg>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-29T03:13:56.310425" elapsed="0.001047"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="PASS" start="2026-08-29T03:13:56.311961" elapsed="0.000070"/>
</return>
<status status="PASS" start="2026-08-29T03:13:56.311645" elapsed="0.000458"/>
</branch>
<status status="PASS" start="2026-08-29T03:13:56.311595" elapsed="0.000558"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="NOT RUN" start="2026-08-29T03:13:56.312336" elapsed="0.000050"/>
</return>
<status status="NOT RUN" start="2026-08-29T03:13:56.312265" elapsed="0.000178"/>
</branch>
<status status="NOT RUN" start="2026-08-29T03:13:56.312235" elapsed="0.000250"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-08-29T03:13:56.312545" elapsed="0.000026"/>
</return>
<kw name="Restore_Current_Ssh_Connection_From_Index" owner="SSHKeywords" type="TEARDOWN">
<kw name="Run Keyword And Return If" owner="BuiltIn">
<arg>${connection_index} is not None</arg>
<arg>SSHLibrary.Switch Connection</arg>
<arg>${connection_index}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-08-29T03:13:56.318126" elapsed="0.000725"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<arg>127.0.0.1</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-08-29T03:13:56.319153" elapsed="0.000348"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-08-29T03:13:56.319794" elapsed="0.000202"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-08-29T03:13:56.313192" elapsed="0.006913"/>
</kw>
<msg time="2026-08-29T03:13:56.320359" level="INFO">${output} = cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.171.205:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with 10...</msg>
<var>${output}</var>
<arg>${cbench_system}</arg>
<arg>${cbench_executable} -c ${ODL_SYSTEM_IP} ${cbench_args}</arg>
<arg>prompt_timeout=${test_timeout}</arg>
<arg>return_stdout=False</arg>
<arg>return_stderr=True</arg>
<doc>Reduces the common work of running a command on a remote system to a single higher level
robot keyword, taking care to log in with a public key and. The command given is written and the return value
depends on the passed argument values of return_stdout (default: True) and return_stderr (default: False).
At least one should be True, or the keyword will exit and FAIL. If both are True, the resulting return value
will be a two element list containing both. Otherwise the resulting return value is a string.
No test conditions are checked.</doc>
<status status="PASS" start="2026-08-29T03:03:49.640688" elapsed="606.679750"/>
</kw>
<status status="PASS" start="2026-08-29T03:03:49.640366" elapsed="606.680171"/>
</branch>
<status status="PASS" start="2026-08-29T03:03:49.640063" elapsed="606.680525"/>
</if>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-29T03:13:56.321526" level="INFO">cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.171.205:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with 100 unique source MACs per switch
   learning destination mac addresses before the test
   starting test with 5000 ms delay after features_reply
   ignoring first 1 "warmup" and last 0 "cooldown" loops
   debugging info is off
Master Thread: Creating thread-0! 
Thread-0: All switches initialized. Running at node 10.30.171.205. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
03:04:55.386 16  switches: flows:  93730 92935 92575 91875 92179 91147 92282 90719 88629 90357 90109 90154 88809 90050 89609 89154  total = 24.238550 per ms 
03:05:55.486 16  switches: flows:  99504 95967 95679 94654 97840 95947 95491 94462 92771 92879 92753 92339 93131 95338 91842 93185  total = 25.187667 per ms 
03:06:55.587 16  switches: flows:  97302 96191 95012 94441 96402 95930 95586 95881 92135 92458 91700 91529 92079 91414 92094 93382  total = 25.017158 per ms 
03:07:55.688 16  switches: flows:  96994 95338 94967 93696 94386 95614 96264 92592 90872 91585 91530 92492 91139 91294 91453 91932  total = 24.827707 per ms 
03:08:55.788 16  switches: flows:  94202 93778 91497 91996 93265 91772 94313 90362 88485 91598 87276 89131 87331 92193 87264 89561  total = 24.193355 per ms 
03:09:55.889 16  switches: flows:  96506 95575 93499 92976 94371 93231 94619 92386 91147 89095 90316 90336 89500 91844 89604 92381  total = 24.582045 per ms 
03:10:55.990 16  switches: flows:  91930 92122 90838 88851 92758 90360 91135 88075 86313 85673 86208 87449 86879 89240 85959 88239  total = 23.660970 per ms 
03:11:56.091 16  switches: flows:  89835 87867 86351 84342 88640 86448 87588 85301 84968 83585 83434 85427 82940 87687 82605 85054  total = 22.829734 per ms 
03:12:56.192 16  switches: flows:  89770 91665 91336 87819 91302 90499 91107 87600 86018 86881 86265 86652 85187 86681 84767 86695  total = 23.464911 per ms 
03:13:56.294 16  switches: flows:  87881 87254 87916 85130 87574 86956 89903 85945 83753 86368 84505 85339 83316 83251 82450 84026  total = 22.821127 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 22821.13/25187.67/24064.96/8067.43 responses/s</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-29T03:13:56.320910" elapsed="0.000796"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${output}</arg>
<arg>RESULT</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-08-29T03:13:56.322008" elapsed="0.000785"/>
</kw>
<kw name="Get Lines Containing String" owner="String">
<msg time="2026-08-29T03:13:56.323581" level="INFO">1 out of 23 lines matched.</msg>
<msg time="2026-08-29T03:13:56.323822" level="INFO">${result_line} = RESULT: 16 switches 9 tests min/max/avg/stdev = 22821.13/25187.67/24064.96/8067.43 responses/s</msg>
<var>${result_line}</var>
<arg>${output}</arg>
<arg>RESULT</arg>
<doc>Returns lines of the given ``string`` that contain the ``pattern``.</doc>
<status status="PASS" start="2026-08-29T03:13:56.323123" elapsed="0.000752"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-08-29T03:13:56.324749" level="INFO">@{results_list} = [ RESULT: | 16 | switches | 9 | tests | min/max/avg/stdev | = | 22821.13/25187.67/24064.96/8067.43 | responses/s ]</msg>
<var>@{results_list}</var>
<arg>${result_line}</arg>
<doc>Splits the ``string`` using ``separator`` as a delimiter string.</doc>
<status status="PASS" start="2026-08-29T03:13:56.324187" elapsed="0.000616"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-29T03:13:56.329781" level="INFO">min/max/avg/stdev</msg>
<arg>${results_list[5]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-29T03:13:56.325095" elapsed="0.004801"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-29T03:13:56.334806" level="INFO">22821.13/25187.67/24064.96/8067.43</msg>
<arg>${results_list[7]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-29T03:13:56.330196" elapsed="0.004722"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-08-29T03:13:56.339945" level="INFO">@{result_name_list} = [ min | max | avg | stdev ]</msg>
<var>@{result_name_list}</var>
<arg>${results_list[5]}</arg>
<arg>/</arg>
<doc>Splits the ``string`` using ``separator`` as a delimiter string.</doc>
<status status="PASS" start="2026-08-29T03:13:56.335225" elapsed="0.004775"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-08-29T03:13:56.345311" level="INFO">@{result_value_list} = [ 22821.13 | 25187.67 | 24064.96 | 8067.43 ]</msg>
<var>@{result_value_list}</var>
<arg>${results_list[7]}</arg>
<arg>/</arg>
<doc>Splits the ``string`` using ``separator`` as a delimiter string.</doc>
<status status="PASS" start="2026-08-29T03:13:56.340410" elapsed="0.004985"/>
</kw>
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-08-29T03:13:56.346588" level="INFO">Length is 4.</msg>
<msg time="2026-08-29T03:13:56.346830" level="INFO">${num_stats} = 4</msg>
<var>${num_stats}</var>
<arg>${result_name_list}</arg>
<doc>Returns and logs the length of the given item as an integer.</doc>
<status status="PASS" start="2026-08-29T03:13:56.345784" elapsed="0.001099"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-29T03:13:56.354197" level="INFO">min :: 22821.13</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-29T03:13:56.347721" elapsed="0.006553"/>
</kw>
<var name="${i}">0</var>
<status status="PASS" start="2026-08-29T03:13:56.347412" elapsed="0.006906"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-29T03:13:56.360174" level="INFO">max :: 25187.67</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-29T03:13:56.354623" elapsed="0.005622"/>
</kw>
<var name="${i}">1</var>
<status status="PASS" start="2026-08-29T03:13:56.354447" elapsed="0.005841"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-29T03:13:56.366011" level="INFO">avg :: 24064.96</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-29T03:13:56.360573" elapsed="0.005509"/>
</kw>
<var name="${i}">2</var>
<status status="PASS" start="2026-08-29T03:13:56.360411" elapsed="0.005714"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-29T03:13:56.371825" level="INFO">stdev :: 8067.43</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-29T03:13:56.366404" elapsed="0.005491"/>
</kw>
<var name="${i}">3</var>
<status status="PASS" start="2026-08-29T03:13:56.366229" elapsed="0.005709"/>
</iter>
<var>${i}</var>
<value>0</value>
<value>${num_stats}</value>
<status status="PASS" start="2026-08-29T03:13:56.347014" elapsed="0.024960"/>
</for>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-08-29T03:13:56.376921" level="INFO">${min} = 22821.13</msg>
<var>${min}</var>
<arg>${result_value_list[${0}]}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-08-29T03:13:56.372176" elapsed="0.004779"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-08-29T03:13:56.381905" level="INFO">${max} = 25187.67</msg>
<var>${max}</var>
<arg>${result_value_list[${1}]}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-08-29T03:13:56.377151" elapsed="0.004787"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-08-29T03:13:56.386997" level="INFO">${average} = 24064.96</msg>
<var>${average}</var>
<arg>${result_value_list[${2}]}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-08-29T03:13:56.382130" elapsed="0.004901"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-08-29T03:13:56.391868" level="INFO">${stdev} = 8067.43</msg>
<var>${stdev}</var>
<arg>${result_value_list[${3}]}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-08-29T03:13:56.387234" elapsed="0.004658"/>
</kw>
<kw name="Get Time" owner="BuiltIn">
<msg time="2026-08-29T03:13:56.392391" level="INFO">${date} = 2026-08-29 03:13:56</msg>
<var>${date}</var>
<arg>d,m,s</arg>
<doc>Returns the given time in the requested format.</doc>
<status status="PASS" start="2026-08-29T03:13:56.392043" elapsed="0.000373"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-08-29T03:13:56.392950" level="INFO">CBench Result: 2026-08-29 03:13:56,-m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633,22821.13,25187.67,24064.96,8067.43</msg>
<arg>CBench Result: ${date},${cbench_args},${min},${max},${average},${stdev}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-08-29T03:13:56.392549" elapsed="0.000452"/>
</kw>
<kw name="Log Results And Determine Status">
<kw name="Append To File" owner="OperatingSystem">
<msg time="2026-08-29T03:13:56.393992" level="INFO" html="true">Appended to file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-cbench-only-chromium/bug.csv"&gt;/w/workspace/openflowplugin-csit-1node-cbench-only-chromium/bug.csv&lt;/a&gt;'.</msg>
<arg>${output_file}</arg>
<arg>${min},${max},${average}\n</arg>
<doc>Appends the given content to the specified file.</doc>
<status status="PASS" start="2026-08-29T03:13:56.393557" elapsed="0.000497"/>
</kw>
<kw name="Should Be True" owner="BuiltIn">
<arg>${average} &gt; ${threshold}</arg>
<arg>${average} flow_mods per/sec did not exceed threshold of ${threshold}</arg>
<doc>Fails if the given condition is not true.</doc>
<status status="PASS" start="2026-08-29T03:13:56.394190" elapsed="0.000429"/>
</kw>
<arg>${min}</arg>
<arg>${max}</arg>
<arg>${average}</arg>
<arg>${average_threshold}</arg>
<arg>${output_filename}</arg>
<status status="PASS" start="2026-08-29T03:13:56.393128" elapsed="0.001565"/>
</kw>
<arg>-m ${duration_in_ms} -M ${num_of_unique_macs} -S ${switch_count} -l ${loops} -D ${start_delay} -p ${of_port}</arg>
<arg>${latency_threshold}</arg>
<arg>bug.csv</arg>
<status status="PASS" start="2026-08-29T03:03:49.639036" elapsed="606.755710"/>
</kw>
<kw name="Sleep" owner="BuiltIn">
<msg time="2026-08-29T03:13:56.395163" level="INFO">Slept 0 seconds.</msg>
<arg>${test_delay}</arg>
<doc>Pauses the test executed for the given time.</doc>
<status status="PASS" start="2026-08-29T03:13:56.394879" elapsed="0.000336"/>
</kw>
<kw name="Report Failure Due To Bug" owner="Utils" type="TEARDOWN">
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-08-29T03:13:56.396350" level="INFO">${test_skipped} = False</msg>
<var>${test_skipped}</var>
<arg>len(re.findall('SKIPPED', """${TEST_MESSAGE}""")) &gt; 0</arg>
<arg>modules=re</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-08-29T03:13:56.395889" elapsed="0.000498"/>
</kw>
<if>
<branch type="IF" condition="('${TEST_STATUS}' != 'FAIL') or ${test_skipped}">
<return>
<status status="PASS" start="2026-08-29T03:13:56.396588" elapsed="0.000031"/>
</return>
<status status="PASS" start="2026-08-29T03:13:56.396455" elapsed="0.000192"/>
</branch>
<status status="PASS" start="2026-08-29T03:13:56.396438" elapsed="0.000254"/>
</if>
<kw name="Comment" owner="BuiltIn">
<arg>Jira tickets are {PROJECT}-{NUMBER} while Bugzilla tickets are {NUMBER}</arg>
<doc>Displays the given messages in the log file as keyword arguments.</doc>
<status status="NOT RUN" start="2026-08-29T03:13:56.396827" elapsed="0.000019"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<var>${match}</var>
<arg>Should Contain</arg>
<arg>${number}</arg>
<arg>-</arg>
<doc>Runs the specified keyword and returns the status as a Boolean value.</doc>
<status status="NOT RUN" start="2026-08-29T03:13:56.396967" elapsed="0.000017"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<var>${bug_url}</var>
<arg>${match}</arg>
<arg>https://jira.opendaylight.org/browse/${number}</arg>
<arg>https://bugs.opendaylight.org/show_bug.cgi?id=${number}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="NOT RUN" start="2026-08-29T03:13:56.397108" elapsed="0.000017"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<var>${msg}</var>
<arg>This test fails due to ${bug_url}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="NOT RUN" start="2026-08-29T03:13:56.397241" elapsed="0.000016"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${newline}</var>
<arg>chr(10)</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-08-29T03:13:56.397425" elapsed="0.000019"/>
</kw>
<kw name="Set Test Message" owner="BuiltIn">
<arg>${msg}${newline}${newline}${TEST_MESSAGE}</arg>
<doc>Sets message for the current test case.</doc>
<status status="NOT RUN" start="2026-08-29T03:13:56.397560" elapsed="0.000016"/>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${msg}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-08-29T03:13:56.397706" elapsed="0.000022"/>
</kw>
<if>
<branch type="IF" condition="&quot;${include_bug_in_tags}&quot;==&quot;True&quot;">
<kw name="Set Tags" owner="BuiltIn">
<arg>${bug_url}</arg>
<doc>Adds given ``tags`` for the current test or all tests in a suite.</doc>
<status status="NOT RUN" start="2026-08-29T03:13:56.397904" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-08-29T03:13:56.397782" elapsed="0.000173"/>
</branch>
<status status="NOT RUN" start="2026-08-29T03:13:56.397768" elapsed="0.000208"/>
</if>
<arg>6176</arg>
<doc>Report that a test failed due to a known Bugzilla bug whose
number is provided as an argument.
Not FAILED (incl. SKIPPED) test are not reported.
This keyword must be used in the [Teardown] setting of the affected test
or as the first line of the test if FastFail module is not being
used. It reports the URL of the bug on console and also puts it
into the Robot log file.</doc>
<status status="PASS" start="2026-08-29T03:13:56.395573" elapsed="0.002451"/>
</kw>
<doc>cbench executed in latency mode to see if controller is healthy</doc>
<tag>cbench</tag>
<tag>latency</tag>
<timeout value="15 minutes"/>
<status status="PASS" start="2026-08-29T03:03:49.637886" elapsed="606.760180"/>
</test>
<doc>Cbench Latency and Throughput tests can be run from an external
cbench.
If cbench is run with a medium number of switches or higher (e.g. 32+)
the normal openflow operations seem to break.
BUG: https://bugs.opendaylight.org/show_bug.cgi?id=2897</doc>
<status status="PASS" start="2026-08-29T02:43:33.657065" elapsed="1822.741582"/>
</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>
