diff options
| author | David S. Miller <davem@davemloft.net> | 2020-06-23 06:41:05 +0300 |
|---|---|---|
| committer | David S. Miller <davem@davemloft.net> | 2020-06-23 06:41:05 +0300 |
| commit | 864cefeea03f79f68021fcbc9f04db5e11d52c5d (patch) | |
| tree | 1e3bed01d111157be8c908fcee1abd49c3c8efff /include | |
| parent | 19430ede90fdd40efaed4995d98d365623c93072 (diff) | |
| parent | 9403c158b8722ada99f5dd7b3717c264879aefa8 (diff) | |
| download | linux-864cefeea03f79f68021fcbc9f04db5e11d52c5d.tar.xz | |
Merge branch 'Multicast-improvement-in-Ocelot-and-Felix-drivers'
Vladimir Oltean says:
====================
Multicast improvement in Ocelot and Felix drivers
This series makes some basic multicast forwarding functionality work for
Felix DSA and for Ocelot switchdev. IGMP/MLD snooping in Felix is still
missing, and there are other improvements to be made in the general area
of multicast address filtering towards the CPU, but let's get these
hardware-specific fixes out of the way first.
====================
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'include')
| -rw-r--r-- | include/soc/mscc/ocelot.h | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/include/soc/mscc/ocelot.h b/include/soc/mscc/ocelot.h index fa2c3904049e..e050f8121ba2 100644 --- a/include/soc/mscc/ocelot.h +++ b/include/soc/mscc/ocelot.h @@ -65,6 +65,21 @@ #define PGID_MCIPV4 62 #define PGID_MCIPV6 63 +#define for_each_unicast_dest_pgid(ocelot, pgid) \ + for ((pgid) = 0; \ + (pgid) < (ocelot)->num_phys_ports; \ + (pgid)++) + +#define for_each_nonreserved_multicast_dest_pgid(ocelot, pgid) \ + for ((pgid) = (ocelot)->num_phys_ports + 1; \ + (pgid) < PGID_CPU; \ + (pgid)++) + +#define for_each_aggr_pgid(ocelot, pgid) \ + for ((pgid) = PGID_AGGR; \ + (pgid) < PGID_SRC; \ + (pgid)++) + /* Aggregation PGIDs, one per Link Aggregation Code */ #define PGID_AGGR 64 @@ -641,5 +656,9 @@ int ocelot_cls_flower_destroy(struct ocelot *ocelot, int port, struct flow_cls_offload *f, bool ingress); int ocelot_cls_flower_stats(struct ocelot *ocelot, int port, struct flow_cls_offload *f, bool ingress); +int ocelot_port_mdb_add(struct ocelot *ocelot, int port, + const struct switchdev_obj_port_mdb *mdb); +int ocelot_port_mdb_del(struct ocelot *ocelot, int port, + const struct switchdev_obj_port_mdb *mdb); #endif |
