[VOL-4171][VOL-4212] Added support for multi-uni for ATT and TT workflow

Change-Id: Id20c3b37b385ff0c2639d5240be71e41de388e06
diff --git a/tests/data/TechProfile-TT-multi-uni-HSIA.json b/tests/data/TechProfile-TT-multi-uni-HSIA.json
new file mode 100644
index 0000000..c40ef21
--- /dev/null
+++ b/tests/data/TechProfile-TT-multi-uni-HSIA.json
@@ -0,0 +1,55 @@
+{
+	"name": "HSIA",
+	"profile_type": "XPON",
+	"version": 1,
+	"num_gem_ports": 1,
+	"instance_control": {
+		"onu": "multi-instance",
+		"uni": "single-instance",
+		"max_gem_payload_size": "auto"
+	},
+	"us_scheduler": {
+		"additional_bw": "AdditionalBW_BestEffort",
+		"direction": "UPSTREAM",
+		"priority": 2,
+		"weight": 20,
+		"q_sched_policy": "StrictPriority"
+	},
+	"ds_scheduler": {
+		"additional_bw": "AdditionalBW_BestEffort",
+		"direction": "DOWNSTREAM",
+		"priority": 2,
+		"weight": 20,
+		"q_sched_policy": "StrictPriority"
+	},
+	"upstream_gem_port_attribute_list": [{
+			"pbit_map": "0b00000001",
+			"aes_encryption": "True",
+			"scheduling_policy": "StrictPriority",
+			"priority_q": 2,
+			"weight": 20,
+			"discard_policy": "TailDrop",
+			"max_q_size": "auto",
+			"discard_config": {
+        			"max_threshold": 0,
+        			"min_threshold": 0,
+        			"max_probability": 0
+      			}
+		}
+	],
+	"downstream_gem_port_attribute_list": [{
+			"pbit_map": "0b00000001",
+			"aes_encryption": "True",
+			"scheduling_policy": "StrictPriority",
+			"priority_q": 2,
+			"weight": 20,
+			"discard_policy": "TailDrop",
+			"max_q_size": "auto",
+			"discard_config": {
+				"max_threshold": 0,
+				"min_threshold": 0,
+				"max_probability": 0
+			}
+		}
+	]
+}
diff --git a/tests/data/TechProfile-TT-multi-uni-MCAST-AdditionalBW-NA.json b/tests/data/TechProfile-TT-multi-uni-MCAST-AdditionalBW-NA.json
new file mode 100644
index 0000000..ffc553d
--- /dev/null
+++ b/tests/data/TechProfile-TT-multi-uni-MCAST-AdditionalBW-NA.json
@@ -0,0 +1,76 @@
+{
+	"name": "MCAST",
+	"profile_type":	"XPON",
+	"version": 1,
+   	"num_gem_ports": 1,
+   	"instance_control":{
+      		"onu": "multi-instance",
+      		"uni": "single-instance",
+      		"max_gem_payload_size": "auto"
+   	},
+   	"us_scheduler":{
+      		"additional_bw": "AdditionalBW_NA",
+      		"direction": "UPSTREAM",
+      		"priority": 1,
+      		"weight": 20,
+      		"q_sched_policy": "StrictPriority"
+   	},
+   	"ds_scheduler":{
+      		"additional_bw": "AdditionalBW_BestEffort",
+      		"direction": "DOWNSTREAM",
+      		"priority": 1,
+      		"weight": 20,
+      		"q_sched_policy": "StrictPriority"
+   	},
+   	"upstream_gem_port_attribute_list":[
+      	{
+         	"pbit_map": "0b00100000",
+         	"aes_encryption": "True",
+         	"scheduling_policy": "StrictPriority",
+         	"priority_q": 1,
+         	"weight": 20,
+         	"discard_policy": "TailDrop",
+         	"max_q_size": "auto",
+         	"discard_config": {
+            		"max_threshold": 0,
+            		"min_threshold": 0,
+            		"max_probability": 0
+         		}
+      	}
+   	],
+   	"downstream_gem_port_attribute_list":[
+      	{
+         	"pbit_map": "0b00100000",
+         	"aes_encryption": "True",
+         	"scheduling_policy": "StrictPriority",
+         	"priority_q": 1,
+         	"weight": 20,
+         	"discard_policy": "TailDrop",
+         	"max_q_size": "auto",
+         	"discard_config": {
+            		"max_threshold": 0,
+            		"min_threshold": 0,
+            		"max_probability": 0
+         	},
+         	"is_multicast": "True",
+         	"dynamic_access_control_list": "225.0.0.0-239.255.255.255",
+         	"static_access_control_list": "225.3.3.3",
+         	"multicast_gem_id": 4069
+      	},
+      	{
+         	"pbit_map": "0b00100000",
+         	"discard_policy": "TailDrop",
+         	"aes_encryption": "True",
+         	"scheduling_policy": "StrictPriority",
+         	"priority_q": 1,
+         	"weight": 20,
+         	"max_q_size": "auto",
+         	"discard_config": {
+            		"max_threshold": 0,
+            		"min_threshold": 0,
+            		"max_probability": 0
+         		},
+		"is_multicast": "False"
+      	}
+   	]
+}
diff --git a/tests/data/TechProfile-TT-multi-uni-MCAST-AdditionalBW-None.json b/tests/data/TechProfile-TT-multi-uni-MCAST-AdditionalBW-None.json
new file mode 100644
index 0000000..9ae7d66
--- /dev/null
+++ b/tests/data/TechProfile-TT-multi-uni-MCAST-AdditionalBW-None.json
@@ -0,0 +1,76 @@
+{
+	"name": "MCAST",
+	"profile_type":	"XPON",
+	"version": 1,
+   	"num_gem_ports": 1,
+   	"instance_control":{
+      		"onu": "multi-instance",
+      		"uni": "single-instance",
+      		"max_gem_payload_size": "auto"
+   	},
+   	"us_scheduler":{
+      		"additional_bw": "AdditionalBW_None",
+      		"direction": "UPSTREAM",
+      		"priority": 1,
+      		"weight": 20,
+      		"q_sched_policy": "StrictPriority"
+   	},
+   	"ds_scheduler":{
+      		"additional_bw": "AdditionalBW_BestEffort",
+      		"direction": "DOWNSTREAM",
+      		"priority": 1,
+      		"weight": 20,
+      		"q_sched_policy": "StrictPriority"
+   	},
+   	"upstream_gem_port_attribute_list":[
+      	{
+         	"pbit_map": "0b00100000",
+         	"aes_encryption": "True",
+         	"scheduling_policy": "StrictPriority",
+         	"priority_q": 1,
+         	"weight": 20,
+         	"discard_policy": "TailDrop",
+         	"max_q_size": "auto",
+         	"discard_config": {
+            		"max_threshold": 0,
+            		"min_threshold": 0,
+            		"max_probability": 0
+         		}
+      	}
+   	],
+   	"downstream_gem_port_attribute_list":[
+      	{
+         	"pbit_map": "0b00100000",
+         	"aes_encryption": "True",
+         	"scheduling_policy": "StrictPriority",
+         	"priority_q": 1,
+         	"weight": 20,
+         	"discard_policy": "TailDrop",
+         	"max_q_size": "auto",
+         	"discard_config": {
+            		"max_threshold": 0,
+            		"min_threshold": 0,
+            		"max_probability": 0
+         	},
+         	"is_multicast": "True",
+         	"dynamic_access_control_list": "225.0.0.0-239.255.255.255",
+         	"static_access_control_list": "225.3.3.3",
+         	"multicast_gem_id": 4069
+      	},
+      	{
+         	"pbit_map": "0b00100000",
+         	"discard_policy": "TailDrop",
+         	"aes_encryption": "True",
+         	"scheduling_policy": "StrictPriority",
+         	"priority_q": 1,
+         	"weight": 20,
+         	"max_q_size": "auto",
+         	"discard_config": {
+            		"max_threshold": 0,
+            		"min_threshold": 0,
+            		"max_probability": 0
+         		},
+		"is_multicast": "False"
+      	}
+   	]
+}
diff --git a/tests/data/TechProfile-TT-multi-uni-VoIP.json b/tests/data/TechProfile-TT-multi-uni-VoIP.json
new file mode 100644
index 0000000..10b1d8a
--- /dev/null
+++ b/tests/data/TechProfile-TT-multi-uni-VoIP.json
@@ -0,0 +1,55 @@
+{
+	"name": "VOIP",
+	"profile_type": "XPON",
+	"version": 1,
+	"num_gem_ports": 1,
+	"instance_control": {
+		"onu": "multi-instance",
+		"uni": "single-instance",
+		"max_gem_payload_size": "auto"
+	},
+	"us_scheduler": {
+		"additional_bw": "AdditionalBW_None",
+		"direction": "UPSTREAM",
+		"priority": 0,
+		"weight": 20,
+		"q_sched_policy": "StrictPriority"
+	},
+	"ds_scheduler": {
+		"additional_bw": "AdditionalBW_BestEffort",
+		"direction": "DOWNSTREAM",
+		"priority": 0,
+		"weight": 20,
+		"q_sched_policy": "StrictPriority"
+	},
+	"upstream_gem_port_attribute_list": [{
+			"pbit_map": "0b10000000",
+			"aes_encryption": "True",
+			"scheduling_policy": "StrictPriority",
+			"priority_q": 0,
+			"weight": 20,
+			"discard_policy": "TailDrop",
+			"max_q_size": "auto",
+			"discard_config": {
+        			"max_threshold": 0,
+        			"min_threshold": 0,
+        			"max_probability": 0
+      			}
+		}
+	],
+	"downstream_gem_port_attribute_list": [{
+			"pbit_map": "0b10000000",
+			"aes_encryption": "True",
+			"scheduling_policy": "StrictPriority",
+			"priority_q": 0,
+			"weight": 20,
+			"discard_policy": "TailDrop",
+			"max_q_size": "auto",
+			"discard_config": {
+				"max_threshold": 0,
+				"min_threshold": 0,
+				"max_probability": 0
+			}
+		}
+	]
+}
diff --git a/tests/data/bbsim-kind-16.yaml b/tests/data/bbsim-kind-16.yaml
index fef8835..a2ef6c0 100644
--- a/tests/data/bbsim-kind-16.yaml
+++ b/tests/data/bbsim-kind-16.yaml
@@ -37,36 +37,52 @@
   src:
     - onu: 'BBSM000a0001'
       olt: 'BBSIM_OLT_10'
