[VOL-4483] Updated TT suite to use uniTag subscriber provisioning

Change-Id: I04a08e20752e6809ee8b997b3fb9318c73cf9702
diff --git a/Makefile b/Makefile
index 42069b1..ec52708 100755
--- a/Makefile
+++ b/Makefile
@@ -374,7 +374,7 @@
 bbsim-failurescenarios-dt: ROBOT_CONFIG_FILE := $(ROBOT_SANITY_DT_SINGLE_PON_FILE)
 bbsim-failurescenarios-dt: voltha-dt-test
 
-bbsim-failurescenarios-tt: ROBOT_MISC_ARGS += -X $(ROBOT_DEBUG_LOG_OPT) -e PowerSwitch -e PhysicalOltRebootTT
+bbsim-failurescenarios-tt: ROBOT_MISC_ARGS += -X $(ROBOT_DEBUG_LOG_OPT) -e PowerSwitch -e PhysicalOltRebootTT -e dataplaneTT
 bbsim-failurescenarios-tt: ROBOT_FILE := Voltha_TT_FailureScenarios.robot
 bbsim-failurescenarios-tt: ROBOT_CONFIG_FILE := $(ROBOT_SANITY_TT_SINGLE_PON_FILE)
 bbsim-failurescenarios-tt: voltha-tt-test
diff --git a/libraries/utils.robot b/libraries/utils.robot
index 397c115..19ffb88 100755
--- a/libraries/utils.robot
+++ b/libraries/utils.robot
@@ -475,9 +475,14 @@
     # Check ONU port is Enabled in ONOS
     Wait Until Keyword Succeeds    ${timeout}    2s
     ...    Verify UNI Port Is Enabled   ${ONOS_SSH_IP}    ${ONOS_SSH_PORT}    ${src['onu']}    ${src['uni_id']}
+    # Add subscriber
+    ${add_sub_cmd}=    Run Keyword If    ${unitag_sub}
+    ...    Catenate    volt-add-subscriber-unitag --tpId ${src['tp_id']} --sTag ${src['s_tag']}
+    ...    --cTag ${src['c_tag']} ${src['onu']}-${src['uni_id']}
+    ...    ELSE
+    ...    Set Variable    volt-add-subscriber-access ${of_id} ${onu_port}
     Run Keyword Unless    ${supress_add_subscriber}
-    ...    Execute ONOS CLI Command use single connection    ${ONOS_SSH_IP}    ${ONOS_SSH_PORT}
-    ...    volt-add-subscriber-access ${of_id} ${onu_port}
+    ...    Execute ONOS CLI Command use single connection    ${ONOS_SSH_IP}    ${ONOS_SSH_PORT}    ${add_sub_cmd}
     # Verify ONU state in voltha
     ${onu_reasons}=  Create List     omci-flows-pushed     onu-reenabled
     Wait Until Keyword Succeeds    ${timeout}    5s    Validate Device
diff --git a/tests/bbsim/Voltha_BBSimTests.robot b/tests/bbsim/Voltha_BBSimTests.robot
index 47643ba..cc420ca 100755
--- a/tests/bbsim/Voltha_BBSimTests.robot
+++ b/tests/bbsim/Voltha_BBSimTests.robot
@@ -58,6 +58,12 @@
 
 ${suppressaddsubscriber}    True
 
+# flag to choose the subscriber provisioning command type in ONOS
+# TT often provision a single services for a subscriber (eg: hsia, voip, ...) one after the other.
+# if set to True, command used is "volt-add-subscriber-unitag"
+# if set to False, comand used is "volt-add-subscriber-access"
+${unitag_sub}    False
+
 *** Test Cases ***
 
 Test Perform BBSim Sanity
diff --git a/tests/data/bbsim-kind-2OLTx2ONUx2PON-tt.yaml b/tests/data/bbsim-kind-2OLTx2ONUx2PON-tt.yaml
index 56177a5..c665818 100755
--- a/tests/data/bbsim-kind-2OLTx2ONUx2PON-tt.yaml
+++ b/tests/data/bbsim-kind-2OLTx2ONUx2PON-tt.yaml
@@ -46,6 +46,7 @@
       s_tag: '900'
       service_type: 'hsia'
       uni_id: '1'
+      tp_id: '64'
     -
       onu: 'BBSM000a0001'
       olt: 'BBSIM_OLT_10'
@@ -53,6 +54,7 @@
       s_tag: '333'
       service_type: 'voip'
       uni_id: '1'
+      tp_id: '65'
     -
       onu: 'BBSM000a0001'
       olt: 'BBSIM_OLT_10'
@@ -60,6 +62,7 @@
       s_tag: '555'
       service_type: 'vod'
       uni_id: '1'
