diff --git a/jenkins/jobs/networking-odl.yaml b/jenkins/jobs/networking-odl.yaml
new file mode 100644
index 0000000000..19dd54433a
--- /dev/null
+++ b/jenkins/jobs/networking-odl.yaml
@@ -0,0 +1,41 @@
+- job-template:
+    name: '{pipeline}-tempest-dsvm-networking-odl{branch-designator}'
+    node: '{node}'
+
+    wrappers:
+      - build-timeout:
+          timeout: 125
+      - timestamps
+
+    builders:
+      - link-logs
+      - net-info
+      - devstack-checkout
+      - shell: |
+          #!/bin/bash -xe
+          export PYTHONUNBUFFERED=true
+          export DEVSTACK_GATE_TIMEOUT=120
+          export DEVSTACK_GATE_NEUTRON=1
+          export DEVSTACK_GATE_TEMPEST_FULL=1
+          export BRANCH_OVERRIDE={branch-override}
+          if [ "$BRANCH_OVERRIDE" != "default" ] ; then
+              export OVERRIDE_ZUUL_BRANCH=$BRANCH_OVERRIDE
+          fi
+          # Because we are testing a non standard project, add
+          # our project repository. This makes zuul do the right
+          # reference magic for testing changes.
+          export PROJECTS="stackforge/networking-odl $PROJECTS"
+          # Note the actual url here is somewhat irrelevant because it
+          # caches in nodepool, however make it a valid url for
+          # documentation purposes.
+          export DEVSTACK_LOCAL_CONFIG="enable_plugin networking-odl git://git.openstack.org/stackforge/networking-odl"
+
+          # Keep localrc to be able to set some vars in pre_test_hook
+          export KEEP_LOCALRC=1
+
+          cp devstack-gate/devstack-vm-gate-wrap.sh ./safe-devstack-vm-gate-wrap.sh
+          ./safe-devstack-vm-gate-wrap.sh
+
+    publishers:
+      - devstack-logs
+      - console-log
diff --git a/jenkins/jobs/projects.yaml b/jenkins/jobs/projects.yaml
index 33b1b8412d..8a4bd5b6ec 100755
--- a/jenkins/jobs/projects.yaml
+++ b/jenkins/jobs/projects.yaml
@@ -3688,6 +3688,16 @@
 
     jobs:
       - python-jobs
+      - '{pipeline}-tempest-dsvm-networking-odl{branch-designator}':
+          pipeline: check
+          node: 'devstack-precise || devstack-trusty'
+          branch-designator: ''
+          branch-override: default
+      - '{pipeline}-tempest-dsvm-networking-odl{branch-designator}':
+          pipeline: gate
+          node: 'devstack-precise || devstack-trusty'
+          branch-designator: ''
+          branch-override: default
 
 - project:
     name: networking-ofagent
diff --git a/zuul/layout.yaml b/zuul/layout.yaml
index f4ecdf7e0b..348114d6cc 100755
--- a/zuul/layout.yaml
+++ b/zuul/layout.yaml
@@ -613,6 +613,9 @@ jobs:
     branch: ^(?!stable/(?:icehouse|juno)).*$
   - name: check-neutron-vpnaas-dsvm-functional
     voting: false
+  - name: ^(gate|check)-tempest-dsvm-networking-odl
+    branch: ^(?!stable)
+    voting: false
 # For Gerrit ver 2.4.x (using maven)
   - name: ^(gate|check)-gerrit-unittests$
     branch: ^openstack/2\.4.*$
@@ -5130,6 +5133,10 @@ projects:
     template:
       - name: merge-check
       - name: python-jobs
+    check:
+      - check-tempest-dsvm-networking-odl
+    gate:
+      - gate-tempest-dsvm-networking-odl
 
   - name: stackforge/networking-ofagent
     template: