Merge "[VOL-3528] OpenOnu-Go-Adapter: Insert TT workflow sanity test into CI pipeline"
diff --git a/jjb/build_openolt_deb.yaml b/jjb/build_openolt_deb.yaml
index 390c398..e1b8cf6 100644
--- a/jjb/build_openolt_deb.yaml
+++ b/jjb/build_openolt_deb.yaml
@@ -12,6 +12,7 @@
 - job-template:
     id: build_openolt_deb
     name: 'build_openolt_deb'
+    disabled: true
     description: |
       <!-- Managed by Jenkins Job Builder -->
       Created by {id} job-template from ci-management/jjb/{name}
@@ -21,7 +22,7 @@
           gerrit-server-name: '{gerrit-server-name}'
           project-regexp: '^(openolt)$'
           branch-regexp: '{modern-branches-regexp}'
-          file-include-regexp: '{doc-files-regexp}'
+          file-include-regexp: '{all-files-regexp}'
           dependency-jobs: '{dependency-jobs}'
 
     properties:
diff --git a/jjb/cord-test/voltha.yaml b/jjb/cord-test/voltha.yaml
index 79a6694..29f0bd5 100644
--- a/jjb/cord-test/voltha.yaml
+++ b/jjb/cord-test/voltha.yaml
@@ -236,6 +236,7 @@
       # Menlo pod with olt/onu - Default tech profile and timer based job
       - 'build_voltha_pod_release_timer':
           build-node: 'menlo-demo-pod'
+          'disable-job': true
           config-pod: 'onf-demo-pod-gpon'
           release: 'master'
           branch: 'master'
@@ -278,7 +279,6 @@
           profile: '1T4GEM'
           in-band-management: true
           VolthaEtcdPort: '9999'
-          reinstall-olt: false
           time: '1'
 
       # Menlo pod test job - master test job uses tech profile on voltha branch
@@ -308,7 +308,6 @@
           profile: '1T8GEM'
           VolthaEtcdPort: '9999'
           in-band-management: true
-          reinstall-olt: false
           time: '4'
 
       # Menlo pod test job - uses tech profile on voltha branch
@@ -342,7 +341,6 @@
           configurePod: true
           profile: '1T8GEM'
           VolthaEtcdPort: '9999'
-          reinstall-olt: false
           in-band-management: true
           time: '7'
 
@@ -376,7 +374,6 @@
           configurePod: true
           profile: '1T8GEM'
           VolthaEtcdPort: '9999'
-          reinstall-olt: false
           in-band-management: true
           time: '7'
 
@@ -406,7 +403,6 @@
           num-of-openonu: '2'
           num-of-onos: '3'
           num-of-atomix: '3'
-          reinstall-olt: false
           in-band-management: true
       - 'build_pod_test':
           build-node: 'menlo-demo-pod'
@@ -429,7 +425,6 @@
           Jenkinsfile: 'Jenkinsfile-voltha-build'
           configurePod: true
           profile: 'Default'
-          reinstall-olt: false
           in-band-management: true
 
       # ONF DEMO OCP test job - voltha-master branch
@@ -693,7 +688,6 @@
       - 'build_voltha_pod_release_timer':
           build-node: 'dt-berlin-community-pod'
           config-pod: 'dt-berlin-pod-gpon'
-          'disable-job': true
           release: '2.5'
           branch: 'voltha-2.5'
           num-of-openonu: '2'
@@ -709,11 +703,10 @@
           time: '8'
 
 
-      # Berlin POD test job - voltha-2.4 versions: uses 1T8GEM tech profile on voltha branch
+      # Berlin POD test job - voltha-2.5 versions: uses 1T8GEM tech profile on voltha branch
       - 'build_voltha_pod_test':
           build-node: 'dt-berlin-community-pod'
           config-pod: 'dt-berlin-pod-gpon'
-          'disable-job': true
           name-extension: '_DT'
           work-flow: 'DT'
           release: '2.5'
diff --git a/jjb/defaults.yaml b/jjb/defaults.yaml
index e0280db..48174ad 100644
--- a/jjb/defaults.yaml
+++ b/jjb/defaults.yaml
@@ -129,7 +129,6 @@
 
     # for matching files with file-include-regexp
     all-files-regexp: '.*'
-    doc-files-regexp: '^docs/.*'
 
     # regex to allow docs-only patchsets w/version bumps to skip code-level
     # tests.  Have to also ignore the commit message on negative match,
