net: dsa: add port fdb dump
Dumping a DSA port's FDB entries is not specific to a DSA slave, so add a dsa_port_fdb_dump function, similarly to dsa_port_fdb_add and dsa_port_fdb_del. Signed-off-by: Vivien Didelot <vivien.didelot@savoirfairelinux.com> Reviewed-by: Florian Fainelli <f.fainelli@gmail.com> Signed-off-by: David S. Miller <davem@davemloft.net>hifive-unleashed-5.1
parent
4fa7b71888
commit
de40fc5d21
|
@ -128,6 +128,7 @@ int dsa_port_fdb_add(struct dsa_port *dp, const unsigned char *addr,
|
||||||
u16 vid);
|
u16 vid);
|
||||||
int dsa_port_fdb_del(struct dsa_port *dp, const unsigned char *addr,
|
int dsa_port_fdb_del(struct dsa_port *dp, const unsigned char *addr,
|
||||||
u16 vid);
|
u16 vid);
|
||||||
|
int dsa_port_fdb_dump(struct dsa_port *dp, dsa_fdb_dump_cb_t *cb, void *data);
|
||||||
int dsa_port_mdb_add(struct dsa_port *dp,
|
int dsa_port_mdb_add(struct dsa_port *dp,
|
||||||
const struct switchdev_obj_port_mdb *mdb,
|
const struct switchdev_obj_port_mdb *mdb,
|
||||||
struct switchdev_trans *trans);
|
struct switchdev_trans *trans);
|
||||||
|
|
|
@ -173,6 +173,17 @@ int dsa_port_fdb_del(struct dsa_port *dp, const unsigned char *addr,
|
||||||
return dsa_port_notify(dp, DSA_NOTIFIER_FDB_DEL, &info);
|
return dsa_port_notify(dp, DSA_NOTIFIER_FDB_DEL, &info);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int dsa_port_fdb_dump(struct dsa_port *dp, dsa_fdb_dump_cb_t *cb, void *data)
|
||||||
|
{
|
||||||
|
struct dsa_switch *ds = dp->ds;
|
||||||
|
int port = dp->index;
|
||||||
|
|
||||||
|
if (!ds->ops->port_fdb_dump)
|
||||||
|
return -EOPNOTSUPP;
|
||||||
|
|
||||||
|
return ds->ops->port_fdb_dump(ds, port, cb, data);
|
||||||
|
}
|
||||||
|
|
||||||
int dsa_port_mdb_add(struct dsa_port *dp,
|
int dsa_port_mdb_add(struct dsa_port *dp,
|
||||||
const struct switchdev_obj_port_mdb *mdb,
|
const struct switchdev_obj_port_mdb *mdb,
|
||||||
struct switchdev_trans *trans)
|
struct switchdev_trans *trans)
|
||||||
|
|
|
@ -263,16 +263,11 @@ dsa_slave_fdb_dump(struct sk_buff *skb, struct netlink_callback *cb,
|
||||||
};
|
};
|
||||||
struct dsa_slave_priv *p = netdev_priv(dev);
|
struct dsa_slave_priv *p = netdev_priv(dev);
|
||||||
struct dsa_port *dp = p->dp;
|
struct dsa_port *dp = p->dp;
|
||||||
struct dsa_switch *ds = dp->ds;
|
|
||||||
int err;
|
int err;
|
||||||
|
|
||||||
if (!ds->ops->port_fdb_dump)
|
err = dsa_port_fdb_dump(dp, dsa_slave_port_fdb_do_dump, &dump);
|
||||||
return -EOPNOTSUPP;
|
|
||||||
|
|
||||||
err = ds->ops->port_fdb_dump(ds, dp->index,
|
|
||||||
dsa_slave_port_fdb_do_dump,
|
|
||||||
&dump);
|
|
||||||
*idx = dump.idx;
|
*idx = dump.idx;
|
||||||
|
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue