diff --git a/frameworks/modular/module.h b/frameworks/modular/module.h
new file mode 100644
index 000000000..f7445bef3
--- /dev/null
+++ b/frameworks/modular/module.h
@@ -0,0 +1,20 @@
+/* Copyright (c) 2013, Linaro Limited
+ * All rights reserved.
+ *
+ * SPDX-License-Identifier:     BSD-3-Clause
+ */
+
+#ifndef ODP_CORE_MODULE_H_
+#define ODP_CORE_MODULE_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <odp/mf/spec/module.h>
+
+#ifdef __cplusplus
+}
+#endif
+#endif /* ODP_CORE_MODULE_H_ */
+
diff --git a/frameworks/modular/odp_module.c b/frameworks/modular/odp_module.c
index 475bcd5e2..596befd55 100644
--- a/frameworks/modular/odp_module.c
+++ b/frameworks/modular/odp_module.c
@@ -10,7 +10,7 @@
 
 #include <stdio.h>
 #include <errno.h>
-#include "odp_module.h"
+#include "module.h"
 
 #define MODULE_FRAMEWORK_VERSION 0x00010000UL
 ODP_SUBSYSTEM_DEFINE(module, "module framework", MODULE_FRAMEWORK_VERSION);
diff --git a/frameworks/modular/list.h b/include/odp/mf/spec/list.h
similarity index 100%
rename from frameworks/modular/list.h
rename to include/odp/mf/spec/list.h
diff --git a/frameworks/modular/odp_module.h b/include/odp/mf/spec/module.h
similarity index 100%
rename from frameworks/modular/odp_module.h
rename to include/odp/mf/spec/module.h
diff --git a/include/odp_mf.h b/include/odp_mf.h
new file mode 100644
index 000000000..f8998f280
--- /dev/null
+++ b/include/odp_mf.h
@@ -0,0 +1,27 @@
+/* Copyright (c) 2016, Linaro Limited
+ * All rights reserved
+ *
+ * SPDX-License-Identifier:     BSD-3-Clause
+ */
+
+/**
+ * @file
+ *
+ * The OpenDataPlane modular framework programming interface
+ *
+ */
+
+#ifndef ODP_MF_H_
+#define ODP_MF_H_
+
+#ifdef __cplusplus
+extern C {
+#endif
+
+#include <odp/mf/spec/module.h>
+
+#ifdef __cplusplus
+}
+#endif
+#endif /* ODP_MF_H_ */
+
diff --git a/platform/Makefile.inc b/platform/Makefile.inc
index 4d9280b50..e6270f6cd 100644
--- a/platform/Makefile.inc
+++ b/platform/Makefile.inc
@@ -77,6 +77,11 @@ odpdrvspecinclude_HEADERS = \
 		  $(top_srcdir)/include/odp/drv/spec/std_types.h \
 		  $(top_srcdir)/include/odp/drv/spec/sync.h
 
+odpmfspecincludedir= $(includedir)/odp/mf/spec
+odpmfspecinclude_HEADERS = \
+		  $(top_srcdir)/include/odp/mf/spec/module.h \
+		  $(top_srcdir)/include/odp/mf/spec/list.h
+
 odpapiabidefaultincludedir= $(includedir)/odp/arch/default/api/abi
 odpapiabidefaultinclude_HEADERS = \
 	$(top_srcdir)/include/odp/arch/default/api/abi/buffer.h \
diff --git a/platform/linux-dpdk/Makefile.am b/platform/linux-dpdk/Makefile.am
index c99cfaa1c..14bd1b866 100644
--- a/platform/linux-dpdk/Makefile.am
+++ b/platform/linux-dpdk/Makefile.am
@@ -19,7 +19,6 @@ AM_CPPFLAGS +=  -I$(top_srcdir)/platform/linux-dpdk/include
 AM_CPPFLAGS +=  -I$(top_srcdir)/platform/linux-generic/include
 AM_CPPFLAGS +=  -I$(srcdir)/include
 AM_CPPFLAGS +=  -I$(top_srcdir)/include
-AM_CPPFLAGS +=  -I$(top_srcdir)/frameworks/modular
 AM_CPPFLAGS +=  -I$(top_srcdir)/include/odp/arch/@ARCH_ABI@
 AM_CPPFLAGS +=  -I$(top_builddir)/include
 AM_CPPFLAGS +=  -Iinclude
