From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR01-DB5-obe.outbound.protection.outlook.com (mail-db5eur01on0083.outbound.protection.outlook.com [104.47.2.83]) by dpdk.org (Postfix) with ESMTP id 162178E7C for ; Tue, 5 Jun 2018 02:13:46 +0200 (CEST) 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=0lJj9WfV689nVRHCxGO1TuC/n//OnZXrNf83vYIRbqs=; b=K89uFav56zWNLmSeOI4U0eK/+4vr0UxZCtLcZO4VA3/IxWYJmSQVa53y8mn4TZaLoM9ibRQN3/G6bTFJSaF+VVRAth5rQs+R9WbHKYpJTuTsRxYF5Mq9f7Jz5kLA0Y31UaYNPZlQhsr5a0I+hD5MDUoyrN0ZehMaJJ31wKYi2No= Received: from mellanox.com (209.116.155.178) by AM5PR0501MB2036.eurprd05.prod.outlook.com (2603:10a6:203:1a::22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.820.11; Tue, 5 Jun 2018 00:13:43 +0000 From: Yongseok Koh To: yliu@fridaylinux.org Cc: stable@dpdk.org, shahafs@mellanox.com, adrien.mazarguil@6wind.com, nelio.laranjeiro@6wind.com Date: Mon, 4 Jun 2018 17:11:19 -0700 Message-Id: <20180605001129.13184-58-yskoh@mellanox.com> X-Mailer: git-send-email 2.11.0 In-Reply-To: <20180605001129.13184-1-yskoh@mellanox.com> References: <20180605001129.13184-1-yskoh@mellanox.com> MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [209.116.155.178] X-ClientProxiedBy: CO1PR15CA0060.namprd15.prod.outlook.com (2603:10b6:101:1f::28) To AM5PR0501MB2036.eurprd05.prod.outlook.com (2603:10a6:203:1a::22) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(48565401081)(5600026)(4534165)(4627221)(201703031133081)(201702281549075)(2017052603328)(7153060)(7193020); SRVR:AM5PR0501MB2036; X-Microsoft-Exchange-Diagnostics: 1; AM5PR0501MB2036; 3:8zIc65jz6BpV0nveI73bwkGq6uLpsF1ZFy44GaD1dtucJhmnycpMWUZzkCBC+XOxng4ZiQyPzW5qhshpTRqhTCrqm4wTA0do0jBRqB/y7sN9bTuW2GPvDPasEO2RjMB54WQPILSoOep4PBpqFA7jHuqtiVgQbHQsHhVXE8Q/LkXPVtadwTNeLDxfnXUF8w1SerwUyZWorcUV7SzT3t6akLxmQNtcHSqDd0RU7T9Wbvg4d/P7PKzy+NeJkbWrats2; 25:lpSWYLlDD7C+E50jAFlWNvcdb74Z9gNaNpPfgq433sMF/SqXS4m++Rwh20c812ModNzSLpZ0Er3hxxtmKvUqtu+1uqypftFKHX1dIQsi4JgzmayDBECjxbLbdbQ6aZZJMBfVyAVDfQb1cYEenXE7gbnhF+doDUds5s6KaO7HhMaclj18UNX4H2Crmwhv8X/mkSGzM8MxXoe9weMrLBWbkVY5rdFwDTfZySvE11DjxiEGDSExwiqih4awki3RYk59v/Zskxla4EsPd70+WgGzU+XQ3xm4ehGQYPAd46zO28HxoAUYvrMsT+ktlUtSRb8c6BsY2EM5Y4UfzQyXvGErAQ==; 31:V75KEHEZm0i+TjgLLC2pgZ0xrZS+jV/mhx9k2CChW5yyq7Ub3eI62S0+g01Z9/BKqK0TqOAPqw6rY/3e07Boz+BP2mgcUWjhMVJTsKYydXk+VZMl0rCjR0T4dLZwX9LSKtukGx11AsZ7PGXVSH5asIasJug3156+bE6PHWOWAdhr2kOQlPKlLrYEXRqE6ifHcg5v1LytWmdANVUgwmIEwNQS7cRtTIiqH7NVOqZTTNo= X-MS-TrafficTypeDiagnostic: AM5PR0501MB2036: Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=yskoh@mellanox.com; X-LD-Processed: a652971c-7d2e-4d9b-a6a4-d149256f461b,ExtAddr X-Microsoft-Exchange-Diagnostics: 1; AM5PR0501MB2036; 20:gl7R7LsHDqshTWBCo8f3My9YTUuQk6pbHKk8DqTnopqA3mOAAXI31gF+J4TG0RF0BQisN4VT/RF2FJ4Gyi5591vZvlR5NuCci2dW+b07/ykpfxBMvpv0xEkfKZsOtxbrDylV4TqPJHKQU1GTFyyzb3hQZ5wzwYsFhtzOGBdaqNtbPvWOF/IbHp1Q6AH6fDX+5/pv3AkVHwUomQGlKiYUNXHz0VNgYCtonOLVurMqtyjF2aeSbBmM8xxCbgdWVo5NxnqkOYB40ZVhnuq19d0J5lKqVXkjW5kGmgsqkpbed5E45NeMMGSQCgaR2xXUZo5Z5r9Ghko70GnZGLkRXDqsKiMkG+X+pDTZyLPV/FfoNIQNCnI/8srtLM12++uZZOFeipMqm4+at611ZSHkFo4k5y6XcFVBWdtaZl2+Tt82ggb8LJayYzcGZgqC1IcZJxrpR8yFIrRWNCAazZk6i0IOkrRSluSU6g9eZj+vRB8N8vuFumDEj9Tnu8i6BYZLRNpp; 4:GS2PR7brfGXb3rBCweY+lEypkexO1KNCXoyi64iPtABmH9nNa4ylpdzE2xawZCWWNSmCjRE9+lEQldEvhnOFwYFQH1O0GbNCNiWyY58UaFhaSOsoDBHQqvCLkcqT5KTGx2EcblL0yzTzqWLUbJFfNNOVvZ3DmyiFP5e9cnO2RSeZlg6gAiLbpzP3rKFLfQEW7fqkkEnkWxcbv5BXZsU4VA+8/8o/bw1ve8kw/LFds5Jhy7mL7EcuTudFJZQ/VoxtA1P1K1cvURVvRNGc023DVA== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-MS-Exchange-SenderADCheck: 1 X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(8211001083)(6040522)(2401047)(8121501046)(5005006)(10201501046)(3002001)(93006095)(93001095)(3231254)(944501410)(52105095)(6055026)(149027)(150027)(6041310)(20161123562045)(20161123558120)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123564045)(20161123560045)(6072148)(201708071742011)(7699016); SRVR:AM5PR0501MB2036; BCL:0; PCL:0; RULEID:; SRVR:AM5PR0501MB2036; X-Forefront-PRVS: 0694C54398 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(1496009)(39380400002)(366004)(396003)(39860400002)(346002)(376002)(189003)(199004)(478600001)(81156014)(76176011)(51416003)(7696005)(956004)(2361001)(50226002)(305945005)(2616005)(50466002)(47776003)(486006)(97736004)(5660300001)(6666003)(2351001)(106356001)(8936002)(186003)(81166006)(52116002)(6116002)(476003)(6916009)(386003)(446003)(11346002)(59450400001)(66066001)(26005)(3846002)(8676002)(16526019)(1076002)(25786009)(21086003)(86362001)(53936002)(4326008)(2906002)(316002)(55016002)(36756003)(48376002)(105586002)(69596002)(68736007)(7736002)(16586007); DIR:OUT; SFP:1101; SCL:1; SRVR:AM5PR0501MB2036; H:mellanox.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; MX:1; A:1; Received-SPF: None (protection.outlook.com: mellanox.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; AM5PR0501MB2036; 23:kijsWqJGUExalp0n8t5C+HWmWV3ZsbKK2VwsVrV?= =?us-ascii?Q?Q64VlAzuLqPvsx11wbfDuLuRwz5wcRHv5RiY3Y5F35FwvyByT4b2ij/2e5Ol?= =?us-ascii?Q?c7lCZEKPTR/CZrHwfvILW2oFpleHMRditOrLCi9zllU5Xa2yfis0QxvFhP38?= =?us-ascii?Q?q1vx9Aq703KcDHY1QTOQPpjlj5bk9jL0FDuqZZsgmiIrWhSV3l4klE9zlmta?= =?us-ascii?Q?H46fw5q4DM9gsAikNPNoww2uhlo89ahdMakfa1nq73S23uaCb81rmt+I9jYN?= =?us-ascii?Q?tDSl1UXdwJU6z3OzfFqTJXVs3tByIFRSWPqcelYz5M30UdB762Quj07/0ZoA?= =?us-ascii?Q?lRNRisXnvfGNbk3Cc3C3UCdjOQOt8/coKgVLlPWFN0wGlu2INZjRTalfCElh?= =?us-ascii?Q?LhTtlHMGVWiDYH+uJH9kViv6eHNWUZo/TXcCj59adbqzK7SGnuF/GZQ5Oa7k?= =?us-ascii?Q?eZYSQVYu0TgGCTTwkj5bFSp4AJ80PRUyKgAnOfYdG60HOQNAoROjKCHSF4yy?= =?us-ascii?Q?sWI/58Hj35g8JhPvSjmQGMwE20vhw9CeSBv2o/sEU4YD923y2nb7MnXrKUDc?= =?us-ascii?Q?WrQq6oMEJpFtLiIf4ds5uCBZEQBQN3KL8zmZiEr5TvA23tQ30PxvII4QfK7P?= =?us-ascii?Q?1XfrgScPW9GHrC8YEfIac8GQWLJPMraLJ+3KiRsmd91wylDOS5uGrlB1C6RV?= =?us-ascii?Q?XGybTBn+Fahsh5o7ebldsTNeUP1g5Ra0vsYtc/Z8dMnvf0c2Lh7zts7ul7T3?= =?us-ascii?Q?9v9npPcMUn9ws+I8irbntRb8GPdwZp6nyn0HKFo3ipQc6mRSQlIoEfCS+Egn?= =?us-ascii?Q?AoqadEqbK2fdjUguSgYNr6dURvAQ1r3IP0zhzYaqwszMmhrxyye6HnpoHeAl?= =?us-ascii?Q?yqPbSq6SF3cwPB6gCQ/KC8XVyGThKuEpoZ9oYYq3d9EvQ+WawV8OVe4SoPfp?= =?us-ascii?Q?5Fq7puaWE+0+J/94RYr0aZkYJjbnRpkQvGgEYDpv4Cez0WkTT0RD0HOaC7PW?= =?us-ascii?Q?Ma5owE1RR1Y9yiBuHV9j76SdJK4289yCcc/sGDzuK5+CWQWbVREh+JD+Xd+1?= =?us-ascii?Q?Kkr0I4vRrqScwsvHdy+PR3fTWNB6oNMmcuwDa7Pqe84ATQThx2jrbM1WoQt4?= =?us-ascii?Q?MKeDFogQ0bbFQktFRJL5qbIi0U/i0NM+QmmBRd/L85JpD2J8bByXOPOVEDqc?= =?us-ascii?Q?q5yaBmoz0kBuBeA4aTms0EI0dAeTxqgwf5htDlg4YdfJjYkeNslm7uE1t3Ou?= =?us-ascii?Q?zkfMEFEoYhOflGgnWrgUONLlZciOJfbgqTHvgDZEYYiF+vRMQf5002kQ61t3?= =?us-ascii?Q?10gBq18rkII7Wx3InbrUqc9Y=3D?= X-Microsoft-Antispam-Message-Info: 4FycmqewmTFKW50t4KLC/fRWbUC2ptIUhmgZBqAAfObcEeFLVGtSNsmmX5xfdGR2mDQDQm8ix+9gdPjxLGfVOHosZIaMu4L3zIivxMzoVLXQBamqmw5f20Du6wlUBJpvCfT6wj4hv8vhSGBhbtreTt6VTD/gx5m+eQl5xx2lNqglsRHJNPkS/nQ4KTqRuZtS X-Microsoft-Exchange-Diagnostics: 1; AM5PR0501MB2036; 6:uP2bkKpeFmuPAhmz6uWKEmSXjtBoMJ7wSaJXmFRS/Ra7VCOFbol2w30GukQ1LdkVLwwD+stSN+9Vi9xVeDj3OpQgArfKXfPB2YfUDkF/FQqew+IBlbawkoMuXY7LETaI53e0TcbDrX6gfi7HE3hecg41V9s0Q/OoNLca6yhsOYvO4glHe5LSHEgy0VgYN9BM0RmkK5wZJDgJvGVALGHkk6lxg3l52s5HBl5QjpYDCHHVWuA/zpctm4GJdHDS+ARESPVeV6g3Fz7BYOIDBLS4a5DMguGMawifR+ZpldDLke4UaWbeKVjcY4mWpS0KfTzFJQnm0oEhPbKCvJcxI+E7S2027giWuZqhCGnXyFhUb/BG8YbPnwZn9U+SaoDa17+LFV84nDT333AWbjr5zxuW5i4X5DVGdSRktPpYdoZbHfauo+F2YZZHgNbP8HZhR0WLfqF59W+ciWFmMeaFuWmQuw==; 5:X1+/Cz2MXC70suHREII140y6/q3wcUVlHo0dqQE1MudDQx0K1NovdtLw7Rrf6BVUie13cOuQZ3eU2VGXN2hNpa+HrYPiww8c8eDUpFb6UGracfG9b5YXCYh68n5KZW8GrZfxJ4O80QvqBGKTuE9pEfQSPCH7VXbOUzql/OEzbAo=; 24:IKzDOxhUb8KF+GzPdoD6j+7Iz4e14nKJSNurkJUAfHwFxrXDwwz4UIJB/Qs3lt78Id4KKlk/Cy+I4Nf3qADgk7tJ7fqPKlNgvv+sHvufZJA= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; AM5PR0501MB2036; 7:woVSj45vSVtVcB5VckceAl/QrkcUWlzFnhRoAeygDDMJqtkL+e5ZGPb+dOR0Vqg14cA2jT+9RVF7IuW2TMEHJTjoPQ4sel7ZbqUv0rHFCAyoEAtlL4vq/SvVne1BgCmz5bGe/vZ0Km15Q4t5qX89FTidv81TlNjx12mcnBX96C2Cyh8S//kat5dLBfp58+SYuC6YIKTprCO60WbWOw1G6x9pbxBsRcGsqXEEWM8ohLMYdNGObF3ws3rRdx0XNWlM X-MS-Office365-Filtering-Correlation-Id: 2b81cd94-caeb-41c9-4f0c-08d5ca7933c3 X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Jun 2018 00:13:43.1395 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 2b81cd94-caeb-41c9-4f0c-08d5ca7933c3 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM5PR0501MB2036 Subject: [dpdk-stable] [PATCH 57/67] net/mlx4: fix UDP flow rule limitation enforcement X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches for DPDK stable branches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 05 Jun 2018 00:13:46 -0000 From: Adrien Mazarguil [ upstream commit bf959ec58b5d9127f187e98de6d2d0976c111360 ] For some unknown reason, priorities do not have any effect on flow rules that happen to match UDP destination ports. Those are always matched first regardless. This patch is a workaround that enforces this limitation at the PMD level; such flow rules can only be created at the highest priority level for correctness. Fixes: a5171594fc3b ("net/mlx4: expose support for flow rule priorities") Cc: stable@dpdk.org Signed-off-by: Adrien Mazarguil --- drivers/net/mlx4/mlx4_flow.c | 9 +++++++++ drivers/net/mlx4/mlx4_flow.h | 1 + 2 files changed, 10 insertions(+) diff --git a/drivers/net/mlx4/mlx4_flow.c b/drivers/net/mlx4/mlx4_flow.c index daa44eba9..472cadc92 100644 --- a/drivers/net/mlx4/mlx4_flow.c +++ b/drivers/net/mlx4/mlx4_flow.c @@ -379,6 +379,9 @@ mlx4_flow_merge_ipv4(struct rte_flow *flow, * Additional mlx4-specific constraints on supported fields: * * - No support for partial masks. + * - Due to HW/FW limitation, flow rule priority is not taken into account + * when matching UDP destination ports, doing is therefore only supported + * at the highest priority level (0). * * @param[in, out] flow * Flow rule handle to update. @@ -410,6 +413,11 @@ mlx4_flow_merge_udp(struct rte_flow *flow, msg = "mlx4 does not support matching partial UDP fields"; goto error; } + if (mask && mask->hdr.dst_port && flow->priority) { + msg = "combining UDP destination port matching with a nonzero" + " priority level is not supported"; + goto error; + } if (!flow->ibv_attr) return 0; ++flow->ibv_attr->num_of_specs; @@ -674,6 +682,7 @@ mlx4_flow_prepare(struct priv *priv, NULL, "only ingress is supported"); fill: proc = mlx4_flow_proc_item_list; + flow->priority = attr->priority; /* Go over pattern. */ for (item = pattern; item->type; ++item) { const struct mlx4_flow_proc_item *next = NULL; diff --git a/drivers/net/mlx4/mlx4_flow.h b/drivers/net/mlx4/mlx4_flow.h index 651fd37b6..5e1f9ea77 100644 --- a/drivers/net/mlx4/mlx4_flow.h +++ b/drivers/net/mlx4/mlx4_flow.h @@ -70,6 +70,7 @@ struct rte_flow { uint32_t promisc:1; /**< This rule matches everything. */ uint32_t allmulti:1; /**< This rule matches all multicast traffic. */ uint32_t drop:1; /**< This rule drops packets. */ + uint32_t priority; /**< Flow rule priority. */ struct mlx4_rss *rss; /**< Rx target. */ }; -- 2.11.0