Hi, On Tue, Dec 08, 2015 at 05:47:22PM +0800, zyjzyj2000@xxxxxxxxx wrote: > From: yzhu1 <zyjzyj2000@xxxxxxxxx> > > This feature is introduced in the commit 5aa93bc "sctp: Implement > quick failover draft from tsvwg". This feature should be disabled > if the quick failover feature is disabled. > > Signed-off-by: yzhu1 <zyjzyj2000@xxxxxxxxx> > --- > net/sctp/associola.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/net/sctp/associola.c b/net/sctp/associola.c > index 559afd0..7438625 100644 > --- a/net/sctp/associola.c > +++ b/net/sctp/associola.c > @@ -795,7 +795,8 @@ void sctp_assoc_control_transport(struct sctp_association *asoc, > * active state and set cwnd to 1 MTU, see SCTP > * Quick failover draft section 5.1, point 5 > */ > - if (transport->state == SCTP_PF) { > + if ((asoc->pf_retrans < asoc->max_retrans) && > + (transport->state == SCTP_PF)) { > ulp_notify = false; > transport->cwnd = asoc->pathmtu; > } Didn't you confuse asoc->max_retrans with Path.Max.Retrans? That draft refers to asoc->pf_retrans having to be bigger than Path.Max.Retrans in order to disable PF, and asoc->max_retrans is another thing, it's originated from net->sctp.max_retrans_association. The check is performed later in the code: + if ((transport->state != SCTP_PF) && + (asoc->pf_retrans < transport->pathmaxrxt) && ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + (transport->error_count > asoc->pf_retrans)) { This check should avoid that state transition as it will avoid the path from entereing SCTP_PF state at all. transport->pathmaxrst is originated from net->sctp.max_retrans_path. Btw, you had indentantion issues with your patch. Extra () that aren't needed and the second line should start at the column right after the initial ( in the first line. Please run scripts/checkpatch.pl on it next time. Marcelo -- 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