Received: by 2002:a05:6a10:8c0a:0:0:0:0 with SMTP id go10csp2591243pxb; Thu, 11 Feb 2021 17:11:34 -0800 (PST) X-Google-Smtp-Source: ABdhPJzEdRnApOVJ/Tf64LAIUuIOb6Pthn/m9MN09m1c9YobQDYg00KByzdL2/scXaszZvU76vOm X-Received: by 2002:a17:906:1355:: with SMTP id x21mr482444ejb.53.1613092293786; Thu, 11 Feb 2021 17:11:33 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1613092293; cv=none; d=google.com; s=arc-20160816; b=dAAwF8hhQZNJi6UHz++AzlFVuuID/eLWa2LDf26xlXbq0pz6bcY0Ezww53RLeQqr1y 68JFk8wuEcXN8UYEQKF3KXA6z8pbKn+4zjWbGvTln8tGfJvyH97atCu6b+ulR/1ihuE6 SCAEY7FMAJjwQ5XsKXWkJ5LoJ4KDUUy6d6lwzlMDvk0n1elRQ8ZHViyEx4XLCXSpO4xD XKbUohOsGOpsy/q2X7CKtbGGFssfZWf/JV7HDgIpI0MlTICCaxDVRBIf1cXuxkJGH0sl e/9nmm31BQsnN5p691QLimMY7ohonUv929FTP4zf53yza33sgpHb1dNJ2Gnw9kLUuiiY W5mw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from :dkim-signature; bh=x63lLl9f+6cQ+FEOwh37vVD+gThLxL62LXc3QDA9ZeM=; b=aCfnkUTWh20+ue13pOM2z8Il84gg+Y7Be74Qe6UMKuNjR03XwxbxsLZlC05gInw85P lQfHTBknI5T0OQJbX53ymoZvXk3Wx2ahFO0ym4bNVnG6gztRNHLXGKJUta/e14lISNeg IRHGG3J2e42tTws0EO21krGrFu0HgpK0/LMeqq6BpiGli+IHVDQ37MBtxxccf+busI93 u1JuMFBJkjdnNwtXzAvD6ydhqZ/aXI8oS1RKBU1Wm4ry1vhOdkyKBJjnWmCp9h/Vbt5o AlKrXGY6d77paZZBFnTIuwVjRiCIQkirY5OcZsddlWFPjBXnqaeOPHCu+qBCjLkD/F2O aZ3A== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=KfCAY4lP; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id j21si4999220edh.58.2021.02.11.17.11.10; Thu, 11 Feb 2021 17:11:33 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=KfCAY4lP; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230244AbhBLBIw (ORCPT + 99 others); Thu, 11 Feb 2021 20:08:52 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:35592 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230000AbhBLBGf (ORCPT ); Thu, 11 Feb 2021 20:06:35 -0500 Received: from mail-ej1-x636.google.com (mail-ej1-x636.google.com [IPv6:2a00:1450:4864:20::636]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 0ACAFC06178C; Thu, 11 Feb 2021 17:05:55 -0800 (PST) Received: by mail-ej1-x636.google.com with SMTP id jj19so13064513ejc.4; Thu, 11 Feb 2021 17:05:54 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=x63lLl9f+6cQ+FEOwh37vVD+gThLxL62LXc3QDA9ZeM=; b=KfCAY4lP33QDHT0k9N7q51JKgczm/uW6gJiBXvMUbxSn8ZP9vfh6DjeQFnIBTD4+8o LWIRUo8r9AdwNJF71j6r6ai21d1yC8WKXI2youqPwQ8UoLw9LeY2pDKQ4l974K/Xvmwn CBNaqO29UAxIOn7x1amAmU9BjKwQjJIBlp+ViCImGg53WCrkxFUrrxnVryHn7WMTpBlF 6xZvyoUYLmGZJ/tC0xCdfH/wI20z/OrObo3qGI3dMVwTs5Wz3eWW2XEVCYmRjGWZs04N BD2vh2WiQUl5yjcAy/khsRgdykHfrZnvwByluiZIce8nlap7ZTBOERGQXVqN8G5uX27J ES1w== 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:mime-version:content-transfer-encoding; bh=x63lLl9f+6cQ+FEOwh37vVD+gThLxL62LXc3QDA9ZeM=; b=RvSKoO3FFMDSW0WrhEJv4Od7m1hPPJvZ1IyvUXscfxs7GNVlJtxhMQrI94LHyqz/E2 sGCA75WWPTuKIrJwr55eeeW3xgpidyAhSHNLq7PRulyP2tWe0IHmuDD+Wld6mOMoCkg1 KSiH3fQt1ULGCKAnlgphDz7s/S/F8GubFmmk1GeNvRiId5D4sMylD1//0DrsGzNRvNED xRIXv685w+RP2xYjLzvT8RfqS0vh5IFKdBeMbNKRrz9wt1XW/zF+AJpeMbQCMaX854n4 B6rAVfrbWFc+7UMrPd3PdilZibQKgoe6ewrmmNTaEtapXIhlUw0kKKSrpVqQOmbJ/nZs y09g== X-Gm-Message-State: AOAM532u1cH1+C9qw8DhwRPAp/SQ6KOfDiuHFTgbk1qGEo0UYh6LJM/i wNfE2gW8wV0n2fjy39PkaH8= X-Received: by 2002:a17:906:a090:: with SMTP id q16mr479308ejy.236.1613091953672; Thu, 11 Feb 2021 17:05:53 -0800 (PST) Received: from localhost.localdomain (5-12-227-87.residential.rdsnet.ro. [5.12.227.87]) by smtp.gmail.com with ESMTPSA id z13sm5019580edc.73.2021.02.11.17.05.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 11 Feb 2021 17:05:53 -0800 (PST) From: Vladimir Oltean To: Jakub Kicinski , "David S. Miller" Cc: Andrew Lunn , Vivien Didelot , Florian Fainelli , netdev@vger.kernel.org, linux-kernel@vger.kernel.org, bridge@lists.linux-foundation.org, Roopa Prabhu , Nikolay Aleksandrov , Jiri Pirko , Ido Schimmel , Claudiu Manoil , Alexandre Belloni , UNGLinuxDriver@microchip.com, Vadym Kochan , Taras Chornyi , Grygorii Strashko , Ioana Ciornei , Ivan Vecera , linux-omap@vger.kernel.org Subject: [PATCH v4 net-next 7/9] net: mscc: ocelot: use separate flooding PGID for broadcast Date: Fri, 12 Feb 2021 03:05:29 +0200 Message-Id: <20210212010531.2722925-8-olteanv@gmail.com> X-Mailer: git-send-email 2.25.1 In-Reply-To: <20210212010531.2722925-1-olteanv@gmail.com> References: <20210212010531.2722925-1-olteanv@gmail.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Vladimir Oltean In preparation of offloading the bridge port flags which have independent settings for unknown multicast and for broadcast, we should also start reserving one destination Port Group ID for the flooding of broadcast packets, to allow configuring it individually. Signed-off-by: Vladimir Oltean Reviewed-by: Florian Fainelli --- Changes in v4: None. Changes in v3: None. Changes in v2: None. drivers/net/ethernet/mscc/ocelot.c | 13 ++++++++----- include/soc/mscc/ocelot.h | 15 ++++++++------- 2 files changed, 16 insertions(+), 12 deletions(-) diff --git a/drivers/net/ethernet/mscc/ocelot.c b/drivers/net/ethernet/mscc/ocelot.c index 1654a6e22a7d..1a31598e2ae6 100644 --- a/drivers/net/ethernet/mscc/ocelot.c +++ b/drivers/net/ethernet/mscc/ocelot.c @@ -1716,7 +1716,7 @@ int ocelot_init(struct ocelot *ocelot) /* Setup flooding PGIDs */ for (i = 0; i < ocelot->num_flooding_pgids; i++) ocelot_write_rix(ocelot, ANA_FLOODING_FLD_MULTICAST(PGID_MC) | - ANA_FLOODING_FLD_BROADCAST(PGID_MC) | + ANA_FLOODING_FLD_BROADCAST(PGID_BC) | ANA_FLOODING_FLD_UNICAST(PGID_UC), ANA_FLOODING, i); ocelot_write(ocelot, ANA_FLOODING_IPMC_FLD_MC6_DATA(PGID_MCIPV6) | @@ -1737,15 +1737,18 @@ int ocelot_init(struct ocelot *ocelot) ocelot_write_rix(ocelot, 0, ANA_PGID_PGID, PGID_SRC + port); } - /* Allow broadcast MAC frames. */ for_each_nonreserved_multicast_dest_pgid(ocelot, i) { u32 val = ANA_PGID_PGID_PGID(GENMASK(ocelot->num_phys_ports - 1, 0)); ocelot_write_rix(ocelot, val, ANA_PGID_PGID, i); } - ocelot_write_rix(ocelot, - ANA_PGID_PGID_PGID(GENMASK(ocelot->num_phys_ports, 0)), - ANA_PGID_PGID, PGID_MC); + /* Allow broadcast and unknown L2 multicast to the CPU. */ + ocelot_rmw_rix(ocelot, ANA_PGID_PGID_PGID(BIT(ocelot->num_phys_ports)), + ANA_PGID_PGID_PGID(BIT(ocelot->num_phys_ports)), + ANA_PGID_PGID, PGID_MC); + ocelot_rmw_rix(ocelot, ANA_PGID_PGID_PGID(BIT(ocelot->num_phys_ports)), + ANA_PGID_PGID_PGID(BIT(ocelot->num_phys_ports)), + ANA_PGID_PGID, PGID_BC); ocelot_write_rix(ocelot, 0, ANA_PGID_PGID, PGID_MCIPV4); ocelot_write_rix(ocelot, 0, ANA_PGID_PGID, PGID_MCIPV6); diff --git a/include/soc/mscc/ocelot.h b/include/soc/mscc/ocelot.h index bfce3df61bfd..9acbef1416f1 100644 --- a/include/soc/mscc/ocelot.h +++ b/include/soc/mscc/ocelot.h @@ -54,16 +54,17 @@ * PGID_CPU: used for whitelisting certain MAC addresses, such as the addresses * of the switch port net devices, towards the CPU port module. * PGID_UC: the flooding destinations for unknown unicast traffic. - * PGID_MC: the flooding destinations for broadcast and non-IP multicast - * traffic. + * PGID_MC: the flooding destinations for non-IP multicast traffic. * PGID_MCIPV4: the flooding destinations for IPv4 multicast traffic. * PGID_MCIPV6: the flooding destinations for IPv6 multicast traffic. + * PGID_BC: the flooding destinations for broadcast traffic. */ -#define PGID_CPU 59 -#define PGID_UC 60 -#define PGID_MC 61 -#define PGID_MCIPV4 62 -#define PGID_MCIPV6 63 +#define PGID_CPU 58 +#define PGID_UC 59 +#define PGID_MC 60 +#define PGID_MCIPV4 61 +#define PGID_MCIPV6 62 +#define PGID_BC 63 #define for_each_unicast_dest_pgid(ocelot, pgid) \ for ((pgid) = 0; \ -- 2.25.1