From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ilias Apalodimas Subject: Re: [RFC v2, net-next, PATCH 0/4] Add switchdev on TI-CPSW Date: Mon, 18 Jun 2018 20:49:22 +0300 Message-ID: <20180618174922.GA28394@apalos> References: <1528974690-31600-1-git-send-email-ilias.apalodimas@linaro.org> <20180618150424.GA5865@lunn.ch> <20180618160418.GA25068@apalos> <20180618162836.GD5865@lunn.ch> <20180618164602.GA26411@apalos> <20180618173025.GF5865@lunn.ch> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: netdev@vger.kernel.org, grygorii.strashko@ti.com, ivan.khoronzhuk@linaro.org, nsekhar@ti.com, jiri@resnulli.us, ivecera@redhat.com, f.fainelli@gmail.com, francois.ozog@linaro.org, yogeshs@ti.com, spatton@ti.com, Jose.Abreu@synopsys.com To: Andrew Lunn Return-path: Received: from mail-wr0-f196.google.com ([209.85.128.196]:39417 "EHLO mail-wr0-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S934963AbeFRRt1 (ORCPT ); Mon, 18 Jun 2018 13:49:27 -0400 Received: by mail-wr0-f196.google.com with SMTP id w7-v6so17738562wrn.6 for ; Mon, 18 Jun 2018 10:49:26 -0700 (PDT) Content-Disposition: inline In-Reply-To: <20180618173025.GF5865@lunn.ch> Sender: netdev-owner@vger.kernel.org List-ID: On Mon, Jun 18, 2018 at 07:30:25PM +0200, Andrew Lunn wrote: > On Mon, Jun 18, 2018 at 07:46:02PM +0300, Ilias Apalodimas wrote: > > On Mon, Jun 18, 2018 at 06:28:36PM +0200, Andrew Lunn wrote: > > > > Yes, if the CPU port is added on the VLAN then unregistered multicast traffic > > > > (and thus IGMP joins) will reach the CPU port and everything will work as > > > > expected. I think we should not consider this as a "problem" as long as it's > > > > descibed properly in Documentation. This switch is excected to support this. > > > > > > Back to the two e1000e. What would you expect to happen with them? > > > Either IGMP snooping needs to work, or your don't do snooping at > > > all. > > That's a different use case > > I disagree. That is the exact same use case. I add ports to a bridge > and i expect the bridge to either do IGMP snooping, or just forward > all multicast. That is the users expectations. That is how the Linux > network stack works. If the hardware has limitations you want to try > to hide them from the user. Why is this a limitation? Isn't it proper functionality? If you configure the CPU port as "passthrough" (which again is the default) then everything works just like e1000e. The user doesn't have to do anything at all, MDBs are added/deleted based on proper timers/joins etc. If the user chooses to use the cpu port as a kind of internal L-2 filter, that's up to him, but having hardware do the filtering for you isn't something i'd call a limitation. I am not sure what's the case here though. The hardware operates as you want by defaulti. As added functionality the user can, if he chooses to, add the MDBs manually instead of having some piece of code do that for him. This was clearly described in the first RFC since it was the only reason to add a CPU port. Is there a problem with the user controlling these capabilities of the hardware? > > > So by default, it just needs to work. You can give the user the option > > > to shoot themselves in the foot, but they need to actively pull the > > > trigger to blow their own foot off. > > > Yes it does by default. I don't consider it "foot shooting" though. > > If we stop thinking about switches connected to user environments > > I never think about switches. I think about a block of acceleration > hardware, which i try to offload Linux networking to. And if the > hardware cannot accelerate Linux network functions properly, i don't > try to offload it. That way it always operates in the same way, and > the user expectations are clear. > > Andrew The acceleration block is working properly here. The user has the ability to instruct the acceleration block not to accelerate all the traffic but specific cases he chooses to. Isn't that a valid use case since the hardware supports that ? Regards Ilias