+      tp_id: '66'
     -
       onu: 'BBSM000a0001'
       olt: 'BBSIM_OLT_10'
@@ -67,6 +70,7 @@
       s_tag: '550'
       service_type: 'mcast'
       uni_id: '1'
+      tp_id: '66'
     -
       onu: 'BBSM000a0002'
       olt: 'BBSIM_OLT_10'
@@ -74,6 +78,7 @@
       s_tag: '900'
       service_type: 'hsia'
       uni_id: '1'
+      tp_id: '64'
     -
       onu: 'BBSM000a0002'
       olt: 'BBSIM_OLT_10'
@@ -81,6 +86,7 @@
       s_tag: '333'
       service_type: 'voip'
       uni_id: '1'
+      tp_id: '65'
     -
       onu: 'BBSM000a0002'
       olt: 'BBSIM_OLT_10'
@@ -88,6 +94,7 @@
       s_tag: '555'
       service_type: 'vod'
       uni_id: '1'
+      tp_id: '66'
     -
       onu: 'BBSM000a0002'
       olt: 'BBSIM_OLT_10'
@@ -95,6 +102,7 @@
       s_tag: '550'
       service_type: 'mcast'
       uni_id: '1'
+      tp_id: '66'
     -
       onu: 'BBSM000a0101'
       olt: 'BBSIM_OLT_10'
@@ -102,6 +110,7 @@
       s_tag: '900'
       service_type: 'hsia'
       uni_id: '1'
+      tp_id: '64'
     -
       onu: 'BBSM000a0101'
       olt: 'BBSIM_OLT_10'
@@ -109,6 +118,7 @@
       s_tag: '333'
       service_type: 'voip'
       uni_id: '1'
+      tp_id: '65'
     -
       onu: 'BBSM000a0101'
       olt: 'BBSIM_OLT_10'
@@ -116,6 +126,7 @@
       s_tag: '555'
       service_type: 'vod'
       uni_id: '1'
+      tp_id: '66'
     -
       onu: 'BBSM000a0101'
       olt: 'BBSIM_OLT_10'
@@ -123,6 +134,7 @@
       s_tag: '550'
       service_type: 'mcast'
       uni_id: '1'
+      tp_id: '66'
     -
       onu: 'BBSM000a0102'
       olt: 'BBSIM_OLT_10'
@@ -130,6 +142,7 @@
       s_tag: '900'
       service_type: 'hsia'
       uni_id: '1'
+      tp_id: '64'
     -
       onu: 'BBSM000a0102'
       olt: 'BBSIM_OLT_10'
@@ -137,6 +150,7 @@
       s_tag: '333'
       service_type: 'voip'
       uni_id: '1'
+      tp_id: '65'
     -
       onu: 'BBSM000a0102'
       olt: 'BBSIM_OLT_10'
@@ -144,6 +158,7 @@
       s_tag: '555'
       service_type: 'vod'
       uni_id: '1'
+      tp_id: '66'
     -
       onu: 'BBSM000a0102'
       olt: 'BBSIM_OLT_10'
@@ -151,6 +166,7 @@
       s_tag: '550'
       service_type: 'mcast'
       uni_id: '1'
+      tp_id: '66'
     -
       onu: 'BBSM000b0001'
       olt: 'BBSIM_OLT_11'
@@ -158,6 +174,7 @@
       s_tag: '901'
       service_type: 'hsia'
       uni_id: '1'
+      tp_id: '64'
     -
       onu: 'BBSM000b0001'
       olt: 'BBSIM_OLT_11'
@@ -165,6 +182,7 @@
       s_tag: '333'
       service_type: 'voip'
       uni_id: '1'
+      tp_id: '65'
     -
       onu: 'BBSM000b0001'
       olt: 'BBSIM_OLT_11'
@@ -172,6 +190,7 @@
       s_tag: '555'
       service_type: 'vod'
       uni_id: '1'
+      tp_id: '66'
     -
       onu: 'BBSM000b0001'
       olt: 'BBSIM_OLT_11'
@@ -179,6 +198,7 @@
       s_tag: '550'
       service_type: 'mcast'
       uni_id: '1'
+      tp_id: '66'
     -
       onu: 'BBSM000b0002'
       olt: 'BBSIM_OLT_11'
@@ -186,6 +206,7 @@
       s_tag: '901'
       service_type: 'hsia'
       uni_id: '1'
+      tp_id: '64'
     -
       onu: 'BBSM000b0002'
       olt: 'BBSIM_OLT_11'
@@ -193,6 +214,7 @@
       s_tag: '333'
       service_type: 'voip'
       uni_id: '1'
+      tp_id: '65'
     -
       onu: 'BBSM000b0002'
       olt: 'BBSIM_OLT_11'
@@ -200,6 +222,7 @@
       s_tag: '555'
       service_type: 'vod'
       uni_id: '1'
