2 Documentation Test suite for 3Node Cluster - 100K flows and 10 DPNs in Cluster Scale Up scenario
3 Suite Setup ClusterManagement Setup
4 Suite Teardown Delete All Sessions
6 Library OperatingSystem
7 Library ../../../libraries/ScaleClient.py
8 Resource ../../../libraries/MininetKeywords.robot
9 Resource ../../../libraries/ClusterManagement.robot
10 Resource ../../../libraries/ClusterOpenFlow.robot
11 Resource ../../../variables/openflowplugin/Variables.robot
12 Variables ../../../variables/Variables.py
15 ${operation_timeout} 250s
16 ${oper_ds_timeout} 400s
17 ${mininet_timeout} 120s
24 ${karaf_log_level} log:set WARN
25 ${rate_results_file} rate.csv
26 ${time_results_file} time.csv
30 [Documentation] Initialize variables and set the log.
31 Wait Until Keyword Succeeds 3x 3s ClusterManagement.Run_Karaf_Command_On_List_Or_All ${karaf_log_level}
32 ${controller_list}= Create List ${ODL_SYSTEM_IP}
33 Set Suite Variable ${controller_list}
34 ${flows} ${notes} ScaleClient.Generate New Flow Details flows=${flow_count} switches=${switch_count} swspread=${swspread} tabspread=${tabspread}
35 Set Suite Variable ${flows}
37 Start Mininet And verify Switches
38 [Documentation] Start mininet.
39 ${mininet_conn_id}= MininetKeywords.Start Mininet Single Controller ${TOOLS_SYSTEM_IP} ${ODL_SYSTEM_IP} --topo linear,${switch_count}
40 BuiltIn.Set Suite Variable ${mininet_conn_id}
41 BuiltIn.Wait Until Keyword Succeeds ${mininet_timeout} 2s ClusterOpenFlow.Verify_Switch_Connections_Running_On_Member ${switch_count} 1
43 Add Bulk Flow Via REST
44 [Documentation] 100K Flows (1K Flows per DPN) in 100 DPN added and verify it gets applied.
45 ${config_datastore_write_start_time}= DateTime.Get Current Date result_format=timestamp
46 ScaleClient.Configure Flows Bulk flow_details=${flows} controllers=${controller_list} nrthreads=${nrthreads} fpr=${fpr}
47 ${config_datastore_write_end_time}= DateTime.Get Current Date result_format=timestamp
48 ${config_datastore_write_time}= DateTime.Subtract Date From Date ${config_datastore_write_end_time} ${config_datastore_write_start_time}
49 ${config_datastore_write_rate}= BuiltIn.Evaluate ${flow_count} / ${config_datastore_write_time}
50 BuiltIn.Set Suite Variable ${config_datastore_write_start_time}
51 BuiltIn.Log to console ${\n}
52 BuiltIn.Log to console The config_datastore_write_time is ${config_datastore_write_time}
53 BuiltIn.Log to console The config_datastore_write_rate is ${config_datastore_write_rate}
54 BuiltIn.Set Suite Variable ${config_datastore_write_time}
55 BuiltIn.Set Suite Variable ${config_datastore_write_rate}
57 Verify Flows In Switch
58 [Documentation] Verify 100K flows are installed in 100 switches.
59 ${Mininet_write_start_time}= DateTime.Get Current Date result_format=timestamp
60 MininetKeywords.Verify Aggregate Flow From Mininet Session ${mininet_conn_id} ${flow_count} ${operation_timeout}
61 ${Mininet_write_end_time}= DateTime.Get Current Date result_format=timestamp
62 ${Mininet_write_time}= DateTime.Subtract Date From Date ${Mininet_write_end_time} ${config_datastore_write_start_time}
63 ${Mininet_write_rate}= BuiltIn.Evaluate ${flow_count} / ${Mininet_write_time}
64 BuiltIn.Log to console ${\n}
65 BuiltIn.Log to console The Mininet_write_time is ${Mininet_write_time}
66 BuiltIn.Log to console The Mininet_write_rate is ${Mininet_write_rate}
67 BuiltIn.Set Suite Variable ${Mininet_write_time}
68 BuiltIn.Set Suite Variable ${Mininet_write_rate}
70 Verify Flows In Oper DS
71 [Documentation] Check Flows in Operational Datastore
72 BuiltIn.Wait Until Keyword Succeeds ${oper_ds_timeout} 2s ClusterOpenFlow.Check_Flows_Operational_Datastore_On_Member ${flow_count} 1
73 ${oper_datastore_write_end_time}= DateTime.Get Current Date result_format=timestamp
74 ${oper_datastore_write_time}= DateTime.Subtract Date From Date ${oper_datastore_write_end_time} ${config_datastore_write_start_time}
75 ${oper_datastore_write_rate}= BuiltIn.Evaluate ${flow_count} / ${oper_datastore_write_time}
76 BuiltIn.Log to console ${\n}
77 BuiltIn.Log to console The operational_datastore_write_time is ${oper_datastore_write_time}
78 BuiltIn.Log to console The operational_datastore_write_rate is ${oper_datastore_write_rate}
79 BuiltIn.Set Suite Variable ${oper_datastore_write_time}
80 BuiltIn.Set Suite Variable ${oper_datastore_write_rate}
82 Stop Mininet And Verify
83 [Documentation] Stop mininet and exit connection.
84 MininetKeywords.Stop Mininet And Exit ${mininet_conn_id}
85 BuiltIn.Wait Until Keyword Succeeds ${mininet_timeout} 2s ClusterOpenFlow.Verify_Switch_Connections_Running_On_Member 0 1
88 [Documentation] 100K Flows deleted and verify.
89 ${config_datastore_delete_start_time}= DateTime.Get Current Date result_format=timestamp
90 ClusterManagement.Delete From Member ${RFC8040_NODES_API} 1
91 ${config_datastore_delete_end_time}= Get Current Date result_format=timestamp
92 ${config_datastore_delete_time}= Subtract Date From Date ${config_datastore_delete_end_time} ${config_datastore_delete_start_time}
93 ${config_datastore_delete_rate}= Evaluate ${flow_count} / ${config_datastore_delete_time}
94 BuiltIn.Log to console ${\n}
95 BuiltIn.Log to console The config_datastore_delete_time is ${config_datastore_delete_time}
96 BuiltIn.Log to console The config_datastore_delete_rate is ${config_datastore_delete_rate}
97 BuiltIn.Set Suite Variable ${config_datastore_delete_time}
98 BuiltIn.Set Suite Variable ${config_datastore_delete_rate}
100 Log Results And Determine Status
101 [Documentation] Log results for plotting.
102 OperatingSystem.Append To File ${rate_results_file} Config DS,OVS Switch,Operational DS\n
103 OperatingSystem.Append To File ${rate_results_file} ${config_datastore_write_rate},${Mininet_write_rate},${oper_datastore_write_rate}\n
104 OperatingSystem.Append To File ${time_results_file} Config DS,OVS Switch,Operational DS\n
105 OperatingSystem.Append To File ${time_results_file} ${config_datastore_write_time},${Mininet_write_time},${oper_datastore_write_time}\n