@@ -35,7 +34,8 @@ AM_CPPFLAGS +=  $(LIBCONFIG_CFLAGS)
 include_HEADERS = \
 		  $(top_srcdir)/include/odp.h \
 		  $(top_srcdir)/include/odp_api.h \
-		  $(top_srcdir)/include/odp_drv.h
+		  $(top_srcdir)/include/odp_drv.h \
+		  $(top_srcdir)/include/odp_mf.h
 
 odpincludedir= $(includedir)/odp
 odpinclude_HEADERS = \
@@ -349,8 +349,7 @@ endif
 
 # Build modular framework into odp-linux library
 modularframeworkdir = $(top_srcdir)/frameworks/modular
-noinst_HEADERS += $(modularframeworkdir)/list.h \
-		  $(modularframeworkdir)/odp_module.h
+noinst_HEADERS += $(modularframeworkdir)/module.h
 
 __LIB__libodp_dpdk_la_SOURCES += ../../frameworks/modular/odp_module.c
 
diff --git a/platform/linux-generic/Makefile.am b/platform/linux-generic/Makefile.am
index 277418142..e5a776a25 100644
--- a/platform/linux-generic/Makefile.am
+++ b/platform/linux-generic/Makefile.am
@@ -7,7 +7,6 @@ lib_LTLIBRARIES = $(LIB)/libodp-linux.la
 
 AM_CPPFLAGS =  -I$(srcdir)/include
 AM_CPPFLAGS +=  -I$(top_srcdir)/include
-AM_CPPFLAGS +=  -I$(top_srcdir)/frameworks/modular
 AM_CPPFLAGS +=  -I$(top_srcdir)/include/odp/arch/@ARCH_ABI@
 AM_CPPFLAGS +=  -I$(top_builddir)/include
 AM_CPPFLAGS +=  -Iinclude
@@ -25,7 +24,8 @@ AM_CPPFLAGS +=  $(LIBCONFIG_CFLAGS)
 include_HEADERS = \
 		  $(top_srcdir)/include/odp.h \
 		  $(top_srcdir)/include/odp_api.h \
-		  $(top_srcdir)/include/odp_drv.h
+		  $(top_srcdir)/include/odp_drv.h \
+		  $(top_srcdir)/include/odp_mf.h
 
 odpincludedir= $(includedir)/odp
 odpinclude_HEADERS = \
@@ -373,8 +373,7 @@ endif
 
 # Build modular framework into odp-linux library
 modularframeworkdir = $(top_srcdir)/frameworks/modular
-noinst_HEADERS += $(modularframeworkdir)/list.h \
-		  $(modularframeworkdir)/odp_module.h
+noinst_HEADERS += $(modularframeworkdir)/module.h
 
 __LIB__libodp_linux_la_SOURCES += ../../frameworks/modular/odp_module.c
 
diff --git a/platform/linux-generic/buffer/subsystem.c b/platform/linux-generic/buffer/subsystem.c
index d47525cf9..767113975 100644
--- a/platform/linux-generic/buffer/subsystem.c
+++ b/platform/linux-generic/buffer/subsystem.c
@@ -8,7 +8,6 @@
 #include <odp/api/buffer.h>
 #include <odp_buffer_subsystem.h>
 #include <odp_debug_internal.h>
-#include <odp_module.h>
 
 ODP_SUBSYSTEM_DEFINE(buffer, "memory buffer public APIs",
 		     BUFFER_SUBSYSTEM_VERSION);
