net: dsa: mv88e6xxx: add support for bridge flags
Add support for the bridge flags to Marvell 88e6xxx bridges, allowing the multicast and unicast flood properties to be controlled. These can be controlled on a per-port basis via commands such as: bridge link set dev lan1 flood on|off bridge link set dev lan1 mcast_flood on|off Reviewed-by: Florian Fainelli <f.fainelli@gmail.com> Reviewed-by: Vivien Didelot <vivien.didelot@gmail.com> Signed-off-by: Russell King <rmk+kernel@armlinux.org.uk> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
57652796aa
commit
4f85901f00
1 changed files with 17 additions and 0 deletions
|
@ -4692,6 +4692,22 @@ static int mv88e6xxx_port_mdb_del(struct dsa_switch *ds, int port,
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int mv88e6xxx_port_egress_floods(struct dsa_switch *ds, int port,
|
||||||
|
bool unicast, bool multicast)
|
||||||
|
{
|
||||||
|
struct mv88e6xxx_chip *chip = ds->priv;
|
||||||
|
int err = -EOPNOTSUPP;
|
||||||
|
|
||||||
|
mutex_lock(&chip->reg_lock);
|
||||||
|
if (chip->info->ops->port_set_egress_floods)
|
||||||
|
err = chip->info->ops->port_set_egress_floods(chip, port,
|
||||||
|
unicast,
|
||||||
|
multicast);
|
||||||
|
mutex_unlock(&chip->reg_lock);
|
||||||
|
|
||||||
|
return err;
|
||||||
|
}
|
||||||
|
|
||||||
static const struct dsa_switch_ops mv88e6xxx_switch_ops = {
|
static const struct dsa_switch_ops mv88e6xxx_switch_ops = {
|
||||||
#if IS_ENABLED(CONFIG_NET_DSA_LEGACY)
|
#if IS_ENABLED(CONFIG_NET_DSA_LEGACY)
|
||||||
.probe = mv88e6xxx_drv_probe,
|
.probe = mv88e6xxx_drv_probe,
|
||||||
|
@ -4719,6 +4735,7 @@ static const struct dsa_switch_ops mv88e6xxx_switch_ops = {
|
||||||
.set_ageing_time = mv88e6xxx_set_ageing_time,
|
.set_ageing_time = mv88e6xxx_set_ageing_time,
|
||||||
.port_bridge_join = mv88e6xxx_port_bridge_join,
|
.port_bridge_join = mv88e6xxx_port_bridge_join,
|
||||||
.port_bridge_leave = mv88e6xxx_port_bridge_leave,
|
.port_bridge_leave = mv88e6xxx_port_bridge_leave,
|
||||||
|
.port_egress_floods = mv88e6xxx_port_egress_floods,
|
||||||
.port_stp_state_set = mv88e6xxx_port_stp_state_set,
|
.port_stp_state_set = mv88e6xxx_port_stp_state_set,
|
||||||
.port_fast_age = mv88e6xxx_port_fast_age,
|
.port_fast_age = mv88e6xxx_port_fast_age,
|
||||||
.port_vlan_filtering = mv88e6xxx_port_vlan_filtering,
|
.port_vlan_filtering = mv88e6xxx_port_vlan_filtering,
|
||||||
|
|
Loading…
Add table
Reference in a new issue