+      tp_id: '66'
     -
       onu: 'BBSM000b0002'
       olt: 'BBSIM_OLT_11'
@@ -207,6 +230,7 @@
       s_tag: '550'
       service_type: 'mcast'
       uni_id: '1'
+      tp_id: '66'
     -
       onu: 'BBSM000b0101'
       olt: 'BBSIM_OLT_11'
@@ -214,6 +238,7 @@
       s_tag: '901'
       service_type: 'hsia'
       uni_id: '1'
+      tp_id: '64'
     -
       onu: 'BBSM000b0101'
       olt: 'BBSIM_OLT_11'
@@ -221,6 +246,7 @@
       s_tag: '333'
       service_type: 'voip'
       uni_id: '1'
+      tp_id: '65'
     -
       onu: 'BBSM000b0101'
       olt: 'BBSIM_OLT_11'
@@ -228,6 +254,7 @@
       s_tag: '555'
       service_type: 'vod'
       uni_id: '1'
+      tp_id: '66'
     -
       onu: 'BBSM000b0101'
       olt: 'BBSIM_OLT_11'
@@ -235,6 +262,7 @@
       s_tag: '550'
       service_type: 'mcast'
       uni_id: '1'
+      tp_id: '66'
     -
       onu: 'BBSM000b0102'
       olt: 'BBSIM_OLT_11'
@@ -242,6 +270,7 @@
       s_tag: '901'
       service_type: 'hsia'
       uni_id: '1'
+      tp_id: '64'
     -
       onu: 'BBSM000b0102'
       olt: 'BBSIM_OLT_11'
@@ -249,6 +278,7 @@
       s_tag: '333'
       service_type: 'voip'
       uni_id: '1'
+      tp_id: '65'
     -
       onu: 'BBSM000b0102'
       olt: 'BBSIM_OLT_11'
@@ -256,6 +286,7 @@
       s_tag: '555'
       service_type: 'vod'
       uni_id: '1'
+      tp_id: '66'
     -
       onu: 'BBSM000b0102'
       olt: 'BBSIM_OLT_11'
@@ -263,6 +294,7 @@
       s_tag: '550'
       service_type: 'mcast'
       uni_id: '1'
+      tp_id: '66'
   dst:
     - ip: null
     - ip: null
diff --git a/tests/data/bbsim-kind-multi-uni-tt.yaml b/tests/data/bbsim-kind-multi-uni-tt.yaml
index 58fac66..bc19afe 100755
--- a/tests/data/bbsim-kind-multi-uni-tt.yaml
+++ b/tests/data/bbsim-kind-multi-uni-tt.yaml
@@ -44,96 +44,112 @@
       s_tag: '900'
       service_type: 'hsia'
       uni_id: 1
+      tp_id: '64'
     - onu: 'BBSM000a0001'
       olt: 'BBSIM_OLT_10'
       c_tag: '444'
       s_tag: '333'
       uni_id: 1
       service_type: 'voip'
+      tp_id: '65'
     - onu: 'BBSM000a0001'
       olt: 'BBSIM_OLT_10'
       c_tag: '55'
       s_tag: '555'
       service_type: 'vod'
       uni_id: 1
+      tp_id: '66'
     - onu: 'BBSM000a0001'
       olt: 'BBSIM_OLT_10'
       c_tag: '55'
       s_tag: '550'
       service_type: 'mcast'
       uni_id: 1
+      tp_id: '66'
     - onu: 'BBSM000a0001'
       olt: 'BBSIM_OLT_10'
       c_tag: '901'
       s_tag: '900'
       service_type: 'hsia'
       uni_id: 2
+      tp_id: '64'
     - onu: 'BBSM000a0001'
       olt: 'BBSIM_OLT_10'
       c_tag: '444'
       s_tag: '333'
       uni_id: 2
       service_type: 'voip'
+      tp_id: '65'
     - onu: 'BBSM000a0001'
       olt: 'BBSIM_OLT_10'
       c_tag: '55'
       s_tag: '555'
       service_type: 'vod'
       uni_id: 2
+      tp_id: '66'
     - onu: 'BBSM000a0001'
       olt: 'BBSIM_OLT_10'
       c_tag: '55'
       s_tag: '550'
       service_type: 'mcast'
       uni_id: 2
+      tp_id: '66'
     - onu: 'BBSM000a0001'
       olt: 'BBSIM_OLT_10'
       c_tag: '902'
       s_tag: '900'
       service_type: 'hsia'
       uni_id: 3
+      tp_id: '64'
     - onu: 'BBSM000a0001'
       olt: 'BBSIM_OLT_10'
       c_tag: '444'
       s_tag: '333'
       uni_id: 3
       service_type: 'voip'
