diff --git a/example/traffic_mgmt/odp_traffic_mgmt.c b/example/traffic_mgmt/odp_traffic_mgmt.c
index 37a85c7..b4f0101 100644
--- a/example/traffic_mgmt/odp_traffic_mgmt.c
+++ b/example/traffic_mgmt/odp_traffic_mgmt.c
@@ -16,7 +16,7 @@
 #include <sys/resource.h>
 #include <execinfo.h>
 #include <odp.h>
-#include <odp/plat/packet_types.h>
+#include <odp/api/plat/packet_types.h>
 #include <example_debug.h>
 
 #define NUM_SVC_CLASSES     4
diff --git a/helper/include/odp/helper/chksum.h b/helper/include/odp/helper/chksum.h
index edb1c98..c1189e0 100644
--- a/helper/include/odp/helper/chksum.h
+++ b/helper/include/odp/helper/chksum.h
@@ -17,7 +17,7 @@
 extern "C" {
 #endif
 
-#include <odp/std_types.h>
+#include <odp/api/std_types.h>
 
 /**
  * Checksum
diff --git a/helper/include/odp/helper/eth.h b/helper/include/odp/helper/eth.h
index f1c164d..afbb4fc 100644
--- a/helper/include/odp/helper/eth.h
+++ b/helper/include/odp/helper/eth.h
@@ -18,10 +18,10 @@
 extern "C" {
 #endif
 
-#include <odp/std_types.h>
-#include <odp/byteorder.h>
-#include <odp/align.h>
-#include <odp/debug.h>
+#include <odp/api/std_types.h>
+#include <odp/api/byteorder.h>
+#include <odp/api/align.h>
+#include <odp/api/debug.h>
 
 /** @addtogroup odph_header ODPH HEADER
  *  @{
diff --git a/helper/include/odp/helper/icmp.h b/helper/include/odp/helper/icmp.h
index abcf818..6047a9b 100644
--- a/helper/include/odp/helper/icmp.h
+++ b/helper/include/odp/helper/icmp.h
@@ -18,9 +18,9 @@
 extern "C" {
 #endif
 
-#include <odp/align.h>
-#include <odp/debug.h>
-#include <odp/byteorder.h>
+#include <odp/api/align.h>
+#include <odp/api/debug.h>
+#include <odp/api/byteorder.h>
 
 /** @addtogroup odph_header ODPH HEADER
  *  @{
diff --git a/helper/include/odp/helper/ip.h b/helper/include/odp/helper/ip.h
index 41408a3..1ac3ca4 100644
--- a/helper/include/odp/helper/ip.h
+++ b/helper/include/odp/helper/ip.h
@@ -18,9 +18,9 @@
 extern "C" {
 #endif
 
-#include <odp/align.h>
-#include <odp/debug.h>
-#include <odp/byteorder.h>
+#include <odp/api/align.h>
+#include <odp/api/debug.h>
+#include <odp/api/byteorder.h>
 #include <odp/helper/chksum.h>
 
 #include <string.h>
diff --git a/helper/include/odp/helper/ipsec.h b/helper/include/odp/helper/ipsec.h
index 2565f74..0bfb364 100644
--- a/helper/include/odp/helper/ipsec.h
+++ b/helper/include/odp/helper/ipsec.h
@@ -18,10 +18,10 @@
 extern "C" {
 #endif
 
-#include <odp/std_types.h>
-#include <odp/byteorder.h>
-#include <odp/align.h>
-#include <odp/debug.h>
+#include <odp/api/std_types.h>
+#include <odp/api/byteorder.h>
+#include <odp/api/align.h>
+#include <odp/api/debug.h>
 
 /** @addtogroup odph_header ODPH HEADER
  *  @{
diff --git a/helper/include/odp/helper/ring.h b/helper/include/odp/helper/ring.h
index 65c32ad..38be271 100644
--- a/helper/include/odp/helper/ring.h
+++ b/helper/include/odp/helper/ring.h
@@ -97,9 +97,9 @@ extern "C" {
 #endif
 
 
-#include <odp/std_types.h>
-#include <odp/hints.h>
-#include <odp/atomic.h>
+#include <odp/api/std_types.h>
+#include <odp/api/hints.h>
+#include <odp/api/atomic.h>
 #include <errno.h>
 #include <sys/queue.h>
 
diff --git a/helper/include/odp/helper/tcp.h b/helper/include/odp/helper/tcp.h
index 42f0cbe..fd6961c 100644
--- a/helper/include/odp/helper/tcp.h
+++ b/helper/include/odp/helper/tcp.h
@@ -18,9 +18,9 @@
 extern "C" {
 #endif
 
-#include <odp/align.h>
-#include <odp/debug.h>
-#include <odp/byteorder.h>
+#include <odp/api/align.h>
+#include <odp/api/debug.h>
+#include <odp/api/byteorder.h>
 
 /** @addtogroup odph_header ODPH HEADER
  *  @{
diff --git a/helper/include/odp/helper/udp.h b/helper/include/odp/helper/udp.h
index 93b342d..0757b7e 100644
--- a/helper/include/odp/helper/udp.h
+++ b/helper/include/odp/helper/udp.h
@@ -17,9 +17,9 @@
 extern "C" {
 #endif
 
-#include <odp/align.h>
-#include <odp/debug.h>
-#include <odp/byteorder.h>
+#include <odp/api/align.h>
+#include <odp/api/debug.h>
+#include <odp/api/byteorder.h>
 
 /** @addtogroup odph_header ODPH HEADER
  *  @{
diff --git a/helper/linux.c b/helper/linux.c
index 7904d5c..4e9e38c 100644
--- a/helper/linux.c
+++ b/helper/linux.c
@@ -18,9 +18,9 @@
 #include <stdio.h>
 
 #include <odp/helper/linux.h>
-#include <odp/thread.h>
-#include <odp/init.h>
-#include <odp/system_info.h>
+#include <odp/api/thread.h>
+#include <odp/api/init.h>
+#include <odp/api/system_info.h>
 #include "odph_debug.h"
 
 static void *odp_run_start_routine(void *arg)
diff --git a/include/odp.h b/include/odp.h
index 4a93c23..57559a6 100644
--- a/include/odp.h
+++ b/include/odp.h
@@ -18,47 +18,47 @@
 extern "C" {
 #endif
 
-#include <odp/config.h>
+#include <odp/api/config.h>
 
-#include <odp/version.h>
-#include <odp/std_types.h>
-#include <odp/compiler.h>
-#include <odp/align.h>
-#include <odp/hash.h>
-#include <odp/hints.h>
-#include <odp/debug.h>
-#include <odp/byteorder.h>
-#include <odp/cpu.h>
-#include <odp/cpumask.h>
-#include <odp/barrier.h>
-#include <odp/spinlock.h>
-#include <odp/atomic.h>
-#include <odp/init.h>
-#include <odp/system_info.h>
-#include <odp/thread.h>
-#include <odp/shared_memory.h>
-#include <odp/buffer.h>
-#include <odp/pool.h>
-#include <odp/queue.h>
-#include <odp/ticketlock.h>
-#include <odp/time.h>
-#include <odp/timer.h>
-#include <odp/schedule.h>
-#include <odp/sync.h>
-#include <odp/packet.h>
-#include <odp/packet_flags.h>
-#include <odp/packet_io.h>
-#include <odp/crypto.h>
-#include <odp/classification.h>
-#include <odp/rwlock.h>
-#include <odp/event.h>
-#include <odp/random.h>
-#include <odp/errno.h>
-#include <odp/thrmask.h>
-#include <odp/traffic_mngr.h>
-#include <odp/spinlock_recursive.h>
-#include <odp/rwlock_recursive.h>
-#include <odp/std_clib.h>
+#include <odp/api/version.h>
+#include <odp/api/std_types.h>
+#include <odp/api/compiler.h>
+#include <odp/api/align.h>
+#include <odp/api/hash.h>
+#include <odp/api/hints.h>
+#include <odp/api/debug.h>
+#include <odp/api/byteorder.h>
+#include <odp/api/cpu.h>
+#include <odp/api/cpumask.h>
+#include <odp/api/barrier.h>
+#include <odp/api/spinlock.h>
+#include <odp/api/atomic.h>
+#include <odp/api/init.h>
+#include <odp/api/system_info.h>
+#include <odp/api/thread.h>
+#include <odp/api/shared_memory.h>
+#include <odp/api/buffer.h>
+#include <odp/api/pool.h>
+#include <odp/api/queue.h>
+#include <odp/api/ticketlock.h>
+#include <odp/api/time.h>
+#include <odp/api/timer.h>
+#include <odp/api/schedule.h>
+#include <odp/api/sync.h>
+#include <odp/api/packet.h>
+#include <odp/api/packet_flags.h>
+#include <odp/api/packet_io.h>
+#include <odp/api/crypto.h>
+#include <odp/api/classification.h>
+#include <odp/api/rwlock.h>
+#include <odp/api/event.h>
+#include <odp/api/random.h>
+#include <odp/api/errno.h>
+#include <odp/api/thrmask.h>
+#include <odp/api/traffic_mngr.h>
+#include <odp/api/spinlock_recursive.h>
+#include <odp/api/rwlock_recursive.h>
+#include <odp/api/std_clib.h>
 
 #ifdef __cplusplus
 }
diff --git a/include/odp/api/align.h b/include/odp/api/ref/align.h
similarity index 100%
rename from include/odp/api/align.h
rename to include/odp/api/ref/align.h
diff --git a/include/odp/api/atomic.h b/include/odp/api/ref/atomic.h
similarity index 100%
rename from include/odp/api/atomic.h
rename to include/odp/api/ref/atomic.h
diff --git a/include/odp/api/barrier.h b/include/odp/api/ref/barrier.h
similarity index 100%
rename from include/odp/api/barrier.h
rename to include/odp/api/ref/barrier.h
diff --git a/include/odp/api/buffer.h b/include/odp/api/ref/buffer.h
similarity index 100%
rename from include/odp/api/buffer.h
rename to include/odp/api/ref/buffer.h
diff --git a/include/odp/api/byteorder.h b/include/odp/api/ref/byteorder.h
similarity index 100%
rename from include/odp/api/byteorder.h
rename to include/odp/api/ref/byteorder.h
diff --git a/include/odp/api/classification.h b/include/odp/api/ref/classification.h
similarity index 100%
rename from include/odp/api/classification.h
rename to include/odp/api/ref/classification.h
diff --git a/include/odp/api/compiler.h b/include/odp/api/ref/compiler.h
similarity index 100%
rename from include/odp/api/compiler.h
rename to include/odp/api/ref/compiler.h
diff --git a/include/odp/api/config.h b/include/odp/api/ref/config.h
similarity index 100%
rename from include/odp/api/config.h
rename to include/odp/api/ref/config.h
diff --git a/include/odp/api/cpu.h b/include/odp/api/ref/cpu.h
similarity index 99%
rename from include/odp/api/cpu.h
rename to include/odp/api/ref/cpu.h
index 4cbaf58..cb1c673 100644
--- a/include/odp/api/cpu.h
+++ b/include/odp/api/ref/cpu.h
@@ -18,7 +18,7 @@
 extern "C" {
 #endif
 
-#include <odp/std_types.h>
+#include <odp/api/std_types.h>
 
 /** @defgroup odp_cpu ODP CPU
  *  @{
diff --git a/include/odp/api/cpumask.h b/include/odp/api/ref/cpumask.h
similarity index 99%
rename from include/odp/api/cpumask.h
rename to include/odp/api/ref/cpumask.h
index 4407b10..42098c2 100644
--- a/include/odp/api/cpumask.h
+++ b/include/odp/api/ref/cpumask.h
@@ -18,7 +18,7 @@
 extern "C" {
 #endif
 
-#include <odp/config.h>
+#include <odp/api/config.h>
 
 /** @defgroup odp_cpumask ODP CPUMASK
  *  CPU mask operations.
diff --git a/include/odp/api/crypto.h b/include/odp/api/ref/crypto.h
similarity index 100%
rename from include/odp/api/crypto.h
rename to include/odp/api/ref/crypto.h
diff --git a/include/odp/api/debug.h b/include/odp/api/ref/debug.h
similarity index 100%
rename from include/odp/api/debug.h
rename to include/odp/api/ref/debug.h
diff --git a/include/odp/api/errno.h b/include/odp/api/ref/errno.h
similarity index 100%
rename from include/odp/api/errno.h
rename to include/odp/api/ref/errno.h
diff --git a/include/odp/api/event.h b/include/odp/api/ref/event.h
similarity index 100%
rename from include/odp/api/event.h
rename to include/odp/api/ref/event.h
diff --git a/include/odp/api/hash.h b/include/odp/api/ref/hash.h
similarity index 98%
rename from include/odp/api/hash.h
rename to include/odp/api/ref/hash.h
index 1b2a580..a6bc753 100644
--- a/include/odp/api/hash.h
+++ b/include/odp/api/ref/hash.h
@@ -17,7 +17,7 @@
 extern "C" {
 #endif
 
-#include <odp/std_types.h>
+#include <odp/api/std_types.h>
 
 /** @defgroup odp_hash ODP HASH FUNCTIONS
  *  ODP Hash functions
diff --git a/include/odp/api/hints.h b/include/odp/api/ref/hints.h
similarity index 100%
rename from include/odp/api/hints.h
rename to include/odp/api/ref/hints.h
diff --git a/include/odp/api/init.h b/include/odp/api/ref/init.h
similarity index 98%
rename from include/odp/api/init.h
rename to include/odp/api/ref/init.h
index 381f77e..2c98109 100644
--- a/include/odp/api/init.h
+++ b/include/odp/api/ref/init.h
@@ -28,9 +28,9 @@ extern "C" {
 
 
 
-#include <odp/std_types.h>
-#include <odp/hints.h>
-#include <odp/thread.h>
+#include <odp/api/std_types.h>
+#include <odp/api/hints.h>
+#include <odp/api/thread.h>
 
 /** @defgroup odp_initialization ODP INITIALIZATION
  *  Initialisation operations.
diff --git a/include/odp/api/packet.h b/include/odp/api/ref/packet.h
similarity index 100%
rename from include/odp/api/packet.h
rename to include/odp/api/ref/packet.h
diff --git a/include/odp/api/packet_flags.h b/include/odp/api/ref/packet_flags.h
similarity index 99%
rename from include/odp/api/packet_flags.h
rename to include/odp/api/ref/packet_flags.h
index 8de0c82..960a524 100644
--- a/include/odp/api/packet_flags.h
+++ b/include/odp/api/ref/packet_flags.h
@@ -18,8 +18,8 @@
 extern "C" {
 #endif
 
-#include <odp/std_types.h>
-#include <odp/packet.h>
+#include <odp/api/std_types.h>
+#include <odp/api/packet.h>
 
 /** @addtogroup odp_packet
  *  Boolean operations on a packet.
diff --git a/include/odp/api/packet_io.h b/include/odp/api/ref/packet_io.h
similarity index 99%
rename from include/odp/api/packet_io.h
rename to include/odp/api/ref/packet_io.h
index 4971108..05c45cb 100644
--- a/include/odp/api/packet_io.h
+++ b/include/odp/api/ref/packet_io.h
@@ -18,8 +18,8 @@
 extern "C" {
 #endif
 
-#include <odp/api/packet_io_stats.h>
-#include <odp/api/queue.h>
+#include <odp/api/ref/packet_io_stats.h>
+#include <odp/api/ref/queue.h>
 
 /** @defgroup odp_packet_io ODP PACKET IO
  *  Operations on a packet Input/Output interface.
diff --git a/include/odp/api/packet_io_stats.h b/include/odp/api/ref/packet_io_stats.h
similarity index 100%
rename from include/odp/api/packet_io_stats.h
rename to include/odp/api/ref/packet_io_stats.h
diff --git a/include/odp/api/pool.h b/include/odp/api/ref/pool.h
similarity index 99%
rename from include/odp/api/pool.h
rename to include/odp/api/ref/pool.h
index 2e79a55..a7b3680 100644
--- a/include/odp/api/pool.h
+++ b/include/odp/api/ref/pool.h
@@ -20,7 +20,7 @@ extern "C" {
 
 
 
-#include <odp/std_types.h>
+#include <odp/api/std_types.h>
 
 /** @defgroup odp_pool ODP POOL
  *  Operations on a pool.
diff --git a/include/odp/api/queue.h b/include/odp/api/ref/queue.h
similarity index 99%
rename from include/odp/api/queue.h
rename to include/odp/api/ref/queue.h
index 3ee69fc..dd2c99c 100644
--- a/include/odp/api/queue.h
+++ b/include/odp/api/ref/queue.h
@@ -18,8 +18,8 @@
 extern "C" {
 #endif
 
-#include <odp/schedule_types.h>
-#include <odp/event.h>
+#include <odp/api/schedule_types.h>
+#include <odp/api/event.h>
 
 /** @defgroup odp_queue ODP QUEUE
  *  Macros and operation on a queue.
diff --git a/include/odp/api/random.h b/include/odp/api/ref/random.h
similarity index 100%
rename from include/odp/api/random.h
rename to include/odp/api/ref/random.h
diff --git a/include/odp/api/rwlock.h b/include/odp/api/ref/rwlock.h
similarity index 100%
rename from include/odp/api/rwlock.h
rename to include/odp/api/ref/rwlock.h
diff --git a/include/odp/api/rwlock_recursive.h b/include/odp/api/ref/rwlock_recursive.h
similarity index 100%
rename from include/odp/api/rwlock_recursive.h
rename to include/odp/api/ref/rwlock_recursive.h
diff --git a/include/odp/api/schedule.h b/include/odp/api/ref/schedule.h
similarity index 98%
rename from include/odp/api/schedule.h
rename to include/odp/api/ref/schedule.h
index 68ba594..4ae681d 100644
--- a/include/odp/api/schedule.h
+++ b/include/odp/api/ref/schedule.h
@@ -19,11 +19,11 @@ extern "C" {
 #endif
 
 
-#include <odp/std_types.h>
-#include <odp/event.h>
-#include <odp/queue.h>
-#include <odp/schedule_types.h>
-#include <odp/thrmask.h>
+#include <odp/api/std_types.h>
+#include <odp/api/event.h>
+#include <odp/api/queue.h>
+#include <odp/api/schedule_types.h>
+#include <odp/api/thrmask.h>
 
 /** @defgroup odp_scheduler ODP SCHEDULER
  *  Operations on the scheduler.
diff --git a/include/odp/api/schedule_types.h b/include/odp/api/ref/schedule_types.h
similarity index 100%
rename from include/odp/api/schedule_types.h
rename to include/odp/api/ref/schedule_types.h
diff --git a/include/odp/api/shared_memory.h b/include/odp/api/ref/shared_memory.h
similarity index 100%
rename from include/odp/api/shared_memory.h
rename to include/odp/api/ref/shared_memory.h
diff --git a/include/odp/api/spinlock.h b/include/odp/api/ref/spinlock.h
similarity index 100%
rename from include/odp/api/spinlock.h
rename to include/odp/api/ref/spinlock.h
diff --git a/include/odp/api/spinlock_recursive.h b/include/odp/api/ref/spinlock_recursive.h
similarity index 100%
rename from include/odp/api/spinlock_recursive.h
rename to include/odp/api/ref/spinlock_recursive.h
diff --git a/include/odp/api/std_clib.h b/include/odp/api/ref/std_clib.h
similarity index 100%
rename from include/odp/api/std_clib.h
rename to include/odp/api/ref/std_clib.h
diff --git a/include/odp/api/std_types.h b/include/odp/api/ref/std_types.h
similarity index 100%
rename from include/odp/api/std_types.h
rename to include/odp/api/ref/std_types.h
diff --git a/include/odp/api/sync.h b/include/odp/api/ref/sync.h
similarity index 100%
rename from include/odp/api/sync.h
rename to include/odp/api/ref/sync.h
diff --git a/include/odp/api/system_info.h b/include/odp/api/ref/system_info.h
similarity index 100%
rename from include/odp/api/system_info.h
rename to include/odp/api/ref/system_info.h
diff --git a/include/odp/api/thread.h b/include/odp/api/ref/thread.h
similarity index 100%
rename from include/odp/api/thread.h
rename to include/odp/api/ref/thread.h
diff --git a/include/odp/api/thrmask.h b/include/odp/api/ref/thrmask.h
similarity index 99%
rename from include/odp/api/thrmask.h
rename to include/odp/api/ref/thrmask.h
index af0d9ba..a22da8c 100644
--- a/include/odp/api/thrmask.h
+++ b/include/odp/api/ref/thrmask.h
@@ -17,7 +17,7 @@
 extern "C" {
 #endif
 
-#include <odp/std_types.h>
+#include <odp/api/std_types.h>
 
 /** @addtogroup odp_thread
  *  Thread mask operations.
diff --git a/include/odp/api/ticketlock.h b/include/odp/api/ref/ticketlock.h
similarity index 100%
rename from include/odp/api/ticketlock.h
rename to include/odp/api/ref/ticketlock.h
diff --git a/include/odp/api/time.h b/include/odp/api/ref/time.h
similarity index 100%
rename from include/odp/api/time.h
rename to include/odp/api/ref/time.h
diff --git a/include/odp/api/timer.h b/include/odp/api/ref/timer.h
similarity index 100%
rename from include/odp/api/timer.h
rename to include/odp/api/ref/timer.h
diff --git a/include/odp/api/traffic_mngr.h b/include/odp/api/ref/traffic_mngr.h
similarity index 99%
rename from include/odp/api/traffic_mngr.h
rename to include/odp/api/ref/traffic_mngr.h
index 09b13f2..f9b62c2 100644
--- a/include/odp/api/traffic_mngr.h
+++ b/include/odp/api/ref/traffic_mngr.h
@@ -11,8 +11,8 @@
 extern "C" {
 #endif
 
-#include <odp/std_types.h>
-#include <odp/packet_io.h>
+#include <odp/api/std_types.h>
+#include <odp/api/packet_io.h>
 
 /**
  * @file
diff --git a/include/odp/api/version.h b/include/odp/api/ref/version.h
similarity index 100%
rename from include/odp/api/version.h
rename to include/odp/api/ref/version.h
diff --git a/platform/Makefile.inc b/platform/Makefile.inc
index 331cc15..5671fca 100644
--- a/platform/Makefile.inc
+++ b/platform/Makefile.inc
@@ -19,47 +19,47 @@ AM_CFLAGS += -DPLATFORM=${with_platform}
 #The implementation will need to retain the deprecated implementation
 AM_CFLAGS += -Wno-deprecated-declarations
 
-odpapiincludedir= $(includedir)/odp/api
-odpapiinclude_HEADERS = \
-		  $(top_srcdir)/include/odp/api/align.h \
-		  $(top_srcdir)/include/odp/api/atomic.h \
-		  $(top_srcdir)/include/odp/api/barrier.h \
-		  $(top_srcdir)/include/odp/api/buffer.h \
-		  $(top_srcdir)/include/odp/api/byteorder.h \
-		  $(top_srcdir)/include/odp/api/classification.h \
-		  $(top_srcdir)/include/odp/api/compiler.h \
-		  $(top_srcdir)/include/odp/api/config.h \
-		  $(top_srcdir)/include/odp/api/cpu.h \
-		  $(top_srcdir)/include/odp/api/cpumask.h \
-		  $(top_srcdir)/include/odp/api/crypto.h \
-		  $(top_srcdir)/include/odp/api/debug.h \
-		  $(top_srcdir)/include/odp/api/errno.h \
-		  $(top_srcdir)/include/odp/api/event.h \
-		  $(top_srcdir)/include/odp/api/hash.h \
-		  $(top_srcdir)/include/odp/api/hints.h \
-		  $(top_srcdir)/include/odp/api/init.h \
-		  $(top_srcdir)/include/odp/api/packet.h \
-		  $(top_srcdir)/include/odp/api/packet_flags.h \
-		  $(top_srcdir)/include/odp/api/packet_io.h \
-		  $(top_srcdir)/include/odp/api/packet_io_stats.h \
-		  $(top_srcdir)/include/odp/api/pool.h \
-		  $(top_srcdir)/include/odp/api/queue.h \
-		  $(top_srcdir)/include/odp/api/random.h \
-		  $(top_srcdir)/include/odp/api/rwlock.h \
-		  $(top_srcdir)/include/odp/api/rwlock_recursive.h \
-		  $(top_srcdir)/include/odp/api/schedule.h \
-		  $(top_srcdir)/include/odp/api/schedule_types.h \
-		  $(top_srcdir)/include/odp/api/shared_memory.h \
-		  $(top_srcdir)/include/odp/api/spinlock.h \
-		  $(top_srcdir)/include/odp/api/spinlock_recursive.h \
-		  $(top_srcdir)/include/odp/api/std_clib.h \
-		  $(top_srcdir)/include/odp/api/std_types.h \
-		  $(top_srcdir)/include/odp/api/sync.h \
-		  $(top_srcdir)/include/odp/api/system_info.h \
-		  $(top_srcdir)/include/odp/api/thread.h \
-		  $(top_srcdir)/include/odp/api/thrmask.h \
-		  $(top_srcdir)/include/odp/api/ticketlock.h \
-		  $(top_srcdir)/include/odp/api/time.h \
-		  $(top_srcdir)/include/odp/api/timer.h \
-		  $(top_srcdir)/include/odp/api/traffic_mngr.h \
-		  $(top_srcdir)/include/odp/api/version.h
+odpapirefincludedir= $(includedir)/odp/api/ref
+odpapirefinclude_HEADERS = \
+		  $(top_srcdir)/include/odp/api/ref/align.h \
+		  $(top_srcdir)/include/odp/api/ref/atomic.h \
+		  $(top_srcdir)/include/odp/api/ref/barrier.h \
+		  $(top_srcdir)/include/odp/api/ref/buffer.h \
+		  $(top_srcdir)/include/odp/api/ref/byteorder.h \
+		  $(top_srcdir)/include/odp/api/ref/classification.h \
+		  $(top_srcdir)/include/odp/api/ref/compiler.h \
+		  $(top_srcdir)/include/odp/api/ref/config.h \
+		  $(top_srcdir)/include/odp/api/ref/cpu.h \
+		  $(top_srcdir)/include/odp/api/ref/cpumask.h \
+		  $(top_srcdir)/include/odp/api/ref/crypto.h \
+		  $(top_srcdir)/include/odp/api/ref/debug.h \
+		  $(top_srcdir)/include/odp/api/ref/errno.h \
+		  $(top_srcdir)/include/odp/api/ref/event.h \
+		  $(top_srcdir)/include/odp/api/ref/hash.h \
+		  $(top_srcdir)/include/odp/api/ref/hints.h \
+		  $(top_srcdir)/include/odp/api/ref/init.h \
+		  $(top_srcdir)/include/odp/api/ref/packet.h \
+		  $(top_srcdir)/include/odp/api/ref/packet_flags.h \
+		  $(top_srcdir)/include/odp/api/ref/packet_io.h \
+		  $(top_srcdir)/include/odp/api/ref/packet_io_stats.h \
+		  $(top_srcdir)/include/odp/api/ref/pool.h \
+		  $(top_srcdir)/include/odp/api/ref/queue.h \
+		  $(top_srcdir)/include/odp/api/ref/random.h \
+		  $(top_srcdir)/include/odp/api/ref/rwlock.h \
+		  $(top_srcdir)/include/odp/api/ref/rwlock_recursive.h \
+		  $(top_srcdir)/include/odp/api/ref/schedule.h \
+		  $(top_srcdir)/include/odp/api/ref/schedule_types.h \
+		  $(top_srcdir)/include/odp/api/ref/shared_memory.h \
+		  $(top_srcdir)/include/odp/api/ref/spinlock.h \
+		  $(top_srcdir)/include/odp/api/ref/spinlock_recursive.h \
+		  $(top_srcdir)/include/odp/api/ref/std_clib.h \
+		  $(top_srcdir)/include/odp/api/ref/std_types.h \
+		  $(top_srcdir)/include/odp/api/ref/sync.h \
+		  $(top_srcdir)/include/odp/api/ref/system_info.h \
+		  $(top_srcdir)/include/odp/api/ref/thread.h \
+		  $(top_srcdir)/include/odp/api/ref/thrmask.h \
+		  $(top_srcdir)/include/odp/api/ref/ticketlock.h \
+		  $(top_srcdir)/include/odp/api/ref/time.h \
+		  $(top_srcdir)/include/odp/api/ref/timer.h \
+		  $(top_srcdir)/include/odp/api/ref/traffic_mngr.h \
+		  $(top_srcdir)/include/odp/api/ref/version.h
diff --git a/platform/linux-generic/Makefile.am b/platform/linux-generic/Makefile.am
index c1e8ccb..83483ae 100644
--- a/platform/linux-generic/Makefile.am
+++ b/platform/linux-generic/Makefile.am
@@ -11,80 +11,80 @@ AM_CFLAGS +=  -I$(top_srcdir)/helper/include
 include_HEADERS = \
 		  $(top_srcdir)/include/odp.h
 
-odpincludedir= $(includedir)/odp
-odpinclude_HEADERS = \
-		  $(srcdir)/include/odp/align.h \
-		  $(srcdir)/include/odp/atomic.h \
-		  $(srcdir)/include/odp/barrier.h \
-		  $(srcdir)/include/odp/buffer.h \
-		  $(srcdir)/include/odp/byteorder.h \
-		  $(srcdir)/include/odp/classification.h \
-		  $(srcdir)/include/odp/compiler.h \
-		  $(srcdir)/include/odp/config.h \
-		  $(srcdir)/include/odp/cpu.h \
-		  $(srcdir)/include/odp/cpumask.h \
-		  $(srcdir)/include/odp/crypto.h \
-		  $(srcdir)/include/odp/debug.h \
-		  $(srcdir)/include/odp/errno.h \
-		  $(srcdir)/include/odp/event.h \
-		  $(srcdir)/include/odp/hash.h \
-		  $(srcdir)/include/odp/hints.h \
-		  $(srcdir)/include/odp/init.h \
-		  $(srcdir)/include/odp/packet_flags.h \
-		  $(srcdir)/include/odp/packet.h \
-		  $(srcdir)/include/odp/packet_io.h \
-		  $(srcdir)/include/odp/pool.h \
-		  $(srcdir)/include/odp/queue.h \
-		  $(srcdir)/include/odp/random.h \
-		  $(srcdir)/include/odp/rwlock.h \
-		  $(srcdir)/include/odp/rwlock_recursive.h \
-		  $(srcdir)/include/odp/schedule.h \
-		  $(srcdir)/include/odp/schedule_types.h \
-		  $(srcdir)/include/odp/shared_memory.h \
-		  $(srcdir)/include/odp/spinlock.h \
-		  $(srcdir)/include/odp/spinlock_recursive.h \
-		  $(srcdir)/include/odp/std_clib.h \
-		  $(srcdir)/include/odp/std_types.h \
-		  $(srcdir)/include/odp/sync.h \
-		  $(srcdir)/include/odp/system_info.h \
-		  $(srcdir)/include/odp/thread.h \
-		  $(srcdir)/include/odp/thrmask.h \
-		  $(srcdir)/include/odp/ticketlock.h \
-		  $(srcdir)/include/odp/time.h \
-		  $(srcdir)/include/odp/timer.h \
-		  $(srcdir)/include/odp/traffic_mngr.h \
-		  $(srcdir)/include/odp/version.h \
+odpapiincludedir= $(includedir)/odp/api
+odpapiinclude_HEADERS = \
+		  $(srcdir)/include/odp/api/align.h \
+		  $(srcdir)/include/odp/api/atomic.h \
+		  $(srcdir)/include/odp/api/barrier.h \
+		  $(srcdir)/include/odp/api/buffer.h \
+		  $(srcdir)/include/odp/api/byteorder.h \
+		  $(srcdir)/include/odp/api/classification.h \
+		  $(srcdir)/include/odp/api/compiler.h \
+		  $(srcdir)/include/odp/api/config.h \
+		  $(srcdir)/include/odp/api/cpu.h \
+		  $(srcdir)/include/odp/api/cpumask.h \
+		  $(srcdir)/include/odp/api/crypto.h \
+		  $(srcdir)/include/odp/api/debug.h \
+		  $(srcdir)/include/odp/api/errno.h \
+		  $(srcdir)/include/odp/api/event.h \
+		  $(srcdir)/include/odp/api/hash.h \
+		  $(srcdir)/include/odp/api/hints.h \
+		  $(srcdir)/include/odp/api/init.h \
+		  $(srcdir)/include/odp/api/packet_flags.h \
+		  $(srcdir)/include/odp/api/packet.h \
+		  $(srcdir)/include/odp/api/packet_io.h \
+		  $(srcdir)/include/odp/api/pool.h \
+		  $(srcdir)/include/odp/api/queue.h \
+		  $(srcdir)/include/odp/api/random.h \
+		  $(srcdir)/include/odp/api/rwlock.h \
+		  $(srcdir)/include/odp/api/rwlock_recursive.h \
+		  $(srcdir)/include/odp/api/schedule.h \
+		  $(srcdir)/include/odp/api/schedule_types.h \
+		  $(srcdir)/include/odp/api/shared_memory.h \
+		  $(srcdir)/include/odp/api/spinlock.h \
+		  $(srcdir)/include/odp/api/spinlock_recursive.h \
+		  $(srcdir)/include/odp/api/std_clib.h \
+		  $(srcdir)/include/odp/api/std_types.h \
+		  $(srcdir)/include/odp/api/sync.h \
+		  $(srcdir)/include/odp/api/system_info.h \
+		  $(srcdir)/include/odp/api/thread.h \
+		  $(srcdir)/include/odp/api/thrmask.h \
+		  $(srcdir)/include/odp/api/ticketlock.h \
+		  $(srcdir)/include/odp/api/time.h \
+		  $(srcdir)/include/odp/api/timer.h \
+		  $(srcdir)/include/odp/api/traffic_mngr.h \
+		  $(srcdir)/include/odp/api/version.h \
 		  $(srcdir)/arch/@ARCH@/odp/cpu_arch.h
 
-odpplatincludedir= $(includedir)/odp/plat
-odpplatinclude_HEADERS = \
-		  $(srcdir)/include/odp/plat/atomic_types.h \
-		  $(srcdir)/include/odp/plat/barrier_types.h \
-		  $(srcdir)/include/odp/plat/buffer_types.h \
-		  $(srcdir)/include/odp/plat/byteorder_types.h \
-		  $(srcdir)/include/odp/plat/classification_types.h \
-		  $(srcdir)/include/odp/plat/cpumask_types.h \
-		  $(srcdir)/include/odp/plat/crypto_types.h \
-		  $(srcdir)/include/odp/plat/event_types.h \
-		  $(srcdir)/include/odp/plat/init_types.h \
-		  $(srcdir)/include/odp/plat/packet_types.h \
-		  $(srcdir)/include/odp/plat/packet_io_types.h \
-		  $(srcdir)/include/odp/plat/pool_types.h \
-		  $(srcdir)/include/odp/plat/queue_types.h \
-		  $(srcdir)/include/odp/plat/rwlock_types.h \
-		  $(srcdir)/include/odp/plat/rwlock_recursive_types.h \
-		  $(srcdir)/include/odp/plat/schedule_types.h \
-		  $(srcdir)/include/odp/plat/shared_memory_types.h \
-		  $(srcdir)/include/odp/plat/spinlock_types.h \
-		  $(srcdir)/include/odp/plat/spinlock_recursive_types.h \
-		  $(srcdir)/include/odp/plat/strong_types.h \
-		  $(srcdir)/include/odp/plat/thread_types.h \
-		  $(srcdir)/include/odp/plat/thrmask_types.h \
-		  $(srcdir)/include/odp/plat/ticketlock_types.h \
-		  $(srcdir)/include/odp/plat/time_types.h \
-		  $(srcdir)/include/odp/plat/timer_types.h \
-		  $(srcdir)/include/odp/plat/traffic_mngr_types.h \
-		  $(srcdir)/include/odp/plat/version_types.h
+odpapiplatincludedir= $(includedir)/odp/api/plat
+odpapiplatinclude_HEADERS = \
+		  $(srcdir)/include/odp/api/plat/atomic_types.h \
+		  $(srcdir)/include/odp/api/plat/barrier_types.h \
+		  $(srcdir)/include/odp/api/plat/buffer_types.h \
+		  $(srcdir)/include/odp/api/plat/byteorder_types.h \
+		  $(srcdir)/include/odp/api/plat/classification_types.h \
+		  $(srcdir)/include/odp/api/plat/cpumask_types.h \
+		  $(srcdir)/include/odp/api/plat/crypto_types.h \
+		  $(srcdir)/include/odp/api/plat/event_types.h \
+		  $(srcdir)/include/odp/api/plat/init_types.h \
+		  $(srcdir)/include/odp/api/plat/packet_types.h \
+		  $(srcdir)/include/odp/api/plat/packet_io_types.h \
+		  $(srcdir)/include/odp/api/plat/pool_types.h \
+		  $(srcdir)/include/odp/api/plat/queue_types.h \
+		  $(srcdir)/include/odp/api/plat/rwlock_types.h \
+		  $(srcdir)/include/odp/api/plat/rwlock_recursive_types.h \
+		  $(srcdir)/include/odp/api/plat/schedule_types.h \
+		  $(srcdir)/include/odp/api/plat/shared_memory_types.h \
+		  $(srcdir)/include/odp/api/plat/spinlock_types.h \
+		  $(srcdir)/include/odp/api/plat/spinlock_recursive_types.h \
+		  $(srcdir)/include/odp/api/plat/strong_types.h \
+		  $(srcdir)/include/odp/api/plat/thread_types.h \
+		  $(srcdir)/include/odp/api/plat/thrmask_types.h \
+		  $(srcdir)/include/odp/api/plat/ticketlock_types.h \
+		  $(srcdir)/include/odp/api/plat/time_types.h \
+		  $(srcdir)/include/odp/api/plat/timer_types.h \
+		  $(srcdir)/include/odp/api/plat/traffic_mngr_types.h \
+		  $(srcdir)/include/odp/api/plat/version_types.h
 
 noinst_HEADERS = \
 		  ${srcdir}/include/odp_align_internal.h \
diff --git a/platform/linux-generic/arch/linux/odp_cpu_arch.c b/platform/linux-generic/arch/linux/odp_cpu_arch.c
index 3112d0c..2ac223e 100644
--- a/platform/linux-generic/arch/linux/odp_cpu_arch.c
+++ b/platform/linux-generic/arch/linux/odp_cpu_arch.c
@@ -9,9 +9,9 @@
 #include <stdlib.h>
 #include <time.h>
 
-#include <odp/cpu.h>
-#include <odp/hints.h>
-#include <odp/system_info.h>
+#include <odp/api/cpu.h>
+#include <odp/api/hints.h>
+#include <odp/api/system_info.h>
 #include <odp_debug_internal.h>
 
 #define GIGA 1000000000
diff --git a/platform/linux-generic/arch/mips64/odp_cpu_arch.c b/platform/linux-generic/arch/mips64/odp_cpu_arch.c
index a20a313..646acf9 100644
--- a/platform/linux-generic/arch/mips64/odp_cpu_arch.c
+++ b/platform/linux-generic/arch/mips64/odp_cpu_arch.c
@@ -4,9 +4,9 @@
  * SPDX-License-Identifier:     BSD-3-Clause
  */
 
-#include <odp/cpu.h>
-#include <odp/hints.h>
-#include <odp/system_info.h>
+#include <odp/api/cpu.h>
+#include <odp/api/hints.h>
+#include <odp/api/system_info.h>
 
 uint64_t odp_cpu_cycles(void)
 {
diff --git a/platform/linux-generic/arch/x86/odp_cpu_arch.c b/platform/linux-generic/arch/x86/odp_cpu_arch.c
index 1c5c0ec..c8cf27b 100644
--- a/platform/linux-generic/arch/x86/odp_cpu_arch.c
+++ b/platform/linux-generic/arch/x86/odp_cpu_arch.c
@@ -3,7 +3,7 @@
  *
  * SPDX-License-Identifier:     BSD-3-Clause
  */
-#include <odp/cpu.h>
+#include <odp/api/cpu.h>
 
 uint64_t odp_cpu_cycles(void)
 {
diff --git a/platform/linux-generic/include/odp/align.h b/platform/linux-generic/include/odp/api/align.h
similarity index 97%
rename from platform/linux-generic/include/odp/align.h
rename to platform/linux-generic/include/odp/api/align.h
index be8c9ae..919f4b7 100644
--- a/platform/linux-generic/include/odp/align.h
+++ b/platform/linux-generic/include/odp/api/align.h
@@ -65,7 +65,7 @@ extern "C" {
  * @}
  */
 
-#include <odp/api/align.h>
+#include <odp/api/ref/align.h>
 
 #ifdef __cplusplus
 }
diff --git a/platform/linux-generic/include/odp/atomic.h b/platform/linux-generic/include/odp/api/atomic.h
similarity index 98%
rename from platform/linux-generic/include/odp/atomic.h
rename to platform/linux-generic/include/odp/api/atomic.h
index 005a0cd..389d313 100644
--- a/platform/linux-generic/include/odp/atomic.h
+++ b/platform/linux-generic/include/odp/api/atomic.h
@@ -18,8 +18,8 @@ extern "C" {
 #endif
 
 #include <stdint.h>
-#include <odp/align.h>
-#include <odp/plat/atomic_types.h>
+#include <odp/api/align.h>
+#include <odp/api/plat/atomic_types.h>
 
 /** @ingroup odp_atomic
  *  @{
@@ -294,7 +294,7 @@ static inline void odp_atomic_sub_rls_u32(odp_atomic_u32_t *atom,
  * @}
  */
 
-#include <odp/api/atomic.h>
+#include <odp/api/ref/atomic.h>
 
 #ifdef __cplusplus
 }
diff --git a/platform/linux-generic/include/odp/barrier.h b/platform/linux-generic/include/odp/api/barrier.h
similarity index 66%
rename from platform/linux-generic/include/odp/barrier.h
rename to platform/linux-generic/include/odp/api/barrier.h
index 42df859..0b0fb3b 100644
--- a/platform/linux-generic/include/odp/barrier.h
+++ b/platform/linux-generic/include/odp/api/barrier.h
@@ -17,11 +17,11 @@
 extern "C" {
 #endif
 
-#include <odp/atomic.h>
-#include <odp/plat/shared_memory_types.h>
-#include <odp/plat/barrier_types.h>
+#include <odp/api/atomic.h>
+#include <odp/api/plat/shared_memory_types.h>
+#include <odp/api/plat/barrier_types.h>
 
-#include <odp/api/barrier.h>
+#include <odp/api/ref/barrier.h>
 
 #ifdef __cplusplus
 }
diff --git a/platform/linux-generic/include/odp/buffer.h b/platform/linux-generic/include/odp/api/buffer.h
similarity index 66%
rename from platform/linux-generic/include/odp/buffer.h
rename to platform/linux-generic/include/odp/api/buffer.h
index ae80e0c..9103288 100644
--- a/platform/linux-generic/include/odp/buffer.h
+++ b/platform/linux-generic/include/odp/api/buffer.h
@@ -17,10 +17,10 @@
 extern "C" {
 #endif
 
-#include <odp/std_types.h>
-#include <odp/plat/event_types.h>
-#include <odp/plat/buffer_types.h>
-#include <odp/plat/pool_types.h>
+#include <odp/api/std_types.h>
+#include <odp/api/plat/event_types.h>
+#include <odp/api/plat/buffer_types.h>
+#include <odp/api/plat/pool_types.h>
 
 /** @ingroup odp_buffer
  *  @{
@@ -30,7 +30,7 @@ extern "C" {
  * @}
  */
 
-#include <odp/api/buffer.h>
+#include <odp/api/ref/buffer.h>
 
 #ifdef __cplusplus
 }
diff --git a/platform/linux-generic/include/odp/byteorder.h b/platform/linux-generic/include/odp/api/byteorder.h
similarity index 95%
rename from platform/linux-generic/include/odp/byteorder.h
rename to platform/linux-generic/include/odp/api/byteorder.h
index 173b047..f3e6907 100644
--- a/platform/linux-generic/include/odp/byteorder.h
+++ b/platform/linux-generic/include/odp/api/byteorder.h
@@ -19,9 +19,9 @@ extern "C" {
 
 #include <endian.h>
 #include <asm/byteorder.h>
-#include <odp/plat/byteorder_types.h>
-#include <odp/std_types.h>
-#include <odp/compiler.h>
+#include <odp/api/plat/byteorder_types.h>
+#include <odp/api/std_types.h>
+#include <odp/api/compiler.h>
 
 /** @ingroup odp_compiler_optim
  *  @{
@@ -142,7 +142,7 @@ static inline uint64le_t odp_cpu_to_le_64(uint64_t cpu64)
  * @}
  */
 
-#include <odp/api/byteorder.h>
+#include <odp/api/ref/byteorder.h>
 
 #ifdef __cplusplus
 }
diff --git a/platform/linux-generic/include/odp/classification.h b/platform/linux-generic/include/odp/api/classification.h
similarity index 57%
rename from platform/linux-generic/include/odp/classification.h
rename to platform/linux-generic/include/odp/api/classification.h
index 5f12266..3ca394d 100644
--- a/platform/linux-generic/include/odp/classification.h
+++ b/platform/linux-generic/include/odp/api/classification.h
@@ -17,12 +17,12 @@
 extern "C" {
 #endif
 
-#include <odp/std_types.h>
-#include <odp/plat/pool_types.h>
-#include <odp/plat/classification_types.h>
-#include <odp/plat/packet_types.h>
-#include <odp/plat/packet_io_types.h>
-#include <odp/plat/queue_types.h>
+#include <odp/api/std_types.h>
+#include <odp/api/plat/pool_types.h>
+#include <odp/api/plat/classification_types.h>
+#include <odp/api/plat/packet_types.h>
+#include <odp/api/plat/packet_io_types.h>
+#include <odp/api/plat/queue_types.h>
 
 /** @ingroup odp_classification
  *  @{
@@ -32,7 +32,7 @@ extern "C" {
  * @}
  */
 
-#include <odp/api/classification.h>
+#include <odp/api/ref/classification.h>
 
 #ifdef __cplusplus
 }
diff --git a/platform/linux-generic/include/odp/compiler.h b/platform/linux-generic/include/odp/api/compiler.h
similarity index 91%
rename from platform/linux-generic/include/odp/compiler.h
rename to platform/linux-generic/include/odp/api/compiler.h
index 8f15961..26fd578 100644
--- a/platform/linux-generic/include/odp/compiler.h
+++ b/platform/linux-generic/include/odp/api/compiler.h
@@ -25,7 +25,7 @@ extern "C" {
  * @}
  */
 
-#include <odp/api/compiler.h>
+#include <odp/api/ref/compiler.h>
 
 #ifdef __cplusplus
 }
diff --git a/platform/linux-generic/include/odp/config.h b/platform/linux-generic/include/odp/api/config.h
similarity index 99%
rename from platform/linux-generic/include/odp/config.h
rename to platform/linux-generic/include/odp/api/config.h
index da8856f..c169726 100644
--- a/platform/linux-generic/include/odp/config.h
+++ b/platform/linux-generic/include/odp/api/config.h
@@ -187,7 +187,7 @@ static inline int odp_config_shm_blocks(void)
 	return ODP_CONFIG_SHM_BLOCKS;
 }
 
