diff mbox

[v2] net: dsa: mv88e6xxx: forward unknown mc packets on mv88e6097

Message ID 20161123165440.4894-1-stefan.eichenberger@netmodule.com
State Superseded, archived
Delegated to: David Miller
Headers show

Commit Message

Stefan Eichenberger Nov. 23, 2016, 4:54 p.m. UTC
Packets with unknown destination addresses are not forwarded to the cpu
port on mv88e6097 based switches (e.g. MV88E6097) at the moment. This
commit enables PORT_CONTROL_FORWARD_UNKNOWN_MC for this family.

Signed-off-by: Stefan Eichenberger <stefan.eichenberger@netmodule.com>
---
 drivers/net/dsa/mv88e6xxx/chip.c | 4 ++++
 1 file changed, 4 insertions(+)

Comments

Andrew Lunn Nov. 23, 2016, 4:59 p.m. UTC | #1
On Wed, Nov 23, 2016 at 05:54:40PM +0100, Stefan Eichenberger wrote:
> Packets with unknown destination addresses are not forwarded to the cpu
> port on mv88e6097 based switches (e.g. MV88E6097) at the moment. This
> commit enables PORT_CONTROL_FORWARD_UNKNOWN_MC for this family.

Please try adding MV88E6XXX_FLAG_EDSA to
MV88E6XXX_FLAGS_FAMILY_6097. That is the better fix if it works.

     Andrew
Stefan Eichenberger Nov. 23, 2016, 5:14 p.m. UTC | #2
On Wed, Nov 23, 2016 at 05:59:49PM +0100, Andrew Lunn wrote:
> On Wed, Nov 23, 2016 at 05:54:40PM +0100, Stefan Eichenberger wrote:
> > Packets with unknown destination addresses are not forwarded to the cpu
> > port on mv88e6097 based switches (e.g. MV88E6097) at the moment. This
> > commit enables PORT_CONTROL_FORWARD_UNKNOWN_MC for this family.
> 
> Please try adding MV88E6XXX_FLAG_EDSA to
> MV88E6XXX_FLAGS_FAMILY_6097. That is the better fix if it works.

I was even wondering what EDSA means:) Thanks this solved the problem!

Regards
Stefan
Andrew Lunn Nov. 23, 2016, 5:32 p.m. UTC | #3
On Wed, Nov 23, 2016 at 06:14:41PM +0100, Stefan Eichenberger wrote:
> On Wed, Nov 23, 2016 at 05:59:49PM +0100, Andrew Lunn wrote:
> > On Wed, Nov 23, 2016 at 05:54:40PM +0100, Stefan Eichenberger wrote:
> > > Packets with unknown destination addresses are not forwarded to the cpu
> > > port on mv88e6097 based switches (e.g. MV88E6097) at the moment. This
> > > commit enables PORT_CONTROL_FORWARD_UNKNOWN_MC for this family.
> > 
> > Please try adding MV88E6XXX_FLAG_EDSA to
> > MV88E6XXX_FLAGS_FAMILY_6097. That is the better fix if it works.
> 
> I was even wondering what EDSA means:) Thanks this solved the problem!

Great.

We should fix up a few minor issues and resubmit.

What is the status of the first patch, which added 6097 to the driver?
I don't think David accepted it yet. So lets make one patchset
containing the two patches.

The subject line of the patches need to have net-next in it. e.g.

[PATCH net-next 0/2] Add support for the MV88e6097

Include a cover node, saying what the patchset as a whole does.
This gets used as the merge commit message.

Then the two patches.

When posting the patchset, please start a new thread. A new version of
a patchset or patch should be a new thread.

Thanks
	Andrew
Andrew Lunn Nov. 23, 2016, 5:40 p.m. UTC | #4
On Wed, Nov 23, 2016 at 06:14:41PM +0100, Stefan Eichenberger wrote:
> On Wed, Nov 23, 2016 at 05:59:49PM +0100, Andrew Lunn wrote:
> > On Wed, Nov 23, 2016 at 05:54:40PM +0100, Stefan Eichenberger wrote:
> > > Packets with unknown destination addresses are not forwarded to the cpu
> > > port on mv88e6097 based switches (e.g. MV88E6097) at the moment. This
> > > commit enables PORT_CONTROL_FORWARD_UNKNOWN_MC for this family.
> > 
> > Please try adding MV88E6XXX_FLAG_EDSA to
> > MV88E6XXX_FLAGS_FAMILY_6097. That is the better fix if it works.
> 
> I was even wondering what EDSA means:) Thanks this solved the problem!

Plain DSA puts four bytes of header between the MAC source address and
the EtherType/Length.

EDSA puts in an 8 byte header, and includes an Ethertype value of
0xdada. Having that ethertype value makes it more obvious what is
going on. And if you have a recent version of tcpdump, it will decode
the header.

    Andrew
