diff --git a/libraries/flows.robot b/libraries/flows.robot
index 678270a..8e15939 100644
--- a/libraries/flows.robot
+++ b/libraries/flows.robot
@@ -59,11 +59,11 @@
     ${flow_count}=  Run Keyword If  $provisioned=='false'
     ...     Evaluate    (${uni_count} * ${eapFlowsCount}) + (${olt_count} * 2)
     ...     ELSE
-    ...     Calculate Att Provisione Flows  ${olt_count}    ${uni_count}
+    ...     Calculate Att Provisioned Flows  ${olt_count}    ${uni_count}
     ...     ${eapFlowsCount}   ${dhcpFlowsCount}   ${igmpFlowsCount}
     Return From Keyword     ${flow_count}
 
-Calculate Att Provisione Flows
+Calculate Att Provisioned Flows
     [Documentation]  This calculate the flows for provisioned subscribers in the ATT workflow
     [Arguments]  ${olt_count}   ${uni_count}    ${eapFlowsCount}   ${dhcpFlowsCount}   ${igmpFlowsCount}
     ${eap}=     Evaluate    ${uni_count} * ${eapFlowsCount}
diff --git a/libraries/voltctl.robot b/libraries/voltctl.robot
index 0d51b0e..33f5247 100644
--- a/libraries/voltctl.robot
+++ b/libraries/voltctl.robot
@@ -142,6 +142,15 @@
     Log    ${devices}
     Should Be Equal As Integers    ${rc1}    0
 
+Get Device List from Voltha by type
+    [Documentation]    Gets Device List Output from Voltha applying filtering by device type
+    [Arguments]  ${type}
+    ${rc1}    ${devices}=    Run and Return Rc and Output
+    ...     ${VOLTCTL_CONFIG}; voltctl device list -f Type=${type} -o json
+    Log    ${devices}
+    Should Be Equal As Integers    ${rc1}    0
+    Return From Keyword     ${devices}
+
 Get Logical Device List from Voltha
     [Documentation]    Gets Logical Device List Output from Voltha (in json format)
     ${rc1}    ${devices}=    Run and Return Rc and Output    ${VOLTCTL_CONFIG}; voltctl logicaldevice list -o json
@@ -482,6 +491,9 @@
         Should Be Equal As Integers    ${rc}    0
         ${total_flows}=     Evaluate    ${total_flows} + ${flows}
     END
+    ${msg}=     Format String   Found {total_flows} flows of {targetFlows} expected
+    ...     total_flows=${total_flows}  targetFlows=${targetFlows}
+    Log     ${msg}
     Should Be Equal As Integers    ${targetFlows}    ${total_flows}
 
 Wait for Logical Devices flows
@@ -494,3 +506,30 @@
     # TODO extend Validate Logical Device Flows to check the correct number of flows
     Wait Until Keyword Succeeds     10m     5s  Count Logical Devices flows     ${targetFlows}
 
+Count OpenOLT Device Flows
+    [Documentation]  Count the flows across openolt devices in VOLTHA
+    [Arguments]  ${targetFlows}
+    ${output}=     Get Device List from Voltha by type      openolt
+    ${devices}=    To Json    ${output}
+    ${total_flows}=     Set Variable    0
+    FOR     ${device}   IN  @{devices}
+        ${rc}    ${flows}=    Run and Return Rc and Output
+        ...     ${VOLTCTL_CONFIG}; voltctl device flows ${device['id']} | grep -v ID | wc -l
+        Should Be Equal As Integers    ${rc}    0
+        ${total_flows}=     Evaluate    ${total_flows} + ${flows}
+    END
+    ${msg}=     Format String   Found {total_flows} flows of {targetFlows} expected
+    ...     total_flows=${total_flows}  targetFlows=${targetFlows}
+    Log     ${msg}
+    Should Be Equal As Integers    ${targetFlows}    ${total_flows}
+
+Wait for OpenOLT Devices flows
+    [Documentation]  Waits until the flows have been provisioned in the openolt devices
+    [Arguments]  ${workflow}    ${uni_count}    ${olt_count}    ${provisioned}
+    ...     ${withEapol}    ${withDhcp}     ${withIgmp}
+    ${targetFlows}=     Calculate flows by workflow     ${workflow}    ${uni_count}    ${olt_count}     ${provisioned}
+    ...     ${withEapol}    ${withDhcp}     ${withIgmp}
+    # In the physical device we only have 2 data plane flows (on the PON) instead of 4
+    ${targetFlows}=     Evaluate    ${targetFlows} - (${uni_count} * 2)
+    Log     ${targetFlows}
+    Wait Until Keyword Succeeds     10m     5s  Count OpenOLT Device Flows     ${targetFlows}
\ No newline at end of file
diff --git a/tests/scale/Voltha_Scale_Tests.robot b/tests/scale/Voltha_Scale_Tests.robot
index c5b530c..76708ea 100644
--- a/tests/scale/Voltha_Scale_Tests.robot
+++ b/tests/scale/Voltha_Scale_Tests.robot
@@ -106,6 +106,13 @@
     Wait for Logical Devices flows   ${workflow}    ${total_onus}    ${olt}    false
     ...     ${withEapol}    ${withDhcp}     ${withIgmp}
 
+Flows validation in VOLTHA Adapters before subscriber provisioning
+    [Documentation]  Check that all flows has been store in devices of type openolt
+    [Tags]      non-critical    flow-before   plot-voltha-openolt-flows-before
+    Should Be Equal   ${enableFlowProvisioning}     true
+    Wait for OpenOLT Devices flows   ${workflow}    ${total_onus}    ${olt}    false
+    ...     ${withEapol}    ${withDhcp}     ${withIgmp}
+
 Flows validation in ONOS before subscriber provisioning
     [Documentation]    Check that all the flows has been acknowledged
     [Tags]      non-critical    flow-before   plot-onos-flows-before
@@ -136,6 +143,13 @@
     Wait for Logical Devices flows   ${workflow}    ${total_onus}    ${olt}    true
     ...     ${withEapol}    ${withDhcp}     ${withIgmp}
 
+Flows validation in VOLTHA Adapters after subscriber provisioning
+    [Documentation]  Check that all flows has been store in devices of type openolt
+    [Tags]      non-critical    flow-after   plot-voltha-openolt-flows-after
+    Should Be Equal   ${enableFlowProvisioning}     true
+    Wait for OpenOLT Devices flows   ${workflow}    ${total_onus}    ${olt}    true
+    ...     ${withEapol}    ${withDhcp}     ${withIgmp}
+
 Flows validation in ONOS after subscriber provisioning
     [Documentation]    Check that all the flows has been acknowledged
     [Tags]      non-critical    flow-after    plot-onos-flows-after
