Hi Vladimir, On Mon, 4 May 2020 00:10:33 +0300, Vladimir Oltean <olte...@gmail.com> wrote: > + case FLOW_ACTION_REDIRECT: { > + struct dsa_port *to_dp; > + > + if (!dsa_slave_dev_check(act->dev)) { > + NL_SET_ERR_MSG_MOD(extack, > + "Destination not a switch > port"); > + return -EOPNOTSUPP; > + } > + > + to_dp = dsa_slave_to_port(act->dev);
Instead of exporting two DSA core internal functions, I would rather expose a new helper for drivers, such as this one: struct dsa_port *dsa_dev_to_port(struct net_device *dev) { if (!dsa_slave_dev_check(dev)) return -EOPNOTSUPP; return dsa_slave_to_port(dev); } The naming might not be the best, this helper could even be mirroring-specific, I didn't really check the requirements for this functionality yet. Thank you, Vivien