mlxsw: spectrum: Disable DIP_LINK_LOCAL check in hardware pipeline
authorAmit Cohen <amitc@mellanox.com>
Sun, 5 Jan 2020 16:20:56 +0000 (18:20 +0200)
committerDavid S. Miller <davem@davemloft.net>
Mon, 6 Jan 2020 21:38:37 +0000 (13:38 -0800)
The check drops packets if they need to be routed and their destination
IP is link-local, i.e., belongs to 169.254.0.0/16 address range.

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 0214252..431c376 100644 (file)
@@ -4551,6 +4551,8 @@ static const struct mlxsw_listener mlxsw_sp_listener[] = {
                             ROUTER_EXP, false),
        MLXSW_SP_RXL_NO_MARK(DISCARD_ING_ROUTER_SIP_DIP, FORWARD,
                             ROUTER_EXP, false),
+       MLXSW_SP_RXL_NO_MARK(DISCARD_ING_ROUTER_DIP_LINK_LOCAL, 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 02c6882..3d2331b 100644 (file)
@@ -87,6 +87,7 @@ enum {
        MLXSW_TRAP_ID_DISCARD_ING_ROUTER_SIP_DIP = 0x169,
        MLXSW_TRAP_ID_DISCARD_ING_ROUTER_IPV4_SIP_BC = 0x16A,
        MLXSW_TRAP_ID_DISCARD_ING_ROUTER_IPV4_DIP_LOCAL_NET = 0x16B,
+       MLXSW_TRAP_ID_DISCARD_ING_ROUTER_DIP_LINK_LOCAL = 0x16C,
        MLXSW_TRAP_ID_DISCARD_ROUTER_LPM4 = 0x17B,
        MLXSW_TRAP_ID_DISCARD_ROUTER_LPM6 = 0x17C,
        MLXSW_TRAP_ID_DISCARD_IPV6_MC_DIP_RESERVED_SCOPE = 0x1B0,