+      uni_id: '1'
     - onu: 'BBSM000a0002'
       olt: 'BBSIM_OLT_10'
+      uni_id: '1'
     - onu: 'BBSM000a0003'
       olt: 'BBSIM_OLT_10'
+      uni_id: '1'
     - onu: 'BBSM000a0004'
       olt: 'BBSIM_OLT_10'
+      uni_id: '1'
     - onu: 'BBSM000a0005'
       olt: 'BBSIM_OLT_10'
+      uni_id: '1'
     - onu: 'BBSM000a0006'
       olt: 'BBSIM_OLT_10'
+      uni_id: '1'
     - onu: 'BBSM000a0007'
       olt: 'BBSIM_OLT_10'
+      uni_id: '1'
     - onu: 'BBSM000a0008'
       olt: 'BBSIM_OLT_10'
+      uni_id: '1'
     - onu: 'BBSM000a0009'
       olt: 'BBSIM_OLT_10'
+      uni_id: '1'
     - onu: 'BBSM000a000a'
       olt: 'BBSIM_OLT_10'
+      uni_id: '1'
     - onu: 'BBSM000a000b'
       olt: 'BBSIM_OLT_10'
+      uni_id: '1'
     - onu: 'BBSM000a000c'
       olt: 'BBSIM_OLT_10'
+      uni_id: '1'
     - onu: 'BBSM000a000d'
       olt: 'BBSIM_OLT_10'
+      uni_id: '1'
     - onu: 'BBSM000a000e'
       olt: 'BBSIM_OLT_10'
+      uni_id: '1'
     - onu: 'BBSM000a000f'
       olt: 'BBSIM_OLT_10'
+      uni_id: '1'
     - onu: 'BBSM000a0010'
       olt: 'BBSIM_OLT_10'
+      uni_id: '1'
 
   dst:
     - ip: null
diff --git a/tests/data/bbsim-kind-2OLTx2ONUx2PON-dt.yaml b/tests/data/bbsim-kind-2OLTx2ONUx2PON-dt.yaml
index 4c272a5..67a82d8 100755
--- a/tests/data/bbsim-kind-2OLTx2ONUx2PON-dt.yaml
+++ b/tests/data/bbsim-kind-2OLTx2ONUx2PON-dt.yaml
@@ -44,41 +44,49 @@
       c_tag: '4096'
       s_tag: '900'
       olt: 'BBSIM_OLT_10'
+      uni_id: '1'
     -
       onu: 'BBSM000a0002'
       c_tag: '4096'
       s_tag: '904'
       olt: 'BBSIM_OLT_10'
+      uni_id: '1'
     -
       onu: 'BBSM000a0101'
       olt: 'BBSIM_OLT_10'
       c_tag: '4096'
       s_tag: '908'
+      uni_id: '1'
     -
       onu: 'BBSM000a0102'
       olt: 'BBSIM_OLT_10'
       c_tag: '4096'
       s_tag: '912'
+      uni_id: '1'
     -
       onu: 'BBSM000b0001'
       c_tag: '4097'
       s_tag: '900'
       olt: 'BBSIM_OLT_11'
+      uni_id: '1'
     -
       onu: 'BBSM000b0002'
       c_tag: '4097'
       s_tag: '904'
       olt: 'BBSIM_OLT_11'
+      uni_id: '1'
     -
       onu: 'BBSM000b0101'
       olt: 'BBSIM_OLT_11'
       c_tag: '4097'
       s_tag: '908'
+      uni_id: '1'
     -
       onu: 'BBSM000b0102'
       olt: 'BBSIM_OLT_11'
       c_tag: '4097'
       s_tag: '912'
+      uni_id: '1'
   dst:
     - ip: null
     - ip: null
diff --git a/tests/data/bbsim-kind-2OLTx2ONUx2PON-tt.yaml b/tests/data/bbsim-kind-2OLTx2ONUx2PON-tt.yaml
index 928da63..3469558 100755
--- a/tests/data/bbsim-kind-2OLTx2ONUx2PON-tt.yaml
+++ b/tests/data/bbsim-kind-2OLTx2ONUx2PON-tt.yaml
@@ -45,192 +45,224 @@
       c_tag: '900'
       s_tag: '900'
       service_type: 'hsia'
+      uni_id: '1'
     -
       onu: 'BBSM000a0001'
       olt: 'BBSIM_OLT_10'
       c_tag: '444'
       s_tag: '333'
       service_type: 'voip'
+      uni_id: '1'
     -
       onu: 'BBSM000a0001'
       olt: 'BBSIM_OLT_10'
       c_tag: '55'
       s_tag: '555'
       service_type: 'vod'
+      uni_id: '1'
     -
       onu: 'BBSM000a0001'
       olt: 'BBSIM_OLT_10'
       c_tag: '55'
       s_tag: '550'
       service_type: 'mcast'
+      uni_id: '1'
     -
       onu: 'BBSM000a0002'
       olt: 'BBSIM_OLT_10'
       c_tag: '904'
       s_tag: '900'
       service_type: 'hsia'
+      uni_id: '1'
     -
       onu: 'BBSM000a0002'
       olt: 'BBSIM_OLT_10'
       c_tag: '444'
       s_tag: '333'
       service_type: 'voip'
+      uni_id: '1'
     -
       onu: 'BBSM000a0002'
       olt: 'BBSIM_OLT_10'
       c_tag: '55'
       s_tag: '555'
       service_type: 'vod'
+      uni_id: '1'
     -
       onu: 'BBSM000a0002'
       olt: 'BBSIM_OLT_10'
       c_tag: '55'
       s_tag: '550'
       service_type: 'mcast'
+      uni_id: '1'
     -
       onu: 'BBSM000a0101'
       olt: 'BBSIM_OLT_10'
       c_tag: '908'
       s_tag: '900'
       service_type: 'hsia'
+      uni_id: '1'
     -
       onu: 'BBSM000a0101'
       olt: 'BBSIM_OLT_10'
       c_tag: '444'
       s_tag: '333'
       service_type: 'voip'
+      uni_id: '1'
     -
       onu: 'BBSM000a0101'
       olt: 'BBSIM_OLT_10'
       c_tag: '55'
       s_tag: '555'
       service_type: 'vod'
+      uni_id: '1'
     -
       onu: 'BBSM000a0101'
       olt: 'BBSIM_OLT_10'
       c_tag: '55'
       s_tag: '550'
       service_type: 'mcast'
