From patchwork Tue Jul 9 12:21:12 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Sunyang Wu X-Patchwork-Id: 1958393 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@legolas.ozlabs.org Authentication-Results: legolas.ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=jaguarmicro.com header.i=@jaguarmicro.com header.a=rsa-sha256 header.s=selector2 header.b=ZVglr36w; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=openvswitch.org (client-ip=2605:bc80:3010::137; helo=smtp4.osuosl.org; envelope-from=ovs-dev-bounces@openvswitch.org; receiver=patchwork.ozlabs.org) Received: from smtp4.osuosl.org (smtp4.osuosl.org [IPv6:2605:bc80:3010::137]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (secp384r1) server-digest SHA384) (No client certificate requested) by legolas.ozlabs.org (Postfix) with ESMTPS id 4WJKps1Mp9z1xr9 for ; Tue, 9 Jul 2024 22:21:24 +1000 (AEST) Received: from localhost (localhost [127.0.0.1]) by smtp4.osuosl.org (Postfix) with ESMTP id C8B54410B8; Tue, 9 Jul 2024 12:21:22 +0000 (UTC) X-Virus-Scanned: amavis at osuosl.org Received: from smtp4.osuosl.org ([127.0.0.1]) by localhost (smtp4.osuosl.org [127.0.0.1]) (amavis, port 10024) with ESMTP id ZVfNN74fMfZZ; Tue, 9 Jul 2024 12:21:21 +0000 (UTC) X-Comment: SPF check N/A for local connections - client-ip=140.211.9.56; helo=lists.linuxfoundation.org; envelope-from=ovs-dev-bounces@openvswitch.org; receiver= DKIM-Filter: OpenDKIM Filter v2.11.0 smtp4.osuosl.org 24F7E40C83 Authentication-Results: smtp4.osuosl.org; dkim=fail reason="signature verification failed" (2048-bit key, unprotected) header.d=jaguarmicro.com header.i=@jaguarmicro.com header.a=rsa-sha256 header.s=selector2 header.b=ZVglr36w Received: from lists.linuxfoundation.org (lf-lists.osuosl.org [140.211.9.56]) by smtp4.osuosl.org (Postfix) with ESMTPS id 24F7E40C83; Tue, 9 Jul 2024 12:21:21 +0000 (UTC) Received: from lf-lists.osuosl.org (localhost [127.0.0.1]) by lists.linuxfoundation.org (Postfix) with ESMTP id C58CAC0A97; Tue, 9 Jul 2024 12:21:20 +0000 (UTC) X-Original-To: ovs-dev@openvswitch.org Delivered-To: ovs-dev@lists.linuxfoundation.org Received: from smtp3.osuosl.org (smtp3.osuosl.org [IPv6:2605:bc80:3010::136]) by lists.linuxfoundation.org (Postfix) with ESMTP id 4762DC0A96 for ; Tue, 9 Jul 2024 12:21:19 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp3.osuosl.org (Postfix) with ESMTP id 29A5060B51 for ; Tue, 9 Jul 2024 12:21:19 +0000 (UTC) X-Virus-Scanned: amavis at osuosl.org Received: from smtp3.osuosl.org ([127.0.0.1]) by localhost (smtp3.osuosl.org [127.0.0.1]) (amavis, port 10024) with ESMTP id SDO9wcieooGV for ; Tue, 9 Jul 2024 12:21:18 +0000 (UTC) Received-SPF: Pass (mailfrom) identity=mailfrom; client-ip=2a01:111:f400:feab::719; helo=apc01-sg2-obe.outbound.protection.outlook.com; envelope-from=sunyang.wu@jaguarmicro.com; receiver= DMARC-Filter: OpenDMARC Filter v1.4.2 smtp3.osuosl.org 0721F60B4F Authentication-Results: smtp3.osuosl.org; dmarc=pass (p=quarantine dis=none) header.from=jaguarmicro.com DKIM-Filter: OpenDKIM Filter v2.11.0 smtp3.osuosl.org 0721F60B4F Authentication-Results: smtp3.osuosl.org; dkim=pass (2048-bit key, unprotected) header.d=jaguarmicro.com header.i=@jaguarmicro.com header.a=rsa-sha256 header.s=selector2 header.b=ZVglr36w Received: from APC01-SG2-obe.outbound.protection.outlook.com (mail-sgaapc01on20719.outbound.protection.outlook.com [IPv6:2a01:111:f400:feab::719]) by smtp3.osuosl.org (Postfix) with ESMTPS id 0721F60B4F for ; Tue, 9 Jul 2024 12:21:15 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=WqpGm7BRiqzke4QvHxoPXf5zx9N/lY3YBTN2+o905MkZTNcSVvEBYtS1vJ0UH1DvErJFl98GUdNIA4Beeiph9CAqBhV9I3OZY4ODBsYigK8chycF88WQwjdJ9rXRmD5R9eMDfQ/zLFt8AylCGVKjPI9PMyWJQXjOOCRJKqo3vzhe2XD16A32ZY1XkYn09bUR2WAQ1uTLHQP+R68hwj1E2wa40K857MnqPtKXx0BW7ZhiuccVQRZA09uhhNt4LwGfmwguNklE+Re+7zX/rsX2/iPsX5xfZ6TINPb0wtsXYojeqm9nw1IQ9EDjyMlYj/y3t8vNgcyb06TGynnutO+lHw== 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=RQv1L+RBNQt8+hrbXKWNTeDvJxEbq7RIlr6MP0sXW8A=; b=KEUUBYsNQ0+o9R2HKB1oIyc1CR+NFaZnH5rEyjQlmEjrD7hp0UiROmv8prVV7yqJ5UWFf6poPGgRkbFBP9bQyymAhGvKMZkNH0115p2XozyE+QOpkrgnE+XqXPvTZ2pN5mDYqL78czDf8lQCmMZkN9/pND+fB0JM6jpHrBUVxrZiV19/C8O351dosCRsC73Bcv7PQSmF8UivcXx3zlEJI8+i57/TGCRD85KBDolDgEsEEwU7S6ryxUM6hLppU0XosJxmGfSADysBkQszy2LOfrFW65ZVAI2eXXs0jq7vzVSvaVoiileM9TupE+uqnd5OJ+pf3tdl+RRcxxZhcH6LRQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=jaguarmicro.com; dmarc=pass action=none header.from=jaguarmicro.com; dkim=pass header.d=jaguarmicro.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=jaguarmicro.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=RQv1L+RBNQt8+hrbXKWNTeDvJxEbq7RIlr6MP0sXW8A=; b=ZVglr36wR7KtT0hpGVRJOAvPsMBZMFymoGaU7zr7wQzwZzuNjM8hBJhmcm0XVOyss0E+YNDJYwZZQPtgRcKADGi2Q/54m0eY0Jwcc0eZceY/xiug4m0R4vTIVJ9rFjKpvj2+5cq4RfobWVFruX6+BqanA9O02R6VF0euQKGv8rymEk5oOUOprgvoJpBf3459bJo97E44wugIsa8nlx8+eLy91xqrmKBr9/51238o9iRGeQ7nbj1zonBUYc6FLERpSgxOBSrYVLTLBgv6kKBfAGYGqmJbidWl3c/sumKsnGx8VelLBeduIG9YNu2aF+RKMq693nteZhZOzJLNy0YmCw== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=jaguarmicro.com; Received: from KL1PR0601MB5567.apcprd06.prod.outlook.com (2603:1096:820:c5::14) by KL1PR0601MB5445.apcprd06.prod.outlook.com (2603:1096:820:c0::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7741.35; Tue, 9 Jul 2024 12:21:11 +0000 Received: from KL1PR0601MB5567.apcprd06.prod.outlook.com ([fe80::3ad3:b4d9:7e69:85cb]) by KL1PR0601MB5567.apcprd06.prod.outlook.com ([fe80::3ad3:b4d9:7e69:85cb%3]) with mapi id 15.20.7741.033; Tue, 9 Jul 2024 12:21:11 +0000 To: ovs-dev@openvswitch.org Date: Tue, 9 Jul 2024 20:21:12 +0800 Message-Id: <20240709122112.34864-1-sunyang.wu@jaguarmicro.com> X-Mailer: git-send-email 2.19.0.rc0.windows.1 X-ClientProxiedBy: TYCPR01CA0108.jpnprd01.prod.outlook.com (2603:1096:405:4::24) To KL1PR0601MB5567.apcprd06.prod.outlook.com (2603:1096:820:c5::14) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: KL1PR0601MB5567:EE_|KL1PR0601MB5445:EE_ X-MS-Office365-Filtering-Correlation-Id: 5a8b0b7c-89db-44c4-17bc-08dca0119e7b X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; ARA:13230040|52116014|376014|1800799024|366016|38350700014; X-Microsoft-Antispam-Message-Info: 2hzgooESP5C4sGPOJYGjsJUnB4IcZCpHPgdX8k9h3kGfJGtHqQOouDXXPPmkNiwCz3EHg0XyhG4d8To8samzKEqo7z0LSWyfWqDl/nYkwgoi5CB1cauq8Ooc/bJ5claytmlFiDnOZZLA9vWN9zbxoRlmrH76lwHSpQOrirH7t022UVmY9auRYlw31nRoZalbFE/ziEyDrK0vQkbIhF7728HpoNt98Ar6ZHkdCoWCWWqsVBwRbUXrDDdhmq0bnp+9AUGOCBjSmPMkywlzdXubVl7wqphnyoB9fDhIBbUwe5QxO0p+823dUDdQ1XEi2LDLARPqW1pw6lbnGf15z29kNZFmFCbdN4LQjRv5hEwpXSt7St9QVVlLf8m3PJhsxqwE0ZrHqRQ3arSNXoultCqLBGh5/8X8IVMunlSAYR0EOD55oo5HiwfNUPKbGlc/zex2tP+fkiCQgV0ZssS9kv6zrjy/q/k/Bl/v/OgHAvOlO3YJJzxN3GF8r4xjjsv4UvIT5fVVwLJT/77CqGkZkoRnJsv1UkBxjNyctNlwdkVH/BxyLDFl3tJhVtsa8UOLo/bXPbHyNldGw6k2oRIN5bOwxkJR0Y2ntgYPR/4qiG/ExnFQlYtS2Tou6Glp0UoqMWcEFIp65krldJ5+wVqXADN0sC6AMwiDrvnftWKI20zd+oZ07uvAkG+kokPhm+E3cUdh57oTPHyecRgCPqk/zEKRsNXHmX1wIoVg2xWmZw3p0ZwCDeg+WdqCF9wJVu+BOjxwLL8obRwPBG1cbkfrL4yrzfrL6x8MQ/kuffPKXQB39sCRP43LDYF+hk+7+5FfzTCkVEHIcZ2iNodtZybN5OQYdWpVcxts55A2bQe9YYA9Hjq5Qm6zG+X1MHkwB0eLzeuHW23ybmDvNwJWdqEz4pWAC8HMcyzI3dqoPX7AM/5I2IUecB1Pp973ZNYsIvu0/rS0kc2BvSYcrnzrxurLpxsn0vvnqhu8r52fvyh/3RRTXwjn0KCtd8BTpcYGdvpzrmASvX5bvBDb0h9A51zsQS2axDSaQVCLjDeUvWKNpPMsJyeSDJNAXyBRYThzrsW7pHtr/0z8A6sFMIJ3PSZ1FWVoukk7U82GVwyQO7muWqGALH8CN+8h1gDAchWWuRlWJ6umWoxI0rBR7DRwUmF3SCcLTDBUOgYArNQ0fa7/cpwVBGRT24tTIVEbGKZAmJoHxY1lzAdAMQfqvzRtICcJiQwdaZAbk69asaJX6OTXsRH5X9Gz2ighMluXU/ocv3XajTCDnKicQ+NGY7eRBKoX9JQbIXRmH/rEf92iy+L4z/POvSdCPz3qGhR3i6T7a/NdCd6awoL9l/TDrO7EJi886lrvYf0NPV6OA5Luh0tPOon0IOdNIWVj5VnphDLtAtWBxrKBndBm4pMieRJ+hdC9JINjJA== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:KL1PR0601MB5567.apcprd06.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230040)(52116014)(376014)(1800799024)(366016)(38350700014); DIR:OUT; SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: UaBXsKPFy3B8A+lthWykJIQKBzqstQQBFJ9P4z+zYUxJOFp1OIXPTHvFHEwZY+oiOrHROVm2QUJ+qrCcAxg5rIzeIdRbN+AE8XYXpCDy6Uc2n34Bhcs5tIGc/YGO7VKGiWTeuMYL05Is3T9AvGEmaUJupZfQ9uC3tn6Wpt6tvdKy8BQGbi8ibUZgfVVBXYOw8TublDYd2oXNxUquvqrBxQArli/yWzyatGVcg9o3+tBc4wSOg9ILMVJiAWXxvS9K+WP+fNzrJnCJvDAgm7OPC/A4Dojl5pT5H2OGBSBEZja6m/COSKjX1/WiNhCWA+ca7z+JiGEAhpYcLHPi0ih+asIqUkWSK5xebkD2tzq4U58EG02+gK2Phj+WhiCRopgtkR9x5PwisCZbO0y+yJ1BI6Tg1w7rhqGLXBffnzSyI3uuiq91J0D+NR2fMgCBuB8g5XrVewk+Q9Acrq1W/LCFEEVZTWgm4Fqt73SFxTG2i8udiHHJrprmh1SkePubDMhVQKbts/Uz62JJ4ep0UEQ+7/V1ZSqfgsLFj47aLXyxEWPCrynXgHTCnpPOiBQYVI7riSZljr0pjmfe6nYAsjPeuznJYx5bHp6iIowAIviLNPbpteZReyF9t5FYBUMb2t90b74SxmPidEN0PgU/Hx3ouQgYITpqzX681EQMXOfES0RKmhYa4BbDKd/xoGKD91s3ymnxTItp0jHkVpqMrOBMzNPW+O3ADPNpbd7Aoj48a6GHkYgeqAn7zu2u66H5OYm9bt20i3Z73aZOIez8QU77xUln0jXO5DeRZK6vjq7+YnknnuKUsaisNG0pAkw6+my+G914gn8jo78JuVXQDXx/eLUuc/tnrXCBWC7T7hfWxgn3dQjU7ByHBbc3RlEDJugP4tQbw3eAEtWoWfzeywVy95yTX99Zy0NJ3suB1DvEAqr2A0LuCcmiZb9M3qsBxpJHetvR93oc3Nyuno1/l8SggmdDCCaMFwiClpFfPgKjloMIXePnBAeOzgzEPTiSzwLDnes++hadRnJdnymNWh/ZZIfH5vcEHujYI2auxNTyzvlNo7U8Z5ME+5MgfGGl2F66gozTG3TSqSwMno3gkNEyalsjavFvf5M1fM+sNdwKWLsvXbwQaLSR4QzXoqGyR5UkalqnLcVBbg1zHvZ3gWFVZYE0ntidN0zlQye42dKyhHZdlgpU0+VicNhO62gxIGMjK2WhDOOBgAcut4LnxBAVkUp5a9YoRiwrrauR1RB8EdwDmb1YOn7TO6vdlpJjVtpFYwG7ZbCDh1aKIIONJGa+8j4EmHUKURb1GqZqfvfDAeTSr9HFXBbgGztdysfxOQGPNGZN7CBVrThr3dRtPQuFBbTcIZrQ/IOmjpjZ6XSNBqYw/dtPinJwojcv6wJvR28kL5p7bjZC/LCMYBwGMyAS1L3sJOXgiiEp6ipQAW/aGQykR5cxV5iaMqxkgQcWLmDogbxo1CS6kbhEe5y/ohu6O1P0vGvfyESdS62ctiLXT3lEG441lXbxmXSyLgPHHatEaERweP4zpqKQBULHPOn9Ec/E0eWEuaqBS4No4Q1OweyxhWj+9sDGgGXNqX9fwaxplgHJz1futOVWXprgERYznw== X-OriginatorOrg: jaguarmicro.com X-MS-Exchange-CrossTenant-Network-Message-Id: 5a8b0b7c-89db-44c4-17bc-08dca0119e7b X-MS-Exchange-CrossTenant-AuthSource: KL1PR0601MB5567.apcprd06.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 09 Jul 2024 12:21:11.5724 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 1e45a5c2-d3e1-46b3-a0e6-c5ebf6d8ba7b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: VLgPE7Z7adVWFRQibmaKlTfaBGoQfxFftwLrUibUWkNTz5rQQiNRy+SIr8m1bSsZOX/CSmJ5z1mdOf3kWuL2N7u3/hUVFPqW5Nh0gJEFniY= X-MS-Exchange-Transport-CrossTenantHeadersStamped: KL1PR0601MB5445 Subject: [ovs-dev] [PATCH v4] netdev-offload-dpdk: Support offload of set dscp action X-BeenThere: ovs-dev@openvswitch.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Sunyang Wu via dev From: Sunyang Wu Reply-To: Sunyang Wu Cc: i.maximets@ovn.org Errors-To: ovs-dev-bounces@openvswitch.org Sender: "dev" Add the "set dscp action" parsing function, so that the "set dscp action" can be offloaded. Signed-off-by: Sunyang Wu --- Documentation/howto/dpdk.rst | 5 +++-- lib/netdev-offload-dpdk.c | 27 ++++++++++++++++++++++++++- 2 files changed, 29 insertions(+), 3 deletions(-) diff --git a/Documentation/howto/dpdk.rst b/Documentation/howto/dpdk.rst index 04609b20b..f0e46c95b 100644 --- a/Documentation/howto/dpdk.rst +++ b/Documentation/howto/dpdk.rst @@ -395,10 +395,11 @@ Supported actions for hardware offload are: - Output. - Drop. - Modification of Ethernet (mod_dl_src/mod_dl_dst). -- Modification of IPv4 (mod_nw_src/mod_nw_dst/mod_nw_ttl). +- Modification of IPv4 (mod_nw_src/mod_nw_dst/mod_nw_ttl/mod_nw_tos). - Modification of TCP/UDP (mod_tp_src/mod_tp_dst). - VLAN Push/Pop (push_vlan/pop_vlan). -- Modification of IPv6 (set_field:->ipv6_src/ipv6_dst/mod_nw_ttl). +- Modification of IPv6 (set_field:->ipv6_src/ipv6_dst/ +mod_nw_ttl/mod_nw_tos). - Clone/output (tnl_push and output) for encapsulating over a tunnel. - Tunnel pop, for packets received on physical ports. diff --git a/lib/netdev-offload-dpdk.c b/lib/netdev-offload-dpdk.c index 623005b1c..5a48da963 100644 --- a/lib/netdev-offload-dpdk.c +++ b/lib/netdev-offload-dpdk.c @@ -791,6 +791,17 @@ dump_flow_action(struct ds *s, struct ds *s_extra, ds_put_format(s, "port %"PRIu16" ", ntohs(set_tp->port)); } ds_put_cstr(s, "/ "); + } else if (actions->type == RTE_FLOW_ACTION_TYPE_SET_IPV4_DSCP || + actions->type == RTE_FLOW_ACTION_TYPE_SET_IPV6_DSCP) { + const struct rte_flow_action_set_dscp *set_dscp = actions->conf; + char *dirstr = actions->type == RTE_FLOW_ACTION_TYPE_SET_IPV4_DSCP + ? "set_ipv4_dscp " : "set_ipv6_dscp "; + + ds_put_cstr(s, dirstr); + 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_OF_PUSH_VLAN) { const struct rte_flow_action_of_push_vlan *of_push_vlan = actions->conf; @@ -1836,11 +1847,22 @@ add_set_flow_action__(struct flow_actions *actions, return 0; } if (!is_all_ones(mask, size)) { - VLOG_DBG_RL(&rl, "Partial mask is not supported"); + if (attr != RTE_FLOW_ACTION_TYPE_SET_IPV4_DSCP || + attr != RTE_FLOW_ACTION_TYPE_SET_IPV6_DSCP) { + if (mask & IP_ECN_MASK) { + VLOG_DBG_RL(&rl, "ECN hw offload is not supported!"); + } else { + goto add_action; + } + } else { + VLOG_DBG_RL(&rl, "Partial mask is not supported"); + } + return -1; } } +add_action: spec = xzalloc(size); memcpy(spec, value, size); add_flow_action(actions, attr, spec); @@ -1912,6 +1934,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_ttl, RTE_FLOW_ACTION_TYPE_SET_TTL); + add_set_flow_action(ipv4_tos, RTE_FLOW_ACTION_TYPE_SET_IPV4_DSCP); if (mask && !is_all_zeros(mask, sizeof *mask)) { VLOG_DBG_RL(&rl, "Unsupported IPv4 set action"); @@ -1924,6 +1947,8 @@ parse_set_actions(struct flow_actions *actions, add_set_flow_action(ipv6_src, RTE_FLOW_ACTION_TYPE_SET_IPV6_SRC); add_set_flow_action(ipv6_dst, RTE_FLOW_ACTION_TYPE_SET_IPV6_DST); add_set_flow_action(ipv6_hlimit, RTE_FLOW_ACTION_TYPE_SET_TTL); + add_set_flow_action(ipv6_tclass, + RTE_FLOW_ACTION_TYPE_SET_IPV6_DSCP); if (mask && !is_all_zeros(mask, sizeof *mask)) { VLOG_DBG_RL(&rl, "Unsupported IPv6 set action");