From patchwork Mon Nov 7 08:45:06 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Wang, YuanX" X-Patchwork-Id: 119513 X-Patchwork-Delegate: andrew.rybchenko@oktetlabs.ru Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 9193AA0093; Mon, 7 Nov 2022 09:47:11 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 76CDC40156; Mon, 7 Nov 2022 09:47:11 +0100 (CET) Received: from mga11.intel.com (mga11.intel.com [192.55.52.93]) by mails.dpdk.org (Postfix) with ESMTP id 361F140151 for ; Mon, 7 Nov 2022 09:47:09 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=intel.com; i=@intel.com; q=dns/txt; s=Intel; t=1667810829; x=1699346829; h=from:to:cc:subject:date:message-id:in-reply-to: references:mime-version:content-transfer-encoding; bh=8Xf2bZgcco23C3kyOBU9CkOuU2B+C6MDyPJHVb4cbks=; b=L8SzIuToIpyr2yaWRZkxlGnfGqzcbuuTJp3eFVww0DJVJ+ajREuC2Wyt nYK9ScDuVEL+QNTY9egy7LA3ii6ZQXrEjAkAzPNEwIdj/X6OinoJ0w5EI 2zi7JX8kZVigxGPMsbmt4mtFwX/x8xd2zbipAu/Atw1F2QYmnWjd2pUUN I4De1sMUhf25nkDPJra2z16+cIgOQ1uFPow7uOdvnFhkL6mUn7+4PJPwu uCIVY1dvMRUzlM1A4WYSdlaFTR63bLx76EOGwPjLYJOA8aguNa4N9bSdd jH1c21JecLPsD+cjh0OSZn3Z+n22ZvIWeHbDCJqqlMZLjyHZFYH4OcS1f w==; X-IronPort-AV: E=McAfee;i="6500,9779,10523"; a="307984340" X-IronPort-AV: E=Sophos;i="5.96,143,1665471600"; d="scan'208";a="307984340" Received: from orsmga006.jf.intel.com ([10.7.209.51]) by fmsmga102.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 07 Nov 2022 00:47:08 -0800 X-IronPort-AV: E=McAfee;i="6500,9779,10523"; a="613788843" X-IronPort-AV: E=Sophos;i="5.96,143,1665471600"; d="scan'208";a="613788843" Received: from unknown (HELO localhost.localdomain) ([10.239.252.55]) by orsmga006-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 07 Nov 2022 00:47:05 -0800 From: Yuan Wang To: andrew.rybchenko@oktetlabs.ru, aman.deep.singh@intel.com, yuying.zhang@intel.com Cc: xuan.ding@intel.com, yaqi.tang@intel.com, dev@dpdk.org, Yuan Wang Subject: [PATCH v3] app/testpmd: fix protocol header display for Rx buffer split Date: Mon, 7 Nov 2022 16:45:06 +0800 Message-Id: <20221107084506.1896422-1-yuanx.wang@intel.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20221017174054.800259-1-yuanx.wang@intel.com> References: <20221017174054.800259-1-yuanx.wang@intel.com> MIME-Version: 1.0 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org The "show config rxhdrs" cmd displays the configured protocol headers that are used for protocol-based buffer split. However, it shows inner-ipv6 as inner-ipv4. This patch fixes that by adjusting the order of condition judgments. This patch also uses RTE_PTYPE_*_MASK as masks. Fixes: 52e2e7edcf48 ("app/testpmd: add protocol-based buffer split") Signed-off-by: Yuan Wang Tested-by: Yaqi Tang --- v3: - use RTE_PTYPE_*_MASK as masks. - refactor to use switch statement. v2: - add fixline. --- app/test-pmd/config.c | 89 +++++++++++++++++++++---------------------- 1 file changed, 44 insertions(+), 45 deletions(-) diff --git a/app/test-pmd/config.c b/app/test-pmd/config.c index e8a1b77c2a..8638dfed11 100644 --- a/app/test-pmd/config.c +++ b/app/test-pmd/config.c @@ -5070,73 +5070,72 @@ show_rx_pkt_segments(void) static const char *get_ptype_str(uint32_t ptype) { - if ((ptype & (RTE_PTYPE_L3_IPV4_EXT_UNKNOWN | RTE_PTYPE_L4_TCP)) == - (RTE_PTYPE_L3_IPV4_EXT_UNKNOWN | RTE_PTYPE_L4_TCP)) + switch (ptype & (RTE_PTYPE_L3_MASK | RTE_PTYPE_L4_MASK)) { + case RTE_PTYPE_L3_IPV4_EXT_UNKNOWN | RTE_PTYPE_L4_TCP: return "ipv4-tcp"; - else if ((ptype & (RTE_PTYPE_L3_IPV4_EXT_UNKNOWN | RTE_PTYPE_L4_UDP)) == - (RTE_PTYPE_L3_IPV4_EXT_UNKNOWN | RTE_PTYPE_L4_UDP)) + case RTE_PTYPE_L3_IPV4_EXT_UNKNOWN | RTE_PTYPE_L4_UDP: return "ipv4-udp"; - else if ((ptype & (RTE_PTYPE_L3_IPV4_EXT_UNKNOWN | RTE_PTYPE_L4_SCTP)) == - (RTE_PTYPE_L3_IPV4_EXT_UNKNOWN | RTE_PTYPE_L4_SCTP)) + case RTE_PTYPE_L3_IPV4_EXT_UNKNOWN | RTE_PTYPE_L4_SCTP: return "ipv4-sctp"; - else if ((ptype & (RTE_PTYPE_L3_IPV6_EXT_UNKNOWN | RTE_PTYPE_L4_TCP)) == - (RTE_PTYPE_L3_IPV6_EXT_UNKNOWN | RTE_PTYPE_L4_TCP)) + case RTE_PTYPE_L3_IPV6_EXT_UNKNOWN | RTE_PTYPE_L4_TCP: return "ipv6-tcp"; - else if ((ptype & (RTE_PTYPE_L3_IPV6_EXT_UNKNOWN | RTE_PTYPE_L4_UDP)) == - (RTE_PTYPE_L3_IPV6_EXT_UNKNOWN | RTE_PTYPE_L4_UDP)) + case RTE_PTYPE_L3_IPV6_EXT_UNKNOWN | RTE_PTYPE_L4_UDP: return "ipv6-udp"; - else if ((ptype & (RTE_PTYPE_L3_IPV6_EXT_UNKNOWN | RTE_PTYPE_L4_SCTP)) == - (RTE_PTYPE_L3_IPV6_EXT_UNKNOWN | RTE_PTYPE_L4_SCTP)) + case RTE_PTYPE_L3_IPV6_EXT_UNKNOWN | RTE_PTYPE_L4_SCTP: return "ipv6-sctp"; - else if ((ptype & RTE_PTYPE_L4_TCP) == RTE_PTYPE_L4_TCP) + case RTE_PTYPE_L4_TCP: return "tcp"; - else if ((ptype & RTE_PTYPE_L4_UDP) == RTE_PTYPE_L4_UDP) + case RTE_PTYPE_L4_UDP: return "udp"; - else if ((ptype & RTE_PTYPE_L4_SCTP) == RTE_PTYPE_L4_SCTP) + case RTE_PTYPE_L4_SCTP: return "sctp"; - else if ((ptype & RTE_PTYPE_L3_IPV4_EXT_UNKNOWN) == RTE_PTYPE_L3_IPV4_EXT_UNKNOWN) + case RTE_PTYPE_L3_IPV4_EXT_UNKNOWN: return "ipv4"; - else if ((ptype & RTE_PTYPE_L3_IPV6_EXT_UNKNOWN) == RTE_PTYPE_L3_IPV6_EXT_UNKNOWN) + case RTE_PTYPE_L3_IPV6_EXT_UNKNOWN: return "ipv6"; - else if ((ptype & RTE_PTYPE_L2_ETHER) == RTE_PTYPE_L2_ETHER) + } + + switch (ptype & RTE_PTYPE_L2_MASK) { + case RTE_PTYPE_L2_ETHER: return "eth"; + } - else if ((ptype & (RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN | RTE_PTYPE_INNER_L4_TCP)) == - (RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN | RTE_PTYPE_INNER_L4_TCP)) - return "inner-ipv4-tcp"; - else if ((ptype & (RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN | RTE_PTYPE_INNER_L4_UDP)) == - (RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN | RTE_PTYPE_INNER_L4_UDP)) - return "inner-ipv4-udp"; - else if ((ptype & (RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN | RTE_PTYPE_INNER_L4_SCTP)) == - (RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN | RTE_PTYPE_INNER_L4_SCTP)) - return "inner-ipv4-sctp"; - else if ((ptype & (RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN | RTE_PTYPE_INNER_L4_TCP)) == - (RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN | RTE_PTYPE_INNER_L4_TCP)) + switch (ptype & (RTE_PTYPE_INNER_L3_MASK | RTE_PTYPE_INNER_L4_MASK)) { + case RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN | RTE_PTYPE_INNER_L4_TCP: return "inner-ipv6-tcp"; - else if ((ptype & (RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN | RTE_PTYPE_INNER_L4_UDP)) == - (RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN | RTE_PTYPE_INNER_L4_UDP)) + case RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN | RTE_PTYPE_INNER_L4_UDP: return "inner-ipv6-udp"; - else if ((ptype & (RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN | RTE_PTYPE_INNER_L4_SCTP)) == - (RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN | RTE_PTYPE_INNER_L4_SCTP)) + case RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN | RTE_PTYPE_INNER_L4_SCTP: return "inner-ipv6-sctp"; - else if ((ptype & RTE_PTYPE_INNER_L4_TCP) == RTE_PTYPE_INNER_L4_TCP) + case RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN | RTE_PTYPE_INNER_L4_TCP: + return "inner-ipv4-tcp"; + case RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN | RTE_PTYPE_INNER_L4_UDP: + return "inner-ipv4-udp"; + case RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN | RTE_PTYPE_INNER_L4_SCTP: + return "inner-ipv4-sctp"; + case RTE_PTYPE_INNER_L4_TCP: return "inner-tcp"; - else if ((ptype & RTE_PTYPE_INNER_L4_UDP) == RTE_PTYPE_INNER_L4_UDP) + case RTE_PTYPE_INNER_L4_UDP: return "inner-udp"; - else if ((ptype & RTE_PTYPE_INNER_L4_SCTP) == RTE_PTYPE_INNER_L4_SCTP) + case RTE_PTYPE_INNER_L4_SCTP: return "inner-sctp"; - else if ((ptype & RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN) == - RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN) - return "inner-ipv4"; - else if ((ptype & RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN) == - RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN) + case RTE_PTYPE_INNER_L3_IPV6_EXT_UNKNOWN: return "inner-ipv6"; - else if ((ptype & RTE_PTYPE_INNER_L2_ETHER) == RTE_PTYPE_INNER_L2_ETHER) + case RTE_PTYPE_INNER_L3_IPV4_EXT_UNKNOWN: + return "inner-ipv4"; + } + + switch (ptype & RTE_PTYPE_INNER_L2_MASK) { + case RTE_PTYPE_INNER_L2_ETHER: return "inner-eth"; - else if ((ptype & RTE_PTYPE_TUNNEL_GRENAT) == RTE_PTYPE_TUNNEL_GRENAT) + } + + switch (ptype & RTE_PTYPE_TUNNEL_MASK) { + case RTE_PTYPE_TUNNEL_GRENAT: return "grenat"; - else - return "unsupported"; + } + + return "unsupported"; } void