+      tp_id: '65'
     - onu: 'BBSM000a0001'
       olt: 'BBSIM_OLT_10'
       c_tag: '55'
       s_tag: '555'
       service_type: 'vod'
       uni_id: 3
+      tp_id: '66'
     - onu: 'BBSM000a0001'
       olt: 'BBSIM_OLT_10'
       c_tag: '55'
       s_tag: '550'
       service_type: 'mcast'
       uni_id: 3
+      tp_id: '66'
     - onu: 'BBSM000a0001'
       olt: 'BBSIM_OLT_10'
       c_tag: '903'
       s_tag: '900'
       service_type: 'hsia'
       uni_id: 4
+      tp_id: '64'
     - onu: 'BBSM000a0001'
       olt: 'BBSIM_OLT_10'
       c_tag: '444'
       s_tag: '333'
       uni_id: 4
       service_type: 'voip'
+      tp_id: '65'
     - onu: 'BBSM000a0001'
       olt: 'BBSIM_OLT_10'
       c_tag: '55'
       s_tag: '555'
       service_type: 'vod'
       uni_id: 4
+      tp_id: '66'
     - onu: 'BBSM000a0001'
       olt: 'BBSIM_OLT_10'
       c_tag: '55'
       s_tag: '550'
       service_type: 'mcast'
       uni_id: 4
+      tp_id: '66'
 
   dst:
     - ip: null
diff --git a/tests/data/bbsim-kind-tt.yaml b/tests/data/bbsim-kind-tt.yaml
index cb9201c..584ac1b 100755
--- a/tests/data/bbsim-kind-tt.yaml
+++ b/tests/data/bbsim-kind-tt.yaml
@@ -44,24 +44,28 @@
       s_tag: '900'
       service_type: 'hsia'
       uni_id: 1
+      tp_id: '64'
     - onu: 'BBSM000a0001'
       olt: 'BBSIM_OLT_10'
       c_tag: '444'
       s_tag: '333'
       uni_id: 1
       service_type: 'voip'
+      tp_id: '65'
     - onu: 'BBSM000a0001'
       olt: 'BBSIM_OLT_10'
       c_tag: '55'
       s_tag: '555'
       service_type: 'vod'
       uni_id: 1
+      tp_id: '66'
     - onu: 'BBSM000a0001'
       olt: 'BBSIM_OLT_10'
       c_tag: '55'
       s_tag: '550'
       service_type: 'mcast'
       uni_id: 1
+      tp_id: '66'
 
   dst:
     - ip: null
diff --git a/tests/openonu-go-adapter/Voltha_ONUFlowChecks.robot b/tests/openonu-go-adapter/Voltha_ONUFlowChecks.robot
index 3858c75..c9d8818 100755
--- a/tests/openonu-go-adapter/Voltha_ONUFlowChecks.robot
+++ b/tests/openonu-go-adapter/Voltha_ONUFlowChecks.robot
@@ -63,6 +63,12 @@
 ${pausebeforecleanup}    False
 ${data_dir}    ../data
 
+# flag to choose the subscriber provisioning command type in ONOS
+# TT often provision a single services for a subscriber (eg: hsia, voip, ...) one after the other.
+# if set to True, command used is "volt-add-subscriber-unitag"
+# if set to False, comand used is "volt-add-subscriber-access"
+${unitag_sub}    False
+
 *** Test Cases ***
 Flows Test
     [Documentation]    Validates onu vlan rules in etcd:
diff --git a/tests/openonu-go-adapter/Voltha_ONUNegativeStateTests.robot b/tests/openonu-go-adapter/Voltha_ONUNegativeStateTests.robot
index 512c498..012c724 100755
--- a/tests/openonu-go-adapter/Voltha_ONUNegativeStateTests.robot
+++ b/tests/openonu-go-adapter/Voltha_ONUNegativeStateTests.robot
@@ -65,6 +65,11 @@
 ${print2console}    False
 ${data_dir}    ../data
 
+# flag to choose the subscriber provisioning command type in ONOS
+# TT often provision a single services for a subscriber (eg: hsia, voip, ...) one after the other.
+# if set to True, command used is "volt-add-subscriber-unitag"
+# if set to False, comand used is "volt-add-subscriber-access"
+${unitag_sub}    False
 
 *** Test Cases ***
 ONU Negative State Test
diff --git a/tests/openonu-go-adapter/Voltha_ONUOmciGetTest.robot b/tests/openonu-go-adapter/Voltha_ONUOmciGetTest.robot
index 64b6312..8961c34 100755
--- a/tests/openonu-go-adapter/Voltha_ONUOmciGetTest.robot
+++ b/tests/openonu-go-adapter/Voltha_ONUOmciGetTest.robot
@@ -53,6 +53,12 @@
 ${logging}    False
 ${data_dir}    ../data
 