-#include <odp/api/config.h>
+#include <odp/api/ref/config.h>
 
 /**
  * @}
diff --git a/platform/linux-generic/include/odp/cpu.h b/platform/linux-generic/include/odp/api/cpu.h
similarity index 91%
rename from platform/linux-generic/include/odp/cpu.h
rename to platform/linux-generic/include/odp/api/cpu.h
index b98507d..d9bc8ee 100644
--- a/platform/linux-generic/include/odp/cpu.h
+++ b/platform/linux-generic/include/odp/api/cpu.h
@@ -19,7 +19,7 @@ extern "C" {
 
 #include <odp/cpu_arch.h>
 
-#include <odp/api/cpu.h>
+#include <odp/api/ref/cpu.h>
 
 #ifdef __cplusplus
 }
diff --git a/platform/linux-generic/include/odp/cpumask.h b/platform/linux-generic/include/odp/api/cpumask.h
similarity index 76%
rename from platform/linux-generic/include/odp/cpumask.h
rename to platform/linux-generic/include/odp/api/cpumask.h
index cf7ad9d..92636ab 100644
--- a/platform/linux-generic/include/odp/cpumask.h
+++ b/platform/linux-generic/include/odp/api/cpumask.h
@@ -20,10 +20,10 @@ extern "C" {
 #include <string.h>
 #include <sched.h>
 
-#include <odp/std_types.h>
-#include <odp/plat/cpumask_types.h>
+#include <odp/api/std_types.h>
+#include <odp/api/plat/cpumask_types.h>
 
-#include <odp/api/cpumask.h>
+#include <odp/api/ref/cpumask.h>
 
 #ifdef __cplusplus
 }
diff --git a/platform/linux-generic/include/odp/crypto.h b/platform/linux-generic/include/odp/api/crypto.h
similarity index 57%
rename from platform/linux-generic/include/odp/crypto.h
rename to platform/linux-generic/include/odp/api/crypto.h
index 7684c1e..7f51f1e 100644
--- a/platform/linux-generic/include/odp/crypto.h
+++ b/platform/linux-generic/include/odp/api/crypto.h
@@ -17,12 +17,12 @@
 extern "C" {
 #endif
 
-#include <odp/std_types.h>
-#include <odp/plat/packet_types.h>
-#include <odp/plat/crypto_types.h>
-#include <odp/plat/buffer_types.h>
-#include <odp/plat/pool_types.h>
-#include <odp/queue.h>
+#include <odp/api/std_types.h>
+#include <odp/api/plat/packet_types.h>
+#include <odp/api/plat/crypto_types.h>
+#include <odp/api/plat/buffer_types.h>
+#include <odp/api/plat/pool_types.h>
+#include <odp/api/queue.h>
 
 /** @ingroup odp_crypto
  *  @{
@@ -32,7 +32,7 @@ extern "C" {
  * @}
  */
 
