2 Documentation Test suite for 3Node Cluster - 100K flows and 10 DPNs in Cluster Scale Up scenario
5 Library OperatingSystem
6 Library ../../../libraries/ScaleClient.py
7 Resource ../../../libraries/MininetKeywords.robot
8 Resource ../../../libraries/ClusterManagement.robot
9 Resource ../../../libraries/ClusterOpenFlow.robot
10 Resource ../../../variables/openflowplugin/Variables.robot
11 Variables ../../../variables/Variables.py
13 Suite Setup ClusterManagement Setup
14 Suite Teardown Delete All Sessions
18 ${operation_timeout} 250s
19 ${oper_ds_timeout} 400s
20 ${mininet_timeout} 120s
27 ${karaf_log_level} log:set WARN
28 ${rate_results_file} rate.csv
29 ${time_results_file} time.csv
34 [Documentation] Initialize variables and set the log.
35 Wait Until Keyword Succeeds 3x 3s ClusterManagement.Run_Karaf_Command_On_List_Or_All ${karaf_log_level}
36 ${controller_list}= Create List ${ODL_SYSTEM_IP}
37 Set Suite Variable ${controller_list}
38 ${flows} ${notes}= ScaleClient.Generate New Flow Details
39 ... flows=${flow_count}
40 ... switches=${switch_count}
41 ... swspread=${swspread}
42 ... tabspread=${tabspread}
43 Set Suite Variable ${flows}
45 Start Mininet And verify Switches
46 [Documentation] Start mininet.
47 ${mininet_conn_id}= MininetKeywords.Start Mininet Single Controller
48 ... ${TOOLS_SYSTEM_IP}
50 ... --topo linear,${switch_count}
51 BuiltIn.Set Suite Variable ${mininet_conn_id}
52 BuiltIn.Wait Until Keyword Succeeds
53 ... ${mininet_timeout}
55 ... ClusterOpenFlow.Verify_Switch_Connections_Running_On_Member
59 Add Bulk Flow Via REST
60 [Documentation] 100K Flows (1K Flows per DPN) in 100 DPN added and verify it gets applied.
61 ${config_datastore_write_start_time}= DateTime.Get Current Date result_format=timestamp
62 ScaleClient.Configure Flows Bulk
63 ... flow_details=${flows}
64 ... controllers=${controller_list}
65 ... nrthreads=${nrthreads}
67 ${config_datastore_write_end_time}= DateTime.Get Current Date result_format=timestamp
68 ${config_datastore_write_time}= DateTime.Subtract Date From Date
69 ... ${config_datastore_write_end_time}
70 ... ${config_datastore_write_start_time}
71 ${config_datastore_write_rate}= BuiltIn.Evaluate ${flow_count} / ${config_datastore_write_time}
72 BuiltIn.Set Suite Variable ${config_datastore_write_start_time}
73 BuiltIn.Log to console ${\n}
74 BuiltIn.Log to console The config_datastore_write_time is ${config_datastore_write_time}
75 BuiltIn.Log to console The config_datastore_write_rate is ${config_datastore_write_rate}
76 BuiltIn.Set Suite Variable ${config_datastore_write_time}
77 BuiltIn.Set Suite Variable ${config_datastore_write_rate}
79 Verify Flows In Switch
80 [Documentation] Verify 100K flows are installed in 100 switches.
81 ${Mininet_write_start_time}= DateTime.Get Current Date result_format=timestamp
82 MininetKeywords.Verify Aggregate Flow From Mininet Session
83 ... ${mininet_conn_id}
85 ... ${operation_timeout}
86 ${Mininet_write_end_time}= DateTime.Get Current Date result_format=timestamp
87 ${Mininet_write_time}= DateTime.Subtract Date From Date
88 ... ${Mininet_write_end_time}
89 ... ${config_datastore_write_start_time}
90 ${Mininet_write_rate}= BuiltIn.Evaluate ${flow_count} / ${Mininet_write_time}
91 BuiltIn.Log to console ${\n}
92 BuiltIn.Log to console The Mininet_write_time is ${Mininet_write_time}
93 BuiltIn.Log to console The Mininet_write_rate is ${Mininet_write_rate}
94 BuiltIn.Set Suite Variable ${Mininet_write_time}
95 BuiltIn.Set Suite Variable ${Mininet_write_rate}
97 Verify Flows In Oper DS
98 [Documentation] Check Flows in Operational Datastore
99 BuiltIn.Wait Until Keyword Succeeds
100 ... ${oper_ds_timeout}
102 ... ClusterOpenFlow.Check_Flows_Operational_Datastore_On_Member
105 ${oper_datastore_write_end_time}= DateTime.Get Current Date result_format=timestamp
106 ${oper_datastore_write_time}= DateTime.Subtract Date From Date
107 ... ${oper_datastore_write_end_time}
108 ... ${config_datastore_write_start_time}
109 ${oper_datastore_write_rate}= BuiltIn.Evaluate ${flow_count} / ${oper_datastore_write_time}
110 BuiltIn.Log to console ${\n}
111 BuiltIn.Log to console The operational_datastore_write_time is ${oper_datastore_write_time}
112 BuiltIn.Log to console The operational_datastore_write_rate is ${oper_datastore_write_rate}
113 BuiltIn.Set Suite Variable ${oper_datastore_write_time}
114 BuiltIn.Set Suite Variable ${oper_datastore_write_rate}
116 Stop Mininet And Verify
117 [Documentation] Stop mininet and exit connection.
118 MininetKeywords.Stop Mininet And Exit ${mininet_conn_id}
119 BuiltIn.Wait Until Keyword Succeeds
120 ... ${mininet_timeout}
122 ... ClusterOpenFlow.Verify_Switch_Connections_Running_On_Member
127 [Documentation] 100K Flows deleted and verify.
128 ${config_datastore_delete_start_time}= DateTime.Get Current Date result_format=timestamp
129 ClusterManagement.Delete From Member ${RFC8040_NODES_API} 1
130 ${config_datastore_delete_end_time}= Get Current Date result_format=timestamp
131 ${config_datastore_delete_time}= Subtract Date From Date
132 ... ${config_datastore_delete_end_time}
133 ... ${config_datastore_delete_start_time}
134 ${config_datastore_delete_rate}= Evaluate ${flow_count} / ${config_datastore_delete_time}
135 BuiltIn.Log to console ${\n}
136 BuiltIn.Log to console The config_datastore_delete_time is ${config_datastore_delete_time}
137 BuiltIn.Log to console The config_datastore_delete_rate is ${config_datastore_delete_rate}
138 BuiltIn.Set Suite Variable ${config_datastore_delete_time}
139 BuiltIn.Set Suite Variable ${config_datastore_delete_rate}
141 Log Results And Determine Status
142 [Documentation] Log results for plotting.
143 OperatingSystem.Append To File ${rate_results_file} Config DS,OVS Switch,Operational DS\n
144 OperatingSystem.Append To File
145 ... ${rate_results_file}
146 ... ${config_datastore_write_rate},${Mininet_write_rate},${oper_datastore_write_rate}\n
147 OperatingSystem.Append To File ${time_results_file} Config DS,OVS Switch,Operational DS\n
148 OperatingSystem.Append To File
149 ... ${time_results_file}
150 ... ${config_datastore_write_time},${Mininet_write_time},${oper_datastore_write_time}\n