From: "Allan W. Nielsen" <allan.nielsen@microchip.com>
To: Vladimir Oltean <olteanv@gmail.com>
Cc: <andrew@lunn.ch>, <f.fainelli@gmail.com>,
<vivien.didelot@gmail.com>, <davem@davemloft.net>,
<jiri@resnulli.us>, <idosch@idosch.org>, <kuba@kernel.org>,
<ivecera@redhat.com>, <netdev@vger.kernel.org>,
<horatiu.vultur@microchip.com>, <nikolay@cumulusnetworks.com>,
<roopa@cumulusnetworks.com>
Subject: Re: [PATCH RFC net-next 00/13] RX filtering for DSA switches
Date: Fri, 22 May 2020 20:42:34 +0200 [thread overview]
Message-ID: <20200522184104.nxjz35cxgj5iwxne@ws.localdomain> (raw)
In-Reply-To: <20200521211036.668624-1-olteanv@gmail.com>
Hi Vladimir,
I'm very happy to see that you started working on this. Let me know if
you need help to update the Ocelot/Felix driver to support this.
/Allan
On 22.05.2020 00:10, Vladimir Oltean wrote:
>EXTERNAL EMAIL: Do not click links or open attachments unless you know the content is safe
>
>From: Vladimir Oltean <vladimir.oltean@nxp.com>
>
>This is a WIP series whose stated goal is to allow DSA and switchdev
>drivers to flood less traffic to the CPU while keeping the same level of
>functionality.
>
>The strategy is to whitelist towards the CPU only the {DMAC, VLAN} pairs
>that the operating system has expressed its interest in, either due to
>those being the MAC addresses of one of the switch ports, or addresses
>added to our device's RX filter via calls to dev_uc_add/dev_mc_add.
>Then, the traffic which is not explicitly whitelisted is not sent by the
>hardware to the CPU, under the assumption that the CPU didn't ask for it
>and would have dropped it anyway.
>
>The ground for these patches were the discussions surrounding RX
>filtering with switchdev in general, as well as with DSA in particular:
>
>"[PATCH net-next 0/4] DSA: promisc on master, generic flow dissector code":
>https://www.spinics.net/lists/netdev/msg651922.html
>"[PATCH v3 net-next 2/2] net: dsa: felix: Allow unknown unicast traffic towards the CPU port module":
>https://www.spinics.net/lists/netdev/msg634859.html
>"[PATCH v3 0/2] net: core: Notify on changes to dev->promiscuity":
>https://lkml.org/lkml/2019/8/29/255
>LPC2019 - SwitchDev offload optimizations:
>https://www.youtube.com/watch?v=B1HhxEcU7Jg
>
>Unicast filtering comes to me as most important, and this includes
>termination of MAC addresses corresponding to the network interfaces in
>the system (DSA switch ports, VLAN sub-interfaces, bridge interface).
>The first 4 patches use Ivan Khoronzhuk's IVDF framework for extending
>network interface addresses with a Virtual ID (typically VLAN ID). This
>matches DSA switches perfectly because their FDB already contains keys
>of the {DMAC, VID} form.
>
>Multicast filtering was taken and reworked from Florian Fainelli's
>previous attempts, according to my own understanding of multicast
>forwarding requirements of an IGMP snooping switch. This is the part
>that needs the most extra work, not only in the DSA core but also in
>drivers. For this reason, I've left out of this patchset anything that
>has to do with driver-level configuration (since the audience is a bit
>larger than usual), as I'm trying to focus more on policy for now, and
>the series is already pretty huge.
>
>Florian Fainelli (3):
> net: bridge: multicast: propagate br_mc_disabled_update() return
> net: dsa: add ability to program unicast and multicast filters for CPU
> port
> net: dsa: wire up multicast IGMP snooping attribute notification
>
>Ivan Khoronzhuk (4):
> net: core: dev_addr_lists: add VID to device address
> net: 8021q: vlan_dev: add vid tag to addresses of uc and mc lists
> net: 8021q: vlan_dev: add vid tag for vlan device own address
> ethernet: eth: add default vid len for all ethernet kind devices
>
>Vladimir Oltean (6):
> net: core: dev_addr_lists: export some raw __hw_addr helpers
> net: dsa: don't use switchdev_notifier_fdb_info in
> dsa_switchdev_event_work
> net: dsa: mroute: don't panic the kernel if called without the prepare
> phase
> net: bridge: add port flags for host flooding
> net: dsa: deal with new flooding port attributes from bridge
> net: dsa: treat switchdev notifications for multicast router connected
> to port
>
> include/linux/if_bridge.h | 3 +
> include/linux/if_vlan.h | 2 +
> include/linux/netdevice.h | 11 ++
> include/net/dsa.h | 17 +++
> net/8021q/Kconfig | 12 ++
> net/8021q/vlan.c | 3 +
> net/8021q/vlan.h | 2 +
> net/8021q/vlan_core.c | 25 ++++
> net/8021q/vlan_dev.c | 102 +++++++++++---
> net/bridge/br_if.c | 40 ++++++
> net/bridge/br_multicast.c | 21 ++-
> net/bridge/br_switchdev.c | 4 +-
> net/core/dev_addr_lists.c | 144 +++++++++++++++----
> net/dsa/Kconfig | 1 +
> net/dsa/dsa2.c | 6 +
> net/dsa/dsa_priv.h | 27 +++-
> net/dsa/port.c | 155 ++++++++++++++++----
> net/dsa/slave.c | 288 +++++++++++++++++++++++++++++++-------
> net/dsa/switch.c | 36 +++++
> net/ethernet/eth.c | 12 +-
> 20 files changed, 780 insertions(+), 131 deletions(-)
>
>--
>2.25.1
>
/Allan
next prev parent reply other threads:[~2020-05-22 18:42 UTC|newest]
Thread overview: 46+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-05-21 21:10 [PATCH RFC net-next 00/13] RX filtering for DSA switches Vladimir Oltean
2020-05-21 21:10 ` [PATCH RFC net-next 01/13] net: core: dev_addr_lists: add VID to device address Vladimir Oltean
2020-05-21 21:10 ` [PATCH RFC net-next 02/13] net: 8021q: vlan_dev: add vid tag to addresses of uc and mc lists Vladimir Oltean
2020-05-21 21:10 ` [PATCH RFC net-next 03/13] net: 8021q: vlan_dev: add vid tag for vlan device own address Vladimir Oltean
2020-05-21 21:10 ` [PATCH RFC net-next 04/13] ethernet: eth: add default vid len for all ethernet kind devices Vladimir Oltean
2020-05-21 21:10 ` [PATCH RFC net-next 05/13] net: bridge: multicast: propagate br_mc_disabled_update() return Vladimir Oltean
2020-05-21 21:10 ` [PATCH RFC net-next 06/13] net: core: dev_addr_lists: export some raw __hw_addr helpers Vladimir Oltean
2020-05-21 21:10 ` [PATCH RFC net-next 07/13] net: dsa: don't use switchdev_notifier_fdb_info in dsa_switchdev_event_work Vladimir Oltean
2020-05-21 21:10 ` [PATCH RFC net-next 08/13] net: dsa: add ability to program unicast and multicast filters for CPU port Vladimir Oltean
2020-05-21 21:10 ` [PATCH RFC net-next 09/13] net: dsa: mroute: don't panic the kernel if called without the prepare phase Vladimir Oltean
2020-05-21 21:10 ` [PATCH RFC net-next 10/13] net: bridge: add port flags for host flooding Vladimir Oltean
2020-05-22 12:38 ` Nikolay Aleksandrov
2020-05-22 13:13 ` Vladimir Oltean
2020-05-22 18:45 ` Allan W. Nielsen
2020-07-20 11:08 ` Vladimir Oltean
2020-05-24 14:26 ` Ido Schimmel
2020-05-24 16:13 ` Vladimir Oltean
2020-05-25 20:11 ` Ido Schimmel
2020-05-25 20:32 ` Vladimir Oltean
2020-07-23 22:35 ` Vladimir Oltean
2020-07-27 17:15 ` Ido Schimmel
2020-05-21 21:10 ` [PATCH RFC net-next 11/13] net: dsa: deal with new flooding port attributes from bridge Vladimir Oltean
2020-05-21 21:10 ` [PATCH RFC net-next 12/13] net: dsa: treat switchdev notifications for multicast router connected to port Vladimir Oltean
2020-05-21 21:10 ` [PATCH RFC net-next 13/13] net: dsa: wire up multicast IGMP snooping attribute notification Vladimir Oltean
2020-05-22 18:42 ` Allan W. Nielsen [this message]
2020-05-24 14:06 ` [PATCH RFC net-next 00/13] RX filtering for DSA switches Ido Schimmel
2020-05-24 16:24 ` Vladimir Oltean
2020-05-25 19:48 ` Ido Schimmel
2020-05-25 20:23 ` Vladimir Oltean
2020-05-26 14:01 ` Ido Schimmel
2020-05-27 11:36 ` Vladimir Oltean
2020-05-28 14:37 ` Ido Schimmel
2020-07-20 10:00 ` Vladimir Oltean
2020-07-27 16:56 ` Ido Schimmel
2020-10-27 11:52 ` Vladimir Oltean
2020-10-28 14:43 ` Ido Schimmel
2020-10-28 18:46 ` Vladimir Oltean
2020-11-01 11:27 ` Ido Schimmel
2020-11-01 12:06 ` Vladimir Oltean
2020-11-01 14:42 ` Ido Schimmel
2020-11-01 15:04 ` Vladimir Oltean
2020-11-01 15:39 ` Ido Schimmel
2020-11-01 16:13 ` Vladimir Oltean
2020-11-11 4:12 ` Florian Fainelli
2020-05-24 16:13 ` Florian Fainelli
2020-05-24 16:34 ` Vladimir Oltean
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20200522184104.nxjz35cxgj5iwxne@ws.localdomain \
--to=allan.nielsen@microchip.com \
--cc=andrew@lunn.ch \
--cc=davem@davemloft.net \
--cc=f.fainelli@gmail.com \
--cc=horatiu.vultur@microchip.com \
--cc=idosch@idosch.org \
--cc=ivecera@redhat.com \
--cc=jiri@resnulli.us \
--cc=kuba@kernel.org \
--cc=netdev@vger.kernel.org \
--cc=nikolay@cumulusnetworks.com \
--cc=olteanv@gmail.com \
--cc=roopa@cumulusnetworks.com \
--cc=vivien.didelot@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).