From patchwork Mon Jan 22 10:00:16 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Github ODP bot X-Patchwork-Id: 125376 Delivered-To: patch@linaro.org Received: by 10.46.66.141 with SMTP id h13csp1068548ljf; Mon, 22 Jan 2018 02:04:36 -0800 (PST) X-Google-Smtp-Source: AH8x227XXQo/6RgUYqnMb7EZ+tJ3AOAmbbc5t/bi77NsR2chPnoatn7auKBlwHn4A5F6nl8Pl7gb X-Received: by 10.200.53.6 with SMTP id y6mr9412913qtb.191.1516615475733; Mon, 22 Jan 2018 02:04:35 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1516615475; cv=none; d=google.com; s=arc-20160816; b=IZrrfEjoTnMNvWQwbgemFjPr09p9oP3Lcu+kfFEStAGl+FjifNYHsnTxTVlOvCxW8C FK4Rs+uBK1+oje0/+bQd9hzh3bKswkVYn78rkGm321AIs6owbBpOx9hfTMDALErGn2Xy WNlmDt1KIh57jG7iTDCjLvas6N+gE+LcSpaASzTmQD/u0D1AUcBNMzXov0h8LmgWes7M 8vnDOWzMfFNON8dygNI1Pi3uj/zA3/XKnqAGuOQLc5u0PD8BgQeD+FEdqWOEk3lHLJaQ SdNKsEfVyu2RS8FQb4xX1qTtWw5Olp3MUheVO1BVU1ZxkVe/rA2Z7omH8SDS6COcikWX 0Svw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:subject:github-pr-num :references:in-reply-to:message-id:date:to:from:delivered-to :arc-authentication-results; bh=sP3zg7cZHjxoK4AfWenHdgxkq8EMCkkb8EnDNgut/Gg=; b=yzaYTrgDp3h5gKi7v68gnEmceSD4TU5h5tG2k2Zx6VbOL6cbRyizkTLmHrIE6YNcMd flxdEfrJwD2kADY+Q6iXPs9/44uzO0/an6G9bC3LL1Luo84Uysk4gbOAi+IAi0a2aw8g fWKDDvwBfZInPZaRNkkcxv9KQcoFFm5nIgoYa6kwFAWEuB3LpSn6DO0p9JyVewxxs3rc hQ8fTi29496MkGzxHNfKMLt25XhemrVIfyu1H6ztiimzCPCGr8/O3G6W0nxgAHHn/n70 H620Muz6oBU3APd7nXHn+J5Dr6j0DB3C5JLVbI8ebc6telCXOzS74Fpwr89IDimGOY5A 8KVg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of lng-odp-bounces@lists.linaro.org designates 54.197.127.237 as permitted sender) smtp.mailfrom=lng-odp-bounces@lists.linaro.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=yandex.ru Return-Path: Received: from lists.linaro.org (ec2-54-197-127-237.compute-1.amazonaws.com. [54.197.127.237]) by mx.google.com with ESMTP id j191si5176581qka.318.2018.01.22.02.04.35; Mon, 22 Jan 2018 02:04:35 -0800 (PST) Received-SPF: pass (google.com: domain of lng-odp-bounces@lists.linaro.org designates 54.197.127.237 as permitted sender) client-ip=54.197.127.237; Authentication-Results: mx.google.com; spf=pass (google.com: domain of lng-odp-bounces@lists.linaro.org designates 54.197.127.237 as permitted sender) smtp.mailfrom=lng-odp-bounces@lists.linaro.org; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=yandex.ru Received: by lists.linaro.org (Postfix, from userid 109) id 269F3618E4; Mon, 22 Jan 2018 10:04:35 +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,FREEMAIL_FROM, RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H2 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 71B676276F; Mon, 22 Jan 2018 10:00:57 +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 93443607B5; Mon, 22 Jan 2018 10:00:33 +0000 (UTC) Received: from forward101o.mail.yandex.net (forward101o.mail.yandex.net [37.140.190.181]) by lists.linaro.org (Postfix) with ESMTPS id A7D6C60975 for ; Mon, 22 Jan 2018 10:00:24 +0000 (UTC) Received: from mxback7o.mail.yandex.net (mxback7o.mail.yandex.net [IPv6:2a02:6b8:0:1a2d::21]) by forward101o.mail.yandex.net (Yandex) with ESMTP id 02640134147D for ; Mon, 22 Jan 2018 13:00:23 +0300 (MSK) Received: from smtp3p.mail.yandex.net (smtp3p.mail.yandex.net [2a02:6b8:0:1472:2741:0:8b6:8]) by mxback7o.mail.yandex.net (nwsmtp/Yandex) with ESMTP id LsVXB4NMAY-0Mpa9TfG; Mon, 22 Jan 2018 13:00:22 +0300 Received: by smtp3p.mail.yandex.net (nwsmtp/Yandex) with ESMTPSA id uZYuxzgHNY-0MHqelrI; Mon, 22 Jan 2018 13:00:22 +0300 (using TLSv1.2 with cipher ECDHE-RSA-AES128-SHA256 (128/128 bits)) (Client certificate not present) From: Github ODP bot To: lng-odp@lists.linaro.org Date: Mon, 22 Jan 2018 13:00:16 +0300 Message-Id: <1516615219-32202-4-git-send-email-odpbot@yandex.ru> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1516615219-32202-1-git-send-email-odpbot@yandex.ru> References: <1516615219-32202-1-git-send-email-odpbot@yandex.ru> Github-pr-num: 392 Subject: [lng-odp] [PATCH API-NEXT v2 3/6] linux-gen: packet: clean up error and output flags 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: , Errors-To: lng-odp-bounces@lists.linaro.org Sender: "lng-odp" From: Petri Savolainen Removed three unused error flags. Combined error and output flags into a single uint32_t. This saves four bytes and init of those bytes. There's still room for 12 flags in this word. Later on, these and input flags could be also combined. Moved the combined flag structure to packet types header, so that it can be accessed from inlined packet code. Signed-off-by: Petri Savolainen --- /** Email created from pull request 392 (psavol:next-user-ptr-init-rebase) ** https://github.com/Linaro/odp/pull/392 ** Patch: https://github.com/Linaro/odp/pull/392.patch ** Base sha: f925f103c90591776f73863d30159357b08bf71e ** Merge commit sha: 81c268611ef9755e8347f532022e22148f7d2a09 **/ .../include/odp/api/plat/packet_inline_types.h | 41 +++++++++++++++ .../linux-generic/include/odp_packet_internal.h | 59 +++------------------- platform/linux-generic/odp_classification.c | 2 +- platform/linux-generic/odp_crypto.c | 2 +- platform/linux-generic/odp_ipsec.c | 4 +- platform/linux-generic/odp_packet.c | 40 +++++++-------- platform/linux-generic/odp_packet_flags.c | 14 +++-- platform/linux-generic/pktio/dpdk.c | 24 ++++----- 8 files changed, 88 insertions(+), 98 deletions(-) diff --git a/platform/linux-generic/include/odp/api/plat/packet_inline_types.h b/platform/linux-generic/include/odp/api/plat/packet_inline_types.h index 091598c27..dbfc66411 100644 --- a/platform/linux-generic/include/odp/api/plat/packet_inline_types.h +++ b/platform/linux-generic/include/odp/api/plat/packet_inline_types.h @@ -101,6 +101,47 @@ typedef union { } _odp_packet_input_flags_t; +/* + * Additional packet flags + */ +typedef union { + /* All flags */ + uint32_t all_flags; + + struct { + uint32_t reserved1: 12; + + /* + * Packet output flags + */ + uint32_t l3_chksum_set: 1; /* L3 chksum bit is valid */ + uint32_t l3_chksum: 1; /* L3 chksum override */ + uint32_t l4_chksum_set: 1; /* L4 chksum bit is valid */ + uint32_t l4_chksum: 1; /* L4 chksum override */ + uint32_t shaper_len_adj: 8; /* Adjustment for traffic mgr */ + + /* + * Error flags + */ + uint32_t snap_len_err: 1; /* Snap length error */ + uint32_t ip_err: 1; /* IP error */ + uint32_t l3_chksum_err: 1; /* L3 checksum error */ + uint32_t tcp_err: 1; /* TCP error */ + uint32_t udp_err: 1; /* UDP error */ + uint32_t l4_chksum_err: 1; /* L4 checksum error */ + uint32_t ipsec_err: 1; /* IPsec error */ + uint32_t crypto_err: 1; /* Crypto packet operation error */ + }; + + /* Flag groups */ + struct { + uint32_t reserved2: 12; + uint32_t other: 12; /* All other flags */ + uint32_t error: 8; /* All error flags */ + } all; + +} _odp_packet_flags_t; + /** @endcond */ #ifdef __cplusplus diff --git a/platform/linux-generic/include/odp_packet_internal.h b/platform/linux-generic/include/odp_packet_internal.h index 184b8f40e..83bc27b12 100644 --- a/platform/linux-generic/include/odp_packet_internal.h +++ b/platform/linux-generic/include/odp_packet_internal.h @@ -33,65 +33,21 @@ extern "C" { /** Minimum segment length expected by packet_parse_common() */ #define PACKET_PARSE_SEG_LEN 96 - ODP_STATIC_ASSERT(sizeof(_odp_packet_input_flags_t) == sizeof(uint64_t), "INPUT_FLAGS_SIZE_ERROR"); -/** - * Packet error flags - */ -typedef union { - /* All error flags */ - uint32_t all; - - struct { - /* Bitfield flags for each detected error */ - uint32_t app_error:1; /**< Error bit for application use */ - uint32_t frame_len:1; /**< Frame length error */ - uint32_t snap_len:1; /**< Snap length error */ - uint32_t l2_chksum:1; /**< L2 checksum error, checks TBD */ - uint32_t ip_err:1; /**< IP error, checks TBD */ - uint32_t l3_chksum:1; /**< L3 checksum error */ - uint32_t tcp_err:1; /**< TCP error, checks TBD */ - uint32_t udp_err:1; /**< UDP error, checks TBD */ - uint32_t ipsec_err:1; /**< IPsec error */ - uint32_t crypto_err:1; /**< Crypto packet operation error */ - uint32_t l4_chksum:1; /**< L4 checksum error */ - }; -} error_flags_t; - -ODP_STATIC_ASSERT(sizeof(error_flags_t) == sizeof(uint32_t), - "ERROR_FLAGS_SIZE_ERROR"); - -/** - * Packet output flags - */ -typedef union { - /* All output flags */ - uint32_t all; - - struct { - /** adjustment for traffic mgr */ - uint32_t shaper_len_adj:8; - - /* Bitfield flags for each output option */ - uint32_t l3_chksum_set:1; /**< L3 chksum bit is valid */ - uint32_t l3_chksum:1; /**< L3 chksum override */ - uint32_t l4_chksum_set:1; /**< L3 chksum bit is valid */ - uint32_t l4_chksum:1; /**< L4 chksum override */ - }; -} output_flags_t; - -ODP_STATIC_ASSERT(sizeof(output_flags_t) == sizeof(uint32_t), - "OUTPUT_FLAGS_SIZE_ERROR"); +ODP_STATIC_ASSERT(sizeof(_odp_packet_flags_t) == sizeof(uint32_t), + "PACKET_FLAGS_SIZE_ERROR"); /** * Packet parser metadata */ typedef struct { + /* Packet input flags */ _odp_packet_input_flags_t input_flags; - error_flags_t error_flags; - output_flags_t output_flags; + + /* Other flags */ + _odp_packet_flags_t flags; /* offset to L2 hdr, e.g. Eth */ uint16_t l2_offset; @@ -232,8 +188,7 @@ static inline void packet_init(odp_packet_hdr_t *pkt_hdr, uint32_t len) } pkt_hdr->p.input_flags.all = 0; - pkt_hdr->p.output_flags.all = 0; - pkt_hdr->p.error_flags.all = 0; + pkt_hdr->p.flags.all_flags = 0; pkt_hdr->p.l2_offset = 0; pkt_hdr->p.l3_offset = ODP_PACKET_OFFSET_INVALID; diff --git a/platform/linux-generic/odp_classification.c b/platform/linux-generic/odp_classification.c index 173ec29f1..c4fbdfb81 100644 --- a/platform/linux-generic/odp_classification.c +++ b/platform/linux-generic/odp_classification.c @@ -923,7 +923,7 @@ static inline cos_t *cls_select_cos(pktio_entry_t *entry, default_cos = cls->default_cos; /* Return error cos for error packet */ - if (pkt_hdr->p.error_flags.all) + if (pkt_hdr->p.flags.all.error) return cls->error_cos; /* Calls all the PMRs attached at the PKTIO level*/ for (i = 0; i < odp_atomic_load_u32(&default_cos->s.num_rule); i++) { diff --git a/platform/linux-generic/odp_crypto.c b/platform/linux-generic/odp_crypto.c index bcb0541ba..e1d1c84b2 100644 --- a/platform/linux-generic/odp_crypto.c +++ b/platform/linux-generic/odp_crypto.c @@ -1418,7 +1418,7 @@ int odp_crypto_int(odp_packet_t pkt_in, (rc_auth == ODP_CRYPTO_ALG_ERR_NONE); pkt_hdr = odp_packet_hdr(out_pkt); - pkt_hdr->p.error_flags.crypto_err = !op_result->ok; + pkt_hdr->p.flags.crypto_err = !op_result->ok; /* Synchronous, simply return results */ *pkt_out = out_pkt; diff --git a/platform/linux-generic/odp_ipsec.c b/platform/linux-generic/odp_ipsec.c index 15f2305b1..782885a8c 100644 --- a/platform/linux-generic/odp_ipsec.c +++ b/platform/linux-generic/odp_ipsec.c @@ -829,7 +829,7 @@ static ipsec_sa_t *ipsec_in_single(odp_packet_t pkt, err: pkt_hdr = odp_packet_hdr(pkt); - pkt_hdr->p.error_flags.ipsec_err = 1; + pkt_hdr->p.flags.ipsec_err = 1; *pkt_out = pkt; @@ -1406,7 +1406,7 @@ static ipsec_sa_t *ipsec_out_single(odp_packet_t pkt, err: pkt_hdr = odp_packet_hdr(pkt); - pkt_hdr->p.error_flags.ipsec_err = 1; + pkt_hdr->p.flags.ipsec_err = 1; *pkt_out = pkt; return ipsec_sa; diff --git a/platform/linux-generic/odp_packet.c b/platform/linux-generic/odp_packet.c index 545dae2dd..033981dc2 100644 --- a/platform/linux-generic/odp_packet.c +++ b/platform/linux-generic/odp_packet.c @@ -338,9 +338,8 @@ void *_odp_packet_map(void *pkt_ptr, uint32_t offset, uint32_t *seg_len, void packet_parse_reset(odp_packet_hdr_t *pkt_hdr) { /* Reset parser metadata before new parse */ - pkt_hdr->p.error_flags.all = 0; pkt_hdr->p.input_flags.all = 0; - pkt_hdr->p.output_flags.all = 0; + pkt_hdr->p.flags.all.error = 0; pkt_hdr->p.l2_offset = ODP_PACKET_OFFSET_INVALID; pkt_hdr->p.l3_offset = ODP_PACKET_OFFSET_INVALID; pkt_hdr->p.l4_offset = ODP_PACKET_OFFSET_INVALID; @@ -1309,16 +1308,16 @@ void odp_packet_l3_chksum_insert(odp_packet_t pkt, int insert) { odp_packet_hdr_t *pkt_hdr = packet_hdr(pkt); - pkt_hdr->p.output_flags.l3_chksum_set = 1; - pkt_hdr->p.output_flags.l3_chksum = insert; + pkt_hdr->p.flags.l3_chksum_set = 1; + pkt_hdr->p.flags.l3_chksum = insert; } void odp_packet_l4_chksum_insert(odp_packet_t pkt, int insert) { odp_packet_hdr_t *pkt_hdr = packet_hdr(pkt); - pkt_hdr->p.output_flags.l4_chksum_set = 1; - pkt_hdr->p.output_flags.l4_chksum = insert; + pkt_hdr->p.flags.l4_chksum_set = 1; + pkt_hdr->p.flags.l4_chksum = insert; } odp_packet_chksum_status_t odp_packet_l3_chksum_status(odp_packet_t pkt) @@ -1328,7 +1327,7 @@ odp_packet_chksum_status_t odp_packet_l3_chksum_status(odp_packet_t pkt) if (!pkt_hdr->p.input_flags.l3_chksum_done) return ODP_PACKET_CHKSUM_UNKNOWN; - if (pkt_hdr->p.error_flags.l3_chksum) + if (pkt_hdr->p.flags.l3_chksum_err) return ODP_PACKET_CHKSUM_BAD; return ODP_PACKET_CHKSUM_OK; @@ -1341,7 +1340,7 @@ odp_packet_chksum_status_t odp_packet_l4_chksum_status(odp_packet_t pkt) if (!pkt_hdr->p.input_flags.l4_chksum_done) return ODP_PACKET_CHKSUM_UNKNOWN; - if (pkt_hdr->p.error_flags.l4_chksum) + if (pkt_hdr->p.flags.l4_chksum_err) return ODP_PACKET_CHKSUM_BAD; return ODP_PACKET_CHKSUM_OK; @@ -1783,11 +1782,8 @@ void odp_packet_print(odp_packet_t pkt) len += odp_buffer_snprint(&str[len], n - len, buf); len += snprintf(&str[len], n - len, " input_flags 0x%" PRIx64 "\n", hdr->p.input_flags.all); - len += snprintf(&str[len], n - len, " error_flags 0x%" PRIx32 "\n", - hdr->p.error_flags.all); - len += snprintf(&str[len], n - len, - " output_flags 0x%" PRIx32 "\n", - hdr->p.output_flags.all); + len += snprintf(&str[len], n - len, " flags 0x%" PRIx32 "\n", + hdr->p.flags.all_flags); len += snprintf(&str[len], n - len, " l2_offset %" PRIu32 "\n", hdr->p.l2_offset); len += snprintf(&str[len], n - len, @@ -1989,7 +1985,7 @@ static inline uint16_t parse_eth(packet_parser_t *prs, const uint8_t **parseptr, if (ethtype < _ODP_ETH_LEN_MAX) { prs->input_flags.snap = 1; if (ethtype > frame_len - *offset) { - prs->error_flags.snap_len = 1; + prs->flags.snap_len_err = 1; return 0; } ethtype = odp_be_to_cpu_16(*((const uint16_t *)(uintptr_t) @@ -2036,7 +2032,7 @@ static inline uint8_t parse_ipv4(packet_parser_t *prs, const uint8_t **parseptr, if (odp_unlikely(ihl < _ODP_IPV4HDR_IHL_MIN) || odp_unlikely(ver != 4) || (l3_len > frame_len - *offset)) { - prs->error_flags.ip_err = 1; + prs->flags.ip_err = 1; return 0; } @@ -2078,7 +2074,7 @@ static inline uint8_t parse_ipv6(packet_parser_t *prs, const uint8_t **parseptr, /* Basic sanity checks on IPv6 header */ if ((odp_be_to_cpu_32(ipv6->ver_tc_flow) >> 28) != 6 || l3_len > frame_len - *offset) { - prs->error_flags.ip_err = 1; + prs->flags.ip_err = 1; return 0; } @@ -2107,7 +2103,7 @@ static inline uint8_t parse_ipv6(packet_parser_t *prs, const uint8_t **parseptr, if (*offset >= prs->l3_offset + odp_be_to_cpu_16(ipv6->payload_len)) { - prs->error_flags.ip_err = 1; + prs->flags.ip_err = 1; return 0; } @@ -2134,7 +2130,7 @@ static inline void parse_tcp(packet_parser_t *prs, const _odp_tcphdr_t *tcp = (const _odp_tcphdr_t *)*parseptr; if (tcp->hl < sizeof(_odp_tcphdr_t) / sizeof(uint32_t)) - prs->error_flags.tcp_err = 1; + prs->flags.tcp_err = 1; else if ((uint32_t)tcp->hl * 4 > sizeof(_odp_tcphdr_t)) prs->input_flags.tcpopt = 1; @@ -2153,7 +2149,7 @@ static inline void parse_udp(packet_parser_t *prs, uint32_t udplen = odp_be_to_cpu_16(udp->length); if (odp_unlikely(udplen < sizeof(_odp_udphdr_t))) - prs->error_flags.udp_err = 1; + prs->flags.udp_err = 1; if (odp_cpu_to_be_16(_ODP_UDP_IPSEC_PORT) == udp->dst_port && udplen > 4) { @@ -2182,7 +2178,7 @@ int packet_parse_common_l3_l4(packet_parser_t *prs, const uint8_t *parseptr, prs->l3_offset = offset; if (layer <= ODP_PROTO_LAYER_L2) - return prs->error_flags.all != 0; + return prs->flags.all.error != 0; /* Set l3 flag only for known ethtypes */ prs->input_flags.l3 = 1; @@ -2213,7 +2209,7 @@ int packet_parse_common_l3_l4(packet_parser_t *prs, const uint8_t *parseptr, } if (layer == ODP_PROTO_LAYER_L3) - return prs->error_flags.all != 0; + return prs->flags.all.error != 0; /* Set l4 flag only for known ip_proto */ prs->input_flags.l4 = 1; @@ -2264,7 +2260,7 @@ int packet_parse_common_l3_l4(packet_parser_t *prs, const uint8_t *parseptr, break; } - return prs->error_flags.all != 0; + return prs->flags.all.error != 0; } /** diff --git a/platform/linux-generic/odp_packet_flags.c b/platform/linux-generic/odp_packet_flags.c index adb1881e8..0c33666eb 100644 --- a/platform/linux-generic/odp_packet_flags.c +++ b/platform/linux-generic/odp_packet_flags.c @@ -24,7 +24,7 @@ int odp_packet_has_error(odp_packet_t pkt) { odp_packet_hdr_t *pkt_hdr = odp_packet_hdr(pkt); - return pkt_hdr->p.error_flags.all != 0; + return pkt_hdr->p.flags.all.error != 0; } /* Get Input Flags */ @@ -34,9 +34,7 @@ int odp_packet_has_l2_error(odp_packet_t pkt) odp_packet_hdr_t *pkt_hdr = odp_packet_hdr(pkt); /* L2 parsing is always done by default and hence no additional check is required */ - return pkt_hdr->p.error_flags.frame_len - | pkt_hdr->p.error_flags.snap_len - | pkt_hdr->p.error_flags.l2_chksum; + return pkt_hdr->p.flags.snap_len_err; } int odp_packet_has_l3(odp_packet_t pkt) @@ -48,7 +46,7 @@ int odp_packet_has_l3_error(odp_packet_t pkt) { odp_packet_hdr_t *pkt_hdr = odp_packet_hdr(pkt); - return pkt_hdr->p.error_flags.ip_err; + return pkt_hdr->p.flags.ip_err; } int odp_packet_has_l4(odp_packet_t pkt) @@ -60,7 +58,7 @@ int odp_packet_has_l4_error(odp_packet_t pkt) { odp_packet_hdr_t *pkt_hdr = odp_packet_hdr(pkt); - return pkt_hdr->p.error_flags.tcp_err | pkt_hdr->p.error_flags.udp_err; + return pkt_hdr->p.flags.tcp_err | pkt_hdr->p.flags.udp_err; } int odp_packet_has_eth_bcast(odp_packet_t pkt) @@ -169,14 +167,14 @@ void odp_packet_drop_eligible_set(odp_packet_t pkt, odp_bool_t drop) int8_t odp_packet_shaper_len_adjust(odp_packet_t pkt) { - retflag(pkt, output_flags.shaper_len_adj); + retflag(pkt, flags.shaper_len_adj); } void odp_packet_shaper_len_adjust_set(odp_packet_t pkt, int8_t adj) { odp_packet_hdr_t *pkt_hdr = odp_packet_hdr(pkt); - pkt_hdr->p.output_flags.shaper_len_adj = adj; + pkt_hdr->p.flags.shaper_len_adj = adj; } /* Set Input Flags */ diff --git a/platform/linux-generic/pktio/dpdk.c b/platform/linux-generic/pktio/dpdk.c index 7078be80a..63942cece 100644 --- a/platform/linux-generic/pktio/dpdk.c +++ b/platform/linux-generic/pktio/dpdk.c @@ -380,8 +380,8 @@ static inline int pkt_set_ol_rx(odp_pktin_config_opt_t *pktin_cfg, return -1; pkt_hdr->p.input_flags.l3_chksum_done = 1; - pkt_hdr->p.error_flags.ip_err = 1; - pkt_hdr->p.error_flags.l3_chksum = 1; + pkt_hdr->p.flags.ip_err = 1; + pkt_hdr->p.flags.l3_chksum_err = 1; } } @@ -396,8 +396,8 @@ static inline int pkt_set_ol_rx(odp_pktin_config_opt_t *pktin_cfg, return -1; pkt_hdr->p.input_flags.l4_chksum_done = 1; - pkt_hdr->p.error_flags.udp_err = 1; - pkt_hdr->p.error_flags.l4_chksum = 1; + pkt_hdr->p.flags.udp_err = 1; + pkt_hdr->p.flags.l4_chksum_err = 1; } } else if (pktin_cfg->bit.tcp_chksum && HAS_L4_PROTO(mbuf, RTE_PTYPE_L4_TCP)) { @@ -410,8 +410,8 @@ static inline int pkt_set_ol_rx(odp_pktin_config_opt_t *pktin_cfg, return -1; pkt_hdr->p.input_flags.l4_chksum_done = 1; - pkt_hdr->p.error_flags.tcp_err = 1; - pkt_hdr->p.error_flags.l4_chksum = 1; + pkt_hdr->p.flags.tcp_err = 1; + pkt_hdr->p.flags.l4_chksum_err = 1; } } @@ -572,18 +572,18 @@ static inline void pkt_set_ol_tx(odp_pktout_config_opt_t *pktout_cfg, ipv4_chksum_pkt = OL_TX_CHKSUM_PKT(pktout_cfg->bit.ipv4_chksum, pktout_capa->bit.ipv4_chksum, l3_proto_v4, - pkt_p->output_flags.l3_chksum_set, - pkt_p->output_flags.l3_chksum); + pkt_p->flags.l3_chksum_set, + pkt_p->flags.l3_chksum); udp_chksum_pkt = OL_TX_CHKSUM_PKT(pktout_cfg->bit.udp_chksum, pktout_capa->bit.udp_chksum, (l4_proto == _ODP_IPPROTO_UDP), - pkt_p->output_flags.l4_chksum_set, - pkt_p->output_flags.l4_chksum); + pkt_p->flags.l4_chksum_set, + pkt_p->flags.l4_chksum); tcp_chksum_pkt = OL_TX_CHKSUM_PKT(pktout_cfg->bit.tcp_chksum, pktout_capa->bit.tcp_chksum, (l4_proto == _ODP_IPPROTO_TCP), - pkt_p->output_flags.l4_chksum_set, - pkt_p->output_flags.l4_chksum); + pkt_p->flags.l4_chksum_set, + pkt_p->flags.l4_chksum); if (!ipv4_chksum_pkt && !udp_chksum_pkt && !tcp_chksum_pkt) return;