diff --git a/jjb/docs-legacy.yaml b/jjb/docs-legacy.yaml
deleted file mode 100644
index 1151e17..0000000
--- a/jjb/docs-legacy.yaml
+++ /dev/null
@@ -1,109 +0,0 @@
----
-# Legacy CORD documentation verification and publish tasks
-
-- project:
-    name: verify-docs-legacy
-
-    jobs:
-      - 'verify-documentation-legacy':
-          project-regexp: '^(cord|platform-install|cord-tester|rcord|ecord|mcord|opencloud|xos|xos-gui|xos-tosca)$'
-          branch-regexp: '{legacy-branches-regexp}'
-
-- project:
-    name: publish-docs-legacy
-
-    jobs:
-      - 'publish-documentation-legacy':
-          project-regexp: '^(cord|platform-install|cord-tester|rcord|ecord|mcord|opencloud|xos|xos-gui|xos-tosca)$'
-          branch-regexp: '{legacy-branches-regexp}'
-
-- job-template:
-    id: verify-documentation-legacy
-    name: "verify-documentation-legacy"
-
-    triggers:
-      - cord-infra-gerrit-trigger-patchset:
-          gerrit-server-name: '{gerrit-server-name}'
-          project-regexp: '{project-regexp}'
-          branch-regexp: '{branch-regexp}'
-          file-include-regexp: '{doc-files-regexp}'
-          dependency-jobs: '{dependency-jobs}'
-
-    properties:
-      - cord-infra-properties:
-          build-days-to-keep: '{build-days-to-keep}'
-          artifact-num-to-keep: '{artifact-num-to-keep}'
-
-    wrappers:
-      - lf-infra-wrappers:
-          build-timeout: '{build-timeout}'
-          jenkins-ssh-credential: '{jenkins-ssh-credential}'
-
-    scm:
-      - cord-infra-gerrit-repo-scm:
-          manifest-url: '{gerrit-server-url}/{cord-repo-manifest}'
-          branch: '$GERRIT_BRANCH'
-          destination-dir: 'cord'
-
-    node: '{build-node}'
-    project-type: freestyle
-    concurrent: false
-
-    builders:
-      - cord-infra-gerrit-repo-patch:
-          destination-dir: 'cord'
-          project: '$GERRIT_PROJECT'
-          change-number: '$GERRIT_CHANGE_NUMBER'
-          patchset-number: '$GERRIT_PATCHSET_NUMBER'
-      - shell: |
-          cd cord/build/docs
-          make test
-
-- job-template:
-    id: publish-documentation-legacy
-    name: 'publish-documentation-legacy'
-
-    triggers:
-      - cord-infra-gerrit-trigger-merge:
-          gerrit-server-name: '{gerrit-server-name}'
-          project-regexp: '{project-regexp}'
-          branch-regexp: '{branch-regexp}'
-          file-include-regexp: '{doc-files-regexp}'
-          dependency-jobs: '{dependency-jobs}'
-
-    properties:
-      - cord-infra-properties:
-          build-days-to-keep: '{build-days-to-keep}'
-          artifact-num-to-keep: '{artifact-num-to-keep}'
-
-    wrappers:
-      - lf-infra-wrappers:
-          build-timeout: '{build-timeout}'
-          jenkins-ssh-credential: '{jenkins-ssh-credential}'
-
-    scm:
-      - cord-infra-gerrit-repo-scm:
-          manifest-url: '{gerrit-server-url}/{cord-repo-manifest}'
-          branch: '$GERRIT_BRANCH'
-          destination-dir: 'cord'
-
-    node: '{build-node}'
-    project-type: freestyle
-    concurrent: false
-
-    builders:
-      - shell: |
-          #!/usr/bin/env bash
-
-          # Set up the ssh host keys for the docs host
-          mkdir -p ~/.ssh
-          echo '{docs-ssh-host-key}' >> ~/.ssh/known_hosts
-
-          # build the docs
-          cd cord/docs
-          make build
-
-          # copy swagger REST API docs first, then exclude deleting them when copying rest of guide
-          rsync -rvzh --delete _book/ {docs-ssh-host}:/var/www/guide/$GERRIT_BRANCH
-          rsync -rvzh --delete xos/swagger/ {docs-ssh-host}:/var/www/guide/$GERRIT_BRANCH/swagger
-
diff --git a/jjb/docs.yaml b/jjb/docs.yaml
deleted file mode 100644
index c1b244d..0000000
--- a/jjb/docs.yaml
+++ /dev/null
@@ -1,252 +0,0 @@
----
-# CORD documentation verification and publish tasks
-
-- project:
-    name: verify-docs
-
-    jobs:
-      - 'verify-documentation':
-          other-docs-repos-regexp: '{cord-guide-projects-regexp}'
-          branch-regexp: '{modern-branches-regexp}'
-
-- project:
-    name: publish-docs
-
-    jobs:
-      - 'publish-documentation':
-          other-docs-repos-regexp: '{cord-guide-projects-regexp}'
-          branch-regexp: '{modern-branches-regexp}'
-
-- project:
-    name: publish-xos-docs
-
-    jobs:
-      - 'publish-xos-documentation':
-          branch-regexp: '{modern-branches-regexp}'
-
-- job-template:
-    id: verify-documentation
-    name: "verify-documentation"
-
-    triggers:
-      - gerrit:
-          server-name: '{gerrit-server-name}'
-          dependency-jobs: '{dependency-jobs}'
-          silent-start: true
-          trigger-on:
-            - patchset-created-event:
-                exclude-drafts: true
-                exclude-trivial-rebase: false
-                exclude-no-code-change: true
-            - draft-published-event
-            - comment-added-contains-event:
-                comment-contains-value: '(?i)^.*recheck$'
-          projects:
-            - project-compare-type: PLAIN
-              project-pattern: 'docs'
-              branches:
-                - branch-compare-type: REG_EXP
-                  branch-pattern: '{branch-regexp}'
-              file-paths:
-                - compare-type: REG_EXP
-                  pattern: '{all-files-regexp}'
-            - project-compare-type: REG_EXP
-              project-pattern: '{other-docs-repos-regexp}'
-              branches:
-                - branch-compare-type: REG_EXP
-                  branch-pattern: '{branch-regexp}'
-              file-paths:
-                - compare-type: REG_EXP
-                  pattern: '{doc-files-regexp}'
-                - compare-type: REG_EXP
-                  pattern: '.*\.md'
-
-    properties:
-      - cord-infra-properties:
-          build-days-to-keep: '{build-days-to-keep}'
-          artifact-num-to-keep: '{artifact-num-to-keep}'
-
-    wrappers:
-      - lf-infra-wrappers:
-          build-timeout: '20'
-          jenkins-ssh-credential: '{jenkins-ssh-credential}'
-
-    scm:
-      - cord-infra-gerrit-repo-scm:
-          manifest-url: '{gerrit-server-url}/{cord-repo-manifest}'
-          branch: '$GERRIT_BRANCH'
-          destination-dir: 'cord'
-
-    node: 'ubuntu16.04-basebuild-1c-2g'
-    project-type: freestyle
-    concurrent: false
-
-    builders:
-      - cord-infra-gerrit-repo-patch:
-          destination-dir: 'cord'
-          project: '$GERRIT_PROJECT'
-          change-number: '$GERRIT_CHANGE_NUMBER'
-          patchset-number: '$GERRIT_PATCHSET_NUMBER'
-      - shell: |
-          #!/usr/bin/env bash
-
-          # checkout is under cord
-          cd cord
-
-          # make repos checkout directory
-          mkdir -p docs/repos
-
-          # Find path to the repo, copy into docs
-          PROJECT_PATH=$(xmllint --xpath "string(//project[@name=\"$GERRIT_PROJECT\"]/@path)" .repo/manifests/default.xml)
-          cp -r "$PROJECT_PATH" "docs/repos/$GERRIT_PROJECT"
-
-          # build docs, don't touch checkout under test, capture test result
-          cd docs
-          SKIP_CHECKOUT="$GERRIT_PROJECT" make test
-          test_result=$?
-
-          # cleanup
-          make clean
-
-          exit $test_result
-
-    publishers:
-      - email:
-          recipients: 'teo@opennetworking.org,smbaker@opennetworking.org,andy@opennetworking.org,zdw@opennetworking.org'
-
-- job-template:
-    id: publish-documentation
-    name: 'publish-documentation'
-
-    triggers:
-      - gerrit:
-          server-name: '{gerrit-server-name}'
-          dependency-jobs: '{dependency-jobs}'
-          silent-start: true
-          trigger-on:
-            - change-merged-event
-          projects:
-            - project-compare-type: PLAIN
-              project-pattern: 'docs'
-              branches:
-                - branch-compare-type: REG_EXP
-                  branch-pattern: '{branch-regexp}'
-              file-paths:
-                - compare-type: REG_EXP
-                  pattern: '{all-files-regexp}'
-            - project-compare-type: REG_EXP
-              project-pattern: '{other-docs-repos-regexp}'
-              branches:
-                - branch-compare-type: REG_EXP
-                  branch-pattern: '{branch-regexp}'
-              file-paths:
-                - compare-type: REG_EXP
-                  pattern: '{doc-files-regexp}'
-                - compare-type: REG_EXP
-                  pattern: '.*\.md'
-
-    properties:
-      - cord-infra-properties:
-          build-days-to-keep: '{build-days-to-keep}'
-          artifact-num-to-keep: '{artifact-num-to-keep}'
-
-    wrappers:
-      - lf-infra-wrappers:
-          build-timeout: '20'
-          jenkins-ssh-credential: '{jenkins-ssh-credential}'
-
-    scm:
-      - cord-infra-gerrit-repo-scm:
-          manifest-url: '{gerrit-server-url}/{cord-repo-manifest}'
-          branch: '$GERRIT_BRANCH'
-          destination-dir: 'cord'
-
-    node: 'ubuntu16.04-basebuild-1c-2g'
-    project-type: freestyle
-    concurrent: false
-
-    builders:
-      - shell: |
-          #!/usr/bin/env bash
-          set -e -o pipefail
-
-          # Set up the ssh host keys for the docs host
-          mkdir -p ~/.ssh
-          echo '{docs-ssh-host-key}' >> ~/.ssh/known_hosts
-
-          # build gitbook docs
-          cd $WORKSPACE/cord/docs
-
-          make build
-          rsync -rvzh --delete _book/ {docs-ssh-host}:/var/www/guide/$GERRIT_BRANCH
-
-          # build swagger docs
-          cd $WORKSPACE/cord/orchestration/xos/docs
-          make swagger_docs
-          rsync -rvzh --delete swagger/ {docs-ssh-host}:/var/www/guide/$GERRIT_BRANCH/swagger
-
-    publishers:
-      - email:
-          recipients: 'teo@opennetworking.org,smbaker@opennetworking.org,andy@opennetworking.org,zdw@opennetworking.org'
-
-- job-template:
-    id: publish-xos-documentation
-    name: 'publish-xos-documentation'
-
-    triggers:
-      - gerrit:
-          server-name: '{gerrit-server-name}'
-          dependency-jobs: '{dependency-jobs}'
-          silent-start: true
-          trigger-on:
-            - change-merged-event
-          projects:
-            - project-compare-type: PLAIN
-              project-pattern: 'xos'
-              branches:
-                - branch-compare-type: REG_EXP
-                  branch-pattern: '{branch-regexp}'
-              file-paths:
-                - compare-type: REG_EXP
-                  pattern: '{doc-files-regexp}'
-                - compare-type: REG_EXP
-                  pattern: '.*\.md'
-
-    properties:
-      - cord-infra-properties:
-          build-days-to-keep: '{build-days-to-keep}'
-          artifact-num-to-keep: '{artifact-num-to-keep}'
-
-    wrappers:
-      - lf-infra-wrappers:
-          build-timeout: '20'
-          jenkins-ssh-credential: '{jenkins-ssh-credential}'
-
-    scm:
-      - cord-infra-gerrit-repo-scm:
-          manifest-url: '{gerrit-server-url}/xos-manifest.git'
-          branch: '$GERRIT_BRANCH'
-          destination-dir: 'cord'
-
-    node: 'ubuntu16.04-basebuild-1c-2g'
-    project-type: freestyle
-    concurrent: false
-
-    builders:
-      - shell: |
-          #!/usr/bin/env bash
-          set -e -o pipefail
-
-          # Set up the ssh host keys for the docs host
-          mkdir -p ~/.ssh
-          echo '{docs-ssh-host-key}' >> ~/.ssh/known_hosts
-
-          # build gitbook docs
-          cd $WORKSPACE/cord/xos-core/docs
-
-          make build
-          rsync -rvzh --delete _book/ guide.opencord.org:/var/www/xos-guide
-
-    publishers:
-      - email:
-          recipients: 'teo@opennetworking.org,smbaker@opennetworking.org,andy@opennetworking.org,zdw@opennetworking.org'
diff --git a/jjb/omec-ci.yaml b/jjb/omec-ci.yaml
index 51640fb..68a2458 100644
--- a/jjb/omec-ci.yaml
+++ b/jjb/omec-ci.yaml
@@ -21,11 +21,11 @@
           build-node: 'omec-ci'
           cp-context: 'dev-central-gcp'
           dp-context: 'dev-edge-onf-menlo'
-          central-config: 'acc-gcp/app_values'
-          edge-config: 'ace-menlo/app_values'
+          central-config: 'acc-gcp/app_values/omec-cp.yaml'
+          edge-config: 'ace-menlo/app_values/omec-upf.yaml'
       - 'omec-ng40-test':
           pod: 'dev'
-          build-node: 'ng40-host-node'
+          build-node: 'omec-ci'
           ng40-vm: 'ng40@192.168.122.101'
           cp-context: 'dev-central-gcp'
           dp-context: 'dev-edge-onf-menlo'
@@ -663,7 +663,7 @@
     parameters:
       - string:
           name: buildNode
-          default: 'ng40-host-node'
+          default: 'omec-ci'
           description: 'Name of the Jenkins executor node to run the job on'
 
       - string:
@@ -688,7 +688,7 @@
 
       - string:
           name: registry
-          default: 'registry.central.aetherproject.net'
+          default: 'registry.aetherproject.org/omecproject'
           description: 'Docker registry that stores images built for CI testing'
 
       - string:
diff --git a/jjb/pipeline/voltha-dt-physical-functional-tests-openonu-go.groovy b/jjb/pipeline/voltha-dt-physical-functional-tests-openonu-go.groovy
index 4ef501e..1813064 100644
--- a/jjb/pipeline/voltha-dt-physical-functional-tests-openonu-go.groovy
+++ b/jjb/pipeline/voltha-dt-physical-functional-tests-openonu-go.groovy
@@ -226,7 +226,7 @@
 
       # collect ETCD cluster logs
       mkdir -p $WORKSPACE/etcd
