diff --git a/.gitignore b/.gitignore
index 39c8d77..6a97f17 100644
--- a/.gitignore
+++ b/.gitignore
@@ -14,15 +14,15 @@ config.guess
 config.sub
 configure
 depcomp
-include/config.h.in
 install-sh
 ltmain.sh
 m4/*.m4
 missing
 config.log
 config.status
-include/config.h
-include/stamp-h1
+helper/config.h.in
+helper/config.h
+helper/stamp-h1
 libtool
 pkgconfig/libodp.pc
 .deps/
diff --git a/configure.ac b/configure.ac
index c9aac14..5574f82 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,8 +1,8 @@
 AC_PREREQ([2.5])
 AC_INIT([OpenDataPlane], [0.2], [lng-odp@lists.linaro.org])
 AM_INIT_AUTOMAKE([subdir-objects])
-AC_CONFIG_SRCDIR([include/config.h.in])
-AM_CONFIG_HEADER([include/config.h])
+AC_CONFIG_SRCDIR([helper/config.h.in])
+AM_CONFIG_HEADER([helper/config.h])
 
 AC_USE_SYSTEM_EXTENSIONS
 AC_SYS_LARGEFILE
diff --git a/doc/doxygen.cfg b/doc/doxygen.cfg
index 939b237..5d1e191 100644
--- a/doc/doxygen.cfg
+++ b/doc/doxygen.cfg
@@ -9,7 +9,7 @@ TYPEDEF_HIDES_STRUCT = YES
 EXTRACT_STATIC = YES
 SORT_MEMBER_DOCS = NO
 WARN_NO_PARAMDOC = YES
-INPUT = $(SRCDIR)/doc $(SRCDIR)/doc/users-guide $(SRCDIR)/doc/api $(SRCDIR)/platform/linux-generic/include/api $(SRCDIR)/include/helper $(SRCDIR)/example
+INPUT = $(SRCDIR)/doc $(SRCDIR)/doc/users-guide $(SRCDIR)/doc/api $(SRCDIR)/platform/linux-generic/include/api $(SRCDIR)/helper/include $(SRCDIR)/example
 FILE_PATTERNS = odp*.h odp*.c *.dox
 RECURSIVE = YES
 SOURCE_BROWSER = YES
diff --git a/example/Makefile.inc b/example/Makefile.inc
index b549001..4de2feb 100644
--- a/example/Makefile.inc
+++ b/example/Makefile.inc
@@ -5,6 +5,6 @@ AM_CFLAGS += \
 	-I$(srcdir) \
 	-I$(top_srcdir)/platform/@with_platform@/include/api \
 	-I$(top_srcdir)/platform/linux-generic/include/api \
-	-I$(top_srcdir)/include
+	-I$(top_srcdir)/helper/include
 
 AM_LDFLAGS += -L$(LIB)
diff --git a/example/generator/odp_generator.c b/example/generator/odp_generator.c
index 9fa9b37..65c2034 100644
--- a/example/generator/odp_generator.c
+++ b/example/generator/odp_generator.c
@@ -18,12 +18,12 @@
 
 #include <odp.h>
 #include <odp_packet_io.h>
-#include <helper/odp_linux.h>
-#include <helper/odp_packet_helper.h>
-#include <helper/odp_eth.h>
-#include <helper/odp_ip.h>
-#include <helper/odp_udp.h>
-#include <helper/odp_icmp.h>
+#include <odph_linux.h>
+#include <odph_packet.h>
+#include <odph_eth.h>
+#include <odph_ip.h>
+#include <odph_udp.h>
+#include <odph_icmp.h>
 
 #define MAX_WORKERS            32		/**< max number of works */
 #define SHM_PKT_POOL_SIZE      (512*2048)	/**< pkt pool size */
@@ -47,8 +47,8 @@ typedef struct {
 	int if_count;		/**< Number of interfaces to be used */
 	char **if_names;	/**< Array of pointers to interface names */
 	odp_buffer_pool_t pool;	/**< Buffer pool for packet IO */
-	odp_ethaddr_t srcmac;	/**< src mac addr */
-	odp_ethaddr_t dstmac;	/**< dest mac addr */
+	odph_ethaddr_t srcmac;	/**< src mac addr */
+	odph_ethaddr_t dstmac;	/**< dest mac addr */
 	unsigned int srcip;	/**< src ip addr */
 	unsigned int dstip;	/**< dest ip addr */
 	int mode;		/**< work mode */
@@ -94,7 +94,7 @@ static void parse_args(int argc, char *argv[], appl_args_t *appl_args);
 static void print_info(char *progname, appl_args_t *appl_args);
 static void usage(char *progname);
 static int scan_ip(char *buf, unsigned int *paddr);
-static int scan_mac(char *in, odp_ethaddr_t *des);
+static int scan_mac(char *in, odph_ethaddr_t *des);
 static void tv_sub(struct timeval *recvtime, struct timeval *sendtime);
 
 /**
@@ -146,7 +146,7 @@ static int scan_ip(char *buf, unsigned int *paddr)
  * @param  des mac for odp_packet
  * @return 1 success, 0 failed
  */
-static int scan_mac(char *in, odp_ethaddr_t *des)
+static int scan_mac(char *in, odph_ethaddr_t *des)
 {
 	int field;
 	int i;
@@ -173,9 +173,9 @@ static void pack_udp_pkt(odp_buffer_t obuf)
 	char *buf;
 	int max;
 	odp_packet_t pkt;
-	odp_ethhdr_t *eth;
-	odp_ipv4hdr_t *ip;
-	odp_udphdr_t *udp;
+	odph_ethhdr_t *eth;
+	odph_ipv4hdr_t *ip;
+	odph_udphdr_t *udp;
 	unsigned short seq;
 
 	buf = odp_buffer_addr(obuf);
@@ -188,33 +188,33 @@ static void pack_udp_pkt(odp_buffer_t obuf)
 	pkt = odp_packet_from_buffer(obuf);
 	/* ether */
 	odp_packet_set_l2_offset(pkt, 0);
-	eth = (odp_ethhdr_t *)buf;
-	memcpy((char *)eth->src.addr, args->appl.srcmac.addr, ODP_ETHADDR_LEN);
-	memcpy((char *)eth->dst.addr, args->appl.dstmac.addr, ODP_ETHADDR_LEN);
-	eth->type = odp_cpu_to_be_16(ODP_ETHTYPE_IPV4);
+	eth = (odph_ethhdr_t *)buf;
+	memcpy((char *)eth->src.addr, args->appl.srcmac.addr, ODPH_ETHADDR_LEN);
+	memcpy((char *)eth->dst.addr, args->appl.dstmac.addr, ODPH_ETHADDR_LEN);
+	eth->type = odp_cpu_to_be_16(ODPH_ETHTYPE_IPV4);
 	/* ip */
-	odp_packet_set_l3_offset(pkt, ODP_ETHHDR_LEN);
-	ip = (odp_ipv4hdr_t *)(buf + ODP_ETHHDR_LEN);
+	odp_packet_set_l3_offset(pkt, ODPH_ETHHDR_LEN);
+	ip = (odph_ipv4hdr_t *)(buf + ODPH_ETHHDR_LEN);
 	ip->dst_addr = odp_cpu_to_be_32(args->appl.dstip);
 	ip->src_addr = odp_cpu_to_be_32(args->appl.srcip);
-	ip->ver_ihl = ODP_IPV4 << 4 | ODP_IPV4HDR_IHL_MIN;
-	ip->tot_len = odp_cpu_to_be_16(args->appl.payload + ODP_UDPHDR_LEN +
-				       ODP_IPV4HDR_LEN);
-	ip->proto = ODP_IPPROTO_UDP;
+	ip->ver_ihl = ODPH_IPV4 << 4 | ODPH_IPV4HDR_IHL_MIN;
+	ip->tot_len = odp_cpu_to_be_16(args->appl.payload + ODPH_UDPHDR_LEN +
+				       ODPH_IPV4HDR_LEN);
+	ip->proto = ODPH_IPPROTO_UDP;
 	seq = odp_atomic_fetch_add_u64(&counters.seq, 1) % 0xFFFF;
 	ip->id = odp_cpu_to_be_16(seq);
 	ip->chksum = 0;
-	odp_ipv4_csum_update(pkt);
+	odph_ipv4_csum_update(pkt);
 	/* udp */
-	odp_packet_set_l4_offset(pkt, ODP_ETHHDR_LEN + ODP_IPV4HDR_LEN);
-	udp = (odp_udphdr_t *)(buf + ODP_ETHHDR_LEN + ODP_IPV4HDR_LEN);
+	odp_packet_set_l4_offset(pkt, ODPH_ETHHDR_LEN + ODPH_IPV4HDR_LEN);
+	udp = (odph_udphdr_t *)(buf + ODPH_ETHHDR_LEN + ODPH_IPV4HDR_LEN);
 	udp->src_port = 0;
 	udp->dst_port = 0;
-	udp->length = odp_cpu_to_be_16(args->appl.payload + ODP_UDPHDR_LEN);
+	udp->length = odp_cpu_to_be_16(args->appl.payload + ODPH_UDPHDR_LEN);
 	udp->chksum = 0;
-	udp->chksum = odp_cpu_to_be_16(odp_ipv4_udp_chksum(pkt));
-	odp_packet_set_len(pkt, args->appl.payload + ODP_UDPHDR_LEN +
-			   ODP_IPV4HDR_LEN + ODP_ETHHDR_LEN);
+	udp->chksum = odp_cpu_to_be_16(odph_ipv4_udp_chksum(pkt));
+	odp_packet_set_len(pkt, args->appl.payload + ODPH_UDPHDR_LEN +
+			   ODPH_IPV4HDR_LEN + ODPH_ETHHDR_LEN);
 }
 
 /**
@@ -227,9 +227,9 @@ static void pack_icmp_pkt(odp_buffer_t obuf)
 	char *buf;
 	int max;
 	odp_packet_t pkt;
-	odp_ethhdr_t *eth;
-	odp_ipv4hdr_t *ip;
-	odp_icmphdr_t *icmp;
+	odph_ethhdr_t *eth;
+	odph_ipv4hdr_t *ip;
+	odph_icmphdr_t *icmp;
 	struct timeval tval;
 	uint8_t *tval_d;
 	unsigned short seq;
@@ -245,41 +245,41 @@ static void pack_icmp_pkt(odp_buffer_t obuf)
 	pkt = odp_packet_from_buffer(obuf);
 	/* ether */
 	odp_packet_set_l2_offset(pkt, 0);
-	eth = (odp_ethhdr_t *)buf;
-	memcpy((char *)eth->src.addr, args->appl.srcmac.addr, ODP_ETHADDR_LEN);
-	memcpy((char *)eth->dst.addr, args->appl.dstmac.addr, ODP_ETHADDR_LEN);
-	eth->type = odp_cpu_to_be_16(ODP_ETHTYPE_IPV4);
+	eth = (odph_ethhdr_t *)buf;
+	memcpy((char *)eth->src.addr, args->appl.srcmac.addr, ODPH_ETHADDR_LEN);
+	memcpy((char *)eth->dst.addr, args->appl.dstmac.addr, ODPH_ETHADDR_LEN);
+	eth->type = odp_cpu_to_be_16(ODPH_ETHTYPE_IPV4);
 	/* ip */
-	odp_packet_set_l3_offset(pkt, ODP_ETHHDR_LEN);
-	ip = (odp_ipv4hdr_t *)(buf + ODP_ETHHDR_LEN);
+	odp_packet_set_l3_offset(pkt, ODPH_ETHHDR_LEN);
+	ip = (odph_ipv4hdr_t *)(buf + ODPH_ETHHDR_LEN);
 	ip->dst_addr = odp_cpu_to_be_32(args->appl.dstip);
 	ip->src_addr = odp_cpu_to_be_32(args->appl.srcip);
-	ip->ver_ihl = ODP_IPV4 << 4 | ODP_IPV4HDR_IHL_MIN;
-	ip->tot_len = odp_cpu_to_be_16(args->appl.payload + ODP_ICMPHDR_LEN +
-				       ODP_IPV4HDR_LEN);
-	ip->proto = ODP_IPPROTO_ICMP;
+	ip->ver_ihl = ODPH_IPV4 << 4 | ODPH_IPV4HDR_IHL_MIN;
+	ip->tot_len = odp_cpu_to_be_16(args->appl.payload + ODPH_ICMPHDR_LEN +
+				       ODPH_IPV4HDR_LEN);
+	ip->proto = ODPH_IPPROTO_ICMP;
 	seq = odp_atomic_fetch_add_u64(&counters.seq, 1) % 0xffff;
 	ip->id = odp_cpu_to_be_16(seq);
 	ip->chksum = 0;
-	odp_ipv4_csum_update(pkt);
+	odph_ipv4_csum_update(pkt);
 	/* icmp */
-	icmp = (odp_icmphdr_t *)(buf + ODP_ETHHDR_LEN + ODP_IPV4HDR_LEN);
+	icmp = (odph_icmphdr_t *)(buf + ODPH_ETHHDR_LEN + ODPH_IPV4HDR_LEN);
 	icmp->type = ICMP_ECHO;
 	icmp->code = 0;
 	icmp->un.echo.id = 0;
 	icmp->un.echo.sequence = ip->id;
-	tval_d = (uint8_t *)(buf + ODP_ETHHDR_LEN + ODP_IPV4HDR_LEN +
-				  ODP_ICMPHDR_LEN);
+	tval_d = (uint8_t *)(buf + ODPH_ETHHDR_LEN + ODPH_IPV4HDR_LEN +
+				  ODPH_ICMPHDR_LEN);
 	/* TODO This should be changed to use an
 	 * ODP timer API once one exists. */
 	gettimeofday(&tval, NULL);
 	memcpy(tval_d, &tval, sizeof(struct timeval));
 	icmp->chksum = 0;
 	icmp->chksum = odp_chksum(icmp, args->appl.payload +
-				  ODP_ICMPHDR_LEN);
+				  ODPH_ICMPHDR_LEN);
 
-	odp_packet_set_len(pkt, args->appl.payload + ODP_ICMPHDR_LEN +
-			   ODP_IPV4HDR_LEN + ODP_ETHHDR_LEN);
+	odp_packet_set_len(pkt, args->appl.payload + ODPH_ICMPHDR_LEN +
+			   ODPH_IPV4HDR_LEN + ODPH_ETHHDR_LEN);
 }
 
 /**
@@ -380,9 +380,9 @@ static void print_pkts(int thr, odp_packet_t pkt_tbl[], unsigned len)
 {
 	odp_packet_t pkt;
 	char *buf;
-	odp_ipv4hdr_t *ip;
-	odp_udphdr_t *udp;
-	odp_icmphdr_t *icmp;
+	odph_ipv4hdr_t *ip;
+	odph_udphdr_t *udp;
+	odph_icmphdr_t *icmp;
 	struct timeval tvrecv;
 	struct timeval tvsend;
 	double rtt;
@@ -401,27 +401,27 @@ static void print_pkts(int thr, odp_packet_t pkt_tbl[], unsigned len)
 		odp_atomic_inc_u64(&counters.ip);
 		rlen += sprintf(msg, "receive Packet proto:IP ");
 		buf = odp_buffer_addr(odp_buffer_from_packet(pkt));
-		ip = (odp_ipv4hdr_t *)(buf + odp_packet_l3_offset(pkt));
+		ip = (odph_ipv4hdr_t *)(buf + odp_packet_l3_offset(pkt));
 		rlen += sprintf(msg + rlen, "id %d ",
 				odp_be_to_cpu_16(ip->id));
 		offset = odp_packet_l4_offset(pkt);
 
 		/* udp */
-		if (ip->proto == ODP_IPPROTO_UDP) {
+		if (ip->proto == ODPH_IPPROTO_UDP) {
 			odp_atomic_inc_u64(&counters.udp);
-			udp = (odp_udphdr_t *)(buf + offset);
+			udp = (odph_udphdr_t *)(buf + offset);
 			rlen += sprintf(msg + rlen, "UDP payload %d ",
 					odp_be_to_cpu_16(udp->length) -
-					ODP_UDPHDR_LEN);
+					ODPH_UDPHDR_LEN);
 		}
 
 		/* icmp */
