mlxsw: spectrum: Disable SIP_CLASS_E check in hardware pipeline
authorAmit Cohen <amitc@mellanox.com>
Sun, 5 Jan 2020 16:20:50 +0000 (18:20 +0200)
committerDavid S. Miller <davem@davemloft.net>
Mon, 6 Jan 2020 21:38:36 +0000 (13:38 -0800)
The check drops packets if they need to be routed and their source IP is
from class E, i.e., belongs to 240.0.0.0/4 address range, but different
from 255.255.255.255.

Disable the check since the kernel forwards such packets and does not
drop them.

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.c
drivers/net/ethernet/mellanox/mlxsw/trap.h

index fe02ffb1e3a844b52e0b560ecf85674a2dca7321..c595060aa0ad42c8f80175f4cd0f43f370468336 100644 (file)
@@ -4545,6 +4545,8 @@ static const struct mlxsw_listener mlxsw_sp_listener[] = {
        MLXSW_SP_RXL_MARK(DECAP_ECN0, TRAP_TO_CPU, ROUTER_EXP, false),
        MLXSW_SP_RXL_MARK(IPV4_VRRP, TRAP_TO_CPU, VRRP, false),
        MLXSW_SP_RXL_MARK(IPV6_VRRP, TRAP_TO_CPU, VRRP, false),
+       MLXSW_SP_RXL_NO_MARK(DISCARD_ING_ROUTER_SIP_CLASS_E, FORWARD,
+                            ROUTER_EXP, false),
        /* PKT Sample trap */
        MLXSW_RXL(mlxsw_sp_rx_listener_sample_func, PKT_SAMPLE, MIRROR_TO_CPU,
                  false, SP_IP2ME, DISCARD),
index 0c1c142bb6b0fc8dfe508f92a1fb7dc7927cae57..e63cb82050c6e49c9ec3ec466e15f34ac6e48b5c 100644 (file)
@@ -80,6 +80,7 @@ enum {
        MLXSW_TRAP_ID_DISCARD_ING_ROUTER_UC_DIP_MC_DMAC = 0x161,
        MLXSW_TRAP_ID_DISCARD_ING_ROUTER_DIP_LB = 0x162,
        MLXSW_TRAP_ID_DISCARD_ING_ROUTER_SIP_MC = 0x163,
+       MLXSW_TRAP_ID_DISCARD_ING_ROUTER_SIP_CLASS_E = 0x164,
        MLXSW_TRAP_ID_DISCARD_ING_ROUTER_SIP_LB = 0x165,
        MLXSW_TRAP_ID_DISCARD_ING_ROUTER_CORRUPTED_IP_HDR = 0x167,
        MLXSW_TRAP_ID_DISCARD_ING_ROUTER_IPV4_SIP_BC = 0x16A,