+# flag to choose the subscriber provisioning command type in ONOS
+# TT often provision a single services for a subscriber (eg: hsia, voip, ...) one after the other.
+# if set to True, command used is "volt-add-subscriber-unitag"
+# if set to False, comand used is "volt-add-subscriber-access"
+${unitag_sub}    False
+
 *** Test Cases ***
 ANI-G Test
     [Documentation]    Validates ANI-G output of ONU device(s):
diff --git a/tests/openonu-go-adapter/Voltha_ONUReconcileTests.robot b/tests/openonu-go-adapter/Voltha_ONUReconcileTests.robot
index 52118ee..c391631 100755
--- a/tests/openonu-go-adapter/Voltha_ONUReconcileTests.robot
+++ b/tests/openonu-go-adapter/Voltha_ONUReconcileTests.robot
@@ -78,6 +78,11 @@
 ${data_dir}    ../data
 ${suppressaddsubscriber}    True
 
+# flag to choose the subscriber provisioning command type in ONOS
+# TT often provision a single services for a subscriber (eg: hsia, voip, ...) one after the other.
+# if set to True, command used is "volt-add-subscriber-unitag"
+# if set to False, comand used is "volt-add-subscriber-access"
+${unitag_sub}    False
 
 *** Test Cases ***
 Reconcile In Starting-OpenOmci
diff --git a/tests/openonu-go-adapter/Voltha_ONUStateTests.robot b/tests/openonu-go-adapter/Voltha_ONUStateTests.robot
index 9a43a5a..a9372a5 100755
--- a/tests/openonu-go-adapter/Voltha_ONUStateTests.robot
+++ b/tests/openonu-go-adapter/Voltha_ONUStateTests.robot
@@ -78,6 +78,11 @@
 ${print2console}    False
 ${data_dir}    ../data
 
+# flag to choose the subscriber provisioning command type in ONOS
+# TT often provision a single services for a subscriber (eg: hsia, voip, ...) one after the other.
+# if set to True, command used is "volt-add-subscriber-unitag"
+# if set to False, comand used is "volt-add-subscriber-access"
+${unitag_sub}    False
 
 *** Test Cases ***
 ONU State Test
diff --git a/tests/openonu-go-adapter/Voltha_ONUTemplateTests.robot b/tests/openonu-go-adapter/Voltha_ONUTemplateTests.robot
index ca476db..f4bbe9b 100755
--- a/tests/openonu-go-adapter/Voltha_ONUTemplateTests.robot
+++ b/tests/openonu-go-adapter/Voltha_ONUTemplateTests.robot
@@ -59,6 +59,11 @@
 ${pausebeforecleanup}    False
 ${data_dir}    ../data
 
+# flag to choose the subscriber provisioning command type in ONOS
+# TT often provision a single services for a subscriber (eg: hsia, voip, ...) one after the other.
+# if set to True, command used is "volt-add-subscriber-unitag"
+# if set to False, comand used is "volt-add-subscriber-access"
+${unitag_sub}    False
 
 *** Test Cases ***
 ONU MIB Template Data Test
diff --git a/tests/pm-data/Voltha_ONUPMTests.robot b/tests/pm-data/Voltha_ONUPMTests.robot
index d69233a..8c82a80 100755
--- a/tests/pm-data/Voltha_ONUPMTests.robot
+++ b/tests/pm-data/Voltha_ONUPMTests.robot
@@ -85,6 +85,12 @@
 # example: -v ONU_UNI_STATUS_INTERVAL:50s
 ${ONU_UNI_STATUS_INTERVAL}    20s
 
+# flag to choose the subscriber provisioning command type in ONOS
+# TT often provision a single services for a subscriber (eg: hsia, voip, ...) one after the other.
+# if set to True, command used is "volt-add-subscriber-unitag"
+# if set to False, comand used is "volt-add-subscriber-access"
+${unitag_sub}    False
+
 *** Test Cases ***
 Check Default Metrics All ONUs
     [Documentation]    Validates the ONU Go adapter pm date resp. Metrics with dafault values
diff --git a/tests/tt-workflow/Voltha_TT_FailureScenarios.robot b/tests/tt-workflow/Voltha_TT_FailureScenarios.robot
index a23d3cf..9651d01 100755
--- a/tests/tt-workflow/Voltha_TT_FailureScenarios.robot
+++ b/tests/tt-workflow/Voltha_TT_FailureScenarios.robot
@@ -63,6 +63,12 @@
 
 ${suppressaddsubscriber}    True
 
+# flag to choose the subscriber provisioning command type in ONOS
+# TT often provision a single services for a subscriber (eg: hsia, voip, ...) one after the other.
+# if set to True, command used is "volt-add-subscriber-unitag"
+# if set to False, comand used is "volt-add-subscriber-access"
+${unitag_sub}    False
+
 *** Test Cases ***
 Verify ONU after Rebooting Physically for TT
     [Documentation]    Test the ONU functionality by physically turning on/off ONU.