+      uni_id: '1'
     -
       onu: 'BBSM000a0102'
       olt: 'BBSIM_OLT_10'
       c_tag: '912'
       s_tag: '900'
       service_type: 'hsia'
+      uni_id: '1'
     -
       onu: 'BBSM000a0102'
       olt: 'BBSIM_OLT_10'
       c_tag: '444'
       s_tag: '333'
       service_type: 'voip'
+      uni_id: '1'
     -
       onu: 'BBSM000a0102'
       olt: 'BBSIM_OLT_10'
       c_tag: '55'
       s_tag: '555'
       service_type: 'vod'
+      uni_id: '1'
     -
       onu: 'BBSM000a0102'
       olt: 'BBSIM_OLT_10'
       c_tag: '55'
       s_tag: '550'
       service_type: 'mcast'
+      uni_id: '1'
     -
       onu: 'BBSM000b0001'
       olt: 'BBSIM_OLT_11'
       c_tag: '900'
       s_tag: '901'
       service_type: 'hsia'
+      uni_id: '1'
     -
       onu: 'BBSM000b0001'
       olt: 'BBSIM_OLT_11'
       c_tag: '444'
       s_tag: '333'
       service_type: 'voip'
+      uni_id: '1'
     -
       onu: 'BBSM000b0001'
       olt: 'BBSIM_OLT_11'
       c_tag: '55'
       s_tag: '555'
       service_type: 'vod'
+      uni_id: '1'
     -
       onu: 'BBSM000b0001'
       olt: 'BBSIM_OLT_11'
       c_tag: '55'
       s_tag: '550'
       service_type: 'mcast'
+      uni_id: '1'
     -
       onu: 'BBSM000b0002'
       olt: 'BBSIM_OLT_11'
       c_tag: '904'
       s_tag: '901'
       service_type: 'hsia'
+      uni_id: '1'
     -
       onu: 'BBSM000b0002'
       olt: 'BBSIM_OLT_11'
       c_tag: '444'
       s_tag: '333'
       service_type: 'voip'
+      uni_id: '1'
     -
       onu: 'BBSM000b0002'
       olt: 'BBSIM_OLT_11'
       c_tag: '55'
       s_tag: '555'
       service_type: 'vod'
+      uni_id: '1'
     -
       onu: 'BBSM000b0002'
       olt: 'BBSIM_OLT_11'
       c_tag: '55'
       s_tag: '550'
       service_type: 'mcast'
+      uni_id: '1'
     -
       onu: 'BBSM000b0101'
       olt: 'BBSIM_OLT_11'
       c_tag: '908'
       s_tag: '901'
       service_type: 'hsia'
+      uni_id: '1'
     -
       onu: 'BBSM000b0101'
       olt: 'BBSIM_OLT_11'
       c_tag: '444'
       s_tag: '333'
       service_type: 'voip'
+      uni_id: '1'
     -
       onu: 'BBSM000b0101'
       olt: 'BBSIM_OLT_11'
       c_tag: '55'
       s_tag: '555'
       service_type: 'vod'
+      uni_id: '1'
     -
       onu: 'BBSM000b0101'
       olt: 'BBSIM_OLT_11'
       c_tag: '55'
       s_tag: '550'
       service_type: 'mcast'
+      uni_id: '1'
     -
       onu: 'BBSM000b0102'
       olt: 'BBSIM_OLT_11'
       c_tag: '912'
       s_tag: '901'
       service_type: 'hsia'
+      uni_id: '1'
     -
       onu: 'BBSM000b0102'
       olt: 'BBSIM_OLT_11'
       c_tag: '444'
       s_tag: '333'
       service_type: 'voip'
+      uni_id: '1'
     -
       onu: 'BBSM000b0102'
       olt: 'BBSIM_OLT_11'
       c_tag: '55'
       s_tag: '555'
       service_type: 'vod'
+      uni_id: '1'
     -
       onu: 'BBSM000b0102'
       olt: 'BBSIM_OLT_11'
       c_tag: '55'
       s_tag: '550'
       service_type: 'mcast'
+      uni_id: '1'
   dst:
     - ip: null
     - ip: null
diff --git a/tests/data/bbsim-kind-2OLTx2ONUx2PON.yaml b/tests/data/bbsim-kind-2OLTx2ONUx2PON.yaml
index 60cf061..4871656 100755
--- a/tests/data/bbsim-kind-2OLTx2ONUx2PON.yaml
+++ b/tests/data/bbsim-kind-2OLTx2ONUx2PON.yaml
@@ -43,41 +43,49 @@
       c_tag: '900'
       s_tag: '900'
       olt: 'BBSIM_OLT_10'
+      uni_id: '1'
     -
       onu: 'BBSM000a0002'
       c_tag: '904'
       s_tag: '900'
       olt: 'BBSIM_OLT_10'
+      uni_id: '1'
     -
       onu: 'BBSM000a0101'
       olt: 'BBSIM_OLT_10'
       c_tag: '908'
       s_tag: '900'
+      uni_id: '1'
     -
       onu: 'BBSM000a0102'
       olt: 'BBSIM_OLT_10'
       c_tag: '912'
       s_tag: '900'
+      uni_id: '1'
     -
       onu: 'BBSM000b0001'
       c_tag: '900'
       s_tag: '901'
       olt: 'BBSIM_OLT_11'
+      uni_id: '1'
     -
       onu: 'BBSM000b0002'
       c_tag: '904'
       s_tag: '901'
       olt: 'BBSIM_OLT_11'
+      uni_id: '1'
     -
       onu: 'BBSM000b0101'
       olt: 'BBSIM_OLT_11'
       c_tag: '908'
       s_tag: '901'
+      uni_id: '1'
     -
       onu: 'BBSM000b0102'
       olt: 'BBSIM_OLT_11'
       c_tag: '912'
       s_tag: '901'
+      uni_id: '1'
   dst:
     - ip: null
     - ip: null
diff --git a/tests/data/bbsim-kind-2x2.yaml b/tests/data/bbsim-kind-2x2.yaml
index 32cdc80..72eba62 100644
--- a/tests/data/bbsim-kind-2x2.yaml
+++ b/tests/data/bbsim-kind-2x2.yaml
@@ -38,18 +38,22 @@
       olt: 'BBSIM_OLT_10'
       c_tag: '900'
       s_tag: '900'
+      uni_id: '1'
     - onu: 'BBSM000a0002'
       olt: 'BBSIM_OLT_10'
       c_tag: '904'
       s_tag: '900'
+      uni_id: '1'
     - onu: 'BBSM000a0101'
       olt: 'BBSIM_OLT_10'
       c_tag: '908'
       s_tag: '900'
+      uni_id: '1'
     - onu: 'BBSM000a0102'
       olt: 'BBSIM_OLT_10'
       c_tag: '912'
       s_tag: '900'
+      uni_id: '1'
 
   dst:
     - ip: null
diff --git a/tests/data/bbsim-kind-8x2.yaml b/tests/data/bbsim-kind-8x2.yaml
index e592d48..353195d 100644
--- a/tests/data/bbsim-kind-8x2.yaml
+++ b/tests/data/bbsim-kind-8x2.yaml
@@ -37,36 +37,52 @@
   src:
     - onu: 'BBSM000a0001'
       olt: 'BBSIM_OLT_10'
+      uni_id: '1'
     - onu: 'BBSM000a0002'
       olt: 'BBSIM_OLT_10'
+      uni_id: '1'
     - onu: 'BBSM000a0101'
       olt: 'BBSIM_OLT_10'
+      uni_id: '1'
     - onu: 'BBSM000a0102'
       olt: 'BBSIM_OLT_10'
+      uni_id: '1'
     - onu: 'BBSM000a0201'
       olt: 'BBSIM_OLT_10'
+      uni_id: '1'
     - onu: 'BBSM000a0202'
       olt: 'BBSIM_OLT_10'
+      uni_id: '1'
     - onu: 'BBSM000a0301'
       olt: 'BBSIM_OLT_10'
+      uni_id: '1'
     - onu: 'BBSM000a0302'
       olt: 'BBSIM_OLT_10'
+      uni_id: '1'
     - onu: 'BBSM000a0401'
       olt: 'BBSIM_OLT_10'
+      uni_id: '1'
     - onu: 'BBSM000a0402'
       olt: 'BBSIM_OLT_10'
+      uni_id: '1'
     - onu: 'BBSM000a0501'
       olt: 'BBSIM_OLT_10'
+      uni_id: '1'
     - onu: 'BBSM000a0502'
       olt: 'BBSIM_OLT_10'
