[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <87zio4esv4.fsf@ketchup.mtl.sfl>
Date: Mon, 22 Aug 2016 11:16:47 -0400
From: Vivien Didelot <vivien.didelot@...oirfairelinux.com>
To: Andrew Lunn <andrew@...n.ch>, David Miller <davem@...emloft.net>
Cc: Jamie Lentin <jm@...tin.co.uk>,
Florian Fainelli <f.fainelli@...il.com>,
netdev <netdev@...r.kernel.org>
Subject: Re: [PATCH 4/4] net: mv88e6xxx: Enable PORT_CONTROL_FORWARD_UNKNOWN for DSA-tagged CPU ports
Hi,
Andrew Lunn <andrew@...n.ch> writes:
> From: Jamie Lentin <jm@...tin.co.uk>
>
> Without it, a mv88e6131 switch will not forward incoming unicast
> packets to the CPU port.
>
> Signed-off-by: Jamie Lentin <jm@...tin.co.uk>
> ---
> drivers/net/dsa/mv88e6xxx/chip.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/drivers/net/dsa/mv88e6xxx/chip.c b/drivers/net/dsa/mv88e6xxx/chip.c
> index 1d5f9576e62a..82d45165803c 100644
> --- a/drivers/net/dsa/mv88e6xxx/chip.c
> +++ b/drivers/net/dsa/mv88e6xxx/chip.c
> @@ -2490,11 +2490,11 @@ static int mv88e6xxx_setup_port(struct mv88e6xxx_chip *chip, int port)
> if (dsa_is_cpu_port(ds, port)) {
> if (mv88e6xxx_has(chip, MV88E6XXX_FLAG_EDSA))
> reg |= PORT_CONTROL_FRAME_ETHER_TYPE_DSA |
> - PORT_CONTROL_FORWARD_UNKNOWN |
> PORT_CONTROL_FORWARD_UNKNOWN_MC;
> else
> reg |= PORT_CONTROL_DSA_TAG;
> - reg |= PORT_CONTROL_EGRESS_ADD_TAG;
> + reg |= PORT_CONTROL_EGRESS_ADD_TAG |
> + PORT_CONTROL_FORWARD_UNKNOWN;
> }
> if (dsa_is_dsa_port(ds, port)) {
> if (mv88e6xxx_6095_family(chip) ||
> --
> 2.8.1
Bits 2-3 in newer chips such as 6352 became an Egress Flooding Mode.
0x3 needs to be set to forward unknown unicast *and* multicast frames.
I'll extract that from the EDSA check and add flags for this mode
later. In the meantime, this works as a quick fix for 6131 and
compatibles.
Reviewed-by: Vivien Didelot <vivien.didelot@...oirfairelinux.com>
Thanks,
Vivien
Powered by blists - more mailing lists