mlxsw: spectrum: Trap IPv4 packets with Router Alert option
authorIdo Schimmel <idosch@mellanox.com>
Mon, 17 Jul 2017 12:15:30 +0000 (14:15 +0200)
committerDavid S. Miller <davem@davemloft.net>
Mon, 17 Jul 2017 16:19:39 +0000 (09:19 -0700)
In case local sockets have the IP_ROUTER_ALERT socket option set, then
they expect to get packets with the Router Alert option.

Trap such packets, so that the kernel could inspect them and potentially
send them to interested sockets.

Signed-off-by: Ido Schimmel <idosch@mellanox.com>
Signed-off-by: Jiri Pirko <jiri@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 83e77b959703ad84055a53fd57a8192a527d09d9..bc35b400e6f1fecd8c890d201514740a316186b5 100644 (file)
@@ -3342,6 +3342,7 @@ static const struct mlxsw_listener mlxsw_sp_listener[] = {
        MLXSW_SP_RXL_MARK(RTR_INGRESS0, TRAP_TO_CPU, REMOTE_ROUTE, false),
        MLXSW_SP_RXL_MARK(HOST_MISS_IPV4, TRAP_TO_CPU, ARP_MISS, false),
        MLXSW_SP_RXL_MARK(BGP_IPV4, TRAP_TO_CPU, BGP_IPV4, false),
+       MLXSW_SP_RXL_MARK(ROUTER_ALERT_IPV4, TRAP_TO_CPU, ROUTER_EXP, false),
        /* PKT Sample trap */
        MLXSW_RXL(mlxsw_sp_rx_listener_sample_func, PKT_SAMPLE, MIRROR_TO_CPU,
                  false, SP_IP2ME, DISCARD),
index 12b5ed58f3eb45e3443e78e1cfde901a80106a23..4946d4e2b3f9e7732346417fe519a28ef086ba35 100644 (file)
@@ -66,6 +66,7 @@ enum {
        MLXSW_TRAP_ID_RTR_INGRESS0 = 0x70,
        MLXSW_TRAP_ID_BGP_IPV4 = 0x88,
        MLXSW_TRAP_ID_HOST_MISS_IPV4 = 0x90,
+       MLXSW_TRAP_ID_ROUTER_ALERT_IPV4 = 0xD6,
        MLXSW_TRAP_ID_ACL0 = 0x1C0,
 
        MLXSW_TRAP_ID_MAX = 0x1FF