From: Andrew Lunn <andrew@lunn.ch>
To: Chris Healy <cphealy@gmail.com>
Cc: "Guenter Roeck" <linux@roeck-us.net>,
netdev@vger.kernel.org,
"Vivien Didelot" <vivien.didelot@savoirfairelinux.com>,
David <davem@davemloft.net>,
linux-kernel <linux-kernel@vger.kernel.org>,
"Jérome Oufella" <jerome.oufella@savoirfairelinux.com>,
kernel <kernel@savoirfairelinux.com>,
"Florian Fainelli" <f.fainelli@gmail.com>,
"Scott Feldman" <sfeldma@gmail.com>,
"Jiri Pirko" <jiri@resnulli.us>
Subject: Re: [RFC 7/9] net: dsa: mv88e6352: lock CPU port from learning addresses
Date: Wed, 3 Jun 2015 22:51:12 +0200 [thread overview]
Message-ID: <20150603205112.GD22878@lunn.ch> (raw)
In-Reply-To: <CAFXsbZo7DAhbUErMfKas_KUtXMHTURgOxwz-GSr=fuAHLWToEQ@mail.gmail.com>
On Tue, Jun 02, 2015 at 07:31:56PM -0700, Chris Healy wrote:
> Guenter,
>
> That's a very valid concern. I have a configuration with a 6352 controlled
> by a low end ARM core with a 100mbps connection on the CPU port. This
> switch needs to support passing multicast streams that are more than
> 100mbps on GigE links. (The ARM does not need to consume the multicast, it
> just manages the switch.)
Hi Chris
Thinking out load here...
There are two use cases:
1) Without bridging. The switch ports are seen as host interfaces.
Host interfaces are expected to accept packets for there own MAC
address and the broadcast address. Additional multicast addresses
can be added and the ndo_set_rx_mode() method of the driver is
called to get to hardware to accept these MAC addresses. DSA has an
implementation of ndo_set_rx_mode(), but all it does is ask the
kernel to do the filtering. We need to extend it to program the
hardware to only pass frames which match the addresses on the
lists. This should be just adding some static forwarding
entries. Then, so long as an application on the host does not join
any of the multicast groups, the frames should never be passed to
the host.
2) With bridging, things are a bit different. Interfaces in a bridge
are expected to be in promiscuous mode, receiving everything and
passing it to the bridge. With the hardware bridging support
Guenter added, we can off load unicast forwarding to the hardware.
However, we currently don't have full support for off-loading of
multicast. This falls into at a few different pieces:
a) Get the hardware to do a dumb flood to all ports in the bridge
group. However, the host is a member of the bridge, so it will
still get a copy of all the packets. It has to, there could be
members of the multicast groups on interfaces not accelerated by
the hardware.
b) Add limited IGMP snooping, so that the host bridge knows if it
needs to see multicast frames for a specific MAC address from
DSA interfaces or not, and program this into the hardware to
reduce the load on the host.
c) Add full IGMP snooping, so that the hardware no longer performs
dumb flooding, but only forwards out ports where there has been
an interest in the frames.
Until we get at least b) implemented, i would expect all multicast
packets to hit the host. In order to be correct in the general
case, they have to.
Andrew
next prev parent reply other threads:[~2015-06-03 20:56 UTC|newest]
Thread overview: 43+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-06-02 1:27 [RFC 0/9] net: dsa: mv88e6352: add 802.1q VLAN support Vivien Didelot
2015-06-02 1:27 ` [RFC 1/9] net: dsa: add basic support for switchdev obj Vivien Didelot
2015-06-02 1:27 ` [RFC 2/9] net: dsa: add basic support for VLAN operations Vivien Didelot
2015-06-02 6:52 ` Guenter Roeck
2015-06-02 14:42 ` Guenter Roeck
2015-06-03 0:45 ` Vivien Didelot
2015-06-02 1:27 ` [RFC 3/9] net: dsa: mv88e6xxx: add support for VTU ops Vivien Didelot
2015-06-02 6:50 ` Guenter Roeck
2015-06-02 7:44 ` Scott Feldman
2015-06-02 13:41 ` Guenter Roeck
2015-06-02 13:42 ` Andrew Lunn
2015-06-02 14:47 ` Guenter Roeck
2015-06-02 22:31 ` nolan
2015-06-03 6:53 ` Scott Feldman
2015-06-03 14:44 ` Guenter Roeck
2015-06-03 18:42 ` Florian Fainelli
2015-06-04 18:22 ` nolan
2015-06-03 1:39 ` Vivien Didelot
2015-06-03 2:17 ` Guenter Roeck
2015-06-03 14:56 ` Vivien Didelot
2015-06-03 15:39 ` Guenter Roeck
2015-06-02 13:05 ` Andrew Lunn
2015-06-02 1:27 ` [RFC 4/9] net: dsa: mv88e6352: add support for VLAN Vivien Didelot
2015-06-02 1:27 ` [RFC 5/9] net: dsa: mv88e6352: disable mirroring Vivien Didelot
2015-06-02 14:16 ` Guenter Roeck
2015-06-02 14:53 ` Andrew Lunn
2015-06-03 1:12 ` Vivien Didelot
2015-06-03 2:27 ` Guenter Roeck
2015-06-02 1:27 ` [RFC 6/9] net: dsa: mv88e6352: allow egress of unknown multicast Vivien Didelot
2015-06-02 14:20 ` Guenter Roeck
2015-06-03 1:52 ` Vivien Didelot
2015-06-09 22:42 ` Vivien Didelot
2015-06-02 1:27 ` [RFC 7/9] net: dsa: mv88e6352: lock CPU port from learning addresses Vivien Didelot
2015-06-02 14:24 ` Guenter Roeck
2015-06-03 1:06 ` Vivien Didelot
2015-06-03 2:24 ` Guenter Roeck
[not found] ` <CAFXsbZo7DAhbUErMfKas_KUtXMHTURgOxwz-GSr=fuAHLWToEQ@mail.gmail.com>
2015-06-03 4:17 ` Guenter Roeck
2015-06-03 20:51 ` Andrew Lunn [this message]
2015-06-02 1:27 ` [RFC 8/9] net: dsa: mv88e6352: set port 802.1Q mode to Secure Vivien Didelot
2015-06-02 14:31 ` Guenter Roeck
2015-06-02 23:45 ` Vivien Didelot
2015-06-02 23:28 ` Guenter Roeck
2015-06-02 1:27 ` [RFC 9/9] net: dsa: fix EDSA frame from hwaccel frame Vivien Didelot
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=20150603205112.GD22878@lunn.ch \
--to=andrew@lunn.ch \
--cc=cphealy@gmail.com \
--cc=davem@davemloft.net \
--cc=f.fainelli@gmail.com \
--cc=jerome.oufella@savoirfairelinux.com \
--cc=jiri@resnulli.us \
--cc=kernel@savoirfairelinux.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux@roeck-us.net \
--cc=netdev@vger.kernel.org \
--cc=sfeldma@gmail.com \
--cc=vivien.didelot@savoirfairelinux.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).