net: dsa: felix: add port mirroring support
authorVladimir Oltean <vladimir.oltean@nxp.com>
Wed, 16 Mar 2022 20:41:44 +0000 (22:41 +0200)
committerJakub Kicinski <kuba@kernel.org>
Fri, 18 Mar 2022 00:42:47 +0000 (17:42 -0700)
Gain support for port mirroring using tc-matchall by forwarding the
calls to the ocelot switch library.

Signed-off-by: Vladimir Oltean <vladimir.oltean@nxp.com>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/dsa/ocelot/felix.c

index 13d6b17..413b000 100644 (file)
@@ -1650,6 +1650,24 @@ static void felix_port_policer_del(struct dsa_switch *ds, int port)
        ocelot_port_policer_del(ocelot, port);
 }
 
+static int felix_port_mirror_add(struct dsa_switch *ds, int port,
+                                struct dsa_mall_mirror_tc_entry *mirror,
+                                bool ingress, struct netlink_ext_ack *extack)
+{
+       struct ocelot *ocelot = ds->priv;
+
+       return ocelot_port_mirror_add(ocelot, port, mirror->to_local_port,
+                                     ingress, extack);
+}
+
+static void felix_port_mirror_del(struct dsa_switch *ds, int port,
+                                 struct dsa_mall_mirror_tc_entry *mirror)
+{
+       struct ocelot *ocelot = ds->priv;
+
+       ocelot_port_mirror_del(ocelot, port, mirror->ingress);
+}
+
 static int felix_port_setup_tc(struct dsa_switch *ds, int port,
                               enum tc_setup_type type,
                               void *type_data)
@@ -1880,6 +1898,8 @@ const struct dsa_switch_ops felix_switch_ops = {
        .port_max_mtu                   = felix_get_max_mtu,
        .port_policer_add               = felix_port_policer_add,
        .port_policer_del               = felix_port_policer_del,
+       .port_mirror_add                = felix_port_mirror_add,
+       .port_mirror_del                = felix_port_mirror_del,
        .cls_flower_add                 = felix_cls_flower_add,
        .cls_flower_del                 = felix_cls_flower_del,
        .cls_flower_stats               = felix_cls_flower_stats,