From patchwork Mon Feb 13 09:24:16 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Steen Hegelund X-Patchwork-Id: 13138007 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 58090C636CC for ; Mon, 13 Feb 2023 09:27:52 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender: Content-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:Message-ID:Date:Subject:CC :To:From:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References: List-Owner; bh=xo/+y8Ex4Di5WxW5648SAVCcN+T+8CLeVIo6q618fnQ=; b=HNAF6xGho7SbZE NW7Bk01WveujguWF5coShdTQEclCH+44tZP4EMxOokwBZQ+waOAWwvEEWluJbF6biHAkS87VV5wHn K9zTtTOa2MaUklwReRM0LN3LnUHTa+QrDbgI8JdR5S/g0oGDouFJwgTB8oIabqKVedwS6auLgI9Sa k9Q6R42R6gHbc0ARrqfcrTL+mSqA39X+dtEA1iVdgjGVvUPsghkvn89JFFvsTYo6os50+nJD5pCUd 7Q/qucb+G2pd+NM6c1mTBu6GQnUCGvw71Y1GJm8kkU/Qjs+3jwIO0Z9IzB7cQFchERY1AQ9lnRMbX QFQRF+CNSosFpcjluKbw==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1pRV6Z-00DqUx-EM; Mon, 13 Feb 2023 09:26:36 +0000 Received: from esa.microchip.iphmx.com ([68.232.154.123]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1pRV4l-00Dpdg-0W for linux-arm-kernel@lists.infradead.org; Mon, 13 Feb 2023 09:24:54 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=microchip.com; i=@microchip.com; q=dns/txt; s=mchp; t=1676280282; x=1707816282; h=from:to:cc:subject:date:message-id:mime-version: content-transfer-encoding; bh=0cjmFjyZ0y5LsKhYMj2E4+r0Krs4C84DnjiMFk2+QdY=; b=gM63ezl7aL2rlzpTm1Ec7MiaNlz6xJ11969X0dZwxP/+B3oI1DRtEuhJ mjwSCIyMMbgh1LBez/JCHlHIxMf3FT96rHQChiEe/cYxH65q3YCH4wgJ2 rePPKl5e8Wq/JlLAZYkx//6mRDuk+/0ijN3eWWukjH1B2ZX0uPjhXd3Qj e2nXEu7J28PC3KF7rKHpc//rXgDjg/SpmGLQ7hnslB08Jc9KWQYB+o763 A7s9r/lQBqRS0uTt74N5Gu4jH7RNoUpRip5LtewW9qmjdiXxR5MMglmY5 w6slR1Pf5tsliHCvZ0NcHWA9KAQRk7rK8v1fDbBHba7jgDhnCI1qEFWop Q==; X-IronPort-AV: E=Sophos;i="5.97,293,1669100400"; d="scan'208";a="200188819" Received: from unknown (HELO email.microchip.com) ([170.129.1.10]) by esa2.microchip.iphmx.com with ESMTP/TLS/AES256-SHA256; 13 Feb 2023 02:24:38 -0700 Received: from chn-vm-ex04.mchp-main.com (10.10.85.152) by chn-vm-ex02.mchp-main.com (10.10.85.144) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.16; Mon, 13 Feb 2023 02:24:35 -0700 Received: from den-dk-m31857.microchip.com (10.10.115.15) by chn-vm-ex04.mchp-main.com (10.10.85.152) with Microsoft SMTP Server id 15.1.2507.16 via Frontend Transport; Mon, 13 Feb 2023 02:24:31 -0700 From: Steen Hegelund To: "David S . Miller" , Eric Dumazet , Jakub Kicinski , Paolo Abeni CC: Steen Hegelund , , Randy Dunlap , "Casper Andersson" , Russell King , Wan Jiabing , "Nathan Huckleberry" , , , , "Steen Hegelund" , Daniel Machon , Horatiu Vultur , Lars Povlsen , Dan Carpenter , Michael Walle Subject: [PATCH net-next 00/10] Adding Sparx5 ES0 VCAP support Date: Mon, 13 Feb 2023 10:24:16 +0100 Message-ID: <20230213092426.1331379-1-steen.hegelund@microchip.com> X-Mailer: git-send-email 2.39.1 MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20230213_012443_174060_57701D77 X-CRM114-Status: GOOD ( 11.13 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org This provides the Egress Stage 0 (ES0) VCAP (Versatile Content-Aware Processor) support for the Sparx5 platform. The ES0 VCAP is an Egress Access Control VCAP that uses frame keyfields and previously classified keyfields to add, rewrite or remove VLAN tags on the egress frames, and is therefore often referred to as the rewriter. The ES0 VCAP also supports trapping frames to the host. The ES0 VCAP has 1 lookup accessible with this chain id: - chain 10000000: ES0 Lookup 0 The ES0 VCAP does not do traffic classification to select a keyset, but it does have two keysets that can be used on all traffic. For now only the ISDX keyset is used. The ES0 VCAP can match on an ISDX key (Ingress Service Index) as one of the frame metadata keyfields, similar to the ES2 VCAP. The ES0 VCAP uses external counters in the XQS (statistics) group. Steen Hegelund (10): net: microchip: sparx5: Discard frames with SMAC multicast addresses net: microchip: sparx5: Clear rule counter even if lookup is disabled net: microchip: sparx5: Egress VLAN TPID configuration follows IFH net: microchip: sparx5: Use chain ids without offsets when enabling rules net: microchip: sparx5: Improve the error handling for linked rules net: microchip: sparx5: Add ES0 VCAP model and updated KUNIT VCAP model net: microchip: sparx5: Updated register interface with VCAP ES0 access net: microchip: sparx5: Add ES0 VCAP keyset configuration for Sparx5 net: microchip: sparx5: Add TC support for the ES0 VCAP net: microchip: sparx5: Add TC vlan action support for the ES0 VCAP .../ethernet/microchip/sparx5/sparx5_main.c | 1 + .../microchip/sparx5/sparx5_main_regs.h | 1829 ++++++++++++----- .../ethernet/microchip/sparx5/sparx5_port.c | 5 + .../net/ethernet/microchip/sparx5/sparx5_tc.h | 74 + .../microchip/sparx5/sparx5_tc_flower.c | 368 +++- .../microchip/sparx5/sparx5_vcap_ag_api.c | 385 +++- .../microchip/sparx5/sparx5_vcap_debugfs.c | 41 + .../microchip/sparx5/sparx5_vcap_impl.c | 274 +++ .../microchip/sparx5/sparx5_vcap_impl.h | 25 + .../ethernet/microchip/sparx5/sparx5_vlan.c | 4 +- .../net/ethernet/microchip/vcap/vcap_ag_api.h | 174 +- .../net/ethernet/microchip/vcap/vcap_api.c | 28 +- .../microchip/vcap/vcap_api_debugfs_kunit.c | 4 +- .../ethernet/microchip/vcap/vcap_api_kunit.c | 4 +- .../microchip/vcap/vcap_model_kunit.c | 270 ++- .../microchip/vcap/vcap_model_kunit.h | 10 +- drivers/net/ethernet/microchip/vcap/vcap_tc.c | 3 + drivers/net/ethernet/microchip/vcap/vcap_tc.h | 1 + 18 files changed, 2758 insertions(+), 742 deletions(-)