-#include <odp/api/crypto.h>
+#include <odp/api/ref/crypto.h>
 
 #ifdef __cplusplus
 }
diff --git a/platform/linux-generic/include/odp/debug.h b/platform/linux-generic/include/odp/api/debug.h
similarity index 90%
rename from platform/linux-generic/include/odp/debug.h
rename to platform/linux-generic/include/odp/api/debug.h
index a2e59bf..0c4164b 100644
--- a/platform/linux-generic/include/odp/debug.h
+++ b/platform/linux-generic/include/odp/api/debug.h
@@ -17,7 +17,7 @@
 extern "C" {
 #endif
 
-#include <odp/api/debug.h>
+#include <odp/api/ref/debug.h>
 
 #ifdef __cplusplus
 }
diff --git a/platform/linux-generic/include/odp/errno.h b/platform/linux-generic/include/odp/api/errno.h
similarity index 90%
rename from platform/linux-generic/include/odp/errno.h
rename to platform/linux-generic/include/odp/api/errno.h
index e53b49c..7d477ea 100644
--- a/platform/linux-generic/include/odp/errno.h
+++ b/platform/linux-generic/include/odp/api/errno.h
@@ -18,7 +18,7 @@ extern "C" {
 #endif
 
 
-#include <odp/api/errno.h>
+#include <odp/api/ref/errno.h>
 
 #ifdef __cplusplus
 }