+      uni_id: '1'
     - onu: 'BBSM000a0601'
       olt: 'BBSIM_OLT_10'
+      uni_id: '1'
     - onu: 'BBSM000a0602'
       olt: 'BBSIM_OLT_10'
+      uni_id: '1'
     - onu: 'BBSM000a0701'
       olt: 'BBSIM_OLT_10'
+      uni_id: '1'
     - onu: 'BBSM000a0702'
       olt: 'BBSIM_OLT_10'
+      uni_id: '1'
 
   dst:
     - ip: null
diff --git a/tests/data/bbsim-kind-8x8.yaml b/tests/data/bbsim-kind-8x8.yaml
index a5ea424..16b059e 100755
--- a/tests/data/bbsim-kind-8x8.yaml
+++ b/tests/data/bbsim-kind-8x8.yaml
@@ -38,258 +38,322 @@
       c_tag: '900'
       s_tag: '900'
       olt: BBSIM_OLT_10
+      uni_id: '1'
     - onu: 'BBSM000a0002'
       c_tag: '904'
       s_tag: '900'
       olt: BBSIM_OLT_10
+      uni_id: '1'
     - onu: 'BBSM000a0003'
       c_tag: '908'
       s_tag: '900'
       olt: BBSIM_OLT_10
+      uni_id: '1'
     - onu: 'BBSM000a0004'
       c_tag: '912'
       s_tag: '900'
       olt: BBSIM_OLT_10
+      uni_id: '1'
     - onu: 'BBSM000a0005'
       c_tag: '916'
       s_tag: '900'
       olt: BBSIM_OLT_10
+      uni_id: '1'
     - onu: 'BBSM000a0006'
       c_tag: '920'
       s_tag: '900'
       olt: BBSIM_OLT_10
+      uni_id: '1'
     - onu: 'BBSM000a0007'
       c_tag: '924'
       s_tag: '900'
       olt: BBSIM_OLT_10
+      uni_id: '1'
     - onu: 'BBSM000a0008'
       c_tag: '928'
       s_tag: '900'
       olt: BBSIM_OLT_10
+      uni_id: '1'
     - onu: 'BBSM000a0101'
       c_tag: '932'
       s_tag: '900'
       olt: BBSIM_OLT_10
+      uni_id: '1'
     - onu: 'BBSM000a0102'
       c_tag: '936'
       s_tag: '900'
       olt: BBSIM_OLT_10
+      uni_id: '1'
     - onu: 'BBSM000a0103'
       c_tag: '940'
       s_tag: '900'
       olt: BBSIM_OLT_10
+      uni_id: '1'
     - onu: 'BBSM000a0104'
       c_tag: '944'
       s_tag: '900'
       olt: BBSIM_OLT_10
+      uni_id: '1'
     - onu: 'BBSM000a0105'
       c_tag: '948'
       s_tag: '900'
       olt: BBSIM_OLT_10
+      uni_id: '1'
     - onu: 'BBSM000a0106'
       c_tag: '952'
       s_tag: '900'
       olt: BBSIM_OLT_10
+      uni_id: '1'
     - onu: 'BBSM000a0107'
       c_tag: '956'
       s_tag: '900'
       olt: BBSIM_OLT_10
+      uni_id: '1'
     - onu: 'BBSM000a0108'
       c_tag: '960'
       s_tag: '900'
       olt: BBSIM_OLT_10
+      uni_id: '1'
     - onu: 'BBSM000a0201'
       c_tag: '964'
       s_tag: '900'
       olt: BBSIM_OLT_10
+      uni_id: '1'
     - onu: 'BBSM000a0202'
       c_tag: '968'
       s_tag: '900'
       olt: BBSIM_OLT_10
+      uni_id: '1'
     - onu: 'BBSM000a0203'
       c_tag: '972'
       s_tag: '900'
       olt: BBSIM_OLT_10
+      uni_id: '1'
     - onu: 'BBSM000a0204'
       c_tag: '976'
       s_tag: '900'
       olt: BBSIM_OLT_10
+      uni_id: '1'
     - onu: 'BBSM000a0205'
       c_tag: '980'
       s_tag: '900'
       olt: BBSIM_OLT_10
+      uni_id: '1'
     - onu: 'BBSM000a0206'
       c_tag: '984'
       s_tag: '900'
       olt: BBSIM_OLT_10
+      uni_id: '1'
     - onu: 'BBSM000a0207'
       c_tag: '988'
       s_tag: '900'
       olt: BBSIM_OLT_10
+      uni_id: '1'
     - onu: 'BBSM000a0208'
       c_tag: '992'
       s_tag: '900'
       olt: BBSIM_OLT_10
+      uni_id: '1'
     - onu: 'BBSM000a0301'
       c_tag: '996'
       s_tag: '900'
       olt: BBSIM_OLT_10
+      uni_id: '1'
     - onu: 'BBSM000a0302'
       c_tag: '1000'
       s_tag: '900'
       olt: BBSIM_OLT_10
+      uni_id: '1'
     - onu: 'BBSM000a0303'
       c_tag: '1004'
       s_tag: '900'
       olt: BBSIM_OLT_10
+      uni_id: '1'
     - onu: 'BBSM000a0304'
       c_tag: '1008'
       s_tag: '900'
       olt: BBSIM_OLT_10
+      uni_id: '1'
     - onu: 'BBSM000a0305'
       c_tag: '1012'
       s_tag: '900'
       olt: BBSIM_OLT_10
+      uni_id: '1'
     - onu: 'BBSM000a0306'
       c_tag: '1016'
       s_tag: '900'
       olt: BBSIM_OLT_10
+      uni_id: '1'
     - onu: 'BBSM000a0307'
       c_tag: '1020'
       s_tag: '900'
       olt: BBSIM_OLT_10
+      uni_id: '1'
     - onu: 'BBSM000a0308'
       c_tag: '1024'
       s_tag: '900'
       olt: BBSIM_OLT_10
+      uni_id: '1'
     - onu: 'BBSM000a0401'
       c_tag: '1028'
       s_tag: '900'
       olt: BBSIM_OLT_10
+      uni_id: '1'
     - onu: 'BBSM000a0402'
       c_tag: '1032'
       s_tag: '900'
       olt: BBSIM_OLT_10
+      uni_id: '1'
     - onu: 'BBSM000a0403'
       c_tag: '1036'
       s_tag: '900'
       olt: BBSIM_OLT_10
+      uni_id: '1'
     - onu: 'BBSM000a0404'
       c_tag: '1040'
       s_tag: '900'
       olt: BBSIM_OLT_10
+      uni_id: '1'
     - onu: 'BBSM000a0405'
       c_tag: '1044'
       s_tag: '900'
       olt: BBSIM_OLT_10
+      uni_id: '1'
     - onu: 'BBSM000a0406'
       c_tag: '1048'
       s_tag: '900'
       olt: BBSIM_OLT_10
+      uni_id: '1'
     - onu: 'BBSM000a0407'
       c_tag: '1052'
       s_tag: '900'
       olt: BBSIM_OLT_10
+      uni_id: '1'
     - onu: 'BBSM000a0408'
       c_tag: '1056'
       s_tag: '900'
       olt: BBSIM_OLT_10
+      uni_id: '1'
     - onu: 'BBSM000a0501'
       c_tag: '1060'
       s_tag: '900'
       olt: BBSIM_OLT_10
+      uni_id: '1'
     - onu: 'BBSM000a0502'
       c_tag: '1064'
       s_tag: '900'
       olt: BBSIM_OLT_10
+      uni_id: '1'
     - onu: 'BBSM000a0503'
       c_tag: '1068'
       s_tag: '900'
       olt: BBSIM_OLT_10
+      uni_id: '1'
     - onu: 'BBSM000a0504'
       c_tag: '1072'
       s_tag: '900'
       olt: BBSIM_OLT_10
+      uni_id: '1'
     - onu: 'BBSM000a0505'
       c_tag: '1076'
       s_tag: '900'
       olt: BBSIM_OLT_10
+      uni_id: '1'
     - onu: 'BBSM000a0506'
       c_tag: '1080'
       s_tag: '900'
       olt: BBSIM_OLT_10
+      uni_id: '1'
     - onu: 'BBSM000a0507'
       c_tag: '1084'
       s_tag: '900'
       olt: BBSIM_OLT_10
+      uni_id: '1'
     - onu: 'BBSM000a0508'
       c_tag: '1088'
       s_tag: '900'
       olt: BBSIM_OLT_10
