diff --git a/Jenkinsfile-rcord b/Jenkinsfile-rcord
index 48201ab..792e231 100644
--- a/Jenkinsfile-rcord
+++ b/Jenkinsfile-rcord
@@ -148,20 +148,32 @@
             } catch(error) { currentBuild.result = 'FAILURE' }
         }
     }
-    /*stage('Dataplane Test') {
+    stage('Dataplane Test') {
         timeout(10) {
             try {
                 runHeadNodeCmd("""
                 cd /opt/cord/test/cord-tester/src/test/vsg/
                 rm -r Log/ || true
                 rm -r TestDoc/ || true
-                mkdir TestDoc || true
-                pybot -L TRACE -v pod:${deployment_config.pod_config.file_name} -d Log -T vsg_dataplane_test.robot
-                python -m robot.testdoc vsg_dataplane_test.robot TestDoc/vsg_dataplane_test.html
+                mkdir TestDoc
                 """)
+                if (deployment_config.pod_config.file_name != 'calix-pod1.yml') {
+                    runHeadNodeCmd("""
+                    cd /opt/cord/test/cord-tester/src/test/vsg/
+                    pybot -L TRACE -v pod:${deployment_config.pod_config.file_name} -d Log -T vsg_dataplane_test.robot
+                    python -m robot.testdoc vsg_dataplane_test.robot TestDoc/vsg_dataplane_test.html
+                    """)
+                }
+                else {
+                    runHeadNodeCmd("""
+                    cd /opt/cord/test/cord-tester/src/test/vsg/
+                    pybot -L TRACE -v pod:${deployment_config.pod_config.file_name} -e dataplane -d Log -T vsg_dataplane_test.robot
+                    python -m robot.testdoc vsg_dataplane_test.robot TestDoc/vsg_dataplane_test.html
+                    """)
+                }
             } catch(error) { currentBuild.result = 'FAILURE' }
-        }
-    }*/
+         }
+    }
     stage('Publish') {
         try {
             sh """
diff --git a/src/test/vsg/vsg_dataplane_test.robot b/src/test/vsg/vsg_dataplane_test.robot
index 1fb7ebb..e4c24c1 100644
--- a/src/test/vsg/vsg_dataplane_test.robot
+++ b/src/test/vsg/vsg_dataplane_test.robot
@@ -14,6 +14,7 @@
 
 *** Settings ***
 Suite Setup       Setup
+Suite Teardown    Teardown
 Test Timeout      10 minutes
 Documentation     Validates external connectivity from Cord-Tester Container through VSG Subscriber
 Library           OperatingSystem
@@ -51,17 +52,17 @@
 
 Configure X-Connects for 3 Subscribers
     [Documentation]    Configures the cross connect on the fabric switch with s-tags for the subscribers created via control-plane tests on the correct ports
-    [Tags]    xconnect
+    [Tags]    xconnect    dataplane
     ${netcfg_init}=    onosUtils.onos_command_execute    onos-fabric    8101    netcfg
     Log    ${netcfg_init}
     Run    http -a onos:rocks DELETE http://onos-fabric:8181/onos/v1/network/configuration/
-    Sleep    5
+    Sleep    15
     Run    http -a onos:rocks POST http://onos-fabric:8181/onos/v1/network/configuration/ < /opt/cord/test/cord-tester/src/test/setup/${netcfg_file}
-    Sleep    5
+    Sleep    15
     Run    http -a onos:rocks DELETE http://onos-fabric:8181/onos/v1/applications/org.onosproject.segmentrouting/active
-    Sleep    5
+    Sleep    15
     Run    http -a onos:rocks POST http://onos-fabric:8181/onos/v1/applications/org.onosproject.segmentrouting/active
-    Sleep    5
+    Sleep    15
     ${netcfg}=    onosUtils.onos_command_execute    onos-fabric    8101    netcfg
     Log    ${netcfg}
     Should Contain    ${netcfg}    vsg-1
@@ -87,6 +88,7 @@
 
 Get VSG Subscriber and Tags
     [Documentation]    Retrieves compute node connected on leaf-1 and s/c tags for that particular subscriber
+    [Tags]    dataplane
     ${cmd}=    Set Variable    cordvtn-nodes | grep 10.6.1
     ${cnode}=    onosUtils.onos_command_execute    onos-cord    8102    ${cmd}
     @{cnode_on_leaf_1}=    Split String    ${cnode}
@@ -148,6 +150,11 @@
     Set Suite Variable    ${s_tags}
     Set Suite Variable    ${c_tags}
 
+Teardown
+    ${cmd}=    Set Variable    log:display
+    ${onos_logs}=    onosUtils.onos_command_execute    onos-fabric    8101    ${cmd}
+    Log    ${onos_logs}
+
 Validate Number of VSGs
     [Arguments]    ${count}
     ${novalist}=    Run    . /opt/cord_profile/admin-openrc.sh; nova list --all-tenants | awk '{print $2}' | grep '[a-z]'
