[VOL-4724] TIM Workflow Robot Test Setup

Added some configuration to the test enviroment for set up  multiple sanity test for tim workflow

Change-Id: I9cdc88eb278bb48945dd71befec81a7ddea9d312

Added some method to verify the correctness of flow rules genereted by ONOS.

Change-Id: Iba9a11a87070ce1bf4bbd7d06c767e1e2e1cac28

Added some Test Case to do a Sanity-Test for the TIM Workflow Test are x Multi OLT, Multi PON and Multi ONO About the correctness of generation about the ONOS flow rules

Change-Id: Ica62a7720554bb2cbf82597ee861a7149b89e30a

Test file structure to do a single OLT, Single PON and Single ONU Sanity Test for TIM Workflow

Change-Id: I5a1cdf323398055ec41d2dddbf5c842e3b50b393

Test file structure to do a single OLT, Single PON and Multi ONU Sanity Test for TIM Workflow

Change-Id: Ifc74e84da3bafda23c3501e40104624ff98a6007

Test file structure to do a single OLT, Multi PON and Multi ONU Sanity Test for TIM Workflow

Change-Id: I22a812ceac39caeb574feffc64892559f6c0096d

Test file structure to do a Multi OLT, Multi PON and Multi ONU Sanity Test for TIM Workflow

Change-Id: I68745b986cdb94347dff96ffd99608bffdfa8470

Robot Test Code to do TIM Workflow  Sanity Test
Scalability Test in ONOS and in OLTs and ONUs device

Change-Id: I1c21f45751b5502c16fbcadc6f70e50388389d3f
diff --git a/libraries/flows.robot b/libraries/flows.robot
index ff8b673..f6e6a4a 100644
--- a/libraries/flows.robot
+++ b/libraries/flows.robot
@@ -35,7 +35,9 @@
     ...     ${uni_count}    ${olt_count}    ${provisioned}  ${withLldp}
     ...     ELSE IF     $workflow=="tt"     Calculate Tt Flows
     ...     ${uni_count}    ${olt_count}    ${provisioned}  ${withDhcp}     ${withIgmp}     ${withLldp}
-    ...     ELSE    Fail    Workflow ${workflow} should be one of 'att', 'dt', 'tt'
+    ...     ELSE IF     $workflow=="tim"     Calculate Tim Flows
+    ...     ${uni_count}    ${olt_count}    ${provisioned}  ${withPppoe}     ${withIgmp}     ${withLldp}
+    ...     ELSE    Fail    Workflow ${workflow} should be one of 'att', 'dt', 'tt' , 'tim'
     Return From Keyword     ${expectedFlows}
 
 Calculate Att flows
@@ -130,4 +132,31 @@
     ...     Evaluate     ${totalDhcpFlows} + ${totalLldpFlows} + ${totalIgmpFlows}
     ...     ELSE
     ...     Evaluate    (${uni_count} * 15) + ${totalDhcpFlows} + ${totalLldpFlows} + ${totalIgmpFlows}
+    Return From Keyword     ${flow_count}
+
+Calculate Tim flows
+    [Documentation]  Calculate the flow for the Tim workflow
+    [Arguments]  ${uni_count}    ${olt_count}   ${provisioned}  ${withPppoe}     ${withIgmp}    ${withLldp}
+    # (1 LLDP + 1 PPPoE + 1 IGMP) for each OLTs before provisioning
+    # 1 Any VLAN + (4 * UNIs) * (1 LLDP + 1 PPPoE + 1 IGMP) for each OLTs after provisioning
+    ${anyVlanFlowsCount}=   Evaluate    1
+    ${pppoeFlowsCount}=   Run Keyword If   $withPppoe=='true'
+    ...     Evaluate     1
+    ...     ELSE
+    ...     Evaluate     0
+    ${lldpFlowsCount}=   Run Keyword If   $withLldp=='true'
+    ...     Evaluate     1
+    ...     ELSE
+    ...     Evaluate     0
+    ${igmpFlowsCount}=   Run Keyword If   $withIgmp=='true'
+    ...     Evaluate     1
+    ...     ELSE
+    ...     Evaluate     0
+    ${pppoeFlowsCount}=   Evaluate   ${olt_count} * ${pppoeFlowsCount}
+    ${totalLldpFlows}=   Evaluate   ${olt_count} * ${lldpFlowsCount}
+    ${totalIgmpFlows}=   Evaluate   ${olt_count} * ${igmpFlowsCount}
+    ${flow_count}=  Run Keyword If  $provisioned=='false'
+    ...     Evaluate     ${pppoeFlowsCount} + ${totalLldpFlows} + ${totalIgmpFlows}
+    ...     ELSE
+    ...     Evaluate    ${anyVlanFlowsCount} + (${uni_count} * 4) + ${pppoeFlowsCount} + ${totalLldpFlows} + ${totalIgmpFlows}
     Return From Keyword     ${flow_count}
\ No newline at end of file