From mboxrd@z Thu Jan  1 00:00:00 1970
Return-Path: <dev-bounces@dpdk.org>
Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124])
	by inbox.dpdk.org (Postfix) with ESMTP id C58AEA0548;
	Sun, 25 Apr 2021 17:57:51 +0200 (CEST)
Received: from [217.70.189.124] (localhost [127.0.0.1])
	by mails.dpdk.org (Postfix) with ESMTP id E41C941171;
	Sun, 25 Apr 2021 17:57:48 +0200 (CEST)
Received: from NAM12-BN8-obe.outbound.protection.outlook.com
 (mail-bn8nam12on2076.outbound.protection.outlook.com [40.107.237.76])
 by mails.dpdk.org (Postfix) with ESMTP id 7656F41160;
 Sun, 25 Apr 2021 17:57:45 +0200 (CEST)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;
 b=N6df0m1bqwJbw1T/KxqbhhQHYPzKLlSLR/VcwaQTr4qf4WydMTBENwnW78w4Q3BO7aqrTxMagXqmxG5B5EL8r8UMY/4ystQru8MrBMbw2Sw8L6IGtr4umZGRju9ikttAER36Nw/Hk4QtqSXzDnGzftHTLi14TjQGn0EQ35ECiMg+WTTd3ZTs63PZpznpZiZnYQppuTsYoP/NW+ciUVzx3gNPcOXgATDz2+n038OgEgx05VHlWcJlFlc2ctt1XkYKXnrnu4wWZpecybVYPy987lVarVPQGtIDyKEuBWl5LGCcvzGitDw4eNltLUxG2BI+c/buPigQ3vL9+zoMb1/b6Q==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; 
 s=arcselector9901;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=v0P136JGVoi6cFQ1c89hr1E7e/OAooFKrFNP44vH/Fw=;
 b=V/wbR6ROtJRxcv1jDvlDIAnyzRFdNMwreYsG/Ef/vbS5WZpvftQ6N/ushnbB6AZygJgo2stSCDZrFmaPavIVlNgBQMckP4OcY7Vk9jszOgSDz017e38viRF82TLabbMQzFmll2pqLBeWluq44C91SdCbOoTpzAv6++0pTQBiv1iA9+p9H7a8YKjDCV1mXRCL27FbUj8LYDqLpbwstdflefFkI86Se8Ohk4MoVHZSIJq++92bkSKQMVWcKncFrk/QrZymkt0N6pJH3z7LYP4ZYZTnIsPUpLHvrqxrGkS0baG20MVxBeabbLxNKGzFxA29iJaD8g/ZXDOqhHp65KnYpA==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass (sender ip is
 216.228.112.34) smtp.rcpttodomain=dpdk.org smtp.mailfrom=nvidia.com;
 dmarc=pass (p=none sp=none pct=100) action=none header.from=nvidia.com;
 dkim=none (message not signed); arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com;
 s=selector2;
 h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;
 bh=v0P136JGVoi6cFQ1c89hr1E7e/OAooFKrFNP44vH/Fw=;
 b=KXOblr0FTfpzOGxhpFgIktaldZzWQZnTsT88SGwryu25JtYzeAz7ytmRLkXcLxc+qM6uCK+irnAMbEQ1jdaJc8NOUZ7ZMjz9iTZnbiU+33K1TL7p2Lvkc6+gD/Mywr3S0/aqKnu6Dzv1qiVvB6v10+7bmvEoPw9/DyOJhF423AueCKEOK1hYX73EDW3J4W6qO63ZJVVzV11PalGADEtyfN4tSr88ehR7nwf8pD9wV+zWmeul7U8SsW7F7fDso7VUC87drtRf0DDTKeSO/mo0xIzZpLDHywWRJJwAuYHfikBFZVug96VZ4ia4OECwwrgWMOTlJf+jnNS7EVBeBw25Qg==
Received: from DM5PR11CA0005.namprd11.prod.outlook.com (2603:10b6:3:115::15)
 by BL1PR12MB5333.namprd12.prod.outlook.com (2603:10b6:208:31f::11) with
 Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4065.23; Sun, 25 Apr
 2021 15:57:44 +0000
