From patchwork Mon Nov 25 10:08:53 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Allen Chen X-Patchwork-Id: 2014853 X-Patchwork-Delegate: ktraynor@redhat.com 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=qxMb6ZRf; dkim-atps=neutral Authentication-Results: legolas.ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=openvswitch.org (client-ip=140.211.166.136; helo=smtp3.osuosl.org; envelope-from=ovs-dev-bounces@openvswitch.org; receiver=patchwork.ozlabs.org) Received: from smtp3.osuosl.org (smtp3.osuosl.org [140.211.166.136]) (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 4XxhJP4qKPz1yCv for ; Mon, 25 Nov 2024 21:09:24 +1100 (AEDT) Received: from localhost (localhost [127.0.0.1]) by smtp3.osuosl.org (Postfix) with ESMTP id DA87660A8F; Mon, 25 Nov 2024 10:09:21 +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 cvTZI-uxIcGN; Mon, 25 Nov 2024 10:09:20 +0000 (UTC) X-Comment: SPF check N/A for local connections - client-ip=2605:bc80:3010:104::8cd3:938; helo=lists.linuxfoundation.org; envelope-from=ovs-dev-bounces@openvswitch.org; receiver= DKIM-Filter: OpenDKIM Filter v2.11.0 smtp3.osuosl.org 6AEFF607DE Authentication-Results: smtp3.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=qxMb6ZRf Received: from lists.linuxfoundation.org (lf-lists.osuosl.org [IPv6:2605:bc80:3010:104::8cd3:938]) by smtp3.osuosl.org (Postfix) with ESMTPS id 6AEFF607DE; Mon, 25 Nov 2024 10:09:20 +0000 (UTC) Received: from lf-lists.osuosl.org (localhost [127.0.0.1]) by lists.linuxfoundation.org (Postfix) with ESMTP id 45731C08A9; Mon, 25 Nov 2024 10:09:20 +0000 (UTC) X-Original-To: ovs-dev@openvswitch.org Delivered-To: ovs-dev@lists.linuxfoundation.org Received: from smtp4.osuosl.org (smtp4.osuosl.org [140.211.166.137]) by lists.linuxfoundation.org (Postfix) with ESMTP id 016F3C08A8 for ; Mon, 25 Nov 2024 10:09:17 +0000 (UTC) Received: from localhost (localhost [127.0.0.1]) by smtp4.osuosl.org (Postfix) with ESMTP id DD36740194 for ; Mon, 25 Nov 2024 10:09:17 +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 XRlQ7TH1_ym8 for ; Mon, 25 Nov 2024 10:09:16 +0000 (UTC) Received-SPF: Pass (mailfrom) identity=mailfrom; client-ip=2a01:111:f403:200e::71a; helo=apc01-psa-obe.outbound.protection.outlook.com; envelope-from=allen.chen@jaguarmicro.com; receiver= DMARC-Filter: OpenDMARC Filter v1.4.2 smtp4.osuosl.org A00FA400C2 Authentication-Results: smtp4.osuosl.org; dmarc=pass (p=quarantine dis=none) header.from=jaguarmicro.com DKIM-Filter: OpenDKIM Filter v2.11.0 smtp4.osuosl.org A00FA400C2 Authentication-Results: smtp4.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=qxMb6ZRf Received: from APC01-PSA-obe.outbound.protection.outlook.com (mail-psaapc01on2071a.outbound.protection.outlook.com [IPv6:2a01:111:f403:200e::71a]) by smtp4.osuosl.org (Postfix) with ESMTPS id A00FA400C2 for ; Mon, 25 Nov 2024 10:09:14 +0000 (UTC) ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=FhJom4XX2Z+HeY4gcNN4WlZh9qY36lNkICuJ69uVi3/uWCPSZjyCOSm8BKMqp1ltlJwmoCaMjyn/LzuM0P71+SYwbc8yJf9er+7yeybg+/U7PPRw1Kdlmu9EPYD95wjDHo3hSi01nDtNxm9R/RHN1SFFvQ9zjB9iGVhtH6ezphG9UPJdPjOhg9Vsnio1EVF7rnwqoC042kMOwmz/rd8P2h893qwy/tx5Y4GsHEcMo+tt4HMgSPynzmD+RKB7WyknmawQxDS0Pm9+w24Eq9VwzwmqU3lb+j6z4cuwIJtWhQMFdxhl5TxZYuwXXWa6xT5YhUtnNqEcJ16PARIhuazPdA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; 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=AH/MopKfZ/ktnJ2UTOKr0boxYyYetWKS3vnz44LHiU4=; b=Frx0mRI3g0X3BN2GV+MT3r2z/mXC+kGeLypOmwTHWoRZ92EGcpylg0HuK2EHPtDR703kyIlUXiNxalZHubSk/rv7YfH4kfLKcpg8dFjpaFn3yFtlAgZPKyYyoS2hcO+hKSNPflWkb6NzjHVYy7Hf+OX7EZ6L5NuxV/NQfecJG0GqPEhq4YWfm6xLS258T/nVfdbgVbAN+tsaTmzn+1T6ylccJs2W6bM0xnrkeFvWUkOe6zG4BRVihceVfdjDzg74FlVddGgDcTArtoi5WxcSevh7QYnpM++IDOZn8OZQtcFzf0CvbeJU/WKCb49QB726SStpx5tUMU/5q0GZs99n1A== 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=AH/MopKfZ/ktnJ2UTOKr0boxYyYetWKS3vnz44LHiU4=; b=qxMb6ZRfSj0ZOlWfjiuBMIeDBfqzIydV9WEEVMfCB/KupOXFfJdIgFi+r09QJYi6IBuCsQtng0vmgp/WJfehe1Y6aO+q+rr2+FLozsADDDoBfVzTbC7A5XEnqOtXaZP4BOsGFXL1akK1i0ENKPuJZKuVYIzkx3sxthNz4DxkeU4t0mPcoch01kkUleTZIuF1b+0JLmawqC338VWqHU2s51V9tLXG0nAlJS55oRGUa5gb78WBYuQabMn72CKTBclX5H+HTyVNx7Wvmiom6vD1Gch27x3/qJZwX3mlR9wBCY65IoE60baJZS9csCvaqZc3N0d9q1+cJHmfU7yzwvZanQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=jaguarmicro.com; Received: from TYZPR06MB7170.apcprd06.prod.outlook.com (2603:1096:405:b4::8) by KL1PR06MB6887.apcprd06.prod.outlook.com (2603:1096:820:114::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.8207.10; Mon, 25 Nov 2024 10:09:06 +0000 Received: from TYZPR06MB7170.apcprd06.prod.outlook.com ([fe80::7c1f:9482:dd43:eb1b]) by TYZPR06MB7170.apcprd06.prod.outlook.com ([fe80::7c1f:9482:dd43:eb1b%5]) with mapi id 15.20.8182.018; Mon, 25 Nov 2024 10:09:05 +0000 To: ovs-dev@openvswitch.org Date: Mon, 25 Nov 2024 18:08:53 +0800 Message-Id: <20241125100853.978-1-allen.chen@jaguarmicro.com> X-Mailer: git-send-email 2.33.0.windows.2 X-ClientProxiedBy: SI2P153CA0026.APCP153.PROD.OUTLOOK.COM (2603:1096:4:190::18) To TYZPR06MB7170.apcprd06.prod.outlook.com (2603:1096:405:b4::8) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: TYZPR06MB7170:EE_|KL1PR06MB6887:EE_ X-MS-Office365-Filtering-Correlation-Id: 12db2d31-dce5-400c-3d7b-08dd0d39319e 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: WsHZ6FU/4eZKpdPIlqitqZ6gcWeNv+aFkximNXWjoZEtNoDWM7y9YxW9Ws9c7sZNenusGqYgPpd0374IjNvmUSeSzKeoOAMUva1/JB84vmYRPu6JDbcu4WQ4JrRB6rSTUKXukVow6NmSzVN6FbKaVQepCllMJgKUXSBCvsP1+WZzHsnMev5ObZAMExffcb+XvNvFTF1ZLtJASZWNp6KR81PZOuy6AgrFXI1i/UF2FN10Qm5xwm5yoxPFwwP6V+OZpE6SjC84PcucFU0tjCaIyT3f4nikE9dF5I5QeOpR/YPcxbBdYWKMb2uIBQ4Y5Fz4U3VQKKCbRPqmxQ2tw80pfWN1FOkaV/A23kslqqV5YO3SCMH5NdHgrjn96H0Qcwp8ZWUw8dMZwF5DdsZk5BCFnkluUsSEWsUoc/2mLjW0DBBRGnPgFbYQKgVKy/IIhQFLECoD+fgXE22jdbW1+DnExExEGoqgWspHLCX63CvyrJor8qoVqnpwJDG9kyrTthEAKV8pUO2QtOGc03o6AfnaqDrRKk8TeJ/8yv8+//K26VaxmSiLRBhBc87/6zK86Gn8DG0Aln1dNH5K/CzYl4FgYp11MzfRXO4eq/4msd/uWm43qtQIwJwHrRva9UsPjXx78TeLLys0ukMUXR5MoOnGvsRoe9if6mLfXWdzK2S5zEh4Rr4WBXI3jNyr5lQ2+zd78zg15DqdZ9UwyVHe7F+M6VzCcOhPwvPJqg0/vk4a/kN1tg0NIamOdj3qm/Qn4VGvKaJUGKPt1pn8yRNg55iyrPFeuaOWgbxmYKN4rfDOCfwgR/vET2l3MZ8Riqg10VAGRoBwPlKd50JowbpeFDOo+d6e7ktl96EHFJ+VdHEbLOVHTwPUJzBsTjHHKOh1qZmu049TPw6Up5/hn0YyI482wLcMlzK5VZfQjgd1QKIzSZlat2tbmGKzh7LZfG70UsUzqQ9I/L726lYm4VowLRSQtrFqRCJ2wKAuFUw9JLmuHYM9nmXZZ8VjjINLmo+ElTXwh+y+qoJbRjmfojOxGTvqNUOu16Hq/s5TXTz2UxYJbX6Nw6MWMydV2wMMGo9RvS07J1Zxbqoq4rA5nsn+Gx06ajK8xga8dKtSpm7WHkkKiWfgvmy55co3AVF8TS0mOMZ88OzXCbxtTJHBSBiYn42UBYU+CbS9mZMRWXsoX/5LALDfEdVCpwj9L8lgSXvqqPIMrLVPw77sLSNbzDMF0M6N8yVsRUXUhdzhw8RPEeevD4xFscSe/QvnqEAUgIexNEuLejTiPoCx28wC7TnXya0vY4ud7kc9qBb6CZ4Z/AfXqzpsv8CN3j2XddpFVTP8qPF2MAcAa+Uw64CrXx+Rb/+m6wiUHLP7G1Or3ZN+OV6HhF+R2k4tBG43vHN5rrgfgJIjffEggzGySiGDo3WvH0mL2A== X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:TYZPR06MB7170.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: n/9C9hQ9PLmaFdUIFdtWtjyCG9FPVnd1R3dVxzJ1UY2M7xtZkyblVZsBziC7JCUUFM3xNeRNs3EDJdiH43hPczla4hhOmwE2F/uyeWdaD0ELRP1XLsqJANcIpwk41yDY0sHw1aVqkHviFl7xVKou+IuDDJbF7W1sPbkeGcFY1lbwWeVut/IR6l7CG11y5kADOUWomlPhMJT2DkLRT8s1hm2yw4Gmxt2M+uN/hEaQuLwBdiRKfvwqll52AQlJf3Y2M+jjl4az2xTcErHO2G44d05ktylu8uIffJsG51MZvuI3CBQM8FhP78GDBMgIChBQThWYvUJCXR+WQGBFJu+2YviBDB1KY9qNVUz4q0WroNpIQlqoWq/lJikQLxXKHd35G+DJTpqpXB+o9dIY2nRkpDdV0ue6O7OxNX8OaUg3NknjDqGV7/R7pxPQrkrlNHgE13r0XPbk5sHmHBaOJwbXsx1Qtc6gr/hVekhEg7FQZEeHDC6tTOm1BS1+m3LItvbCQ43JQbmmAVxSUzOlYxIiKhmtd6Ovy3Esn+RTH6AT5ZlBkdEWO3RtI+Jp1kMvZ+cpOzvO2vsz9aLIvWIt6mNHazp1wkmhZerXGfTiiWhWPoSuVy5O7lOS7V1P1M0xx7KTFCpuWxrqAYL+wUQd94dFFilRhUcT1GE4FG5H5rOPCwQIHHlvxCHV8coqYMGgWVdIN/CtHfJOcuTeP0GAxLqAgYBPSLyCdHamyptXfFO1Ce7Ca+G3Utmy33GzHiQnW5gCmdN5FbV2jRDLU8qLVhPQItEP+T+4a6hySRP6Q46hUSNlcCZRLLcpeLkZ0YYWLI6EkTUyjZ1TORMcSg0z69xUmMxplQ8YKROC7Y5kz9/UxGmQtX25zDstSfo8vwLs7Kw42MoKHME+uMlm1fkaspspsGf+H1hLU5iJAEMjcZ/Migvfa5LR9YlM1WxK4u+2EhqMM8rqerzr9ldOleqCj3WYZGG/Tfj4nBxUWzLLeLGDgmk4DbPT0YLxsJSjt2d3ZpllivIvTT40kUKFyLKpLOqrkiw/JbUzEGyiU+GSm9szNAxnNEWoCpy/OWDWDWgsefWQiWY+Gxzw9efstaPRwGo/LdFbVIAbeMbu0Gjv7PP+JaJ3XuqHFd8Nuq+ZPN4OuX0mznD9/YZb+RNQt63d0XJMjnPQv6i2HYSbQHC89TbApPE6pfMel9n1lJlBFOhmBdy+lkUV3MdarjtZagGkzil6L+dY/gvCbBCLDjlyEc+6tSFWvHNOZ5eoQ93r8xTLVkT175Vp50Q+OloL20JLW555IADsUCTI1zgKhKSJQ4rf4GY9tji+b5oEs60rQm4X0x71aM/Sd34/PI3D3vconHiuF1xjObJhzI4JFEv5QCXVhLx6mcD886p9FjbzxAyCWzAsYcup8Ca67kXLZjo7s9LSl7gjB4XHIKxHeEydxh+zz21CMfwqX/pP0ALKi1okCCs9pcU0/H3gm0TqC3LJQnhfQbaS8L3TxFWHSRIe3JozHZMC2wvqdO+8kLX54QwercYyx6HuWma5rQyC/CdAnlEoRHbqi+Q01SLHeXW/A6qpq7qvwDrOgebHxQje5sCVZF7aLzj5tBbKX4UfDBbfmXew2Q== X-OriginatorOrg: jaguarmicro.com X-MS-Exchange-CrossTenant-Network-Message-Id: 12db2d31-dce5-400c-3d7b-08dd0d39319e X-MS-Exchange-CrossTenant-AuthSource: TYZPR06MB7170.apcprd06.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 25 Nov 2024 10:09:05.6791 (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: QlSSzotAT2KQ09FMoHf5A6I7an85e+31haWYUH0S2Y4g0KW5kUSYCiTwJtuHG+SFXm7T4WQNNK87hCovP+AwZSMaO9EN478krBP9FdMbVZ4= X-MS-Exchange-Transport-CrossTenantHeadersStamped: KL1PR06MB6887 Subject: [ovs-dev] [PATCH v2] netdev_offload_dpdk: Support QinQ offload. 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: Allen Chen via dev From: Allen Chen Reply-To: Allen Chen Errors-To: ovs-dev-bounces@openvswitch.org Sender: "dev" Support QinQ offload Signed-off-by: Allen Chen --- NEWS | 5 +++++ lib/netdev-offload-dpdk.c | 31 +++++++++++++++++++++++++++++++ 2 files changed, 36 insertions(+) diff --git a/NEWS b/NEWS index 03ad245ab..39456fc21 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,8 @@ +v3.4.0 - 20 Nov 2024 +--------------------- + - Add support for QinQ offload. + + v3.4.0 - 12 Nov 2024 --------------------- - Add support for ICMPV6 offload. diff --git a/lib/netdev-offload-dpdk.c b/lib/netdev-offload-dpdk.c index 1ec5d175b..956bb9198 100644 --- a/lib/netdev-offload-dpdk.c +++ b/lib/netdev-offload-dpdk.c @@ -1399,6 +1399,7 @@ parse_flow_match(struct netdev *netdev, struct match *match) { struct rte_flow_item_eth *eth_spec = NULL, *eth_mask = NULL; + struct rte_flow_item_vlan *vlan_spec = NULL, *vlan_mask = NULL; struct flow *consumed_masks; uint8_t proto = 0; @@ -1471,6 +1472,9 @@ parse_flow_match(struct netdev *netdev, eth_mask->type = match->wc.masks.vlans[0].tpid; } + vlan_spec = spec; + vlan_mask = mask; + add_flow_pattern(patterns, RTE_FLOW_ITEM_TYPE_VLAN, spec, mask, NULL); } /* For untagged matching match->wc.masks.vlans[0].tci is 0xFFFF and @@ -1479,6 +1483,33 @@ parse_flow_match(struct netdev *netdev, */ memset(&consumed_masks->vlans[0], 0, sizeof consumed_masks->vlans[0]); + /* VLAN */ + if (match->wc.masks.vlans[1].tci && match->flow.vlans[1].tci) { + struct rte_flow_item_vlan *spec, *mask; + + spec = xzalloc(sizeof *spec); + mask = xzalloc(sizeof *mask); + + spec->tci = match->flow.vlans[1].tci & ~htons(VLAN_CFI); + mask->tci = match->wc.masks.vlans[1].tci & ~htons(VLAN_CFI); + + if (vlan_spec && vlan_mask) { + vlan_spec->has_more_vlan = 1; + vlan_mask->has_more_vlan = 1; + spec->inner_type = vlan_spec->inner_type; + mask->inner_type = vlan_mask->inner_type; + vlan_spec->inner_type = match->flow.vlans[1].tpid; + vlan_mask->inner_type = match->wc.masks.vlans[1].tpid; + } + + add_flow_pattern(patterns, RTE_FLOW_ITEM_TYPE_VLAN, spec, mask, NULL); + } + /* For untagged matching match->wc.masks.vlans[0].tci is 0xFFFF and + * match->flow.vlans[0].tci is 0. Consuming is needed outside of the if + * scope to handle that. + */ + memset(&consumed_masks->vlans[1], 0, sizeof consumed_masks->vlans[1]); + /* IP v4 */ if (match->flow.dl_type == htons(ETH_TYPE_IP)) { struct rte_flow_item_ipv4 *spec, *mask, *last = NULL;