Stefan Eichenberger Nov. 23, 2016, 5:49 p.m. UTC | #5
On Wed, Nov 23, 2016 at 06:32:30PM +0100, Andrew Lunn wrote:
> On Wed, Nov 23, 2016 at 06:14:41PM +0100, Stefan Eichenberger wrote:
> > On Wed, Nov 23, 2016 at 05:59:49PM +0100, Andrew Lunn wrote:
> > > On Wed, Nov 23, 2016 at 05:54:40PM +0100, Stefan Eichenberger wrote:
> > > > Packets with unknown destination addresses are not forwarded to the cpu
> > > > port on mv88e6097 based switches (e.g. MV88E6097) at the moment. This
> > > > commit enables PORT_CONTROL_FORWARD_UNKNOWN_MC for this family.
> > > 
> > > Please try adding MV88E6XXX_FLAG_EDSA to
> > > MV88E6XXX_FLAGS_FAMILY_6097. That is the better fix if it works.
> > 
> > I was even wondering what EDSA means:) Thanks this solved the problem!
> 
> Great.
> 
> We should fix up a few minor issues and resubmit.
> 
> What is the status of the first patch, which added 6097 to the driver?
> I don't think David accepted it yet. So lets make one patchset
> containing the two patches.
> 
> The subject line of the patches need to have net-next in it. e.g.
> 
> [PATCH net-next 0/2] Add support for the MV88e6097
> 
> Include a cover node, saying what the patchset as a whole does.
> This gets used as the merge commit message.
> 
> Then the two patches.

Perfect, thanks a lot for the help! The patchset will follow.

Thanks
Stefan
Vivien Didelot Nov. 23, 2016, 5:52 p.m. UTC | #6
Hi Andrew,

Andrew Lunn <andrew@lunn.ch> writes:

> And if you have a recent version of tcpdump, it will decode
> the header.

Since d729eb4, thanks to you Andrew ;-)

I move up the cleanup of ports setup in my priority list. The code is
quite cluttered at the moment and it's hard to read through it. We need
proper helpers for egress floods, (E)DSA setup, etc. like what is being
done for the other devices.

Thanks,

        Vivien
Andrew Lunn Nov. 23, 2016, 6:01 p.m. UTC | #7
On Wed, Nov 23, 2016 at 12:52:52PM -0500, Vivien Didelot wrote:
> Hi Andrew,
> 
> Andrew Lunn <andrew@lunn.ch> writes:
> 
> > And if you have a recent version of tcpdump, it will decode
> > the header.
> 
> Since d729eb4, thanks to you Andrew ;-)
> 
> I move up the cleanup of ports setup in my priority list.

Hi Vivien

Please take a look at my mv88e6390 branch. I already refactored this
code, because the mv88e6390 does something slightly different...

I hope to post another batch of mv88e6390 patches soon, and they will
include this cleanup. Since they will clash with these patches, i will
post them first as RFC.

      Andrew
Vivien Didelot Nov. 23, 2016, 6:18 p.m. UTC | #8
Hi Andrew,

Andrew Lunn <andrew@lunn.ch> writes:

> On Wed, Nov 23, 2016 at 12:52:52PM -0500, Vivien Didelot wrote:
>> Hi Andrew,
>> 
>> Andrew Lunn <andrew@lunn.ch> writes:
>> 
>> > And if you have a recent version of tcpdump, it will decode
>> > the header.
>> 
>> Since d729eb4, thanks to you Andrew ;-)
>> 
>> I move up the cleanup of ports setup in my priority list.
>
> Hi Vivien
>
> Please take a look at my mv88e6390 branch. I already refactored this
> code, because the mv88e6390 does something slightly different...
>
> I hope to post another batch of mv88e6390 patches soon, and they will
> include this cleanup. Since they will clash with these patches, i will
> post them first as RFC.

Perfect. Please split an RFC only including this cleanup if
possible. Fewer patches will be easier to review, since the first port
registers differs a lot.

Thanks,

        Vivien
diff mbox

Patch

diff --git a/drivers/net/dsa/mv88e6xxx/chip.c b/drivers/net/dsa/mv88e6xxx/chip.c
index b14b3d5..4d21086 100644
--- a/drivers/net/dsa/mv88e6xxx/chip.c
+++ b/drivers/net/dsa/mv88e6xxx/chip.c
@@ -2487,6 +2487,10 @@  static int mv88e6xxx_setup_port(struct mv88e6xxx_chip *chip, int port)
 				PORT_CONTROL_FORWARD_UNKNOWN_MC;
 		else
 			reg |= PORT_CONTROL_DSA_TAG;
+
+		if (mv88e6xxx_6097_family(chip))
+			reg |= PORT_CONTROL_FORWARD_UNKNOWN_MC;
+
 		reg |= PORT_CONTROL_EGRESS_ADD_TAG |
 			PORT_CONTROL_FORWARD_UNKNOWN;
 	}