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 X-Spam-Level: X-Spam-Status: No, score=-3.9 required=3.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SIGNED_OFF_BY,SPF_PASS, URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 8C1C7C43381 for ; Sun, 17 Feb 2019 22:08:08 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 518032184E for ; Sun, 17 Feb 2019 22:08:08 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="hxdNN1HU" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726839AbfBQWIG (ORCPT ); Sun, 17 Feb 2019 17:08:06 -0500 Received: from mail-pg1-f196.google.com ([209.85.215.196]:38677 "EHLO mail-pg1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726124AbfBQWIG (ORCPT ); Sun, 17 Feb 2019 17:08:06 -0500 Received: by mail-pg1-f196.google.com with SMTP id m2so5157655pgl.5 for ; Sun, 17 Feb 2019 14:08:05 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:to:cc:references:from:openpgp:autocrypt:message-id:date :user-agent:mime-version:in-reply-to:content-language :content-transfer-encoding; bh=rP7DpLa6pbN69L65ZmBeAONYSyUy7gwqUMlIiuwlrPU=; b=hxdNN1HUakokH9l8Leo3qPQXZT/6wiyl9aj5fD+3tdCw6ArtxVkX2UsvBq1RJ03H0T sBJNL6Va+hPTCbx01by2PlUJW+5seCmsRTnV9xVZscdz4zsMyjSfEZOIMdyMq6pHsvNs C98zr91HyXOXMkmvoktLRfyxlwI+0XeqcKVCcs55jf1x9jLOXdFptmHGSEVhCcA+z74/ fg2cVjdhg8rCGONgEEs05O//xihSgIKuPr/6jaEgy3vq8UE/M96M/BXS2mjPz63LIKHO s61gUv/ddPBmto/NvU+zCe463zpdvuT04EmlK+fCQubVO+yPokn3oh8UVtYBAZDDoznK zywQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:cc:references:from:openpgp:autocrypt :message-id:date:user-agent:mime-version:in-reply-to :content-language:content-transfer-encoding; bh=rP7DpLa6pbN69L65ZmBeAONYSyUy7gwqUMlIiuwlrPU=; b=my4RQUiiCbknpe3uXaJ4mB6MtQ6amAWVQXzPei8QzsLWPmDHirBjwxuqJap2Vy/fmB eTSiEE7tnEJwdaDoFo/BE99P9j1OxXoeduFb16YYZVZ1Dg3a8f5nPhvPSRfGysLbQBW1 Te1inxrqdjKJs6Fk4vx8Myygyh366JFn2mHI8pBKzrcktF3DGvk5UjbDOrWThFfNOS/F W+HyZb3EF9lxdyPLwbKHnJgyNsypRlldd9GjMSi0yjpvIS6lLwSzLgE0zIhUfLFMo/9s YnDtVcdWbK3wdAkhQTQANROxXplZ06LfncIlHa4CKTckBesR8Tt3FZ++77lCB8k+OBto SeaQ== X-Gm-Message-State: AHQUAua+Su78qSFpoeqfW44WHgwoka6C8ldRYMIBHk1R8NzP2H0SsbtM zXRa7hFUwepxWMK6PN3aUgJE8hSC X-Google-Smtp-Source: AHgI3IaY1LxQuN2CuEd0DX2I8wnfCpCtF6pgMQce18nl4e3p2souK3ueSQ9/zkUWlD4CTL3MSxz/oQ== X-Received: by 2002:a63:cc12:: with SMTP id x18mr15770078pgf.33.1550441285100; Sun, 17 Feb 2019 14:08:05 -0800 (PST) Received: from [192.168.1.3] (ip68-228-73-187.oc.oc.cox.net. [68.228.73.187]) by smtp.gmail.com with ESMTPSA id e63sm2447196pfa.116.2019.02.17.14.08.01 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 17 Feb 2019 14:08:04 -0800 (PST) Subject: Re: [PATCH net-next 1/3] net: dsa: add support for bridge flags To: Russell King - ARM Linux admin Cc: Andrew Lunn , Vivien Didelot , "David S. Miller" , netdev@vger.kernel.org References: <20190217142414.cjtmpi5y2l5rtdlb@shell.armlinux.org.uk> <20190217220439.zqu7dz7kfukssrlz@shell.armlinux.org.uk> From: Florian Fainelli Openpgp: preference=signencrypt Autocrypt: addr=f.fainelli@gmail.com; keydata= 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 w0j9Sw== Message-ID: <0f607109-c037-2b7f-cf66-845ce4e7bf33@gmail.com> Date: Sun, 17 Feb 2019 14:07:54 -0800 User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:60.0) Gecko/20100101 Thunderbird/60.5.1 MIME-Version: 1.0 In-Reply-To: <20190217220439.zqu7dz7kfukssrlz@shell.armlinux.org.uk> Content-Type: text/plain; charset=utf-8 Content-Language: en-US Content-Transfer-Encoding: 7bit Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org On 2/17/2019 2:04 PM, Russell King - ARM Linux admin wrote: > On Sun, Feb 17, 2019 at 01:37:19PM -0800, Florian Fainelli wrote: >> >> >> On 2/17/2019 6:25 AM, Russell King wrote: >>> The Linux bridge implementation allows various properties of the bridge >>> to be controlled, such as flooding unknown unicast and multicast frames. >>> This patch adds the necessary DSA infrastructure to allow the Linux >>> bridge support to control these properties for DSA switches. >>> >>> We implement this by providing two new methods: one to get the switch- >>> wide support bitmask, and another to set the properties. >>> >>> Signed-off-by: Russell King >>> --- >> >> [snip] >> >>> >>> +int dsa_port_bridge_flags(const struct dsa_port *dp, unsigned long flags, >>> + struct switchdev_trans *trans) >>> +{ >>> + struct dsa_switch *ds = dp->ds; >>> + int port = dp->index; >>> + >>> + if (switchdev_trans_ph_prepare(trans)) >>> + return ds->ops->port_bridge_flags ? 0 : -EOPNOTSUPP; >>> + >>> + if (ds->ops->port_bridge_flags) >>> + ds->ops->port_bridge_flags(ds, port, flags); >> >> If you have a switch fabric with multiple switches, it seems to me that >> you also need to make sure that the DSA and CPU ports will have >> compatible flooding attribute, so just like the port_vlan_add() >> callback, you probably need to make this a switch fabric-wide event and >> use a notifier here. At least the DSA ports need to have MC flooding >> turned on for an user port to also have MC flooding working. > > mv88e6xxx already today detects CPU and DSA ports and sets unicast > and multicast flooding for these ports - see > mv88e6xxx_setup_egress_floods(): Indeed, probably for historical reasons, since that type of logic should ideally be migrated to the core DSA layer, this is fine for now though. > > /* Upstream ports flood frames with unknown unicast or multicast DA */ > flood = dsa_is_cpu_port(ds, port) || dsa_is_dsa_port(ds, port); > if (chip->info->ops->port_set_egress_floods) > return chip->info->ops->port_set_egress_floods(chip, port, > flood, flood); > -- Florian