ocelot_write_rix(ocelot, val, ANA_PGID_PGID, i);
        }
+
+       ocelot_write_rix(ocelot, 0, ANA_PGID_PGID, PGID_BLACKHOLE);
+
        /* Allow broadcast and unknown L2 multicast to the CPU. */
        ocelot_rmw_rix(ocelot, ANA_PGID_PGID_PGID(BIT(ocelot->num_phys_ports)),
                       ANA_PGID_PGID_PGID(BIT(ocelot->num_phys_ports)),
 
  */
 
 /* Reserve some destination PGIDs at the end of the range:
+ * PGID_BLACKHOLE: used for not forwarding the frames
  * PGID_CPU: used for whitelisting certain MAC addresses, such as the addresses
  *           of the switch port net devices, towards the CPU port module.
  * PGID_UC: the flooding destinations for unknown unicast traffic.
  * PGID_MCIPV6: the flooding destinations for IPv6 multicast traffic.
  * PGID_BC: the flooding destinations for broadcast traffic.
  */
+#define PGID_BLACKHOLE                 57
 #define PGID_CPU                       58
 #define PGID_UC                                59
 #define PGID_MC                                60
 
 #define for_each_nonreserved_multicast_dest_pgid(ocelot, pgid) \
        for ((pgid) = (ocelot)->num_phys_ports + 1;             \
-            (pgid) < PGID_CPU;                                 \
+            (pgid) < PGID_BLACKHOLE;                           \
             (pgid)++)
 
 #define for_each_aggr_pgid(ocelot, pgid)                       \