diff --git a/example/Makefile.am b/example/Makefile.am
index dfc07b6..b209585 100644
--- a/example/Makefile.am
+++ b/example/Makefile.am
@@ -8,4 +8,6 @@ SUBDIRS = classifier \
 	  switch \
 	  time \
 	  timer \
-	  traffic_mgmt
+	  traffic_mgmt \
+	  ddf_ifs \
+	  ddf_app
diff --git a/example/ddf_app/Makefile.am b/example/ddf_app/Makefile.am
new file mode 100644
index 0000000..e654202
--- /dev/null
+++ b/example/ddf_app/Makefile.am
@@ -0,0 +1,10 @@
+include $(top_srcdir)/example/Makefile.inc
+
+bin_PROGRAMS = odp_ddf_app$(EXEEXT)
+odp_ddf_app_LDFLAGS = $(AM_LDFLAGS) -shared
+odp_ddf_app_CFLAGS = $(AM_CFLAGS) -I${top_srcdir}/example
+
+noinst_HEADERS = \
+		  $(top_srcdir)/example/example_debug.h
+
+dist_odp_ddf_app_SOURCES = odp_ddf_app.c
diff --git a/example/ddf_app/odp_ddf_app.c b/example/ddf_app/odp_ddf_app.c
new file mode 100644
index 0000000..c2d7abf
--- /dev/null
+++ b/example/ddf_app/odp_ddf_app.c
@@ -0,0 +1,49 @@
+/* Copyright (c) 2014, Linaro Limited
+ * All rights reserved.
+ *
+ * SPDX-License-Identifier:     BSD-3-Clause
+ */
+
+/** enable strtok */
+#ifndef _GNU_SOURCE
+#define _GNU_SOURCE
+#endif
+
+#include <stdio.h>
+#include <stdlib.h>
+
+#include <example_debug.h>
+#include <odp_api.h>
+#include <odp_drv.h>
+#include <odp/helper/odph_api.h>
+
+int main(int argc, char *argv[])
+{
+	odp_instance_t instance;
+
+	(void)argc;
+	(void)argv;
+
+	EXAMPLE_DBG("Start DDF Application...\n");
+
+	/* Initialize ODP before calling anything else */
+	if (odp_init_global(&instance, NULL, NULL)) {
+		EXAMPLE_ERR("Error: ODP global init failed.\n");
+		exit(EXIT_FAILURE);
+	}
+
+	if (odp_init_local(instance, ODP_THREAD_CONTROL)) {
+		EXAMPLE_ERR("Error: ODP local init failed.\n");
+		exit(EXIT_FAILURE);
+	}
+
+	/* Print ddf objects*/
+	odpdrv_print_all();
+
+	/* Terminate ODP */
+	odp_term_local();
+	odp_term_global(instance);
+
+	EXAMPLE_DBG("Exit DDF Application.\n");
+	return 0;
+}
diff --git a/example/ddf_ifs/Makefile.am b/example/ddf_ifs/Makefile.am
new file mode 100644
index 0000000..b11cf3d
--- /dev/null
+++ b/example/ddf_ifs/Makefile.am
@@ -0,0 +1,26 @@
+LIB   = $(top_builddir)/lib
+
+AM_CPPFLAGS +=  -I$(srcdir) \
+		-I$(top_srcdir)/include \
+		-I$(top_srcdir)/platform/@with_platform@/include \
+		-I$(top_srcdir)/platform/@with_platform@/arch/@ARCH_DIR@
+
+lib_LTLIBRARIES = $(LIB)/libddf_ifs.la
+
+noinst_HEADERS = \
+		 $(srcdir)/ddf_ifs.h \
+		 $(srcdir)/ddf_ifs_enumr_class.h \
+		 $(srcdir)/ddf_ifs_enumr_dpdk.h \
+		 $(srcdir)/ddf_ifs_enumr_generic.h \
+		 $(srcdir)/ddf_ifs_dev_dpdk.h \
+		 $(srcdir)/ddf_ifs_devio_direct.h \
+		 $(srcdir)/ddf_ifs_driver.h
+
+__LIB__libddf_ifs_la_SOURCES = \
+		ddf_ifs.c \
+		ddf_ifs_enumr_class.c \
+		ddf_ifs_enumr_dpdk.c \
+		ddf_ifs_enumr_generic.c \
+		ddf_ifs_dev_dpdk.c \
+		ddf_ifs_devio_direct.c \
+		ddf_ifs_driver.c
diff --git a/example/ddf_ifs/ddf_ifs.c b/example/ddf_ifs/ddf_ifs.c
new file mode 100644
index 0000000..cd4e48b
--- /dev/null
+++ b/example/ddf_ifs/ddf_ifs.c
@@ -0,0 +1,28 @@
+/* Copyright (c) 2014, Linaro Limited
+ * All rights reserved.
+ *
+ * SPDX-License-Identifier:     BSD-3-Clause
+ */
+
+#include <stdio.h>
+#include "odp_drv.h"
+#include "ddf_ifs.h"
+#include "ddf_ifs_enumr_class.h"
+#include "ddf_ifs_devio_direct.h"
+#include "ddf_ifs_driver.h"
+
+static ODPDRV_CONSTRUCTOR void ddf_ifs_construct(void)
+{
+	printf("%s()\n", __func__);
+
+	register_enumerator_class();
+
+	register_devio_direct();
+
+	register_driver();
+}
+
+static __attribute__((destructor)) void ddf_ifs_destruct(void)
+{
+	printf("%s()\n", __func__);
+}
diff --git a/example/ddf_ifs/ddf_ifs.h b/example/ddf_ifs/ddf_ifs.h
new file mode 100644
index 0000000..980b520
--- /dev/null
+++ b/example/ddf_ifs/ddf_ifs.h
@@ -0,0 +1,18 @@
+/* Copyright (c) 2014, Linaro Limited
+ * All rights reserved.
+ *
+ * SPDX-License-Identifier:     BSD-3-Clause
+ */
+
+#ifndef _ODP_DDF_IFS_H_
+#define _ODP_DDF_IFS_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /*_ODP_DDF_IFS_H_*/
diff --git a/example/ddf_ifs/ddf_ifs_api.h b/example/ddf_ifs/ddf_ifs_api.h
new file mode 100644
index 0000000..757658e
--- /dev/null
+++ b/example/ddf_ifs/ddf_ifs_api.h
@@ -0,0 +1,25 @@
+/* Copyright (c) 2014, Linaro Limited
+ * All rights reserved.
+ *
+ * SPDX-License-Identifier:     BSD-3-Clause
+ */
+
+#ifndef _ODP_DDF_IFS_API_H_
+#define _ODP_DDF_IFS_API_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#define DDF_IFS_DEV_API_NAME "ifs_api"
+#define DDF_IFS_DEV_API_VER 0
+#define DDF_IFS_DEVIO_API_NAME "devio_api"
+#define DDF_IFS_DEVIO_API_VER 0
+
+#define DDF_IFS_DRV_NAME "ddf_ifs_drv"
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /*_ODP_DDF_IFS_API_H_*/
diff --git a/example/ddf_ifs/ddf_ifs_dev_dpdk.c b/example/ddf_ifs/ddf_ifs_dev_dpdk.c
new file mode 100644
index 0000000..d66a15c
--- /dev/null
+++ b/example/ddf_ifs/ddf_ifs_dev_dpdk.c
@@ -0,0 +1,25 @@
+/* Copyright (c) 2014, Linaro Limited
+ * All rights reserved.
+ *
+ * SPDX-License-Identifier:     BSD-3-Clause
+ */
+
+#include <stdio.h>
+#include <string.h>
+#include "odp_drv.h"
+#include "ddf_ifs_dev_dpdk.h"
+
+odpdrv_device_t dpdk_device_create(odpdrv_enumr_t enumr,
+				   const char *dev_addr,
+				   void *enum_data)
+{
+	odpdrv_device_param_t param;
+
+	printf("\t%s(%s)\n", __func__, dev_addr);
+
+	param.enumerator = enumr;
+	strcpy(param.address, dev_addr);
+	param.enum_dev = enum_data;
+
+	return odpdrv_device_create(&param);
+}
diff --git a/example/ddf_ifs/ddf_ifs_dev_dpdk.h b/example/ddf_ifs/ddf_ifs_dev_dpdk.h
new file mode 100644
index 0000000..2a81f6a
--- /dev/null
+++ b/example/ddf_ifs/ddf_ifs_dev_dpdk.h
@@ -0,0 +1,24 @@
+/* Copyright (c) 2014, Linaro Limited
+ * All rights reserved.
+ *
+ * SPDX-License-Identifier:     BSD-3-Clause
+ */
+
+#ifndef _ODP_DDF_IFS_DEV_DPDK_H_
+#define _ODP_DDF_IFS_DEV_DPDK_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include "odp_drv.h"
+
+odpdrv_device_t dpdk_device_create(odpdrv_enumr_t enumr,
+				   const char *dev_addr,
+				   void *enum_data);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /*_ODP_DDF_IFS_DEV_DPDK_H_*/
diff --git a/example/ddf_ifs/ddf_ifs_devio_direct.c b/example/ddf_ifs/ddf_ifs_devio_direct.c
new file mode 100644
index 0000000..ea508a0
--- /dev/null
+++ b/example/ddf_ifs/ddf_ifs_devio_direct.c
@@ -0,0 +1,51 @@
+/* Copyright (c) 2014, Linaro Limited
+ * All rights reserved.
+ *
+ * SPDX-License-Identifier:     BSD-3-Clause
+ */
+
+#include <stdio.h>
+#include "odp_drv.h"
+#include "ddf_ifs_api.h"
+#include "ddf_ifs_devio_direct.h"
+
+static odpdrv_devio_t devio_direct;
+
+static int devio_direct_probe(odpdrv_device_t dev)
+{
+	(void)dev;
+
+	printf("%s()\n", __func__);
+
+	return 0;
+}
+
+static int devio_direct_remove(void)
+{
+	printf("%s()\n", __func__);
+
+	return 0;
+}
+
+int register_devio_direct(void)
+{
+	odpdrv_devio_param_t param = {
+		.api_name = DDF_IFS_DEVIO_API_NAME,
+		.api_version = DDF_IFS_DEVIO_API_VER,
+		.enumr_api_name = DDF_IFS_DEV_API_NAME,
+		.enumr_api_version = DDF_IFS_DEV_API_VER,
+		.probe = devio_direct_probe,
+		.remove = devio_direct_remove,
+		.ops = NULL
+		};
+
+	printf("\t%s()\n", __func__);
+
+	devio_direct = odpdrv_devio_register(&param);
+	if (ODPDRV_DEVIO_INVALID == devio_direct) {
+		printf("\tError: failed to %s()\n", __func__);
+		return -1;
+	}
+
+	return 0;
+}
diff --git a/example/ddf_ifs/ddf_ifs_devio_direct.h b/example/ddf_ifs/ddf_ifs_devio_direct.h
new file mode 100644
index 0000000..28c549d
--- /dev/null
+++ b/example/ddf_ifs/ddf_ifs_devio_direct.h
@@ -0,0 +1,20 @@
+/* Copyright (c) 2014, Linaro Limited
+ * All rights reserved.
+ *
+ * SPDX-License-Identifier:     BSD-3-Clause
+ */
+
+#ifndef _ODP_DDF_IFS_DEVIO_DIRECT_H_
+#define _ODP_DDF_IFS_DEVIO_DIRECT_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+int register_devio_direct(void);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /*_ODP_DDF_IFS_DEVIO_DIRECT_H_*/
diff --git a/example/ddf_ifs/ddf_ifs_driver.c b/example/ddf_ifs/ddf_ifs_driver.c
new file mode 100644
index 0000000..2dc5870
--- /dev/null
+++ b/example/ddf_ifs/ddf_ifs_driver.c
@@ -0,0 +1,69 @@
+/* Copyright (c) 2014, Linaro Limited
+ * All rights reserved.
+ *
+ * SPDX-License-Identifier:     BSD-3-Clause
+ */
+
+#include <stdio.h>
+#include <string.h>
+#include "odp_drv.h"
+#include "ddf_ifs_api.h"
+#include "ddf_ifs_driver.h"
+
+static odpdrv_driver_t ddf_ifs_driver;
+static int drv_data = 12;
+
+static int ddf_ifs_driver_probe(odpdrv_device_t dev, odpdrv_devio_t devio,
+				int devio_idx)
+{
+	printf("%s(dev, devio, devio_idx = %d)\n", __func__, devio_idx);
+
+	(void)devio;
+
+	odpdrv_device_set_data(dev, (void *)&drv_data);
+
+	return 0;
+}
+
+static int ddf_ifs_driver_unbind(odpdrv_device_t dev,
+				 void (*callback)(odpdrv_device_t dev),
+				 uint32_t flags)
+{
+	printf("%s()\n", __func__);
+
+	if (!(flags & ODPDRV_DRV_UNBIND_IMMEDIATE))
+		return -1; /* unsupported*/
+
+	callback(dev);
+
+	return 0;
+}
+
+static int ddf_ifs_driver_remove(void)
+{
+	printf("%s()\n", __func__);
+
+	return 0;
+}
+
+int register_driver(void)
+{
+	odpdrv_driver_param_t param = {
+		.name = DDF_IFS_DRV_NAME,
+		.devios = {{DDF_IFS_DEVIO_API_NAME, DDF_IFS_DEVIO_API_VER},
+				   {"", 0}, {"", 0} },
+		.probe = ddf_ifs_driver_probe,
+		.unbind = ddf_ifs_driver_unbind,
+		.remove = ddf_ifs_driver_remove,
+		};
+
+	printf("\t%s()\n", __func__);
+
+	ddf_ifs_driver = odpdrv_driver_register(&param);
+	if (ODPDRV_DRIVER_INVALID == ddf_ifs_driver) {
+		printf("Error: Failed to %s()\n", __func__);
+		return -1;
+	}
+
+	return 0;
+}
diff --git a/example/ddf_ifs/ddf_ifs_driver.h b/example/ddf_ifs/ddf_ifs_driver.h
new file mode 100644
index 0000000..4954c5a
--- /dev/null
+++ b/example/ddf_ifs/ddf_ifs_driver.h
@@ -0,0 +1,20 @@
+/* Copyright (c) 2014, Linaro Limited
+ * All rights reserved.
+ *
+ * SPDX-License-Identifier:     BSD-3-Clause
+ */
+
+#ifndef _ODP_DDF_IFS_DRIVER_H_
+#define _ODP_DDF_IFS_DRIVER_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+int register_driver(void);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /*_ODP_DDF_IFS_DRIVER_H_*/
diff --git a/example/ddf_ifs/ddf_ifs_enumr_class.c b/example/ddf_ifs/ddf_ifs_enumr_class.c
new file mode 100644
index 0000000..a7b5d51
--- /dev/null
+++ b/example/ddf_ifs/ddf_ifs_enumr_class.c
@@ -0,0 +1,47 @@
+/* Copyright (c) 2014, Linaro Limited
+ * All rights reserved.
+ *
+ * SPDX-License-Identifier:     BSD-3-Clause
+ */
+
+#include <stdio.h>
+#include "odp_drv.h"
+#include "ddf_ifs_enumr_class.h"
+#include "ddf_ifs_enumr_dpdk.h"
+#include "ddf_ifs_enumr_generic.h"
+
+static odpdrv_enumr_class_t enumr_class;
+
+static int enumr_class_ifs_probe(void)
+{
+	printf("%s()\n", __func__);
+
+	if (register_enumerator_dpdk(enumr_class))
+		return -1;
+
+	if (register_enumerator_generic(enumr_class))
+		return -1;
+
+	return 0;
+}
+
+static int enumr_class_ifs_remove(void)
+{
+	printf("%s()\n", __func__);
+
+	return 0;
+}
+
+int register_enumerator_class(void)
+{
+	odpdrv_enumr_class_param_t param = {
+		.name = "enumr_class_ifs",
+		.probe = enumr_class_ifs_probe,
+		.remove = enumr_class_ifs_remove
+		};
+
+	printf("\t%s()\n", __func__);
+	enumr_class = odpdrv_enumr_class_register(&param);
+
+	return 0;
+}
diff --git a/example/ddf_ifs/ddf_ifs_enumr_class.h b/example/ddf_ifs/ddf_ifs_enumr_class.h
new file mode 100644
index 0000000..42c02fc
--- /dev/null
+++ b/example/ddf_ifs/ddf_ifs_enumr_class.h
@@ -0,0 +1,20 @@
+/* Copyright (c) 2014, Linaro Limited
+ * All rights reserved.
+ *
+ * SPDX-License-Identifier:     BSD-3-Clause
+ */
+
+#ifndef _ODP_DDF_IFS_ENUMR_CLASS_H_
+#define _ODP_DDF_IFS_ENUMR_CLASS_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+int register_enumerator_class(void);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /*_ODP_DDF_IFS_ENUMR_CLASS_H_*/
diff --git a/example/ddf_ifs/ddf_ifs_enumr_dpdk.c b/example/ddf_ifs/ddf_ifs_enumr_dpdk.c
new file mode 100644
index 0000000..cc97e36
--- /dev/null
+++ b/example/ddf_ifs/ddf_ifs_enumr_dpdk.c
@@ -0,0 +1,86 @@
+/* Copyright (c) 2014, Linaro Limited
+ * All rights reserved.
+ *
+ * SPDX-License-Identifier:     BSD-3-Clause
+ */
+
+#include <stdio.h>
+#include "odp_drv.h"
+#include "ddf_ifs_api.h"
+#include "ddf_ifs_enumr_dpdk.h"
+#include "ddf_ifs_dev_dpdk.h"
+
+static odpdrv_enumr_t dpdk_enumr;
+
+#define TEST_DPDK_DEV_CNT 3
+#define DDF_DPDK_DEV_MAX 10
+
+static odpdrv_device_t dpdk_dev[DDF_DPDK_DEV_MAX];
+static int dpdk_dev_cnt;
+static int dpdk_enumr_probe(void)
+{
+	int dpdk_dev_cnt_detected = TEST_DPDK_DEV_CNT; /* detected with
+							  dpdk APIs*/
+	char dev_addr[ODPDRV_NAME_ADDR_SZ];
+	int i;
+
+	printf("%s() - %d devices found\n", __func__, dpdk_dev_cnt_detected);
+
+	if (dpdk_dev_cnt_detected > DDF_DPDK_DEV_MAX) {
+		dpdk_dev_cnt_detected = DDF_DPDK_DEV_MAX;
+		printf("\tWarning: dpdk device count scaled down to %d\n",
+		       dpdk_dev_cnt_detected);
+	}
+	for (i = 0; i < dpdk_dev_cnt_detected; i++) {
+		sprintf(dev_addr, "0000:01:00.%d", i);
+		dpdk_dev[dpdk_dev_cnt] = dpdk_device_create(dpdk_enumr,
+							    dev_addr,
+							    NULL);
+		if (dpdk_dev[dpdk_dev_cnt] == ODPDRV_DEVICE_INVALID)
+			printf("\tError: unable to create device: %s\n",
+			       dev_addr);
+		else
+			dpdk_dev_cnt++;
+	}
+
+	return 0;
+}
+
+static int dpdk_enumr_remove(void)
+{
+	printf("%s()\n", __func__);
+	return 0;
+}
+
+static int dpdk_enumr_register_notif(void (*event_handler) (uint64_t event),
+				     int64_t event_mask)
+{
+	(void)event_handler;
+	(void)event_mask;
+
+	printf("%s()\n", __func__);
+
+	return 0;
+}
+
+int register_enumerator_dpdk(odpdrv_enumr_class_t enumr_class)
+{
+	struct odpdrv_enumr_param_t param = {
+		.enumr_class = enumr_class,
+		.api_name = DDF_IFS_DEV_API_NAME,
+		.api_version = DDF_IFS_DEV_API_VER,
+		.probe = dpdk_enumr_probe,
+		.remove = dpdk_enumr_remove,
+		.register_notifier = dpdk_enumr_register_notif
+	};
+
+	printf("\t%s()\n", __func__);
+
+	dpdk_enumr = odpdrv_enumr_register(&param);
+	if (ODPDRV_ENUMR_INVALID == dpdk_enumr) {
+		printf("\tError: failed to register_enumerator_dpdk()\n");
+		return -1;
+	}
+
+	return 0;
+}
diff --git a/example/ddf_ifs/ddf_ifs_enumr_dpdk.h b/example/ddf_ifs/ddf_ifs_enumr_dpdk.h
new file mode 100644
index 0000000..516d9e3
--- /dev/null
+++ b/example/ddf_ifs/ddf_ifs_enumr_dpdk.h
@@ -0,0 +1,20 @@
+/* Copyright (c) 2014, Linaro Limited
+ * All rights reserved.
+ *
+ * SPDX-License-Identifier:     BSD-3-Clause
+ */
+
+#ifndef _ODP_DDF_IFS_ENUMR_DPDK_H_
+#define _ODP_DDF_IFS_ENUMR_DPDK_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+int register_enumerator_dpdk(odpdrv_enumr_class_t enumr_class);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /*_ODP_DDF_IFS_ENUMR_DPDK_H_*/
diff --git a/example/ddf_ifs/ddf_ifs_enumr_generic.c b/example/ddf_ifs/ddf_ifs_enumr_generic.c
new file mode 100644
index 0000000..34a59a8
--- /dev/null
+++ b/example/ddf_ifs/ddf_ifs_enumr_generic.c
@@ -0,0 +1,57 @@
+/* Copyright (c) 2014, Linaro Limited
+ * All rights reserved.
+ *
+ * SPDX-License-Identifier:     BSD-3-Clause
+ */
+
+#include <stdio.h>
+#include "odp_drv.h"
+#include "ddf_ifs_api.h"
+#include "ddf_ifs_enumr_generic.h"
+
+static odpdrv_enumr_t gen_enumr;
+
+static int gen_enumr_probe(void)
+{
+	printf("%s() - no devices found\n", __func__);
+	return 0;
+}
+
+static int gen_enumr_remove(void)
+{
+	printf("%s()\n", __func__);
+	return 0;
+}
+
+static int gen_enumr_register_notif(void (*event_handler) (uint64_t event),
+				    int64_t event_mask)
+{
+	(void)event_handler;
+	(void)event_mask;
+
+	printf("%s()\n", __func__);
+
+	return 0;
+}
+
+int register_enumerator_generic(odpdrv_enumr_class_t enumr_class)
+{
+	struct odpdrv_enumr_param_t param = {
+		.enumr_class = enumr_class,
+		.api_name = DDF_IFS_DEV_API_NAME,
+		.api_version = DDF_IFS_DEV_API_VER,
+		.probe = gen_enumr_probe,
+		.remove = gen_enumr_remove,
+		.register_notifier = gen_enumr_register_notif
+	};
+
+	printf("\t%s()\n", __func__);
+
+	gen_enumr = odpdrv_enumr_register(&param);
+	if (ODPDRV_ENUMR_INVALID == gen_enumr) {
+		printf("\tError:failed to %s()\n", __func__);
+		return -1;
+	}
+
+	return 0;
+}
diff --git a/example/ddf_ifs/ddf_ifs_enumr_generic.h b/example/ddf_ifs/ddf_ifs_enumr_generic.h
new file mode 100644
index 0000000..2f0b8b8
--- /dev/null
+++ b/example/ddf_ifs/ddf_ifs_enumr_generic.h
@@ -0,0 +1,20 @@
+/* Copyright (c) 2014, Linaro Limited
+ * All rights reserved.
+ *
+ * SPDX-License-Identifier:     BSD-3-Clause
+ */
+
+#ifndef _ODP_DDF_IFS_ENUMR_GENERIC_H_
+#define _ODP_DDF_IFS_ENUMR_GENERIC_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+int register_enumerator_generic(odpdrv_enumr_class_t enumr_class);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /*_ODP_DDF_IFS_ENUMR_GENERIC_H_*/
diff --git a/example/ddf_ifs/odp.conf b/example/ddf_ifs/odp.conf
new file mode 100644
index 0000000..14968a7
--- /dev/null
+++ b/example/ddf_ifs/odp.conf
@@ -0,0 +1,4 @@
+module:
+{
+	modules = ("libddf_ifs.so.0");
+};
diff --git a/example/m4/configure.m4 b/example/m4/configure.m4
index 620db04..9e7973b 100644
--- a/example/m4/configure.m4
+++ b/example/m4/configure.m4
@@ -21,4 +21,6 @@ AC_CONFIG_FILES([example/classifier/Makefile
 		 example/time/Makefile
 		 example/timer/Makefile
 		 example/traffic_mgmt/Makefile
+		 example/ddf_ifs/Makefile
+		 example/ddf_app/Makefile
 		 example/Makefile])
