From patchwork Mon Jul 17 12:15:31 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jiri Pirko X-Patchwork-Id: 789422 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3xB2Lx69T9z9sRg for ; Mon, 17 Jul 2017 22:15:53 +1000 (AEST) Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=resnulli-us.20150623.gappssmtp.com header.i=@resnulli-us.20150623.gappssmtp.com header.b="qulD70iD"; dkim-atps=neutral Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751387AbdGQMPw (ORCPT ); Mon, 17 Jul 2017 08:15:52 -0400 Received: from mail-wr0-f195.google.com ([209.85.128.195]:34692 "EHLO mail-wr0-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751303AbdGQMPk (ORCPT ); Mon, 17 Jul 2017 08:15:40 -0400 Received: by mail-wr0-f195.google.com with SMTP id w4so969643wrb.1 for ; Mon, 17 Jul 2017 05:15:39 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=resnulli-us.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=pIRr1GGexmx5lH06C4H9AA6tjwQU0n+3XtgXajT3Edg=; b=qulD70iDHgtinUT6rpJ/uuyLVByaY1Zbnf3NnjES8FBd9BtfeAowl8ZOsDd+jJbVsd 9tV9k97PyzKSGaywHWkrg1a4luGIWCqpJH2Hh/ixAWUVWlhJdLRkHunKQLZyJmuNC+bF YiHSOBD12nHsnEybhfzzYsb1+wffJez6Cu6y5pGyRqb+Htcd5z7Yj4bdDtXHUNg+uLw2 cItRT1Gg8d1MqArt8ZX5h1kABEPkhVVMEiemEonnzfDU6I1bXOlij5iVoBKlgnNx30tl xeDKPUat+SfWmnjjOah+OOT8SqgbUZXOpU8ZiysCUn9fuzv/n4QLsymuu5+jKxO57v4f 2UhA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=pIRr1GGexmx5lH06C4H9AA6tjwQU0n+3XtgXajT3Edg=; b=eNNZ8i/DqTk2VGvk6CaFZUFQN6Lo0lEk4jzUUBKMv7LYDYw6ltK59X+/c6woiF94oA LRWMe34KNGO+98JezcyMgwDQUV8IuY65vQa6FkcFb6BQRqPB/KBOrVxWNqXXcvEtrOfF OZov6nlP5dXcIViUGH2m7RuF7as8t5cNOhucHiSCb/Zp+MNbki87+g0BSRqwUBhQ/qSu JDgoCmTFy5IMkr8Nqh9g2c/qaZn++r+0WuAILDXcNKaVGsLNyx8+kMn9k/YFp8q4t6iW MlDTRaDiY/dAAsM6q9FG1lvbVVeHPS82A9XcZYsPFqBSjm+6/5lp/32JjxqV5uDWKqmw u0Sw== X-Gm-Message-State: AIVw110MIm/3wtTDZki5PI8llPsM/JcK3co6oJI1uTKPJsKXerQzW9NI aGzBPnJP1BbfFud9XbI= X-Received: by 10.223.135.175 with SMTP id b44mr1300951wrb.48.1500293738327; Mon, 17 Jul 2017 05:15:38 -0700 (PDT) Received: from localhost (jirka.pirko.cz. [84.16.102.26]) by smtp.gmail.com with ESMTPSA id i136sm10087436wmf.33.2017.07.17.05.15.37 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Mon, 17 Jul 2017 05:15:37 -0700 (PDT) From: Jiri Pirko To: netdev@vger.kernel.org Cc: davem@davemloft.net, arkadis@mellanox.com, idosch@mellanox.com, mlxsw@mellanox.com Subject: [patch net-next 3/4] mlxsw: spectrum: Add support for IPv6 MLDv1/2 traps Date: Mon, 17 Jul 2017 14:15:31 +0200 Message-Id: <20170717121532.4036-4-jiri@resnulli.us> X-Mailer: git-send-email 2.9.3 In-Reply-To: <20170717121532.4036-1-jiri@resnulli.us> References: <20170717121532.4036-1-jiri@resnulli.us> Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Arkadi Sharshevsky Add support for IPv6 MLDv1/2 packet trapping. Signed-off-by: Arkadi Sharshevsky Signed-off-by: Ido Schimmel Signed-off-by: Jiri Pirko --- drivers/net/ethernet/mellanox/mlxsw/reg.h | 1 + drivers/net/ethernet/mellanox/mlxsw/spectrum.c | 10 ++++++++++ drivers/net/ethernet/mellanox/mlxsw/trap.h | 4 ++++ 3 files changed, 15 insertions(+) diff --git a/drivers/net/ethernet/mellanox/mlxsw/reg.h b/drivers/net/ethernet/mellanox/mlxsw/reg.h index 1bd34d9..0ca1968 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/reg.h +++ b/drivers/net/ethernet/mellanox/mlxsw/reg.h @@ -3688,6 +3688,7 @@ enum mlxsw_reg_htgt_trap_group { MLXSW_REG_HTGT_TRAP_GROUP_SP_IP2ME, MLXSW_REG_HTGT_TRAP_GROUP_SP_DHCP, MLXSW_REG_HTGT_TRAP_GROUP_SP_EVENT, + MLXSW_REG_HTGT_TRAP_GROUP_SP_IPV6_MLD, }; /* reg_htgt_trap_group diff --git a/drivers/net/ethernet/mellanox/mlxsw/spectrum.c b/drivers/net/ethernet/mellanox/mlxsw/spectrum.c index bc35b40..1aa6298 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/spectrum.c +++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum.c @@ -3333,6 +3333,14 @@ static const struct mlxsw_listener mlxsw_sp_listener[] = { MLXSW_SP_RXL_MARK(ARPBC, MIRROR_TO_CPU, ARP, false), MLXSW_SP_RXL_MARK(ARPUC, MIRROR_TO_CPU, ARP, false), MLXSW_SP_RXL_NO_MARK(FID_MISS, TRAP_TO_CPU, IP2ME, false), + MLXSW_SP_RXL_MARK(IPV6_MLDV12_LISTENER_QUERY, MIRROR_TO_CPU, IPV6_MLD, + false), + MLXSW_SP_RXL_NO_MARK(IPV6_MLDV1_LISTENER_REPORT, TRAP_TO_CPU, IPV6_MLD, + false), + MLXSW_SP_RXL_NO_MARK(IPV6_MLDV1_LISTENER_DONE, TRAP_TO_CPU, IPV6_MLD, + false), + MLXSW_SP_RXL_NO_MARK(IPV6_MLDV2_LISTENER_REPORT, TRAP_TO_CPU, IPV6_MLD, + false), /* L3 traps */ MLXSW_SP_RXL_MARK(MTUERROR, TRAP_TO_CPU, ROUTER_EXP, false), MLXSW_SP_RXL_MARK(TTLERROR, TRAP_TO_CPU, ROUTER_EXP, false), @@ -3377,6 +3385,7 @@ static int mlxsw_sp_cpu_policers_set(struct mlxsw_core *mlxsw_core) burst_size = 7; break; case MLXSW_REG_HTGT_TRAP_GROUP_SP_IGMP: + case MLXSW_REG_HTGT_TRAP_GROUP_SP_IPV6_MLD: rate = 16 * 1024; burst_size = 10; break; @@ -3441,6 +3450,7 @@ static int mlxsw_sp_trap_groups_set(struct mlxsw_core *mlxsw_core) break; case MLXSW_REG_HTGT_TRAP_GROUP_SP_IGMP: case MLXSW_REG_HTGT_TRAP_GROUP_SP_IP2ME: + case MLXSW_REG_HTGT_TRAP_GROUP_SP_IPV6_MLD: priority = 3; tc = 3; break; diff --git a/drivers/net/ethernet/mellanox/mlxsw/trap.h b/drivers/net/ethernet/mellanox/mlxsw/trap.h index 4946d4e..891b4ee 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/trap.h +++ b/drivers/net/ethernet/mellanox/mlxsw/trap.h @@ -63,6 +63,10 @@ enum { MLXSW_TRAP_ID_LBERROR = 0x54, MLXSW_TRAP_ID_OSPF = 0x55, MLXSW_TRAP_ID_IP2ME = 0x5F, + MLXSW_TRAP_ID_IPV6_MLDV12_LISTENER_QUERY = 0x65, + MLXSW_TRAP_ID_IPV6_MLDV1_LISTENER_REPORT = 0x66, + MLXSW_TRAP_ID_IPV6_MLDV1_LISTENER_DONE = 0x67, + MLXSW_TRAP_ID_IPV6_MLDV2_LISTENER_REPORT = 0x68, MLXSW_TRAP_ID_RTR_INGRESS0 = 0x70, MLXSW_TRAP_ID_BGP_IPV4 = 0x88, MLXSW_TRAP_ID_HOST_MISS_IPV4 = 0x90,