Merge "SiaB Makefile mod to support new values files, DT-workflow and new targets for SD-BNG"
diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md
new file mode 100644
index 0000000..626cd61
--- /dev/null
+++ b/CODE_OF_CONDUCT.md
@@ -0,0 +1,3 @@
+We expect all ONF employees, member companies, and participants to abide by our [Code of Conduct](https://www.opennetworking.org/wp-content/themes/onf/img/onf-code-of-conduct.pdf).
+
+If you are being harassed, notice that someone else is being harassed, or have any other concerns involving someone’s welfare, please notify a member of the ONF team or email [conduct@opennetworking.org](conduct@opennetworking.org). 
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..8d5cb7d
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,16 @@
+# Copyright 2019-present the original author or authors.
+#
+# 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.
+
+%: voltha/voltha-kafka-dump
+	make -C voltha/voltha-kafka-dump $@
diff --git a/VERSION b/VERSION
index efd36c4..6f58ecf 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-6.1.1-dev
+6.1.5-dev0
diff --git a/comac-in-a-box/Makefile b/comac-in-a-box/Makefile
index bfdaa3e..79a101e 100644
--- a/comac-in-a-box/Makefile
+++ b/comac-in-a-box/Makefile
@@ -11,7 +11,7 @@
 KUBESPRAY_VERSION ?= release-2.11
 DOCKER_VERSION	?= 18.09
 K8S_VERSION	?= v1.15.3
-HELM_VERSION	?= v2.15.0
+HELM_VERSION	?= v2.16.1
 
 # used to start logging/monitoring and other infrastructure charts
 INFRA_CHARTS	?=
@@ -89,7 +89,7 @@
 		-e "{'docker_iptables_enabled' : True}" \
 		-e "{'kube_version' : $(K8S_VERSION)}" \
 		-e "{'kube_network_plugin_multus' : True, 'multus_version' : stable}" \
-		-e "{'kube_proxy_mode': iptables}" \
+		-e "{'kube_proxy_metrics_bind_address' : 0.0.0.0:10249}" \
 		-e "{'kube_pods_subnet' : 192.168.0.0/17, 'kube_service_addresses' : 192.168.128.0/17}" \
 		-e "{'kube_apiserver_node_port_range' : 2000-36767}" \
 		-e "{'kubeadm_enabled': True}" \
@@ -121,10 +121,10 @@
 $(M)/platform: | $(M)/helm-ready $(WORKSPACE)/cord/helm-charts $(WORKSPACE)/cord/cord-platform
 	cd $(WORKSPACE)/cord/cord-platform && \
 	helm dep update cord-platform && \
-	helm install $(HELM_GLOBAL_ARGS) --name cord-platform cord-platform -f $(CIABVALUES)
+	helm upgrade --install $(HELM_GLOBAL_ARGS) cord-platform cord-platform -f $(CIABVALUES)
 	cd $(WORKSPACE)/cord/helm-charts && \
 	helm dep update comac && \
-	helm install $(HELM_GLOBAL_ARGS) --name comac comac -f $(CIABVALUES)
+	helm upgrade --install $(HELM_GLOBAL_ARGS) comac comac -f $(CIABVALUES)
 	touch $@
 
 /opt/cni/bin/simpleovs: | $(M)/k8s-ready
@@ -153,8 +153,8 @@
 	cd $(WORKSPACE)/cord/helm-charts/omec; \
 	helm dep up omec-data-plane && \
 	helm dep up omec-control-plane && \
-	helm install $(HELM_GLOBAL_ARGS) --namespace omec --name omec-data-plane omec-data-plane -f $(CIABVALUES) && \
-	helm install $(HELM_GLOBAL_ARGS) --namespace omec --name omec-control-plane omec-control-plane -f $(CIABVALUES)
+	helm upgrade --install $(HELM_GLOBAL_ARGS) --namespace omec omec-data-plane omec-data-plane -f $(CIABVALUES) && \
+	helm upgrade --install $(HELM_GLOBAL_ARGS) --namespace omec omec-control-plane omec-control-plane -f $(CIABVALUES)
 	$(WORKSPACE)/cord/helm-charts/scripts/wait_for_pods.sh omec
 	touch $@
 
@@ -176,7 +176,7 @@
 	sudo ip addr add 127.0.0.2/8 dev lo || true
 	$(eval mme_iface=$(shell ip -4 route list default | awk -F 'dev' '{ print $$2; exit }' | awk '{ print $$1 }'))
 	cd $(WORKSPACE)/cord/helm-charts; \
-	helm install $(HELM_GLOBAL_ARGS) --namespace omec --name oaisim oaisim -f $(CIABVALUES) \
+	helm upgrade --install $(HELM_GLOBAL_ARGS) --namespace omec oaisim oaisim -f $(CIABVALUES) \
 		--set config.enb.networks.s1_mme.interface=$(mme_iface)
 	$(WORKSPACE)/cord/helm-charts/scripts/wait_for_pods.sh omec
 	@timeout 60s bash -c \
diff --git a/comac-in-a-box/comac-in-a-box-values.yaml b/comac-in-a-box/comac-in-a-box-values.yaml
index 3e8da2d..96d5c1a 100644
--- a/comac-in-a-box/comac-in-a-box-values.yaml
+++ b/comac-in-a-box/comac-in-a-box-values.yaml
@@ -46,7 +46,10 @@
   # omec-data-plane values
   sriov:
     enabled: false
+  spgwc:
+    multiUpfs: false
   spgwu:
+    multiUpfs: false
     devices: "--no-pci --vdev eth_af_packet0,iface=s1u-net --vdev eth_af_packet1,iface=sgi-net"
   # omec-control-plane values
   mme:
diff --git a/comac/cluster-api/gcp/kustomization.yaml b/comac/cluster-api/gcp/kustomization.yaml
new file mode 100644
index 0000000..a1f9d12
--- /dev/null
+++ b/comac/cluster-api/gcp/kustomization.yaml
@@ -0,0 +1,21 @@
+# Copyright 2019-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.
+
+---
+apiVersion: kustomize.config.k8s.io/v1beta1
+kind: Kustomization
+bases:
+  - https://github.com/kubernetes-sigs/cluster-api-provider-gcp/examples/controlplane
+patchesStrategicMerge:
+  - kustomizecomac.yaml
diff --git a/comac/cluster-api/gcp/kustomizecomac.yaml b/comac/cluster-api/gcp/kustomizecomac.yaml
new file mode 100644
index 0000000..c1dcf6f
--- /dev/null
+++ b/comac/cluster-api/gcp/kustomizecomac.yaml
@@ -0,0 +1,74 @@
+# Copyright 2019-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.
+
+---
+apiVersion: bootstrap.cluster.x-k8s.io/v1alpha2
+kind: KubeadmConfig
+metadata:
+  name: ${CLUSTER_NAME}-controlplane-0
+spec:
+  clusterConfiguration:
+    apiServer:
+      extraArgs:
+        bind-address: 0.0.0.0
+        feature-gates: SCTPSupport=True
+        service-node-port-range: 2000-36767
+    controllerManager:
+      extraArgs:
+        bind-address: 0.0.0.0
+        feature-gates: SCTPSupport=True
+    scheduler:
+      extraArgs:
+        bind-address: 0.0.0.0
+        feature-gates: SCTPSupport=True
+---
+apiVersion: bootstrap.cluster.x-k8s.io/v1alpha2
+kind: KubeadmConfig
+metadata:
+  name: ${CLUSTER_NAME}-controlplane-1
+spec:
+  clusterConfiguration:
+    apiServer:
+      extraArgs:
+        bind-address: 0.0.0.0
+        feature-gates: SCTPSupport=True
+        service-node-port-range: 2000-36767
+    controllerManager:
+      extraArgs:
+        bind-address: 0.0.0.0
+        feature-gates: SCTPSupport=True
+    scheduler:
+      extraArgs:
+        bind-address: 0.0.0.0
+        feature-gates: SCTPSupport=True
+---
+apiVersion: bootstrap.cluster.x-k8s.io/v1alpha2
+kind: KubeadmConfig
+metadata:
+  name: ${CLUSTER_NAME}-controlplane-2
+spec:
+  clusterConfiguration:
+    apiServer:
+      extraArgs:
+        bind-address: 0.0.0.0
+        feature-gates: SCTPSupport=True
+        service-node-port-range: 2000-36767
+    controllerManager:
+      extraArgs:
+        bind-address: 0.0.0.0
+        feature-gates: SCTPSupport=True
+    scheduler:
+      extraArgs:
+        bind-address: 0.0.0.0
+        feature-gates: SCTPSupport=True
diff --git a/comac/sample/kubespray-inventories/central/extra-vars.yaml b/comac/kubespray/extra-vars.yaml
similarity index 95%
rename from comac/sample/kubespray-inventories/central/extra-vars.yaml
rename to comac/kubespray/extra-vars.yaml
index b67911b..e05a6d2 100644
--- a/comac/sample/kubespray-inventories/central/extra-vars.yaml
+++ b/comac/kubespray/extra-vars.yaml
@@ -33,6 +33,7 @@
 kubelet_deployment_type: host
 kubectl_localhost: true
 kubeconfig_localhost: true
+kube_proxy_metrics_bind_address: 0.0.0.0:10249
 
 kube_feature_gates: [SCTPSupport=True]
 kube_pods_subnet: 172.18.0.0/17
@@ -52,4 +53,4 @@
 
 helm_enabled: true
 helm_deployment_type: host
-helm_version: v2.15.0
+helm_version: v2.16.1
diff --git a/comac/sample/kubespray-inventories/central/group_vars b/comac/kubespray/inventories/central/group_vars
similarity index 100%
rename from comac/sample/kubespray-inventories/central/group_vars
rename to comac/kubespray/inventories/central/group_vars
diff --git a/comac/sample/kubespray-inventories/central/hosts.ini b/comac/kubespray/inventories/central/hosts.ini
similarity index 100%
rename from comac/sample/kubespray-inventories/central/hosts.ini
rename to comac/kubespray/inventories/central/hosts.ini
diff --git a/comac/sample/kubespray-inventories/edge/group_vars b/comac/kubespray/inventories/edge/group_vars
similarity index 100%
rename from comac/sample/kubespray-inventories/edge/group_vars
rename to comac/kubespray/inventories/edge/group_vars
diff --git a/comac/sample/kubespray-inventories/edge/hosts.ini b/comac/kubespray/inventories/edge/hosts.ini
similarity index 100%
rename from comac/sample/kubespray-inventories/edge/hosts.ini
rename to comac/kubespray/inventories/edge/hosts.ini
diff --git a/comac/sample/kubespray-inventories/single/group_vars b/comac/kubespray/inventories/single/group_vars
similarity index 100%
rename from comac/sample/kubespray-inventories/single/group_vars
rename to comac/kubespray/inventories/single/group_vars
diff --git a/comac/sample/kubespray-inventories/single/hosts.ini b/comac/kubespray/inventories/single/hosts.ini
similarity index 100%
rename from comac/sample/kubespray-inventories/single/hosts.ini
rename to comac/kubespray/inventories/single/hosts.ini
diff --git a/comac/override-values/override-values-multi.yaml b/comac/override-values/override-values-multi.yaml
new file mode 100644
index 0000000..de2c96e
--- /dev/null
+++ b/comac/override-values/override-values-multi.yaml
@@ -0,0 +1,99 @@
+# Copyright 2019-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.
+
+# Sample override values for 3-nodes cluster with SR-IOV configured on DP node.
+cassandra:
+  config:
+    cluster_size: 3
+
+config:
+  sriov:
+    resourceList:
+      vfio:
+        pfNames:
+          - eth2
+      netDevice:
+        pfNames:
+          - eth2
+        drivers:
+          - i40evf
+          - ixgbevf
+  mme:
+    cfgFiles:
+      config.json:
+        mme:
+          mcc:
+            dig1: 7
+            dig2: 3
+            dig3: 2
+          mnc:
+            dig1: 1
+            dig2: 1
+            dig3: 1
+  hss:
+    bootstrap:
+      enabled: true
+      users:
+        - imsi: "732111000000420"
+          msisdn: "1122334455"
+          apn: apn1
+          key: "000102030405060708090a0b0c0d0e0f"
+          opc: "69d5c2eb2e2e624750541d3bbc692ba5"
+          sqn: 135
+        - imsi: "732111000000421"
+          msisdn: "1122334455"
+          apn: apn1
+          key: "000102030405060708090a0b0c0d0e0f"
+          opc: "69d5c2eb2e2e624750541d3bbc692ba5"
+          sqn: 135
+      mmes:
+        - id: 1
+          isdn: "19136246000"
+          unreachability: 1
+  spgwu:
+    cpComm:
+      addr: 10.90.0.151
+      port: 30021
+    dpComm:
+      nodePort:
+        enabled: true
+        port: 30020
+  spgwc:
+    cpComm:
+      nodePort:
+        enabled: true
+        port: 30021
+    dpComm:
+      addr: 10.90.0.131
+      port: 30020
+# CDN configuration values
+  cdnRemotes:
+  - name: remote-1
+    ip: 10.90.0.151
+    port: 30935
+    streams:
+    - name: 360p
+      value: 360
+    - name: 480p
+      value: 480
+    - name: 720p
+      value: 720
+
+# cord-platform values
+etcd-operator:
+  enabled: false
+
+# comac values
+seba-services:
+  enabled: false
diff --git a/comac/override-values/override-values-single.yaml b/comac/override-values/override-values-single.yaml
new file mode 100644
index 0000000..5e3d1c6
--- /dev/null
+++ b/comac/override-values/override-values-single.yaml
@@ -0,0 +1,87 @@
+# Copyright 2019-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.
+
+# Sample override values for 3-nodes cluster with SR-IOV configured on DP node.
+cassandra:
+  config:
+    cluster_size: 1
+    seed_size: 1
+
+config:
+  sriov:
+    resourceList:
+      vfio:
+        pfNames:
+          - eth2
+      netDevice:
+        pfNames:
+          - eth2
+        drivers:
+          - i40evf
+          - ixgbevf
+  mme:
+    cfgFiles:
+      config.json:
+        mme:
+          mcc:
+            dig1: 7
+            dig2: 3
+            dig3: 2
+          mnc:
+            dig1: 1
+            dig2: 1
+            dig3: 1
+  hss:
+    bootstrap:
+      enabled: true
+      users:
+        - imsi: "732111000000420"
+          msisdn: "1122334455"
+          apn: apn1
+          key: "000102030405060708090a0b0c0d0e0f"
+          opc: "69d5c2eb2e2e624750541d3bbc692ba5"
+          sqn: 135
+        - imsi: "732111000000421"
+          msisdn: "1122334455"
+          apn: apn1
+          key: "000102030405060708090a0b0c0d0e0f"
+          opc: "69d5c2eb2e2e624750541d3bbc692ba5"
+          sqn: 135
+      mmes:
+        - id: 1
+          isdn: "19136246000"
+          unreachability: 1
+# CDN configuration values
+  cdnRemotes:
+  - name: remote-1
+    ip: 10.0.0.240
+    port: 30935
+    streams:
+    - name: 360p
+      value: 360
+    - name: 480p
+      value: 480
+    - name: 720p
+      value: 720
+
+nodeSelectors:
+  enabled: true
+
+# cord-platform values
+etcd-operator:
+  enabled: false
+
+# comac values
+seba-services:
+  enabled: false
diff --git a/comac/sample/kubespray-inventories/edge/extra-vars.yaml b/comac/sample/kubespray-inventories/edge/extra-vars.yaml
deleted file mode 100644
index b67911b..0000000
--- a/comac/sample/kubespray-inventories/edge/extra-vars.yaml
+++ /dev/null
@@ -1,55 +0,0 @@
-# Copyright 2019-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.
-
-# Sample kubespray override variables for COMAC deploy.
-# Pass this file as an extra variables when running kubespray. For example,
-# ansible-playbook -b -i inventory/comac/hosts.ini -e @inventory/comac/extra-vars.yaml cluster.yml
-# Tested with Kubespray release-2.11
-
-# OS
-disable_swap: true
-populate_inventory_to_hosts_file: true
-
-# etcd
-etcd_deployment_type: docker
-etcd_memory_limit: 8192M
-
-# Docker
-docker_iptables_enabled: true
-
-# K8S
-kubeadm_enabled: true
-kubelet_deployment_type: host
-kubectl_localhost: true
-kubeconfig_localhost: true
-
-kube_feature_gates: [SCTPSupport=True]
-kube_pods_subnet: 172.18.0.0/17
-kube_service_addresses: 172.18.128.0/17
-kube_apiserver_node_port_range: 2000-36767
-kube_network_plugin: calico
-kube_network_plugin_multus: true
-multus_version: stable
-ipip: false
-
-local_volume_provisioner_enabled: true
-
-# Applications
-dns_mode: coredns
-dns_cores_per_replica: 256
-dns_min_replicas: 1
-
-helm_enabled: true
-helm_deployment_type: host
-helm_version: v2.15.0
diff --git a/comac/sample/kubespray-inventories/single/extra-vars.yaml b/comac/sample/kubespray-inventories/single/extra-vars.yaml
deleted file mode 100644
index b67911b..0000000
--- a/comac/sample/kubespray-inventories/single/extra-vars.yaml
+++ /dev/null
@@ -1,55 +0,0 @@
-# Copyright 2019-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.
-
-# Sample kubespray override variables for COMAC deploy.
-# Pass this file as an extra variables when running kubespray. For example,
-# ansible-playbook -b -i inventory/comac/hosts.ini -e @inventory/comac/extra-vars.yaml cluster.yml
-# Tested with Kubespray release-2.11
-
-# OS
-disable_swap: true
-populate_inventory_to_hosts_file: true
-
-# etcd
-etcd_deployment_type: docker
-etcd_memory_limit: 8192M
-
-# Docker
-docker_iptables_enabled: true
-
-# K8S
-kubeadm_enabled: true
-kubelet_deployment_type: host
-kubectl_localhost: true
-kubeconfig_localhost: true
-
-kube_feature_gates: [SCTPSupport=True]
-kube_pods_subnet: 172.18.0.0/17
-kube_service_addresses: 172.18.128.0/17
-kube_apiserver_node_port_range: 2000-36767
-kube_network_plugin: calico
-kube_network_plugin_multus: true
-multus_version: stable
-ipip: false
-
-local_volume_provisioner_enabled: true
-
-# Applications
-dns_mode: coredns
-dns_cores_per_replica: 256
-dns_min_replicas: 1
-
-helm_enabled: true
-helm_deployment_type: host
-helm_version: v2.15.0
diff --git a/comac/sample/override-values-multi.yaml b/comac/sample/override-values-multi.yaml
deleted file mode 100644
index c4acd8f..0000000
--- a/comac/sample/override-values-multi.yaml
+++ /dev/null
@@ -1,422 +0,0 @@
-# Copyright 2019-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.
-
-# Sample override values for 3-nodes cluster with SR-IOV configured on DP node.
-cassandra:
-  config:
-    cluster_size: 3
-
-config:
-  sriov:
-    resourceList:
-      vfio:
-        pfNames:
-          - eth2
-      netDevice:
-        pfNames:
-          - eth2
-        drivers:
-          - i40evf
-          - ixgbevf
-  mme:
-    cfgFiles:
-      config.json:
-        mme:
-          mcc:
-            dig1: 7
-            dig2: 3
-            dig3: 2
-          mnc:
-            dig1: 1
-            dig2: 1
-            dig3: 1
-  hss:
-    bootstrap:
-      enabled: true
-      users:
-        - imsi: "732111000000420"
-          msisdn: "1122334455"
-          apn: apn1
-          key: "000102030405060708090a0b0c0d0e0f"
-          opc: "69d5c2eb2e2e624750541d3bbc692ba5"
-        - imsi: "732111000000421"
-          msisdn: "1122334455"
-          apn: apn1
-          key: "000102030405060708090a0b0c0d0e0f"
-          opc: "69d5c2eb2e2e624750541d3bbc692ba5"
-      mmes:
-        - id: 1
-          isdn: "19136246000"
-          unreachability: 1
-  spgwu:
-    cpComm:
-      addr: 10.90.0.151
-      port: 30021
-    dpComm:
-      nodePort:
-        enabled: true
-        port: 30020
-  spgwc:
-    cpComm:
-      nodePort:
-        enabled: true
-        port: 30021
-    dpComm:
-      addr: 10.90.0.131
-      port: 30020
-    cfgFiles:
-      adc_rules.cfg: |
-        [GLOBAL]
-        NUM_ADC_RULES = 5
-
-        [ADC_RULE_1]
-        ADC_TYPE = 1
-        IP = 13.1.1.111
-
-        [ADC_RULE_2]
-        ADC_TYPE = 2
-        IP = 13.1.1.0
-        PREFIX = 24
-
-        [ADC_RULE_3]
-        ADC_TYPE = 1
-        IP = 13.1.1.112
-        PREFIX = 24
-
-        [ADC_RULE_4]
-        ADC_TYPE = 0
-        DOMAIN = www.example.gov
-
-        [ADC_RULE_5]
-        ADC_TYPE = 0
-        DOMAIN = www.drop_example.com
-      meter_profile.cfg: |
-        [GLOBAL]
-        NUM_OF_IDX = 7
-
-        [ENTRY_1]
-        ;Committed Information Rate (CIR). Measured in bytes per second.
-        ;MBR is mapped into CIR, convert MBR from bits to Bytes and set CIR.
-        CIR = 2342400
-        ;Committed Burst Size unit = Bytes
-        CBS = 5856
-        ;Excess Burst Size unit = Bytes
-        EBS = 11712
-        ;Meter profile index. Refer this index in static_pcc.cfg to set AMBR/MBR
-        MTR_PROFILE_IDX = 3
-
-        [ENTRY_2]
-        ;1200 = 1756800
-        ;1400 = 2049600
-        ;1600 = 2342400
-        CIR = 2342400
-        CBS = 5856
-        EBS = 11712
-        MTR_PROFILE_IDX = 4
-
-        [ENTRY_3]
-        ; QCI5,QCI7 15.571kbps = 1947 B
-        CIR = 2342400
-        CBS = 5856
-        EBS = 11712
-        MTR_PROFILE_IDX = 5
-
-        [ENTRY_4]
-        ; QCI1, 44kbps = 5500 B
-        CIR = 2342400
-        CBS = 5856
-        EBS = 11712
-        MTR_PROFILE_IDX = 6
-
-        [ENTRY_5]
-        ; QCI9, 31.143kbps = 3893 B
-        CIR = 2342400
-        CBS = 5856
-        EBS = 11712
-        MTR_PROFILE_IDX = 7
-
-        [ENTRY_6]
-        ; 128B, 7pps
-        CIR = 2342400
-        CBS = 512
-        EBS = 1024
-        MTR_PROFILE_IDX = 8
-
-        [ENTRY_7]
-        ; 128B, 2pps
-        CIR = 2342400
-        CBS = 512
-        EBS = 1024
-        MTR_PROFILE_IDX = 9
-
-      pcc_rules.cfg: |
-        [GLOBAL]
-        NUM_PCC_FILTERS = 9
-        ;To config AMBR/MBR values refer meter_profile.cfg. specify only the
-        ;meter profile index to be set here.
-        UL_AMBR_MTR_PROFILE_IDX = 3
-        DL_AMBR_MTR_PROFILE_IDX = 4
-
-        ;default filter - must be first for now (until DP doesn't install any filters)
-        ;associated with default adc rule
-        [PCC_FILTER_1]
-        RULE_NAME = DefaultRule
-        RATING_GROUP = 9
-        SERVICE_ID = 0
-        RULE_STATUS = 0
-        GATE_STATUS = 1
-        SESSION_CONT = 0
-        REPORT_LEVEL = 1
-        CHARGING_MODE = 0
-        METERING_METHOD = 0
-        MUTE_NOTIFY = 0
-        MONITORING_KEY = 0
-        SPONSOR_ID = 0
-        REDIRECT_INFO = 0
-        PRECEDENCE = 254
-        DROP_PKT_COUNT = 0
-        ;Specify the meter profile index from meter_profile.cfg
-        UL_MBR_MTR_PROFILE_IDX = 7
-        DL_MBR_MTR_PROFILE_IDX = 7
-        ;List of ADC filter indices
-        SDF_FILTER_IDX = 99998
-
-        [PCC_FILTER_2]
-        RULE_NAME = sdf_rule_1
-        RATING_GROUP = 5
-        SERVICE_ID = 0
-        RULE_STATUS = 0
-        GATE_STATUS = 1
-        SESSION_CONT = 0
-        REPORT_LEVEL = 2
-        CHARGING_MODE = 0
-        METERING_METHOD = 0
-        MUTE_NOTIFY = 0
-        MONITORING_KEY = 0
-        SPONSOR_ID = 0
-        REDIRECT_INFO = 0
-        PRECEDENCE = 1
-        DROP_PKT_COUNT = 0
-        UL_MBR_MTR_PROFILE_IDX = 5
-        DL_MBR_MTR_PROFILE_IDX = 5
-        ;List of SDF filter indices
-        SDF_FILTER_IDX = 1
-
-        [PCC_FILTER_3]
-        RULE_NAME = sdf_rule_2
-        RATING_GROUP = 1
-        SERVICE_ID = 0
-        RULE_STATUS = 0
-        GATE_STATUS = 1
-        SESSION_CONT = 0
-        REPORT_LEVEL = 3
-        CHARGING_MODE = 0
-        METERING_METHOD = 0
-        MUTE_NOTIFY = 0
-        MONITORING_KEY = 0
-        SPONSOR_ID = 0
-        REDIRECT_INFO = 0
-        PRECEDENCE = 18
-        DROP_PKT_COUNT = 0
-        UL_MBR_MTR_PROFILE_IDX = 6
-        DL_MBR_MTR_PROFILE_IDX = 6
-        ;List of SDF filter indices
-        SDF_FILTER_IDX = 2
-
-        [PCC_FILTER_4]
-        RULE_NAME = adc_rule_1
-        RATING_GROUP = Zero-Rate
-        SERVICE_ID = Internet
-        RULE_STATUS = 0
-        GATE_STATUS = 1
-        SESSION_CONT = 0
-        REPORT_LEVEL = 8
-        CHARGING_MODE = 0
-        METERING_METHOD = 0
-        MUTE_NOTIFY = 0
-        MONITORING_KEY = 0
-        REDIRECT_INFO = 0
-        SPONSOR_ID = Example
-        PRECEDENCE = 15
-        DROP_PKT_COUNT = 0
-        UL_MBR_MTR_PROFILE_IDX = 7
-        DL_MBR_MTR_PROFILE_IDX = 7
-        ;List of SDF filter indices
-        ADC_FILTER_IDX = 1
-
-        [PCC_FILTER_5]
-        RULE_NAME = adc_rule_2
-        RATING_GROUP = 0
-        SERVICE_ID = CIPA
-        RULE_STATUS = 0
-        GATE_STATUS = 1
-        SESSION_CONT = 0
-        REPORT_LEVEL = 9
-        CHARGING_MODE = 0
-        METERING_METHOD = 0
-        MUTE_NOTIFY = 0
-        MONITORING_KEY = 0
-        SPONSOR_ID = Example
-        REDIRECT_INFO = 0
-        SPONSOR_ID = Example
-        REDIRECT_INFO = 0
-        PRECEDENCE = 4
-        DROP_PKT_COUNT = 0
-        UL_MBR_MTR_PROFILE_IDX = 0
-        DL_MBR_MTR_PROFILE_IDX = 0
-        ;List of SDF filter indices
-        ADC_FILTER_IDX = 2
-
-        [PCC_FILTER_6]
-        RULE_NAME = sdf_rule_3
-        RATING_GROUP = 7
-        SERVICE_ID = 0
-        RULE_STATUS = 0
-        GATE_STATUS = 1
-        SESSION_CONT = 0
-        REPORT_LEVEL = 4
-        CHARGING_MODE = 0
-        METERING_METHOD = 0
-        MUTE_NOTIFY = 0
-        MONITORING_KEY = 0
-        SPONSOR_ID = 0
-        REDIRECT_INFO = 0
-        PRECEDENCE = 17
-        DROP_PKT_COUNT = 0
-        UL_MBR_MTR_PROFILE_IDX = 5
-        DL_MBR_MTR_PROFILE_IDX = 5
-        ;List of SDF filter indices
-        SDF_FILTER_IDX = 3
-
-        [PCC_FILTER_7]
-        RULE_NAME = adc_rule_3
-        RATING_GROUP = Zero-Rate
-        SERVICE_ID = Internet
-        RULE_STATUS = 0
-        GATE_STATUS = 1
-        SESSION_CONT = 0
-        REPORT_LEVEL = 5
-        CHARGING_MODE = 0
-        METERING_METHOD = 0
-        MUTE_NOTIFY = 0
-        MONITORING_KEY = 0
-        SPONSOR_ID = Example
-        REDIRECT_INFO = 0
-        PRECEDENCE = 210
-        DROP_PKT_COUNT = 0
-        UL_MBR_MTR_PROFILE_IDX = 7
-        DL_MBR_MTR_PROFILE_IDX = 7
-        ;List of SDF filter indices
-        ADC_FILTER_IDX = 4
-
-        [PCC_FILTER_8]
-        RULE_NAME = adc_rule_4
-        RATING_GROUP = Zero-Rate
-        SERVICE_ID = Management
-        RULE_STATUS = 0
-        GATE_STATUS = 1
-        SESSION_CONT = 0
-        REPORT_LEVEL = 6
-        CHARGING_MODE = 0
-        METERING_METHOD = 0
-        MUTE_NOTIFY = 0
-        MONITORING_KEY = 0
-        SPONSOR_ID = Example
-        REDIRECT_INFO = 0
-        PRECEDENCE = 200
-        DROP_PKT_COUNT = 0
-        UL_MBR_MTR_PROFILE_IDX = 7
-        DL_MBR_MTR_PROFILE_IDX = 7
-        ;List of SDF filter indices
-        ADC_FILTER_IDX = 12
-
-        [PCC_FILTER_9]
-        RULE_NAME = adc_rule_5
-        RATING_GROUP = Zero-Rate
-        SERVICE_ID = Provisioning
-        RULE_STATUS = 0
-        GATE_STATUS = 1
-        SESSION_CONT = 0
-        REPORT_LEVEL = 7
-        CHARGING_MODE = 0
-        METERING_METHOD = 0
-        MUTE_NOTIFY = 0
-        MONITORING_KEY = 0
-        SPONSOR_ID = Example
-        REDIRECT_INFO = 0
-        PRECEDENCE = 220
-        DROP_PKT_COUNT = 0
-        UL_MBR_MTR_PROFILE_IDX = 7
-        DL_MBR_MTR_PROFILE_IDX = 7
-        ;List of SDF filter indices
-        ADC_FILTER_IDX = 3
-      sdf_rules.cfg: |
-        [GLOBAL]
-        NUM_SDF_FILTERS = 4
-
-        [SDF_FILTER_1]
-        DIRECTION = downlink_only
-        IPV4_REMOTE = 13.2.1.113
-        IPV4_REMOTE_MASK = 255.255.255.0
-        PROTOCOL = 17
-        LOCAL_LOW_LIMIT_PORT = 0
-        LOCAL_HIGH_LIMIT_PORT = 65535
-        REMOTE_LOW_LIMIT_PORT = 0
-        REMOTE_HIGH_LIMIT_PORT = 65535
-
-        [SDF_FILTER_2]
-        DIRECTION = uplink_only
-        IPV4_LOCAL = 16.255.255.0
-        IPV4_LOCAL_MASK = 255.255.255.0
-        PROTOCOL = 17
-        LOCAL_LOW_LIMIT_PORT = 0
-        LOCAL_HIGH_LIMIT_PORT = 65535
-        REMOTE_LOW_LIMIT_PORT = 0
-        REMOTE_HIGH_LIMIT_PORT = 65535
-
-        [SDF_FILTER_3]
-        DIRECTION = downlink_only
-        IPV4_REMOTE = 130.10.0.0
-        IPV4_REMOTE_MASK = 255.255.0.0
-        PROTOCOL = 17
-        REMOTE_LOW_LIMIT_PORT = 5060
-        REMOTE_HIGH_LIMIT_PORT = 5060
-
-        [SDF_FILTER_4]
-        DIRECTION = uplink_only
-        IPV4_REMOTE = 103.1.0.0
-        IPV4_REMOTE_MASK = 255.255.0.0
-        PROTOCOL = 17
-        LOCAL_LOW_LIMIT_PORT = 17000
-        LOCAL_HIGH_LIMIT_PORT = 17010
-# CDN configuration values
-  cdnRemotes:
-  - name: remote-1
-    ip: 10.90.0.151
-    port: 30935
-    streams:
-    - name: 360p
-      value: 360
-    - name: 480p
-      value: 480
-    - name: 720p
-      value: 720
-
-# cord-platform values
-etcd-operator:
-  enabled: false
-
-# comac values
-seba-services:
-  enabled: false
diff --git a/comac/sample/override-values-single.yaml b/comac/sample/override-values-single.yaml
deleted file mode 100644
index bcae6a4..0000000
--- a/comac/sample/override-values-single.yaml
+++ /dev/null
@@ -1,411 +0,0 @@
-# Copyright 2019-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.
-
-# Sample override values for 3-nodes cluster with SR-IOV configured on DP node.
-cassandra:
-  config:
-    cluster_size: 1
-    seed_size: 1
-
-config:
-  sriov:
-    resourceList:
-      vfio:
-        pfNames:
-          - eth2
-      netDevice:
-        pfNames:
-          - eth2
-        drivers:
-          - i40evf
-          - ixgbevf
-  mme:
-    cfgFiles:
-      config.json:
-        mme:
-          mcc:
-            dig1: 7
-            dig2: 3
-            dig3: 2
-          mnc:
-            dig1: 1
-            dig2: 1
-            dig3: 1
-  hss:
-    bootstrap:
-      enabled: true
-      users:
-        - imsi: "732111000000420"
-          msisdn: "1122334455"
-          apn: apn1
-          key: "000102030405060708090a0b0c0d0e0f"
-          opc: "69d5c2eb2e2e624750541d3bbc692ba5"
-        - imsi: "732111000000421"
-          msisdn: "1122334455"
-          apn: apn1
-          key: "000102030405060708090a0b0c0d0e0f"
-          opc: "69d5c2eb2e2e624750541d3bbc692ba5"
-      mmes:
-        - id: 1
-          isdn: "19136246000"
-          unreachability: 1
-  spgwc:
-    cfgFiles:
-      adc_rules.cfg: |
-        [GLOBAL]
-        NUM_ADC_RULES = 5
-
-        [ADC_RULE_1]
-        ADC_TYPE = 1
-        IP = 13.1.1.111
-
-        [ADC_RULE_2]
-        ADC_TYPE = 2
-        IP = 13.1.1.0
-        PREFIX = 24
-
-        [ADC_RULE_3]
-        ADC_TYPE = 1
-        IP = 13.1.1.112
-        PREFIX = 24
-
-        [ADC_RULE_4]
-        ADC_TYPE = 0
-        DOMAIN = www.example.gov
-
-        [ADC_RULE_5]
-        ADC_TYPE = 0
-        DOMAIN = www.drop_example.com
-
-      meter_profile.cfg: |
-        [GLOBAL]
-        NUM_OF_IDX = 7
-
-        [ENTRY_1]
-        ;Committed Information Rate (CIR). Measured in bytes per second.
-        ;MBR is mapped into CIR, convert MBR from bits to Bytes and set CIR.
-        CIR = 2342400
-        ;Committed Burst Size unit = Bytes
-        CBS = 5856
-        ;Excess Burst Size unit = Bytes
-        EBS = 11712
-        ;Meter profile index. Refer this index in static_pcc.cfg to set AMBR/MBR
-        MTR_PROFILE_IDX = 3
-
-        [ENTRY_2]
-        ;1200 = 1756800
-        ;1400 = 2049600
-        ;1600 = 2342400
-        CIR = 2342400
-        CBS = 5856
-        EBS = 11712
-        MTR_PROFILE_IDX = 4
-
-        [ENTRY_3]
-        ; QCI5,QCI7 15.571kbps = 1947 B
-        CIR = 2342400
-        CBS = 5856
-        EBS = 11712
-        MTR_PROFILE_IDX = 5
-
-        [ENTRY_4]
-        ; QCI1, 44kbps = 5500 B
-        CIR = 2342400
-        CBS = 5856
-        EBS = 11712
-        MTR_PROFILE_IDX = 6
-
-        [ENTRY_5]
-        ; QCI9, 31.143kbps = 3893 B
-        CIR = 2342400
-        CBS = 5856
-        EBS = 11712
-        MTR_PROFILE_IDX = 7
-
-        [ENTRY_6]
-        ; 128B, 7pps
-        CIR = 2342400
-        CBS = 512
-        EBS = 1024
-        MTR_PROFILE_IDX = 8
-
-        [ENTRY_7]
-        ; 128B, 2pps
-        CIR = 2342400
-        CBS = 512
-        EBS = 1024
-        MTR_PROFILE_IDX = 9
-      pcc_rules.cfg: |
-        [GLOBAL]
-        NUM_PCC_FILTERS = 9
-        ;To config AMBR/MBR values refer meter_profile.cfg. specify only the
-        ;meter profile index to be set here.
-        UL_AMBR_MTR_PROFILE_IDX = 3
-        DL_AMBR_MTR_PROFILE_IDX = 4
-
-        ;default filter - must be first for now (until DP doesn't install any filters)
-        ;associated with default adc rule
-        [PCC_FILTER_1]
-        RULE_NAME = DefaultRule
-        RATING_GROUP = 9
-        SERVICE_ID = 0
-        RULE_STATUS = 0
-        GATE_STATUS = 1
-        SESSION_CONT = 0
-        REPORT_LEVEL = 1
-        CHARGING_MODE = 0
-        METERING_METHOD = 0
-        MUTE_NOTIFY = 0
-        MONITORING_KEY = 0
-        SPONSOR_ID = 0
-        REDIRECT_INFO = 0
-        PRECEDENCE = 254
-        DROP_PKT_COUNT = 0
-        ;Specify the meter profile index from meter_profile.cfg
-        UL_MBR_MTR_PROFILE_IDX = 7
-        DL_MBR_MTR_PROFILE_IDX = 7
-        ;List of ADC filter indices
-        SDF_FILTER_IDX = 99998
-
-        [PCC_FILTER_2]
-        RULE_NAME = sdf_rule_1
-        RATING_GROUP = 5
-        SERVICE_ID = 0
-        RULE_STATUS = 0
-        GATE_STATUS = 1
-        SESSION_CONT = 0
-        REPORT_LEVEL = 2
-        CHARGING_MODE = 0
-        METERING_METHOD = 0
-        MUTE_NOTIFY = 0
-        MONITORING_KEY = 0
-        SPONSOR_ID = 0
-        REDIRECT_INFO = 0
-        PRECEDENCE = 1
-        DROP_PKT_COUNT = 0
-        UL_MBR_MTR_PROFILE_IDX = 5
-        DL_MBR_MTR_PROFILE_IDX = 5
-        ;List of SDF filter indices
-        SDF_FILTER_IDX = 1
-
-        [PCC_FILTER_3]
-        RULE_NAME = sdf_rule_2
-        RATING_GROUP = 1
-        SERVICE_ID = 0
-        RULE_STATUS = 0
-        GATE_STATUS = 1
-        SESSION_CONT = 0
-        REPORT_LEVEL = 3
-        CHARGING_MODE = 0
-        METERING_METHOD = 0
-        MUTE_NOTIFY = 0
-        MONITORING_KEY = 0
-        SPONSOR_ID = 0
-        REDIRECT_INFO = 0
-        PRECEDENCE = 18
-        DROP_PKT_COUNT = 0
-        UL_MBR_MTR_PROFILE_IDX = 6
-        DL_MBR_MTR_PROFILE_IDX = 6
-        ;List of SDF filter indices
-        SDF_FILTER_IDX = 2
-
-        [PCC_FILTER_4]
-        RULE_NAME = adc_rule_1
-        RATING_GROUP = Zero-Rate
-        SERVICE_ID = Internet
-        RULE_STATUS = 0
-        GATE_STATUS = 1
-        SESSION_CONT = 0
-        REPORT_LEVEL = 8
-        CHARGING_MODE = 0
-        METERING_METHOD = 0
-        MUTE_NOTIFY = 0
-        MONITORING_KEY = 0
-        REDIRECT_INFO = 0
-        SPONSOR_ID = Example
-        PRECEDENCE = 15
-        DROP_PKT_COUNT = 0
-        UL_MBR_MTR_PROFILE_IDX = 7
-        DL_MBR_MTR_PROFILE_IDX = 7
-        ;List of SDF filter indices
-        ADC_FILTER_IDX = 1
-
-        [PCC_FILTER_5]
-        RULE_NAME = adc_rule_2
-        RATING_GROUP = 0
-        SERVICE_ID = CIPA
-        RULE_STATUS = 0
-        GATE_STATUS = 1
-        SESSION_CONT = 0
-        REPORT_LEVEL = 9
-        CHARGING_MODE = 0
-        METERING_METHOD = 0
-        MUTE_NOTIFY = 0
-        MONITORING_KEY = 0
-        SPONSOR_ID = Example
-        REDIRECT_INFO = 0
-        SPONSOR_ID = Example
-        REDIRECT_INFO = 0
-        PRECEDENCE = 4
-        DROP_PKT_COUNT = 0
-        UL_MBR_MTR_PROFILE_IDX = 0
-        DL_MBR_MTR_PROFILE_IDX = 0
-        ;List of SDF filter indices
-        ADC_FILTER_IDX = 2
-
-        [PCC_FILTER_6]
-        RULE_NAME = sdf_rule_3
-        RATING_GROUP = 7
-        SERVICE_ID = 0
-        RULE_STATUS = 0
-        GATE_STATUS = 1
-        SESSION_CONT = 0
-        REPORT_LEVEL = 4
-        CHARGING_MODE = 0
-        METERING_METHOD = 0
-        MUTE_NOTIFY = 0
-        MONITORING_KEY = 0
-        SPONSOR_ID = 0
-        REDIRECT_INFO = 0
-        PRECEDENCE = 17
-        DROP_PKT_COUNT = 0
-        UL_MBR_MTR_PROFILE_IDX = 5
-        DL_MBR_MTR_PROFILE_IDX = 5
-        ;List of SDF filter indices
-        SDF_FILTER_IDX = 3
-
-        [PCC_FILTER_7]
-        RULE_NAME = adc_rule_3
-        RATING_GROUP = Zero-Rate
-        SERVICE_ID = Internet
-        RULE_STATUS = 0
-        GATE_STATUS = 1
-        SESSION_CONT = 0
-        REPORT_LEVEL = 5
-        CHARGING_MODE = 0
-        METERING_METHOD = 0
-        MUTE_NOTIFY = 0
-        MONITORING_KEY = 0
-        SPONSOR_ID = Example
-        REDIRECT_INFO = 0
-        PRECEDENCE = 210
-        DROP_PKT_COUNT = 0
-        UL_MBR_MTR_PROFILE_IDX = 7
-        DL_MBR_MTR_PROFILE_IDX = 7
-        ;List of SDF filter indices
-        ADC_FILTER_IDX = 4
-
-        [PCC_FILTER_8]
-        RULE_NAME = adc_rule_4
-        RATING_GROUP = Zero-Rate
-        SERVICE_ID = Management
-        RULE_STATUS = 0
-        GATE_STATUS = 1
-        SESSION_CONT = 0
-        REPORT_LEVEL = 6
-        CHARGING_MODE = 0
-        METERING_METHOD = 0
-        MUTE_NOTIFY = 0
-        MONITORING_KEY = 0
-        SPONSOR_ID = Example
-        REDIRECT_INFO = 0
-        PRECEDENCE = 200
-        DROP_PKT_COUNT = 0
-        UL_MBR_MTR_PROFILE_IDX = 7
-        DL_MBR_MTR_PROFILE_IDX = 7
-        ;List of SDF filter indices
-        ADC_FILTER_IDX = 12
-
-        [PCC_FILTER_9]
-        RULE_NAME = adc_rule_5
-        RATING_GROUP = Zero-Rate
-        SERVICE_ID = Provisioning
-        RULE_STATUS = 0
-        GATE_STATUS = 1
-        SESSION_CONT = 0
-        REPORT_LEVEL = 7
-        CHARGING_MODE = 0
-        METERING_METHOD = 0
-        MUTE_NOTIFY = 0
-        MONITORING_KEY = 0
-        SPONSOR_ID = Example
-        REDIRECT_INFO = 0
-        PRECEDENCE = 220
-        DROP_PKT_COUNT = 0
-        UL_MBR_MTR_PROFILE_IDX = 7
-        DL_MBR_MTR_PROFILE_IDX = 7
-        ;List of SDF filter indices
-        ADC_FILTER_IDX = 3
-      sdf_rules.cfg: |
-        [GLOBAL]
-        NUM_SDF_FILTERS = 4
-
-        [SDF_FILTER_1]
-        DIRECTION = downlink_only
-        IPV4_REMOTE = 13.2.1.113
-        IPV4_REMOTE_MASK = 255.255.255.0
-        PROTOCOL = 17
-        LOCAL_LOW_LIMIT_PORT = 0
-        LOCAL_HIGH_LIMIT_PORT = 65535
-        REMOTE_LOW_LIMIT_PORT = 0
-        REMOTE_HIGH_LIMIT_PORT = 65535
-
-        [SDF_FILTER_2]
-        DIRECTION = uplink_only
-        IPV4_LOCAL = 16.255.255.0
-        IPV4_LOCAL_MASK = 255.255.255.0
-        PROTOCOL = 17
-        LOCAL_LOW_LIMIT_PORT = 0
-        LOCAL_HIGH_LIMIT_PORT = 65535
-        REMOTE_LOW_LIMIT_PORT = 0
-        REMOTE_HIGH_LIMIT_PORT = 65535
-
-        [SDF_FILTER_3]
-        DIRECTION = downlink_only
-        IPV4_REMOTE = 130.10.0.0
-        IPV4_REMOTE_MASK = 255.255.0.0
-        PROTOCOL = 17
-        REMOTE_LOW_LIMIT_PORT = 5060
-        REMOTE_HIGH_LIMIT_PORT = 5060
-
-        [SDF_FILTER_4]
-        DIRECTION = uplink_only
-        IPV4_REMOTE = 103.1.0.0
-        IPV4_REMOTE_MASK = 255.255.0.0
-        PROTOCOL = 17
-        LOCAL_LOW_LIMIT_PORT = 17000
-        LOCAL_HIGH_LIMIT_PORT = 17010
-# CDN configuration values
-  cdnRemotes:
-  - name: remote-1
-    ip: 10.0.0.240
-    port: 30935
-    streams:
-    - name: 360p
-      value: 360
-    - name: 480p
-      value: 480
-    - name: 720p
-      value: 720
-
-nodeSelectors:
-  enabled: true
-
-# cord-platform values
-etcd-operator:
-  enabled: false
-
-# comac values
-seba-services:
-  enabled: false
diff --git a/seba-in-a-box/Makefile b/seba-in-a-box/Makefile
index 5a2b93d..b71454c 100644
--- a/seba-in-a-box/Makefile
+++ b/seba-in-a-box/Makefile
@@ -363,11 +363,14 @@
 	robot $(PYBOT_ARGS) --removekeywords wuks -e notready -i $(TESTTAGS) -v VOLTHA_DIR:$(WORKSPACE)/cord/incubator/voltha SIAB.robot
 	touch $@
 
-remove-chart-milestones:
+remove-chart-milestones: remove-bbsim-milestones
 	cd $(M); rm -f kafka-running onos voltha etcd-operator-ready etcd-cluster \
-		voltha-running ponsim mininet nem nem-running ponsim-tosca siab bbsim bbsim-tosca \
+		voltha-running ponsim mininet nem nem-running ponsim-tosca siab \
 		logging nem-monitoring seba-2.0.0-alpha1 ponX_fwd
 
+remove-bbsim-milestones:
+	cd $(M); rm -f bbsim bbsim-tosca
+
 remove-kube-milestones:
 	cd $(M); rm -f kubeadm helm-init
 
@@ -378,6 +381,15 @@
 	helm delete --purge $(shell helm ls -q | grep -v -E "docker-registry|mavenrepo|ponnet|kafka")
 	$(WORKSPACE)/cord/helm-charts/scripts/wait_for_pods.sh
 
+teardown-bbsim: remove-bbsim-milestones
+	cd $(M); rm -f voltha-running voltha 
+	cordctl model delete RCORDSubscriber --all || true
+	timeout 60s bash -c "until cordctl model list VOLTServiceInstance --format json | wc -l | grep -q 0; do echo 'Waiting for Subscribers to be removed'; sleep 5; done"
+	cordctl model delete OLTDevice --all || true
+	cordctl model delete AttWorkflowDriverServiceInstance --all || true
+	timeout 60s bash -c "until http GET http://127.0.0.1:30125/api/v1/devices | jq '.items | length' | grep -q 0; do echo 'Waiting for OLTs to be removed'; sleep 5; done"
+	helm del --purge bbsim voltha
+
 reset-kubeadm: remove-chart-milestones remove-kube-milestones remove-test-milestones
 	cd $(M); rm -f kafka ponnet
 	sudo kubeadm reset -f || true
@@ -387,3 +399,4 @@
 	sudo rm -f /var/lib/cni/networks/k8s-pod-network/* || true
 	for br in /sys/class/net/pon*; do sudo ip link delete `basename $$br` type bridge; done || true
 	for br in /sys/class/net/nni*; do sudo ip link delete `basename $$br` type bridge; done || true
+
diff --git a/voltha/voltha-kafka-dump/Dockerfile b/voltha/voltha-kafka-dump/Dockerfile
new file mode 100755
index 0000000..dfce9f0
--- /dev/null
+++ b/voltha/voltha-kafka-dump/Dockerfile
@@ -0,0 +1,44 @@
+# Copyright 2019-present the original author or authors.

+#

+# 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.

+

+FROM confluentinc/cp-kafkacat:4.1.2

+

+# version of voltha-protos to use in this container

+

+ARG VOLTHA_PROTOS_VERSION=unknown

+

+SHELL ["/bin/bash", "-o", "pipefail", "-c"]

+

+RUN apt-get update && \

+    apt-get install -y unzip=6.0-21+deb9u2 curl=7.52.1-5+deb9u9 git=1:2.11.0-3+deb9u4 libatomic1=6.3.0-18+deb9u1 ca-certificates=20161130+nmu1+deb9u1 python3.5=3.5.3-1+deb9u1 --no-install-recommends && \

+    apt-get clean && \

+    rm -rf /var/lib/apt/lists/*

+

+# Install protoc

+RUN PROTOC_VERSION="3.7.0" && \

+    PROTOC_SHA256SUM="a1b8ed22d6dc53c5b8680a6f1760a305b33ef471bece482e92728f00ba2a2969" && \

+    curl -L -o /tmp/protoc-$PROTOC_VERSION-linux-x86_64.zip https://github.com/google/protobuf/releases/download/v$PROTOC_VERSION/protoc-$PROTOC_VERSION-linux-x86_64.zip && \

+    echo "$PROTOC_SHA256SUM  /tmp/protoc-$PROTOC_VERSION-linux-x86_64.zip" | sha256sum -c - && \

+    unzip /tmp/protoc-$PROTOC_VERSION-linux-x86_64.zip -d /tmp/protoc3 && \

+    mv /tmp/protoc3/bin/* /usr/local/bin/ && \

+    mv /tmp/protoc3/include/* /usr/local/include/ && \

+    chmod -R a+rx /usr/local/bin/* && \

+    chmod -R a+rX /usr/local/include/

+

+WORKDIR /opt/voltha-kafka-dump

+

+# Install voltha-protos

+RUN git clone -b $VOLTHA_PROTOS_VERSION --single-branch https://github.com/opencord/voltha-protos.git

+

+COPY callprotoc.py voltha-dump-events.sh ./

diff --git a/voltha/voltha-kafka-dump/Makefile b/voltha/voltha-kafka-dump/Makefile
new file mode 100644
index 0000000..95ff9bc
--- /dev/null
+++ b/voltha/voltha-kafka-dump/Makefile
@@ -0,0 +1,93 @@
+# Copyright 2019-present the original author or authors.
+#
+# 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.
+#
+
+# set default shell
+SHELL = bash -e -o pipefail
+
+# Variables
+VERSION                    ?= $(shell cat ../../VERSION)
+
+VOLTHA_PROTOS_VERSION      ?= v2.1.2
+
+DOCKER_LABEL_VCS_DIRTY     = false
+ifneq ($(shell git ls-files --others --modified --exclude-standard 2>/dev/null | wc -l | sed -e 's/ //g'),0)
+    DOCKER_LABEL_VCS_DIRTY = true
+endif
+## Docker related
+DOCKER_EXTRA_ARGS          ?=
+DOCKER_REGISTRY            ?=
+DOCKER_REPOSITORY          ?=
+DOCKER_TAG                 ?= ${VERSION}$(shell [[ ${DOCKER_LABEL_VCS_DIRTY} == "true" ]] && echo "-dirty" || true)
+IMAGENAME                  := ${DOCKER_REGISTRY}${DOCKER_REPOSITORY}voltha-kafka-dump
+
+## Docker labels. Only set ref and commit date if committed
+DOCKER_LABEL_VCS_URL       ?= $(shell git remote get-url $(shell git remote))
+DOCKER_LABEL_VCS_REF       = $(shell git rev-parse HEAD)
+DOCKER_LABEL_BUILD_DATE    ?= $(shell date -u "+%Y-%m-%dT%H:%M:%SZ")
+DOCKER_LABEL_COMMIT_DATE   = $(shell git show -s --format=%cd --date=iso-strict HEAD)
+
+DOCKER_BUILD_ARGS ?= \
+	${DOCKER_EXTRA_ARGS} \
+	--build-arg org_label_schema_version="${VERSION}" \
+	--build-arg org_label_schema_vcs_url="${DOCKER_LABEL_VCS_URL}" \
+	--build-arg org_label_schema_vcs_ref="${DOCKER_LABEL_VCS_REF}" \
+	--build-arg org_label_schema_build_date="${DOCKER_LABEL_BUILD_DATE}" \
+	--build-arg org_opencord_vcs_commit_date="${DOCKER_LABEL_COMMIT_DATE}" \
+	--build-arg org_opencord_vcs_dirty="${DOCKER_LABEL_VCS_DIRTY}" \
+        --build-arg VOLTHA_PROTOS_VERSION="${VOLTHA_PROTOS_VERSION}"
+
+# This should to be the first and default target in this Makefile
+help:
+	@echo "Usage: make [<target>]"
+	@echo "where available targets are:"
+	@echo
+	@echo "build                : Build the docker images."
+	@echo "                         - If this is the first time you are building, choose 'make build' option."
+	@echo "clean                : Remove files created by the build and tests"
+	@echo "distclean            : Remove venv directory"
+	@echo "docker-push          : Push the docker images to an external repository"
+	@echo "lint-dockerfile      : Perform static analysis on Dockerfiles"
+	@echo "lint                 : Shorthand for lint-dockerfile"
+	@echo
+
+## Docker targets
+
+build: docker-build
+
+docker-build: voltha-kafka-dump
+
+voltha-kafka-dump:
+	docker build $(DOCKER_BUILD_ARGS) -t ${IMAGENAME}:${DOCKER_TAG} -t ${IMAGENAME}:latest -f Dockerfile .
+
+docker-push:
+	docker push ${IMAGENAME}:${DOCKER_TAG}
+
+## lint and unit tests
+
+PATH:=$(GOPATH)/bin:$(PATH)
+HADOLINT=$(shell PATH=$(GOPATH):$(PATH) which hadolint)
+lint-dockerfile:
+ifeq (,$(shell PATH=$(GOPATH):$(PATH) which hadolint))
+	mkdir -p $(GOPATH)/bin
+	curl -o $(GOPATH)/bin/hadolint -sNSL https://github.com/hadolint/hadolint/releases/download/v1.17.1/hadolint-$(shell uname -s)-$(shell uname -m)
+	chmod 755 $(GOPATH)/bin/hadolint
+endif
+	@echo "Running Dockerfile lint check ..."
+	@hadolint $$(find . -name "Dockerfile")
+	@echo "Dockerfile lint check OK"
+
+lint: lint-dockerfile
+
+# end file
diff --git a/voltha/voltha-kafka-dump/callprotoc.py b/voltha/voltha-kafka-dump/callprotoc.py
new file mode 100644
index 0000000..9e756b7
--- /dev/null
+++ b/voltha/voltha-kafka-dump/callprotoc.py
@@ -0,0 +1,63 @@
+# Copyright 2019-present the original author or authors.
+#
+# 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.
+
+# Separate the incoming stream of messages from kafkacat and call
+# protoc on each message.
+
+from __future__ import print_function
+
+import subprocess
+import sys
+
+
+def call_protoc(buf, msgName, protoFileName, includeDir, first):
+    process = subprocess.Popen(["protoc", "--decode="+msgName, protoFileName, "-I", includeDir], stdin=subprocess.PIPE, stdout=subprocess.PIPE)
+    process.stdin.write(buf)
+    if not first:
+        print(",")
+    print(process.communicate()[0].decode("utf-8"))
+    process.stdin.close()
+
+
+def main():
+    if len(sys.argv) != 4:
+        print(sys.stderr, "syntax: callprotoc.py <msgname> <protofilename> <includedir>", file=sys.stderr)
+        sys.exit(-1)
+
+    msgName = sys.argv[1]
+    protoFileName = sys.argv[2]
+    includeDir = sys.argv[3]
+
+    print ("[")
+
+    buf = b""
+    first = True
+    in_bytes = sys.stdin.buffer.read(1)
+    while in_bytes:
+        buf = buf + in_bytes
+        while b"===VOLTHA-DELIM===" in buf:
+            (part, buf) = buf.split(b"===VOLTHA-DELIM===", 1)
+            call_protoc(part, msgName, protoFileName, includeDir, first)
+            first = False
+        in_bytes = sys.stdin.buffer.read(1)
+
+    # there is likely one trailing message still to print
+    if buf:
+        call_protoc(buf, msgName, protoFileName, includeDir, first)
+
+    print ("]")
+
+
+if __name__ == "__main__":
+    main()
diff --git a/voltha/voltha-kafka-dump/voltha-dump-events.sh b/voltha/voltha-kafka-dump/voltha-dump-events.sh
new file mode 100755
index 0000000..b0eae94
--- /dev/null
+++ b/voltha/voltha-kafka-dump/voltha-dump-events.sh
@@ -0,0 +1,25 @@
+#!/usr/bin/env bash
+
+# Copyright 2019-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.
+
+# If the --binary flag is used then binary output will be printed.
+# Otherwise, human-readable output is printed.
+
+if [[ $* == *--binary* ]]; then
+  kafkacat -u -C -b voltha-kafka.voltha -t voltha.events -D "" -o beginning -e
+else
+  kafkacat -u -C -b voltha-kafka.voltha -t voltha.events -D "===VOLTHA-DELIM===" -o beginning -e | \
+    python3.5 ./callprotoc.py voltha.Event /opt/voltha-kafka-dump/voltha-protos/protos/voltha_protos/events.proto /opt/voltha-kafka-dump/voltha-protos/protos
+fi