-		if (ip->proto == ODP_IPPROTO_ICMP) {
-			icmp = (odp_icmphdr_t *)(buf + offset);
+		if (ip->proto == ODPH_IPPROTO_ICMP) {
+			icmp = (odph_icmphdr_t *)(buf + offset);
 			/* echo reply */
 			if (icmp->type == ICMP_ECHOREPLY) {
 				odp_atomic_inc_u64(&counters.icmp);
-				memcpy(&tvsend, buf + offset + ODP_ICMPHDR_LEN,
+				memcpy(&tvsend, buf + offset + ODPH_ICMPHDR_LEN,
 				       sizeof(struct timeval));
 				/* TODO This should be changed to use an
 				 * ODP timer API once one exists. */
@@ -499,13 +499,13 @@ static void *gen_recv_thread(void *arg)
 		pkt = odp_packet_from_buffer(buf);
 		/* Drop packets with errors */
 		if (odp_unlikely(odp_packet_error(pkt))) {
-			odp_packet_free(pkt);
+			odph_packet_free(pkt);
 			continue;
 		}
 
 		print_pkts(thr, &pkt, 1);
 
-		odp_packet_free(pkt);
+		odph_packet_free(pkt);
 	}
 
 	return arg;
@@ -515,7 +515,7 @@ static void *gen_recv_thread(void *arg)
  */
 int main(int argc, char *argv[])
 {
-	odp_linux_pthread_t thread_tbl[MAX_WORKERS];
+	odph_linux_pthread_t thread_tbl[MAX_WORKERS];
 	odp_buffer_pool_t pool;
 	int thr_id;
 	int num_workers;
@@ -606,14 +606,14 @@ int main(int argc, char *argv[])
 		args->thread[1].pktio_dev = args->appl.if_names[0];
 		args->thread[1].pool = pool;
 		args->thread[1].mode = args->appl.mode;
-		odp_linux_pthread_create(&thread_tbl[1], 1, 0,
-					 gen_recv_thread, &args->thread[1]);
+		odph_linux_pthread_create(&thread_tbl[1], 1, 0,
+					  gen_recv_thread, &args->thread[1]);
 
 		args->thread[0].pktio_dev = args->appl.if_names[0];
 		args->thread[0].pool = pool;
 		args->thread[0].mode = args->appl.mode;
-		odp_linux_pthread_create(&thread_tbl[0], 1, 0,
-					 gen_send_thread, &args->thread[0]);
+		odph_linux_pthread_create(&thread_tbl[0], 1, 0,
+					  gen_send_thread, &args->thread[0]);
 
 		/* only wait send thread to join */
 		num_workers = 1;
@@ -644,14 +644,14 @@ int main(int argc, char *argv[])
 			 * because each thread might get different arguments.
 			 * Calls odp_thread_create(cpu) for each thread
 			 */
-			odp_linux_pthread_create(&thread_tbl[i], 1,
-						 core, thr_run_func,
-						 &args->thread[i]);
+			odph_linux_pthread_create(&thread_tbl[i], 1,
+						  core, thr_run_func,
+						  &args->thread[i]);
 		}
 	}
 
 	/* Master thread waits for other threads to exit */
-	odp_linux_pthread_join(thread_tbl, num_workers);
+	odph_linux_pthread_join(thread_tbl, num_workers);
 	printf("Exit\n\n");
 
 	return 0;
diff --git a/example/l2fwd/odp_l2fwd.c b/example/l2fwd/odp_l2fwd.c
index d74449a..6a38c1b 100644
--- a/example/l2fwd/odp_l2fwd.c
+++ b/example/l2fwd/odp_l2fwd.c
@@ -16,10 +16,10 @@
 #include <unistd.h>
 
 #include <odp.h>
-#include <helper/odp_linux.h>
-#include <helper/odp_packet_helper.h>
-#include <helper/odp_eth.h>
-#include <helper/odp_ip.h>
+#include <odph_linux.h>
+#include <odph_packet.h>
+#include <odph_eth.h>
+#include <odph_ip.h>
 
 /** @def MAX_WORKERS
  * @brief Maximum number of worker threads
@@ -313,7 +313,7 @@ static void *pktio_ifburst_thread(void *arg)
  */
 int main(int argc, char *argv[])
 {
-	odp_linux_pthread_t thread_tbl[MAX_WORKERS];
+	odph_linux_pthread_t thread_tbl[MAX_WORKERS];
 	odp_buffer_pool_t pool;
 	int thr_id;
 	void *pool_base;
@@ -446,12 +446,12 @@ int main(int argc, char *argv[])
 			thr_run_func = pktio_ifburst_thread;
 		else /* APPL_MODE_PKT_QUEUE */
 			thr_run_func = pktio_queue_thread;
-		odp_linux_pthread_create(&thread_tbl[i], 1, core, thr_run_func,
-					 &gbl_args->thread[i]);
+		odph_linux_pthread_create(&thread_tbl[i], 1, core, thr_run_func,
+					  &gbl_args->thread[i]);
 	}
 
 	/* Master thread waits for other threads to exit */
-	odp_linux_pthread_join(thread_tbl, num_workers);
+	odph_linux_pthread_join(thread_tbl, num_workers);
 
 	printf("Exit\n\n");
 
@@ -479,7 +479,7 @@ static int drop_err_pkts(odp_packet_t pkt_tbl[], unsigned len)
 		pkt = pkt_tbl[i];
 
 		if (odp_unlikely(odp_packet_error(pkt))) {
-			odp_packet_free(pkt); /* Drop */
+			odph_packet_free(pkt); /* Drop */
 			pkt_cnt--;
 		} else if (odp_unlikely(i != j++)) {
 			pkt_tbl[j-1] = pkt;
diff --git a/example/odp_example/odp_example.c b/example/odp_example/odp_example.c
index f0bdf29..40d237b 100644
--- a/example/odp_example/odp_example.c
+++ b/example/odp_example/odp_example.c
@@ -17,7 +17,7 @@
 #include <odp.h>
 
 /* ODP helper for Linux apps */
-#include <helper/odp_linux.h>
+#include <odph_linux.h>
 
 /* Needs librt*/
 #include <time.h>
@@ -933,7 +933,7 @@ static void parse_args(int argc, char *argv[], test_args_t *args)
  */
 int main(int argc, char *argv[])
 {
-	odp_linux_pthread_t thread_tbl[MAX_WORKERS];
+	odph_linux_pthread_t thread_tbl[MAX_WORKERS];
 	test_args_t args;
 	int thr_id;
 	int num_workers;
@@ -1067,11 +1067,11 @@ int main(int argc, char *argv[])
 	odp_barrier_init_count(&test_barrier, num_workers);
 
 	/* Create and launch worker threads */
-	odp_linux_pthread_create(thread_tbl, num_workers, first_core,
-				 run_thread, NULL);
+	odph_linux_pthread_create(thread_tbl, num_workers, first_core,
+				  run_thread, NULL);
 
 	/* Wait for worker threads to exit */
-	odp_linux_pthread_join(thread_tbl, num_workers);
+	odph_linux_pthread_join(thread_tbl, num_workers);
 
 	printf("ODP example complete\n\n");
 
diff --git a/example/packet/odp_pktio.c b/example/packet/odp_pktio.c
index f247bd0..88ce575 100644
--- a/example/packet/odp_pktio.c
+++ b/example/packet/odp_pktio.c
@@ -16,10 +16,10 @@
 #include <unistd.h>
 
 #include <odp.h>
-#include <helper/odp_linux.h>
-#include <helper/odp_packet_helper.h>
-#include <helper/odp_eth.h>
-#include <helper/odp_ip.h>
+#include <odph_linux.h>
+#include <odph_packet.h>
+#include <odph_eth.h>
+#include <odph_ip.h>
 
 /** @def MAX_WORKERS
  * @brief Maximum number of worker threads
@@ -301,7 +301,7 @@ static void *pktio_ifburst_thread(void *arg)
  */
 int main(int argc, char *argv[])
 {
-	odp_linux_pthread_t thread_tbl[MAX_WORKERS];
+	odph_linux_pthread_t thread_tbl[MAX_WORKERS];
 	odp_buffer_pool_t pool;
 	int thr_id;
 	int num_workers;
@@ -401,12 +401,12 @@ int main(int argc, char *argv[])
 		 * because each thread might get different arguments.
 		 * Calls odp_thread_create(cpu) for each thread
 		 */
-		odp_linux_pthread_create(&thread_tbl[i], 1, core, thr_run_func,
-					 &args->thread[i]);
+		odph_linux_pthread_create(&thread_tbl[i], 1, core, thr_run_func,
+					  &args->thread[i]);
 	}
 
 	/* Master thread waits for other threads to exit */
-	odp_linux_pthread_join(thread_tbl, num_workers);
+	odph_linux_pthread_join(thread_tbl, num_workers);
 
 	printf("Exit\n\n");
 
@@ -434,7 +434,7 @@ static int drop_err_pkts(odp_packet_t pkt_tbl[], unsigned len)
 		pkt = pkt_tbl[i];
 
 		if (odp_unlikely(odp_packet_error(pkt))) {
-			odp_packet_free(pkt); /* Drop */
+			odph_packet_free(pkt); /* Drop */
 			pkt_cnt--;
 		} else if (odp_unlikely(i != j++)) {
 			pkt_tbl[j-1] = pkt;
@@ -454,16 +454,16 @@ static int drop_err_pkts(odp_packet_t pkt_tbl[], unsigned len)
 static void swap_pkt_addrs(odp_packet_t pkt_tbl[], unsigned len)
 {
 	odp_packet_t pkt;
-	odp_ethhdr_t *eth;
-	odp_ethaddr_t tmp_addr;
-	odp_ipv4hdr_t *ip;
+	odph_ethhdr_t *eth;
+	odph_ethaddr_t tmp_addr;
+	odph_ipv4hdr_t *ip;
 	uint32be_t ip_tmp_addr; /* tmp ip addr */
 	unsigned i;
 
 	for (i = 0; i < len; ++i) {
 		pkt = pkt_tbl[i];
 		if (odp_packet_inflag_eth(pkt)) {
-			eth = (odp_ethhdr_t *)odp_packet_l2(pkt);
+			eth = (odph_ethhdr_t *)odp_packet_l2(pkt);
 
 			tmp_addr = eth->dst;
 			eth->dst = eth->src;
@@ -471,7 +471,7 @@ static void swap_pkt_addrs(odp_packet_t pkt_tbl[], unsigned len)
 
 			if (odp_packet_inflag_ipv4(pkt)) {
 				/* IPv4 */
-				ip = (odp_ipv4hdr_t *)odp_packet_l3(pkt);
+				ip = (odph_ipv4hdr_t *)odp_packet_l3(pkt);
 
 				ip_tmp_addr  = ip->src_addr;
 				ip->src_addr = ip->dst_addr;
diff --git a/example/packet_netmap/odp_pktio_netmap.c b/example/packet_netmap/odp_pktio_netmap.c
index c0eb202..cc2607b 100644
--- a/example/packet_netmap/odp_pktio_netmap.c
+++ b/example/packet_netmap/odp_pktio_netmap.c
@@ -21,11 +21,11 @@
 #include <arpa/inet.h>
 
 #include <odp.h>
-#include <helper/odp_linux.h>
-#include <helper/odp_packet_helper.h>
-#include <helper/odp_eth.h>
-#include <helper/odp_ip.h>
-#include <helper/odp_packet_helper.h>
+#include <odph_linux.h>
+#include <odph_packet.h>
+#include <odph_eth.h>
+#include <odph_ip.h>
+#include <odph_packet.h>
 
 #include <odp_pktio_netmap.h>
 
@@ -194,7 +194,7 @@ static void *pktio_queue_thread(void *arg)
 
 			if (odp_packet_copy(pkt_copy, pkt) != 0) {
 				ODP_ERR("Packet copy failed!\n");
-				odp_packet_free(pkt_copy);
+				odph_packet_free(pkt_copy);
 			} else {
 				swap_pkt_addrs(&pkt_copy, 1);
 				odp_queue_enq(outq_def,
@@ -219,7 +219,7 @@ static void *pktio_queue_thread(void *arg)
  */
 int main(int argc, char *argv[])
 {
-	odp_linux_pthread_t thread_tbl[MAX_WORKERS];
+	odph_linux_pthread_t thread_tbl[MAX_WORKERS];
 	odp_buffer_pool_t pool;
 	int thr_id;
 	int num_workers;
@@ -360,12 +360,12 @@ int main(int argc, char *argv[])
 		 * Create threads one-by-one instead of all-at-once,
 		 * because each thread might get different arguments
 		 */
-		odp_linux_pthread_create(&thread_tbl[i], 1, i,
-					 pktio_queue_thread, NULL);
+		odph_linux_pthread_create(&thread_tbl[i], 1, i,
+					  pktio_queue_thread, NULL);
 	}
 
 	/* Master thread waits for other threads to exit */
-	odp_linux_pthread_join(thread_tbl, num_workers);
+	odph_linux_pthread_join(thread_tbl, num_workers);
 
 	printf("Exit\n\n");
 
@@ -393,7 +393,7 @@ static int drop_err_pkts(odp_packet_t pkt_tbl[], unsigned len)
 		pkt = pkt_tbl[i];
 
 		if (odp_unlikely(odp_packet_error(pkt))) {
-			odp_packet_free(pkt); /* Drop */
+			odph_packet_free(pkt); /* Drop */
 			pkt_cnt--;
 		} else if (odp_unlikely(i != j++)) {
 			pkt_tbl[j-1] = pkt;
@@ -412,16 +412,16 @@ static int drop_err_pkts(odp_packet_t pkt_tbl[], unsigned len)
 static void swap_pkt_addrs(odp_packet_t pkt_tbl[], unsigned len)
 {
 	odp_packet_t pkt;
-	odp_ethhdr_t *eth;
-	odp_ethaddr_t tmp_addr;
-	odp_ipv4hdr_t *ip;
+	odph_ethhdr_t *eth;
+	odph_ethaddr_t tmp_addr;
+	odph_ipv4hdr_t *ip;
 	uint32be_t ip_tmp_addr; /* tmp ip addr */
 	unsigned i;
 
 	for (i = 0; i < len; ++i) {
 		pkt = pkt_tbl[i];
 		if (odp_packet_inflag_eth(pkt)) {
-			eth = (odp_ethhdr_t *)odp_packet_l2(pkt);
+			eth = (odph_ethhdr_t *)odp_packet_l2(pkt);
 
 			tmp_addr = eth->dst;
 			eth->dst = eth->src;
@@ -429,7 +429,7 @@ static void swap_pkt_addrs(odp_packet_t pkt_tbl[], unsigned len)
 
 			if (odp_packet_inflag_ipv4(pkt)) {
 				/* IPv4 */
-				ip = (odp_ipv4hdr_t *)odp_packet_l3(pkt);
+				ip = (odph_ipv4hdr_t *)odp_packet_l3(pkt);
 
 				ip_tmp_addr  = ip->src_addr;
 				ip->src_addr = ip->dst_addr;
diff --git a/example/timer/odp_timer_test.c b/example/timer/odp_timer_test.c
index bf1d7df..4168856 100644
--- a/example/timer/odp_timer_test.c
+++ b/example/timer/odp_timer_test.c
@@ -17,7 +17,7 @@
 #include <odp.h>
 
 /* ODP helper for Linux apps */
-#include <helper/odp_linux.h>
+#include <odph_linux.h>
 
 /* GNU lib C */
 #include <getopt.h>
@@ -242,7 +242,7 @@ static void parse_args(int argc, char *argv[], test_args_t *args)
  */
 int main(int argc, char *argv[])
 {
-	odp_linux_pthread_t thread_tbl[MAX_WORKERS];
+	odph_linux_pthread_t thread_tbl[MAX_WORKERS];
 	test_args_t args;
 	int thr_id;
 	int num_workers;
@@ -373,11 +373,11 @@ int main(int argc, char *argv[])
 	odp_barrier_init_count(&test_barrier, num_workers);
 
 	/* Create and launch worker threads */
-	odp_linux_pthread_create(thread_tbl, num_workers, first_core,
-				 run_thread, &args);
+	odph_linux_pthread_create(thread_tbl, num_workers, first_core,
+				  run_thread, &args);
 
 	/* Wait for worker threads to exit */
-	odp_linux_pthread_join(thread_tbl, num_workers);
+	odph_linux_pthread_join(thread_tbl, num_workers);
 
 	printf("ODP timer test complete\n\n");
 
diff --git a/include/helper/odp_chksum.h b/helper/include/odph_chksum.h
similarity index 100%
rename from include/helper/odp_chksum.h
rename to helper/include/odph_chksum.h
diff --git a/helper/include/odph_eth.h b/helper/include/odph_eth.h
new file mode 100644
index 0000000..55a2b1e
--- /dev/null
+++ b/helper/include/odph_eth.h
@@ -0,0 +1,87 @@
+/* Copyright (c) 2014, Linaro Limited
+ * All rights reserved.
+ *
+ * SPDX-License-Identifier:     BSD-3-Clause
+ */
+
+
+/**
+ * @file
+ *
+ * ODP ethernet header
+ */
+
+#ifndef ODPH_ETH_H_
+#define ODPH_ETH_H_
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#include <odp_std_types.h>
+#include <odp_byteorder.h>
+#include <odp_align.h>
+#include <odp_debug.h>
+
+#define ODPH_ETHADDR_LEN     6    /**< Ethernet address length */
+#define ODPH_ETHHDR_LEN      14   /**< Ethernet header length */
+#define ODPH_VLANHDR_LEN     4    /**< VLAN header length */
+#define ODPH_ETH_LEN_MIN     60   /**< Min frame length (excl. CRC 4 bytes) */
+#define ODPH_ETH_LEN_MIN_CRC 64   /**< Min frame length (incl. CRC 4 bytes) */
+#define ODPH_ETH_LEN_MAX     1514 /**< Max frame length (excl. CRC 4 bytes) */
+#define ODPH_ETH_LEN_MAX_CRC 1518 /**< Max frame length (incl. CRC 4 bytes) */
+
+/**
+ * Ethernet MAC address
+ */
+typedef struct ODPH_PACKED {
+	uint8_t addr[ODPH_ETHADDR_LEN]; /**< @private Address */
+} odph_ethaddr_t;
+
+/** @internal Compile time assert */
+ODP_STATIC_ASSERT(sizeof(odph_ethaddr_t) == ODPH_ETHADDR_LEN, "ODPH_ETHADDR_T__SIZE_ERROR");
+
+/**
+ * Ethernet header
+ */
+typedef struct ODPH_PACKED {
+	odph_ethaddr_t dst; /**< Destination address */
+	odph_ethaddr_t src; /**< Source address */
+	uint16be_t type;   /**< Type */
+} odph_ethhdr_t;
+
+/** @internal Compile time assert */
+ODP_STATIC_ASSERT(sizeof(odph_ethhdr_t) == ODPH_ETHHDR_LEN, "ODPH_ETHHDR_T__SIZE_ERROR");
+
+/**
+ * VLAN header
+ *
+ * @todo Check usage of tpid vs ethertype. Check outer VLAN TPID.
+ */
+typedef struct ODPH_PACKED {
+	uint16be_t tpid;   /**< Tag protocol ID (located after ethhdr.src) */
+	uint16be_t tci;    /**< Priority / CFI / VLAN ID */
+} odph_vlanhdr_t;
+
+/** @internal Compile time assert */
+ODP_STATIC_ASSERT(sizeof(odph_vlanhdr_t) == ODPH_VLANHDR_LEN, "ODPH_VLANHDR_T__SIZE_ERROR");
+
+
+/* Ethernet header Ether Type ('type') values, a selected few */
+#define ODPH_ETHTYPE_IPV4       0x0800 /**< Internet Protocol version 4 */
+#define ODPH_ETHTYPE_ARP        0x0806 /**< Address Resolution Protocol */
+#define ODPH_ETHTYPE_RARP       0x8035 /**< Reverse Address Resolution Protocol*/
+#define ODPH_ETHTYPE_VLAN       0x8100 /**< VLAN-tagged frame IEEE 802.1Q */
+#define ODPH_ETHTYPE_VLAN_OUTER 0x88A8 /**< Stacked VLANs/QinQ, outer-tag/S-TAG*/
+#define ODPH_ETHTYPE_IPV6       0x86dd /**< Internet Protocol version 6 */
+#define ODPH_ETHTYPE_FLOW_CTRL  0x8808 /**< Ethernet flow control */
+#define ODPH_ETHTYPE_MPLS       0x8847 /**< MPLS unicast */
+#define ODPH_ETHTYPE_MPLS_MCAST 0x8848 /**< MPLS multicast */
+#define ODPH_ETHTYPE_MACSEC     0x88E5 /**< MAC security IEEE 802.1AE */
+#define ODPH_ETHTYPE_1588       0x88F7 /**< Precision Time Protocol IEEE 1588 */
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif
diff --git a/include/helper/odp_icmp.h b/helper/include/odph_icmp.h
similarity index 93%
rename from include/helper/odp_icmp.h
rename to helper/include/odph_icmp.h
index 5ac88b9..8414d7e 100644
--- a/include/helper/odp_icmp.h
+++ b/helper/include/odph_icmp.h
@@ -11,8 +11,8 @@
  * ODP ICMP header
  */
 
-#ifndef ODP_ICMP_H_
-#define ODP_ICMP_H_
+#ifndef ODPH_ICMP_H_
+#define ODPH_ICMP_H_
 
 #ifdef __cplusplus
 extern "C" {
@@ -23,10 +23,10 @@ extern "C" {
 #include <odp_byteorder.h>
 
 /** ICMP header length */
-#define ODP_ICMPHDR_LEN 8
+#define ODPH_ICMPHDR_LEN 8
 
 /** ICMP header */
-typedef struct ODP_PACKED {
+typedef struct ODPH_PACKED {
 	uint8_t type;		/**< message type */
 	uint8_t code;		/**< type sub-code */
 	uint16sum_t chksum;	/**< checksum of icmp header */
@@ -41,7 +41,7 @@ typedef struct ODP_PACKED {
 			uint16be_t mtu;
 		} frag;			/**< path mtu discovery */
 	} un;			/**< icmp sub header */
-} odp_icmphdr_t;
+} odph_icmphdr_t;
 
 #define ICMP_ECHOREPLY		0	/**< Echo Reply			*/
 #define ICMP_DEST_UNREACH	3	/**< Destination Unreachable	*/
@@ -90,7 +90,7 @@ typedef struct ODP_PACKED {
 								exceeded*/
 
 /** @internal Compile time assert */
-ODP_STATIC_ASSERT(sizeof(odp_icmphdr_t) == ODP_ICMPHDR_LEN, "ODP_ICMPHDR_T__SIZE_ERROR");
+ODP_STATIC_ASSERT(sizeof(odph_icmphdr_t) == ODPH_ICMPHDR_LEN, "ODPH_ICMPHDR_T__SIZE_ERROR");
 
 #ifdef __cplusplus
 }
diff --git a/include/helper/odp_ip.h b/helper/include/odph_ip.h
similarity index 57%
rename from include/helper/odp_ip.h
rename to helper/include/odph_ip.h
index fb04e4d..ca71c44 100644
--- a/include/helper/odp_ip.h
+++ b/helper/include/odph_ip.h
@@ -11,8 +11,8 @@
  * ODP IP header
  */
 
-#ifndef ODP_IP_H_
-#define ODP_IP_H_
+#ifndef ODPH_IP_H_
+#define ODPH_IP_H_
 
 #ifdef __cplusplus
 extern "C" {
@@ -21,34 +21,34 @@ extern "C" {
 #include <odp_align.h>
 #include <odp_debug.h>
 #include <odp_byteorder.h>
-#include <helper/odp_chksum.h>
+#include <odph_chksum.h>
 
 #include <string.h>
 
-#define ODP_IPV4             4  /**< IP version 4 */
-#define ODP_IPV4HDR_LEN     20  /**< Min length of IP header (no options) */
-#define ODP_IPV4HDR_IHL_MIN  5  /**< Minimum IHL value*/
+#define ODPH_IPV4             4  /**< IP version 4 */
+#define ODPH_IPV4HDR_LEN     20  /**< Min length of IP header (no options) */
+#define ODPH_IPV4HDR_IHL_MIN  5  /**< Minimum IHL value*/
 
 /** @internal Returns IPv4 version */
-#define ODP_IPV4HDR_VER(ver_ihl) (((ver_ihl) & 0xf0) >> 4)
+#define ODPH_IPV4HDR_VER(ver_ihl) (((ver_ihl) & 0xf0) >> 4)
 
 /** @internal Returns IPv4 header length */
-#define ODP_IPV4HDR_IHL(ver_ihl) ((ver_ihl) & 0x0f)
+#define ODPH_IPV4HDR_IHL(ver_ihl) ((ver_ihl) & 0x0f)
 
 /** @internal Returns IPv4 Don't fragment */
-#define ODP_IPV4HDR_FLAGS_DONT_FRAG(frag_offset)  ((frag_offset) & 0x4000)
+#define ODPH_IPV4HDR_FLAGS_DONT_FRAG(frag_offset)  ((frag_offset) & 0x4000)
 
 /** @internal Returns IPv4 more fragments */
-#define ODP_IPV4HDR_FLAGS_MORE_FRAGS(frag_offset)  ((frag_offset) & 0x2000)
+#define ODPH_IPV4HDR_FLAGS_MORE_FRAGS(frag_offset)  ((frag_offset) & 0x2000)
 
 /** @internal Returns IPv4 fragment offset */
-#define ODP_IPV4HDR_FRAG_OFFSET(frag_offset) ((frag_offset) & 0x1fff)
+#define ODPH_IPV4HDR_FRAG_OFFSET(frag_offset) ((frag_offset) & 0x1fff)
 
 /** @internal Returns true if IPv4 packet is a fragment */
-#define ODP_IPV4HDR_IS_FRAGMENT(frag_offset) ((frag_offset) & 0x3fff)
+#define ODPH_IPV4HDR_IS_FRAGMENT(frag_offset) ((frag_offset) & 0x3fff)
 
 /** IPv4 header */
-typedef struct ODP_PACKED {
+typedef struct ODPH_PACKED {
 	uint8_t    ver_ihl;     /**< Version / Header length */
 	uint8_t    tos;         /**< Type of service */
 	uint16be_t tot_len;     /**< Total length */
@@ -59,10 +59,10 @@ typedef struct ODP_PACKED {
 	uint16sum_t chksum;      /**< Checksum */
 	uint32be_t src_addr;    /**< Source address */
 	uint32be_t dst_addr;    /**< Destination address */
-} odp_ipv4hdr_t;
+} odph_ipv4hdr_t;
 
 /** @internal Compile time assert */
-ODP_STATIC_ASSERT(sizeof(odp_ipv4hdr_t) == ODP_IPV4HDR_LEN, "ODP_IPV4HDR_T__SIZE_ERROR");
+ODP_STATIC_ASSERT(sizeof(odph_ipv4hdr_t) == ODPH_IPV4HDR_LEN, "ODPH_IPV4HDR_T__SIZE_ERROR");
 
 /**
  * Check if IPv4 checksum is valid
@@ -71,18 +71,18 @@ ODP_STATIC_ASSERT(sizeof(odp_ipv4hdr_t) == ODP_IPV4HDR_LEN, "ODP_IPV4HDR_T__SIZE
  *
  * @return 1 if checksum is valid, otherwise 0
  */
-static inline int odp_ipv4_csum_valid(odp_packet_t pkt)
+static inline int odph_ipv4_csum_valid(odp_packet_t pkt)
 {
 	uint16be_t res = 0;
 	uint16_t *w;
-	int nleft = sizeof(odp_ipv4hdr_t);
-	odp_ipv4hdr_t ip;
+	int nleft = sizeof(odph_ipv4hdr_t);
+	odph_ipv4hdr_t ip;
 	uint16be_t chksum;
 
 	if (!odp_packet_l3_offset(pkt))
 		return 0;
 
-	memcpy(&ip, odp_packet_l3(pkt), sizeof(odp_ipv4hdr_t));
+	memcpy(&ip, odp_packet_l3(pkt), sizeof(odph_ipv4hdr_t));
 	w = (uint16_t *)(void *)&ip;
 	chksum = ip.chksum;
 	ip.chksum = 0x0;
@@ -101,52 +101,52 @@ static inline int odp_ipv4_csum_valid(odp_packet_t pkt)
  *
  * @return IPv4 checksum in host cpu order, or 0 on failure
  */
-static inline uint16sum_t odp_ipv4_csum_update(odp_packet_t pkt)
+static inline uint16sum_t odph_ipv4_csum_update(odp_packet_t pkt)
 {
 	uint16_t *w;
-	odp_ipv4hdr_t *ip;
-	int nleft = sizeof(odp_ipv4hdr_t);
+	odph_ipv4hdr_t *ip;
+	int nleft = sizeof(odph_ipv4hdr_t);
 
 	if (!odp_packet_l3_offset(pkt))
 		return 0;
 
-	ip = (odp_ipv4hdr_t *)odp_packet_l3(pkt);
+	ip = (odph_ipv4hdr_t *)odp_packet_l3(pkt);
 	w = (uint16_t *)(void *)ip;
 	ip->chksum = odp_chksum(w, nleft);
 	return ip->chksum;
 }
 
 /** IPv6 version */
-#define ODP_IPV6 6
+#define ODPH_IPV6 6
 
 /** IPv6 header length */
-#define ODP_IPV6HDR_LEN 40
+#define ODPH_IPV6HDR_LEN 40
 
 /**
  * IPv6 header
  */
-typedef struct ODP_PACKED {
+typedef struct ODPH_PACKED {
 	uint32be_t ver_tc_flow;  /**< Version / Traffic class / Flow label */
 	uint16be_t payload_len;  /**< Payload length */
 	uint8_t    next_hdr;     /**< Next header */
 	uint8_t    hop_limit;    /**< Hop limit */
 	uint8_t    src_addr[16]; /**< Source address */
 	uint8_t    dst_addr[16]; /**< Destination address */
-} odp_ipv6hdr_t;
+} odph_ipv6hdr_t;
 
 /** @internal Compile time assert */
-ODP_STATIC_ASSERT(sizeof(odp_ipv6hdr_t) == ODP_IPV6HDR_LEN, "ODP_IPV6HDR_T__SIZE_ERROR");
+ODP_STATIC_ASSERT(sizeof(odph_ipv6hdr_t) == ODPH_IPV6HDR_LEN, "ODPH_IPV6HDR_T__SIZE_ERROR");
 
 /** @name
  * IP protocol values (IPv4:'proto' or IPv6:'next_hdr')
  * @{*/
-#define ODP_IPPROTO_ICMP 0x01 /**< Internet Control Message Protocol (1) */
-#define ODP_IPPROTO_TCP  0x06 /**< Transmission Control Protocol (6) */
-#define ODP_IPPROTO_UDP  0x11 /**< User Datagram Protocol (17) */
-#define ODP_IPPROTO_SCTP 0x84 /**< Stream Control Transmission Protocol (132) */
-#define ODP_IPPROTO_FRAG 0x2C /**< Fragment (44) */
-#define ODP_IPPROTO_AH   0x33 /**< Authentication Header (51) */
-#define ODP_IPPROTO_ESP  0x32 /**< Encapsulating Security Payload (50) */
+#define ODPH_IPPROTO_ICMP 0x01 /**< Internet Control Message Protocol (1) */
+#define ODPH_IPPROTO_TCP  0x06 /**< Transmission Control Protocol (6) */
+#define ODPH_IPPROTO_UDP  0x11 /**< User Datagram Protocol (17) */
+#define ODPH_IPPROTO_SCTP 0x84 /**< Stream Control Transmission Protocol (132) */
+#define ODPH_IPPROTO_FRAG 0x2C /**< Fragment (44) */
+#define ODPH_IPPROTO_AH   0x33 /**< Authentication Header (51) */
+#define ODPH_IPPROTO_ESP  0x32 /**< Encapsulating Security Payload (50) */
 /**@}*/
 
 #ifdef __cplusplus
diff --git a/include/helper/odp_linux.h b/helper/include/odph_linux.h
similarity index 88%
rename from include/helper/odp_linux.h
rename to helper/include/odph_linux.h
index 3076c22..1ea349a 100644
--- a/include/helper/odp_linux.h
+++ b/helper/include/odph_linux.h
@@ -29,7 +29,7 @@ typedef struct {
 	pthread_t      thread; /**< @private Pthread */
 	pthread_attr_t attr;   /**< @private Pthread attributes */
 
-} odp_linux_pthread_t;
+} odph_linux_pthread_t;
 
 
 /**
@@ -44,7 +44,7 @@ typedef struct {
  * @param start_routine Thread start function
  * @param arg           Thread argument
  */
-void odp_linux_pthread_create(odp_linux_pthread_t *thread_tbl,
+void odph_linux_pthread_create(odph_linux_pthread_t *thread_tbl,
 			      int num, int first_core,
 			      void *(*start_routine) (void *), void *arg);
 
@@ -58,7 +58,7 @@ void odp_linux_pthread_create(odp_linux_pthread_t *thread_tbl,
  * @param num           Number of threads to create
  *
  */
-void odp_linux_pthread_join(odp_linux_pthread_t *thread_tbl, int num);
+void odph_linux_pthread_join(odph_linux_pthread_t *thread_tbl, int num);
 
 
 #ifdef __cplusplus
diff --git a/include/helper/odp_packet_helper.h b/helper/include/odph_packet.h
similarity index 83%
rename from include/helper/odp_packet_helper.h
rename to helper/include/odph_packet.h
index db12028..c18f48d 100644
--- a/include/helper/odp_packet_helper.h
+++ b/helper/include/odph_packet.h
@@ -11,8 +11,8 @@
  * Optional ODP packet helper functions
  */
 
-#ifndef ODP_PACKET_HELPER_H_
-#define ODP_PACKET_HELPER_H_
+#ifndef ODPH_PACKET_HELPER_H_
+#define ODPH_PACKET_HELPER_H_
 
 #ifdef __cplusplus
 extern "C" {
@@ -29,7 +29,7 @@ extern "C" {
  *
  * @return 1 if valid, otherwise 0
  */
-static inline int odp_packet_is_valid(odp_packet_t pkt)
+static inline int odph_packet_is_valid(odp_packet_t pkt)
 {
 	odp_buffer_t buf = odp_buffer_from_packet(pkt);
 
@@ -45,7 +45,7 @@ static inline int odp_packet_is_valid(odp_packet_t pkt)
  *
  * @return Packet handle or ODP_PACKET_INVALID
  */
-static inline odp_packet_t odp_packet_alloc(odp_buffer_pool_t pool_id)
+static inline odp_packet_t odph_packet_alloc(odp_buffer_pool_t pool_id)
 {
 	odp_packet_t pkt;
 	odp_buffer_t buf;
@@ -65,7 +65,7 @@ static inline odp_packet_t odp_packet_alloc(odp_buffer_pool_t pool_id)
  *
  * @param pkt  Packet handle
  */
-static inline void odp_packet_free(odp_packet_t pkt)
+static inline void odph_packet_free(odp_packet_t pkt)
 {
 	odp_buffer_t buf = odp_buffer_from_packet(pkt);
 
@@ -82,7 +82,7 @@ static inline void odp_packet_free(odp_packet_t pkt)
  *
  * @return Packet buffer maximum data size
  */
-static inline size_t odp_packet_buf_size(odp_packet_t pkt)
+static inline size_t odph_packet_buf_size(odp_packet_t pkt)
 {
 	odp_buffer_t buf = odp_buffer_from_packet(pkt);
 
diff --git a/include/helper/odp_ring.h b/helper/include/odph_ring.h
similarity index 87%
rename from include/helper/odp_ring.h
rename to helper/include/odph_ring.h
index 0911531..76c1db8 100644
--- a/include/helper/odp_ring.h
+++ b/helper/include/odph_ring.h
@@ -89,8 +89,8 @@
  *
  */
 
-#ifndef ODP_RING_H_
-#define ODP_RING_H_
+#ifndef ODPH_RING_H_
+#define ODPH_RING_H_
 
 #ifdef __cplusplus
 extern "C" {
@@ -103,15 +103,15 @@ extern "C" {
 #include <errno.h>
 #include <sys/queue.h>
 
-enum odp_ring_queue_behavior {
-	ODP_RING_QUEUE_FIXED = 0, /**< Enq/Deq a fixed number
+enum odph_ring_queue_behavior {
+	ODPH_RING_QUEUE_FIXED = 0, /**< Enq/Deq a fixed number
 				of items from a ring */
-	ODP_RING_QUEUE_VARIABLE   /**< Enq/Deq as many items
+	ODPH_RING_QUEUE_VARIABLE   /**< Enq/Deq as many items
 				a possible from ring */
 };
 
 
-#define ODP_RING_NAMESIZE 32 /**< The maximum length of a ring name. */
+#define ODPH_RING_NAMESIZE 32 /**< The maximum length of a ring name. */
 
 /**
  * An ODP ring structure.
@@ -123,12 +123,12 @@ enum odp_ring_queue_behavior {
  * values in a modulo-32bit base: that's why the overflow of the indexes is not
  * a problem.
  */
-typedef struct odp_ring {
+typedef struct odph_ring {
 	/** @private Next in list. */
-	TAILQ_ENTRY(odp_ring) next;
+	TAILQ_ENTRY(odph_ring) next;
 
 	/** @private Name of the ring. */
-	char name[ODP_RING_NAMESIZE];
+	char name[ODPH_RING_NAMESIZE];
 	/** @private Flags supplied at creation. */
 	int flags;
 
@@ -153,13 +153,13 @@ typedef struct odp_ring {
 
 	/** @private Memory space of ring starts here. */
 	void *ring[0] ODP_ALIGNED_CACHE;
-} odp_ring_t;
+} odph_ring_t;
 
 
-#define ODP_RING_F_SP_ENQ 0x0001 /* The default enqueue is "single-producer". */
-#define ODP_RING_F_SC_DEQ 0x0002 /* The default dequeue is "single-consumer". */
-#define ODP_RING_QUOT_EXCEED (1 << 31)  /* Quota exceed for burst ops */
-#define ODP_RING_SZ_MASK  (unsigned)(0x0fffffff) /* Ring size mask */
+#define ODPH_RING_F_SP_ENQ 0x0001 /* The default enqueue is "single-producer".*/
+#define ODPH_RING_F_SC_DEQ 0x0002 /* The default dequeue is "single-consumer".*/
+#define ODPH_RING_QUOT_EXCEED (1 << 31)  /* Quota exceed for burst ops */
+#define ODPH_RING_SZ_MASK  (unsigned)(0x0fffffff) /* Ring size mask */
 
 
 /**
@@ -191,7 +191,7 @@ typedef struct odp_ring {
  *    - EEXIST - a memzone with the same name already exists
  *    - ENOMEM - no appropriate memory area found in which to create memzone
  */
-odp_ring_t *odp_ring_create(const char *name, unsigned count,
+odph_ring_t *odph_ring_create(const char *name, unsigned count,
 			    unsigned flags);
 
 
@@ -210,14 +210,14 @@ odp_ring_t *odp_ring_create(const char *name, unsigned count,
  * @return 0: Success; water mark changed.
  *		-EINVAL: Invalid water mark value.
  */
-int odp_ring_set_water_mark(odp_ring_t *r, unsigned count);
+int odph_ring_set_water_mark(odph_ring_t *r, unsigned count);
 
 /**
  * Dump the status of the ring to the console.
  *
  * @param r A pointer to the ring structure.
  */
-void odp_ring_dump(const odp_ring_t *r);
+void odph_ring_dump(const odph_ring_t *r);
 
 /**
  * Enqueue several objects on the ring (multi-producers safe).
@@ -244,8 +244,9 @@ void odp_ring_dump(const odp_ring_t *r);
  *   if behavior = ODP_RING_QUEUE_VARIABLE
  *   - n: Actual number of objects enqueued.
  */
-int __odp_ring_mp_do_enqueue(odp_ring_t *r, void * const *obj_table,
-			     unsigned n, enum odp_ring_queue_behavior behavior);
+int __odph_ring_mp_do_enqueue(odph_ring_t *r, void * const *obj_table,
+			      unsigned n,
+			      enum odph_ring_queue_behavior behavior);
 
 /**
  * Enqueue several objects on a ring (NOT multi-producers safe).
@@ -269,8 +270,9 @@ int __odp_ring_mp_do_enqueue(odp_ring_t *r, void * const *obj_table,
  *   if behavior = ODP_RING_QUEUE_VARIABLE
  *   - n: Actual number of objects enqueued.
  */
-int __odp_ring_sp_do_enqueue(odp_ring_t *r, void * const *obj_table,
-			     unsigned n, enum odp_ring_queue_behavior behavior);
+int __odph_ring_sp_do_enqueue(odph_ring_t *r, void * const *obj_table,
+			      unsigned n,
+			      enum odph_ring_queue_behavior behavior);
 
 /**
  * Dequeue several objects from a ring (multi-consumers safe). When
@@ -299,8 +301,9 @@ int __odp_ring_sp_do_enqueue(odp_ring_t *r, void * const *obj_table,
  *   - n: Actual number of objects dequeued.
  */
 
-int __odp_ring_mc_do_dequeue(odp_ring_t *r, void **obj_table,
-			     unsigned n, enum odp_ring_queue_behavior behavior);
+int __odph_ring_mc_do_dequeue(odph_ring_t *r, void **obj_table,
+			      unsigned n,
+			      enum odph_ring_queue_behavior behavior);
 
 /**
  * Dequeue several objects from a ring (NOT multi-consumers safe).
@@ -325,8 +328,9 @@ int __odp_ring_mc_do_dequeue(odp_ring_t *r, void **obj_table,
  *   if behavior = ODP_RING_QUEUE_VARIABLE
  *   - n: Actual number of objects dequeued.
  */
-int __odp_ring_sc_do_dequeue(odp_ring_t *r, void **obj_table,
-			     unsigned n, enum odp_ring_queue_behavior behavior);
+int __odph_ring_sc_do_dequeue(odph_ring_t *r, void **obj_table,
+			      unsigned n,
+			      enum odph_ring_queue_behavior behavior);
 
 /**
  * Enqueue several objects on the ring (multi-producers safe).
@@ -346,8 +350,8 @@ int __odp_ring_sc_do_dequeue(odp_ring_t *r, void **obj_table,
  *     high water mark is exceeded.
  *   - -ENOBUFS: Not enough room in the ring to enqueue, no object is enqueued.
  */
-int odp_ring_mp_enqueue_bulk(odp_ring_t *r, void * const *obj_table,
-			     unsigned n);
+int odph_ring_mp_enqueue_bulk(odph_ring_t *r, void * const *obj_table,
+			      unsigned n);
 
 /**
  * Enqueue several objects on a ring (NOT multi-producers safe).
@@ -364,8 +368,8 @@ int odp_ring_mp_enqueue_bulk(odp_ring_t *r, void * const *obj_table,
  *     high water mark is exceeded.
  *   - -ENOBUFS: Not enough room in the ring to enqueue; no object is enqueued.
  */
-int odp_ring_sp_enqueue_bulk(odp_ring_t *r, void * const *obj_table,
-			     unsigned n);
+int odph_ring_sp_enqueue_bulk(odph_ring_t *r, void * const *obj_table,
+			      unsigned n);
 
 /**
  * Dequeue several objects from a ring (multi-consumers safe).
@@ -384,7 +388,7 @@ int odp_ring_sp_enqueue_bulk(odp_ring_t *r, void * const *obj_table,
  *   - -ENOENT: Not enough entries in the ring to dequeue; no object is
  *     dequeued.
  */
-int odp_ring_mc_dequeue_bulk(odp_ring_t *r, void **obj_table, unsigned n);
+int odph_ring_mc_dequeue_bulk(odph_ring_t *r, void **obj_table, unsigned n);
 
 /**
  * Dequeue several objects from a ring (NOT multi-consumers safe).
@@ -401,7 +405,7 @@ int odp_ring_mc_dequeue_bulk(odp_ring_t *r, void **obj_table, unsigned n);
  *   - -ENOENT: Not enough entries in the ring to dequeue; no object is
  *     dequeued.
  */
-int odp_ring_sc_dequeue_bulk(odp_ring_t *r, void **obj_table, unsigned n);
+int odph_ring_sc_dequeue_bulk(odph_ring_t *r, void **obj_table, unsigned n);
 
 /**
  * Test if a ring is full.
@@ -412,7 +416,7 @@ int odp_ring_sc_dequeue_bulk(odp_ring_t *r, void **obj_table, unsigned n);
  *   - 1: The ring is full.
  *   - 0: The ring is not full.
  */
-int odp_ring_full(const odp_ring_t *r);
+int odph_ring_full(const odph_ring_t *r);
 
 /**
  * Test if a ring is empty.
@@ -423,7 +427,7 @@ int odp_ring_full(const odp_ring_t *r);
  *   - 1: The ring is empty.
  *   - 0: The ring is not empty.
  */
-int odp_ring_empty(const odp_ring_t *r);
+int odph_ring_empty(const odph_ring_t *r);
 
 /**
  * Return the number of entries in a ring.
@@ -433,7 +437,7 @@ int odp_ring_empty(const odp_ring_t *r);
  * @return
  *   The number of entries in the ring.
  */
-unsigned odp_ring_count(const odp_ring_t *r);
+unsigned odph_ring_count(const odph_ring_t *r);
 
 /**
  * Return the number of free entries in a ring.
@@ -443,14 +447,14 @@ unsigned odp_ring_count(const odp_ring_t *r);
  * @return
  *   The number of free entries in the ring.
  */
-unsigned odp_ring_free_count(const odp_ring_t *r);
+unsigned odph_ring_free_count(const odph_ring_t *r);
 
 /**
  * search ring by name
  * @param name	ring name to search
  * @return	pointer to ring otherwise NULL
  */
-odp_ring_t *odp_ring_lookup(const char *name);
+odph_ring_t *odph_ring_lookup(const char *name);
 
 /**
  * Enqueue several objects on the ring (multi-producers safe).
@@ -467,8 +471,8 @@ odp_ring_t *odp_ring_lookup(const char *name);
  * @return
  *   - n: Actual number of objects enqueued.
  */
-int odp_ring_mp_enqueue_burst(odp_ring_t *r, void * const *obj_table,
-			      unsigned n);
+int odph_ring_mp_enqueue_burst(odph_ring_t *r, void * const *obj_table,
+			       unsigned n);
 
 /**
  * Enqueue several objects on a ring (NOT multi-producers safe).
@@ -482,8 +486,8 @@ int odp_ring_mp_enqueue_burst(odp_ring_t *r, void * const *obj_table,
  * @return
  *   - n: Actual number of objects enqueued.
  */
-int odp_ring_sp_enqueue_burst(odp_ring_t *r, void * const *obj_table,
-			      unsigned n);
+int odph_ring_sp_enqueue_burst(odph_ring_t *r, void * const *obj_table,
+			       unsigned n);
 /**
  * Enqueue several objects on a ring.
  *
@@ -500,8 +504,8 @@ int odp_ring_sp_enqueue_burst(odp_ring_t *r, void * const *obj_table,
  * @return
  *   - n: Actual number of objects enqueued.
  */
-int odp_ring_enqueue_burst(odp_ring_t *r, void * const *obj_table,
-			   unsigned n);
+int odph_ring_enqueue_burst(odph_ring_t *r, void * const *obj_table,
+			    unsigned n);
 
 /**
  * Dequeue several objects from a ring (multi-consumers safe). When the request
@@ -520,7 +524,7 @@ int odp_ring_enqueue_burst(odp_ring_t *r, void * const *obj_table,
  * @return
  *   - n: Actual number of objects dequeued, 0 if ring is empty
  */
-int odp_ring_mc_dequeue_burst(odp_ring_t *r, void **obj_table, unsigned n);
+int odph_ring_mc_dequeue_burst(odph_ring_t *r, void **obj_table, unsigned n);
 
 /**
  * Dequeue several objects from a ring (NOT multi-consumers safe).When the
@@ -536,7 +540,7 @@ int odp_ring_mc_dequeue_burst(odp_ring_t *r, void **obj_table, unsigned n);
  * @return
  *   - n: Actual number of objects dequeued, 0 if ring is empty
  */
-int odp_ring_sc_dequeue_burst(odp_ring_t *r, void **obj_table, unsigned n);
+int odph_ring_sc_dequeue_burst(odph_ring_t *r, void **obj_table, unsigned n);
 
 /**
  * Dequeue multiple objects from a ring up to a maximum number.
@@ -554,17 +558,17 @@ int odp_ring_sc_dequeue_burst(odp_ring_t *r, void **obj_table, unsigned n);
  * @return
  *   - Number of objects dequeued, or a negative error code on error
  */
-int odp_ring_dequeue_burst(odp_ring_t *r, void **obj_table, unsigned n);
+int odph_ring_dequeue_burst(odph_ring_t *r, void **obj_table, unsigned n);
 
 /**
  * dump the status of all rings on the console
  */
-void odp_ring_list_dump(void);
+void odph_ring_list_dump(void);
 
 /**
  * initialise ring tailq
  */
-void odp_ring_tailq_init(void);
+void odph_ring_tailq_init(void);
 
 #ifdef __cplusplus
 }
diff --git a/include/helper/odp_udp.h b/helper/include/odph_udp.h
similarity index 74%
rename from include/helper/odp_udp.h
rename to helper/include/odph_udp.h
index 966d7f3..3970f00 100644
--- a/include/helper/odp_udp.h
+++ b/helper/include/odph_udp.h
@@ -11,8 +11,8 @@
  * ODP UDP header
  */
 
-#ifndef ODP_UDP_H_
-#define ODP_UDP_H_
+#ifndef ODPH_UDP_H_
+#define ODPH_UDP_H_
 
 #ifdef __cplusplus
 extern "C" {
@@ -23,24 +23,24 @@ extern "C" {
 #include <odp_byteorder.h>
 
 /** UDP header length */
-#define ODP_UDPHDR_LEN 8
+#define ODPH_UDPHDR_LEN 8
 
 /** UDP header */
-typedef struct ODP_PACKED {
+typedef struct ODPH_PACKED {
 	uint16be_t src_port; /**< Source port */
 	uint16be_t dst_port; /**< Destination port */
 	uint16be_t length;   /**< UDP datagram length in bytes (header+data) */
 	uint16be_t chksum;   /**< UDP header and data checksum (0 if not used)*/
-} odp_udphdr_t;
+} odph_udphdr_t;
 
 /** UDP pseudo header */
-typedef struct ODP_PACKET {
+typedef struct ODPH_PACKET {
 	uint32be_t src_addr; /**< Source addr */
 	uint32be_t dst_addr; /**< Destination addr */
 	uint8_t pad;	     /**< pad byte */
 	uint8_t proto;	     /**< UDP protocol */
 	uint16be_t length;   /**< data length */
-} odp_udpphdr_t;
+} odph_udpphdr_t;
 
 /**
  * UDP checksum
@@ -50,12 +50,12 @@ typedef struct ODP_PACKET {
  * @param pkt  calculate chksum for pkt
  * @return  checksum value
  */
-static inline uint16_t odp_ipv4_udp_chksum(odp_packet_t pkt)
+static inline uint16_t odph_ipv4_udp_chksum(odp_packet_t pkt)
 {
 	uint32_t sum = 0;
-	odp_udpphdr_t phdr;
-	odp_udphdr_t *udph;
-	odp_ipv4hdr_t *iph;
+	odph_udpphdr_t phdr;
+	odph_udphdr_t *udph;
+	odph_ipv4hdr_t *iph;
 	uint16_t udplen;
 
 	if (!odp_packet_l3_offset(pkt))
@@ -64,8 +64,8 @@ static inline uint16_t odp_ipv4_udp_chksum(odp_packet_t pkt)
 	if (!odp_packet_l4_offset(pkt))
 		return 0;
 
-	iph = (odp_ipv4hdr_t *)odp_packet_l3(pkt);
-	udph = (odp_udphdr_t *)odp_packet_l4(pkt);
+	iph = (odph_ipv4hdr_t *)odp_packet_l3(pkt);
+	udph = (odph_udphdr_t *)odp_packet_l4(pkt);
 	udplen = odp_be_to_cpu_16(udph->length);
 
 	/* the source ip */
@@ -74,12 +74,12 @@ static inline uint16_t odp_ipv4_udp_chksum(odp_packet_t pkt)
 	phdr.dst_addr = iph->dst_addr;
 	/* proto */
 	phdr.pad = 0;
-	phdr.proto = ODP_IPPROTO_UDP;
+	phdr.proto = ODPH_IPPROTO_UDP;
 	/* the length */
 	phdr.length = udph->length;
 
 	/* calc UDP pseudo header chksum */
-	sum =   (__odp_force uint32_t) odp_chksum(&phdr, sizeof(odp_udpphdr_t));
+	sum = (__odp_force uint32_t) odp_chksum(&phdr, sizeof(odph_udpphdr_t));
 	/* calc udp header and data chksum */
 	sum += (__odp_force uint32_t) odp_chksum(udph, udplen);
 
@@ -93,7 +93,7 @@ static inline uint16_t odp_ipv4_udp_chksum(odp_packet_t pkt)
 }
 
 /** @internal Compile time assert */
-ODP_STATIC_ASSERT(sizeof(odp_udphdr_t) == ODP_UDPHDR_LEN, "ODP_UDPHDR_T__SIZE_ERROR");
+ODP_STATIC_ASSERT(sizeof(odph_udphdr_t) == ODPH_UDPHDR_LEN, "ODPH_UDPHDR_T__SIZE_ERROR");
 
 #ifdef __cplusplus
 }
diff --git a/include/helper/odp_eth.h b/include/helper/odp_eth.h
deleted file mode 100644
index 542594b..0000000
--- a/include/helper/odp_eth.h
+++ /dev/null
@@ -1,87 +0,0 @@
-/* Copyright (c) 2014, Linaro Limited
- * All rights reserved.
- *
- * SPDX-License-Identifier:     BSD-3-Clause
- */
-
-
-/**
- * @file
- *
- * ODP ethernet header
- */
-
-#ifndef ODP_ETH_H_
-#define ODP_ETH_H_
-
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-#include <odp_std_types.h>
-#include <odp_byteorder.h>
-#include <odp_align.h>
-#include <odp_debug.h>
-
-#define ODP_ETHADDR_LEN     6    /**< Ethernet address length */
-#define ODP_ETHHDR_LEN      14   /**< Ethernet header length */
-#define ODP_VLANHDR_LEN     4    /**< VLAN header length */
-#define ODP_ETH_LEN_MIN     60   /**< Min frame length (excl. CRC 4 bytes) */
-#define ODP_ETH_LEN_MIN_CRC 64   /**< Min frame length (incl. CRC 4 bytes) */
-#define ODP_ETH_LEN_MAX     1514 /**< Max frame length (excl. CRC 4 bytes) */
-#define ODP_ETH_LEN_MAX_CRC 1518 /**< Max frame length (incl. CRC 4 bytes) */
-
-/**
- * Ethernet MAC address
- */
-typedef struct ODP_PACKED {
-	uint8_t addr[ODP_ETHADDR_LEN]; /**< @private Address */
-} odp_ethaddr_t;
-
-/** @internal Compile time assert */
-ODP_STATIC_ASSERT(sizeof(odp_ethaddr_t) == ODP_ETHADDR_LEN, "ODP_ETHADDR_T__SIZE_ERROR");
-
-/**
- * Ethernet header
- */
-typedef struct ODP_PACKED {
-	odp_ethaddr_t dst; /**< Destination address */
-	odp_ethaddr_t src; /**< Source address */
-	uint16be_t type;   /**< Type */
-} odp_ethhdr_t;
-
-/** @internal Compile time assert */
-ODP_STATIC_ASSERT(sizeof(odp_ethhdr_t) == ODP_ETHHDR_LEN, "ODP_ETHHDR_T__SIZE_ERROR");
-
-/**
- * VLAN header
- *
- * @todo Check usage of tpid vs ethertype. Check outer VLAN TPID.
- */
-typedef struct ODP_PACKED {
-	uint16be_t tpid;   /**< Tag protocol ID (located after ethhdr.src) */
-	uint16be_t tci;    /**< Priority / CFI / VLAN ID */
-} odp_vlanhdr_t;
-
-/** @internal Compile time assert */
-ODP_STATIC_ASSERT(sizeof(odp_vlanhdr_t) == ODP_VLANHDR_LEN, "ODP_VLANHDR_T__SIZE_ERROR");
-
-
-/* Ethernet header Ether Type ('type') values, a selected few */
-#define ODP_ETHTYPE_IPV4       0x0800 /**< Internet Protocol version 4 */
-#define ODP_ETHTYPE_ARP        0x0806 /**< Address Resolution Protocol */
-#define ODP_ETHTYPE_RARP       0x8035 /**< Reverse Address Resolution Protocol*/
-#define ODP_ETHTYPE_VLAN       0x8100 /**< VLAN-tagged frame IEEE 802.1Q */
-#define ODP_ETHTYPE_VLAN_OUTER 0x88A8 /**< Stacked VLANs/QinQ, outer-tag/S-TAG*/
-#define ODP_ETHTYPE_IPV6       0x86dd /**< Internet Protocol version 6 */
-#define ODP_ETHTYPE_FLOW_CTRL  0x8808 /**< Ethernet flow control */
-#define ODP_ETHTYPE_MPLS       0x8847 /**< MPLS unicast */
-#define ODP_ETHTYPE_MPLS_MCAST 0x8848 /**< MPLS multicast */
-#define ODP_ETHTYPE_MACSEC     0x88E5 /**< MAC security IEEE 802.1AE */
-#define ODP_ETHTYPE_1588       0x88F7 /**< Precision Time Protocol IEEE 1588 */
-
-#ifdef __cplusplus
-}
-#endif
-
-#endif
diff --git a/platform/linux-dpdk/Makefile.am b/platform/linux-dpdk/Makefile.am
index ff49b7d..a59435f 100644
--- a/platform/linux-dpdk/Makefile.am
+++ b/platform/linux-dpdk/Makefile.am
@@ -16,7 +16,7 @@ AM_CFLAGS +=  -I$(srcdir)/include
 AM_CFLAGS +=  -I$(srcdir)/include/api
 AM_CFLAGS +=  -I$(top_srcdir)/platform/linux-generic/include
 AM_CFLAGS +=  -I$(top_srcdir)/platform/linux-generic/include/api
-AM_CFLAGS +=  -I$(top_srcdir)/include
+AM_CFLAGS +=  -I$(top_srcdir)/helper/include
 
 DPDK_LIBS="-lintel_dpdk -ldl"
 LIBS += $(DPDK_LIBS)
@@ -54,13 +54,13 @@ include_HEADERS = \
 
 subdirheadersdir = $(includedir)/helper
 subdirheaders_HEADERS = \
-			$(top_srcdir)/include/helper/odp_chksum.h \
-			$(top_srcdir)/include/helper/odp_eth.h \
-			$(top_srcdir)/include/helper/odp_ip.h \
-			$(top_srcdir)/include/helper/odp_linux.h \
-			$(top_srcdir)/include/helper/odp_packet_helper.h \
-			$(top_srcdir)/include/helper/odp_ring.h \
-			$(top_srcdir)/include/helper/odp_udp.h
+			$(top_srcdir)/helper/include/odph_chksum.h \
+			$(top_srcdir)/helper/include/odph_eth.h \
+			$(top_srcdir)/helper/include/odph_ip.h \
+			$(top_srcdir)/helper/include/odph_linux.h \
+			$(top_srcdir)/helper/include/odph_packet.h \
+			$(top_srcdir)/helper/include/odph_ring.h \
+			$(top_srcdir)/helper/include/odph_udp.h
 
 __LIB__libodp_la_SOURCES = \
 			   ../linux-generic/odp_barrier.c \
diff --git a/platform/linux-dpdk/include/odp_packet_dpdk.h b/platform/linux-dpdk/include/odp_packet_dpdk.h
index bcf9aa5..c3a2b70 100644
--- a/platform/linux-dpdk/include/odp_packet_dpdk.h
+++ b/platform/linux-dpdk/include/odp_packet_dpdk.h
@@ -10,8 +10,8 @@
 #include <stdint.h>
 #include <net/if.h>
 
-#include <helper/odp_eth.h>
-#include <helper/odp_packet_helper.h>
+#include <odph_eth.h>
+#include <odph_packet.h>
 #include <odp_align.h>
 #include <odp_debug.h>
 #include <odp_packet.h>
diff --git a/platform/linux-dpdk/odp_linux.c b/platform/linux-dpdk/odp_linux.c
index 067bd99..96c91a5 100644
--- a/platform/linux-dpdk/odp_linux.c
+++ b/platform/linux-dpdk/odp_linux.c
@@ -14,7 +14,7 @@
 #include <stdio.h>
 #include <assert.h>
 
-#include <helper/odp_linux.h>
+#include <odph_linux.h>
 #include <odp_internal.h>
 #include <odp_thread.h>
 #include <odp_init.h>
@@ -41,7 +41,7 @@ static void *odp_run_start_routine(void *arg)
 }
 
 
-void odp_linux_pthread_create(odp_linux_pthread_t *thread_tbl, int num,
+void odph_linux_pthread_create(odph_linux_pthread_t *thread_tbl, int num,
 		int first_core, void *(*start_routine) (void *), void *arg)
 {
 	int i;
@@ -82,7 +82,7 @@ void odp_linux_pthread_create(odp_linux_pthread_t *thread_tbl, int num,
 }
 
 
-void odp_linux_pthread_join(odp_linux_pthread_t *thread_tbl, int num)
+void odph_linux_pthread_join(odph_linux_pthread_t *thread_tbl, int num)
 {
 	uint32_t lcore_id;
 
diff --git a/platform/linux-dpdk/odp_packet.c b/platform/linux-dpdk/odp_packet.c
index c34e626..edfd06d 100644
--- a/platform/linux-dpdk/odp_packet.c
+++ b/platform/linux-dpdk/odp_packet.c
@@ -9,16 +9,16 @@
 #include <odp_hints.h>
 #include <odp_byteorder.h>
 
-#include <helper/odp_eth.h>
-#include <helper/odp_ip.h>
+#include <odph_eth.h>
+#include <odph_ip.h>
 
 #include <string.h>
 #include <stdio.h>
 
-static inline uint8_t parse_ipv4(odp_packet_hdr_t *pkt_hdr, odp_ipv4hdr_t *ipv4,
-				size_t *offset_out);
-static inline uint8_t parse_ipv6(odp_packet_hdr_t *pkt_hdr, odp_ipv6hdr_t *ipv6,
-				size_t *offset_out);
+static inline uint8_t parse_ipv4(odp_packet_hdr_t *pkt_hdr,
+				 odph_ipv4hdr_t *ipv4, size_t *offset_out);
+static inline uint8_t parse_ipv6(odp_packet_hdr_t *pkt_hdr,
+				 odph_ipv6hdr_t *ipv6, size_t *offset_out);
 
 void odp_packet_init(odp_packet_t pkt)
 {
@@ -144,10 +144,10 @@ void odp_packet_set_l4_offset(odp_packet_t pkt, size_t offset)
 void odp_packet_parse(odp_packet_t pkt, size_t len, size_t frame_offset)
 {
 	odp_packet_hdr_t *const pkt_hdr = odp_packet_hdr(pkt);
-	odp_ethhdr_t *eth;
-	odp_vlanhdr_t *vlan;
-	odp_ipv4hdr_t *ipv4;
-	odp_ipv6hdr_t *ipv6;
+	odph_ethhdr_t *eth;
+	odph_vlanhdr_t *vlan;
+	odph_ipv4hdr_t *ipv4;
+	odph_ipv6hdr_t *ipv6;
 	uint16_t ethtype;
 	size_t offset = 0;
 	uint8_t ip_proto = 0;
@@ -156,10 +156,10 @@ void odp_packet_parse(odp_packet_t pkt, size_t len, size_t frame_offset)
 	pkt_hdr->frame_offset = frame_offset;
 	pkt_hdr->frame_len = len;
 
-	if (odp_unlikely(len < ODP_ETH_LEN_MIN)) {
+	if (odp_unlikely(len < ODPH_ETH_LEN_MIN)) {
 		pkt_hdr->error_flags.frame_len = 1;
 		return;
-	} else if (len > ODP_ETH_LEN_MAX) {
+	} else if (len > ODPH_ETH_LEN_MAX) {
 		pkt_hdr->input_flags.jumbo = 1;
 	}
 
@@ -167,40 +167,40 @@ void odp_packet_parse(odp_packet_t pkt, size_t len, size_t frame_offset)
 	pkt_hdr->input_flags.l2 = 1;
 	pkt_hdr->l2_offset = frame_offset;
 
-	eth = (odp_ethhdr_t *)odp_packet_start(pkt);
+	eth = (odph_ethhdr_t *)odp_packet_start(pkt);
 	ethtype = odp_be_to_cpu_16(eth->type);
-	vlan = (odp_vlanhdr_t *)&eth->type;
+	vlan = (odph_vlanhdr_t *)&eth->type;
 
-	if (ethtype == ODP_ETHTYPE_VLAN_OUTER) {
+	if (ethtype == ODPH_ETHTYPE_VLAN_OUTER) {
 		pkt_hdr->input_flags.vlan_qinq = 1;
 		ethtype = odp_be_to_cpu_16(vlan->tpid);
-		offset += sizeof(odp_vlanhdr_t);
+		offset += sizeof(odph_vlanhdr_t);
 		vlan = &vlan[1];
 	}
 
-	if (ethtype == ODP_ETHTYPE_VLAN) {
+	if (ethtype == ODPH_ETHTYPE_VLAN) {
 		pkt_hdr->input_flags.vlan = 1;
 		ethtype = odp_be_to_cpu_16(vlan->tpid);
-		offset += sizeof(odp_vlanhdr_t);
+		offset += sizeof(odph_vlanhdr_t);
 	}
 
 	/* Set l3_offset+flag only for known ethtypes */
 	switch (ethtype) {
-	case ODP_ETHTYPE_IPV4:
+	case ODPH_ETHTYPE_IPV4:
 		pkt_hdr->input_flags.ipv4 = 1;
 		pkt_hdr->input_flags.l3 = 1;
-		pkt_hdr->l3_offset = frame_offset + ODP_ETHHDR_LEN + offset;
-		ipv4 = (odp_ipv4hdr_t *)odp_packet_l3(pkt);
+		pkt_hdr->l3_offset = frame_offset + ODPH_ETHHDR_LEN + offset;
+		ipv4 = (odph_ipv4hdr_t *)odp_packet_l3(pkt);
 		ip_proto = parse_ipv4(pkt_hdr, ipv4, &offset);
 		break;
-	case ODP_ETHTYPE_IPV6:
+	case ODPH_ETHTYPE_IPV6:
 		pkt_hdr->input_flags.ipv6 = 1;
 		pkt_hdr->input_flags.l3 = 1;
-		pkt_hdr->l3_offset = frame_offset + ODP_ETHHDR_LEN + offset;
-		ipv6 = (odp_ipv6hdr_t *)odp_packet_l3(pkt);
+		pkt_hdr->l3_offset = frame_offset + ODPH_ETHHDR_LEN + offset;
+		ipv6 = (odph_ipv6hdr_t *)odp_packet_l3(pkt);
 		ip_proto = parse_ipv6(pkt_hdr, ipv6, &offset);
 		break;
-	case ODP_ETHTYPE_ARP:
+	case ODPH_ETHTYPE_ARP:
 		pkt_hdr->input_flags.arp = 1;
 		/* fall through */
 	default:
@@ -209,22 +209,22 @@ void odp_packet_parse(odp_packet_t pkt, size_t len, size_t frame_offset)
 	}
 
 	switch (ip_proto) {
-	case ODP_IPPROTO_UDP:
+	case ODPH_IPPROTO_UDP:
 		pkt_hdr->input_flags.udp = 1;
 		pkt_hdr->input_flags.l4 = 1;
 		pkt_hdr->l4_offset = pkt_hdr->l3_offset + offset;
 		break;
-	case ODP_IPPROTO_TCP:
+	case ODPH_IPPROTO_TCP:
 		pkt_hdr->input_flags.tcp = 1;
 		pkt_hdr->input_flags.l4 = 1;
 		pkt_hdr->l4_offset = pkt_hdr->l3_offset + offset;
 		break;
-	case ODP_IPPROTO_SCTP:
+	case ODPH_IPPROTO_SCTP:
 		pkt_hdr->input_flags.sctp = 1;
 		pkt_hdr->input_flags.l4 = 1;
 		pkt_hdr->l4_offset = pkt_hdr->l3_offset + offset;
 		break;
-	case ODP_IPPROTO_ICMP:
+	case ODPH_IPPROTO_ICMP:
 		pkt_hdr->input_flags.icmp = 1;
 		pkt_hdr->input_flags.l4 = 1;
 		pkt_hdr->l4_offset = pkt_hdr->l3_offset + offset;
@@ -239,19 +239,19 @@ void odp_packet_parse(odp_packet_t pkt, size_t len, size_t frame_offset)
 	}
 }
 
-static inline uint8_t parse_ipv4(odp_packet_hdr_t *pkt_hdr, odp_ipv4hdr_t *ipv4,
-				size_t *offset_out)
+static inline uint8_t parse_ipv4(odp_packet_hdr_t *pkt_hdr,
+				 odph_ipv4hdr_t *ipv4, size_t *offset_out)
 {
 	uint8_t ihl;
 	uint16_t frag_offset;
 
-	ihl = ODP_IPV4HDR_IHL(ipv4->ver_ihl);
-	if (odp_unlikely(ihl < ODP_IPV4HDR_IHL_MIN)) {
+	ihl = ODPH_IPV4HDR_IHL(ipv4->ver_ihl);
+	if (odp_unlikely(ihl < ODPH_IPV4HDR_IHL_MIN)) {
 		pkt_hdr->error_flags.ip_err = 1;
 		return 0;
 	}
 
-	if (odp_unlikely(ihl > ODP_IPV4HDR_IHL_MIN)) {
+	if (odp_unlikely(ihl > ODPH_IPV4HDR_IHL_MIN)) {
 		pkt_hdr->input_flags.ipopt = 1;
 		return 0;
 	}
@@ -262,13 +262,13 @@ static inline uint8_t parse_ipv4(odp_packet_hdr_t *pkt_hdr, odp_ipv4hdr_t *ipv4,
 	*  "fragment offset" field is nonzero (all fragments except the first)
 	*/
 	frag_offset = odp_be_to_cpu_16(ipv4->frag_offset);
-	if (odp_unlikely(ODP_IPV4HDR_IS_FRAGMENT(frag_offset))) {
+	if (odp_unlikely(ODPH_IPV4HDR_IS_FRAGMENT(frag_offset))) {
 		pkt_hdr->input_flags.ipfrag = 1;
 		return 0;
 	}
 
-	if (ipv4->proto == ODP_IPPROTO_ESP ||
-	    ipv4->proto == ODP_IPPROTO_AH) {
+	if (ipv4->proto == ODPH_IPPROTO_ESP ||
+	    ipv4->proto == ODPH_IPPROTO_AH) {
 		pkt_hdr->input_flags.ipsec = 1;
 		return 0;
 	}
@@ -279,24 +279,24 @@ static inline uint8_t parse_ipv4(odp_packet_hdr_t *pkt_hdr, odp_ipv4hdr_t *ipv4,
 	return ipv4->proto;
 }
 
-static inline uint8_t parse_ipv6(odp_packet_hdr_t *pkt_hdr, odp_ipv6hdr_t *ipv6,
-				size_t *offset_out)
+static inline uint8_t parse_ipv6(odp_packet_hdr_t *pkt_hdr,
+				 odph_ipv6hdr_t *ipv6, size_t *offset_out)
 {
-	if (ipv6->next_hdr == ODP_IPPROTO_ESP ||
-	    ipv6->next_hdr == ODP_IPPROTO_AH) {
+	if (ipv6->next_hdr == ODPH_IPPROTO_ESP ||
+	    ipv6->next_hdr == ODPH_IPPROTO_AH) {
 		pkt_hdr->input_flags.ipopt = 1;
 		pkt_hdr->input_flags.ipsec = 1;
 		return 0;
 	}
 
-	if (odp_unlikely(ipv6->next_hdr == ODP_IPPROTO_FRAG)) {
+	if (odp_unlikely(ipv6->next_hdr == ODPH_IPPROTO_FRAG)) {
 		pkt_hdr->input_flags.ipopt = 1;
 		pkt_hdr->input_flags.ipfrag = 1;
 		return 0;
 	}
 
 	/* Don't step through more extensions */
-	*offset_out = ODP_IPV6HDR_LEN;
+	*offset_out = ODPH_IPV6HDR_LEN;
 	return ipv6->next_hdr;
 }
 
diff --git a/platform/linux-generic/Makefile.am b/platform/linux-generic/Makefile.am
index f4dfdc1..949b8d1 100644
--- a/platform/linux-generic/Makefile.am
+++ b/platform/linux-generic/Makefile.am
@@ -3,7 +3,7 @@ include $(top_srcdir)/platform/Makefile.inc
 
 AM_CFLAGS +=  -I$(srcdir)/include
 AM_CFLAGS +=  -I$(srcdir)/include/api
-AM_CFLAGS +=  -I$(top_srcdir)/include
+AM_CFLAGS +=  -I$(top_srcdir)/helper/include
 
 include_HEADERS = \
 		  $(top_srcdir)/platform/linux-generic/include/api/odp.h \
@@ -42,13 +42,13 @@ include_HEADERS = \
 
 subdirheadersdir = $(includedir)/helper
 subdirheaders_HEADERS = \
-			$(top_srcdir)/include/helper/odp_chksum.h \
-			$(top_srcdir)/include/helper/odp_eth.h \
-			$(top_srcdir)/include/helper/odp_ip.h \
-			$(top_srcdir)/include/helper/odp_linux.h \
-			$(top_srcdir)/include/helper/odp_packet_helper.h \
-			$(top_srcdir)/include/helper/odp_ring.h \
-			$(top_srcdir)/include/helper/odp_udp.h
+			$(top_srcdir)/helper/include/odph_chksum.h \
+			$(top_srcdir)/helper/include/odph_eth.h \
+			$(top_srcdir)/helper/include/odph_ip.h \
+			$(top_srcdir)/helper/include/odph_linux.h \
+			$(top_srcdir)/helper/include/odph_packet.h \
+			$(top_srcdir)/helper/include/odph_ring.h \
+			$(top_srcdir)/helper/include/odph_udp.h
 
 __LIB__libodp_la_SOURCES = \
 			   odp_barrier.c \
diff --git a/platform/linux-generic/include/api/odp_align.h b/platform/linux-generic/include/api/odp_align.h
index 5ee61be..a93dd24 100644
--- a/platform/linux-generic/include/api/odp_align.h
+++ b/platform/linux-generic/include/api/odp_align.h
@@ -31,7 +31,7 @@ extern "C" {
 /**
  * Defines type/struct to be packed
  */
-#define ODP_PACKED __attribute__((__packed__))
+#define ODPH_PACKED __attribute__((__packed__))
 
 /**
  * Returns offset of member in type
diff --git a/platform/linux-generic/odp_crypto.c b/platform/linux-generic/odp_crypto.c
index bdd4694..fae546c 100644
--- a/platform/linux-generic/odp_crypto.c
+++ b/platform/linux-generic/odp_crypto.c
@@ -14,7 +14,7 @@
 #include <odp_shared_memory.h>
 #include <odp_crypto_internal.h>
 #include <odp_hints.h>
-#include <helper/odp_packet_helper.h>
+#include <odph_packet.h>
 
 #include <string.h>
 
@@ -370,7 +370,7 @@ odp_crypto_operation(odp_crypto_op_params_t *params,
 		if (completion_event == odp_buffer_from_packet(params->pkt))
 			completion_event =
 				odp_buffer_from_packet(params->out_pkt);
-		odp_packet_free(params->pkt);
+		odph_packet_free(params->pkt);
 		params->pkt = ODP_PACKET_INVALID;
 	}
 
diff --git a/platform/linux-generic/odp_linux.c b/platform/linux-generic/odp_linux.c
index 6e2b448..e21e467 100644
--- a/platform/linux-generic/odp_linux.c
+++ b/platform/linux-generic/odp_linux.c
@@ -14,7 +14,7 @@
 #include <stdio.h>
 #include <assert.h>
 
-#include <helper/odp_linux.h>
+#include <odph_linux.h>
 #include <odp_internal.h>
 #include <odp_thread.h>
 #include <odp_init.h>
@@ -45,7 +45,7 @@ static void *odp_run_start_routine(void *arg)
 }
 
 
-void odp_linux_pthread_create(odp_linux_pthread_t *thread_tbl, int num,
+void odph_linux_pthread_create(odph_linux_pthread_t *thread_tbl, int num,
 		int first_core, void *(*start_routine) (void *), void *arg)
 {
 	int i;
@@ -59,7 +59,7 @@ void odp_linux_pthread_create(odp_linux_pthread_t *thread_tbl, int num,
 	assert((first_core >= 0) && (first_core < core_count));
 	assert((num >= 0) && (num <= core_count));
 
-	memset(thread_tbl, 0, num * sizeof(odp_linux_pthread_t));
+	memset(thread_tbl, 0, num * sizeof(odph_linux_pthread_t));
 
 	for (i = 0; i < num; i++) {
 		pthread_attr_init(&thread_tbl[i].attr);
@@ -85,7 +85,7 @@ void odp_linux_pthread_create(odp_linux_pthread_t *thread_tbl, int num,
 }
 
 
-void odp_linux_pthread_join(odp_linux_pthread_t *thread_tbl, int num)
+void odph_linux_pthread_join(odph_linux_pthread_t *thread_tbl, int num)
 {
 	int i;
 
diff --git a/platform/linux-generic/odp_packet.c b/platform/linux-generic/odp_packet.c
index 13e2471..20137d0 100644
--- a/platform/linux-generic/odp_packet.c
+++ b/platform/linux-generic/odp_packet.c
@@ -9,16 +9,16 @@
 #include <odp_hints.h>
 #include <odp_byteorder.h>
 
-#include <helper/odp_eth.h>
-#include <helper/odp_ip.h>
+#include <odph_eth.h>
+#include <odph_ip.h>
 
 #include <string.h>
 #include <stdio.h>
 
-static inline uint8_t parse_ipv4(odp_packet_hdr_t *pkt_hdr, odp_ipv4hdr_t *ipv4,
-				size_t *offset_out);
-static inline uint8_t parse_ipv6(odp_packet_hdr_t *pkt_hdr, odp_ipv6hdr_t *ipv6,
-				size_t *offset_out);
+static inline uint8_t parse_ipv4(odp_packet_hdr_t *pkt_hdr,
+				 odph_ipv4hdr_t *ipv4, size_t *offset_out);
+static inline uint8_t parse_ipv6(odp_packet_hdr_t *pkt_hdr,
+				 odph_ipv6hdr_t *ipv6, size_t *offset_out);
 
 void odp_packet_init(odp_packet_t pkt)
 {
@@ -160,10 +160,10 @@ int odp_packet_seg_count(odp_packet_t pkt)
 void odp_packet_parse(odp_packet_t pkt, size_t len, size_t frame_offset)
 {
 	odp_packet_hdr_t *const pkt_hdr = odp_packet_hdr(pkt);
-	odp_ethhdr_t *eth;
-	odp_vlanhdr_t *vlan;
-	odp_ipv4hdr_t *ipv4;
-	odp_ipv6hdr_t *ipv6;
+	odph_ethhdr_t *eth;
+	odph_vlanhdr_t *vlan;
+	odph_ipv4hdr_t *ipv4;
+	odph_ipv6hdr_t *ipv6;
 	uint16_t ethtype;
 	size_t offset = 0;
 	uint8_t ip_proto = 0;
@@ -172,10 +172,10 @@ void odp_packet_parse(odp_packet_t pkt, size_t len, size_t frame_offset)
 	pkt_hdr->frame_offset = frame_offset;
 	pkt_hdr->frame_len = len;
 
-	if (odp_unlikely(len < ODP_ETH_LEN_MIN)) {
+	if (odp_unlikely(len < ODPH_ETH_LEN_MIN)) {
 		pkt_hdr->error_flags.frame_len = 1;
 		return;
-	} else if (len > ODP_ETH_LEN_MAX) {
+	} else if (len > ODPH_ETH_LEN_MAX) {
 		pkt_hdr->input_flags.jumbo = 1;
 	}
 
@@ -183,40 +183,40 @@ void odp_packet_parse(odp_packet_t pkt, size_t len, size_t frame_offset)
 	pkt_hdr->input_flags.l2 = 1;
 	pkt_hdr->l2_offset = frame_offset;
 
-	eth = (odp_ethhdr_t *)odp_packet_start(pkt);
+	eth = (odph_ethhdr_t *)odp_packet_start(pkt);
 	ethtype = odp_be_to_cpu_16(eth->type);
-	vlan = (odp_vlanhdr_t *)&eth->type;
+	vlan = (odph_vlanhdr_t *)&eth->type;
 
-	if (ethtype == ODP_ETHTYPE_VLAN_OUTER) {
+	if (ethtype == ODPH_ETHTYPE_VLAN_OUTER) {
 		pkt_hdr->input_flags.vlan_qinq = 1;
 		ethtype = odp_be_to_cpu_16(vlan->tpid);
-		offset += sizeof(odp_vlanhdr_t);
+		offset += sizeof(odph_vlanhdr_t);
 		vlan = &vlan[1];
 	}
 
-	if (ethtype == ODP_ETHTYPE_VLAN) {
+	if (ethtype == ODPH_ETHTYPE_VLAN) {
 		pkt_hdr->input_flags.vlan = 1;
 		ethtype = odp_be_to_cpu_16(vlan->tpid);
-		offset += sizeof(odp_vlanhdr_t);
+		offset += sizeof(odph_vlanhdr_t);
 	}
 
 	/* Set l3_offset+flag only for known ethtypes */
 	switch (ethtype) {
-	case ODP_ETHTYPE_IPV4:
+	case ODPH_ETHTYPE_IPV4:
 		pkt_hdr->input_flags.ipv4 = 1;
 		pkt_hdr->input_flags.l3 = 1;
-		pkt_hdr->l3_offset = frame_offset + ODP_ETHHDR_LEN + offset;
-		ipv4 = (odp_ipv4hdr_t *)odp_packet_l3(pkt);
+		pkt_hdr->l3_offset = frame_offset + ODPH_ETHHDR_LEN + offset;
+		ipv4 = (odph_ipv4hdr_t *)odp_packet_l3(pkt);
 		ip_proto = parse_ipv4(pkt_hdr, ipv4, &offset);
 		break;
-	case ODP_ETHTYPE_IPV6:
+	case ODPH_ETHTYPE_IPV6:
 		pkt_hdr->input_flags.ipv6 = 1;
 		pkt_hdr->input_flags.l3 = 1;
-		pkt_hdr->l3_offset = frame_offset + ODP_ETHHDR_LEN + offset;
-		ipv6 = (odp_ipv6hdr_t *)odp_packet_l3(pkt);
+		pkt_hdr->l3_offset = frame_offset + ODPH_ETHHDR_LEN + offset;
+		ipv6 = (odph_ipv6hdr_t *)odp_packet_l3(pkt);
 		ip_proto = parse_ipv6(pkt_hdr, ipv6, &offset);
 		break;
-	case ODP_ETHTYPE_ARP:
+	case ODPH_ETHTYPE_ARP:
 		pkt_hdr->input_flags.arp = 1;
 		/* fall through */
 	default:
@@ -225,22 +225,22 @@ void odp_packet_parse(odp_packet_t pkt, size_t len, size_t frame_offset)
 	}
 
 	switch (ip_proto) {
-	case ODP_IPPROTO_UDP:
+	case ODPH_IPPROTO_UDP:
 		pkt_hdr->input_flags.udp = 1;
 		pkt_hdr->input_flags.l4 = 1;
 		pkt_hdr->l4_offset = pkt_hdr->l3_offset + offset;
 		break;
-	case ODP_IPPROTO_TCP:
+	case ODPH_IPPROTO_TCP:
 		pkt_hdr->input_flags.tcp = 1;
 		pkt_hdr->input_flags.l4 = 1;
 		pkt_hdr->l4_offset = pkt_hdr->l3_offset + offset;
 		break;
-	case ODP_IPPROTO_SCTP:
+	case ODPH_IPPROTO_SCTP:
 		pkt_hdr->input_flags.sctp = 1;
 		pkt_hdr->input_flags.l4 = 1;
 		pkt_hdr->l4_offset = pkt_hdr->l3_offset + offset;
 		break;
-	case ODP_IPPROTO_ICMP:
+	case ODPH_IPPROTO_ICMP:
 		pkt_hdr->input_flags.icmp = 1;
 		pkt_hdr->input_flags.l4 = 1;
 		pkt_hdr->l4_offset = pkt_hdr->l3_offset + offset;
@@ -255,19 +255,19 @@ void odp_packet_parse(odp_packet_t pkt, size_t len, size_t frame_offset)
 	}
 }
 
-static inline uint8_t parse_ipv4(odp_packet_hdr_t *pkt_hdr, odp_ipv4hdr_t *ipv4,
-				size_t *offset_out)
+static inline uint8_t parse_ipv4(odp_packet_hdr_t *pkt_hdr,
+				 odph_ipv4hdr_t *ipv4, size_t *offset_out)
 {
 	uint8_t ihl;
 	uint16_t frag_offset;
 
-	ihl = ODP_IPV4HDR_IHL(ipv4->ver_ihl);
-	if (odp_unlikely(ihl < ODP_IPV4HDR_IHL_MIN)) {
+	ihl = ODPH_IPV4HDR_IHL(ipv4->ver_ihl);
+	if (odp_unlikely(ihl < ODPH_IPV4HDR_IHL_MIN)) {
 		pkt_hdr->error_flags.ip_err = 1;
 		return 0;
 	}
 
-	if (odp_unlikely(ihl > ODP_IPV4HDR_IHL_MIN)) {
+	if (odp_unlikely(ihl > ODPH_IPV4HDR_IHL_MIN)) {
 		pkt_hdr->input_flags.ipopt = 1;
 		return 0;
 	}
@@ -278,13 +278,13 @@ static inline uint8_t parse_ipv4(odp_packet_hdr_t *pkt_hdr, odp_ipv4hdr_t *ipv4,
 	*  "fragment offset" field is nonzero (all fragments except the first)
 	*/
 	frag_offset = odp_be_to_cpu_16(ipv4->frag_offset);
-	if (odp_unlikely(ODP_IPV4HDR_IS_FRAGMENT(frag_offset))) {
+	if (odp_unlikely(ODPH_IPV4HDR_IS_FRAGMENT(frag_offset))) {
 		pkt_hdr->input_flags.ipfrag = 1;
 		return 0;
 	}
 
-	if (ipv4->proto == ODP_IPPROTO_ESP ||
-	    ipv4->proto == ODP_IPPROTO_AH) {
+	if (ipv4->proto == ODPH_IPPROTO_ESP ||
+	    ipv4->proto == ODPH_IPPROTO_AH) {
 		pkt_hdr->input_flags.ipsec = 1;
 		return 0;
 	}
@@ -295,24 +295,24 @@ static inline uint8_t parse_ipv4(odp_packet_hdr_t *pkt_hdr, odp_ipv4hdr_t *ipv4,
 	return ipv4->proto;
 }
 
-static inline uint8_t parse_ipv6(odp_packet_hdr_t *pkt_hdr, odp_ipv6hdr_t *ipv6,
-				size_t *offset_out)
+static inline uint8_t parse_ipv6(odp_packet_hdr_t *pkt_hdr,
+				 odph_ipv6hdr_t *ipv6, size_t *offset_out)
 {
-	if (ipv6->next_hdr == ODP_IPPROTO_ESP ||
-	    ipv6->next_hdr == ODP_IPPROTO_AH) {
+	if (ipv6->next_hdr == ODPH_IPPROTO_ESP ||
+	    ipv6->next_hdr == ODPH_IPPROTO_AH) {
 		pkt_hdr->input_flags.ipopt = 1;
 		pkt_hdr->input_flags.ipsec = 1;
 		return 0;
 	}
 
-	if (odp_unlikely(ipv6->next_hdr == ODP_IPPROTO_FRAG)) {
+	if (odp_unlikely(ipv6->next_hdr == ODPH_IPPROTO_FRAG)) {
 		pkt_hdr->input_flags.ipopt = 1;
 		pkt_hdr->input_flags.ipfrag = 1;
 		return 0;
 	}
 
 	/* Don't step through more extensions */
-	*offset_out = ODP_IPV6HDR_LEN;
+	*offset_out = ODPH_IPV6HDR_LEN;
 	return ipv6->next_hdr;
 }
 
diff --git a/platform/linux-generic/odp_packet_netmap.c b/platform/linux-generic/odp_packet_netmap.c
index e2215ab..5942789 100644
--- a/platform/linux-generic/odp_packet_netmap.c
+++ b/platform/linux-generic/odp_packet_netmap.c
@@ -31,9 +31,9 @@
 #include <odp_hints.h>
 #include <odp_thread.h>
 
-#include <helper/odp_eth.h>
-#include <helper/odp_ip.h>
-#include <helper/odp_packet_helper.h>
+#include <odph_eth.h>
+#include <odph_ip.h>
+#include <odph_packet.h>
 
 #define NETMAP_WITH_LIBS
 #include <odp_packet_netmap.h>
@@ -41,8 +41,8 @@
 /** Eth buffer start offset from u32-aligned address to make sure the following
  * header (e.g. IP) starts at a 32-bit aligned address.
  */
-#define ETHBUF_OFFSET (ODP_ALIGN_ROUNDUP(ODP_ETHHDR_LEN, sizeof(uint32_t)) \
-				- ODP_ETHHDR_LEN)
+#define ETHBUF_OFFSET (ODP_ALIGN_ROUNDUP(ODPH_ETHHDR_LEN, sizeof(uint32_t)) \
+				- ODPH_ETHHDR_LEN)
 
 /** Round up buffer address to get a properly aliged eth buffer, i.e. aligned
  * so that the next header always starts at a 32bit aligned address.
@@ -135,7 +135,7 @@ int setup_pkt_netmap(pkt_netmap_t * const pkt_nm, const char *netdev,
 	/* save netmap_mode for later use */
 	pkt_nm->netmap_mode = nm_params->netmap_mode;
 
-	odp_packet_free(pkt);
+	odph_packet_free(pkt);
 
 	if (nm_params->netmap_mode == ODP_NETMAP_MODE_SW)
 		ringid = NETMAP_SW_RING;
@@ -322,7 +322,7 @@ int recv_pkt_netmap(pkt_netmap_t * const pkt_nm, odp_packet_t pkt_table[],
 				/* drop the frame, reuse pkt next interation */
 				continue;
 			}
-			if (odp_unlikely(frame_len < ODP_ETH_LEN_MIN)) {
+			if (odp_unlikely(frame_len < ODPH_ETH_LEN_MIN)) {
 				if (odp_unlikely(pkt_nm->netmap_mode !=
 						 ODP_NETMAP_MODE_SW)) {
 					ODP_ERR("RX: Frame truncated: %u\n",
@@ -330,8 +330,8 @@ int recv_pkt_netmap(pkt_netmap_t * const pkt_nm, odp_packet_t pkt_table[],
 					continue;
 				}
 				memset(l2_hdr + frame_len, 0,
-				       ODP_ETH_LEN_MIN - frame_len);
-				frame_len = ODP_ETH_LEN_MIN;
+				       ODPH_ETH_LEN_MIN - frame_len);
+				frame_len = ODPH_ETH_LEN_MIN;
 			}
 
 			/* For now copy the data in the mbuf,
@@ -447,7 +447,7 @@ int send_pkt_netmap(pkt_netmap_t * const pkt_nm, odp_packet_t pkt_table[],
 		ODP_DBG("===> sent %03u frames to netmap adapter\n", nb_tx);
 
 	for (tx = 0; tx < len; tx++)
-		odp_packet_free(pkt_table[tx]);
+		odph_packet_free(pkt_table[tx]);
 
 	return nb_tx;
 }
diff --git a/platform/linux-generic/odp_packet_socket.c b/platform/linux-generic/odp_packet_socket.c
index 352d517..d1ea087 100644
--- a/platform/linux-generic/odp_packet_socket.c
+++ b/platform/linux-generic/odp_packet_socket.c
@@ -38,9 +38,9 @@
 #include <odp_packet_internal.h>
 #include <odp_hints.h>
 
-#include <helper/odp_eth.h>
-#include <helper/odp_ip.h>
-#include <helper/odp_packet_helper.h>
+#include <odph_eth.h>
+#include <odph_ip.h>
+#include <odph_packet.h>
 
 /** Provide a sendmmsg wrapper for systems with no libc or kernel support.
  *  As it is implemented as a weak symbol, it has zero effect on systems
@@ -93,8 +93,8 @@ static odp_spinlock_t raw_sockets_lock;
 /** Eth buffer start offset from u32-aligned address to make sure the following
  * header (e.g. IP) starts at a 32-bit aligned address.
  */
-#define ETHBUF_OFFSET (ODP_ALIGN_ROUNDUP(ODP_ETHHDR_LEN, sizeof(uint32_t)) \
-				- ODP_ETHHDR_LEN)
+#define ETHBUF_OFFSET (ODP_ALIGN_ROUNDUP(ODPH_ETHHDR_LEN, sizeof(uint32_t)) \
+				- ODPH_ETHHDR_LEN)
 
 /** Round up buffer address to get a properly aliged eth buffer, i.e. aligned
  * so that the next header always starts at a 32bit aligned address.
@@ -186,8 +186,8 @@ int setup_pkt_sock(pkt_sock_t *const pkt_sock, const char *netdev,
 		return -1;
 	pkt_sock->pool = pool;
 
-	pkt = odp_packet_alloc(pool);
-	if (!odp_packet_is_valid(pkt))
+	pkt = odph_packet_alloc(pool);
+	if (!odph_packet_is_valid(pkt))
 		return -1;
 
 	pkt_buf = odp_packet_buf_addr(pkt);
@@ -195,11 +195,11 @@ int setup_pkt_sock(pkt_sock_t *const pkt_sock, const char *netdev,
 	/* Store eth buffer offset for pkt buffers from this pool */
 	pkt_sock->frame_offset = (uintptr_t)l2_hdr - (uintptr_t)pkt_buf;
 	/* pkt buffer size */
-	pkt_sock->buf_size = odp_packet_buf_size(pkt);
+	pkt_sock->buf_size = odph_packet_buf_size(pkt);
 	/* max frame len taking into account the l2-offset */
 	pkt_sock->max_frame_len = pkt_sock->buf_size - pkt_sock->frame_offset;
 
-	odp_packet_free(pkt);
+	odph_packet_free(pkt);
 
 	odp_spinlock_lock(&raw_sockets_lock);
 
@@ -297,7 +297,7 @@ int recv_pkt_sock_basic(pkt_sock_t *const pkt_sock,
 
 	for (i = 0; i < len; i++) {
 		if (odp_likely(pkt == ODP_PACKET_INVALID)) {
-			pkt = odp_packet_alloc(pkt_sock->pool);
+			pkt = odph_packet_alloc(pkt_sock->pool);
 			if (odp_unlikely(pkt == ODP_PACKET_INVALID))
 				break;
 		}
@@ -324,7 +324,7 @@ int recv_pkt_sock_basic(pkt_sock_t *const pkt_sock,
 	} /* end for() */
 
 	if (odp_unlikely(pkt != ODP_PACKET_INVALID))
-		odp_packet_free(pkt);
+		odph_packet_free(pkt);
 
 	return nb_rx;
 }
@@ -368,7 +368,7 @@ int send_pkt_sock_basic(pkt_sock_t *const pkt_sock,
 	nb_tx = i;
 
 	for (i = 0; i < len; i++)
-		odp_packet_free(pkt_table[i]);
+		odph_packet_free(pkt_table[i]);
 
 	return nb_tx;
 }
@@ -395,7 +395,7 @@ int recv_pkt_sock_mmsg(pkt_sock_t *const pkt_sock,
 	memset(msgvec, 0, sizeof(msgvec));
 
 	for (i = 0; i < (int)len; i++) {
-		pkt_table[i] = odp_packet_alloc(pkt_sock->pool);
+		pkt_table[i] = odph_packet_alloc(pkt_sock->pool);
 		if (odp_unlikely(pkt_table[i] == ODP_PACKET_INVALID))
 			break;
 
@@ -417,7 +417,7 @@ int recv_pkt_sock_mmsg(pkt_sock_t *const pkt_sock,
 		/* Don't receive packets sent by ourselves */
 		if (odp_unlikely(ethaddrs_equal(pkt_sock->if_mac,
 						eth_hdr->h_source))) {
-			odp_packet_free(pkt_table[i]);
+			odph_packet_free(pkt_table[i]);
 			continue;
 		}
 
@@ -431,7 +431,7 @@ int recv_pkt_sock_mmsg(pkt_sock_t *const pkt_sock,
 
 	/* Free unused pkt buffers */
 	for (; i < msgvec_len; i++)
-		odp_packet_free(pkt_table[i]);
+		odph_packet_free(pkt_table[i]);
 
 	return nb_rx;
 }
@@ -473,7 +473,7 @@ int send_pkt_sock_mmsg(pkt_sock_t *const pkt_sock,
 	}
 
 	for (i = 0; i < len; i++)
-		odp_packet_free(pkt_table[i]);
+		odph_packet_free(pkt_table[i]);
 
 	return len;
 }
@@ -569,7 +569,7 @@ static inline unsigned pkt_mmap_v2_rx(int sock, struct ring *ring,
 				continue;
 			}
 
-			pkt_table[i] = odp_packet_alloc(pool);
+			pkt_table[i] = odph_packet_alloc(pool);
 			if (odp_unlikely(pkt_table[i] == ODP_PACKET_INVALID))
 				break;
 
@@ -623,7 +623,7 @@ static inline unsigned pkt_mmap_v2_tx(int sock, struct ring *ring,
 
 			mmap_tx_user_ready(ppd.raw);
 
-			odp_packet_free(pkt_table[i]);
+			odph_packet_free(pkt_table[i]);
 			frame_num = next_frame_num;
 			i++;
 		} else {
@@ -815,8 +815,8 @@ int setup_pkt_sock_mmap(pkt_sock_mmap_t *const pkt_sock, const char *netdev,
 	if (pool == ODP_BUFFER_POOL_INVALID)
 		return -1;
 
-	pkt = odp_packet_alloc(pool);
-	if (!odp_packet_is_valid(pkt))
+	pkt = odph_packet_alloc(pool);
+	if (!odph_packet_is_valid(pkt))
 		return -1;
 
 	pkt_buf = odp_packet_buf_addr(pkt);
@@ -824,7 +824,7 @@ int setup_pkt_sock_mmap(pkt_sock_mmap_t *const pkt_sock, const char *netdev,
 	/* Store eth buffer offset for pkt buffers from this pool */
 	pkt_sock->frame_offset = (uintptr_t)l2_hdr - (uintptr_t)pkt_buf;
 
-	odp_packet_free(pkt);
+	odph_packet_free(pkt);
 
 	pkt_sock->pool = pool;
 	pkt_sock->sockfd = mmap_pkt_socket();
diff --git a/platform/linux-generic/odp_ring.c b/platform/linux-generic/odp_ring.c
index 25ff66a..c739632 100644
--- a/platform/linux-generic/odp_ring.c
+++ b/platform/linux-generic/odp_ring.c
@@ -80,7 +80,7 @@
 #include <string.h>
 #include <odp_debug.h>
 #include <odp_rwlock.h>
-#include <helper/odp_ring.h>
+#include <odph_ring.h>
 
 static TAILQ_HEAD(, odp_ring) odp_ring_list;
 
@@ -145,29 +145,29 @@ static TAILQ_HEAD(, odp_ring) odp_ring_list;
 static odp_rwlock_t	qlock;	/* rings tailq lock */
 
 /* init tailq_ring */
-void odp_ring_tailq_init(void)
+void odph_ring_tailq_init(void)
 {
 	TAILQ_INIT(&odp_ring_list);
 	odp_rwlock_init(&qlock);
 }
 
 /* create the ring */
-odp_ring_t *
-odp_ring_create(const char *name, unsigned count, unsigned flags)
+odph_ring_t *
+odph_ring_create(const char *name, unsigned count, unsigned flags)
 {
-	char ring_name[ODP_RING_NAMESIZE];
-	odp_ring_t *r;
+	char ring_name[ODPH_RING_NAMESIZE];
+	odph_ring_t *r;
 	size_t ring_size;
 
 	/* count must be a power of 2 */
-	if (!ODP_VAL_IS_POWER_2(count) || (count > ODP_RING_SZ_MASK)) {
+	if (!ODP_VAL_IS_POWER_2(count) || (count > ODPH_RING_SZ_MASK)) {
 		ODP_ERR("Requested size is invalid, must be power of 2, and  do not exceed the size limit %u\n",
-			ODP_RING_SZ_MASK);
+			ODPH_RING_SZ_MASK);
 		return NULL;
 	}
 
 	snprintf(ring_name, sizeof(ring_name), "%s", name);
-	ring_size = count*sizeof(void *)+sizeof(odp_ring_t);
+	ring_size = count*sizeof(void *)+sizeof(odph_ring_t);
 
 	odp_rwlock_write_lock(&qlock);
 	/* reserve a memory zone for this ring.*/
@@ -178,8 +178,8 @@ odp_ring_create(const char *name, unsigned count, unsigned flags)
 		snprintf(r->name, sizeof(r->name), "%s", name);
 		r->flags = flags;
 		r->prod.watermark = count;
-		r->prod.sp_enqueue = !!(flags & ODP_RING_F_SP_ENQ);
-		r->cons.sc_dequeue = !!(flags & ODP_RING_F_SC_DEQ);
+		r->prod.sp_enqueue = !!(flags & ODPH_RING_F_SP_ENQ);
+		r->cons.sc_dequeue = !!(flags & ODPH_RING_F_SC_DEQ);
 		r->prod.size = count;
 		r->cons.size = count;
 		r->prod.mask = count-1;
@@ -202,7 +202,7 @@ odp_ring_create(const char *name, unsigned count, unsigned flags)
  * change the high water mark. If *count* is 0, water marking is
  * disabled
  */
-int odp_ring_set_water_mark(odp_ring_t *r, unsigned count)
+int odph_ring_set_water_mark(odph_ring_t *r, unsigned count)
 {
 	if (count >= r->prod.size)
 		return -EINVAL;
@@ -218,8 +218,8 @@ int odp_ring_set_water_mark(odp_ring_t *r, unsigned count)
 /**
  * Enqueue several objects on the ring (multi-producers safe).
  */
-int __odp_ring_mp_do_enqueue(odp_ring_t *r, void * const *obj_table,
-			 unsigned n, enum odp_ring_queue_behavior behavior)
+int __odph_ring_mp_do_enqueue(odph_ring_t *r, void * const *obj_table,
+			 unsigned n, enum odph_ring_queue_behavior behavior)
 {
 	uint32_t prod_head, prod_next;
 	uint32_t cons_tail, free_entries;
@@ -244,7 +244,7 @@ int __odp_ring_mp_do_enqueue(odp_ring_t *r, void * const *obj_table,
 
 		/* check that we have enough room in ring */
 		if (odp_unlikely(n > free_entries)) {
-			if (behavior == ODP_RING_QUEUE_FIXED) {
+			if (behavior == ODPH_RING_QUEUE_FIXED) {
 				return -ENOBUFS;
 			} else {
 				/* No free entry available */
@@ -266,10 +266,10 @@ int __odp_ring_mp_do_enqueue(odp_ring_t *r, void * const *obj_table,
 
 	/* if we exceed the watermark */
 	if (odp_unlikely(((mask + 1) - free_entries + n) > r->prod.watermark)) {
-		ret = (behavior == ODP_RING_QUEUE_FIXED) ? -EDQUOT :
-				(int)(n | ODP_RING_QUOT_EXCEED);
+		ret = (behavior == ODPH_RING_QUEUE_FIXED) ? -EDQUOT :
+				(int)(n | ODPH_RING_QUOT_EXCEED);
 	} else {
-		ret = (behavior == ODP_RING_QUEUE_FIXED) ? 0 : n;
+		ret = (behavior == ODPH_RING_QUEUE_FIXED) ? 0 : n;
 	}
 
 	/*
@@ -286,8 +286,8 @@ int __odp_ring_mp_do_enqueue(odp_ring_t *r, void * const *obj_table,
 /**
  * Enqueue several objects on a ring (NOT multi-producers safe).
  */
-int __odp_ring_sp_do_enqueue(odp_ring_t *r, void * const *obj_table,
-			     unsigned n, enum odp_ring_queue_behavior behavior)
+int __odph_ring_sp_do_enqueue(odph_ring_t *r, void * const *obj_table,
+			     unsigned n, enum odph_ring_queue_behavior behavior)
 {
 	uint32_t prod_head, cons_tail;
 	uint32_t prod_next, free_entries;
@@ -305,7 +305,7 @@ int __odp_ring_sp_do_enqueue(odp_ring_t *r, void * const *obj_table,
 
 	/* check that we have enough room in ring */
 	if (odp_unlikely(n > free_entries)) {
-		if (behavior == ODP_RING_QUEUE_FIXED) {
+		if (behavior == ODPH_RING_QUEUE_FIXED) {
 			return -ENOBUFS;
 		} else {
 			/* No free entry available */
@@ -325,10 +325,10 @@ int __odp_ring_sp_do_enqueue(odp_ring_t *r, void * const *obj_table,
 
 	/* if we exceed the watermark */
 	if (odp_unlikely(((mask + 1) - free_entries + n) > r->prod.watermark)) {
-		ret = (behavior == ODP_RING_QUEUE_FIXED) ? -EDQUOT :
-			(int)(n | ODP_RING_QUOT_EXCEED);
+		ret = (behavior == ODPH_RING_QUEUE_FIXED) ? -EDQUOT :
+			(int)(n | ODPH_RING_QUOT_EXCEED);
 	} else {
-		ret = (behavior == ODP_RING_QUEUE_FIXED) ? 0 : n;
+		ret = (behavior == ODPH_RING_QUEUE_FIXED) ? 0 : n;
 	}
 
 	r->prod.tail = prod_next;
@@ -339,8 +339,8 @@ int __odp_ring_sp_do_enqueue(odp_ring_t *r, void * const *obj_table,
  * Dequeue several objects from a ring (multi-consumers safe).
  */
 
-int __odp_ring_mc_do_dequeue(odp_ring_t *r, void **obj_table,
-			 unsigned n, enum odp_ring_queue_behavior behavior)
+int __odph_ring_mc_do_dequeue(odph_ring_t *r, void **obj_table,
+			 unsigned n, enum odph_ring_queue_behavior behavior)
 {
 	uint32_t cons_head, prod_tail;
 	uint32_t cons_next, entries;
@@ -364,7 +364,7 @@ int __odp_ring_mc_do_dequeue(odp_ring_t *r, void **obj_table,
 
 		/* Set the actual entries for dequeue */
 		if (n > entries) {
-			if (behavior == ODP_RING_QUEUE_FIXED) {
+			if (behavior == ODPH_RING_QUEUE_FIXED) {
 				return -ENOENT;
 			} else {
 				if (odp_unlikely(entries == 0))
@@ -392,14 +392,14 @@ int __odp_ring_mc_do_dequeue(odp_ring_t *r, void **obj_table,
 
 	r->cons.tail = cons_next;
 
-	return behavior == ODP_RING_QUEUE_FIXED ? 0 : n;
+	return behavior == ODPH_RING_QUEUE_FIXED ? 0 : n;
 }
 
 /**
  * Dequeue several objects from a ring (NOT multi-consumers safe).
  */
-int __odp_ring_sc_do_dequeue(odp_ring_t *r, void **obj_table,
-			     unsigned n, enum odp_ring_queue_behavior behavior)
+int __odph_ring_sc_do_dequeue(odph_ring_t *r, void **obj_table,
+			     unsigned n, enum odph_ring_queue_behavior behavior)
 {
 	uint32_t cons_head, prod_tail;
 	uint32_t cons_next, entries;
@@ -415,7 +415,7 @@ int __odp_ring_sc_do_dequeue(odp_ring_t *r, void **obj_table,
 	entries = prod_tail - cons_head;
 
 	if (n > entries) {
-		if (behavior == ODP_RING_QUEUE_FIXED) {
+		if (behavior == ODPH_RING_QUEUE_FIXED) {
 			return -ENOENT;
 		} else {
 			if (odp_unlikely(entries == 0))
@@ -433,47 +433,51 @@ int __odp_ring_sc_do_dequeue(odp_ring_t *r, void **obj_table,
 	odp_mem_barrier();
 
 	r->cons.tail = cons_next;
-	return behavior == ODP_RING_QUEUE_FIXED ? 0 : n;
+	return behavior == ODPH_RING_QUEUE_FIXED ? 0 : n;
 }
 
 /**
  * Enqueue several objects on the ring (multi-producers safe).
  */
-int odp_ring_mp_enqueue_bulk(odp_ring_t *r, void * const *obj_table,
+int odph_ring_mp_enqueue_bulk(odph_ring_t *r, void * const *obj_table,
 				unsigned n)
 {
-	return __odp_ring_mp_do_enqueue(r, obj_table, n, ODP_RING_QUEUE_FIXED);
+	return __odph_ring_mp_do_enqueue(r, obj_table, n,
+					 ODPH_RING_QUEUE_FIXED);
 }
 
 /**
  * Enqueue several objects on a ring (NOT multi-producers safe).
  */
-int odp_ring_sp_enqueue_bulk(odp_ring_t *r, void * const *obj_table,
+int odph_ring_sp_enqueue_bulk(odph_ring_t *r, void * const *obj_table,
 			     unsigned n)
 {
-	return __odp_ring_sp_do_enqueue(r, obj_table, n, ODP_RING_QUEUE_FIXED);
+	return __odph_ring_sp_do_enqueue(r, obj_table, n,
+					 ODPH_RING_QUEUE_FIXED);
 }
 
 /**
  * Dequeue several objects from a ring (multi-consumers safe).
  */
-int odp_ring_mc_dequeue_bulk(odp_ring_t *r, void **obj_table, unsigned n)
+int odph_ring_mc_dequeue_bulk(odph_ring_t *r, void **obj_table, unsigned n)
 {
-	return __odp_ring_mc_do_dequeue(r, obj_table, n, ODP_RING_QUEUE_FIXED);
+	return __odph_ring_mc_do_dequeue(r, obj_table, n,
+					 ODPH_RING_QUEUE_FIXED);
 }
 
 /**
  * Dequeue several objects from a ring (NOT multi-consumers safe).
  */
-int odp_ring_sc_dequeue_bulk(odp_ring_t *r, void **obj_table, unsigned n)
+int odph_ring_sc_dequeue_bulk(odph_ring_t *r, void **obj_table, unsigned n)
 {
-	return __odp_ring_sc_do_dequeue(r, obj_table, n, ODP_RING_QUEUE_FIXED);
+	return __odph_ring_sc_do_dequeue(r, obj_table, n,
+					 ODPH_RING_QUEUE_FIXED);
 }
 
 /**
  * Test if a ring is full.
  */
-int odp_ring_full(const odp_ring_t *r)
+int odph_ring_full(const odph_ring_t *r)
 {
 	uint32_t prod_tail = r->prod.tail;
 	uint32_t cons_tail = r->cons.tail;
@@ -483,7 +487,7 @@ int odp_ring_full(const odp_ring_t *r)
 /**
  * Test if a ring is empty.
  */
-int odp_ring_empty(const odp_ring_t *r)
+int odph_ring_empty(const odph_ring_t *r)
 {
 	uint32_t prod_tail = r->prod.tail;
 	uint32_t cons_tail = r->cons.tail;
@@ -493,7 +497,7 @@ int odp_ring_empty(const odp_ring_t *r)
 /**
  * Return the number of entries in a ring.
  */
-unsigned odp_ring_count(const odp_ring_t *r)
+unsigned odph_ring_count(const odph_ring_t *r)
 {
 	uint32_t prod_tail = r->prod.tail;
 	uint32_t cons_tail = r->cons.tail;
@@ -503,7 +507,7 @@ unsigned odp_ring_count(const odp_ring_t *r)
 /**
  * Return the number of free entries in a ring.
  */
-unsigned odp_ring_free_count(const odp_ring_t *r)
+unsigned odph_ring_free_count(const odph_ring_t *r)
 {
 	uint32_t prod_tail = r->prod.tail;
 	uint32_t cons_tail = r->cons.tail;
@@ -511,7 +515,7 @@ unsigned odp_ring_free_count(const odp_ring_t *r)
 }
 
 /* dump the status of the ring on the console */
-void odp_ring_dump(const odp_ring_t *r)
+void odph_ring_dump(const odph_ring_t *r)
 {
 	ODP_DBG("ring <%s>@%p\n", r->name, r);
 	ODP_DBG("  flags=%x\n", r->flags);
@@ -520,8 +524,8 @@ void odp_ring_dump(const odp_ring_t *r)
 	ODP_DBG("  ch=%"PRIu32"\n", r->cons.head);
 	ODP_DBG("  pt=%"PRIu32"\n", r->prod.tail);
 	ODP_DBG("  ph=%"PRIu32"\n", r->prod.head);
-	ODP_DBG("  used=%u\n", odp_ring_count(r));
-	ODP_DBG("  avail=%u\n", odp_ring_free_count(r));
+	ODP_DBG("  used=%u\n", odph_ring_count(r));
+	ODP_DBG("  avail=%u\n", odph_ring_free_count(r));
 	if (r->prod.watermark == r->prod.size)
 		ODP_DBG("  watermark=0\n");
 	else
@@ -529,27 +533,27 @@ void odp_ring_dump(const odp_ring_t *r)
 }
 
 /* dump the status of all rings on the console */
-void odp_ring_list_dump(void)
+void odph_ring_list_dump(void)
 {
-	const odp_ring_t *mp = NULL;
+	const odph_ring_t *mp = NULL;
 
 	odp_rwlock_read_lock(&qlock);
 
 	TAILQ_FOREACH(mp, &odp_ring_list, next) {
-		odp_ring_dump(mp);
+		odph_ring_dump(mp);
 	}
 
 	odp_rwlock_read_unlock(&qlock);
 }
 
 /* search a ring from its name */
-odp_ring_t *odp_ring_lookup(const char *name)
+odph_ring_t *odph_ring_lookup(const char *name)
 {
-	odp_ring_t *r = odp_shm_lookup(name);
+	odph_ring_t *r = odp_shm_lookup(name);
 
 	odp_rwlock_read_lock(&qlock);
 	TAILQ_FOREACH(r, &odp_ring_list, next) {
-		if (strncmp(name, r->name, ODP_RING_NAMESIZE) == 0)
+		if (strncmp(name, r->name, ODPH_RING_NAMESIZE) == 0)
 			break;
 	}
 	odp_rwlock_read_unlock(&qlock);
@@ -560,60 +564,60 @@ odp_ring_t *odp_ring_lookup(const char *name)
 /**
  * Enqueue several objects on the ring (multi-producers safe).
  */
-int odp_ring_mp_enqueue_burst(odp_ring_t *r, void * const *obj_table,
+int odph_ring_mp_enqueue_burst(odph_ring_t *r, void * const *obj_table,
 			      unsigned n)
 {
-	return __odp_ring_mp_do_enqueue(r, obj_table, n,
-					 ODP_RING_QUEUE_VARIABLE);
+	return __odph_ring_mp_do_enqueue(r, obj_table, n,
+					 ODPH_RING_QUEUE_VARIABLE);
 }
 
 /**
  * Enqueue several objects on a ring (NOT multi-producers safe).
  */
-int odp_ring_sp_enqueue_burst(odp_ring_t *r, void * const *obj_table,
+int odph_ring_sp_enqueue_burst(odph_ring_t *r, void * const *obj_table,
 			      unsigned n)
 {
-	return __odp_ring_sp_do_enqueue(r, obj_table, n,
-					ODP_RING_QUEUE_VARIABLE);
+	return __odph_ring_sp_do_enqueue(r, obj_table, n,
+					ODPH_RING_QUEUE_VARIABLE);
 }
 
 /**
  * Enqueue several objects on a ring.
  */
-int odp_ring_enqueue_burst(odp_ring_t *r, void * const *obj_table,
+int odph_ring_enqueue_burst(odph_ring_t *r, void * const *obj_table,
 			   unsigned n)
 {
 	if (r->prod.sp_enqueue)
-		return odp_ring_sp_enqueue_burst(r, obj_table, n);
+		return odph_ring_sp_enqueue_burst(r, obj_table, n);
 	else
-		return odp_ring_mp_enqueue_burst(r, obj_table, n);
+		return odph_ring_mp_enqueue_burst(r, obj_table, n);
 }
 
 /**
  * Dequeue several objects from a ring (multi-consumers safe).
  */
-int odp_ring_mc_dequeue_burst(odp_ring_t *r, void **obj_table, unsigned n)
+int odph_ring_mc_dequeue_burst(odph_ring_t *r, void **obj_table, unsigned n)
 {
-	return __odp_ring_mc_do_dequeue(r, obj_table, n,
-					ODP_RING_QUEUE_VARIABLE);
+	return __odph_ring_mc_do_dequeue(r, obj_table, n,
+					ODPH_RING_QUEUE_VARIABLE);
 }
 
 /**
  * Dequeue several objects from a ring (NOT multi-consumers safe).
  */
-int odp_ring_sc_dequeue_burst(odp_ring_t *r, void **obj_table, unsigned n)
+int odph_ring_sc_dequeue_burst(odph_ring_t *r, void **obj_table, unsigned n)
 {
-	return __odp_ring_sc_do_dequeue(r, obj_table, n,
-					 ODP_RING_QUEUE_VARIABLE);
+	return __odph_ring_sc_do_dequeue(r, obj_table, n,
+					 ODPH_RING_QUEUE_VARIABLE);
 }
 
 /**
  * Dequeue multiple objects from a ring up to a maximum number.
  */
-int odp_ring_dequeue_burst(odp_ring_t *r, void **obj_table, unsigned n)
+int odph_ring_dequeue_burst(odph_ring_t *r, void **obj_table, unsigned n)
 {
 	if (r->cons.sc_dequeue)
-		return odp_ring_sc_dequeue_burst(r, obj_table, n);
+		return odph_ring_sc_dequeue_burst(r, obj_table, n);
 	else
-		return odp_ring_mc_dequeue_burst(r, obj_table, n);
+		return odph_ring_mc_dequeue_burst(r, obj_table, n);
 }
diff --git a/platform/linux-keystone2/Makefile.am b/platform/linux-keystone2/Makefile.am
index 8e5fbb3..027c035 100644
--- a/platform/linux-keystone2/Makefile.am
+++ b/platform/linux-keystone2/Makefile.am
@@ -20,7 +20,7 @@ AM_CFLAGS +=  -I$(srcdir)/include
 AM_CFLAGS +=  -I$(srcdir)/include/api
 AM_CFLAGS +=  -I$(top_srcdir)/platform/linux-generic/include
 AM_CFLAGS +=  -I$(top_srcdir)/platform/linux-generic/include/api
-AM_CFLAGS +=  -I$(top_srcdir)/include
+AM_CFLAGS +=  -I$(top_srcdir)/helper/include
 KS2_LIBS="-lopenem_rh -lopenem_osal"
 LIBS += $(KS2_LIBS)
 
@@ -57,13 +57,13 @@ include_HEADERS = \
 
 subdirheadersdir = $(includedir)/helper
 subdirheaders_HEADERS = \
-			$(top_srcdir)/include/helper/odp_chksum.h \
-			$(top_srcdir)/include/helper/odp_eth.h \
-			$(top_srcdir)/include/helper/odp_ip.h \
-			$(top_srcdir)/include/helper/odp_linux.h \
-			$(top_srcdir)/include/helper/odp_packet_helper.h \
-			$(top_srcdir)/include/helper/odp_ring.h \
-			$(top_srcdir)/include/helper/odp_udp.h
+			$(top_srcdir)/helper/include/odph_chksum.h \
+			$(top_srcdir)/helper/include/odph_eth.h \
+			$(top_srcdir)/helper/include/odph_ip.h \
+			$(top_srcdir)/helper/include/odph_linux.h \
+			$(top_srcdir)/helper/include/odph_packet.h \
+			$(top_srcdir)/helper/include/odph_ring.h \
+			$(top_srcdir)/helper/include/odph_udp.h
 
 __LIB__libodp_la_SOURCES = \
 			   ../linux-generic/odp_barrier.c \
diff --git a/platform/linux-keystone2/odp_packet.c b/platform/linux-keystone2/odp_packet.c
index 271d66b..fac0d22 100644
--- a/platform/linux-keystone2/odp_packet.c
+++ b/platform/linux-keystone2/odp_packet.c
@@ -10,16 +10,16 @@
 #include <odp_byteorder.h>
 #include <ti_em_rh.h>
 
-#include <helper/odp_eth.h>
-#include <helper/odp_ip.h>
+#include <odph_eth.h>
+#include <odph_ip.h>
 
 #include <string.h>
 #include <stdio.h>
 
-static inline uint8_t parse_ipv4(odp_packet_hdr_t *pkt_hdr, odp_ipv4hdr_t *ipv4,
-				 size_t *offset_out);
-static inline uint8_t parse_ipv6(odp_packet_hdr_t *pkt_hdr, odp_ipv6hdr_t *ipv6,
-				 size_t *offset_out);
+static inline uint8_t parse_ipv4(odp_packet_hdr_t *pkt_hdr,
+				 odph_ipv4hdr_t *ipv4, size_t *offset_out);
+static inline uint8_t parse_ipv6(odp_packet_hdr_t *pkt_hdr,
+				 odph_ipv6hdr_t *ipv6, size_t *offset_out);
 
 void odp_packet_init(odp_packet_t pkt)
 {
@@ -135,10 +135,10 @@ void odp_packet_set_l4_offset(odp_packet_t pkt, size_t offset)
 void odp_packet_parse(odp_packet_t pkt, size_t len, size_t frame_offset)
 {
 	odp_packet_hdr_t *const pkt_hdr = odp_packet_hdr(pkt);
-	odp_ethhdr_t *eth;
-	odp_vlanhdr_t *vlan;
-	odp_ipv4hdr_t *ipv4;
-	odp_ipv6hdr_t *ipv6;
+	odph_ethhdr_t *eth;
+	odph_vlanhdr_t *vlan;
+	odph_ipv4hdr_t *ipv4;
+	odph_ipv6hdr_t *ipv6;
 	uint16_t ethtype;
 	size_t offset = 0;
 	uint8_t ip_proto = 0;
@@ -146,10 +146,10 @@ void odp_packet_parse(odp_packet_t pkt, size_t len, size_t frame_offset)
 	pkt_hdr->input_flags.eth = 1;
 	pkt_hdr->frame_offset = frame_offset;
 
-	if (odp_unlikely(len < ODP_ETH_LEN_MIN)) {
+	if (odp_unlikely(len < ODPH_ETH_LEN_MIN)) {
 		pkt_hdr->error_flags.frame_len = 1;
 		return;
-	} else if (len > ODP_ETH_LEN_MAX) {
+	} else if (len > ODPH_ETH_LEN_MAX) {
 		pkt_hdr->input_flags.jumbo = 1;
 	}
 
@@ -160,40 +160,40 @@ void odp_packet_parse(odp_packet_t pkt, size_t len, size_t frame_offset)
 	pkt_hdr->input_flags.l2 = 1;
 	pkt_hdr->l2_offset = frame_offset;
 
-	eth = (odp_ethhdr_t *)odp_packet_start(pkt);
+	eth = (odph_ethhdr_t *)odp_packet_start(pkt);
 	ethtype = odp_be_to_cpu_16(eth->type);
-	vlan = (odp_vlanhdr_t *)&eth->type;
+	vlan = (odph_vlanhdr_t *)&eth->type;
 
-	if (ethtype == ODP_ETHTYPE_VLAN_OUTER) {
+	if (ethtype == ODPH_ETHTYPE_VLAN_OUTER) {
 		pkt_hdr->input_flags.vlan_qinq = 1;
 		ethtype = odp_be_to_cpu_16(vlan->tpid);
-		offset += sizeof(odp_vlanhdr_t);
+		offset += sizeof(odph_vlanhdr_t);
 		vlan = &vlan[1];
 	}
 
-	if (ethtype == ODP_ETHTYPE_VLAN) {
+	if (ethtype == ODPH_ETHTYPE_VLAN) {
 		pkt_hdr->input_flags.vlan = 1;
 		ethtype = odp_be_to_cpu_16(vlan->tpid);
-		offset += sizeof(odp_vlanhdr_t);
+		offset += sizeof(odph_vlanhdr_t);
 	}
 
 	/* Set l3_offset+flag only for known ethtypes */
 	switch (ethtype) {
-	case ODP_ETHTYPE_IPV4:
+	case ODPH_ETHTYPE_IPV4:
 		pkt_hdr->input_flags.ipv4 = 1;
 		pkt_hdr->input_flags.l3 = 1;
-		pkt_hdr->l3_offset = frame_offset + ODP_ETHHDR_LEN + offset;
-		ipv4 = (odp_ipv4hdr_t *)odp_packet_l3(pkt);
+		pkt_hdr->l3_offset = frame_offset + ODPH_ETHHDR_LEN + offset;
+		ipv4 = (odph_ipv4hdr_t *)odp_packet_l3(pkt);
 		ip_proto = parse_ipv4(pkt_hdr, ipv4, &offset);
 		break;
-	case ODP_ETHTYPE_IPV6:
+	case ODPH_ETHTYPE_IPV6:
 		pkt_hdr->input_flags.ipv6 = 1;
 		pkt_hdr->input_flags.l3 = 1;
-		pkt_hdr->l3_offset = frame_offset + ODP_ETHHDR_LEN + offset;
-		ipv6 = (odp_ipv6hdr_t *)odp_packet_l3(pkt);
+		pkt_hdr->l3_offset = frame_offset + ODPH_ETHHDR_LEN + offset;
+		ipv6 = (odph_ipv6hdr_t *)odp_packet_l3(pkt);
 		ip_proto = parse_ipv6(pkt_hdr, ipv6, &offset);
 		break;
-	case ODP_ETHTYPE_ARP:
+	case ODPH_ETHTYPE_ARP:
 		pkt_hdr->input_flags.arp = 1;
 		/* fall through */
 	default:
@@ -202,22 +202,22 @@ void odp_packet_parse(odp_packet_t pkt, size_t len, size_t frame_offset)
 	}
 
 	switch (ip_proto) {
-	case ODP_IPPROTO_UDP:
+	case ODPH_IPPROTO_UDP:
 		pkt_hdr->input_flags.udp = 1;
 		pkt_hdr->input_flags.l4 = 1;
 		pkt_hdr->l4_offset = pkt_hdr->l3_offset + offset;
 		break;
-	case ODP_IPPROTO_TCP:
+	case ODPH_IPPROTO_TCP:
 		pkt_hdr->input_flags.tcp = 1;
 		pkt_hdr->input_flags.l4 = 1;
 		pkt_hdr->l4_offset = pkt_hdr->l3_offset + offset;
 		break;
-	case ODP_IPPROTO_SCTP:
+	case ODPH_IPPROTO_SCTP:
 		pkt_hdr->input_flags.sctp = 1;
 		pkt_hdr->input_flags.l4 = 1;
 		pkt_hdr->l4_offset = pkt_hdr->l3_offset + offset;
 		break;
-	case ODP_IPPROTO_ICMP:
+	case ODPH_IPPROTO_ICMP:
 		pkt_hdr->input_flags.icmp = 1;
 		pkt_hdr->input_flags.l4 = 1;
 		pkt_hdr->l4_offset = pkt_hdr->l3_offset + offset;
@@ -232,19 +232,19 @@ void odp_packet_parse(odp_packet_t pkt, size_t len, size_t frame_offset)
 	}
 }
 
-static inline uint8_t parse_ipv4(odp_packet_hdr_t *pkt_hdr, odp_ipv4hdr_t *ipv4,
-				 size_t *offset_out)
+static inline uint8_t parse_ipv4(odp_packet_hdr_t *pkt_hdr,
+				 odph_ipv4hdr_t *ipv4, size_t *offset_out)
 {
 	uint8_t ihl;
 	uint16_t frag_offset;
 
-	ihl = ODP_IPV4HDR_IHL(ipv4->ver_ihl);
-	if (odp_unlikely(ihl < ODP_IPV4HDR_IHL_MIN)) {
+	ihl = ODPH_IPV4HDR_IHL(ipv4->ver_ihl);
+	if (odp_unlikely(ihl < ODPH_IPV4HDR_IHL_MIN)) {
 		pkt_hdr->error_flags.ip_err = 1;
 		return 0;
 	}
 
-	if (odp_unlikely(ihl > ODP_IPV4HDR_IHL_MIN)) {
+	if (odp_unlikely(ihl > ODPH_IPV4HDR_IHL_MIN)) {
 		pkt_hdr->input_flags.ipopt = 1;
 		return 0;
 	}
@@ -255,13 +255,13 @@ static inline uint8_t parse_ipv4(odp_packet_hdr_t *pkt_hdr, odp_ipv4hdr_t *ipv4,
 	*  "fragment offset" field is nonzero (all fragments except the first)
 	*/
 	frag_offset = odp_be_to_cpu_16(ipv4->frag_offset);
-	if (odp_unlikely(ODP_IPV4HDR_IS_FRAGMENT(frag_offset))) {
+	if (odp_unlikely(ODPH_IPV4HDR_IS_FRAGMENT(frag_offset))) {
 		pkt_hdr->input_flags.ipfrag = 1;
 		return 0;
 	}
 
-	if (ipv4->proto == ODP_IPPROTO_ESP ||
-	    ipv4->proto == ODP_IPPROTO_AH) {
+	if (ipv4->proto == ODPH_IPPROTO_ESP ||
+	    ipv4->proto == ODPH_IPPROTO_AH) {
 		pkt_hdr->input_flags.ipsec = 1;
 		return 0;
 	}
@@ -272,24 +272,24 @@ static inline uint8_t parse_ipv4(odp_packet_hdr_t *pkt_hdr, odp_ipv4hdr_t *ipv4,
 	return ipv4->proto;
 }
 
-static inline uint8_t parse_ipv6(odp_packet_hdr_t *pkt_hdr, odp_ipv6hdr_t *ipv6,
-				 size_t *offset_out)
+static inline uint8_t parse_ipv6(odp_packet_hdr_t *pkt_hdr,
+				 odph_ipv6hdr_t *ipv6, size_t *offset_out)
 {
-	if (ipv6->next_hdr == ODP_IPPROTO_ESP ||
-	    ipv6->next_hdr == ODP_IPPROTO_AH) {
+	if (ipv6->next_hdr == ODPH_IPPROTO_ESP ||
+	    ipv6->next_hdr == ODPH_IPPROTO_AH) {
 		pkt_hdr->input_flags.ipopt = 1;
 		pkt_hdr->input_flags.ipsec = 1;
 		return 0;
 	}
 
-	if (odp_unlikely(ipv6->next_hdr == ODP_IPPROTO_FRAG)) {
+	if (odp_unlikely(ipv6->next_hdr == ODPH_IPPROTO_FRAG)) {
 		pkt_hdr->input_flags.ipopt = 1;
 		pkt_hdr->input_flags.ipfrag = 1;
 		return 0;
 	}
 
 	/* Don't step through more extensions */
-	*offset_out = ODP_IPV6HDR_LEN;
+	*offset_out = ODPH_IPV6HDR_LEN;
 	return ipv6->next_hdr;
 }
 
diff --git a/test/Makefile.inc b/test/Makefile.inc
index b549001..4de2feb 100644
--- a/test/Makefile.inc
+++ b/test/Makefile.inc
@@ -5,6 +5,6 @@ AM_CFLAGS += \
 	-I$(srcdir) \
 	-I$(top_srcdir)/platform/@with_platform@/include/api \
 	-I$(top_srcdir)/platform/linux-generic/include/api \
-	-I$(top_srcdir)/include
+	-I$(top_srcdir)/helper/include
 
 AM_LDFLAGS += -L$(LIB)
diff --git a/test/api_test/odp_atomic_test.h b/test/api_test/odp_atomic_test.h
index d6eec04..7814da5 100644
--- a/test/api_test/odp_atomic_test.h
+++ b/test/api_test/odp_atomic_test.h
@@ -8,7 +8,7 @@
 #define ODP_ATOMIC_TEST_H_
 
 #include <odp.h>
-#include <helper/odp_linux.h>
+#include <odph_linux.h>
 
 /**
  * add_sub_cnt could be any valid value
diff --git a/test/api_test/odp_common.c b/test/api_test/odp_common.c
index 89ebd2d..b0a6fbc 100644
--- a/test/api_test/odp_common.c
+++ b/test/api_test/odp_common.c
@@ -12,14 +12,14 @@
 
 #include <string.h>
 #include <odp.h>
-#include <helper/odp_linux.h>
+#include <odph_linux.h>
 #include <odp_common.h>
 #include <odp_atomic_test.h>
 #include <odp_shm_test.h>
 
 
 /* Globals */
-static odp_linux_pthread_t thread_tbl[MAX_WORKERS]; /**< worker threads table	*/
+static odph_linux_pthread_t thread_tbl[MAX_WORKERS]; /**< worker threads table*/
 static int num_workers;				    /**< number of workers 	*/
 __thread test_shared_data_t *test_shared_data;	    /**< pointer to shared data */
 
@@ -73,8 +73,8 @@ int odp_test_global_init(void)
 int odp_test_thread_create(void *func_ptr(void *), pthrd_arg *arg)
 {
 	/* Create and init additional threads */
-	odp_linux_pthread_create(thread_tbl, arg->numthrds, 0, func_ptr,
-				 (void *)arg);
+	odph_linux_pthread_create(thread_tbl, arg->numthrds, 0, func_ptr,
+				  (void *)arg);
 
 	return 0;
 }
@@ -83,7 +83,7 @@ int odp_test_thread_create(void *func_ptr(void *), pthrd_arg *arg)
 int odp_test_thread_exit(pthrd_arg *arg)
 {
 	/* Wait for other threads to exit */
-	odp_linux_pthread_join(thread_tbl, arg->numthrds);
+	odph_linux_pthread_join(thread_tbl, arg->numthrds);
 
 	return 0;
 }
diff --git a/test/api_test/odp_ring_test.c b/test/api_test/odp_ring_test.c
index 93bd869..d75c30b 100644
--- a/test/api_test/odp_ring_test.c
+++ b/test/api_test/odp_ring_test.c
@@ -50,14 +50,14 @@
 #include <odp.h>
 #include <odp_debug.h>
 #include <odp_common.h>
-#include <helper/odp_ring.h>
+#include <odph_ring.h>
 
 #define RING_SIZE 4096
 #define MAX_BULK 32
 
 #define RING_TEST_BASIC
 
-static int test_ring_basic(odp_ring_t *r)
+static int test_ring_basic(odph_ring_t *r)
 {
 	void **src = NULL, **cur_src = NULL, **dst = NULL, **cur_dst = NULL;
 	int ret;
@@ -86,48 +86,48 @@ static int test_ring_basic(odp_ring_t *r)
 
 	printf("Test SP & SC basic functions\n");
 	printf("enqueue 1 obj\n");
-	ret = odp_ring_sp_enqueue_burst(r, cur_src, 1);
+	ret = odph_ring_sp_enqueue_burst(r, cur_src, 1);
 	cur_src += 1;
-	if ((ret & ODP_RING_SZ_MASK) != 1) {
+	if ((ret & ODPH_RING_SZ_MASK) != 1) {
 		ODP_ERR("sp_enq for 1 obj failed\n");
 		goto fail;
 	}
 
 	printf("enqueue 2 objs\n");
-	ret = odp_ring_sp_enqueue_burst(r, cur_src, 2);
+	ret = odph_ring_sp_enqueue_burst(r, cur_src, 2);
 	cur_src += 2;
-	if ((ret & ODP_RING_SZ_MASK) != 2) {
+	if ((ret & ODPH_RING_SZ_MASK) != 2) {
 		ODP_ERR("sp_enq for 2 obj failed\n");
 		goto fail;
 	}
 
 	printf("enqueue MAX_BULK objs\n");
-	ret = odp_ring_sp_enqueue_burst(r, cur_src, MAX_BULK);
-	if ((ret & ODP_RING_SZ_MASK) != MAX_BULK) {
+	ret = odph_ring_sp_enqueue_burst(r, cur_src, MAX_BULK);
+	if ((ret & ODPH_RING_SZ_MASK) != MAX_BULK) {
 		ODP_ERR("sp_enq for %d obj failed\n", MAX_BULK);
 		goto fail;
 	}
 
 	printf("dequeue 1 obj\n");
-	ret = odp_ring_sc_dequeue_burst(r, cur_dst, 1);
+	ret = odph_ring_sc_dequeue_burst(r, cur_dst, 1);
 	cur_dst += 1;
-	if ((ret & ODP_RING_SZ_MASK) != 1) {
+	if ((ret & ODPH_RING_SZ_MASK) != 1) {
 		ODP_ERR("sc_deq for 1 obj failed\n");
 		goto fail;
 	}
 
 	printf("dequeue 2 objs\n");
-	ret = odp_ring_sc_dequeue_burst(r, cur_dst, 2);
+	ret = odph_ring_sc_dequeue_burst(r, cur_dst, 2);
 	cur_dst += 2;
-	if ((ret & ODP_RING_SZ_MASK) != 2) {
+	if ((ret & ODPH_RING_SZ_MASK) != 2) {
 		ODP_ERR("sc_deq for 2 obj failed\n");
 		goto fail;
 	}
 
 	printf("dequeue MAX_BULK objs\n");
-	ret = odp_ring_sc_dequeue_burst(r, cur_dst, MAX_BULK);
+	ret = odph_ring_sc_dequeue_burst(r, cur_dst, MAX_BULK);
 	cur_dst += MAX_BULK;
-	if ((ret & ODP_RING_SZ_MASK) != MAX_BULK) {
+	if ((ret & ODPH_RING_SZ_MASK) != MAX_BULK) {
 		ODP_ERR("sc_deq for %d obj failed\n", MAX_BULK);
 		goto fail;
 	}
@@ -144,41 +144,41 @@ static int test_ring_basic(odp_ring_t *r)
 	printf("Test MP & MC basic functions\n");
 
 	printf("enqueue 1 obj\n");
-	ret = odp_ring_mp_enqueue_bulk(r, cur_src, 1);
+	ret = odph_ring_mp_enqueue_bulk(r, cur_src, 1);
 	cur_src += 1;
 	if (ret != 0) {
 		ODP_ERR("mp_enq for 1 obj failed\n");
 		goto fail;
 	}
 	printf("enqueue 2 objs\n");
-	ret = odp_ring_mp_enqueue_bulk(r, cur_src, 2);
+	ret = odph_ring_mp_enqueue_bulk(r, cur_src, 2);
 	cur_src += 2;
 	if (ret != 0) {
 		ODP_ERR("mp_enq for 2 obj failed\n");
 		goto fail;
 	}
 	printf("enqueue MAX_BULK objs\n");
-	ret = odp_ring_mp_enqueue_bulk(r, cur_src, MAX_BULK);
+	ret = odph_ring_mp_enqueue_bulk(r, cur_src, MAX_BULK);
 	if (ret != 0) {
 		ODP_ERR("mp_enq for %d obj failed\n", MAX_BULK);
 		goto fail;
 	}
 	printf("dequeue 1 obj\n");
-	ret = odp_ring_mc_dequeue_bulk(r, cur_dst, 1);
+	ret = odph_ring_mc_dequeue_bulk(r, cur_dst, 1);
 	cur_dst += 1;
 	if (ret != 0) {
 		ODP_ERR("mc_deq for 1 obj failed\n");
 		goto fail;
 	}
 	printf("dequeue 2 objs\n");
-	ret = odp_ring_mc_dequeue_bulk(r, cur_dst, 2);
+	ret = odph_ring_mc_dequeue_bulk(r, cur_dst, 2);
 	cur_dst += 2;
 	if (ret != 0) {
 		ODP_ERR("mc_deq for 2 obj failed\n");
 		goto fail;
 	}
 	printf("dequeue MAX_BULK objs\n");
-	ret = odp_ring_mc_dequeue_bulk(r, cur_dst, MAX_BULK);
+	ret = odph_ring_mc_dequeue_bulk(r, cur_dst, MAX_BULK);
 	cur_dst += MAX_BULK;
 	if (ret != 0) {
 		ODP_ERR("mc_deq for %d obj failed\n", MAX_BULK);
@@ -191,30 +191,30 @@ static int test_ring_basic(odp_ring_t *r)
 	}
 
 	printf("test watermark and default bulk enqueue / dequeue\n");
-	odp_ring_set_water_mark(r, 20);
+	odph_ring_set_water_mark(r, 20);
 	num_elems = 16;
 
 	cur_src = src;
 	cur_dst = dst;
 
-	ret = odp_ring_mp_enqueue_bulk(r, cur_src, num_elems);
+	ret = odph_ring_mp_enqueue_bulk(r, cur_src, num_elems);
 	cur_src += num_elems;
 	if (ret != 0) {
 		ODP_ERR("Cannot enqueue\n");
 		goto fail;
 	}
-	ret = odp_ring_mp_enqueue_bulk(r, cur_src, num_elems);
+	ret = odph_ring_mp_enqueue_bulk(r, cur_src, num_elems);
 	if (ret != -EDQUOT) {
 		ODP_ERR("Watermark not exceeded\n");
 		goto fail;
 	}
-	ret = odp_ring_mc_dequeue_bulk(r, cur_dst, num_elems);
+	ret = odph_ring_mc_dequeue_bulk(r, cur_dst, num_elems);
 	cur_dst += num_elems;
 	if (ret != 0) {
 		ODP_ERR("Cannot dequeue\n");
 		goto fail;
 	}
-	ret = odp_ring_mc_dequeue_bulk(r, cur_dst, num_elems);
+	ret = odph_ring_mc_dequeue_bulk(r, cur_dst, num_elems);
 	cur_dst += num_elems;
 	if (ret != 0) {
 		ODP_ERR("Cannot dequeue2\n");
@@ -241,7 +241,7 @@ fail:
 }
 
 /* global shared ring used for stress testing */
-static odp_ring_t *r_stress;
+static odph_ring_t *r_stress;
 
 /* Stress func for Multi producer only */
 static int producer_fn(void)
@@ -260,7 +260,7 @@ static int producer_fn(void)
 		src[i] = (void *)(unsigned long)i;
 
 	do {
-		i = odp_ring_mp_enqueue_bulk(r_stress, src, MAX_BULK);
+		i = odph_ring_mp_enqueue_bulk(r_stress, src, MAX_BULK);
 		if (i == 0)
 			return 0;
 	} while (1);
@@ -280,7 +280,7 @@ static int consumer_fn(void)
 	}
 
 	do {
-		i = odp_ring_mc_dequeue_bulk(r_stress, src, MAX_BULK);
+		i = odph_ring_mc_dequeue_bulk(r_stress, src, MAX_BULK);
 		if (i == 0) {
 			for (i = 0; i < MAX_BULK; i++) {
 				if (src[i] != (void *)(unsigned long)i) {
@@ -351,8 +351,8 @@ static void *test_ring(void *arg)
 {
 	ring_arg_t *parg = (ring_arg_t *)arg;
 	int thr;
-	char ring_name[ODP_RING_NAMESIZE];
-	odp_ring_t *r;
+	char ring_name[ODPH_RING_NAMESIZE];
+	odph_ring_t *r;
 	int result = 0;
 
 	thr = odp_thread_id();
@@ -363,7 +363,7 @@ static void *test_ring(void *arg)
 	case ODP_RING_TEST_BASIC:
 		snprintf(ring_name, sizeof(ring_name), "test_ring_%i", thr);
 
-		r = odp_ring_create(ring_name, RING_SIZE,
+		r = odph_ring_create(ring_name, RING_SIZE,
 				    0 /* not used, alignement
 					 taken care inside func : todo */);
 		if (r == NULL) {
@@ -372,7 +372,7 @@ static void *test_ring(void *arg)
 			break;
 		}
 		/* lookup ring from its name */
-		if (odp_ring_lookup(ring_name) != r) {
+		if (odph_ring_lookup(ring_name) != r) {
 			ODP_ERR("ring lookup failed\n");
 			result = -1;
 			break;
@@ -385,7 +385,7 @@ static void *test_ring(void *arg)
 		}
 
 		/* dump ring stats */
-		odp_ring_list_dump();
+		odph_ring_list_dump();
 
 		break;
 
@@ -393,7 +393,7 @@ static void *test_ring(void *arg)
 		test_ring_stress(parg->stress_type);
 
 		/* dump ring stats */
-		odp_ring_list_dump();
+		odph_ring_list_dump();
 		break;
 
 	default:
@@ -423,7 +423,7 @@ int main(int argc ODP_UNUSED, char *argv[] ODP_UNUSED)
 
 	odp_print_system_info();
 
-	odp_ring_tailq_init();
+	odph_ring_tailq_init();
 
 	rarg.thrdarg.numthrds = odp_sys_core_count();
 
@@ -433,13 +433,13 @@ int main(int argc ODP_UNUSED, char *argv[] ODP_UNUSED)
 	rarg.thrdarg.testcase = ODP_RING_TEST_STRESS;
 	rarg.stress_type = one_enq_one_deq;
 /*	rarg.stress_type = multi_enq_multi_deq;*/
-	char ring_name[ODP_RING_NAMESIZE];
+	char ring_name[ODPH_RING_NAMESIZE];
 
 	printf("starting stess test type : %d..\n", rarg.stress_type);
 	/* create a ring */
 	snprintf(ring_name, sizeof(ring_name), "test_ring_stress");
 
-	r_stress = odp_ring_create(ring_name, RING_SIZE,
+	r_stress = odph_ring_create(ring_name, RING_SIZE,
 				0 /* not used, alignement
 				 taken care inside func : todo */);
 	if (r_stress == NULL) {
@@ -447,7 +447,7 @@ int main(int argc ODP_UNUSED, char *argv[] ODP_UNUSED)
 		goto fail;
 	}
 	/* lookup ring from its name */
-	if (odp_ring_lookup(ring_name) != r_stress) {
+	if (odph_ring_lookup(ring_name) != r_stress) {
 		ODP_ERR("ring lookup failed\n");
 		goto fail;
 	}
diff --git a/test/api_test/odp_timer_ping.c b/test/api_test/odp_timer_ping.c
index c1cc255..6ba30d3 100644
--- a/test/api_test/odp_timer_ping.c
+++ b/test/api_test/odp_timer_ping.c
@@ -35,8 +35,8 @@
 #include <odp.h>
 #include <odp_common.h>
 #include <odp_timer.h>
-#include <helper/odp_linux.h>
-#include <helper/odp_chksum.h>
+#include <odph_linux.h>
+#include <odph_chksum.h>
 
 #define MSG_POOL_SIZE         (4*1024*1024)
 #define BUF_SIZE		8
@@ -309,7 +309,7 @@ static int ping_init(int count, char *name[])
 
 int main(int argc ODP_UNUSED, char *argv[] ODP_UNUSED)
 {
-	odp_linux_pthread_t thread_tbl[MAX_WORKERS];
+	odph_linux_pthread_t thread_tbl[MAX_WORKERS];
 	ping_arg_t pingarg;
 	odp_queue_t queue;
 	odp_buffer_pool_t pool;
@@ -371,12 +371,12 @@ int main(int argc ODP_UNUSED, char *argv[] ODP_UNUSED)
 			run_thread = rx_ping;
 
 		/* Create and launch worker threads */
-		odp_linux_pthread_create(&thread_tbl[i], 1, i,
-					 run_thread, (pthrd_arg *)&pingarg);
+		odph_linux_pthread_create(&thread_tbl[i], 1, i,
+					  run_thread, (pthrd_arg *)&pingarg);
 	}
 
 	/* Wait for worker threads to exit */
-	odp_linux_pthread_join(thread_tbl, PING_THRD);
+	odph_linux_pthread_join(thread_tbl, PING_THRD);
 
 	ODP_DBG("ping timer test %s\n", (pingarg.result == 0) ? "passed" : "failed");
 