+      uni_id: '1'
     - onu: 'BBSM000a0601'
       c_tag: '1092'
       s_tag: '900'
       olt: BBSIM_OLT_10
+      uni_id: '1'
     - onu: 'BBSM000a0602'
       c_tag: '1096'
       s_tag: '900'
       olt: BBSIM_OLT_10
+      uni_id: '1'
     - onu: 'BBSM000a0603'
       c_tag: '1100'
       s_tag: '900'
       olt: BBSIM_OLT_10
+      uni_id: '1'
     - onu: 'BBSM000a0604'
       c_tag: '1104'
       s_tag: '900'
       olt: BBSIM_OLT_10
+      uni_id: '1'
     - onu: 'BBSM000a0605'
       c_tag: '1108'
       s_tag: '900'
       olt: BBSIM_OLT_10
+      uni_id: '1'
     - onu: 'BBSM000a0606'
       c_tag: '1112'
       s_tag: '900'
       olt: BBSIM_OLT_10
+      uni_id: '1'
     - onu: 'BBSM000a0607'
       c_tag: '1116'
       s_tag: '900'
       olt: BBSIM_OLT_10
+      uni_id: '1'
     - onu: 'BBSM000a0608'
       c_tag: '1120'
       s_tag: '900'
       olt: BBSIM_OLT_10
+      uni_id: '1'
     - onu: 'BBSM000a0701'
       c_tag: '1124'
       s_tag: '900'
       olt: BBSIM_OLT_10
+      uni_id: '1'
     - onu: 'BBSM000a0702'
       c_tag: '1128'
       s_tag: '900'
       olt: BBSIM_OLT_10
+      uni_id: '1'
     - onu: 'BBSM000a0703'
       c_tag: '1132'
       s_tag: '900'
       olt: BBSIM_OLT_10
+      uni_id: '1'
     - onu: 'BBSM000a0704'
       c_tag: '1136'
       s_tag: '900'
       olt: BBSIM_OLT_10
+      uni_id: '1'
     - onu: 'BBSM000a0705'
       c_tag: '1140'
       s_tag: '900'
       olt: BBSIM_OLT_10
+      uni_id: '1'
     - onu: 'BBSM000a0706'
       c_tag: '1144'
       s_tag: '900'
       olt: BBSIM_OLT_10
+      uni_id: '1'
     - onu: 'BBSM000a0707'
       c_tag: '1148'
       s_tag: '900'
       olt: BBSIM_OLT_10
+      uni_id: '1'
     - onu: 'BBSM000a0708'
       c_tag: '1152'
       s_tag: '900'
       olt: BBSIM_OLT_10
+      uni_id: '1'
   dst:
     - ip: null
     - ip: null
diff --git a/tests/data/bbsim-kind-dt.yaml b/tests/data/bbsim-kind-dt.yaml
index 1b77ad6..5585438 100644
--- a/tests/data/bbsim-kind-dt.yaml
+++ b/tests/data/bbsim-kind-dt.yaml
@@ -40,6 +40,7 @@
       olt: 'BBSIM_OLT_10'
       c_tag: '4096'
       s_tag: '900'
+      uni_id: '1'
 
   dst:
     - ip: null
