net: lan966x: Update the PGID used by IPV6 data frames
authorHoratiu Vultur <horatiu.vultur@microchip.com>
Fri, 4 Feb 2022 09:14:50 +0000 (10:14 +0100)
committerDavid S. Miller <davem@davemloft.net>
Sat, 5 Feb 2022 15:00:43 +0000 (15:00 +0000)
When enabling the multicast snooping, the forwarding of the IPV6 frames
has it's own forwarding mask.

Signed-off-by: Horatiu Vultur <horatiu.vultur@microchip.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/microchip/lan966x/lan966x_main.c

index 8eaaa75..3d10729 100644 (file)
@@ -767,7 +767,7 @@ static void lan966x_init(struct lan966x *lan966x)
        /* Setup flooding PGIDs */
        lan_wr(ANA_FLOODING_IPMC_FLD_MC4_DATA_SET(PGID_MCIPV4) |
               ANA_FLOODING_IPMC_FLD_MC4_CTRL_SET(PGID_MC) |
-              ANA_FLOODING_IPMC_FLD_MC6_DATA_SET(PGID_MC) |
+              ANA_FLOODING_IPMC_FLD_MC6_DATA_SET(PGID_MCIPV6) |
               ANA_FLOODING_IPMC_FLD_MC6_CTRL_SET(PGID_MC),
               lan966x, ANA_FLOODING_IPMC);
 
@@ -829,6 +829,10 @@ static void lan966x_init(struct lan966x *lan966x)
                ANA_PGID_PGID,
                lan966x, ANA_PGID(PGID_MCIPV4));
 
+       lan_rmw(GENMASK(lan966x->num_phys_ports - 1, 0),
+               ANA_PGID_PGID,
+               lan966x, ANA_PGID(PGID_MCIPV6));
+
        /* Unicast to all other ports */
        lan_rmw(GENMASK(lan966x->num_phys_ports - 1, 0),
                ANA_PGID_PGID,