@@ -98,17 +104,27 @@
         ...    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 TT workflow)
+        ${del_sub_cmd}=    Run Keyword If    ${unitag_sub}
+        ...    Catenate    volt-remove-subscriber-unitag --tpId ${src['tp_id']} --sTag ${src['s_tag']}
+        ...    --cTag ${src['c_tag']} ${src['onu']}-${src['uni_id']}
+        ...    ELSE
+        ...    Set Variable    volt-remove-subscriber-access ${of_id} ${onu_port}
         Wait Until Keyword Succeeds    ${timeout}    2s    Execute ONOS CLI Command use single connection    ${ONOS_SSH_IP}
-        ...    ${ONOS_SSH_PORT}    volt-remove-subscriber-access ${of_id} ${onu_port}
+        ...    ${ONOS_SSH_PORT}    ${del_sub_cmd}
         Sleep    5s
         # Enable Power Switch
         Enable Switch Outlet    ${src['power_switch_port']}
         # Check ONU port is Enabled in ONOS
         Wait Until Keyword Succeeds    120s    5s
         ...    Verify UNI Port Is Enabled   ${ONOS_SSH_IP}    ${ONOS_SSH_PORT}    ${src['onu']}
+        # Add Subscriber Access
+        ${add_sub_cmd}=    Run Keyword If    ${unitag_sub}
+        ...    Catenate    volt-add-subscriber-unitag --tpId ${src['tp_id']} --sTag ${src['s_tag']}
+        ...    --cTag ${src['c_tag']} ${src['onu']}-${src['uni_id']}
+        ...    ELSE
+        ...    Set Variable    volt-add-subscriber-access ${of_id} ${onu_port}
         Wait Until Keyword Succeeds    ${timeout}    2
-        ...    Execute ONOS CLI Command use single connection    ${ONOS_SSH_IP}    ${ONOS_SSH_PORT}
-        ...    volt-add-subscriber-access ${of_id} ${onu_port}
+        ...    Execute ONOS CLI Command use single connection    ${ONOS_SSH_IP}    ${ONOS_SSH_PORT}    ${add_sub_cmd}
         # Verify ONU state in voltha
         Wait Until Keyword Succeeds    ${timeout}    5s    Validate Device
         ...    ENABLED    ACTIVE    REACHABLE
@@ -203,14 +219,24 @@
         ...    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 TT workflow)
+        ${del_sub_cmd}=    Run Keyword If    ${unitag_sub}
+        ...    Catenate    volt-remove-subscriber-unitag --tpId ${src['tp_id']} --sTag ${src['s_tag']}
+        ...    --cTag ${src['c_tag']} ${src['onu']}-${src['uni_id']}
+        ...    ELSE
+        ...    Set Variable    volt-remove-subscriber-access ${of_id} ${onu_port}
         Wait Until Keyword Succeeds    ${timeout}    2s    Execute ONOS CLI Command use single connection    ${ONOS_SSH_IP}
-        ...    ${ONOS_SSH_PORT}    volt-remove-subscriber-access ${of_id} ${onu_port}
+        ...    ${ONOS_SSH_PORT}    ${del_sub_cmd}
         # Check ONU port is Enabled in ONOS
         Wait Until Keyword Succeeds    ${timeout}    5s
         ...    Verify UNI Port Is Enabled   ${ONOS_SSH_IP}    ${ONOS_SSH_PORT}    ${src['onu']}
+        # Add Subscriber Access
+        ${add_sub_cmd}=    Run Keyword If    ${unitag_sub}
+        ...    Catenate    volt-add-subscriber-unitag --tpId ${src['tp_id']} --sTag ${src['s_tag']}
+        ...    --cTag ${src['c_tag']} ${src['onu']}-${src['uni_id']}
+        ...    ELSE
+        ...    Set Variable    volt-add-subscriber-access ${of_id} ${onu_port}
         Wait Until Keyword Succeeds    ${timeout}    2
-        ...    Execute ONOS CLI Command use single connection    ${ONOS_SSH_IP}    ${ONOS_SSH_PORT}
-        ...    volt-add-subscriber-access ${of_id} ${onu_port}
+        ...    Execute ONOS CLI Command use single connection    ${ONOS_SSH_IP}    ${ONOS_SSH_PORT}    ${add_sub_cmd}
         # Verify ONU state in voltha
         Wait Until Keyword Succeeds    ${timeout}    5s    Validate Device
         ...    ENABLED    ACTIVE    REACHABLE
@@ -429,7 +455,7 @@
     ...    Run the ping continuously in background during container restart,
     ...    and verify that there should be no affect on the dataplane.
     ...    Also, verify that the voltha control plane functionality is not affected.
-    [Tags]    functionalTT    Restart-OpenOnu-Ping-TT
+    [Tags]    functionalTT    Restart-OpenOnu-Ping-TT    dataplaneTT
     [Setup]    Start Logging    Restart-OpenOnu-Ping-TT
     [Teardown]    Run Keywords    Collect Logs
     ...           AND             Stop Logging    Restart-OpenOnu-Ping-TT
@@ -491,7 +517,7 @@
     ...    Run the ping continuously in background during container restart,
     ...    and verify that there should be no affect on the dataplane.
     ...    Also, verify that the voltha control plane functionality is not affected.
-    [Tags]    functionalTT    Restart-OpenOlt-Ping-TT
+    [Tags]    functionalTT    Restart-OpenOlt-Ping-TT    dataplaneTT
     [Setup]    Start Logging    Restart-OpenOlt-Ping-TT
     [Teardown]    Run Keywords    Collect Logs
     ...           AND             Stop Logging    Restart-OpenOlt-Ping-TT
@@ -553,7 +579,7 @@
     ...    Run the ping continuously in background during container restart,
     ...    and verify that there should be no affect on the dataplane.
     ...    Also, verify that the voltha control plane functionality is not affected.
-    [Tags]    functionalTT    Restart-RwCore-Ping-TT
+    [Tags]    functionalTT    Restart-RwCore-Ping-TT    dataplaneTT
     [Setup]    Start Logging    Restart-RwCore-Ping-TT
     [Teardown]    Run Keywords    Collect Logs
     ...           AND             Stop Logging    Restart-RwCore-Ping-TT
@@ -645,15 +671,25 @@
         ${onu_port}=    Wait Until Keyword Succeeds    ${timeout}    2s    Get ONU Port in ONOS    ${src['onu']}
         ...    ${of_id}    ${src['uni_id']}
         # Remove Subscriber Access
+        ${del_sub_cmd}=    Run Keyword If    ${unitag_sub}
+        ...    Catenate    volt-remove-subscriber-unitag --tpId ${src['tp_id']} --sTag ${src['s_tag']}
+        ...    --cTag ${src['c_tag']} ${src['onu']}-${src['uni_id']}
+        ...    ELSE
+        ...    Set Variable    volt-remove-subscriber-access ${of_id} ${onu_port}
         Wait Until Keyword Succeeds    ${timeout}    2s    Execute ONOS CLI Command use single connection    ${ONOS_SSH_IP}
-        ...    ${ONOS_SSH_PORT}    volt-remove-subscriber-access ${of_id} ${onu_port}
+        ...    ${ONOS_SSH_PORT}    ${del_sub_cmd}
         Run Keyword If    ${has_dataplane} and '${service_type}' != 'mcast'
         ...    Wait Until Keyword Succeeds    ${timeout}    5s
         ...    Check Ping    False    ${dst['dp_iface_ip_qinq']}    ${src['dp_iface_name']}
         ...    ${src['ip']}    ${src['user']}    ${src['pass']}    ${src['container_type']}    ${src['container_name']}
         # Add Subscriber Access
