inet_csk_reset_xmit_timer(sk,
                                                ICSK_TIME_RETRANS,
                                                TCP_TIMEOUT_MIN, TCP_RTO_MAX);
+                       SKB_DR_SET(reason, TCP_INVALID_ACK_SEQUENCE);
                        goto reset_and_undo;
                }
 
                             tcp_time_stamp_ts(tp))) {
                        NET_INC_STATS(sock_net(sk),
                                        LINUX_MIB_PAWSACTIVEREJECTED);
+                       SKB_DR_SET(reason, TCP_RFC7323_PAWS);
                        goto reset_and_undo;
                }
 
 reset_and_undo:
        tcp_clear_options(&tp->rx_opt);
        tp->rx_opt.mss_clamp = saved_clamp;
-       return 1;
+       /* we can reuse/return @reason to its caller to handle the exception */
+       return reason;
 }
 
 static void tcp_rcv_synrecv_state_fastopen(struct sock *sk)