From patchwork Thu Jul 16 12:14:55 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Raslan Darawsheh X-Patchwork-Id: 74225 X-Patchwork-Delegate: rasland@nvidia.com Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from dpdk.org (dpdk.org [92.243.14.124]) by inbox.dpdk.org (Postfix) with ESMTP id 4E517A0549; Thu, 16 Jul 2020 14:15:22 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 23FDB1C1AE; Thu, 16 Jul 2020 14:15:22 +0200 (CEST) Received: from EUR05-VI1-obe.outbound.protection.outlook.com (unknown [40.107.21.69]) by dpdk.org (Postfix) with ESMTP id BF4301C113; Thu, 16 Jul 2020 14:15:20 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=KnRGaihiMWvCfAjTpq4lxA+FnR0BQ562/ADCGCVp0yAI+CMTgidXbWUJqGnSmfhEcqY/s1AO41qvaam6IZL2JMnAJDihZ3T9F7jhPgVnK/GdNsnQekDaYA3QO4uiwOFjo4aMujdKNbl7GJsw6Fxhm7Hd3gWXhWlrU2YGskt9cvMFomCrxScnvsib3rPmQGb1ywYtFths95Q9ZL9U7Ifk3P2/USYJswst4mJw6ZZ+zH0zt6Iu85bxcq+Bn2q3XTFSPny+N28rbVejUhtzfzvX2OpNQ2Ev631oSE+6vkuD1ask+UPyZfhR2HJYfAapJQKc0dYD9xU0KIMZigk0Ljgimg== 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=e9uRcTsTRVPnDMS+Ot9rjn2kHTCSy+KVBbL2goFHiyA=; b=N/bevtTSUfAqgGF20fcn52ZmgmdBFpRxi4Lx9m/8mQ0a3b15VZB6u7k5oFOudoCWMz5yX1RzL6QQZCXguNA/mT5h62LNpd6xYGCrPvZkudkutu6H753fQ+YXt5Nls1aXQqRl4ERJcVj9SIG3MIDFBg2UCJnEqxq9feFZt3bckGtkCBhzJznHRu+HO48B1nkOM6JhLtZOfDM0s1kY6oTbXZxfHFPAFycuuCKwMNWc/P25TxZXx5+75xmmrggkhkR0bN/2Yq5BazQLXuwivo0usCwicVCC2d+50ruSP4MBahmeoIejYgphvCBBtWqkZk7DLi0TpHWIoyocv7+kSvrj9A== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=mellanox.com; dmarc=pass action=none header.from=mellanox.com; dkim=pass header.d=mellanox.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Mellanox.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=e9uRcTsTRVPnDMS+Ot9rjn2kHTCSy+KVBbL2goFHiyA=; b=uBmzYRmDm5p802Oa1n87RPgygrsBRxeCIslHx8iTAjaiELvHD+KCEiUvMWNOJO0Qp/pvBpV9n0lKmcCzZiRYHqUw6SXm7bqWjokPk71acusp2+HbXBrrHEG+uzOeKlJWY/lkWAaaKhB31nCsEb9LD1zvjwh+xyOGOEukQvF3HfY= Authentication-Results: dpdk.org; dkim=none (message not signed) header.d=none;dpdk.org; dmarc=none action=none header.from=mellanox.com; Received: from AM0PR05MB6707.eurprd05.prod.outlook.com (2603:10a6:20b:15b::17) by AM0PR05MB4403.eurprd05.prod.outlook.com (2603:10a6:208:65::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.3174.21; Thu, 16 Jul 2020 12:15:02 +0000 Received: from AM0PR05MB6707.eurprd05.prod.outlook.com ([fe80::ecd3:6008:3784:4012]) by AM0PR05MB6707.eurprd05.prod.outlook.com ([fe80::ecd3:6008:3784:4012%5]) with mapi id 15.20.3174.026; Thu, 16 Jul 2020 12:15:02 +0000 From: Raslan Darawsheh To: dev@dpdk.org Cc: dekelp@mellanox.com, stable@dpdk.org Date: Thu, 16 Jul 2020 15:14:55 +0300 Message-Id: <1594901695-29973-1-git-send-email-rasland@mellanox.com> X-Mailer: git-send-email 2.7.4 X-ClientProxiedBy: AM0PR01CA0117.eurprd01.prod.exchangelabs.com (2603:10a6:208:168::22) To AM0PR05MB6707.eurprd05.prod.outlook.com (2603:10a6:20b:15b::17) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from mellanox.com (37.142.13.130) by AM0PR01CA0117.eurprd01.prod.exchangelabs.com (2603:10a6:208:168::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256) id 15.20.3195.17 via Frontend Transport; Thu, 16 Jul 2020 12:15:01 +0000 X-Mailer: git-send-email 2.7.4 X-Originating-IP: [37.142.13.130] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: e259a3b0-762a-4d93-2f08-08d82981dd84 X-MS-TrafficTypeDiagnostic: AM0PR05MB4403: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:2276; X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 0TsqFWeotS5+anTRnHgQHND0VjoWVrrwVkJPHMVnZU7FUzOEoBlKEwforoqDaaKPP+QI1yvop+mSjuoI5CLeZ812RNegIIow6kWcFBdskdShfCoYQRzocExUYqHmawRhjTM6wtndWkny1jRz9pk2VQXY47EFTSa6G/jN20PHh24i/yl0Vb2NtBgdVEBiBGlpI+6dZyu9Hrh9YbRY+c2dpWMe2hbA7buK7NcLJWbpYuiMtocXs9t72daUiZJC3rpESfUComvO8Mn1mnsxE6J3XyqfVlN1KuW+u3iFlRH3HGDuTdhUCmgk+8vq14BsZGBu8xkCDd9GBebpK3PO8Qhdpg== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AM0PR05MB6707.eurprd05.prod.outlook.com; PTR:; CAT:NONE; SFTY:; SFS:(4636009)(39860400002)(346002)(136003)(396003)(366004)(376002)(2616005)(2906002)(86362001)(55016002)(6916009)(7696005)(52116002)(16526019)(186003)(478600001)(6666004)(26005)(36756003)(8676002)(956004)(8886007)(5660300002)(450100002)(8936002)(316002)(4326008)(83380400001)(66476007)(66556008)(66946007); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData: OpqfCexvkA46Z3JRsOy6o3v/E9T+FHke4R+3IwzHP60e80FhysTt0VCTE47+7par5Cxmr4mvdt232Wznj2mXuwtIEQCdSR/T9z0Ie99XxpV5AqVkcCvWyc5uQrHAQR6VHTSSzS8nMBABwYX4/+fqey4uHkqADgckhy2xPvh0oB2/skPiZbLUxTqfGSlQahXlPOiSyqMfjtChlOwirl1RPRbF8PdR3gUwofeaDXxSMjdp1EbvU7wS5Kod/vQMdKkNNRSIc03ZApaOWs0HgJCt/HZffiaOfCLKtAqrnc4CWNNl6mU+EIHfr+ci96VMSzIE+fAv/K+boe8lBmI8MjTBs3blGQVey13oxxyy1/rNbuntRhltu9SfMMZmp9jDfLuQF3KFFPcRp26mtE0JNquXM+Lj149BWhGDizl4DwXmTYDeoe7aZ7KpdfQ7mokAIbRNXDUWQd5bj7L8JfmDh6gyAdVtOpmT552VmcT78cXz4rhmO50D6XlvVw3W/suoAr7+ X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-Network-Message-Id: e259a3b0-762a-4d93-2f08-08d82981dd84 X-MS-Exchange-CrossTenant-AuthSource: AM0PR05MB6707.eurprd05.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Jul 2020 12:15:01.8923 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: gkkjRerSpXGV/WoTdwqovWlAxzHuLW0AVzbJ0muaLCTLJ7kWF1DJQjLbYI0MKyara4ePOwd/TRNa0yPjABcU9A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR05MB4403 Subject: [dpdk-dev] [PATCH] net/mlx5: fix rte flow items size calculation X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" flow_dv_get_item_len returns the actual header size of an rte_flow item. Changing any of the structs for rte_flow items by adding or removing some extra fields will break this function. This fixes the behavior by retrning the actual header size of each item. Fixes: 34d41b7aa3bf ("net/mlx5: add VXLAN encap action to Direct Verbs") Cc: dekelp@mellanox.com Cc: stable@dpdk.org Signed-off-by: Raslan Darawsheh Acked-by: Viacheslav Ovsiienko --- drivers/net/mlx5/mlx5_flow_dv.c | 31 ++++++++++++++----------------- 1 file changed, 14 insertions(+), 17 deletions(-) diff --git a/drivers/net/mlx5/mlx5_flow_dv.c b/drivers/net/mlx5/mlx5_flow_dv.c index 8b5b683..6f61cf1 100644 --- a/drivers/net/mlx5/mlx5_flow_dv.c +++ b/drivers/net/mlx5/mlx5_flow_dv.c @@ -29,6 +29,7 @@ #include #include #include +#include #include #include @@ -2869,7 +2870,7 @@ flow_dv_push_vlan_action_resource_register return 0; } /** - * Get the size of specific rte_flow_item_type + * Get the size of specific rte_flow_item_type hdr size * * @param[in] item_type * Tested rte_flow_item_type. @@ -2878,43 +2879,39 @@ flow_dv_push_vlan_action_resource_register * sizeof struct item_type, 0 if void or irrelevant. */ static size_t -flow_dv_get_item_len(const enum rte_flow_item_type item_type) +flow_dv_get_item_hdr_len(const enum rte_flow_item_type item_type) { size_t retval; switch (item_type) { case RTE_FLOW_ITEM_TYPE_ETH: - retval = sizeof(struct rte_flow_item_eth); + retval = sizeof(struct rte_ether_hdr); break; case RTE_FLOW_ITEM_TYPE_VLAN: - retval = sizeof(struct rte_flow_item_vlan); + retval = sizeof(struct rte_vlan_hdr); break; case RTE_FLOW_ITEM_TYPE_IPV4: - retval = sizeof(struct rte_flow_item_ipv4); + retval = sizeof(struct rte_ipv4_hdr); break; case RTE_FLOW_ITEM_TYPE_IPV6: - retval = sizeof(struct rte_flow_item_ipv6); + retval = sizeof(struct rte_ipv6_hdr); break; case RTE_FLOW_ITEM_TYPE_UDP: - retval = sizeof(struct rte_flow_item_udp); + retval = sizeof(struct rte_udp_hdr); break; case RTE_FLOW_ITEM_TYPE_TCP: - retval = sizeof(struct rte_flow_item_tcp); + retval = sizeof(struct rte_tcp_hdr); break; case RTE_FLOW_ITEM_TYPE_VXLAN: - retval = sizeof(struct rte_flow_item_vxlan); + case RTE_FLOW_ITEM_TYPE_VXLAN_GPE: + retval = sizeof(struct rte_vxlan_hdr); break; case RTE_FLOW_ITEM_TYPE_GRE: - retval = sizeof(struct rte_flow_item_gre); - break; case RTE_FLOW_ITEM_TYPE_NVGRE: - retval = sizeof(struct rte_flow_item_nvgre); - break; - case RTE_FLOW_ITEM_TYPE_VXLAN_GPE: - retval = sizeof(struct rte_flow_item_vxlan_gpe); + retval = sizeof(struct rte_gre_hdr); break; case RTE_FLOW_ITEM_TYPE_MPLS: - retval = sizeof(struct rte_flow_item_mpls); + retval = sizeof(struct rte_mpls_hdr); break; case RTE_FLOW_ITEM_TYPE_VOID: /* Fall through. */ default: @@ -2967,7 +2964,7 @@ flow_dv_convert_encap_data(const struct rte_flow_item *items, uint8_t *buf, RTE_FLOW_ERROR_TYPE_ACTION, NULL, "invalid empty data"); for (; items->type != RTE_FLOW_ITEM_TYPE_END; items++) { - len = flow_dv_get_item_len(items->type); + len = flow_dv_get_item_hdr_len(items->type); if (len + temp_size > MLX5_ENCAP_MAX_LEN) return rte_flow_error_set(error, EINVAL, RTE_FLOW_ERROR_TYPE_ACTION,