Expected Behavior: When hearing an ack from a tranport/path, set its state to normal/on if it's in abnormal(__partial_failure__ or inactive) state. state machine of tranport->state Whenever a T3_RTX timer expires, then transport->error_count++. When (association->pf_retrans < transport->error_count < tranport->pathmaxrtx) transport->state = SCTP_PF //partial failure When a heartbeat-ack comes or conventional ack acknowledged its availability, transport->state = SCTP_ON Signed-off-by: Chang Xiangzhong <changxiangzhong@xxxxxxxxx> Fixes: 5aa93bcf66f ("sctp: Implement quick failover draft from tsvwg") --- net/sctp/outqueue.c | 1 + 1 file changed, 1 insertion(+) diff --git a/net/sctp/outqueue.c b/net/sctp/outqueue.c index 94df758..2557fa5 100644 --- a/net/sctp/outqueue.c +++ b/net/sctp/outqueue.c @@ -1517,6 +1517,7 @@ static void sctp_check_transmitted(struct sctp_outq *q, * active if it is not so marked. */ if ((transport->state == SCTP_INACTIVE || + transport->state == SCTP_PF || transport->state == SCTP_UNCONFIRMED) && sctp_cmp_addr_exact(&transport->ipaddr, saddr)) { sctp_assoc_control_transport( -- 1.7.9.5 -- To unsubscribe from this list: send the line "unsubscribe linux-sctp" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html