diff --git a/tests/data/bbsim-kind-multi-uni-2OLTx2ONUx2PON.yaml b/tests/data/bbsim-kind-multi-uni-2OLTx2ONUx2PON.yaml
new file mode 100755
index 0000000..cd77b89
--- /dev/null
+++ b/tests/data/bbsim-kind-multi-uni-2OLTx2ONUx2PON.yaml
@@ -0,0 +1,265 @@
+---
+
+# Copyright 2017-present Open Networking Foundation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Automated deployment configuration for kind-voltha running BBSim
+
+# Change default values in tests
+has_dataplane: false
+external_libs: false
+teardown_device: true
+ONOS_REST_PORT: 8181
+ONOS_SSH_PORT: 8101
+OLT_PORT: 50060
+
+nodes:
+  -
+    ip: '127.0.0.1'
+
+olts:
+  -
+    ip: bbsim0.voltha.svc
+    serial: BBSIM_OLT_10
+  -
+    ip: bbsim1.voltha.svc
+    serial: BBSIM_OLT_11
+
+hosts:
+  src:
+    -
+      onu: 'BBSM000a0001'
+      c_tag: '900'
+      s_tag: '900'
+      olt: 'BBSIM_OLT_10'
+      uni_id: '1'
+    -
+      onu: 'BBSM000a0001'
+      c_tag: '901'
+      s_tag: '900'
+      olt: 'BBSIM_OLT_10'
+      uni_id: '2'
+    -
+      onu: 'BBSM000a0001'
+      c_tag: '902'
+      s_tag: '900'
+      olt: 'BBSIM_OLT_10'
+      uni_id: '3'
+    -
+      onu: 'BBSM000a0001'
+      c_tag: '903'
+      s_tag: '900'
+      olt: 'BBSIM_OLT_10'
+      uni_id: '4'
+    -
+      onu: 'BBSM000a0002'
+      c_tag: '904'
+      s_tag: '900'
+      olt: 'BBSIM_OLT_10'
+      uni_id: '1'
+    -
+      onu: 'BBSM000a0002'
+      c_tag: '905'
+      s_tag: '900'
+      olt: 'BBSIM_OLT_10'
+      uni_id: '2'
+    -
+      onu: 'BBSM000a0002'
+      c_tag: '906'
+      s_tag: '900'
+      olt: 'BBSIM_OLT_10'
+      uni_id: '3'
+    -
+      onu: 'BBSM000a0002'
+      c_tag: '907'
+      s_tag: '900'
+      olt: 'BBSIM_OLT_10'
+      uni_id: '4'
+    -
+      onu: 'BBSM000a0101'
+      olt: 'BBSIM_OLT_10'
+      c_tag: '908'
+      s_tag: '900'
+      uni_id: '1'
+    -
+      onu: 'BBSM000a0101'
+      olt: 'BBSIM_OLT_10'
+      c_tag: '909'
+      s_tag: '900'
+      uni_id: '2'
+    -
+      onu: 'BBSM000a0101'
+      olt: 'BBSIM_OLT_10'
+      c_tag: '910'
+      s_tag: '900'
+      uni_id: '3'
+    -
+      onu: 'BBSM000a0101'
+      olt: 'BBSIM_OLT_10'
+      c_tag: '911'
+      s_tag: '900'
+      uni_id: '4'
+    -
+      onu: 'BBSM000a0102'
+      olt: 'BBSIM_OLT_10'
+      c_tag: '912'
+      s_tag: '900'
+      uni_id: '1'
+    -
+      onu: 'BBSM000a0102'
+      olt: 'BBSIM_OLT_10'
+      c_tag: '913'
+      s_tag: '900'
+      uni_id: '2'
+    -
+      onu: 'BBSM000a0102'
+      olt: 'BBSIM_OLT_10'
+      c_tag: '914'
+      s_tag: '900'
+      uni_id: '3'
+    -
+      onu: 'BBSM000a0102'
+      olt: 'BBSIM_OLT_10'
+      c_tag: '915'
+      s_tag: '900'
+      uni_id: '4'
+    -
+      onu: 'BBSM000b0001'
+      c_tag: '900'
+      s_tag: '901'
+      olt: 'BBSIM_OLT_11'
+      uni_id: '1'
+    -
+      onu: 'BBSM000b0001'
+      c_tag: '901'
+      s_tag: '901'
+      olt: 'BBSIM_OLT_11'
+      uni_id: '2'
+    -
+      onu: 'BBSM000b0001'
+      c_tag: '902'
+      s_tag: '901'
+      olt: 'BBSIM_OLT_11'
+      uni_id: '3'
+    -
+      onu: 'BBSM000b0001'
+      c_tag: '903'
+      s_tag: '901'
+      olt: 'BBSIM_OLT_11'
+      uni_id: '4'
+    -
+      onu: 'BBSM000b0002'
+      c_tag: '904'
+      s_tag: '901'
+      olt: 'BBSIM_OLT_11'
+      uni_id: '1'
+    -
+      onu: 'BBSM000b0002'
+      c_tag: '905'
+      s_tag: '901'
+      olt: 'BBSIM_OLT_11'
+      uni_id: '2'
+    -
+      onu: 'BBSM000b0002'
+      c_tag: '906'
+      s_tag: '901'
+      olt: 'BBSIM_OLT_11'
+      uni_id: '3'
+    -
+      onu: 'BBSM000b0002'
+      c_tag: '907'
+      s_tag: '901'
+      olt: 'BBSIM_OLT_11'
+      uni_id: '4'
+    -
+      onu: 'BBSM000b0101'
+      olt: 'BBSIM_OLT_11'
+      c_tag: '908'
+      s_tag: '901'
+      uni_id: '1'
+    -
+      onu: 'BBSM000b0101'
+      olt: 'BBSIM_OLT_11'
+      c_tag: '909'
+      s_tag: '901'
+      uni_id: '2'
+    -
+      onu: 'BBSM000b0101'
+      olt: 'BBSIM_OLT_11'
+      c_tag: '910'
+      s_tag: '901'
+      uni_id: '3'
+    -
+      onu: 'BBSM000b0101'
+      olt: 'BBSIM_OLT_11'
+      c_tag: '911'
+      s_tag: '901'
+      uni_id: '4'
+    -
+      onu: 'BBSM000b0102'
+      olt: 'BBSIM_OLT_11'
+      c_tag: '912'
+      s_tag: '901'
+      uni_id: '1'
+    -
+      onu: 'BBSM000b0102'
+      olt: 'BBSIM_OLT_11'
+      c_tag: '913'
+      s_tag: '901'
+      uni_id: '2'
+    -
+      onu: 'BBSM000b0102'
+      olt: 'BBSIM_OLT_11'
+      c_tag: '914'
+      s_tag: '901'
+      uni_id: '3'
+    -
+      onu: 'BBSM000b0102'
+      olt: 'BBSIM_OLT_11'
+      c_tag: '915'
+      s_tag: '901'
+      uni_id: '4'
+  dst:
+    - ip: null
+    - ip: null
+    - ip: null
+    - ip: null
+    - ip: null
+    - ip: null
+    - ip: null
+    - ip: null
+    - ip: null
+    - ip: null
+    - ip: null
+    - ip: null
+    - ip: null
+    - ip: null
+    - ip: null
+    - ip: null
+    - ip: null
+    - ip: null
+    - ip: null
+    - ip: null
+    - ip: null
+    - ip: null
+    - ip: null
+    - ip: null
+    - ip: null
+    - ip: null
+    - ip: null
+    - ip: null
+    - ip: null
+    - ip: null
+    - ip: null
+    - ip: null
diff --git a/tests/data/bbsim-kind-multi-uni-tt.yaml b/tests/data/bbsim-kind-multi-uni-tt.yaml
new file mode 100755
index 0000000..ec8efb1
--- /dev/null
+++ b/tests/data/bbsim-kind-multi-uni-tt.yaml
@@ -0,0 +1,154 @@
+---
+
+# Copyright 2017-present Open Networking Foundation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Automated deployment configuration for kind-voltha running BBSim
+
+# Change default values in tests
+workflow: TT
+has_dataplane: false
+teardown_device: true
+ONOS_REST_PORT: 8181
+ONOS_SSH_PORT: 8101
+OLT_PORT: 50060
+
+nodes:
+  -
+    ip: '127.0.0.1'
+
+olts:
+  -
+    ip: bbsim0
+    serial: BBSIM_OLT_10
+
+onos_netcfg:
+  file: ${CURDIR}/../../data/onos-igmp.json
+
+hosts:
+  src:
+    - onu: 'BBSM000a0001'
+      olt: 'BBSIM_OLT_10'
+      c_tag: '900'
+      s_tag: '900'
+      service_type: 'hsia'
+      uni_id: 1
+    - onu: 'BBSM000a0001'
+      olt: 'BBSIM_OLT_10'
+      c_tag: '444'
+      s_tag: '333'
+      uni_id: 1
+      service_type: 'voip'
+    - onu: 'BBSM000a0001'
+      olt: 'BBSIM_OLT_10'
+      c_tag: '55'
+      s_tag: '555'
+      service_type: 'vod'
+      uni_id: 1
+    - onu: 'BBSM000a0001'
+      olt: 'BBSIM_OLT_10'
+      c_tag: '55'
+      s_tag: '550'
+      service_type: 'mcast'
+      uni_id: 1
+    - onu: 'BBSM000a0001'
+      olt: 'BBSIM_OLT_10'
+      c_tag: '901'
+      s_tag: '900'
+      service_type: 'hsia'
+      uni_id: 2
+    - onu: 'BBSM000a0001'
+      olt: 'BBSIM_OLT_10'
+      c_tag: '444'
+      s_tag: '333'
+      uni_id: 2
+      service_type: 'voip'
+    - onu: 'BBSM000a0001'
+      olt: 'BBSIM_OLT_10'
+      c_tag: '55'
+      s_tag: '555'
+      service_type: 'vod'
+      uni_id: 2
+    - onu: 'BBSM000a0001'
+      olt: 'BBSIM_OLT_10'
+      c_tag: '55'
+      s_tag: '550'
+      service_type: 'mcast'
+      uni_id: 2
+    - onu: 'BBSM000a0001'
+      olt: 'BBSIM_OLT_10'
+      c_tag: '902'
+      s_tag: '900'
+      service_type: 'hsia'
+      uni_id: 3
+    - onu: 'BBSM000a0001'
+      olt: 'BBSIM_OLT_10'
+      c_tag: '444'
+      s_tag: '333'
+      uni_id: 3
+      service_type: 'voip'
+    - onu: 'BBSM000a0001'
+      olt: 'BBSIM_OLT_10'
+      c_tag: '55'
+      s_tag: '555'
+      service_type: 'vod'
+      uni_id: 3
+    - onu: 'BBSM000a0001'
+      olt: 'BBSIM_OLT_10'
+      c_tag: '55'
+      s_tag: '550'
+      service_type: 'mcast'
+      uni_id: 3
+    - onu: 'BBSM000a0001'
+      olt: 'BBSIM_OLT_10'
+      c_tag: '903'
+      s_tag: '900'
+      service_type: 'hsia'
+      uni_id: 4
+    - onu: 'BBSM000a0001'
+      olt: 'BBSIM_OLT_10'
+      c_tag: '444'
+      s_tag: '333'
+      uni_id: 4
+      service_type: 'voip'
+    - onu: 'BBSM000a0001'
+      olt: 'BBSIM_OLT_10'
+      c_tag: '55'
+      s_tag: '555'
+      service_type: 'vod'
+      uni_id: 4
+    - onu: 'BBSM000a0001'
+      olt: 'BBSIM_OLT_10'
+      c_tag: '55'
+      s_tag: '550'
+      service_type: 'mcast'
+      uni_id: 4
+
+  dst:
+    - ip: null
+    - ip: null
+    - ip: null
+    - ip: null
+    - ip: null
+    - ip: null
+    - ip: null
+    - ip: null
+    - ip: null
+    - ip: null
+    - ip: null
+    - ip: null
+    - ip: null
+    - ip: null
+    - ip: null
+    - ip: null
diff --git a/tests/data/bbsim-kind-multi-uni.yaml b/tests/data/bbsim-kind-multi-uni.yaml
new file mode 100644
index 0000000..c839f6f
--- /dev/null
+++ b/tests/data/bbsim-kind-multi-uni.yaml
@@ -0,0 +1,66 @@
+---
+
+# Copyright 2017-present Open Networking Foundation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# Automated deployment configuration for kind-voltha running BBSim
+
+# Change default values in tests
+has_dataplane: false
+teardown_device: true
+ONOS_REST_PORT: 8181
+ONOS_SSH_PORT: 8101
+OLT_PORT: 50060
+
+nodes:
+  -
+    ip: '127.0.0.1'
+
+olts:
+  -
+    ip: bbsim0
+    serial: BBSIM_OLT_10
+
+hosts:
+  src:
+    -
+      onu: 'BBSM000a0001'
+      olt: 'BBSIM_OLT_10'
+      c_tag: '900'
+      s_tag: '900'
+      uni_id: '1'
+    -
+      onu: 'BBSM000a0001'
+      olt: 'BBSIM_OLT_10'
+      c_tag: '901'
+      s_tag: '900'
+      uni_id: '2'
+    -
+      onu: 'BBSM000a0001'
+      olt: 'BBSIM_OLT_10'
+      c_tag: '902'
+      s_tag: '900'
+      uni_id: '3'
+    -
+      onu: 'BBSM000a0001'
+      olt: 'BBSIM_OLT_10'
+      c_tag: '903'
+      s_tag: '900'
+      uni_id: '4'
+
+  dst:
+    - ip: null
+    - ip: null
+    - ip: null
+    - ip: null
diff --git a/tests/data/bbsim-kind-tt.yaml b/tests/data/bbsim-kind-tt.yaml
index daa0a5b..19d000c 100755
--- a/tests/data/bbsim-kind-tt.yaml
+++ b/tests/data/bbsim-kind-tt.yaml
@@ -43,21 +43,25 @@
       c_tag: '900'
       s_tag: '900'
       service_type: 'hsia'
