From mboxrd@z Thu Jan 1 00:00:00 1970 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 E89D0CD1288 for ; Wed, 3 Apr 2024 18:43:07 +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:CC:To:In-Reply-To:References:Message-ID :MIME-Version:Subject:Date:From:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=VYYpvexg5hTON0An3J5MWZ1OY0Takh9vgZr2OGMfGts=; b=Pc68VT/MzDmgmi ULR80+0C40EHv5QnTvApCDoBo3lm0jbnPTNCPXPoGBzL7MmcGbmnAWThzalQpfcw0jRsvYZD5b4zH Ri56XpkAO+02ufGHFJA9LhX7ewpntwvSnxhMrbB/rejUbLtfIJ8ZfAqxgRCzVb1z6agfKpEbhjm8N 2ZJOdAlayVUST42Fv2UgeDF5oS30jW+XaUdoJascWRbXnHM4IQUd0jVAe3HgCjAeXONBDM7tJK5Uf Zgt6jPN5Te1koftc1DeT7W1X/h9lBMRbtFOQ0FPkn3niNAejXsvk3g0yoinYm49xWfdB6WyGYcTKG 1ugc6JFx3Xc62MGEKeaA==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.97.1 #2 (Red Hat Linux)) id 1rs5ZZ-0000000HQx5-44uA; Wed, 03 Apr 2024 18:42:57 +0000 Received: from desiato.infradead.org ([2001:8b0:10b:1:d65d:64ff:fe57:4e05]) by bombadil.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1rs5ZY-0000000HQwd-4ALk for linux-arm-kernel@bombadil.infradead.org; Wed, 03 Apr 2024 18:42:56 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=infradead.org; s=desiato.20200630; h=CC:To:In-Reply-To:References: Message-ID:Content-Transfer-Encoding:Content-Type:MIME-Version:Subject:Date: From:Sender:Reply-To:Content-ID:Content-Description; bh=8JzK5qrKSpFMokR8xqakWKDorlnk16Wx2cKUYbDevhQ=; b=nHxvFzcZYsq2GmokDYDrUAclmm abDhsF/YecNvJZIL2PAoKr6UMYJbbaySAwlKZHTwWaDkog5ssbcoVbE9nYXykPvRwa7mPNXTv/X8G NSAkp/YLW8TVY2RlUKSdz921sY4S2seGV5GbnJfG+3OXfabQB8P2chWp0yaU67rfOAuhbM3I8GwYA s8O8WFWOd+LZ6wC5RST0sPZjwpx/uNABcxkoNQLNMjwTrXlZzL0Vj0aAumo+i/IlwQ6hs4M1qI+kl nYGWtVqQ3rLLPuzIWzXUXNbERYZF+44yUeAA2mKjUwSJfc17pU4YBB3sXTnT3nyFOB+z5rfDxoA87 YDL2vJmQ==; Received: from esa.microchip.iphmx.com ([68.232.153.233]) by desiato.infradead.org with esmtps (Exim 4.97.1 #2 (Red Hat Linux)) id 1rs5ZV-00000004Ney-1zrS for linux-arm-kernel@lists.infradead.org; Wed, 03 Apr 2024 18:42:55 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=microchip.com; i=@microchip.com; q=dns/txt; s=mchp; t=1712169773; x=1743705773; h=from:date:subject:mime-version:content-transfer-encoding: message-id:references:in-reply-to:to:cc; bh=g9OGTjriFjC5okqqsdE43uxvtzt0NrohNgdOIFqLUPc=; b=WWden6u5k+X7Fl3pkvrFbjV+ubo+GU7rUXnqfbNzr37aoDqwnALi31R3 nxgIeL0kVx5UvZUDODs0FNdlMLgneKmk6fhlumzQ7uj0/NzOdV02R+FZn Vcjl6SQ/esRrs57zsk8AxgDXuZsX6KeRA11/G+h/O3m+hURzbXgLU9DUE unHkUk1VKtefRUMbzVcU17TY5R7e5v5nfFGKywmzcCq7iJ33AnbcQ37wq fhxbvTAIdGBCl0+tQbIlSpy5qjBRMzNYvKvvvgX+btow6vrOUiUhoQ+Vn DHnS2LCuXuiqW0QzltHsXGAspdz1LQDtt4e7CsseEjRPD5vqeVwRAvA7R w==; X-CSE-ConnectionGUID: By3oU9PeTtGY31IsBtby0Q== X-CSE-MsgGUID: roZiApLfSA2APbX12J9Lhw== X-IronPort-AV: E=Sophos;i="6.07,177,1708412400"; d="scan'208";a="21259638" X-Amp-Result: SKIPPED(no attachment in message) Received: from unknown (HELO email.microchip.com) ([170.129.1.10]) by esa1.microchip.iphmx.com with ESMTP/TLS/ECDHE-RSA-AES128-GCM-SHA256; 03 Apr 2024 11:42:48 -0700 Received: from chn-vm-ex02.mchp-main.com (10.10.85.144) by chn-vm-ex04.mchp-main.com (10.10.85.152) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.35; Wed, 3 Apr 2024 11:42:15 -0700 Received: from DEN-DL-M70577.microchip.com (10.10.85.11) by chn-vm-ex02.mchp-main.com (10.10.85.144) with Microsoft SMTP Server id 15.1.2507.35 via Frontend Transport; Wed, 3 Apr 2024 11:42:13 -0700 From: Daniel Machon Date: Wed, 3 Apr 2024 20:41:44 +0200 Subject: [PATCH net-next 3/3] net: sparx5: add support for tc flower redirect action MIME-Version: 1.0 Message-ID: <20240403-mirror-redirect-actions-v1-3-c8e7c8132c89@microchip.com> References: <20240403-mirror-redirect-actions-v1-0-c8e7c8132c89@microchip.com> In-Reply-To: <20240403-mirror-redirect-actions-v1-0-c8e7c8132c89@microchip.com> To: Lars Povlsen , Steen Hegelund , , "David S. Miller" , Eric Dumazet , "Jakub Kicinski" , Paolo Abeni CC: , , , Daniel Machon X-Mailer: b4 0.14-dev X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20240403_194253_939484_465AD285 X-CRM114-Status: GOOD ( 14.57 ) 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: , Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org Add support for the flower redirect action. Two VCAP actions are encoded in the rule - one for the port mask, and one for the port mask mode. When the rule is hit, the port mask is used as the final destination set, replacing all other port masks. Signed-off-by: Daniel Machon --- .../ethernet/microchip/sparx5/sparx5_tc_flower.c | 33 ++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/drivers/net/ethernet/microchip/sparx5/sparx5_tc_flower.c b/drivers/net/ethernet/microchip/sparx5/sparx5_tc_flower.c index a86ce1f8f3e5..0df8724251a0 100644 --- a/drivers/net/ethernet/microchip/sparx5/sparx5_tc_flower.c +++ b/drivers/net/ethernet/microchip/sparx5/sparx5_tc_flower.c @@ -1042,6 +1042,34 @@ static int sparx5_tc_action_mirred(struct vcap_admin *admin, return 0; } +static int sparx5_tc_action_redirect(struct vcap_admin *admin, + struct vcap_rule *vrule, + struct flow_cls_offload *fco, + struct flow_action_entry *act) +{ + struct vcap_u72_action ports = {0}; + int err; + + if (admin->vtype != VCAP_TYPE_IS0 && admin->vtype != VCAP_TYPE_IS2) { + NL_SET_ERR_MSG_MOD(fco->common.extack, + "Redirect action not supported in this VCAP"); + return -EOPNOTSUPP; + } + + err = vcap_rule_add_action_u32(vrule, VCAP_AF_MASK_MODE, + SPX5_PMM_REPLACE_ALL); + if (err) + return err; + + sparx5_tc_flower_set_port_mask(&ports, act->dev); + + err = vcap_rule_add_action_u72(vrule, VCAP_AF_PORT_MASK, &ports); + if (err) + return err; + + return 0; +} + /* Remove rule keys that may prevent templates from matching a keyset */ static void sparx5_tc_flower_simplify_rule(struct vcap_admin *admin, struct vcap_rule *vrule, @@ -1193,6 +1221,11 @@ static int sparx5_tc_flower_replace(struct net_device *ndev, if (err) goto out; break; + case FLOW_ACTION_REDIRECT: + err = sparx5_tc_action_redirect(admin, vrule, fco, act); + if (err) + goto out; + break; case FLOW_ACTION_ACCEPT: err = sparx5_tc_set_actionset(admin, vrule); if (err) -- 2.34.1 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel