diff --git a/libraries/vgc.robot b/libraries/vgc.robot
index 32d0900..74c9d31 100755
--- a/libraries/vgc.robot
+++ b/libraries/vgc.robot
@@ -423,11 +423,9 @@
         ${service_name}=    Set Variable    ${service[${I}]['name']}
         ${stag}=    Set Variable    ${service[${I}]['s_tag']}
         ${ctag}=    Set Variable    ${service[${I}]['c_tag']}
-        Run Keyword If    '${service_name}' == 'FTTB_SUBSCRIBER_TRAFFIC'
-        ...    Verify Subscriber Access Flows Added for DT FTTB    ${olt_of_id}
-        ...    ${onu_port}    ${nni_port}    ${stag}    ${ctag}
-        ...    Verify DPU MGMT Flows Added for DT FTTB    ${olt_of_id}
-        ...    ${onu_port}    ${nni_port}    ${stag}    ${ctag}
+        Run Keyword If    '${service_name}' == 'FTTB_SUBSCRIBER_TRAFFIC'   Run Keywords
+             Verify Subscriber Access Flows Added for DT FTTB    ${olt_of_id}    ${onu_port}    ${nni_port}    ${stag}        ${ctag}
+             Verify DPU MGMT Flows Added for DT FTTB    ${olt_of_id}    ${onu_port}    ${nni_port}    ${stag}    ${ctag    }
     END
 
 
diff --git a/tests/data/bbsim-kind-dt-fttb-1OLTx1PONx2ONUx2UNI.yaml b/tests/data/bbsim-kind-dt-fttb-1OLTx1PONx2ONUx2UNI.yaml
index 41f0593..bbc521e 100644
--- a/tests/data/bbsim-kind-dt-fttb-1OLTx1PONx2ONUx2UNI.yaml
+++ b/tests/data/bbsim-kind-dt-fttb-1OLTx1PONx2ONUx2UNI.yaml
@@ -21,7 +21,9 @@
 has_dataplane: false
 teardown_device: true
 ONOS_REST_PORT: 8181
+VGC_REST_PORT: 8181
 ONOS_SSH_PORT: 8101
+VGC_SSH_PORT: 8101
 OLT_PORT: 50060
 
 nodes:
diff --git a/tests/dt-workflow/Voltha_DT_FailureScenarios_VGC.robot b/tests/dt-workflow/Voltha_DT_FailureScenarios_VGC.robot
index 025cc1a..1cdb4d3 100644
--- a/tests/dt-workflow/Voltha_DT_FailureScenarios_VGC.robot
+++ b/tests/dt-workflow/Voltha_DT_FailureScenarios_VGC.robot
@@ -89,6 +89,11 @@
     ${countAfterRestart}=    Run    kubectl get pods -n ${NAMESPACE} | grep Running | wc -l
     Should Be Equal As Strings    ${countAfterRestart}    ${countBeforeRestart}
     Log to console    Pod ${podName} restarted and sanity checks passed successfully
+    # "Once the onu adapter is restarted, it takes a bit of time for the OLT's/ONUs to reconcile, if the OLT is deleted 
+    # before the ONUs are reconiled successfully there would be stale entries. This scenario is not handled in VOLTHA as 
+    # of now. And there is no other to check if the reconcile has happened for all the ONUs. Due to this limitations a
+    # sleep of 60s is introduced to give enough time for onu adapter to reconcile the ONUs."
+    Sleep   60s
     Run Keyword If    '${SOAK_TEST}'=='False'    Delete All Devices and Verify
 
 Verify restart openolt-adapter container after subscriber provisioning for DT
@@ -117,6 +122,11 @@
     Log    ${podStatusOutput}
     ${countAfterRestart}=    Run    kubectl get pods -n ${NAMESPACE} | grep Running | wc -l
     Should Be Equal As Strings    ${countAfterRestart}    ${countBforRestart}
+    # "Once the olt adapter is restarted, it takes a bit of time for the OLT's/ONUs to reconcile, if try to delete OLT
+    # before the OLT's are reconiled successfully there would be recocile error. This scenario is not handled in VOLTHA as
+    # of now. And there is no other to check if the reconcile has happened for all the OLTs. Due to this limitations a
+    # sleep of 60s is introduced to give enough time for OLT adapter to reconcile the OLTs."
+    Sleep   60s
     Log to console    Pod ${podName} restarted and sanity checks passed successfully
 
 Verify openolt adapter restart before subscriber provisioning for DT
@@ -139,7 +149,7 @@
         ${onu_device_id}=    Get Device ID From SN    ${src['onu']}
         Wait Until Keyword Succeeds    ${timeout}    5s
         ...    Validate Device        ENABLED    ACTIVE    REACHABLE
-        ...    ${onu_device_id}    onu=True    onu_reason=initial-mib-downloaded    by_dev_id=True
+        ...    ${onu_device_id}    onu=True    onu_reason=omci-flows-pushed    by_dev_id=True
     END
     # Scale down the open OLT adapter deployment to 0 PODs and once confirmed, scale it back to 1
     Scale K8s Deployment by Pod Label    ${NAMESPACE}    app    ${OLT_ADAPTER_APP_LABEL}    0