diff --git a/platform/linux-generic/include/odp_buffer_subsystem.h b/platform/linux-generic/include/odp_buffer_subsystem.h
index 3c791d207..b8f6a6953 100644
--- a/platform/linux-generic/include/odp_buffer_subsystem.h
+++ b/platform/linux-generic/include/odp_buffer_subsystem.h
@@ -14,7 +14,7 @@
 extern "C" {
 #endif
 
-#include <odp_module.h>
+#include <odp/mf/spec/module.h>
 #include <odp/api/buffer.h>
 
 #define BUFFER_SUBSYSTEM_VERSION 0x00010000UL
diff --git a/platform/linux-generic/include/odp_pktio_ops_subsystem.h b/platform/linux-generic/include/odp_pktio_ops_subsystem.h
index cb107fed2..fe0efc40e 100644
--- a/platform/linux-generic/include/odp_pktio_ops_subsystem.h
+++ b/platform/linux-generic/include/odp_pktio_ops_subsystem.h
@@ -14,7 +14,7 @@
 extern "C" {
 #endif
 
-#include <odp_module.h>
+#include <odp/mf/spec/module.h>
 #include <odp/api/packet_io.h>
 
 /* ODP packet IO operations subsystem declaration */
diff --git a/platform/linux-generic/include/odp_pool_subsystem.h b/platform/linux-generic/include/odp_pool_subsystem.h
index 0f34ad143..dc955e479 100644
--- a/platform/linux-generic/include/odp_pool_subsystem.h
+++ b/platform/linux-generic/include/odp_pool_subsystem.h
@@ -14,7 +14,7 @@
 extern "C" {
 #endif
 
-#include <odp_module.h>
+#include <odp/mf/spec/module.h>
 #include <odp/api/pool.h>
 
 /* ODP pool public APIs subsystem */
diff --git a/platform/linux-generic/include/odp_queue_subsystem.h b/platform/linux-generic/include/odp_queue_subsystem.h
index 57fa68fdb..d73aa7345 100644
--- a/platform/linux-generic/include/odp_queue_subsystem.h
+++ b/platform/linux-generic/include/odp_queue_subsystem.h
@@ -14,7 +14,7 @@
 extern "C" {
 #endif
 
-#include <odp_module.h>
+#include <odp/mf/spec/module.h>
 #include <odp/api/queue.h>
 
 #define QUEUE_SUBSYSTEM_VERSION 0x00010000UL
diff --git a/platform/linux-generic/include/odp_schedule_subsystem.h b/platform/linux-generic/include/odp_schedule_subsystem.h
index 7d9247788..650b7680a 100644
--- a/platform/linux-generic/include/odp_schedule_subsystem.h
+++ b/platform/linux-generic/include/odp_schedule_subsystem.h
@@ -19,7 +19,7 @@ extern "C" {
 #include <odp/api/schedule.h>
 
 /* Internal header files */
-#include <odp_module.h>
+#include <odp/mf/spec/module.h>
 
 #define SCHEDULE_SUBSYSTEM_VERSION 0x00010000UL
 
diff --git a/platform/linux-generic/pool/subsystem.c b/platform/linux-generic/pool/subsystem.c
index c5f644912..073a9fa98 100644
--- a/platform/linux-generic/pool/subsystem.c
+++ b/platform/linux-generic/pool/subsystem.c
@@ -9,7 +9,6 @@
 #include <odp_internal.h>
 #include <odp_pool_subsystem.h>
 #include <odp_debug_internal.h>
-#include <odp_module.h>
 
 #define SUBSYSTEM_VERSION 0x00010000UL
 ODP_SUBSYSTEM_DEFINE(pool, "memory pool public APIs", SUBSYSTEM_VERSION);
diff --git a/platform/linux-generic/queue/subsystem.c b/platform/linux-generic/queue/subsystem.c
index 5a88b2df9..05e8edb8e 100644
--- a/platform/linux-generic/queue/subsystem.c
+++ b/platform/linux-generic/queue/subsystem.c
@@ -12,7 +12,6 @@
 #include <odp_internal.h>
 #include <odp_debug_internal.h>
 #include <odp_queue_subsystem.h>
-#include <odp_module.h>
 
 ODP_SUBSYSTEM_DEFINE(queue, "queue public APIs", QUEUE_SUBSYSTEM_VERSION);
 
diff --git a/platform/linux-generic/schedule/subsystem.c b/platform/linux-generic/schedule/subsystem.c
index ba9a095f4..99c6141c2 100644
--- a/platform/linux-generic/schedule/subsystem.c
+++ b/platform/linux-generic/schedule/subsystem.c
@@ -14,7 +14,6 @@
 /* Internal header files */
 #include <odp_debug_internal.h>
 #include <odp_internal.h>
-#include <odp_module.h>
 #include <odp_schedule_subsystem.h>
 
 ODP_SUBSYSTEM_DEFINE(schedule, "schedule public APIs",
