diff --git a/tests/bbr.groovy b/tests/bbr.groovy
new file mode 100644
index 0000000..205ea82
--- /dev/null
+++ b/tests/bbr.groovy
@@ -0,0 +1,90 @@
+/*
+ * Copyright 2018-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.
+ */
+
+ pipeline {
+
+  /* no label, executor is determined by JJB */
+  agent {
+    label "${params.executorNode}"
+  }
+
+  stages {
+    stage('Build BBSim') {
+      steps {
+        sh """
+          make docker-build
+        """
+      }
+    }
+    stage('Build BBR') {
+      steps {
+        sh """
+          make build-bbr
+        """
+      }
+    }
+    stage('64 ONUs (16 ONU x 4 PONs)') {
+      steps {
+        timeout(1) {
+          sh """
+            DOCKER_RUN_ARGS="-pon 4 -onu 16" make docker-run
+            ./bbr -pon 4 -onu 16 2>&1 | tee bbr_16_4.logs
+            docker logs bbsim 2>&1 | tee bbsim_16_4.logs
+          """
+        }
+      }
+    }
+    stage('128 ONUs (32 ONU x 4 PONs)') {
+      steps {
+        timeout(1) {
+          sh """
+            docker rm -f bbsim
+            DOCKER_RUN_ARGS="-pon 4 -onu 32" make docker-run
+            ./bbr -pon 4 -onu 32 2>&1 | tee bbr_32_4.logs
+            docker logs bbsim 2>&1 | tee bbsim_32_4.logs
+          """
+        }
+      }
+    }
+    stage('256 ONUs (32 ONU x 8 PONs)') {
+      steps {
+        timeout(1) {
+          sh """
+            docker rm -f bbsim
+            DOCKER_RUN_ARGS="-pon 8 -onu 32" make docker-run
+            ./bbr -pon 8 -onu 32 2>&1 | tee bbr_32_8.logs
+            docker logs bbsim 2>&1 | tee bbsim_32_8.logs
+          """
+        }
+      }
+    }
+    post {
+      always {
+         archiveArtifacts artifacts: '*.logs'
+         step([$class: 'Mailer', notifyEveryUnstableBuild: true, recipients: "teo@opennetworking.org", sendToIndividuals: false])
+      }
+      failure {
+        sh '''
+        docker logs bbsim 2>&1 | tee bbsim_failed.logs
+        docker cp bbsim:/app/dhcp.logs dhcp_failed.logs
+        docker cp bbsim:/var/lib/dhcp/dhcpd.leases dhcpd_leases_failed.logs
+        docker cp bbsim:/app/tcpdump.logs tcpdump_failed.logs
+        docker exec bbsim bbsimctl onu list > onu_list.logs
+        '''
+      }
+    }
+  }
+}
