From patchwork Thu Aug 28 22:02:08 2014 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anders Roxell X-Patchwork-Id: 36264 Return-Path: X-Original-To: linaro@patches.linaro.org Delivered-To: linaro@patches.linaro.org Received: from mail-oi0-f70.google.com (mail-oi0-f70.google.com [209.85.218.70]) by ip-10-151-82-157.ec2.internal (Postfix) with ESMTPS id 73C7B202DD for ; Thu, 28 Aug 2014 22:02:48 +0000 (UTC) Received: by mail-oi0-f70.google.com with SMTP id u20sf9973159oif.1 for ; Thu, 28 Aug 2014 15:02:48 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:delivered-to:from:to:date:message-id:in-reply-to :references:subject:precedence:list-id:list-unsubscribe:list-archive :list-post:list-help:list-subscribe:mime-version:errors-to:sender :x-original-sender:x-original-authentication-results:mailing-list :content-type:content-transfer-encoding; bh=cqg6W9ZpUdrDq6dgsPrtJqW0o7XpaArrEXaJsbb7Nww=; b=EGDEDcs79+RmrvBuo7mDj1L5DftjnOtk1pT+6igW51imfqTHUZKf9BmD71kS1Wn6Jp Mdsi6EyzV22aD+mvvJYiyDpt635Puyzrv1RKD7+nj5SwYC0phCofGi6UggWKrcDo1frC n+ttEc5/fJ4JelomKURfbIa3fL1hiaKNbG2Urq1nfTSPFTlzNYtDM90dShjXrwR1BVde 7lXmAfgWKrxbKz7w6NvVs/B0RgDq62Mqx38eRVKDeuOpxG4tFWgIAkbb7e+yBtsOD1aw i9g4m36EY3UDpezuTXvKROJB6okzYVNkUa6whj7NxEuRrJtXrSIJtSQLVIhblPeCWL3t VAVw== X-Gm-Message-State: ALoCoQn/GkXLhIZtNb38u1N1iQ04mJ+LfbkO5YMoiqeY8A+mDBICZBh2zqnnEzseBapB6E5TLno6 X-Received: by 10.183.10.133 with SMTP id ea5mr3846742obd.24.1409263368060; Thu, 28 Aug 2014 15:02:48 -0700 (PDT) X-BeenThere: patchwork-forward@linaro.org Received: by 10.140.106.34 with SMTP id d31ls802014qgf.93.gmail; Thu, 28 Aug 2014 15:02:47 -0700 (PDT) X-Received: by 10.220.116.196 with SMTP id n4mr6323096vcq.6.1409263367889; Thu, 28 Aug 2014 15:02:47 -0700 (PDT) Received: from mail-vc0-f171.google.com (mail-vc0-f171.google.com [209.85.220.171]) by mx.google.com with ESMTPS id cj7si5325537vcb.44.2014.08.28.15.02.47 for (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Thu, 28 Aug 2014 15:02:47 -0700 (PDT) Received-SPF: pass (google.com: domain of patch+caf_=patchwork-forward=linaro.org@linaro.org designates 209.85.220.171 as permitted sender) client-ip=209.85.220.171; Received: by mail-vc0-f171.google.com with SMTP id id10so1616106vcb.16 for ; Thu, 28 Aug 2014 15:02:47 -0700 (PDT) X-Received: by 10.52.73.202 with SMTP id n10mr3554690vdv.86.1409263367737; Thu, 28 Aug 2014 15:02:47 -0700 (PDT) X-Forwarded-To: patchwork-forward@linaro.org X-Forwarded-For: patch@linaro.org patchwork-forward@linaro.org Delivered-To: patch@linaro.org Received: by 10.221.45.67 with SMTP id uj3csp302664vcb; Thu, 28 Aug 2014 15:02:46 -0700 (PDT) X-Received: by 10.140.94.100 with SMTP id f91mr10578196qge.41.1409263366139; Thu, 28 Aug 2014 15:02:46 -0700 (PDT) Received: from ip-10-141-164-156.ec2.internal (lists.linaro.org. [54.225.227.206]) by mx.google.com with ESMTPS id w2si7702486qad.46.2014.08.28.15.02.45 for (version=TLSv1 cipher=RC4-SHA bits=128/128); Thu, 28 Aug 2014 15:02:46 -0700 (PDT) Received-SPF: none (google.com: lng-odp-bounces@lists.linaro.org does not designate permitted sender hosts) client-ip=54.225.227.206; Received: from localhost ([127.0.0.1] helo=ip-10-141-164-156.ec2.internal) by ip-10-141-164-156.ec2.internal with esmtp (Exim 4.76) (envelope-from ) id 1XN7mG-0003am-9s; Thu, 28 Aug 2014 22:02:44 +0000 Received: from mail-la0-f46.google.com ([209.85.215.46]) by ip-10-141-164-156.ec2.internal with esmtp (Exim 4.76) (envelope-from ) id 1XN7ly-0003aP-TI for lng-odp@lists.linaro.org; Thu, 28 Aug 2014 22:02:27 +0000 Received: by mail-la0-f46.google.com with SMTP id pv20so1756522lab.19 for ; Thu, 28 Aug 2014 15:02:20 -0700 (PDT) X-Received: by 10.152.115.171 with SMTP id jp11mr5266618lab.90.1409263340739; Thu, 28 Aug 2014 15:02:20 -0700 (PDT) Received: from localhost (c-853670d5.07-21-73746f28.cust.bredbandsbolaget.se. [213.112.54.133]) by mx.google.com with ESMTPSA id m5sm3175036laa.37.2014.08.28.15.02.18 for (version=TLSv1.2 cipher=RC4-SHA bits=128/128); Thu, 28 Aug 2014 15:02:19 -0700 (PDT) From: Anders Roxell To: lng-odp@lists.linaro.org Date: Fri, 29 Aug 2014 00:02:08 +0200 Message-Id: <1409263329-26011-2-git-send-email-anders.roxell@linaro.org> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1409263329-26011-1-git-send-email-anders.roxell@linaro.org> References: <1409263329-26011-1-git-send-email-anders.roxell@linaro.org> X-Topics: patch Subject: [lng-odp] [PATCH 1/2] move helper functions and rename to prefix to odph_ X-BeenThere: lng-odp@lists.linaro.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: , List-Help: , List-Subscribe: , MIME-Version: 1.0 Errors-To: lng-odp-bounces@lists.linaro.org Sender: lng-odp-bounces@lists.linaro.org X-Removed-Original-Auth: Dkim didn't pass. X-Original-Sender: anders.roxell@linaro.org X-Original-Authentication-Results: mx.google.com; spf=pass (google.com: domain of patch+caf_=patchwork-forward=linaro.org@linaro.org designates 209.85.220.171 as permitted sender) smtp.mail=patch+caf_=patchwork-forward=linaro.org@linaro.org Mailing-list: list patchwork-forward@linaro.org; contact patchwork-forward+owners@linaro.org X-Google-Group-Id: 836684582541 Signed-off-by: Anders Roxell Acked-by: Petri Savolainen --- .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 #include -#include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include +#include #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 #include -#include -#include -#include -#include +#include +#include +#include +#include /** @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 helper for Linux apps */ -#include +#include /* Needs librt*/ #include @@ -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 #include -#include -#include -#include -#include +#include +#include +#include +#include /** @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 #include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include #include @@ -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 helper for Linux apps */ -#include +#include /* GNU lib C */ #include @@ -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 +#include +#include +#include + +#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 /** 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 #include #include -#include +#include #include -#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 #include -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 /** 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 -#include -#include -#include - -#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 #include -#include -#include +#include +#include #include #include #include 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 #include -#include +#include #include #include #include @@ -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 #include -#include -#include +#include +#include #include #include -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 *)ð->type; + vlan = (odph_vlanhdr_t *)ð->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 #include #include -#include +#include #include @@ -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 #include -#include +#include #include #include #include @@ -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 #include -#include -#include +#include +#include #include #include -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 *)ð->type; + vlan = (odph_vlanhdr_t *)ð->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 #include -#include -#include -#include +#include +#include +#include #define NETMAP_WITH_LIBS #include @@ -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 #include -#include -#include -#include +#include +#include +#include /** 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 #include #include -#include +#include 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 #include -#include -#include +#include +#include #include #include -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 *)ð->type; + vlan = (odph_vlanhdr_t *)ð->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 -#include +#include /** * 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 #include -#include +#include #include #include #include /* 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 #include #include -#include +#include #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 #include #include -#include -#include +#include +#include #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");