[1/2] move helper functions and rename to prefix to odph_

Message ID 1409263329-26011-2-git-send-email-anders.roxell@linaro.org
State New
Headers show

Commit Message

Anders Roxell Aug. 28, 2014, 10:02 p.m.
Signed-off-by: Anders Roxell <anders.roxell@linaro.org>
---
 .gitignore                                         |   6 +-
 configure.ac                                       |   4 +-
 doc/doxygen.cfg                                    |   2 +-
 example/Makefile.inc                               |   2 +-
 example/generator/odp_generator.c                  | 142 ++++++++++----------
 example/l2fwd/odp_l2fwd.c                          |  18 +--
 example/odp_example/odp_example.c                  |  10 +-
 example/packet/odp_pktio.c                         |  28 ++--
 example/packet_netmap/odp_pktio_netmap.c           |  32 ++---
 example/timer/odp_timer_test.c                     |  10 +-
 .../odp_chksum.h => helper/include/odph_chksum.h   |   0
 helper/include/odph_eth.h                          |  87 ++++++++++++
 .../odp_icmp.h => helper/include/odph_icmp.h       |  12 +-
 .../helper/odp_ip.h => helper/include/odph_ip.h    |  70 +++++-----
 .../odp_linux.h => helper/include/odph_linux.h     |   6 +-
 .../include/odph_packet_helper.h                   |  12 +-
 .../odp_ring.h => helper/include/odph_ring.h       |  98 +++++++-------
 .../helper/odp_udp.h => helper/include/odph_udp.h  |  32 ++---
 include/helper/odp_eth.h                           |  87 ------------
 platform/linux-dpdk/Makefile.am                    |  16 +--
 platform/linux-dpdk/include/odp_packet_dpdk.h      |   4 +-
 platform/linux-dpdk/odp_linux.c                    |   6 +-
 platform/linux-dpdk/odp_packet.c                   |  86 ++++++------
 platform/linux-generic/Makefile.am                 |  16 +--
 platform/linux-generic/include/api/odp_align.h     |   2 +-
 platform/linux-generic/odp_crypto.c                |   4 +-
 platform/linux-generic/odp_linux.c                 |   8 +-
 platform/linux-generic/odp_packet.c                |  86 ++++++------
 platform/linux-generic/odp_packet_netmap.c         |  20 +--
 platform/linux-generic/odp_packet_socket.c         |  42 +++---
 platform/linux-generic/odp_ring.c                  | 146 +++++++++++----------
 platform/linux-keystone2/Makefile.am               |  16 +--
 platform/linux-keystone2/odp_packet.c              |  86 ++++++------
 test/Makefile.inc                                  |   2 +-
 test/api_test/odp_atomic_test.h                    |   2 +-
 test/api_test/odp_common.c                         |  10 +-
 test/api_test/odp_ring_test.c                      |  76 +++++------
 test/api_test/odp_timer_ping.c                     |  12 +-
 38 files changed, 653 insertions(+), 645 deletions(-)
 rename include/helper/odp_chksum.h => helper/include/odph_chksum.h (100%)
 create mode 100644 helper/include/odph_eth.h
 rename include/helper/odp_icmp.h => helper/include/odph_icmp.h (93%)
 rename include/helper/odp_ip.h => helper/include/odph_ip.h (57%)
 rename include/helper/odp_linux.h => helper/include/odph_linux.h (88%)
 rename include/helper/odp_packet_helper.h => helper/include/odph_packet_helper.h (83%)
 rename include/helper/odp_ring.h => helper/include/odph_ring.h (87%)
 rename include/helper/odp_udp.h => helper/include/odph_udp.h (74%)
 delete mode 100644 include/helper/odp_eth.h

Comments

