[VOL-3138] Leveraging enableLldp flag to count OLT NNI flows

Change-Id: Iff0f037e3389678260d2f0f3c3d03719d246eea7
diff --git a/libraries/flows.robot b/libraries/flows.robot
index 8e15939..8772e63 100644
--- a/libraries/flows.robot
+++ b/libraries/flows.robot
@@ -28,20 +28,21 @@
     [Documentation]  Calculate how many flows should be created based on the workflow, the number of UNIs
     ...     and whether the subscribers have been provisioned
     [Arguments]  ${workflow}    ${uni_count}    ${olt_count}    ${provisioned}
-    ...     ${withEapol}    ${withDhcp}     ${withIgmp}
+    ...     ${withEapol}    ${withDhcp}     ${withIgmp}    ${withLldp}
     ${expectedFlows}=   Run Keyword If  $workflow=="att"  Calculate Att flows
-    ...     ${uni_count}    ${olt_count}    ${provisioned}  ${withEapol}    ${withDhcp}     ${withIgmp}
+    ...     ${uni_count}    ${olt_count}    ${provisioned}  ${withEapol}    ${withDhcp}     ${withIgmp}     ${withLldp}
     ...     ELSE IF     $workflow=="dt"     Calculate Dt Flows
-    ...     ${uni_count}    ${olt_count}    ${provisioned}
+    ...     ${uni_count}    ${olt_count}    ${provisioned}  ${withLldp}
     ...     ELSE IF     $workflow=="tt"     Calculate Tt Flows
-    ...     ${uni_count}    ${olt_count}    ${provisioned}  ${withDhcp}     ${withIgmp}
+    ...     ${uni_count}    ${olt_count}    ${provisioned}  ${withDhcp}     ${withIgmp}     ${withLldp}
     ...     ELSE    Fail    Workflow ${workflow} should be one of 'att', 'dt', 'tt'
     Return From Keyword     ${expectedFlows}
 
 Calculate Att flows
     [Documentation]  Calculate the flow for the ATT workflow
     ...     NOTE we may need to add support for IGMP enabled/disabled
-    [Arguments]  ${uni_count}    ${olt_count}   ${provisioned}      ${withEapol}    ${withDhcp}     ${withIgmp}
+    [Arguments]  ${uni_count}    ${olt_count}   ${provisioned}      ${withEapol}    ${withDhcp}
+    ...     ${withIgmp}    ${withLldp}
     # (1 EAPOL * ONUs) * (1 LLDP + 1 DHCP * OLTS) before provisioning
     # (1 EAPOL, 1 DHCP, 1 IGMP, 4 DP * ONUs) * (1 LLDP + 1 DHCP * OLTS) after provisioning
     ${eapFlowsCount}=   Run Keyword If   $withEapol=='true'
@@ -56,43 +57,70 @@
     ...     Evaluate     2
     ...     ELSE
     ...     Evaluate     0
+    ${lldpFlowsCount}=   Run Keyword If   $withLldp=='true'
+    ...     Evaluate     1
+    ...     ELSE
+    ...     Evaluate     0
     ${flow_count}=  Run Keyword If  $provisioned=='false'
-    ...     Evaluate    (${uni_count} * ${eapFlowsCount}) + (${olt_count} * 2)
+    ...     Calculate Att Preprovisioned Flows   ${olt_count}    ${uni_count}
+    ...     ${eapFlowsCount}   ${dhcpFlowsCount}   ${igmpFlowsCount}    ${lldpFlowsCount}
     ...     ELSE
     ...     Calculate Att Provisioned Flows  ${olt_count}    ${uni_count}
-    ...     ${eapFlowsCount}   ${dhcpFlowsCount}   ${igmpFlowsCount}
+    ...     ${eapFlowsCount}   ${dhcpFlowsCount}   ${igmpFlowsCount}    ${lldpFlowsCount}
     Return From Keyword     ${flow_count}
 
+Calculate Att Preprovisioned Flows
+    [Documentation]  This calcualtes the flows before subscribers are provisioned in the ATT workflow
+    [Arguments]  ${olt_count}   ${uni_count}    ${eapFlowsCount}   ${dhcpFlowsCount}
+    ...    ${igmpFlowsCount}   ${lldpFlowsCount}
+    ${eap}=     Evaluate    ${uni_count} * ${eapFlowsCount}
+    ${nni}=     Evaluate    (${olt_count} * ${dhcpFlowsCount}) + (${olt_count} * ${lldpFlowsCount})
+    ${total}=   Evaluate    ${eap} + ${nni}
+    Return From Keyword     ${total}
+
 Calculate Att Provisioned Flows
