mlxsw: Add OVERLAY_SMAC_MC trap
authorAmit Cohen <amitc@mellanox.com>
Sun, 19 Jan 2020 13:00:59 +0000 (15:00 +0200)
committerDavid S. Miller <davem@davemloft.net>
Sun, 19 Jan 2020 15:23:52 +0000 (16:23 +0100)
Add a trap for NVE packets that the device decided to drop because their
overlay source MAC is multicast.

Signed-off-by: Amit Cohen <amitc@mellanox.com>
Acked-by: Jiri Pirko <jiri@mellanox.com>
Signed-off-by: Ido Schimmel <idosch@mellanox.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/mellanox/mlxsw/spectrum_trap.c
drivers/net/ethernet/mellanox/mlxsw/trap.h

index b03bb3a54fc8d8cbfcc2621606eefec24e447e98..60205aa3f6a5a39520a20066c9ec810a916d2133 100644 (file)
@@ -82,6 +82,7 @@ static struct devlink_trap mlxsw_sp_traps_arr[] = {
        MLXSW_SP_TRAP_DRIVER_DROP(ERIF_DISABLED, L3_DROPS),
        MLXSW_SP_TRAP_DROP(NON_ROUTABLE, L3_DROPS),
        MLXSW_SP_TRAP_EXCEPTION(DECAP_ERROR, TUNNEL_DROPS),
+       MLXSW_SP_TRAP_DROP(OVERLAY_SMAC_MC, TUNNEL_DROPS),
 };
 
 static struct mlxsw_listener mlxsw_sp_listeners_arr[] = {
@@ -122,6 +123,7 @@ static struct mlxsw_listener mlxsw_sp_listeners_arr[] = {
                               TRAP_EXCEPTION_TO_CPU),
        MLXSW_SP_RXL_EXCEPTION(DISCARD_DEC_PKT, TUNNEL_DISCARDS,
                               TRAP_EXCEPTION_TO_CPU),
+       MLXSW_SP_RXL_DISCARD(OVERLAY_SMAC_MC, TUNNEL_DISCARDS),
 };
 
 /* Mapping between hardware trap and devlink trap. Multiple hardware traps can
@@ -161,6 +163,7 @@ static u16 mlxsw_sp_listener_devlink_map[] = {
        DEVLINK_TRAP_GENERIC_ID_DECAP_ERROR,
        DEVLINK_TRAP_GENERIC_ID_DECAP_ERROR,
        DEVLINK_TRAP_GENERIC_ID_DECAP_ERROR,
+       DEVLINK_TRAP_GENERIC_ID_OVERLAY_SMAC_MC,
 };
 
 static int mlxsw_sp_rx_listener(struct mlxsw_sp *mlxsw_sp, struct sk_buff *skb,
index 24f92b157dfb99a39dff2a32ffeaab45d36a53ab..12e1fa998d42c7706cb487e2521bff4c80f1ee00 100644 (file)
@@ -94,6 +94,7 @@ enum {
        MLXSW_TRAP_ID_DISCARD_ROUTER_LPM4 = 0x17B,
        MLXSW_TRAP_ID_DISCARD_ROUTER_LPM6 = 0x17C,
        MLXSW_TRAP_ID_DISCARD_DEC_PKT = 0x188,
+       MLXSW_TRAP_ID_DISCARD_OVERLAY_SMAC_MC = 0x190,
        MLXSW_TRAP_ID_DISCARD_IPV6_MC_DIP_RESERVED_SCOPE = 0x1B0,
        MLXSW_TRAP_ID_DISCARD_IPV6_MC_DIP_INTERFACE_LOCAL_SCOPE = 0x1B1,
        MLXSW_TRAP_ID_ACL0 = 0x1C0,