From patchwork Tue Jan 15 19:41:16 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Florian Fainelli X-Patchwork-Id: 1025386 Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="sK33rArz"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 43fLMt0fp3z9s9G for ; Wed, 16 Jan 2019 06:42:34 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2389414AbfAOTmc (ORCPT ); Tue, 15 Jan 2019 14:42:32 -0500 Received: from mail-pl1-f195.google.com ([209.85.214.195]:41720 "EHLO mail-pl1-f195.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2389302AbfAOTmc (ORCPT ); Tue, 15 Jan 2019 14:42:32 -0500 Received: by mail-pl1-f195.google.com with SMTP id u6so1750885plm.8 for ; Tue, 15 Jan 2019 11:42:31 -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; bh=tAxBh58JChD2P6JdbXrO0z4FS8xJREBCA7gc1gJbQ4M=; b=sK33rArzI6KNNcjzZl8NsKXdxh8CJ0eB63nE/lj5MJtth3WmIA9YJIk1xg65vdjvsf 0FO69uCfhjImqEgD/2Ho2ShRLnEm7NO7d4LDCysgPeILqZ/51P2DNpy0jFjRqbo/T+u6 IR6c+LaLc+B0RAL5nCxUNt+LBDESjdAKrxmJ/zSVE4ogdF8GUXczGTJI2sPHB3fMkr19 CT9EWQfL3pdQLbmJuX791TxbU4eXjw9tPjnxNlBSU0eLZGF5gZtAgMsROcld8BQvmGRX U5pM/poE0ZfOKP8kYg9YqVCn5GMc3U49P2FKJxYxf8DSrZpPScFfUffyG3ZOBYm7PQAI eoOQ== 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; bh=tAxBh58JChD2P6JdbXrO0z4FS8xJREBCA7gc1gJbQ4M=; b=Xsz1cMFgPuF2TPaT6hmtltH+RQyOLWGsGkTslHWFqjvxDCVoAJXYygZMUJtJB7MVRd S69swxi1umwPrRaFufo7spnPBRYPke0OScxULxQDUMCeDqcRuUhh7x7JpIboXFedbrhS V2oei86RedyLaqTmoI/RMTxztBZVXTdOuOGq0addRnPjNRSEkX5k/BkQfD7ijG17mnSk QVqS+6ac2gxhAuFZUiyOV6ksCJny8sSRpgdZJmetZc8M6Bdx9Gftp2PzJiwlTvBuX1Uv weiL7HfYRwMMTuI1FEB1+TtZ0Fkrp9t9tviUaf1jUD2O2uXGx0+WiIbVQ32W5xDHh0UE EoyA== X-Gm-Message-State: AJcUukdB9pxq/qo50uyrfoVPbl3Eu2SzdjorY6PdKBCq4NRwuL3vs5Bk FrfOvr1y+1GDs12tlkNaMKcGhpO9 X-Google-Smtp-Source: ALg8bN5pFGoLUFDawLyquuNQM4VbKw5F8kXdKAV/dOayyrrexx1dniUp0KHS+48UbDKbJTTqxn6YZg== X-Received: by 2002:a17:902:8a8a:: with SMTP id p10mr5851401plo.50.1547581350671; Tue, 15 Jan 2019 11:42:30 -0800 (PST) Received: from fainelli-desktop.igp.broadcom.net ([192.19.223.250]) by smtp.gmail.com with ESMTPSA id 128sm6954262pfu.129.2019.01.15.11.42.28 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 15 Jan 2019 11:42:29 -0800 (PST) From: Florian Fainelli To: netdev@vger.kernel.org Cc: Florian Fainelli , andrew@lunn.ch, vivien.didelot@gmail.com, davem@davemloft.net, idosch@mellanox.com, jiri@mellanox.com, ilias.apalodimas@linaro.org, ivan.khoronzhuk@linaro.org, roopa@cumulusnetworks.com, nikolay@cumulusnetworks.com Subject: [RFC net-next 00/14] net: dsa: management mode for bcm_sf2 Date: Tue, 15 Jan 2019 11:41:16 -0800 Message-Id: <20190115194130.19896-1-f.fainelli@gmail.com> X-Mailer: git-send-email 2.17.1 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Hi all, This patch series does a number of things in order to enable management mode for bcm_sf2 (which could be easily extended to b53 with proper testing later on). In order to get there, there were several use cases that did not seem to be working correctly, such as: - VLAN devices on top of switch ports not being member of a bridge, with other switch ports being bridged, with the bridge having VLAN filtering enabled. - lack of multicast filtering by default on network ports which should be happening in order for the non-bridged DSA ports to behave strictly as Ethernet NICs with proper filering - improper or even lack of MDB programming requests for network ports that are not part of a bridge, or when the bridge has multicast snooping turned off Hopefully the changes to net/8021q and net/bridge are deemed acceptable. Here are some of the uses cases that were tested after this patch series (all commands are running on the device being tested) and iperf/ping/etc. should be working for/after all steps: echo "file drivers/net/dsa/b53/b53_common.c +p" > /sys/kernel/debug/dynamic_debug/control echo 8 7 4 1 > /proc/sys/kernel/printk killall udhcpc ip addr flush dev gphy ip link add dev br0 type bridge echo 1 > /sys/class/net/br0/bridge/vlan_filtering ip link set dev gphy master br0 udhcpc -i br0 ip ro add 226.94.1.1/32 dev br0 iperf -s -B 226.94.1.1 -u & vconfig add rgmii_1 100 ifconfig rgmii_1.100 192.168.100.10 ping -c 5 192.168.100.1 ip ro add 226.95.1.2/32 dev rgmii_1.100 iperf -s -B 226.95.1.2 -u & vconfig add br0 42 bridge vlan add vid 42 dev gphy bridge vlan add vid 42 dev br0 self ifconfig br0.42 192.168.42.2 ip ro add 226.96.1.3/32 dev br0.42 Florian Fainelli (14): net: bridge: multicast: Propagate br_mc_disabled_update() return net: dsa: b53: Fix default VLAN ID net: dsa: b53: Properly account for VLAN filtering net: systemport: Fix reception of BPDUs net: dsa: b53: Define registers for IGMP snooping net: dsa: b53: Add support for MDB net: dsa: Add ability to program multicast filter for CPU port net: dsa: Add ndo_vlan_rx_{add,kill}_vid implementation net: bridge: Propagate MC addresses with VID through switchdev net: vlan: Propagate MC addresses with VID through switchdev net: dsa: Make VLAN filtering use DSA notifiers net: dsa: Wire up multicast IGMP snooping attribute notification net: dsa: b53: Add support for toggling IGMP snooping net: dsa: bcm_sf2: Enable management mode drivers/net/dsa/b53/b53_common.c | 219 ++++++++++++++++++--- drivers/net/dsa/b53/b53_priv.h | 14 +- drivers/net/dsa/b53/b53_regs.h | 22 +++ drivers/net/dsa/bcm_sf2.c | 56 ++++-- drivers/net/dsa/bcm_sf2_regs.h | 5 + drivers/net/ethernet/broadcom/bcmsysport.c | 4 + include/net/dsa.h | 2 + net/8021q/vlan_dev.c | 40 ++++ net/bridge/br_device.c | 55 ++++++ net/bridge/br_multicast.c | 19 +- net/dsa/dsa_priv.h | 22 ++- net/dsa/port.c | 42 ++-- net/dsa/slave.c | 107 +++++++++- net/dsa/switch.c | 57 ++++++ 14 files changed, 607 insertions(+), 57 deletions(-)