From patchwork Mon May 16 09:50:18 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Elo, Matias \(Nokia - FI/Espoo\)" X-Patchwork-Id: 67839 Delivered-To: patch@linaro.org Received: by 10.140.92.199 with SMTP id b65csp1444881qge; Mon, 16 May 2016 02:52:06 -0700 (PDT) X-Received: by 10.233.216.7 with SMTP id u7mr29611586qkf.141.1463392326892; Mon, 16 May 2016 02:52:06 -0700 (PDT) Return-Path: Received: from lists.linaro.org (lists.linaro.org. [54.225.227.206]) by mx.google.com with ESMTP id h21si18511434qkh.215.2016.05.16.02.52.06; Mon, 16 May 2016 02:52:06 -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=fail (p=NONE dis=NONE) header.from=nokia.com Received: by lists.linaro.org (Postfix, from userid 109) id 85C7961709; Mon, 16 May 2016 09:52:06 +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=-6.9 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_HI, RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL, 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 DA4CB61731; Mon, 16 May 2016 09:50:34 +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 EF1856172B; Mon, 16 May 2016 09:50:25 +0000 (UTC) Received: from demumfd002.nsn-inter.net (demumfd002.nsn-inter.net [93.183.12.31]) by lists.linaro.org (Postfix) with ESMTPS id 0161A616F3 for ; Mon, 16 May 2016 09:50:22 +0000 (UTC) Received: from demuprx017.emea.nsn-intra.net ([10.150.129.56]) by demumfd002.nsn-inter.net (8.15.2/8.15.2) with ESMTPS id u4G9oLnT017258 (version=TLSv1 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for ; Mon, 16 May 2016 09:50:21 GMT Received: from 10.144.19.15 ([10.144.104.109]) by demuprx017.emea.nsn-intra.net (8.12.11.20060308/8.12.11) with ESMTP id u4G9oKq0017285 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=NO) for ; Mon, 16 May 2016 11:50:21 +0200 From: Matias Elo To: lng-odp@lists.linaro.org Date: Mon, 16 May 2016 12:50:18 +0300 Message-Id: <1463392220-22856-4-git-send-email-matias.elo@nokia.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1463392220-22856-1-git-send-email-matias.elo@nokia.com> References: <1463392220-22856-1-git-send-email-matias.elo@nokia.com> X-purgate-type: clean X-purgate-Ad: Categorized by eleven eXpurgate (R) http://www.eleven.de X-purgate: clean X-purgate: This mail is considered clean (visit http://www.eleven.de for further information) X-purgate-size: 3797 X-purgate-ID: 151667::1463392221-00002418-9730270E/0/0 X-Topics: patch Subject: [lng-odp] [PATCH v2 3/5] linux-generic: packet: remove payload_offset member from odp_packet_hdr_t 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" There is no way to read payload_offset in the ODP API, so don't save it. Signed-off-by: Matias Elo --- platform/linux-generic/include/odp_packet_internal.h | 2 -- platform/linux-generic/odp_packet.c | 20 ++++++-------------- 2 files changed, 6 insertions(+), 16 deletions(-) diff --git a/platform/linux-generic/include/odp_packet_internal.h b/platform/linux-generic/include/odp_packet_internal.h index 2a12503..1306b05 100644 --- a/platform/linux-generic/include/odp_packet_internal.h +++ b/platform/linux-generic/include/odp_packet_internal.h @@ -141,7 +141,6 @@ typedef struct { uint32_t l2_offset; /**< offset to L2 hdr, e.g. Eth */ uint32_t l3_offset; /**< offset to L3 hdr, e.g. IPv4, IPv6 */ uint32_t l4_offset; /**< offset to L4 hdr (TCP, UDP, SCTP, also ICMP) */ - uint32_t payload_offset; /**< offset to payload */ uint32_t l3_len; /**< Layer 3 length */ uint32_t l4_len; /**< Layer 4 length */ @@ -180,7 +179,6 @@ static inline void copy_packet_parser_metadata(odp_packet_hdr_t *src_hdr, dst_hdr->l2_offset = src_hdr->l2_offset; dst_hdr->l3_offset = src_hdr->l3_offset; dst_hdr->l4_offset = src_hdr->l4_offset; - dst_hdr->payload_offset = src_hdr->payload_offset; dst_hdr->l3_len = src_hdr->l3_len; dst_hdr->l4_len = src_hdr->l4_len; diff --git a/platform/linux-generic/odp_packet.c b/platform/linux-generic/odp_packet.c index 436265e..4f523c9 100644 --- a/platform/linux-generic/odp_packet.c +++ b/platform/linux-generic/odp_packet.c @@ -41,7 +41,6 @@ void packet_parse_reset(odp_packet_hdr_t *pkt_hdr) pkt_hdr->l2_offset = 0; pkt_hdr->l3_offset = ODP_PACKET_OFFSET_INVALID; pkt_hdr->l4_offset = ODP_PACKET_OFFSET_INVALID; - pkt_hdr->payload_offset = ODP_PACKET_OFFSET_INVALID; } /** @@ -65,7 +64,6 @@ static void packet_init(pool_entry_t *pool, odp_packet_hdr_t *pkt_hdr, /* Set metadata items that initialize to non-zero values */ pkt_hdr->l3_offset = ODP_PACKET_OFFSET_INVALID; pkt_hdr->l4_offset = ODP_PACKET_OFFSET_INVALID; - pkt_hdr->payload_offset = ODP_PACKET_OFFSET_INVALID; /* Disable lazy parsing on user allocated packets */ if (!parse) @@ -1118,7 +1116,8 @@ static inline void parse_tcp(odp_packet_hdr_t *pkt_hdr, pkt_hdr->l4_len = pkt_hdr->l3_len + pkt_hdr->l3_offset - pkt_hdr->l4_offset; - *offset += (uint32_t)tcp->hl * 4; + if (offset) + *offset += (uint32_t)tcp->hl * 4; *parseptr += (uint32_t)tcp->hl * 4; } @@ -1139,7 +1138,8 @@ static inline void parse_udp(odp_packet_hdr_t *pkt_hdr, pkt_hdr->l4_len = udplen; - *offset += sizeof(odph_udphdr_t); + if (offset) + *offset += sizeof(odph_udphdr_t); *parseptr += sizeof(odph_udphdr_t); } @@ -1272,12 +1272,12 @@ int _odp_parse_common(odp_packet_hdr_t *pkt_hdr, const uint8_t *ptr) case ODPH_IPPROTO_TCP: pkt_hdr->input_flags.tcp = 1; - parse_tcp(pkt_hdr, &parseptr, &offset); + parse_tcp(pkt_hdr, &parseptr, NULL); break; case ODPH_IPPROTO_UDP: pkt_hdr->input_flags.udp = 1; - parse_udp(pkt_hdr, &parseptr, &offset); + parse_udp(pkt_hdr, &parseptr, NULL); break; case ODPH_IPPROTO_AH: @@ -1296,14 +1296,6 @@ int _odp_parse_common(odp_packet_hdr_t *pkt_hdr, const uint8_t *ptr) break; } - /* - * Anything beyond what we parse here is considered payload. - * Note: Payload is really only relevant for TCP and UDP. For - * all other protocols, the payload offset will point to the - * final header (ARP, ICMP, AH, ESP, or IP Fragment). - */ - pkt_hdr->payload_offset = offset; - parse_exit: pkt_hdr->input_flags.parsed_all = 1; return pkt_hdr->error_flags.all != 0;