+      uni_id: 1
     - onu: 'BBSM000a0001'
       olt: 'BBSIM_OLT_10'
       c_tag: '444'
       s_tag: '333'
+      uni_id: 1
       service_type: 'voip'
     - onu: 'BBSM000a0001'
       olt: 'BBSIM_OLT_10'
       c_tag: '55'
       s_tag: '555'
       service_type: 'vod'
+      uni_id: 1
     - onu: 'BBSM000a0001'
       olt: 'BBSIM_OLT_10'
       c_tag: '55'
       s_tag: '550'
       service_type: 'mcast'
+      uni_id: 1
 
   dst:
     - ip: null
diff --git a/tests/data/bbsim-kind.yaml b/tests/data/bbsim-kind.yaml
index 5326f68..b617e85 100644
--- a/tests/data/bbsim-kind.yaml
+++ b/tests/data/bbsim-kind.yaml
@@ -39,6 +39,7 @@
       olt: 'BBSIM_OLT_10'
       c_tag: '900'
       s_tag: '900'
+      uni_id: '1'
 
   dst:
     - ip: null
diff --git a/tests/data/flex-ocp-cord-multi-uni-sadis-TT.json b/tests/data/flex-ocp-cord-multi-uni-sadis-TT.json
new file mode 100644
index 0000000..b43a76b
--- /dev/null
+++ b/tests/data/flex-ocp-cord-multi-uni-sadis-TT.json
@@ -0,0 +1,311 @@
+{
+  "ports" : { },
+  "devices" : { },
+  "hosts" : { },
+  "apps" : {
+    "org.onosproject.provider.lldp" : {
+      "suppression" : {
+        "deviceTypes" : [ "ROADM", "OTN", "FIBER_SWITCH", "OPTICAL_AMPLIFIER" ],
+        "annotation" : "{\"no-lldp\":null}"
+      }
+    },
+    "org.opencord.kafka" : { },
+    "org.onosproject.core" : {
+      "multicast" : {
+        "ingressVlan" : 550,
+        "egressVlan" : 550,
+        "egressInnerVlan" : 55
+      }
+    },
+    "org.opencord.sadis" : {
+      "bandwidthprofile" : {
+        "integration" : {
+          "cache" : {
+            "enabled" : true,
+            "maxsize" : 40,
+            "ttl" : "PT1m"
+          }
+        },
+        "entries" : [ {
+          "id" : "High-Speed-Internet",
+          "cir" : 100000,
+          "cbs" : 10000,
+          "eir" : 100000,
+          "ebs" : 10000,
+          "air" : 100000
+        }, {
+          "id" : "VOIP",
+          "cir" : 400000,
+          "cbs" : 10000,
+          "eir" : 400000,
+          "ebs" : 10000,
+          "air" : 100000
+        }, {
+          "id" : "User1-Specific",
+          "cir" : 60000,
+          "cbs" : 10000,
+          "eir" : 40000,
+          "ebs" : 10000
+        }, {
+          "id" : "User1-Specific2",
+          "cir" : 500000,
+          "cbs" : 10000,
+          "eir" : 300000,
+          "ebs" : 10000
+        }, {
+          "id" : "Fixed9Gbps",
+          "cir" : 0,
+          "cbs" : 0,
+          "eir" : 0,
+          "ebs" : 0,
+          "air" : 9000000
+        }, {
+          "id" : "TCONT_TYPE1_200Mbps_Fixed_ForVOIP",
+          "eir" : 0,
+          "ebs" : 0,
+          "cir" : 0,
+          "cbs" : 0,
+          "air" : 200000
+        }, {
+          "id" : "TCONT_TYPE2_500Mbps_Assured_ForVoD",
+          "eir" : 0,
+          "ebs" : 0,
+          "cir" : 500000,
+          "cbs" : 10000,
+          "air" : 0
+        }, {
+          "id" : "TCONT_TYPE3_700Mbps_Peak_500Mbps_Assured_ForVoD",
+          "eir" : 200000,
+          "ebs" : 10000,
+          "cir" : 500000,
+          "cbs" : 10000,
+          "air" : 0
+        }, {
+          "id" : "TCONT_TYPE4_1Gbps_Peak_User1_HSI_Upstream",
+          "eir" : 1000000,
+          "ebs" : 10000,
+          "cir" : 0,
+          "cbs" : 0,
+          "air" : 0
+        }, {
+          "id" : "TCONT_TYPE5_1Gbps_Peak_500Mbps_Assured_200Mbps_Fixed_User1_HSI_Upstream",
+          "eir" : 300000,
+          "ebs" : 10000,
+          "cir" : 500000,
+          "cbs" : 10000,
+          "air" : 200000
+        } ]
+      },
+      "sadis" : {
+        "integration" : {
+          "cache" : {
+            "enabled" : true,
+            "maxsize" : 50,
+            "ttl" : "PT1m"
+          }
+        },
+        "entries" : [ {
+          "id" : "ALPHe3d1cfa7-1",
+          "nasPortId" : "ALPHe3d1cfa7-1",
+          "circuitId" : "ALPHe3d1cfa7-1",
+          "remoteId" : "ALPHe3d1cfa7-1",
+          "uniTagList" : [ {
+            "ponCTag" : 999,
+            "ponSTag" : 999,
+            "technologyProfileId" : 64,
+            "downstreamBandwidthProfile" : "Fixed9Gbps",
+            "upstreamBandwidthProfile" : "Fixed9Gbps",
+            "isDhcpRequired" : "true"
+          } ]
+        }, {
+          "id" : "ALPHe3d1cea3-1",
+          "nasPortId" : "ALPHe3d1cea3-1",
+          "uniTagList" : [ {
+            "uniTagMatch" : 35,
+            "ponCTag" : 801,
+            "ponSTag" : 111,
+            "usPonCTagPriority" : 0,
+            "usPonSTagPriority" : 0,
+            "dsPonCTagPriority" : 0,
+            "dsPonSTagPriority" : 0,
+            "technologyProfileId" : 64,
+            "downstreamBandwidthProfile" : "High-Speed-Internet",
+            "upstreamBandwidthProfile" : "TCONT_TYPE4_1Gbps_Peak_User1_HSI_Upstream",
+            "isDhcpRequired" : "true",
+            "serviceName" : "HSIA"
+          }, {
+            "uniTagMatch" : 65,
+            "ponCTag" : 444,
+            "ponSTag" : 333,
+            "usPonCTagPriority" : 7,
+            "usPonSTagPriority" : 7,
+            "dsPonCTagPriority" : 7,
+            "dsPonSTagPriority" : 7,
+            "technologyProfileId" : 65,
+            "downstreamBandwidthProfile" : "VOIP",
+            "upstreamBandwidthProfile" : "TCONT_TYPE1_200Mbps_Fixed_ForVOIP",
+            "isDhcpRequired" : "true",
+            "configuredMacAddress" : "2c:60:0c:ee:d6:27",
+            "serviceName" : "VOIP"
+          }, {
+            "uniTagMatch" : 55,
+            "ponCTag" : 55,
+            "ponSTag" : 555,
+            "usPonCTagPriority" : 5,
+            "usPonSTagPriority" : 5,
+            "dsPonCTagPriority" : 5,
+            "dsPonSTagPriority" : 5,
+            "technologyProfileId" : 66,
+            "downstreamBandwidthProfile" : "High-Speed-Internet",
+            "upstreamBandwidthProfile" : "TCONT_TYPE2_500Mbps_Assured_ForVoD",
+            "configuredMacAddress" : "2c:60:0c:ee:d6:27",
+            "serviceName" : "VOD",
+            "isDhcpRequired" : "true",
+            "isIgmpRequired" : "true"
+          }, {
+            "ponCTag" : 55,
+            "ponSTag" : 550,
+            "dsPonCTagPriority" : 5,
+            "dsPonSTagPriority" : 5,
+            "technologyProfileId" : 66,
+            "serviceName" : "MC"
+          } ]
+        }, {
+          "id" : "ALPHe3d1ceb7-1",
+          "nasPortId" : "ALPHe3d1ceb7-1",
+          "uniTagList" : [ {
+            "uniTagMatch" : 35,
+            "ponCTag" : 101,
+            "ponSTag" : 222,
+            "usPonCTagPriority" : 0,
+            "usPonSTagPriority" : 0,
+            "dsPonCTagPriority" : 0,
+            "dsPonSTagPriority" : 0,
+            "technologyProfileId" : 64,
+            "downstreamBandwidthProfile" : "High-Speed-Internet",
+            "upstreamBandwidthProfile" : "TCONT_TYPE5_1Gbps_Peak_500Mbps_Assured_200Mbps_Fixed_User1_HSI_Upstream",
+            "isDhcpRequired" : "true",
+            "serviceName" : "HSIA"
+          }, {
+            "uniTagMatch" : 65,
+            "ponCTag" : 444,
+            "ponSTag" : 333,
+            "usPonCTagPriority" : 7,
+            "usPonSTagPriority" : 7,
+            "dsPonCTagPriority" : 7,
+            "dsPonSTagPriority" : 7,
+            "technologyProfileId" : 65,
+            "downstreamBandwidthProfile" : "VOIP",
+            "upstreamBandwidthProfile" : "TCONT_TYPE1_200Mbps_Fixed_ForVOIP",
+            "isDhcpRequired" : "true",
+            "configuredMacAddress" : "2c:60:0c:ee:d7:68",
+            "serviceName" : "VOIP"
+          }, {
+            "uniTagMatch" : 55,
+            "ponCTag" : 55,
+            "ponSTag" : 555,
+            "usPonCTagPriority" : 5,
+            "usPonSTagPriority" : 5,
+            "dsPonCTagPriority" : 5,
+            "dsPonSTagPriority" : 5,
+            "technologyProfileId" : 67,
+            "downstreamBandwidthProfile" : "High-Speed-Internet",
+            "upstreamBandwidthProfile" : "TCONT_TYPE3_700Mbps_Peak_500Mbps_Assured_ForVoD",
+            "configuredMacAddress" : "2c:60:0c:ee:d7:68",
+            "serviceName" : "VOD",
+            "isDhcpRequired" : "true",
+            "isIgmpRequired" : "true"
+          }, {
+            "ponCTag" : 55,
+            "ponSTag" : 550,
+            "dsPonCTagPriority" : 5,
+            "dsPonSTagPriority" : 5,
+            "technologyProfileId" : 67,
+            "serviceName" : "MC"
+          } ]
+        }, {
+          "id" : "ALPHe3d1ceb7-2",
+          "nasPortId" : "ALPHe3d1ceb7-2",
+          "uniTagList" : [ {
+            "uniTagMatch" : 35,
+            "ponCTag" : 102,
+            "ponSTag" : 222,
+            "usPonCTagPriority" : 0,
+            "usPonSTagPriority" : 0,
+            "dsPonCTagPriority" : 0,
+            "dsPonSTagPriority" : 0,
+            "technologyProfileId" : 64,
+            "downstreamBandwidthProfile" : "High-Speed-Internet",
+            "upstreamBandwidthProfile" : "TCONT_TYPE4_1Gbps_Peak_User1_HSI_Upstream",
+            "isDhcpRequired" : "true",
+            "serviceName" : "HSIA"
+          }, {
+            "uniTagMatch" : 65,
+            "ponCTag" : 444,
+            "ponSTag" : 333,
+            "usPonCTagPriority" : 7,
+            "usPonSTagPriority" : 7,
+            "dsPonCTagPriority" : 7,
+            "dsPonSTagPriority" : 7,
+            "technologyProfileId" : 65,
+            "downstreamBandwidthProfile" : "VOIP",
+            "upstreamBandwidthProfile" : "TCONT_TYPE1_200Mbps_Fixed_ForVOIP",
+            "isDhcpRequired" : "true",
+            "configuredMacAddress" : "90:e2:ba:70:06:5e",
+            "serviceName" : "VOIP"
+          }, {
+            "uniTagMatch" : 55,
+            "ponCTag" : 55,
+            "ponSTag" : 555,
+            "usPonCTagPriority" : 5,
+            "usPonSTagPriority" : 5,
+            "dsPonCTagPriority" : 5,
+            "dsPonSTagPriority" : 5,
+            "technologyProfileId" : 67,
+            "downstreamBandwidthProfile" : "High-Speed-Internet",
+            "upstreamBandwidthProfile" : "TCONT_TYPE3_700Mbps_Peak_500Mbps_Assured_ForVoD",
+            "configuredMacAddress" : "90:e2:ba:70:06:5e",
+            "serviceName" : "VOD",
+            "isDhcpRequired" : "true",
+            "isIgmpRequired" : "true"
+          }, {
+            "ponCTag" : 55,
+            "ponSTag" : 550,
+            "dsPonCTagPriority" : 5,
+            "dsPonSTagPriority" : 5,
+            "technologyProfileId" : 67,
+            "serviceName" : "MC"
+          } ]
+        }, {
+          "id" : "EC1838000853",
+          "hardwareIdentifier" : "00:00:00:00:00:01",
+          "ipAddress" : "10.192.20.206",
+          "uplinkPort" : "1048576"
+        } ]
+      }
+    },
+    "org.opencord.igmpproxy" : {
+        "igmpproxy":{
+           "FastLeave":"true",
+           "LastQueryInterval":1,
+           "MaxResp":1,
+           "enableIgmpProvisioning":"false",
+           "globalConnectPointMode":"true",
+           "globalConnectPoint" : "of:0000000000000001/3",
+           "sourceDeviceAndPort":"of:0000000000000001/3",
+           "outgoingIgmpVlanId":550,
+           "outgoingIgmpInnerVlanId":55,
+           "outgoingIgmpWithV3":"true",
+           "IgmpCos":5,
+           "IgmpUniCos":5,
+           "PeriodicQuery":"true",
+           "KeepAliveInterval":60,
+           "KeepAliveCount":5,
+           "requestDsIgmpPackets":false
+        }
+    }
+  },
+  "regions" : { },
+  "links" : { },
+  "layouts" : { }
+}
diff --git a/tests/data/multiple-bbsim-kind.yaml b/tests/data/multiple-bbsim-kind.yaml
index 1202e48..018eba7 100755
--- a/tests/data/multiple-bbsim-kind.yaml
+++ b/tests/data/multiple-bbsim-kind.yaml
@@ -67,51 +67,61 @@
       c_tag: '900'
       s_tag: '900'
       olt: 'BBSIM_OLT_10'
