diff --git a/include/Makefile.am b/include/Makefile.am
index 0e39a0d8db5f..946b7c07cf73 100644
--- a/include/Makefile.am
+++ b/include/Makefile.am
@@ -5,18 +5,26 @@ include_HEADERS = \
 
 odpapiincludedir= $(includedir)/odp/api/
 odpapiinclude_HEADERS = \
+	odp/api/barrier.h \
+	odp/api/buffer.h \
 	odp/api/cpumask.h \
+	odp/api/event.h \
 	odp/api/init.h \
+	odp/api/ipsec.h \
+	odp/api/pool.h \
+	odp/api/queue.h \
 	odp/api/rwlock.h \
 	odp/api/rwlock_recursive.h \
 	odp/api/schedule.h \
 	odp/api/schedule_types.h \
+	odp/api/shared_memory.h \
 	odp/api/spinlock.h \
 	odp/api/spinlock_recursive.h \
 	odp/api/std_types.h \
 	odp/api/thread.h \
 	odp/api/thrmask.h \
 	odp/api/time.h \
+	odp/api/timer.h \
 	odp/api/traffic_mngr.h \
 	odp/api/version.h
 
diff --git a/platform/linux-generic/include/odp/api/barrier.h b/include/odp/api/barrier.h
similarity index 78%
rename from platform/linux-generic/include/odp/api/barrier.h
rename to include/odp/api/barrier.h
index 98200f87b5ea..7101b4c64948 100644
--- a/platform/linux-generic/include/odp/api/barrier.h
+++ b/include/odp/api/barrier.h
@@ -10,8 +10,8 @@
  * ODP execution barriers
  */
 
