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

[?1h=[90m~[0m                                                                                [?2004hopendaylight-user</msg>
<arg>${KARAF_USER}</arg>
<arg>${KARAF_PASSWORD}</arg>
<arg>loglevel=${loglevel}</arg>
<doc>Logs into the SSH server with the given ``username`` and ``password``.</doc>
<status status="PASS" start="2026-09-08T00:48:52.375711" elapsed="0.800600"/>
</kw>
<kw name="Write" owner="SSHLibrary">
<msg time="2026-09-08T00:48:53.225170" level="INFO">@root&gt;log:set ERROR</msg>
<arg>${cmd}</arg>
<doc>Writes the given ``text`` on the remote machine and appends a newline.</doc>
<status status="PASS" start="2026-09-08T00:48:53.176528" elapsed="0.048794"/>
</kw>
<kw name="Read Until Regexp" owner="SSHLibrary">
<msg time="2026-09-08T00:48:53.227796" level="INFO">[?1l&gt;[?2004l[?1h=[90m~[0m                                                                                [?2004hopendaylight-user@root&gt;</msg>
<msg time="2026-09-08T00:48:53.227945" level="INFO">${output} = [?1l&gt;[?2004l[?1h=[90m~[0m                                                                                [?2004hopendaylight-user@root&gt;</msg>
<var>${output}</var>
<arg>${KARAF_PROMPT}</arg>
<doc>Consumes and returns the server output until a match to ``regexp`` is found.</doc>
<status status="PASS" start="2026-09-08T00:48:53.225622" elapsed="0.002364"/>
</kw>
<kw name="Write Bare" owner="SSHLibrary">
<arg>logout\n</arg>
<doc>Writes the given ``text`` on the remote machine without appending a newline.</doc>
<status status="PASS" start="2026-09-08T00:48:53.228221" elapsed="0.000280"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-09-08T00:48:53.228709" elapsed="0.000301"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-08T00:48:53.229635" level="INFO">[?1l&gt;[?2004l[?1h=[90m~[0m                                                                                [?2004hopendaylight-user@root&gt;</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-08T00:48:53.229230" elapsed="0.000477"/>
</kw>
<return>
<value>${output}</value>
<status status="PASS" start="2026-09-08T00:48:53.229772" elapsed="0.000060"/>
</return>
<arg>log:set ${log_level}</arg>
<doc>Will execute the given ${cmd} by ssh'ing to the karaf console running on 10.30.170.149
Note that this keyword will open&amp;close new SSH connection, without switching back to previously current session.</doc>
<status status="PASS" start="2026-09-08T00:48:52.374230" elapsed="0.855764"/>
</kw>
<arg>3x</arg>
<arg>1s</arg>
<arg>KarafKeywords.Issue Command On Karaf Console</arg>
<arg>log:set ${log_level}</arg>
<doc>Runs the specified keyword and retries if it fails.</doc>
<status status="PASS" start="2026-09-08T00:48:52.370943" elapsed="0.859131"/>
</kw>
<kw name="Append To File" owner="OperatingSystem">
<msg time="2026-09-08T00:48:53.230760" level="INFO" html="true">Appended to file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-cbench-only-vanadium/latency.csv"&gt;/w/workspace/openflowplugin-csit-1node-cbench-only-vanadium/latency.csv&lt;/a&gt;'.</msg>
<arg>${latency_results_file}</arg>
<arg>LATENCY_MIN,LATENCY_MAX,LATENCY_AVERAGE\n</arg>
<doc>Appends the given content to the specified file.</doc>
<status status="PASS" start="2026-09-08T00:48:53.230344" elapsed="0.000489"/>
</kw>
<kw name="Append To File" owner="OperatingSystem">
<msg time="2026-09-08T00:48:53.231403" level="INFO" html="true">Appended to file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-cbench-only-vanadium/throughput.csv"&gt;/w/workspace/openflowplugin-csit-1node-cbench-only-vanadium/throughput.csv&lt;/a&gt;'.</msg>
<arg>${throughput_results_file}</arg>
<arg>THROUGHPUT_MIN,THROUGHPUT_MAX,THROUGHPUT_AVERAGE\n</arg>
<doc>Appends the given content to the specified file.</doc>
<status status="PASS" start="2026-09-08T00:48:53.231053" elapsed="0.000431"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-09-08T00:48:53.232285" level="INFO">${duration_in_ms} = 60000</msg>
<var>${duration_in_ms}</var>
<arg>${duration_in_secs} * 1000</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-09-08T00:48:53.231688" elapsed="0.000634"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-09-08T00:48:53.232986" level="INFO">${duration_in_ms} = 60000</msg>
<arg>${duration_in_ms}</arg>
<doc>Makes a variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-09-08T00:48:53.232541" elapsed="0.000501"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-09-08T00:48:53.233823" level="INFO">${test_timeout} = 900.0</msg>
<var>${test_timeout}</var>
<arg>(${loops} * ${duration_in_secs}) * 1.5</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-09-08T00:48:53.233322" elapsed="0.000535"/>
</kw>
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-09-08T00:48:53.234532" level="INFO">${test_timeout} = 900.0</msg>
<arg>${test_timeout}</arg>
<doc>Makes a variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-09-08T00:48:53.234088" elapsed="0.000498"/>
</kw>
<if>
<branch type="IF" condition="&quot;${cbench_system}&quot; == &quot;localhost&quot;">
<kw name="File Should Exist" owner="OperatingSystem">
<arg>${cbench_executable}</arg>
<doc>Fails unless the given ``path`` points to an existing file.</doc>
<status status="NOT RUN" start="2026-09-08T00:48:53.234989" elapsed="0.000028"/>
</kw>
<status status="NOT RUN" start="2026-09-08T00:48:53.234692" elapsed="0.000368"/>
</branch>
<branch type="ELSE">
<kw name="Verify File Exists On Remote System" owner="Utils">
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-09-08T00:48:53.241167" level="INFO">${conn_id} = 2</msg>
<var>${conn_id}</var>
<arg>${system}</arg>
<arg>prompt=${prompt}</arg>
<arg>timeout=${prompt_timeout}</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-09-08T00:48:53.240591" elapsed="0.000613"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-09-08T00:48:53.242517" level="INFO">Length is 0.</msg>
<msg time="2026-09-08T00:48:53.242640" level="INFO">${pwd_length} = 0</msg>
<var>${pwd_length}</var>
<arg>${password}</arg>
<doc>Returns and logs the length of the given item as an integer.</doc>
<status status="PASS" start="2026-09-08T00:48:53.241946" elapsed="0.000735"/>
</kw>
<kw name="Run Keyword And Return If" owner="BuiltIn">
<arg>${pwd_length} &gt; 0</arg>
<arg>SSHLibrary.Login</arg>
<arg>${user}</arg>
<arg>${password}</arg>
<arg>delay=${delay}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-09-08T00:48:53.242895" elapsed="0.000591"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-09-08T00:48:53.244872" level="INFO">Logging into '10.30.171.211:22' as 'jenkins'.</msg>
<msg time="2026-09-08T00:48:53.753829" level="INFO">Read output: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-187-generic x86_64)

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

 System information as of Tue Sep  8 00:48:21 UTC 2026

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


Expanded Security Maintenance for Applications is not enabled.

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

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


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


[?2004h[jenkins@releng-63164-392-1-mininet-ovs-217-0 ~]&gt;</msg>
<arg>${user}</arg>
<arg>${USER_HOME}/.ssh/${SSH_KEY}</arg>
<arg>${KEYFILE_PASS}</arg>
<arg>delay=${delay}</arg>
<doc>Logs into the SSH server using key-based authentication.</doc>
<status status="PASS" start="2026-09-08T00:48:53.244212" elapsed="0.509763"/>
</kw>
<msg time="2026-09-08T00:48:53.754062" level="INFO">Returning from the enclosing user keyword.</msg>
<arg>SSHLibrary.Login With Public Key</arg>
<arg>${user}</arg>
<arg>${USER_HOME}/.ssh/${SSH_KEY}</arg>
<arg>${KEYFILE_PASS}</arg>
<arg>delay=${delay}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-09-08T00:48:53.243714" elapsed="0.510448"/>
</kw>
<arg>${user}</arg>
<arg>${password}</arg>
<doc>On active SSH session: if given non-empty password, do Login, else do Login With Public Key.</doc>
<status status="PASS" start="2026-09-08T00:48:53.241476" elapsed="0.512798"/>
</kw>
<kw name="File Should Exist" owner="SSHLibrary">
<msg time="2026-09-08T00:48:53.765285" level="INFO">[chan 1] Opened sftp connection (server version 3)</msg>
<arg>${file}</arg>
<doc>Fails if the given ``path`` does NOT point to an existing file.</doc>
<status status="PASS" start="2026-09-08T00:48:53.754475" elapsed="0.012611"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-09-08T00:48:53.767269" elapsed="0.000247"/>
</kw>
<arg>${cbench_system}</arg>
<arg>${cbench_executable}</arg>
<doc>Will create connection with public key and will PASS if the given ${file} exists,
otherwise will FAIL</doc>
<status status="PASS" start="2026-09-08T00:48:53.239873" elapsed="0.527698"/>
</kw>
<status status="PASS" start="2026-09-08T00:48:53.235351" elapsed="0.532253"/>
</branch>
<status status="PASS" start="2026-09-08T00:48:53.234660" elapsed="0.532975"/>
</if>
<kw name="Should Be True" owner="BuiltIn">
<arg>${loops} &gt;= 2</arg>
<arg>If number of loops is less than 2, cbench will not run</arg>
<doc>Fails if the given condition is not true.</doc>
<status status="PASS" start="2026-09-08T00:48:53.767776" elapsed="0.000471"/>
</kw>
<kw name="Verify_Feature_Is_Installed" owner="KarafKeywords">
<if>
<branch type="IF" condition="'${IS_KARAF_APPL}' == 'False'">
<return>
<value>Not A Karaf App</value>
<status status="NOT RUN" start="2026-09-08T00:48:53.772197" elapsed="0.000016"/>
</return>
<status status="NOT RUN" start="2026-09-08T00:48:53.772067" elapsed="0.000176"/>
</branch>
<status status="PASS" start="2026-09-08T00:48:53.772046" elapsed="0.000219"/>
</if>
<kw name="Issue_Command_On_Karaf_Console" owner="KarafKeywords">
<if>
<branch type="IF" condition="'${IS_KARAF_APPL}' == 'False'">
<return>
<value>Not A Karaf App</value>
<status status="NOT RUN" start="2026-09-08T00:48:53.775628" elapsed="0.000013"/>
</return>
<status status="NOT RUN" start="2026-09-08T00:48:53.775526" elapsed="0.000144"/>
</branch>
<status status="PASS" start="2026-09-08T00:48:53.775508" elapsed="0.000182"/>
</if>
<kw name="Open Connection" owner="SSHLibrary">
<arg>${controller}</arg>
<arg>port=${karaf_port}</arg>
<arg>prompt=${KARAF_PROMPT_LOGIN}</arg>
<arg>timeout=${timeout}</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-09-08T00:48:53.775808" elapsed="0.000416"/>
</kw>
<kw name="Login" owner="SSHLibrary">
<msg time="2026-09-08T00:48:53.776581" level="INFO">Logging into '10.30.170.149:8101' as 'karaf'.</msg>
<msg time="2026-09-08T00:48:53.980776" level="INFO">Read output: [33m                                                                                           
[33m    ________                       ________                .__  .__       .__     __       
[33m    \_____  \ ______   ____   ____ \______ \ _____  ___.__.|  | |__| ____ |  |___/  |_     
[33m     /   |   \\____ \_/ __ \ /    \ |    |  \\__  \&lt;   |  ||  | |  |/ ___\|  |  \   __\    
[33m    /    |    \  |_&gt; &gt;  ___/|   |  \|    `   \/ __ \\___  ||  |_|  / /_/  &gt;   Y  \  |      
[33m    \_______  /   __/ \___  &gt;___|  /_______  (____  / ____||____/__\___  /|___|  /__|      
[33m            \/|__|        \/     \/        \/     \/\/            /_____/      \/          
[33m                                                                                           

Hit '[1m&lt;tab&gt;[0m' for a list of available commands
and '[1m[cmd] --help[0m' for help on a specific command.
Hit '[1m&lt;ctrl-d&gt;[0m' or type '[1msystem:shutdown[0m' or '[1mlogout[0m' to shutdown OpenDaylight.

[?1h=[90m~[0m                                                                                [?2004hopendaylight-user</msg>
<arg>${KARAF_USER}</arg>
<arg>${KARAF_PASSWORD}</arg>
<arg>loglevel=${loglevel}</arg>
<doc>Logs into the SSH server with the given ``username`` and ``password``.</doc>
<status status="PASS" start="2026-09-08T00:48:53.776354" elapsed="0.204516"/>
</kw>
<kw name="Write" owner="SSHLibrary">
<msg time="2026-09-08T00:48:54.065247" level="INFO">@root&gt;feature:list -i | 0[C 0g[Krep odl-openflowplugin-drop-test</msg>
<arg>${cmd}</arg>
<doc>Writes the given ``text`` on the remote machine and appends a newline.</doc>
<status status="PASS" start="2026-09-08T00:48:53.981057" elapsed="0.084250"/>
</kw>
<kw name="Read Until Regexp" owner="SSHLibrary">
<msg time="2026-09-08T00:48:54.107543" level="INFO">[?1l&gt;[?2004l[31;1modl-openflowplugin-drop-test[0m                                    x 0.21.5           x x        x Started x [31;1modl-openflowplugin-drop-test[0m                                    x OpenDaylight :: Openflow Plugin :: Drop Test
[?1h=[90m~[0m                                                                                [?2004hopendaylight-user@root&gt;</msg>
<msg time="2026-09-08T00:48:54.107699" level="INFO">${output} = [?1l&gt;[?2004l[31;1modl-openflowplugin-drop-test[0m                                    x 0.21.5           x x        x Started x [31;1modl-openflowplugin-drop-test[0m                     ...</msg>
<var>${output}</var>
<arg>${KARAF_PROMPT}</arg>
<doc>Consumes and returns the server output until a match to ``regexp`` is found.</doc>
<status status="PASS" start="2026-09-08T00:48:54.065440" elapsed="0.042291"/>
</kw>
<kw name="Write Bare" owner="SSHLibrary">
<arg>logout\n</arg>
<doc>Writes the given ``text`` on the remote machine without appending a newline.</doc>
<status status="PASS" start="2026-09-08T00:48:54.107859" elapsed="0.000179"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-09-08T00:48:54.108185" elapsed="0.000150"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-08T00:48:54.108719" level="INFO">[?1l&gt;[?2004l[31;1modl-openflowplugin-drop-test[0m                                    x 0.21.5           x x        x Started x [31;1modl-openflowplugin-drop-test[0m                                    x OpenDaylight :: Openflow Plugin :: Drop Test
[?1h=[90m~[0m                                                                                [?2004hopendaylight-user@root&gt;</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-08T00:48:54.108456" elapsed="0.000313"/>
</kw>
<return>
<value>${output}</value>
<status status="PASS" start="2026-09-08T00:48:54.108810" elapsed="0.000044"/>
</return>
<msg time="2026-09-08T00:48:54.108995" level="INFO">${output} = [?1l&gt;[?2004l[31;1modl-openflowplugin-drop-test[0m                                    x 0.21.5           x x        x Started x [31;1modl-openflowplugin-drop-test[0m                     ...</msg>
<var>${output}</var>
<arg>feature:list -i | grep ${feature_name}</arg>
<arg>${controller}</arg>
<arg>${karaf_port}</arg>
<doc>Will execute the given ${cmd} by ssh'ing to the karaf console running on 10.30.170.149
Note that this keyword will open&amp;close new SSH connection, without switching back to previously current session.</doc>
<status status="PASS" start="2026-09-08T00:48:53.775212" elapsed="0.333812"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${output}</arg>
<arg>${feature_name}</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-08T00:48:54.109171" elapsed="0.000486"/>
</kw>
<return>
<value>${output}</value>
<status status="PASS" start="2026-09-08T00:48:54.109707" elapsed="0.000037"/>
</return>
<arg>odl-openflowplugin-drop-test</arg>
<doc>Will Succeed if the given ${feature_name} is found in the output of "feature:list -i"</doc>
<status status="PASS" start="2026-09-08T00:48:53.771789" elapsed="0.338055"/>
</kw>
<kw name="Issue_Command_On_Karaf_Console" owner="KarafKeywords">
<if>
<branch type="IF" condition="'${IS_KARAF_APPL}' == 'False'">
<return>
<value>Not A Karaf App</value>
<status status="NOT RUN" start="2026-09-08T00:48:54.113215" elapsed="0.000013"/>
</return>
<status status="NOT RUN" start="2026-09-08T00:48:54.113087" elapsed="0.000169"/>
</branch>
<status status="PASS" start="2026-09-08T00:48:54.113066" elapsed="0.000210"/>
</if>
<kw name="Open Connection" owner="SSHLibrary">
<arg>${controller}</arg>
<arg>port=${karaf_port}</arg>
<arg>prompt=${KARAF_PROMPT_LOGIN}</arg>
<arg>timeout=${timeout}</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-09-08T00:48:54.113394" elapsed="0.000385"/>
</kw>
<kw name="Login" owner="SSHLibrary">
<msg time="2026-09-08T00:48:54.114176" level="INFO">Logging into '10.30.170.149:8101' as 'karaf'.</msg>
<msg time="2026-09-08T00:48:54.334586" level="INFO">Read output: [33m                                                                                           
[33m    ________                       ________                .__  .__       .__     __       
[33m    \_____  \ ______   ____   ____ \______ \ _____  ___.__.|  | |__| ____ |  |___/  |_     
[33m     /   |   \\____ \_/ __ \ /    \ |    |  \\__  \&lt;   |  ||  | |  |/ ___\|  |  \   __\    
[33m    /    |    \  |_&gt; &gt;  ___/|   |  \|    `   \/ __ \\___  ||  |_|  / /_/  &gt;   Y  \  |      
[33m    \_______  /   __/ \___  &gt;___|  /_______  (____  / ____||____/__\___  /|___|  /__|      
[33m            \/|__|        \/     \/        \/     \/\/            /_____/      \/          
[33m                                                                                           

Hit '[1m&lt;tab&gt;[0m' for a list of available commands
and '[1m[cmd] --help[0m' for help on a specific command.
Hit '[1m&lt;ctrl-d&gt;[0m' or type '[1msystem:shutdown[0m' or '[1mlogout[0m' to shutdown OpenDaylight.

[?1h=[90m~[0m                                                                                [?2004hopendaylight-user</msg>
<arg>${KARAF_USER}</arg>
<arg>${KARAF_PASSWORD}</arg>
<arg>loglevel=${loglevel}</arg>
<doc>Logs into the SSH server with the given ``username`` and ``password``.</doc>
<status status="PASS" start="2026-09-08T00:48:54.113925" elapsed="0.220738"/>
</kw>
<kw name="Write" owner="SSHLibrary">
<msg time="2026-09-08T00:48:54.371191" level="INFO">@root&gt;dropallpacketsrpc on</msg>
<arg>${cmd}</arg>
<doc>Writes the given ``text`` on the remote machine and appends a newline.</doc>
<status status="PASS" start="2026-09-08T00:48:54.334802" elapsed="0.036443"/>
</kw>
<kw name="Read Until Regexp" owner="SSHLibrary">
<msg time="2026-09-08T00:48:54.373196" level="INFO">[?1l&gt;[?2004lDropAllFlows transitions to on
[?1h=[90m~[0m                                                                                [?2004hopendaylight-user@root&gt;</msg>
<msg time="2026-09-08T00:48:54.373291" level="INFO">${output} = [?1l&gt;[?2004lDropAllFlows transitions to on
[?1h=[90m~[0m                                                                                [?2004hopendaylight-user@root&gt;</msg>
<var>${output}</var>
<arg>${KARAF_PROMPT}</arg>
<doc>Consumes and returns the server output until a match to ``regexp`` is found.</doc>
<status status="PASS" start="2026-09-08T00:48:54.371374" elapsed="0.001944"/>
</kw>
<kw name="Write Bare" owner="SSHLibrary">
<arg>logout\n</arg>
<doc>Writes the given ``text`` on the remote machine without appending a newline.</doc>
<status status="PASS" start="2026-09-08T00:48:54.373439" elapsed="0.000158"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-09-08T00:48:54.373729" elapsed="0.000142"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-08T00:48:54.374328" level="INFO">[?1l&gt;[?2004lDropAllFlows transitions to on
[?1h=[90m~[0m                                                                                [?2004hopendaylight-user@root&gt;</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-08T00:48:54.374052" elapsed="0.000322"/>
</kw>
<return>
<value>${output}</value>
<status status="PASS" start="2026-09-08T00:48:54.374416" elapsed="0.000034"/>
</return>
<arg>dropallpacketsrpc on</arg>
<doc>Will execute the given ${cmd} by ssh'ing to the karaf console running on 10.30.170.149
Note that this keyword will open&amp;close new SSH connection, without switching back to previously current session.</doc>
<status status="PASS" start="2026-09-08T00:48:54.112797" elapsed="0.261742"/>
</kw>
<status status="PASS" start="2026-09-08T00:48:52.369291" elapsed="2.005302"/>
</kw>
<test id="s1-t1" name="Cbench Latency Test" line="37">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-08T00:48:54.376567" level="INFO">Cbench tests using 10 iterations of 60 second tests. Switch Count: 16. Unique MACS to cycle: 100</msg>
<arg>Cbench tests using ${loops} iterations of ${duration_in_secs} second tests. Switch Count: ${switch_count}. Unique MACS to cycle: ${num_of_unique_macs}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-08T00:48:54.375499" elapsed="0.001132"/>
</kw>
<kw name="Run Cbench And Log Results">
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-09-08T00:48:54.378191" level="INFO">${output_filename} = latency.csv</msg>
<arg>${output_filename}</arg>
<doc>Makes a variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-09-08T00:48:54.377806" elapsed="0.000429"/>
</kw>
<if>
<branch type="IF" condition="&quot;${cbench_system}&quot; == &quot;localhost&quot;">
<kw name="Run" owner="OperatingSystem">
<var>${output}</var>
<arg>${cbench_executable} -c ${ODL_SYSTEM_IP} ${cbench_args}</arg>
<doc>_This keyword is considered deprecated. Use the
[http://robotframework.org/robotframework/latest/libraries/Process.html|
Process] library instead._</doc>
<status status="NOT RUN" start="2026-09-08T00:48:54.378528" elapsed="0.000021"/>
</kw>
<status status="NOT RUN" start="2026-09-08T00:48:54.378310" elapsed="0.000273"/>
</branch>
<branch type="ELSE">
<kw name="Run Command On Remote System" owner="Utils">
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot; and &quot;${return_stderr}&quot;!=&quot;True&quot;">
<kw name="Fail" owner="BuiltIn">
<arg>At least one of {return_stdout} or {return_stderr} args should be set to True</arg>
<doc>Fails the test with the given message and optionally alters its tags.</doc>
<status status="NOT RUN" start="2026-09-08T00:48:54.381293" elapsed="0.000019"/>
</kw>
<status status="NOT RUN" start="2026-09-08T00:48:54.381028" elapsed="0.000317"/>
</branch>
<status status="PASS" start="2026-09-08T00:48:54.381011" elapsed="0.000363"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-09-08T00:48:54.381696" level="INFO">index=None
host=None
alias=None
port=22
timeout=3 seconds
newline=

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

prompt=None
term_type=vt100
width=80
height=24
path_separator=/
encoding=utf8
escape_ansi=False
encoding_errors=strict</msg>
<var>${current_ssh_connection}</var>
<doc>Returns information about the connection.</doc>
<status status="PASS" start="2026-09-08T00:48:54.381507" elapsed="0.000327"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-08T00:48:54.382404" level="INFO">Attempting to execute command "/usr/local/bin/cbench -c 10.30.170.149 -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633" on remote system "10.30.171.211" by user "jenkins" with keyfile pass "any" and prompt "&gt;" and password ""</msg>
<arg>Attempting to execute command "${cmd}" on remote system "${system}" by user "${user}" with keyfile pass "${keyfile_pass}" and prompt "${prompt}" and password "${password}"</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-08T00:48:54.381974" elapsed="0.000493"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-09-08T00:48:54.383041" level="INFO">${conn_id} = 5</msg>
<var>${conn_id}</var>
<arg>${system}</arg>
<arg>prompt=${prompt}</arg>
<arg>timeout=${prompt_timeout}</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-09-08T00:48:54.382597" elapsed="0.000469"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-09-08T00:48:54.383930" level="INFO">Length is 0.</msg>
<msg time="2026-09-08T00:48:54.384015" level="INFO">${pwd_length} = 0</msg>
<var>${pwd_length}</var>
<arg>${password}</arg>
<doc>Returns and logs the length of the given item as an integer.</doc>
<status status="PASS" start="2026-09-08T00:48:54.383620" elapsed="0.000418"/>
</kw>
<kw name="Run Keyword And Return If" owner="BuiltIn">
<arg>${pwd_length} &gt; 0</arg>
<arg>SSHLibrary.Login</arg>
<arg>${user}</arg>
<arg>${password}</arg>
<arg>delay=${delay}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-09-08T00:48:54.384184" elapsed="0.000317"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-09-08T00:48:54.385319" level="INFO">Logging into '10.30.171.211:22' as 'jenkins'.</msg>
<msg time="2026-09-08T00:48:54.769120" level="INFO">Read output: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-187-generic x86_64)

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

 System information as of Tue Sep  8 00:48:21 UTC 2026

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


Expanded Security Maintenance for Applications is not enabled.

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

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


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


Last login: Tue Sep  8 00:48:53 2026 from 10.30.171.183
[?2004h[jenkins@releng-63164-392-1-mininet-ovs-217-0 ~]&gt;</msg>
<arg>${user}</arg>
<arg>${USER_HOME}/.ssh/${SSH_KEY}</arg>
<arg>${KEYFILE_PASS}</arg>
<arg>delay=${delay}</arg>
<doc>Logs into the SSH server using key-based authentication.</doc>
<status status="PASS" start="2026-09-08T00:48:54.384976" elapsed="0.384277"/>
</kw>
<msg time="2026-09-08T00:48:54.769321" level="INFO">Returning from the enclosing user keyword.</msg>
<arg>SSHLibrary.Login With Public Key</arg>
<arg>${user}</arg>
<arg>${USER_HOME}/.ssh/${SSH_KEY}</arg>
<arg>${KEYFILE_PASS}</arg>
<arg>delay=${delay}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-09-08T00:48:54.384643" elapsed="0.384756"/>
</kw>
<arg>${user}</arg>
<arg>${password}</arg>
<doc>On active SSH session: if given non-empty password, do Login, else do Login With Public Key.</doc>
<status status="PASS" start="2026-09-08T00:48:54.383268" elapsed="0.386229"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-08T00:48:54.769941" level="INFO">Executing command '/usr/local/bin/cbench -c 10.30.170.149 -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633'.</msg>
<msg time="2026-09-08T00:59:00.933449" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-09-08T00:59:00.933916" level="INFO">${stdout} = </msg>
<msg time="2026-09-08T00:59:00.933960" level="INFO">${stderr} = cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.170.149: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-09-08T00:48:54.769672" elapsed="606.164313"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-09-08T00:59:00.934292" elapsed="0.000720"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-08T00:59:00.935568" level="INFO">cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.170.149:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with 100 unique source MACs per switch
   learning destination mac addresses before the test
   starting test with 5000 ms delay after features_reply
   ignoring first 1 "warmup" and last 0 "cooldown" loops
   debugging info is off
Master Thread: Creating thread-0! 
Thread-0: All switches initialized. Running at node 10.30.170.149. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
00:50:00.012 16  switches: flows:  81440 78736 78903 78777 78742 77992 76816 76908 75911 75002 75619 76125 74185 74410 76748 74607  total = 20.515350 per ms 
00:51:00.113 16  switches: flows:  85535 82709 82311 82256 84116 83504 81068 81254 81163 78753 79164 82290 79731 80683 82049 79617  total = 21.733759 per ms 
00:52:00.214 16  switches: flows:  87611 85228 85445 84224 87386 83887 85431 84622 83294 82253 81916 82838 82759 83217 85898 82386  total = 22.435562 per ms 
00:53:00.317 16  switches: flows:  89794 88079 87814 86371 87900 87619 86140 85551 86033 84492 84017 86731 83830 84009 85728 83970  total = 22.929695 per ms 
00:54:00.417 16  switches: flows:  90440 88643 88777 86366 88852 88352 86172 86600 86205 85679 84460 87010 84911 85353 88098 83386  total = 23.116447 per ms 
00:55:00.518 16  switches: flows:  91123 90358 90492 86826 89183 89107 87529 88833 87767 87187 85189 87430 85461 84588 88270 85323  total = 23.372080 per ms 
00:56:00.618 16  switches: flows:  88105 87943 87948 86463 86515 86875 84377 87015 87229 83004 82800 86563 83773 82908 85271 83964  total = 22.807829 per ms 
00:57:00.719 16  switches: flows:  88713 87498 86914 87079 87628 87437 86201 86046 84252 84896 84263 84178 83645 84175 85141 83204  total = 22.816408 per ms 
00:58:00.819 16  switches: flows:  85417 84422 85429 85084 84672 84744 85303 84656 81940 82022 81448 81700 83228 82798 83161 81486  total = 22.254671 per ms 
00:59:00.919 16  switches: flows:  89066 88092 87288 87860 87649 87124 88308 86500 84013 84573 84666 84774 84474 84395 86371 84617  total = 22.957801 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 21733.76/23372.08/22713.81/7585.71 responses/s</msg>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-08T00:59:00.935209" elapsed="0.000515"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="PASS" start="2026-09-08T00:59:00.935990" elapsed="0.000041"/>
</return>
<status status="PASS" start="2026-09-08T00:59:00.935820" elapsed="0.000250"/>
</branch>
<status status="PASS" start="2026-09-08T00:59:00.935788" elapsed="0.000320"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="NOT RUN" start="2026-09-08T00:59:00.936200" elapsed="0.000011"/>
</return>
<status status="NOT RUN" start="2026-09-08T00:59:00.936167" elapsed="0.000069"/>
</branch>
<status status="NOT RUN" start="2026-09-08T00:59:00.936152" elapsed="0.000102"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-09-08T00:59:00.936284" elapsed="0.000011"/>
</return>
<kw name="Restore_Current_Ssh_Connection_From_Index" owner="SSHKeywords" type="TEARDOWN">
<kw name="Run Keyword And Return If" owner="BuiltIn">
<arg>${connection_index} is not None</arg>
<arg>SSHLibrary.Switch Connection</arg>
<arg>${connection_index}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-09-08T00:59:00.938672" elapsed="0.000322"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<arg>127.0.0.1</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-09-08T00:59:00.939143" elapsed="0.000168"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-09-08T00:59:00.939427" elapsed="0.000087"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-09-08T00:59:00.936591" elapsed="0.002971"/>
</kw>
<msg time="2026-09-08T00:59:00.939678" level="INFO">${output} = cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.170.149: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-09-08T00:48:54.378902" elapsed="606.560800"/>
</kw>
<status status="PASS" start="2026-09-08T00:48:54.378608" elapsed="606.561138"/>
</branch>
<status status="PASS" start="2026-09-08T00:48:54.378285" elapsed="606.561484"/>
</if>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-08T00:59:00.940183" level="INFO">cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.170.149:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with 100 unique source MACs per switch
   learning destination mac addresses before the test
   starting test with 5000 ms delay after features_reply
   ignoring first 1 "warmup" and last 0 "cooldown" loops
   debugging info is off
Master Thread: Creating thread-0! 
Thread-0: All switches initialized. Running at node 10.30.170.149. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
00:50:00.012 16  switches: flows:  81440 78736 78903 78777 78742 77992 76816 76908 75911 75002 75619 76125 74185 74410 76748 74607  total = 20.515350 per ms 
00:51:00.113 16  switches: flows:  85535 82709 82311 82256 84116 83504 81068 81254 81163 78753 79164 82290 79731 80683 82049 79617  total = 21.733759 per ms 
00:52:00.214 16  switches: flows:  87611 85228 85445 84224 87386 83887 85431 84622 83294 82253 81916 82838 82759 83217 85898 82386  total = 22.435562 per ms 
00:53:00.317 16  switches: flows:  89794 88079 87814 86371 87900 87619 86140 85551 86033 84492 84017 86731 83830 84009 85728 83970  total = 22.929695 per ms 
00:54:00.417 16  switches: flows:  90440 88643 88777 86366 88852 88352 86172 86600 86205 85679 84460 87010 84911 85353 88098 83386  total = 23.116447 per ms 
00:55:00.518 16  switches: flows:  91123 90358 90492 86826 89183 89107 87529 88833 87767 87187 85189 87430 85461 84588 88270 85323  total = 23.372080 per ms 
00:56:00.618 16  switches: flows:  88105 87943 87948 86463 86515 86875 84377 87015 87229 83004 82800 86563 83773 82908 85271 83964  total = 22.807829 per ms 
00:57:00.719 16  switches: flows:  88713 87498 86914 87079 87628 87437 86201 86046 84252 84896 84263 84178 83645 84175 85141 83204  total = 22.816408 per ms 
00:58:00.819 16  switches: flows:  85417 84422 85429 85084 84672 84744 85303 84656 81940 82022 81448 81700 83228 82798 83161 81486  total = 22.254671 per ms 
00:59:00.919 16  switches: flows:  89066 88092 87288 87860 87649 87124 88308 86500 84013 84573 84666 84774 84474 84395 86371 84617  total = 22.957801 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 21733.76/23372.08/22713.81/7585.71 responses/s</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-08T00:59:00.939909" elapsed="0.000340"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${output}</arg>
<arg>RESULT</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-08T00:59:00.940381" elapsed="0.000344"/>
</kw>
<kw name="Get Lines Containing String" owner="String">
<msg time="2026-09-08T00:59:00.941121" level="INFO">1 out of 23 lines matched.</msg>
<msg time="2026-09-08T00:59:00.941210" level="INFO">${result_line} = RESULT: 16 switches 9 tests min/max/avg/stdev = 21733.76/23372.08/22713.81/7585.71 responses/s</msg>
<var>${result_line}</var>
<arg>${output}</arg>
<arg>RESULT</arg>
<doc>Returns lines of the given ``string`` that contain the ``pattern``.</doc>
<status status="PASS" start="2026-09-08T00:59:00.940895" elapsed="0.000337"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-09-08T00:59:00.941602" level="INFO">@{results_list} = [ RESULT: | 16 | switches | 9 | tests | min/max/avg/stdev | = | 21733.76/23372.08/22713.81/7585.71 | responses/s ]</msg>
<var>@{results_list}</var>
<arg>${result_line}</arg>
<doc>Splits the ``string`` using ``separator`` as a delimiter string.</doc>
<status status="PASS" start="2026-09-08T00:59:00.941369" elapsed="0.000257"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-08T00:59:00.943799" level="INFO">min/max/avg/stdev</msg>
<arg>${results_list[5]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-08T00:59:00.941754" elapsed="0.002106"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-08T00:59:00.946004" level="INFO">21733.76/23372.08/22713.81/7585.71</msg>
<arg>${results_list[7]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-08T00:59:00.943992" elapsed="0.002063"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-09-08T00:59:00.948200" level="INFO">@{result_name_list} = [ min | max | avg | stdev ]</msg>
<var>@{result_name_list}</var>
<arg>${results_list[5]}</arg>
<arg>/</arg>
<doc>Splits the ``string`` using ``separator`` as a delimiter string.</doc>
<status status="PASS" start="2026-09-08T00:59:00.946201" elapsed="0.002024"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-09-08T00:59:00.950443" level="INFO">@{result_value_list} = [ 21733.76 | 23372.08 | 22713.81 | 7585.71 ]</msg>
<var>@{result_value_list}</var>
<arg>${results_list[7]}</arg>
<arg>/</arg>
<doc>Splits the ``string`` using ``separator`` as a delimiter string.</doc>
<status status="PASS" start="2026-09-08T00:59:00.948403" elapsed="0.002064"/>
</kw>
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-09-08T00:59:00.950894" level="INFO">Length is 4.</msg>
<msg time="2026-09-08T00:59:00.950980" level="INFO">${num_stats} = 4</msg>
<var>${num_stats}</var>
<arg>${result_name_list}</arg>
<doc>Returns and logs the length of the given item as an integer.</doc>
<status status="PASS" start="2026-09-08T00:59:00.950605" elapsed="0.000396"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-08T00:59:00.955268" level="INFO">min :: 21733.76</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-08T00:59:00.951383" elapsed="0.003934"/>
</kw>
<var name="${i}">0</var>
<status status="PASS" start="2026-09-08T00:59:00.951263" elapsed="0.004085"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-08T00:59:00.959420" level="INFO">max :: 23372.08</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-08T00:59:00.955548" elapsed="0.003921"/>
</kw>
<var name="${i}">1</var>
<status status="PASS" start="2026-09-08T00:59:00.955433" elapsed="0.004065"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-08T00:59:00.963557" level="INFO">avg :: 22713.81</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-08T00:59:00.959690" elapsed="0.003917"/>
</kw>
<var name="${i}">2</var>
<status status="PASS" start="2026-09-08T00:59:00.959576" elapsed="0.004061"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-08T00:59:00.967693" level="INFO">stdev :: 7585.71</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-08T00:59:00.963830" elapsed="0.003912"/>
</kw>
<var name="${i}">3</var>
<status status="PASS" start="2026-09-08T00:59:00.963717" elapsed="0.004054"/>
</iter>
<var>${i}</var>
<value>0</value>
<value>${num_stats}</value>
<status status="PASS" start="2026-09-08T00:59:00.951067" elapsed="0.016733"/>
</for>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-09-08T00:59:00.971328" level="INFO">${min} = 21733.76</msg>
<var>${min}</var>
<arg>${result_value_list[${0}]}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-09-08T00:59:00.967957" elapsed="0.003394"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-09-08T00:59:00.976163" level="INFO">${max} = 23372.08</msg>
<var>${max}</var>
<arg>${result_value_list[${1}]}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-09-08T00:59:00.971487" elapsed="0.004700"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-09-08T00:59:00.979731" level="INFO">${average} = 22713.81</msg>
<var>${average}</var>
<arg>${result_value_list[${2}]}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-09-08T00:59:00.976323" elapsed="0.003431"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-09-08T00:59:00.983330" level="INFO">${stdev} = 7585.71</msg>
<var>${stdev}</var>
<arg>${result_value_list[${3}]}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-09-08T00:59:00.979905" elapsed="0.003448"/>
</kw>
<kw name="Get Time" owner="BuiltIn">
<msg time="2026-09-08T00:59:00.983816" level="INFO">${date} = 2026-09-08 00:59:00</msg>
<var>${date}</var>
<arg>d,m,s</arg>
<doc>Returns the given time in the requested format.</doc>
<status status="PASS" start="2026-09-08T00:59:00.983493" elapsed="0.000369"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-08T00:59:00.984643" level="INFO">CBench Result: 2026-09-08 00:59:00,-m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633,21733.76,23372.08,22713.81,7585.71</msg>
<arg>CBench Result: ${date},${cbench_args},${min},${max},${average},${stdev}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-08T00:59:00.983994" elapsed="0.000700"/>
</kw>
<kw name="Log Results And Determine Status">
<kw name="Append To File" owner="OperatingSystem">
<msg time="2026-09-08T00:59:00.985669" level="INFO" html="true">Appended to file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-cbench-only-vanadium/latency.csv"&gt;/w/workspace/openflowplugin-csit-1node-cbench-only-vanadium/latency.csv&lt;/a&gt;'.</msg>
<arg>${output_file}</arg>
<arg>${min},${max},${average}\n</arg>
<doc>Appends the given content to the specified file.</doc>
<status status="PASS" start="2026-09-08T00:59:00.985287" elapsed="0.000441"/>
</kw>
<kw name="Should Be True" owner="BuiltIn">
<arg>${average} &gt; ${threshold}</arg>
<arg>${average} flow_mods per/sec did not exceed threshold of ${threshold}</arg>
<doc>Fails if the given condition is not true.</doc>
<status status="PASS" start="2026-09-08T00:59:00.985876" elapsed="0.000436"/>
</kw>
<arg>${min}</arg>
<arg>${max}</arg>
<arg>${average}</arg>
<arg>${average_threshold}</arg>
<arg>${output_filename}</arg>
<status status="PASS" start="2026-09-08T00:59:00.984830" elapsed="0.001540"/>
</kw>
<arg>-m ${duration_in_ms} -M ${num_of_unique_macs} -S ${switch_count} -l ${loops} -D ${start_delay} -p ${of_port}</arg>
<arg>${latency_threshold}</arg>
<arg>${latency_results_file}</arg>
<status status="PASS" start="2026-09-08T00:48:54.377013" elapsed="606.609408"/>
</kw>
<kw name="Sleep" owner="BuiltIn">
<msg time="2026-09-08T00:59:00.986837" level="INFO">Slept 0 seconds.</msg>
<arg>${test_delay}</arg>
<doc>Pauses the test executed for the given time.</doc>
<status status="PASS" start="2026-09-08T00:59:00.986553" elapsed="0.000349"/>
</kw>
<kw name="Log Results As Zero If Cbench Timed Out" type="TEARDOWN">
<kw name="Run Keyword If Timeout Occurred" owner="BuiltIn">
<arg>Log Results And Determine Status</arg>
<arg>0</arg>
<arg>0</arg>
<arg>0</arg>
<arg>0</arg>
<arg>${output_filename}</arg>
<doc>Runs the given keyword if either a test or a keyword timeout has occurred.</doc>
<status status="PASS" start="2026-09-08T00:59:00.987383" elapsed="0.000236"/>
</kw>
<status status="PASS" start="2026-09-08T00:59:00.987116" elapsed="0.000564"/>
</kw>
<doc>cbench executed in default latency mode. Test parameters have defaults, but can be overridden
on the pybot command line</doc>
<tag>cbench</tag>
<tag>latency</tag>
<timeout value="15 minutes"/>
<status status="PASS" start="2026-09-08T00:48:54.374729" elapsed="606.612984"/>
</test>
<test id="s1-t2" name="Cbench Throughput Test" line="51">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-08T00:59:00.989297" level="INFO">Cbench tests using 10 iterations of 60 second tests. Switch Count: 16. Unique MACS to cycle: 100</msg>
<arg>Cbench tests using ${loops} iterations of ${duration_in_secs} second tests. Switch Count: ${switch_count}. Unique MACS to cycle: ${num_of_unique_macs}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-08T00:59:00.988939" elapsed="0.000408"/>
</kw>
<kw name="Run Cbench And Log Results">
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-09-08T00:59:00.990446" level="INFO">${output_filename} = throughput.csv</msg>
<arg>${output_filename}</arg>
<doc>Makes a variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-09-08T00:59:00.990156" elapsed="0.000327"/>
</kw>
<if>
<branch type="IF" condition="&quot;${cbench_system}&quot; == &quot;localhost&quot;">
<kw name="Run" owner="OperatingSystem">
<var>${output}</var>
<arg>${cbench_executable} -c ${ODL_SYSTEM_IP} ${cbench_args}</arg>
<doc>_This keyword is considered deprecated. Use the
[http://robotframework.org/robotframework/latest/libraries/Process.html|
Process] library instead._</doc>
<status status="NOT RUN" start="2026-09-08T00:59:00.990793" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-09-08T00:59:00.990549" elapsed="0.000308"/>
</branch>
<branch type="ELSE">
<kw name="Run Command On Remote System" owner="Utils">
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot; and &quot;${return_stderr}&quot;!=&quot;True&quot;">
<kw name="Fail" owner="BuiltIn">
<arg>At least one of {return_stdout} or {return_stderr} args should be set to True</arg>
<doc>Fails the test with the given message and optionally alters its tags.</doc>
<status status="NOT RUN" start="2026-09-08T00:59:00.993503" elapsed="0.000019"/>
</kw>
<status status="NOT RUN" start="2026-09-08T00:59:00.993283" elapsed="0.000270"/>
</branch>
<status status="PASS" start="2026-09-08T00:59:00.993267" elapsed="0.000307"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-09-08T00:59:00.993905" level="INFO">index=None
host=None
alias=None
port=22
timeout=3 seconds
newline=

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

prompt=None
term_type=vt100
width=80
height=24
path_separator=/
encoding=utf8
escape_ansi=False
encoding_errors=strict</msg>
<var>${current_ssh_connection}</var>
<doc>Returns information about the connection.</doc>
<status status="PASS" start="2026-09-08T00:59:00.993692" elapsed="0.000376"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-08T00:59:00.994888" level="INFO">Attempting to execute command "/usr/local/bin/cbench -c 10.30.170.149 -t -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633" on remote system "10.30.171.211" by user "jenkins" with keyfile pass "any" and prompt "&gt;" and password ""</msg>
<arg>Attempting to execute command "${cmd}" on remote system "${system}" by user "${user}" with keyfile pass "${keyfile_pass}" and prompt "${prompt}" and password "${password}"</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-08T00:59:00.994478" elapsed="0.000463"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-09-08T00:59:00.995445" level="INFO">${conn_id} = 7</msg>
<var>${conn_id}</var>
<arg>${system}</arg>
<arg>prompt=${prompt}</arg>
<arg>timeout=${prompt_timeout}</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-09-08T00:59:00.995068" elapsed="0.000399"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-09-08T00:59:00.996295" level="INFO">Length is 0.</msg>
<msg time="2026-09-08T00:59:00.996374" level="INFO">${pwd_length} = 0</msg>
<var>${pwd_length}</var>
<arg>${password}</arg>
<doc>Returns and logs the length of the given item as an integer.</doc>
<status status="PASS" start="2026-09-08T00:59:00.995990" elapsed="0.000405"/>
</kw>
<kw name="Run Keyword And Return If" owner="BuiltIn">
<arg>${pwd_length} &gt; 0</arg>
<arg>SSHLibrary.Login</arg>
<arg>${user}</arg>
<arg>${password}</arg>
<arg>delay=${delay}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-09-08T00:59:00.996521" elapsed="0.000296"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-09-08T00:59:00.997607" level="INFO">Logging into '10.30.171.211:22' as 'jenkins'.</msg>
<msg time="2026-09-08T00:59:01.593043" level="INFO">Read output: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-187-generic x86_64)

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

 System information as of Tue Sep  8 00:59:01 UTC 2026

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


Expanded Security Maintenance for Applications is not enabled.

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

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


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


Last login: Tue Sep  8 00:48:54 2026 from 10.30.171.183
[?2004h[jenkins@releng-63164-392-1-mininet-ovs-217-0 ~]&gt;</msg>
<arg>${user}</arg>
<arg>${USER_HOME}/.ssh/${SSH_KEY}</arg>
<arg>${KEYFILE_PASS}</arg>
<arg>delay=${delay}</arg>
<doc>Logs into the SSH server using key-based authentication.</doc>
<status status="PASS" start="2026-09-08T00:59:00.997291" elapsed="0.595956"/>
</kw>
<msg time="2026-09-08T00:59:01.593329" level="INFO">Returning from the enclosing user keyword.</msg>
<arg>SSHLibrary.Login With Public Key</arg>
<arg>${user}</arg>
<arg>${USER_HOME}/.ssh/${SSH_KEY}</arg>
<arg>${KEYFILE_PASS}</arg>
<arg>delay=${delay}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-09-08T00:59:00.996967" elapsed="0.596446"/>
</kw>
<arg>${user}</arg>
<arg>${password}</arg>
<doc>On active SSH session: if given non-empty password, do Login, else do Login With Public Key.</doc>
<status status="PASS" start="2026-09-08T00:59:00.995645" elapsed="0.597874"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-08T00:59:01.594012" level="INFO">Executing command '/usr/local/bin/cbench -c 10.30.170.149 -t -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633'.</msg>
<msg time="2026-09-08T01:09:07.683831" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-09-08T01:09:07.684185" level="INFO">${stdout} = </msg>
<msg time="2026-09-08T01:09:07.684234" level="INFO">${stderr} = cbench: controller benchmarking tool
   running in mode 'throughput'
   connecting to controller at 10.30.170.149:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with...</msg>
<var>${stdout}</var>
<var>${stderr}</var>
<arg>${cmd}</arg>
<arg>return_stderr=True</arg>
<doc>Executes ``command`` on the remote machine and returns its outputs.</doc>
<status status="PASS" start="2026-09-08T00:59:01.593722" elapsed="606.090544"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-09-08T01:09:07.684740" elapsed="0.000418"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-08T01:09:07.685796" level="INFO">cbench: controller benchmarking tool
   running in mode 'throughput'
   connecting to controller at 10.30.170.149:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with 100 unique source MACs per switch
   learning destination mac addresses before the test
   starting test with 5000 ms delay after features_reply
   ignoring first 1 "warmup" and last 0 "cooldown" loops
   debugging info is off
Master Thread: Creating thread-0! 
Thread-0: All switches initialized. Running at node 10.30.170.149. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
01:00:06.726 16  switches: flows:  572453 551705 569900 564399 572904 577030 569103 566795 573965 549257 556804 558368 560854 570748 554464 569861  total = 150.643500 per ms 
01:01:06.828 16  switches: flows:  648949 650114 649215 656609 646816 651181 653960 651980 643917 649116 645835 653600 651572 659792 657014 649420  total = 173.359779 per ms 
01:02:06.929 16  switches: flows:  699409 695857 694889 703607 706895 698122 704632 697337 707624 691716 696200 705398 695774 695452 702437 699319  total = 186.264519 per ms 
01:03:07.033 16  switches: flows:  712681 708633 706777 715800 717518 713680 711009 717059 715790 709529 719495 704879 719167 716232 714014 708311  total = 189.852727 per ms 
01:04:07.137 16  switches: flows:  717200 703420 704886 706322 696911 708509 712435 707865 707956 707470 703875 705587 704500 706725 706595 711695  total = 188.207163 per ms 
01:05:07.241 16  switches: flows:  693649 690163 693773 704317 684532 691818 693666 687411 692100 685169 687094 704282 683666 686630 689182 697208  total = 184.096728 per ms 
01:06:07.344 16  switches: flows:  675589 668037 670729 682784 666780 666559 669693 675808 665685 670002 671327 679516 669072 670711 674190 670154  total = 178.808702 per ms 
01:07:07.445 16  switches: flows:  722426 711586 717447 726753 713428 709949 721304 717436 716429 715823 712585 716990 705408 718485 718374 706736  total = 190.531747 per ms 
01:08:07.546 16  switches: flows:  699210 700839 709187 711888 708067 709623 704328 708386 706808 705809 707806 707898 702568 702257 702419 709887  total = 187.967587 per ms 
01:09:07.648 16  switches: flows:  703213 703245 707393 714395 702766 709497 712428 709455 707160 702496 696857 704725 700091 715425 714155 706096  total = 188.172190 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 173359.78/190531.75/185251.24/61982.97 responses/s</msg>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-08T01:09:07.685361" elapsed="0.000651"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="PASS" start="2026-09-08T01:09:07.686336" elapsed="0.000050"/>
</return>
<status status="PASS" start="2026-09-08T01:09:07.686141" elapsed="0.000293"/>
</branch>
<status status="PASS" start="2026-09-08T01:09:07.686090" elapsed="0.000376"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="NOT RUN" start="2026-09-08T01:09:07.686583" elapsed="0.000016"/>
</return>
<status status="NOT RUN" start="2026-09-08T01:09:07.686539" elapsed="0.000095"/>
</branch>
<status status="NOT RUN" start="2026-09-08T01:09:07.686519" elapsed="0.000142"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-09-08T01:09:07.686698" elapsed="0.000017"/>
</return>
<kw name="Restore_Current_Ssh_Connection_From_Index" owner="SSHKeywords" type="TEARDOWN">
<kw name="Run Keyword And Return If" owner="BuiltIn">
<arg>${connection_index} is not None</arg>
<arg>SSHLibrary.Switch Connection</arg>
<arg>${connection_index}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-09-08T01:09:07.690110" elapsed="0.000447"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<arg>127.0.0.1</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-09-08T01:09:07.690742" elapsed="0.000236"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-09-08T01:09:07.691165" elapsed="0.000140"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-09-08T01:09:07.687158" elapsed="0.004216"/>
</kw>
<msg time="2026-09-08T01:09:07.691532" level="INFO">${output} = cbench: controller benchmarking tool
   running in mode 'throughput'
   connecting to controller at 10.30.170.149:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with...</msg>
<var>${output}</var>
<arg>${cbench_system}</arg>
<arg>${cbench_executable} -c ${ODL_SYSTEM_IP} ${cbench_args}</arg>
<arg>prompt_timeout=${test_timeout}</arg>
<arg>return_stdout=False</arg>
<arg>return_stderr=True</arg>
<doc>Reduces the common work of running a command on a remote system to a single higher level
robot keyword, taking care to log in with a public key and. The command given is written and the return value
depends on the passed argument values of return_stdout (default: True) and return_stderr (default: False).
At least one should be True, or the keyword will exit and FAIL. If both are True, the resulting return value
will be a two element list containing both. Otherwise the resulting return value is a string.
No test conditions are checked.</doc>
<status status="PASS" start="2026-09-08T00:59:00.991176" elapsed="606.700391"/>
</kw>
<status status="PASS" start="2026-09-08T00:59:00.990881" elapsed="606.700747"/>
</branch>
<status status="PASS" start="2026-09-08T00:59:00.990529" elapsed="606.701131"/>
</if>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-08T01:09:07.692255" level="INFO">cbench: controller benchmarking tool
   running in mode 'throughput'
   connecting to controller at 10.30.170.149:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with 100 unique source MACs per switch
   learning destination mac addresses before the test
   starting test with 5000 ms delay after features_reply
   ignoring first 1 "warmup" and last 0 "cooldown" loops
   debugging info is off
Master Thread: Creating thread-0! 
Thread-0: All switches initialized. Running at node 10.30.170.149. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
01:00:06.726 16  switches: flows:  572453 551705 569900 564399 572904 577030 569103 566795 573965 549257 556804 558368 560854 570748 554464 569861  total = 150.643500 per ms 
01:01:06.828 16  switches: flows:  648949 650114 649215 656609 646816 651181 653960 651980 643917 649116 645835 653600 651572 659792 657014 649420  total = 173.359779 per ms 
01:02:06.929 16  switches: flows:  699409 695857 694889 703607 706895 698122 704632 697337 707624 691716 696200 705398 695774 695452 702437 699319  total = 186.264519 per ms 
01:03:07.033 16  switches: flows:  712681 708633 706777 715800 717518 713680 711009 717059 715790 709529 719495 704879 719167 716232 714014 708311  total = 189.852727 per ms 
01:04:07.137 16  switches: flows:  717200 703420 704886 706322 696911 708509 712435 707865 707956 707470 703875 705587 704500 706725 706595 711695  total = 188.207163 per ms 
01:05:07.241 16  switches: flows:  693649 690163 693773 704317 684532 691818 693666 687411 692100 685169 687094 704282 683666 686630 689182 697208  total = 184.096728 per ms 
01:06:07.344 16  switches: flows:  675589 668037 670729 682784 666780 666559 669693 675808 665685 670002 671327 679516 669072 670711 674190 670154  total = 178.808702 per ms 
01:07:07.445 16  switches: flows:  722426 711586 717447 726753 713428 709949 721304 717436 716429 715823 712585 716990 705408 718485 718374 706736  total = 190.531747 per ms 
01:08:07.546 16  switches: flows:  699210 700839 709187 711888 708067 709623 704328 708386 706808 705809 707806 707898 702568 702257 702419 709887  total = 187.967587 per ms 
01:09:07.648 16  switches: flows:  703213 703245 707393 714395 702766 709497 712428 709455 707160 702496 696857 704725 700091 715425 714155 706096  total = 188.172190 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 173359.78/190531.75/185251.24/61982.97 responses/s</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-08T01:09:07.691855" elapsed="0.000498"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${output}</arg>
<arg>RESULT</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-08T01:09:07.692553" elapsed="0.001223"/>
</kw>
<kw name="Get Lines Containing String" owner="String">
<msg time="2026-09-08T01:09:07.694347" level="INFO">1 out of 23 lines matched.</msg>
<msg time="2026-09-08T01:09:07.694471" level="INFO">${result_line} = RESULT: 16 switches 9 tests min/max/avg/stdev = 173359.78/190531.75/185251.24/61982.97 responses/s</msg>
<var>${result_line}</var>
<arg>${output}</arg>
<arg>RESULT</arg>
<doc>Returns lines of the given ``string`` that contain the ``pattern``.</doc>
<status status="PASS" start="2026-09-08T01:09:07.694011" elapsed="0.000492"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-09-08T01:09:07.695037" level="INFO">@{results_list} = [ RESULT: | 16 | switches | 9 | tests | min/max/avg/stdev | = | 173359.78/190531.75/185251.24/61982.97 | responses/s ]</msg>
<var>@{results_list}</var>
<arg>${result_line}</arg>
<doc>Splits the ``string`` using ``separator`` as a delimiter string.</doc>
<status status="PASS" start="2026-09-08T01:09:07.694701" elapsed="0.000372"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-08T01:09:07.698228" level="INFO">min/max/avg/stdev</msg>
<arg>${results_list[5]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-08T01:09:07.695286" elapsed="0.003023"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-08T01:09:07.701301" level="INFO">173359.78/190531.75/185251.24/61982.97</msg>
<arg>${results_list[7]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-08T01:09:07.698504" elapsed="0.002870"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-09-08T01:09:07.704330" level="INFO">@{result_name_list} = [ min | max | avg | stdev ]</msg>
<var>@{result_name_list}</var>
<arg>${results_list[5]}</arg>
<arg>/</arg>
<doc>Splits the ``string`` using ``separator`` as a delimiter string.</doc>
<status status="PASS" start="2026-09-08T01:09:07.701566" elapsed="0.002799"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-09-08T01:09:07.707077" level="INFO">@{result_value_list} = [ 173359.78 | 190531.75 | 185251.24 | 61982.97 ]</msg>
<var>@{result_value_list}</var>
<arg>${results_list[7]}</arg>
<arg>/</arg>
<doc>Splits the ``string`` using ``separator`` as a delimiter string.</doc>
<status status="PASS" start="2026-09-08T01:09:07.704651" elapsed="0.002468"/>
</kw>
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-09-08T01:09:07.707671" level="INFO">Length is 4.</msg>
<msg time="2026-09-08T01:09:07.707778" level="INFO">${num_stats} = 4</msg>
<var>${num_stats}</var>
<arg>${result_name_list}</arg>
<doc>Returns and logs the length of the given item as an integer.</doc>
<status status="PASS" start="2026-09-08T01:09:07.707318" elapsed="0.000485"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-08T01:09:07.714556" level="INFO">min :: 173359.78</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-08T01:09:07.708237" elapsed="0.006410"/>
</kw>
<var name="${i}">0</var>
<status status="PASS" start="2026-09-08T01:09:07.708084" elapsed="0.006617"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-08T01:09:07.721050" level="INFO">max :: 190531.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-09-08T01:09:07.715071" elapsed="0.006090"/>
</kw>
<var name="${i}">1</var>
<status status="PASS" start="2026-09-08T01:09:07.714841" elapsed="0.006377"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-08T01:09:07.727691" level="INFO">avg :: 185251.24</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-08T01:09:07.721589" elapsed="0.006193"/>
</kw>
<var name="${i}">2</var>
<status status="PASS" start="2026-09-08T01:09:07.721363" elapsed="0.006475"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-08T01:09:07.733282" level="INFO">stdev :: 61982.97</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-08T01:09:07.728260" elapsed="0.005088"/>
</kw>
<var name="${i}">3</var>
<status status="PASS" start="2026-09-08T01:09:07.728018" elapsed="0.005370"/>
</iter>
<var>${i}</var>
<value>0</value>
<value>${num_stats}</value>
<status status="PASS" start="2026-09-08T01:09:07.707870" elapsed="0.025551"/>
</for>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-09-08T01:09:07.737303" level="INFO">${min} = 173359.78</msg>
<var>${min}</var>
<arg>${result_value_list[${0}]}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-09-08T01:09:07.733740" elapsed="0.003592"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-09-08T01:09:07.741070" level="INFO">${max} = 190531.75</msg>
<var>${max}</var>
<arg>${result_value_list[${1}]}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-09-08T01:09:07.737543" elapsed="0.003578"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-09-08T01:09:07.744907" level="INFO">${average} = 185251.24</msg>
<var>${average}</var>
<arg>${result_value_list[${2}]}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-09-08T01:09:07.741300" elapsed="0.003668"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-09-08T01:09:07.748702" level="INFO">${stdev} = 61982.97</msg>
<var>${stdev}</var>
<arg>${result_value_list[${3}]}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-09-08T01:09:07.745203" elapsed="0.003527"/>
</kw>
<kw name="Get Time" owner="BuiltIn">
<msg time="2026-09-08T01:09:07.749287" level="INFO">${date} = 2026-09-08 01:09:07</msg>
<var>${date}</var>
<arg>d,m,s</arg>
<doc>Returns the given time in the requested format.</doc>
<status status="PASS" start="2026-09-08T01:09:07.748901" elapsed="0.000408"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-08T01:09:07.749815" level="INFO">CBench Result: 2026-09-08 01:09:07,-t -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633,173359.78,190531.75,185251.24,61982.97</msg>
<arg>CBench Result: ${date},${cbench_args},${min},${max},${average},${stdev}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-08T01:09:07.749442" elapsed="0.000424"/>
</kw>
<kw name="Log Results And Determine Status">
<kw name="Append To File" owner="OperatingSystem">
<msg time="2026-09-08T01:09:07.750914" level="INFO" html="true">Appended to file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-cbench-only-vanadium/throughput.csv"&gt;/w/workspace/openflowplugin-csit-1node-cbench-only-vanadium/throughput.csv&lt;/a&gt;'.</msg>
<arg>${output_file}</arg>
<arg>${min},${max},${average}\n</arg>
<doc>Appends the given content to the specified file.</doc>
<status status="PASS" start="2026-09-08T01:09:07.750479" elapsed="0.000518"/>
</kw>
<kw name="Should Be True" owner="BuiltIn">
<arg>${average} &gt; ${threshold}</arg>
<arg>${average} flow_mods per/sec did not exceed threshold of ${threshold}</arg>
<doc>Fails if the given condition is not true.</doc>
<status status="PASS" start="2026-09-08T01:09:07.751189" elapsed="0.000458"/>
</kw>
<arg>${min}</arg>
<arg>${max}</arg>
<arg>${average}</arg>
<arg>${average_threshold}</arg>
<arg>${output_filename}</arg>
<status status="PASS" start="2026-09-08T01:09:07.750028" elapsed="0.001677"/>
</kw>
<arg>-t -m ${duration_in_ms} -M ${num_of_unique_macs} -S ${switch_count} -l ${loops} -D ${start_delay} -p ${of_port}</arg>
<arg>${throughput_threshold}</arg>
<arg>${throughput_results_file}</arg>
<status status="PASS" start="2026-09-08T00:59:00.989631" elapsed="606.762126"/>
</kw>
<kw name="Sleep" owner="BuiltIn">
<msg time="2026-09-08T01:09:07.752212" level="INFO">Slept 0 seconds.</msg>
<arg>${test_delay}</arg>
<doc>Pauses the test executed for the given time.</doc>
<status status="PASS" start="2026-09-08T01:09:07.751892" elapsed="0.000374"/>
</kw>
<kw name="Log Results As Zero If Cbench Timed Out" type="TEARDOWN">
<kw name="Run Keyword If Timeout Occurred" owner="BuiltIn">
<arg>Log Results And Determine Status</arg>
<arg>0</arg>
<arg>0</arg>
<arg>0</arg>
<arg>0</arg>
<arg>${output_filename}</arg>
<doc>Runs the given keyword if either a test or a keyword timeout has occurred.</doc>
<status status="PASS" start="2026-09-08T01:09:07.752778" elapsed="0.000269"/>
</kw>
<status status="PASS" start="2026-09-08T01:09:07.752462" elapsed="0.000665"/>
</kw>
<doc>cbench executed in throughput mode (-t). Test parameters have defaults, but can be overridden
on the pybot command line</doc>
<tag>cbench</tag>
<tag>throughput</tag>
<timeout value="15 minutes"/>
<status status="PASS" start="2026-09-08T00:59:00.988323" elapsed="606.764839"/>
</test>
<test id="s1-t3" name="Rerun Latency Test To Check Bug 6176" line="65">
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-08T01:09:07.754394" level="INFO">Cbench tests using 10 iterations of 60 second tests. Switch Count: 16. Unique MACS to cycle: 100</msg>
<arg>Cbench tests using ${loops} iterations of ${duration_in_secs} second tests. Switch Count: ${switch_count}. Unique MACS to cycle: ${num_of_unique_macs}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-08T01:09:07.753894" elapsed="0.000554"/>
</kw>
<kw name="Run Cbench And Log Results">
<kw name="Set Suite Variable" owner="BuiltIn">
<msg time="2026-09-08T01:09:07.755577" level="INFO">${output_filename} = bug.csv</msg>
<arg>${output_filename}</arg>
<doc>Makes a variable available everywhere within the scope of the current suite.</doc>
<status status="PASS" start="2026-09-08T01:09:07.755276" elapsed="0.000339"/>
</kw>
<if>
<branch type="IF" condition="&quot;${cbench_system}&quot; == &quot;localhost&quot;">
<kw name="Run" owner="OperatingSystem">
<var>${output}</var>
<arg>${cbench_executable} -c ${ODL_SYSTEM_IP} ${cbench_args}</arg>
<doc>_This keyword is considered deprecated. Use the
[http://robotframework.org/robotframework/latest/libraries/Process.html|
Process] library instead._</doc>
<status status="NOT RUN" start="2026-09-08T01:09:07.755995" elapsed="0.000020"/>
</kw>
<status status="NOT RUN" start="2026-09-08T01:09:07.755758" elapsed="0.000290"/>
</branch>
<branch type="ELSE">
<kw name="Run Command On Remote System" owner="Utils">
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot; and &quot;${return_stderr}&quot;!=&quot;True&quot;">
<kw name="Fail" owner="BuiltIn">
<arg>At least one of {return_stdout} or {return_stderr} args should be set to True</arg>
<doc>Fails the test with the given message and optionally alters its tags.</doc>
<status status="NOT RUN" start="2026-09-08T01:09:07.759390" elapsed="0.000023"/>
</kw>
<status status="NOT RUN" start="2026-09-08T01:09:07.759072" elapsed="0.000382"/>
</branch>
<status status="PASS" start="2026-09-08T01:09:07.759044" elapsed="0.000433"/>
</if>
<kw name="Get Connection" owner="SSHLibrary">
<msg time="2026-09-08T01:09:07.759837" level="INFO">index=None
host=None
alias=None
port=22
timeout=3 seconds
newline=

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

prompt=None
term_type=vt100
width=80
height=24
path_separator=/
encoding=utf8
escape_ansi=False
encoding_errors=strict</msg>
<var>${current_ssh_connection}</var>
<doc>Returns information about the connection.</doc>
<status status="PASS" start="2026-09-08T01:09:07.759605" elapsed="0.000392"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-08T01:09:07.760552" level="INFO">Attempting to execute command "/usr/local/bin/cbench -c 10.30.170.149 -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633" on remote system "10.30.171.211" by user "jenkins" with keyfile pass "any" and prompt "&gt;" and password ""</msg>
<arg>Attempting to execute command "${cmd}" on remote system "${system}" by user "${user}" with keyfile pass "${keyfile_pass}" and prompt "${prompt}" and password "${password}"</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-08T01:09:07.760133" elapsed="0.000470"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<msg time="2026-09-08T01:09:07.761126" level="INFO">${conn_id} = 9</msg>
<var>${conn_id}</var>
<arg>${system}</arg>
<arg>prompt=${prompt}</arg>
<arg>timeout=${prompt_timeout}</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-09-08T01:09:07.760728" elapsed="0.000422"/>
</kw>
<kw name="Flexible_SSH_Login" owner="SSHKeywords">
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-09-08T01:09:07.761991" level="INFO">Length is 0.</msg>
<msg time="2026-09-08T01:09:07.762070" level="INFO">${pwd_length} = 0</msg>
<var>${pwd_length}</var>
<arg>${password}</arg>
<doc>Returns and logs the length of the given item as an integer.</doc>
<status status="PASS" start="2026-09-08T01:09:07.761690" elapsed="0.000415"/>
</kw>
<kw name="Run Keyword And Return If" owner="BuiltIn">
<arg>${pwd_length} &gt; 0</arg>
<arg>SSHLibrary.Login</arg>
<arg>${user}</arg>
<arg>${password}</arg>
<arg>delay=${delay}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-09-08T01:09:07.762238" elapsed="0.000307"/>
</kw>
<kw name="Run Keyword And Return" owner="BuiltIn">
<kw name="Login With Public Key" owner="SSHLibrary">
<msg time="2026-09-08T01:09:07.763337" level="INFO">Logging into '10.30.171.211:22' as 'jenkins'.</msg>
<msg time="2026-09-08T01:09:08.384735" level="INFO">Read output: Welcome to Ubuntu 22.04.5 LTS (GNU/Linux 5.15.0-187-generic x86_64)

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

 System information as of Tue Sep  8 01:09:07 UTC 2026

  System load:  0.36               Processes:             104
  Usage of /:   19.8% of 38.58GB   Users logged in:       0
  Memory usage: 4%                 IPv4 address for ens3: 10.30.171.211
  Swap usage:   0%


Expanded Security Maintenance for Applications is not enabled.

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

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


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


Last login: Tue Sep  8 00:59:01 2026 from 10.30.171.183
[?2004h[jenkins@releng-63164-392-1-mininet-ovs-217-0 ~]&gt;</msg>
<arg>${user}</arg>
<arg>${USER_HOME}/.ssh/${SSH_KEY}</arg>
<arg>${KEYFILE_PASS}</arg>
<arg>delay=${delay}</arg>
<doc>Logs into the SSH server using key-based authentication.</doc>
<status status="PASS" start="2026-09-08T01:09:07.763002" elapsed="0.621930"/>
</kw>
<msg time="2026-09-08T01:09:08.385013" level="INFO">Returning from the enclosing user keyword.</msg>
<arg>SSHLibrary.Login With Public Key</arg>
<arg>${user}</arg>
<arg>${USER_HOME}/.ssh/${SSH_KEY}</arg>
<arg>${KEYFILE_PASS}</arg>
<arg>delay=${delay}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-09-08T01:09:07.762680" elapsed="0.622406"/>
</kw>
<arg>${user}</arg>
<arg>${password}</arg>
<doc>On active SSH session: if given non-empty password, do Login, else do Login With Public Key.</doc>
<status status="PASS" start="2026-09-08T01:09:07.761342" elapsed="0.623861"/>
</kw>
<kw name="Execute Command" owner="SSHLibrary">
<msg time="2026-09-08T01:09:08.385669" level="INFO">Executing command '/usr/local/bin/cbench -c 10.30.170.149 -m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633'.</msg>
<msg time="2026-09-08T01:19:14.433009" level="INFO">Command exited with return code 0.</msg>
<msg time="2026-09-08T01:19:14.433661" level="INFO">${stdout} = </msg>
<msg time="2026-09-08T01:19:14.433802" level="INFO">${stderr} = cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.170.149: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-09-08T01:09:08.385401" elapsed="606.048480"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-09-08T01:19:14.434487" elapsed="0.000865"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-08T01:19:14.436674" level="INFO">cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.170.149:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with 100 unique source MACs per switch
   learning destination mac addresses before the test
   starting test with 5000 ms delay after features_reply
   ignoring first 1 "warmup" and last 0 "cooldown" loops
   debugging info is off
Master Thread: Creating thread-0! 
Thread-0: All switches initialized. Running at node 10.30.170.149. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
01:10:13.481 16  switches: flows:  86569 87137 85871 84655 86029 85280 84449 84266 83359 82084 83738 82943 84222 83241 82588 83403  total = 22.497233 per ms 
01:11:13.581 16  switches: flows:  89443 89355 88996 87771 87462 86842 87147 86949 83975 83511 86700 85849 85161 84070 85504 86254  total = 23.044676 per ms 
01:12:13.682 16  switches: flows:  87946 90122 87592 86070 86452 85441 83525 85532 84485 82490 83613 85000 84388 84026 83878 85150  total = 22.723866 per ms 
01:13:13.782 16  switches: flows:  85669 89310 90013 85470 85620 86901 85292 85302 83202 82759 84314 85592 85219 85029 84472 83950  total = 22.763904 per ms 
01:14:13.882 16  switches: flows:  87995 90388 89837 85791 86976 85700 85390 84124 83260 83064 84917 85479 84976 84523 85469 84274  total = 22.831287 per ms 
01:15:13.983 16  switches: flows:  87697 88822 89428 85869 85885 85752 85590 86006 83910 83534 83048 85766 84409 84371 83498 85595  total = 22.781590 per ms 
01:16:14.083 16  switches: flows:  88470 91640 91321 88000 87987 87986 86747 86458 83992 85097 84979 87127 87206 84552 85166 87308  total = 23.195203 per ms 
01:17:14.183 16  switches: flows:  90229 91010 91522 87459 86650 87975 86350 85812 84413 84456 85057 87046 85884 84812 85666 87680  total = 23.161671 per ms 
01:18:14.283 16  switches: flows:  88269 91671 90395 87429 87816 87341 85660 84668 85109 84131 84702 86623 85700 84546 86036 86432  total = 23.070285 per ms 
01:19:14.384 16  switches: flows:  88548 91395 90034 86779 88018 88554 84686 84657 84800 85224 84565 86638 86446 84202 85258 86095  total = 23.059813 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 22723.87/23195.20/22959.14/7654.99 responses/s</msg>
<arg>${stderr}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-08T01:19:14.435845" elapsed="0.001151"/>
</kw>
<if>
<branch type="IF" condition="&quot;${return_stdout}&quot;!=&quot;True&quot;">
<return>
<value>${stderr}</value>
<status status="PASS" start="2026-09-08T01:19:14.437494" elapsed="0.000092"/>
</return>
<status status="PASS" start="2026-09-08T01:19:14.437204" elapsed="0.000457"/>
</branch>
<status status="PASS" start="2026-09-08T01:19:14.437153" elapsed="0.000559"/>
</if>
<if>
<branch type="IF" condition="&quot;${return_stderr}&quot;!=&quot;True&quot;">
<return>
<value>${stdout}</value>
<status status="NOT RUN" start="2026-09-08T01:19:14.437900" elapsed="0.000025"/>
</return>
<status status="NOT RUN" start="2026-09-08T01:19:14.437828" elapsed="0.000156"/>
</branch>
<status status="NOT RUN" start="2026-09-08T01:19:14.437797" elapsed="0.000242"/>
</if>
<return>
<value>${stdout}</value>
<value>${stderr}</value>
<status status="NOT RUN" start="2026-09-08T01:19:14.438135" elapsed="0.000029"/>
</return>
<kw name="Restore_Current_Ssh_Connection_From_Index" owner="SSHKeywords" type="TEARDOWN">
<kw name="Run Keyword And Return If" owner="BuiltIn">
<arg>${connection_index} is not None</arg>
<arg>SSHLibrary.Switch Connection</arg>
<arg>${connection_index}</arg>
<doc>Runs the specified keyword and returns from the enclosing user keyword.</doc>
<status status="PASS" start="2026-09-08T01:19:14.443765" elapsed="0.000733"/>
</kw>
<kw name="Open Connection" owner="SSHLibrary">
<arg>127.0.0.1</arg>
<doc>Opens a new SSH connection to the given ``host`` and ``port``.</doc>
<status status="PASS" start="2026-09-08T01:19:14.444829" elapsed="0.000360"/>
</kw>
<kw name="Close Connection" owner="SSHLibrary">
<doc>Closes the current connection.</doc>
<status status="PASS" start="2026-09-08T01:19:14.445459" elapsed="0.000232"/>
</kw>
<arg>${current_ssh_connection.index}</arg>
<doc>Restore active SSH connection in SSHLibrary to given index.</doc>
<status status="PASS" start="2026-09-08T01:19:14.438823" elapsed="0.006980"/>
</kw>
<msg time="2026-09-08T01:19:14.446060" level="INFO">${output} = cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.170.149: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-09-08T01:09:07.756381" elapsed="606.689766"/>
</kw>
<status status="PASS" start="2026-09-08T01:09:07.756071" elapsed="606.690179"/>
</branch>
<status status="PASS" start="2026-09-08T01:09:07.755736" elapsed="606.690561"/>
</if>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-08T01:19:14.447272" level="INFO">cbench: controller benchmarking tool
   running in mode 'latency'
   connecting to controller at 10.30.170.149:6633 
   faking 16 switches with 1 threads :: 10 tests each; 60000 ms per test
   with 100 unique source MACs per switch
   learning destination mac addresses before the test
   starting test with 5000 ms delay after features_reply
   ignoring first 1 "warmup" and last 0 "cooldown" loops
   debugging info is off
Master Thread: Creating thread-0! 
Thread-0: All switches initialized. Running at node 10.30.170.149. So far 1 cbench instances have initialized their switches.  Waiting for other cbench-instances
Thread-0: Total switches from ALL cbench-instances initialized.
01:10:13.481 16  switches: flows:  86569 87137 85871 84655 86029 85280 84449 84266 83359 82084 83738 82943 84222 83241 82588 83403  total = 22.497233 per ms 
01:11:13.581 16  switches: flows:  89443 89355 88996 87771 87462 86842 87147 86949 83975 83511 86700 85849 85161 84070 85504 86254  total = 23.044676 per ms 
01:12:13.682 16  switches: flows:  87946 90122 87592 86070 86452 85441 83525 85532 84485 82490 83613 85000 84388 84026 83878 85150  total = 22.723866 per ms 
01:13:13.782 16  switches: flows:  85669 89310 90013 85470 85620 86901 85292 85302 83202 82759 84314 85592 85219 85029 84472 83950  total = 22.763904 per ms 
01:14:13.882 16  switches: flows:  87995 90388 89837 85791 86976 85700 85390 84124 83260 83064 84917 85479 84976 84523 85469 84274  total = 22.831287 per ms 
01:15:13.983 16  switches: flows:  87697 88822 89428 85869 85885 85752 85590 86006 83910 83534 83048 85766 84409 84371 83498 85595  total = 22.781590 per ms 
01:16:14.083 16  switches: flows:  88470 91640 91321 88000 87987 87986 86747 86458 83992 85097 84979 87127 87206 84552 85166 87308  total = 23.195203 per ms 
01:17:14.183 16  switches: flows:  90229 91010 91522 87459 86650 87975 86350 85812 84413 84456 85057 87046 85884 84812 85666 87680  total = 23.161671 per ms 
01:18:14.283 16  switches: flows:  88269 91671 90395 87429 87816 87341 85660 84668 85109 84131 84702 86623 85700 84546 86036 86432  total = 23.070285 per ms 
01:19:14.384 16  switches: flows:  88548 91395 90034 86779 88018 88554 84686 84657 84800 85224 84565 86638 86446 84202 85258 86095  total = 23.059813 per ms 
RESULT: 16 switches 9 tests min/max/avg/stdev = 22723.87/23195.20/22959.14/7654.99 responses/s</msg>
<arg>${output}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-08T01:19:14.446634" elapsed="0.000791"/>
</kw>
<kw name="Should Contain" owner="BuiltIn">
<arg>${output}</arg>
<arg>RESULT</arg>
<doc>Fails if ``container`` does not contain ``item`` one or more times.</doc>
<status status="PASS" start="2026-09-08T01:19:14.447767" elapsed="0.000811"/>
</kw>
<kw name="Get Lines Containing String" owner="String">
<msg time="2026-09-08T01:19:14.449417" level="INFO">1 out of 23 lines matched.</msg>
<msg time="2026-09-08T01:19:14.449628" level="INFO">${result_line} = RESULT: 16 switches 9 tests min/max/avg/stdev = 22723.87/23195.20/22959.14/7654.99 responses/s</msg>
<var>${result_line}</var>
<arg>${output}</arg>
<arg>RESULT</arg>
<doc>Returns lines of the given ``string`` that contain the ``pattern``.</doc>
<status status="PASS" start="2026-09-08T01:19:14.448905" elapsed="0.000775"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-09-08T01:19:14.450558" level="INFO">@{results_list} = [ RESULT: | 16 | switches | 9 | tests | min/max/avg/stdev | = | 22723.87/23195.20/22959.14/7654.99 | responses/s ]</msg>
<var>@{results_list}</var>
<arg>${result_line}</arg>
<doc>Splits the ``string`` using ``separator`` as a delimiter string.</doc>
<status status="PASS" start="2026-09-08T01:19:14.449994" elapsed="0.000618"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-08T01:19:14.455678" level="INFO">min/max/avg/stdev</msg>
<arg>${results_list[5]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-08T01:19:14.450908" elapsed="0.004885"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-08T01:19:14.460642" level="INFO">22723.87/23195.20/22959.14/7654.99</msg>
<arg>${results_list[7]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-08T01:19:14.456089" elapsed="0.004666"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-09-08T01:19:14.465636" level="INFO">@{result_name_list} = [ min | max | avg | stdev ]</msg>
<var>@{result_name_list}</var>
<arg>${results_list[5]}</arg>
<arg>/</arg>
<doc>Splits the ``string`` using ``separator`` as a delimiter string.</doc>
<status status="PASS" start="2026-09-08T01:19:14.461056" elapsed="0.004634"/>
</kw>
<kw name="Split String" owner="String">
<msg time="2026-09-08T01:19:14.470744" level="INFO">@{result_value_list} = [ 22723.87 | 23195.20 | 22959.14 | 7654.99 ]</msg>
<var>@{result_value_list}</var>
<arg>${results_list[7]}</arg>
<arg>/</arg>
<doc>Splits the ``string`` using ``separator`` as a delimiter string.</doc>
<status status="PASS" start="2026-09-08T01:19:14.466071" elapsed="0.004727"/>
</kw>
<kw name="Get Length" owner="BuiltIn">
<msg time="2026-09-08T01:19:14.471782" level="INFO">Length is 4.</msg>
<msg time="2026-09-08T01:19:14.471955" level="INFO">${num_stats} = 4</msg>
<var>${num_stats}</var>
<arg>${result_name_list}</arg>
<doc>Returns and logs the length of the given item as an integer.</doc>
<status status="PASS" start="2026-09-08T01:19:14.471138" elapsed="0.000864"/>
</kw>
<for flavor="IN RANGE">
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-08T01:19:14.480943" level="INFO">min :: 22723.87</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-08T01:19:14.472827" elapsed="0.008192"/>
</kw>
<var name="${i}">0</var>
<status status="PASS" start="2026-09-08T01:19:14.472516" elapsed="0.008548"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-08T01:19:14.486941" level="INFO">max :: 23195.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-09-08T01:19:14.481386" elapsed="0.005629"/>
</kw>
<var name="${i}">1</var>
<status status="PASS" start="2026-09-08T01:19:14.481210" elapsed="0.005849"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-08T01:19:14.492858" level="INFO">avg :: 22959.14</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-08T01:19:14.487359" elapsed="0.005571"/>
</kw>
<var name="${i}">2</var>
<status status="PASS" start="2026-09-08T01:19:14.487197" elapsed="0.005778"/>
</iter>
<iter>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-08T01:19:14.498868" level="INFO">stdev :: 7654.99</msg>
<arg>${result_name_list[${i}]} :: ${result_value_list[${i}]}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-08T01:19:14.493339" elapsed="0.005606"/>
</kw>
<var name="${i}">3</var>
<status status="PASS" start="2026-09-08T01:19:14.493081" elapsed="0.005911"/>
</iter>
<var>${i}</var>
<value>0</value>
<value>${num_stats}</value>
<status status="PASS" start="2026-09-08T01:19:14.472152" elapsed="0.026879"/>
</for>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-09-08T01:19:14.504082" level="INFO">${min} = 22723.87</msg>
<var>${min}</var>
<arg>${result_value_list[${0}]}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-09-08T01:19:14.499287" elapsed="0.004849"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-09-08T01:19:14.509088" level="INFO">${max} = 23195.20</msg>
<var>${max}</var>
<arg>${result_value_list[${1}]}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-09-08T01:19:14.504332" elapsed="0.004810"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-09-08T01:19:14.514042" level="INFO">${average} = 22959.14</msg>
<var>${average}</var>
<arg>${result_value_list[${2}]}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-09-08T01:19:14.509333" elapsed="0.004743"/>
</kw>
<kw name="Set Variable" owner="BuiltIn">
<msg time="2026-09-08T01:19:14.518343" level="INFO">${stdev} = 7654.99</msg>
<var>${stdev}</var>
<arg>${result_value_list[${3}]}</arg>
<doc>Returns the given values which can then be assigned to a variables.</doc>
<status status="PASS" start="2026-09-08T01:19:14.514289" elapsed="0.004077"/>
</kw>
<kw name="Get Time" owner="BuiltIn">
<msg time="2026-09-08T01:19:14.518839" level="INFO">${date} = 2026-09-08 01:19:14</msg>
<var>${date}</var>
<arg>d,m,s</arg>
<doc>Returns the given time in the requested format.</doc>
<status status="PASS" start="2026-09-08T01:19:14.518509" elapsed="0.000353"/>
</kw>
<kw name="Log" owner="BuiltIn">
<msg time="2026-09-08T01:19:14.519372" level="INFO">CBench Result: 2026-09-08 01:19:14,-m 60000 -M 100 -S 16 -l 10 -D 5000 -p 6633,22723.87,23195.20,22959.14,7654.99</msg>
<arg>CBench Result: ${date},${cbench_args},${min},${max},${average},${stdev}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="PASS" start="2026-09-08T01:19:14.518994" elapsed="0.000428"/>
</kw>
<kw name="Log Results And Determine Status">
<kw name="Append To File" owner="OperatingSystem">
<msg time="2026-09-08T01:19:14.520504" level="INFO" html="true">Appended to file '&lt;a href="file:///w/workspace/openflowplugin-csit-1node-cbench-only-vanadium/bug.csv"&gt;/w/workspace/openflowplugin-csit-1node-cbench-only-vanadium/bug.csv&lt;/a&gt;'.</msg>
<arg>${output_file}</arg>
<arg>${min},${max},${average}\n</arg>
<doc>Appends the given content to the specified file.</doc>
<status status="PASS" start="2026-09-08T01:19:14.520020" elapsed="0.000574"/>
</kw>
<kw name="Should Be True" owner="BuiltIn">
<arg>${average} &gt; ${threshold}</arg>
<arg>${average} flow_mods per/sec did not exceed threshold of ${threshold}</arg>
<doc>Fails if the given condition is not true.</doc>
<status status="PASS" start="2026-09-08T01:19:14.520731" elapsed="0.001303"/>
</kw>
<arg>${min}</arg>
<arg>${max}</arg>
<arg>${average}</arg>
<arg>${average_threshold}</arg>
<arg>${output_filename}</arg>
<status status="PASS" start="2026-09-08T01:19:14.519585" elapsed="0.002685"/>
</kw>
<arg>-m ${duration_in_ms} -M ${num_of_unique_macs} -S ${switch_count} -l ${loops} -D ${start_delay} -p ${of_port}</arg>
<arg>${latency_threshold}</arg>
<arg>bug.csv</arg>
<status status="PASS" start="2026-09-08T01:09:07.754749" elapsed="606.767651"/>
</kw>
<kw name="Sleep" owner="BuiltIn">
<msg time="2026-09-08T01:19:14.523642" level="INFO">Slept 0 seconds.</msg>
<arg>${test_delay}</arg>
<doc>Pauses the test executed for the given time.</doc>
<status status="PASS" start="2026-09-08T01:19:14.522831" elapsed="0.000934"/>
</kw>
<kw name="Report Failure Due To Bug" owner="Utils" type="TEARDOWN">
<kw name="Evaluate" owner="BuiltIn">
<msg time="2026-09-08T01:19:14.525590" level="INFO">${test_skipped} = False</msg>
<var>${test_skipped}</var>
<arg>len(re.findall('SKIPPED', """${TEST_MESSAGE}""")) &gt; 0</arg>
<arg>modules=re</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="PASS" start="2026-09-08T01:19:14.525056" elapsed="0.000559"/>
</kw>
<if>
<branch type="IF" condition="('${TEST_STATUS}' != 'FAIL') or ${test_skipped}">
<return>
<status status="PASS" start="2026-09-08T01:19:14.525849" elapsed="0.000041"/>
</return>
<status status="PASS" start="2026-09-08T01:19:14.525698" elapsed="0.000226"/>
</branch>
<status status="PASS" start="2026-09-08T01:19:14.525672" elapsed="0.000276"/>
</if>
<kw name="Comment" owner="BuiltIn">
<arg>Jira tickets are {PROJECT}-{NUMBER} while Bugzilla tickets are {NUMBER}</arg>
<doc>Displays the given messages in the log file as keyword arguments.</doc>
<status status="NOT RUN" start="2026-09-08T01:19:14.526112" elapsed="0.000021"/>
</kw>
<kw name="Run Keyword And Return Status" owner="BuiltIn">
<var>${match}</var>
<arg>Should Contain</arg>
<arg>${number}</arg>
<arg>-</arg>
<doc>Runs the specified keyword and returns the status as a Boolean value.</doc>
<status status="NOT RUN" start="2026-09-08T01:19:14.526257" elapsed="0.000018"/>
</kw>
<kw name="Set Variable If" owner="BuiltIn">
<var>${bug_url}</var>
<arg>${match}</arg>
<arg>https://jira.opendaylight.org/browse/${number}</arg>
<arg>https://bugs.opendaylight.org/show_bug.cgi?id=${number}</arg>
<doc>Sets variable based on the given condition.</doc>
<status status="NOT RUN" start="2026-09-08T01:19:14.526401" 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-09-08T01:19:14.526553" elapsed="0.000018"/>
</kw>
<kw name="Evaluate" owner="BuiltIn">
<var>${newline}</var>
<arg>chr(10)</arg>
<doc>Evaluates the given expression in Python and returns the result.</doc>
<status status="NOT RUN" start="2026-09-08T01:19:14.526775" elapsed="0.000019"/>
</kw>
<kw name="Set Test Message" owner="BuiltIn">
<arg>${msg}${newline}${newline}${TEST_MESSAGE}</arg>
<doc>Sets message for the current test case.</doc>
<status status="NOT RUN" start="2026-09-08T01:19:14.526905" elapsed="0.000018"/>
</kw>
<kw name="Log" owner="BuiltIn">
<arg>${msg}</arg>
<doc>Logs the given message with the given level.</doc>
<status status="NOT RUN" start="2026-09-08T01:19:14.527035" elapsed="0.000017"/>
</kw>
<if>
<branch type="IF" condition="&quot;${include_bug_in_tags}&quot;==&quot;True&quot;">
<kw name="Set Tags" owner="BuiltIn">
<arg>${bug_url}</arg>
<doc>Adds given ``tags`` for the current test or all tests in a suite.</doc>
<status status="NOT RUN" start="2026-09-08T01:19:14.527248" elapsed="0.000018"/>
</kw>
<status status="NOT RUN" start="2026-09-08T01:19:14.527122" elapsed="0.000172"/>
</branch>
<status status="NOT RUN" start="2026-09-08T01:19:14.527105" elapsed="0.000231"/>
</if>
<arg>6176</arg>
<doc>Report that a test failed due to a known Bugzilla bug whose
number is provided as an argument.
Not FAILED (incl. SKIPPED) test are not reported.
This keyword must be used in the [Teardown] setting of the affected test
or as the first line of the test if FastFail module is not being
used. It reports the URL of the bug on console and also puts it
into the Robot log file.</doc>
<status status="PASS" start="2026-09-08T01:19:14.524656" elapsed="0.002727"/>
</kw>
<doc>cbench executed in latency mode to see if controller is healthy</doc>
<tag>cbench</tag>
<tag>latency</tag>
<timeout value="15 minutes"/>
<status status="PASS" start="2026-09-08T01:09:07.753463" elapsed="606.773963"/>
</test>
<doc>Cbench Latency and Throughput tests can be run from an external
cbench.
If cbench is run with a medium number of switches or higher (e.g. 32+)
the normal openflow operations seem to break.
BUG: https://bugs.opendaylight.org/show_bug.cgi?id=2897</doc>
<status status="PASS" start="2026-09-08T00:48:51.868561" elapsed="1822.659453"/>
</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>