diff --git a/platform/linux-generic/include/odp/event.h b/platform/linux-generic/include/odp/api/event.h
similarity index 82%
rename from platform/linux-generic/include/odp/event.h
rename to platform/linux-generic/include/odp/api/event.h
index 753d023..f6c0ddb 100644
--- a/platform/linux-generic/include/odp/event.h
+++ b/platform/linux-generic/include/odp/api/event.h
@@ -17,7 +17,7 @@
 extern "C" {
 #endif
 
-#include <odp/plat/event_types.h>
+#include <odp/api/plat/event_types.h>
 
 /** @ingroup odp_event
  *  @{
@@ -27,7 +27,7 @@ extern "C" {
  * @}
  */
 
-#include <odp/api/event.h>
+#include <odp/api/ref/event.h>
 
 #ifdef __cplusplus
 }
diff --git a/platform/linux-generic/include/odp/hash.h b/platform/linux-generic/include/odp/api/hash.h
similarity index 91%
rename from platform/linux-generic/include/odp/hash.h
rename to platform/linux-generic/include/odp/api/hash.h
index df8add0..987a52a 100644
--- a/platform/linux-generic/include/odp/hash.h
+++ b/platform/linux-generic/include/odp/api/hash.h
@@ -25,7 +25,7 @@ extern "C" {
  * @}
  */
 
-#include <odp/api/hash.h>
+#include <odp/api/ref/hash.h>
 
 #ifdef __cplusplus
 }
diff --git a/platform/linux-generic/include/odp/hints.h b/platform/linux-generic/include/odp/api/hints.h
similarity index 91%
rename from platform/linux-generic/include/odp/hints.h
rename to platform/linux-generic/include/odp/api/hints.h
index 002cfa8..19ad21f 100644
--- a/platform/linux-generic/include/odp/hints.h
+++ b/platform/linux-generic/include/odp/api/hints.h
@@ -25,7 +25,7 @@ extern "C" {
  * @}
  */
 
-#include <odp/api/hints.h>
+#include <odp/api/ref/hints.h>
 
 #ifdef __cplusplus
 }
diff --git a/platform/linux-generic/include/odp/init.h b/platform/linux-generic/include/odp/api/init.h
similarity index 83%
rename from platform/linux-generic/include/odp/init.h
rename to platform/linux-generic/include/odp/api/init.h
index 3233e36..9c84e15 100644
--- a/platform/linux-generic/include/odp/init.h
+++ b/platform/linux-generic/include/odp/api/init.h
@@ -17,7 +17,7 @@
 extern "C" {
 #endif
 
-#include <odp/plat/init_types.h>
+#include <odp/api/plat/init_types.h>
 
 /** @ingroup odp_initialization
  *  @{
@@ -27,7 +27,7 @@ extern "C" {
  * @}
  */
 
-#include <odp/api/init.h>
+#include <odp/api/ref/init.h>
 
 #ifdef __cplusplus
 }
diff --git a/platform/linux-generic/include/odp/packet.h b/platform/linux-generic/include/odp/api/packet.h
similarity index 56%
rename from platform/linux-generic/include/odp/packet.h
rename to platform/linux-generic/include/odp/api/packet.h
index a59988b..49c8601 100644
--- a/platform/linux-generic/include/odp/packet.h
+++ b/platform/linux-generic/include/odp/api/packet.h
@@ -17,12 +17,12 @@
 extern "C" {
 #endif
 
-#include <odp/std_types.h>
-#include <odp/plat/event_types.h>
-#include <odp/plat/packet_io_types.h>
-#include <odp/plat/packet_types.h>
-#include <odp/plat/buffer_types.h>
-#include <odp/plat/pool_types.h>
+#include <odp/api/std_types.h>
+#include <odp/api/plat/event_types.h>
+#include <odp/api/plat/packet_io_types.h>
+#include <odp/api/plat/packet_types.h>
+#include <odp/api/plat/buffer_types.h>
+#include <odp/api/plat/pool_types.h>
 
 /** @ingroup odp_packet
  *  @{
@@ -32,7 +32,7 @@ extern "C" {
  * @}
  */
 
-#include <odp/api/packet.h>
+#include <odp/api/ref/packet.h>
 
 #ifdef __cplusplus
 }
diff --git a/platform/linux-generic/include/odp/packet_flags.h b/platform/linux-generic/include/odp/api/packet_flags.h
similarity index 90%
rename from platform/linux-generic/include/odp/packet_flags.h
rename to platform/linux-generic/include/odp/api/packet_flags.h
index 5b9c3ca..9d17c6f 100644
--- a/platform/linux-generic/include/odp/packet_flags.h
+++ b/platform/linux-generic/include/odp/api/packet_flags.h
@@ -25,7 +25,7 @@ extern "C" {
  * @}
  */
 
-#include <odp/api/packet_flags.h>
+#include <odp/api/ref/packet_flags.h>
 
 #ifdef __cplusplus
 }
diff --git a/platform/linux-generic/include/odp/packet_io.h b/platform/linux-generic/include/odp/api/packet_io.h
similarity index 56%
rename from platform/linux-generic/include/odp/packet_io.h
rename to platform/linux-generic/include/odp/api/packet_io.h
index 1d690f5..8a473c5 100644
--- a/platform/linux-generic/include/odp/packet_io.h
+++ b/platform/linux-generic/include/odp/api/packet_io.h
@@ -17,12 +17,12 @@
 extern "C" {
 #endif
 
-#include <odp/std_types.h>
-#include <odp/plat/pool_types.h>
-#include <odp/plat/classification_types.h>
-#include <odp/plat/packet_types.h>
-#include <odp/plat/packet_io_types.h>
-#include <odp/plat/queue_types.h>
+#include <odp/api/std_types.h>
+#include <odp/api/plat/pool_types.h>
+#include <odp/api/plat/classification_types.h>
+#include <odp/api/plat/packet_types.h>
+#include <odp/api/plat/packet_io_types.h>
+#include <odp/api/plat/queue_types.h>
 
 /** @ingroup odp_packet_io
  *  @{
@@ -32,7 +32,7 @@ extern "C" {
  * @}
  */
 
-#include <odp/api/packet_io.h>
+#include <odp/api/ref/packet_io.h>
 
 #ifdef __cplusplus
 }
