Workaround for issue seen in VOL-4489

Change-Id: If89fcb9b5f1620ecabd794e62869b41f12b49a45
diff --git a/tests/dt-workflow/Voltha_DT_PODTests.robot b/tests/dt-workflow/Voltha_DT_PODTests.robot
index 4ece40e..3c6bcb0 100755
--- a/tests/dt-workflow/Voltha_DT_PODTests.robot
+++ b/tests/dt-workflow/Voltha_DT_PODTests.robot
@@ -201,7 +201,9 @@
         Wait Until Keyword Succeeds    ${timeout}    5s
         ...    Validate Device    ENABLED    ACTIVE
         ...    REACHABLE    ${src['onu']}    onu=True    onu_reason=omci-flows-pushed
-        # TODO: Yet to Verify on the GPON based Physical POD (VOL-2652)
+        # Workaround for issue seen in VOL-4489. Keep this workaround until VOL-4489 is fixed.
+        Run Keyword If    ${has_dataplane}    Reboot XGSPON ONU    ${src['olt']}    ${src['onu']}    omci-flows-pushed
+        # Workaround ends here for issue seen in VOL-4489.
         Run Keyword If    ${has_dataplane}    Run Keyword And Continue On Failure
         ...    Wait Until Keyword Succeeds    ${timeout}    2s
         ...    Check Ping    True    ${dst['dp_iface_ip_qinq']}    ${src['dp_iface_name']}
@@ -780,3 +782,18 @@
     Delete All Devices and Verify
     # Execute normal test Setup Keyword
     Setup
+
+Reboot XGSPON ONU
+    [Documentation]   Reboots the XGSPON ONU and verifies the ONU state after the reboot
+    [Arguments]    ${olt_sn}    ${onu_sn}    ${reason}
+    FOR    ${I}    IN RANGE    0    ${num_olts}
+        ${serial_number}    Evaluate    ${olts}[${I}].get("serial")
+        Continue For Loop If    "${serial_number}"!="${olt_sn}"
+        ${board_tech}    Evaluate    ${olts}[${I}].get("board_technology")
+        ${onu_device_id}=    Get Device ID From SN    ${onu_sn}
+        Run Keyword If    "${board_tech}"=="XGS-PON"    Run Keywords
+        ...    Reboot Device    ${onu_device_id}
+        ...    AND    Wait Until Keyword Succeeds    120s    5s
+        ...    Validate Device    ENABLED    ACTIVE
+        ...    REACHABLE    ${onu_sn}    onu=True    onu_reason=${reason}
+    END