diff --git a/automated/linux/nginx-server/nginx-odp-dpdk-git.yaml b/automated/linux/nginx-server/nginx-odp-dpdk-git.yaml
new file mode 100644
index 0000000..acf3e37
--- /dev/null
+++ b/automated/linux/nginx-server/nginx-odp-dpdk-git.yaml
@@ -0,0 +1,36 @@
+# NOTE: when calling this test, kernel-headers must have been installed
+metadata:
+    name: httperf-nginx-ofp-odp-dpdk-git
+    format: Lava-Test-Shell Test Definition 1.0
+    description: Server running OFP+ODP+DPDK NGiNX from git
+    environment:
+        - lava-test-shell
+    maintainer:
+        - josep.puigdemont@linaro.org
+    os:
+        - debian
+        - ubuntu
+    devices:
+        - x86
+
+install:
+    deps:
+        - bash
+        - ethtool
+        - pciutils
+        - procps
+        - sysstat
+        - wget
+
+params:
+    MAX_CORES: 0
+    VLAND_NAME: vlan_one
+    BUILD_DIR: /build
+
+run:
+    steps:
+        - sysctl -w vm.nr_hugepages=1024
+        - modprobe uio
+        - export CONFIG_TYPE=odp-dpdk-git
+        - export MAX_CORES VLAND_NAME
+        - lava-test-case httperf-nginx-server --shell ./automated/linux/nginx-server/nginx-server.sh
diff --git a/automated/linux/nginx-server/odp-dpdk-git.sh b/automated/linux/nginx-server/odp-dpdk-git.sh
new file mode 100644
index 0000000..9838f74
--- /dev/null
+++ b/automated/linux/nginx-server/odp-dpdk-git.sh
@@ -0,0 +1,85 @@
+#!/bin/bash
+
+exit_error() {
+	echo "-- SERVER ERROR"
+	lava-test-case server_up --status fail
+}
+trap exit_error ERR
+
+do_configure_system() {
+	local cores=$1
+	local vland_iface=$2
+	local server_ip=$3
+	local driver=${DPDK_DRIVER:-igb_uio}
+	local pci_dev
+
+	pci_dev=$(basename "$(readlink -f "/sys/class/net/${vland_iface}/device")")
+
+	if ! which dpdk-devbind &>/dev/null; then
+		echo "ERROR: dpdk not installed"
+		exit 1
+	fi
+
+	modprobe uio
+	insmod "$RTE_SDK/$RTE_TARGET/lib/modules/$(uname -r)/extra/dpdk/${driver}.ko"
+
+	dpdk-devbind -u "$pci_dev"
+	dpdk-devbind -b "$driver" "$pci_dev"
+	dpdk-devbind -s
+
+	# when using write_config, we need to have /www mounted
+	configure_ramdisk
+
+	# shellcheck disable=SC2034
+	WRITE_CONFIG_CORE=""
+	WRITE_CONFIG_EVENTS="use select;"
+	WRITE_CONFIG_LISTEN="listen $server_ip:80 default_server so_keepalive=off;"
+	echo <<-EOF
+	WRITE_CONFIG_CORE=$WRITE_CONFIG_CORE
+	WRITE_CONFIG_EVENTS=$WRITE_CONFIG_EVENTS
+	WRITE_CONFIG_LISTEN=$WRITE_CONFIG_LISTEN
+	EOF
+}
+
+do_stop_nginx() {
+	if [ -f "${BASE_DIR}/install/run/nginx.pid" ]; then
+		stop_nginx.sh 1
+	fi
+}
+
+do_start_nginx() {
+	start_nginx.sh 1
+}
+
+do_write_nginx_config() {
+	local cores=$1
+
+	# when using write_config, we need to have /www mounted
+	write_config "$cores" "${BASE_DIR}/install/etc/nginx/nginx.conf"
+}
+
+do_pre_test_cb() {
+	rm -rf /dev/hugepages/*
+}
+
+do_post_test_cb() {
+	local cores=$1
+	local pid
+
+	echo "-- AFFINITY $cores"
+	for pid in $(pgrep nginx); do
+		taskset -p "$pid"
+	done
+}
+
+BASE_DIR=${BASE_DIR:-/build}
+
+if [ ! -f "${BASE_DIR}/environ" ]; then
+	echo "ERROR: ${BASE_DIR}/environ file not found!" >&2
+	exit 1
+fi
+
+# shellcheck disable=SC1090
+. "${BASE_DIR}/environ"
+
+echo "-- odp-dpdk-git NGiNX initialized" >&2