diff --git a/platform/linux-generic/include/odp/plat/atomic_types.h b/platform/linux-generic/include/odp/api/plat/atomic_types.h
similarity index 98%
rename from platform/linux-generic/include/odp/plat/atomic_types.h
rename to platform/linux-generic/include/odp/api/plat/atomic_types.h
index ea8fc2a..9d08a64 100644
--- a/platform/linux-generic/include/odp/plat/atomic_types.h
+++ b/platform/linux-generic/include/odp/api/plat/atomic_types.h
@@ -18,7 +18,7 @@
 extern "C" {
 #endif
 
-#include <odp/align.h>
+#include <odp/api/align.h>
 
 /**
  * @internal
diff --git a/platform/linux-generic/include/odp/plat/barrier_types.h b/platform/linux-generic/include/odp/api/plat/barrier_types.h
similarity index 89%
rename from platform/linux-generic/include/odp/plat/barrier_types.h
rename to platform/linux-generic/include/odp/api/plat/barrier_types.h
index b8e1d97..440275e 100644
--- a/platform/linux-generic/include/odp/plat/barrier_types.h
+++ b/platform/linux-generic/include/odp/api/plat/barrier_types.h
@@ -18,8 +18,8 @@
 extern "C" {
 #endif
 
-#include <odp/std_types.h>
-#include <odp/atomic.h>
+#include <odp/api/std_types.h>
+#include <odp/api/atomic.h>
 
 /**
  * @internal
diff --git a/platform/linux-generic/include/odp/plat/buffer_types.h b/platform/linux-generic/include/odp/api/plat/buffer_types.h
similarity index 91%
rename from platform/linux-generic/include/odp/plat/buffer_types.h
rename to platform/linux-generic/include/odp/api/plat/buffer_types.h
index 3203020..344121b 100644
--- a/platform/linux-generic/include/odp/plat/buffer_types.h
+++ b/platform/linux-generic/include/odp/api/plat/buffer_types.h
@@ -17,8 +17,8 @@
 extern "C" {
 #endif
 
-#include <odp/std_types.h>
-#include <odp/plat/strong_types.h>
+#include <odp/api/std_types.h>
+#include <odp/api/plat/strong_types.h>
 
 /** ODP buffer */
 typedef ODP_HANDLE_T(odp_buffer_t);
diff --git a/platform/linux-generic/include/odp/plat/byteorder_types.h b/platform/linux-generic/include/odp/api/plat/byteorder_types.h
similarity index 100%
rename from platform/linux-generic/include/odp/plat/byteorder_types.h
rename to platform/linux-generic/include/odp/api/plat/byteorder_types.h
diff --git a/platform/linux-generic/include/odp/plat/classification_types.h b/platform/linux-generic/include/odp/api/plat/classification_types.h
similarity index 96%
rename from platform/linux-generic/include/odp/plat/classification_types.h
rename to platform/linux-generic/include/odp/api/plat/classification_types.h
index 767da7d..14a6ef7 100644
--- a/platform/linux-generic/include/odp/plat/classification_types.h
+++ b/platform/linux-generic/include/odp/api/plat/classification_types.h
@@ -17,7 +17,7 @@
 extern "C" {
 #endif
 
-#include <odp/plat/strong_types.h>
+#include <odp/api/plat/strong_types.h>
 
 /** @addtogroup odp_classification
  *  @{
diff --git a/platform/linux-generic/include/odp/plat/cpumask_types.h b/platform/linux-generic/include/odp/api/plat/cpumask_types.h
similarity index 95%
rename from platform/linux-generic/include/odp/plat/cpumask_types.h
rename to platform/linux-generic/include/odp/api/plat/cpumask_types.h
index 8923f36..c59f407 100644
--- a/platform/linux-generic/include/odp/plat/cpumask_types.h
+++ b/platform/linux-generic/include/odp/api/plat/cpumask_types.h
@@ -22,7 +22,7 @@ extern "C" {
  *  @{
  */
 
-#include <odp/std_types.h>
+#include <odp/api/std_types.h>
 
 #define ODP_CPUMASK_SIZE 1024
 
diff --git a/platform/linux-generic/include/odp/plat/crypto_types.h b/platform/linux-generic/include/odp/api/plat/crypto_types.h
similarity index 100%
rename from platform/linux-generic/include/odp/plat/crypto_types.h
rename to platform/linux-generic/include/odp/api/plat/crypto_types.h
diff --git a/platform/linux-generic/include/odp/plat/event_types.h b/platform/linux-generic/include/odp/api/plat/event_types.h
similarity index 91%
rename from platform/linux-generic/include/odp/plat/event_types.h
rename to platform/linux-generic/include/odp/api/plat/event_types.h
index 06b15cd..9ca0fb8 100644
--- a/platform/linux-generic/include/odp/plat/event_types.h
+++ b/platform/linux-generic/include/odp/api/plat/event_types.h
@@ -18,8 +18,8 @@
 extern "C" {
 #endif
 
-#include <odp/std_types.h>
-#include <odp/plat/strong_types.h>
+#include <odp/api/std_types.h>
+#include <odp/api/plat/strong_types.h>
 
 /** @defgroup odp_event ODP EVENT
  *  Operations on an event.
diff --git a/platform/linux-generic/include/odp/plat/init_types.h b/platform/linux-generic/include/odp/api/plat/init_types.h
similarity index 100%
rename from platform/linux-generic/include/odp/plat/init_types.h
rename to platform/linux-generic/include/odp/api/plat/init_types.h
diff --git a/platform/linux-generic/include/odp/plat/packet_io_types.h b/platform/linux-generic/include/odp/api/plat/packet_io_types.h
similarity index 93%
rename from platform/linux-generic/include/odp/plat/packet_io_types.h
rename to platform/linux-generic/include/odp/api/plat/packet_io_types.h
index 934d7de..cd43083 100644
--- a/platform/linux-generic/include/odp/plat/packet_io_types.h
+++ b/platform/linux-generic/include/odp/api/plat/packet_io_types.h
@@ -18,8 +18,8 @@
 extern "C" {
 #endif
 
-#include <odp/std_types.h>
-#include <odp/plat/strong_types.h>
+#include <odp/api/std_types.h>
+#include <odp/api/plat/strong_types.h>
 
 /** @addtogroup odp_packet_io
  *  Operations on a packet.
diff --git a/platform/linux-generic/include/odp/plat/packet_types.h b/platform/linux-generic/include/odp/api/plat/packet_types.h
similarity index 94%
rename from platform/linux-generic/include/odp/plat/packet_types.h
rename to platform/linux-generic/include/odp/api/plat/packet_types.h
index c3be633..b5345ed 100644
--- a/platform/linux-generic/include/odp/plat/packet_types.h
+++ b/platform/linux-generic/include/odp/api/plat/packet_types.h
@@ -18,8 +18,8 @@
 extern "C" {
 #endif
 
-#include <odp/std_types.h>
-#include <odp/plat/strong_types.h>
+#include <odp/api/std_types.h>
+#include <odp/api/plat/strong_types.h>
 
 /** @addtogroup odp_packet ODP PACKET
  *  Operations on a packet.
diff --git a/platform/linux-generic/include/odp/plat/pool_types.h b/platform/linux-generic/include/odp/api/plat/pool_types.h
similarity index 87%
rename from platform/linux-generic/include/odp/plat/pool_types.h
rename to platform/linux-generic/include/odp/api/plat/pool_types.h
index 4b32c29..1ca8f02 100644
--- a/platform/linux-generic/include/odp/plat/pool_types.h
+++ b/platform/linux-generic/include/odp/api/plat/pool_types.h
@@ -13,9 +13,9 @@
 #ifndef ODP_POOL_TYPES_H_
 #define ODP_POOL_TYPES_H_
 
-#include <odp/std_types.h>
-#include <odp/plat/strong_types.h>
-#include <odp/plat/event_types.h>
+#include <odp/api/std_types.h>
+#include <odp/api/plat/strong_types.h>
+#include <odp/api/plat/event_types.h>
 
 #ifdef __cplusplus
 extern "C" {
diff --git a/platform/linux-generic/include/odp/plat/queue_types.h b/platform/linux-generic/include/odp/api/plat/queue_types.h
similarity index 93%
rename from platform/linux-generic/include/odp/plat/queue_types.h
rename to platform/linux-generic/include/odp/api/plat/queue_types.h
index ace56fa..ecd4328 100644
--- a/platform/linux-generic/include/odp/plat/queue_types.h
+++ b/platform/linux-generic/include/odp/api/plat/queue_types.h
@@ -17,8 +17,8 @@
 extern "C" {
 #endif
 
-#include <odp/std_types.h>
-#include <odp/plat/strong_types.h>
+#include <odp/api/std_types.h>
+#include <odp/api/plat/strong_types.h>
 
 /** @addtogroup odp_queue ODP QUEUE
  *  Macros and operation on a queue.
diff --git a/platform/linux-generic/include/odp/plat/rwlock_recursive_types.h b/platform/linux-generic/include/odp/api/plat/rwlock_recursive_types.h
similarity index 88%
rename from platform/linux-generic/include/odp/plat/rwlock_recursive_types.h
rename to platform/linux-generic/include/odp/api/plat/rwlock_recursive_types.h
index 474751c..36f9204 100644
--- a/platform/linux-generic/include/odp/plat/rwlock_recursive_types.h
+++ b/platform/linux-generic/include/odp/api/plat/rwlock_recursive_types.h
@@ -17,9 +17,9 @@
 extern "C" {
 #endif
 
-#include <odp/rwlock.h>
-#include <odp/std_types.h>
-#include <odp/thread.h>
+#include <odp/api/rwlock.h>
+#include <odp/api/std_types.h>
+#include <odp/api/thread.h>
 
 /** @internal */
 struct odp_rwlock_recursive_s {
diff --git a/platform/linux-generic/include/odp/plat/rwlock_types.h b/platform/linux-generic/include/odp/api/plat/rwlock_types.h
similarity index 94%
rename from platform/linux-generic/include/odp/plat/rwlock_types.h
rename to platform/linux-generic/include/odp/api/plat/rwlock_types.h
index 35d65de..f7dc044 100644
--- a/platform/linux-generic/include/odp/plat/rwlock_types.h
+++ b/platform/linux-generic/include/odp/api/plat/rwlock_types.h
@@ -18,7 +18,7 @@
 extern "C" {
 #endif
 
-#include <odp/atomic.h>
+#include <odp/api/atomic.h>
 
 /** @internal */
 struct odp_rwlock_s {
diff --git a/platform/linux-generic/include/odp/plat/schedule_types.h b/platform/linux-generic/include/odp/api/plat/schedule_types.h
similarity index 100%
rename from platform/linux-generic/include/odp/plat/schedule_types.h
rename to platform/linux-generic/include/odp/api/plat/schedule_types.h
diff --git a/platform/linux-generic/include/odp/plat/shared_memory_types.h b/platform/linux-generic/include/odp/api/plat/shared_memory_types.h
similarity index 90%
rename from platform/linux-generic/include/odp/plat/shared_memory_types.h
rename to platform/linux-generic/include/odp/api/plat/shared_memory_types.h
index 4be7356..4d8bbcc 100644
--- a/platform/linux-generic/include/odp/plat/shared_memory_types.h
+++ b/platform/linux-generic/include/odp/api/plat/shared_memory_types.h
@@ -18,8 +18,8 @@
 extern "C" {
 #endif
 
-#include <odp/std_types.h>
-#include <odp/plat/strong_types.h>
+#include <odp/api/std_types.h>
+#include <odp/api/plat/strong_types.h>
 
 /** @addtogroup odp_shared_memory ODP SHARED MEMORY
  *  Operations on shared memory.
diff --git a/platform/linux-generic/include/odp/plat/spinlock_recursive_types.h b/platform/linux-generic/include/odp/api/plat/spinlock_recursive_types.h
similarity index 90%
rename from platform/linux-generic/include/odp/plat/spinlock_recursive_types.h
rename to platform/linux-generic/include/odp/api/plat/spinlock_recursive_types.h
index 2809277..c5a1adf 100644
--- a/platform/linux-generic/include/odp/plat/spinlock_recursive_types.h
+++ b/platform/linux-generic/include/odp/api/plat/spinlock_recursive_types.h
@@ -17,8 +17,8 @@
 extern "C" {
 #endif
 
-#include <odp/spinlock.h>
-#include <odp/std_types.h>
+#include <odp/api/spinlock.h>
+#include <odp/api/std_types.h>
 
 /** @internal */
 struct odp_spinlock_recursive_s {
diff --git a/platform/linux-generic/include/odp/plat/spinlock_types.h b/platform/linux-generic/include/odp/api/plat/spinlock_types.h
similarity index 93%
rename from platform/linux-generic/include/odp/plat/spinlock_types.h
rename to platform/linux-generic/include/odp/api/plat/spinlock_types.h
index 3e0231d..f38ece6 100644
--- a/platform/linux-generic/include/odp/plat/spinlock_types.h
+++ b/platform/linux-generic/include/odp/api/plat/spinlock_types.h
@@ -18,7 +18,7 @@
 extern "C" {
 #endif
 
-#include <odp/std_types.h>
+#include <odp/api/std_types.h>
 
 /** @internal */
 struct odp_spinlock_s {
diff --git a/platform/linux-generic/include/odp/plat/strong_types.h b/platform/linux-generic/include/odp/api/plat/strong_types.h
similarity index 100%
rename from platform/linux-generic/include/odp/plat/strong_types.h
rename to platform/linux-generic/include/odp/api/plat/strong_types.h
diff --git a/platform/linux-generic/include/odp/plat/thread_types.h b/platform/linux-generic/include/odp/api/plat/thread_types.h
similarity index 100%
rename from platform/linux-generic/include/odp/plat/thread_types.h
rename to platform/linux-generic/include/odp/api/plat/thread_types.h
diff --git a/platform/linux-generic/include/odp/plat/thrmask_types.h b/platform/linux-generic/include/odp/api/plat/thrmask_types.h
similarity index 95%
rename from platform/linux-generic/include/odp/plat/thrmask_types.h
rename to platform/linux-generic/include/odp/api/plat/thrmask_types.h
index 8b3c2fb..5d93890 100644
--- a/platform/linux-generic/include/odp/plat/thrmask_types.h
+++ b/platform/linux-generic/include/odp/api/plat/thrmask_types.h
@@ -21,7 +21,7 @@ extern "C" {
  *  @{
  */
 
-#include <odp/cpumask.h>
+#include <odp/api/cpumask.h>
 
 /**
  * Minimum size of output buffer for odp_thrmask_to_str()
diff --git a/platform/linux-generic/include/odp/plat/ticketlock_types.h b/platform/linux-generic/include/odp/api/plat/ticketlock_types.h
similarity index 94%
rename from platform/linux-generic/include/odp/plat/ticketlock_types.h
rename to platform/linux-generic/include/odp/api/plat/ticketlock_types.h
index 73f9705..81d479d 100644
--- a/platform/linux-generic/include/odp/plat/ticketlock_types.h
+++ b/platform/linux-generic/include/odp/api/plat/ticketlock_types.h
@@ -18,7 +18,7 @@
 extern "C" {
 #endif
 
-#include <odp/atomic.h>
+#include <odp/api/atomic.h>
 
 /** @internal */
 struct odp_ticketlock_s {
diff --git a/platform/linux-generic/include/odp/plat/time_types.h b/platform/linux-generic/include/odp/api/plat/time_types.h
similarity index 100%
rename from platform/linux-generic/include/odp/plat/time_types.h
rename to platform/linux-generic/include/odp/api/plat/time_types.h
diff --git a/platform/linux-generic/include/odp/plat/timer_types.h b/platform/linux-generic/include/odp/api/plat/timer_types.h
similarity index 100%
rename from platform/linux-generic/include/odp/plat/timer_types.h
rename to platform/linux-generic/include/odp/api/plat/timer_types.h
diff --git a/platform/linux-generic/include/odp/plat/traffic_mngr_types.h b/platform/linux-generic/include/odp/api/plat/traffic_mngr_types.h
similarity index 98%
rename from platform/linux-generic/include/odp/plat/traffic_mngr_types.h
rename to platform/linux-generic/include/odp/api/plat/traffic_mngr_types.h
index 52df64b..2969fef 100644
--- a/platform/linux-generic/include/odp/plat/traffic_mngr_types.h
+++ b/platform/linux-generic/include/odp/api/plat/traffic_mngr_types.h
@@ -17,8 +17,8 @@
 extern "C" {
 #endif
 
-#include <odp/std_types.h>
-#include <odp/plat/strong_types.h>
+#include <odp/api/std_types.h>
+#include <odp/api/plat/strong_types.h>
 
 /** @addtogroup odp_traffic_mngr
  *  Macros and operations on a TM system.
diff --git a/platform/linux-generic/include/odp/plat/version_types.h b/platform/linux-generic/include/odp/api/plat/version_types.h
similarity index 100%
rename from platform/linux-generic/include/odp/plat/version_types.h
rename to platform/linux-generic/include/odp/api/plat/version_types.h
diff --git a/platform/linux-generic/include/odp/pool.h b/platform/linux-generic/include/odp/api/pool.h
similarity index 68%
rename from platform/linux-generic/include/odp/pool.h
rename to platform/linux-generic/include/odp/api/pool.h
index 02bc3b7..2495f6c 100644
--- a/platform/linux-generic/include/odp/pool.h
+++ b/platform/linux-generic/include/odp/api/pool.h
@@ -25,10 +25,10 @@ extern "C" {
  * @}
  */
 
-#include <odp/plat/pool_types.h>
-#include <odp/plat/shared_memory_types.h>
-#include <odp/plat/event_types.h>
-#include <odp/api/pool.h>
+#include <odp/api/plat/pool_types.h>
+#include <odp/api/plat/shared_memory_types.h>
+#include <odp/api/plat/event_types.h>
+#include <odp/api/ref/pool.h>
 
 #ifdef __cplusplus
 }
diff --git a/platform/linux-generic/include/odp/queue.h b/platform/linux-generic/include/odp/api/queue.h
similarity index 60%
rename from platform/linux-generic/include/odp/queue.h
rename to platform/linux-generic/include/odp/api/queue.h
index 3aa2150..ea8f364 100644
--- a/platform/linux-generic/include/odp/queue.h
+++ b/platform/linux-generic/include/odp/api/queue.h
@@ -17,11 +17,11 @@
 extern "C" {
 #endif
 
-#include <odp/std_types.h>
-#include <odp/plat/event_types.h>
-#include <odp/plat/queue_types.h>
-#include <odp/plat/buffer_types.h>
-#include <odp/plat/pool_types.h>
+#include <odp/api/std_types.h>
+#include <odp/api/plat/event_types.h>
+#include <odp/api/plat/queue_types.h>
+#include <odp/api/plat/buffer_types.h>
+#include <odp/api/plat/pool_types.h>
 
 /** @ingroup odp_queue
  *  @{
@@ -31,7 +31,7 @@ extern "C" {
  * @}
  */
 
-#include <odp/api/queue.h>
+#include <odp/api/ref/queue.h>
 
 #ifdef __cplusplus
 }
diff --git a/platform/linux-generic/include/odp/random.h b/platform/linux-generic/include/odp/api/random.h
similarity index 91%
rename from platform/linux-generic/include/odp/random.h
rename to platform/linux-generic/include/odp/api/random.h
index e9b4bd0..85904c7 100644
--- a/platform/linux-generic/include/odp/random.h
+++ b/platform/linux-generic/include/odp/api/random.h
@@ -25,7 +25,7 @@ extern "C" {
  * @}
  */
 
-#include <odp/api/random.h>
+#include <odp/api/ref/random.h>
 
 #ifdef __cplusplus
 }
diff --git a/platform/linux-generic/include/odp/rwlock.h b/platform/linux-generic/include/odp/api/rwlock.h
similarity index 81%
rename from platform/linux-generic/include/odp/rwlock.h
rename to platform/linux-generic/include/odp/api/rwlock.h
index f9d8f5f..71d069e 100644
--- a/platform/linux-generic/include/odp/rwlock.h
+++ b/platform/linux-generic/include/odp/api/rwlock.h
@@ -17,9 +17,9 @@
 extern "C" {
 #endif
 
-#include <odp/plat/rwlock_types.h>
+#include <odp/api/plat/rwlock_types.h>
 
-#include <odp/api/rwlock.h>
+#include <odp/api/ref/rwlock.h>
 
 #ifdef __cplusplus
 }
diff --git a/platform/linux-generic/include/odp/rwlock_recursive.h b/platform/linux-generic/include/odp/api/rwlock_recursive.h
similarity index 77%
rename from platform/linux-generic/include/odp/rwlock_recursive.h
rename to platform/linux-generic/include/odp/api/rwlock_recursive.h
index e9dadc8..21edfd8 100644
--- a/platform/linux-generic/include/odp/rwlock_recursive.h
+++ b/platform/linux-generic/include/odp/api/rwlock_recursive.h
@@ -17,9 +17,9 @@
 extern "C" {
 #endif
 
-#include <odp/plat/rwlock_recursive_types.h>
+#include <odp/api/plat/rwlock_recursive_types.h>
 
-#include <odp/api/rwlock_recursive.h>
+#include <odp/api/ref/rwlock_recursive.h>
 
 #ifdef __cplusplus
 }
diff --git a/platform/linux-generic/include/odp/schedule.h b/platform/linux-generic/include/odp/api/schedule.h
similarity index 82%
rename from platform/linux-generic/include/odp/schedule.h
rename to platform/linux-generic/include/odp/api/schedule.h
index cb4ac2f..4f30e21 100644
--- a/platform/linux-generic/include/odp/schedule.h
+++ b/platform/linux-generic/include/odp/api/schedule.h
@@ -17,7 +17,7 @@
 extern "C" {
 #endif
 
-#include <odp/plat/schedule_types.h>
+#include <odp/api/plat/schedule_types.h>
 
 /** @ingroup odp_scheduler
  *  @{
@@ -27,7 +27,7 @@ extern "C" {
  * @}
  */
 
-#include <odp/api/schedule.h>
+#include <odp/api/ref/schedule.h>
 
 #ifdef __cplusplus
 }
diff --git a/platform/linux-generic/include/odp/schedule_types.h b/platform/linux-generic/include/odp/api/schedule_types.h
similarity index 78%
rename from platform/linux-generic/include/odp/schedule_types.h
rename to platform/linux-generic/include/odp/api/schedule_types.h
index 784ed85..91871c8 100644
--- a/platform/linux-generic/include/odp/schedule_types.h
+++ b/platform/linux-generic/include/odp/api/schedule_types.h
@@ -17,9 +17,9 @@
 extern "C" {
 #endif
 
-#include <odp/plat/schedule_types.h>
+#include <odp/api/plat/schedule_types.h>
 
-#include <odp/api/schedule_types.h>
+#include <odp/api/ref/schedule_types.h>
 
 #ifdef __cplusplus
 }
diff --git a/platform/linux-generic/include/odp/shared_memory.h b/platform/linux-generic/include/odp/api/shared_memory.h
similarity index 81%
rename from platform/linux-generic/include/odp/shared_memory.h
rename to platform/linux-generic/include/odp/api/shared_memory.h
index 957be56..3084249 100644
--- a/platform/linux-generic/include/odp/shared_memory.h
+++ b/platform/linux-generic/include/odp/api/shared_memory.h
@@ -17,7 +17,7 @@
 extern "C" {
 #endif
 
-#include <odp/plat/shared_memory_types.h>
+#include <odp/api/plat/shared_memory_types.h>
 
 /** @ingroup odp_shared_memory
  *  @{
@@ -27,7 +27,7 @@ extern "C" {
  * @}
  */
 
-#include <odp/api/shared_memory.h>
+#include <odp/api/ref/shared_memory.h>
 
 #ifdef __cplusplus
 }
diff --git a/platform/linux-generic/include/odp/spinlock.h b/platform/linux-generic/include/odp/api/spinlock.h
similarity index 79%
rename from platform/linux-generic/include/odp/spinlock.h
rename to platform/linux-generic/include/odp/api/spinlock.h
index 046fcfa..cb34bdc 100644
--- a/platform/linux-generic/include/odp/spinlock.h
+++ b/platform/linux-generic/include/odp/api/spinlock.h
@@ -17,9 +17,9 @@
 extern "C" {
 #endif
 
-#include <odp/plat/spinlock_types.h>
+#include <odp/api/plat/spinlock_types.h>
 
-#include <odp/api/spinlock.h>
+#include <odp/api/ref/spinlock.h>
 
 #ifdef __cplusplus
 }
diff --git a/platform/linux-generic/include/odp/spinlock_recursive.h b/platform/linux-generic/include/odp/api/spinlock_recursive.h
similarity index 77%
rename from platform/linux-generic/include/odp/spinlock_recursive.h
rename to platform/linux-generic/include/odp/api/spinlock_recursive.h
index e8a9968..205c990 100644
--- a/platform/linux-generic/include/odp/spinlock_recursive.h
+++ b/platform/linux-generic/include/odp/api/spinlock_recursive.h
@@ -17,9 +17,9 @@
 extern "C" {
 #endif
 
-#include <odp/plat/spinlock_recursive_types.h>
+#include <odp/api/plat/spinlock_recursive_types.h>
 
-#include <odp/api/spinlock_recursive.h>
+#include <odp/api/ref/spinlock_recursive.h>
 
 #ifdef __cplusplus
 }
diff --git a/platform/linux-generic/include/odp/std_clib.h b/platform/linux-generic/include/odp/api/std_clib.h
similarity index 92%
rename from platform/linux-generic/include/odp/std_clib.h
rename to platform/linux-generic/include/odp/api/std_clib.h
index c939c48..86f6328 100644
--- a/platform/linux-generic/include/odp/std_clib.h
+++ b/platform/linux-generic/include/odp/api/std_clib.h
@@ -11,7 +11,7 @@
 extern "C" {
 #endif
 
-#include <odp/api/std_types.h>
+#include <odp/api/ref/std_types.h>
 
 static inline void *odp_memcpy(void *dst, const void *src, size_t num)
 {
diff --git a/platform/linux-generic/include/odp/std_types.h b/platform/linux-generic/include/odp/api/std_types.h
similarity index 93%
rename from platform/linux-generic/include/odp/std_types.h
rename to platform/linux-generic/include/odp/api/std_types.h
index 1bd22ff..40822d5 100644
--- a/platform/linux-generic/include/odp/std_types.h
+++ b/platform/linux-generic/include/odp/api/std_types.h
@@ -33,7 +33,7 @@ typedef int odp_bool_t;
  * @}
  */
 
-#include <odp/api/std_types.h>
+#include <odp/api/ref/std_types.h>
 
 #ifdef __cplusplus
 }
diff --git a/platform/linux-generic/include/odp/sync.h b/platform/linux-generic/include/odp/api/sync.h
similarity index 95%
rename from platform/linux-generic/include/odp/sync.h
rename to platform/linux-generic/include/odp/api/sync.h
index b2995e1..87041bb 100644
--- a/platform/linux-generic/include/odp/sync.h
+++ b/platform/linux-generic/include/odp/api/sync.h
@@ -40,7 +40,7 @@ static inline void odp_mb_full(void)
  * @}
  */
 
-#include <odp/api/sync.h>
+#include <odp/api/ref/sync.h>
 
 #ifdef __cplusplus
 }
diff --git a/platform/linux-generic/include/odp/system_info.h b/platform/linux-generic/include/odp/api/system_info.h
similarity index 81%
rename from platform/linux-generic/include/odp/system_info.h
rename to platform/linux-generic/include/odp/api/system_info.h
index d692606..0dfd4c1 100644
--- a/platform/linux-generic/include/odp/system_info.h
+++ b/platform/linux-generic/include/odp/api/system_info.h
@@ -17,10 +17,10 @@
 extern "C" {
 #endif
 
-#include <odp/std_types.h>
+#include <odp/api/std_types.h>
 
 
-#include <odp/api/system_info.h>
+#include <odp/api/ref/system_info.h>
 
 #ifdef __cplusplus
 }
diff --git a/platform/linux-generic/include/odp/thread.h b/platform/linux-generic/include/odp/api/thread.h
similarity index 80%
rename from platform/linux-generic/include/odp/thread.h
rename to platform/linux-generic/include/odp/api/thread.h
index 522ca25..967ddfd 100644
--- a/platform/linux-generic/include/odp/thread.h
+++ b/platform/linux-generic/include/odp/api/thread.h
@@ -17,9 +17,9 @@
 extern "C" {
 #endif
 
-#include <odp/plat/thread_types.h>
+#include <odp/api/plat/thread_types.h>
 
-#include <odp/api/thread.h>
+#include <odp/api/ref/thread.h>
 
 #ifdef __cplusplus
 }
diff --git a/platform/linux-generic/include/odp/thrmask.h b/platform/linux-generic/include/odp/api/thrmask.h
similarity index 82%
rename from platform/linux-generic/include/odp/thrmask.h
rename to platform/linux-generic/include/odp/api/thrmask.h
index 0e98ece..36899e2 100644
--- a/platform/linux-generic/include/odp/thrmask.h
+++ b/platform/linux-generic/include/odp/api/thrmask.h
@@ -17,7 +17,7 @@
 extern "C" {
 #endif
 
-#include <odp/plat/thrmask_types.h>
+#include <odp/api/plat/thrmask_types.h>
 
 /** @ingroup odp_thread
  *  @{
@@ -27,7 +27,7 @@ extern "C" {
  * @}
  */
 
-#include <odp/api/thrmask.h>
+#include <odp/api/ref/thrmask.h>
 
 #ifdef __cplusplus
 }
diff --git a/platform/linux-generic/include/odp/ticketlock.h b/platform/linux-generic/include/odp/api/ticketlock.h
similarity index 78%
rename from platform/linux-generic/include/odp/ticketlock.h
rename to platform/linux-generic/include/odp/api/ticketlock.h
index d349151..f9f0c67 100644
--- a/platform/linux-generic/include/odp/ticketlock.h
+++ b/platform/linux-generic/include/odp/api/ticketlock.h
@@ -17,9 +17,9 @@
 extern "C" {
 #endif
 
-#include <odp/plat/ticketlock_types.h>
+#include <odp/api/plat/ticketlock_types.h>
 
-#include <odp/api/ticketlock.h>
+#include <odp/api/ref/ticketlock.h>
 
 #ifdef __cplusplus
 }
diff --git a/platform/linux-generic/include/odp/time.h b/platform/linux-generic/include/odp/api/time.h
similarity index 74%
rename from platform/linux-generic/include/odp/time.h
rename to platform/linux-generic/include/odp/api/time.h
index 44e0d0d..d2f25d0 100644
--- a/platform/linux-generic/include/odp/time.h
+++ b/platform/linux-generic/include/odp/api/time.h
@@ -17,12 +17,12 @@
 extern "C" {
 #endif
 
-#include <odp/std_types.h>
+#include <odp/api/std_types.h>
 
 
 
-#include <odp/plat/time_types.h>
-#include <odp/api/time.h>
+#include <odp/api/plat/time_types.h>
+#include <odp/api/ref/time.h>
 
 #ifdef __cplusplus
 }
diff --git a/platform/linux-generic/include/odp/timer.h b/platform/linux-generic/include/odp/api/timer.h
similarity index 62%
rename from platform/linux-generic/include/odp/timer.h
rename to platform/linux-generic/include/odp/api/timer.h
index af9b140..8593362 100644
--- a/platform/linux-generic/include/odp/timer.h
+++ b/platform/linux-generic/include/odp/api/timer.h
@@ -18,11 +18,11 @@ extern "C" {
 #endif
 
 #include <stdlib.h>
-#include <odp/std_types.h>
-#include <odp/plat/event_types.h>
-#include <odp/plat/pool_types.h>
-#include <odp/plat/queue_types.h>
-#include <odp/plat/timer_types.h>
+#include <odp/api/std_types.h>
+#include <odp/api/plat/event_types.h>
+#include <odp/api/plat/pool_types.h>
+#include <odp/api/plat/queue_types.h>
+#include <odp/api/plat/timer_types.h>
 
 /** @ingroup odp_timer
  *  @{
@@ -32,7 +32,7 @@ extern "C" {
  * @}
  */
 
-#include <odp/api/timer.h>
+#include <odp/api/ref/timer.h>
 
 #ifdef __cplusplus
 }
diff --git a/platform/linux-generic/include/odp/traffic_mngr.h b/platform/linux-generic/include/odp/api/traffic_mngr.h
similarity index 81%
rename from platform/linux-generic/include/odp/traffic_mngr.h
rename to platform/linux-generic/include/odp/api/traffic_mngr.h
index 3aa6267..6e5d22b 100644
--- a/platform/linux-generic/include/odp/traffic_mngr.h
+++ b/platform/linux-generic/include/odp/api/traffic_mngr.h
@@ -25,8 +25,8 @@ extern "C" {
  * @}
  */
 
-#include <odp/plat/traffic_mngr_types.h>
-#include <odp/api/traffic_mngr.h>
+#include <odp/api/plat/traffic_mngr_types.h>
+#include <odp/api/ref/traffic_mngr.h>
 
 #ifdef __cplusplus
 }
diff --git a/platform/linux-generic/include/odp/version.h b/platform/linux-generic/include/odp/api/version.h
similarity index 79%
rename from platform/linux-generic/include/odp/version.h
rename to platform/linux-generic/include/odp/api/version.h
index c98cb30..d3541ac 100644
--- a/platform/linux-generic/include/odp/version.h
+++ b/platform/linux-generic/include/odp/api/version.h
@@ -17,8 +17,8 @@
 extern "C" {
 #endif
 
-#include <odp/plat/version_types.h>
-#include <odp/api/version.h>
+#include <odp/api/plat/version_types.h>
+#include <odp/api/ref/version.h>
 
 #ifdef __cplusplus
 }
diff --git a/platform/linux-generic/include/odp_align_internal.h b/platform/linux-generic/include/odp_align_internal.h
index 4ca5ceb..9ccde53 100644
--- a/platform/linux-generic/include/odp_align_internal.h
+++ b/platform/linux-generic/include/odp_align_internal.h
@@ -17,7 +17,7 @@
 extern "C" {
 #endif
 
-#include <odp/align.h>
+#include <odp/api/align.h>
 
 /** @addtogroup odp_compiler_optim
  *  @{
diff --git a/platform/linux-generic/include/odp_atomic_internal.h b/platform/linux-generic/include/odp_atomic_internal.h
index ce62368..9858d30 100644
--- a/platform/linux-generic/include/odp_atomic_internal.h
+++ b/platform/linux-generic/include/odp_atomic_internal.h
@@ -16,10 +16,10 @@
 #ifndef ODP_ATOMIC_INTERNAL_H_
 #define ODP_ATOMIC_INTERNAL_H_
 
-#include <odp/std_types.h>
-#include <odp/align.h>
-#include <odp/hints.h>
-#include <odp/atomic.h>
+#include <odp/api/std_types.h>
+#include <odp/api/align.h>
+#include <odp/api/hints.h>
+#include <odp/api/atomic.h>
 
 #ifdef __cplusplus
 extern "C" {
diff --git a/platform/linux-generic/include/odp_buffer_internal.h b/platform/linux-generic/include/odp_buffer_internal.h
index abdd320..7a06b00 100644
--- a/platform/linux-generic/include/odp_buffer_internal.h
+++ b/platform/linux-generic/include/odp_buffer_internal.h
@@ -18,17 +18,17 @@
 extern "C" {
 #endif
 
-#include <odp/std_types.h>
-#include <odp/atomic.h>
-#include <odp/pool.h>
-#include <odp/buffer.h>
-#include <odp/debug.h>
-#include <odp/align.h>
+#include <odp/api/std_types.h>
+#include <odp/api/atomic.h>
+#include <odp/api/pool.h>
+#include <odp/api/buffer.h>
+#include <odp/api/debug.h>
+#include <odp/api/align.h>
 #include <odp_align_internal.h>
-#include <odp/config.h>
-#include <odp/byteorder.h>
-#include <odp/thread.h>
-#include <odp/event.h>
+#include <odp/api/config.h>
+#include <odp/api/byteorder.h>
+#include <odp/api/thread.h>
+#include <odp/api/event.h>
 #include <odp_forward_typedefs_internal.h>
 
 #define ODP_BITSIZE(x) \
diff --git a/platform/linux-generic/include/odp_classification_datamodel.h b/platform/linux-generic/include/odp_classification_datamodel.h
index 27d8a52..9a7ce60 100644
--- a/platform/linux-generic/include/odp_classification_datamodel.h
+++ b/platform/linux-generic/include/odp_classification_datamodel.h
@@ -19,8 +19,8 @@
 extern "C" {
 #endif
 
-#include <odp/spinlock.h>
-#include <odp/classification.h>
+#include <odp/api/spinlock.h>
+#include <odp/api/classification.h>
 #include <odp_pool_internal.h>
 #include <odp_packet_internal.h>
 #include <odp_packet_io_internal.h>
diff --git a/platform/linux-generic/include/odp_classification_inlines.h b/platform/linux-generic/include/odp_classification_inlines.h
index 96cf77e..8bd010d 100644
--- a/platform/linux-generic/include/odp_classification_inlines.h
+++ b/platform/linux-generic/include/odp_classification_inlines.h
@@ -18,7 +18,7 @@
 extern "C" {
 #endif
 
-#include <odp/debug.h>
+#include <odp/api/debug.h>
 #include <odp/helper/eth.h>
 #include <odp/helper/ip.h>
 #include <odp/helper/ipsec.h>
diff --git a/platform/linux-generic/include/odp_classification_internal.h b/platform/linux-generic/include/odp_classification_internal.h
index 1e8f291..7a3861a 100644
--- a/platform/linux-generic/include/odp_classification_internal.h
+++ b/platform/linux-generic/include/odp_classification_internal.h
@@ -19,10 +19,10 @@
 extern "C" {
 #endif
 
-#include <odp/classification.h>
-#include <odp/queue.h>
+#include <odp/api/classification.h>
+#include <odp/api/queue.h>
 #include <odp_packet_internal.h>
-#include <odp/packet_io.h>
+#include <odp/api/packet_io.h>
 #include <odp_packet_io_internal.h>
 #include <odp_classification_datamodel.h>
 
diff --git a/platform/linux-generic/include/odp_debug_internal.h b/platform/linux-generic/include/odp_debug_internal.h
index 24608e1..02ae87a 100644
--- a/platform/linux-generic/include/odp_debug_internal.h
+++ b/platform/linux-generic/include/odp_debug_internal.h
@@ -18,7 +18,7 @@
 
 #include <stdio.h>
 #include <stdlib.h>
-#include <odp/debug.h>
+#include <odp/api/debug.h>
 #include <odp_internal.h>
 #ifdef __cplusplus
 extern "C" {
diff --git a/platform/linux-generic/include/odp_internal.h b/platform/linux-generic/include/odp_internal.h
index cdbed7d..92b6ffe 100644
--- a/platform/linux-generic/include/odp_internal.h
+++ b/platform/linux-generic/include/odp_internal.h
@@ -18,8 +18,8 @@
 extern "C" {
 #endif
 
-#include <odp/init.h>
-#include <odp/thread.h>
+#include <odp/api/init.h>
+#include <odp/api/thread.h>
 
 extern __thread int __odp_errno;
 
diff --git a/platform/linux-generic/include/odp_packet_internal.h b/platform/linux-generic/include/odp_packet_internal.h
index 1340f8a..976cbc0 100644
--- a/platform/linux-generic/include/odp_packet_internal.h
+++ b/platform/linux-generic/include/odp_packet_internal.h
@@ -18,14 +18,14 @@
 extern "C" {
 #endif
 
-#include <odp/align.h>
-#include <odp/debug.h>
+#include <odp/api/align.h>
+#include <odp/api/debug.h>
 #include <odp_buffer_internal.h>
 #include <odp_pool_internal.h>
 #include <odp_buffer_inlines.h>
-#include <odp/packet.h>
-#include <odp/packet_io.h>
-#include <odp/crypto.h>
+#include <odp/api/packet.h>
+#include <odp/api/packet_io.h>
+#include <odp/api/crypto.h>
 #include <odp_crypto_internal.h>
 
 #define PACKET_JUMBO_LEN	(9 * 1024)
diff --git a/platform/linux-generic/include/odp_packet_io_internal.h b/platform/linux-generic/include/odp_packet_io_internal.h
index 3ff5255..96d76de 100644
--- a/platform/linux-generic/include/odp_packet_io_internal.h
+++ b/platform/linux-generic/include/odp_packet_io_internal.h
@@ -18,14 +18,14 @@
 extern "C" {
 #endif
 
-#include <odp/spinlock.h>
-#include <odp/ticketlock.h>
+#include <odp/api/spinlock.h>
+#include <odp/api/ticketlock.h>
 #include <odp_classification_datamodel.h>
 #include <odp_align_internal.h>
 #include <odp_debug_internal.h>
 
-#include <odp/config.h>
-#include <odp/hints.h>
+#include <odp/api/config.h>
+#include <odp/api/hints.h>
 #include <net/if.h>
 
 #define PKTIO_MAX_QUEUES 64
diff --git a/platform/linux-generic/include/odp_packet_netmap.h b/platform/linux-generic/include/odp_packet_netmap.h
index 26a8da1..fbec15c 100644
--- a/platform/linux-generic/include/odp_packet_netmap.h
+++ b/platform/linux-generic/include/odp_packet_netmap.h
@@ -7,11 +7,11 @@
 #ifndef ODP_PACKET_NETMAP_H
 #define ODP_PACKET_NETMAP_H
 
-#include <odp/align.h>
-#include <odp/debug.h>
-#include <odp/packet_io.h>
-#include <odp/pool.h>
-#include <odp/ticketlock.h>
+#include <odp/api/align.h>
+#include <odp/api/debug.h>
+#include <odp/api/packet_io.h>
+#include <odp/api/pool.h>
+#include <odp/api/ticketlock.h>
 #include <odp_align_internal.h>
 
 #include <linux/if_ether.h>
diff --git a/platform/linux-generic/include/odp_packet_socket.h b/platform/linux-generic/include/odp_packet_socket.h
index ec202db..9314696 100644
--- a/platform/linux-generic/include/odp_packet_socket.h
+++ b/platform/linux-generic/include/odp_packet_socket.h
@@ -13,12 +13,12 @@
 #include <sys/socket.h>
 #include <string.h>
 
-#include <odp/align.h>
-#include <odp/buffer.h>
-#include <odp/debug.h>
-#include <odp/pool.h>
-#include <odp/packet.h>
-#include <odp/packet_io.h>
+#include <odp/api/align.h>
+#include <odp/api/buffer.h>
+#include <odp/api/debug.h>
+#include <odp/api/pool.h>
+#include <odp/api/packet.h>
+#include <odp/api/packet_io.h>
 
 #include <linux/version.h>
 
diff --git a/platform/linux-generic/include/odp_packet_tap.h b/platform/linux-generic/include/odp_packet_tap.h
index 7877586..a90bfbc 100644
--- a/platform/linux-generic/include/odp_packet_tap.h
+++ b/platform/linux-generic/include/odp_packet_tap.h
@@ -7,7 +7,7 @@
 #ifndef ODP_PACKET_TAP_H_
 #define ODP_PACKET_TAP_H_
 
-#include <odp/pool.h>
+#include <odp/api/pool.h>
 
 typedef struct {
 	int fd;				/**< file descriptor for tap interface*/
diff --git a/platform/linux-generic/include/odp_pool_internal.h b/platform/linux-generic/include/odp_pool_internal.h
index ae4836c..e3d86ac 100644
--- a/platform/linux-generic/include/odp_pool_internal.h
+++ b/platform/linux-generic/include/odp_pool_internal.h
@@ -18,18 +18,18 @@
 extern "C" {
 #endif
 
-#include <odp/std_types.h>
-#include <odp/align.h>
+#include <odp/api/std_types.h>
+#include <odp/api/align.h>
 #include <odp_align_internal.h>
-#include <odp/pool.h>
+#include <odp/api/pool.h>
 #include <odp_buffer_internal.h>
-#include <odp/hints.h>
-#include <odp/config.h>
-#include <odp/debug.h>
-#include <odp/shared_memory.h>
-#include <odp/atomic.h>
+#include <odp/api/hints.h>
+#include <odp/api/config.h>
+#include <odp/api/debug.h>
+#include <odp/api/shared_memory.h>
+#include <odp/api/atomic.h>
 #include <odp_atomic_internal.h>
-#include <odp/thread.h>
+#include <odp/api/thread.h>
 #include <string.h>
 
 /**
@@ -68,12 +68,12 @@ typedef struct local_cache_t {
 #define POOL_USE_TICKETLOCK
 
 #ifdef POOL_USE_TICKETLOCK
-#include <odp/ticketlock.h>
+#include <odp/api/ticketlock.h>
 #define POOL_LOCK(a)      odp_ticketlock_lock(a)
 #define POOL_UNLOCK(a)    odp_ticketlock_unlock(a)
 #define POOL_LOCK_INIT(a) odp_ticketlock_init(a)
 #else
-#include <odp/spinlock.h>
+#include <odp/api/spinlock.h>
 #define POOL_LOCK(a)      odp_spinlock_lock(a)
 #define POOL_UNLOCK(a)    odp_spinlock_unlock(a)
 #define POOL_LOCK_INIT(a) odp_spinlock_init(a)
diff --git a/platform/linux-generic/include/odp_queue_internal.h b/platform/linux-generic/include/odp_queue_internal.h
index de612eb..912427f 100644
--- a/platform/linux-generic/include/odp_queue_internal.h
+++ b/platform/linux-generic/include/odp_queue_internal.h
@@ -18,21 +18,21 @@
 extern "C" {
 #endif
 
-#include <odp/queue.h>
+#include <odp/api/queue.h>
 #include <odp_forward_typedefs_internal.h>
 #include <odp_buffer_internal.h>
 #include <odp_align_internal.h>
-#include <odp/packet_io.h>
-#include <odp/align.h>
-#include <odp/hints.h>
+#include <odp/api/packet_io.h>
+#include <odp/api/align.h>
+#include <odp/api/hints.h>
 
 
 #define USE_TICKETLOCK
 
 #ifdef USE_TICKETLOCK
-#include <odp/ticketlock.h>
+#include <odp/api/ticketlock.h>
 #else
-#include <odp/spinlock.h>
+#include <odp/api/spinlock.h>
 #endif
 
 #define QUEUE_MULTI_MAX 8
diff --git a/platform/linux-generic/include/odp_schedule_internal.h b/platform/linux-generic/include/odp_schedule_internal.h
index 0868394..fe8ff7b 100644
--- a/platform/linux-generic/include/odp_schedule_internal.h
+++ b/platform/linux-generic/include/odp_schedule_internal.h
@@ -14,10 +14,10 @@ extern "C" {
 #endif
 
 
-#include <odp/buffer.h>
+#include <odp/api/buffer.h>
 #include <odp_buffer_internal.h>
-#include <odp/queue.h>
-#include <odp/packet_io.h>
+#include <odp/api/queue.h>
+#include <odp/api/packet_io.h>
 #include <odp_queue_internal.h>
 
 int schedule_queue_init(queue_entry_t *qe);
diff --git a/platform/linux-generic/include/odp_timer_internal.h b/platform/linux-generic/include/odp_timer_internal.h
index 8b0e93d..b1cd73f 100644
--- a/platform/linux-generic/include/odp_timer_internal.h
+++ b/platform/linux-generic/include/odp_timer_internal.h
@@ -14,11 +14,11 @@
 #ifndef ODP_TIMER_INTERNAL_H_
 #define ODP_TIMER_INTERNAL_H_
 
-#include <odp/align.h>
-#include <odp/debug.h>
+#include <odp/api/align.h>
+#include <odp/api/debug.h>
 #include <odp_buffer_internal.h>
 #include <odp_pool_internal.h>
-#include <odp/timer.h>
+#include <odp/api/timer.h>
 
 /**
  * Internal Timeout header
diff --git a/platform/linux-generic/include/odp_traffic_mngr_internal.h b/platform/linux-generic/include/odp_traffic_mngr_internal.h
index e48e213..e09c60a 100644
--- a/platform/linux-generic/include/odp_traffic_mngr_internal.h
+++ b/platform/linux-generic/include/odp_traffic_mngr_internal.h
@@ -19,8 +19,8 @@
 extern "C" {
 #endif
 
-#include <odp/traffic_mngr.h>
-#include <odp/packet_io.h>
+#include <odp/api/traffic_mngr.h>
+#include <odp/api/packet_io.h>
 #include <odp_name_table_internal.h>
 #include <odp_timer_wheel_internal.h>
 #include <odp_pkt_queue_internal.h>
diff --git a/platform/linux-generic/odp_atomic.c b/platform/linux-generic/odp_atomic.c
index 996d09a..6c39b2a 100644
--- a/platform/linux-generic/odp_atomic.c
+++ b/platform/linux-generic/odp_atomic.c
@@ -4,7 +4,7 @@
  * SPDX-License-Identifier:     BSD-3-Clause
  */
 
-#include <odp/atomic.h>
+#include <odp/api/atomic.h>
 
 int odp_atomic_lock_free_u64(odp_atomic_op_t *atomic_op)
 {
diff --git a/platform/linux-generic/odp_barrier.c b/platform/linux-generic/odp_barrier.c
index 0bfc0f0..414a3a0 100644
--- a/platform/linux-generic/odp_barrier.c
+++ b/platform/linux-generic/odp_barrier.c
@@ -4,9 +4,9 @@
  * SPDX-License-Identifier:     BSD-3-Clause
  */
 
-#include <odp/barrier.h>
-#include <odp/sync.h>
-#include <odp/cpu.h>
+#include <odp/api/barrier.h>
+#include <odp/api/sync.h>
+#include <odp/api/cpu.h>
 #include <odp_atomic_internal.h>
 
 void odp_barrier_init(odp_barrier_t *barrier, int count)
diff --git a/platform/linux-generic/odp_buffer.c b/platform/linux-generic/odp_buffer.c
index ec2bbba..69f913d 100644
--- a/platform/linux-generic/odp_buffer.c
+++ b/platform/linux-generic/odp_buffer.c
@@ -4,7 +4,7 @@
  * SPDX-License-Identifier:     BSD-3-Clause
  */
 
-#include <odp/buffer.h>
+#include <odp/api/buffer.h>
 #include <odp_pool_internal.h>
 #include <odp_buffer_internal.h>
 #include <odp_buffer_inlines.h>
diff --git a/platform/linux-generic/odp_classification.c b/platform/linux-generic/odp_classification.c
index da195ad..87dbdcd 100644
--- a/platform/linux-generic/odp_classification.c
+++ b/platform/linux-generic/odp_classification.c
@@ -4,23 +4,23 @@
  * SPDX-License-Identifier:     BSD-3-Clause
  */
 
-#include <odp/classification.h>
-#include <odp/align.h>
-#include <odp/queue.h>
-#include <odp/debug.h>
+#include <odp/api/classification.h>
+#include <odp/api/align.h>
+#include <odp/api/queue.h>
+#include <odp/api/debug.h>
 #include <odp_internal.h>
 #include <odp_debug_internal.h>
 #include <odp_packet_internal.h>
-#include <odp/packet_io.h>
+#include <odp/api/packet_io.h>
 #include <odp_packet_io_internal.h>
 #include <odp_classification_datamodel.h>
 #include <odp_classification_inlines.h>
 #include <odp_classification_internal.h>
 #include <odp_pool_internal.h>
-#include <odp/shared_memory.h>
+#include <odp/api/shared_memory.h>
 #include <odp/helper/eth.h>
 #include <string.h>
-#include <odp/spinlock.h>
+#include <odp/api/spinlock.h>
 
 #define LOCK(a)      odp_spinlock_lock(a)
 #define UNLOCK(a)    odp_spinlock_unlock(a)
diff --git a/platform/linux-generic/odp_cpu.c b/platform/linux-generic/odp_cpu.c
index 4bd6a9a..282defd 100644
--- a/platform/linux-generic/odp_cpu.c
+++ b/platform/linux-generic/odp_cpu.c
@@ -4,8 +4,8 @@
  * SPDX-License-Identifier:     BSD-3-Clause
  */
 
-#include <odp/cpu.h>
-#include <odp/hints.h>
+#include <odp/api/cpu.h>
+#include <odp/api/hints.h>
 
 uint64_t odp_cpu_cycles_diff(uint64_t c2, uint64_t c1)
 {
diff --git a/platform/linux-generic/odp_cpumask.c b/platform/linux-generic/odp_cpumask.c
index c5c1260..4249f1d 100644
--- a/platform/linux-generic/odp_cpumask.c
+++ b/platform/linux-generic/odp_cpumask.c
@@ -9,7 +9,7 @@
 #include <sched.h>
 #include <pthread.h>
 
-#include <odp/cpumask.h>
+#include <odp/api/cpumask.h>
 #include <odp_debug_internal.h>
 
 #include <stdlib.h>
diff --git a/platform/linux-generic/odp_cpumask_task.c b/platform/linux-generic/odp_cpumask_task.c
index c5093e0..dbedff2 100644
--- a/platform/linux-generic/odp_cpumask_task.c
+++ b/platform/linux-generic/odp_cpumask_task.c
@@ -9,7 +9,7 @@
 #include <sched.h>
 #include <pthread.h>
 
-#include <odp/cpumask.h>
+#include <odp/api/cpumask.h>
 #include <odp_debug_internal.h>
 
 int odp_cpumask_default_worker(odp_cpumask_t *mask, int num)
diff --git a/platform/linux-generic/odp_crypto.c b/platform/linux-generic/odp_crypto.c
index 65e8503..08b479d 100644
--- a/platform/linux-generic/odp_crypto.c
+++ b/platform/linux-generic/odp_crypto.c
@@ -4,18 +4,18 @@
  * SPDX-License-Identifier:     BSD-3-Clause
  */
 
-#include <odp/crypto.h>
+#include <odp/api/crypto.h>
 #include <odp_internal.h>
-#include <odp/atomic.h>
-#include <odp/spinlock.h>
-#include <odp/sync.h>
-#include <odp/debug.h>
-#include <odp/align.h>
-#include <odp/shared_memory.h>
+#include <odp/api/atomic.h>
+#include <odp/api/spinlock.h>
+#include <odp/api/sync.h>
+#include <odp/api/debug.h>
+#include <odp/api/align.h>
+#include <odp/api/shared_memory.h>
 #include <odp_crypto_internal.h>
 #include <odp_debug_internal.h>
-#include <odp/hints.h>
-#include <odp/random.h>
+#include <odp/api/hints.h>
+#include <odp/api/random.h>
 #include <odp_packet_internal.h>
 
 #include <string.h>
diff --git a/platform/linux-generic/odp_errno.c b/platform/linux-generic/odp_errno.c
index 1a76d43..408a4b9 100644
--- a/platform/linux-generic/odp_errno.c
+++ b/platform/linux-generic/odp_errno.c
@@ -4,7 +4,7 @@
  * SPDX-License-Identifier:	BSD-3-Clause
  */
 
-#include <odp/errno.h>
+#include <odp/api/errno.h>
 #include <odp_internal.h>
 #include <string.h>
 #include <stdio.h>
diff --git a/platform/linux-generic/odp_event.c b/platform/linux-generic/odp_event.c
index 30dde56..cc3fb0a 100644
--- a/platform/linux-generic/odp_event.c
+++ b/platform/linux-generic/odp_event.c
@@ -4,12 +4,12 @@
  * SPDX-License-Identifier:     BSD-3-Clause
  */
 
-#include <odp/event.h>
-#include <odp/buffer.h>
-#include <odp/crypto.h>
-#include <odp/packet.h>
-#include <odp/timer.h>
-#include <odp/pool.h>
+#include <odp/api/event.h>
+#include <odp/api/buffer.h>
+#include <odp/api/crypto.h>
+#include <odp/api/packet.h>
+#include <odp/api/timer.h>
+#include <odp/api/pool.h>
 #include <odp_buffer_internal.h>
 #include <odp_buffer_inlines.h>
 #include <odp_debug_internal.h>
diff --git a/platform/linux-generic/odp_hash.c b/platform/linux-generic/odp_hash.c
index 6bee4ef..0e09282 100644
--- a/platform/linux-generic/odp_hash.c
+++ b/platform/linux-generic/odp_hash.c
@@ -37,8 +37,8 @@
  *   OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  */
 
-#include <odp/hash.h>
-#include <odp/std_types.h>
+#include <odp/api/hash.h>
+#include <odp/api/std_types.h>
 
 static const uint32_t crc32c_tables[8][256] = {{
 	0x00000000, 0xF26B8303, 0xE13B70F7, 0x1350F3F4, 0xC79A971F, 0x35F1141C,
diff --git a/platform/linux-generic/odp_impl.c b/platform/linux-generic/odp_impl.c
index 46d0e40..b1109ef 100644
--- a/platform/linux-generic/odp_impl.c
+++ b/platform/linux-generic/odp_impl.c
@@ -18,7 +18,7 @@
 extern "C" {
 #endif
 
-#include <odp/version.h>
+#include <odp/api/version.h>
 
 #define ODP_VERSION_IMPL 0
 #define ODP_VERSION_IMPL_STR \
diff --git a/platform/linux-generic/odp_init.c b/platform/linux-generic/odp_init.c
index 6ad3320..a8c91a5 100644
--- a/platform/linux-generic/odp_init.c
+++ b/platform/linux-generic/odp_init.c
@@ -4,9 +4,9 @@
  * SPDX-License-Identifier:     BSD-3-Clause
  */
 
-#include <odp/init.h>
+#include <odp/api/init.h>
 #include <odp_internal.h>
-#include <odp/debug.h>
+#include <odp/api/debug.h>
 #include <odp_debug_internal.h>
 
 struct odp_global_data_s odp_global_data;
diff --git a/platform/linux-generic/odp_packet.c b/platform/linux-generic/odp_packet.c
index db85b5e..2a4f312 100644
--- a/platform/linux-generic/odp_packet.c
+++ b/platform/linux-generic/odp_packet.c
@@ -4,11 +4,11 @@
  * SPDX-License-Identifier:     BSD-3-Clause
  */
 
-#include <odp/packet.h>
+#include <odp/api/packet.h>
 #include <odp_packet_internal.h>
 #include <odp_debug_internal.h>
-#include <odp/hints.h>
-#include <odp/byteorder.h>
+#include <odp/api/hints.h>
+#include <odp/api/byteorder.h>
 
 #include <odp/helper/eth.h>
 #include <odp/helper/ip.h>
diff --git a/platform/linux-generic/odp_packet_flags.c b/platform/linux-generic/odp_packet_flags.c
index ae9a9ed..63ce2dd 100644
--- a/platform/linux-generic/odp_packet_flags.c
+++ b/platform/linux-generic/odp_packet_flags.c
@@ -4,7 +4,7 @@
  * SPDX-License-Identifier:     BSD-3-Clause
  */
 
-#include <odp/packet_flags.h>
+#include <odp/api/packet_flags.h>
 #include <odp_packet_internal.h>
 
 #define retflag(p, x) do {			       \
diff --git a/platform/linux-generic/odp_packet_io.c b/platform/linux-generic/odp_packet_io.c
index 2443f9c..b844b9a 100644
--- a/platform/linux-generic/odp_packet_io.c
+++ b/platform/linux-generic/odp_packet_io.c
@@ -4,17 +4,17 @@
  * SPDX-License-Identifier:     BSD-3-Clause
  */
 
-#include <odp/packet_io.h>
+#include <odp/api/packet_io.h>
 #include <odp_packet_io_internal.h>
 #include <odp_packet_io_queue.h>
-#include <odp/packet.h>
+#include <odp/api/packet.h>
 #include <odp_packet_internal.h>
 #include <odp_internal.h>
-#include <odp/spinlock.h>
-#include <odp/ticketlock.h>
-#include <odp/shared_memory.h>
+#include <odp/api/spinlock.h>
+#include <odp/api/ticketlock.h>
+#include <odp/api/shared_memory.h>
 #include <odp_packet_socket.h>
-#include <odp/config.h>
+#include <odp/api/config.h>
 #include <odp_queue_internal.h>
 #include <odp_schedule_internal.h>
 #include <odp_classification_internal.h>
diff --git a/platform/linux-generic/odp_pool.c b/platform/linux-generic/odp_pool.c
index a3fcac3..52c72b5 100644
--- a/platform/linux-generic/odp_pool.c
+++ b/platform/linux-generic/odp_pool.c
@@ -4,20 +4,20 @@
  * SPDX-License-Identifier:     BSD-3-Clause
  */
 
-#include <odp/std_types.h>
-#include <odp/pool.h>
+#include <odp/api/std_types.h>
+#include <odp/api/pool.h>
 #include <odp_buffer_internal.h>
 #include <odp_pool_internal.h>
 #include <odp_buffer_inlines.h>
 #include <odp_packet_internal.h>
 #include <odp_timer_internal.h>
 #include <odp_align_internal.h>
-#include <odp/shared_memory.h>
-#include <odp/align.h>
+#include <odp/api/shared_memory.h>
+#include <odp/api/align.h>
 #include <odp_internal.h>
-#include <odp/config.h>
-#include <odp/hints.h>
-#include <odp/thread.h>
+#include <odp/api/config.h>
+#include <odp/api/hints.h>
+#include <odp/api/thread.h>
 #include <odp_debug_internal.h>
 #include <odp_atomic_internal.h>
 
diff --git a/platform/linux-generic/odp_queue.c b/platform/linux-generic/odp_queue.c
index 17a26e8..0a0e9ca 100644
--- a/platform/linux-generic/odp_queue.c
+++ b/platform/linux-generic/odp_queue.c
@@ -4,35 +4,35 @@
  * SPDX-License-Identifier:     BSD-3-Clause
  */
 
-#include <odp/queue.h>
+#include <odp/api/queue.h>
 #include <odp_queue_internal.h>
-#include <odp/std_types.h>
-#include <odp/align.h>
-#include <odp/buffer.h>
+#include <odp/api/std_types.h>
+#include <odp/api/align.h>
+#include <odp/api/buffer.h>
 #include <odp_buffer_internal.h>
 #include <odp_pool_internal.h>
 #include <odp_buffer_inlines.h>
 #include <odp_internal.h>
-#include <odp/shared_memory.h>
-#include <odp/schedule.h>
+#include <odp/api/shared_memory.h>
+#include <odp/api/schedule.h>
 #include <odp_schedule_internal.h>
-#include <odp/config.h>
+#include <odp/api/config.h>
 #include <odp_packet_io_internal.h>
 #include <odp_packet_io_queue.h>
 #include <odp_debug_internal.h>
-#include <odp/hints.h>
-#include <odp/sync.h>
-#include <odp/traffic_mngr.h>
+#include <odp/api/hints.h>
+#include <odp/api/sync.h>
+#include <odp/api/traffic_mngr.h>
 #include <odp_traffic_mngr_internal.h>
 
 #ifdef USE_TICKETLOCK
-#include <odp/ticketlock.h>
+#include <odp/api/ticketlock.h>
 #define LOCK(a)      odp_ticketlock_lock(a)
 #define UNLOCK(a)    odp_ticketlock_unlock(a)
 #define LOCK_INIT(a) odp_ticketlock_init(a)
 #define LOCK_TRY(a)  odp_ticketlock_trylock(a)
 #else
-#include <odp/spinlock.h>
+#include <odp/api/spinlock.h>
 #define LOCK(a)      odp_spinlock_lock(a)
 #define UNLOCK(a)    odp_spinlock_unlock(a)
 #define LOCK_INIT(a) odp_spinlock_init(a)
diff --git a/platform/linux-generic/odp_rwlock.c b/platform/linux-generic/odp_rwlock.c
index 0b8bb46..da2be2a 100644
--- a/platform/linux-generic/odp_rwlock.c
+++ b/platform/linux-generic/odp_rwlock.c
@@ -5,10 +5,10 @@
  */
 
 #include <stdbool.h>
-#include <odp/atomic.h>
+#include <odp/api/atomic.h>
 #include <odp_atomic_internal.h>
-#include <odp/rwlock.h>
-#include <odp/cpu.h>
+#include <odp/api/rwlock.h>
+#include <odp/api/cpu.h>
 
 void odp_rwlock_init(odp_rwlock_t *rwlock)
 {
diff --git a/platform/linux-generic/odp_rwlock_recursive.c b/platform/linux-generic/odp_rwlock_recursive.c
index e3a383c..2338b53 100644
--- a/platform/linux-generic/odp_rwlock_recursive.c
+++ b/platform/linux-generic/odp_rwlock_recursive.c
@@ -4,8 +4,8 @@
  * SPDX-License-Identifier:     BSD-3-Clause
  */
 
-#include <odp/rwlock_recursive.h>
-#include <odp/thread.h>
+#include <odp/api/rwlock_recursive.h>
+#include <odp/api/thread.h>
 #include <string.h>
 
 #define NO_OWNER (-1)
diff --git a/platform/linux-generic/odp_schedule.c b/platform/linux-generic/odp_schedule.c
index 1aa60c2..db2623a 100644
--- a/platform/linux-generic/odp_schedule.c
+++ b/platform/linux-generic/odp_schedule.c
@@ -5,21 +5,21 @@
  */
 
 #include <string.h>
-#include <odp/schedule.h>
+#include <odp/api/schedule.h>
 #include <odp_schedule_internal.h>
-#include <odp/align.h>
-#include <odp/queue.h>
-#include <odp/shared_memory.h>
-#include <odp/buffer.h>
-#include <odp/pool.h>
+#include <odp/api/align.h>
+#include <odp/api/queue.h>
+#include <odp/api/shared_memory.h>
+#include <odp/api/buffer.h>
+#include <odp/api/pool.h>
 #include <odp_internal.h>
-#include <odp/config.h>
+#include <odp/api/config.h>
 #include <odp_debug_internal.h>
-#include <odp/thread.h>
-#include <odp/time.h>
-#include <odp/spinlock.h>
-#include <odp/hints.h>
-#include <odp/cpu.h>
+#include <odp/api/thread.h>
+#include <odp/api/time.h>
+#include <odp/api/spinlock.h>
+#include <odp/api/hints.h>
+#include <odp/api/cpu.h>
 
 #include <odp_queue_internal.h>
 #include <odp_packet_io_internal.h>
diff --git a/platform/linux-generic/odp_shared_memory.c b/platform/linux-generic/odp_shared_memory.c
index 7847cc9..8dddffc 100644
--- a/platform/linux-generic/odp_shared_memory.c
+++ b/platform/linux-generic/odp_shared_memory.c
@@ -6,15 +6,15 @@
 
 #include <odp_posix_extensions.h>
 
-#include <odp/shared_memory.h>
+#include <odp/api/shared_memory.h>
 #include <odp_internal.h>
-#include <odp/spinlock.h>
-#include <odp/align.h>
-#include <odp/system_info.h>
-#include <odp/debug.h>
+#include <odp/api/spinlock.h>
+#include <odp/api/align.h>
+#include <odp/api/system_info.h>
+#include <odp/api/debug.h>
 #include <odp_debug_internal.h>
 #include <odp_align_internal.h>
-#include <odp/config.h>
+#include <odp/api/config.h>
 
 #include <unistd.h>
 #include <sys/mman.h>
diff --git a/platform/linux-generic/odp_spinlock.c b/platform/linux-generic/odp_spinlock.c
index 6a16dc4..6fc138b 100644
--- a/platform/linux-generic/odp_spinlock.c
+++ b/platform/linux-generic/odp_spinlock.c
@@ -4,8 +4,8 @@
  * SPDX-License-Identifier:     BSD-3-Clause
  */
 
-#include <odp/spinlock.h>
-#include <odp/cpu.h>
+#include <odp/api/spinlock.h>
+#include <odp/api/cpu.h>
 #include <odp_atomic_internal.h>
 
 void odp_spinlock_init(odp_spinlock_t *spinlock)
diff --git a/platform/linux-generic/odp_spinlock_recursive.c b/platform/linux-generic/odp_spinlock_recursive.c
index 8ffe6b3..5ed481c 100644
--- a/platform/linux-generic/odp_spinlock_recursive.c
+++ b/platform/linux-generic/odp_spinlock_recursive.c
@@ -4,8 +4,8 @@
  * SPDX-License-Identifier:     BSD-3-Clause
  */
 
-#include <odp/spinlock_recursive.h>
-#include <odp/thread.h>
+#include <odp/api/spinlock_recursive.h>
+#include <odp/api/thread.h>
 
 #define NO_OWNER (-1)
 
diff --git a/platform/linux-generic/odp_system_info.c b/platform/linux-generic/odp_system_info.c
index de28fab..f9ee149 100644
--- a/platform/linux-generic/odp_system_info.c
+++ b/platform/linux-generic/odp_system_info.c
@@ -6,11 +6,11 @@
 
 #include <odp_posix_extensions.h>
 
-#include <odp/system_info.h>
+#include <odp/api/system_info.h>
 #include <odp_internal.h>
 #include <odp_debug_internal.h>
-#include <odp/align.h>
-#include <odp/cpu.h>
+#include <odp/api/align.h>
+#include <odp/api/cpu.h>
 #include <pthread.h>
 #include <sched.h>
 #include <string.h>
diff --git a/platform/linux-generic/odp_thread.c b/platform/linux-generic/odp_thread.c
index 4ac1c37..420e4eb 100644
--- a/platform/linux-generic/odp_thread.c
+++ b/platform/linux-generic/odp_thread.c
@@ -7,15 +7,15 @@
 #include <odp_posix_extensions.h>
 
 #include <sched.h>
-#include <odp/thread.h>
-#include <odp/thrmask.h>
+#include <odp/api/thread.h>
+#include <odp/api/thrmask.h>
 #include <odp_internal.h>
-#include <odp/spinlock.h>
-#include <odp/config.h>
+#include <odp/api/spinlock.h>
+#include <odp/api/config.h>
 #include <odp_debug_internal.h>
-#include <odp/shared_memory.h>
-#include <odp/align.h>
-#include <odp/cpu.h>
+#include <odp/api/shared_memory.h>
+#include <odp/api/align.h>
+#include <odp/api/cpu.h>
 
 #include <string.h>
 #include <stdio.h>
diff --git a/platform/linux-generic/odp_thrmask.c b/platform/linux-generic/odp_thrmask.c
index 4545a82..c176a5c 100644
--- a/platform/linux-generic/odp_thrmask.c
+++ b/platform/linux-generic/odp_thrmask.c
@@ -4,8 +4,8 @@
  * SPDX-License-Identifier:     BSD-3-Clause
  */
 
-#include <odp/thrmask.h>
-#include <odp/cpumask.h>
+#include <odp/api/thrmask.h>
+#include <odp/api/cpumask.h>
 
 void odp_thrmask_from_str(odp_thrmask_t *mask, const char *str)
 {
diff --git a/platform/linux-generic/odp_ticketlock.c b/platform/linux-generic/odp_ticketlock.c
index 6ab2b9a..e090bd3 100644
--- a/platform/linux-generic/odp_ticketlock.c
+++ b/platform/linux-generic/odp_ticketlock.c
@@ -4,11 +4,11 @@
  * SPDX-License-Identifier:     BSD-3-Clause
  */
 
-#include <odp/ticketlock.h>
-#include <odp/atomic.h>
+#include <odp/api/ticketlock.h>
+#include <odp/api/atomic.h>
 #include <odp_atomic_internal.h>
-#include <odp/sync.h>
-#include <odp/cpu.h>
+#include <odp/api/sync.h>
+#include <odp/api/cpu.h>
 
 
 void odp_ticketlock_init(odp_ticketlock_t *ticketlock)
diff --git a/platform/linux-generic/odp_time.c b/platform/linux-generic/odp_time.c
index ca8a955..040f754 100644
--- a/platform/linux-generic/odp_time.c
+++ b/platform/linux-generic/odp_time.c
@@ -7,8 +7,8 @@
 #include <odp_posix_extensions.h>
 
 #include <time.h>
-#include <odp/time.h>
-#include <odp/hints.h>
+#include <odp/api/time.h>
+#include <odp/api/hints.h>
 #include <odp_debug_internal.h>
 
 typedef union {
diff --git a/platform/linux-generic/odp_timer.c b/platform/linux-generic/odp_timer.c
index 1001af8..de505ca 100644
--- a/platform/linux-generic/odp_timer.c
+++ b/platform/linux-generic/odp_timer.c
@@ -27,27 +27,27 @@
 #include <stdlib.h>
 #include <time.h>
 #include <signal.h>
-#include <odp/align.h>
+#include <odp/api/align.h>
 #include <odp_align_internal.h>
-#include <odp/atomic.h>
+#include <odp/api/atomic.h>
 #include <odp_atomic_internal.h>
-#include <odp/buffer.h>
+#include <odp/api/buffer.h>
 #include <odp_buffer_inlines.h>
-#include <odp/cpu.h>
-#include <odp/pool.h>
+#include <odp/api/cpu.h>
+#include <odp/api/pool.h>
 #include <odp_pool_internal.h>
-#include <odp/debug.h>
+#include <odp/api/debug.h>
 #include <odp_debug_internal.h>
-#include <odp/event.h>
-#include <odp/hints.h>
+#include <odp/api/event.h>
+#include <odp/api/hints.h>
 #include <odp_internal.h>
-#include <odp/queue.h>
-#include <odp/shared_memory.h>
-#include <odp/spinlock.h>
-#include <odp/std_types.h>
-#include <odp/sync.h>
-#include <odp/time.h>
-#include <odp/timer.h>
+#include <odp/api/queue.h>
+#include <odp/api/shared_memory.h>
+#include <odp/api/spinlock.h>
+#include <odp/api/std_types.h>
+#include <odp/api/sync.h>
+#include <odp/api/time.h>
+#include <odp/api/timer.h>
 #include <odp_timer_internal.h>
 
 #define TMO_UNUSED   ((uint64_t)0xFFFFFFFFFFFFFFFF)
diff --git a/platform/linux-generic/odp_traffic_mngr.c b/platform/linux-generic/odp_traffic_mngr.c
index 6179568..9c56c9b 100644
--- a/platform/linux-generic/odp_traffic_mngr.c
+++ b/platform/linux-generic/odp_traffic_mngr.c
@@ -14,7 +14,7 @@
 #include <sys/stat.h>
 #include <unistd.h>
 #include <pthread.h>
-#include <odp/std_types.h>
+#include <odp/api/std_types.h>
 #include <odp_traffic_mngr_internal.h>
 
 /* Local vars */
diff --git a/platform/linux-generic/odp_version.c b/platform/linux-generic/odp_version.c
index b5219d4..7b704d0 100644
--- a/platform/linux-generic/odp_version.c
+++ b/platform/linux-generic/odp_version.c
@@ -4,7 +4,7 @@
  * SPDX-License-Identifier:     BSD-3-Clause
  */
 
-#include <odp/version.h>
+#include <odp/api/version.h>
 
 const char *odp_version_api_str(void)
 {
diff --git a/platform/linux-generic/odp_weak.c b/platform/linux-generic/odp_weak.c
index 21fb5ed..0fbf664 100644
--- a/platform/linux-generic/odp_weak.c
+++ b/platform/linux-generic/odp_weak.c
@@ -5,9 +5,9 @@
  */
 
 #include <odp_internal.h>
-#include <odp/debug.h>
+#include <odp/api/debug.h>
 #include <odp_debug_internal.h>
-#include <odp/hints.h>
+#include <odp/api/hints.h>
 
 #include <stdarg.h>
 
diff --git a/platform/linux-generic/pktio/loop.c b/platform/linux-generic/pktio/loop.c
index 3f86104..f677d3c 100644
--- a/platform/linux-generic/pktio/loop.c
+++ b/platform/linux-generic/pktio/loop.c
@@ -10,7 +10,7 @@
 #include <odp_packet_io_internal.h>
 #include <odp_classification_internal.h>
 #include <odp_debug_internal.h>
-#include <odp/hints.h>
+#include <odp/api/hints.h>
 
 #include <odp/helper/eth.h>
 #include <odp/helper/ip.h>
diff --git a/platform/linux-generic/pktio/socket.c b/platform/linux-generic/pktio/socket.c
index 8f48481..527a62f 100644
--- a/platform/linux-generic/pktio/socket.c
+++ b/platform/linux-generic/pktio/socket.c
@@ -41,7 +41,7 @@
 #include <odp_classification_datamodel.h>
 #include <odp_classification_inlines.h>
 #include <odp_classification_internal.h>
-#include <odp/hints.h>
+#include <odp/api/hints.h>
 
 #include <odp/helper/eth.h>
 #include <odp/helper/ip.h>
diff --git a/platform/linux-generic/pktio/socket_mmap.c b/platform/linux-generic/pktio/socket_mmap.c
index 1fc60da..df181d2 100644
--- a/platform/linux-generic/pktio/socket_mmap.c
+++ b/platform/linux-generic/pktio/socket_mmap.c
@@ -30,7 +30,7 @@
 #include <odp_classification_datamodel.h>
 #include <odp_classification_inlines.h>
 #include <odp_classification_internal.h>
-#include <odp/hints.h>
+#include <odp/api/hints.h>
 
 #include <odp/helper/eth.h>
 #include <odp/helper/ip.h>
diff --git a/test/validation/system/system.c b/test/validation/system/system.c
index c72590b..521f9fc 100644
--- a/test/validation/system/system.c
+++ b/test/validation/system/system.c
@@ -6,7 +6,7 @@
 
 #include <ctype.h>
 #include <odp.h>
-#include <odp/cpumask.h>
+#include <odp/api/cpumask.h>
 #include "odp_cunit_common.h"
 #include "test_debug.h"
 #include "system.h"