-      printf '%s\n' $(kubectl get pods -l app=etcd -o=jsonpath="{.items[*]['metadata.name']}") | xargs -I@ bash -c "kubectl logs @ > $WORKSPACE/etcd/@.log"
+      printf '%s\n' $(kubectl get pods -l app=etcd -o=jsonpath="{.items[*]['metadata.name']}") | xargs -I% bash -c "kubectl logs % > $WORKSPACE/etcd/%.log"
       '''
       script {
         deployment_config.olts.each { olt ->
diff --git a/jjb/pipeline/voltha-dt-physical-functional-tests.groovy b/jjb/pipeline/voltha-dt-physical-functional-tests.groovy
index dbc60c8..9a0f5de 100644
--- a/jjb/pipeline/voltha-dt-physical-functional-tests.groovy
+++ b/jjb/pipeline/voltha-dt-physical-functional-tests.groovy
@@ -290,7 +290,7 @@
 
       # collect ETCD cluster logs
       mkdir -p $WORKSPACE/etcd
-      printf '%s\n' $(kubectl get pods -l app=etcd -o=jsonpath="{.items[*]['metadata.name']}") | xargs -I@ bash -c "kubectl logs @ > $WORKSPACE/etcd/@.log"
+      printf '%s\n' $(kubectl get pods -l app=etcd -o=jsonpath="{.items[*]['metadata.name']}") | xargs -I% bash -c "kubectl logs % > $WORKSPACE/etcd/%.log"
       '''
       script {
         deployment_config.olts.each { olt ->
diff --git a/jjb/pipeline/voltha-openonu-go-tests.groovy b/jjb/pipeline/voltha-openonu-go-tests.groovy
index bb270bf..4a29742 100755
--- a/jjb/pipeline/voltha-openonu-go-tests.groovy
+++ b/jjb/pipeline/voltha-openonu-go-tests.groovy
@@ -210,7 +210,7 @@
 
            export EXTRA_HELM_FLAGS+="--set use_openonu_adapter_go=true,log_agent.enabled=False ${extraHelmFlags} "
 
-           export EXTRA_HELM_FLAGS+="--set bbsim.pon=2,bbsim.onu=2,bbsim.controlledActivation=only-onu "
+           export EXTRA_HELM_FLAGS+="--set pon=2,onu=2,controlledActivation=only-onu "
 
            IMAGES="adapter_open_onu_go"
 
diff --git a/jjb/pipeline/voltha-physical-functional-tests.groovy b/jjb/pipeline/voltha-physical-functional-tests.groovy
index 53a4450..a54f369 100644
--- a/jjb/pipeline/voltha-physical-functional-tests.groovy
+++ b/jjb/pipeline/voltha-physical-functional-tests.groovy
@@ -284,7 +284,7 @@
 
       # collect ETCD cluster logs
       mkdir -p $WORKSPACE/etcd
-      printf '%s\n' $(kubectl get pods -l app=etcd -o=jsonpath="{.items[*]['metadata.name']}") | xargs -I@ bash -c "kubectl logs @ > $WORKSPACE/etcd/@.log"
+      printf '%s\n' $(kubectl get pods -l app=etcd -o=jsonpath="{.items[*]['metadata.name']}") | xargs -I% bash -c "kubectl logs % > $WORKSPACE/etcd/%.log"
       '''
       script {
         deployment_config.olts.each { olt ->
diff --git a/jjb/pipeline/voltha-physical-soak-dt-tests.groovy b/jjb/pipeline/voltha-physical-soak-dt-tests.groovy
index e08e92f..396cac9 100644
--- a/jjb/pipeline/voltha-physical-soak-dt-tests.groovy
+++ b/jjb/pipeline/voltha-physical-soak-dt-tests.groovy
@@ -203,7 +203,7 @@
 
       # collect ETCD cluster logs
       mkdir -p $WORKSPACE/etcd
-      printf '%s\n' $(kubectl get pods -l app=etcd -o=jsonpath="{.items[*]['metadata.name']}") | xargs -I@ bash -c "kubectl logs @ > $WORKSPACE/etcd/@.log"
+      printf '%s\n' $(kubectl get pods -l app=etcd -o=jsonpath="{.items[*]['metadata.name']}") | xargs -I% bash -c "kubectl logs % > $WORKSPACE/etcd/%.log"
       '''
       script {
         deployment_config.olts.each { olt ->
diff --git a/jjb/pipeline/voltha-physical-soak-tests.groovy b/jjb/pipeline/voltha-physical-soak-tests.groovy
index e73bd3c..080efd1 100644
--- a/jjb/pipeline/voltha-physical-soak-tests.groovy
+++ b/jjb/pipeline/voltha-physical-soak-tests.groovy
@@ -203,7 +203,7 @@
 
       # collect ETCD cluster logs
       mkdir -p $WORKSPACE/etcd
-      printf '%s\n' $(kubectl get pods -l app=etcd -o=jsonpath="{.items[*]['metadata.name']}") | xargs -I@ bash -c "kubectl logs @ > $WORKSPACE/etcd/@.log"
+      printf '%s\n' $(kubectl get pods -l app=etcd -o=jsonpath="{.items[*]['metadata.name']}") | xargs -I% bash -c "kubectl logs % > $WORKSPACE/etcd/%.log"
       '''
       script {
         deployment_config.olts.each { olt ->
diff --git a/jjb/pipeline/voltha-scale-test.groovy b/jjb/pipeline/voltha-scale-test.groovy
index bb87587..5d58d45 100644
--- a/jjb/pipeline/voltha-scale-test.groovy
+++ b/jjb/pipeline/voltha-scale-test.groovy
@@ -32,7 +32,7 @@
     SCHEDULE_ON_CONTROL_NODES="yes"
     FANCY=0
     WITH_SIM_ADAPTERS="no"
-    WITH_RADIUS="yes"
+    WITH_RADIUS="${withRadius}"
     WITH_BBSIM="yes"
     LEGACY_BBSIM_INDEX="no"
     DEPLOY_K8S="no"
@@ -63,6 +63,7 @@
     VOLTHA_ADAPTER_OPEN_OLT_CHART="${openoltAdapterChart}"
     VOLTHA_ADAPTER_OPEN_ONU_CHART="${openonuAdapterChart}"
     ONOS_CLASSIC_CHART="${onosChart}"
+    RADIUS_CHART="${radiusChart}"
 
     APPS_TO_LOG="etcd kafka onos-onos-classic adapter-open-onu adapter-open-olt rw-core ofagent bbsim radius"
     LOG_FOLDER="$WORKSPACE/logs"
@@ -265,22 +266,28 @@
     }
     stage('Configuration') {
       steps {
-        sh '''
+        script {
+          sh returnStdout: false, script: """
           #Setting link discovery
           sshpass -e ssh -q -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -p 8101 karaf@127.0.0.1 cfg set org.onosproject.provider.lldp.impl.LldpLinkProvider enabled ${withLLDP}
 
           sshpass -e ssh -q -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -p 8101 karaf@127.0.0.1 cfg set org.onosproject.net.flow.impl.FlowRuleManager allowExtraneousRules true
           sshpass -e ssh -q -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -p 8101 karaf@127.0.0.1 cfg set org.onosproject.net.flow.impl.FlowRuleManager importExtraneousRules true
 
-          kubectl exec onos-onos-classic-0 -- bash /root/onos/apache-karaf-4.2.9/bin/client log:set TRACE org.opencord.aaa
-          kubectl exec onos-onos-classic-1 -- bash /root/onos/apache-karaf-4.2.9/bin/client log:set TRACE org.opencord.aaa
-          kubectl exec onos-onos-classic-2 -- bash /root/onos/apache-karaf-4.2.9/bin/client log:set TRACE org.opencord.aaa
+          ONOSES=\$((\$NUM_OF_ONOS - 1))
+          for i in \$(seq 0 \$ONOSES); do
+            INSTANCE="onos-onos-classic-\$i"
 
-          sshpass -e ssh -q -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -p 8101 karaf@127.0.0.1 log:set DEBUG org.onosproject.net.flow.impl.FlowRuleManager
+            #Setting LOG level to ${logLevel}
+            kubectl exec \$INSTANCE -- bash /root/onos/${karafHome}/bin/client log:set ${logLevel} org.onosproject
+            kubectl exec \$INSTANCE -- bash /root/onos/${karafHome}/bin/client log:set ${logLevel} org.opencord
 
-          #Setting LOG level to ${logLevel}
-          sshpass -e ssh -q -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -p 8101 karaf@127.0.0.1 log:set ${logLevel}
-          kubectl exec $(kubectl get pods | grep -E "bbsim[0-9]" | awk 'NR==1{print $1}') -- bbsimctl log ${logLevel} false
+            kubectl exec \$INSTANCE -- bash /root/onos/${karafHome}/bin/client log:set TRACE org.opencord.dhcpl2relay
+            kubectl exec \$INSTANCE -- bash /root/onos/${karafHome}/bin/client log:set DEBUG org.opencord.olt
+          done
+
+
+          kubectl exec \$(kubectl get pods | grep -E "bbsim[0-9]" | awk 'NR==1{print \$1}') -- bbsimctl log ${logLevel.toLowerCase()} false
 
           # Set Flows/Ports/Meters poll frequency
           sshpass -e ssh -q -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no -p 8101 karaf@127.0.0.1 cfg set org.onosproject.provider.of.flow.impl.OpenFlowRuleProvider flowPollFrequency ${onosStatInterval}
@@ -293,21 +300,39 @@
           if [ ${withMibTemplate} = true ] ; then
             rm -f BBSM-12345123451234512345-00000000000001-v1.json
             wget https://raw.githubusercontent.com/opencord/voltha-openonu-adapter/master/templates/BBSM-12345123451234512345-00000000000001-v1.json
-            cat BBSM-12345123451234512345-00000000000001-v1.json | kubectl exec -it $(kubectl get pods -l app=etcd | awk 'NR==2{print $1}') -- etcdctl put service/voltha/omci_mibs/templates/BBSM/12345123451234512345/00000000000001
+            cat BBSM-12345123451234512345-00000000000001-v1.json | kubectl exec -it \$(kubectl get pods -l app=etcd | awk 'NR==2{print \$1}') -- etcdctl put service/voltha/omci_mibs/templates/BBSM/12345123451234512345/00000000000001
           fi
 
-          # Start the tcp-dump in ofagent
           if [ ${withPcap} = true ] ; then
-            export OF_AGENT=$(kubectl get pods -l app=ofagent -o name)
-            kubectl exec $OF_AGENT -- apk update
-            kubectl exec $OF_AGENT -- apk add tcpdump
-            kubectl exec $OF_AGENT -- mv /usr/sbin/tcpdump /usr/bin/tcpdump
-            _TAG=ofagent-tcpdump kubectl exec $OF_AGENT -- tcpdump -nei eth0 -w out.pcap&
+            # Start the tcp-dump in ofagent
+            export OF_AGENT=\$(kubectl get pods -l app=ofagent -o name)
+            kubectl exec \$OF_AGENT -- apk update
+            kubectl exec \$OF_AGENT -- apk add tcpdump
+            kubectl exec \$OF_AGENT -- mv /usr/sbin/tcpdump /usr/bin/tcpdump
+            _TAG=ofagent-tcpdump kubectl exec \$OF_AGENT -- tcpdump -nei eth0 -w out.pcap&
 
-            export BBSIM=$(kubectl get pods -l app=bbsim -o name)
-            _TAG=bbsim-tcpdump kubectl exec $BBSIM -- tcpdump -nei nni -w out.pcap&
+            # Start the tcp-dump in bbsim
+            export BBSIM=\$(kubectl get pods -l app=bbsim -o name)
+            _TAG=bbsim-nni kubectl exec \$BBSIM -- tcpdump -nei nni -w nni.pcap&
+            _TAG=bbsim-upstream kubectl exec \$BBSIM -- tcpdump -nei upstream -w upstream.pcap&
+
+            # Start the tcp-dump in radius
+            export RADIUS=\$(kubectl get pods -l app=radius -o name)
+            kubectl exec \$RADIUS -- apt-get update
+            kubectl exec \$RADIUS -- apt-get install -y tcpdump
+            _TAG=radius-tcpdump kubectl exec \$RADIUS -- tcpdump -w out.pcap&
+
+            # Start the tcp-dump in ONOS
+            for i in \$(seq 0 \$ONOSES); do
+              INSTANCE="onos-onos-classic-\$i"
+              kubectl exec \$INSTANCE -- apt-get update
+              kubectl exec \$INSTANCE -- apt-get install -y tcpdump
+              kubectl exec \$INSTANCE -- mv /usr/sbin/tcpdump /usr/bin/tcpdump
+              _TAG=\$INSTANCE kubectl exec \$INSTANCE -- /usr/bin/tcpdump -nei eth0 port 1812 -w out.pcap&
+            done
           fi
-        '''
+          """
+        }
       }
     }
     stage('Run Test') {
@@ -421,17 +446,47 @@
           fi
 
           # stop bbsim tcpdump
-          P_ID="\$(ps e -ww -A | grep "_TAG=bbsim-tcpdump" | grep -v grep | awk '{print \$1}')"
+          P_ID="\$(ps e -ww -A | grep "_TAG=bbsim-nni" | grep -v grep | awk '{print \$1}')"
           if [ -n "\$P_ID" ]; then
             kill -9 \$P_ID
           fi
+          P_ID="\$(ps e -ww -A | grep "_TAG=bbsim-upstream" | grep -v grep | awk '{print \$1}')"
+          if [ -n "\$P_ID" ]; then
+            kill -9 \$P_ID
+          fi
+
+          # stop radius tcpdump
+          P_ID="\$(ps e -ww -A | grep "_TAG=radius-tcpdump" | grep -v grep | awk '{print \$1}')"
+          if [ -n "\$P_ID" ]; then
+            kill -9 \$P_ID
+          fi
+
+          # stop onos tcpdump
+          LIMIT=$(($NUM_OF_ONOS - 1))
+          for i in $(seq 0 $LIMIT); do
+            INSTANCE="onos-onos-classic-$i"
+            P_ID="\$(ps e -ww -A | grep "_TAG=$INSTANCE" | grep -v grep | awk '{print \$1}')"
+            if [ -n "\$P_ID" ]; then
+              kill -9 \$P_ID
+            fi
+          done
 
           # copy the file
           export OF_AGENT=$(kubectl get pods -l app=ofagent | awk 'NR==2{print $1}') || true
           kubectl cp $OF_AGENT:out.pcap $LOG_FOLDER/ofagent.pcap || true
 
           export BBSIM=$(kubectl get pods -l app=bbsim | awk 'NR==2{print $1}') || true
-          kubectl cp $BBSIM:out.pcap $LOG_FOLDER/bbsim.pcap || true
+          kubectl cp $BBSIM:nni.pcap $LOG_FOLDER/bbsim-nni.pcap || true
+          kubectl cp $BBSIM:upstream.pcap $LOG_FOLDER/bbsim-upstream.pcap || true
+
+          export RADIUS=$(kubectl get pods -l app=radius | awk 'NR==2{print $1}') || true
+          kubectl cp $RADIUS:out.pcap $LOG_FOLDER/radius.pcap || true
+
+          LIMIT=$(($NUM_OF_ONOS - 1))
+          for i in $(seq 0 $LIMIT); do
+            INSTANCE="onos-onos-classic-$i"
+            kubectl cp $INSTANCE:out.pcap $LOG_FOLDER/$INSTANCE.pcap || true
+          done
         fi
 
         cd voltha-system-tests
diff --git a/jjb/voltha-e2e.yaml b/jjb/voltha-e2e.yaml
index 524c8c8..0f2bfdd 100644
--- a/jjb/voltha-e2e.yaml
+++ b/jjb/voltha-e2e.yaml
@@ -98,7 +98,7 @@
           name: 'verify_physical_voltha_patchset_auto'
           build-node: 'tucson-pod'
           config-pod: 'tucson-pod'
-          oltDebVersionMaster: 'openolt_asfvolt16-2.4.9-dev-bal-3.4.7.5-fixed.deb'
+          oltDebVersionMaster: 'openolt_asfvolt16-3.0.0-07ac2cb46d74b83b707fa654ee2e8d4d4de2372a.deb'
           oltDebVersionVoltha23: 'openolt_asfvolt16-2.4.9-dev-d4aeca5a2094f7dc7c519913ab1558348c546dab.deb'
           profile: 'Default'
 
@@ -107,7 +107,7 @@
           name: 'verify_physical_voltha_patchset_manual'
           build-node: 'tucson-pod'
           config-pod: 'tucson-pod'
-          oltDebVersionMaster: 'openolt_asfvolt16-2.4.9-dev-bal-3.4.7.5-fixed.deb'
+          oltDebVersionMaster: 'openolt_asfvolt16-3.0.0-07ac2cb46d74b83b707fa654ee2e8d4d4de2372a.deb'
           oltDebVersionVoltha23: 'openolt_asfvolt16-2.4.9-dev-d4aeca5a2094f7dc7c519913ab1558348c546dab.deb'
           profile: 'Default'
           trigger-string: 'hardware test'
@@ -135,7 +135,7 @@
           build-node: 'tucson-pod'
           config-pod: 'tucson-pod'
           manualBranch: 'master'
-          oltDebVersionMaster: 'openolt_asfvolt16-2.4.9-dev-bal-3.4.7.5-fixed.deb'
+          oltDebVersionMaster: 'openolt_asfvolt16-3.0.0-07ac2cb46d74b83b707fa654ee2e8d4d4de2372a.deb'
           oltDebVersionVoltha23: 'openolt_asfvolt16-2.4.9-dev-d4aeca5a2094f7dc7c519913ab1558348c546dab.deb'
           profile: 'Default'
 
diff --git a/jjb/voltha-scale.yaml b/jjb/voltha-scale.yaml
index d75402b..b57507c 100644
--- a/jjb/voltha-scale.yaml
+++ b/jjb/voltha-scale.yaml
@@ -12,7 +12,6 @@
       # OpenONU GO Scale
       - 'voltha-scale-measurements':
           name: 'voltha-openonu-go-scale-measurements-master-1-16-64-activation'
-          'disable-job': true
           build-node: 'onf-pod1-head-node'
           time-trigger: "H H/4 * * *"
           olts: 1
@@ -29,7 +28,6 @@
 
       - 'voltha-scale-measurements':
           name: 'voltha-openonu-go-scale-measurements-master-2-16-32-dt-subscribers'
-          'disable-job': true
           build-node: 'onf-pod1-head-node'
           time-trigger: "H H/4 * * *"
           olts: 2
@@ -53,6 +51,7 @@
           build-node: 'onf-pod1-head-node'
           'disable-job': false
           time-trigger: "H H/4 * * *"
+          withMonitoring: false
           olts: 1
           pons: 16
           onus: 32
@@ -64,11 +63,9 @@
           openonuAdapterReplicas: 8
           onosReplicas: 3
           atomixReplicas: 3
-          extraHelmFlags: '--set authRetry=true,dhcpRetry=true '
+          extraHelmFlags: '--set authRetry=true'
           withPcap: true
-          bbsimImg: matteoscandolo/bbsim:experiment
-          openoltAdapterImg: gcgirish/voltha-openolt-adapter:flowReplica
-          onosImg:  andreacampanella/voltha-onos:aaa-single-radius-master-dhcp-option82
+          bbsimImg: matteoscandolo/bbsim:nni-packet-logs
 
 
       # jobs for 512 ONUs with a 8 openonu-adapters and clustered ONOS (1 OLT)
@@ -89,9 +86,7 @@
           onosReplicas: 3
           atomixReplicas: 3
           withPcap: true
-          bbsimImg: matteoscandolo/bbsim:experiment
-          openoltAdapterImg: gcgirish/voltha-openolt-adapter:flowReplica
-          onosImg:  andreacampanella/voltha-onos:aaa-single-radius-master-dhcp-option82
+          extraHelmFlags: '--set authRetry=true,dhcpRetry=true'
 
       - 'voltha-scale-measurements':
           name: 'voltha-scale-measurements-master-1-16-32-tt-subscribers'
@@ -111,9 +106,7 @@
           onosReplicas: 3
           atomixReplicas: 3
           withPcap: true
-          bbsimImg: matteoscandolo/bbsim:experiment
-          openoltAdapterImg: gcgirish/voltha-openolt-adapter:flowReplica
-          onosImg:  andreacampanella/voltha-onos:aaa-single-radius-master-dhcp-option82
+          extraHelmFlags: '--set authRetry=true,dhcpRetry=true'
 
       - 'voltha-scale-measurements':
           name: 'voltha-scale-measurements-master-1-16-32-dt-subscribers'
@@ -132,14 +125,12 @@
           openonuAdapterReplicas: 8
           onosReplicas: 3
           atomixReplicas: 3
-          bbsimImg: matteoscandolo/bbsim:experiment
-          openoltAdapterImg: gcgirish/voltha-openolt-adapter:flowReplica
-          onosImg:  andreacampanella/voltha-onos:aaa-single-radius-master-dhcp-option82
+          extraHelmFlags: '--set authRetry=true,dhcpRetry=true'
 
       # jobs for 1024 ONUs with a 8 openonu-adapters and clustered ONOS (2 OLTs)
       - 'voltha-scale-measurements':
           name: 'voltha-scale-measurements-master-2-16-32-att-subscribers'
-          'disable-job': true
+          'disable-job': false
           build-node: 'onf-pod1-head-node'
           time-trigger: "H H/4 * * *"
           olts: 2
@@ -153,12 +144,12 @@
           openonuAdapterReplicas: 8
           onosReplicas: 3
           atomixReplicas: 3
-          extraHelmFlags: '--set defaults.rw_core.timeout=30s --set authRetry=true,dhcpRetry=true '
+          extraHelmFlags: '--set authRetry=true,dhcpRetry=true'
           withPcap: true
 
       - 'voltha-scale-measurements':
           name: 'voltha-scale-measurements-master-2-16-32-dt-subscribers'
-          'disable-job': true
+          'disable-job': false
           build-node: 'onf-pod1-head-node'
           time-trigger: "H H/4 * * *"
           olts: 2
@@ -173,7 +164,7 @@
           openonuAdapterReplicas: 8
           onosReplicas: 3
           atomixReplicas: 3
-          extraHelmFlags: '--set defaults.rw_core.timeout=30s '
+          extraHelmFlags: '--set authRetry=true,dhcpRetry=true'
 
       # voltha-2.5 Jobs
       - 'voltha-scale-measurements':
@@ -358,6 +349,11 @@
           description: 'Capture a .pcap on the OpenFlow connection from the ofAgent side'
 
       - string:
+          name: withRadius
+          default: '{withRadius}'
+          description: 'Value to pass to kind-voltha WITH_RADIUS'
+
+      - string:
           name: extraHelmFlags
           default: '{extraHelmFlags}'
           description: 'Any extra helm parameters you want (passed to every helm install command, not available if release != master)'
@@ -448,6 +444,11 @@
           description: 'ONOS chart name (or location on file system)'
 
       - string:
+          name: radiusChart
+          default: '{radiusChart}'
+          description: 'freeradius chart name (or location on file system)'
+
+      - string:
           name: volthaSystemTestsChange
           default: '{volthaSystemTestsChange}'
           description: 'Download a change for gerrit in the voltha-system-tests repo, example value: "refs/changes/79/18779/13"'
@@ -504,6 +505,7 @@
     openoltAdapterChart: onf/voltha-adapter-openolt
     openonuAdapterChart: onf/voltha-adapter-openonu
     onosChart: onos/onos-classic
+    radiusChart: onf/freeradius
 
     olts: 2
     pons: 2
@@ -519,6 +521,7 @@
     withMonitoring: true
     withProfiling: false
     withPcap: false
+    withRadius: yes
     openonuAdapterReplicas: 1
     onosReplicas: 1
     atomixReplicas: 0
@@ -580,6 +583,7 @@
     openoltAdapterChart: onf/voltha-adapter-openolt
     openonuAdapterChart: onf/voltha-adapter-openonu
     onosChart: onos/onos-classic
+    radiusChart: onf/freeradius
 
     olts: 2
     pons: 2
@@ -595,6 +599,7 @@
     withMonitoring: true
     withProfiling: false
     withPcap: false
+    withRadius: yes
     openonuAdapterReplicas: 1
     onosReplicas: 1
     atomixReplicas: 0
@@ -615,6 +620,22 @@
 
     dsl: !include-raw-escape: pipeline/{pipeline-script}
 
+    triggers:
+      - gerrit:
+          server-name: '{gerrit-server-name}'
+          silent-start: false
+          successful-message: "PASSED scale test"
+          failure-message: "FAILED scale test"
+          unstable-message: "UNSTABLE scale test"
+          trigger-on:
+            - comment-added-contains-event:
+                comment-contains-value: '.*scale test.*'
+          projects:
+            - project-compare-type: REG_EXP
+              project-pattern: '^(voltha-go|voltha-openolt-adapter|voltha-openonu-adapter|ofagent-go|voltha-onos)$'
+              branches:
+                - branch-compare-type: REG_EXP
+                  branch-pattern: '{all-branches-regexp}'
 - job-template:
     id: 'voltha-scale-matrix-dev'
     name: '{name}'