@@ -185,6 +195,11 @@
         ...    ${src['ip']}    ${src['user']}    ${src['pass']}    ${src['container_type']}    ${src['container_name']}
         ...    ${dst['dp_iface_name']}    ${dst['ip']}    ${dst['user']}    ${dst['pass']}    ${dst['container_type']}
         ...    ${dst['container_name']}
+    # "Once the olt adapter is restarted, it takes a bit of time for the OLT's/ONUs to reconcile, if try to delete OLT
+    # before the OLT's are reconiled successfully there would be recocile error. This scenario is not handled in VOLTHA as
+    # of now. And there is no other to check if the reconcile has happened for all the OLTs. Due to this limitations a
+    # sleep of 60s is introduced to give enough time for OLT adapter to reconcile the OLTs."
+    Sleep   60s
     END
 
 Sanity E2E Test for OLT/ONU on POD With Core Fail and Restart for DT
@@ -216,7 +231,7 @@
         ${onu_device_id}=    Get Device ID From SN    ${src['onu']}
         # Bring up the device and verify it authenticates
         Wait Until Keyword Succeeds    360s    5s    Validate Device    ENABLED    ACTIVE    REACHABLE
-        ...    ${onu_device_id}    onu=True    onu_reason=initial-mib-downloaded    by_dev_id=True
+        ...    ${onu_device_id}    onu=True    onu_reason=omci-flows-pushed    by_dev_id=True
     END
 
     # Scale down the rw-core deployment to 0 PODs and once confirmed, scale it back to 1
@@ -224,13 +239,13 @@
     Wait Until Keyword Succeeds    ${timeout}    2s    Pod Does Not Exist    voltha    voltha-voltha-rw-core
     # Ensure the ofagent POD goes "not-ready" as expected
     Wait Until keyword Succeeds    ${timeout}    2s
-    ...    Check Expected Available Deployment Replicas    voltha    voltha-voltha-ofagent    0
+    ...    Check Expected Available Deployment Replicas    voltha    voltha-voltha-go-controller    1
     # Scale up the core deployment and make sure both it and the ofagent deployment are back
     Scale K8s Deployment    voltha    voltha-voltha-rw-core    1
     Wait Until Keyword Succeeds    ${timeout}    2s
     ...    Check Expected Available Deployment Replicas    voltha    voltha-voltha-rw-core    1
     Wait Until Keyword Succeeds    ${timeout}    2s
-    ...    Check Expected Available Deployment Replicas    voltha    voltha-voltha-ofagent    1
+    ...    Check Expected Available Deployment Replicas    voltha    voltha-voltha-go-controller    1
     # For some reason scaling down and up the POD behind a service causes the port forward to stop working,
     # so restart the port forwarding for the API service
     Restart VOLTHA Port Forward    voltha-api
@@ -364,6 +379,11 @@
         Run Keyword If    ${has_dataplane}    Check Ping Result    True    ${ping_output}
     END
     # Verify Control Plane Functionality by Deleting and Re-adding the Subscriber
+    # "Once the onu adapter is restarted, it takes a bit of time for the OLT's/ONUs to reconcile, if the OLT is deleted
+    # before the ONUs are reconiled successfully there would be stale entries. This scenario is not handled in VOLTHA as
+    # of now. And there is no other to check if the reconcile has happened for all the ONUs. Due to this limitations a
+    # sleep of 60s is introduced to give enough time for onu adapter to reconcile the ONUs."
+    Sleep   60s
     Verify Control Plane After Pod Restart DT
 
 Verify restart openolt-adapter container for DT
@@ -420,6 +440,11 @@
         Run Keyword If    ${has_dataplane}    Check Ping Result    True    ${ping_output}
     END
     # Verify Control Plane Functionality by Deleting and Re-adding the Subscriber
+    # "Once the olt adapter is restarted, it takes a bit of time for the OLT's/ONUs to reconcile, if try to delete OLT
+    # before the OLT's are reconiled successfully there would be recocile error. This scenario is not handled in VOLTHA as
+    # of now. And there is no other to check if the reconcile has happened for all the OLTs. Due to this limitations a
+    # sleep of 60s is introduced to give enough time for OLT adapter to reconcile the OLTs."
+    Sleep   60s
     Verify Control Plane After Pod Restart DT
 
 Verify restart rw-core container for DT
@@ -479,6 +504,11 @@
         Run Keyword If    ${has_dataplane}    Check Ping Result    True    ${ping_output}
     END
     # Verify Control Plane Functionality by Deleting and Re-adding the Subscriber
+    # "Once the rw core is restarted, it takes a bit of time for the OLT's/ONUs to reconcile, if try to delete OLT
+    # before the OLT's are reconiled successfully there would be recocile error. This scenario is not handled in VOLTHA as
+    # of now. And there is no other to check if the reconcile has happened for all the OLTs. Due to this limitations a
+    # sleep of 60s is introduced to give enough time for rw core to reconcile the OLTs."
+    Sleep   60s
     Verify Control Plane After Pod Restart DT
 
 *** Keywords ***