Savolainen, Petri (NSN - FI/Espoo) Aug. 29, 2014, 11:47 a.m. | #1
> -----Original Message-----
> From: lng-odp-bounces@lists.linaro.org [mailto:lng-odp-
> bounces@lists.linaro.org] On Behalf Of ext Anders Roxell
> Sent: Friday, August 29, 2014 1:02 AM
> To: lng-odp@lists.linaro.org
> Subject: [lng-odp] [PATCH 1/2] move helper functions and rename to prefix
> to odph_
> 
> Signed-off-by: Anders Roxell <anders.roxell@linaro.org>
Acked-by: Petri Savolainen <petri.savolainen@linaro.org>
> ---
>  .gitignore                                         |   6 +-
>  configure.ac                                       |   4 +-
>  doc/doxygen.cfg                                    |   2 +-
>  example/Makefile.inc                               |   2 +-
>  example/generator/odp_generator.c                  | 142 ++++++++++------
> ----
>  example/l2fwd/odp_l2fwd.c                          |  18 +--
>  example/odp_example/odp_example.c                  |  10 +-
>  example/packet/odp_pktio.c                         |  28 ++--
>  example/packet_netmap/odp_pktio_netmap.c           |  32 ++---
>  example/timer/odp_timer_test.c                     |  10 +-
>  .../odp_chksum.h => helper/include/odph_chksum.h   |   0
>  helper/include/odph_eth.h                          |  87 ++++++++++++
>  .../odp_icmp.h => helper/include/odph_icmp.h       |  12 +-
>  .../helper/odp_ip.h => helper/include/odph_ip.h    |  70 +++++-----
>  .../odp_linux.h => helper/include/odph_linux.h     |   6 +-
>  .../include/odph_packet_helper.h                   |  12 +-
>  .../odp_ring.h => helper/include/odph_ring.h       |  98 +++++++-------
>  .../helper/odp_udp.h => helper/include/odph_udp.h  |  32 ++---
>  include/helper/odp_eth.h                           |  87 ------------
>  platform/linux-dpdk/Makefile.am                    |  16 +--
>  platform/linux-dpdk/include/odp_packet_dpdk.h      |   4 +-
>  platform/linux-dpdk/odp_linux.c                    |   6 +-
>  platform/linux-dpdk/odp_packet.c                   |  86 ++++++------
>  platform/linux-generic/Makefile.am                 |  16 +--
>  platform/linux-generic/include/api/odp_align.h     |   2 +-
>  platform/linux-generic/odp_crypto.c                |   4 +-
>  platform/linux-generic/odp_linux.c                 |   8 +-
>  platform/linux-generic/odp_packet.c                |  86 ++++++------
>  platform/linux-generic/odp_packet_netmap.c         |  20 +--
>  platform/linux-generic/odp_packet_socket.c         |  42 +++---
>  platform/linux-generic/odp_ring.c                  | 146 +++++++++++-----
> -----
>  platform/linux-keystone2/Makefile.am               |  16 +--
>  platform/linux-keystone2/odp_packet.c              |  86 ++++++------
>  test/Makefile.inc                                  |   2 +-
>  test/api_test/odp_atomic_test.h                    |   2 +-
>  test/api_test/odp_common.c                         |  10 +-
>  test/api_test/odp_ring_test.c                      |  76 +++++------
>  test/api_test/odp_timer_ping.c                     |  12 +-
>  38 files changed, 653 insertions(+), 645 deletions(-)
>  rename include/helper/odp_chksum.h => helper/include/odph_chksum.h (100%)
>  create mode 100644 helper/include/odph_eth.h
>  rename include/helper/odp_icmp.h => helper/include/odph_icmp.h (93%)
>  rename include/helper/odp_ip.h => helper/include/odph_ip.h (57%)
>  rename include/helper/odp_linux.h => helper/include/odph_linux.h (88%)
>  rename include/helper/odp_packet_helper.h =>
> helper/include/odph_packet_helper.h (83%)
>  rename include/helper/odp_ring.h => helper/include/odph_ring.h (87%)
>  rename include/helper/odp_udp.h => helper/include/odph_udp.h (74%)
>  delete mode 100644 include/helper/odp_eth.h
> 
> 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..70c0353 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_helper.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..beefdd3 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_helper.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..308b115 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_helper.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..d3699f7 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_helper.h>
> +#include <odph_eth.h>
> +#include <odph_ip.h>
> +#include <odph_packet_helper.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_helper.h
> similarity index 83%
> rename from include/helper/odp_packet_helper.h
> rename to helper/include/odph_packet_helper.h
> index db12028..c18f48d 100644
> --- a/include/helper/odp_packet_helper.h
> +++ b/helper/include/odph_packet_helper.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..a03ef41 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_helper.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..f901184 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_helper.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..b996ced 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_helper.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..03a3770 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_helper.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..1614b56 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_helper.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..857929d 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_helper.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..1005da9 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_helper.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");
> 
> --
> 1.9.1
> 
> 
> _______________________________________________
> lng-odp mailing list
> lng-odp@lists.linaro.org
> http://lists.linaro.org/mailman/listinfo/lng-odp
Stuart Haslam Aug. 29, 2014, 12:40 p.m. | #2
On Thu, Aug 28, 2014 at 11:02:08PM +0100, Anders Roxell wrote:
> Signed-off-by: Anders Roxell <anders.roxell@linaro.org>
> ---
>  .gitignore                                         |   6 +-
>  configure.ac                                       |   4 +-
>  doc/doxygen.cfg                                    |   2 +-
>  example/Makefile.inc                               |   2 +-
>  example/generator/odp_generator.c                  | 142 ++++++++++----------
>  example/l2fwd/odp_l2fwd.c                          |  18 +--
>  example/odp_example/odp_example.c                  |  10 +-
>  example/packet/odp_pktio.c                         |  28 ++--
>  example/packet_netmap/odp_pktio_netmap.c           |  32 ++---
>  example/timer/odp_timer_test.c                     |  10 +-
>  .../odp_chksum.h => helper/include/odph_chksum.h   |   0
>  helper/include/odph_eth.h                          |  87 ++++++++++++
>  .../odp_icmp.h => helper/include/odph_icmp.h       |  12 +-
>  .../helper/odp_ip.h => helper/include/odph_ip.h    |  70 +++++-----
>  .../odp_linux.h => helper/include/odph_linux.h     |   6 +-
>  .../include/odph_packet_helper.h                   |  12 +-
>  .../odp_ring.h => helper/include/odph_ring.h       |  98 +++++++-------
>  .../helper/odp_udp.h => helper/include/odph_udp.h  |  32 ++---
>  include/helper/odp_eth.h                           |  87 ------------
>  platform/linux-dpdk/Makefile.am                    |  16 +--
>  platform/linux-dpdk/include/odp_packet_dpdk.h      |   4 +-
>  platform/linux-dpdk/odp_linux.c                    |   6 +-
>  platform/linux-dpdk/odp_packet.c                   |  86 ++++++------
>  platform/linux-generic/Makefile.am                 |  16 +--
>  platform/linux-generic/include/api/odp_align.h     |   2 +-
>  platform/linux-generic/odp_crypto.c                |   4 +-
>  platform/linux-generic/odp_linux.c                 |   8 +-
>  platform/linux-generic/odp_packet.c                |  86 ++++++------
>  platform/linux-generic/odp_packet_netmap.c         |  20 +--
>  platform/linux-generic/odp_packet_socket.c         |  42 +++---
>  platform/linux-generic/odp_ring.c                  | 146 +++++++++++----------