+        ${add_sub_cmd}=    Run Keyword If    ${unitag_sub}
+        ...    Catenate    volt-add-subscriber-unitag --tpId ${src['tp_id']} --sTag ${src['s_tag']}
+        ...    --cTag ${src['c_tag']} ${src['onu']}-${src['uni_id']}
+        ...    ELSE
+        ...    Set Variable    volt-add-subscriber-access ${of_id} ${onu_port}`
         Wait Until Keyword Succeeds    ${timeout}    2s    Execute ONOS CLI Command use single connection    ${ONOS_SSH_IP}
-        ...    ${ONOS_SSH_PORT}    volt-add-subscriber-access ${of_id} ${onu_port}
+        ...    ${ONOS_SSH_PORT}    ${add_sub_cmd}
         Wait Until Keyword Succeeds    ${timeout}    5s
         ...    Validate Device    ENABLED    ACTIVE
         ...    REACHABLE    ${src['onu']}    onu=True    onu_reason=omci-flows-pushed
diff --git a/tests/tt-workflow/Voltha_TT_MultiTcontTests.robot b/tests/tt-workflow/Voltha_TT_MultiTcontTests.robot
index 6d5edf6..f3c3b97 100755
--- a/tests/tt-workflow/Voltha_TT_MultiTcontTests.robot
+++ b/tests/tt-workflow/Voltha_TT_MultiTcontTests.robot
@@ -60,6 +60,12 @@
 # example: -v logging:False
 ${logging}    True
 
+# flag to choose the subscriber provisioning command type in ONOS
+# TT often provision a single services for a subscriber (eg: hsia, voip, ...) one after the other.
+# if set to True, command used is "volt-add-subscriber-unitag"
+# if set to False, comand used is "volt-add-subscriber-access"
+${unitag_sub}    False
+
 # For dataplane bandwidth testing
 ${lower_margin_pct}      90      # Allow 10% under the limit
 ${upper_margin_pct}      120      # Allow 20% under the limit
diff --git a/tests/tt-workflow/Voltha_TT_MulticastTests.robot b/tests/tt-workflow/Voltha_TT_MulticastTests.robot
index 0567819..a9536b1 100644
--- a/tests/tt-workflow/Voltha_TT_MulticastTests.robot
+++ b/tests/tt-workflow/Voltha_TT_MulticastTests.robot
@@ -62,6 +62,12 @@
 
 ${suppressaddsubscriber}    True
 
+# flag to choose the subscriber provisioning command type in ONOS
+# TT often provision a single services for a subscriber (eg: hsia, voip, ...) one after the other.
+# if set to True, command used is "volt-add-subscriber-unitag"
+# if set to False, comand used is "volt-add-subscriber-access"
+${unitag_sub}    False
+
 *** Test Cases ***
 2 RG Same ONU Same Channel Multicast Test
     [Documentation]    Verify that 2 RG which are connected to the same ONU could join the same channel.
diff --git a/tests/tt-workflow/Voltha_TT_PODTests.robot b/tests/tt-workflow/Voltha_TT_PODTests.robot
index 6242721..977e06c 100755
--- a/tests/tt-workflow/Voltha_TT_PODTests.robot
+++ b/tests/tt-workflow/Voltha_TT_PODTests.robot
@@ -62,6 +62,12 @@
 
 ${suppressaddsubscriber}    True
 
+# flag to choose the subscriber provisioning command type in ONOS
+# TT often provision a single services for a subscriber (eg: hsia, voip, ...) one after the other.
+# if set to True, command used is "volt-add-subscriber-unitag"
+# if set to False, comand used is "volt-add-subscriber-access"
+${unitag_sub}    False
+
 *** Test Cases ***
 Reboot TT ONUs Physically - Clean Up
     [Documentation]   This test reboots ONUs physically before execution all the tests
@@ -176,8 +182,13 @@
         ${onu_port}=    Wait Until Keyword Succeeds    ${timeout}    2s    Get ONU Port in ONOS    ${src['onu']}
         ...    ${of_id}    ${src['uni_id']}
         # Remove Subscriber Access
+        ${del_sub_cmd}=    Run Keyword If    ${unitag_sub}
+        ...    Catenate    volt-remove-subscriber-unitag --tpId ${src['tp_id']} --sTag ${src['s_tag']}
+        ...    --cTag ${src['c_tag']} ${src['onu']}-${src['uni_id']}
+        ...    ELSE
+        ...    Set Variable    volt-remove-subscriber-access ${of_id} ${onu_port}
         Wait Until Keyword Succeeds    ${timeout}    2s    Execute ONOS CLI Command use single connection    ${ONOS_SSH_IP}
-        ...    ${ONOS_SSH_PORT}    volt-remove-subscriber-access ${of_id} ${onu_port}
+        ...    ${ONOS_SSH_PORT}    ${del_sub_cmd}
         Run Keyword If    ${has_dataplane} and '${service_type}' != 'mcast'
         ...    Wait Until Keyword Succeeds    ${timeout}    5s
         ...    Check Ping    False    ${dst['dp_iface_ip_qinq']}    ${src['dp_iface_name']}
@@ -188,8 +199,13 @@
         # Wait Until Keyword Succeeds    ${timeout}    5s    Validate Device Flows
         # ...    ${onu_device_id}    0
         # Add Subscriber Access
+        ${add_sub_cmd}=    Run Keyword If    ${unitag_sub}
+        ...    Catenate    volt-add-subscriber-unitag --tpId ${src['tp_id']} --sTag ${src['s_tag']}
+        ...    --cTag ${src['c_tag']} ${src['onu']}-${src['uni_id']}
+        ...    ELSE
+        ...    Set Variable    volt-add-subscriber-access ${of_id} ${onu_port}
         Wait Until Keyword Succeeds    ${timeout}    2s    Execute ONOS CLI Command use single connection    ${ONOS_SSH_IP}
-        ...    ${ONOS_SSH_PORT}    volt-add-subscriber-access ${of_id} ${onu_port}
+        ...    ${ONOS_SSH_PORT}    ${add_sub_cmd}
         Wait Until Keyword Succeeds    ${timeout}    5s
         ...    Validate Device    ENABLED    ACTIVE
         ...    REACHABLE    ${src['onu']}    onu=True    onu_reason=omci-flows-pushed