From patchwork Fri Aug 19 09:01:16 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Simon Horman X-Patchwork-Id: 1668013 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=openvswitch.org (client-ip=140.211.166.138; helo=smtp1.osuosl.org; envelope-from=ovs-dev-bounces@openvswitch.org; receiver=) Authentication-Results: legolas.ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=corigine.onmicrosoft.com header.i=@corigine.onmicrosoft.com header.a=rsa-sha256 header.s=selector2-corigine-onmicrosoft-com header.b=akAirq8/; dkim-atps=neutral Received: from smtp1.osuosl.org (smtp1.osuosl.org [140.211.166.138]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-384) server-digest SHA384) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4M8G316cwHz1ygv for ; Fri, 19 Aug 2022 19:01:48 +1000 (AEST) Received: from localhost (localhost [127.0.0.1]) by smtp1.osuosl.org (Postfix) with ESMTP id B0A7D84260; Fri, 19 Aug 2022 09:01:45 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.11.0 smtp1.osuosl.org B0A7D84260 Authentication-Results: smtp1.osuosl.org; dkim=fail reason="signature verification failed" (1024-bit key) header.d=corigine.onmicrosoft.com header.i=@corigine.onmicrosoft.com header.a=rsa-sha256 header.s=selector2-corigine-onmicrosoft-com header.b=akAirq8/ X-Virus-Scanned: amavisd-new at osuosl.org Received: from smtp1.osuosl.org ([127.0.0.1]) by localhost (smtp1.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 6CraxW7wfuJO; Fri, 19 Aug 2022 09:01:44 +0000 (UTC) Received: from lists.linuxfoundation.org (lf-lists.osuosl.org [IPv6:2605:bc80:3010:104::8cd3:938]) by smtp1.osuosl.org (Postfix) with ESMTPS id DD04B8402D; Fri, 19 Aug 2022 09:01:43 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.11.0 smtp1.osuosl.org DD04B8402D Received: from lf-lists.osuosl.org (localhost [127.0.0.1]) by lists.linuxfoundation.org (Postfix) with ESMTP id A3F92C0070; Fri, 19 Aug 2022 09:01:43 +0000 (UTC) X-Original-To: dev@openvswitch.org Delivered-To: ovs-dev@lists.linuxfoundation.org Received: from smtp4.osuosl.org (smtp4.osuosl.org [IPv6:2605:bc80:3010::137]) by lists.linuxfoundation.org (Postfix) with ESMTP id 76933C002D for ; Fri, 19 Aug 2022 09:01:42 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp4.osuosl.org (Postfix) with ESMTP id 5BDF141CB1 for ; Fri, 19 Aug 2022 09:01:42 +0000 (UTC) DKIM-Filter: OpenDKIM Filter v2.11.0 smtp4.osuosl.org 5BDF141CB1 Authentication-Results: smtp4.osuosl.org; dkim=pass (1024-bit key) header.d=corigine.onmicrosoft.com header.i=@corigine.onmicrosoft.com header.a=rsa-sha256 header.s=selector2-corigine-onmicrosoft-com header.b=akAirq8/ X-Virus-Scanned: amavisd-new at osuosl.org Received: from smtp4.osuosl.org ([127.0.0.1]) by localhost (smtp4.osuosl.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id gRYWje3MrKp2 for ; Fri, 19 Aug 2022 09:01:41 +0000 (UTC) X-Greylist: whitelisted by SQLgrey-1.8.0 DKIM-Filter: OpenDKIM Filter v2.11.0 smtp4.osuosl.org 2CD1841C35 Received: from NAM11-DM6-obe.outbound.protection.outlook.com (mail-dm6nam11on2120.outbound.protection.outlook.com [40.107.223.120]) by smtp4.osuosl.org (Postfix) with ESMTPS id 2CD1841C35 for ; Fri, 19 Aug 2022 09:01:41 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=LD3ySa4szRgCQo0f/3czl1x4w+YaxAcpk6+fwXvbMAK7lLCC7uf794/zqS4O3bILtgVJ0CIIeJ/5X2lkJNsnjDli/UNsFKTDp18MK6lYX756eCVt2Q4CxmnsMwikeyZSHiI3dzMXged8rllN8ysKMIItcC+tfCEHsYFAGoRnZ/aN5t7QTUc3VdpSxVg5HQDi/cVPsYIrCvOffJtoc8RRooBez8uHodCzprCwZTok81zgUI3QoJIvaz0oSiy1W+3EnD1VaKIVM2xgw+kVSWisdt51CKKKE0t3G1yaLFiouoAOBsR7lHkPyNkq4jbtoDXK72uuQ+IK8R41YzA506kbJw== 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-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=AYDF55ZRE9hRkQ/uxyzYDaRRpeF850rLo9OpdCkoJ2g=; b=V3GhsKcP9koO0dbjVX/Cn1UM89ztiIMLR7wOYAqSJWK6GZhDmh6eN29apm2AlZFSzGdhjHbSyjSs+Ipi6WakVvoJ+TMvqk2PH2bcy5k/joeXdnXSQCOfE24sSg9GPLU0Jp6TOa+dJBUAt2Ue+MF62gvpbImZd2e9YqTtu6BKDnBpVjBy+5zgxwk4bjYA/AQmokeN7OnBsj352sweX/IVOVMOJVI03zJXTE88RyI5zvI3lcwx+nJEG62lygGW09rsDQOtMn+dqFrNnZXZGtIEc5B/J+q8et/hkw21LVlmyJE+oxAiE0fWw39OxwkZjA1Ma5G8vj0tXTNJ39GUQYoEpw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=corigine.com; dmarc=pass action=none header.from=corigine.com; dkim=pass header.d=corigine.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=corigine.onmicrosoft.com; s=selector2-corigine-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=AYDF55ZRE9hRkQ/uxyzYDaRRpeF850rLo9OpdCkoJ2g=; b=akAirq8/HxUqeu6xyjQpXFRKxEnohFQenMK058eqy5JWG3daHxTx+okdh4YymfaOmvZoS/ED+Sbuyyt5fPLcYhg9AIhCdLpbaJHvIIZsBBzIjAREwiFjpZBSoPb/r767BRJDfNxrUkN8rgTNmC2NF/kNKe1pNb5dnE64S3jXSrY= Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=corigine.com; Received: from PH0PR13MB4842.namprd13.prod.outlook.com (2603:10b6:510:78::6) by PH0PR13MB5764.namprd13.prod.outlook.com (2603:10b6:510:11b::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5482.5; Fri, 19 Aug 2022 09:01:38 +0000 Received: from PH0PR13MB4842.namprd13.prod.outlook.com ([fe80::a1e6:3e37:b3f3:7576]) by PH0PR13MB4842.namprd13.prod.outlook.com ([fe80::a1e6:3e37:b3f3:7576%9]) with mapi id 15.20.5566.008; Fri, 19 Aug 2022 09:01:38 +0000 From: Simon Horman To: dev@openvswitch.org Date: Fri, 19 Aug 2022 11:01:16 +0200 Message-Id: <20220819090119.199177-2-simon.horman@corigine.com> X-Mailer: git-send-email 2.30.2 In-Reply-To: <20220819090119.199177-1-simon.horman@corigine.com> References: <20220819090119.199177-1-simon.horman@corigine.com> X-ClientProxiedBy: AM0PR04CA0136.eurprd04.prod.outlook.com (2603:10a6:208:55::41) To PH0PR13MB4842.namprd13.prod.outlook.com (2603:10b6:510:78::6) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: b56b865e-dd23-43d7-6c58-08da81c16cae X-MS-TrafficTypeDiagnostic: PH0PR13MB5764:EE_ X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: QCejMjQYquU4fQFRuSVX6JjVnxCRoYjCcr6Sl9xby585paaE1dHxGfyxx8uzXd0DIvja6LH2uOM8J0HwcuFxnR5fgQbz1XgxsthNJvOxzl7fT6UYKisy2UcwH7L1QkGaIMCuPaoDbf704xnEjZuiGSIWteAMvC+irpsc/vCrY6+jU6Y4AFePESFsq8VFlcfTC2A2Pqo4ouIsvgRnNpBfib0BeAqfjKbar+CfLYCC2BtVHmdmZX6na9xt96IzVFAjYfS7Hp8N2qvuWTz3hhKbYVwQY77yeALkeoy2i4qdsO42blBm1Bnz3yQRhwYPR5aKmn1eQWKYCARSN0A0Y/ls8faGLjDHrWuuYv9BUYJLhroc8Wf6atncb/tuFetZTayIA/lZ/jWloFiBt0bnZl7gYBg/ojtTh7KJwvIXBJ7w9fPVaHyziMUVOR/3GDjl0zcI0IdpO+pu1p1XsmprQB+uNaqi9P3FNvSCMz47MPQJsZvFiVwKr1AWT3VMQE5oNbGUy1m66+bGYn7Fwiu28FJnx3jFdC/iXGOpWZTblM92kpDWEuaFUUjCGMcBDpzX1EXEDEpZ8+6gqMZ7sxhlZStfWa93g6PRYkuNWIQaHGxREB30A5o/IclYTStj+N2i34xSF10jXaDYk69xASBrw+Tmyc4L54V1THnRDtAUpdOmkdH9VHegBzgLpDdbSih9jJQUGmLcTUrauKvd94thvgacvI2TR0gsLdU2nfXznRaMjf3xABFCjC1vzdSEAUqiT8LD X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:PH0PR13MB4842.namprd13.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230016)(4636009)(396003)(346002)(39840400004)(366004)(376002)(136003)(316002)(6486002)(36756003)(38100700002)(6916009)(86362001)(186003)(6666004)(6506007)(52116002)(478600001)(107886003)(41300700001)(2616005)(6512007)(1076003)(44832011)(2906002)(8936002)(66946007)(66556008)(66476007)(5660300002)(4326008)(8676002)(83380400001); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: izDgJx8hNYn2VnxW5BPpRN0u3o3MYS9Ye/61AIZ9XRTt7F9TnojMlhM0A9ZJ/Xx9ITss7kLs40QWPelwmX5bnYadHYWCYyHOffbYoWsid6u07hh1iy4/wcqEsOrmF3zSjwrjrBG4u+jedtkRs/Upd6Lxb2D3XEpCNiS9z8NU+YKB3K0jb2VCI1FplKPHpmHetGn9L7rMYHhCdzZLEEUhssdnsleGAHIL1S0FTT5cZnB30oGEVeTBKw47+l0/+d+2YYdNsxD451sXrvRVJKYu4saBXbr9IVfHFVu/26Hj9reQInNV3g5XwQFpbVeFYniI8W/LJLpjrqt2PAzDrmLGRBTgjgdle8Jb/faDdBg233LWaxJZW+ZGMEgMZwgU6p4SnIIbEJzM2EP3l2Pgmin4MhvvSzA6rE99ITjbrAn5trnAqWiUdE+89iDHDjI5/JZrUt2as1R2gZz4AKUk+DbT/ZZ+ZJmORnxyWKDu3hM+lm8VxDZKO0tskL5QiZAKeUAM6EPLzF8488wGM/tuNFmQjKjPtXrs97R3RuxRzG5tjQP037VPqkDrnfYrVrqHGuVZDVtzTTfcCGC406HskxwRk6rO+J7M4dzFh/vZgk9P7m5aY0Xah+H+qFvyrnCRDgt75gM0/sBSocznAg07WR7+HzZCqAijg7/2PMDc5gLhx1TjEOgzMHgf2ajOkpbL6PF3VTXPO/gjeOn52agJmfohbtjFSS2eyt30WqqWNs7yhMB+iCn5DqwQ1G6M25RwAhmTroAEHidGjQnynfE8y3+Erxftm/K47sAUjfG1bEv6x19bQwMiwLfJERT8AwpOvS0OjCzPJsI2aSMLF/P72Moqh4hOHc1ugdcAKfpDJ715HBdVkuXtUAPUQOPf7uNf0gRoTBnPPzQjAvT+T9EgOPMsLrUhSmT/xV98UTq8y7VrpxnJ7Iz/ZCU8LPi+oTH+MwKnn4z8X6sKppzShy28XmtgH5KaAsjZo5eu7v7eUHBZtNKHmrOmu/W5EE6mHgX/Le4kmhdXlG7OCJz5t5CHcO4MBWm1lTpAknhtAOKWkCfC4u6rnQ7ptsIs77oRcLSoJMyT2906KwabO9ZFJ5nCfoCjiZgrlgJiHyDXZ0BdG2A8DZVadIGIRElYEt8dyOOoskuGyI/pU5sF6FtHVxaCCK06gbjLgu20TeHD0ZwO1sVTqEGoBfVELJrzRDqvgDCeompif7oUWTooVPEjtg3Gw3+XKFVlVNCBNuLAXUvyffn3R27oN4jLnT9oxQG4NXBy9sHFSmdk/NiLy1iI8ppycq/8J9bkFpJ2vFty1qh9wowoAa2Me26mfEXtws1Ed+f/wpYRvUToMRGl4BWZRk5k3rUBUkcvwwNc0QNYGdGqDU8SQPtjdGQ5rA6jJ2lmLFs24OQN04wKjAsI/bb3u4EZy3eSwdnRIlPJgZDZbXJIrSejzNtAGDaxy2Z+PzsoL1eYDb8fOCxL3t1Yc4uDvKxa/fDrI9W/SJZUnI08BvXUqhPvFWyUb579OZ6SKiT6oXilp5IAKUBZ3Ss4UlJPMGJZVitBlRj3udFtcWvi+PQcrtdMdlQXMaktXbjFCT5bGMB7XGw92EvhxZNXH0Lt19qsS6wbrAKLeKrlwYko2tHuYJvHiQ46iJEOfqN+ROzNHz7uqkEQjMzun9h+tun6HwoV5uoA2g== X-OriginatorOrg: corigine.com X-MS-Exchange-CrossTenant-Network-Message-Id: b56b865e-dd23-43d7-6c58-08da81c16cae X-MS-Exchange-CrossTenant-AuthSource: PH0PR13MB4842.namprd13.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Aug 2022 09:01:37.9482 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: fe128f2c-073b-4c20-818e-7246a585940c X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: mw0RXhwTYXAKgpEb6Quv/GIMDnT58sB3p7YQ5nmjgxEU+OpzuPELHw/hcEEY16TnQfxCRMBbu9X75Q8D5IbWb1fdx/VElptahBnkuIx2pDA= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH0PR13MB5764 Cc: oss-drivers@corigine.com, Chaoyong He Subject: [ovs-dev] [PATCH v2 1/4] netdev-offload-dpdk: Support offload of set IPv4 DSCP action X-BeenThere: ovs-dev@openvswitch.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: ovs-dev-bounces@openvswitch.org Sender: "dev" From: Chaoyong He Add the support of offload of set IPv4 DSCP action. Signed-off-by: Chaoyong He Reviewed-by: Louis Peens Signed-off-by: Simon Horman --- lib/netdev-offload-dpdk.c | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/lib/netdev-offload-dpdk.c b/lib/netdev-offload-dpdk.c index cceefbc50751..53d22b9bb0b2 100644 --- a/lib/netdev-offload-dpdk.c +++ b/lib/netdev-offload-dpdk.c @@ -770,6 +770,14 @@ dump_flow_action(struct ds *s, struct ds *s_extra, IP_ARGS(set_ipv4->ipv4_addr)); } ds_put_cstr(s, "/ "); + } else if (actions->type == RTE_FLOW_ACTION_TYPE_SET_IPV4_DSCP) { + const struct rte_flow_action_set_dscp *set_dscp = actions->conf; + + ds_put_cstr(s, "set_dscp "); + if (set_dscp) { + ds_put_format(s, "dscp_value %d ", set_dscp->dscp); + } + ds_put_cstr(s, "/ "); } else if (actions->type == RTE_FLOW_ACTION_TYPE_SET_TTL) { const struct rte_flow_action_set_ttl *set_ttl = actions->conf; @@ -1813,7 +1821,8 @@ add_output_action(struct netdev *netdev, static int add_set_flow_action__(struct flow_actions *actions, const void *value, void *mask, - const size_t size, const int attr) + const size_t size, const int attr, + bool dscp_flag) { void *spec; @@ -1824,7 +1833,7 @@ add_set_flow_action__(struct flow_actions *actions, if (is_all_zeros(mask, size)) { return 0; } - if (!is_all_ones(mask, size)) { + if (!dscp_flag && !is_all_ones(mask, size)) { VLOG_DBG_RL(&rl, "Partial mask is not supported"); return -1; } @@ -1849,6 +1858,8 @@ BUILD_ASSERT_DECL(sizeof(struct rte_flow_action_set_ipv4) == MEMBER_SIZEOF(struct ovs_key_ipv4, ipv4_src)); BUILD_ASSERT_DECL(sizeof(struct rte_flow_action_set_ipv4) == MEMBER_SIZEOF(struct ovs_key_ipv4, ipv4_dst)); +BUILD_ASSERT_DECL(sizeof(struct rte_flow_action_set_dscp) == + MEMBER_SIZEOF(struct ovs_key_ipv4, ipv4_tos)); BUILD_ASSERT_DECL(sizeof(struct rte_flow_action_set_ttl) == MEMBER_SIZEOF(struct ovs_key_ipv4, ipv4_ttl)); BUILD_ASSERT_DECL(sizeof(struct rte_flow_action_set_ipv6) == @@ -1874,11 +1885,16 @@ parse_set_actions(struct flow_actions *actions, { const struct nlattr *sa; unsigned int sleft; + bool dscp_flag; #define add_set_flow_action(field, type) \ + dscp_flag = false; \ + if (type == RTE_FLOW_ACTION_TYPE_SET_IPV4_DSCP) { \ + dscp_flag = true; \ + } \ if (add_set_flow_action__(actions, &key->field, \ mask ? CONST_CAST(void *, &mask->field) : NULL, \ - sizeof key->field, type)) { \ + sizeof key->field, type, dscp_flag)) { \ return -1; \ } @@ -1900,6 +1916,7 @@ parse_set_actions(struct flow_actions *actions, add_set_flow_action(ipv4_src, RTE_FLOW_ACTION_TYPE_SET_IPV4_SRC); add_set_flow_action(ipv4_dst, RTE_FLOW_ACTION_TYPE_SET_IPV4_DST); + add_set_flow_action(ipv4_tos, RTE_FLOW_ACTION_TYPE_SET_IPV4_DSCP); add_set_flow_action(ipv4_ttl, RTE_FLOW_ACTION_TYPE_SET_TTL); if (mask && !is_all_zeros(mask, sizeof *mask)) {