odp_ring.c should probably in future move out of here into helpers/, to
make it easier to build the helpers into a different library.. but I
think it's right for that not do be done in this patch.

>  platform/linux-keystone2/Makefile.am               |  16 +--
>  platform/linux-keystone2/odp_packet.c              |  86 ++++++------
>  test/Makefile.inc                                  |   2 +-
>  test/api_test/odp_atomic_test.h                    |   2 +-
>  test/api_test/odp_common.c                         |  10 +-
>  test/api_test/odp_ring_test.c                      |  76 +++++------
>  test/api_test/odp_timer_ping.c                     |  12 +-
>  38 files changed, 653 insertions(+), 645 deletions(-)
>  rename include/helper/odp_chksum.h => helper/include/odph_chksum.h (100%)
>  create mode 100644 helper/include/odph_eth.h
>  rename include/helper/odp_icmp.h => helper/include/odph_icmp.h (93%)
>  rename include/helper/odp_ip.h => helper/include/odph_ip.h (57%)
>  rename include/helper/odp_linux.h => helper/include/odph_linux.h (88%)
>  rename include/helper/odp_packet_helper.h => helper/include/odph_packet_helper.h (83%)

You could now lose the _helper suffix as the prefix now makes the
filename unique.

>  rename include/helper/odp_ring.h => helper/include/odph_ring.h (87%)
>  rename include/helper/odp_udp.h => helper/include/odph_udp.h (74%)
>  delete mode 100644 include/helper/odp_eth.h
> 
> 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

The helpers shouldn't be documented in the API reference manual.

Patch

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..70c0353 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_helper.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..beefdd3 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_helper.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..308b115 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_helper.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..d3699f7 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_helper.h>
+#include <odph_eth.h>
+#include <odph_ip.h>
+#include <odph_packet_helper.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_helper.h
similarity index 83%
rename from include/helper/odp_packet_helper.h
rename to helper/include/odph_packet_helper.h
index db12028..c18f48d 100644
--- a/include/helper/odp_packet_helper.h
+++ b/helper/include/odph_packet_helper.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..a03ef41 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_helper.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..f901184 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_helper.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..b996ced 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_helper.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..03a3770 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_helper.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..1614b56 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_helper.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..857929d 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_helper.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..1005da9 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_helper.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");