From patchwork Tue Jun 21 03:13:37 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yi He X-Patchwork-Id: 70490 Delivered-To: patch@linaro.org Received: by 10.140.28.4 with SMTP id 4csp1801320qgy; Mon, 20 Jun 2016 20:14:23 -0700 (PDT) X-Received: by 10.55.175.134 with SMTP id y128mr13619187qke.67.1466478863379; Mon, 20 Jun 2016 20:14:23 -0700 (PDT) Return-Path: Received: from lists.linaro.org (lists.linaro.org. [54.225.227.206]) by mx.google.com with ESMTP id p63si51498316qkp.183.2016.06.20.20.14.22; Mon, 20 Jun 2016 20:14:23 -0700 (PDT) Received-SPF: pass (google.com: domain of lng-odp-bounces@lists.linaro.org designates 54.225.227.206 as permitted sender) client-ip=54.225.227.206; Authentication-Results: mx.google.com; spf=pass (google.com: domain of lng-odp-bounces@lists.linaro.org designates 54.225.227.206 as permitted sender) smtp.mailfrom=lng-odp-bounces@lists.linaro.org; dmarc=pass (p=NONE dis=NONE) header.from=linaro.org Received: by lists.linaro.org (Postfix, from userid 109) id 97D8D61E0B; Tue, 21 Jun 2016 03:14:22 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on ip-10-142-244-252 X-Spam-Level: X-Spam-Status: No, score=-2.6 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H2, URIBL_BLOCKED autolearn=disabled version=3.4.0 Received: from [127.0.0.1] (localhost [127.0.0.1]) by lists.linaro.org (Postfix) with ESMTP id 8FA6661DFE; Tue, 21 Jun 2016 03:13:59 +0000 (UTC) X-Original-To: lng-odp@lists.linaro.org Delivered-To: lng-odp@lists.linaro.org Received: by lists.linaro.org (Postfix, from userid 109) id D7CA061E04; Tue, 21 Jun 2016 03:13:53 +0000 (UTC) Received: from mail-pf0-f178.google.com (mail-pf0-f178.google.com [209.85.192.178]) by lists.linaro.org (Postfix) with ESMTPS id 091D3617B6 for ; Tue, 21 Jun 2016 03:13:50 +0000 (UTC) Received: by mail-pf0-f178.google.com with SMTP id i123so1629031pfg.0 for ; Mon, 20 Jun 2016 20:13:49 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=IamB3BijsTAAxraVB/8zzoQd8JWoSjydXLadrrdJB9A=; b=J2CVEcM5OROsdaKUalg0A+/gPCLRaUwf6vTjYX9O46c8w3niUNlqv/T/xdaIRINMih +NeX6e4ypVHM+UeVrH0g0+cKQyBgiRF3woGw8rZXEqTKqSwBNifaTFQ8pwzp1pZdqMTR mf0Qx0vACrcYiq2tiZZxBDfe1qab1CvfXftp3Qw7thcv6nR2WiXtw0yBoQw8NpoBs5xD 0V2zCJUTdoDlV70ydCv9tmftk2v1ngC2dgPoL/8h37indvN0jPiDCjpr9o3FOE0K69CD UzRgm3ziupAyX/NgqburPH1kGNuKa51Svb40IN0mvIEGMiBjN3TSeTZUKIjbZihtciqd 95OA== X-Gm-Message-State: ALyK8tIYRDcpl5VOG7N77jJxlRkg/uQMWIxbT/T8GIkOJNczKoIpzQN2bMpkm0ou9JIZ9fVMVP0= X-Received: by 10.98.80.79 with SMTP id e76mr25960489pfb.67.1466478828350; Mon, 20 Jun 2016 20:13:48 -0700 (PDT) Received: from ubuntu.heyii.co (ubuntu.heyii.co. [45.32.66.203]) by smtp.googlemail.com with ESMTPSA id q88sm91269003pfj.4.2016.06.20.20.13.47 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Mon, 20 Jun 2016 20:13:47 -0700 (PDT) From: Yi He To: lng-odp@lists.linaro.org Date: Tue, 21 Jun 2016 03:13:37 +0000 Message-Id: <1466478817-29469-1-git-send-email-yi.he@linaro.org> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1466398345-28665-1-git-send-email-yi.he@linaro.org> References: <1466398345-28665-1-git-send-email-yi.he@linaro.org> X-Topics: patch Subject: [lng-odp] [RFC PATCHv2] linux-gen: remove all dependencies to helper X-BeenThere: lng-odp@lists.linaro.org X-Mailman-Version: 2.1.16 Precedence: list List-Id: "The OpenDataPlane \(ODP\) List" 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" Remove all dependencies to helper by copying protocol header definitions into linux-generic, checked and decoupled all odph_* ODPH_* references. Signed-off-by: Yi He --- v2 changes the names to _odp_* for internal namespace. platform/linux-generic/Makefile.am | 7 +- .../include/odp_classification_inlines.h | 50 +++--- .../include/odp_name_table_internal.h | 2 +- .../linux-generic/include/protocols}/eth.h | 111 ++++++------- .../linux-generic/include/protocols}/ip.h | 180 ++++++--------------- .../linux-generic/include/protocols}/ipsec.h | 40 ++--- .../linux-generic/include/protocols}/tcp.h | 12 +- .../linux-generic/include/protocols}/udp.h | 34 +--- platform/linux-generic/odp_classification.c | 23 +-- platform/linux-generic/odp_packet.c | 106 ++++++------ platform/linux-generic/odp_traffic_mngr.c | 64 ++++---- platform/linux-generic/pktio/dpdk.c | 4 +- platform/linux-generic/pktio/loop.c | 4 +- platform/linux-generic/pktio/netmap.c | 6 +- platform/linux-generic/pktio/pcap.c | 6 +- platform/linux-generic/pktio/ring.c | 9 +- platform/linux-generic/pktio/socket.c | 8 +- platform/linux-generic/pktio/socket_mmap.c | 22 +-- 18 files changed, 291 insertions(+), 397 deletions(-) copy {helper/include/odp/helper => platform/linux-generic/include/protocols}/eth.h (30%) copy {helper/include/odp/helper => platform/linux-generic/include/protocols}/ip.h (41%) copy {helper/include/odp/helper => platform/linux-generic/include/protocols}/ipsec.h (53%) copy {helper/include/odp/helper => platform/linux-generic/include/protocols}/tcp.h (88%) copy {helper/include/odp/helper => platform/linux-generic/include/protocols}/udp.h (47%) diff --git a/platform/linux-generic/Makefile.am b/platform/linux-generic/Makefile.am index 469869e..c8fd8cb 100644 --- a/platform/linux-generic/Makefile.am +++ b/platform/linux-generic/Makefile.am @@ -6,8 +6,6 @@ include $(top_srcdir)/platform/@with_platform@/Makefile.inc AM_CFLAGS += -I$(srcdir)/include AM_CFLAGS += -I$(top_srcdir)/include -AM_CFLAGS += -I$(top_srcdir)/helper/include -AM_CFLAGS += -I$(top_srcdir)/helper include_HEADERS = \ $(top_srcdir)/include/odp.h \ @@ -125,6 +123,11 @@ noinst_HEADERS = \ ${srcdir}/include/odp_timer_internal.h \ ${srcdir}/include/odp_timer_wheel_internal.h \ ${srcdir}/include/odp_traffic_mngr_internal.h \ + ${srcdir}/include/protocols/eth.h \ + ${srcdir}/include/protocols/ip.h \ + ${srcdir}/include/protocols/ipsec.h \ + ${srcdir}/include/protocols/tcp.h \ + ${srcdir}/include/protocols/udp.h \ ${srcdir}/Makefile.inc __LIB__libodp_linux_la_SOURCES = \ diff --git a/platform/linux-generic/include/odp_classification_inlines.h b/platform/linux-generic/include/odp_classification_inlines.h index 611d706..b839197 100644 --- a/platform/linux-generic/include/odp_classification_inlines.h +++ b/platform/linux-generic/include/odp_classification_inlines.h @@ -19,11 +19,11 @@ extern "C" { #endif #include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include #include /* PMR term value verification function @@ -45,11 +45,11 @@ static inline int verify_pmr_ip_proto(const uint8_t *pkt_addr, odp_packet_hdr_t *pkt_hdr, pmr_term_value_t *term_value) { - const odph_ipv4hdr_t *ip; + const _odp_ipv4hdr_t *ip; uint8_t proto; if (!pkt_hdr->p.input_flags.ipv4) return 0; - ip = (const odph_ipv4hdr_t *)(pkt_addr + pkt_hdr->p.l3_offset); + ip = (const _odp_ipv4hdr_t *)(pkt_addr + pkt_hdr->p.l3_offset); proto = ip->proto; if (term_value->match.value == (proto & term_value->match.mask)) return 1; @@ -61,11 +61,11 @@ static inline int verify_pmr_ipv4_saddr(const uint8_t *pkt_addr, odp_packet_hdr_t *pkt_hdr, pmr_term_value_t *term_value) { - const odph_ipv4hdr_t *ip; + const _odp_ipv4hdr_t *ip; uint32_t ipaddr; if (!pkt_hdr->p.input_flags.ipv4) return 0; - ip = (const odph_ipv4hdr_t *)(pkt_addr + pkt_hdr->p.l3_offset); + ip = (const _odp_ipv4hdr_t *)(pkt_addr + pkt_hdr->p.l3_offset); ipaddr = odp_be_to_cpu_32(ip->src_addr); if (term_value->match.value == (ipaddr & term_value->match.mask)) return 1; @@ -77,11 +77,11 @@ static inline int verify_pmr_ipv4_daddr(const uint8_t *pkt_addr, odp_packet_hdr_t *pkt_hdr, pmr_term_value_t *term_value) { - const odph_ipv4hdr_t *ip; + const _odp_ipv4hdr_t *ip; uint32_t ipaddr; if (!pkt_hdr->p.input_flags.ipv4) return 0; - ip = (const odph_ipv4hdr_t *)(pkt_addr + pkt_hdr->p.l3_offset); + ip = (const _odp_ipv4hdr_t *)(pkt_addr + pkt_hdr->p.l3_offset); ipaddr = odp_be_to_cpu_32(ip->dst_addr); if (term_value->match.value == (ipaddr & term_value->match.mask)) return 1; @@ -94,10 +94,10 @@ static inline int verify_pmr_tcp_sport(const uint8_t *pkt_addr, pmr_term_value_t *term_value) { uint16_t sport; - const odph_tcphdr_t *tcp; + const _odp_tcphdr_t *tcp; if (!pkt_hdr->p.input_flags.tcp) return 0; - tcp = (const odph_tcphdr_t *)(pkt_addr + pkt_hdr->p.l4_offset); + tcp = (const _odp_tcphdr_t *)(pkt_addr + pkt_hdr->p.l4_offset); sport = odp_be_to_cpu_16(tcp->src_port); if (term_value->match.value == (sport & term_value->match.mask)) return 1; @@ -110,10 +110,10 @@ static inline int verify_pmr_tcp_dport(const uint8_t *pkt_addr, pmr_term_value_t *term_value) { uint16_t dport; - const odph_tcphdr_t *tcp; + const _odp_tcphdr_t *tcp; if (!pkt_hdr->p.input_flags.tcp) return 0; - tcp = (const odph_tcphdr_t *)(pkt_addr + pkt_hdr->p.l4_offset); + tcp = (const _odp_tcphdr_t *)(pkt_addr + pkt_hdr->p.l4_offset); dport = odp_be_to_cpu_16(tcp->dst_port); if (term_value->match.value == (dport & term_value->match.mask)) return 1; @@ -126,10 +126,10 @@ static inline int verify_pmr_udp_dport(const uint8_t *pkt_addr, pmr_term_value_t *term_value) { uint16_t dport; - const odph_udphdr_t *udp; + const _odp_udphdr_t *udp; if (!pkt_hdr->p.input_flags.udp) return 0; - udp = (const odph_udphdr_t *)(pkt_addr + pkt_hdr->p.l4_offset); + udp = (const _odp_udphdr_t *)(pkt_addr + pkt_hdr->p.l4_offset); dport = odp_be_to_cpu_16(udp->dst_port); if (term_value->match.value == (dport & term_value->match.mask)) return 1; @@ -142,11 +142,11 @@ static inline int verify_pmr_udp_sport(const uint8_t *pkt_addr, pmr_term_value_t *term_value) { uint16_t sport; - const odph_udphdr_t *udp; + const _odp_udphdr_t *udp; if (!pkt_hdr->p.input_flags.udp) return 0; - udp = (const odph_udphdr_t *)(pkt_addr + pkt_hdr->p.l4_offset); + udp = (const _odp_udphdr_t *)(pkt_addr + pkt_hdr->p.l4_offset); sport = odp_be_to_cpu_16(udp->src_port); if (term_value->match.value == (sport & term_value->match.mask)) return 1; @@ -160,19 +160,19 @@ static inline int verify_pmr_dmac(const uint8_t *pkt_addr, { uint64_t dmac = 0; uint64_t dmac_be = 0; - const odph_ethhdr_t *eth; + const _odp_ethhdr_t *eth; if (!packet_hdr_has_eth(pkt_hdr)) return 0; - eth = (const odph_ethhdr_t *)(pkt_addr + pkt_hdr->p.l2_offset); - memcpy(&dmac_be, eth->dst.addr, ODPH_ETHADDR_LEN); + eth = (const _odp_ethhdr_t *)(pkt_addr + pkt_hdr->p.l2_offset); + memcpy(&dmac_be, eth->dst.addr, _ODP_ETHADDR_LEN); dmac = odp_be_to_cpu_64(dmac_be); /* since we are converting a 48 bit ethernet address from BE to cpu format using odp_be_to_cpu_64() the last 16 bits needs to be right shifted */ if (dmac_be != dmac) - dmac = dmac >> (64 - (ODPH_ETHADDR_LEN * 8)); + dmac = dmac >> (64 - (_ODP_ETHADDR_LEN * 8)); if (term_value->match.value == (dmac & term_value->match.mask)) return 1; @@ -220,11 +220,11 @@ static inline int verify_pmr_ipsec_spi(const uint8_t *pkt_addr, pkt_addr += pkt_hdr->p.l4_offset; if (pkt_hdr->p.input_flags.ipsec_ah) { - const odph_ahhdr_t *ahhdr = (const odph_ahhdr_t *)pkt_addr; + const _odp_ahhdr_t *ahhdr = (const _odp_ahhdr_t *)pkt_addr; spi = odp_be_to_cpu_32(ahhdr->spi); } else if (pkt_hdr->p.input_flags.ipsec_esp) { - const odph_esphdr_t *esphdr = (const odph_esphdr_t *)pkt_addr; + const _odp_esphdr_t *esphdr = (const _odp_esphdr_t *)pkt_addr; spi = odp_be_to_cpu_32(esphdr->spi); } else { diff --git a/platform/linux-generic/include/odp_name_table_internal.h b/platform/linux-generic/include/odp_name_table_internal.h index 21ae42d..52b202c 100644 --- a/platform/linux-generic/include/odp_name_table_internal.h +++ b/platform/linux-generic/include/odp_name_table_internal.h @@ -21,7 +21,7 @@ typedef enum { ODP_PKTIO_HANDLE, ODP_POOL_HANDLE, ODP_QUEUE_HANDLE, - ODPH_RING_HANDLE, + ODP_RING_HANDLE, ODP_SHM_HANDLE, ODP_TIMER_POOL_HANDLE, ODP_TM_HANDLE, diff --git a/helper/include/odp/helper/eth.h b/platform/linux-generic/include/protocols/eth.h similarity index 30% copy from helper/include/odp/helper/eth.h copy to platform/linux-generic/include/protocols/eth.h index 9f47ddf..6d00e7f 100644 --- a/helper/include/odp/helper/eth.h +++ b/platform/linux-generic/include/protocols/eth.h @@ -1,4 +1,4 @@ -/* Copyright (c) 2014, Linaro Limited +/* Copyright (c) 2016, Linaro Limited * All rights reserved. * * SPDX-License-Identifier: BSD-3-Clause @@ -10,8 +10,8 @@ * ODP ethernet header */ -#ifndef ODPH_ETH_H_ -#define ODPH_ETH_H_ +#ifndef ODP_ETH_H_ +#define ODP_ETH_H_ #ifdef __cplusplus extern "C" { @@ -19,105 +19,88 @@ extern "C" { #include -/** @addtogroup odph_header ODPH HEADER +/** @addtogroup odp_header ODP HEADER * @{ */ -#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) */ +#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) */ -/* The two byte odph_vlanhdr_t tci field is composed of the following three +/* The two byte _odp_vlanhdr_t tci field is composed of the following three * subfields - a three bit Priority Code Point (PCP), a one bit Drop * Eligibility Indicator (DEI) and a twelve bit VLAN Identifier (VID). The * following constants can be used to extract or modify these subfields, once * the tci field has been read in and converted to host byte order. Note * that the DEI subfield used to be the CFI bit. */ -#define ODPH_VLANHDR_MAX_PRIO 7 /**< Max value of the 3 bit priority */ -#define ODPH_VLANHDR_PCP_MASK 0xE000 /**< PCP field bit mask */ -#define ODPH_VLANHDR_PCP_SHIFT 13 /**< PCP field shift */ -#define ODPH_VLANHDR_DEI_MASK 0x1000 /**< DEI field bit mask */ -#define ODPH_VLANHDR_DEI_SHIFT 12 /**< DEI field shift */ -#define ODPH_VLANHDR_MAX_VID 0x0FFF /**< Max value of the 12 bit VID field */ -#define ODPH_VLANHDR_VID_MASK 0x0FFF /**< VID field bit mask */ -#define ODPH_VLANHDR_VID_SHIFT 0 /**< VID field shift */ +#define _ODP_VLANHDR_MAX_PRIO 7 /**< Max value of the 3 bit priority */ +#define _ODP_VLANHDR_PCP_MASK 0xE000 /**< PCP field bit mask */ +#define _ODP_VLANHDR_PCP_SHIFT 13 /**< PCP field shift */ +#define _ODP_VLANHDR_DEI_MASK 0x1000 /**< DEI field bit mask */ +#define _ODP_VLANHDR_DEI_SHIFT 12 /**< DEI field shift */ +#define _ODP_VLANHDR_MAX_VID 0x0FFF /**< Max value of the 12 bit VID field */ +#define _ODP_VLANHDR_VID_MASK 0x0FFF /**< VID field bit mask */ +#define _ODP_VLANHDR_VID_SHIFT 0 /**< VID field shift */ /** * Ethernet MAC address */ typedef struct ODP_PACKED { - uint8_t addr[ODPH_ETHADDR_LEN]; /**< @private Address */ -} odph_ethaddr_t; + uint8_t addr[_ODP_ETHADDR_LEN]; /**< @private Address */ +} _odp_ethaddr_t; /** @internal Compile time assert */ -ODP_STATIC_ASSERT(sizeof(odph_ethaddr_t) == ODPH_ETHADDR_LEN, - "ODPH_ETHADDR_T__SIZE_ERROR"); +ODP_STATIC_ASSERT(sizeof(_odp_ethaddr_t) == _ODP_ETHADDR_LEN, + "_ODP_ETHADDR_T__SIZE_ERROR"); /** * Ethernet header */ typedef struct ODP_PACKED { - odph_ethaddr_t dst; /**< Destination address */ - odph_ethaddr_t src; /**< Source address */ + _odp_ethaddr_t dst; /**< Destination address */ + _odp_ethaddr_t src; /**< Source address */ odp_u16be_t type; /**< EtherType */ -} odph_ethhdr_t; +} _odp_ethhdr_t; /** @internal Compile time assert */ -ODP_STATIC_ASSERT(sizeof(odph_ethhdr_t) == ODPH_ETHHDR_LEN, - "ODPH_ETHHDR_T__SIZE_ERROR"); +ODP_STATIC_ASSERT(sizeof(_odp_ethhdr_t) == _ODP_ETHHDR_LEN, + "_ODP_ETHHDR_T__SIZE_ERROR"); /** * IEEE 802.1Q VLAN header * - * This field is present when the EtherType (the odph_ethhdr_t type field) of - * the preceding ethernet header is ODPH_ETHTYPE_VLAN. The inner EtherType - * (the odph_vlanhdr_t type field) then indicates what comes next. Note that + * This field is present when the EtherType (the _odp_ethhdr_t type field) of + * the preceding ethernet header is _ODP_ETHTYPE_VLAN. The inner EtherType + * (the _odp_vlanhdr_t type field) then indicates what comes next. Note that * the so called TPID field isn't here because it overlaps with the - * odph_ethhdr_t type field. + * _odp_ethhdr_t type field. */ typedef struct ODP_PACKED { odp_u16be_t tci; /**< Priority / CFI / VLAN ID */ odp_u16be_t type; /**< Inner EtherType */ -} odph_vlanhdr_t; +} _odp_vlanhdr_t; /** @internal Compile time assert */ -ODP_STATIC_ASSERT(sizeof(odph_vlanhdr_t) == ODPH_VLANHDR_LEN, - "ODPH_VLANHDR_T__SIZE_ERROR"); +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 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 */ - -/** - * Parse Ethernet from a string - * - * Parses Ethernet MAC address from the string which must be passed in format of - * six hexadecimal digits delimited by colons (xx:xx:xx:xx:xx:xx). Both upper - * and lower case characters are supported. All six digits have to be present - * and may have leading zeros. String does not have to be NULL terminated. - * The address is written only when successful. - * - * @param[out] mac Pointer to Ethernet address for output - * @param str MAC address string to be parsed - * - * @retval 0 on success - * @retval <0 on failure - */ -int odph_eth_addr_parse(odph_ethaddr_t *mac, const char *str); +#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 */ /** * @} diff --git a/helper/include/odp/helper/ip.h b/platform/linux-generic/include/protocols/ip.h similarity index 41% copy from helper/include/odp/helper/ip.h copy to platform/linux-generic/include/protocols/ip.h index 4cfc00f..d5277fb 100644 --- a/helper/include/odp/helper/ip.h +++ b/platform/linux-generic/include/protocols/ip.h @@ -1,4 +1,4 @@ -/* Copyright (c) 2014, Linaro Limited +/* Copyright (c) 2016, Linaro Limited * All rights reserved. * * SPDX-License-Identifier: BSD-3-Clause @@ -10,69 +10,66 @@ * ODP IP header */ -#ifndef ODPH_IP_H_ -#define ODPH_IP_H_ +#ifndef ODP_IP_H_ +#define ODP_IP_H_ #ifdef __cplusplus extern "C" { #endif #include -#include -#include - -/** @addtogroup odph_header ODPH HEADER +/** @addtogroup odp_header ODP HEADER * @{ */ -#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*/ -#define ODPH_IPV4ADDR_LEN 4 /**< IPv4 address length in bytes */ +#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 _ODP_IPV4ADDR_LEN 4 /**< IPv4 address length in bytes */ /** The one byte IPv4 tos or IPv6 tc field is composed of the following two * subfields - a six bit Differentiated Service Code Point (DSCP) and a two * bit Explicit Congestion Notification (ECN) subfield. The following * constants can be used to extract or modify these fields. Despite the - * name prefix being ODPH_IP_TOS_* these constants apply equally well for + * name prefix being _ODP_IP_TOS_* these constants apply equally well for * the IPv6 Traffic Class (tc) field. */ -#define ODPH_IP_TOS_MAX_DSCP 63 /**< 6-bit DSCP field has max value 63 */ -#define ODPH_IP_TOS_DSCP_MASK 0xFC /**< DSCP field is in bits <7:2> */ -#define ODPH_IP_TOS_DSCP_SHIFT 2 /**< DSCP field is shifted letf by 2 */ -#define ODPH_IP_TOS_MAX_ECN 3 /**< 2-bit ECN field has max value 3 */ -#define ODPH_IP_TOS_ECN_MASK 0x03 /**< ECN field is in bits <1:0> */ -#define ODPH_IP_TOS_ECN_SHIFT 0 /**< ECN field is not shifted. */ +#define _ODP_IP_TOS_MAX_DSCP 63 /**< 6-bit DSCP field has max value 63 */ +#define _ODP_IP_TOS_DSCP_MASK 0xFC /**< DSCP field is in bits <7:2> */ +#define _ODP_IP_TOS_DSCP_SHIFT 2 /**< DSCP field is shifted letf by 2 */ +#define _ODP_IP_TOS_MAX_ECN 3 /**< 2-bit ECN field has max value 3 */ +#define _ODP_IP_TOS_ECN_MASK 0x03 /**< ECN field is in bits <1:0> */ +#define _ODP_IP_TOS_ECN_SHIFT 0 /**< ECN field is not shifted. */ /** The following constants give names to the four possible ECN values, * as described in RFC 3168. */ -#define ODPH_IP_ECN_NOT_ECT 0 /**< 0 indicates not participating in ECN */ -#define ODPH_IP_ECN_ECT1 1 /**< Indicates no congestion seen yet */ -#define ODPH_IP_ECN_ECT0 2 /**< Indicates no congestion seen yet */ -#define ODPH_IP_ECN_CE 3 /**< Used to signal Congestion Experienced */ +#define _ODP_IP_ECN_NOT_ECT 0 /**< 0 indicates not participating in ECN */ +#define _ODP_IP_ECN_ECT1 1 /**< Indicates no congestion seen yet */ +#define _ODP_IP_ECN_ECT0 2 /**< Indicates no congestion seen yet */ +#define _ODP_IP_ECN_CE 3 /**< Used to signal Congestion Experienced */ /** @internal Returns IPv4 version */ -#define ODPH_IPV4HDR_VER(ver_ihl) (((ver_ihl) & 0xf0) >> 4) +#define _ODP_IPV4HDR_VER(ver_ihl) (((ver_ihl) & 0xf0) >> 4) /** @internal Returns IPv4 header length */ -#define ODPH_IPV4HDR_IHL(ver_ihl) ((ver_ihl) & 0x0f) +#define _ODP_IPV4HDR_IHL(ver_ihl) ((ver_ihl) & 0x0f) /** @internal Returns IPv4 DSCP */ -#define ODPH_IPV4HDR_DSCP(tos) (((tos) & 0xfc) >> 2) +#define _ODP_IPV4HDR_DSCP(tos) (((tos) & 0xfc) >> 2) /** @internal Returns IPv4 Don't fragment */ -#define ODPH_IPV4HDR_FLAGS_DONT_FRAG(frag_offset) ((frag_offset) & 0x4000) +#define _ODP_IPV4HDR_FLAGS_DONT_FRAG(frag_offset) ((frag_offset) & 0x4000) /** @internal Returns IPv4 more fragments */ -#define ODPH_IPV4HDR_FLAGS_MORE_FRAGS(frag_offset) ((frag_offset) & 0x2000) +#define _ODP_IPV4HDR_FLAGS_MORE_FRAGS(frag_offset) ((frag_offset) & 0x2000) /** @internal Returns IPv4 fragment offset */ -#define ODPH_IPV4HDR_FRAG_OFFSET(frag_offset) ((frag_offset) & 0x1fff) +#define _ODP_IPV4HDR_FRAG_OFFSET(frag_offset) ((frag_offset) & 0x1fff) /** @internal Returns true if IPv4 packet is a fragment */ -#define ODPH_IPV4HDR_IS_FRAGMENT(frag_offset) ((frag_offset) & 0x3fff) +#define _ODP_IPV4HDR_IS_FRAGMENT(frag_offset) ((frag_offset) & 0x3fff) /** IPv4 header */ typedef struct ODP_PACKED { @@ -86,91 +83,37 @@ typedef struct ODP_PACKED { odp_u16sum_t chksum; /**< Checksum */ odp_u32be_t src_addr; /**< Source address */ odp_u32be_t dst_addr; /**< Destination address */ -} odph_ipv4hdr_t; +} _odp_ipv4hdr_t; /** @internal Compile time assert */ -ODP_STATIC_ASSERT(sizeof(odph_ipv4hdr_t) == ODPH_IPV4HDR_LEN, - "ODPH_IPV4HDR_T__SIZE_ERROR"); - -/** - * Check if IPv4 checksum is valid - * - * @param pkt ODP packet - * - * @return 1 if checksum is valid, otherwise 0 - */ -static inline int odph_ipv4_csum_valid(odp_packet_t pkt) -{ - odp_u16be_t res = 0; - uint16_t *w; - int nleft = sizeof(odph_ipv4hdr_t); - odph_ipv4hdr_t ip; - odp_u16be_t chksum; - - if (!odp_packet_l3_offset(pkt)) - return 0; - - odp_packet_copy_to_mem(pkt, odp_packet_l3_offset(pkt), - sizeof(odph_ipv4hdr_t), &ip); - - w = (uint16_t *)(void *)&ip; - chksum = ip.chksum; - ip.chksum = 0x0; - - res = odph_chksum(w, nleft); - return (res == chksum) ? 1 : 0; -} - -/** - * Calculate and fill in IPv4 checksum - * - * @note when using this api to populate data destined for the wire - * odp_cpu_to_be_16() can be used to remove sparse warnings - * - * @param pkt ODP packet - * - * @return IPv4 checksum in host cpu order, or 0 on failure - */ -static inline odp_u16sum_t odph_ipv4_csum_update(odp_packet_t pkt) -{ - uint16_t *w; - odph_ipv4hdr_t *ip; - int nleft = sizeof(odph_ipv4hdr_t); - - if (!odp_packet_l3_offset(pkt)) - return 0; - - ip = (odph_ipv4hdr_t *)odp_packet_l3_ptr(pkt, NULL); - w = (uint16_t *)(void *)ip; - ip->chksum = odph_chksum(w, nleft); - return ip->chksum; -} +ODP_STATIC_ASSERT(sizeof(_odp_ipv4hdr_t) == _ODP_IPV4HDR_LEN, + "_ODP_IPV4HDR_T__SIZE_ERROR"); /** IPv6 version */ -#define ODPH_IPV6 6 +#define _ODP_IPV6 6 /** IPv6 header length */ -#define ODPH_IPV6HDR_LEN 40 +#define _ODP_IPV6HDR_LEN 40 /** IPv6 address length in bytes */ -#define ODPH_IPV6ADDR_LEN 16 +#define _ODP_IPV6ADDR_LEN 16 /** The following constants can be used to access the three subfields * of the 4 byte ver_tc_flow field - namely the four bit Version subfield, * the eight bit Traffic Class subfield (TC) and the twenty bit Flow Label * subfield. Note that the IPv6 TC field is analogous to the IPv4 TOS - * field and is composed of the DSCP and ECN subfields. Use the ODPH_IP_TOS_* + * field and is composed of the DSCP and ECN subfields. Use the _ODP_IP_TOS_* * constants above to access these subfields. */ -#define ODPH_IPV6HDR_VERSION_MASK 0xF0000000 /**< Version field bit mask */ -#define ODPH_IPV6HDR_VERSION_SHIFT 28 /**< Version field shift */ -#define ODPH_IPV6HDR_TC_MASK 0x0FF00000 /**< TC field bit mask */ -#define ODPH_IPV6HDR_TC_SHIFT 20 /**< TC field shift */ -#define ODPH_IPV6HDR_FLOW_LABEL_MASK 0x000FFFFF /**< Flow Label bit mask */ -#define ODPH_IPV6HDR_FLOW_LABEL_SHIFT 0 /**< Flow Label shift */ +#define _ODP_IPV6HDR_VERSION_MASK 0xF0000000 /**< Version field bit mask */ +#define _ODP_IPV6HDR_VERSION_SHIFT 28 /**< Version field shift */ +#define _ODP_IPV6HDR_TC_MASK 0x0FF00000 /**< TC field bit mask */ +#define _ODP_IPV6HDR_TC_SHIFT 20 /**< TC field shift */ +#define _ODP_IPV6HDR_FLOW_LABEL_MASK 0x000FFFFF /**< Flow Label bit mask */ +#define _ODP_IPV6HDR_FLOW_LABEL_SHIFT 0 /**< Flow Label shift */ /** @internal Returns IPv6 DSCP */ -#define ODPH_IPV6HDR_DSCP(ver_tc_flow) \ +#define _ODP_IPV6HDR_DSCP(ver_tc_flow) \ (uint8_t)((((ver_tc_flow) & 0x0fc00000) >> 22) & 0xff) /** @@ -183,11 +126,11 @@ typedef struct ODP_PACKED { uint8_t hop_limit; /**< Hop limit */ uint8_t src_addr[16]; /**< Source address */ uint8_t dst_addr[16]; /**< Destination address */ -} odph_ipv6hdr_t; +} _odp_ipv6hdr_t; /** @internal Compile time assert */ -ODP_STATIC_ASSERT(sizeof(odph_ipv6hdr_t) == ODPH_IPV6HDR_LEN, - "ODPH_IPV6HDR_T__SIZE_ERROR"); +ODP_STATIC_ASSERT(sizeof(_odp_ipv6hdr_t) == _ODP_IPV6HDR_LEN, + "_ODP_IPV6HDR_T__SIZE_ERROR"); /** * IPv6 Header extensions @@ -198,41 +141,24 @@ typedef struct ODP_PACKED { not counting first 8 bytes, so 0 = 8 bytes 1 = 16 bytes, etc. */ uint8_t filler[6]; /**< Fill out first 8 byte segment */ -} odph_ipv6hdr_ext_t; +} _odp_ipv6hdr_ext_t; /** @name * IP protocol values (IPv4:'proto' or IPv6:'next_hdr') * @{*/ -#define ODPH_IPPROTO_HOPOPTS 0x00 /**< IPv6 hop-by-hop options */ -#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_ROUTE 0x2B /**< IPv6 Routing header (43) */ -#define ODPH_IPPROTO_FRAG 0x2C /**< IPv6 Fragment (44) */ -#define ODPH_IPPROTO_AH 0x33 /**< Authentication Header (51) */ -#define ODPH_IPPROTO_ESP 0x32 /**< Encapsulating Security Payload (50) */ -#define ODPH_IPPROTO_INVALID 0xFF /**< Reserved invalid by IANA */ +#define _ODP_IPPROTO_HOPOPTS 0x00 /**< IPv6 hop-by-hop options */ +#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_ROUTE 0x2B /**< IPv6 Routing header (43) */ +#define _ODP_IPPROTO_FRAG 0x2C /**< IPv6 Fragment (44) */ +#define _ODP_IPPROTO_AH 0x33 /**< Authentication Header (51) */ +#define _ODP_IPPROTO_ESP 0x32 /**< Encapsulating Security Payload (50) */ +#define _ODP_IPPROTO_INVALID 0xFF /**< Reserved invalid by IANA */ /**@}*/ /** - * Parse IPv4 address from a string - * - * Parses IPv4 address from the string which must be passed in the format of - * four decimal digits delimited by dots (xxx.xxx.xxx.xxx). All four digits - * have to be present and may have leading zeros. String does not have to be - * NULL terminated. The address is written only when successful. The address - * byte order is CPU native. - * - * @param[out] ip_addr Pointer to IPv4 address for output (in native endian) - * @param str IPv4 address string to be parsed - * - * @retval 0 on success - * @retval <0 on failure - */ -int odph_ipv4_addr_parse(uint32_t *ip_addr, const char *str); - -/** * @} */ #ifdef __cplusplus diff --git a/helper/include/odp/helper/ipsec.h b/platform/linux-generic/include/protocols/ipsec.h similarity index 53% copy from helper/include/odp/helper/ipsec.h copy to platform/linux-generic/include/protocols/ipsec.h index 034a341..093177f 100644 --- a/helper/include/odp/helper/ipsec.h +++ b/platform/linux-generic/include/protocols/ipsec.h @@ -1,4 +1,4 @@ -/* Copyright (c) 2014, Linaro Limited +/* Copyright (c) 2016, Linaro Limited * All rights reserved. * * SPDX-License-Identifier: BSD-3-Clause @@ -11,8 +11,8 @@ * ODP IPSec headers */ -#ifndef ODPH_IPSEC_H_ -#define ODPH_IPSEC_H_ +#ifndef ODP_IPSEC_H_ +#define ODP_IPSEC_H_ #ifdef __cplusplus extern "C" { @@ -20,13 +20,13 @@ extern "C" { #include -/** @addtogroup odph_header ODPH HEADER +/** @addtogroup odp_header ODP HEADER * @{ */ -#define ODPH_ESPHDR_LEN 8 /**< IPSec ESP header length */ -#define ODPH_ESPTRL_LEN 2 /**< IPSec ESP trailer length */ -#define ODPH_AHHDR_LEN 12 /**< IPSec AH header length */ +#define _ODP_ESPHDR_LEN 8 /**< IPSec ESP header length */ +#define _ODP_ESPTRL_LEN 2 /**< IPSec ESP trailer length */ +#define _ODP_AHHDR_LEN 12 /**< IPSec AH header length */ /** * IPSec ESP header @@ -34,12 +34,12 @@ extern "C" { typedef struct ODP_PACKED { odp_u32be_t spi; /**< Security Parameter Index */ odp_u32be_t seq_no; /**< Sequence Number */ - uint8_t iv[0]; /**< Initialization vector */ -} odph_esphdr_t; + uint8_t iv[0]; /**< Initialization vector */ +} _odp_esphdr_t; /** @internal Compile time assert */ -ODP_STATIC_ASSERT(sizeof(odph_esphdr_t) == ODPH_ESPHDR_LEN, - "ODPH_ESPHDR_T__SIZE_ERROR"); +ODP_STATIC_ASSERT(sizeof(_odp_esphdr_t) == _ODP_ESPHDR_LEN, + "_ODP_ESPHDR_T__SIZE_ERROR"); /** * IPSec ESP trailer @@ -48,27 +48,27 @@ typedef struct ODP_PACKED { uint8_t pad_len; /**< Padding length (0-255) */ uint8_t next_header; /**< Next header protocol */ uint8_t icv[0]; /**< Integrity Check Value (optional) */ -} odph_esptrl_t; +} _odp_esptrl_t; /** @internal Compile time assert */ -ODP_STATIC_ASSERT(sizeof(odph_esptrl_t) == ODPH_ESPTRL_LEN, - "ODPH_ESPTRL_T__SIZE_ERROR"); +ODP_STATIC_ASSERT(sizeof(_odp_esptrl_t) == _ODP_ESPTRL_LEN, + "_ODP_ESPTRL_T__SIZE_ERROR"); /** * IPSec AH header */ typedef struct ODP_PACKED { - uint8_t next_header; /**< Next header protocol */ - uint8_t ah_len; /**< AH header length */ + uint8_t next_header; /**< Next header protocol */ + uint8_t ah_len; /**< AH header length */ odp_u16be_t pad; /**< Padding (must be 0) */ odp_u32be_t spi; /**< Security Parameter Index */ odp_u32be_t seq_no; /**< Sequence Number */ - uint8_t icv[0]; /**< Integrity Check Value */ -} odph_ahhdr_t; + uint8_t icv[0]; /**< Integrity Check Value */ +} _odp_ahhdr_t; /** @internal Compile time assert */ -ODP_STATIC_ASSERT(sizeof(odph_ahhdr_t) == ODPH_AHHDR_LEN, - "ODPH_AHHDR_T__SIZE_ERROR"); +ODP_STATIC_ASSERT(sizeof(_odp_ahhdr_t) == _ODP_AHHDR_LEN, + "_ODP_AHHDR_T__SIZE_ERROR"); /** * @} diff --git a/helper/include/odp/helper/tcp.h b/platform/linux-generic/include/protocols/tcp.h similarity index 88% copy from helper/include/odp/helper/tcp.h copy to platform/linux-generic/include/protocols/tcp.h index cabef90..4e92e4b 100644 --- a/helper/include/odp/helper/tcp.h +++ b/platform/linux-generic/include/protocols/tcp.h @@ -1,4 +1,4 @@ -/* Copyright (c) 2014, Linaro Limited +/* Copyright (c) 2016, Linaro Limited * All rights reserved. * * SPDX-License-Identifier: BSD-3-Clause @@ -11,8 +11,8 @@ * ODP TCP header */ -#ifndef ODPH_TCP_H_ -#define ODPH_TCP_H_ +#ifndef ODP_TCP_H_ +#define ODP_TCP_H_ #ifdef __cplusplus extern "C" { @@ -20,11 +20,11 @@ extern "C" { #include -/** @addtogroup odph_header ODPH HEADER +/** @addtogroup odp_header ODP HEADER * @{ */ -#define ODPH_TCPHDR_LEN 20 /**< Min length of TCP header (no options) */ +#define _ODP_TCPHDR_LEN 20 /**< Min length of TCP header (no options) */ /** TCP header */ typedef struct ODP_PACKED { @@ -76,7 +76,7 @@ typedef struct ODP_PACKED { odp_u16be_t window; /**< Window size */ odp_u16be_t cksm; /**< Checksum */ odp_u16be_t urgptr; /**< Urgent pointer */ -} odph_tcphdr_t; +} _odp_tcphdr_t; /** * @} diff --git a/helper/include/odp/helper/udp.h b/platform/linux-generic/include/protocols/udp.h similarity index 47% copy from helper/include/odp/helper/udp.h copy to platform/linux-generic/include/protocols/udp.h index 1ba2dff..535aba8 100644 --- a/helper/include/odp/helper/udp.h +++ b/platform/linux-generic/include/protocols/udp.h @@ -1,4 +1,4 @@ -/* Copyright (c) 2014, Linaro Limited +/* Copyright (c) 2016, Linaro Limited * All rights reserved. * * SPDX-License-Identifier: BSD-3-Clause @@ -10,22 +10,21 @@ * ODP UDP header */ -#ifndef ODPH_UDP_H_ -#define ODPH_UDP_H_ +#ifndef ODP_UDP_H_ +#define ODP_UDP_H_ #ifdef __cplusplus extern "C" { #endif #include -#include -/** @addtogroup odph_header ODPH HEADER +/** @addtogroup odp_header ODP HEADER * @{ */ /** UDP header length */ -#define ODPH_UDPHDR_LEN 8 +#define _ODP_UDPHDR_LEN 8 /** UDP header */ typedef struct ODP_PACKED { @@ -33,28 +32,11 @@ typedef struct ODP_PACKED { odp_u16be_t dst_port; /**< Destination port */ odp_u16be_t length; /**< UDP datagram length in bytes (header+data) */ odp_u16be_t chksum; /**< UDP header and data checksum (0 if not used)*/ -} odph_udphdr_t; - -/** - * UDP checksum - * - * This function calculates the UDP checksum given an odp packet. - * - * @param pkt calculate chksum for pkt - * @return checksum value in BE endianness - */ -static inline uint16_t odph_ipv4_udp_chksum(odp_packet_t pkt) -{ - uint16_t chksum; - int rc; - - rc = odph_udp_tcp_chksum(pkt, ODPH_CHKSUM_RETURN, &chksum); - return (rc == 0) ? chksum : 0; -} +} _odp_udphdr_t; /** @internal Compile time assert */ -ODP_STATIC_ASSERT(sizeof(odph_udphdr_t) == ODPH_UDPHDR_LEN, - "ODPH_UDPHDR_T__SIZE_ERROR"); +ODP_STATIC_ASSERT(sizeof(_odp_udphdr_t) == _ODP_UDPHDR_LEN, + "_ODP_UDPHDR_T__SIZE_ERROR"); /** * @} diff --git a/platform/linux-generic/odp_classification.c b/platform/linux-generic/odp_classification.c index 0602a62..f567afe 100644 --- a/platform/linux-generic/odp_classification.c +++ b/platform/linux-generic/odp_classification.c @@ -18,7 +18,8 @@ #include #include #include -#include +#include +#include #include #include #include @@ -840,16 +841,16 @@ cos_t *match_qos_l3_cos(pmr_l3_cos_t *l3_cos, const uint8_t *pkt_addr, { uint8_t dscp; cos_t *cos = NULL; - const odph_ipv4hdr_t *ipv4; - const odph_ipv6hdr_t *ipv6; + const _odp_ipv4hdr_t *ipv4; + const _odp_ipv6hdr_t *ipv6; if (hdr->p.input_flags.l3 && hdr->p.input_flags.ipv4) { - ipv4 = (const odph_ipv4hdr_t *)(pkt_addr + hdr->p.l3_offset); - dscp = ODPH_IPV4HDR_DSCP(ipv4->tos); + ipv4 = (const _odp_ipv4hdr_t *)(pkt_addr + hdr->p.l3_offset); + dscp = _ODP_IPV4HDR_DSCP(ipv4->tos); cos = l3_cos->cos[dscp]; } else if (hdr->p.input_flags.l3 && hdr->p.input_flags.ipv6) { - ipv6 = (const odph_ipv6hdr_t *)(pkt_addr + hdr->p.l3_offset); - dscp = ODPH_IPV6HDR_DSCP(ipv6->ver_tc_flow); + ipv6 = (const _odp_ipv6hdr_t *)(pkt_addr + hdr->p.l3_offset); + dscp = _ODP_IPV6HDR_DSCP(ipv6->ver_tc_flow); cos = l3_cos->cos[dscp]; } @@ -860,14 +861,14 @@ cos_t *match_qos_l2_cos(pmr_l2_cos_t *l2_cos, const uint8_t *pkt_addr, odp_packet_hdr_t *hdr) { cos_t *cos = NULL; - const odph_ethhdr_t *eth; - const odph_vlanhdr_t *vlan; + const _odp_ethhdr_t *eth; + const _odp_vlanhdr_t *vlan; uint16_t qos; if (packet_hdr_has_l2(hdr) && hdr->p.input_flags.vlan && packet_hdr_has_eth(hdr)) { - eth = (const odph_ethhdr_t *)(pkt_addr + hdr->p.l2_offset); - vlan = (const odph_vlanhdr_t *)(eth + 1); + eth = (const _odp_ethhdr_t *)(pkt_addr + hdr->p.l2_offset); + vlan = (const _odp_vlanhdr_t *)(eth + 1); qos = odp_be_to_cpu_16(vlan->tci); qos = ((qos >> 13) & 0x07); cos = l2_cos->cos[qos]; diff --git a/platform/linux-generic/odp_packet.c b/platform/linux-generic/odp_packet.c index c319833..5f72985 100644 --- a/platform/linux-generic/odp_packet.c +++ b/platform/linux-generic/odp_packet.c @@ -10,10 +10,10 @@ #include #include -#include -#include -#include -#include +#include +#include +#include +#include #include #include @@ -995,15 +995,15 @@ void _odp_packet_copy_md_to_packet(odp_packet_t srcpkt, odp_packet_t dstpkt) static inline uint8_t parse_ipv4(packet_parser_t *prs, const uint8_t **parseptr, uint32_t *offset, uint32_t frame_len) { - const odph_ipv4hdr_t *ipv4 = (const odph_ipv4hdr_t *)*parseptr; - uint8_t ver = ODPH_IPV4HDR_VER(ipv4->ver_ihl); - uint8_t ihl = ODPH_IPV4HDR_IHL(ipv4->ver_ihl); + const _odp_ipv4hdr_t *ipv4 = (const _odp_ipv4hdr_t *)*parseptr; + uint8_t ver = _ODP_IPV4HDR_VER(ipv4->ver_ihl); + uint8_t ihl = _ODP_IPV4HDR_IHL(ipv4->ver_ihl); uint16_t frag_offset; uint32_t dstaddr = odp_be_to_cpu_32(ipv4->dst_addr); prs->l3_len = odp_be_to_cpu_16(ipv4->tot_len); - if (odp_unlikely(ihl < ODPH_IPV4HDR_IHL_MIN) || + if (odp_unlikely(ihl < _ODP_IPV4HDR_IHL_MIN) || odp_unlikely(ver != 4) || (prs->l3_len > frame_len - *offset)) { prs->error_flags.ip_err = 1; @@ -1013,7 +1013,7 @@ static inline uint8_t parse_ipv4(packet_parser_t *prs, const uint8_t **parseptr, *offset += ihl * 4; *parseptr += ihl * 4; - if (odp_unlikely(ihl > ODPH_IPV4HDR_IHL_MIN)) + if (odp_unlikely(ihl > _ODP_IPV4HDR_IHL_MIN)) prs->input_flags.ipopt = 1; /* A packet is a fragment if: @@ -1022,7 +1022,7 @@ static inline uint8_t parse_ipv4(packet_parser_t *prs, const uint8_t **parseptr, * "fragment offset" field is nonzero (all fragments except the first) */ frag_offset = odp_be_to_cpu_16(ipv4->frag_offset); - if (odp_unlikely(ODPH_IPV4HDR_IS_FRAGMENT(frag_offset))) + if (odp_unlikely(_ODP_IPV4HDR_IS_FRAGMENT(frag_offset))) prs->input_flags.ipfrag = 1; /* Handle IPv4 broadcast / multicast */ @@ -1039,12 +1039,12 @@ static inline uint8_t parse_ipv6(packet_parser_t *prs, const uint8_t **parseptr, uint32_t *offset, uint32_t frame_len, uint32_t seg_len) { - const odph_ipv6hdr_t *ipv6 = (const odph_ipv6hdr_t *)*parseptr; - const odph_ipv6hdr_ext_t *ipv6ext; + const _odp_ipv6hdr_t *ipv6 = (const _odp_ipv6hdr_t *)*parseptr; + const _odp_ipv6hdr_ext_t *ipv6ext; uint32_t dstaddr0 = odp_be_to_cpu_32(ipv6->dst_addr[0]); prs->l3_len = odp_be_to_cpu_16(ipv6->payload_len) + - ODPH_IPV6HDR_LEN; + _ODP_IPV6HDR_LEN; /* Basic sanity checks on IPv6 header */ if ((odp_be_to_cpu_32(ipv6->ver_tc_flow) >> 28) != 6 || @@ -1058,22 +1058,22 @@ static inline uint8_t parse_ipv6(packet_parser_t *prs, const uint8_t **parseptr, prs->input_flags.ip_bcast = 0; /* Skip past IPv6 header */ - *offset += sizeof(odph_ipv6hdr_t); - *parseptr += sizeof(odph_ipv6hdr_t); + *offset += sizeof(_odp_ipv6hdr_t); + *parseptr += sizeof(_odp_ipv6hdr_t); /* Skip past any IPv6 extension headers */ - if (ipv6->next_hdr == ODPH_IPPROTO_HOPOPTS || - ipv6->next_hdr == ODPH_IPPROTO_ROUTE) { + if (ipv6->next_hdr == _ODP_IPPROTO_HOPOPTS || + ipv6->next_hdr == _ODP_IPPROTO_ROUTE) { prs->input_flags.ipopt = 1; do { - ipv6ext = (const odph_ipv6hdr_ext_t *)*parseptr; + ipv6ext = (const _odp_ipv6hdr_ext_t *)*parseptr; uint16_t extlen = 8 + ipv6ext->ext_len * 8; *offset += extlen; *parseptr += extlen; - } while ((ipv6ext->next_hdr == ODPH_IPPROTO_HOPOPTS || - ipv6ext->next_hdr == ODPH_IPPROTO_ROUTE) && + } while ((ipv6ext->next_hdr == _ODP_IPPROTO_HOPOPTS || + ipv6ext->next_hdr == _ODP_IPPROTO_ROUTE) && *offset < seg_len); if (*offset >= prs->l3_offset + @@ -1082,13 +1082,13 @@ static inline uint8_t parse_ipv6(packet_parser_t *prs, const uint8_t **parseptr, return 0; } - if (ipv6ext->next_hdr == ODPH_IPPROTO_FRAG) + if (ipv6ext->next_hdr == _ODP_IPPROTO_FRAG) prs->input_flags.ipfrag = 1; return ipv6ext->next_hdr; } - if (odp_unlikely(ipv6->next_hdr == ODPH_IPPROTO_FRAG)) { + if (odp_unlikely(ipv6->next_hdr == _ODP_IPPROTO_FRAG)) { prs->input_flags.ipopt = 1; prs->input_flags.ipfrag = 1; } @@ -1102,11 +1102,11 @@ static inline uint8_t parse_ipv6(packet_parser_t *prs, const uint8_t **parseptr, static inline void parse_tcp(packet_parser_t *prs, const uint8_t **parseptr, uint32_t *offset) { - const odph_tcphdr_t *tcp = (const odph_tcphdr_t *)*parseptr; + const _odp_tcphdr_t *tcp = (const _odp_tcphdr_t *)*parseptr; - if (tcp->hl < sizeof(odph_tcphdr_t) / sizeof(uint32_t)) + if (tcp->hl < sizeof(_odp_tcphdr_t) / sizeof(uint32_t)) prs->error_flags.tcp_err = 1; - else if ((uint32_t)tcp->hl * 4 > sizeof(odph_tcphdr_t)) + else if ((uint32_t)tcp->hl * 4 > sizeof(_odp_tcphdr_t)) prs->input_flags.tcpopt = 1; prs->l4_len = prs->l3_len + @@ -1123,10 +1123,10 @@ static inline void parse_tcp(packet_parser_t *prs, static inline void parse_udp(packet_parser_t *prs, const uint8_t **parseptr, uint32_t *offset) { - const odph_udphdr_t *udp = (const odph_udphdr_t *)*parseptr; + const _odp_udphdr_t *udp = (const _odp_udphdr_t *)*parseptr; uint32_t udplen = odp_be_to_cpu_16(udp->length); - if (udplen < sizeof(odph_udphdr_t) || + if (udplen < sizeof(_odp_udphdr_t) || udplen > (prs->l3_len + prs->l4_offset - prs->l3_offset)) { prs->error_flags.udp_err = 1; @@ -1135,8 +1135,8 @@ static inline void parse_udp(packet_parser_t *prs, prs->l4_len = udplen; if (offset) - *offset += sizeof(odph_udphdr_t); - *parseptr += sizeof(odph_udphdr_t); + *offset += sizeof(_odp_udphdr_t); + *parseptr += sizeof(_odp_udphdr_t); } /** @@ -1150,7 +1150,7 @@ void packet_parse_l2(packet_parser_t *prs, uint32_t frame_len) prs->input_flags.eth = 1; /* Detect jumbo frames */ - if (frame_len > ODPH_ETH_LEN_MAX) + if (frame_len > _ODP_ETH_LEN_MAX) prs->input_flags.jumbo = 1; /* Assume valid L2 header, no CRC/FCS check in SW */ @@ -1168,19 +1168,19 @@ void packet_parse_l2(packet_parser_t *prs, uint32_t frame_len) int packet_parse_common(packet_parser_t *prs, const uint8_t *ptr, uint32_t frame_len, uint32_t seg_len) { - const odph_ethhdr_t *eth; - const odph_vlanhdr_t *vlan; + const _odp_ethhdr_t *eth; + const _odp_vlanhdr_t *vlan; uint16_t ethtype; uint32_t offset; uint8_t ip_proto = 0; const uint8_t *parseptr; uint16_t macaddr0, macaddr2, macaddr4; - offset = sizeof(odph_ethhdr_t); + offset = sizeof(_odp_ethhdr_t); if (packet_parse_l2_not_done(prs)) packet_parse_l2(prs, frame_len); - eth = (const odph_ethhdr_t *)ptr; + eth = (const _odp_ethhdr_t *)ptr; /* Handle Ethernet broadcast/multicast addresses */ macaddr0 = odp_be_to_cpu_16(*((const uint16_t *)(const void *)eth)); @@ -1204,7 +1204,7 @@ int packet_parse_common(packet_parser_t *prs, const uint8_t *ptr, parseptr = (const uint8_t *)(eth + 1); /* Check for SNAP vs. DIX */ - if (ethtype < ODPH_ETH_LEN_MAX) { + if (ethtype < _ODP_ETH_LEN_MAX) { prs->input_flags.snap = 1; if (ethtype > frame_len - offset) { prs->error_flags.snap_len = 1; @@ -1217,22 +1217,22 @@ int packet_parse_common(packet_parser_t *prs, const uint8_t *ptr, } /* Parse the VLAN header(s), if present */ - if (ethtype == ODPH_ETHTYPE_VLAN_OUTER) { + if (ethtype == _ODP_ETHTYPE_VLAN_OUTER) { prs->input_flags.vlan_qinq = 1; prs->input_flags.vlan = 1; - vlan = (const odph_vlanhdr_t *)parseptr; + vlan = (const _odp_vlanhdr_t *)parseptr; ethtype = odp_be_to_cpu_16(vlan->type); - offset += sizeof(odph_vlanhdr_t); - parseptr += sizeof(odph_vlanhdr_t); + offset += sizeof(_odp_vlanhdr_t); + parseptr += sizeof(_odp_vlanhdr_t); } - if (ethtype == ODPH_ETHTYPE_VLAN) { + if (ethtype == _ODP_ETHTYPE_VLAN) { prs->input_flags.vlan = 1; - vlan = (const odph_vlanhdr_t *)parseptr; + vlan = (const _odp_vlanhdr_t *)parseptr; ethtype = odp_be_to_cpu_16(vlan->type); - offset += sizeof(odph_vlanhdr_t); - parseptr += sizeof(odph_vlanhdr_t); + offset += sizeof(_odp_vlanhdr_t); + parseptr += sizeof(_odp_vlanhdr_t); } /* Set l3_offset+flag only for known ethtypes */ @@ -1241,18 +1241,18 @@ int packet_parse_common(packet_parser_t *prs, const uint8_t *ptr, /* Parse Layer 3 headers */ switch (ethtype) { - case ODPH_ETHTYPE_IPV4: + case _ODP_ETHTYPE_IPV4: prs->input_flags.ipv4 = 1; ip_proto = parse_ipv4(prs, &parseptr, &offset, frame_len); break; - case ODPH_ETHTYPE_IPV6: + case _ODP_ETHTYPE_IPV6: prs->input_flags.ipv6 = 1; ip_proto = parse_ipv6(prs, &parseptr, &offset, frame_len, seg_len); break; - case ODPH_ETHTYPE_ARP: + case _ODP_ETHTYPE_ARP: prs->input_flags.arp = 1; ip_proto = 255; /* Reserved invalid by IANA */ break; @@ -1269,30 +1269,30 @@ int packet_parse_common(packet_parser_t *prs, const uint8_t *ptr, /* Parse Layer 4 headers */ switch (ip_proto) { - case ODPH_IPPROTO_ICMP: + case _ODP_IPPROTO_ICMP: prs->input_flags.icmp = 1; break; - case ODPH_IPPROTO_TCP: - if (odp_unlikely(offset + ODPH_TCPHDR_LEN > seg_len)) + case _ODP_IPPROTO_TCP: + if (odp_unlikely(offset + _ODP_TCPHDR_LEN > seg_len)) return -1; prs->input_flags.tcp = 1; parse_tcp(prs, &parseptr, NULL); break; - case ODPH_IPPROTO_UDP: - if (odp_unlikely(offset + ODPH_UDPHDR_LEN > seg_len)) + case _ODP_IPPROTO_UDP: + if (odp_unlikely(offset + _ODP_UDPHDR_LEN > seg_len)) return -1; prs->input_flags.udp = 1; parse_udp(prs, &parseptr, NULL); break; - case ODPH_IPPROTO_AH: + case _ODP_IPPROTO_AH: prs->input_flags.ipsec = 1; prs->input_flags.ipsec_ah = 1; break; - case ODPH_IPPROTO_ESP: + case _ODP_IPPROTO_ESP: prs->input_flags.ipsec = 1; prs->input_flags.ipsec_esp = 1; break; diff --git a/platform/linux-generic/odp_traffic_mngr.c b/platform/linux-generic/odp_traffic_mngr.c index 1fa2d27..b85accb 100644 --- a/platform/linux-generic/odp_traffic_mngr.c +++ b/platform/linux-generic/odp_traffic_mngr.c @@ -17,8 +17,8 @@ #include #include #include -#include -#include +#include +#include #include /* Local vars */ @@ -1897,14 +1897,14 @@ static int tm_enqueue(tm_system_t *tm_system, static void egress_vlan_marking(tm_vlan_marking_t *vlan_marking, odp_packet_t odp_pkt) { - odph_vlanhdr_t vlan_hdr, *vlan_hdr_ptr; - odph_ethhdr_t *ether_hdr_ptr; + _odp_vlanhdr_t vlan_hdr, *vlan_hdr_ptr; + _odp_ethhdr_t *ether_hdr_ptr; odp_bool_t split_hdr; uint32_t hdr_len; uint16_t old_tci, new_tci; ether_hdr_ptr = odp_packet_l2_ptr(odp_pkt, &hdr_len); - vlan_hdr_ptr = (odph_vlanhdr_t *)(ether_hdr_ptr + 1); + vlan_hdr_ptr = (_odp_vlanhdr_t *)(ether_hdr_ptr + 1); /* If the split_hdr variable below is TRUE, then this indicates that * for this odp (output) packet the VLAN header is not all in the same @@ -1913,31 +1913,31 @@ static void egress_vlan_marking(tm_vlan_marking_t *vlan_marking, * handle this case for correctness, but because of the rarity the * code handling this is more optimized for ease of understanding and * correctness rather then performance. */ - split_hdr = hdr_len < (ODPH_ETHHDR_LEN + ODPH_VLANHDR_LEN); + split_hdr = hdr_len < (_ODP_ETHHDR_LEN + _ODP_VLANHDR_LEN); if (split_hdr) { - odp_packet_copy_to_mem(odp_pkt, ODPH_ETHHDR_LEN, - ODPH_VLANHDR_LEN, &vlan_hdr); + odp_packet_copy_to_mem(odp_pkt, _ODP_ETHHDR_LEN, + _ODP_VLANHDR_LEN, &vlan_hdr); vlan_hdr_ptr = &vlan_hdr; } old_tci = odp_be_to_cpu_16(vlan_hdr_ptr->tci); new_tci = old_tci; if (vlan_marking->drop_eligible_enabled) - new_tci |= ODPH_VLANHDR_DEI_MASK; + new_tci |= _ODP_VLANHDR_DEI_MASK; if (new_tci == old_tci) return; vlan_hdr_ptr->tci = odp_cpu_to_be_16(new_tci); if (split_hdr) - odp_packet_copy_from_mem(odp_pkt, ODPH_ETHHDR_LEN, - ODPH_VLANHDR_LEN, &vlan_hdr); + odp_packet_copy_from_mem(odp_pkt, _ODP_ETHHDR_LEN, + _ODP_VLANHDR_LEN, &vlan_hdr); } static void egress_ipv4_tos_marking(tm_tos_marking_t *tos_marking, odp_packet_t odp_pkt) { - odph_ipv4hdr_t ipv4_hdr, *ipv4_hdr_ptr; + _odp_ipv4hdr_t ipv4_hdr, *ipv4_hdr_ptr; odp_bool_t split_hdr; uint32_t hdr_len, l3_offset, old_chksum, ones_compl_sum, tos_diff; uint8_t old_tos, new_tos, ecn; @@ -1955,7 +1955,7 @@ static void egress_ipv4_tos_marking(tm_tos_marking_t *tos_marking, split_hdr = hdr_len < 12; if (split_hdr) { odp_packet_copy_to_mem(odp_pkt, l3_offset, - ODPH_IPV4HDR_LEN, &ipv4_hdr); + _ODP_IPV4HDR_LEN, &ipv4_hdr); ipv4_hdr_ptr = &ipv4_hdr; } @@ -1966,10 +1966,10 @@ static void egress_ipv4_tos_marking(tm_tos_marking_t *tos_marking, tos_marking->shifted_dscp; if (tos_marking->ecn_ce_enabled && odp_packet_has_tcp(odp_pkt)) { - ecn = old_tos & ODPH_IP_TOS_ECN_MASK; - if ((ecn == ODPH_IP_ECN_ECT0) || (ecn == ODPH_IP_ECN_ECT1)) - new_tos = (new_tos & ~ODPH_IP_TOS_ECN_MASK) | - (ODPH_IP_ECN_CE << ODPH_IP_TOS_ECN_SHIFT); + ecn = old_tos & _ODP_IP_TOS_ECN_MASK; + if ((ecn == _ODP_IP_ECN_ECT0) || (ecn == _ODP_IP_ECN_ECT1)) + new_tos = (new_tos & ~_ODP_IP_TOS_ECN_MASK) | + (_ODP_IP_ECN_CE << _ODP_IP_TOS_ECN_SHIFT); } if (new_tos == old_tos) @@ -1997,13 +1997,13 @@ static void egress_ipv4_tos_marking(tm_tos_marking_t *tos_marking, ipv4_hdr_ptr->chksum = odp_cpu_to_be_16((~ones_compl_sum) & 0xFFFF); if (split_hdr) odp_packet_copy_from_mem(odp_pkt, l3_offset, - ODPH_IPV4HDR_LEN, &ipv4_hdr); + _ODP_IPV4HDR_LEN, &ipv4_hdr); } static void egress_ipv6_tc_marking(tm_tos_marking_t *tos_marking, odp_packet_t odp_pkt) { - odph_ipv6hdr_t ipv6_hdr, *ipv6_hdr_ptr; + _odp_ipv6hdr_t ipv6_hdr, *ipv6_hdr_ptr; odp_bool_t split_hdr; uint32_t hdr_len, old_ver_tc_flow, new_ver_tc_flow, l3_offset; uint8_t old_tc, new_tc, ecn; @@ -2021,13 +2021,13 @@ static void egress_ipv6_tc_marking(tm_tos_marking_t *tos_marking, split_hdr = hdr_len < 4; if (split_hdr) { odp_packet_copy_to_mem(odp_pkt, l3_offset, - ODPH_IPV6HDR_LEN, &ipv6_hdr); + _ODP_IPV6HDR_LEN, &ipv6_hdr); ipv6_hdr_ptr = &ipv6_hdr; } old_ver_tc_flow = odp_be_to_cpu_32(ipv6_hdr_ptr->ver_tc_flow); - old_tc = (old_ver_tc_flow & ODPH_IPV6HDR_TC_MASK) - >> ODPH_IPV6HDR_TC_SHIFT; + old_tc = (old_ver_tc_flow & _ODP_IPV6HDR_TC_MASK) + >> _ODP_IPV6HDR_TC_SHIFT; new_tc = old_tc; if (tos_marking->drop_prec_enabled) @@ -2035,22 +2035,22 @@ static void egress_ipv6_tc_marking(tm_tos_marking_t *tos_marking, tos_marking->shifted_dscp; if (tos_marking->ecn_ce_enabled && odp_packet_has_tcp(odp_pkt)) { - ecn = old_tc & ODPH_IP_TOS_ECN_MASK; - if ((ecn == ODPH_IP_ECN_ECT0) || (ecn == ODPH_IP_ECN_ECT1)) - new_tc = (new_tc & ~ODPH_IP_TOS_ECN_MASK) | - (ODPH_IP_ECN_CE << ODPH_IP_TOS_ECN_SHIFT); + ecn = old_tc & _ODP_IP_TOS_ECN_MASK; + if ((ecn == _ODP_IP_ECN_ECT0) || (ecn == _ODP_IP_ECN_ECT1)) + new_tc = (new_tc & ~_ODP_IP_TOS_ECN_MASK) | + (_ODP_IP_ECN_CE << _ODP_IP_TOS_ECN_SHIFT); } if (new_tc == old_tc) return; - new_ver_tc_flow = (old_ver_tc_flow & ~ODPH_IPV6HDR_TC_MASK) | - (new_tc << ODPH_IPV6HDR_TC_SHIFT); + new_ver_tc_flow = (old_ver_tc_flow & ~_ODP_IPV6HDR_TC_MASK) | + (new_tc << _ODP_IPV6HDR_TC_SHIFT); ipv6_hdr_ptr->ver_tc_flow = odp_cpu_to_be_32(new_ver_tc_flow); if (split_hdr) odp_packet_copy_from_mem(odp_pkt, l3_offset, - ODPH_IPV6HDR_LEN, &ipv6_hdr); + _ODP_IPV6HDR_LEN, &ipv6_hdr); } static void tm_egress_marking(tm_system_t *tm_system, odp_packet_t odp_pkt) @@ -2866,9 +2866,9 @@ int odp_tm_drop_prec_marking(odp_tm_t odp_tm, if (drop_prec_enabled) { new_dscp = new_dscp & dscp_mask; inverted_mask = (uint8_t)~dscp_mask; - tos_mask = (inverted_mask << ODPH_IP_TOS_DSCP_SHIFT) | - ODPH_IP_TOS_ECN_MASK; - shifted_dscp = new_dscp << ODPH_IP_TOS_DSCP_SHIFT; + tos_mask = (inverted_mask << _ODP_IP_TOS_DSCP_SHIFT) | + _ODP_IP_TOS_ECN_MASK; + shifted_dscp = new_dscp << _ODP_IP_TOS_DSCP_SHIFT; } else { tos_mask = 0xFF; /* Note that this is an inverted mask */ shifted_dscp = 0; diff --git a/platform/linux-generic/pktio/dpdk.c b/platform/linux-generic/pktio/dpdk.c index 245ff7b..c21c703 100644 --- a/platform/linux-generic/pktio/dpdk.c +++ b/platform/linux-generic/pktio/dpdk.c @@ -19,7 +19,7 @@ #include #include -#include +#include #include #include @@ -590,7 +590,7 @@ static int dpdk_open(odp_pktio_t id ODP_UNUSED, ODP_ERR("Failed to read interface MTU\n"); return -1; } - pkt_dpdk->mtu = mtu + ODPH_ETHHDR_LEN; + pkt_dpdk->mtu = mtu + _ODP_ETHHDR_LEN; /* Some DPDK PMD virtual devices, like PCAP, do not support promisc * mode change. Use system call for them. */ diff --git a/platform/linux-generic/pktio/loop.c b/platform/linux-generic/pktio/loop.c index dce33e5..26523f1 100644 --- a/platform/linux-generic/pktio/loop.c +++ b/platform/linux-generic/pktio/loop.c @@ -12,8 +12,8 @@ #include #include -#include -#include +#include +#include #include diff --git a/platform/linux-generic/pktio/netmap.c b/platform/linux-generic/pktio/netmap.c index 847250b..1728bb2 100644 --- a/platform/linux-generic/pktio/netmap.c +++ b/platform/linux-generic/pktio/netmap.c @@ -12,7 +12,7 @@ #include #include #include -#include +#include #include #include @@ -408,7 +408,7 @@ static int netmap_open(odp_pktio_t id ODP_UNUSED, pktio_entry_t *pktio_entry, ODP_ERR("Unable to read interface MTU\n"); goto error; } - mtu += ODPH_ETHHDR_LEN; + mtu += _ODP_ETHHDR_LEN; pkt_nm->mtu = (mtu < buf_size) ? mtu : buf_size; /* Check if RSS is supported. If not, set 'max_input_queues' to 1. */ @@ -603,7 +603,7 @@ static inline int netmap_pkt_to_odp(pktio_entry_t *pktio_entry, return -1; } - if (odp_unlikely(len < ODPH_ETH_LEN_MIN)) { + if (odp_unlikely(len < _ODP_ETH_LEN_MIN)) { ODP_ERR("RX: Frame truncated: %" PRIu16 "\n", len); return -1; } diff --git a/platform/linux-generic/pktio/pcap.c b/platform/linux-generic/pktio/pcap.c index 2fb2a5b..be9049a 100644 --- a/platform/linux-generic/pktio/pcap.c +++ b/platform/linux-generic/pktio/pcap.c @@ -40,7 +40,7 @@ #include #include -#include +#include #include #include @@ -349,9 +349,9 @@ static uint32_t pcapif_mtu_get(pktio_entry_t *pktio_entry ODP_UNUSED) static int pcapif_mac_addr_get(pktio_entry_t *pktio_entry ODP_UNUSED, void *mac_addr) { - memcpy(mac_addr, pcap_mac, ODPH_ETHADDR_LEN); + memcpy(mac_addr, pcap_mac, _ODP_ETHADDR_LEN); - return ODPH_ETHADDR_LEN; + return _ODP_ETHADDR_LEN; } static int pcapif_capability(pktio_entry_t *pktio_entry ODP_UNUSED, diff --git a/platform/linux-generic/pktio/ring.c b/platform/linux-generic/pktio/ring.c index ec27f2c..517e876 100644 --- a/platform/linux-generic/pktio/ring.c +++ b/platform/linux-generic/pktio/ring.c @@ -73,7 +73,6 @@ #include #include #include -#include "odph_debug.h" #include #include @@ -165,9 +164,9 @@ _ring_create(const char *name, unsigned count, unsigned flags) /* count must be a power of 2 */ if (!RING_VAL_IS_POWER_2(count) || (count > _RING_SZ_MASK)) { - ODPH_ERR("Requested size is invalid, must be power of 2," - "and do not exceed the size limit %u\n", - _RING_SZ_MASK); + ODP_ERR("Requested size is invalid, must be power of 2," + "and do not exceed the size limit %u\n", + _RING_SZ_MASK); __odp_errno = EINVAL; return NULL; } @@ -202,7 +201,7 @@ _ring_create(const char *name, unsigned count, unsigned flags) TAILQ_INSERT_TAIL(&odp_ring_list, r, next); } else { __odp_errno = ENOMEM; - ODPH_ERR("Cannot reserve memory\n"); + ODP_ERR("Cannot reserve memory\n"); } odp_rwlock_write_unlock(&qlock); diff --git a/platform/linux-generic/pktio/socket.c b/platform/linux-generic/pktio/socket.c index 8f86dda..5d85ef5 100644 --- a/platform/linux-generic/pktio/socket.c +++ b/platform/linux-generic/pktio/socket.c @@ -43,8 +43,8 @@ #include #include -#include -#include +#include +#include static int sock_stats_reset(pktio_entry_t *pktio_entry); @@ -84,8 +84,8 @@ int sendmmsg(int fd, struct mmsghdr *vmessages, unsigned int vlen, int flags) /** 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(ODPH_ETHHDR_LEN, sizeof(uint32_t)) \ - - ODPH_ETHHDR_LEN) +#define ETHBUF_OFFSET (ODP_ALIGN_ROUNDUP(_ODP_ETHHDR_LEN, sizeof(uint32_t)) \ + - _ODP_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. diff --git a/platform/linux-generic/pktio/socket_mmap.c b/platform/linux-generic/pktio/socket_mmap.c index 420cd26..11bb7d6 100644 --- a/platform/linux-generic/pktio/socket_mmap.c +++ b/platform/linux-generic/pktio/socket_mmap.c @@ -32,8 +32,8 @@ #include #include -#include -#include +#include +#include static int set_pkt_sock_fanout_mmap(pkt_sock_mmap_t *const pkt_sock, int sock_group_idx) @@ -115,8 +115,8 @@ static uint8_t *pkt_mmap_vlan_insert(uint8_t *l2_hdr_ptr, uint16_t vlan_tci, int *pkt_len_ptr) { - odph_ethhdr_t *eth_hdr; - odph_vlanhdr_t *vlan_hdr; + _odp_ethhdr_t *eth_hdr; + _odp_vlanhdr_t *vlan_hdr; uint8_t *new_l2_ptr; int orig_pkt_len; @@ -124,17 +124,17 @@ static uint8_t *pkt_mmap_vlan_insert(uint8_t *l2_hdr_ptr, * shifting the Ethernet header down to open up space for the IEEE * 802.1Q vlan header. */ - if (ODPH_VLANHDR_LEN < mac_offset) { + if (_ODP_VLANHDR_LEN < mac_offset) { orig_pkt_len = *pkt_len_ptr; - new_l2_ptr = l2_hdr_ptr - ODPH_VLANHDR_LEN; - memmove(new_l2_ptr, l2_hdr_ptr, ODPH_ETHHDR_LEN); + new_l2_ptr = l2_hdr_ptr - _ODP_VLANHDR_LEN; + memmove(new_l2_ptr, l2_hdr_ptr, _ODP_ETHHDR_LEN); - eth_hdr = (odph_ethhdr_t *)new_l2_ptr; - vlan_hdr = (odph_vlanhdr_t *)(new_l2_ptr + ODPH_ETHHDR_LEN); + eth_hdr = (_odp_ethhdr_t *)new_l2_ptr; + vlan_hdr = (_odp_vlanhdr_t *)(new_l2_ptr + _ODP_ETHHDR_LEN); vlan_hdr->tci = odp_cpu_to_be_16(vlan_tci); vlan_hdr->type = eth_hdr->type; - eth_hdr->type = odp_cpu_to_be_16(ODPH_ETHTYPE_VLAN); - *pkt_len_ptr = orig_pkt_len + ODPH_VLANHDR_LEN; + eth_hdr->type = odp_cpu_to_be_16(_ODP_ETHTYPE_VLAN); + *pkt_len_ptr = orig_pkt_len + _ODP_VLANHDR_LEN; return new_l2_ptr; }