Received: from DM6NAM11FT053.eop-nam11.prod.protection.outlook.com
 (2603:10b6:3:115:cafe::c8) by DM5PR11CA0005.outlook.office365.com
 (2603:10b6:3:115::15) with Microsoft SMTP Server (version=TLS1_2,
 cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4065.20 via Frontend
 Transport; Sun, 25 Apr 2021 15:57:44 +0000
X-MS-Exchange-Authentication-Results: spf=pass (sender IP is 216.228.112.34)
 smtp.mailfrom=nvidia.com; dpdk.org; dkim=none (message not signed)
 header.d=none;dpdk.org; dmarc=pass action=none header.from=nvidia.com;
Received-SPF: Pass (protection.outlook.com: domain of nvidia.com designates
 216.228.112.34 as permitted sender) receiver=protection.outlook.com;
 client-ip=216.228.112.34; helo=mail.nvidia.com;
Received: from mail.nvidia.com (216.228.112.34) by
 DM6NAM11FT053.mail.protection.outlook.com (10.13.173.74) with Microsoft SMTP
 Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id
 15.20.4065.21 via Frontend Transport; Sun, 25 Apr 2021 15:57:44 +0000
Received: from nvidia.com (172.20.145.6) by HQMAIL107.nvidia.com
 (172.20.187.13) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Sun, 25 Apr
 2021 15:57:41 +0000
From: Gregory Etelson <getelson@nvidia.com>
To: <dev@dpdk.org>
CC: <getelson@nvidia.com>, <matan@nvidia.com>, <rasland@nvidia.com>,
 <ferruh.yigit@intel.com>, <stable@dpdk.org>, Viacheslav Ovsiienko
 <viacheslavo@nvidia.com>, Xiaoyun Li <xiaoyun.li@intel.com>
Date: Sun, 25 Apr 2021 18:57:22 +0300
Message-ID: <20210425155722.32477-2-getelson@nvidia.com>
X-Mailer: git-send-email 2.31.1
In-Reply-To: <20210425155722.32477-1-getelson@nvidia.com>
References: <20210419130204.24348-1-getelson@nvidia.com>
 <20210425155722.32477-1-getelson@nvidia.com>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Content-Type: text/plain
X-Originating-IP: [172.20.145.6]
X-ClientProxiedBy: HQMAIL105.nvidia.com (172.20.187.12) To
 HQMAIL107.nvidia.com (172.20.187.13)
X-EOPAttributedMessage: 0
X-MS-PublicTrafficType: Email
X-MS-Office365-Filtering-Correlation-Id: b513d6a1-b352-4110-c2b2-08d90802dd15
X-MS-TrafficTypeDiagnostic: BL1PR12MB5333:
X-Microsoft-Antispam-PRVS: <BL1PR12MB53338C4DB98CE3D01456FB10A5439@BL1PR12MB5333.namprd12.prod.outlook.com>
X-MS-Exchange-Transport-Forked: True
X-MS-Oob-TLC-OOBClassifiers: OLM:7691;
X-MS-Exchange-SenderADCheck: 1
X-Microsoft-Antispam: BCL:0;
X-Microsoft-Antispam-Message-Info: jHnRORB8NjSRbHLCSzcK1fggdM3tVdmEV4bb/UuZTH3GjeIEnyiXwBjBnd18F/TTRmArWw2t9kzp6VLSbfUYjEBcGghe/AgCIauNxPhzZ430Qc0+dyriGgcxqm+nSInX4/MzA+eKDzrxUDTJNEfITdeMCo1rLLIeLUR+7w6qwbHy0CD8H34oRNmuaJIzVTly+vIX/mgup6uYvlLDSqQGk5MHJiQSWeX0TwfqOQkjxx3acCxOxiiUuCwc121UWW7jMh31yt86pkjwIk5ub1z9xwuICQzNLzHHxfZdJM7GvNPy31/YPrS7/hH700BKNO9BgT/8XFtCgTE9Ds2BVwX941cfHGLlzNiYK3AYj22Z6E+0sZ1n6xYu5y8CVfd6R2irI50vzbd4iIjRIrvCEBYMJB8CiEQrN+UXRhBgg9uYzX7ydIKQMrFl0cKtPivbl1198zTA3ZkeJdR3HHAj6pHQ8Yuln5id0vUB+EPb9/9RGmGIH9fRprZKCN/JlpLoqwRFFerxgp52DdRAiLEZ/t0ytVaom973TOt3sy+qNYqSveG1iviWst3Dm94oHldZCxdqPLuJyTfleaZNqSya+NiwwcD672To9GxQ2juqkcpxlgKEDCa7aPN6XaI9ylkJw1QujeLCVVU2LHehn2gr2lQREA==
X-Forefront-Antispam-Report: CIP:216.228.112.34; CTRY:US; LANG:en; SCL:1; SRV:;
 IPV:NLI; SFV:NSPM; H:mail.nvidia.com; PTR:schybrid03.nvidia.com; CAT:NONE;
 SFS:(4636009)(376002)(136003)(346002)(396003)(39860400002)(36840700001)(46966006)(2906002)(8936002)(356005)(7636003)(6916009)(70206006)(36756003)(8676002)(82740400003)(55016002)(36860700001)(36906005)(6666004)(82310400003)(186003)(4326008)(1076003)(16526019)(336012)(54906003)(2616005)(26005)(7696005)(5660300002)(83380400001)(426003)(6286002)(86362001)(478600001)(47076005)(316002)(70586007);
 DIR:OUT; SFP:1101; 
X-OriginatorOrg: Nvidia.com
X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Apr 2021 15:57:44.0614 (UTC)
X-MS-Exchange-CrossTenant-Network-Message-Id: b513d6a1-b352-4110-c2b2-08d90802dd15
X-MS-Exchange-CrossTenant-Id: 43083d15-7273-40c1-b7db-39efd9ccc17a
X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a; Ip=[216.228.112.34];
 Helo=[mail.nvidia.com]
X-MS-Exchange-CrossTenant-AuthSource: DM6NAM11FT053.eop-nam11.prod.protection.outlook.com
X-MS-Exchange-CrossTenant-AuthAs: Anonymous
X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem
X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL1PR12MB5333
Subject: [dpdk-dev] [PATCH v2 2/2] app/testpmd: fix tunnel offload private
 items location
X-BeenThere: dev@dpdk.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: DPDK patches and discussions <dev.dpdk.org>
List-Unsubscribe: <https://mails.dpdk.org/options/dev>,
 <mailto:dev-request@dpdk.org?subject=unsubscribe>
List-Archive: <http://mails.dpdk.org/archives/dev/>
List-Post: <mailto:dev@dpdk.org>
List-Help: <mailto:dev-request@dpdk.org?subject=help>
List-Subscribe: <https://mails.dpdk.org/listinfo/dev>,
 <mailto:dev-request@dpdk.org?subject=subscribe>
Errors-To: dev-bounces@dpdk.org
Sender: "dev" <dev-bounces@dpdk.org>

Tunnel offload API requires application to query PMD for specific flow
items and actions. Application uses these PMD specific elements to
build flow rules according to the tunnel offload model.
The model does not restrict private elements location in a flow rule,
but the current MLX5 PMD implementation expected that tunnel offload
rule will begin with PMD specific elements.
The patch places tunnel offload private PMD flow elements between
general RTE flow elements in a rule.

Cc: stable@dpdk.org
Fixes: 1b9f274623b8 ("app/testpmd: add commands for tunnel offload")

Signed-off-by: Gregory Etelson <getelson@nvidia.com>
Acked-by: Viacheslav Ovsiienko <viacheslavo@nvidia.com>
---
 app/test-pmd/config.c | 14 ++++++++------
 1 file changed, 8 insertions(+), 6 deletions(-)

diff --git a/app/test-pmd/config.c b/app/test-pmd/config.c
index 40b2b29725..1520b8193f 100644
--- a/app/test-pmd/config.c
+++ b/app/test-pmd/config.c
@@ -1664,7 +1664,7 @@ port_flow_tunnel_offload_cmd_prep(portid_t port_id,
 		     aptr->type != RTE_FLOW_ACTION_TYPE_END;
 		     aptr++, num_actions++);
 		pft->actions = malloc(
-				(num_actions +  pft->num_pmd_actions) *
+				(num_actions +  pft->num_pmd_actions + 1) *
 				sizeof(actions[0]));
 		if (!pft->actions) {
 			rte_flow_tunnel_action_decap_release(
@@ -1672,9 +1672,10 @@ port_flow_tunnel_offload_cmd_prep(portid_t port_id,
 					pft->num_pmd_actions, &error);
 			return NULL;
 		}
-		rte_memcpy(pft->actions, pft->pmd_actions,
+		pft->actions[0].type = RTE_FLOW_ACTION_TYPE_VOID;
+		rte_memcpy(pft->actions + 1, pft->pmd_actions,
 			   pft->num_pmd_actions * sizeof(actions[0]));
-		rte_memcpy(pft->actions + pft->num_pmd_actions, actions,
+		rte_memcpy(pft->actions + pft->num_pmd_actions + 1, actions,
 			   num_actions * sizeof(actions[0]));
 	}
 	if (tunnel_ops->items) {
@@ -1692,7 +1693,7 @@ port_flow_tunnel_offload_cmd_prep(portid_t port_id,
 		for (iptr = pattern, num_items = 1;
 		     iptr->type != RTE_FLOW_ITEM_TYPE_END;
 		     iptr++, num_items++);
-		pft->items = malloc((num_items + pft->num_pmd_items) *
+		pft->items = malloc((num_items + pft->num_pmd_items + 1) *
 				    sizeof(pattern[0]));
 		if (!pft->items) {
 			rte_flow_tunnel_item_release(
@@ -1700,9 +1701,10 @@ port_flow_tunnel_offload_cmd_prep(portid_t port_id,
 					pft->num_pmd_items, &error);
 			return NULL;
 		}
-		rte_memcpy(pft->items, pft->pmd_items,
+		pft->items[0].type = RTE_FLOW_ITEM_TYPE_VOID;
+		rte_memcpy(pft->items + 1, pft->pmd_items,
 			   pft->num_pmd_items * sizeof(pattern[0]));
-		rte_memcpy(pft->items + pft->num_pmd_items, pattern,
+		rte_memcpy(pft->items + pft->num_pmd_items + 1, pattern,
 			   num_items * sizeof(pattern[0]));
 	}
 
-- 
2.31.1