-#ifndef ODP_PLAT_BARRIER_H_
-#define ODP_PLAT_BARRIER_H_
+#ifndef ODP_API_BARRIER_H_
+#define ODP_API_BARRIER_H_
 
 #ifdef __cplusplus
 extern "C" {
@@ -19,7 +19,7 @@ extern "C" {
 
 #include <odp/api/std_types.h>
 #include <odp/api/atomic.h>
-#include <odp/api/plat/shared_memory_types.h>
+#include <odp/api/abi/shared_memory.h>
 #include <odp/api/abi/barrier.h>
 
 #include <odp/api/spec/barrier.h>
diff --git a/platform/linux-generic/include/odp/api/buffer.h b/include/odp/api/buffer.h
similarity index 58%
rename from platform/linux-generic/include/odp/api/buffer.h
rename to include/odp/api/buffer.h
index 81dbf1280049..15734ca7102f 100644
--- a/platform/linux-generic/include/odp/api/buffer.h
+++ b/include/odp/api/buffer.h
@@ -10,25 +10,17 @@
  * ODP buffer descriptor
  */
 
-#ifndef ODP_PLAT_BUFFER_H_
-#define ODP_PLAT_BUFFER_H_
+#ifndef ODP_API_BUFFER_H_
+#define ODP_API_BUFFER_H_
 
 #ifdef __cplusplus
 extern "C" {
 #endif
 
 #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
- *  @{
- */
-
-/**
- * @}
- */
+#include <odp/api/abi/event.h>
+#include <odp/api/abi/buffer.h>
+#include <odp/api/abi/pool.h>
 
 #include <odp/api/spec/buffer.h>
 
diff --git a/platform/linux-generic/include/odp/api/event.h b/include/odp/api/event.h
similarity index 65%
rename from platform/linux-generic/include/odp/api/event.h
rename to include/odp/api/event.h
index 55931b625a52..71c64eb9b93e 100644
--- a/platform/linux-generic/include/odp/api/event.h
+++ b/include/odp/api/event.h
@@ -10,22 +10,14 @@
  * ODP event
  */
 
-#ifndef ODP_PLAT_EVENT_H_
-#define ODP_PLAT_EVENT_H_
+#ifndef ODP_API_EVENT_H_
+#define ODP_API_EVENT_H_
 
 #ifdef __cplusplus
 extern "C" {
 #endif
 
-#include <odp/api/plat/event_types.h>
-
-/** @ingroup odp_event
- *  @{
- */
-
-/**
- * @}
- */
+#include <odp/api/abi/event.h>
 
 #include <odp/api/spec/event.h>
 
diff --git a/platform/linux-generic/include/odp/api/ipsec.h b/include/odp/api/ipsec.h
similarity index 67%
rename from platform/linux-generic/include/odp/api/ipsec.h
rename to include/odp/api/ipsec.h
index 44c5d02553f0..cb39750e5d80 100644
--- a/platform/linux-generic/include/odp/api/ipsec.h
+++ b/include/odp/api/ipsec.h
@@ -10,22 +10,14 @@
  * ODP IPSEC API - platform specific header
  */
 
-#ifndef ODP_PLAT_IPSEC_H_
-#define ODP_PLAT_IPSEC_H_
+#ifndef ODP_API_IPSEC_H_
+#define ODP_API_IPSEC_H_
 
 #ifdef __cplusplus
 extern "C" {
 #endif
 
-#include <odp/api/plat/ipsec_types.h>
-
-/** @ingroup odp_ipsec
- *  @{
- */
-
-/**
- * @}
- */
+#include <odp/api/abi/ipsec.h>
 
 #include <odp/api/spec/ipsec.h>
 
diff --git a/platform/linux-generic/include/odp/api/pool.h b/include/odp/api/pool.h
similarity index 53%
rename from platform/linux-generic/include/odp/api/pool.h
rename to include/odp/api/pool.h
index d712b65010c7..845ed5fbe652 100644
--- a/platform/linux-generic/include/odp/api/pool.h
+++ b/include/odp/api/pool.h
@@ -10,24 +10,17 @@
  * ODP pool
  */
 
-#ifndef ODP_PLAT_POOL_H_
-#define ODP_PLAT_POOL_H_
+#ifndef ODP_API_POOL_H_
+#define ODP_API_POOL_H_
 
 #ifdef __cplusplus
 extern "C" {
 #endif
 
-/** @ingroup odp_buffer
- *  @{
- */
-
-/**
- * @}
- */
+#include <odp/api/abi/pool.h>
+#include <odp/api/abi/shared_memory.h>
+#include <odp/api/abi/event.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/spec/pool.h>
 
 #ifdef __cplusplus
diff --git a/platform/linux-generic/include/odp/api/queue.h b/include/odp/api/queue.h
similarity index 58%
rename from platform/linux-generic/include/odp/api/queue.h
rename to include/odp/api/queue.h
index f958ff5140c8..6a67b176130b 100644
--- a/platform/linux-generic/include/odp/api/queue.h
+++ b/include/odp/api/queue.h
@@ -10,18 +10,18 @@
  * ODP queue
  */
 
-#ifndef ODP_PLAT_QUEUE_H_
-#define ODP_PLAT_QUEUE_H_
+#ifndef ODP_API_QUEUE_H_
+#define ODP_API_QUEUE_H_
 
 #ifdef __cplusplus
 extern "C" {
 #endif
 
 #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>
+#include <odp/api/abi/event.h>
+#include <odp/api/abi/queue.h>
+#include <odp/api/abi/buffer.h>
+#include <odp/api/abi/pool.h>
 
 #include <odp/api/spec/queue.h>
 
diff --git a/platform/linux-generic/include/odp/api/shared_memory.h b/include/odp/api/shared_memory.h
similarity index 62%
rename from platform/linux-generic/include/odp/api/shared_memory.h
rename to include/odp/api/shared_memory.h
index affc290e71d9..940126483988 100644
--- a/platform/linux-generic/include/odp/api/shared_memory.h
+++ b/include/odp/api/shared_memory.h
@@ -10,22 +10,14 @@
  * ODP shared memory
  */
 
-#ifndef ODP_PLAT_SHARED_MEMORY_H_
-#define ODP_PLAT_SHARED_MEMORY_H_
+#ifndef ODP_API_SHARED_MEMORY_H_
+#define ODP_API_SHARED_MEMORY_H_
 
 #ifdef __cplusplus
 extern "C" {
 #endif
 
-#include <odp/api/plat/shared_memory_types.h>
-
-/** @ingroup odp_shared_memory
- *  @{
- */
-
-/**
- * @}
- */
+#include <odp/api/abi/shared_memory.h>
 
 #include <odp/api/spec/shared_memory.h>
 
diff --git a/platform/linux-generic/include/odp/api/timer.h b/include/odp/api/timer.h
similarity index 54%
rename from platform/linux-generic/include/odp/api/timer.h
rename to include/odp/api/timer.h
index 1450727f8608..e69a85323c30 100644
--- a/platform/linux-generic/include/odp/api/timer.h
+++ b/include/odp/api/timer.h
@@ -10,26 +10,18 @@
  * ODP timer service
  */
 
-#ifndef ODP_PLAT_TIMER_H_
-#define ODP_PLAT_TIMER_H_
+#ifndef ODP_API_TIMER_H_
+#define ODP_API_TIMER_H_
 
 #ifdef __cplusplus
 extern "C" {
 #endif
 
 #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
- *  @{
- */
-
-/**
- * @}
- */
+#include <odp/api/abi/event.h>
+#include <odp/api/abi/pool.h>
+#include <odp/api/abi/queue.h>
+#include <odp/api/abi/timer.h>
 
 #include <odp/api/spec/timer.h>
 
diff --git a/platform/linux-generic/Makefile.am b/platform/linux-generic/Makefile.am
index 4f47b277de29..1516f8ee7aee 100644
--- a/platform/linux-generic/Makefile.am
+++ b/platform/linux-generic/Makefile.am
@@ -21,64 +21,46 @@ odpapiincludedir= $(includedir)/odp/api
 odpapiinclude_HEADERS = \
 		  include/odp/api/align.h \
 		  include/odp/api/atomic.h \
-		  include/odp/api/barrier.h \
-		  include/odp/api/buffer.h \
 		  include/odp/api/byteorder.h \
+		  include/odp/api/chksum.h \
 		  include/odp/api/classification.h \
 		  include/odp/api/compiler.h \
-		  include/odp/api/chksum.h \
 		  include/odp/api/cpu.h \
 		  include/odp/api/crypto.h \
 		  include/odp/api/debug.h \
 		  include/odp/api/deprecated.h \
 		  include/odp/api/errno.h \
-		  include/odp/api/event.h \
 		  include/odp/api/feature.h \
 		  include/odp/api/hash.h \
 		  include/odp/api/hints.h \
-		  include/odp/api/ipsec.h \
 		  include/odp/api/packet_flags.h \
 		  include/odp/api/packet.h \
 		  include/odp/api/packet_io.h \
 		  include/odp/api/packet_io_stats.h \
-		  include/odp/api/pool.h \
-		  include/odp/api/queue.h \
 		  include/odp/api/random.h \
-		  include/odp/api/shared_memory.h \
 		  include/odp/api/std_clib.h \
 		  include/odp/api/support.h \
 		  include/odp/api/sync.h \
 		  include/odp/api/system_info.h \
-		  include/odp/api/ticketlock.h \
-		  include/odp/api/timer.h
+		  include/odp/api/ticketlock.h
 
 odpapiplatincludedir= $(includedir)/odp/api/plat
 odpapiplatinclude_HEADERS = \
 		  include/odp/api/plat/atomic_inlines.h \
 		  include/odp/api/plat/atomic_types.h \
-		  include/odp/api/plat/buffer_types.h \
 		  include/odp/api/plat/byteorder_inlines.h \
 		  include/odp/api/plat/byteorder_types.h \
-		  include/odp/api/plat/classification_types.h \
-		  include/odp/api/plat/crypto_types.h \
-		  include/odp/api/plat/event_types.h \
-		  include/odp/api/plat/ipsec_types.h \
 		  include/odp/api/plat/packet_flag_inlines.h \
 		  include/odp/api/plat/packet_flag_inlines_api.h \
 		  include/odp/api/plat/packet_inlines.h \
 		  include/odp/api/plat/packet_inlines_api.h \
 		  include/odp/api/plat/packet_types.h \
-		  include/odp/api/plat/packet_io_types.h \
-		  include/odp/api/plat/pool_types.h \
-		  include/odp/api/plat/queue_types.h \
-		  include/odp/api/plat/shared_memory_types.h \
 		  include/odp/api/plat/std_clib_inlines.h \
 		  include/odp/api/plat/strong_types.h \
 		  include/odp/api/plat/sync_inlines.h \
 		  include/odp/api/plat/ticketlock_inlines.h \
 		  include/odp/api/plat/ticketlock_inlines_api.h \
-		  include/odp/api/plat/ticketlock_types.h \
-		  include/odp/api/plat/timer_types.h
+		  include/odp/api/plat/ticketlock_types.h
 
 nodist_odpapiplatinclude_HEADERS = \
 		  include/odp/api/plat/static_inline.h
@@ -87,18 +69,28 @@ if !ODP_ABI_COMPAT
 odpapiabiarchincludedir= $(includedir)/odp/api/abi
 odpapiabiarchinclude_HEADERS = \
 		  include-abi/odp/api/abi/barrier.h \
+		  include-abi/odp/api/abi/buffer.h \
+		  include-abi/odp/api/abi/classification.h \
 		  include-abi/odp/api/abi/cpumask.h \
+		  include-abi/odp/api/abi/crypto.h \
+		  include-abi/odp/api/abi/event.h \
 		  include-abi/odp/api/abi/init.h \
+		  include-abi/odp/api/abi/ipsec.h \
+		  include-abi/odp/api/abi/packet_io.h \
+		  include-abi/odp/api/abi/pool.h \
+		  include-abi/odp/api/abi/queue.h \
 		  include-abi/odp/api/abi/rwlock.h \
 		  include-abi/odp/api/abi/rwlock_recursive.h \
 		  include-abi/odp/api/abi/schedule.h \
 		  include-abi/odp/api/abi/schedule_types.h \
+		  include-abi/odp/api/abi/shared_memory.h \
 		  include-abi/odp/api/abi/spinlock.h \
 		  include-abi/odp/api/abi/spinlock_recursive.h \
 		  include-abi/odp/api/abi/std_types.h \
 		  include-abi/odp/api/abi/thread.h \
 		  include-abi/odp/api/abi/thrmask.h \
 		  include-abi/odp/api/abi/time.h \
+		  include-abi/odp/api/abi/timer.h \
 		  include-abi/odp/api/abi/traffic_mngr.h \
 		  include-abi/odp/api/abi/version.h
 endif
diff --git a/platform/linux-generic/include/odp/api/plat/buffer_types.h b/platform/linux-generic/include-abi/odp/api/abi/buffer.h
similarity index 73%
rename from platform/linux-generic/include/odp/api/plat/buffer_types.h
rename to platform/linux-generic/include-abi/odp/api/abi/buffer.h
index 8b79bb52e552..90b6653a66a5 100644
--- a/platform/linux-generic/include/odp/api/plat/buffer_types.h
+++ b/platform/linux-generic/include-abi/odp/api/abi/buffer.h
@@ -10,18 +10,13 @@
  * ODP buffer descriptor
  */
 
-#ifndef ODP_BUFFER_TYPES_H_
-#define ODP_BUFFER_TYPES_H_
+#ifndef ODP_API_ABI_BUFFER_H_
+#define ODP_API_ABI_BUFFER_H_
 
 #ifdef __cplusplus
 extern "C" {
 #endif
 
-#include <odp/api/plat/static_inline.h>
-#if ODP_ABI_COMPAT == 1
-#include <odp/api/abi/buffer.h>
-#else
-
 #include <odp/api/std_types.h>
 #include <odp/api/plat/strong_types.h>
 
@@ -37,8 +32,6 @@ typedef ODP_HANDLE_T(odp_buffer_t);
  * @}
  */
 
-#endif
-
 #ifdef __cplusplus
 }
 #endif
diff --git a/platform/linux-generic/include/odp/api/plat/classification_types.h b/platform/linux-generic/include-abi/odp/api/abi/classification.h
similarity index 74%
rename from platform/linux-generic/include/odp/api/plat/classification_types.h
rename to platform/linux-generic/include-abi/odp/api/abi/classification.h
index d210feb0ce13..3f866c67aaa1 100644
--- a/platform/linux-generic/include/odp/api/plat/classification_types.h
+++ b/platform/linux-generic/include-abi/odp/api/abi/classification.h
@@ -10,18 +10,13 @@
  * ODP classification descriptor
  */
 
-#ifndef ODP_CLASSIFICATION_TYPES_H_
-#define ODP_CLASSIFICATION_TYPES_H_
+#ifndef ODP_API_ABI_CLASSIFICATION_H_
+#define ODP_API_ABI_CLASSIFICATION_H_
 
 #ifdef __cplusplus
 extern "C" {
 #endif
 
-#include <odp/api/plat/static_inline.h>
-#if ODP_ABI_COMPAT == 1
-#include <odp/api/abi/classification.h>
-#else
-
 #include <odp/api/plat/strong_types.h>
 
 /** @ingroup odp_classification
@@ -40,8 +35,6 @@ typedef ODP_HANDLE_T(odp_pmr_t);
  * @}
  */
 
-#endif
-
 #ifdef __cplusplus
 }
 #endif
diff --git a/platform/linux-generic/include/odp/api/plat/crypto_types.h b/platform/linux-generic/include-abi/odp/api/abi/crypto.h
similarity index 71%
rename from platform/linux-generic/include/odp/api/plat/crypto_types.h
rename to platform/linux-generic/include-abi/odp/api/abi/crypto.h
index 2cc747eb2fde..fe3a921295e4 100644
--- a/platform/linux-generic/include/odp/api/plat/crypto_types.h
+++ b/platform/linux-generic/include-abi/odp/api/abi/crypto.h
@@ -11,18 +11,13 @@
  * ODP crypto
  */
 
-#ifndef ODP_CRYPTO_TYPES_H_
-#define ODP_CRYPTO_TYPES_H_
+#ifndef ODP_API_ABI_CRYPTO_H_
+#define ODP_API_ABI_CRYPTO_H_
 
 #ifdef __cplusplus
 extern "C" {
 #endif
 
-#include <odp/api/plat/static_inline.h>
-#if ODP_ABI_COMPAT == 1
-#include <odp/api/abi/crypto.h>
-#else
-
 /** @ingroup odp_crypto
  *  @{
  */
@@ -36,8 +31,6 @@ typedef ODP_HANDLE_T(odp_crypto_compl_t);
  * @}
  */
 
-#endif
-
 #ifdef __cplusplus
 }
 #endif
diff --git a/platform/linux-generic/include/odp/api/plat/event_types.h b/platform/linux-generic/include-abi/odp/api/abi/event.h
similarity index 80%
rename from platform/linux-generic/include/odp/api/plat/event_types.h
rename to platform/linux-generic/include-abi/odp/api/abi/event.h
index 9bff607a5684..802e431f3a82 100644
--- a/platform/linux-generic/include/odp/api/plat/event_types.h
+++ b/platform/linux-generic/include-abi/odp/api/abi/event.h
@@ -11,19 +11,13 @@
  * ODP event
  */
 
-#ifndef ODP_EVENT_TYPES_H_
-#define ODP_EVENT_TYPES_H_
+#ifndef ODP_API_ABI_EVENT_H_
+#define ODP_API_ABI_EVENT_H_
 
 #ifdef __cplusplus
 extern "C" {
 #endif
 
-#include <odp/api/plat/static_inline.h>
-#if ODP_ABI_COMPAT == 1
-#include <odp/api/abi/event.h>
-#else
-
-#include <odp/api/std_types.h>
 #include <odp/api/plat/strong_types.h>
 
 /** @ingroup odp_event
@@ -53,8 +47,6 @@ typedef enum odp_event_subtype_t {
  * @}
  */
 
-#endif
-
 #ifdef __cplusplus
 }
 #endif
diff --git a/platform/linux-generic/include/odp/api/plat/ipsec_types.h b/platform/linux-generic/include-abi/odp/api/abi/ipsec.h
similarity index 88%
rename from platform/linux-generic/include/odp/api/plat/ipsec_types.h
rename to platform/linux-generic/include-abi/odp/api/abi/ipsec.h
index a36cdada47ce..75d84c43a043 100644
--- a/platform/linux-generic/include/odp/api/plat/ipsec_types.h
+++ b/platform/linux-generic/include-abi/odp/api/abi/ipsec.h
@@ -10,8 +10,8 @@
  * ODP IPSEC API - platform specific types
  */
 
-#ifndef ODP_PLAT_IPSEC_TYPES_H_
-#define ODP_PLAT_IPSEC_TYPES_H_
+#ifndef ODP_API_ABI_IPSEC_H_
+#define ODP_API_ABI_IPSEC_H_
 
 #ifdef __cplusplus
 extern "C" {
diff --git a/platform/linux-generic/include/odp/api/plat/packet_io_types.h b/platform/linux-generic/include-abi/odp/api/abi/packet_io.h
similarity index 83%
rename from platform/linux-generic/include/odp/api/plat/packet_io_types.h
rename to platform/linux-generic/include-abi/odp/api/abi/packet_io.h
index 5a45321fb527..a84e858e650a 100644
--- a/platform/linux-generic/include/odp/api/plat/packet_io_types.h
+++ b/platform/linux-generic/include-abi/odp/api/abi/packet_io.h
@@ -11,8 +11,8 @@
  * ODP Packet IO
  */
 
-#ifndef ODP_PACKET_IO_TYPES_H_
-#define ODP_PACKET_IO_TYPES_H_
+#ifndef ODP_API_ABI_PACKET_IO_H_
+#define ODP_API_ABI_PACKET_IO_H_
 
 #ifdef __cplusplus
 extern "C" {
@@ -47,12 +47,6 @@ typedef struct odp_pktout_queue_t {
 #define ODP_PKTIN_NO_WAIT 0
 #define ODP_PKTIN_WAIT    UINT64_MAX
 
-/** Get printable format of odp_pktio_t */
-static inline uint64_t odp_pktio_to_u64(odp_pktio_t hdl)
-{
-	return _odp_pri(hdl);
-}
-
 /**
  * @}
  */
diff --git a/platform/linux-generic/include/odp/api/plat/pool_types.h b/platform/linux-generic/include-abi/odp/api/abi/pool.h
similarity index 76%
rename from platform/linux-generic/include/odp/api/plat/pool_types.h
rename to platform/linux-generic/include-abi/odp/api/abi/pool.h
index 8bc816d4e64b..586e80f75bb4 100644
--- a/platform/linux-generic/include/odp/api/plat/pool_types.h
+++ b/platform/linux-generic/include-abi/odp/api/abi/pool.h
@@ -10,21 +10,16 @@
  * ODP pool
  */
 
-#ifndef ODP_POOL_TYPES_H_
-#define ODP_POOL_TYPES_H_
+#ifndef ODP_API_ABI_POOL_H_
+#define ODP_API_ABI_POOL_H_
 
 #ifdef __cplusplus
 extern "C" {
 #endif
 
-#include <odp/api/plat/static_inline.h>
-#if ODP_ABI_COMPAT == 1
-#include <odp/api/abi/pool.h>
-#else
-
 #include <odp/api/std_types.h>
 #include <odp/api/plat/strong_types.h>
-#include <odp/api/plat/event_types.h>
+#include <odp/api/abi/event.h>
 
 /** @ingroup odp_pool
  *  @{
@@ -46,8 +41,6 @@ typedef enum odp_pool_type_t {
  * @}
  */
 
-#endif
-
 #ifdef __cplusplus
 }
 #endif
diff --git a/platform/linux-generic/include/odp/api/plat/queue_types.h b/platform/linux-generic/include-abi/odp/api/abi/queue.h
similarity index 74%
rename from platform/linux-generic/include/odp/api/plat/queue_types.h
rename to platform/linux-generic/include-abi/odp/api/abi/queue.h
index 1561e2239114..28c721a770e3 100644
--- a/platform/linux-generic/include/odp/api/plat/queue_types.h
+++ b/platform/linux-generic/include-abi/odp/api/abi/queue.h
@@ -10,18 +10,13 @@
  * ODP queue
  */
 
-#ifndef ODP_QUEUE_TYPES_H_
-#define ODP_QUEUE_TYPES_H_
+#ifndef ODP_API_ABI_QUEUE_H_
+#define ODP_API_ABI_QUEUE_H_
 
 #ifdef __cplusplus
 extern "C" {
 #endif
 
-#include <odp/api/plat/static_inline.h>
-#if ODP_ABI_COMPAT == 1
-#include <odp/api/abi/queue.h>
-#else
-
 #include <odp/api/std_types.h>
 #include <odp/api/plat/strong_types.h>
 
@@ -39,8 +34,6 @@ typedef ODP_HANDLE_T(odp_queue_t);
  * @}
  */
 
-#endif
-
 #ifdef __cplusplus
 }
 #endif
diff --git a/platform/linux-generic/include/odp/api/plat/shared_memory_types.h b/platform/linux-generic/include-abi/odp/api/abi/shared_memory.h
similarity index 73%
rename from platform/linux-generic/include/odp/api/plat/shared_memory_types.h
rename to platform/linux-generic/include-abi/odp/api/abi/shared_memory.h
index 2c5b4ed2e7b9..05922238c881 100644
--- a/platform/linux-generic/include/odp/api/plat/shared_memory_types.h
+++ b/platform/linux-generic/include-abi/odp/api/abi/shared_memory.h
@@ -11,18 +11,13 @@
  * ODP shared memory
  */
 
-#ifndef ODP_SHARED_MEMORY_TYPES_H_
-#define ODP_SHARED_MEMORY_TYPES_H_
+#ifndef ODP_API_ABI_SHARED_MEMORY_H_
+#define ODP_API_ABI_SHARED_MEMORY_H_
 
 #ifdef __cplusplus
 extern "C" {
 #endif
 
-#include <odp/api/plat/static_inline.h>
-#if ODP_ABI_COMPAT == 1
-#include <odp/api/abi/shared_memory.h>
-#else
-
 #include <odp/api/std_types.h>
 #include <odp/api/plat/strong_types.h>
 
@@ -41,8 +36,6 @@ typedef ODP_HANDLE_T(odp_shm_t);
  * @}
  */
 
-#endif
-
 #ifdef __cplusplus
 }
 #endif
diff --git a/platform/linux-generic/include/odp/api/plat/timer_types.h b/platform/linux-generic/include-abi/odp/api/abi/timer.h
similarity index 92%
rename from platform/linux-generic/include/odp/api/plat/timer_types.h
rename to platform/linux-generic/include-abi/odp/api/abi/timer.h
index 9605d584121f..19b6a4b0d73e 100644
--- a/platform/linux-generic/include/odp/api/plat/timer_types.h
+++ b/platform/linux-generic/include-abi/odp/api/abi/timer.h
@@ -11,8 +11,8 @@
  * ODP timer service
  */
 
-#ifndef ODP_TIMER_TYPES_H_
-#define ODP_TIMER_TYPES_H_
+#ifndef ODP_API_ABI_TIMER_H_
+#define ODP_API_ABI_TIMER_H_
 
 #ifdef __cplusplus
 extern "C" {
diff --git a/platform/linux-generic/include/odp/api/classification.h b/platform/linux-generic/include/odp/api/classification.h
index 377d1a02f7e8..01be7063d102 100644
--- a/platform/linux-generic/include/odp/api/classification.h
+++ b/platform/linux-generic/include/odp/api/classification.h
@@ -10,19 +10,19 @@
  * ODP classification descriptor
  */
 
-#ifndef ODP_PLAT_CLASSIFICATION_H_
-#define ODP_PLAT_CLASSIFICATION_H_
+#ifndef ODP_API_CLASSIFICATION_H_
+#define ODP_API_CLASSIFICATION_H_
 
 #ifdef __cplusplus
 extern "C" {
 #endif
 
 #include <odp/api/std_types.h>
-#include <odp/api/plat/pool_types.h>
-#include <odp/api/plat/classification_types.h>
+#include <odp/api/abi/pool.h>
+#include <odp/api/abi/classification.h>
 #include <odp/api/plat/packet_types.h>
-#include <odp/api/plat/packet_io_types.h>
-#include <odp/api/plat/queue_types.h>
+#include <odp/api/abi/packet_io.h>
+#include <odp/api/abi/queue.h>
 
 #include <odp/api/spec/classification.h>
 
diff --git a/platform/linux-generic/include/odp/api/crypto.h b/platform/linux-generic/include/odp/api/crypto.h
index 4f65932aa1e1..ead28eab0bfc 100644
--- a/platform/linux-generic/include/odp/api/crypto.h
+++ b/platform/linux-generic/include/odp/api/crypto.h
@@ -10,8 +10,8 @@
  * ODP crypto
  */
 
-#ifndef ODP_PLAT_CRYPTO_H_
-#define ODP_PLAT_CRYPTO_H_
+#ifndef ODP_API_CRYPTO_H_
+#define ODP_API_CRYPTO_H_
 
 #ifdef __cplusplus
 extern "C" {
@@ -19,9 +19,9 @@ extern "C" {
 
 #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/abi/crypto.h>
+#include <odp/api/abi/buffer.h>
+#include <odp/api/abi/pool.h>
 #include <odp/api/queue.h>
 
 /** @ingroup odp_crypto
diff --git a/platform/linux-generic/include/odp/api/packet.h b/platform/linux-generic/include/odp/api/packet.h
index eff40803531f..5d744df544d6 100644
--- a/platform/linux-generic/include/odp/api/packet.h
+++ b/platform/linux-generic/include/odp/api/packet.h
@@ -18,11 +18,11 @@ extern "C" {
 #endif
 
 #include <odp/api/std_types.h>
-#include <odp/api/plat/event_types.h>
-#include <odp/api/plat/packet_io_types.h>
+#include <odp/api/abi/event.h>
+#include <odp/api/abi/packet_io.h>
 #include <odp/api/plat/packet_types.h>
-#include <odp/api/plat/buffer_types.h>
-#include <odp/api/plat/pool_types.h>
+#include <odp/api/abi/buffer.h>
+#include <odp/api/abi/pool.h>
 
 #include <odp/api/plat/static_inline.h>
 #if ODP_ABI_COMPAT == 0
diff --git a/platform/linux-generic/include/odp/api/packet_io.h b/platform/linux-generic/include/odp/api/packet_io.h
index 76c7dfeda1cf..9107685a36dc 100644
--- a/platform/linux-generic/include/odp/api/packet_io.h
+++ b/platform/linux-generic/include/odp/api/packet_io.h
@@ -18,11 +18,11 @@ extern "C" {
 #endif
 
 #include <odp/api/std_types.h>
-#include <odp/api/plat/pool_types.h>
-#include <odp/api/plat/classification_types.h>
+#include <odp/api/abi/pool.h>
+#include <odp/api/abi/classification.h>
 #include <odp/api/plat/packet_types.h>
-#include <odp/api/plat/packet_io_types.h>
-#include <odp/api/plat/queue_types.h>
+#include <odp/api/abi/packet_io.h>
+#include <odp/api/abi/queue.h>
 
 /** @ingroup odp_packet_io
  *  @{
diff --git a/platform/linux-generic/include/odp/api/plat/packet_inlines.h b/platform/linux-generic/include/odp/api/plat/packet_inlines.h
index 1804fa6f2f1b..bfd65cbf1068 100644
--- a/platform/linux-generic/include/odp/api/plat/packet_inlines.h
+++ b/platform/linux-generic/include/odp/api/plat/packet_inlines.h
@@ -13,6 +13,7 @@
 #ifndef _ODP_PLAT_PACKET_INLINES_H_
 #define _ODP_PLAT_PACKET_INLINES_H_
 
+#include <odp/api/plat/strong_types.h>
 #include <odp/api/plat/packet_types.h>
 #include <odp/api/pool.h>
 #include <odp/api/packet_io.h>
diff --git a/platform/linux-generic/include/odp/api/plat/strong_types.h b/platform/linux-generic/include/odp/api/plat/strong_types.h
index 2e3070f8b185..ce920285efb8 100644
--- a/platform/linux-generic/include/odp/api/plat/strong_types.h
+++ b/platform/linux-generic/include/odp/api/plat/strong_types.h
@@ -15,6 +15,8 @@
 #ifndef STRONG_TYPES_H_
 #define STRONG_TYPES_H_
 
+#include <odp/api/std_types.h>
+
 /** Use strong typing for ODP types */
 #ifdef __cplusplus
 /* Allow type to be expanded before concatenation with underscore */
diff --git a/platform/linux-generic/include/odp_queue_internal.h b/platform/linux-generic/include/odp_queue_internal.h
index dd846d592120..df1b29ff8dcb 100644
--- a/platform/linux-generic/include/odp_queue_internal.h
+++ b/platform/linux-generic/include/odp_queue_internal.h
@@ -18,6 +18,7 @@
 extern "C" {
 #endif
 
+#include <odp/api/plat/strong_types.h>
 #include <odp/api/queue.h>
 #include <odp_forward_typedefs_internal.h>
 #include <odp_queue_if.h>
diff --git a/platform/linux-generic/include/odp_queue_scalable_internal.h b/platform/linux-generic/include/odp_queue_scalable_internal.h
index ddc65f604cb8..58d64aa5b37c 100644
--- a/platform/linux-generic/include/odp_queue_scalable_internal.h
+++ b/platform/linux-generic/include/odp_queue_scalable_internal.h
@@ -13,6 +13,7 @@
 extern "C" {
 #endif
 
+#include <odp/api/plat/strong_types.h>
 #include <odp/api/queue.h>
 #include <odp_forward_typedefs_internal.h>
 #include <odp_queue_if.h>
diff --git a/platform/linux-generic/odp_packet_io.c b/platform/linux-generic/odp_packet_io.c
index 566fc847c2c0..e6ed8632cba9 100644
--- a/platform/linux-generic/odp_packet_io.c
+++ b/platform/linux-generic/odp_packet_io.c
@@ -1772,3 +1772,9 @@ int odp_pktout_send(odp_pktout_queue_t queue, const odp_packet_t packets[],
 
 	return entry->s.ops->send(entry, queue.index, packets, num);
 }
+
+/** Get printable format of odp_pktio_t */
+uint64_t odp_pktio_to_u64(odp_pktio_t hdl)
+{
+	return _odp_pri(hdl);
+}