-    [Documentation]  This calculate the flows for provisioned subscribers in the ATT workflow
-    [Arguments]  ${olt_count}   ${uni_count}    ${eapFlowsCount}   ${dhcpFlowsCount}   ${igmpFlowsCount}
+    [Documentation]  This calculates the flows for provisioned subscribers in the ATT workflow
+    [Arguments]  ${olt_count}   ${uni_count}    ${eapFlowsCount}   ${dhcpFlowsCount}
+    ...    ${igmpFlowsCount}   ${lldpFlowsCount}
     ${eap}=     Evaluate    ${uni_count} * ${eapFlowsCount}
     ${dhcp}=    Evaluate    ${uni_count} * ${dhcpFlowsCount}
     ${igmp}=    Evaluate    ${uni_count} * ${igmpFlowsCount}
     ${dataplane}=   Evaluate    ${uni_count} * 4
-    ${nni}=     Evaluate    ${olt_count} * 2
+    ${nni}=     Evaluate    (${olt_count} * ${dhcpFlowsCount}) + (${olt_count} * ${lldpFlowsCount})
     ${total}=   Evaluate    ${eap} + ${dhcp} + ${igmp} + ${dataplane} + ${nni}
     Return From Keyword     ${total}
 
 Calculate Dt flows
     [Documentation]  Calculate the flow for the DT workflow
-    [Arguments]  ${uni_count}    ${olt_count}   ${provisioned}
+    [Arguments]  ${uni_count}    ${olt_count}   ${provisioned}   ${withLldp}
     # (1 LLDP * OLTS) before provisioning
     # (4 DP * ONUs) * (1 LLDP * OLTS) after provisioning
+    ${lldpFlowsCount}=   Run Keyword If   $withLldp=='true'
+    ...     Evaluate     1
+    ...     ELSE
+    ...     Evaluate     0
     ${flow_count}=  Run Keyword If  $provisioned=='false'
-        ...     Evaluate    (${olt_count} * 1)
+        ...     Evaluate    (${olt_count} * ${lldpFlowsCount})
         ...     ELSE
-        ...     Evaluate    (${uni_count} * 4) + (${olt_count} * 1)
+        ...     Evaluate    (${uni_count} * 4) + (${olt_count} * ${lldpFlowsCount})
     Return From Keyword     ${flow_count}
 
 Calculate Tt flows
     [Documentation]  Calculate the flow for the TT workflow
-    [Arguments]  ${uni_count}    ${olt_count}   ${provisioned}  ${withDhcp}     ${withIgmp}
+    [Arguments]  ${uni_count}    ${olt_count}   ${provisioned}  ${withDhcp}     ${withIgmp}    ${withLldp}
     # TODO account for withDhcp, withIgmp, see Calculate Att flows for examples
     # (1 LLDP + 1 DHCP * OLTS) before provisioning
     # (1 DHCP, 1 IGMP, 4 DP * ONUs) * (1 LLDP + 1 DHCP * OLTS) after provisioning
+    ${dhcpFlowsCount}=   Run Keyword If   $withDhcp=='true'
+    ...     Evaluate     1
+    ...     ELSE
+    ...     Evaluate     0
+    ${lldpFlowsCount}=   Run Keyword If   $withLldp=='true'
+    ...     Evaluate     1
+    ...     ELSE
+    ...     Evaluate     0
     ${flow_count}=  Run Keyword If  $provisioned=='false'
-        ...     Evaluate    (${olt_count} * 2)
+        ...     Evaluate    (${olt_count} * ${dhcpFlowsCount}) + (${olt_count} * ${lldpFlowsCount})
         ...     ELSE
-        ...     Evaluate    (${uni_count} * 6) + (${olt_count} * 1)
+        ...     Evaluate    (${uni_count} * 6) + (${olt_count} * ${dhcpFlowsCount}) + (${olt_count} * ${lldpFlowsCount})
     Return From Keyword     ${flow_count}
\ No newline at end of file