+      uni_id: '1'
     -
       onu: 'BBSM000b0001'
       c_tag: '900'
       s_tag: '901'
       olt: 'BBSIM_OLT_11'
+      uni_id: '1'
     -
       onu: 'BBSM000c0001'
       c_tag: '900'
       s_tag: '902'
       olt: 'BBSIM_OLT_12'
+      uni_id: '1'
     -
       onu: 'BBSM000d0001'
       c_tag: '900'
       s_tag: '903'
       olt: 'BBSIM_OLT_13'
+      uni_id: '1'
     -
       onu: 'BBSM000e0001'
       c_tag: '900'
       s_tag: '904'
       olt: 'BBSIM_OLT_14'
+      uni_id: '1'
     -
       onu: 'BBSM000f0001'
       c_tag: '900'
       s_tag: '905'
       olt: 'BBSIM_OLT_15'
+      uni_id: '1'
     -
       onu: 'BBSM00100001'
       c_tag: '900'
       s_tag: '906'
       olt: 'BBSIM_OLT_16'
+      uni_id: '1'
     -
       onu: 'BBSM00110001'
       c_tag: '900'
       s_tag: '907'
       olt: 'BBSIM_OLT_17'
+      uni_id: '1'
     -
       onu: 'BBSM00120001'
       c_tag: '900'
       s_tag: '908'
       olt: 'BBSIM_OLT_18'
+      uni_id: '1'
     -
       onu: 'BBSM00130001'
       c_tag: '900'
       s_tag: '909'
       olt: 'BBSIM_OLT_19'
+      uni_id: '1'
   dst:
     - ip: null
     - ip: null
diff --git a/tests/data/software-upgrade.yaml b/tests/data/software-upgrade.yaml
index 30c4061..9ba0f8b 100644
--- a/tests/data/software-upgrade.yaml
+++ b/tests/data/software-upgrade.yaml
@@ -39,6 +39,7 @@
       olt: 'BBSIM_OLT_10'
       c_tag: '900'
       s_tag: '900'
+      uni_id: '1'
 
   dst:
     - ip: null