diff --git a/tests/dt-workflow/Voltha_DT_PODTests_VGC.robot b/tests/dt-workflow/Voltha_DT_PODTests_VGC.robot
index 9923717..fd70309 100755
--- a/tests/dt-workflow/Voltha_DT_PODTests_VGC.robot
+++ b/tests/dt-workflow/Voltha_DT_PODTests_VGC.robot
@@ -261,63 +261,6 @@
     Run Keyword If    ${has_dataplane}    Clean Up Linux
     Perform Sanity Test DT
 
-Test Disable and Enable OLT for DT
-    [Documentation]    Validates E2E Ping Connectivity and object states for the given scenario:
-    ...    Assuming that all the ONUs are DHCP/pingable (i.e. assuming sanityDt test was executed)
-    ...    Perform disable on the OLT and validate that the pings do not succeed
-    ...    Perform enable on the OLT and validate that the pings are successful
-    [Tags]    functionalDt    DisableEnableOLTDt   soak
-    [Setup]    Start Logging    DisableEnableOLTDt
-    [Teardown]    Run Keywords    Run Keyword If    ${logging}    Collect Logs
-    ...           AND             Stop Logging    DisableEnableOLTDt
-    # Disable and Validate OLT Device
-    FOR   ${I}    IN RANGE    0    ${olt_count}
-        ${olt_serial_number}=    Get From Dictionary    ${olt_ids}[${I}]    sn
-        ${olt_device_id}=    Get OLTDeviceID From OLT List    ${olt_serial_number}
-        ${rc}    ${output}=    Run and Return Rc and Output
-        ...    voltctl -c ${VOLTCTL_CONFIG} device disable ${olt_device_id}
-        Should Be Equal As Integers    ${rc}    0
-        Wait Until Keyword Succeeds    ${timeout}    5s    Validate OLT Device    DISABLED    UNKNOWN    REACHABLE
-        ...    ${olt_serial_number}
-    END
-    # Validate ONUs
-    FOR    ${I}    IN RANGE    0    ${num_all_onus}
-        ${src}=    Set Variable    ${hosts.src[${I}]}
-        ${dst}=    Set Variable    ${hosts.dst[${I}]}
-        ${of_id}=    Get ofID From OLT List    ${src['olt']}
-        ${onu_port}=    Wait Until Keyword Succeeds    ${timeout}    2s
-        ...    Get ONU Port in VGC    ${src['onu']}    ${of_id}    ${src['uni_id']}
-        ${onu_device_id}=    Get Device ID From SN    ${src['onu']}
-        Wait Until Keyword Succeeds   ${timeout}    2s
-        ...    Verify UNI Port Is Disabled   ${VGC_SSH_IP}    ${VGC_SSH_PORT}    ${src['onu']}    ${src['uni_id']}
-        Run Keyword If    ${has_dataplane}    Run Keyword And Continue On Failure
-        ...    Wait Until Keyword Succeeds    ${timeout}    2s
-        ...    Check Ping    False    ${dst['dp_iface_ip_qinq']}    ${src['dp_iface_name']}
-        ...    ${src['ip']}    ${src['user']}    ${src['pass']}    ${src['container_type']}    ${src['container_name']}
-        # Remove Subscriber Access (To replicate DT workflow)
-        ${onu_port_name}=    Catenate    SEPARATOR=-    ${src['onu']}    ${src['uni_id']}
-	Wait Until Keyword Succeeds    ${timeout}    2s
-        ...    Delete Request    VGC    services/${onu_port_name}
-        # Delete ONU Device (To replicate DT workflow)
-        Delete Device    ${onu_device_id}
-    END
-    Sleep    5s
-    # Enable the OLT back and check ONU, OLT status are back to "ACTIVE"
-    FOR   ${I}    IN RANGE    0    ${olt_count}
-        ${olt_serial_number}=    Get From Dictionary    ${olt_ids}[${I}]    sn
-        ${olt_device_id}=    Get OLTDeviceID From OLT List    ${olt_serial_number}
-        Enable Device    ${olt_device_id}
-        Wait Until Keyword Succeeds    ${timeout}    5s    Validate OLT Device    ENABLED    ACTIVE    REACHABLE
-        ...    ${olt_serial_number}
-        #TODO: Update for PON_OLT ETHERNET_NNI
-        #Wait Until Keyword Succeeds    ${timeout}    5s    Validate OLT Port Types
-        #...    PON_OLT    ETHERNET_NNI
-    END
-    # Waiting extra time for the ONUs to come up
-    Sleep    60s
-    Run Keyword If    ${has_dataplane}    Clean Up Linux
-    Perform Sanity Test DT
-
 Test Delete and ReAdd OLT for DT
     [Documentation]    Validates E2E Ping Connectivity and object states for the given scenario:
     ...    Assuming that all the ONUs are DHCP/pingable (i.e. assuming sanityDt test was executed)
